From f81ae811ca2e1820f29ac632f1b53ceafacf3eec Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Sat, 19 Jul 2014 07:44:42 +0000 Subject: [PATCH] Initial import git-svn-id: http://moon:8086/svn/software/trunk/libsrc/libtiff_2007@1 b431acfa-c32f-4a4a-93f1-934dc6c82436 --- COPYRIGHT | 21 + Debug/BuildLog.htm | Bin 0 -> 26228 bytes Debug/fax3sm.obj | Bin 0 -> 101315 bytes Debug/libtiff.pch | Bin 0 -> 262144 bytes Debug/tif_aux.obj | Bin 0 -> 26376 bytes Debug/tif_close.obj | Bin 0 -> 18996 bytes Debug/tif_codec.obj | Bin 0 -> 23308 bytes Debug/tif_compress.obj | Bin 0 -> 33998 bytes Debug/tif_dir.obj | Bin 0 -> 71468 bytes Debug/tif_dirinfo.obj | Bin 0 -> 43165 bytes Debug/tif_dirread.obj | Bin 0 -> 70878 bytes Debug/tif_dirwrite.obj | Bin 0 -> 58270 bytes Debug/tif_dumpmode.obj | Bin 0 -> 22601 bytes Debug/tif_error.obj | Bin 0 -> 18471 bytes Debug/tif_fax3.obj | Bin 0 -> 100086 bytes Debug/tif_flush.obj | Bin 0 -> 19353 bytes Debug/tif_getimage.obj | Bin 0 -> 129552 bytes Debug/tif_jpeg.obj | Bin 0 -> 16295 bytes Debug/tif_luv.obj | Bin 0 -> 90179 bytes Debug/tif_lzw.obj | Bin 0 -> 44482 bytes Debug/tif_next.obj | Bin 0 -> 21256 bytes Debug/tif_open.obj | Bin 0 -> 33089 bytes Debug/tif_packbits.obj | Bin 0 -> 26165 bytes Debug/tif_pixarlog.obj | Bin 0 -> 16307 bytes Debug/tif_predict.obj | Bin 0 -> 45087 bytes Debug/tif_print.obj | Bin 0 -> 61308 bytes Debug/tif_read.obj | Bin 0 -> 45908 bytes Debug/tif_strip.obj | Bin 0 -> 24834 bytes Debug/tif_swab.obj | Bin 0 -> 23937 bytes Debug/tif_thunder.obj | Bin 0 -> 23190 bytes Debug/tif_tile.obj | Bin 0 -> 26514 bytes Debug/tif_version.obj | Bin 0 -> 17799 bytes Debug/tif_warning.obj | Bin 0 -> 18489 bytes Debug/tif_win32.obj | Bin 0 -> 38238 bytes Debug/tif_write.obj | Bin 0 -> 40736 bytes Debug/tif_zip.obj | Bin 0 -> 16287 bytes Debug/vc60.idb | Bin 0 -> 91136 bytes Debug/vc70.idb | Bin 0 -> 265216 bytes Debug/vc70.pdb | Bin 0 -> 626688 bytes Debug/vc90.idb | Bin 0 -> 306176 bytes Debug/vc90.pdb | Bin 0 -> 94208 bytes Makefile.in | 556 +++++ Release/BuildLog.htm | Bin 0 -> 24544 bytes Release/fax3sm.obj | Bin 0 -> 99901 bytes Release/libtiff.pch | Bin 0 -> 262144 bytes Release/tif_aux.obj | Bin 0 -> 4621 bytes Release/tif_close.obj | Bin 0 -> 1089 bytes Release/tif_codec.obj | Bin 0 -> 4701 bytes Release/tif_compress.obj | Bin 0 -> 8448 bytes Release/tif_dir.obj | Bin 0 -> 25072 bytes Release/tif_dirinfo.obj | Bin 0 -> 18369 bytes Release/tif_dirread.obj | Bin 0 -> 24932 bytes Release/tif_dirwrite.obj | Bin 0 -> 16440 bytes Release/tif_dumpmode.obj | Bin 0 -> 2141 bytes Release/tif_error.obj | Bin 0 -> 1119 bytes Release/tif_fax3.obj | Bin 0 -> 37026 bytes Release/tif_flush.obj | Bin 0 -> 1214 bytes Release/tif_getimage.obj | Bin 0 -> 49258 bytes Release/tif_jpeg.obj | Bin 0 -> 582 bytes Release/tif_luv.obj | Bin 0 -> 30120 bytes Release/tif_lzw.obj | Bin 0 -> 9313 bytes Release/tif_next.obj | Bin 0 -> 1913 bytes Release/tif_open.obj | Bin 0 -> 7324 bytes Release/tif_packbits.obj | Bin 0 -> 3190 bytes Release/tif_pixarlog.obj | Bin 0 -> 586 bytes Release/tif_predict.obj | Bin 0 -> 8864 bytes Release/tif_print.obj | Bin 0 -> 27710 bytes Release/tif_read.obj | Bin 0 -> 13370 bytes Release/tif_strip.obj | Bin 0 -> 3016 bytes Release/tif_swab.obj | Bin 0 -> 3501 bytes Release/tif_thunder.obj | Bin 0 -> 3070 bytes Release/tif_tile.obj | Bin 0 -> 4015 bytes Release/tif_version.obj | Bin 0 -> 1032 bytes Release/tif_warning.obj | Bin 0 -> 1129 bytes Release/tif_win32.obj | Bin 0 -> 7922 bytes Release/tif_write.obj | Bin 0 -> 11336 bytes Release/tif_zip.obj | Bin 0 -> 582 bytes Release/vc60.idb | Bin 0 -> 82944 bytes Release/vc70.idb | Bin 0 -> 265216 bytes Release/vc90.idb | Bin 0 -> 306176 bytes UpgradeLog.XML | 20 + _UpgradeReport_Files/UpgradeReport.css | 207 ++ _UpgradeReport_Files/UpgradeReport.xslt | 232 ++ _UpgradeReport_Files/UpgradeReport_Minus.gif | Bin 0 -> 69 bytes _UpgradeReport_Files/UpgradeReport_Plus.gif | Bin 0 -> 71 bytes config.guess | 476 ++++ config.site | 160 ++ config.sub | 793 +++++++ configure | 1837 ++++++++++++++++ contrib/acorn/Makefile | 165 ++ contrib/acorn/ReadMe | 79 + contrib/acorn/SetVars | 3 + contrib/acorn/cleanlib | 5 + contrib/acorn/convert | 175 ++ contrib/acorn/install | 128 ++ contrib/addtiffo/Makefile | 26 + contrib/addtiffo/Makefile.vc | 27 + contrib/addtiffo/addtiffo.c | 131 ++ contrib/addtiffo/readme | 145 ++ contrib/dbs/Imakefile | 12 + contrib/dbs/readme | 7 + contrib/dbs/tiff-bi.c | 85 + contrib/dbs/tiff-grayscale.c | 141 ++ contrib/dbs/tiff-palette.c | 277 +++ contrib/dbs/tiff-rgb.c | 196 ++ contrib/dbs/xtiff/Imakefile | 17 + contrib/dbs/xtiff/patchlevel.h | 1 + contrib/dbs/xtiff/readme | 6 + contrib/dbs/xtiff/xtiff.c | 1275 +++++++++++ contrib/dbs/xtiff/xtifficon.h | 14 + contrib/dosdjgpp/Makefile.lib | 249 +++ contrib/dosdjgpp/Makefile.tools | 217 ++ contrib/dosdjgpp/Makefile.top | 54 + contrib/dosdjgpp/conf.bat | 11 + contrib/dosdjgpp/port.h | 29 + contrib/dosdjgpp/readme | 30 + contrib/iptcutil/Makefile | 12 + contrib/iptcutil/iptcutil.c | 920 ++++++++ contrib/iptcutil/test.iptc | Bin 0 -> 1107 bytes contrib/mac-cw/Makefile.script | 72 + contrib/mac-cw/mac_main.c | 20 + contrib/mac-cw/mac_main.h | 12 + contrib/mac-cw/metrowerks.note | 84 + contrib/mac-cw/mkg3_main.c | 14 + contrib/mac-cw/readme | 18 + contrib/mac-cw/version.h | 4 + contrib/mac-mpw/build.mpw | 47 + contrib/mac-mpw/libtiff.make | 202 ++ contrib/mac-mpw/mactrans.c | 56 + contrib/mac-mpw/port.make | 53 + contrib/mac-mpw/readme | 20 + contrib/mac-mpw/tools.make | 138 ++ contrib/mac-mpw/top.make | 133 ++ contrib/mfs/mfs_file.c | 579 +++++ contrib/mfs/readme | 37 + contrib/pds/readme | 90 + contrib/pds/tif_imageiter.c | 518 +++++ contrib/pds/tif_imageiter.h | 57 + contrib/pds/tif_pdsdirread.c | 1124 ++++++++++ contrib/pds/tif_pdsdirwrite.c | 964 +++++++++ contrib/ras/ras2tif.c | 247 +++ contrib/ras/readme | 10 + contrib/ras/tif2ras.c | 337 +++ contrib/vms/libtiff/makevms.com | 229 ++ contrib/vms/libtiff/tiffvec.mar | 131 ++ contrib/vms/tools/makevms.com | 113 + contrib/win32/dllshell.c | 38 + contrib/win32/libtiff.def | 72 + contrib/win32/readme | 111 + contrib/win95/Makefile.w95 | 134 ++ contrib/win95/readme | 50 + contrib/win95/tiff2dib.c | 372 ++++ contrib/winnt/README.console | 182 ++ contrib/winnt/fax3sm.c | 1046 +++++++++ contrib/winnt/libtiff.def | 72 + contrib/winnt/libtiff.mak | 1947 +++++++++++++++++ contrib/winnt/libtiff.vcp | Bin 0 -> 17408 bytes contrib/winnt/readme | 26 + contrib/winnt/version.h | 1 + dist/newalpha | 8 + dist/newversion | 32 + dist/tiff.alpha | 1 + dist/tiff.spec | 68 + dist/tiff.version | 1 + html/Makefile.in | 109 + html/bugs.html | 46 + html/build.html | 1167 ++++++++++ html/contrib.html | 158 ++ html/document.html | 50 + html/images.html | 40 + html/images/back.gif | Bin 0 -> 1000 bytes html/images/bali.jpg | Bin 0 -> 26152 bytes html/images/cat.gif | Bin 0 -> 12477 bytes html/images/cover.jpg | Bin 0 -> 20189 bytes html/images/cramps.gif | Bin 0 -> 13137 bytes html/images/dave.gif | Bin 0 -> 8220 bytes html/images/info.gif | Bin 0 -> 131 bytes html/images/jello.jpg | Bin 0 -> 13744 bytes html/images/jim.gif | Bin 0 -> 14493 bytes html/images/note.gif | Bin 0 -> 264 bytes html/images/oxford.gif | Bin 0 -> 6069 bytes html/images/quad.jpg | Bin 0 -> 23904 bytes html/images/ring.gif | Bin 0 -> 4275 bytes html/images/smallliz.jpg | Bin 0 -> 16463 bytes html/images/strike.gif | Bin 0 -> 5610 bytes html/images/warning.gif | Bin 0 -> 287 bytes html/index.html | 97 + html/internals.html | 654 ++++++ html/intro.html | 68 + html/libtiff.html | 728 +++++++ html/man/TIFFClose.3t.html | 69 + html/man/TIFFError.3t.html | 97 + html/man/TIFFFlush.3t.html | 93 + html/man/TIFFGetField.3t.html | 266 +++ html/man/TIFFOpen.3t.html | 361 +++ html/man/TIFFPrintDirectory.3t.html | 100 + html/man/TIFFRGBAImage.3t.html | 370 ++++ html/man/TIFFReadDirectory.3t.html | 212 ++ html/man/TIFFReadEncodedStrip.3t.html | 103 + html/man/TIFFReadEncodedTile.3t.html | 107 + html/man/TIFFReadRGBAImage.3t.html | 262 +++ html/man/TIFFReadRGBAStrip.3t.html | 249 +++ html/man/TIFFReadRGBATile.3t.html | 251 +++ html/man/TIFFReadRawStrip.3t.html | 88 + html/man/TIFFReadRawTile.3t.html | 91 + html/man/TIFFReadScanline.3t.html | 139 ++ html/man/TIFFReadTile.3t.html | 120 + html/man/TIFFSetDirectory.3t.html | 114 + html/man/TIFFSetField.3t.html | 269 +++ html/man/TIFFWarning.3t.html | 98 + html/man/TIFFWriteDirectory.3t.html | 148 ++ html/man/TIFFWriteEncodedStrip.3t.html | 147 ++ html/man/TIFFWriteEncodedTile.3t.html | 137 ++ html/man/TIFFWriteRawStrip.3t.html | 134 ++ html/man/TIFFWriteRawTile.3t.html | 116 + html/man/TIFFWriteScanline.3t.html | 225 ++ html/man/TIFFWriteTile.3t.html | 109 + html/man/TIFFbuffer.3t.html | 101 + html/man/TIFFcodec.3t.html | 102 + html/man/TIFFmemory.3t.html | 104 + html/man/TIFFquery.3t.html | 178 ++ html/man/TIFFsize.3t.html | 75 + html/man/TIFFstrip.3t.html | 131 ++ html/man/TIFFswab.3t.html | 108 + html/man/TIFFtile.3t.html | 183 ++ html/man/fax2ps.1.html | 210 ++ html/man/fax2tiff.1.html | 257 +++ html/man/gif2tiff.1.html | 112 + html/man/index.html | 69 + html/man/libtiff.3t.html | 612 ++++++ html/man/pal2rgb.1.html | 149 ++ html/man/ppm2tiff.1.html | 129 ++ html/man/ras2tiff.1.html | 127 ++ html/man/rgb2ycbcr.1.html | 129 ++ html/man/sgi2tiff.1.html | 123 ++ html/man/thumbnail.1.html | 123 ++ html/man/tiff2bw.1.html | 125 ++ html/man/tiff2ps.1.html | 237 ++ html/man/tiffcmp.1.html | 106 + html/man/tiffcp.1.html | 291 +++ html/man/tiffdither.1.html | 171 ++ html/man/tiffdump.1.html | 97 + html/man/tiffgt.1.html | 325 +++ html/man/tiffinfo.1.html | 114 + html/man/tiffmedian.1.html | 150 ++ html/man/tiffsplit.1.html | 90 + html/man/tiffsv.1.html | 192 ++ html/misc.html | 93 + html/support.html | 682 ++++++ html/tools.html | 178 ++ html/v3.4beta007.html | 112 + html/v3.4beta016.html | 122 ++ html/v3.4beta018.html | 84 + html/v3.4beta024.html | 139 ++ html/v3.4beta028.html | 146 ++ html/v3.4beta029.html | 86 + html/v3.4beta031.html | 94 + html/v3.4beta032.html | 90 + html/v3.4beta033.html | 82 + html/v3.4beta034.html | 68 + html/v3.4beta035.html | 63 + html/v3.4beta036.html | 117 + html/v3.5.1.html | 75 + html/v3.5.2.html | 108 + html/v3.5.3.html | 132 ++ libtiff.dsp | 264 +++ libtiff.dsw | 29 + libtiff.ncb | Bin 0 -> 8186880 bytes libtiff.opt | Bin 0 -> 48640 bytes libtiff.plg | 136 ++ libtiff.sln | 19 + libtiff.sln.old | 21 + libtiff.suo | Bin 0 -> 11264 bytes libtiff.suo.old | Bin 0 -> 8192 bytes libtiff.vcproj | 978 +++++++++ libtiff.vcproj.7.10.old | 753 +++++++ libtiff.vcproj.Jupiter.jens.user | 65 + libtiff/Makefile.in | 348 +++ libtiff/Makefile.lcc | 129 ++ libtiff/fax3sm.c | 1046 +++++++++ libtiff/fax3sm_winnt.c | 1046 +++++++++ libtiff/libtiff.def | 77 + libtiff/makefile.vc | 79 + libtiff/mkg3states.c | 436 ++++ libtiff/mkspans.c | 72 + libtiff/mkversion.c | 132 ++ libtiff/t4.h | 285 +++ libtiff/tif_acorn.c | 519 +++++ libtiff/tif_apple.c | 256 +++ libtiff/tif_atari.c | 243 +++ libtiff/tif_aux.c | 206 ++ libtiff/tif_close.c | 50 + libtiff/tif_codec.c | 117 + libtiff/tif_compress.c | 231 ++ libtiff/tif_dir.c | 1295 +++++++++++ libtiff/tif_dir.h | 268 +++ libtiff/tif_dirinfo.c | 402 ++++ libtiff/tif_dirread.c | 1375 ++++++++++++ libtiff/tif_dirwrite.c | 1021 +++++++++ libtiff/tif_dumpmode.c | 118 + libtiff/tif_error.c | 49 + libtiff/tif_fax3.c | 1562 +++++++++++++ libtiff/tif_fax3.h | 522 +++++ libtiff/tif_flush.c | 60 + libtiff/tif_getimage.c | 2046 ++++++++++++++++++ libtiff/tif_jpeg.c | 1484 +++++++++++++ libtiff/tif_luv.c | 1425 ++++++++++++ libtiff/tif_lzw.c | 1013 +++++++++ libtiff/tif_msdos.c | 179 ++ libtiff/tif_next.c | 142 ++ libtiff/tif_open.c | 477 ++++ libtiff/tif_packbits.c | 261 +++ libtiff/tif_pixarlog.c | 1309 +++++++++++ libtiff/tif_predict.c | 461 ++++ libtiff/tif_predict.h | 61 + libtiff/tif_print.c | 519 +++++ libtiff/tif_read.c | 622 ++++++ libtiff/tif_strip.c | 192 ++ libtiff/tif_swab.c | 217 ++ libtiff/tif_thunder.c | 154 ++ libtiff/tif_tile.c | 219 ++ libtiff/tif_unix.c | 224 ++ libtiff/tif_version.c | 34 + libtiff/tif_vms.c | 588 +++++ libtiff/tif_warning.c | 49 + libtiff/tif_win3.c | 225 ++ libtiff/tif_win32.c | 314 +++ libtiff/tif_write.c | 659 ++++++ libtiff/tif_zip.c | 367 ++++ libtiff/tiff.h | 439 ++++ libtiff/tiffcomp.h | 214 ++ libtiff/tiffconf.h | 143 ++ libtiff/tiffio.h | 327 +++ libtiff/tiffiop.h | 279 +++ libtiff/uvcode.h | 173 ++ libtiff/version.h | 1 + man/Makefile.in | 407 ++++ man/TIFFClose.3t | 51 + man/TIFFError.3t | 69 + man/TIFFFlush.3t | 64 + man/TIFFGetField.3t | 210 ++ man/TIFFOpen.3t | 273 +++ man/TIFFPrintDirectory.3t | 71 + man/TIFFRGBAImage.3t | 277 +++ man/TIFFReadDirectory.3t | 164 ++ man/TIFFReadEncodedStrip.3t | 73 + man/TIFFReadEncodedTile.3t | 76 + man/TIFFReadRGBAImage.3t | 187 ++ man/TIFFReadRGBAStrip.3t | 176 ++ man/TIFFReadRGBATile.3t | 178 ++ man/TIFFReadRawStrip.3t | 63 + man/TIFFReadRawTile.3t | 65 + man/TIFFReadScanline.3t | 99 + man/TIFFReadTile.3t | 85 + man/TIFFSetDirectory.3t | 78 + man/TIFFSetField.3t | 213 ++ man/TIFFWarning.3t | 70 + man/TIFFWriteDirectory.3t | 104 + man/TIFFWriteEncodedStrip.3t | 105 + man/TIFFWriteEncodedTile.3t | 98 + man/TIFFWriteRawStrip.3t | 94 + man/TIFFWriteRawTile.3t | 83 + man/TIFFWriteScanline.3t | 162 ++ man/TIFFWriteTile.3t | 77 + man/TIFFbuffer.3t | 77 + man/TIFFcodec.3t | 73 + man/TIFFmemory.3t | 84 + man/TIFFquery.3t | 137 ++ man/TIFFsize.3t | 57 + man/TIFFstrip.3t | 96 + man/TIFFswab.3t | 73 + man/TIFFtile.3t | 134 ++ man/fax2ps.1 | 158 ++ man/fax2tiff.1 | 205 ++ man/gif2tiff.1 | 78 + man/libtiff.3t | 519 +++++ man/pal2rgb.1 | 108 + man/ppm2tiff.1 | 97 + man/ras2tiff.1 | 92 + man/rgb2ycbcr.1 | 98 + man/sgi2tiff.1 | 90 + man/thumbnail.1 | 87 + man/tiff2bw.1 | 91 + man/tiff2ps.1 | 177 ++ man/tiffcmp.1 | 74 + man/tiffcp.1 | 221 ++ man/tiffdither.1 | 125 ++ man/tiffdump.1 | 74 + man/tiffgt.1 | 242 +++ man/tiffinfo.1 | 85 + man/tiffmedian.1 | 109 + man/tiffsplit.1 | 66 + man/tiffsv.1 | 139 ++ port/Makefile.in | 67 + port/getopt.c | 116 + port/install.sh.in | 246 +++ port/irix/so_locations | 4 + port/strcasecmp.c | 98 + port/strtoul.c | 107 + readme | 61 + test_pics.sh | 28 + todo | 9 + tools/Makefile.in | 259 +++ tools/Makefile.lcc | 137 ++ tools/Makefile.vc | 31 + tools/fax2ps.c | 437 ++++ tools/fax2tiff.c | 359 +++ tools/gif2tiff.c | 513 +++++ tools/pal2rgb.c | 386 ++++ tools/ppm2tiff.c | 242 +++ tools/ras2tiff.c | 266 +++ tools/rasterfile.h | 41 + tools/rgb2ycbcr.c | 341 +++ tools/sgi2tiff.c | 321 +++ tools/sgigt.c | 984 +++++++++ tools/sgisv.c | 310 +++ tools/thumbnail.c | 572 +++++ tools/tiff2bw.c | 401 ++++ tools/tiff2ps.c | 1408 ++++++++++++ tools/tiff2rgba.c | 453 ++++ tools/tiffcmp.c | 483 +++++ tools/tiffcp.c | 1314 +++++++++++ tools/tiffdither.c | 314 +++ tools/tiffdump.c | 755 +++++++ tools/tiffinfo.c | 429 ++++ tools/tiffmedian.c | 890 ++++++++ tools/tiffsplit.c | 226 ++ tools/ycbcr.c | 161 ++ version | 1 + 429 files changed, 82326 insertions(+) create mode 100755 COPYRIGHT create mode 100755 Debug/BuildLog.htm create mode 100755 Debug/fax3sm.obj create mode 100755 Debug/libtiff.pch create mode 100755 Debug/tif_aux.obj create mode 100755 Debug/tif_close.obj create mode 100755 Debug/tif_codec.obj create mode 100755 Debug/tif_compress.obj create mode 100755 Debug/tif_dir.obj create mode 100755 Debug/tif_dirinfo.obj create mode 100755 Debug/tif_dirread.obj create mode 100755 Debug/tif_dirwrite.obj create mode 100755 Debug/tif_dumpmode.obj create mode 100755 Debug/tif_error.obj create mode 100755 Debug/tif_fax3.obj create mode 100755 Debug/tif_flush.obj create mode 100755 Debug/tif_getimage.obj create mode 100755 Debug/tif_jpeg.obj create mode 100755 Debug/tif_luv.obj create mode 100755 Debug/tif_lzw.obj create mode 100755 Debug/tif_next.obj create mode 100755 Debug/tif_open.obj create mode 100755 Debug/tif_packbits.obj create mode 100755 Debug/tif_pixarlog.obj create mode 100755 Debug/tif_predict.obj create mode 100755 Debug/tif_print.obj create mode 100755 Debug/tif_read.obj create mode 100755 Debug/tif_strip.obj create mode 100755 Debug/tif_swab.obj create mode 100755 Debug/tif_thunder.obj create mode 100755 Debug/tif_tile.obj create mode 100755 Debug/tif_version.obj create mode 100755 Debug/tif_warning.obj create mode 100755 Debug/tif_win32.obj create mode 100755 Debug/tif_write.obj create mode 100755 Debug/tif_zip.obj create mode 100755 Debug/vc60.idb create mode 100755 Debug/vc70.idb create mode 100755 Debug/vc70.pdb create mode 100755 Debug/vc90.idb create mode 100755 Debug/vc90.pdb create mode 100755 Makefile.in create mode 100755 Release/BuildLog.htm create mode 100755 Release/fax3sm.obj create mode 100755 Release/libtiff.pch create mode 100755 Release/tif_aux.obj create mode 100755 Release/tif_close.obj create mode 100755 Release/tif_codec.obj create mode 100755 Release/tif_compress.obj create mode 100755 Release/tif_dir.obj create mode 100755 Release/tif_dirinfo.obj create mode 100755 Release/tif_dirread.obj create mode 100755 Release/tif_dirwrite.obj create mode 100755 Release/tif_dumpmode.obj create mode 100755 Release/tif_error.obj create mode 100755 Release/tif_fax3.obj create mode 100755 Release/tif_flush.obj create mode 100755 Release/tif_getimage.obj create mode 100755 Release/tif_jpeg.obj create mode 100755 Release/tif_luv.obj create mode 100755 Release/tif_lzw.obj create mode 100755 Release/tif_next.obj create mode 100755 Release/tif_open.obj create mode 100755 Release/tif_packbits.obj create mode 100755 Release/tif_pixarlog.obj create mode 100755 Release/tif_predict.obj create mode 100755 Release/tif_print.obj create mode 100755 Release/tif_read.obj create mode 100755 Release/tif_strip.obj create mode 100755 Release/tif_swab.obj create mode 100755 Release/tif_thunder.obj create mode 100755 Release/tif_tile.obj create mode 100755 Release/tif_version.obj create mode 100755 Release/tif_warning.obj create mode 100755 Release/tif_win32.obj create mode 100755 Release/tif_write.obj create mode 100755 Release/tif_zip.obj create mode 100755 Release/vc60.idb create mode 100755 Release/vc70.idb create mode 100755 Release/vc90.idb create mode 100755 UpgradeLog.XML create mode 100755 _UpgradeReport_Files/UpgradeReport.css create mode 100755 _UpgradeReport_Files/UpgradeReport.xslt create mode 100755 _UpgradeReport_Files/UpgradeReport_Minus.gif create mode 100755 _UpgradeReport_Files/UpgradeReport_Plus.gif create mode 100755 config.guess create mode 100755 config.site create mode 100755 config.sub create mode 100755 configure create mode 100755 contrib/acorn/Makefile create mode 100755 contrib/acorn/ReadMe create mode 100755 contrib/acorn/SetVars create mode 100755 contrib/acorn/cleanlib create mode 100755 contrib/acorn/convert create mode 100755 contrib/acorn/install create mode 100755 contrib/addtiffo/Makefile create mode 100755 contrib/addtiffo/Makefile.vc create mode 100755 contrib/addtiffo/addtiffo.c create mode 100755 contrib/addtiffo/readme create mode 100755 contrib/dbs/Imakefile create mode 100755 contrib/dbs/readme create mode 100755 contrib/dbs/tiff-bi.c create mode 100755 contrib/dbs/tiff-grayscale.c create mode 100755 contrib/dbs/tiff-palette.c create mode 100755 contrib/dbs/tiff-rgb.c create mode 100755 contrib/dbs/xtiff/Imakefile create mode 100755 contrib/dbs/xtiff/patchlevel.h create mode 100755 contrib/dbs/xtiff/readme create mode 100755 contrib/dbs/xtiff/xtiff.c create mode 100755 contrib/dbs/xtiff/xtifficon.h create mode 100755 contrib/dosdjgpp/Makefile.lib create mode 100755 contrib/dosdjgpp/Makefile.tools create mode 100755 contrib/dosdjgpp/Makefile.top create mode 100755 contrib/dosdjgpp/conf.bat create mode 100755 contrib/dosdjgpp/port.h create mode 100755 contrib/dosdjgpp/readme create mode 100755 contrib/iptcutil/Makefile create mode 100755 contrib/iptcutil/iptcutil.c create mode 100755 contrib/iptcutil/test.iptc create mode 100755 contrib/mac-cw/Makefile.script create mode 100755 contrib/mac-cw/mac_main.c create mode 100755 contrib/mac-cw/mac_main.h create mode 100755 contrib/mac-cw/metrowerks.note create mode 100755 contrib/mac-cw/mkg3_main.c create mode 100755 contrib/mac-cw/readme create mode 100755 contrib/mac-cw/version.h create mode 100755 contrib/mac-mpw/build.mpw create mode 100755 contrib/mac-mpw/libtiff.make create mode 100755 contrib/mac-mpw/mactrans.c create mode 100755 contrib/mac-mpw/port.make create mode 100755 contrib/mac-mpw/readme create mode 100755 contrib/mac-mpw/tools.make create mode 100755 contrib/mac-mpw/top.make create mode 100755 contrib/mfs/mfs_file.c create mode 100755 contrib/mfs/readme create mode 100755 contrib/pds/readme create mode 100755 contrib/pds/tif_imageiter.c create mode 100755 contrib/pds/tif_imageiter.h create mode 100755 contrib/pds/tif_pdsdirread.c create mode 100755 contrib/pds/tif_pdsdirwrite.c create mode 100755 contrib/ras/ras2tif.c create mode 100755 contrib/ras/readme create mode 100755 contrib/ras/tif2ras.c create mode 100755 contrib/vms/libtiff/makevms.com create mode 100755 contrib/vms/libtiff/tiffvec.mar create mode 100755 contrib/vms/tools/makevms.com create mode 100755 contrib/win32/dllshell.c create mode 100755 contrib/win32/libtiff.def create mode 100755 contrib/win32/readme create mode 100755 contrib/win95/Makefile.w95 create mode 100755 contrib/win95/readme create mode 100755 contrib/win95/tiff2dib.c create mode 100755 contrib/winnt/README.console create mode 100755 contrib/winnt/fax3sm.c create mode 100755 contrib/winnt/libtiff.def create mode 100755 contrib/winnt/libtiff.mak create mode 100755 contrib/winnt/libtiff.vcp create mode 100755 contrib/winnt/readme create mode 100755 contrib/winnt/version.h create mode 100755 dist/newalpha create mode 100755 dist/newversion create mode 100755 dist/tiff.alpha create mode 100755 dist/tiff.spec create mode 100755 dist/tiff.version create mode 100755 html/Makefile.in create mode 100755 html/bugs.html create mode 100755 html/build.html create mode 100755 html/contrib.html create mode 100755 html/document.html create mode 100755 html/images.html create mode 100755 html/images/back.gif create mode 100755 html/images/bali.jpg create mode 100755 html/images/cat.gif create mode 100755 html/images/cover.jpg create mode 100755 html/images/cramps.gif create mode 100755 html/images/dave.gif create mode 100755 html/images/info.gif create mode 100755 html/images/jello.jpg create mode 100755 html/images/jim.gif create mode 100755 html/images/note.gif create mode 100755 html/images/oxford.gif create mode 100755 html/images/quad.jpg create mode 100755 html/images/ring.gif create mode 100755 html/images/smallliz.jpg create mode 100755 html/images/strike.gif create mode 100755 html/images/warning.gif create mode 100755 html/index.html create mode 100755 html/internals.html create mode 100755 html/intro.html create mode 100755 html/libtiff.html create mode 100755 html/man/TIFFClose.3t.html create mode 100755 html/man/TIFFError.3t.html create mode 100755 html/man/TIFFFlush.3t.html create mode 100755 html/man/TIFFGetField.3t.html create mode 100755 html/man/TIFFOpen.3t.html create mode 100755 html/man/TIFFPrintDirectory.3t.html create mode 100755 html/man/TIFFRGBAImage.3t.html create mode 100755 html/man/TIFFReadDirectory.3t.html create mode 100755 html/man/TIFFReadEncodedStrip.3t.html create mode 100755 html/man/TIFFReadEncodedTile.3t.html create mode 100755 html/man/TIFFReadRGBAImage.3t.html create mode 100755 html/man/TIFFReadRGBAStrip.3t.html create mode 100755 html/man/TIFFReadRGBATile.3t.html create mode 100755 html/man/TIFFReadRawStrip.3t.html create mode 100755 html/man/TIFFReadRawTile.3t.html create mode 100755 html/man/TIFFReadScanline.3t.html create mode 100755 html/man/TIFFReadTile.3t.html create mode 100755 html/man/TIFFSetDirectory.3t.html create mode 100755 html/man/TIFFSetField.3t.html create mode 100755 html/man/TIFFWarning.3t.html create mode 100755 html/man/TIFFWriteDirectory.3t.html create mode 100755 html/man/TIFFWriteEncodedStrip.3t.html create mode 100755 html/man/TIFFWriteEncodedTile.3t.html create mode 100755 html/man/TIFFWriteRawStrip.3t.html create mode 100755 html/man/TIFFWriteRawTile.3t.html create mode 100755 html/man/TIFFWriteScanline.3t.html create mode 100755 html/man/TIFFWriteTile.3t.html create mode 100755 html/man/TIFFbuffer.3t.html create mode 100755 html/man/TIFFcodec.3t.html create mode 100755 html/man/TIFFmemory.3t.html create mode 100755 html/man/TIFFquery.3t.html create mode 100755 html/man/TIFFsize.3t.html create mode 100755 html/man/TIFFstrip.3t.html create mode 100755 html/man/TIFFswab.3t.html create mode 100755 html/man/TIFFtile.3t.html create mode 100755 html/man/fax2ps.1.html create mode 100755 html/man/fax2tiff.1.html create mode 100755 html/man/gif2tiff.1.html create mode 100755 html/man/index.html create mode 100755 html/man/libtiff.3t.html create mode 100755 html/man/pal2rgb.1.html create mode 100755 html/man/ppm2tiff.1.html create mode 100755 html/man/ras2tiff.1.html create mode 100755 html/man/rgb2ycbcr.1.html create mode 100755 html/man/sgi2tiff.1.html create mode 100755 html/man/thumbnail.1.html create mode 100755 html/man/tiff2bw.1.html create mode 100755 html/man/tiff2ps.1.html create mode 100755 html/man/tiffcmp.1.html create mode 100755 html/man/tiffcp.1.html create mode 100755 html/man/tiffdither.1.html create mode 100755 html/man/tiffdump.1.html create mode 100755 html/man/tiffgt.1.html create mode 100755 html/man/tiffinfo.1.html create mode 100755 html/man/tiffmedian.1.html create mode 100755 html/man/tiffsplit.1.html create mode 100755 html/man/tiffsv.1.html create mode 100755 html/misc.html create mode 100755 html/support.html create mode 100755 html/tools.html create mode 100755 html/v3.4beta007.html create mode 100755 html/v3.4beta016.html create mode 100755 html/v3.4beta018.html create mode 100755 html/v3.4beta024.html create mode 100755 html/v3.4beta028.html create mode 100755 html/v3.4beta029.html create mode 100755 html/v3.4beta031.html create mode 100755 html/v3.4beta032.html create mode 100755 html/v3.4beta033.html create mode 100755 html/v3.4beta034.html create mode 100755 html/v3.4beta035.html create mode 100755 html/v3.4beta036.html create mode 100755 html/v3.5.1.html create mode 100755 html/v3.5.2.html create mode 100755 html/v3.5.3.html create mode 100755 libtiff.dsp create mode 100755 libtiff.dsw create mode 100755 libtiff.ncb create mode 100755 libtiff.opt create mode 100755 libtiff.plg create mode 100755 libtiff.sln create mode 100755 libtiff.sln.old create mode 100755 libtiff.suo create mode 100755 libtiff.suo.old create mode 100755 libtiff.vcproj create mode 100755 libtiff.vcproj.7.10.old create mode 100755 libtiff.vcproj.Jupiter.jens.user create mode 100755 libtiff/Makefile.in create mode 100755 libtiff/Makefile.lcc create mode 100755 libtiff/fax3sm.c create mode 100755 libtiff/fax3sm_winnt.c create mode 100755 libtiff/libtiff.def create mode 100755 libtiff/makefile.vc create mode 100755 libtiff/mkg3states.c create mode 100755 libtiff/mkspans.c create mode 100755 libtiff/mkversion.c create mode 100755 libtiff/t4.h create mode 100755 libtiff/tif_acorn.c create mode 100755 libtiff/tif_apple.c create mode 100755 libtiff/tif_atari.c create mode 100755 libtiff/tif_aux.c create mode 100755 libtiff/tif_close.c create mode 100755 libtiff/tif_codec.c create mode 100755 libtiff/tif_compress.c create mode 100755 libtiff/tif_dir.c create mode 100755 libtiff/tif_dir.h create mode 100755 libtiff/tif_dirinfo.c create mode 100755 libtiff/tif_dirread.c create mode 100755 libtiff/tif_dirwrite.c create mode 100755 libtiff/tif_dumpmode.c create mode 100755 libtiff/tif_error.c create mode 100755 libtiff/tif_fax3.c create mode 100755 libtiff/tif_fax3.h create mode 100755 libtiff/tif_flush.c create mode 100755 libtiff/tif_getimage.c create mode 100755 libtiff/tif_jpeg.c create mode 100755 libtiff/tif_luv.c create mode 100755 libtiff/tif_lzw.c create mode 100755 libtiff/tif_msdos.c create mode 100755 libtiff/tif_next.c create mode 100755 libtiff/tif_open.c create mode 100755 libtiff/tif_packbits.c create mode 100755 libtiff/tif_pixarlog.c create mode 100755 libtiff/tif_predict.c create mode 100755 libtiff/tif_predict.h create mode 100755 libtiff/tif_print.c create mode 100755 libtiff/tif_read.c create mode 100755 libtiff/tif_strip.c create mode 100755 libtiff/tif_swab.c create mode 100755 libtiff/tif_thunder.c create mode 100755 libtiff/tif_tile.c create mode 100755 libtiff/tif_unix.c create mode 100755 libtiff/tif_version.c create mode 100755 libtiff/tif_vms.c create mode 100755 libtiff/tif_warning.c create mode 100755 libtiff/tif_win3.c create mode 100755 libtiff/tif_win32.c create mode 100755 libtiff/tif_write.c create mode 100755 libtiff/tif_zip.c create mode 100755 libtiff/tiff.h create mode 100755 libtiff/tiffcomp.h create mode 100755 libtiff/tiffconf.h create mode 100755 libtiff/tiffio.h create mode 100755 libtiff/tiffiop.h create mode 100755 libtiff/uvcode.h create mode 100755 libtiff/version.h create mode 100755 man/Makefile.in create mode 100755 man/TIFFClose.3t create mode 100755 man/TIFFError.3t create mode 100755 man/TIFFFlush.3t create mode 100755 man/TIFFGetField.3t create mode 100755 man/TIFFOpen.3t create mode 100755 man/TIFFPrintDirectory.3t create mode 100755 man/TIFFRGBAImage.3t create mode 100755 man/TIFFReadDirectory.3t create mode 100755 man/TIFFReadEncodedStrip.3t create mode 100755 man/TIFFReadEncodedTile.3t create mode 100755 man/TIFFReadRGBAImage.3t create mode 100755 man/TIFFReadRGBAStrip.3t create mode 100755 man/TIFFReadRGBATile.3t create mode 100755 man/TIFFReadRawStrip.3t create mode 100755 man/TIFFReadRawTile.3t create mode 100755 man/TIFFReadScanline.3t create mode 100755 man/TIFFReadTile.3t create mode 100755 man/TIFFSetDirectory.3t create mode 100755 man/TIFFSetField.3t create mode 100755 man/TIFFWarning.3t create mode 100755 man/TIFFWriteDirectory.3t create mode 100755 man/TIFFWriteEncodedStrip.3t create mode 100755 man/TIFFWriteEncodedTile.3t create mode 100755 man/TIFFWriteRawStrip.3t create mode 100755 man/TIFFWriteRawTile.3t create mode 100755 man/TIFFWriteScanline.3t create mode 100755 man/TIFFWriteTile.3t create mode 100755 man/TIFFbuffer.3t create mode 100755 man/TIFFcodec.3t create mode 100755 man/TIFFmemory.3t create mode 100755 man/TIFFquery.3t create mode 100755 man/TIFFsize.3t create mode 100755 man/TIFFstrip.3t create mode 100755 man/TIFFswab.3t create mode 100755 man/TIFFtile.3t create mode 100755 man/fax2ps.1 create mode 100755 man/fax2tiff.1 create mode 100755 man/gif2tiff.1 create mode 100755 man/libtiff.3t create mode 100755 man/pal2rgb.1 create mode 100755 man/ppm2tiff.1 create mode 100755 man/ras2tiff.1 create mode 100755 man/rgb2ycbcr.1 create mode 100755 man/sgi2tiff.1 create mode 100755 man/thumbnail.1 create mode 100755 man/tiff2bw.1 create mode 100755 man/tiff2ps.1 create mode 100755 man/tiffcmp.1 create mode 100755 man/tiffcp.1 create mode 100755 man/tiffdither.1 create mode 100755 man/tiffdump.1 create mode 100755 man/tiffgt.1 create mode 100755 man/tiffinfo.1 create mode 100755 man/tiffmedian.1 create mode 100755 man/tiffsplit.1 create mode 100755 man/tiffsv.1 create mode 100755 port/Makefile.in create mode 100755 port/getopt.c create mode 100755 port/install.sh.in create mode 100755 port/irix/so_locations create mode 100755 port/strcasecmp.c create mode 100755 port/strtoul.c create mode 100755 readme create mode 100755 test_pics.sh create mode 100755 todo create mode 100755 tools/Makefile.in create mode 100755 tools/Makefile.lcc create mode 100755 tools/Makefile.vc create mode 100755 tools/fax2ps.c create mode 100755 tools/fax2tiff.c create mode 100755 tools/gif2tiff.c create mode 100755 tools/pal2rgb.c create mode 100755 tools/ppm2tiff.c create mode 100755 tools/ras2tiff.c create mode 100755 tools/rasterfile.h create mode 100755 tools/rgb2ycbcr.c create mode 100755 tools/sgi2tiff.c create mode 100755 tools/sgigt.c create mode 100755 tools/sgisv.c create mode 100755 tools/thumbnail.c create mode 100755 tools/tiff2bw.c create mode 100755 tools/tiff2ps.c create mode 100755 tools/tiff2rgba.c create mode 100755 tools/tiffcmp.c create mode 100755 tools/tiffcp.c create mode 100755 tools/tiffdither.c create mode 100755 tools/tiffdump.c create mode 100755 tools/tiffinfo.c create mode 100755 tools/tiffmedian.c create mode 100755 tools/tiffsplit.c create mode 100755 tools/ycbcr.c create mode 100755 version diff --git a/COPYRIGHT b/COPYRIGHT new file mode 100755 index 0000000..219b27a --- /dev/null +++ b/COPYRIGHT @@ -0,0 +1,21 @@ +Copyright (c) 1988-1997 Sam Leffler +Copyright (c) 1991-1997 Silicon Graphics, Inc. + +Permission to use, copy, modify, distribute, and sell this software and +its documentation for any purpose is hereby granted without fee, provided +that (i) the above copyright notices and this permission notice appear in +all copies of the software and related documentation, and (ii) the names of +Sam Leffler and Silicon Graphics may not be used in any advertising or +publicity relating to the software without the specific, prior written +permission of Sam Leffler and Silicon Graphics. + +THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +OF THIS SOFTWARE. diff --git a/Debug/BuildLog.htm b/Debug/BuildLog.htm new file mode 100755 index 0000000000000000000000000000000000000000..f914870d3f4f5686c84047bae29b1ea82b152e31 GIT binary patch literal 26228 zcmeHQYfoE85Z%v6{SQ~ET1eX1UW@qPKkN^Jbu4$Qp>6(tYXTCCXhSv>qVComwkIjyGVeXsE z{D}WA%rkQnB|n*$=8<`2HqAA&WqRfatu*ZWP0+kEZ*g@EJhh;X)TBGdd-0;@JC?46 zUXM*5wF9(zg7+qRS~9EPabqJ-IJzp@ucJRl@fK|~F0KY>vx>Pj(8HN&gK~ftHqq)L zUf-a!Y7XrfJ80(^HD6;k5AENMxrKJ_g5wzfGy92B;iu+sRvA7WfWHAwj=qie4k-Hg z^oK3|&MXf{^8j;dqqdIvJ@6k6^=jX(^aWr|!katujJ7ybez75GxCf}l;s_pg8aKx00zO{#F$Gs+L?S}0o zT;Z0LZ(g>2E5T#DH!!;m%;y4AcA&j21#3DamngJy-Wd$WW<^lGI-Jpf>w0mgx zfr9Q8v~(SFtDxOyXn7yI68oXWJICLewd)@q+hg>$1-ZqP)HaTA2RmIKYrxO@*v+=k zEl4wx##(W-GLxSnWnOVU8Bh@; ztPFG>K#t3pdl&UJpn*1F9Hm&!3ih}*=BA@P0}hG4hML~lS#A5&vLp0C{nPQBVl>na zvGh6~&Ye1}rEWogXlvP%j;9Yj<*u)#riY?m2kubx33RPZpos&4k&8R@I)s5{VyGd1mrIaSiWv18WCRUY^mwRR_IzM_UVIZHK2~MaPRDbhnl17g{V8m3QT5agljUb5FY9Uy`@P; zr=#VmiSy^E`f6;Gi_)qoM^v-=#uJxrR0mj<^C9h=`PJ?YqkfN!-FukyW2i?NJP`I+ zz~^&&{R7tO%lbgv|BfIfu`@lpA9`%=V^rd=@svR6%PI^oa_)qqbLDRKrF}g5fuF<2 zdkIfqBl0J>*B9_|zCqdINlrelO!odJsKi4Jy%h51{nOB==)qdQ$@vv|O6OBJlxb-5 z2-eYi4bjqvdZ^(N>reoCK0MpllIVH7#nSWSZKIAWw!<1OuTeS~IE-ki{Z6GB&FFrp z;qrT~hMFVdZmy#hFF`}={SOVb_iZ%PqyCeQEB4iNTtq9eE?%LQ$9bL_`pNWxQ6lFx zYg+d{xrUl&?7Y{n<8kK-4Rw5S(eUt8kv}2nc(?|PcInVPsfBSTNH>;`^DAU0x@ynj zvYnTn#S=tM_VBlhKk*nCLHqB=1fK${1B{dJ*)YCYhb=p^UJvJxVuHGOcN`NG|B-r4 zE#e7|FZz;h&-1aCIeThrBD&>tf)N;Bn%Atj#_MQY6KZ@|8{3euHjH!lam2PQ;r3@zv zo~^h-Y}fV5)@1E!D0QRc-50jc6JiB@GvZo7ban@yU*c*9SG24ZSf=~9eqy80yP)7$ zpM#H_9IY=?J`l0PSwKF~er`!b`U}ls8rEwd*E`skATxFDTrRX1@(vZ04(CN$a#5?j1UdUAYGZWdt%vs{Lv6^%tmZ!9JpMkc`}P;$Mcjr2+?>WC zy@WZh43WNx`G`(1qHqMc5sNNX%axV$Ip^JiRODn=fgH&t3}K?oQmzB zWg&+BKFAWDu*dC@uE)_6+*MiTaXl^AyJ(l8Hnh)v-)aJhwCP{oLg&YjZ1m@}(PGUD zuqw1?t9CCCE2X#5`PG@fB173u7k&VIAtFZ26G3Cjt~vw&rOdoE!)VR`zo%x4zU*)N^_X5s8tf>pl!iJ5fv zOJ_f3-_SlS_wPN4QG!)oPd-M9FV8@HxrCEnvdhWGm<=BzJz12V$ahcVPj`H|glFWE zkCE*1EZF7c^lXv+21|;`O@B;oIXzpHu#6bRY}n;edQJ}C@k(}i7VI*ka_PQb!tyL& zIo&Hsag3|=G2HjFXaX3viu;#o@5sp#lPgpa9KjVzPL<{ zlV*Gn?WFaPtPqkr#AQkMxgn+_d)7Wqa((#!9en30WzpyFI(+TGPx~E- U4`qcbLY}lJ{ACu>`d^v(2R)HiLI3~& literal 0 HcmV?d00001 diff --git a/Debug/fax3sm.obj b/Debug/fax3sm.obj new file mode 100755 index 0000000000000000000000000000000000000000..51c9a3097e03073ee4ae4727f9639e28b7dbf219 GIT binary patch literal 101315 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 C6p}{( literal 0 HcmV?d00001 diff --git a/Debug/libtiff.pch b/Debug/libtiff.pch new file mode 100755 index 0000000000000000000000000000000000000000..3bb07268697854fb0ddee01226e90a6f8c0510c2 GIT binary patch literal 262144 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 Z?*ZQfz6X2{_#W^*;CsOL!2e|r{6EYPiM{{; literal 0 HcmV?d00001 diff --git a/Debug/tif_aux.obj b/Debug/tif_aux.obj new file mode 100755 index 0000000000000000000000000000000000000000..8c6d30d8c0f50f075257bba0fc815e97693dc64b GIT binary patch literal 26376 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 Nl4WsGvi(Z){{aMPBVzyn literal 0 HcmV?d00001 diff --git a/Debug/tif_close.obj b/Debug/tif_close.obj new file mode 100755 index 0000000000000000000000000000000000000000..350692ce71055cba2b6f9d42d1b6161c7b4a5e0c GIT binary patch literal 18996 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 KCy6W>X8#ZRQg-G5 literal 0 HcmV?d00001 diff --git a/Debug/tif_codec.obj b/Debug/tif_codec.obj new file mode 100755 index 0000000000000000000000000000000000000000..47d0c48f0f0e2644f7bde8ff27dad5390495ed15 GIT binary patch literal 23308 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

k_j$8lku~<$eh<*7GUZ6s*l^IZ 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 literal 0 HcmV?d00001 diff --git a/Debug/tif_dirread.obj b/Debug/tif_dirread.obj new file mode 100755 index 0000000000000000000000000000000000000000..dd78e24dd1d0f3f80520e490ca9937f984af5a7f GIT binary patch literal 70878 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

6`(eJMK-tGiTJU>&d<@Snga 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 BY19A! literal 0 HcmV?d00001 diff --git a/Debug/tif_dirwrite.obj b/Debug/tif_dirwrite.obj new file mode 100755 index 0000000000000000000000000000000000000000..e8c2b9a272adf7b92d66303eebc980c896e3e9a0 GIT binary patch literal 58270 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 w-fIJrv6j9XY`W_;Rh+@&d2zmod@#!kc6R5kd; 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 literal 0 HcmV?d00001 diff --git a/Debug/tif_fax3.obj b/Debug/tif_fax3.obj new file mode 100755 index 0000000000000000000000000000000000000000..f534df833a9915e2d51c4cef2510aea344111471 GIT binary patch literal 100086 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 mWeCOSIW+${o literal 0 HcmV?d00001 diff --git a/Debug/tif_flush.obj b/Debug/tif_flush.obj new file mode 100755 index 0000000000000000000000000000000000000000..19081416ad094eef4f1022016144f2cd25c580f6 GIT binary patch literal 19353 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 HO342M+8i|p literal 0 HcmV?d00001 diff --git a/Debug/tif_jpeg.obj b/Debug/tif_jpeg.obj new file mode 100755 index 0000000000000000000000000000000000000000..707c73e2caadb068cb304adbc89e6faf9667134c GIT binary patch literal 16295 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 TQZFa*GU+#??EiH^J89#;Ez*3Z literal 0 HcmV?d00001 diff --git a/Debug/tif_luv.obj b/Debug/tif_luv.obj new file mode 100755 index 0000000000000000000000000000000000000000..53505f4fdcb17be84d71b96872831f5e323160f2 GIT binary patch literal 90179 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 F5o*#(wP#1EZ)*TMUgG#_*+vhz} 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 literal 0 HcmV?d00001 diff --git a/Debug/tif_lzw.obj b/Debug/tif_lzw.obj new file mode 100755 index 0000000000000000000000000000000000000000..c25e3520a3514c5668e430c00a04f2eab52341fb GIT binary patch literal 44482 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 literal 0 HcmV?d00001 diff --git a/Debug/tif_packbits.obj b/Debug/tif_packbits.obj new file mode 100755 index 0000000000000000000000000000000000000000..ce69e68e702dce4797341702139e2d5ee6b01d4e GIT binary patch literal 26165 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 literal 0 HcmV?d00001 diff --git a/Debug/tif_pixarlog.obj b/Debug/tif_pixarlog.obj new file mode 100755 index 0000000000000000000000000000000000000000..b6375536cde5b657fd948dc9854e25f5504d70e8 GIT binary patch literal 16307 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 literal 0 HcmV?d00001 diff --git a/Debug/tif_predict.obj b/Debug/tif_predict.obj new file mode 100755 index 0000000000000000000000000000000000000000..f93472040ddae081dfe10f32595101a685d39232 GIT binary patch literal 45087 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 literal 0 HcmV?d00001 diff --git a/Debug/tif_print.obj b/Debug/tif_print.obj new file mode 100755 index 0000000000000000000000000000000000000000..193018bf5f27b9a5d566f54446fbf4998c8ee00e GIT binary patch literal 61308 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 literal 0 HcmV?d00001 diff --git a/Debug/tif_strip.obj b/Debug/tif_strip.obj new file mode 100755 index 0000000000000000000000000000000000000000..906a6f7e88ff45ed9fd75dbdf747c5dce5841b33 GIT binary patch literal 24834 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 literal 0 HcmV?d00001 diff --git a/Debug/tif_swab.obj b/Debug/tif_swab.obj new file mode 100755 index 0000000000000000000000000000000000000000..14b4ae64b1f7950ff3d6d17c8a4cf27e50ee21c9 GIT binary patch literal 23937 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%0Dmrp1qc;fUpD*qR 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 literal 0 HcmV?d00001 diff --git a/Debug/tif_version.obj b/Debug/tif_version.obj new file mode 100755 index 0000000000000000000000000000000000000000..73904b72c45d612c2dbc4ea9964c1826dd15c0b8 GIT binary patch literal 17799 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 literal 0 HcmV?d00001 diff --git a/Debug/tif_warning.obj b/Debug/tif_warning.obj new file mode 100755 index 0000000000000000000000000000000000000000..7228b3f40ce08aea62de2097f604377a52d31822 GIT binary patch literal 18489 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 literal 0 HcmV?d00001 diff --git a/Debug/tif_win32.obj b/Debug/tif_win32.obj new file mode 100755 index 0000000000000000000000000000000000000000..3f7c23ddda2c060a311d01bd28ab805b412afa20 GIT binary patch literal 38238 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 literal 0 HcmV?d00001 diff --git a/Debug/tif_write.obj b/Debug/tif_write.obj new file mode 100755 index 0000000000000000000000000000000000000000..27c7a022605b62ae8ed99b1fff563be8bf0a0719 GIT binary patch literal 40736 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/ud6b%|XK*evqmP<_k%Ur- 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 jTjI7kyk6%l0}sA}>jn#jdc7 literal 0 HcmV?d00001 diff --git a/Debug/tif_zip.obj b/Debug/tif_zip.obj new file mode 100755 index 0000000000000000000000000000000000000000..da93462140448a454b784555abd0342afa2fd786 GIT binary patch literal 16287 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

349nl3O^8o9B~;C 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 V0jB|{0jB|{0jB|{ful|X{|{dCCRhLf literal 0 HcmV?d00001 diff --git a/Debug/vc70.idb b/Debug/vc70.idb new file mode 100755 index 0000000000000000000000000000000000000000..b92f45ccf4fbe526c9050793c9790b972f7a38ab GIT binary patch literal 265216 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 L0V4qyB=G+MjBov6 literal 0 HcmV?d00001 diff --git a/Debug/vc70.pdb b/Debug/vc70.pdb new file mode 100755 index 0000000000000000000000000000000000000000..5502a335d6aa77fc48e9e5e8a29dad62cb381fd9 GIT binary patch literal 626688 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%0D)LxAkA3WA#_z_MWXX(ope&x3@?`V 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 literal 0 HcmV?d00001 diff --git a/Debug/vc90.pdb b/Debug/vc90.pdb new file mode 100755 index 0000000000000000000000000000000000000000..ef95aaff52fa1d2ea8bd96ba1176d2a057945f72 GIT binary patch literal 94208 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%0Df2 zQf*QTq!vgmkXj(MKx%>10;vU33#1lEEs$CuwLoft{{ahVk3apS7Dz3SS|GJRYJt=O asRdFCq!vgmkXj(MKx%>10{^=$@c#fbU*gCB literal 0 HcmV?d00001 diff --git a/Makefile.in b/Makefile.in new file mode 100755 index 0000000..2cca4ff --- /dev/null +++ b/Makefile.in @@ -0,0 +1,556 @@ +#! smake +# $Header: /home/cvsroot/libtiff/Makefile.in,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +# +# @WARNING@ +# +# Tag Image File Format Library +# +# Copyright (c) 1988-1997 Sam Leffler +# Copyright (c) 1991-1997 Silicon Graphics, Inc. +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Sam Leffler and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# + +SRCDIR = @SRCDIR@ + +# +# VERSION: @VERSION@ +# DATE: @DATE@ +# TARGET: @TARGET@ +# CCOMPILER: @CCOMPILER@ +# +@SETMAKE@ +SHELL = @SCRIPT_SH@ +NULL = +ECHO = echo +GENDIST = ${TOOLROOT}/usr/sbin/gendist +INSTALL = @INSTALL@ + +all default: + @if [ "@PORT@" = yes ]; then \ + ${ECHO} "= "port; cd port; ${MAKE}; \ + else \ + true; \ + fi + @${ECHO} "= "libtiff; cd libtiff; ${MAKE} + @${ECHO} "= "tools; cd tools; ${MAKE} + @${ECHO} "= "man; cd man; ${MAKE} + +install: + @${ECHO} "= "libtiff; cd libtiff; ${MAKE} install + @${ECHO} "= "tools; cd tools; ${MAKE} install + @${ECHO} "= "man; cd man; ${MAKE} install + @if [ "@HTML@" = yes ]; then \ + ${ECHO} "= "html; cd html; ${MAKE} install; \ + else \ + true; \ + fi + +clean: + @if [ "@PORT@" = yes ]; then \ + ${ECHO} "= "port; cd port; ${MAKE} clean; \ + else \ + true; \ + fi + @${ECHO} "= "libtiff; cd libtiff; ${MAKE} clean + @${ECHO} "= "tools; cd tools; ${MAKE} clean + @${ECHO} "= "man; cd man; ${MAKE} clean +# -cd contrib/dbs; ${MAKE} clean +# -cd contrib/dbs/xtiff; ${MAKE} clean + +clobber distclean: clean + rm -f Makefile libtiff/port.h config.log + rm -f libtiff/Makefile + rm -f tools/Makefile + rm -f man/Makefile + rm -f port/Makefile port/install.sh + rm -f html/Makefile + +# +# The folllowing rule creates a binary distribution for IRIX. +# +installLink:: + if [ @DIR_LIB@ != /usr/lib ]; then \ + ${INSTALL} -idb tiff.sw.tools -F /usr/lib \ + -lns @DIR_LIB@/libtiff.@DSOSUF@ -O libtiff.@DSOSUF@; \ + else \ + true; \ + fi +product:: + test -d dist || mkdir dist + rm -f dist/rawidb + SRC=`pwd` RAWIDB=`pwd`/dist/rawidb ${MAKE} install installLink + rm -f dist/idb + sort -u +4 dist/rawidb > dist/idb + ${GENDIST} -v -dist dist -idb dist/idb \ + -sbase `pwd` -spec ${SRCDIR}/dist/tiff.spec + +# +# These rules are used to create the source distribution images +# + +HOST = sgi +COMPRESS= gzip +ZIPSUF = gz + +TIFFFILES=\ + configure \ + config.guess \ + config.sub \ + config.site \ + Makefile.in \ + README \ + VERSION \ + COPYRIGHT \ + TODO \ + test_pics.sh \ + dist/tiff.spec \ + dist/newalpha \ + dist/newversion \ + libtiff/Makefile.in \ + libtiff/Makefile.lcc \ + libtiff/makefile.vc \ + libtiff/libtiff.def \ + libtiff/t4.h \ + libtiff/tiff.h \ + libtiff/tiffcomp.h \ + libtiff/tiffconf.h \ + libtiff/tiffio.h \ + libtiff/tiffiop.h \ + libtiff/uvcode.h \ + libtiff/mkg3states.c \ + libtiff/mkspans.c \ + libtiff/mkversion.c \ + libtiff/tif_acorn.c \ + libtiff/tif_apple.c \ + libtiff/tif_atari.c \ + libtiff/tif_aux.c \ + libtiff/tif_close.c \ + libtiff/tif_codec.c \ + libtiff/tif_compress.c \ + libtiff/tif_dir.h \ + libtiff/tif_dir.c \ + libtiff/tif_dirinfo.c \ + libtiff/tif_dirread.c \ + libtiff/tif_dirwrite.c \ + libtiff/tif_dumpmode.c \ + libtiff/tif_error.c \ + libtiff/tif_fax3.c \ + libtiff/fax3sm_winnt.c \ + libtiff/tif_fax3.h \ + libtiff/tif_flush.c \ + libtiff/tif_getimage.c \ + libtiff/tif_jpeg.c \ + libtiff/tif_luv.c \ + libtiff/tif_lzw.c \ + libtiff/tif_msdos.c \ + libtiff/tif_next.c \ + libtiff/tif_open.c \ + libtiff/tif_packbits.c \ + libtiff/tif_pixarlog.c \ + libtiff/tif_predict.h \ + libtiff/tif_predict.c \ + libtiff/tif_print.c \ + libtiff/tif_read.c \ + libtiff/tif_strip.c \ + libtiff/tif_swab.c \ + libtiff/tif_thunder.c \ + libtiff/tif_tile.c \ + libtiff/tif_unix.c \ + libtiff/tif_version.c \ + libtiff/tif_vms.c \ + libtiff/tif_warning.c \ + libtiff/tif_win3.c \ + libtiff/tif_win32.c \ + libtiff/tif_write.c \ + libtiff/tif_zip.c \ + port/Makefile.in \ + port/getopt.c \ + port/install.sh.in \ + port/irix/so_locations \ + port/strcasecmp.c \ + port/strtoul.c \ + tools/Makefile.in \ + tools/Makefile.vc \ + tools/Makefile.lcc \ + tools/fax2tiff.c \ + tools/fax2ps.c \ + tools/gif2tiff.c \ + tools/pal2rgb.c \ + tools/ppm2tiff.c \ + tools/ras2tiff.c \ + tools/rasterfile.h \ + tools/rgb2ycbcr.c \ + tools/sgi2tiff.c \ + tools/sgigt.c \ + tools/sgisv.c \ + tools/thumbnail.c \ + tools/tiff2bw.c \ + tools/tiff2rgba.c \ + tools/tiff2ps.c \ + tools/tiffcmp.c \ + tools/tiffcp.c \ + tools/tiffdither.c \ + tools/tiffdump.c \ + tools/tiffinfo.c \ + tools/tiffmedian.c \ + tools/tiffsplit.c \ + tools/ycbcr.c \ + man/Makefile.in \ + man/fax2tiff.1 \ + man/fax2ps.1 \ + man/gif2tiff.1 \ + man/pal2rgb.1 \ + man/ppm2tiff.1 \ + man/ras2tiff.1 \ + man/rgb2ycbcr.1 \ + man/sgi2tiff.1 \ + man/thumbnail.1 \ + man/tiff2bw.1 \ + man/tiff2ps.1 \ + man/tiffcmp.1 \ + man/tiffcp.1 \ + man/tiffdither.1 \ + man/tiffdump.1 \ + man/tiffgt.1 \ + man/tiffinfo.1 \ + man/tiffmedian.1 \ + man/tiffsplit.1 \ + man/tiffsv.1 \ + man/TIFFClose.3t \ + man/TIFFError.3t \ + man/TIFFFlush.3t \ + man/TIFFGetField.3t \ + man/TIFFOpen.3t \ + man/TIFFPrintDirectory.3t \ + man/TIFFReadDirectory.3t \ + man/TIFFReadEncodedStrip.3t \ + man/TIFFReadEncodedTile.3t \ + man/TIFFReadRGBAImage.3t \ + man/TIFFReadRGBAStrip.3t \ + man/TIFFReadRGBATile.3t \ + man/TIFFReadRawStrip.3t \ + man/TIFFReadRawTile.3t \ + man/TIFFReadScanline.3t \ + man/TIFFReadTile.3t \ + man/TIFFRGBAImage.3t \ + man/TIFFSetDirectory.3t \ + man/TIFFSetField.3t \ + man/TIFFWarning.3t \ + man/TIFFWriteDirectory.3t \ + man/TIFFWriteEncodedStrip.3t \ + man/TIFFWriteEncodedTile.3t \ + man/TIFFWriteTile.3t \ + man/TIFFWriteRawStrip.3t \ + man/TIFFWriteRawTile.3t \ + man/TIFFWriteScanline.3t \ + man/libtiff.3t \ + man/TIFFbuffer.3t \ + man/TIFFcodec.3t \ + man/TIFFmemory.3t \ + man/TIFFquery.3t \ + man/TIFFsize.3t \ + man/TIFFstrip.3t \ + man/TIFFswab.3t \ + man/TIFFtile.3t \ + html/images \ + html/images/back.gif \ + html/images/bali.jpg \ + html/images/cat.gif \ + html/images/cover.jpg \ + html/images/cramps.gif \ + html/images/dave.gif \ + html/images/info.gif \ + html/images/jello.jpg \ + html/images/jim.gif \ + html/images/note.gif \ + html/images/oxford.gif \ + html/images/quad.jpg \ + html/images/ring.gif \ + html/images/smallliz.jpg \ + html/images/strike.gif \ + html/images/warning.gif \ + html/Makefile.in \ + html/bugs.html \ + html/build.html \ + html/contrib.html \ + html/document.html \ + html/images.html \ + html/index.html \ + html/internals.html \ + html/intro.html \ + html/libtiff.html \ + html/misc.html \ + html/support.html \ + html/tools.html \ + html/v3.4beta007.html \ + html/v3.4beta016.html \ + html/v3.4beta018.html \ + html/v3.4beta024.html \ + html/v3.4beta028.html \ + html/v3.4beta029.html \ + html/v3.4beta031.html \ + html/v3.4beta032.html \ + html/v3.4beta033.html \ + html/v3.4beta034.html \ + html/v3.4beta035.html \ + html/v3.4beta036.html \ + html/v3.5.1.html \ + html/v3.5.2.html \ + html/v3.5.3.html \ + html/man \ + html/man/TIFFClose.3t.html \ + html/man/TIFFError.3t.html \ + html/man/TIFFFlush.3t.html \ + html/man/TIFFGetField.3t.html \ + html/man/TIFFOpen.3t.html \ + html/man/TIFFPrintDirectory.3t.html \ + html/man/TIFFRGBAImage.3t.html \ + html/man/TIFFReadDirectory.3t.html \ + html/man/TIFFReadEncodedStrip.3t.html \ + html/man/TIFFReadEncodedTile.3t.html \ + html/man/TIFFReadRGBAImage.3t.html \ + html/man/TIFFReadRGBAStrip.3t.html \ + html/man/TIFFReadRGBATile.3t.html \ + html/man/TIFFReadRawStrip.3t.html \ + html/man/TIFFReadRawTile.3t.html \ + html/man/TIFFReadScanline.3t.html \ + html/man/TIFFReadTile.3t.html \ + html/man/TIFFSetDirectory.3t.html \ + html/man/TIFFSetField.3t.html \ + html/man/TIFFWarning.3t.html \ + html/man/TIFFWriteDirectory.3t.html \ + html/man/TIFFWriteEncodedStrip.3t.html \ + html/man/TIFFWriteEncodedTile.3t.html \ + html/man/TIFFWriteRawStrip.3t.html \ + html/man/TIFFWriteRawTile.3t.html \ + html/man/TIFFWriteScanline.3t.html \ + html/man/TIFFbuffer.3t.html \ + html/man/TIFFcodec.3t.html \ + html/man/TIFFmemory.3t.html \ + html/man/TIFFquery.3t.html \ + html/man/TIFFsize.3t.html \ + html/man/TIFFstrip.3t.html \ + html/man/TIFFswab.3t.html \ + html/man/TIFFtile.3t.html \ + html/man/fax2ps.1.html \ + html/man/fax2tiff.1.html \ + html/man/gif2tiff.1.html \ + html/man/libtiff.3t.html \ + html/man/pal2rgb.1.html \ + html/man/ppm2tiff.1.html \ + html/man/ras2tiff.1.html \ + html/man/rgb2ycbcr.1.html \ + html/man/sgi2tiff.1.html \ + html/man/thumbnail.1.html \ + html/man/tiff2bw.1.html \ + html/man/tiff2ps.1.html \ + html/man/tiffcmp.1.html \ + html/man/tiffcp.1.html \ + html/man/tiffdither.1.html \ + html/man/tiffdump.1.html \ + html/man/tiffgt.1.html \ + html/man/tiffinfo.1.html \ + html/man/tiffmedian.1.html \ + html/man/tiffsplit.1.html \ + html/man/tiffsv.1.html \ + html/man/index.html \ + html/man/TIFFWriteTile.3t.html \ + ${NULL} +OTHERFILES=\ + ${NULL} +CONTRIBFILES=\ + contrib/dbs/README \ + contrib/dbs/Imakefile \ + contrib/dbs/tiff-bi.c \ + contrib/dbs/tiff-grayscale.c \ + contrib/dbs/tiff-palette.c \ + contrib/dbs/tiff-rgb.c \ + contrib/dbs/xtiff/README \ + contrib/dbs/xtiff/Imakefile \ + contrib/dbs/xtiff/patchlevel.h \ + contrib/dbs/xtiff/xtiff.c \ + contrib/dbs/xtiff/xtifficon.h \ + contrib/ras/README \ + contrib/ras/ras2tif.c \ + contrib/ras/tif2ras.c \ + contrib/vms/libtiff/makevms.com \ + contrib/vms/libtiff/tiff.opt \ + contrib/vms/libtiff/tiffshraxp.opt \ + contrib/vms/libtiff/tiffshrvax.opt \ + contrib/vms/libtiff/tiffvec.mar \ + contrib/vms/tools/makevms.com \ + contrib/tags/README \ + contrib/tags/Makefile.gcc \ + contrib/tags/Makefile.mpw \ + contrib/tags/listtif.c \ + contrib/tags/maketif.c \ + contrib/tags/xtif_dir.c \ + contrib/tags/xtiffio.h \ + contrib/tags/xtiffiop.h \ + contrib/mac-mpw/README \ + contrib/mac-mpw/BUILD.mpw \ + contrib/mac-mpw/libtiff.make \ + contrib/mac-mpw/mactrans.c \ + contrib/mac-mpw/port.make \ + contrib/mac-mpw/tools.make \ + contrib/mac-mpw/top.make \ + contrib/acorn/ReadMe \ + contrib/acorn/Makefile \ + contrib/acorn/SetVars \ + contrib/acorn/cleanlib \ + contrib/acorn/convert \ + contrib/acorn/install \ + contrib/win32/README \ + contrib/win32/dllshell.c \ + contrib/win32/libtiff.def \ + contrib/win95/README \ + contrib/win95/Makefile.w95 \ + contrib/win95/tiff2dib.c \ + contrib/winnt/README \ + contrib/winnt/README.console \ + contrib/winnt/fax3sm.c \ + contrib/winnt/libtiff.def \ + contrib/winnt/libtiff.mak \ + contrib/winnt/libtiff.vcp \ + contrib/winnt/version.h \ + contrib/mac-cw/README \ + contrib/mac-cw/Makefile.script \ + contrib/mac-cw/mac_main.c \ + contrib/mac-cw/mac_main.h \ + contrib/mac-cw/metrowerks.note \ + contrib/mac-cw/mkg3_main.c \ + contrib/mac-cw/version.h \ + contrib/dosdjgpp/README \ + contrib/dosdjgpp/Makefile.lib \ + contrib/dosdjgpp/Makefile.tools \ + contrib/dosdjgpp/Makefile.top \ + contrib/dosdjgpp/conf.bat \ + contrib/dosdjgpp/port.h \ + contrib/mfs/README \ + contrib/mfs/mfs_file.c \ + contrib/pds/README \ + contrib/pds/tif_imageiter.c \ + contrib/pds/tif_imageiter.h \ + contrib/pds/tif_pdsdirread.c \ + contrib/pds/tif_pdsdirwrite.c \ + contrib/addtiffo/README \ + contrib/addtiffo/Makefile \ + contrib/addtiffo/Makefile.vc \ + contrib/addtiffo/addtiffo.c \ + contrib/addtiffo/tif_overview.cpp \ + contrib/addtiffo/rawblockedimage.cpp \ + contrib/addtiffo/rawblockedimage.h \ + contrib/iptcutil/Makefile \ + contrib/iptcutil/iptcutil.c \ + contrib/iptcutil/test.iptc \ + contrib/iptcutil/text.txt \ + ${NULL} + +DISTFILES=\ + ${TIFFFILES} \ + dist/tiff.alpha \ + dist/tiff.version \ + ${OTHERFILES} \ + ${CONTRIBFILES} \ + ${NULL} + +CONFIG=\ + -with-CC=cc \ + -with-GCOPTS=" " \ + -with-JPEG=yes \ + -with-DIR_JPEG=../src/jpeg-5a \ + -with-ZIP=yes \ + -with-DIR_LIBGZ=../src/zlib \ + ${NULL} + +rcsclean: + rcsclean ${TIFFFILES} && co ${TIFFFILES} + +release: + (cd ${SRCDIR}/dist; sh newversion) + ${MAKE} release.stamp +# ${SRCDIR}/configure ${CONFIG} +# ${MAKE} product + ${MAKE} release.tar.zip + + +# stamp relevant files according to current alpha +release.stamp: + VERSION=`echo @VERSION@ | tr "." "-"`; \ +# cvs tag -R Release-$$VERSION ; + date "+%m/%d/%Y" > RELEASE-DATE + +#diffs since last release +releasediff: + -@for i in ${TIFFFILES}; do \ + cvs diff -D`cat RELEASE-DATE` ${SRCDIR}/$$i; \ + done + +# create release distribution archive +release.tar.zip: + VERSION="@VERSION@"; \ + rm -f ../tiff-$$VERSION $$VERSION $$VERSION-tar; \ + ln -s ${SRCDIR} tiff-$$VERSION; \ + (for i in ${DISTFILES}; do \ + echo $$i; \ + done) | sed "s;.*;tiff-$$VERSION/&;" >$$VERSION; \ + tar cvf $$VERSION-tar `cat $$VERSION`; \ + zip ../tiff-$$VERSION.zip `cat $$VERSION`; \ + rm -f tiff-$$VERSION-tar.${ZIPSUF}; \ + cat $$VERSION-tar | ${COMPRESS} >../tiff-$$VERSION.tar.${ZIPSUF}; \ + rm -f tiff-$$VERSION $$VERSION $$VERSION-tar; + +# +# Simple rule to run test suite assuming that pics directory is +# just below this one, and that .rpt files are available. +# +test: + test_pics.sh pics/*.tif + +# +# Create a package of the test images. +# + +PICS=\ + pics/README \ + pics/cramps.tif \ + pics/cramps-tile.tif \ + pics/fax2d.tif \ + pics/g3test.tif \ + pics/jello.tif \ + pics/jim___cg.tif \ + pics/jim___dg.tif \ + pics/jim___gg.tif \ + pics/jim___ah.tif \ + pics/strike.tif \ + pics/oxford.tif \ + pics/quad-lzw.tif \ + pics/quad-tile.tif \ + pics/text.tif \ + pics/ycbcr-cat.tif \ + pics/smallliz.tif \ + pics/zackthecat.tif \ + pics/fax2d.g3 \ + pics/g3test.g3 \ + ${NULL} + +pics.tar: + tar cvf - ${PICS} | ${COMPRESS} > tiffpics.tar.${ZIPSUF} diff --git a/Release/BuildLog.htm b/Release/BuildLog.htm new file mode 100755 index 0000000000000000000000000000000000000000..9184467b7b8678f50ac003ec0061e4acd54094de GIT binary patch literal 24544 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 literal 0 HcmV?d00001 diff --git a/Release/tif_aux.obj b/Release/tif_aux.obj new file mode 100755 index 0000000000000000000000000000000000000000..8bf97b0d1c68ccdcd7dc87bbaa80d9076481d545 GIT binary patch literal 4621 zcmb_fZERE589t6p;*x;v$|IRtRbF)4q-|vU5fVEj;CzraEQFAlBor^kvF~k7oj7u? zAxxCQ3}N0Ckv2_8P_$~5rd89V{VQlg5GhgVrfySJOBF5BhAT~B>or<*VdC$E! zzBkDae(Xs1+~+*^dEfJ%_k8%c*WzN=S|0UZsbp*~Q;Rp16O-~WQERe?0N2a(miFH4 zWZslGmVaFs)W4hs_=#0-sqYALc6eoRS~k#D3u9gzWByGliLRN)*?+{FOC{t)NoWUr zSJUWh#2JZfr2Fv`>VEcwx~m)M){NtA1a%X-UFB+Y7}kd4z);z%nnqPJ7IFF_TK>9q z&I!;9UCiJw;#{A<50PUDnug7)Cf%+l)OBp6Q`doM9No|j zXZK5xM93k1BOI?rS- zn-r&}vbpwL@{P2NjgZg5!E~qz-|}Obbn@%siD>ps5r%##85#?Yg%f_!9}#Ke>s0~1f=r@h&+qpXFsx>zk^70dzi=LYPn@6`-> z>IYu*?4Oj=Y%wGFZpQ?lq(o5_qa*(X(?C6* zyyCdpH|@AO)b#Qvg)c3qb}Dc*%v~z86xr~B{^HCX0M2P&F7ht}_;OGGQdscB4=aEE z#ypb8w&8KJS5SWiPdPh;`e}|vQGXSWo25`wj?39NYQzjgQ%8&5%|1e{dZDhK;@sU; z?%%5%0Lq=+yk7ZxO`^WABM{CslJS@)q9?YWC@j+j`!tu}f^xWNBj0!en z+Q!?9BQ|B0D-YO9(off^sx;LhgF}OAam0`p)-;C)$3=0Dwu-q2bGvm zH8hL~s2LvYzc8r=URbC)H|IF_C4OGcJa(aWoM%*@eIH&f6v|dsRto<)=s5pAksq8U z$1B1)dMOTNNQjRXUDv3;!}Cgor1aItN3qs)rdm?EeZ-XMj6+g}0>qfC8rNAhnXQze z(Au6_*V*hc+n}e{h%xmvVzw&WvIXZ59=4NGq0Lu(^zdG(=;RU4D+u@^&G1@Jvwzb_ z(_p9J5bh{7C)Wo2lCkT;4O(|BzlpCNrCQrew`|2S(}r=(9zk}M3T5^V{H4Rbm+*A9aMIcd$_GKyG#)NIexE0eSh?O_;!!IdTKl zb2JJ>=YyNo<3>YgTsdn1+QpF%sEwmWpjM7TKsz~V1#00a0u<(`3n;|Vt3b^h^#V0< z)DN_SqbSgJjz)lj9L0bF9325_kpPU7uUD|+SIKsvOQ`BUFu=D5&b)cL>yg5ZNBvQtHxj}N{j^lDND@E2-gN4@ zfdX4uAOvqlJ4{6mH<6WIttA%ds=3>03Qx8_lS+f8w;~kyCw_50y&M#aa{_y+y zY0j8Uv$Qe~;-T_2jlmrh@f+{vq_tXTO;Gvdk96YeBcxS9g*0X>Iwwk2((UD2B`f`k zNgA^iU71T(*B5H>L!|dbKgv`{W45XQQ?fe!@gLqRSsf!26w;`kW_g<`kH);S%8({5 zWwKd*PtrBwc`{5xv zCaZGOywhc;6yX>0^(z#OT0Ym_q%qG0UHnQ``^$fgjjmgLp;?i}Y_-*7b?vQN7`kp% zp$(NZWehRX_GjM(tHun*Py73A6GNh;iJ|kO&&1H#5;ie(?rbwLbSBx1On@@>Pdux= z2dMWuCWg+S-R zQVxTpnOtSiVAU9m}vPm?gjGUhmQ>Fk1M5!Z_NWM8te>QbTx))VB v^ol5Vr^QT48xwiZ0#AwI=1^+KYFqL*HSS0RR@-7Y>~9J+ukoWc*L(dRGw(i2 literal 0 HcmV?d00001 diff --git a/Release/tif_close.obj b/Release/tif_close.obj new file mode 100755 index 0000000000000000000000000000000000000000..323de822f86f96ba049276b2682d0a99a34d656c GIT binary patch literal 1089 zcma)6F>ljQ5I*A~($YeTm>9}aR1p|(om7G(P$_NNNEIm!Zpai7V&}Pikl2y!v<(AG zAQH0FfuRci?}g@u8EfdL^Z2FCO*sYA-dN%!u1pYPqf_uidz(g^IO4)YT- zz&YrPQgyiDZSvzO{6z33m;`n#3`&*j&GqTEfO>}DwG_Zvi@m!7HSftNi?vPD)o+8!cAPqAma(sEXP&# zW=Z2UUU7K|nX*x{U9Q;rBS^vRNr(WPf%6z(N(&9_;Evc;?HXHcc%m+z2y2~X?0Q4g zxC2o1z3EWs|Ph9S3|kZ!{lx6B9y) z`8(gx&)@w@W9Ju+_xzn7XtaFyV|#zx-zCoP(0Z+V;CIFm;C2}HZ?r)Y58h8;HfK>U z!et!CdgvC8qdoLufL;y|0-zEkkwC)TfKtPoNgH@#MO3G>HgvmKc#t-E#Zy$3ochdg za}X;_)E*~gxG^w$^r6-`DZ@=c^({-36ScyJ&tE?Ei=9@`^OMNH=t@xN{rVCxmjYto zbNvJ}+*lM(mZ-HTdlI>~YXVWZu$;|isAQnr!=}R#5}QS|DCoanJFR1?)^s=E2yMFH A`v3p{ literal 0 HcmV?d00001 diff --git a/Release/tif_codec.obj b/Release/tif_codec.obj new file mode 100755 index 0000000000000000000000000000000000000000..0e82f79bfb6afffc2e373798bbf1984aa94bd855 GIT binary patch literal 4701 zcma)9U5p!76+V+myxSidhc+RlB^s6u+o<4p*SpE?(#B)Yc>M1f)^4`63mdOJPKJ1G z%N{2i5Ft`i(kSIeZ6Ejv5ByXhwGZV_EfPYh$^#POfrpAzLKP1XAy5%jBpy(IIOop2 zp0S&ie5E~e?svcM-0M5%-Z@*4?uA#D-?rd3fJeY-jx2iod3zWl zb$g?Ka=I)=E~4|#oucPGRR|{|-Fnrn`Z!JntzCYfJT)9uM|l&7pB;lo@y?II`w;Rj zjlr8l-g9H{Xx^)1@a{t1^JDUUF$V8WjQ8poyxWoY$1!-jk@x2@ctp7|ChuQk@aT8^ zXAB9U#ArSrLi{}E5RV#LpLdQ74*>|H^AqH~%()Wd;W-+a_ddj5Mb2LWJT~tw z;@v>be*-)<98M~Va(J`aavFBet=k>DRkvHUbIViixsLtt%vq-uo10Nu)lKXaom#iu zYd74;acwCY(N-!m${D-cbK0$kXO<$-$lPpnZZ5Joqjb9Mn%(QQyNPb?l;h$>((ht` zt;Hia*57D4wY+_<(mrjYaJErf+=y)~RcGzlMLV`JGo>8XQ%2&ELZy&RE>HFQPCe3e zHpYXC<>R=n5w2O#ONnBtJf%=}yp4Zn@ox#FJ@|mL%WLdsuHhuTZjBzU(`c;EMWaX8 zR_vx-?b&OHtk>FgyB2A0d=Zx6p*?_^FadOI4y;TLo`XG79#}b~m>t*IbiU-YPAXb^ zv*R@FEcx0(rI0$j>ib|e>!0qq=bE;Xvr=hbrer@_fy${qzUFSZR&9Y*t({IfZVw8NtwO2Y zvS~|zvQ4z$q1$yqpa6#g{(E2bak{ZZdqqW~na69S45XCB=?$C!5y+Rrd=KiXyHDQJ%}ZyN0p=6wonjCoPCbIe;r zdzg6-p^Y$4N4vtj4B7{oXAQ6ldJiyc4edeZoj^7BnO`0`U15x)G?(`a8I!fTYhMDj9`W~C-_k#=eVRGL5H)DNsY0q?(0cemQGt8OG3 zr4SwxtcM7dC8~&qTd)?Q8Dxpx%Ww;R4=D3xiFT6O>p!^uSAS(Y8AfXn*e5tb8LCBo$+Vi@%>}p^;MLq)QB^zqJ5Mls-mc^e);jfuWEZB z+v{N!txc9D`S|gDZ{nd7@8DUE5@%RNe1C;^zV{fu8=?9cR}sg<{=|_F?hoy-EKvnU ztztipM?l2+n+LLd_OLtX^|GdntcPkTKhCo^Kl*t;&H=6>ju$7jZ5%oevP9>L+6z~2 z2Hw}BTtyr&&R4dLLlI<&W~BDu|Gt3-Sp2SUausogca`3qEYXRlcIk&NzU!-A;ws_{ zt7!LRiSmKkkKULG`>N|)MI3Mbo7=9L=Jn$wLfWd(;GyP=CywXdFMbXvBkRHGF^<^7 zzdHxd3k|?5R}sf^E8E7Q62Q-~7xr9!QfL4gTtytueRA74bgRmeIJKQicc+8~;2EwW zj_1C(ZJfJV9I?;8+Dg4CGyuQlD&pYV2~?`|^^&FQXs7V+51-pjpD5nm;40#vDo{Vt z*Fl!(N~K$-SAP9~|K)#+tM=l~(y6%Wk0Hn&~SiOLUJD=lQRl{*KSC@W}hwn)z*PAdP(`WhoeWKZ{&L zMLfQ)sq4{2E2o*Md^V+u0xdqBNT{%0$r?ts<+vU!=tr`aX{3yT#pxbd#LDW$Y$k2! zswnP;hD&PJz=BlM@@lZ=8{!8W$EgePibXX zU&n$<^Xn-_Np-vJu85@N)MPrH(~Ct@jZbSvFTM~c&EgBZHj6JfID)}wn4b{CY1P?0 JuwELP<^T0n!vX*R literal 0 HcmV?d00001 diff --git a/Release/tif_compress.obj b/Release/tif_compress.obj new file mode 100755 index 0000000000000000000000000000000000000000..9600421c1f11dc8160856caf842e954119f100f4 GIT binary patch literal 8448 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 DG0aK= literal 0 HcmV?d00001 diff --git a/Release/tif_dir.obj b/Release/tif_dir.obj new file mode 100755 index 0000000000000000000000000000000000000000..f752b86aad0b9df7f549346630d42416b8ae6f3d GIT binary patch literal 25072 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 literal 0 HcmV?d00001 diff --git a/Release/tif_dirinfo.obj b/Release/tif_dirinfo.obj new file mode 100755 index 0000000000000000000000000000000000000000..df5628f138f4185a7a55ce37690a436ceb7e383a GIT binary patch literal 18369 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 literal 0 HcmV?d00001 diff --git a/Release/tif_dirread.obj b/Release/tif_dirread.obj new file mode 100755 index 0000000000000000000000000000000000000000..7d84b2f08d86913dd701b255c210e13721ea6739 GIT binary patch literal 24932 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

  • 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 literal 0 HcmV?d00001 diff --git a/Release/tif_dumpmode.obj b/Release/tif_dumpmode.obj new file mode 100755 index 0000000000000000000000000000000000000000..339b5f65eeecc10da770134707cdca5f7471f2a3 GIT binary patch literal 2141 zcma)6UuauZ7(aJ6ZDXrjhI!avj?)s2WpI~2RNHhTH*FdzO}p5?V6(>L=A^wYxi{Y2 ztnHXnDJ>b7P9J>m!3V)H`XKn?L-k>7*5Mv}P!tp<_%H-PQHBVD)B1hq<~GUd&=1ac z&-vZo`JM0l`M#vkMYbdNQp;_GP-2^uH<)6cXZ0cZ1v;M#&Zz$F^bje}a@9rOl=G(s zosSPVBl{~8&yZxY6|)I`1NuWEAzwm6!zt90da$-;d!2_N$e#Ur^MLOH z=LHvZz>v=MjC|J2a)`SC_?0@xL1j-s{ycv_$Z|(OIb}Vu!@;yWv1nsrmRMK%+)eG?O#^4aL7-! zYzYSAs$%FBye^}lfE18I!9XY^_4{er&=ppx=tj&?mQ)iS zM%4g;mHuboUo}@$l`*zDt)F8sF<4OgbK%@THpqhgES&TA(3A0zL~JHGog5vC^i->A zUMi}&{|Apx%|cucaL**;6S47;sUC`lc@NqJXs3v97(QeM-dcq=Os+jpLK6x;rmedQX zwn&HdQduoB1Nc)`+UJ>>om;1E6Gd99-F$WNV{SA7`J<|whQdtJdLSfA-pk;L&Vt%s>pIo#1xyOxsC6c+_u)28E9M#>!8?xP!(! zyStd`a)D({DG)$;8)+`Xh>8Lh;#O-e!MHb3sI?Mc)LeeCq=*8(1!Ql0bN_XCX3#^! zghCSu<)sJTkYluda{N(q5RvA>iL*rkOSYpY5j3fT zAlx#A_?!2RS=OrT-lvSuUKH>(;NHtmeYMa~ehUz^PJ5?K<-QBhR^?8vd=2o7lS3mK z<`BtDk0ug{VzsgqhYSjm3MHrc4 z*j#t}d_07o7zCurXzb5NKry)1+lyBxGcPdsb%vLR$g1MH0*;p34WV{EC@G)0R$uED$9G`OiB z)C1Px8y;v&T zFW1T&tGQUOCk&-6wEu%QtGjrvGu*B6`n|$tu^M9me615~18iB4yiXtG>fSZ$xQS!y z~wt zF!$J+)#-{hw*ijI@xVJ=2Cpwte>{)fIc!0=FpV(qGJyOfslphCz+3t9lY8Z;77xEE z#}{@`FI?FfemVTSa7^5h7OkY*ARB)cHjsUNpn^c=u9mE~! z(8g=jrp)y>1{vHt+4_ue%_kv&!?H@-pI$+D55VgB~0BA!QrKUb{DDF6Tf literal 0 HcmV?d00001 diff --git a/Release/tif_fax3.obj b/Release/tif_fax3.obj new file mode 100755 index 0000000000000000000000000000000000000000..2f68bb210074ef108225879c9bd406da08d257a8 GIT binary patch literal 37026 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 literal 0 HcmV?d00001 diff --git a/Release/tif_flush.obj b/Release/tif_flush.obj new file mode 100755 index 0000000000000000000000000000000000000000..80f62b6b17e85b5791d733005109c407c57c9ecb GIT binary patch literal 1214 zcma)6%}*0i5TA7mR03L*gD0}7HPy?qZ4+!8NeV5S5Q~sfD~AT`ZeQVHyW8x(0`=ep zF)>{IBlM(4;)w)Lo;-N)-&NdDgmi)_2hU6)G9Mt+mZGDljo@X9P-ORXi*jHK=hqZrt$1u0(ggqh(eUm z+T&h6y$d1>;dzffAANqA(BJvy(C;()jAIW(UGGw7rC{HQMFQxs*kQL%W9xuVLN z%&IcWY^TGb-DLC8eQqV&{*N7W4m@usHJR5Q?rF)RM}&W%WZ2uno>129@FA+ zH5pZ!j%_m6wVegW+~ER0Xv@I_2gx~n)-vkcywBQ2`w7FqSj|it2_sdBu~?ENjA&Sy z%`NE*5A((R@?tvNYVoRC=f?lRE9)hEuOZ*neD1-*%F=pR31HXfc=qw6K$=1U`{{DG z%`z5o9g~FMwc1u()9#iFtj;PfDr;`qfYyqi+z z)8U7}(W&@S`bsZ}#^zZJmCJah3F%G}NeQIx+yzk|^Rgd43xbFYB9BhJO271ppqTW* z;@b&@Zk|mdr}$}zAg89h8Z=!*{Tf$LAA^jE&8WOOQ#gc92SA2Qja7uIX_U=F{Ch;G zEYT)iB>xW4+{zMd(M9s_4~?!Y(FRe*?2fVOX%s;>OC*ER-2s5>9)O$>|9+9LEYXHh z9wHe=ko#+qElboty;*tp?ZzMPn}`sN3~H$!fPA>tC}J0DjdW`*BED5z)^(kxDpwJe VAv5N)J@t`;tCZvPf3lr6{07t*=du6* literal 0 HcmV?d00001 diff --git a/Release/tif_getimage.obj b/Release/tif_getimage.obj new file mode 100755 index 0000000000000000000000000000000000000000..f270688978d9aa6fc95ed0e2af024493468cfc08 GIT binary patch literal 49258 zcmeHw3w%`7wfC8vVG>C640hB&BaS#qkN|-U8YGg*lLYb(NkASkz=Q-t5|bGoiYN{N zhhwVV>a`E;XSGkSx3pFhwXcLAFCU233cl;Ttw3z0y*^N@`TlF|^O{TssP=x}@4H_& zoRf9-UVH7e*IsMw$Ju93iS175i7Wq7(b+9YDRB~qX{$Q?D+BBN;z^SJ4B(gN=}+3< zF-~dPD*uY$YEQMEaw~v`&exyBU!Ua6oz}6cA<$sPj|Vt2*?cC*C#CzQ1^gQVmgxJz zPYLker3?tuaJiio*9@mO1M!ci5QZ6iPS6`x?sOy{I|IDQz)QZsq(#t3^d=!b=M3;J z0$$S@;3WYsd}W3HZ+GKn2_v-| znfSAA3lc!a8==1c3B30;+*tM9g#4ca=Xx>}1k$sS`1>m2of8Se3?uPJ%{65tyb<^- z2Hs)~Hx_@tK*CDkOz?kA~lGKcgLM(clkkAR7_sG#8B;blgFB?w392bRH^zKF4Vhx88af?Oo1K^EH z7g(|A9YM09;hc`%QQ)0C4ZRW+6bGkYHd9bLReiq$oS$fTvG`jGGLLIGr{m9+AxR!w z6k^dM{-y!vdauAc6@LeS^NNNSiyq1EKQ$adF?M_WY8HGEE()>eQTx8E;V>d@vD&xu za!Cr|q7aMTKIn5daB5}?yi?Wp`@nfj!;3}lK9Kp1h9fA(=5OhhlGK8WLM(dkgTHma zS#y=ZI~9LV0_T8+7mMC5kom2KBPhn^?_bf0{D3+Vgjn>xg|we)IE;u}toE3nElF47 zq7aMTgGgJY;V>d@vFOG7B7t1IuaBOM_|UT@7z-O4O|pr(fcj*Wf5@FDg@rC_}c`W+cdmb^u7Z! z|El2#in00gR!UMnE()>eCCR7*aIRh`@J_|wL%?}b!;3}lRgl@O;RuSc`TJirlC%>S zg;@0NLfR7=4kO|gOJ7QBC21Kh3bE+zMA~W%hY@j$Men>iNxBplg;?}HL|VFr!-%-W zqIc;cNxB>tg;?}n8ijFr&$Bwd1wLM(b&Xy54?j=+pf@7e}Qx&ar3SoGdO zLYIakFk{neSt&`Ia8ZawPlA1H({Kc4YH1r_l=VD7hDu# z(R&AJpK3Uah+C}oeS5Ve{S_C5SoH2k!ry>%Z?nLQHBKZu9J5B?=y#vf7d7uDymQVF zZ~RDjBaGW80&k{<8>=2PF3AGUt=9_fXx_qd8MZD!!{OEzfurAJjd$+>-VZh0SmiE) zzWfY0quT_vv+!r6axX-@s^Ofj+=qboq=p--TBA6_P7|y zJ2V`<9Uvz3bE)lq5o(A&i-2j zUK#$3Bp0&Fm%0RwejjPR??&S1XNWgpn@&mmjn%$$fmf#C#;V6IkXQtq@!JKhQ^{ow zaIV+zV$mx?!dBosLyChi7S~8}$wK_PFkzTsB)LpS@*^YRjo?pz54^uhWHz+Jr)D6S;N)&bGzNs*EX~^H~KpR ztNiW$)>Z!2l^d^|7}(hEziQI@=GKgvliaNhYw=Lpyt1RMv#l{Otu}9V`n0^Ng_GRt z{2iUmZLL>LnmsLj+RPd0GiOfAoaAorXj|#;>}>1E=~&s+9Kb?&umc1(WL}Q6;EI;! zl?(hE7q(sNN5&bAD>GMQteD*}!#^X_pRr=nMECUkg2J4dl7%J3xmQjM2Afw+YiV9_ zX3?e9wcu+QZh1+5Sx#v|^+Y$EnDiH1WYk%bjg&)Lf8|oH=28^W*|C!T1ezNg>u08? zU$L~x-{NoR^e;tB{c3-pd2PdL|FpIhYosfstg+HWtkLpH+k~nFN9 zHDBM{y4s!Bwzj>w#ovK4E1KE@ZEO93j^>rctpR^Wdxt;J5P%@1S~cKFPRA-6xyBiBsFeVU+{8u z@04AEw9wJGzy)f)$Js>be5)8bmtf%5XY?%}*qiT3LNU^yJq&tEFCMQdxf$i&J`<#r ztwV%+(xGg>438QYjk9Yzl&*Uzy|=8aan1o{>+N_@7kZpZ@BT_rj9FrpUScwrsPq=l;G$bqCGc@XTCYnK1peeoE$X|kP;G)yg1P5h}p_6uH z>tWPR>3yCgRAtgOL?mcG5r9)^oL!c$Z2b}NshXmWoMRXxSCv9|fe95L>554a4CD){ zbNT~Qp9m6tKo<+rRGgXBpzpFu?+j{LukKnt0E$V1S%XdzH9P8|1)F5E@r6H-;3)$2 zv-!9j5{@03Q)P|~)#B)Bdz zU*}bqtkTi7bb5d3UK{MBg4X%nmk^4(tpjD~h$Atg@iCm9dn9TSdDsqgJmg46=C#w` z-q6ty@UIf=TB#SeUR&)C#K>1QFE=_zURw+JUkSOj`dea2XK~(&yp9osQ_<4U+R(AG zt+lavbr3AY<{3Bv;IsuhMXg24kVMklXfh#5samwr^!DZr{uZgU8B#!>)9UxHLS--M zbO#z%qtP*GM)OmMgUQohnwZ9mZbvQj)@2OM*&9fzI7&&O-S+TiuUeQnEGkni%o-Mz zr55^zMfuc1H=^8vmRji1fU?xk?u7c~;S!Ji7?o1Le1Q7l`M6vX-qdIixdIVKcL6Ok zphg42SYAs7AZ?}_f=wFD^(+P)FI9HiJrzwd>RZVbYlLG?LgxqnF9*g`FA#9y9v3+K zN%>~cf!H(p77sj55?VY!7L1vRZ()jhc2VeL{QAqZvB5~Sdz^BifB z^sc)`ZSkb41?jbFP^t|FJRWFD%27f!)CVz1824Ss!mZ^rt9C8V=vx-r?H;JE>&A$y zvMCp32rLXE)2o{DjAwO|XHlK{0aL($bdh>k=`BbJ?M^`nX|NOrQgcIk;|&dT`1J&-Zf^`WxuA)pS% zcNdfSB&#*~7`3_9Nb>V)LD3qi3Pil}-ipd9ttQD`eK$HnH`=9OGY#*M?CQ2FRde>N zn*`Xc?wPW8%0Br}RV7k=>Wj+G-&N8OtfX3gxvo3uj>^Facya?ZvqBwEcJ4tDgo^aN zb=|HlRW(BkJ^At`k2kd2Gv{;VmeoT;L%{YhbKt!(w8@iZ3&wqPMBXJIq3X`b_xO}s z&Luny_4IbI*DqPlu7jmL4s|5maPg>s+?7k3jyo-UIHXy)3w@jmNEq-EKsmTv5^1!6 zC|?7|4dLF&&=1jG!ZE^VJKGyp`pJmh0ZcO7D}s%UJk^jSdi9=w40b7rW}6aCKuDv~ zt7~Ys;Zvunh3R$b=A@c%izgY?@`g8gvP9b-?oPUo^60KAftngBc2N_>)@Ti5Iw-#x-X&MD9tu+3kY@$!p?HP@HPs1DT0Bjp zg@u|HW|0;KN2B?YyX}()9n?lso?=x@V^z#2RqRF8(SqK=QFnk;MWik|Sr?tGi+@tK zwE=hVENJ8Rs1qWM%vWnkBU4x-3pI^&57)>sq0M$l>7v1?T9_|Wwz47=n!3ieMk4)l z%Lgl~^eU4MYdQW(rIh8%B~(xm5It++)<~q0Zu#Y^3SH!u9DT?E9n6#hGr^h+ZB+}4 z2!D+%%q13cm`uyfk72PA?AFh-14K(*`U10L4tLXL1kGD zDjx<_q1;kIco4iU0z1@-4T?4EB2-2g6!n9`pnQOYL6KV*21VVKFen-o(B+cu#65?h z?;6m*0czm5Y@2Rc*BQ`*2K1T%{QzSNVR*kt?L9CRf6HSg}z(;HqH6SZX+T`Y~8?st1*w(7{URGN}QX%Ra+rC$W0yHFdHFhrI+#sr`Y? z&b5;A`6^g<>T0UjNV@Wrgm!xjulpu*0AA#N`AzWb72bChd0*{D zVtJ?C>WFFYPy%wmU9ck#0VYN9!V%X&v_yr4oPiXXW)yy1M(iAy7`{M_vEfugGz0rFIJa&7FMetiLwHog~*bo^v;97CH?ZT zza7H*RVwV7WBVkit2%qJZ0+)fgxb2AdIw1O!VqZrK^Q_FAmKG>o+J#R3Xm{_Er5jABtvMx z<&yT`E==MXK*A(wVNRID96-V(>W#Q&Bd*(syT^#zWyC#W#8pRlSK9bSiyn3s@0noh+;U>{`L<*y&1YVTC8?b2Q z8nr2lEa#h3b{#qiD@c*hqV9E@skOQJsh3UfcInOTs>1}s)lG#+L-3#Kr=d^dI?@ge zqEpf?nkx0*{S`j6X zh`wzR(IQPm<%OXk$NKq0o?lTNEn*o-RHu#`L6FJ1AjyZt3@;$%QCtp**0TSdAuphx zFq8>sCqr3)e#(#!(9amk2lNO-^d6KH&4CMFfZ&OO-f9m67OhsRwrA4V1GBSrG?hp- zEy+pd<%TuUI4!+K9V%A`x?Wx9QhF{^(|!WiSrnd(7Rl}ETmLTG2c`vGL+g)V{3YHk z(7FnR(b8xh?>qt6(3MO!>d@Q&)D^q>rF4b5WT7j+VTg34k0H{PeuhX_b}>Y{LcYr( zk*@4!h;-#ChH#70m0u$+s@48yJ2e^<4y*G21HI4l2G>e&#rSIV6&g0Xg%<{(Yzt#3 zMPAr4NODFDlDz06x$hA}rMb`x9x5$DAJk;q^0Wj8*8d*~iLWa?sr)xQPU%_dL~4sO zGC9pD(ihw1U8hDNpZ*WP0vU8V#2cs$FVRdi7`GyE@(8sf)+`m2cL^Ls4-*0t&_{F6 z(lC4}MiM-tQ?}897meza?H>R#Mt1E&rq8iV|Co^Y0kKAZ!!wwi((^wDgL{Vo9z7}B zzx|mu%v4D-F~b8;zSoiJkRFEG{*Ixa0(zODM*$sX=y5wY^c~UUVW3S#sgm65~kjsbvK}&LZ?U*9GWPm@tSEe zjWN+Hdb(G6*kZa~SeG~G5Tj0|hwLRKk!(ikNt+z0Sro(SGe0~bw8t**?RsJTv#c*5 zCkHUh6oOj+qvgx$m+&x?2HO<$e)Mg?g6$ZF-ivzvJ%(Oq7&=B?O>vrbH`#`%Ihhp@ zTAVrttX@MIZtpSCbqYge`0zERO61{s$vPxP`U4TVPd>aidom?;*`0 z9fpe2Qk6q`4G_IZc1UjlI?m940vcrKD4=&4dKb{27&-yy&kW%v(U(3Hbf@qRV7xMh ztz#dSZ#-t33Cd1PIW5zf{{<9%I^(RVHHXYz8cL_qkQv=52E*%Cn@-_6v}9!*UP?W_ z<>s4j{^;%g|T?{*ZuNiO0*sQ$hoFjJ1CZ zF4L(0Xi9gc&xP<4ZReIaUlWXI_zxo_4;d<~^ zF$qksgJ(;XU%B49$mB)i7LBmFhnTt+P^Me{?K?;qVz7ZE4@u|TmHi`K)`r` z9}{1P|AW>ShsR@HChzImzy2V}4zqR_-e7pK0ztEee=}wcv`|1{v~)Jl8a@VmdY*4O z1D;Dy!*g$wW6K|?3R*?};G~gGlP&Re3-fzMVEzGv`3ISGlljjL<~3cilP;y8p^|ye zMXIumvY5)G>5|+>?c#y-y->h38kC`7nzeUR*m37jdTZ_d$3X7T;}<=Cd;{r|0)6VO zg^C?g`-MIkDMFum&oj}{_AbOCSK@KGPiT~U0xj_X6%2jyqBBYZqge5{xqjIaF{Pu) z28Gem`P_rb&@Rz9p?9641KmqCOlMUD>*>n2hA~`0Z?$PBS=@_~p`@VQyr^C#8BORD zEYMvu3Zu^BGM-(g@#M%)(rBS^%JWL^E~WRV(vuVS3yPU?SlRiyu$w{o#r{v?)m{BZ zFQh>y46C>AEY`@kXsJ9|;A2!gB0g^bOio0`v5=jKi+7^5hUgio49??8+!b~xJ^8a` z`QR5|l1l=oQ;0DuyIdef2p_y1wji>%ifd0ehm<3IT{dpwJK_@_L1jQtNA5&To0|Ci-SPD>jVU|5=h zX;Bt@Sf-?G@B3hA2=kr#&~7JBd1!PxQg{}_N+(9E4(V2mN9l!>L%IzRP01b79e@%U zx(iSeL*D>&7DM*}I-8;U0nx?}@mhrrC4ke!Xjr_pOhAe;bu1c>ITHpwm^6Xa6scNW z9D2Sq1vOg>~8F!a=747?93PUB9EM>sC5bUFmuK9Jk;ERURN8mdzcc#;M6 z1O3M?ln*Gqhm;=sc$!%pMQu{Tsq|tS03O_3eaiNH%%m`}p}j`5Wz1>AXkY#dPYjgp z=kvQTeV#fU62X56GMT3p=dvI}?P- z^R1=hIfqhEMazP{QM23}gDIb$jx1QrqGie49AD_Y1R7mn)bLwc&uYQ$FRW_Qp0K~6 zrONT5RN4MlK-$YvrRPeeXWW*9tTyi?Bz~&&B=^(b@LWOf|7`@SyIvDsrF}|%R(=WU znGPTHb#3hm+uKjKdE&=V#EG~Z5-nVRl_6TVPGN`^t}kGS7Op2SM2prJGV}}}H$%?@ zx`-h(fJA4H;6FAY%Dl=m9x2#YMr#Z(8oTQAD%)u54{XCNtjC;*r;+9G8(@7+J5w_c zw77@X9WZB0>H5>UOr;09lY&L8%ivH_4do%-nM^T4RWA(fwHM~*Kyy-T!DmQn@+K_w zJT1Q{{}(vIV!{u3j|uVp9l9Z4^Ca^%5St76OKe zqAkv}9vW98mdcZe5sEhbf+(4pgJTeL32l`-6OBc433Ay`8E0weGdKq7;)Xo5c>&!Q z^d=Uc8p;20IMCKit!~i&WO=}_05AN-V#8k~4ctL8iWO*69KFwXNVH}>l_6TMp2pBg zK-6?0_<5B(VRGwcE&Af%1H882uSm^hlw{Fw zRODZciqK9a3Q5vAT#>wpilh3Tugb~Caly?9&m6|o>5>Wc%tOl@5p3fLs-)hw{=v!U0)AU9b)A|I3cp9y?v>o8I^M-bS6QLB<=Tj>Z)FL~oi$6)Io?WeQs!}+~LrqO0ps$zGyOU-@ zGW$t0Q{|7*(q8#v`5Pe<*+0e>|?b|5zMe@wlny ztRZ5^;-gPv2*d=-Ty8IOV$v~I>6wcLN>fu*a_sU_Y=?yFS6jLz`91FOKXuA)(wM-U zEW8ekWVPjP#>h&geAGj|30Bjo>)LG7D1Lcr^>zy>P>%a@%+)7El9P3E{dz4$rDN9B ztY>`^*wMKo5q#OoW`!?|WNwts+!twxtnhHrIsRU9dR;*ZE`M{p#@!dKtA!kiPH%}X zN{;gBB#VZNZuH+<*GOu^MK?w#_xGwvkq}+tmlWMF?nr#}IRzQ*m({wI;i5ZBuj`p= zo!$s3&^R!5c8t27UUVQtWeSJF-UK9dHKBTfy29L*z&YW?QIgFdx@A94Nim2x0>_xF zy6%);1_JM4p_r5>Y4QQTosKIDS5bIzl6-&riXELok0ZZxn11+ATSAv^Q$CZVv z2v-WGgZaSniRE>A6&%`~% zy%ZserHPGrMc?fm+wJXz`%dfjR#Gnz`Xo-d<&PNnv3EZfSAFO>Qj_7_eKnv(FI0Wv z+gf_SP|bAjwWF1uG8itocaNI#by6aEY4?|M@2Q4+CyHO58XKBU3eEea+EX;i=_wE($-9qjQyLT@sMwIB{BMlAXr&Q+|Tbmcg73z0t)-?up zlLp=NDqW436OlE-qEd0u?t?6(!m6^6BCJZR@X}G2V%2pfTUC{2RY|Zar#XlkW>qi; z+Q*(&jpFQN#x)oXVR%UcD>1}O2TImpqCUukl>;@^w3;&bu-Z{D88@6O8PBku-H?HN z60T}Gl6fR#E{S2RG}lNodMFRKKGD=1nT_R(QP!Cd+-w_(A{&o|q+vW~L^5tflH_hJ zBxNS0s{)MzDOZw0lMdB&kHzc4*U0idq>ZKifLyL8LJ1sb=2VE{j1FgF^@4Rh3Q)A80Noj8N3o|EF*FufFD!MGI>T+jHJ|e-Q5|CX=R7VW0z!yFVnrk4f zAlCq`c!1WQ(TQoUfp*D~Yksgv*yro zd4DZR&qP8Ny_QM09u0s;L|I$|_Vx8#Ckq4ly3#WnVnB!bnAV}*J+dV~CPlc0*)+(} zJ%^JAIfiRM!#{>G&PL%H@LgJj9lOqFqx1G|Ilx1mw-XXyq5V(t^LVW@lQiiSs#f@F zd`6Y`>z z^l-u6Xb|Iq`PHeka6*PcuV#q0%Y5OLf9M#sFe1H!qX%WIr~rq)kGB{V?Siksnk=~= zXxh)o<7gvWd{v8yCf-81t|WOJffJfz5drE9C3}PrlCIQUPb%-#6*|@@PZm0s8oURU zrv(|(D;g}NDqYuU6LZMR%D?eAiAB=p*r=-JaJm zro^81{YU!Vc>BoyBTGHWN3dvdq)(66{_Z+*fWPEE692~2SPXFL{r?dUPTb*Ed;i<5~=%D-GiAS2+ zYFBqbBc1&xoniZAwKYNAi&Z9<_E?w{PN4&6lGRoi8D9I@C!^)u(CIB7Gbc#e^b4#( z(J-7w23*g}%aD$*Q2e!crd}&4bdyi24bEwDL#Wy_ldVy=dwFx9o}ip}zNE1)-A}>$fXCykI@#p)Yi$$LWUY zPSU{N51sn+56KZ3Y;lp#!=GfkV-(Hf#E0z{0ouXxo&;zyE*GC3xQL-@+(r905(GRK zA1FdC;*$QwNc}mWZA|4!Ky*%^L;4LMn#PGU3~A`;kX}R_jX@mz!3y;`4vD-4xkv|} zH%h(&tMrJwi6K(_n;Ej>zJ(#$Ja7v`wEZB&5N%l4$`E}+u$iHVvwrw=xv6vMcsd*t zr=7;??!;+ReiSA?<|D6-gC~$#l5WHur@djP?hVP0Cm`aR9}TIUUSI!PV+@@L=Ve0o zCa7`@-Qy!DN0Fsv>@Tn3p-^>Z*uEn)6t8R_Kmq#av$Pd~dLZ? zZ^N;VnBHW^vN_?5Is+X08Q{ogfD?Br9QDwlPiQHBWR{VVc${iwq8$4!#LLx;QAd^m z2;!CMsbv7ZV&I@OqfkZ}oK7WT3_2o3oj--r2MKG&NNoeEIdG+DN#(YSXoRJmr!qhq zbgFPZ5`_V#0{R9BIQR$WgaKZGIAMS*0Nu^0nQ%FGF_Z=9>kRn--N8^kpnqYg$cQU3 zpb7(82=pYt_R$79{iN=*2&l zbr;$!_TXiENMw63j+xQZ6L75Bl7WogUZvv`t6d`^}F&SF61_ zTi&C`InUjiKXz#IvB3*~G%jPvOx|lvZVcU!oKU}hiqe}mflgfsjA}&r;;1)x@H^Bz zuU@u&Z=RRxB90qdGC%_p(EyhKx}QZd1(0X}LKO}0ARwx@i@zYBk0%!${AZpa)@~k9 zY;`QA6!##H2zHj|eJn+_(hWgghpE*@&yM2c#}O&L_*Pfn<{9GCxJGsS6Qox~cpcU_ z=Sb(pjVj(OF__$_V&e&eXLa@6^iutD_D@R&0FYxBpTaHE3dQ7)-P-rL*d0a5Jfg!E zEBA|U|V-GP|dn$)$af?2Cklj-4NlDnTS4j{_u zka7SC?@L}*c;6j>9^=%LFyluV`Wv91GejQXrwrKvJ;G3e5tn2@P6KiQ`WfRz`0$E` z7Jne%AE67RAM+ruZIjNW9z)uR%zTjR1bhgvewqFeKxlJvLZDpTbChu4!14#w=NJy1 zbmHhm5kELib;NLMjYMGm*~USnAYl_{>JAXaSOMF?q^Gz#;{j2};$qQ~uXjl^5l3#= z#fP``GhPnjOd%6DF6nCAsa`HVo|T5B4yhe+0tx`y&2bw5?P6#XAnN}e(#=NdRs+iE z>G*LRzMHpSfeH^PPGr2w0>gILt$m2Z`IRJMWji&sCT7GX zhfXF0N+DIH>sv?&ZT3pPAZkjNibu6DiO#w_hoi#F(=+v}@17n@?Y6=px){X7At)V?@az6(H`14ACT) zjt+A0qRAo7aXs!&aNKQxo@eMgfas%N2RpJ~GxQANZp7u1-opI_Tn_0!4d^JKS2*rn z+z&H!0{5pGdLQ>A44uTCC}A><`-=>bEBh@&G!zv%5&*r#aY;s;(|}wClnm&1jF$rF zS%%zzo@2;k;H3gO$Z=^#T)F{y4T$D5&odq>Ezz7t1TjcHfE1d2t0yvs48QOrV6a~} z3S<7ZcwmQ6zz!jd7;*@|Awt2;x=HgR&Qjc*-ZfMYXRw@{L9jkLdiG|EBZy9>T<1hb zpGl0VqcpRd%e5{9l*bT_)QcD*znaF-*8$PaJMmKx;~DBj+$4qoNc-rD|kdGyYWF6o>S>aBF_JwJ6+*rA1G;H8ngpTxe(UD!qyHGb+2`Kk-W{ z&!E?fT)qmoCUv)tuW2GH5ND&}NJ|_OjLpQAO|-TnA{((PT@l)y(ir*}ZkX29l-{`R zilNXaw)Jwj5I>kwAkhih_}!DLDgAuTd>yTHG7q4bSyR{NpC)Dr{wuncp=%QP! zqYVL}qqe|I`mvUYC@-^#q`)`h$54{+5{yq*P9C5$XQjq)jWn2|9^`T`GsFS&jo|`m za5NvJ-WV>0UKL2%FS#s34rS|T+_?j)0id}{ug<|pkR~@f z5_y>P;#=ML%!RqB4i}2*1MqN+T85cWQn)a+YrnE}3%Cz$_DF#n!1j7bG^M&qTj!>Y zfMuR)?f7FP;im;stBv!Mwc}uwu0pC$Zy}xDZ&S9C-SIZR-hB{dW+e-5q+fGMHo0b; zV;+n<>GuHm0Nuc)C@>S>%m@O4iuqeKhWP0?&h&Vti-sR-Y)$wr1+8_DJ%|`?%#--Z zng{3sZ8`EU+Zfc)0QlvZ5+LjPM%!5V=Lu}!2n6u)^=W8mqOdDlX_v70Ih)Lp1mH9U zp#7!|UUc)X&S+ALS?M)$Q?gOfClb(v-0F?t#AA=(LHy_q{d|qJzQ!-kSjr`FryDJ>UbQW-Cl|}T%Z}7NGrvL7?ie?)eKMsAN_cLTK-L=lDj92*;PF;ApH@rME zygVzs+;2@%e4V--S$)))ZY=QHzJ5!bCXpANTPh!**OQsTB85 zQB8-m5YQ(K@nSir-hjKnqsjrLC=7bVfJE>VQt- za_}pd9FDsg&mVFeEy0V?JuO)+;?$o25>u^S1L`xNcL34&z{L~tS8gHtyGN@wV11CLGv|1+1i3s4%T?gccNq2~;|K|n%Q z4ovoFfzBZ%0-DIsIe-9p zZQ#8JNKknn(0QEtsgdeNPbunq381fVY8oKHUm+k-#(F?GNOeiu4Crn^qL#k`G{|z< z3#fysJO?Pm&|yF{9&$;?4ZQaO-N>n*0=k2tQKKXtF}kD_K*y28Azche@ZtsZF~?;B zqIP#kC4l~mp$Y?92m99ux|F*NM=gZNjGM*LBv@*sZV zqtU(AzqYMoBmV${J~zb5Y5PXwr+7O2*9Dt9@MAm^`FDdbcbsVaC=dObqXX5&8PhKO zk^TS{;-xL`RzM8jrHG8(;jNw$JgK*NR^d;r`lx3S{?@6#^fciwy6=S*^cv4us~`W2 zW3e%Lr+wwOd9I_7<$AexR)ZQUw0-{>EByuCq-Ls%pMgK02@)-R=_4 z(n_3oj~0k%x;*szw4=?_?V63v{0sNydq^76oab@&{$8BD-(Nwg)QHK|V(bJO_#p

    oKTxlJ1>c>rrBbbqA+2;wB&L&q%2xdv`!Aiys?XfgeR_?!d2(HMhDO@MaWA)1#29LacdEhj;}=tC-^F3My%-IKh+@qdU@8ZJn+d`mRQ-Q_r4cLyniR%v1 zUiCyJp1u4G)lMblg{ztKaWHYt;b6SF=h%J{;)gh4xT8DeKCHeDDLda(U;gM7I*APA zQsmdwp(%Tcl%4(Eu3wSFtGaQRceS=(hTf52&NbzC^Oc>?tNW%Lq)%ij<(Iqj@0M_o zK9@_UTA^(E(kQhMf|>)n?RXgVOjiGE&f(59{9+MYqFzR~C?mhi$d7y}$d@$dM91%_ zu)%RngcIGI8GUF>YWw9&>X$_}XeM6UBZE;k-`VQREWB1~-(Aj8zAqf?7vZVO=}7Hh-rUh&Uft!(RP z^>}+&wp6wBKM?aW54jkL13(i4RrLW*QUh=KPPyJ16UNxaAge`Am zmA*!QLtt7u>8}tv=>?T<+aZDMLqDq<2(9GIB^lRprM9rn@))cfe8uknYpeO zktlh1F4A1tHd#x*>-mQ<&?lKupfy7Ztlbf1B_LL|P2yDiR?d^fnPx6J)s+I_L~=M9 zF|zFMqXeE&X z;Y5~BS|i&ON<_Ht-+qiqiQX2p;z@yUghr8mP~R0@I#G~qq?Hu@ddW=}n{;TNM1gQ3 zOLrnhwz((~;jgY63e8-tS}wv7rPEB}9bD0+k43C(%fg+)z29*kH0gXxqeD26rIQcv=w+1L$-?ft(J@6$g*heBim?xMB$c% znje^Di5&=Hek2H7CCCBOElQtBr9-5a(rK32Vw6t&Q0vePQ}CmCBuJFJHkD42)D!_Y zWX)FJaxUX+#+`KW&frU1OzZ_3Kj$((NS2mGaA+-y>KIwpxlv`E&p6q*6F+HzgP4Tr zoHc2b&qrCZWTl)OMfvyea;B96*+zLO{Ip=wMJDA=Ef?W1W$LVW%|K8_E!g`l zMJ(4nLSk;jMoR30D2bsk;QYddvzh??E$dgGnG$19!rCr44H9$B_+f(&VNa>KkMpPH24&?rw~%FuAO$}53Oxx|iPa%{Ayy2O|9umk~3QNMEDniuAp3F2gi)N>oj!GS0oY zQ&>9Y%@53)zNgi6s^lK#)oIKSsq<5#C{JgcBSaP<=O^LUOv;+m!B3$Mr<@MlNXpZr zD3ict8@)22*16l`{f}VQ>%s( z^O2M@q9{{!Oc}O({3mosV3Wgijq)s}Y?UG9ij<)dW602mF=S}O5Wt7D8!?6qjTl3Q zMvNgtiiy;4${tzMSy445g0fB5!w3HAy4|elT&<>8M9GlGiIJ4Ah@wngn{3l<=X(#` z*lSWQ)hN%7qI_i(<=Ih`=P=GbcsA1TNvn3PqGa(09a?*lI7GG(~I z8pATA-zPM1ScW83BZg&2@7awQmLctRF=AMTzp=*f9RIMED^i9&u7$N9%#NyQ4&&^? zox;J1lK_G|hX=Kq=1A^gwv&tWNEzltQO;wWZwXS;x1XMT$fW!WjdETT<@_khc~O)L z80SHaa#hW-eJ14>G|B~0lnbLM7erB>$2fa5$~6<)Fig;;F{n|V7e%=!it@ZD%EgRB z=YEn#&9)!eYf`qyivo+8GWksM4*jFWTAa`*@+spYVn`LP12Lj3a7bPDgO(XXDs@pr z45{5l)WpDHjXH$h+KAzKC7pFjF_9WIpJF2BmBmptUBEcgHL-Pn}d#>^xn+AF|3NA%rgTnnpJmPXaIoN+KT;c(gL%WpPoTCLTzoNH?J zY!$$cY@PBb%9V^mN4b#!Z^jp%#?Olp(Ew7%?ovYpgLWL)yV+ z;IIsntuZV^+MQ?MuncM4%823K;e?heQV*-5YFZgp(`v?f6?Y0ReQ#mVtm&;^jf0z|^$ z7aHZdD9VeF9!a?_it=K{`B0FO9=c@b4@}Cx(FqI`7}<;78ymoUyt+IasrkHyV1 zDgQ;Iyd;Y9(kRMHq9`w8oGj=ng&hNTcA1nDNqrHPMNwXk*hpzCi=tf5IP}(^!W~y1 zc*CT8iAK3Tit;tUjig*3MY(}-v?;1|e0rbTq@1l$Ziu41B8qZD6y=qSlViglgkzs> zfLyc(X|YCmWfbLAz>Va2WfWyUO%N;Y6;uHb>-|djB;LDx3!g-gE|t za3XW9L5ytE%eo`ywRL8$Ls~T92ujCvMDQ$PK8%WyM+0380_Q9vhH_cG&9%UbY@O9n zGHhWSnz5b_XzSD-MBsq~jR+{Tungg`*^APRaaFejQ>W^`|YW z?j4M?2X_aqrH>ZgVAg$?M!AFQZsn(wbD;q^4E*_LFPr>4qvax;NPYr{iR7mvik~3k zkZ-5pc=pX_Onyd<5wStRk7Z2{W;u*D$R zSbx3-8b-_vB2AxuF+UOdb3IaI+r_w3xVmWicg^-1uW?8?k?jRl7$((?QFY(MIJe@i z;M&stnWe8>s8Qae*PXo$={)7aH{2EtzY#IAEg5$T6Bewv#^i9hMu%|BcL7uzK}Yv& z=UZb~&Sdun&I}SFc^c+9!qaX>Y@}vximK^Nj6);Wsen@6dh#u^mG9IzyeXolFWPW0 z18~i;albW&+jOTjhTHT$YYaI^NwvnXU)^Yp@e(2W&V)H6zdD<8HCb_Hq$8#_B8D0x zKO% zxGAbFwlEI$H`KwdRA+)5h;jJ7))reN_ptftEl7`~yd{cqh;eA+B+bM!_Ajb8DgQ#F z90FzYZP&xFILgJXoN)!9^N?G_ST%erQ=W`Fh50`kd%LOO2Q|usgN8&nn}$Rjw6bQ9 z#NI@rQ5Lt(P9uhpzZ#W`TIU)A$I4F^Qe>MOcM4tGBy`rIZ0s@C=nxLqlzj`W=|$IT z8*ofIW6zp^=GW;oYIF#P>C7bkS&pVMYH>Mf3+=6?7}h9$lfDQ~2F@%}Xxfu&;LIXv zWEnB^Zfhkr#fsoYSyqkOj_AmC4@I>*c`(_w3wP3}{WI?BHrxG&S}ktnc1N=Gq#tlepI8pgG;xzpvt+jaHml7FW>uv&JA|i zYq!(wS&~%WdYmJPC;igcB)4h+|kSc0|>JdL!9JJFCtC^vwg`d(^B& zP^0{{s9L}bkZT_96n>;!h*s70XSeF%&PGl|a+E$kY z*D(n*>wI6qyt48I6{WdmRvmFwL!cph*4khvm%k3BXM6GrJF`9cWhQ|lUqMkpK}qhs zLX$uYwwdcDGi$CdzpN~;Y`(R|RCe~PQ!HBZyXI&oZ)JUXov4l2?{j>?>})w%Q+vpqp3X zD=e)jT~KaiKf31F+^e;kg>VH}!sg$i;zF>EkFwFyXy8_V3xsQ7J+ItXR#8z=mRCOS zRIKxXN}>>h_1pqq$-KhcqMYI!UqwqpYeNUlT54=w9Yh_YBvk6lFDNZ5FP>L&s$xJO z00M2nPNS4^-~94|^4xg^Wxnc$wb(=1nLVSud4s=2RHMGWd2M@reP??|b8DbcSJ&Km zzKY!9{DOJ&%Y3EHXt37RP;$S270F&`*sMUqYK;V$%RGOeu-V_TYMAj9v?7M>sjf#z1IJ9ab# z+fkQ%sAPLb+X|e=;}awcIy%}q1Xzfzq-70j{W|5`B47D}qLPAnuo9j0YSNu((pnW! zOj}2@zZEB7p=k^{CBAv{^9xG~D++x5&7MsgRkLSVGFSvv*U-@laT+9`Kjmem z#RU}$bP_At0)e)*v8k*M(B9TOZfZ?>*r85w2GRMxqInhba&mL>xqf^APxh=v(&7N{ zvS+ObHa7Y@bQPcmT-(sn(za62BU;tX*Q32eS=E~1(KGLYA6|Gt>&iCh2B!%U)WX4l z-x5;|!)rmC3Bp#L$@e!l1Y2O&2LB6uCB-@UxrGIg4w~M|KkwxoRskZ$CFx9y2ZL*H zlDVRpXL(e8xcXqgJ3M0M@Q4}1BUX3#HyZgVb;Ww)k#bueiMr(x9!8iZv0>zih%Ies zw^holaDOS!`bE;ssWgB2$L(tNZ5R6|}|=%aW60O|+I& z6Ej865yiGiEGo&Q7MWz$hrP4cYp^gpWoFEj8L?7k#>_J_W}X>Z3aK-*w6F~-Qry}c zfDi5PH?;UN8vW_kpvQaD8?DjlW_(06#j~x8(X#OX?}n7dmH<9oA%EQ%Xlt2Sk8fb$ zuu(eml4qO)Xd$w;T{qdh`M#2pdHH#{1*K6YD>}c~aMI=6)k3^{q#zvi+JRvbkq7Y=$}9fmvN@HO}{I(^Ob(7|?Sm`*5ffv>bQFE@XFX;Bm* z%Q0l=)&)0UW@VFq<+Z#N#C$QNv6YwaD=f+@F3*{t7e!4w5GRr^kXsRKZdqmFD7V;` zUs_mNRE~k1e(X#3tjz4$uvub5ocy9yr@eXQwF}{^Aa?ZVc@5MSdR(>U*hDNfD8woT ztGWKw%|`cxHpwkVA6EpSjxb*3ajF>biB5eLv!ZpM#hp~V)}LcwC3<&V967$iVhm_Y z%g~dePoCA*i0bpFidr{gR0kDn-zX|&W-gmoUb3L5Am1EZ=$|o)ex65MXlBtPM~*b~ z&#`!L4qdG8^sfwdGzT`;uWW0(w%ITFtWngYT7u7O_Ld|t(Kl&K<(EQM1sEzV$n)V7 zFbpR68!+e?`X3gt^(!#&Rcwr~Ft*QMP&%(LXF;(q53_+x$ODEHBO9{LC!uR%)@wt; x)>XHl2m_zeVl-Vb^D+a%jLpzOkkTuW>nqPMF3c^i$cxPhl|=mOj9`-TzX6NU4QK!W literal 0 HcmV?d00001 diff --git a/Release/tif_jpeg.obj b/Release/tif_jpeg.obj new file mode 100755 index 0000000000000000000000000000000000000000..2a195fef1da817e35ddcdd4324454884e860bf64 GIT binary patch literal 582 zcma)3(MrQm3{9P=_@e%RT#8VAxpp0BR~&3^6U0rWn?4Psy-nxUtu43hbiV2@`73^g z;1_7BPNq)=LXvZn+$5)?Ex@z$cK)IPEWwxXK%vMc_#MJ4Il(NL+0}L60s8rHt2cw5 z$Z@I9ywqX+kTJG9_97W#ngy6(6ksH#j-E{utQmJQs#pe#yfFn`DO8-sVa6|;Rg*W} zzQHD_QW-}zqsmQgl}*dyw!sn=3ry2kHI%rP84a8(YH)Aw(Od41q&UH8KfXmOEQiAO zD}L20W7)=vZ|H2d)jn!mbo!m+Lr2eZ8Ss(x{|9$_mo(R(+_O&Ww9#$%bhb$AzmZNz zZO}G~Yuq`5&ou}1NvcF)G8u+fmTB$}TpXd7;((B=n*@hE_HV#}gALFDmSK(RH{F#V z`*R|;?e4I%B$H$LAfq8`#^XeeP*Hwekk4hX={~~yJ3tBQA$l1%&4QjUWS->$EolYM Szh$1`1$ruJ1;@Xo*!KgNMu>U< literal 0 HcmV?d00001 diff --git a/Release/tif_luv.obj b/Release/tif_luv.obj new file mode 100755 index 0000000000000000000000000000000000000000..fb5c4a8fa7f7ab8c8289b6e009c96f910337f8a2 GIT binary patch literal 30120 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 literal 0 HcmV?d00001 diff --git a/Release/tif_next.obj b/Release/tif_next.obj new file mode 100755 index 0000000000000000000000000000000000000000..e4357b3c9d38e9169708e128cd14cf86fd88097f GIT binary patch literal 1913 zcma)7O>7%Q6rRl*$E_0VKm-L!*;oq(1vZY28^>v7r}-nQ;{+#hkVtFn^*C9uy=J{m znkpm*$5LDqH3x)xsyJ{cCk_!&D{*j=MnW8l5E9}qQq)5QG9Z;hg%HHNx3*)aTzJyF zdGpOTZ|2Rsed}c!$!D(nW9CN)d4`llh$vK4=V)a}eh1@araG$h$4x|t&~SQ&AFs}= zfbn!gbyV&>#B@$j=_R!e{s4Sk2cAt=29HC>na17{lt@So)rhZv`C)}qMLi~~r?T&0 z6*Gac1H5l4Ts*4B^xu8k0N(@7K^;%qw;ab2e+IaZ6VOnq{y2{7h=&qVl%~`OP0~b! zCd37oSzSodvzB=&VYgYhL?{k}5lK|!lpIxsKwr02=<`olxH+n%Bsp=`(k)m8Tc_1# z6Py+YvGcc_zgI;lNu zF>@XL1B1Pj-U;vUIhQ$|mLft-3jaTNWIO=pdWbvf?f3PL42+vOyrlck=AbzV(*hlt zcTH?aKi`!3)i6F8$gBLxscd1%I5t~?iNMdGNal7^ zW|8NSb~1nC3wWpe&F@fO`w8`(T#Rqcd3kR6*_?(4FXptF3pepe-^|=L?BrqExY;#y zKKsD9vVlGiJgTfYe2s^-CM4K@Tl<*D4fEe_{iV;`Wi$8OOWkY3B)^;4XMF>iKiT;g zN_-Y6SGEiL`cE&G`o7 z<`lbi&%pk%7SQ$lusCDfd@`^$q#HAC4l!GI4eZzK_Lvs*t-nj9Qu`fB%Zs z_}%Ks`(R;i=*c=*k7|~WzA@2HML9xUoKIFcnvl~ovmBNOE-EWrN(?1pQi5{N$0D$R z5G*NJd340siem$`M$8M{Ega@nuK^*q`jMt@fYvf#2S0G6>XAg+G+lOt<_Tzx#3MpJ z3R2{hKSN58do1xpX-E~UR&Y~6>MJIqEQ2-ksMJ?WJSxkq93{Z0zEZLp2Lr?U*nIuW za=8-WBK$T{Si(U=!MiLA2NzLaNs-GkSW8hhHZDI`i?CYpk%MP~4@=Xi&=2qR+0p(A z8t$V<k$VcpVuR&5y8)?whA5L`)hHLV4TKNwE9=j&Rkc8@m*L3V}b>mumrLC z`@uJ3nKsbK8QAZ*T4RfVpyRGROei!gyE$v8fVt8Dkc}oE{7A6imS=L%a4wV literal 0 HcmV?d00001 diff --git a/Release/tif_open.obj b/Release/tif_open.obj new file mode 100755 index 0000000000000000000000000000000000000000..8b873ff46a5d3e3c828dad14fa3c4dddaa24689b GIT binary patch literal 7324 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 literal 0 HcmV?d00001 diff --git a/Release/tif_pixarlog.obj b/Release/tif_pixarlog.obj new file mode 100755 index 0000000000000000000000000000000000000000..6e5a24a6dcc879fc5a2f58d599dfdb10ade35f84 GIT binary patch literal 586 zcma)3QA@)>3{IV>_@e#+If_tyIlB&YD+-%aLEKcj>C-^kYdTN6Ub(jFeD%dYt?1)yee9KuGc>mrL?>j2U=#-_BkPfI0XQ9%>Z%Eq;gaN=`TlCU$Wdc!)tUTP)I+*J^N^J5}3pc->;DRsyq3>6R8(GN*wHO%3krTa+t;Sc+pD_tg#3!)hez zK`m(bRjk&r7FZ_R+&?&Mop<`3qdnIw3K{ZP2LFS*y$hP_Pwi=E|D@GD=$UMm)_)^? zAl(6DrM$+SJNR64K%ZnOI2yJ3s}R5&Ai|?UJG|WSZ#` Wtr#WOzh#=`8A?@*lIP!2?)(9bn~F{V literal 0 HcmV?d00001 diff --git a/Release/tif_predict.obj b/Release/tif_predict.obj new file mode 100755 index 0000000000000000000000000000000000000000..3ee06c91a7cda22fab2a1d7c53286e4b22e81816 GIT binary patch literal 8864 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 literal 0 HcmV?d00001 diff --git a/Release/tif_print.obj b/Release/tif_print.obj new file mode 100755 index 0000000000000000000000000000000000000000..b66d12fa3bea4bc915489b9f28a948f0d98d1350 GIT binary patch literal 27710 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 Tp|aT@zPBaDZ#2_~W#a!2irpLJ literal 0 HcmV?d00001 diff --git a/Release/tif_swab.obj b/Release/tif_swab.obj new file mode 100755 index 0000000000000000000000000000000000000000..88c23d3119fed7a209c4d98970eedcb0839d0019 GIT binary patch literal 3501 zcma);30xFa9LL}6EW0Zrtl+KbM5}n@vVaGW3W~{oeQ8Z=QyVBYV@& zYpZ$@l1x0NG}&1rU(I@xq!XMd+L!WvBjrSCVhzp;h0d3=8k|erbZR2cQrb;=Uhh-E zS47B4aZnmuHBqaTJiCk!3d_M?DG3UI%gD70z4hk$a!|JpblbdI3esvh)Z2|W0^&Qb zl6M4j$Nz^n5_l)Ck|&W8G5{X5p4vA7@))m15MsKA{uYDI^gp~|P~HNXh9F%}ybYk) z9;ExP@tX*|-Jm%Yr0a>-0h-G}y8q(E0#7ObmXzcK#-gu+L_TM< zTOC$2uPn(*6!e}mW+fnrAnEcq)JX!rY0~pyVb}#99Da#-MEP3VPiS% z09ckf3G$qVO3pZwtu3}LVWD7>*_dibF{J5}*rZf8#gGusB<4)Z&77qv*5qZS$2*;z zNmEapOfal?>CyAeM;XEv87 zt5lOqi`Yt5?_f(IQtqhH86Z%Enc)cC2ufx{Y~g;WzTTwePE*vHc=*&v;|>&PAsO-8bjc)cwo;60goVq}Xoy zuHS~@k0(6O{~mRx=I!gBs{DD_{iR<{Ik4g%(H&W@#Xn;BHgujW!~rMFD}0%S(AHs)MMr!25c(%WKwJOpV8|I-c|0lbPnHEcH+iYR$ifQ&pdeT z!}^nb@45Mdq-U3&?^U07bj%annZcXqewOw^?Zt??X|Ipm!G7O=Ur_vyV^SS92leuEO^c_gK%3c(DBIsjuGFMJN$1j*v)Yy&`)@^@)y=_l=F~ z*MGpkL4$`39d^y|5zMvm*C|GhN*Fz6?6~X4D-%^o$te>iPMVyWmVU#Oj2ow_GqbW` zflQx~chgKwenFx3<|1A3tdiMt=FXd6x}dClq26FLvF3_J+~OsbRTislsolXlt813k zF27~Ptt)R^b^9Hz)pcvuy6YPn?`&Fk*WLH5zjwpNP0jah-m>-n2ev)<(8G^Bx_!rE zkMDfq$z4x9y?f6y&$c}G{NC1m`(JqRr2{X&@@m_`*V+%ge)z~6N8fzw?RVaN@BI%x z{OIFjpB(@6v(LZy@~abHe{=HNQ{R36!;h!W{B-u`j?Qzxod5N=-~agY!e19J{r%77 zD_xB_3UN&945~ry)>3X+J1z-4&CzgIqD8?YC0->R(+W~}qZ~?#+**-)1|<~4;~mXc z5LYx5)F@W&u29IE#8b5%3=rzNst2B>p>qPVPyo6PL%621ysRAu zGyuj!98E+dLff$0QsP>n5R?5FcSZ=GcKom5IVvH2;Ej#*{ORz}M)QsGSnxf=ghS-I zD2rKB522E#r56r%(z#9B6{v=3i)meto-kyTFQElbEApqn!^!msg=vQ6;Z1?3jqsJ~YD)rI-#tvw2;u(thN?Z0;7b&0Y09@j z=gw+|K42TsMteR)OcfBLGK?o45H?fNX;ZT2vSr_i1RGqr%A1f(Fk3B=0$5x)LC-f(Tl47#V-NR7EXJ3wxR2%0>MjAwKxSsq44CQadv!dYoPW7-!W?}7+gY#2EXqM_ti zfqVes<;8iqxmg@v#8wyU4VA1XP+$!U>EN29TV%EK9t9>fR!c=7m1(!@YYWZYG~Q^a eG{*|JJ#SSA@`{4P(^)>O3D8EkSF#XykbeQ+Th?3v literal 0 HcmV?d00001 diff --git a/Release/tif_thunder.obj b/Release/tif_thunder.obj new file mode 100755 index 0000000000000000000000000000000000000000..520f67a4f1e64fd21a1f34ff52ddf5f07c692625 GIT binary patch literal 3070 zcmbtWZ)_Ar6rb&0dxaM7AT@v@UF$Z5V2EO!A@#b6IkCzg%j+o+zX>yeAk+V(m2Pl7WxmNbO*iIZVIg;Kb z26BH!LHV^P*D}8nv2S*0u`mtK<4#a_^Yd-gB;u4DRNhPT;IqK>0oX-LOmHcD1bg?( z3;F5+Ut-O31XZ#F--3P@0p9Wuc4c6<^?r6{yuMsdc2Ii3PR`n5iX=P4yC4n^;40W0 z%d=x~+=uTZ*nF2~cR#)-f$s;fxs_-4AijUVrVQp5B{x1n5Y{KcNo7Dz(U?3WCu4Fl zI?`N4M~380HN#4>&Q&8M!wG0~Dp5^MsRPup!_(w+czS|0!X8;mDQa?4O_RgvaMe0p zE=OaHFr=wbIh9hi7A-ocP*^}|4G8u&J_rBOk+>4wCXWQwS7dOk9f&qY>LN|yTDi7S zu8Y)E3G2PBzLwsOU`PAr=BjjBi8uMWBB=$ql-%`Z6_+*B>y$5F?njrQg(^|HsclThi<(fP4 zG|E{&{G>i*GcFlt4oq><>t|_kX=U3r>l>5fQ% z43^0ncw31Sg}UWXVyk;}f`y7F(tsSM4yO}nvPk|V0a2dAYeJ#qUl6bdo*OMRfL8t? zjS=u1UJp>{(GPJrS-~=n!fcqf4BmJIn@Ikli?%$6Gk|Mi-?G4$^QE^65EKg$z*Fq- z*W>l!Z3qFq%&gR+0TTf-lRrYt9?zi%%E#~Q0f$`fHku$on?f&SO4uKRoX> zVuGyaLN7esc@8flD3hx`IXUn3z6ruyA%;;Pke-VIkXnr5*?h!>$T4`#NWsR{2(6v@ zNPQEu@Uq8p$e3|HN+C!S2_@u2N~VCJ2pDPJHKr6Wp2JxI3MLkokNnxeJn)}M^KLW93UuVz+5 z;2}D!MijUu#c4PNtwBwe^V$UkgM@_>c*ZN?`7CRB&ph!5-Pq=|tcmCg8`1>D8o;PV2*++Fg0 z4!CRU_;{W_I2D^tr{tWPlxO7Wq&%IN?QK_QXXGb3&Znnc-5vaNYzihP(g`J-%cfN4 znD2<_^hHKH_;a$7OJ}E_=s4mOo!y7T?rx{MgP&2d2|1U`DqbZqnO0##YYGrta6bw* zEuKjyj?1&7+2>?%Jd{ef??R$R;FvTHe&pH(a``-MH4 zSNC=;_{BTV)8RRUd)!K1S<{Wgre-oS zzdy-mHI>h%cqKM{M(*OLVi)-R8u80B>LkBEv!OYokx2IZ9jv}=<_=bff#4B^VxDAV z8;l|SL7@doum?*Js!ud4O)x8uRvfFJ?V7KsuK91(gY&EEBW3|%!9bbmHx~SRvC3|_ zmbt>1c$MpY0*) zLwZ=8UsfLgUx_PxhD?lR8j9{ztlsx zxz|9W2gLbBZtg`KPPkz?FQoF9fb$vX0#EZ?(V?UR z5?B1of55;Mt}gg@SGdAgn1%e3ZRtlAmw$yTz`~*G%d63eg*LBVf>2MD#%M7D1MI7v z`O7VOX@cq}T#KhlI`Cnj$%SGe77O+V;HmDCo^W+n*h^bYo8g7$6H0acP8geB zuP%ZTc796*1E*DqJxw_DE_i6p?fE0j^VTmIXHeb@3b zqgxsk7Wxsq$O}@XcEi|4qy+r*oayAgNS;(GXq8fOOm&JP25V^QuY0Iv8N8r1O8r$2 zGs7~t$r`2pnuk%;crqWo*;Y$Wi|NJ^9ui%D=|c<4;MT=BP*}QS>X~r|u?+4fJC3eh z`lN>51saqs26NrD&I($V!4gMF|M%4&@gp08pC1J=5Ko;K-mzGQhZg0hNB%uk^P>Mb z&?2VMi^j#^L54!DL`yKtkg8uh*DgFqwBWG2>6Ak$FcGGgdmwc##(5AIZsFjrnzxc~=uN z9-fWNyD0Pf;1L}i3{u}5J0=-ts^_pr z@CA~d!*H-dlkyyy?Pf;qyv^!M^^%zT;kr9=rx9b7ziBBT3(| zbbM$yFyIgNOK>{>E(*HVenrVD)sTQK6zCs#(s#U1g46u>vkhreaakEoVXksU?r;c^ bjifJ{$s9vXZQ3~V%c+=_QEN&X+sc&- ze+wrrNL&#IByQZfa7IF!wEK8&laaxNC)w}AKl|D5{oGO(;6vs7;O88`Etm;)Bj$(` zmbmZ>jqjg60zm)YaNy>1$Mi^f+a^=8_HT#ZJqC9FU30L>2O%Zdr6Nd-F-ncxky zKOyc*f|W;;+`)?^ZzF}~(D;U!9~qpP%hd=Wn?V7>>0K ze6kl=;W2mO4bt=-3Lj<8&ypHTI3#7#d1_9ln>a6m>EJCXcUL=a;PMhc1=C}epqeIk z&mvjs%c!bI@?V!M?Iq(>MH2tIWGS!WlB!73OBuX>C(D|MY?_oQ2C^SOuBeK9kG#j7 vxr>XLg$_)6i+Uai%%$IO`W+T9sw(nB$X!zALB{UlIFfBinlf|tm`MHKyD89@ literal 0 HcmV?d00001 diff --git a/Release/tif_warning.obj b/Release/tif_warning.obj new file mode 100755 index 0000000000000000000000000000000000000000..d0c1206fc2c5f1e473ab8b05c07bba46a289a5b7 GIT binary patch literal 1129 zcma)5&1w@-6h6~Qny6J%a3_>Y2t+s2NeY@q3rW)ktEp|1*lvPxes1d3WG2o`nx^2Y z2x{>a1Yf|N;8Lg$;L4rg6Nq)`rk*pIq|=JvfqT!n-~H})?%%0Mlkg#bwElYnU>b&| zm<~6*9Uctf2L=&oGz$Fr1Slrgd)uknXyzpbzs~RqkXTeazUz%h=o8rXFyCuzWaL<4 z{ZXJ-_Cf53_ZBDL2RxE4B>vW$LHr|fzJ_@J()*5_pCKOUF~(*)nk8D?^-SL7mdPz+ zkWYGpE?-FZg*BH=GfV5>U{x57?bTM7EZr}zF4vMQg12>qZGi0-NdBYu^9}!)4NT%X z202f(TFtDg-fUEPn`jwP&Z#nzud9&S%V5+DYbQEH|dAN%nwv1`@qY_02w zj@ZLxtYmk(qRk!T!$Bn#c}Kyki_{-Ru{(!t5-yA*4E$d}e)O^87{|b0`Qnpz<)EI5 zzp13AHc&5K-8lZT|9R?=xI-;kN&kZ^cy_piaSRFuZblL2Om!cQj{#&Tw7BLes!FSe zNVpORl_jc$(-y7*${68&vr#~${-ot%x{hD-()?Dpyq@cW5T#rYLN z+@TKbj7$c)!*DJd%MzWRIGwxCo}c7W5h08Exx%$KiRfwNsIR<$c(cAzF4wrXHT(#7 TG|Qy-Z2EZcJH{Y!10wtZh#t(6 literal 0 HcmV?d00001 diff --git a/Release/tif_win32.obj b/Release/tif_win32.obj new file mode 100755 index 0000000000000000000000000000000000000000..0001f20fc62f2438c0ac63688f764f241465a967 GIT binary patch literal 7922 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 literal 0 HcmV?d00001 diff --git a/Release/tif_write.obj b/Release/tif_write.obj new file mode 100755 index 0000000000000000000000000000000000000000..886938f283b0a3c5a6f44624f60067638a0c50e0 GIT binary patch literal 11336 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 RWs%_}dMao+$G;`t_Y-S~h$R33 literal 0 HcmV?d00001 diff --git a/Release/vc60.idb b/Release/vc60.idb new file mode 100755 index 0000000000000000000000000000000000000000..1663e80039ceb5c43096dda839a855c184ced88c GIT binary patch literal 82944 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·{eMI9{=agx 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%0A#w_=f<)03?4|8-PRb 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 Q!~$Xgv4B{hPAu^M0n3x)lK=n! literal 0 HcmV?d00001 diff --git a/UpgradeLog.XML b/UpgradeLog.XML new file mode 100755 index 0000000..d0654be --- /dev/null +++ b/UpgradeLog.XML @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_UpgradeReport_Files/UpgradeReport.css b/_UpgradeReport_Files/UpgradeReport.css new file mode 100755 index 0000000..3411f63 --- /dev/null +++ b/_UpgradeReport_Files/UpgradeReport.css @@ -0,0 +1,207 @@ +BODY +{ + BACKGROUND-COLOR: white; + FONT-FAMILY: "Verdana", sans-serif; + FONT-SIZE: 100%; + MARGIN-LEFT: 0px; + MARGIN-TOP: 0px +} +P +{ + FONT-FAMILY: "Verdana", sans-serif; + FONT-SIZE: 70%; + LINE-HEIGHT: 12pt; + MARGIN-BOTTOM: 0px; + MARGIN-LEFT: 10px; + MARGIN-TOP: 10px +} +.note +{ + BACKGROUND-COLOR: #ffffff; + COLOR: #336699; + FONT-FAMILY: "Verdana", sans-serif; + FONT-SIZE: 100%; + MARGIN-BOTTOM: 0px; + MARGIN-LEFT: 0px; + MARGIN-TOP: 0px; + PADDING-RIGHT: 10px +} +.infotable +{ + BACKGROUND-COLOR: #f0f0e0; + BORDER-BOTTOM: #ffffff 0px solid; + BORDER-COLLAPSE: collapse; + BORDER-LEFT: #ffffff 0px solid; + BORDER-RIGHT: #ffffff 0px solid; + BORDER-TOP: #ffffff 0px solid; + FONT-SIZE: 70%; + MARGIN-LEFT: 10px +} +.issuetable +{ + BACKGROUND-COLOR: #ffffe8; + BORDER-COLLAPSE: collapse; + COLOR: #000000; + FONT-SIZE: 100%; + MARGIN-BOTTOM: 10px; + MARGIN-LEFT: 13px; + MARGIN-TOP: 0px +} +.issuetitle +{ + BACKGROUND-COLOR: #ffffff; + BORDER-BOTTOM: #dcdcdc 1px solid; + BORDER-TOP: #dcdcdc 1px; + COLOR: #003366; + FONT-WEIGHT: normal +} +.header +{ + BACKGROUND-COLOR: #cecf9c; + BORDER-BOTTOM: #ffffff 1px solid; + BORDER-LEFT: #ffffff 1px solid; + BORDER-RIGHT: #ffffff 1px solid; + BORDER-TOP: #ffffff 1px solid; + COLOR: #000000; + FONT-WEIGHT: bold +} +.issuehdr +{ + BACKGROUND-COLOR: #E0EBF5; + BORDER-BOTTOM: #dcdcdc 1px solid; + BORDER-TOP: #dcdcdc 1px solid; + COLOR: #000000; + FONT-WEIGHT: normal +} +.issuenone +{ + BACKGROUND-COLOR: #ffffff; + BORDER-BOTTOM: 0px; + BORDER-LEFT: 0px; + BORDER-RIGHT: 0px; + BORDER-TOP: 0px; + COLOR: #000000; + FONT-WEIGHT: normal +} +.content +{ + BACKGROUND-COLOR: #e7e7ce; + BORDER-BOTTOM: #ffffff 1px solid; + BORDER-LEFT: #ffffff 1px solid; + BORDER-RIGHT: #ffffff 1px solid; + BORDER-TOP: #ffffff 1px solid; + PADDING-LEFT: 3px +} +.issuecontent +{ + BACKGROUND-COLOR: #ffffff; + BORDER-BOTTOM: #dcdcdc 1px solid; + BORDER-TOP: #dcdcdc 1px solid; + PADDING-LEFT: 3px +} +A:link +{ + COLOR: #cc6633; + TEXT-DECORATION: underline +} +A:visited +{ + COLOR: #cc6633; +} +A:active +{ + COLOR: #cc6633; +} +A:hover +{ + COLOR: #cc3300; + TEXT-DECORATION: underline +} +H1 +{ + BACKGROUND-COLOR: #003366; + BORDER-BOTTOM: #336699 6px solid; + COLOR: #ffffff; + FONT-SIZE: 130%; + FONT-WEIGHT: normal; + MARGIN: 0em 0em 0em -20px; + PADDING-BOTTOM: 8px; + PADDING-LEFT: 30px; + PADDING-TOP: 16px +} +H2 +{ + COLOR: #000000; + FONT-SIZE: 80%; + FONT-WEIGHT: bold; + MARGIN-BOTTOM: 3px; + MARGIN-LEFT: 10px; + MARGIN-TOP: 20px; + PADDING-LEFT: 0px +} +H3 +{ + COLOR: #000000; + FONT-SIZE: 80%; + FONT-WEIGHT: bold; + MARGIN-BOTTOM: -5px; + MARGIN-LEFT: 10px; + MARGIN-TOP: 20px +} +H4 +{ + COLOR: #000000; + FONT-SIZE: 70%; + FONT-WEIGHT: bold; + MARGIN-BOTTOM: 0px; + MARGIN-TOP: 15px; + PADDING-BOTTOM: 0px +} +UL +{ + COLOR: #000000; + FONT-SIZE: 70%; + LIST-STYLE: square; + MARGIN-BOTTOM: 0pt; + MARGIN-TOP: 0pt +} +OL +{ + COLOR: #000000; + FONT-SIZE: 70%; + LIST-STYLE: square; + MARGIN-BOTTOM: 0pt; + MARGIN-TOP: 0pt +} +LI +{ + LIST-STYLE: square; + MARGIN-LEFT: 0px +} +.expandable +{ + CURSOR: hand +} +.expanded +{ + color: black +} +.collapsed +{ + DISPLAY: none +} +.foot +{ +BACKGROUND-COLOR: #ffffff; +BORDER-BOTTOM: #cecf9c 1px solid; +BORDER-TOP: #cecf9c 2px solid +} +.settings +{ +MARGIN-LEFT: 25PX; +} +.help +{ +TEXT-ALIGN: right; +margin-right: 10px; +} diff --git a/_UpgradeReport_Files/UpgradeReport.xslt b/_UpgradeReport_Files/UpgradeReport.xslt new file mode 100755 index 0000000..2d033c5 --- /dev/null +++ b/_UpgradeReport_Files/UpgradeReport.xslt @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + Solution: + Project: + + + + + + + +

    + + + + + + + + + + + + + + + + + + + + + + + + src + + + + + + + + + + + + +
    FilenameStatusErrorsWarnings
    + javascript:document.images[''].click()src + + + + Converted + + + + Converted + +
    + + files + + + 1 file + + + Converted:
    + Not converted: +
    + + + + + + : + + + + + + + + + Conversion Report + <xsl:if test="Properties/Property[@Name='LogNumber']"> + <xsl:value-of select="Properties/Property[@Name='LogNumber']/@Value"/> + </xsl:if> + + + + +

    Conversion Report -

    + +

    + Time of Conversion:
    +

    + + + + + + + + + + + + + + + + + + + + + + + + +

    + + + + + +
    + Conversion Settings +

    + + +
    + diff --git a/_UpgradeReport_Files/UpgradeReport_Minus.gif b/_UpgradeReport_Files/UpgradeReport_Minus.gif new file mode 100755 index 0000000000000000000000000000000000000000..17751cb2fd5c284dfe984adc4c769982f73a0a66 GIT binary patch literal 69 zcmZ?wbhEHb23ky~TYXIqG7FYlP literal 0 HcmV?d00001 diff --git a/config.guess b/config.guess new file mode 100755 index 0000000..b8f4a73 --- /dev/null +++ b/config.guess @@ -0,0 +1,476 @@ +#!/bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc. +# +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Written by Per Bothner . +# The master version of this file is at the FSF in /home/gd/gnu/lib. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit system type (host/target name). +# +# Only a few systems have been added to this list; please add others +# (but try to keep the structure clean). +# + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 8/24/94.) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15 + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + alpha:OSF1:V*:*) + # After 1.2, OSF1 uses "V1.3" for uname -r. + echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^V//'` + exit 0 ;; + alpha:OSF1:*:*) + # 1.2 uses "1.2" for uname -r. + echo alpha-dec-osf${UNAME_RELEASE} + exit 0 ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit 0;; + Pyramid*:OSx*:*:*) + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit 0 ;; + sun4*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:*:*) + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit 0 ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit 0 ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + mips:*:5*:RISCos) + echo mips-mips-riscos${UNAME_RELEASE} + exit 0 ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit 0 ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit 0 ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit 0 ;; + AViiON:dgux:*:*) + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \ + -o ${TARGET_BINARY_INTERFACE}x = x ] ; then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + exit 0 ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit 0 ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit 0 ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit 0 ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit 0 ;; + *:IRIX*:*:*) + echo mips-sgi-irix${UNAME_RELEASE} + exit 0 ;; + i[34]86:AIX:*:*) + echo i386-ibm-aix + exit 0 ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + sed 's/^ //' << EOF >dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 + rm -f dummy.c dummy + echo rs6000-ibm-aix3.2.5 + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit 0 ;; + *:AIX:*:4) + if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if grep bos410 /usr/include/stdio.h >/dev/null 2>&1; then + IBM_REV=4.1 + elif grep bos411 /usr/include/stdio.h >/dev/null 2>&1; then + IBM_REV=4.1.1 + else + IBM_REV=4.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit 0 ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit 0 ;; + *:BOSX:*:*) + echo rs6000-bull-bosx + exit 0 ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit 0 ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit 0 ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit 0 ;; + 9000/[3478]??:HP-UX:*:*) + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/7?? | 9000/8?7 ) HP_ARCH=hppa1.1 ;; + 9000/8?? ) HP_ARCH=hppa1.0 ;; + esac + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit 0 ;; + 3050*:HI-UX:*:*) + sed 's/^ //' << EOF >dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 + rm -f dummy.c dummy + echo unknown-hitachi-hiuxwe2 + exit 0 ;; + 9000/7??:4.3bsd:*:* | 9000/8?7:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit 0 ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit 0 ;; + hp7??:OSF1:*:* | hp8?7:OSF1:*:* ) + echo hppa1.1-hp-osf + exit 0 ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit 0 ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit 0 ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit 0 ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit 0 ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit 0 ;; + CRAY*X-MP:UNICOS:*:*) + echo xmp-cray-unicos + exit 0 ;; + CRAY*Y-MP:UNICOS:*:*) + echo ymp-cray-unicos + exit 0 ;; + CRAY-2:UNICOS:*:*) + echo cray2-cray-unicos + exit 0 ;; + hp3[0-9][05]:NetBSD:*:*) + echo m68k-hp-netbsd${UNAME_RELEASE} + exit 0 ;; + i[345]86:CYGWIN*:*:*) + echo ${UNAME_MACHINE}-unknown-Cygwin${UNAME_RELEASE} + exit 0 ;; + i[34]86:BSD/386:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:FreeBSD:*:*) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit 0 ;; + *:NetBSD:*:*) + echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + exit 0 ;; + *:GNU:*:*) + echo `echo ${UNAME_MACHINE}|sed -e 's,/.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit 0 ;; + *:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux + exit 0 ;; +# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions +# are messed up and put the nodename in both sysname and nodename. + i[34]86:DYNIX/ptx:4*:*) + echo i386-sequent-sysv4 + exit 0 ;; + i[34]86:*:4.*:* | i[34]86:SYSTEM_V:4.*:*) + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE} + else + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE} + fi + exit 0 ;; + i[34]86:*:3.2:*) + if test -d /etc/conf/cf.d -a -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` + (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 + echo ${UNAME_MACHINE}-unknown-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-unknown-sysv32 + fi + exit 0 ;; + Intel:Mach:3*:*) + echo i386-unknown-mach3 + exit 0 ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit 0 ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit 0 ;; + M680[234]0:*:R3V[567]*:*) + test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; + 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0) + uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4.3 && exit 0 ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4 && exit 0 ;; + m680[234]0:LynxOS:2.2*:*) + echo m68k-lynx-lynxos${UNAME_RELEASE} + exit 0 ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit 0 ;; + i[34]86:LynxOS:2.2*:*) + echo i386-lynx-lynxos${UNAME_RELEASE} + exit 0 ;; + TSUNAMI:LynxOS:2.2*:*) + echo sparc-lynx-lynxos${UNAME_RELEASE} + exit 0 ;; + rs6000:LynxOS:2.2*:*) + echo rs6000-lynx-lynxos${UNAME_RELEASE} + exit 0 ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit 0 ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +cat >dummy.c </dev/null`; + printf ("%s-next-nextstep%s\n", __ARCHITECTURE__, version==2 ? "2" : "3"); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-unknown-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) + printf ("vax-dec-bsd\n"); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0 +rm -f dummy.c dummy + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit 0 ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + c34*) + echo c34-convex-bsd + exit 0 ;; + c38*) + echo c38-convex-bsd + exit 0 ;; + c4*) + echo c4-convex-bsd + exit 0 ;; + esac +fi + +#echo '(Unable to guess system type)' 1>&2 + +exit 1 diff --git a/config.site b/config.site new file mode 100755 index 0000000..d136ff3 --- /dev/null +++ b/config.site @@ -0,0 +1,160 @@ +# $Header: /home/cvsroot/libtiff/config.site,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +# +# TIFF Software +# +# Copyright (c) 1990-1997 Sam Leffler +# Copyright (c) 1991-1997 Silicon Graphics, Inc. +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Sam Leffler and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# + +# +# This file holds site-specific configuration parameters. +# +# Nothing is defined in here by default, the definitions +# commented out below serve as documentation for what you +# can set in this file or a config.local file. +# +# Note that you do not need to set anything here unless you +# want to override the auto-configuration behaviour and/or +# interactive prompting done by the configure script. +# + +# +# Package controls. +# +#DSO="auto" # auto|IRIX|IRIX52 enable DSO support for system +#JPEG="no" # yes|no configure JPEG support (see below) +#ZIP="no" # yes|no configure Deflate support (see below) +#LIBGL="auto" # yes|no|auto configure IRIS GL-based tools +#LIBIMAGE="auto" # yes|no|auto configure SGI RGB image tools +#HTML="no" # yes|no install HTML documentation + +# +# Directory parameters. +# +#DIR_BIN="/usr/local/bin" # directory for tools +#DIR_LIB="/usr/local/lib" # directory for libraries +#DIR_INC="/usr/local/include" # directory for include files +#DIR_MAN="/usr/local/man" # directory for manual pages +#DIR_HTML="/var/httpd/htdocs/tiff" # directory for HTML documentation + +# +# Configuring supporting libraries. +# +# The TIFF software makes use of two ancillary packages: the IJG +# distribution to support the JPEG codec and the zlib distribution +# to support the Deflate codec. To setup use of these packages you +# need to specify where each package's include files are located and +# where the pre-built library (static archive or DSO) is located. +# These may be different or the same (as when the package is compiled +# and referenced directly from the place where the software was +# loaded and compiled). +# +# DIRS_LIBINC is a space-separated list of directories to use for +# locating include files in these packages. Note that it should not +# include -I options as might be passed to the C preprocessor; these +# are automatically added by the configure script when the Makefiles +# are generated. +# +# DIR_LIB is the pathname of the directory where 's +# pre-built library may be found; this is used when building a TIFF +# DSO (on systems where support is present) and when building the +# programs in the tools directory. By default the configure script +# will load the associated library using +# +# -L${DIR_LIB} -l +# +# e.g. -L${DIR_JPEGLIB} -ljpeg. If this is wrong for your system +# (e.g. your compiler/loader does not support the -L option), then +# the LIB parameter can be set explicitly to specify the +# library to use. +# + +# +# JPEG-specific parameters; used when JPEG support is enabled (see above). +# +# JPEG support requires release 5 or later of the IJG code, +# which you can find on the Internet at ftp.uu.net:/graphics/jpeg/. +# +#DIRS_LIBINC="$DIRS_LIBINC ../src/jpeg-6b" # directory for jpeg include files +#DIR_JPEGLIB=../src/jpeg-6b # directory for libjpeg + +# +# Deflate-specific parameters; used when Deflate support is enabled (see above). +# +# NB: Deflate support requires version 0.92 or later of the zlib +# library written by Jean-loup Gailly and Mark Adler. Starting +# with about 0.95 the library is called libz.a (previously it was +# libgz.a). The library was last found at +# +# ftp://ftp.uu.net/graphics/png/code/zlib-0.93.tar.gz +# +# Look for it also at ftp://ftp.uu.net/pub/archiving/zip/zlib. +# +#DIRS_LIBINC="$DIRS_LIBINC ../zlib" # directory for zlib include files +#DIR_GZLIB="../zlib" # directory for libz + +# +# Miscellaneous parameters. +# +#FILLORDER="MS2LSB" # bit order of cpu (MSB2LSB/LSB2MSB) +#MANSCHEME="sysv-source-cat-strip" # manual page installation scheme + +# +# Parameters used when building the software. +# +# Note that configure has several ENVOPTS built into it that are +# set according to the target. This is done to help naive folks. +# +# Beware of changing the INSTALL definition; you *must* have an +# install script that emulates the Silicon Graphics install program! +# +#AR="/bin/ar" # pathname of suitable ar program +#AROPTS="rc" # options to ar for creating archive +#CC="gcc" # name/pathname of C compiler +#ENVOPTS="-Aa" # options for getting ANSI C +#GCOPTS="-g" # options to pass C compiler +#LIBPORT='${PORT}/libport.a' # library with emulation code +#MACHDEPLIBS="" # extra libraries for linking +#PORTFUNCS="" # non-standard functions to emulate +#RANLIB=":" # pathname of suitable ranlib program +#DSOSUF="so" # DSO filename suffix +#LIBCOPTS="-K PIC" # compiler options for building library + +# +# Makefile construction parameters. +# +# These should not normally be set; configure will +# deduce the appropriate syntax to use for includes. +# +#SETMAKE='MAKE = ${MAKE}' # define if make does not setup $MAKE + +# +# General system stuff used by the distribution. +# +#CHMOD="/etc/chmod" # pathname of suitable chmod program +#INSTALL='${SHELL} ${PORT}/install.sh' # SGI install program/emulator +#LN="/bin/ln" # pathname of suitable ln program +#LN_S="-s" # option to ${LN} to create symlink +#MV_F="-f" # option to ${MV} to force operation +#SED="/bin/sed" # pathname of suitable sed program +#SCRIPT_SH="/bin/sh" # pathname of suitable shell +#STRIP="/bin/strip" # strip program used by install.sh diff --git a/config.sub b/config.sub new file mode 100755 index 0000000..d76d5bb --- /dev/null +++ b/config.sub @@ -0,0 +1,793 @@ +#!/bin/sh +# Configuration validation subroutine script, version 1.1. +# Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc. +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +# First pass through any local machine types. +case $1 in + *local*) + echo $1 + exit 0 + ;; + *) + ;; +esac + +# Separate what the user gave into CPU-COMPANY and OS (if any). +basic_machine=`echo $1 | sed 's/-[^-]*$//'` +if [ $basic_machine != $1 ] +then os=`echo $1 | sed 's/.*-/-/'` +else os=; fi + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp ) + os= + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'` + ;; + -lynx) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + tahoe | i[345]86 | i860 | m68k | m68000 | m88k | ns32k | arm | pyramid \ + | tron | a29k | 580 | i960 | h8300 | hppa1.0 | hppa1.1 \ + | alpha | we32k | ns16k | clipper | sparclite | i370 | sh \ + | powerpc | sparc64 | 1750a | dsp16xx | mips64 | mipsel \ + | pdp11 | mips64el | mips64orion | mips64orionel ) + basic_machine=$basic_machine-unknown + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + vax-* | tahoe-* | i[345]86-* | i860-* | m68k-* | m68000-* | m88k-* \ + | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \ + | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ + | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \ + | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \ + | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \ + | pdp11-* | sh-* | powerpc-* | sparc64-* | mips64-* | mipsel-* \ + | mips64el-* | mips64orion-* | mips64orionel-* ) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-cbm + ;; + amigados) + basic_machine=m68k-cbm + os=-amigados + ;; + amigaunix | amix) + basic_machine=m68k-cbm + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | ymp) + basic_machine=ymp-cray + os=-unicos + ;; + cray2) + basic_machine=cray2-cray + os=-unicos + ;; + crds | unos) + basic_machine=m68k-crds + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + os=-mvs + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i[345]86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'` + os=-sysv32 + ;; + i[345]86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'` + os=-sysv4 + ;; + i[345]86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'` + os=-sysv + ;; + i[345]86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'` + os=-solaris2 + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + miniframe) + basic_machine=m68000-convergent + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + np1) + basic_machine=np1-gould + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pentium-*) + # We will change tis to say i586 once there has been + # time for various packages to start to recognize that. + basic_machine=i486-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + ps2) + basic_machine=i386-ibm + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + xmp) + basic_machine=xmp-cray + os=-unicos + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + mips) + basic_machine=mips-mips + ;; + romp) + basic_machine=romp-ibm + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sparc) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative must end in a *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[345]* \ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigados* | -msdos* | -newsos* | -unicos* | -aos* \ + | -nindy* | -vxworks* | -ebmon* | -hms* | -mvs* | -clix* \ + | -riscos* | -linux* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -netbsd* | -freebsd* | -riscix* \ + | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \ + | -ptx* | -coff* | -winnt*) + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -ctix* | -uts*) + os=-sysv + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -xenix) + os=-xenix + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + *-acorn) + os=-riscix1.2 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-ibm) + os=-aix + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigados + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-masscomp) + os=-rtu + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -lynxos*) + vendor=lynx + ;; + -aix*) + vendor=ibm + ;; + -hpux*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os diff --git a/configure b/configure new file mode 100755 index 0000000..0755197 --- /dev/null +++ b/configure @@ -0,0 +1,1837 @@ +#!/bin/sh +# $Header: /home/cvsroot/libtiff/configure,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +# +# Tag Image File Format (TIFF) Software +# +# Copyright (c) 1988-1997 Sam Leffler +# Copyright (c) 1991-1997 Silicon Graphics, Inc. +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Sam Leffler and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# + +# Configuration script for the TIFF Software + +# +# Shell script to setup machine-dependent files in +# preparation for building TIFF source. +# + +POSIXLY_CORRECT=1; export POSIXLY_CORRECT # disable GNU extensions + +QUIET=no # suppress messages to tty +NONINTERACTIVE=no # control prompting of config params +SITE= # dir where config.site is located +TARGET= # target system identity +SRCDIR= # dir where source is located + +# +# Setup general configuration parameters. +# +DIR_BIN=/usr/local/bin # destination for applications +DIR_LIB=/usr/local/lib # destination for library +DIR_INC=/usr/local/include # destination for include files +DIR_HTML=/var/httpd/htdocs/tiff # destination for HTML files +DIRS_LIBINC= # dirs to search for ancillary includes +DIR_JPEGLIB= # dir for IJG -ljpeg +DIR_GZLIB= # dir for zlib -lgz +DSO=auto # auto-enable DSO support +LIBCOPTS= # library-specific C-compiler options +JPEG=no # configure JPEG support +ZIP=no # configure ZIP/Deflate support +PORT=auto # enable portability emulations +HTML=no # install HTML documentation +LIBGL=auto # auto-enable build of SGI -lgl apps +LIBIMAGE=auto # auto-enable build of SGI -limage apps +MACHDEPLIBS=-lm # machine-dependent libraries for apps +: ${CC=} # name of C compiler to use +: ${CCOMPILER=} # full pathname of C compiler +: ${ENVOPTS=} # CC opts for ANSI C compilation +: ${MAKE=make} # make to use + +# screws up the test of `-f -' +: ${MAKEFLAGS=} # unset MAKEFLAGS +RM="rm -f" + +# +# Error diagnostics that should go to the terminal are +# done with this interface (or cat). +# +bitch() +{ + echo "configure: $@" 1>&2 +} + +# +# This is the preferred interface for +# configure to terminate abnormally. +# +boom() +{ + bitch "" + bitch "Unrecoverable error! Once you've corrected the problem rerun this script." + kill -1 $$ # use kill so trap handler is called +} + +usage() +{ + cat<<'EOF' +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] + --help print this message + --quiet do not print `Using ...' messages + --verbose opposite of --quiet + --noninteractive don't ask any questions + --version print the version of autoconf that created configure + --target=TARGET configure for TARGET [TARGET=HOST] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --with-PARAM[=ARG] set configuration PARAM [ARG=yes] +EOF +} + +# +# Crack command line arguments. We purposely +# use syntax and options that are compatible +# with GNU autoconf. +# +ac_prev= +for ac_option +do + if [ -n "$ac_prev" ]; then # assign the argument to previous option + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + case "$ac_option" in # collect optional argument + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'`;; + *) ac_optarg=;; + esac + case "$ac_option" in + -with-*|--with-*) + ac_with=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if [ -n "`echo $ac_with| sed 's/[-_a-zA-Z0-9]//g'`" ]; then + bitch "configure: $ac_with: invalid parameter name." + kill -1 $$ + fi + ac_with=`echo $ac_with| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes;; + esac + eval "${ac_with}='$ac_optarg'" + ;; + -quiet|--quiet) QUIET=yes;; + -verbose|--verbose) QUIET=no;; + -noninteractive|--noninteractive) NONINTERACTIVE=yes;; + -site|--site) ac_prev=SITE;; + -site=*|--site=*) SITE="$ac_optarg";; + -srcdir|--srcdir) ac_prev=SRCDIR;; + -srcdir=*|--srcdir=*) SRCDIR="$ac_optarg";; + -target|--target) ac_prev=TARGET;; + -target=*|--target=*) TARGET="$ac_optarg" ;; + -version|--version) + echo "This is TIFF configure $Revision: 1.1.1.1 $" + exit 0 + ;; + -help|--help) usage; exit 0;; + -*) + bitch "configure: $ac_option: invalid option; use -help for usage." + kill -1 $$ + ;; + *) + if [ x"$TARGET" != x ]; then + bitch "configure: Can only configure for one target at a time." + kill -1 $$ + fi + TARGET="$ac_option" + ;; + esac +done + +if [ -n "$ac_prev" ]; then + bitch "configure: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" + kill -1 $$ +fi + +# +# Locate source directory by looking for the VERSION file. +# The directory must either be specified through the +# environment or be located in the current directory or a +# parent of the current directory. +# +test "$SRCDIR" || { + configure=$0 + # NB: don't use dirname since it may not exist + SRCDIR=`echo $configure | sed 's;/[^/][^/]*$;;'` + if [ @"$SRCDIR" = @"$configure" ]; then + SRCDIR=. + fi + while [ ! -r $SRCDIR/VERSION ]; do + # strip last directory from pathname + newdir=`echo $SRCDIR | sed 's;/[^/]*$;;'` + if [ -z "$newdir" ] || [ "$newdir" = $SRCDIR ]; then + break; + fi + SRCDIR=$newdir + done +} +if [ ! -r $SRCDIR/VERSION ]; then + bitch "Cannot locate sources in $SRCDIR." + kill -1 $$ +fi +SRCDIR=`echo "$SRCDIR" | sed 's;\([^/]\)/*$;\1;'` + +if [ -r ${SRCDIR}/tif_version.c ] ; then + SRCDIR_IS_LIBTIFF=yes + PORTDOTH=port.h +else + SRCDIR_IS_LIBTIFF=no + PORTDOTH=libtiff/port.h +fi + +# +# Descriptor usage: +# 1: ??? +# 2: errors that should be seen even if we're in the background. +# 3: [stdout from test runs] +# 4: verbose-style messages (Using ...) +# 5: compiler stderr when running tests +# +if [ $QUIET = yes ]; then + exec 4>/dev/null # chuck messages +else + exec 4>&1 # messages got to stdout +fi +exec 5>./config.log # compiler messages and the like + +capture() +{ + (eval "set -x; $*") >&5 2>&1 + return +} +captureX() +{ + (eval "set -x; $*") 2>&5 + return +} + +date >&5 +echo Running "$0" with arguments: "$@" >&5 + +cat 1>&5 <<'EOF' + +This file contains information that is captured from running the configure +script. Lines that begin with a "+" are command lines echoed by the +shell. Other lines are the output of commands; usually the contents of +test case files or the output from compilers. If configure does the +wrong thing, you can use the information captured here to aid in debugging. + +EOF + +if [ -r $SRCDIR/tiff.alpha ] ; then + VERSIONFILE=$SRCDIR/VERSION + ALPHAFILE=$SRCDIR/tiff.alpha +else + VERSIONFILE=$SRCDIR/VERSION + ALPHAFILE=$SRCDIR/dist/tiff.alpha +fi +DATE=`date` + +eval `cat $VERSIONFILE | sed 's/\([0-9][0-9]*\)\.\([0-9][0-9]*\)\(.*\)/DIST_MAJOR=\1; DIST_MINOR=\2; DIST_TYPE=\3/'` +DIST_ALPHA=`awk '{print $3}' $ALPHAFILE` +VERSION="v${DIST_MAJOR}.${DIST_MINOR}${DIST_TYPE}" +if [ $DIST_TYPE = beta ]; then + VERSION="${VERSION}${DIST_ALPHA}" +fi + +Note() +{ + echo "$@" 1>&4 +} + +Note "" +if [ $SRCDIR_IS_LIBTIFF = yes ] ; then + Note "Configuring TIFF Software (library only) $VERSION." +else + Note "Configuring TIFF Software $VERSION." +fi + +Note "" +Note "If configure does the wrong thing, check the file config.log for" +Note "information that may help you understand what went wrong." +Note "" + +# +# Read site and local configuration parameters. +# +if [ -f $SITE/config.site ]; then + Note "Reading site-wide parameters from $SITE/config.site." + . $SITE/config.site + capture . $SITE/config.site +elif [ -f $SRCDIR/config.site ]; then + Note "Reading site-wide parameters from $SRCDIR/config.site." + . $SRCDIR/config.site + capture . $SRCDIR/config.site +fi +if [ -f config.local ]; then + Note "Reading local parameters from config.local." + . ./config.local + capture . ./config.local +elif [ -f $SRCDIR/config.local ]; then + Note "Reading local parameters from $SRCDIR/config.local." + . $SRCDIR/config.local + capture . $SRCDIR/config.local +fi + +# +# Emulate old-style settups... +# +test -z "${DIR_JPEG-}" || { + DIRS_LIBINC="${DIRS_LIBINC} ${DIR_JPEG}" + DIR_JPEGLIB="${DIR_JPEG}" +} +test -z "${DIR_LIBGZ-}" || { + DIRS_LIBINC="${DIRS_LIBINC} ${DIR_LIBGZ}" + DIR_GZLIB="${DIR_LIBGZ}" +} + +identifyTarget() +{ + random=`date | awk '{print $4}' | sed -e 's/.*://'` 2>/dev/null + case "$random" in + *0) Note "Wow, you've got a $1 system!";; + *1) Note "Hmm, looks like a $1 system.";; + *2) Note "Oh no, not another $1 system...";; + *3) Note "Well I'll be, a $1 system.";; + *4) Note "Fee, fie, foe, this smells like a $1 system.";; + *5) Note "Gosh, aren't you lucky to have a $1 system!";; + *6) Note "YOW!! Did something bad happen or am I on a $1 system?";; + *7) Note "Do they really still make $1 systems?!";; + *8) Note "I'm always happy to encounter another $1 system.";; + *9) Note "Here we are again, this time on a $1 system.";; +esac +} + +# +# If no target is specified, try to deduce the system. +# We use the GNU scripts for guessing and canonicalizing +# the system identification, if available. +# +if [ -z "$TARGET" ]; then + test -f $SRCDIR/config.guess && TARGET=`sh $SRCDIR/config.guess` 2>/dev/null + if [ -z "$TARGET" ]; then + bitch "Sorry, no target specified on the command line and I don't seem" + bitch "to have the GNU config.guess script that is used to deduce your" + bitch "system type." + kill -1 $$ + fi + identifyTarget $TARGET +elif [ -f $SRCDIR/config.sub ]; then + TARGET=`sh $SRCDIR/config.sub "$TARGET"` +else + Note "Warning, I don't seem to have the GNU config.sub script to canonicalize" + Note "your target specification; this may cause problems later on..." +fi +if [ -z "${FILLORDER-}" ]; then + # + # Host bit order within a word. + # + case $TARGET in + mips-dec-*) FILLORDER=LSB2MSB;; + i[345]86-*) FILLORDER=LSB2MSB;; + *) FILLORDER=MSB2LSB;; + esac +fi + +# +# Find the full pathname of a file +# using the specified test operation. +# +findThing() +{ + t="$1"; app="$2"; path="$3"; + case "$app" in + /*) eval "$t" "$app" && { echo "$app"; return; };; + esac + (IFS=: + for i in $path; do + eval "$t" "$i/$app" && { echo "$i/$app"; return 0; } + done + return 1 + ) +} + +# +# Find the full pathname of a plain file. +# +findFile() +{ + findThing "test -f" "$1" "$2" +} + +# +# Find the full pathname of an executable. +# +findApp() +{ + findThing "test -x" $1 $2 +} + +# +# Find the full pathname of an executable; +# supply a default if nothing is found. +# +findAppDef() +{ + app=$1; path=$2; def=$3 + case $app in + /*) test -x $app && { echo $app; return; };; + esac + IFS=: + for i in $path; do + test -x $i/$app && { echo $i/$app; return; } + done + echo $def +} + +# +# Find the full pathname of a header file; in search-path $DIRS_LIBINC +# +findHeader() +{ + case "$1" in + /*) echo "$1"; return ;; + esac + for i in ${DIRS_LIBINC} /usr/include; do + test -r $i/$1 && { + case "$i" in + /*) echo "$i/$1"; return ;; + esac + if [ $SRCDIR_IS_LIBTIFF = yes ]; then + echo "$i/$1"; + else + echo "../$i/$1"; + fi + return; + } + done +} + +# +# Locate a C compiler that satisfies our needs (using assorted heuristics). +# +JUNK=" + a.out + confsed + conftestmmap + confx confy + confMakefile + core + dummy + dummy.a + dummy.c + dummy.o + foo + so_locations + t.c + t.o + t + xMakedepend + xdefs + xgnu.c + xmakeinc + xport.h +" +trap "$RM \$JUNK; exit 1" 1 2 15 + +$RM $JUNK + +cat>xgnu.c<&5 | egrep yes)" +} + +# +# NB: use ANSI C prototype to weed out non-ANSI compilers. +# +cat>dummy.c< + +If command line options are required for ANSI C compilation, set the +ENVOPTS parameter to these options in a similar way (either through +an environment variable or config.local/config.site) and then rerun +this script. +EOF + boom +fi +Note "Using $CCOMPILER for a C compiler (use -with-CC=compilername to override)." + +test "$ENVOPTS" && { + Note "Using $ENVOPTS to get the appropriate compilation environment." +} + +if [ ${ISGCC} = yes ] ; then + GCCversion="`${CCOMPILER} -v 2>&1 | \ + sed -n -e '/version/s/.* \([0-9]*\)\.\([0-9]*\).\([0-9]*\)/\1.\2.\3/p'`" +fi + + +CheckForGandO() +{ + f=$1 + if test -s $f; then + capture grep -i \(error\|warning\) $f || return 1 + fi + return 0 +} + +if [ -z "${GCOPTS-}" ]; then + if capture $CCOMPILER $ENVOPTS -g -c dummy.c; then + Note "Looks like $CCOMPILER supports the -g option." + # NB: cannot use captureX here 'cuz we lose stderr + if $CCOMPILER $ENVOPTS -c -g -O dummy.c >t 2>&1 && CheckForGandO t; then + GCOPTS="-g" + else + Note "... but not together with the -O option, not using it." + GCOPTS= + fi + else + GCOPTS= + fi +fi +if [ ! -z "${GCOPTS}" ]; then + Note "Using \"$GCOPTS\" for C compiler options." +fi + +# +# Verify that $MAKE is accessible +# +PATHMAKE=`findApp ${MAKE} $PATH` +if [ "$PATHMAKE" ]; then + Note "Using $PATHMAKE to configure the software." + (echo 'all:') | ${MAKE} -f - all >/dev/null 2>&5 || { + cat< /dev/null ; then + SETMAKE= + else + Note "Looks like $MAKE does not setup MAKE in Makefiles, will compensate." + SETMAKE="MAKE = ${MAKE}" + fi +fi + +test -z "${AR-}" && AR=`findApp ar $PATH` +if [ -z "$AR" ]; then + Note "*** Warning, could not locate a suitable ar command; using a default." + AR=ar +fi +test -z "${AROPTS-}" && AROPTS=rc +test -z "${RANLIB-}" && RANLIB=`findApp ranlib $PATH` +if [ -z "$RANLIB" ]; then + Note "Warning, no ranlib, assuming it's not needed." + RANLIB=":" + $RM dummy.a + if $AR rcs dummy.a >/dev/null 2>&1; then + AROPTS=crs + Note "Looks like ar has an s option to build symbol tables." + fi +fi + +# +# runMake target rules ... +# +runMakeX() +{ + target="$1"; shift + $RM $target + (echo SRCDIR=. + for i in "$@"; do + echo "$i"; + done + )>confMakefile + captureX ${MAKE} -f confMakefile $target + return +} +runMake() +{ + runMakeX "$@" >&5 + return +} + +# +# Look for a library using a known (unique) function. +# +CheckForLibrary() +{ + f=$1; shift + libs="$@"; + cat>t.c<t.c + runMake t "t:; ${CCOMPILER} ${ENVOPTS} -E t.c" +} + +# +# Figure out if certain system-specific interfaces are +# supported. We craft a port.h file that has external +# declarations for missing routines that are required by +# the system and modify defs to reflect which optional +# interfaces are supported. +# + +EmitCPlusPlusPrologue() +{ + echo '/*' + echo ' * Warning, this file was automatically created by the TIFF configure script' + echo ' * VERSION: ' $VERSION + echo ' * DATE: ' $DATE + echo ' * TARGET: ' $TARGET + if [ $ISGCC = yes ]; then + echo ' * CCOMPILER: ' ${CCOMPILER}-${GCCversion} + else + echo ' * CCOMPILER: ' $CCOMPILER + fi + echo ' */' + echo "#ifndef $1" + echo "#define $1 1" + echo '#ifdef __cplusplus' + echo 'extern "C" {' + echo '#endif' +} + +EmitCPlusPlusEpilogue() +{ + echo '#ifdef __cplusplus' + echo '}' + echo '#endif' + echo '#endif' +} + +# +# Look for a function in one of the standard libraries +# or one of the machine-dependent libraries selected above. +# +CheckForFunc() +{ + echo "extern int $1(); main(){$1();exit(0);}" >t.c + runMake t "t:; ${CCOMPILER} ${ENVOPTS} t.c ${MACHDEPLIBS}" +} + +# +# Look for a function declaration in system include files. +# +AddFuncDecl() +{ + echo "$2"; + Note "... add function prototype for $1" +} +CheckForFuncDecl() +{ + f=$1; shift + (for i do + echo "#include \"$i\"" + done)>t.c + capture cat t.c + runMakeX t "t:; ${CCOMPILER} ${ENVOPTS} -E t.c" |\ + awk '{while($0~/[,(][ \t]*$/){printf"%s",$0;getline}print}' |\ + grep "$f[ ]*(.*)" >&5 + return +} +CheckFuncDecl() +{ + f=$1; shift + decl=$1; shift + CheckForFuncDecl "$f" "$@" || AddFuncDecl "$f" "$decl" +} + +# +# Look for a variable declaration in system include files. +# +CheckForVarDecl() +{ + v="$1"; shift + (for i do + echo "#include \"$i\"" + done)>t.c + capture cat t.c + runMakeX t "t:; ${CCOMPILER} ${ENVOPTS} -E t.c" | grep "$v" >&5 + return +} +CheckVarDecl() +{ + v="$1"; shift + decl="$1"; shift + CheckForVarDecl "$v" "$@" || \ + (echo "$decl"; Note "... add declaration $decl") +} + +# +# Look for a #define in system include files. +# +AddDefine() +{ + echo '#ifndef' $1 + echo '#define' "$2" + echo '#endif' + Note '... add #define for' "$1" +} +CheckForDefine() +{ + def=$1; shift + (for i do + echo "#include \"$i\"" + done + echo "#ifdef $def" + echo "FOUND();" + echo "#endif" + )>t.c + capture cat t.c + runMakeX t "t:; ${CCOMPILER} ${ENVOPTS} -E t.c" | grep FOUND >&5 +} +CheckDefine() +{ + def=$1; shift + decl=$1; shift + CheckForDefine "$def" "$@" || AddDefine "$def" "$decl" +} + +CheckForMMAP() +{ + if CheckForFunc getpagesize; then + cat>t.c<<'EOF' +/* this was lifted from GNU autoconf */ +/* Thanks to Mike Haertel and Jim Avera for this test. */ +#include +#include +#include +EOF + else + cat>t.c<<'EOF' +/* this was lifted from GNU autoconf */ +/* Thanks to Mike Haertel and Jim Avera for this test. */ +#include +#include +#include + +#ifdef BSD +# ifndef BSD4_1 +# define HAVE_GETPAGESIZE +# endif +#endif + +#ifndef HAVE_GETPAGESIZE +# include +# ifdef EXEC_PAGESIZE +# define getpagesize() EXEC_PAGESIZE +# else +# ifdef NBPG +# define getpagesize() NBPG * CLSIZE +# ifndef CLSIZE +# define CLSIZE 1 +# endif +# else +# ifdef NBPC +# define getpagesize() NBPC +# else +# define getpagesize() PAGESIZE /* SVR4 */ +# endif +# endif +# endif +#endif +EOF + fi +cat>>t.c<<'EOF' +#if defined(__osf__) || defined(_AIX) +# define valloc malloc +#endif +char *valloc(), *malloc(); + +int +main() +{ + char *buf1, *buf2, *buf3; + int i = getpagesize(), j; + int i2 = getpagesize()*2; + int fd; + + buf1 = (char *)valloc(i2); + buf2 = (char *)valloc(i); + buf3 = (char *)malloc(i2); + for (j = 0; j < i2; ++j) + *(buf1 + j) = rand(); + fd = open("conftestmmap", O_CREAT | O_RDWR, 0666); + write(fd, buf1, i2); + mmap(buf2, i, PROT_READ | PROT_WRITE, MAP_FIXED | MAP_PRIVATE, fd, 0); + for (j = 0; j < i; ++j) + if (*(buf1 + j) != *(buf2 + j)) + exit(1); + lseek(fd, (long)i, 0); + read(fd, buf2, i); /* read into mapped memory -- file should not change */ + /* (it does in i386 SVR4.0 - Jim Avera, jima@netcom.com) */ + lseek(fd, (long)0, 0); + read(fd, buf3, i2); + for (j = 0; j < i2; ++j) + if (*(buf1 + j) != *(buf3 + j)) + exit(1); + exit(0); +} +EOF + capture cat t.c + runMake t "t:; ${CCOMPILER} ${ENVOPTS} t.c ${MACHDEPLIBS}" && ./a.out +} + +CheckForBigEndian() +{ + echo 'main() { int one = 1; char* cp = (char*)&one; exit(*cp!=0); }'>t.c + capture cat t.c + runMake t "t:; ${CCOMPILER} ${ENVOPTS} t.c" && ./a.out +} + +# +# Check an existing port.h to see if it was created +# for the target and compiler we are using. +# +CheckPortDotH() +{ + getConfigTag() + { + param=`grep "$1:" $2 | sed -e 's/.*:[ ]*\([^ ]*\).*/\1/'` + } + getConfigTag TARGET $PORTDOTH; target="$param" + getConfigTag CCOMPILER $PORTDOTH; ccompiler="$param" + CCOMP=$CCOMPILER + if [ $ISGCC = yes ]; then + CCOMP="${CCOMP}-${GCCversion}" + fi + test "$target" = "$TARGET" && test "$ccompiler" = "$CCOMP" +} + +# +# Built port.h based on the system and compiler setup. +# +BuildPortDotH() +{ + Note "" + Note "Creating $PORTDOTH with necessary definitions." + + (EmitCPlusPlusPrologue _PORT_ + + CheckForIncludeFile sys/types.h && echo '#include ' + CheckVarDecl off_t 'typedef long off_t;' sys/types.h stdlib.h + CheckVarDecl size_t 'typedef unsigned size_t;' sys/types.h stdlib.h + CheckVarDecl u_char 'typedef unsigned char u_char;' sys/types.h + CheckVarDecl u_short 'typedef unsigned short u_short;' sys/types.h + CheckVarDecl u_int 'typedef unsigned int u_int;' sys/types.h + CheckVarDecl u_long 'typedef unsigned long u_long;' sys/types.h + + echo "#define HOST_FILLORDER FILLORDER_${FILLORDER}" + CPU=`echo $TARGET | sed 's/-.*//'` + Note "... using $FILLORDER bit order for your $CPU cpu" + if CheckForBigEndian; then + echo "#define HOST_BIGENDIAN 1" + Note "... using big-endian byte order for your $CPU cpu" + else + echo "#define HOST_BIGENDIAN 0" + Note "... using little-endian byte order for your $CPU cpu" + fi + + CheckForMMAP && { + echo '#define HAVE_MMAP 1' + Note "... configure use of mmap for memory-mapped files" + CheckFuncDecl mmap \ + 'extern void* mmap(void*, size_t, int, int, int, off_t);' sys/mman.h + } + + CheckForIncludeFile stdio.h && echo '#include ' + CheckForIncludeFile unistd.h && echo '#include ' + CheckForIncludeFile string.h && echo '#include ' + CheckForIncludeFile stdlib.h && echo '#include ' + if CheckForDefine O_RDONLY fcntl.h; then + echo '#include ' + Note "... O_RDONLY is in " + elif CheckForDefine O_RDONLY sys/file.h; then + echo '#include ' + Note "... O_RDONLY is in " + else + AddDefine O_RDONLY "O_RDONLY 0" + AddDefine O_WRONLY "O_WRONLY 1" + AddDefine O_RDWR "O_RDWR 2" + fi + + echo 'typedef double dblparam_t;' + Note "... using double for promoted floating point parameters" + + if [ -z "${INLINE-}" ]; then + if [ $ISGCC = yes ]; then + echo '#ifdef __STRICT_ANSI__' + echo '#define INLINE __inline__' + echo '#else' + echo '#define INLINE inline' + echo '#endif' + Note "... enabling use of inline functions" + else + echo '#define INLINE' + Note "... disabling use of inline functions" + fi + else + echo "#define INLINE $INLINE" + Note "... using \"$INLINE\" to control inline function usage" + fi + + echo '#define GLOBALDATA(TYPE,NAME) extern TYPE NAME' + + CheckFuncDecl memset 'extern void* memset(void*, int, size_t);' string.h + CheckFuncDecl floor 'extern double floor(double);' math.h + CheckFuncDecl ceil 'extern double ceil(double);' math.h + CheckFuncDecl exp 'extern double exp(double);' math.h + CheckFuncDecl pow 'extern double pow(double, double);' math.h + CheckFuncDecl read 'extern int read(int, const void*, unsigned int);' unistd.h + CheckFuncDecl malloc 'extern void* malloc(size_t);' stdlib.h + CheckFuncDecl realloc 'extern void* realloc(void*, size_t);' stdlib.h + CheckFuncDecl free 'extern void free(void*);' stdlib.h + EmitCPlusPlusEpilogue + )>xport.h + if [ $SRCDIR_IS_LIBTIFF = no -a ! -d libtiff ]; then + Note "Creating libtiff directory" + mkdir libtiff + fi + mv xport.h $PORTDOTH; chmod 444 $PORTDOTH + Note "Done creating $PORTDOTH." +} + +if [ "$PORT" != no ] && test -f $PORTDOTH && CheckPortDotH; then + Note "" + Note "Using previously created $PORTDOTH." +else + $RM xport.h t.c a.out $PORTDOTH + BuildPortDotH +fi + +if [ "$PORT" = auto ]; then + Note "" + Note "Checking system libraries for functionality to emulate." + + FUNCS=" + strcasecmp + strtoul + getopt + " + + for i in $FUNCS; do + CheckForFunc $i || { + Note "... emulate $i" + PORTFUNCS="${PORTFUNCS-} $i.c" + } + done + if [ "${PORTFUNCS-}" ]; then + LIBPORT='../port/libport.a' + PORT=yes + else + PORT=no + fi +fi +if [ $PORT != yes ] ; then + LIBPORT= + PORTFUNCS= +fi +Note "Done checking system libraries." + +Note "" +Note "Checking for Dynamic Shared Object (DSO) support." +if [ "$DSO" = auto ]; then + DSO=no + DSOSUF_VERSION= + DSOLD='${LD}' + TIFFLIBREF= + case $TARGET-$CC-$ISGCC in + *-irix5.2*) + if (findApp rld /lib:/usr/lib:$PATH) >/dev/null 2>&1; then + DSOSUF=so + DSOOPTS='-elf -shared -no_unresolved -all' + DSO=IRIX52 + TIFFLIBREF='-L${DEPTH}/libtiff -rpath '${DIR_LIB}' -ltiff' + fi + ;; + *-irix*) + if (findApp rld /lib:/usr/lib:$PATH) >/dev/null 2>&1; then + DSOSUF=so + DSOLD="${CCOMPILER} ${ENVOPTS}" + if [ $ISGCC = yes ]; then + LIBCOPTS="-fpic" + DSOOPTS='-shared -rdata_shared' + else + LIBCOPTS="-KPIC" + DSOOPTS='-shared -rdata_shared -check_registry ${SRCDIR}/port/irix/so_locations -quickstart_info' + fi + DSO=IRIX + TIFFLIBREF='-L${DEPTH}/libtiff -rpath '${DIR_LIB}' -ltiff' + fi + ;; + *-aix*) + DSOSUF=a + DSOOPTS='-r' + LIBCOPTS="-bM\:SRE" + DSO=AIX + ;; + *-hpux*yes) + DSOSUF=sl + DSOLD=gcc + DSOOPTS='-fpic -shared' + LIBCOPTS=-fpic + DSO=HPUX + TIFFLIBREF="-Wl,+s,+b${DIR_LIB}"' -L${DEPTH}/libtiff -ltiff' + ;; + *-hpux*) + DSOSUF=sl + DSOOPTS='-b' + LIBCOPTS="+Z" + DSO=HPUX + TIFFLIBREF="-Wl,+s,+b${DIR_LIB}"' -L${DEPTH}/libtiff -ltiff' + ;; + *-solaris*) + DSOSUF=so + DSOOPTS='-G' + if [ $ISGCC = yes ]; then + LIBCOPTS="-fpic" + else + LIBCOPTS="-K PIC" + fi + DSO=SOLARIS + TIFFLIBREF='-L${DEPTH}/libtiff -R'${DIR_LIB}' -ltiff' + ;; + *-netbsd*) + DSOSUF=so.${DIST_MAJOR}.0 + LIBCOPTS='-fPIC' + DSO=NETBSD + TIFFLIBREF='-L${DEPTH}/libtiff -ltiff' + ;; + *-freebsd*) + DSOSUF=so.${DIST_MAJOR}.0 + LIBCOPTS='-fpic -fPIC' + DSO=FREEBSD + TIFFLIBREF='-L${DEPTH}/libtiff -ltiff' + ;; + *-linux*) + if [ -r /lib/libc.so.6 || -r /lib/libc.so.5 ]; then + DSOSUF=so.${DIST_MAJOR} + DSOSUF_VERSION=${DSOSUF}.${DIST_MINOR}.${DIST_ALPHA} + LIBCOPTS='-fPIC' + DSOOPTS='-shared' + DSO=LINUX + fi + ;; + *-osf3*|*-osf4*) + DSOSUF=so + DSOOPTS='-shared' + DSO=OSF + ;; + esac +fi +if [ "$DSO" != no ]; then + JUNK="$JUNK t.${DSOSUF}" + # + # Check to make sure the compilers process + # the DSO options in the expected way. + # + CheckCCDSO() + { + $RM t.c t.o t.${DSOSUF} + cat>t.c<&4 <t.c + if mv -f t.c t.o; then + Note "Looks like mv supports the -f option to force a move." + MV_F=-f + else + Note "Warning, looks like mv has no -f option to force move operations;" + Note "... this may cause problems during installation." + MV_F= + fi +fi + +# +# Check if ln -s creates a symbolic link. +# +if [ -z "${LN_S-}" ]; then + $RM t.c; $LN -s foo t.c && LN_S=-s +fi +if [ -n "$LN_S" ]; then + Note "Looks like $LN supports the -s option to create a symbolic link." +else + Note "Warning, looks like $LN has no -s option to create symbolic links;" + Note "... this may cause problems during installation." +fi + +# +# Pick install mechanism. +# +if [ -z "${INSTALL-}" ]; then + case $TARGET in + *-irix*) INSTALL=`findApp install /sbin:$PATH`;; + *) INSTALL='${SHELL} ../port/install.sh';; + esac +fi + +Note "Done selecting programs." + +# +# User-changable configuration parameters section. +# Anything selected here is presented to the user +# and may be interactively changed. +# + +Note "" +Note "Selecting default TIFF configuration parameters." +Note "" + +# +# Fill in any other configuration parameters not +# setup in the site and local files. +# + +bitchExecutable() +{ + echo "" + echo "Warning, $1 does not seem to be an executable program;" + echo "you'll need to correct this before starting up the fax server." + echo "" +} + +# +# Setup manual page-related stuff. +# +# Manual pages are processed according to: +# 1. Section organization (BSD or System V) +# 2. Pre-formatted (w/ nroff) or source. +# 3. Compressed (compress, gzip, pack) or uncompressed. +# 4. Whether or not the FlexFAX ``F'' suffix must be +# stripped for pages to be found (only for 4F pages). +# +if [ -z "${DIR_MAN-}" ]; then + MANPATH=" + $MANPATH + /usr/local/man + /usr/contrib/man + /usr/catman/local + " + DIR_MAN= + for i in $MANPATH; do + test -d $i && { DIR_MAN=$i; break; } + done + test -z "$DIR_MAN" && DIR_MAN=/usr/local/man +fi +Note "Looks like manual pages go in $DIR_MAN." +if [ -z "${MANSCHEME-}" ]; then + case $TARGET in + *-bsdi*|*-netbsd*) MANSCHEME=bsd-nroff-gzip-0.gz;; + *-freebsd*) MANSCHEME=bsd-source-cat;; + *-linux*) MANSCHEME=bsd-source-cat;; + *-ultrix*) MANSCHEME=bsd-source-cat;; + *-sunos*) MANSCHEME=bsd-source-cat-strip;; + *-sysv[234]*) MANSCHEME=sysv-source-cat-strip;; + *-hpux*) MANSCHEME=sysv-source-cat-strip;; + *-solaris*) MANSCHEME=sysv-source-cat-strip;; + *-aix*) MANSCHEME=sysv-source-strip;; + *-isc*|*-sco*) MANSCHEME=sysv-source-cat;; + *-irix*) MANSCHEME=sysv-nroff-compress-Z;; + *) + # + # Try to deduce the setup from existing manual pages. + # XXX needs more work XXX + # + MANSCHEME=sysv-source-cat + if [ -d /usr/share/man ]; then + if [ -d /usr/share/man/u_man ]; then + MANSCHEME=sysv-source-cat + elif [ -d /usr/share/man/man8 ]; then + MANSCHEME=bsd-source-cat + fi + elif [ -d /usr/share/catman ]; then + if [ -d /usr/share/catman/u_man ]; then + MANSCHEME=sysv-nroff-cat + elif [ -d /usr/share/catman/man8 ]; then + MANSCHEME=bsd-nroff-cat + fi + fi + ;; + esac +fi +Note "Looks like manual pages should be installed with $MANSCHEME." + +# +# Figure out which brand of echo we have and define +# prompt and print shell functions accordingly. +# +if [ `echo foo\\\c`@ = "foo@" ]; then + prompt() + { + echo "$* \\c" + } +elif [ "`echo -n foo`@" = "foo@" ]; then + prompt() + { + echo -n "$* " + } +else + prompt() + { + echo "$*" + } +fi + +# +# Prompt the user for a string that can not be null. +# +promptForNonNullStringParameter() +{ + x="" val="$1" desc="$2" + while [ -z "$x" ]; do + prompt "$desc [$val]?"; read x + if [ "$x" ]; then + # strip leading and trailing white space + x=`echo "$x" | sed -e 's/^[ ]*//' -e 's/[ ]*$//'` + else + x="$val" + fi + done + param="$x" +} + +promptForManPageScheme() +{ + x="" + while [ -z "$x" ]; do + prompt "Manual page installation scheme [$MANSCHEME]?"; read x + if [ "$x" ]; then + # strip leading and trailing white space + x=`echo "$x" | sed -e 's/^[ ]*//' -e 's/[ ]*$//'` + # XXX do a better job of validating... + case "$x" in + bsd-nroff-cat*|sysv-nroff-cat*) ;; + bsd-nroff-gzip*|sysv-nroff-gzip*) ;; + bsd-nroff-comp*|sysv-nroff-comp*) ;; + bsd-nroff-pack*|sysv-nroff-pack*) ;; + bsd-source-cat*|sysv-source-cat*) ;; + bsd-source-gzip*|sysv-source-gzip*) ;; + bsd-source-comp*|sysv-source-comp*) ;; + bsd-source-pack*|sysv-source-pack*) ;; + *) +cat <--[-] + +where: + + is either "bsd" for BSD-style section organization (e.g. + file formats in section 5) or "sysv" for System V-style + organization (e.g. file formats in section 4). + + is either "nroff" to force installation of formatted + materials (using nroff) or "source" to get the nroff + source installed. + + is either the name of a program to compress the manual + pages (gipz, compress, pack) or "cat" for uncompressed data. + + is either the file suffix to convert installed pages to + (e.g. 0.gz for gzip-compressed pages under BSD) or "strip" + to force the normal ".4f" suffix to be converted to ".4" + (or ".5" if using the BSD organization). If no - + is specified then filenames are not converted when they + are installed. + +Common schemes are: + +bsd-nroff-gzip-0.gz compressed formatted pages for BSD +bsd-source-cat nroff source w/ BSD organization +sysv-source-cat-strip nroff source for SysV w/o .4f suffix +sysv-source-cat nroff source for SysV as-is + +EOF + x="";; + esac + else + x="$MANSCHEME" + fi + done + MANSCHEME="$x" +} + +printConfig() +{ + cat< accepts the displayed parameters." + echo "A number lets you change the numbered parameter." + echo "" + ;; + esac + ok=skip + done + checkJPEG + checkZIP +else + checkJPEG + checkZIP +fi + +case $MANSCHEME in +*-source-*) MANAPPS=man1 MANLIB=man3;; +*-nroff-*) MANAPPS=cat1 MANLIB=cat3;; +esac +case $MANSCHEME in +*-strip) MANSEDLOCAL="-e s/3T/3/g";; +*) MANSEDLOCAL="";; +esac +case $MANSCHEME in +*-source-*) MANCVT='${MANSED} $? >$@';; +*-nroff-gzip-*) MANCVT='${MANSED} $? | nroff -man | gzip > $@';; +*-nroff-pack-*) MANCVT='${MANSED} $? | nroff -man | pack > $@';; +*-nroff-com*-*) MANCVT='${MANSED} $? | nroff -man | compress > $@';; +*-nroff-cat-*) MANCVT='${MANSED} $? | nroff -man > $@';; +esac +case $MANSCHEME in +*-0|*-0.gz|*-0.Z|*-gz|*-Z|*-z) + suf=`echo $MANSCHEME | sed 's/.*-/./'` + A='`echo $$i | sed' B='`' # workaround shell bugs + MANAPPNAME="$A s/\\\\.1\$\$/$suf/$B" + MANLIBNAME="$A s/\\\\.3t\$\$/$suf/$B" + ;; +*-strip) + MANAPPNAME='$$i' + MANLIBNAME='`echo $$i | sed s/\\.3t$$/.3/`' + ;; +*) + MANAPPNAME='$$i' MANLIBNAME='$$i' + ;; +esac + +if [ "${JPEG}" = yes ]; then + test -z "${CONF_JPEG-}" && CONF_JPEG="-DJPEG_SUPPORT" + if test -z "${LIBJPEG-}" ; then + LIBJPEG="-ljpeg" + test -z "${DIR_JPEGLIB-}" || LIBJPEG="-L${DIR_JPEGLIB} ${LIBJPEG}" + fi +else + CONF_JPEG= + LIBJPEG= +fi +if [ "${ZIP}" = yes ]; then + test -z "${CONF_ZIP-}" && CONF_ZIP="-DZIP_SUPPORT" + if test -z "${LIBGZ-}" ; then + LIBGZ="-lz" + test -z "${DIR_GZLIB-}" || LIBGZ="-L${DIR_GZLIB} ${LIBGZ}" + fi +else + CONF_ZIP= + LIBGZ= +fi + +Note "" + +# +# Fixup a list of potentially relative pathnames so +# that they work when used in a subdirectory. The +# string sent to stdout has no extraneous spaces so +# it can be used, for example, in building pathnames. +# +# NB: There's an extra echo done here so we get a +# \n-terminated string passed to sed. +# +relativize() +{ + echo `if [ $SRCDIR_IS_LIBTIFF = no ]; then + (for i do + case "$i" in + /*|-l*) echo "$i" ;; + -[LR]) ;; # XXX??? + -[LR]/*) echo "$i" ;; + -L*) echo "$i" | sed 's;^-L;-L../;' ;; + -R*) echo "$i" | sed 's;^-R;-R../;' ;; + *) echo "../$i" ;; + esac + done) | tr '\012' ' ' + else + echo "$@" + fi` | sed -e 's;[ ][ ]*$;;' -e 's;/[.]$;;' +} +# +# Generate a list of compiler include options, +# prepending ``../'' to any relative pathnames. +# +makeIncArgs() +{ + (for i do + case "$i" in + /*) echo "-I$i" ;; + *) + if [ $SRCDIR_IS_LIBTIFF = yes ]; then + echo "-I$i" + else + echo "-I../$i" + fi ;; + esac + done) | tr '\012' ' ' +} + +# +# Setup parameters needed below. +# +if [ $SRCDIR_IS_LIBTIFF = yes ]; then + CONFIGDIR="." + LIBSRCDIR="${SRCDIR}" +else + CONFIGDIR=".." + LIBSRCDIR=`relativize ${SRCDIR}`/libtiff +fi + +# NB: these should be sorted alphabetically +cat>>confsed< $F.new + $RM confx; $SED '/DATE:/d' $F.new >confx + $RM confy; $SED '/DATE:/d' $F >confy 2>/dev/null + if cmp -s confx confy >/dev/null 2>&1; then + $RM $F.new + else + Note "Creating $F from $SRCDIR/$F.in" + $RM $F; mv $F.new $F; $CHMOD 444 $F + fi + else + Note "Creating $F from $SRCDIR/$F.in" + if $SED -f confsed $SRCDIR/$F.in >$F.new; then + $RM $F; mv $F.new $F; $CHMOD 444 $F + else + cat 1>&2 <$F.new + +failed. Aborting without cleaning up files so you can take a look... +EOF + exit 1 + fi + fi + done +} + +# +# port/install.sh is the SGI install program emulator script. +# +CONF_FILES="Makefile" +if [ $SRCDIR_IS_LIBTIFF != yes ] ; then + CONF_FILES="$CONF_FILES + libtiff/Makefile + man/Makefile + tools/Makefile + port/install.sh + " + test $HTML = yes && CONF_FILES="$CONF_FILES html/Makefile" + test $PORT = yes && CONF_FILES="$CONF_FILES port/Makefile" +fi +SedConfigFiles $CONF_FILES + +Note "Done." + +$RM $JUNK +exit 0 diff --git a/contrib/acorn/Makefile b/contrib/acorn/Makefile new file mode 100755 index 0000000..28ac425 --- /dev/null +++ b/contrib/acorn/Makefile @@ -0,0 +1,165 @@ +# Project: LibTIFF + + +# Toolflags: +CCflags = -c -zo -ffah -depend !Depend -IC: +C++flags = -c -depend !Depend -IC: -throwback +Linkflags = -aif -c++ -o $@ +DrLinkflags = -nounused -aif -c++ -o $@ +ObjAsmflags = -throwback -NoCache -depend !Depend +CMHGflags = +LibFileflags = -c -o $@ +Squeezeflags = -o $@ + + +# Final targets: +@.o.LIBTIFF: \ + @.o.tif_acorn \ + @.o.tif_aux \ + @.o.tif_close \ + @.o.tif_codec \ + @.o.tif_compress \ + @.o.tif_dir \ + @.o.tif_dirinfo \ + @.o.tif_dirread \ + @.o.tif_dirwrite \ + @.o.tif_dumpmode \ + @.o.tif_error \ + @.o.tif_fax3 \ + @.o.tif_flush \ + @.o.tif_getimage \ + @.o.tif_jpeg \ + @.o.tif_lzw \ + @.o.tif_next \ + @.o.tif_open \ + @.o.tif_packbits \ + @.o.tif_predict \ + @.o.tif_print \ + @.o.tif_read \ + @.o.tif_strip \ + @.o.tif_swab \ + @.o.tif_thunder \ + @.o.tif_tile \ + @.o.tif_version \ + @.o.tif_warning \ + @.o.tif_write \ + @.o.tif_zip \ + @.o.tif_fax3sm \ + @.h.version + LibFile $(LibFileflags) \ + @.o.tif_acorn \ + @.o.tif_aux \ + @.o.tif_close \ + @.o.tif_codec \ + @.o.tif_compress \ + @.o.tif_dir \ + @.o.tif_dirinfo \ + @.o.tif_dirread \ + @.o.tif_dirwrite \ + @.o.tif_dumpmode \ + @.o.tif_error \ + @.o.tif_fax3 \ + @.o.tif_flush \ + @.o.tif_getimage \ + @.o.tif_jpeg \ + @.o.tif_lzw \ + @.o.tif_next \ + @.o.tif_open \ + @.o.tif_packbits \ + @.o.tif_predict \ + @.o.tif_print \ + @.o.tif_read \ + @.o.tif_strip \ + @.o.tif_swab \ + @.o.tif_thunder \ + @.o.tif_tile \ + @.o.tif_version \ + @.o.tif_warning \ + @.o.tif_write \ + @.o.tif_zip \ + @.o.tif_fax3sm + + +# User-editable dependencies: +@.mkversion: @.o.mkversion C:o.Stubs + Link $(linkflags) @.o.mkversion C:o.Stubs +@.h.version: @.VERSION @.mkversion + .mkversion -v @.VERSION -a @.tiff/alpha @.h.version +@.mkg3states: @.o.mkg3states @.o.getopt C:o.Stubs + link $(linkflags) @.o.mkg3states C:o.Stubs @.o.getopt +@.c.tif_fax3sm: @.mkg3states + .mkg3states -c const @.c.tif_fax3sm + +# Static dependencies: +@.o.tif_acorn: @.c.tif_acorn + cc $(ccflags) -o @.o.tif_acorn @.c.tif_acorn +@.o.tif_aux: @.c.tif_aux + cc $(ccflags) -o @.o.tif_aux @.c.tif_aux +@.o.tif_close: @.c.tif_close + cc $(ccflags) -o @.o.tif_close @.c.tif_close +@.o.tif_codec: @.c.tif_codec + cc $(ccflags) -o @.o.tif_codec @.c.tif_codec +@.o.tif_compress: @.c.tif_compress + cc $(ccflags) -o @.o.tif_compress @.c.tif_compress +@.o.tif_dir: @.c.tif_dir + cc $(ccflags) -o @.o.tif_dir @.c.tif_dir +@.o.tif_dirinfo: @.c.tif_dirinfo + cc $(ccflags) -o @.o.tif_dirinfo @.c.tif_dirinfo +@.o.tif_dirread: @.c.tif_dirread + cc $(ccflags) -o @.o.tif_dirread @.c.tif_dirread +@.o.tif_dirwrite: @.c.tif_dirwrite + cc $(ccflags) -o @.o.tif_dirwrite @.c.tif_dirwrite +@.o.tif_dumpmode: @.c.tif_dumpmode + cc $(ccflags) -o @.o.tif_dumpmode @.c.tif_dumpmode +@.o.tif_error: @.c.tif_error + cc $(ccflags) -o @.o.tif_error @.c.tif_error +@.o.tif_fax3: @.c.tif_fax3 + cc $(ccflags) -o @.o.tif_fax3 @.c.tif_fax3 +@.o.tif_flush: @.c.tif_flush + cc $(ccflags) -o @.o.tif_flush @.c.tif_flush +@.o.tif_getimage: @.c.tif_getimage + cc $(ccflags) -o @.o.tif_getimage @.c.tif_getimage +@.o.tif_jpeg: @.c.tif_jpeg + cc $(ccflags) -o @.o.tif_jpeg @.c.tif_jpeg +@.o.tif_lzw: @.c.tif_lzw + cc $(ccflags) -o @.o.tif_lzw @.c.tif_lzw +@.o.tif_next: @.c.tif_next + cc $(ccflags) -o @.o.tif_next @.c.tif_next +@.o.tif_open: @.c.tif_open + cc $(ccflags) -o @.o.tif_open @.c.tif_open +@.o.tif_packbits: @.c.tif_packbits + cc $(ccflags) -o @.o.tif_packbits @.c.tif_packbits +@.o.tif_predict: @.c.tif_predict + cc $(ccflags) -o @.o.tif_predict @.c.tif_predict +@.o.tif_print: @.c.tif_print + cc $(ccflags) -o @.o.tif_print @.c.tif_print +@.o.tif_read: @.c.tif_read + cc $(ccflags) -o @.o.tif_read @.c.tif_read +@.o.tif_strip: @.c.tif_strip + cc $(ccflags) -o @.o.tif_strip @.c.tif_strip +@.o.tif_swab: @.c.tif_swab + cc $(ccflags) -o @.o.tif_swab @.c.tif_swab +@.o.tif_thunder: @.c.tif_thunder + cc $(ccflags) -o @.o.tif_thunder @.c.tif_thunder +@.o.tif_tile: @.c.tif_tile + cc $(ccflags) -o @.o.tif_tile @.c.tif_tile +@.o.tif_version: @.c.tif_version + cc $(ccflags) -o @.o.tif_version @.c.tif_version +@.o.tif_warning: @.c.tif_warning + cc $(ccflags) -o @.o.tif_warning @.c.tif_warning +@.o.tif_write: @.c.tif_write + cc $(ccflags) -o @.o.tif_write @.c.tif_write +@.o.tif_zip: @.c.tif_zip + cc $(ccflags) -o @.o.tif_zip @.c.tif_zip +@.o.mkg3states: @.c.mkg3states + cc $(ccflags) -o @.o.mkg3states @.c.mkg3states +@.o.getopt: @.c.getopt + cc $(ccflags) -o @.o.getopt @.c.getopt +@.o.mkspans: @.c.mkspans + cc $(ccflags) -o @.o.mkspans @.c.mkspans +@.o.tif_fax3sm: @.c.tif_fax3sm + cc $(ccflags) -o @.o.tif_fax3sm @.c.tif_fax3sm +@.o.mkversion: @.c.mkversion + cc $(ccflags) -o @.o.mkversion @.c.mkversion + +# Dynamic dependencies: diff --git a/contrib/acorn/ReadMe b/contrib/acorn/ReadMe new file mode 100755 index 0000000..c64b287 --- /dev/null +++ b/contrib/acorn/ReadMe @@ -0,0 +1,79 @@ +Building the Software on an Acorn RISC OS system + +The directory contrib/acorn contains support for compiling the library under +Acorn C/C++ under Acorn's RISC OS 3.10 or above. Subsequent pathnames will +use the Acorn format: The full-stop or period character is a pathname +delimeter, and the slash character is not interpreted; the reverse position +from Unix. Thus "libtiff/tif_acorn.c" becomes "libtiff.tif_acorn/c". + +This support was contributed by Peter Greenham. +(peterg@angmulti.demon.co.uk). + +Installing LibTIFF: + +LIBTIFF uses several files which have names longer than the normal RISC OS +maximum of ten characters. This complicates matters. Maybe one day Acorn will +address the problem and implement long filenames properly. Until then this +gets messy, especially as I'm trying to do this with obeyfiles and not have +to include binaries in this distribution. + +First of all, ensure you have Truncate configured on (type *Configure +Truncate On) Although it is, of course, preferable to have long filenames, +LIBTIFF can be installed with short filenames, and it will compile and link +without problems. However, getting it there is more problematic. +contrib.acorn.install is an installation obeyfile which will create a normal +Acorn-style library from the source (ie: with c, h and o folders etc.), but +needs the distribution library to have been unpacked into a location which is +capable of supporting long filenames, even if only temporarily. + +My recommendation, until Acorn address this problem properly, is to use Jason +Tribbeck's LongFilenames , or any other working system that gives you long +filenames, like a nearby NFS server for instance. + +If you are using Longfilenames, even if only temporarily to install LIBTIFF, +unpack the TAR into a RAMDisc which has been longfilenamed (ie: *addlongfs +ram) and then install from there to the hard disk. Unfortunately +Longfilenames seems a bit unhappy about copying a bunch of long-named files +across the same filing system, but is happy going between systems. You'll +need to create a ramdisk of about 2Mb. + +Now you can run the installation script I've supplied (in contrib.acorn), +which will automate the process of installing LIBTIFF as an Acorn-style +library. The syntax is as follows: + +install + +Install will then create and put the library in there. For +example, having used LongFilenames on the RAMDisk and unpacked the library +into there, you can then type: + +Obey RAM::RamDisc0.$.contrib.acorn.install RAM::RamDisc0.$ ADFS::4.$.LIBTIFF + +It doesn't matter if the destination location can cope with long filenames or +not. The filenames will be truncated if necessary (*Configure Truncate On if +you get errors) and all will be well. + +Compiling LibTIFF: + +Once the LibTIFF folder has been created and the files put inside, making the +library should be just a matter of running 'SetVars' to set the appropriate +system variables, then running 'Makefile'. + +OSLib + +OSLib is a comprehensive API for RISC OS machines, written by Jonathan +Coxhead of Acorn Computers (although OSLib is not an official Acorn product). +Using the OSLib SWI veneers produces code which is more compact and more +efficient than code written using _kernel_swi or _swi. The Acorn port of +LibTIFF can take advantage of this if present. Edit the Makefile and go to +the Static dependencies section. The first entry is: + +# Static dependencies: +@.o.tif_acorn: @.c.tif_acorn + cc $(ccflags) -o @.o.tif_acorn @.c.tif_acorn +Change the cc line to: + + cc $(ccflags) -DINCLUDE_OSLIB -o @.o.tif_acorn @.c.tif_acorn + +Remember, however, that OSLib is only recommended for efficiency's sake. It +is not required. diff --git a/contrib/acorn/SetVars b/contrib/acorn/SetVars new file mode 100755 index 0000000..60059e0 --- /dev/null +++ b/contrib/acorn/SetVars @@ -0,0 +1,3 @@ +Set LibTIFF$Dir +Set LibTIFF$Path . +Set C$Path ,LibTIFF: diff --git a/contrib/acorn/cleanlib b/contrib/acorn/cleanlib new file mode 100755 index 0000000..8bb4215 --- /dev/null +++ b/contrib/acorn/cleanlib @@ -0,0 +1,5 @@ +IfThere LibTIFF:o.* THEN Wipe LibTIFF:o.* ~CFR~V +IfThere LibTIFF:c.tif_fax3sm THEN Delete LibTIFF:c.tif_fax3sm +IfThere LibTIFF:mkg3states THEN Delete LibTIFF:mkg3states +IfThere LibTIFF:h.version THEN Delete LibTIFF:h.version +IfThere LibTIFF:mkversion THEN Delete LibTIFF:mkversion diff --git a/contrib/acorn/convert b/contrib/acorn/convert new file mode 100755 index 0000000..9e709c2 --- /dev/null +++ b/contrib/acorn/convert @@ -0,0 +1,175 @@ +RISC OS Conversion log +====================== + +mkversion.c +~~~~~~~~~~~ +The RISC OS command-line does not allow the direct creation of the version.h +file in the proper manner. To remedy this in such a way that the version +header is made at compiletime, I wrote this small program. It is fully +portable, so should work quite happily for any other platform that might need +it. + +msg3states.c +~~~~~~~~~~~~ +Needed getopt.c from the port folder, then compiled and worked fine. + + +tiff.h +~~~~~~ + +====1==== + +The symbol _MIPS_SZLONG, if not defined, causes a compiler error. Fixed by +ensuring it does exist. This looks to me like this wouldn't be an +Acorn-specific problem. The new code fragment is as follows: + +#ifndef _MIPS_SZLONG +#define _MIPS_SZLONG 32 +#endif +#if defined(__alpha) || _MIPS_SZLONG == 64 + + + +tiffcomp.h +~~~~~~~~~~ + +====1==== + +#if !defined(__MWERKS__) && !defined(THINK_C) +#include +#endif + +Acorn also doesn't have this header so: + +#if !defined(__MWERKS__) && !defined(THINK_C) && !defined(__acorn) +#include +#endif + +====2==== + +#ifdef VMS +#include +#include +#else +#include +#endif + +This seems to indicate that fcntl.h is included on all systems except +VMS. Odd, because I've never heard of it before. Sure it's in the ANSI +definition? Anyway, following change: + +#ifdef VMS +#include +#include +#else +#ifndef __acorn +#include +#endif +#endif + +This will probably change when I find out what it wants from fcntl.h! + +====3==== + +#if defined(__MWERKS__) || defined(THINK_C) || defined(applec) +#include +#define BSDTYPES +#endif + +Added RISC OS to above thus: + +#if defined(__MWERKS__) || defined(THINK_C) || defined(applec) || defined(__acorn) +#include +#define BSDTYPES +#endif + +====4==== + +/* + * The library uses the ANSI C/POSIX SEEK_* + * definitions that should be defined in unistd.h + * (except on VMS where they are in stdio.h and + * there is no unistd.h). + */ +#ifndef SEEK_SET +#if !defined(VMS) && !defined (applec) && !defined(THINK_C) && !defined(__MWERKS__) +#include +#endif + +RISC OS is like VMS and Mac in this regard. So changed to: + +/* + * The library uses the ANSI C/POSIX SEEK_* + * definitions that should be defined in unistd.h + * (except on VMS or the Mac or RISC OS, where they are in stdio.h and + * there is no unistd.h). + */ +#ifndef SEEK_SET +#if !defined(VMS) && !defined (applec) && !defined(THINK_C) && !defined(__MWERKS__) && !defined(__acorn) +#include +#endif +#endif + +====5==== + +NB: HAVE_IEEEFP is defined in tiffconf.h, not tiffcomp.h as mentioned +in libtiff.README. (Note written on original port from 3.4beta004) + +Acorn C/C++ claims to accord with IEEE 754, so no change (yet) to +tiffconf.h. + +====6==== + +Unsure about whether this compiler supports inline functions. Will +leave it on for the time being and see if it works! (Likely if +everything else does.) + +... Seems to be OK ... + +====7==== + +Added to the end: + +/* + * osfcn.h is part of C++Lib on Acorn C/C++, and as such can't be used + * on C alone. For that reason, the relevant functions have been + * implemented by myself in tif_acorn.c, and the elements from the header + * included here. + */ + +#ifdef __acorn +#ifdef __cplusplus +#include +#else +#include "kernel.h" +#define O_RDONLY 0 +#define O_WRONLY 1 +#define O_RDWR 2 +#define O_APPEND 8 +#define O_CREAT 0x200 +#define O_TRUNC 0x400 +typedef long off_t; +extern int open(const char *name, int flags, int mode); +extern int close(int fd); +extern int write(int fd, const char *buf, int nbytes); +extern int read(int fd, char *buf, int nbytes); +extern off_t lseek(int fd, off_t offset, int whence); +#endif +#endif + + +=============================================================================== + +tif_acorn.c +~~~~~~~~~~~ + +Created file tif_acorn.c, copied initially from tif_unix.c + +Documented internally where necessary. + +Note that I have implemented the low-level file-handling functions normally +found in osfcn.h in here, and put the header info at the bottom of +tiffcomp.h. This is further documented from a RISC OS perspective inside the +file. + +=============================================================================== diff --git a/contrib/acorn/install b/contrib/acorn/install new file mode 100755 index 0000000..d446306 --- /dev/null +++ b/contrib/acorn/install @@ -0,0 +1,128 @@ +If "%0" = "" Then Error Syntax: install | | +If "%1" = "" Then Error Syntax: install | | +Set LibTiffInstall$Dir %0 +Set LibTiff$Dir %1 +Set Alias$CPY Copy .%%0 .%%1 ~C~DF~NRV +CDir +CDir .c +CDir .h +CDir .o +CPY COPYRIGHT COPYRIGHT +CPY README README +CPY VERSION VERSION +CPY dist.tiff/alpha tiff/alpha +CPY contrib.acorn.SetVars SetVars +CPY contrib.acorn.Makefile Makefile +CPY contrib.acorn.cleanlib cleanlib +CPY port.getopt/c c.getopt +CPY libtiff.mkg3states/c c.mkg3states +CPY libtiff.mkspans/c c.mkspans +CPY libtiff.mkversion/c c.mkversion +CPY libtiff.tif_acorn/c c.tif_acorn +CPY libtiff.tif_aux/c c.tif_aux +CPY libtiff.tif_close/c c.tif_close +CPY libtiff.tif_codec/c c.tif_codec +CPY libtiff.tif_compress/c c.tif_compre +CPY libtiff.tif_dir/c c.tif_dir +CPY libtiff.tif_dirinfo/c c.tif_dirinf +CPY libtiff.tif_dirread/c c.tif_dirrea +CPY libtiff.tif_dirwrite/c c.tif_dirwri +CPY libtiff.tif_dumpmode/c c.tif_dumpmo +CPY libtiff.tif_error/c c.tif_error +CPY libtiff.tif_fax3/c c.tif_fax3 +CPY libtiff.tif_flush/c c.tif_flush +CPY libtiff.tif_getimage/c c.tif_getima +CPY libtiff.tif_jpeg/c c.tif_jpeg +CPY libtiff.tif_lzw/c c.tif_lzw +CPY libtiff.tif_next/c c.tif_next +CPY libtiff.tif_open/c c.tif_open +CPY libtiff.tif_packbits/c c.tif_packbi +CPY libtiff.tif_predict/c c.tif_predic +CPY libtiff.tif_print/c c.tif_print +CPY libtiff.tif_read/c c.tif_read +CPY libtiff.tif_strip/c c.tif_strip +CPY libtiff.tif_swab/c c.tif_swab +CPY libtiff.tif_thunder/c c.tif_thunde +CPY libtiff.tif_tile/c c.tif_tile +CPY libtiff.tif_version/c c.tif_versio +CPY libtiff.tif_warning/c c.tif_warnin +CPY libtiff.tif_write/c c.tif_write +CPY libtiff.tif_zip/c c.tif_zip +CPY libtiff.t4/h h.t4 +CPY libtiff.tiff/h h.tiff +CPY libtiff.tiffcomp/h h.tiffcomp +CPY libtiff.tiffconf/h h.tiffconf +CPY libtiff.tiffio/h h.tiffio +CPY libtiff.tiffiop/h h.tiffiop +CPY libtiff.tif_dir/h h.tif_dir +CPY libtiff.tif_fax3/h h.tif_fax3 +CPY libtiff.tif_predict/h h.tif_predic +SetType .COPYRIGHT Text +SetType .README Text +SetType .VERSION Text +SetType .tiff/alpha Text +SetType .SetVars Obey +SetType .Makefile fe1 +SetType .cleanlib Obey +SetType .c.getopt Text +SetType .c.mkg3states Text +SetType .c.mkspans Text +SetType .c.mkversion Text +SetType .c.tif_acorn Text +SetType .c.tif_aux Text +SetType .c.tif_close Text +SetType .c.tif_codec Text +SetType .c.tif_compre Text +SetType .c.tif_dir Text +SetType .c.tif_dirinf Text +SetType .c.tif_dirrea Text +SetType .c.tif_dirwri Text +SetType .c.tif_dumpmo Text +SetType .c.tif_error Text +SetType .c.tif_fax3 Text +SetType .c.tif_flush Text +SetType .c.tif_getima Text +SetType .c.tif_jpeg Text +SetType .c.tif_lzw Text +SetType .c.tif_next Text +SetType .c.tif_open Text +SetType .c.tif_packbi Text +SetType .c.tif_predic Text +SetType .c.tif_print Text +SetType .c.tif_read Text +SetType .c.tif_strip Text +SetType .c.tif_swab Text +SetType .c.tif_thunde Text +SetType .c.tif_tile Text +SetType .c.tif_versio Text +SetType .c.tif_warnin Text +SetType .c.tif_write Text +SetType .c.tif_zip Text +SetType .h.t4 Text +SetType .h.tiff Text +SetType .h.tiffcomp Text +SetType .h.tiffconf Text +SetType .h.tiffio Text +SetType .h.tiffiop Text +SetType .h.tif_dir Text +SetType .h.tif_fax3 Text +SetType .h.tif_predic Text +Unset Alias$CPY +Unset LibTiffInstall$Dir +| Now attempt to restore longfilename status. If it causes an error, OK. +Set Alias$RN Rename .%%0 .%%1 +Unset LibTiff$Dir +RN c.tif_compre c.tif_compress +RN c.tif_dirinf c.tif_dirinfo +RN c.tif_dirrea c.tif_dirread +RN c.tif_dirwri c.tif_dirwrite +RN c.tif_dumpmo c.tif_dumpmode +RN c.tif_getima c.tif_getimage +RN c.tif_packbi c.tif_packbits +RN c.tif_predic c.tif_predict +RN c.tif_thunde c.tif_thunder +RN c.tif_versio c.tif_version +RN c.tif_warnin c.tif_warning +RN h.tif_predic h.tif_predict +Unset Alias$RN +Echo All done! diff --git a/contrib/addtiffo/Makefile b/contrib/addtiffo/Makefile new file mode 100755 index 0000000..3b42a7c --- /dev/null +++ b/contrib/addtiffo/Makefile @@ -0,0 +1,26 @@ +# +# If libtiff.a is installed in /usr/lib or /usr/local/lib just point +# LIBTIFF_DIR there. It doesn't need a full libtiff tree. +# +LIBTIFF_DIR = ../../libtiff +# +CC = gcc +CFLAGS = -O -I$(LIBTIFF_DIR) +LIBS = $(LIBTIFF_DIR)/libtiff.a -lm + +addtiffo: addtiffo.o tif_overview.o tif_ovrcache.o + $(CXX) $(CFLAGS) addtiffo.o tif_overview.o tif_ovrcache.o \ + $(LIBS) -o addtiffo + + +addtiffo.o: addtiffo.c + $(CC) -c $(CFLAGS) addtiffo.c + +tif_overview.o: tif_overview.c + $(CC) -c $(CFLAGS) tif_overview.c + +tif_ovrcache.o: tif_ovrcache.c + $(CC) -c $(CFLAGS) tif_ovrcache.c + +clean: + rm *.o addtiffo diff --git a/contrib/addtiffo/Makefile.vc b/contrib/addtiffo/Makefile.vc new file mode 100755 index 0000000..2d3103b --- /dev/null +++ b/contrib/addtiffo/Makefile.vc @@ -0,0 +1,27 @@ +# +# If libtiff.a is installed in /usr/lib or /usr/local/lib just point +# LIBTIFF_DIR there. It doesn't need a full libtiff tree. +# +LIBTIFF_DIR = ..\..\libtiff +# +CC = cl.exe +CPPC = cl.exe +CFLAGS = -O -I$(LIBTIFF_DIR) +LIBS = $(LIBTIFF_DIR)\libtiff.lib + +addtiffo: addtiffo.obj tif_overview.obj tif_ovrcache.obj + $(CC) $(CFLAGS) addtiffo.obj tif_overview.obj tif_ovrcache.obj \ + $(LIBS) /Feaddtiffo.exe + + +addtiffo.obj: addtiffo.c + $(CC) -c $(CFLAGS) addtiffo.c + +tif_overview.obj: tif_overview.c + $(CPPC) -c $(CFLAGS) tif_overview.c + +tif_ovrcache.obj: tif_ovrcache.c + $(CPPC) -c $(CFLAGS) tif_ovrcache.c + +clean: + del *.obj addtiffo.exe diff --git a/contrib/addtiffo/addtiffo.c b/contrib/addtiffo/addtiffo.c new file mode 100755 index 0000000..b394a54 --- /dev/null +++ b/contrib/addtiffo/addtiffo.c @@ -0,0 +1,131 @@ +/****************************************************************************** + * $Id: addtiffo.c,v 1.1.1.1 2000/06/24 19:10:17 tshead Exp $ + * + * Project: GeoTIFF Overview Builder + * Purpose: Mainline for building overviews in a TIFF file. + * Author: Frank Warmerdam, warmerda@home.com + * + ****************************************************************************** + * Copyright (c) 1999, Frank Warmerdam + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************** + * + * $Log: addtiffo.c,v $ + * Revision 1.1.1.1 2000/06/24 19:10:17 tshead + * * Initial import of libtiff-3.5.5 + * + * Revision 1.2 2000/01/28 15:36:38 warmerda + * pass TIFF handle instead of filename to overview builder + * + * Revision 1.1 1999/08/17 01:47:59 warmerda + * New + * + * Revision 1.1 1999/03/12 17:46:32 warmerda + * New + * + * Revision 1.2 1999/02/11 22:27:12 warmerda + * Added multi-sample support + * + * Revision 1.1 1999/02/11 18:12:30 warmerda + * New + */ + +#include +#include +#include "tiffio.h" + +void TIFFBuildOverviews( TIFF *, int, int *, int ); + +/************************************************************************/ +/* main() */ +/************************************************************************/ + +int main( int argc, char ** argv ) + +{ + int anOverviews[100]; + int nOverviewCount = 0; + int bUseSubIFD = 0; + TIFF *hTIFF; + +/* -------------------------------------------------------------------- */ +/* Usage: */ +/* -------------------------------------------------------------------- */ + if( argc < 2 ) + { + printf( "Usage: addtiffo tiff_filename [resolution_reductions]\n" ); + printf( "\n" ); + printf( "Example:\n" ); + printf( " %% addtifo abc.tif 2 4 8 16\n" ); + exit( 1 ); + } + + if( strcmp(argv[1],"-subifd") == 0 ) + { + bUseSubIFD = 1; + argv++; + } + +/* -------------------------------------------------------------------- */ +/* Collect the user requested reduction factors. */ +/* -------------------------------------------------------------------- */ + while( nOverviewCount < argc - 2 && nOverviewCount < 100 ) + { + anOverviews[nOverviewCount] = atoi(argv[nOverviewCount+2]); + nOverviewCount++; + } + +/* -------------------------------------------------------------------- */ +/* Default to four overview levels. It would be nicer if it */ +/* defaulted based on the size of the source image. */ +/* -------------------------------------------------------------------- */ + if( nOverviewCount == 0 ) + { + nOverviewCount = 4; + + anOverviews[0] = 2; + anOverviews[1] = 4; + anOverviews[2] = 8; + anOverviews[3] = 16; + } + +/* -------------------------------------------------------------------- */ +/* Build the overview. */ +/* -------------------------------------------------------------------- */ + hTIFF = TIFFOpen( argv[1], "r+" ); + if( hTIFF == NULL ) + { + fprintf( stderr, "TIFFOpen(%s) failed.\n", argv[1] ); + exit( 1 ); + } + + TIFFBuildOverviews( hTIFF, nOverviewCount, anOverviews, bUseSubIFD ); + + TIFFClose( hTIFF ); + +/* -------------------------------------------------------------------- */ +/* Optionally test for memory leaks. */ +/* -------------------------------------------------------------------- */ +#ifdef DBMALLOC + malloc_dump(1); +#endif + + exit( 0 ); +} diff --git a/contrib/addtiffo/readme b/contrib/addtiffo/readme new file mode 100755 index 0000000..0e142f7 --- /dev/null +++ b/contrib/addtiffo/readme @@ -0,0 +1,145 @@ + addtiffo 1.0 + ============ + +The addtiffo utility is used to add overview pyramids to an existing +TIFF or GeoTIFF file. Some applications can take advantage of these +overviews to accelerate overview display performance of large rasters. + +This release of addtiffo is primarily intended for compatibility testing +with applications, and to see if there is interest in a cleaner release +of the capability ... perhaps incorporation into the libtiff tools +distribution. + +Please feel free to contact me with questions, or problems. + +warmerda@home.com +http://members.home.com/warmerda + + +Usage +----- + +Usage: addtiffo [-subifd] tiff_filename [resolution_reductions] + +Example: + % addtiffo abc.tif 2 4 8 16 + +The numeric arguments are the list of reduction factors to +generate. In this example a 1/2, 1/4 1/8 and 1/16 + + + +Limitations +----------- + +See tif_overview.cpp for up to date details. + + o RawBlockedImage will create temporary files in the current directory + to cache the overviews so it doesn't have to hold them all in memory. + If the application crashes these will not be deleted (*.rbi). + + o Currently only images with bits_per_sample of a multiple of eight + will work. + + o The downsampler currently just takes the top left pixel from the + source rectangle. Eventually sampling options of averaging, mode, and + ``center pixel'' should be offered. + + o The code will attempt to use the same kind of compression, + photometric interpretation, and organization as the source image, but + it doesn't copy geotiff tags to the reduced resolution images. + + o Reduced resolution overviews for multi-sample files will currently + always be generated as PLANARCONFIG_SEPARATE. This could be fixed + reasonable easily if needed to improve compatibility with other + packages. Many don't properly support PLANARCONFIG_SEPARATE. + + o Overviews are always written as appended IFDs, rather than using the + ``tree of tree's'' approach using the SUBIFD tag. I wanted to implement + both, but it isn't currently easy to add a SUBIFD tag to an existing + main tiff IFD with libtiff. I hope to try this again later. + + +TIFF File Tags +-------------- + +The results of running addtiffo on a 1024x1024 tiled greyscale file +with the arguments ``2 4 8 16'' is to add four additional TIFF directories +appended on the file with the SUBFILETYPE flag to 0x1 indicating the extra +items are reduced resolution images. + +The tiffinfo output of such a file might look like this: + +TIFF Directory at offset 0x118008 + Image Width: 1024 Image Length: 1024 + Tile Width: 256 Tile Length: 112 + Bits/Sample: 8 + Compression Scheme: none + Photometric Interpretation: min-is-black + Samples/Pixel: 1 + Planar Configuration: single image plane +TIFF Directory at offset 0x15e1d2 + Subfile Type: reduced-resolution image (1 = 0x1) + Image Width: 512 Image Length: 512 + Tile Width: 256 Tile Length: 112 + Bits/Sample: 8 + Compression Scheme: none + Photometric Interpretation: min-is-black + Samples/Pixel: 1 + Planar Configuration: separate image planes +TIFF Directory at offset 0x1732b8 + Subfile Type: reduced-resolution image (1 = 0x1) + Image Width: 256 Image Length: 256 + Tile Width: 256 Tile Length: 112 + Bits/Sample: 8 + Compression Scheme: none + Photometric Interpretation: min-is-black + Samples/Pixel: 1 + Planar Configuration: separate image planes +TIFF Directory at offset 0x17a366 + Subfile Type: reduced-resolution image (1 = 0x1) + Image Width: 128 Image Length: 128 + Tile Width: 128 Tile Length: 112 + Bits/Sample: 8 + Compression Scheme: none + Photometric Interpretation: min-is-black + Samples/Pixel: 1 + Planar Configuration: separate image planes +TIFF Directory at offset 0x17b40c + Subfile Type: reduced-resolution image (1 = 0x1) + Image Width: 64 Image Length: 64 + Tile Width: 64 Tile Length: 64 + Bits/Sample: 8 + Compression Scheme: none + Photometric Interpretation: min-is-black + Samples/Pixel: 1 + Planar Configuration: separate image planes + + +Building +-------- + +You will need a C, and C++ compiler. You will need to have libtiff already +built and installed. The provided Makefile should work on most Unix systems. +A similar file will be needed for Windows, but is not provided. + +The CFLAGS and LIBS macros in the Makefile will have to be updated to +point to the correct location of the libtiff include files, and library. + + +Credits +------- + + o Intergraph Corporation for partially funding the work. + + o Global Geomatics for partially funding reorganization of the overview + building ability as a separate utility. + + o Orrin Long, and Ed Grissom of Intergraph for explaining what needed to + be done. + + o Max Martinez of Erdas for his discussion of external overviews. + + o Frank Warmerdam for writing the bulk of the code. + + o Sam Leffler since this only exists because of his libtiff. diff --git a/contrib/dbs/Imakefile b/contrib/dbs/Imakefile new file mode 100755 index 0000000..adbf495 --- /dev/null +++ b/contrib/dbs/Imakefile @@ -0,0 +1,12 @@ +# +# Imakefile -- to generate a Makefile, do xmkmf +# + TIFF = ../../libtiff + EXTRA_LIBRARIES = $(TIFF)/libtiff.a + EXTRA_INCLUDES = -I$(TIFF) + +AllTarget(bi gray pal rgb) +NormalProgramTarget(bi,tiff-bi.o,,,) +NormalProgramTarget(gray,tiff-grayscale.o,,,-lm) +NormalProgramTarget(pal,tiff-palette.o,,,) +NormalProgramTarget(rgb,tiff-rgb.o,,,-lm) diff --git a/contrib/dbs/readme b/contrib/dbs/readme new file mode 100755 index 0000000..c108641 --- /dev/null +++ b/contrib/dbs/readme @@ -0,0 +1,7 @@ +Wed May 9 09:11:35 PDT 1990 + +This directory contains programs from Dan Sears +(dbs@decwrl.dec.com). Contact him directly if +you have questions/problems. + + Sam diff --git a/contrib/dbs/tiff-bi.c b/contrib/dbs/tiff-bi.c new file mode 100755 index 0000000..dc1b4ff --- /dev/null +++ b/contrib/dbs/tiff-bi.c @@ -0,0 +1,85 @@ +/* + * tiff-bi.c -- create a Class B (bilevel) TIFF file + * + * Copyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts. + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include +#include + +#define WIDTH 512 +#define HEIGHT WIDTH + +typedef unsigned char u_char; + +void +main(argc, argv) + int argc; + char ** argv; +{ + int i; + u_char * scan_line; + TIFF * tif; + + if (argc != 2) { + fprintf(stderr, "Usage: %s tiff-image\n", argv[0]); + exit(0); + } + + if ((tif = TIFFOpen(argv[1], "w")) == NULL) { + fprintf(stderr, "can't open %s as a TIFF file\n", argv[1]); + exit(0); + } + + TIFFSetField(tif, TIFFTAG_IMAGEWIDTH, WIDTH); + TIFFSetField(tif, TIFFTAG_IMAGELENGTH, HEIGHT); + TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, 1); + TIFFSetField(tif, TIFFTAG_COMPRESSION, COMPRESSION_NONE); + TIFFSetField(tif, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK); + TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, 1); + TIFFSetField(tif, TIFFTAG_ROWSPERSTRIP, 1); + TIFFSetField(tif, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); + TIFFSetField(tif, TIFFTAG_RESOLUTIONUNIT, RESUNIT_NONE); + + scan_line = (u_char *) malloc(WIDTH / 8); + + for (i = 0; i < (WIDTH / 8) / 2; i++) + scan_line[i] = 0; + + for (i = (WIDTH / 8) / 2; i < (WIDTH / 8); i++) + scan_line[i] = 255; + + for (i = 0; i < HEIGHT / 2; i++) + TIFFWriteScanline(tif, scan_line, i, 0); + + for (i = 0; i < (WIDTH / 8) / 2; i++) + scan_line[i] = 255; + + for (i = (WIDTH / 8) / 2; i < (WIDTH / 8); i++) + scan_line[i] = 0; + + for (i = HEIGHT / 2; i < HEIGHT; i++) + TIFFWriteScanline(tif, scan_line, i, 0); + + free(scan_line); + TIFFClose(tif); + exit(0); +} diff --git a/contrib/dbs/tiff-grayscale.c b/contrib/dbs/tiff-grayscale.c new file mode 100755 index 0000000..73f406d --- /dev/null +++ b/contrib/dbs/tiff-grayscale.c @@ -0,0 +1,141 @@ +/* + * tiff-grayscale.c -- create a Class G (grayscale) TIFF file + * with a gray response curve in linear optical density + * + * Copyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts. + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include +#include +#include + +#define WIDTH 512 +#define HEIGHT WIDTH + +typedef unsigned char u_char; +typedef unsigned short u_short; +typedef unsigned long u_long; + +char * programName; +void Usage(); + +void +main(argc, argv) + int argc; + char ** argv; +{ + int bits_per_pixel, cmsize, i, j, k, + gray_index, chunk_size, nchunks; + u_char * scan_line; + u_short * gray; + u_long refblackwhite[2*1]; + TIFF * tif; + + programName = argv[0]; + + if (argc != 4) + Usage(); + + if (!strcmp(argv[1], "-depth")) + bits_per_pixel = atoi(argv[2]); + else + Usage(); + + switch (bits_per_pixel) { + case 8: + nchunks = 16; + chunk_size = 32; + break; + case 4: + nchunks = 4; + chunk_size = 128; + break; + case 2: + nchunks = 2; + chunk_size = 256; + break; + default: + Usage(); + } + + cmsize = nchunks * nchunks; + gray = (u_short *) malloc(cmsize * sizeof(u_short)); + + gray[0] = 3000; + for (i = 1; i < cmsize; i++) + gray[i] = (u_short) (-log10((double) i / (cmsize - 1)) * 1000); + + refblackwhite[0] = 0; + refblackwhite[0] = (1L< +#include + +#define WIDTH 512 +#define HEIGHT WIDTH +#define SCALE(x) ((x) * 257L) + +typedef unsigned char u_char; +typedef unsigned short u_short; + +char * programName; +void Usage(); + +void +main(argc, argv) + int argc; + char ** argv; +{ + int bits_per_pixel, cmsize, i, j, k, + cmap_index, chunk_size, nchunks; + u_char * scan_line; + u_short *red, *green, *blue; + TIFF * tif; + + programName = argv[0]; + + if (argc != 4) + Usage(); + + if (!strcmp(argv[1], "-depth")) + bits_per_pixel = atoi(argv[2]); + else + Usage(); + + switch (bits_per_pixel) { + case 8: + nchunks = 16; + chunk_size = 32; + break; + case 4: + nchunks = 4; + chunk_size = 128; + break; + case 2: + nchunks = 2; + chunk_size = 256; + break; + case 1: + nchunks = 2; + chunk_size = 256; + break; + default: + Usage(); + } + + if (bits_per_pixel != 1) { + cmsize = nchunks * nchunks; + } else { + cmsize = 2; + } + red = (u_short *) malloc(cmsize * sizeof(u_short)); + green = (u_short *) malloc(cmsize * sizeof(u_short)); + blue = (u_short *) malloc(cmsize * sizeof(u_short)); + + switch (bits_per_pixel) { + case 8: + for (i = 0; i < cmsize; i++) { + if (i < 32) + red[i] = 0; + else if (i < 64) + red[i] = SCALE(36); + else if (i < 96) + red[i] = SCALE(73); + else if (i < 128) + red[i] = SCALE(109); + else if (i < 160) + red[i] = SCALE(146); + else if (i < 192) + red[i] = SCALE(182); + else if (i < 224) + red[i] = SCALE(219); + else if (i < 256) + red[i] = SCALE(255); + + if ((i % 32) < 4) + green[i] = 0; + else if (i < 8) + green[i] = SCALE(36); + else if ((i % 32) < 12) + green[i] = SCALE(73); + else if ((i % 32) < 16) + green[i] = SCALE(109); + else if ((i % 32) < 20) + green[i] = SCALE(146); + else if ((i % 32) < 24) + green[i] = SCALE(182); + else if ((i % 32) < 28) + green[i] = SCALE(219); + else if ((i % 32) < 32) + green[i] = SCALE(255); + + if ((i % 4) == 0) + blue[i] = SCALE(0); + else if ((i % 4) == 1) + blue[i] = SCALE(85); + else if ((i % 4) == 2) + blue[i] = SCALE(170); + else if ((i % 4) == 3) + blue[i] = SCALE(255); + } + break; + case 4: + red[0] = SCALE(255); + green[0] = 0; + blue[0] = 0; + + red[1] = 0; + green[1] = SCALE(255); + blue[1] = 0; + + red[2] = 0; + green[2] = 0; + blue[2] = SCALE(255); + + red[3] = SCALE(255); + green[3] = SCALE(255); + blue[3] = SCALE(255); + + red[4] = 0; + green[4] = SCALE(255); + blue[4] = SCALE(255); + + red[5] = SCALE(255); + green[5] = 0; + blue[5] = SCALE(255); + + red[6] = SCALE(255); + green[6] = SCALE(255); + blue[6] = 0; + + red[7] = 0; + green[7] = 0; + blue[7] = 0; + + red[8] = SCALE(176); + green[8] = SCALE(224); + blue[8] = SCALE(230); + red[9] = SCALE(100); + green[9] = SCALE(149); + blue[9] = SCALE(237); + red[10] = SCALE(46); + green[10] = SCALE(139); + blue[10] = SCALE(87); + red[11] = SCALE(160); + green[11] = SCALE(82); + blue[11] = SCALE(45); + red[12] = SCALE(238); + green[12] = SCALE(130); + blue[12] = SCALE(238); + red[13] = SCALE(176); + green[13] = SCALE(48); + blue[13] = SCALE(96); + red[14] = SCALE(50); + green[14] = SCALE(205); + blue[14] = SCALE(50); + red[15] = SCALE(240); + green[15] = SCALE(152); + blue[15] = SCALE(35); + break; + case 2: + red[0] = SCALE(255); + green[0] = 0; + blue[0] = 0; + + red[1] = 0; + green[1] = SCALE(255); + blue[1] = 0; + + red[2] = 0; + green[2] = 0; + blue[2] = SCALE(255); + red[3] = SCALE(255); + green[3] = SCALE(255); + blue[3] = SCALE(255); + break; + case 1: + red[0] = 0; + green[0] = 0; + blue[0] = 0; + + red[1] = SCALE(255); + green[1] = SCALE(255); + blue[1] = SCALE(255); + break; + } + + if ((tif = TIFFOpen(argv[3], "w")) == NULL) { + fprintf(stderr, "can't open %s as a TIFF file\n", argv[3]); + exit(0); + } + + TIFFSetField(tif, TIFFTAG_IMAGEWIDTH, WIDTH); + TIFFSetField(tif, TIFFTAG_IMAGELENGTH, HEIGHT); + TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, bits_per_pixel); + TIFFSetField(tif, TIFFTAG_COMPRESSION, COMPRESSION_NONE); + TIFFSetField(tif, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_PALETTE); + TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, 1); + TIFFSetField(tif, TIFFTAG_ROWSPERSTRIP, 1); + TIFFSetField(tif, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); + TIFFSetField(tif, TIFFTAG_RESOLUTIONUNIT, RESUNIT_NONE); + TIFFSetField(tif, TIFFTAG_COLORMAP, red, green, blue); + + scan_line = (u_char *) malloc(WIDTH / (8 / bits_per_pixel)); + + for (i = 0; i < HEIGHT; i++) { + for (j = 0, k = 0; j < WIDTH;) { + cmap_index = (j / chunk_size) + ((i / chunk_size) * nchunks); + + switch (bits_per_pixel) { + case 8: + scan_line[k++] = cmap_index; + j++; + break; + case 4: + scan_line[k++] = (cmap_index << 4) + cmap_index; + j += 2; + break; + case 2: + scan_line[k++] = (cmap_index << 6) + (cmap_index << 4) + + (cmap_index << 2) + cmap_index; + j += 4; + break; + case 1: + scan_line[k++] = + ((j / chunk_size) == (i / chunk_size)) ? 0x00 : 0xff; + j += 8; + break; + } + } + TIFFWriteScanline(tif, scan_line, i, 0); + } + + free(scan_line); + TIFFClose(tif); + exit(0); +} + +void +Usage() +{ + fprintf(stderr, "Usage: %s -depth (8 | 4 | 2 | 1) tiff-image\n", programName); + exit(0); +} diff --git a/contrib/dbs/tiff-rgb.c b/contrib/dbs/tiff-rgb.c new file mode 100755 index 0000000..fd12c07 --- /dev/null +++ b/contrib/dbs/tiff-rgb.c @@ -0,0 +1,196 @@ +/* + * tiff-rgb.c -- create a 24-bit Class R (rgb) TIFF file + * + * Copyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts. + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include +#include +#include + +#define ROUND(x) (u_short) ((x) + 0.5) +#define CMSIZE 256 +#define WIDTH 525 +#define HEIGHT 512 +#define TIFF_GAMMA 2.2 + +typedef unsigned char u_char; +typedef unsigned short u_short; +typedef unsigned long u_long; + +void Usage(); +char * programName; + +void +main(argc, argv) + int argc; + char ** argv; +{ + char * input_file; + double image_gamma; + int i, j; + TIFF * tif; + u_char * scan_line; + u_short red[CMSIZE], green[CMSIZE], blue[CMSIZE]; + u_long refblackwhite[2*3]; + + programName = argv[0]; + + switch (argc) { + case 2: + image_gamma = TIFF_GAMMA; + input_file = argv[1]; + break; + case 4: + if (!strcmp(argv[1], "-gamma")) { + image_gamma = atof(argv[2]); + input_file = argv[3]; + } else + Usage(); + break; + default: + Usage(); + } + + for (i = 0; i < CMSIZE; i++) { + if (i == 0) + red[i] = green[i] = blue[i] = 0; + else { + red[i] = ROUND((pow(i / 255.0, 1.0 / image_gamma) * 65535.0)); + green[i] = ROUND((pow(i / 255.0, 1.0 / image_gamma) * 65535.0)); + blue[i] = ROUND((pow(i / 255.0, 1.0 / image_gamma) * 65535.0)); + } + } + refblackwhite[0] = 0; refblackwhite[1] = 255; + refblackwhite[2] = 0; refblackwhite[3] = 255; + refblackwhite[4] = 0; refblackwhite[5] = 255; + + if ((tif = TIFFOpen(input_file, "w")) == NULL) { + fprintf(stderr, "can't open %s as a TIFF file\n", input_file); + exit(0); + } + + TIFFSetField(tif, TIFFTAG_IMAGEWIDTH, WIDTH); + TIFFSetField(tif, TIFFTAG_IMAGELENGTH, HEIGHT); + TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, 8); + TIFFSetField(tif, TIFFTAG_COMPRESSION, COMPRESSION_NONE); + TIFFSetField(tif, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB); + TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, 3); + TIFFSetField(tif, TIFFTAG_ROWSPERSTRIP, 1); + TIFFSetField(tif, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); + TIFFSetField(tif, TIFFTAG_RESOLUTIONUNIT, RESUNIT_NONE); +#ifdef notdef + TIFFSetField(tif, TIFFTAG_WHITEPOINT, whitex, whitey); + TIFFSetField(tif, TIFFTAG_PRIMARYCHROMATICITIES, primaries); +#endif + TIFFSetField(tif, TIFFTAG_REFERENCEBLACKWHITE, refblackwhite); + TIFFSetField(tif, TIFFTAG_TRANSFERFUNCTION, red, green, blue); + + scan_line = (u_char *) malloc(WIDTH * 3); + + for (i = 0; i < 255; i++) { + for (j = 0; j < 75; j++) { + scan_line[j * 3] = 255; + scan_line[(j * 3) + 1] = 255 - i; + scan_line[(j * 3) + 2] = 255 - i; + } + for (j = 75; j < 150; j++) { + scan_line[j * 3] = 255 - i; + scan_line[(j * 3) + 1] = 255; + scan_line[(j * 3) + 2] = 255 - i; + } + for (j = 150; j < 225; j++) { + scan_line[j * 3] = 255 - i; + scan_line[(j * 3) + 1] = 255 - i; + scan_line[(j * 3) + 2] = 255; + } + for (j = 225; j < 300; j++) { + scan_line[j * 3] = (i - 1) / 2; + scan_line[(j * 3) + 1] = (i - 1) / 2; + scan_line[(j * 3) + 2] = (i - 1) / 2; + } + for (j = 300; j < 375; j++) { + scan_line[j * 3] = 255 - i; + scan_line[(j * 3) + 1] = 255; + scan_line[(j * 3) + 2] = 255; + } + for (j = 375; j < 450; j++) { + scan_line[j * 3] = 255; + scan_line[(j * 3) + 1] = 255 - i; + scan_line[(j * 3) + 2] = 255; + } + for (j = 450; j < 525; j++) { + scan_line[j * 3] = 255; + scan_line[(j * 3) + 1] = 255; + scan_line[(j * 3) + 2] = 255 - i; + } + TIFFWriteScanline(tif, scan_line, i, 0); + } + for (i = 255; i < 512; i++) { + for (j = 0; j < 75; j++) { + scan_line[j * 3] = i; + scan_line[(j * 3) + 1] = 0; + scan_line[(j * 3) + 2] = 0; + } + for (j = 75; j < 150; j++) { + scan_line[j * 3] = 0; + scan_line[(j * 3) + 1] = i; + scan_line[(j * 3) + 2] = 0; + } + for (j = 150; j < 225; j++) { + scan_line[j * 3] = 0; + scan_line[(j * 3) + 1] = 0; + scan_line[(j * 3) + 2] = i; + } + for (j = 225; j < 300; j++) { + scan_line[j * 3] = (i - 1) / 2; + scan_line[(j * 3) + 1] = (i - 1) / 2; + scan_line[(j * 3) + 2] = (i - 1) / 2; + } + for (j = 300; j < 375; j++) { + scan_line[j * 3] = 0; + scan_line[(j * 3) + 1] = i; + scan_line[(j * 3) + 2] = i; + } + for (j = 375; j < 450; j++) { + scan_line[j * 3] = i; + scan_line[(j * 3) + 1] = 0; + scan_line[(j * 3) + 2] = i; + } + for (j = 450; j < 525; j++) { + scan_line[j * 3] = i; + scan_line[(j * 3) + 1] = i; + scan_line[(j * 3) + 2] = 0; + } + TIFFWriteScanline(tif, scan_line, i, 0); + } + + free(scan_line); + TIFFClose(tif); + exit(0); +} + +void +Usage() +{ + fprintf(stderr, "Usage: %s -gamma gamma tiff-image\n", programName); + exit(0); +} diff --git a/contrib/dbs/xtiff/Imakefile b/contrib/dbs/xtiff/Imakefile new file mode 100755 index 0000000..975833b --- /dev/null +++ b/contrib/dbs/xtiff/Imakefile @@ -0,0 +1,17 @@ +# +# Imakefile -- to generate a Makefile for xtiff, use: +# /usr/local/X11/mit/config/imake \ +# -I/usr/local/X11/mit/config \ +# -DTOPDIR=/usr/local/X11/mit \ +# -DCURDIR=/usr/local/X11/mit \ +# -DDESTDIR=/usr/local/X11/mit +# + + SYS_LIBRARIES = -lm + LOCAL_LIBRARIES = XawClientLibs + DEPLIBS = XawClientDepLibs + TIFF = ../../../libtiff + EXTRA_LIBRARIES = $(TIFF)/libtiff.so -lm + EXTRA_INCLUDES = -I$(TIFF) + +SimpleProgramTarget(xtiff) diff --git a/contrib/dbs/xtiff/patchlevel.h b/contrib/dbs/xtiff/patchlevel.h new file mode 100755 index 0000000..1ef9ed3 --- /dev/null +++ b/contrib/dbs/xtiff/patchlevel.h @@ -0,0 +1 @@ +#define PATCHLEVEL 0 diff --git a/contrib/dbs/xtiff/readme b/contrib/dbs/xtiff/readme new file mode 100755 index 0000000..9e0c3fd --- /dev/null +++ b/contrib/dbs/xtiff/readme @@ -0,0 +1,6 @@ +xtiff 2.0 + +xtiff is a tool for viewing a TIFF file in an X window. It was written to +handle as many different kinds of TIFF files as possible while remaining +simple, portable and efficient. xtiff requires X11 R4, the Athena Widgets +and Sam Leffler's libtiff package (which can be found on ucbvax.berkeley.edu). diff --git a/contrib/dbs/xtiff/xtiff.c b/contrib/dbs/xtiff/xtiff.c new file mode 100755 index 0000000..8fd1f39 --- /dev/null +++ b/contrib/dbs/xtiff/xtiff.c @@ -0,0 +1,1275 @@ +/* + * xtiff - view a TIFF file in an X window + * + * Dan Sears + * Chris Sears + * + * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * + * Revision 1.0 90/05/07 + * Initial release. + * Revision 2.0 90/12/20 + * Converted to use the Athena Widgets and the Xt Intrinsics. + * + * Notes: + * + * According to the TIFF 5.0 Specification, it is possible to have + * both a TIFFTAG_COLORMAP and a TIFFTAG_COLORRESPONSECURVE. This + * doesn't make sense since a TIFFTAG_COLORMAP is 16 bits wide and + * a TIFFTAG_COLORRESPONSECURVE is tfBitsPerSample bits wide for each + * channel. This is probably a bug in the specification. + * In this case, TIFFTAG_COLORRESPONSECURVE is ignored. + * This might make sense if TIFFTAG_COLORMAP was 8 bits wide. + * + * TIFFTAG_COLORMAP is often incorrectly written as ranging from + * 0 to 255 rather than from 0 to 65535. CheckAndCorrectColormap() + * takes care of this. + * + * Only ORIENTATION_TOPLEFT is supported correctly. This is the + * default TIFF and X orientation. Other orientations will be + * displayed incorrectly. + * + * There is no support for or use of 3/3/2 DirectColor visuals. + * TIFFTAG_MINSAMPLEVALUE and TIFFTAG_MAXSAMPLEVALUE are not supported. + * + * Only TIFFTAG_BITSPERSAMPLE values that are 1, 2, 4 or 8 are supported. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define XK_MISCELLANY +#include +#include "xtifficon.h" + +#define TIFF_GAMMA "2.2" /* default gamma from the TIFF 5.0 spec */ +#define ROUND(x) (u_short) ((x) + 0.5) +#define SCALE(x, s) (((x) * 65535L) / (s)) +#define MCHECK(m) if (!m) { fprintf(stderr, "malloc failed\n"); exit(0); } +#define MIN(a, b) (((a) < (b)) ? (a) : (b)) +#define MAX(a, b) (((a) > (b)) ? (a) : (b)) +#define VIEWPORT_WIDTH 700 +#define VIEWPORT_HEIGHT 500 +#define KEY_TRANSLATE 20 + +#ifdef __STDC__ +#define PP(args) args +#else +#define PP(args) () +#endif + +void main PP((int argc, char **argv)); +void OpenTIFFFile PP((void)); +void GetTIFFHeader PP((void)); +void SetNameLabel PP((void)); +void CheckAndCorrectColormap PP((void)); +void SimpleGammaCorrection PP((void)); +void GetVisual PP((void)); +Boolean SearchVisualList PP((int image_depth, + int visual_class, Visual **visual)); +void GetTIFFImage PP((void)); +void CreateXImage PP((void)); +XtCallbackProc SelectProc PP((Widget w, caddr_t unused_1, caddr_t unused_2)); +void QuitProc PP((void)); +void NextProc PP((void)); +void PreviousProc PP((void)); +void PageProc PP((int direction)); +void EventProc PP((Widget widget, caddr_t unused, XEvent *event)); +void ResizeProc PP((void)); +int XTiffErrorHandler PP((Display *display, XErrorEvent *error_event)); +void Usage PP((void)); + +int xtVersion = XtSpecificationRelease; /* xtiff depends on R4 or higher */ + +/* + * Xt data structures + */ +Widget shellWidget, formWidget, listWidget, labelWidget, imageWidget; + +enum { ButtonQuit = 0, ButtonPreviousPage = 1, ButtonNextPage = 2 }; + +String buttonStrings[] = { "Quit", "Previous", "Next" }; + +static XrmOptionDescRec shellOptions[] = { + { "-help", "*help", XrmoptionNoArg, (caddr_t) "True" }, + { "-gamma", "*gamma", XrmoptionSepArg, NULL }, + { "-usePixmap", "*usePixmap", XrmoptionSepArg, NULL }, + { "-viewportWidth", "*viewportWidth", XrmoptionSepArg, NULL }, + { "-viewportHeight", "*viewportHeight", XrmoptionSepArg, NULL }, + { "-translate", "*translate", XrmoptionSepArg, NULL }, + { "-verbose", "*verbose", XrmoptionSepArg, NULL } +}; + +typedef struct { + Boolean help; + float gamma; + Boolean usePixmap; + int viewportWidth; + int viewportHeight; + int translate; + Boolean verbose; +} AppData, *AppDataPtr; + +AppData appData; + +XtResource clientResources[] = { + { + "help", XtCBoolean, XtRBoolean, sizeof(Boolean), + XtOffset(AppDataPtr, help), XtRImmediate, (XtPointer) False + }, { + "gamma", "Gamma", XtRFloat, sizeof(float), + XtOffset(AppDataPtr, gamma), XtRString, (XtPointer) TIFF_GAMMA + }, { + "usePixmap", "UsePixmap", XtRBoolean, sizeof(Boolean), + XtOffset(AppDataPtr, usePixmap), XtRImmediate, (XtPointer) True + }, { + "viewportWidth", "ViewportWidth", XtRInt, sizeof(int), + XtOffset(AppDataPtr, viewportWidth), XtRImmediate, + (XtPointer) VIEWPORT_WIDTH + }, { + "viewportHeight", "ViewportHeight", XtRInt, sizeof(int), + XtOffset(AppDataPtr, viewportHeight), XtRImmediate, + (XtPointer) VIEWPORT_HEIGHT + }, { + "translate", "Translate", XtRInt, sizeof(int), + XtOffset(AppDataPtr, translate), XtRImmediate, (XtPointer) KEY_TRANSLATE + }, { + "verbose", "Verbose", XtRBoolean, sizeof(Boolean), + XtOffset(AppDataPtr, verbose), XtRImmediate, (XtPointer) True + } +}; + +Arg formArgs[] = { + { XtNresizable, True } +}; + +Arg listArgs[] = { + { XtNresizable, False }, + { XtNborderWidth, 0 }, + { XtNdefaultColumns, 3 }, + { XtNforceColumns, True }, + { XtNlist, (int) buttonStrings }, + { XtNnumberStrings, XtNumber(buttonStrings) }, + { XtNtop, XtChainTop }, + { XtNleft, XtChainLeft }, + { XtNbottom, XtChainTop }, + { XtNright, XtChainLeft } +}; + +Arg labelArgs[] = { + { XtNresizable, False }, + { XtNwidth, 200 }, + { XtNborderWidth, 0 }, + { XtNjustify, XtJustifyLeft }, + { XtNtop, XtChainTop }, + { XtNleft, XtChainLeft }, + { XtNbottom, XtChainTop }, + { XtNright, XtChainLeft } +}; + +Arg imageArgs[] = { + { XtNresizable, True }, + { XtNborderWidth, 0 }, + { XtNtop, XtChainTop }, + { XtNleft, XtChainLeft }, + { XtNbottom, XtChainTop }, + { XtNright, XtChainLeft } +}; + +XtActionsRec actionsTable[] = { + { "quit", QuitProc }, + { "next", NextProc }, + { "previous", PreviousProc }, + { "notifyresize", ResizeProc } +}; + +char translationsTable[] = "q: quit() \n \ + Q: quit() \n \ + WM_PROTOCOLS: quit()\n \ + p: previous() \n \ + P: previous() \n \ + n: next() \n \ + N: next() \n \ + : notifyresize()"; + +/* + * X data structures + */ +Colormap xColormap; +Display * xDisplay; +Pixmap xImagePixmap; +Visual * xVisual; +XImage * xImage; +GC xWinGc; +int xImageDepth, xScreen, xRedMask, xGreenMask, xBlueMask, + xOffset = 0, yOffset = 0, grabX = -1, grabY = -1; +u_char basePixel = 0; + +/* + * TIFF data structures + */ +TIFF * tfFile = NULL; +u_long tfImageWidth, tfImageHeight; +u_short tfBitsPerSample, tfSamplesPerPixel, tfPlanarConfiguration, + tfPhotometricInterpretation, tfGrayResponseUnit, + tfImageDepth, tfBytesPerRow; +int tfDirectory = 0, tfMultiPage = False; +double tfUnitMap, tfGrayResponseUnitMap[] = { + -1, -10, -100, -1000, -10000, -100000 + }; + +/* + * display data structures + */ +double *dRed, *dGreen, *dBlue; + +/* + * shared data structures + */ +u_short * redMap = NULL, *greenMap = NULL, *blueMap = NULL, + *grayMap = NULL, colormapSize; +u_char * imageMemory; +char * fileName; + +void +main(argc, argv) + int argc; + char ** argv; +{ + XSetWindowAttributes window_attributes; + Widget widget_list[3]; + Arg args[5]; + + setbuf(stdout, NULL); setbuf(stderr, NULL); + + shellWidget = XtInitialize(argv[0], "XTiff", shellOptions, + XtNumber(shellOptions), &argc, argv); + + XSetErrorHandler(XTiffErrorHandler); + + XtGetApplicationResources(shellWidget, &appData, + (XtResourceList) clientResources, (Cardinal) XtNumber(clientResources), + (ArgList) NULL, (Cardinal) 0); + + if ((argc <= 1) || (argc > 2) || appData.help) + Usage(); + + if (appData.verbose == False) { + TIFFSetErrorHandler(0); + TIFFSetWarningHandler(0); + } + + fileName = argv[1]; + + xDisplay = XtDisplay(shellWidget); + xScreen = DefaultScreen(xDisplay); + + OpenTIFFFile(); + GetTIFFHeader(); + SimpleGammaCorrection(); + GetVisual(); + GetTIFFImage(); + + /* + * Send visual, colormap, depth and iconPixmap to shellWidget. + * Sending the visual to the shell is only possible with the advent of R4. + */ + XtSetArg(args[0], XtNvisual, xVisual); + XtSetArg(args[1], XtNcolormap, xColormap); + XtSetArg(args[2], XtNdepth, + xImageDepth == 1 ? DefaultDepth(xDisplay, xScreen) : xImageDepth); + XtSetArg(args[3], XtNiconPixmap, + XCreateBitmapFromData(xDisplay, RootWindow(xDisplay, xScreen), + xtifficon_bits, xtifficon_width, xtifficon_height)); + XtSetArg(args[4], XtNallowShellResize, True); + XtSetValues(shellWidget, args, 5); + + /* + * widget instance hierarchy + */ + formWidget = XtCreateManagedWidget("form", formWidgetClass, + shellWidget, formArgs, XtNumber(formArgs)); + + widget_list[0] = listWidget = XtCreateWidget("list", + listWidgetClass, formWidget, listArgs, XtNumber(listArgs)); + + widget_list[1] = labelWidget = XtCreateWidget("label", + labelWidgetClass, formWidget, labelArgs, XtNumber(labelArgs)); + + widget_list[2] = imageWidget = XtCreateWidget("image", + widgetClass, formWidget, imageArgs, XtNumber(imageArgs)); + + XtManageChildren(widget_list, XtNumber(widget_list)); + + /* + * initial widget sizes - for small images let xtiff size itself + */ + if (tfImageWidth >= appData.viewportWidth) { + XtSetArg(args[0], XtNwidth, appData.viewportWidth); + XtSetValues(shellWidget, args, 1); + } + if (tfImageHeight >= appData.viewportHeight) { + XtSetArg(args[0], XtNheight, appData.viewportHeight); + XtSetValues(shellWidget, args, 1); + } + + XtSetArg(args[0], XtNwidth, tfImageWidth); + XtSetArg(args[1], XtNheight, tfImageHeight); + XtSetValues(imageWidget, args, 2); + + /* + * formWidget uses these constraints but they are stored in the children. + */ + XtSetArg(args[0], XtNfromVert, listWidget); + XtSetValues(imageWidget, args, 1); + XtSetArg(args[0], XtNfromHoriz, listWidget); + XtSetValues(labelWidget, args, 1); + + SetNameLabel(); + + XtAddCallback(listWidget, XtNcallback, (XtCallbackProc) SelectProc, + (XtPointer) NULL); + + XtAddActions(actionsTable, XtNumber(actionsTable)); + XtSetArg(args[0], XtNtranslations, + XtParseTranslationTable(translationsTable)); + XtSetValues(formWidget, &args[0], 1); + XtSetValues(imageWidget, &args[0], 1); + + /* + * This is intended to be a little faster than going through + * the translation manager. + */ + XtAddEventHandler(imageWidget, ExposureMask | ButtonPressMask + | ButtonReleaseMask | Button1MotionMask | KeyPressMask, + False, EventProc, NULL); + + XtRealizeWidget(shellWidget); + + window_attributes.cursor = XCreateFontCursor(xDisplay, XC_fleur); + XChangeWindowAttributes(xDisplay, XtWindow(imageWidget), + CWCursor, &window_attributes); + + CreateXImage(); + + XtMainLoop(); +} + +void +OpenTIFFFile() +{ + if (tfFile != NULL) + TIFFClose(tfFile); + + if ((tfFile = TIFFOpen(fileName, "r")) == NULL) { + fprintf(appData.verbose ? stderr : stdout, + "xtiff: can't open %s as a TIFF file\n", fileName); + exit(0); + } + + tfMultiPage = (TIFFLastDirectory(tfFile) ? False : True); +} + +void +GetTIFFHeader() +{ + register int i; + + if (!TIFFSetDirectory(tfFile, tfDirectory)) { + fprintf(stderr, "xtiff: can't seek to directory %d in %s\n", + tfDirectory, fileName); + exit(0); + } + + TIFFGetField(tfFile, TIFFTAG_IMAGEWIDTH, &tfImageWidth); + TIFFGetField(tfFile, TIFFTAG_IMAGELENGTH, &tfImageHeight); + + /* + * If the following tags aren't present then use the TIFF defaults. + */ + TIFFGetFieldDefaulted(tfFile, TIFFTAG_BITSPERSAMPLE, &tfBitsPerSample); + TIFFGetFieldDefaulted(tfFile, TIFFTAG_SAMPLESPERPIXEL, &tfSamplesPerPixel); + TIFFGetFieldDefaulted(tfFile, TIFFTAG_PLANARCONFIG, &tfPlanarConfiguration); + TIFFGetFieldDefaulted(tfFile, TIFFTAG_GRAYRESPONSEUNIT, &tfGrayResponseUnit); + + tfUnitMap = tfGrayResponseUnitMap[tfGrayResponseUnit]; + colormapSize = 1 << tfBitsPerSample; + tfImageDepth = tfBitsPerSample * tfSamplesPerPixel; + + dRed = (double *) malloc(colormapSize * sizeof(double)); + dGreen = (double *) malloc(colormapSize * sizeof(double)); + dBlue = (double *) malloc(colormapSize * sizeof(double)); + MCHECK(dRed); MCHECK(dGreen); MCHECK(dBlue); + + /* + * If TIFFTAG_PHOTOMETRIC is not present then assign a reasonable default. + * The TIFF 5.0 specification doesn't give a default. + */ + if (!TIFFGetField(tfFile, TIFFTAG_PHOTOMETRIC, + &tfPhotometricInterpretation)) { + if (tfSamplesPerPixel != 1) + tfPhotometricInterpretation = PHOTOMETRIC_RGB; + else if (tfBitsPerSample == 1) + tfPhotometricInterpretation = PHOTOMETRIC_MINISBLACK; + else if (TIFFGetField(tfFile, TIFFTAG_COLORMAP, + &redMap, &greenMap, &blueMap)) { + tfPhotometricInterpretation = PHOTOMETRIC_PALETTE; + redMap = greenMap = blueMap = NULL; + } else + tfPhotometricInterpretation = PHOTOMETRIC_MINISBLACK; + } + + /* + * Given TIFFTAG_PHOTOMETRIC extract or create the response curves. + */ + switch (tfPhotometricInterpretation) { + case PHOTOMETRIC_RGB: + redMap = (u_short *) malloc(colormapSize * sizeof(u_short)); + greenMap = (u_short *) malloc(colormapSize * sizeof(u_short)); + blueMap = (u_short *) malloc(colormapSize * sizeof(u_short)); + MCHECK(redMap); MCHECK(greenMap); MCHECK(blueMap); + for (i = 0; i < colormapSize; i++) + dRed[i] = dGreen[i] = dBlue[i] + = (double) SCALE(i, colormapSize - 1); + break; + case PHOTOMETRIC_PALETTE: + if (!TIFFGetField(tfFile, TIFFTAG_COLORMAP, + &redMap, &greenMap, &blueMap)) { + redMap = (u_short *) malloc(colormapSize * sizeof(u_short)); + greenMap = (u_short *) malloc(colormapSize * sizeof(u_short)); + blueMap = (u_short *) malloc(colormapSize * sizeof(u_short)); + MCHECK(redMap); MCHECK(greenMap); MCHECK(blueMap); + for (i = 0; i < colormapSize; i++) + dRed[i] = dGreen[i] = dBlue[i] + = (double) SCALE(i, colormapSize - 1); + } else { + CheckAndCorrectColormap(); + for (i = 0; i < colormapSize; i++) { + dRed[i] = (double) redMap[i]; + dGreen[i] = (double) greenMap[i]; + dBlue[i] = (double) blueMap[i]; + } + } + break; + case PHOTOMETRIC_MINISWHITE: + redMap = (u_short *) malloc(colormapSize * sizeof(u_short)); + greenMap = (u_short *) malloc(colormapSize * sizeof(u_short)); + blueMap = (u_short *) malloc(colormapSize * sizeof(u_short)); + MCHECK(redMap); MCHECK(greenMap); MCHECK(blueMap); + for (i = 0; i < colormapSize; i++) + dRed[i] = dGreen[i] = dBlue[i] = (double) + SCALE(colormapSize-1-i, colormapSize-1); + break; + case PHOTOMETRIC_MINISBLACK: + redMap = (u_short *) malloc(colormapSize * sizeof(u_short)); + greenMap = (u_short *) malloc(colormapSize * sizeof(u_short)); + blueMap = (u_short *) malloc(colormapSize * sizeof(u_short)); + MCHECK(redMap); MCHECK(greenMap); MCHECK(blueMap); + for (i = 0; i < colormapSize; i++) + dRed[i] = dGreen[i] = dBlue[i] = (double) SCALE(i, colormapSize-1); + break; + default: + fprintf(stderr, + "xtiff: can't display photometric interpretation type %d\n", + tfPhotometricInterpretation); + exit(0); + } +} + +void +SetNameLabel() +{ + char buffer[BUFSIZ]; + Arg args[1]; + + if (tfMultiPage) + sprintf(buffer, "%s - page %d", fileName, tfDirectory); + else + strcpy(buffer, fileName); + XtSetArg(args[0], XtNlabel, buffer); + XtSetValues(labelWidget, args, 1); +} + +/* + * Many programs get TIFF colormaps wrong. They use 8-bit colormaps instead of + * 16-bit colormaps. This function is a heuristic to detect and correct this. + */ +void +CheckAndCorrectColormap() +{ + register int i; + + for (i = 0; i < colormapSize; i++) + if ((redMap[i] > 255) || (greenMap[i] > 255) || (blueMap[i] > 255)) + return; + + for (i = 0; i < colormapSize; i++) { + redMap[i] = SCALE(redMap[i], 255); + greenMap[i] = SCALE(greenMap[i], 255); + blueMap[i] = SCALE(blueMap[i], 255); + } + TIFFWarning(fileName, "Assuming 8-bit colormap"); +} + +void +SimpleGammaCorrection() +{ + register int i; + register double i_gamma = 1.0 / appData.gamma; + + for (i = 0; i < colormapSize; i++) { + if (((tfPhotometricInterpretation == PHOTOMETRIC_MINISWHITE) + && (i == colormapSize - 1)) + || ((tfPhotometricInterpretation == PHOTOMETRIC_MINISBLACK) + && (i == 0))) + redMap[i] = greenMap[i] = blueMap[i] = 0; + else { + redMap[i] = ROUND((pow(dRed[i] / 65535.0, i_gamma) * 65535.0)); + greenMap[i] = ROUND((pow(dGreen[i] / 65535.0, i_gamma) * 65535.0)); + blueMap[i] = ROUND((pow(dBlue[i] / 65535.0, i_gamma) * 65535.0)); + } + } + + free(dRed); free(dGreen); free(dBlue); +} + +static char* classNames[] = { + "StaticGray", + "GrayScale", + "StaticColor", + "PseudoColor", + "TrueColor", + "DirectColor" +}; + +/* + * Current limitation: the visual is set initially by the first file. + * It cannot be changed. + */ +void +GetVisual() +{ + register XColor *colors = NULL; + register u_long *pixels = NULL; + register int i; + + switch (tfImageDepth) { + /* + * X really wants a 32-bit image with the fourth channel unused, + * but the visual structure thinks it's 24-bit. bitmap_unit is 32. + */ + case 32: + case 24: + if (SearchVisualList(24, DirectColor, &xVisual) == False) { + fprintf(stderr, "xtiff: 24-bit DirectColor visual not available\n"); + exit(0); + } + + colors = (XColor *) malloc(3 * colormapSize * sizeof(XColor)); + MCHECK(colors); + + for (i = 0; i < colormapSize; i++) { + colors[i].pixel = (u_long) (i << 16) + (i << 8) + i; + colors[i].red = redMap[i]; + colors[i].green = greenMap[i]; + colors[i].blue = blueMap[i]; + colors[i].flags = DoRed | DoGreen | DoBlue; + } + + xColormap = XCreateColormap(xDisplay, RootWindow(xDisplay, xScreen), + xVisual, AllocAll); + XStoreColors(xDisplay, xColormap, colors, colormapSize); + break; + case 8: + case 4: + case 2: + /* + * We assume that systems with 24-bit visuals also have 8-bit visuals. + * We don't promote from 8-bit PseudoColor to 24/32 bit DirectColor. + */ + switch (tfPhotometricInterpretation) { + case PHOTOMETRIC_MINISWHITE: + case PHOTOMETRIC_MINISBLACK: + if (SearchVisualList((int) tfImageDepth, GrayScale, &xVisual) == True) + break; + case PHOTOMETRIC_PALETTE: + if (SearchVisualList((int) tfImageDepth, PseudoColor, &xVisual) == True) + break; + default: + fprintf(stderr, "xtiff: Unsupported TIFF/X configuration\n"); + exit(0); + } + + colors = (XColor *) malloc(colormapSize * sizeof(XColor)); + MCHECK(colors); + + for (i = 0; i < colormapSize; i++) { + colors[i].pixel = (u_long) i; + colors[i].red = redMap[i]; + colors[i].green = greenMap[i]; + colors[i].blue = blueMap[i]; + colors[i].flags = DoRed | DoGreen | DoBlue; + } + + /* + * xtiff's colormap allocation is private. It does not attempt + * to detect whether any existing colormap entries are suitable + * for its use. This will cause colormap flashing. Furthermore, + * background and foreground are taken from the environment. + * For example, the foreground color may be red when the visual + * is GrayScale. If the colormap is completely populated, + * Xt will not be able to allocate fg and bg. + */ + if (tfImageDepth == 8) + xColormap = XCreateColormap(xDisplay, RootWindow(xDisplay, xScreen), + xVisual, AllocAll); + else { + xColormap = XCreateColormap(xDisplay, RootWindow(xDisplay, xScreen), + xVisual, AllocNone); + pixels = (u_long *) malloc(colormapSize * sizeof(u_long)); + MCHECK(pixels); + (void) XAllocColorCells(xDisplay, xColormap, True, + NULL, 0, pixels, colormapSize); + basePixel = (u_char) pixels[0]; + free(pixels); + } + XStoreColors(xDisplay, xColormap, colors, colormapSize); + break; + case 1: + xImageDepth = 1; + xVisual = DefaultVisual(xDisplay, xScreen); + xColormap = DefaultColormap(xDisplay, xScreen); + break; + default: + fprintf(stderr, "xtiff: unsupported image depth %d\n", tfImageDepth); + exit(0); + } + + if (appData.verbose == True) + fprintf(stderr, "%s: Using %d-bit %s visual.\n", + fileName, xImageDepth, classNames[xVisual->class]); + + if (colors != NULL) + free(colors); + if (grayMap != NULL) + free(grayMap); + if (redMap != NULL) + free(redMap); + if (greenMap != NULL) + free(greenMap); + if (blueMap != NULL) + free(blueMap); + + colors = NULL; grayMap = redMap = greenMap = blueMap = NULL; +} + +/* + * Search for an appropriate visual. Promote where necessary. + * Check to make sure that ENOUGH colormap entries are writeable. + * basePixel was determined when XAllocColorCells() contiguously + * allocated enough entries. basePixel is used below in GetTIFFImage. + */ +Boolean +SearchVisualList(image_depth, visual_class, visual) + int image_depth, visual_class; + Visual **visual; +{ + XVisualInfo template_visual, *visual_list, *vl; + int i, n_visuals; + + template_visual.screen = xScreen; + vl = visual_list = XGetVisualInfo(xDisplay, VisualScreenMask, + &template_visual, &n_visuals); + + if (n_visuals == 0) { + fprintf(stderr, "xtiff: visual list not available\n"); + exit(0); + } + + for (i = 0; i < n_visuals; vl++, i++) { + if ((vl->class == visual_class) && (vl->depth >= image_depth) + && (vl->visual->map_entries >= (1 << vl->depth))) { + *visual = vl->visual; + xImageDepth = vl->depth; + xRedMask = vl->red_mask; + xGreenMask = vl->green_mask; + xBlueMask = vl->blue_mask; + XFree((char *) visual_list); + return True; + } + } + + XFree((char *) visual_list); + return False; +} + +void +GetTIFFImage() +{ + int pixel_map[3], red_shift, green_shift, blue_shift; + register u_char *scan_line, *output_p, *input_p; + register int i, j, s; + + scan_line = (u_char *) malloc(tfBytesPerRow = TIFFScanlineSize(tfFile)); + MCHECK(scan_line); + + if ((tfImageDepth == 32) || (tfImageDepth == 24)) { + output_p = imageMemory = (u_char *) + malloc(tfImageWidth * tfImageHeight * 4); + MCHECK(imageMemory); + + /* + * Handle different color masks for different frame buffers. + */ + if (ImageByteOrder(xDisplay) == LSBFirst) { /* DECstation 5000 */ + red_shift = pixel_map[0] = xRedMask == 0xFF000000 ? 3 + : (xRedMask == 0xFF0000 ? 2 : (xRedMask == 0xFF00 ? 1 : 0)); + green_shift = pixel_map[1] = xGreenMask == 0xFF000000 ? 3 + : (xGreenMask == 0xFF0000 ? 2 : (xGreenMask == 0xFF00 ? 1 : 0)); + blue_shift = pixel_map[2] = xBlueMask == 0xFF000000 ? 3 + : (xBlueMask == 0xFF0000 ? 2 : (xBlueMask == 0xFF00 ? 1 : 0)); + } else { /* Ardent */ + red_shift = pixel_map[0] = xRedMask == 0xFF000000 ? 0 + : (xRedMask == 0xFF0000 ? 1 : (xRedMask == 0xFF00 ? 2 : 3)); + green_shift = pixel_map[0] = xGreenMask == 0xFF000000 ? 0 + : (xGreenMask == 0xFF0000 ? 1 : (xGreenMask == 0xFF00 ? 2 : 3)); + blue_shift = pixel_map[0] = xBlueMask == 0xFF000000 ? 0 + : (xBlueMask == 0xFF0000 ? 1 : (xBlueMask == 0xFF00 ? 2 : 3)); + } + + if (tfPlanarConfiguration == PLANARCONFIG_CONTIG) { + for (i = 0; i < tfImageHeight; i++) { + if (TIFFReadScanline(tfFile, scan_line, i, 0) < 0) + break; + for (input_p = scan_line, j = 0; j < tfImageWidth; j++) { + *(output_p + red_shift) = *input_p++; + *(output_p + green_shift) = *input_p++; + *(output_p + blue_shift) = *input_p++; + output_p += 4; + if (tfSamplesPerPixel == 4) /* skip the fourth channel */ + input_p++; + } + } + } else { + for (s = 0; s < tfSamplesPerPixel; s++) { + if (s == 3) /* skip the fourth channel */ + continue; + for (i = 0; i < tfImageHeight; i++) { + if (TIFFReadScanline(tfFile, scan_line, i, s) < 0) + break; + input_p = scan_line; + output_p = imageMemory + (i*tfImageWidth*4) + pixel_map[s]; + for (j = 0; j < tfImageWidth; j++, output_p += 4) + *output_p = *input_p++; + } + } + } + } else { + if (xImageDepth == tfImageDepth) { + output_p = imageMemory = (u_char *) + malloc(tfBytesPerRow * tfImageHeight); + MCHECK(imageMemory); + + for (i = 0; i < tfImageHeight; i++, output_p += tfBytesPerRow) + if (TIFFReadScanline(tfFile, output_p, i, 0) < 0) + break; + } else if ((xImageDepth == 8) && (tfImageDepth == 4)) { + output_p = imageMemory = (u_char *) + malloc(tfBytesPerRow * 2 * tfImageHeight + 2); + MCHECK(imageMemory); + + /* + * If a scanline is of odd size the inner loop below will overshoot. + * This is handled very simply by recalculating the start point at + * each scanline and padding imageMemory a little at the end. + */ + for (i = 0; i < tfImageHeight; i++) { + if (TIFFReadScanline(tfFile, scan_line, i, 0) < 0) + break; + output_p = &imageMemory[i * tfImageWidth]; + input_p = scan_line; + for (j = 0; j < tfImageWidth; j += 2, input_p++) { + *output_p++ = (*input_p >> 4) + basePixel; + *output_p++ = (*input_p & 0xf) + basePixel; + } + } + } else if ((xImageDepth == 8) && (tfImageDepth == 2)) { + output_p = imageMemory = (u_char *) + malloc(tfBytesPerRow * 4 * tfImageHeight + 4); + MCHECK(imageMemory); + + for (i = 0; i < tfImageHeight; i++) { + if (TIFFReadScanline(tfFile, scan_line, i, 0) < 0) + break; + output_p = &imageMemory[i * tfImageWidth]; + input_p = scan_line; + for (j = 0; j < tfImageWidth; j += 4, input_p++) { + *output_p++ = (*input_p >> 6) + basePixel; + *output_p++ = ((*input_p >> 4) & 3) + basePixel; + *output_p++ = ((*input_p >> 2) & 3) + basePixel; + *output_p++ = (*input_p & 3) + basePixel; + } + } + } else if ((xImageDepth == 4) && (tfImageDepth == 2)) { + output_p = imageMemory = (u_char *) + malloc(tfBytesPerRow * 2 * tfImageHeight + 2); + MCHECK(imageMemory); + + for (i = 0; i < tfImageHeight; i++) { + if (TIFFReadScanline(tfFile, scan_line, i, 0) < 0) + break; + output_p = &imageMemory[i * tfBytesPerRow * 2]; + input_p = scan_line; + for (j = 0; j < tfImageWidth; j += 4, input_p++) { + *output_p++ = (((*input_p>>6) << 4) + | ((*input_p >> 4) & 3)) + basePixel; + *output_p++ = ((((*input_p>>2) & 3) << 4) + | (*input_p & 3)) + basePixel; + } + } + } else { + fprintf(stderr, + "xtiff: can't handle %d-bit TIFF file on an %d-bit display\n", + tfImageDepth, xImageDepth); + exit(0); + } + } + + free(scan_line); +} + +void +CreateXImage() +{ + XGCValues gc_values; + GC bitmap_gc; + + xOffset = yOffset = 0; + grabX = grabY = -1; + + xImage = XCreateImage(xDisplay, xVisual, xImageDepth, + xImageDepth == 1 ? XYBitmap : ZPixmap, /* offset */ 0, + (char *) imageMemory, tfImageWidth, tfImageHeight, + /* bitmap_pad */ 8, /* bytes_per_line */ 0); + + /* + * libtiff converts LSB data into MSB but doesn't change the FillOrder tag. + */ + if (xImageDepth == 1) + xImage->bitmap_bit_order = MSBFirst; + if (xImageDepth <= 8) + xImage->byte_order = MSBFirst; + + /* + * create an appropriate GC + */ + gc_values.function = GXcopy; + gc_values.plane_mask = AllPlanes; + if (tfPhotometricInterpretation == PHOTOMETRIC_MINISBLACK) { + gc_values.foreground = XWhitePixel(xDisplay, xScreen); + gc_values.background = XBlackPixel(xDisplay, xScreen); + } else { + gc_values.foreground = XBlackPixel(xDisplay, xScreen); + gc_values.background = XWhitePixel(xDisplay, xScreen); + } + xWinGc = XCreateGC(xDisplay, XtWindow(shellWidget), + GCFunction | GCPlaneMask | GCForeground | GCBackground, &gc_values); + + /* + * create the pixmap and load the image + */ + if (appData.usePixmap == True) { + xImagePixmap = XCreatePixmap(xDisplay, RootWindow(xDisplay, xScreen), + xImage->width, xImage->height, xImageDepth); + + /* + * According to the O'Reilly X Protocol Reference Manual, page 53, + * "A pixmap depth of one is always supported and listed, but windows + * of depth one might not be supported." Therefore we create a pixmap + * of depth one and use XCopyPlane(). This is idiomatic. + */ + if (xImageDepth == 1) { /* just pass the bits through */ + gc_values.foreground = 1; /* foreground describes set bits */ + gc_values.background = 0; /* background describes clear bits */ + bitmap_gc = XCreateGC(xDisplay, xImagePixmap, + GCForeground | GCBackground, &gc_values); + XPutImage(xDisplay, xImagePixmap, bitmap_gc, xImage, + 0, 0, 0, 0, xImage->width, xImage->height); + } else + XPutImage(xDisplay, xImagePixmap, xWinGc, xImage, + 0, 0, 0, 0, xImage->width, xImage->height); + XDestroyImage(xImage); + free(imageMemory); + } +} + +XtCallbackProc +SelectProc(w, unused_1, unused_2) + Widget w; + caddr_t unused_1; + caddr_t unused_2; +{ + XawListReturnStruct *list_return; + + list_return = XawListShowCurrent(w); + + switch (list_return->list_index) { + case ButtonQuit: + QuitProc(); + break; + case ButtonPreviousPage: + PreviousProc(); + break; + case ButtonNextPage: + NextProc(); + break; + default: + fprintf(stderr, "error in SelectProc\n"); + exit(0); + } + XawListUnhighlight(w); +} + +void +QuitProc(void) +{ + exit(0); +} + +void +NextProc() +{ + PageProc(ButtonNextPage); +} + +void +PreviousProc() +{ + PageProc(ButtonPreviousPage); +} + +void +PageProc(direction) + int direction; +{ + XEvent fake_event; + Arg args[4]; + + switch (direction) { + case ButtonPreviousPage: + if (tfDirectory > 0) + TIFFSetDirectory(tfFile, --tfDirectory); + else + return; + break; + case ButtonNextPage: + if (TIFFReadDirectory(tfFile) == True) + tfDirectory++; + else + return; + break; + default: + fprintf(stderr, "error in PageProc\n"); + exit(0); + } + + xOffset = yOffset = 0; + grabX = grabY = -1; + + GetTIFFHeader(); + SetNameLabel(); + GetTIFFImage(); + + if (appData.usePixmap == True) + XFreePixmap(xDisplay, xImagePixmap); + else + XDestroyImage(xImage); + + CreateXImage(); + + /* + * Using XtSetValues() to set the widget size causes a resize. + * This resize gets propagated up to the parent shell. + * In order to disable this visually disconcerting effect, + * shell resizing is temporarily disabled. + */ + XtSetArg(args[0], XtNallowShellResize, False); + XtSetValues(shellWidget, args, 1); + + XtSetArg(args[0], XtNwidth, tfImageWidth); + XtSetArg(args[1], XtNheight, tfImageHeight); + XtSetValues(imageWidget, args, 2); + + XtSetArg(args[0], XtNallowShellResize, True); + XtSetValues(shellWidget, args, 1); + + XClearWindow(xDisplay, XtWindow(imageWidget)); + + fake_event.type = Expose; + fake_event.xexpose.x = fake_event.xexpose.y = 0; + fake_event.xexpose.width = tfImageWidth; /* the window will clip */ + fake_event.xexpose.height = tfImageHeight; + EventProc(imageWidget, NULL, &fake_event); +} + +void +EventProc(widget, unused, event) + Widget widget; + caddr_t unused; + XEvent *event; +{ + int ih, iw, ww, wh, sx, sy, w, h, dx, dy; + Dimension w_width, w_height; + XEvent next_event; + Arg args[2]; + + if (event->type == MappingNotify) { + XRefreshKeyboardMapping((XMappingEvent *) event); + return; + } + + if (!XtIsRealized(widget)) + return; + + if ((event->type == ButtonPress) || (event->type == ButtonRelease)) + if (event->xbutton.button != Button1) + return; + + iw = tfImageWidth; /* avoid sign problems */ + ih = tfImageHeight; + + /* + * The grabX and grabY variables record where the user grabbed the image. + * They also record whether the mouse button is down or not. + */ + if (event->type == ButtonPress) { + grabX = event->xbutton.x; + grabY = event->xbutton.y; + return; + } + + /* + * imageWidget is a Core widget and doesn't get resized. + * So we calculate the size of its viewport here. + */ + XtSetArg(args[0], XtNwidth, &w_width); + XtSetArg(args[1], XtNheight, &w_height); + XtGetValues(shellWidget, args, 2); + ww = w_width; + wh = w_height; + XtGetValues(listWidget, args, 2); + wh -= w_height; + + switch (event->type) { + case Expose: + dx = event->xexpose.x; + dy = event->xexpose.y; + sx = dx + xOffset; + sy = dy + yOffset; + w = MIN(event->xexpose.width, iw); + h = MIN(event->xexpose.height, ih); + break; + case KeyPress: + if ((grabX >= 0) || (grabY >= 0)) /* Mouse button is still down */ + return; + switch (XLookupKeysym((XKeyEvent *) event, /* KeySyms index */ 0)) { + case XK_Up: + if (ih < wh) /* Don't scroll if the window fits the image. */ + return; + sy = yOffset + appData.translate; + sy = MIN(ih - wh, sy); + if (sy == yOffset) /* Filter redundant stationary refreshes. */ + return; + yOffset = sy; + sx = xOffset; + dx = dy = 0; + w = ww; h = wh; + break; + case XK_Down: + if (ih < wh) + return; + sy = yOffset - appData.translate; + sy = MAX(sy, 0); + if (sy == yOffset) + return; + yOffset = sy; + sx = xOffset; + dx = dy = 0; + w = ww; h = wh; + break; + case XK_Left: + if (iw < ww) + return; + sx = xOffset + appData.translate; + sx = MIN(iw - ww, sx); + if (sx == xOffset) + return; + xOffset = sx; + sy = yOffset; + dx = dy = 0; + w = ww; h = wh; + break; + case XK_Right: + if (iw < ww) + return; + sx = xOffset - appData.translate; + sx = MAX(sx, 0); + if (sx == xOffset) + return; + xOffset = sx; + sy = yOffset; + dx = dy = 0; + w = ww; h = wh; + break; + default: + return; + } + break; + case MotionNotify: + /* + * MotionEvent compression. Ignore multiple motion events. + * Ignore motion events if the mouse button is up. + */ + if (XPending(xDisplay)) /* Xlib doesn't flush the output buffer */ + if (XtPeekEvent(&next_event)) + if (next_event.type == MotionNotify) + return; + if ((grabX < 0) || (grabY < 0)) + return; + sx = xOffset + grabX - (int) event->xmotion.x; + if (sx >= (iw - ww)) /* clamp x motion but allow y motion */ + sx = iw - ww; + sx = MAX(sx, 0); + sy = yOffset + grabY - (int) event->xmotion.y; + if (sy >= (ih - wh)) /* clamp y motion but allow x motion */ + sy = ih - wh; + sy = MAX(sy, 0); + if ((sx == xOffset) && (sy == yOffset)) + return; + dx = dy = 0; + w = ww; h = wh; + break; + case ButtonRelease: + xOffset = xOffset + grabX - (int) event->xbutton.x; + xOffset = MIN(iw - ww, xOffset); + xOffset = MAX(xOffset, 0); + yOffset = yOffset + grabY - (int) event->xbutton.y; + yOffset = MIN(ih - wh, yOffset); + yOffset = MAX(yOffset, 0); + grabX = grabY = -1; + default: + return; + } + + if (appData.usePixmap == True) { + if (xImageDepth == 1) + XCopyPlane(xDisplay, xImagePixmap, XtWindow(widget), + xWinGc, sx, sy, w, h, dx, dy, 1); + else + XCopyArea(xDisplay, xImagePixmap, XtWindow(widget), + xWinGc, sx, sy, w, h, dx, dy); + } else + XPutImage(xDisplay, XtWindow(widget), xWinGc, xImage, + sx, sy, dx, dy, w, h); +} + +void +ResizeProc() +{ + Dimension w_width, w_height; + int xo, yo, ww, wh; + XEvent fake_event; + Arg args[2]; + + if ((xOffset == 0) && (yOffset == 0)) + return; + + XtSetArg(args[0], XtNwidth, &w_width); + XtSetArg(args[1], XtNheight, &w_height); + XtGetValues(shellWidget, args, 2); + ww = w_width; + wh = w_height; + XtGetValues(listWidget, args, 2); + wh -= w_height; + + xo = xOffset; yo = yOffset; + + if ((xOffset + ww) >= tfImageWidth) + xOffset = MAX((int) tfImageWidth - ww, 0); + if ((yOffset + wh) >= tfImageHeight) + yOffset = MAX((int) tfImageHeight - wh, 0); + + /* + * Send an ExposeEvent if the origin changed. + * We have to do this because of the use and semantics of bit gravity. + */ + if ((xo != xOffset) || (yo != yOffset)) { + fake_event.type = Expose; + fake_event.xexpose.x = fake_event.xexpose.y = 0; + fake_event.xexpose.width = tfImageWidth; + fake_event.xexpose.height = tfImageHeight; + EventProc(imageWidget, NULL, &fake_event); + } +} + +int +XTiffErrorHandler(display, error_event) + Display *display; + XErrorEvent *error_event; +{ + char message[80]; + + /* + * Some X servers limit the size of pixmaps. + */ + if ((error_event->error_code == BadAlloc) + && (error_event->request_code == X_CreatePixmap)) + fprintf(stderr, "xtiff: requested pixmap too big for display\n"); + else { + XGetErrorText(display, error_event->error_code, message, 80); + fprintf(stderr, "xtiff: error code %s\n", message); + } + + exit(0); +} + +void +Usage() +{ + fprintf(stderr, "Usage xtiff: [options] tiff-file\n"); + fprintf(stderr, "\tstandard Xt options\n"); + fprintf(stderr, "\t[-help]\n"); + fprintf(stderr, "\t[-gamma gamma]\n"); + fprintf(stderr, "\t[-usePixmap (True | False)]\n"); + fprintf(stderr, "\t[-viewportWidth pixels]\n"); + fprintf(stderr, "\t[-viewportHeight pixels]\n"); + fprintf(stderr, "\t[-translate pixels]\n"); + fprintf(stderr, "\t[-verbose (True | False)]\n"); + exit(0); +} diff --git a/contrib/dbs/xtiff/xtifficon.h b/contrib/dbs/xtiff/xtifficon.h new file mode 100755 index 0000000..9a42188 --- /dev/null +++ b/contrib/dbs/xtiff/xtifficon.h @@ -0,0 +1,14 @@ +#define xtifficon_width 32 +#define xtifficon_height 32 +static char xtifficon_bits[] = { + 0xff, 0x00, 0x00, 0xc0, 0xfe, 0x01, 0x7e, 0xc0, 0xfc, 0x03, 0x7e, 0x60, + 0xf8, 0x07, 0x06, 0x30, 0xf8, 0x07, 0x1e, 0x18, 0xf0, 0x0f, 0x1e, 0x0c, + 0xe0, 0x1f, 0x06, 0x06, 0xc0, 0x3f, 0x06, 0x06, 0xc0, 0x3f, 0x06, 0x03, + 0x80, 0x7f, 0x80, 0x01, 0x00, 0xff, 0xc0, 0x00, 0x00, 0xfe, 0x61, 0x00, + 0x00, 0xfe, 0x31, 0x7e, 0x7e, 0xfc, 0x33, 0x7e, 0x7e, 0xf8, 0x1b, 0x06, + 0x18, 0xf0, 0x0d, 0x1e, 0x18, 0xf0, 0x0e, 0x1e, 0x18, 0x60, 0x1f, 0x06, + 0x18, 0xb0, 0x3f, 0x06, 0x18, 0x98, 0x7f, 0x06, 0x18, 0x98, 0x7f, 0x00, + 0x00, 0x0c, 0xff, 0x00, 0x00, 0x06, 0xfe, 0x01, 0x00, 0x63, 0xfc, 0x03, + 0x80, 0x61, 0xfc, 0x03, 0xc0, 0x60, 0xf8, 0x07, 0xc0, 0x60, 0xf0, 0x0f, + 0x60, 0x60, 0xe0, 0x1f, 0x30, 0x60, 0xe0, 0x1f, 0x18, 0x60, 0xc0, 0x3f, + 0x0c, 0x60, 0x80, 0x7f, 0x06, 0x00, 0x00, 0xff}; diff --git a/contrib/dosdjgpp/Makefile.lib b/contrib/dosdjgpp/Makefile.lib new file mode 100755 index 0000000..be055ab --- /dev/null +++ b/contrib/dosdjgpp/Makefile.lib @@ -0,0 +1,249 @@ +# $Header: /home/cvsroot/libtiff/contrib/dosdjgpp/Makefile.lib,v 1.1.1.1 2000/06/24 19:10:17 tshead Exp $ +# +# manually derived from Makefile.in for DJGPP v2.x (GNU C for DOS/386). +# +# Tag Image File Format Library +# +# Copyright (c) 1988-1996 Sam Leffler +# Copyright (c) 1991-1996 Silicon Graphics, Inc. +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Sam Leffler and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# + +SRCDIR = . + +NULL = +CC = gcc +AR = ar +AROPTS = rc +RANLIB = ranlib + +# +# If JPEG support is to be included and the Independent JPEG +# Software distribution is not installed then DIR_JPEG must +# refer to the directory where the include files reside. +# +# Similarly, if the libgz distribution is not installed, then +# DIR_LIBGZ must refer to the directory where the include files +# are located. Note that recent versions +# +IPATH = -I. -I${SRCDIR} +# @COPT_LIBINC@ +# +# To enable JPEG support include -DJPEG_SUPPORT here. +# To enable Deflate support add a -DZIP_SUPPORT here. +# Note that where the configure script is used these defines +# are automatically setup when JPEG/ZIP is set to "yes". +# +# Otherwise, consult tiffconf.h for information on controlling +# the configuration of optional library support. +# +CONF_LIBRARY=#@CONF_JPEG@ @CONF_ZIP@ +COPTS = +OPTIMIZER=-O +CFLAGS = ${COPTS} ${OPTIMIZER} ${IPATH} ${CONF_LIBRARY} +# +SRCS = \ + tif_aux.c \ + tif_close.c \ + tif_codec.c \ + tif_compress.c \ + tif_dir.c \ + tif_dirinfo.c \ + tif_dirread.c \ + tif_dirwrite.c \ + tif_dumpmode.c \ + tif_error.c \ + tif_fax3.c \ + tif_fx3s.c \ + tif_getimage.c \ + tif_jpeg.c \ + tif_flush.c \ + tif_lzw.c \ + tif_next.c \ + tif_open.c \ + tif_packbits.c \ + tif_predict.c \ + tif_print.c \ + tif_read.c \ + tif_swab.c \ + tif_strip.c \ + tif_thunder.c \ + tif_tile.c \ + tif_msdos.c \ + tif_version.c \ + tif_warning.c \ + tif_write.c \ + tif_zip.c \ + tif_luv.c \ + ${NULL} +OBJS = \ + tif_aux.o \ + tif_close.o \ + tif_codec.o \ + tif_compress.o \ + tif_dir.o \ + tif_dirinfo.o \ + tif_dirread.o \ + tif_dirwrite.o \ + tif_dumpmode.o \ + tif_error.o \ + tif_fax3.o \ + tif_fx3s.o \ + tif_getimage.o \ + tif_jpeg.o \ + tif_flush.o \ + tif_lzw.o \ + tif_next.o \ + tif_open.o \ + tif_packbits.o \ + tif_predict.o \ + tif_print.o \ + tif_read.o \ + tif_swab.o \ + tif_strip.o \ + tif_thunder.o \ + tif_tile.o \ + tif_msdos.o \ + tif_version.o \ + tif_warning.o \ + tif_write.o \ + tif_zip.o \ + tif_luv.o \ + ${NULL} +TARGETS = libtiff.a + +all: ${TARGETS} + +libtiff.a: ${OBJS} + ${AR} ${AROPTS} libtiff.a $? + ${RANLIB} libtiff.a + +${OBJS}: ${SRCDIR}/tiffio.h ${SRCDIR}/tiff.h ${SRCDIR}/tif_dir.h +${OBJS}: ${SRCDIR}/tiffcomp.h ${SRCDIR}/tiffiop.h ${SRCDIR}/tiffconf.h + +ALPHA = ../dist/tiff.alpha +VERSION = ../VERSION + +version.h: ${VERSION} ${ALPHA} ${SRCDIR}/mkversion.c + ${CC} -o mkversion ${CFLAGS} ${SRCDIR}/mkversion.c + del version.h + mkversion -v ${VERSION} -a ${ALPHA} version.h + +tif_version.o: version.h + +# +# The finite state machine tables used by the G3/G4 decoders +# are generated by the mkg3states program. On systems without +# make these rules have to be manually carried out. +# +# The file is called tif_fax3sm.c is the normal (unix) Makefile, but this +# may cause problems when compiling without support for LFN, then the file +# tif_fax3.o is considered the same name as tif_fax3sm.o, since only 8 chars +# are significant. +# +tif_fx3s.c: ${SRCDIR}/mkg3states.c ${SRCDIR}/tif_fax3.h + ${CC} -o mkg3states ${CFLAGS} ${SRCDIR}/mkg3states.c + del tif_fx3s.c + mkg3states -c const tif_fx3s.c + +tif_fx3s.o: tif_fx3s.c + @echo If the following gcc command fails due to lack of virtual memory, try + @echo compiling it in a non-DPMI environment with the cwsdpmi swapfile on a + @echo drive that has plenty of space. + ${CC} -c ${CFLAGS} tif_fx3s.c + +tif_aux.o: ${SRCDIR}/tif_aux.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_aux.c +tif_close.o: ${SRCDIR}/tif_close.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_close.c +tif_codec.o: ${SRCDIR}/tif_codec.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_codec.c +tif_compress.o: ${SRCDIR}/tif_compress.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_compress.c +tif_dir.o: ${SRCDIR}/tif_dir.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_dir.c +tif_dirinfo.o: ${SRCDIR}/tif_dirinfo.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_dirinfo.c +tif_dirread.o: ${SRCDIR}/tif_dirread.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_dirread.c +tif_dirwrite.o: ${SRCDIR}/tif_dirwrite.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_dirwrite.c +tif_dumpmode.o: ${SRCDIR}/tif_dumpmode.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_dumpmode.c +tif_error.o: ${SRCDIR}/tif_error.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_error.c +tif_fax3.o: ${SRCDIR}/tif_fax3.c ${SRCDIR}/t4.h ${SRCDIR}/tif_fax3.h + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_fax3.c +tif_getimage.o: ${SRCDIR}/tif_getimage.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_getimage.c +tif_jpeg.o: ${SRCDIR}/tif_jpeg.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_jpeg.c +tif_flush.o: ${SRCDIR}/tif_flush.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_flush.c +tif_lzw.o: ${SRCDIR}/tif_lzw.c ${SRCDIR}/tif_predict.h + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_lzw.c +tif_next.o: ${SRCDIR}/tif_next.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_next.c +tif_open.o: ${SRCDIR}/tif_open.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_open.c +tif_packbits.o: ${SRCDIR}/tif_packbits.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_packbits.c +tif_predict.o: ${SRCDIR}/tif_predict.c ${SRCDIR}/tif_predict.h + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_predict.c +tif_print.o: ${SRCDIR}/tif_print.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_print.c +tif_read.o: ${SRCDIR}/tif_read.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_read.c +tif_swab.o: ${SRCDIR}/tif_swab.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_swab.c +tif_strip.o: ${SRCDIR}/tif_strip.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_strip.c +tif_thunder.o: ${SRCDIR}/tif_thunder.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_thunder.c +tif_tile.o: ${SRCDIR}/tif_tile.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_tile.c +tif_unix.o: ${SRCDIR}/tif_unix.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_unix.c +tif_version.o: ${SRCDIR}/tif_version.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_version.c +tif_warning.o: ${SRCDIR}/tif_warning.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_warning.c +tif_write.o: ${SRCDIR}/tif_write.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_write.c +tif_zip.o: ${SRCDIR}/tif_zip.c ${SRCDIR}/tif_predict.h + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_zip.c + +tif_apple.o: ${SRCDIR}/tif_apple.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_apple.c +tif_atari.o: ${SRCDIR}/tif_atari.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_atari.c +tif_msdos.o: ${SRCDIR}/tif_msdos.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_msdos.c +tif_vms.o: ${SRCDIR}/tif_vms.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_vms.c +tif_win3.o: ${SRCDIR}/tif_win3.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_win3.c + +INCS = ${SRCDIR}/tiff.h ${SRCDIR}/tiffio.h + +clean: + rm -f ${TARGETS} ${OBJS} mkg3states mkg3states.exe tif_fx3s.c + rm -f version.h libtiff.a mkversion mkversion.exe diff --git a/contrib/dosdjgpp/Makefile.tools b/contrib/dosdjgpp/Makefile.tools new file mode 100755 index 0000000..9573428 --- /dev/null +++ b/contrib/dosdjgpp/Makefile.tools @@ -0,0 +1,217 @@ +# $Header: /home/cvsroot/libtiff/contrib/dosdjgpp/Makefile.tools,v 1.1.1.1 2000/06/24 19:10:17 tshead Exp $ +# +# manually derived from Makefile.in for DJGPP v2.x (GNU C for DOS/386). +# +# TIFF Library Tools +# +# Copyright (c) 1988-1996 Sam Leffler +# Copyright (c) 1991-1996 Silicon Graphics, Inc. +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Stanford and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# +DEPTH = .. +SRCDIR = . +LIBDIR = ${DEPTH}/libtiff + +NULL = +CC = gcc +# +COPTS = +OPTIMIZER=-O +IPATH = -I. -I${SRCDIR} -I${LIBDIR} +CFLAGS = ${COPTS} ${OPTIMIZER} ${IPATH} +# +LIBTIFF = ${DEPTH}/libtiff/libtiff.a +LIBJPEG = #@LIBJPEG@ +LIBGZ = #@LIBGZ@ +LIBS = ${LIBTIFF} ${LIBJPEG} ${LIBGZ} +# +OBJS= \ + fax2tiff.o \ + fax2ps.o \ + gif2tiff.o \ + pal2rgb.o \ + ppm2tiff.o \ + rgb2ycbcr.o \ + ras2tiff.o \ + thumbnail.o \ + tiff2bw.o \ + tiff2ps.o \ + tiffcmp.o \ + tiffcp.o \ + tiffdither.o \ + tiffdump.o \ + tiffinfo.o \ + tiffmedian.o \ + tiffsplit.o \ + ${NULL} +TARGETS =\ + fax2tiff \ + fax2ps \ + gif2tiff \ + pal2rgb \ + ppm2tiff \ + rgb2ycbcr \ + thumbnail \ + ras2tiff \ + tiff2bw \ + tiff2ps \ + tiffcmp \ + tiffcp \ + tiffdither \ + tiffdump \ + tiffinfo \ + tiffmedian \ + tiffsplit \ + ${NULL} + +all: ${TARGETS} + +clean: + rm -f ${TARGETS} ${addsuffix .exe, ${TARGETS}} ${OBJS} + rm -f sgigt.o tiffgt sgisv.o tiffsv sgi2tiff.o sgi2tiff ycbcr + +# +# System-independent tools +# + +tiffinfo: tiffinfo.o ${LIBTIFF} + ${CC} -o tiffinfo ${CFLAGS} tiffinfo.o ${LIBS} +tiffinfo.o: ${SRCDIR}/tiffinfo.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tiffinfo.c + +tiffcmp:tiffcmp.o ${LIBTIFF} + ${CC} -o tiffcmp ${CFLAGS} tiffcmp.o ${LIBS} +tiffcmp.o: ${SRCDIR}/tiffcmp.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tiffcmp.c + +tiffcp: tiffcp.o ${LIBTIFF} + ${CC} -o tiffcp ${CFLAGS} tiffcp.o ${LIBS} +tiffcp.o: ${SRCDIR}/tiffcp.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tiffcp.c + +tiffdump: tiffdump.o + ${CC} -o tiffdump ${CFLAGS} tiffdump.o ${LIBS} +tiffdump.o: ${SRCDIR}/tiffdump.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tiffdump.c + +tiffmedian: tiffmedian.o ${LIBTIFF} + ${CC} -o tiffmedian ${CFLAGS} tiffmedian.o ${LIBS} +tiffmedian.o: ${SRCDIR}/tiffmedian.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tiffmedian.c + +tiffsplit: tiffsplit.o ${LIBTIFF} + ${CC} -o tiffsplit ${CFLAGS} tiffsplit.o ${LIBS} +tiffsplit.o: ${SRCDIR}/tiffsplit.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tiffsplit.c + +tiff2ps: tiff2ps.o ${LIBTIFF} + ${CC} -o tiff2ps ${CFLAGS} tiff2ps.o ${LIBS} +tiff2ps.o: ${SRCDIR}/tiff2ps.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tiff2ps.c + +# +# Junky stuff... programs that are more examples of how +# to use the library than full-blown useful tools. +# + +# convert RGB image to B&W +tiff2bw: tiff2bw.o ${LIBTIFF} + ${CC} -o tiff2bw ${CFLAGS} tiff2bw.o ${LIBS} +tiff2bw.o: ${SRCDIR}/tiff2bw.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tiff2bw.c + +# convert B&W image to bilevel w/ FS dithering +tiffdither: tiffdither.o ${LIBTIFF} + ${CC} -o tiffdither ${CFLAGS} tiffdither.o ${LIBS} +tiffdither.o: ${SRCDIR}/tiffdither.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tiffdither.c + +# simple Sun rasterfile converter +ras2tiff: ras2tiff.o ${LIBTIFF} + ${CC} -o ras2tiff ${CFLAGS} ras2tiff.o ${LIBS} +ras2tiff.o: ${SRCDIR}/ras2tiff.c + ${CC} -c ${CFLAGS} ${SRCDIR}/ras2tiff.c + +# simple GIF converter +gif2tiff: gif2tiff.o ${LIBTIFF} + ${CC} -o gif2tiff ${CFLAGS} gif2tiff.o ${LIBS} +gif2tiff.o: ${SRCDIR}/gif2tiff.c + ${CC} -c ${CFLAGS} ${SRCDIR}/gif2tiff.c + +# very limited PBM converter +ppm2tiff: ppm2tiff.o ${LIBTIFF} + ${CC} -o ppm2tiff ${CFLAGS} ppm2tiff.o ${LIBS} +ppm2tiff.o: ${SRCDIR}/ppm2tiff.c + ${CC} -c ${CFLAGS} ${SRCDIR}/ppm2tiff.c + +# Group 3/4 FAX file converter +fax2tiff: fax2tiff.o ${LIBTIFF} + ${CC} -o fax2tiff ${CFLAGS} fax2tiff.o ${LIBS} +fax2tiff.o: ${SRCDIR}/fax2tiff.c + ${CC} -c -I${LIBDIR} -I${DEPTH}/libtiff ${CFLAGS} ${SRCDIR}/fax2tiff.c + +# Group 3/4 FAX to encoded PS converter +fax2ps: fax2ps.o ${LIBTIFF} + ${CC} -o fax2ps ${CFLAGS} fax2ps.o ${LIBS} +fax2ps.o: ${SRCDIR}/fax2ps.c + ${CC} -c ${CFLAGS} ${SRCDIR}/fax2ps.c + +# convert Palette image to RGB +pal2rgb: pal2rgb.o ${LIBTIFF} + ${CC} -o pal2rgb ${CFLAGS} pal2rgb.o ${LIBS} +pal2rgb.o: ${SRCDIR}/pal2rgb.c + ${CC} -c ${CFLAGS} ${SRCDIR}/pal2rgb.c + +# convert RGB image to YCbCr +rgb2ycbcr: rgb2ycbcr.o ${LIBTIFF} + ${CC} -o rgb2ycbcr ${CFLAGS} rgb2ycbcr.o ${LIBS} +rgb2ycbcr.o: ${SRCDIR}/rgb2ycbcr.c + ${CC} -c ${CFLAGS} ${SRCDIR}/rgb2ycbcr.c + +# generate thumbnail images from fax (example of SubIFD usage) +thumbnail: thumbnail.o ${LIBTIFF} + ${CC} -o thumbnail ${CFLAGS} thumbnail.o ${LIBS} +thumbnail.o: ${SRCDIR}/thumbnail.c + ${CC} -c ${CFLAGS} ${SRCDIR}/thumbnail.c + +# +# System-specific tools. +# + +# +# sgi2tiff converts SGI RGB images to TIFF; it requires +# the SGI image library -limage. +# +sgi2tiff: sgi2tiff.o ${LIBTIFF} + ${CC} -o sgi2tiff ${CFLAGS} sgi2tiff.o -limage ${LIBS} +sgi2tiff.o: ${SRCDIR}/sgi2tiff.c + ${CC} -c ${CFLAGS} ${SRCDIR}/sgi2tiff.c + +# SGI versions of tiffgt & tiffsv that require -lgl +tiffgt: sgigt.o ${LIBTIFF} + ${CC} -o tiffgt ${CFLAGS} sgigt.o ${LIBS} -lgutil -lgl_s +sgigt.o: ${SRCDIR}/sgigt.c + ${CC} -c ${CFLAGS} ${SRCDIR}/sgigt.c + +tiffsv: sgisv.o ${LIBTIFF} + ${CC} -o tiffsv ${CFLAGS} sgisv.o ${LIBS} -lgutil -lgl_s +sgisv.o: ${SRCDIR}/sgisv.c + ${CC} -c ${CFLAGS} ${SRCDIR}/sgisv.c diff --git a/contrib/dosdjgpp/Makefile.top b/contrib/dosdjgpp/Makefile.top new file mode 100755 index 0000000..1943c72 --- /dev/null +++ b/contrib/dosdjgpp/Makefile.top @@ -0,0 +1,54 @@ +#! smake +# $Header: /home/cvsroot/libtiff/contrib/dosdjgpp/Makefile.top,v 1.1.1.1 2000/06/24 19:10:17 tshead Exp $ +# +# manually derived from Makefile.in (though basically nothing remains) +# for DJGPP v2.x (GNU C for DOS/386). +# +# A warning about the filename structure: +# +# Some of the filenames used in the Makefiles are longer than 8 characters +# this will work with the normal 8.3 file system since all files are unique +# in the first 8 chars. To compile under the long filename support in Win95 +# you can either extract the files with a program that truncates filenames +# (e.g. the DOS pkunzip) and disable LFN support with set LFN=n or with a +# program that supports long filenames (e.g. WinZip 6.0) and set LFN=y. +# The default environment in djgpp 2 is supposed to have LFN disabled, but +# due to a bug in the init code it doesn't work properly. Setting the LFN +# variable explicitly should fix that. +# +# Tag Image File Format Library +# +# Copyright (c) 1988-1996 Sam Leffler +# Copyright (c) 1991-1996 Silicon Graphics, Inc. +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Sam Leffler and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# + +SRCDIR = . + +all default: + @${MAKE} -C libtiff + @${MAKE} -C tools + +clean: + @${MAKE} -C libtiff clean + @${MAKE} -C tools clean + + diff --git a/contrib/dosdjgpp/conf.bat b/contrib/dosdjgpp/conf.bat new file mode 100755 index 0000000..b8113f7 --- /dev/null +++ b/contrib/dosdjgpp/conf.bat @@ -0,0 +1,11 @@ +@echo off +rem copy the Makefiles for libtiff for DJGPP2 into proper locations +rem we assume to be in $(top)/contrib/dosdjgpp/ + +copy Makefile.top ..\..\Makefile +copy Makefile.lib ..\..\libtiff\Makefile +copy port.h ..\..\libtiff\port.h +copy Makefile.too* ..\..\tools\Makefile + +echo all set for building the library. Now just do make +cd ..\.. diff --git a/contrib/dosdjgpp/port.h b/contrib/dosdjgpp/port.h new file mode 100755 index 0000000..3b1e693 --- /dev/null +++ b/contrib/dosdjgpp/port.h @@ -0,0 +1,29 @@ +#ifndef _PORT_ +#define _PORT_ 1 +#ifdef __cplusplus +extern "C" { +#endif +#include +typedef unsigned char u_char; +typedef unsigned short u_short; +typedef unsigned int u_int; +typedef unsigned long u_long; + +#define HOST_FILLORDER FILLORDER_LSB2MSB +#define HOST_BIGENDIAN 0 +#include +#include +#include +#include +#include +typedef double dblparam_t; +#ifdef __STRICT_ANSI__ +#define INLINE __inline__ +#else +#define INLINE inline +#endif +#define GLOBALDATA(TYPE,NAME) extern TYPE NAME +#ifdef __cplusplus +} +#endif +#endif diff --git a/contrib/dosdjgpp/readme b/contrib/dosdjgpp/readme new file mode 100755 index 0000000..938f418 --- /dev/null +++ b/contrib/dosdjgpp/readme @@ -0,0 +1,30 @@ + +This directory contains the files necessary to build the free TIFF library +with the DJGPP v2 compiler under MSDOS. Since DJGPP defines the unix flag, +I have created a port.h instead of putting the necessary defines into +tiffcomp.h. Makefiles are included for the top level and the libtiff and +tools directories. + +All you have to do is copy the files into the respective directories and run +make. If you want, you can use the conf.bat to do that for you, make sure that +the file is stored with MSDOS text EOL-convention (CR/LF), otherwise the +command.com will not do anything (if you used unzip, use the -a option, +otherwise edit the file and save it again). + +Note that you probably will not be able to built the library with the v1.x +versions of djgpp, due to two problems. First, the top makefile calls a +sub-make for each directory and you are likely to run out of memory, since +each recursive invocation of a djgpp v1.x program requires about 130k, to +avoid that, you can enter the directories manually and call make (well, there +are only two dirs). The 2nd problem is that djgpp 1.x doesn't call the +coff2exe (stubify) program when creating an executable. This means that all +programs compiled are not converted to exe and consequently are not available +for calling directly. For the tools directory, you can just call coff2exe for +each program after make finishes, but in the libtiff directory, a few programs +are created during the make process that have to be called for make to +continue (e.g. mkg3states). Make will probably report an error at each +such stage. To fix that, either add a coff2exe call before each program is +called or call coff2exe manually and rerun make (there 2-3 such programs). + +Alexander Lehmann + diff --git a/contrib/iptcutil/Makefile b/contrib/iptcutil/Makefile new file mode 100755 index 0000000..54befc9 --- /dev/null +++ b/contrib/iptcutil/Makefile @@ -0,0 +1,12 @@ +CC=gcc +CFLAGS= +iptcutil: iptcutil.c + $(CC) $(CFLAGS) -o iptcutil iptcutil.c + +clean: + rm iptcutil *~ + +all: iptcutil + + + diff --git a/contrib/iptcutil/iptcutil.c b/contrib/iptcutil/iptcutil.c new file mode 100755 index 0000000..f25ada7 --- /dev/null +++ b/contrib/iptcutil/iptcutil.c @@ -0,0 +1,920 @@ +#include +#include +#include +#ifdef WIN32 +#include +#endif +#include +#include +#include + +#ifdef WIN32 +#define STRNICMP strnicmp +#else +#define STRNICMP strncasecmp +#endif + +typedef struct _tag_spec +{ + short + id; + + char + *name; +} tag_spec; + +static tag_spec tags[] = { + 5,"Image Name", + 7,"Edit Status", + 10,"Priority", + 15,"Category", + 20,"Supplemental Category", + 22,"Fixture Identifier", + 25,"Keyword", + 30,"Release Date", + 35,"Release Time", + 40,"Special Instructions", + 45,"Reference Service", + 47,"Reference Date", + 50,"Reference Number", + 55,"Created Date", + 60,"Created Time", + 65,"Originating Program", + 70,"Program Version", + 75,"Object Cycle", + 80,"Byline", + 85,"Byline Title", + 90,"City", + 95,"Province State", + 100,"Country Code", + 101,"Country", + 103,"Original Transmission Reference", + 105,"Headline", + 110,"Credit", + 115,"Source", + 116,"Copyright String", + 120,"Caption", + 121,"Local Caption", + 122,"Caption Writer", + 200,"Custom Field 1", + 201,"Custom Field 2", + 202,"Custom Field 3", + 203,"Custom Field 4", + 204,"Custom Field 5", + 205,"Custom Field 6", + 206,"Custom Field 7", + 207,"Custom Field 8", + 208,"Custom Field 9", + 209,"Custom Field 10", + 210,"Custom Field 11", + 211,"Custom Field 12", + 212,"Custom Field 13", + 213,"Custom Field 14", + 214,"Custom Field 15", + 215,"Custom Field 16", + 216,"Custom Field 17", + 217,"Custom Field 18", + 218,"Custom Field 19", + 219,"Custom Field 20" +}; + +/* + * We format the output using HTML conventions + * to preserve control characters and such. + */ +void formatString(FILE *ofile, const char *s, int len) +{ + putc('"', ofile); + for (; len > 0; --len, ++s) { + char c = *s; + switch (c) { + case '&': + fputs("&", ofile); + break; +#ifdef HANDLE_GT_LT + case '<': + fputs("<", ofile); + break; + case '>': + fputs(">", ofile); + break; +#endif + case '"': + fputs(""", ofile); + break; + default: + if (iscntrl(c)) + fprintf(ofile, "&#%d;", c); + else + putc(*s, ofile); + break; + } + } + fputs("\"\n", ofile); +} + +typedef struct _html_code +{ + short + len; + const char + *code, + val; +} html_code; + +static html_code html_codes[] = { +#ifdef HANDLE_GT_LT + 4,"<",'<', + 4,">",'>', +#endif + 5,"&",'&', + 6,""",'"' +}; + +/* + * This routine converts HTML escape sequence + * back to the original ASCII representation. + * - returns the number of characters dropped. + */ +int convertHTMLcodes(char *s, int len) +{ + if (len <=0 || s==(char*)NULL || *s=='\0') + return 0; + + if (s[1] == '#') + { + int val, o; + + if (sscanf(s,"&#%d;",&val) == 1) + { + o = 3; + while (s[o] != ';') + { + o++; + if (o > 5) + break; + } + if (o < 5) + strcpy(s+1, s+1+o); + *s = val; + return o; + } + } + else + { + int + i, + codes = sizeof(html_codes) / sizeof(html_code); + + for (i=0; i < codes; i++) + { + if (html_codes[i].len <= len) + if (STRNICMP(s, html_codes[i].code, html_codes[i].len) == 0) + { + strcpy(s+1, s+html_codes[i].len); + *s = html_codes[i].val; + return html_codes[i].len-1; + } + } + } +} + +int formatIPTC(FILE *ifile, FILE *ofile) +{ + unsigned int + foundiptc, + tagsfound; + + unsigned char + recnum, + dataset; + + unsigned char + *readable, + *str; + + long + tagindx, + taglen; + + int + i, + tagcount = sizeof(tags) / sizeof(tag_spec); + + char + c; + + foundiptc = 0; /* found the IPTC-Header */ + tagsfound = 0; /* number of tags found */ + + c = getc(ifile); + while (c != EOF) + { + if (c == 0x1c) + foundiptc = 1; + else + { + if (foundiptc) + return -1; + else + continue; + } + + /* we found the 0x1c tag and now grab the dataset and record number tags */ + dataset = getc(ifile); + if ((char) dataset == EOF) + return -1; + recnum = getc(ifile); + if ((char) recnum == EOF) + return -1; + /* try to match this record to one of the ones in our named table */ + for (i=0; i< tagcount; i++) + { + if (tags[i].id == recnum) + break; + } + if (i < tagcount) + readable = tags[i].name; + else + readable = ""; + + /* then we decode the length of the block that follows - long or short fmt */ + c = getc(ifile); + if (c == EOF) + return 0; + if (c & (unsigned char) 0x80) + { + unsigned char + buffer[4]; + + for (i=0; i<4; i++) + { + c = buffer[i] = getc(ifile); + if (c == EOF) + return -1; + } + taglen = (((long) buffer[ 0 ]) << 24) | + (((long) buffer[ 1 ]) << 16) | + (((long) buffer[ 2 ]) << 8) | + (((long) buffer[ 3 ])); + } + else + { + unsigned char + x = c; + + taglen = ((long) x) << 8; + x = getc(ifile); + if ((char)x == EOF) + return -1; + taglen |= (long) x; + } + /* make a buffer to hold the tag data and snag it from the input stream */ + str=(unsigned char *) malloc((unsigned int) (taglen+1)); + if (str == (unsigned char *) NULL) + { + printf("Memory allocation failed"); + return 0; + } + for (tagindx=0; tagindx 0) + fprintf(ofile, "%d#%d#%s=",(unsigned int)dataset, (unsigned int) recnum, readable); + else + fprintf(ofile, "%d#%d=",(unsigned int)dataset, (unsigned int) recnum); + formatString( ofile, str, taglen ); + free(str); + + tagsfound++; + + c = getc(ifile); + } + return tagsfound; +} + +int tokenizer(unsigned inflag,char *token,int tokmax,char *line, +char *white,char *brkchar,char *quote,char eschar,char *brkused, +int *next,char *quoted); + +char *super_fgets(char *b, int *blen, FILE *file) +{ + int + c, + len; + + unsigned char + *q; + + len=*blen; + for (q=b; ; q++) + { + c=fgetc(file); + if (c == EOF || c == '\n') + break; + if (((int)q - (int)b + 1 ) >= (int) len) + { + int + tlen; + + tlen=(int)q-(int)b; + len<<=1; + b=(unsigned char *) realloc((char *) b,(len+2)); + if ((unsigned char *) b == (unsigned char *) NULL) + break; + q=b+tlen; + } + *q=(unsigned char) c; + } + *blen=0; + if ((unsigned char *)b != (unsigned char *) NULL) + { + int + tlen; + + tlen=(int)q - (int)b; + if (tlen == 0) + return (char *) NULL; + b[tlen] = '\0'; + *blen=++tlen; + } + return b; +} + +#define BUFFER_SZ 4096 + +int main(int argc, char *argv[]) +{ + unsigned int + length; + + unsigned char + *buffer; + + int + i, + mode; /* iptc binary, or iptc text */ + + FILE + *ifile = stdin, + *ofile = stdout; + + char + c, + *usage = "usage: iptcutil -t | -b [-i file] [-o file] output"; + + if( argc < 2 ) + { + printf(usage); + return 1; + } + + mode = 0; + length = -1; + buffer = (unsigned char *)NULL; + + for (i=1; i 0) + { + char + *s = &token[next-1]; + + len -= convertHTMLcodes(s, strlen(s)); + } + } + + fputc(0x1c, ofile); + fputc(dataset, ofile); + fputc(recnum, ofile); + if (len < 0x10000) + { + fputc((len >> 8) & 255, ofile); + fputc(len & 255, ofile); + } + else + { + fputc(((len >> 24) & 255) | 0x80, ofile); + fputc((len >> 16) & 255, ofile); + fputc((len >> 8) & 255, ofile); + fputc(len & 255, ofile); + } + next=0; + while (len--) + fputc(token[next++], ofile); + } + state++; + } + free(token); + token = (char *)NULL; + free(newstr); + newstr = (char *)NULL; + } + free(line); + + fclose( ifile ); + fclose( ofile ); + } + + return 0; +} + +/* + This routine is a generalized, finite state token parser. It allows + you extract tokens one at a time from a string of characters. The + characters used for white space, for break characters, and for quotes + can be specified. Also, characters in the string can be preceded by + a specifiable escape character which removes any special meaning the + character may have. + + There are a lot of formal parameters in this subroutine call, but + once you get familiar with them, this routine is fairly easy to use. + "#define" macros can be used to generate simpler looking calls for + commonly used applications of this routine. + + First, some terminology: + + token: used here, a single unit of information in + the form of a group of characters. + + white space: space that gets ignored (except within quotes + or when escaped), like blanks and tabs. in + addition, white space terminates a non-quoted + token. + + break character: a character that separates non-quoted tokens. + commas are a common break character. the + usage of break characters to signal the end + of a token is the same as that of white space, + except multiple break characters with nothing + or only white space between generate a null + token for each two break characters together. + + for example, if blank is set to be the white + space and comma is set to be the break + character, the line ... + + A, B, C , , DEF + + ... consists of 5 tokens: + + 1) "A" + 2) "B" + 3) "C" + 4) "" (the null string) + 5) "DEF" + + quote character: a character that, when surrounding a group + of other characters, causes the group of + characters to be treated as a single token, + no matter how many white spaces or break + characters exist in the group. also, a + token always terminates after the closing + quote. for example, if ' is the quote + character, blank is white space, and comma + is the break character, the following + string ... + + A, ' B, CD'EF GHI + + ... consists of 4 tokens: + + 1) "A" + 2) " B, CD" (note the blanks & comma) + 3) "EF" + 4) "GHI" + + the quote characters themselves do + not appear in the resultant tokens. the + double quotes are delimiters i use here for + documentation purposes only. + + escape character: a character which itself is ignored but + which causes the next character to be + used as is. ^ and \ are often used as + escape characters. an escape in the last + position of the string gets treated as a + "normal" (i.e., non-quote, non-white, + non-break, and non-escape) character. + for example, assume white space, break + character, and quote are the same as in the + above examples, and further, assume that + ^ is the escape character. then, in the + string ... + + ABC, ' DEF ^' GH' I ^ J K^ L ^ + + ... there are 7 tokens: + + 1) "ABC" + 2) " DEF ' GH" + 3) "I" + 4) " " (a lone blank) + 5) "J" + 6) "K L" + 7) "^" (passed as is at end of line) + + + OK, now that you have this background, here's how to call "tokenizer": + + result=tokenizer(flag,token,maxtok,string,white,break,quote,escape, + brkused,next,quoted) + + result: 0 if we haven't reached EOS (end of string), and + 1 if we have (this is an "int"). + + flag: right now, only the low order 3 bits are used. + 1 => convert non-quoted tokens to upper case + 2 => convert non-quoted tokens to lower case + 0 => do not convert non-quoted tokens + (this is a "char"). + + token: a character string containing the returned next token + (this is a "char[]"). + + maxtok: the maximum size of "token". characters beyond + "maxtok" are truncated (this is an "int"). + + string: the string to be parsed (this is a "char[]"). + + white: a string of the valid white spaces. example: + + char whitesp[]={" \t"}; + + blank and tab will be valid white space (this is + a "char[]"). + + break: a string of the valid break characters. example: + + char breakch[]={";,"}; + + semicolon and comma will be valid break characters + (this is a "char[]"). + + IMPORTANT: do not use the name "break" as a C + variable, as this is a reserved word in C. + + quote: a string of the valid quote characters. an example + would be + + char whitesp[]={"'\""); + + (this causes single and double quotes to be valid) + note that a token starting with one of these characters + needs the same quote character to terminate it. + + for example, + + "ABC ' + + is unterminated, but + + "DEF" and 'GHI' + + are properly terminated. note that different quote + characters can appear on the same line; only for + a given token do the quote characters have to be + the same (this is a "char[]"). + + escape: the escape character (NOT a string ... only one + allowed). use zero if none is desired (this is + a "char"). + + brkused: the break character used to terminate the current + token. if the token was quoted, this will be the + quote used. if the token is the last one on the + line, this will be zero (this is a pointer to a + "char"). + + next: this variable points to the first character of the + next token. it gets reset by "tokenizer" as it steps + through the string. set it to 0 upon initialization, + and leave it alone after that. you can change it + if you want to jump around in the string or re-parse + from the beginning, but be careful (this is a + pointer to an "int"). + + quoted: set to 1 (true) if the token was quoted and 0 (false) + if not. you may need this information (for example: + in C, a string with quotes around it is a character + string, while one without is an identifier). + + (this is a pointer to a "char"). +*/ + +/* states */ + +#define IN_WHITE 0 +#define IN_TOKEN 1 +#define IN_QUOTE 2 +#define IN_OZONE 3 + +int _p_state; /* current state */ +unsigned _p_flag; /* option flag */ +char _p_curquote; /* current quote char */ +int _p_tokpos; /* current token pos */ + +/* routine to find character in string ... used only by "tokenizer" */ + +int sindex(char ch,char *string) +{ + char *cp; + for(cp=string;*cp;++cp) + if(ch==*cp) + return (int)(cp-string); /* return postion of character */ + return -1; /* eol ... no match found */ +} + +/* routine to store a character in a string ... used only by "tokenizer" */ + +void chstore(char *string,int max,char ch) +{ + char c; + if(_p_tokpos>=0&&_p_tokpos=0) /* break */ + { + switch(_p_state) + { + case IN_WHITE: /* these are the same here ... */ + case IN_TOKEN: /* ... just get out */ + case IN_OZONE: /* ditto */ + ++(*next); + *brkused=brkchar[qp]; + goto byebye; + + case IN_QUOTE: /* just keep going */ + chstore(token,tokmax,c); + break; + } + } + else if((qp=sindex(c,quote))>=0) /* quote */ + { + switch(_p_state) + { + case IN_WHITE: /* these are identical, */ + _p_state=IN_QUOTE; /* change states */ + _p_curquote=quote[qp]; /* save quote char */ + *quoted=1; /* set to true as long as something is in quotes */ + break; + + case IN_QUOTE: + if(quote[qp]==_p_curquote) /* same as the beginning quote? */ + { + _p_state=IN_OZONE; + _p_curquote=0; + } + else + chstore(token,tokmax,c); /* treat as regular char */ + break; + + case IN_TOKEN: + case IN_OZONE: + *brkused=c; /* uses quote as break char */ + goto byebye; + } + } + else if((qp=sindex(c,white))>=0) /* white */ + { + switch(_p_state) + { + case IN_WHITE: + case IN_OZONE: + break; /* keep going */ + + case IN_TOKEN: + _p_state=IN_OZONE; + break; + + case IN_QUOTE: + chstore(token,tokmax,c); /* it's valid here */ + break; + } + } + else if(c==eschar) /* escape */ + { + nc=line[(*next)+1]; + if(nc==0) /* end of line */ + { + *brkused=0; + chstore(token,tokmax,c); + ++(*next); + goto byebye; + } + switch(_p_state) + { + case IN_WHITE: + --(*next); + _p_state=IN_TOKEN; + break; + + case IN_TOKEN: + case IN_QUOTE: + ++(*next); + chstore(token,tokmax,nc); + break; + + case IN_OZONE: + goto byebye; + } + } + else /* anything else is just a real character */ + { + switch(_p_state) + { + case IN_WHITE: + _p_state=IN_TOKEN; /* switch states */ + + case IN_TOKEN: /* these 2 are */ + case IN_QUOTE: /* identical here */ + chstore(token,tokmax,c); + break; + + case IN_OZONE: + goto byebye; + } + } + } /* end of main loop */ + +byebye: + token[_p_tokpos]=0; /* make sure token ends with EOS */ + + return 0; +} diff --git a/contrib/iptcutil/test.iptc b/contrib/iptcutil/test.iptc new file mode 100755 index 0000000000000000000000000000000000000000..a2605622ecf1e8eb7906378b3f7ae7196244d538 GIT binary patch literal 1107 zcmdT@&2G~`5Z-L43Plw?a6wwZNL-Le)1*ylQ*m+aBzArr6FV)fDxrv;ZE1Oc+dku=zqT=r5u) zOli3UljnIVC1W+PS)l^9f|<7T^k+}v+A34V>9Hdg1YeiQr#^#grj>Y*T+kXqh*pBI|kI%u4l zR;Syuo&I1ra>w3>i62bQ&OcsULUaG1b@=Y+xUJfGXvZ_A!-u>Ho}#KBbO|m{RgFim zfp$hTw3xVo37hj$vXWr2{<(oRr~a;eVRZ;TddU0|ZJisw?YO;Q>=OJ5Vap_#q3x;b z1RV?fzz8}%!PjWRGL6Oo!Ou|D8xIM7j<$N^v(CgFb=-j9EmS!q_yu~TRnx|kzshN^ z%Cks+H`fXhJU|sn@cVz1>!OYQdZVszz9W2~fPWy|J0Bqy6USn!AanfpmHv+Xv^CbivPQYgw3#EWvxVjoR?uFqxSL+!156^G&1qdGi literal 0 HcmV?d00001 diff --git a/contrib/mac-cw/Makefile.script b/contrib/mac-cw/Makefile.script new file mode 100755 index 0000000..bcbf1f8 --- /dev/null +++ b/contrib/mac-cw/Makefile.script @@ -0,0 +1,72 @@ + +(* You must manually set the top-level PATHNAME here; everything else is automatic *) + +set PATHNAME to "ritter:tiff-v3.4beta028:" +set PRINTING to "NO" + +set MKG3STATES to PATHNAME & "mkg3states.mw" +set LIBTIFF to PATHNAME & "libtiff-68K.mw" +set TIFFINFO to PATHNAME & "tiffinfo.mw" + +with timeout of 60000 seconds + tell application "MW C/C++ 68K 1.2.2" + + activate + + + (* Create tif_fax3sm.c file *) + Create Project {file MKG3STATES} + Add Files {"mkg3states.c", "mkg3_main.c", "getopt.c"} + Add Files {"MacOS.lib"} To Segment 2 + Add Files {"ANSI (4i/8d) C.68K.Lib"} To Segment 3 + Add Files {"SIOUX.68K.Lib"} To Segment 4 + Add Files {"MathLib68K (4i/8d).Lib"} To Segment 5 + + Set Preferences To {Activate CPlusPlus:false, ARM Conformance:false, ANSI Keywords Only:false, Require Function Prototypes:false, Expand Trigraph Sequences:false, Enums Always Ints:false, MPW Pointer Type Rules:false, Prefix File:"mac_main.h"} + Set Preferences To {Illegal Pragmas:false, Empty Declarations:false, Possible Errors:false, Unused Variables:false, Unused Arguments:false, Extra Commas:false, Extended Error Checking:false} + Set Preferences To {Code Model:2, Struct Alignment:0, MC68020 CodeGen:false, MC68881 CodeGen:false, Four Bytes Ints:true, Eight Byte Double:true, Peephole Optimizer:true, CSE Optimizer:true, Optimize For Size:true, Far Data:true, Use Profiler:false, Far Virtual Function Tables:false, Far String Constants:true} + Set Preferences To {MacsBug Symbols:2, Generate SYM File:false, Full Path In Sym Files:true, Generate Link Map:false, Generate A6 Stack Frames:true, The Debugger Aware:false, Link Single Segment:false, Fast Link:true} + Set Preferences To {Project Type:0, File Name:"mkg3states", File Creator:"????", File Type:"APPL"} + + Make Project + Run Project + Remove Binaries + Close Project + + + (* Create LIBTIFF *) + Create Project {file LIBTIFF} + Add Files {"tif_apple.c", "tif_aux.c", "tif_close.c", "tif_codec.c", "tif_compress.c", "tif_dumpmode.c", "tif_error.c", "tif_flush.c", "tif_lzw.c", "tif_next.c", "tif_open.c", "tif_packbits.c"} + Add Files {"tif_fax3.c"} To Segment 2 + Add Files {"tif_dirinfo.c", "tif_dir.c", "tif_dirwrite.c", "tif_dirread.c"} To Segment 3 + Add Files {"tif_predict.c", "tif_print.c", "tif_read.c", "tif_strip.c", "tif_swab.c", "tif_thunder.c", "tif_tile.c", "tif_version.c", "tif_zip.c", "tif_jpeg.c", "tif_warning.c", "tif_write.c"} To Segment 4 + Add Files {"tif_fax3sm.c"} To Segment 5 + Add Files {"tif_getimage.c"} To Segment 6 + + Set Preferences To {Activate CPlusPlus:false, ARM Conformance:false, ANSI Keywords Only:false, Require Function Prototypes:false, Expand Trigraph Sequences:false, Enums Always Ints:false, MPW Pointer Type Rules:false, Prefix File:"MacHeaders68K"} + Set Preferences To {Illegal Pragmas:false, Empty Declarations:false, Possible Errors:false, Unused Variables:false, Unused Arguments:false, Extra Commas:false, Extended Error Checking:false} + Set Preferences To {Code Model:2, Struct Alignment:0, MC68020 CodeGen:false, MC68881 CodeGen:false, Four Bytes Ints:true, Eight Byte Double:true, Peephole Optimizer:true, CSE Optimizer:true, Optimize For Size:true, Far Data:true, Use Profiler:false, Far Virtual Function Tables:false, Far String Constants:true} + Set Preferences To {MacsBug Symbols:2, Generate SYM File:true, Full Path In Sym Files:true, Generate Link Map:false, Generate A6 Stack Frames:true, The Debugger Aware:false, Link Single Segment:false, Fast Link:true} + Set Preferences To {Project Type:2, File Name:"libtiff-68K", File Creator:"????", File Type:"APPL"} + Make Project + Close Project + + Create Project {file TIFFINFO} + Add Files {"tiffinfo.c", "mac_main.c", "getopt.c"} + Add Files {"MacOS.lib"} To Segment 2 + Add Files {"ANSI (4i/8d) C.68K.Lib"} To Segment 3 + Add Files {"SIOUX.68K.Lib"} To Segment 4 + Add Files {"MathLib68K (4i/8d).Lib"} To Segment 5 + Add Files {"libtiff-68K"} To Segment 6 + + Set Preferences To {Activate CPlusPlus:false, ARM Conformance:false, ANSI Keywords Only:false, Require Function Prototypes:false, Expand Trigraph Sequences:false, Enums Always Ints:false, MPW Pointer Type Rules:false, Prefix File:"mac_main.h"} + Set Preferences To {Illegal Pragmas:false, Empty Declarations:false, Possible Errors:false, Unused Variables:false, Unused Arguments:false, Extra Commas:false, Extended Error Checking:false} + Set Preferences To {Code Model:2, Struct Alignment:0, MC68020 CodeGen:false, MC68881 CodeGen:false, Four Bytes Ints:true, Eight Byte Double:true, Peephole Optimizer:true, CSE Optimizer:true, Optimize For Size:true, Far Data:true, Use Profiler:false, Far Virtual Function Tables:false, Far String Constants:true} + Set Preferences To {MacsBug Symbols:2, Generate SYM File:false, Full Path In Sym Files:true, Generate Link Map:false, Generate A6 Stack Frames:true, The Debugger Aware:false, Link Single Segment:false, Fast Link:true} + Set Preferences To {Project Type:0, File Name:"tiffinfo", File Creator:"????", File Type:"APPL"} + + Make Project + Close Project + + end tell +end timeout diff --git a/contrib/mac-cw/mac_main.c b/contrib/mac-cw/mac_main.c new file mode 100755 index 0000000..86d549d --- /dev/null +++ b/contrib/mac-cw/mac_main.c @@ -0,0 +1,20 @@ +/* + * mac_main.c -- The REAL entry point which + * calls the tools main code. For the tools + * the symbol "main" has been #defined to "tool_main" + * so that this entry point may be used to access + * the user-input first. + */ + +#undef main + +int +main() +{ + int argc; + char **argv; + + argc=ccommand(&argv); + + return tool_main(argc,argv); // Call the tool "main()" routine +} diff --git a/contrib/mac-cw/mac_main.h b/contrib/mac-cw/mac_main.h new file mode 100755 index 0000000..5e75f08 --- /dev/null +++ b/contrib/mac-cw/mac_main.h @@ -0,0 +1,12 @@ +/* + * mac_main.h -- redefines main entry point + */ + +#ifndef _mac_main_h +#define _mac_main_h + +#undef main +#define main tool_main + +#endif /* _mac_main_h */ + diff --git a/contrib/mac-cw/metrowerks.note b/contrib/mac-cw/metrowerks.note new file mode 100755 index 0000000..5833857 --- /dev/null +++ b/contrib/mac-cw/metrowerks.note @@ -0,0 +1,84 @@ +---------------------------------------------------- +Build instructions for LIBTIFF - CodeWarrior (6.1): +---------------------------------------------------- + +Note: there is a bug in CW earlier than 6.1 which will generate +16-bit offset link errors for any projects using libtiff; you must +download the CodeWarrior 6.1 patch located at: + + ftp://ftp.metrowerks.com/pub/updates/metro-patches-61.hqx + +unpack the archive, insert the files and recompile the libraries +using the AppleScript provided. + + +1. Make sure that the directory containing these files is under + the "contrib" directory of the tiff folder; otherwise, some + access path preferences will need to be updated. + +2. The instructions below are for the 68k platform build. + A similar script can be put together for the PPC version, + or you can just directly convert the projects. Be sure to + use the native libraries as well. NOTE: if anyone cooks + up an equivalent script for PPC, send it to me and I'll include + it with the rest of the package. + +3. Open the file Makefile.script with an AppleScript Editor + and change the PATHNAME variable to point to your + top-level TIFF directory + +4. Run the Script. It will do the following things: + + 4a. Prompt you for the current location of the CodeWarrior 68K + program. + + 4b. Create the source file "tif_fax3sm.c": + + i) Build the project CW project mkg3states.cw. It will + produce a small program called mkg3states. Only a + 68k version is provided, since you only have to run + this code once, and it only takes a few seconds. + + ii) Run the built mkg3states program: + + The program will temporarily take over ALL of the CPU, so + don't panic. After a few seconds it will produce a file called + "tif_fax3sm.c". + + 4c. Build the library project libtiff-68K.mw, producing library + called libtiff-68K. + + 4d. Build program project tiffinfo.mw; it will produce a + program called tiffinfo, which can dump the tiff tags of + a named file. Passing in no arguments will dump a help file + for the program. It is unix-flavored, but hey, it works. + +5 When the script finishes, you will have a usable libtiff-68K + library, a passable "tiffinfo" program, and the projects used + to build them. Note that to get tiffinfo to work I have put + an include file in the project that redefines main(), and + then have a mac_main.c program that calls ccommand() first + and passes that to the actual main code. A real mac app, + of course, would never use this stuff at all... + + . The tiffinfo.mw project may be used as a template to build + most of the other libtiff tools, or your own code. When + modifying a copy of the project, you will most likely need + to update the "Access Paths" directory if it is moved out of + the contrib folder. + +6. If you are going to create a project from scratch, be sure + to set up the preferences with + + 4-byte ints + 8-byte doubles + Far Code/Far Data + Large Linking model + + and everything should work fine. If the console-style error + reports bother you, you can always override the error and + warning mechanism with TIFFSetErrorHandler to do something + more Mac-like. + +Questions, comments to Niles Ritter (ndr@tazboy.jpl.nasa.gov). + diff --git a/contrib/mac-cw/mkg3_main.c b/contrib/mac-cw/mkg3_main.c new file mode 100755 index 0000000..d580b37 --- /dev/null +++ b/contrib/mac-cw/mkg3_main.c @@ -0,0 +1,14 @@ +/* + * mkg3_main.c -- passes fake arguments into main + */ + +#undef main + +int +main() +{ + static char *argv[4] = { + "mkg3states", "-c", "const", "tif_fax3sm.c" }; + + return tool_main(4,argv); // Call the tool "main()" routine +} diff --git a/contrib/mac-cw/readme b/contrib/mac-cw/readme new file mode 100755 index 0000000..393728d --- /dev/null +++ b/contrib/mac-cw/readme @@ -0,0 +1,18 @@ +---------------------------------------------------- +Build instructions for LIBTIFF - CodeWarrior (6.1): +---------------------------------------------------- + +In this directory you will find a Makefile.script Applescript +file, which should be run in order to build the libtiff code +using MetroWerks CodeWarrior. + +Refer to the "metrowerks.note" instructions on building the +library for 68k and PowerPC native code, as well as building +some of the libtiff tools, which are rather unix-like, but +at least give an example of how to link everything together. + + Questions, comments, bug reports to Niles Ritter + (ndr@tazboy.jpl.nasa.gov). Sam Leffler takes no responsibility + for the viability of this stuff. + + -Niles. diff --git a/contrib/mac-cw/version.h b/contrib/mac-cw/version.h new file mode 100755 index 0000000..3230da5 --- /dev/null +++ b/contrib/mac-cw/version.h @@ -0,0 +1,4 @@ +#define VERSION \ +"LIBTIFF, Version 3.4beta028 \n"\ +"Copyright (c) 1988-1995 Sam Leffler\n"\ +"Copyright (c) 1991-1996 Silicon Graphics, Inc." diff --git a/contrib/mac-mpw/build.mpw b/contrib/mac-mpw/build.mpw new file mode 100755 index 0000000..edfe0e1 --- /dev/null +++ b/contrib/mac-mpw/build.mpw @@ -0,0 +1,47 @@ +# BUILD.mpw: +# +# Full build for Apple Macintosh Programmer's Workshop (MPW). +# +# This is an executable MPW script which creates various +# utilities, sets up the MPW makefiles and runs the builds. +# This script should be run at the top level TIFF directory with: +# +# directory ::: +# :contrib:mac-mpw:BUILD.mpw +# +# NOTE: The full build requires that MPW have at least 6 MB +# allocated to it to compile the CCITT Fax codec tables. To +# deactivate CCITT compression edit the file :contrib:mac:libtiff.make +# first and follow the directions for disabling Fax decoding. +# +# All TIFF tools are built as MPW tools, executable from the +# MPW shell or other compatible tool server. +# +# Written by: Niles Ritter (ndr@tazboy.jpl.nasa.gov). +# + +echo "############# Full Scratch Build for MPW #############" + +# Create the ascii->mpw translation tool; this is used to +# convert standard ASCII files into ones using the special +# MPW characters, which don't live comfortably in unix tar files. +# +echo "######## Creating ASCII->MPW translator ########" +set contrib ':contrib:mac-mpw:' +directory {contrib} +createmake -tool mactrans mactrans.c > dev:null +make -f mactrans.make | streamedit -e "/CSANELib/||/Math/||/ToolLibs/ del" > mactrans.bld +execute mactrans.bld > dev:null +delete -y mactrans.make mactrans.bld mactrans.c.o || set status 0 +directory ::: #An mpw trick for going up two levels + +# Create the top-level Makefile and run it +echo "######## Creating Makefile ########" +catenate {contrib}top.make | {contrib}mactrans > Makefile + +echo "######## Running Makefile ########" +make > build.mpw +execute build.mpw +echo "############# MPW Build Complete #############" +exit 0 + diff --git a/contrib/mac-mpw/libtiff.make b/contrib/mac-mpw/libtiff.make new file mode 100755 index 0000000..e0a9d52 --- /dev/null +++ b/contrib/mac-mpw/libtiff.make @@ -0,0 +1,202 @@ +# +# Tag Image File Format Library +# +# Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994 Sam Leffler +# Copyright (c) 1991, 1992, 1993, 1994 Silicon Graphics, Inc. +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Sam Leffler and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# + +# +# Makefile for Mac using MPW 3.3.1 and MPW C 3.2.4 +# +# Note: This file must be run through "mactrans" before it can +# be recognized by MPW as a valid makefile. The problem is that MPW +# uses special non-ASCII characters, which tend to get mangled when stored +# in unix tar files, etc. "mactrans" is built as part of the TIFF MPW build. +# +# + +DEPTH = :: + +# FAX Options: If you do not wish to include the FAX options, uncomment +# the first four definitions and comment out the next four +# definitions. Note that to build programs with the FAX libraries you +# have to include "-model far" in your compile and link statements. +# +# Also, to build the fax code (including the tif_fax3sm.c file, which is +# created by the MPW tool "mkg3states", also built below), you will +# need to size the MPW program up to about 6 megabytes or so. + +#FAX_OPTIONS = +#FAX_OBJECTS = +#FAX_SOURCES = tif_fax3.c +#FAX_CONFIG = + +FAX_OPTIONS = -model far +FAX_OBJECTS = tif_fax3.c.o tif_fax3sm.c.o +FAX_SOURCES = tif_fax3.c tif_fax3sm.c +FAX_CONFIG = -d CCITT_SUPPORT + +NULL= + +RM = delete -y -i +COPTS = + +LIBPORT=::port:libport.o + +# +.c.o %c4 .c + {C} -model far {CFLAGS} -s {Default} {DepDir}{Default}.c -o {TargDir}{Default}.c.o + + +CONF_LIBRARY= %b6 + -d HAVE_IEEEFP=1 %b6 + -d BSDTYPES + +CONF_COMPRESSION= %b6 + {FAX_CONFIG} %b6 + -d COMPRESSION_SUPPORT %b6 + -d PACKBITS_SUPPORT %b6 + -d LZW_SUPPORT %b6 + -d THUNDER_SUPPORT %b6 + -d NEXT_SUPPORT + +CFLAGS= {FAX_OPTIONS} {IPATH} {CONF_LIBRARY} {CONF_COMPRESSION} + +INCS= tiff.h tiffio.h + +SRCS= %b6 + {FAX_SOURCES} %b6 + tif_apple.c %b6 + tif_aux.c %b6 + tif_close.c %b6 + tif_codec.c %b6 + tif_compress.c %b6 + tif_dir.c %b6 + tif_dirinfo.c %b6 + tif_dirread.c %b6 + tif_dirwrite.c %b6 + tif_dumpmode.c %b6 + tif_error.c %b6 + tif_getimage.c %b6 + tif_jpeg.c %b6 + tif_flush.c %b6 + tif_lzw.c %b6 + tif_next.c %b6 + tif_open.c %b6 + tif_packbits.c %b6 + tif_predict.c %b6 + tif_print.c %b6 + tif_read.c %b6 + tif_swab.c %b6 + tif_strip.c %b6 + tif_thunder.c %b6 + tif_tile.c %b6 + tif_version.c %b6 + tif_warning.c %b6 + tif_write.c %b6 + tif_zip.c %b6 + {NULL} + +OBJS= %b6 + {FAX_OBJECTS} %b6 + tif_apple.c.o %b6 + tif_aux.c.o %b6 + tif_close.c.o %b6 + tif_codec.c.o %b6 + tif_compress.c.o %b6 + tif_dir.c.o %b6 + tif_dirinfo.c.o %b6 + tif_dirread.c.o %b6 + tif_dirwrite.c.o %b6 + tif_dumpmode.c.o %b6 + tif_error.c.o %b6 + tif_getimage.c.o %b6 + tif_jpeg.c.o %b6 + tif_flush.c.o %b6 + tif_lzw.c.o %b6 + tif_next.c.o %b6 + tif_open.c.o %b6 + tif_packbits.c.o %b6 + tif_predict.c.o %b6 + tif_print.c.o %b6 + tif_read.c.o %b6 + tif_swab.c.o %b6 + tif_strip.c.o %b6 + tif_thunder.c.o %b6 + tif_tile.c.o %b6 + tif_version.c.o %b6 + tif_warning.c.o %b6 + tif_write.c.o %b6 + tif_zip.c.o %b6 + {NULL} + +ALL=libtiff.o + +all %c4 {ALL} + +libtiff.o %c4 {OBJS} + Lib {OBJS} -o libtiff.o + + +{OBJS} %c4 tiffio.h tiff.h tiffcomp.h tiffiop.h tiffconf.h + +# +# The finite state machine tables used by the G3/G4 decoders +# are generated by the mkg3states program. On systems without +# make these rules have to be manually carried out. +# +tif_fax3sm.c %c4 mkg3states tif_fax3.h + {RM} tif_fax3sm.c || set status 0 + :mkg3states -c const tif_fax3sm.c + +mkg3states.c.o %c4 mkg3states.c + C -model far mkg3states.c -o mkg3states.c.o + +mkg3states %c4%c4 mkg3states.c.o + Link -model far -d -c 'MPS ' -t MPST %b6 + mkg3states.c.o %b6 + {LIBPORT} %b6 + "{CLibraries}"StdClib.o %b6 + "{Libraries}"Stubs.o %b6 + "{Libraries}"Runtime.o %b6 + "{Libraries}"Interface.o %b6 + -o mkg3states + +ALPHA = "{DEPTH}dist:tiff.alpha" +VERSION = "{DEPTH}VERSION" + +version.h %c4 {VERSION} {ALPHA} + Set VERSION1 `catenate {VERSION}` + Set VERSION2 "{VERSION1}`streamedit -e "1 rep /%a5%c5 %c5 (%c5)%a81/ %a81" {ALPHA}`" + delete -y -i version.h || set status 0 + echo '#define VERSION "LIBTIFF, Version' {VERSION2} '\nCopyright (c) 1988-1995 Sam Leffler\nCopyright (c) 1991-1995 Silicon Graphics, Inc."' >version.h + +tif_version.c.o %c4 version.h + +clean %c4 + {RM} {ALL} || set status 0 + {RM} {OBJS} || set status 0 + {RM} mkg3states || set status 0 + {RM} mkg3states.c.o || set status 0 + {RM} tif_fax3sm.c%c5 || set status 0 + {RM} version.h || set status 0 + diff --git a/contrib/mac-mpw/mactrans.c b/contrib/mac-mpw/mactrans.c new file mode 100755 index 0000000..e0e508d --- /dev/null +++ b/contrib/mac-mpw/mactrans.c @@ -0,0 +1,56 @@ +/* + * mactrans.c -- Hack filter used to generate MPW files + * with special characters from pure ASCII, denoted "%nn" + * where nn is hex. (except for "%%", which is literal '%'). + * + * calling sequence: + * + * catenate file | mactrans [-toascii | -fromascii] > output + * + * Written by: Niles Ritter. + */ +#include +#include +#include + +void to_ascii(void); +void from_ascii(void); + +main(int argc, char *argv[]) +{ + if (argc<2 || argv[1][1]=='f') from_ascii(); + else to_ascii(); + exit (0); +} + +void from_ascii(void) +{ + char c; + int d; + while ((c=getchar())!=EOF) + { + if (c!='%' || (c=getchar())=='%') putchar(c); + else + { + ungetc(c,stdin); + scanf("%2x",&d); + *((unsigned char *)&c) = d; + putchar(c); + } + } +} + +void to_ascii(void) +{ + char c; + int d; + while ((c=getchar())!=EOF) + { + if (isascii(c)) putchar (c); + else + { + d = *((unsigned char *)&c); + printf("%%%2x",d); + } + } +} diff --git a/contrib/mac-mpw/port.make b/contrib/mac-mpw/port.make new file mode 100755 index 0000000..9d31cf9 --- /dev/null +++ b/contrib/mac-mpw/port.make @@ -0,0 +1,53 @@ +# +# Tag Image File Format Library +# +# Copyright (c) 1995 Sam Leffler +# Copyright (c) 1995 Silicon Graphics, Inc. +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Sam Leffler and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# +DEPTH= :: +SRCDIR= : + +NULL = +CC = C +AR = Lib +AROPTS = +RM= delete -y + +IPATH = -I {DEPTH} -I {SRCDIR} +COPTS = +OPTIMIZER= +CFLAGS = {COPTS} {OPTIMIZER} {IPATH} + +CFILES = +OBJECTS = getopt.c.o +TARGETS = libport.o + +.c.o %c4 .c + {CC} -model far {COptions} {CFLAGS} -s {Default} {DepDir}{Default}.c -o {TargDir}{Default}.c.o + +all %c4 {TARGETS} + +libport.o %c4 {OBJECTS} + {AR} {OBJECTS} -o libport.o + +clean %c4 + {RM} {TARGETS} {OBJECTS} || set status 0 diff --git a/contrib/mac-mpw/readme b/contrib/mac-mpw/readme new file mode 100755 index 0000000..23a05a5 --- /dev/null +++ b/contrib/mac-mpw/readme @@ -0,0 +1,20 @@ +###################### +About contrib:mac-mpw: +###################### + +This directory contains all of the utilities and makefile source +to build the LIBTIFF library and tools from the MPW Shell. The +file BUILD.mpw in this directory is an executable script +which uses all of these files to create the MPW makefiles and +run them. + +The .make files are not MPW makefiles as such, +but are when run through the "mactrans" program, which turns +the ascii "%nn" metacharacters into the standard weird MPW +make characters. + +This translation trick is necessary to protect the files when +they are put into unix tarfiles, which tend to mangle the +special characters. + + --Niles Ritter (ndr@tazboy.jpl.nasa.gov) diff --git a/contrib/mac-mpw/tools.make b/contrib/mac-mpw/tools.make new file mode 100755 index 0000000..053dbf0 --- /dev/null +++ b/contrib/mac-mpw/tools.make @@ -0,0 +1,138 @@ +# +# Tag Image File Format Library +# +# Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994 Sam Leffler +# Copyright (c) 1991, 1992, 1993, 1994 Silicon Graphics, Inc. +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Stanford and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# + +# +# Makefile for Mac using MPW 3.2.3 and MPW C 3.2.4 +# +COPTS = -model far + +.c.o %c4 .c + {C} {COPTS} {CFLAGS} -s {Default} {DepDir}{Default}.c -o {TargDir}{Default}.c.o + +RM = delete -y -i + +CONF_LIBRARY= %b6 + -d USE_CONST=0 %b6 + -d BSDTYPES +NULL= + +IPATH= -I ::libtiff + +CFLAGS= -w -m {IPATH} {CONF_LIBRARY} + +LIBPORT= ::port:libport.o + +LOptions= -model far -w -srt -d -c 'MPS ' -t MPST + +LIBTIFF= ::libtiff:libtiff.o + +LIBS= {LIBTIFF} %b6 + {LIBPORT} %b6 + "{CLibraries}"CSANELib.o %b6 + "{CLibraries}"Math.o %b6 + "{CLibraries}"StdClib.o %b6 + "{Libraries}"Stubs.o %b6 + "{Libraries}"Runtime.o %b6 + "{Libraries}"Interface.o %b6 + "{Libraries}"ToolLibs.o %b6 + {NULL} + +SRCS= %b6 + pal2rgb.c %b6 + ras2tiff.c %b6 + thumbnail.c %b6 + tiff2bw.c %b6 + tiff2ps.c %b6 + tiffcmp.c %b6 + tiffcp.c %b6 + tiffdither.c %b6 + tiffdump.c %b6 + tiffinfo.c %b6 + tiffmedian.c %b6 + {NULL} + +MACHALL=ras2tiff + +ALL= %b6 + tiffinfo %b6 + tiffcmp %b6 + tiffcp %b6 + tiffdump %b6 + tiffmedian %b6 + tiff2bw %b6 + tiffdither %b6 + tiff2ps %b6 + pal2rgb %b6 + gif2tiff %b6 + {MACHALL} + +all %c4 {ALL} + +tiffinfo %c4 tiffinfo.c.o {LIBTIFF} + Link {LOptions} tiffinfo.c.o {LIBS} -o tiffinfo + +tiffcmp %c4 tiffcmp.c.o {LIBTIFF} + Link {LOptions} tiffcmp.c.o {LIBS} -o tiffcmp + +tiffcp %c4 tiffcp.c.o {LIBTIFF} + Link {LOptions} tiffcp.c.o {LIBS} -o tiffcp + +tiffdump %c4 tiffdump.c.o {LIBTIFF} + Link {LOptions} tiffdump.c.o {LIBS} -o tiffdump + +tiffmedian %c4 tiffmedian.c.o {LIBTIFF} + Link {LOptions} tiffmedian.c.o {LIBS} -o tiffmedian + +tiff2ps %c4 tiff2ps.c.o {LIBTIFF} + Link {LOptions} tiff2ps.c.o {LIBS} -o tiff2ps + +# junky stuff... +# convert RGB image to B&W +tiff2bw %c4 tiff2bw.c.o {LIBTIFF} + Link {LOptions} tiff2bw.c.o {LIBS} -o tiff2bw + +# convert B&W image to bilevel w/ FS dithering +tiffdither %c4 tiffdither.c.o {LIBTIFF} + Link {LOptions} tiffdither.c.o {LIBS} -o tiffdither + +# GIF converter +gif2tiff %c4 gif2tiff.c.o {LIBTIFF} + Link {LOptions} gif2tiff.c.o {LIBS} -o gif2tiff + +# convert Palette image to RGB +pal2rgb %c4 pal2rgb.c.o {LIBTIFF} + Link {LOptions} pal2rgb.c.o {LIBS} -o pal2rgb + +# Sun rasterfile converter +ras2tiff %c4 ras2tiff.c.o {LIBTIFF} + Link {LOptions} ras2tiff.c.o {LIBS} -o ras2tiff + +# generate thumbnail images from fax +thumbnail %c4 thumbnail.c.o {LIBTIFF} + Link {LOptions} thumbnail.c.o {LIBS} -o thumbnail + +clean %c4 + {RM} {ALL} %c5.c.o ycbcr diff --git a/contrib/mac-mpw/top.make b/contrib/mac-mpw/top.make new file mode 100755 index 0000000..27ab5ec --- /dev/null +++ b/contrib/mac-mpw/top.make @@ -0,0 +1,133 @@ +# +# Tag Image File Format Library +# +# Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994 Sam Leffler +# Copyright (c) 1991, 1992, 1993, 1994 Silicon Graphics, Inc. +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Stanford and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# + +# +# Makefile for Mac using MPW 3.2.3 and MPW C 3.2.4 +# +# +# Written by: Niles D. Ritter +# + +RM= delete -y -i +PORT=:port: +LIBTIFF=:libtiff: +TOOLS=:tools: +CONTRIB=:contrib:mac-mpw: + +MACTRANS="{CONTRIB}mactrans" + +NULL= + +MAKEFILES = %b6 + {PORT}Makefile %b6 + {LIBTIFF}Makefile %b6 + {TOOLS}Makefile %b6 + {NULL} + +all %c4 PORT LIBTIFF TOOLS + +MAKEFILES %c4 {MAKEFILES} +TOOLS %c4 LIBTIFF + +LIBTIFF %c4 PORT + +# Create the port routines +PORT %c4 {PORT}Makefile + directory {PORT} + (make || set status 0) > build.mpw + set echo 1 + execute build.mpw + set echo 0 + {RM} build.mpw || set status 0 + directory :: + +# Create the port routines +LIBTIFF %c4 {LIBTIFF}Makefile + directory {LIBTIFF} + (make || set status 0) > build.mpw + set echo 1 + execute build.mpw + set echo 0 + {RM} build.mpw || set status 0 + directory :: + +# Create the tools +TOOLS %c4 {TOOLS}Makefile + directory {TOOLS} + (make || set status 0) > build.mpw + set echo 1 + execute build.mpw + set echo 0 + {RM} build.mpw || set status 0 + directory :: + +# Makefile dependencies +{PORT}Makefile %c4 {CONTRIB}port.make + catenate {CONTRIB}port.make | {MACTRANS} > {PORT}Makefile + +{LIBTIFF}Makefile %c4 {CONTRIB}libtiff.make + catenate {CONTRIB}libtiff.make | {MACTRANS} > {LIBTIFF}Makefile + +{TOOLS}Makefile %c4 {CONTRIB}tools.make + catenate {CONTRIB}tools.make | {MACTRANS} > {TOOLS}Makefile + + +clean %c4 clean.port clean.contrib clean.libtiff clean.tools clean.make + +clean.port %c4 + directory {PORT} + (make clean || set status 0) > purge + purge + {RM} purge || set status 0 + {RM} Makefile || set status 0 + {RM} build.mpw || set status 0 + cd :: + +clean.contrib %c4 + {RM} {MACTRANS} || set status 0 + +clean.libtiff %c4 + directory {LIBTIFF} + (make clean || set status 0) > purge + purge + {RM} purge || set status 0 + {RM} Makefile || set status 0 + {RM} build.mpw || set status 0 + cd :: + +clean.tools %c4 + directory {TOOLS} + (make clean || set status 0) > purge + purge + {RM} purge || set status 0 + {RM} Makefile || set status 0 + {RM} build.mpw || set status 0 + cd :: + +clean.make %c4 + {RM} {MAKEFILES} || set status 0 + {RM} build.mpw || set status 0 + diff --git a/contrib/mfs/mfs_file.c b/contrib/mfs/mfs_file.c new file mode 100755 index 0000000..1723de1 --- /dev/null +++ b/contrib/mfs/mfs_file.c @@ -0,0 +1,579 @@ +/* +-------------------------------------------------------------------------------- +- Module : mem_file.c +- Description : A general purpose library for manipulating a memory area +- as if it were a file. +- mfs_ stands for memory file system. +- Author : Mike Johnson - Banctec AB 03/07/96 +- +-------------------------------------------------------------------------------- +*/ + +/* + +Copyright (c) 1996 Mike Johnson +Copyright (c) 1996 BancTec AB + +Permission to use, copy, modify, distribute, and sell this software +for any purpose is hereby granted without fee, provided +that (i) the above copyright notices and this permission notice appear in +all copies of the software and related documentation, and (ii) the names of +Mike Johnson and BancTec may not be used in any advertising or +publicity relating to the software. + +THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +IN NO EVENT SHALL MIKE JOHNSON OR BANCTEC BE LIABLE FOR +ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +OF THIS SOFTWARE. + +*/ + + +/* +-------------------------------------------------------------------------------- +- Includes +-------------------------------------------------------------------------------- +*/ + +#include +#include +#include + +/* +-------------------------------------------------------------------------------- +- Definitions +-------------------------------------------------------------------------------- +*/ + +#define MAX_BUFFS 20 +#define FALSE 0 +#define TRUE 1 + +/* +-------------------------------------------------------------------------------- +- Globals +-------------------------------------------------------------------------------- +*/ + +static char *buf[MAX_BUFFS]; /* Memory for each open buf */ +static long buf_off[MAX_BUFFS]; /* File pointer for each buf */ +static long buf_size[MAX_BUFFS]; /* Count of bytes allocated for each buf */ +static long fds[MAX_BUFFS]; /* File descriptor status */ +static int buf_mode[MAX_BUFFS]; /* Mode of buffer (r, w, a) */ + +static int library_init_done = FALSE; + + +/* +-------------------------------------------------------------------------------- +- Function prototypes +-------------------------------------------------------------------------------- +*/ + +int mfs_open (void *ptr, int size, char *mode); +int mfs_lseek (int fd, int offset, int whence); +int mfs_read (int fd, void *buf, int size); +int mfs_write (int fd, void *buf, int size); +int mfs_size (int fd); +int mfs_map (int fd, char **addr, size_t *len); +int mfs_unmap (int fd); +int mfs_close (int fd); +static int extend_mem_file (int fd, int size); +static void mem_init (); + +/* +-------------------------------------------------------------------------------- +- Function code +-------------------------------------------------------------------------------- +*/ + +/* +-------------------------------------------------------------------------------- +- Function : mfs_open () +- +- Arguments : Pointer to allocated buffer, initial size of buffer, +- mode spec (r, w, a) +- +- Returns : File descriptor or -1 if error. +- +- Description : Register this area of memory (which has been allocated +- and has a file read into it) under the mem_file library. +- A file descriptor is returned which can the be passed +- back to TIFFClientOpen and used as if it was a disk +- based fd. +- If the call is for mode 'w' then pass (void *)NULL as +- the buffer and zero size and the library will +- allocate memory for you. +- If the mode is append then pass (void *)NULL and size +- zero or with a valid address. +- +-------------------------------------------------------------------------------- +*/ + +int mfs_open (void *buffer, int size, char *mode) +{ + int ret, i; + void *tmp; + + if (library_init_done == FALSE) + { + mem_init (); + library_init_done = TRUE; + } + + ret = -1; + + /* Find a free fd */ + + for (i = 0; i < MAX_BUFFS; i++) + { + if (fds[i] == -1) + { + ret = i; + break; + } + } + + if (i == MAX_BUFFS) /* No more free descriptors */ + { + ret = -1; + errno = EMFILE; + } + + if (ret >= 0 && *mode == 'r') + { + if (buffer == (void *)NULL) + { + ret = -1; + errno = EINVAL; + } + else + { + buf[ret] = (char *)buffer; + buf_size[ret] = size; + buf_off[ret] = 0; + } + } + else if (ret >= 0 && *mode == 'w') + { + + if (buffer != (void *)NULL) + { + ret = -1; + errno = EINVAL; + } + + else + { + tmp = malloc (0); /* Get a pointer */ + if (tmp == (void *)NULL) + { + ret = -1; + errno = EDQUOT; + } + else + { + buf[ret] = (char *)tmp; + buf_size[ret] = 0; + buf_off[ret] = 0; + } + } + } + else if (ret >= 0 && *mode == 'a') + { + if (buffer == (void *) NULL) /* Create space for client */ + { + tmp = malloc (0); /* Get a pointer */ + if (tmp == (void *)NULL) + { + ret = -1; + errno = EDQUOT; + } + else + { + buf[ret] = (char *)tmp; + buf_size[ret] = 0; + buf_off[ret] = 0; + } + } + else /* Client has file read in already */ + { + buf[ret] = (char *)buffer; + buf_size[ret] = size; + buf_off[ret] = 0; + } + } + else /* Some other invalid combination of parameters */ + { + ret = -1; + errno = EINVAL; + } + + if (ret != -1) + { + fds[ret] = 0; + buf_mode[ret] = *mode; + } + + return (ret); +} + +/* +-------------------------------------------------------------------------------- +- Function : mfs_lseek () +- +- Arguments : File descriptor, offset, whence +- +- Returns : as per man lseek (2) +- +- Description : Does the same as lseek (2) except on a memory based file. +- Note: the memory area will be extended if the caller +- attempts to seek past the current end of file (memory). +- +-------------------------------------------------------------------------------- +*/ + +int mfs_lseek (int fd, int offset, int whence) +{ + int ret; + long test_off; + + if (fds[fd] == -1) /* Not open */ + { + ret = -1; + errno = EBADF; + } + else if (offset < 0 && whence == SEEK_SET) + { + ret = -1; + errno = EINVAL; + } + else + { + switch (whence) + { + case SEEK_SET: + if (offset > buf_size[fd]) + extend_mem_file (fd, offset); + buf_off[fd] = offset; + ret = offset; + break; + + case SEEK_CUR: + test_off = buf_off[fd] + offset; + + if (test_off < 0) + { + ret = -1; + errno = EINVAL; + } + else + { + if (test_off > buf_size[fd]) + extend_mem_file (fd, test_off); + buf_off[fd] = test_off; + ret = test_off; + } + break; + + case SEEK_END: + test_off = buf_size[fd] + offset; + + if (test_off < 0) + { + ret = -1; + errno = EINVAL; + } + else + { + if (test_off > buf_size[fd]) + extend_mem_file (fd, test_off); + buf_off[fd] = test_off; + ret = test_off; + } + break; + + default: + errno = EINVAL; + ret = -1; + break; + } + } + + return (ret); +} + +/* +-------------------------------------------------------------------------------- +- Function : mfs_read () +- +- Arguments : File descriptor, buffer, size +- +- Returns : as per man read (2) +- +- Description : Does the same as read (2) except on a memory based file. +- Note: An attempt to read past the end of memory currently +- allocated to the file will return 0 (End Of File) +- +-------------------------------------------------------------------------------- +*/ + +int mfs_read (int fd, void *clnt_buf, int size) +{ + int ret; + + if (fds[fd] == -1 || buf_mode[fd] != 'r') + { + /* File is either not open, or not opened for read */ + + ret = -1; + errno = EBADF; + } + else if (buf_off[fd] + size > buf_size[fd]) + { + ret = 0; /* EOF */ + } + else + { + memcpy (clnt_buf, (void *) (buf[fd] + buf_off[fd]), size); + buf_off[fd] = buf_off[fd] + size; + ret = size; + } + + return (ret); +} + +/* +-------------------------------------------------------------------------------- +- Function : mfs_write () +- +- Arguments : File descriptor, buffer, size +- +- Returns : as per man write (2) +- +- Description : Does the same as write (2) except on a memory based file. +- Note: the memory area will be extended if the caller +- attempts to write past the current end of file (memory). +- +-------------------------------------------------------------------------------- +*/ + +int mfs_write (int fd, void *clnt_buf, int size) +{ + int ret; + + if (fds[fd] == -1 || buf_mode[fd] == 'r') + { + /* Either the file is not open or it is opened for reading only */ + + ret = -1; + errno = EBADF; + } + else if (buf_mode[fd] == 'w') + { + /* Write */ + + if (buf_off[fd] + size > buf_size[fd]) + { + extend_mem_file (fd, buf_off[fd] + size); + buf_size[fd] = (buf_off[fd] + size); + } + + memcpy ((buf[fd] + buf_off[fd]), clnt_buf, size); + buf_off[fd] = buf_off[fd] + size; + + ret = size; + } + else + { + /* Append */ + + if (buf_off[fd] != buf_size[fd]) + buf_off[fd] = buf_size[fd]; + + extend_mem_file (fd, buf_off[fd] + size); + buf_size[fd] += size; + + memcpy ((buf[fd] + buf_off[fd]), clnt_buf, size); + buf_off[fd] = buf_off[fd] + size; + + ret = size; + } + + return (ret); +} + +/* +-------------------------------------------------------------------------------- +- Function : mfs_size () +- +- Arguments : File descriptor +- +- Returns : integer file size +- +- Description : This function returns the current size of the file in bytes. +- +-------------------------------------------------------------------------------- +*/ + +int mfs_size (int fd) +{ + int ret; + + if (fds[fd] == -1) /* Not open */ + { + ret = -1; + errno = EBADF; + } + else + ret = buf_size[fd]; + + return (ret); +} + +/* +-------------------------------------------------------------------------------- +- Function : mfs_map () +- +- Arguments : File descriptor, ptr to address, ptr to length +- +- Returns : Map status (succeeded or otherwise) +- +- Description : This function tells the client where the file is mapped +- in memory and what size the mapped area is. It is provided +- to satisfy the MapProc function in libtiff. It pretends +- that the file has been mmap (2)ped. +- +-------------------------------------------------------------------------------- +*/ + +int mfs_map (int fd, char **addr, size_t *len) +{ + int ret; + + if (fds[fd] == -1) /* Not open */ + { + ret = -1; + errno = EBADF; + } + else + { + *addr = buf[fd]; + *len = buf_size[fd]; + ret = 0; + } + + return (ret); +} + +/* +-------------------------------------------------------------------------------- +- Function : mfs_unmap () +- +- Arguments : File descriptor +- +- Returns : UnMap status (succeeded or otherwise) +- +- Description : This function does nothing as the file is always +- in memory. +- +-------------------------------------------------------------------------------- +*/ + +int mfs_unmap (int fd) +{ + return (0); +} + +/* +-------------------------------------------------------------------------------- +- Function : mfs_close () +- +- Arguments : File descriptor +- +- Returns : close status (succeeded or otherwise) +- +- Description : Close the open memory file. (Make fd available again.) +- +-------------------------------------------------------------------------------- +*/ + +int mfs_close (int fd) +{ + int ret; + + if (fds[fd] == -1) /* Not open */ + { + ret = -1; + errno = EBADF; + } + else + { + fds[fd] = -1; + ret = 0; + } + + return (ret); +} + +/* +-------------------------------------------------------------------------------- +- Function : extend_mem_file () +- +- Arguments : File descriptor, length to extend to. +- +- Returns : 0 - All OK, -1 - realloc () failed. +- +- Description : Increase the amount of memory allocated to a file. +- +-------------------------------------------------------------------------------- +*/ + +static int extend_mem_file (int fd, int size) +{ + void *new_mem; + int ret; + + if ((new_mem = realloc (buf[fd], size)) == (void *) NULL) + ret = -1; + else + { + buf[fd] = (char *) new_mem; + ret = 0; + } + + return (ret); +} + +/* +-------------------------------------------------------------------------------- +- Function : mem_init () +- +- Arguments : None +- +- Returns : void +- +- Description : Initialise the library. +- +-------------------------------------------------------------------------------- +*/ + +static void mem_init () +{ + int i; + + for (i = 0; i < MAX_BUFFS; i++) + { + fds[i] = -1; + buf[i] = (char *)NULL; + buf_size[i] = 0; + buf_off[i] = 0; + } +} + diff --git a/contrib/mfs/readme b/contrib/mfs/readme new file mode 100755 index 0000000..827e047 --- /dev/null +++ b/contrib/mfs/readme @@ -0,0 +1,37 @@ +Date: Mon, 23 Jun 1997 13:30:48 +0200 +To: + +From: "Mike Johnson" +Subject: libtiff - Thanks + +Return-Path: mikehunt@swipnet.se +Delivery-Date: Mon, 23 Jun 1997 06:53:39 -0700 + +Hi Sam, + +I noticed in the README from libtiff that you would like to know about +what people have done with libtiff, so I thought I would drop you a +line. + +We have used libtiff to create and convert TIFF images of financial +documents which are sent from and to major document processing systems +in Sweden and Denmark. + +I would like to express my deep gratitude to yourself and Sillicon +Graphics for making this excellent library available for public use. +There is obviously a lot of work that has gone in to libtiff and the +quality of the code and documentation is an example to others. + +One thing that libtiff did not do was work on a memory area rather than +files. In my applications I had already read a TIFF or other format +file in to memory and did not want to waste I/O writing it out again +for libtiff's benefit. I therefore constructed a set of functions to +pass up to TIFFClientOpen to simulate a file in memory. I have attached +my mfs (memory file system) source code for you to use or junk, as you +see fit. :-) + +Once again, thanks very much for making my life simpler. + +Best Regards, + +Mike Johnson. diff --git a/contrib/pds/readme b/contrib/pds/readme new file mode 100755 index 0000000..47db5f3 --- /dev/null +++ b/contrib/pds/readme @@ -0,0 +1,90 @@ +Date: Fri, 01 Aug 1997 20:14:52 MDT +To: Sam Leffler + +From: "Conrad J. Poelman (WSAT)" +Subject: Potential TIFF library additions + +Delivery-Date: Fri, 01 Aug 1997 19:21:06 -0700 + +Sam, + +You probably don't remember me, but I sent in a couple of bug fixes +regarding the TIFF library about a 16 months ago or so... + +I just wanted to send you two other additions that I have made to our +local version of the TIFF library in hopes that you will want to +incorporate them into your next major release of the TIFF library. +(These additions are based on TIFF version 3.4beta31, but they sit on +top of the library so they shouldn't be much trouble to incorporate them +into any more recent version.) They are internally documented to a +reasonable extent and we've been successfully using them in our code +here for over a year. If you think they would make good additions to the +TIFF library, I'd be happy to clean them up more, document them more, +and/or integrate them with the latest version of the TIFF library, but I +figured I'd see if you were interested in using them before I went to +all that trouble. + +TIFF Image Iterator +------------------- +Your ReadRGBA() routine works well for reading many different formats +(TILED, STIP, compressed or not, etc.) of the most basic types of data +(RGB, 8-bit greyscale, 8-bit colormapped) into an SGI-style data array, +and serves as a good template for users with other needs. I used it as +an exmaple of how to make an iterator which, rather than fill a data +array, calls an arbitrary user-supplied callback function for each +"chunk" of data - that "chunk" might be a strip or a tile, and might +have one sample-per-pixel or two, and might be 8-bit data or 16-bit or +24-bit. The callback function can do whatever it wants with the data - +store it in a big array, convert it to RGBA, or draw it directly to the +screen. I was able to use this iterator to read 16-bit greyscale and 32- +and 64-bit floating point data, which wasn't possible with ReadRGBA(). + +I have tested this routine with 8- and 16-bit greyscale data as well as +with 32- and 64-bit floating point data. I believe nearly all of our +data is organized in strips, so actually I'd appreciate it if you had +some tiled images that I could test it with. + +It should certainly be possible and would be cleanest to reimplement +ReadRGBA() in terms of the image iterator, but I haven't done that. + + +Private Sub-Directory Read/Write +-------------------------------- +TIFF-PL is a Phillips Laboratory extension to the TIFF tags that allows +us to store satellite imaging-specific information in a TIFF format, +such as the satellite's trajectory, the imaging time, etc. In order to +give us the flexibility to modify the tag definitions without getting +approval from the TIFF committee every time, we were given only three +TIFF tags - a PL signature, a PL version number, and PL directory +offset, which lists the position in the file at which to find a private +sub-directory of tags-value pairs. So I wrote two routines: +TIFFWritePrivateDataSubDirectory(), which takes a list of tags and a +"get" function and writes the tag values into the TIFF file, returning +the offset within the file at which it wrote the directory; and +TIFFReadPrivateDataSubDirectory(), which takes an offset, a list of +tags, and a "set" function and reads all the data from the private +directory. The functions themselves are pretty simple. (The files are +huge because I had to basically copy all of the tif_dirread.c and +tif_dirwrite.c files in order to access the various fetching routines +which were all declared static and therefore inaccessible in the TIFF +library.) + + +I'm including the four source files (tif_imgiter.h, tif_imgiter.c, +tif_pdsdirread.c, tif_pdsdirwrite.c) in case you want to take a look at +them. I can also send you some sample code that uses them if you like. +If you're interested in having them incorporated into the standard TIFF +library, I'd be happy to do that integration and clean up and document +the routines. (For example, I've already realized that instead of +limiting the SEP callback function to three bands (R,G,B) it should take +an array to enable the handling of n-banded multi-spectral data...) If +not, I'll just leave them as they are, since they work fine for us now. + +Holler if you have any questions. + +-- Conrad +__________________________________________________________________ + Capt Conrad J. Poelman PL/WSAT (Phillips Laboratory) + 505-846-4347 3550 Aberdeen Ave SE + (FAX) 505-846-4374 Kirtland AFB, NM 87117-5776 + diff --git a/contrib/pds/tif_imageiter.c b/contrib/pds/tif_imageiter.c new file mode 100755 index 0000000..50242b4 --- /dev/null +++ b/contrib/pds/tif_imageiter.c @@ -0,0 +1,518 @@ +/* $Header: /home/cvsroot/libtiff/contrib/pds/tif_imageiter.c,v 1.1.1.1 2000/06/24 19:10:17 tshead Exp $ */ + +/* + * Copyright (c) 1991-1996 Sam Leffler + * Copyright (c) 1991-1996 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library + * + * Written by Conrad J. Poelman, PL/WSAT, Kirtland AFB, NM on 26 Mar 96. + * + * This file contains code to allow a calling program to "iterate" over each + * pixels in an image as it is read from the file. The iterator takes care of + * reading strips versus (possibly clipped) tiles, decoding the information + * according to the decoding method, and so on, so that calling program can + * ignore those details. The calling program does, however, need to be + * conscious of the type of the pixel data that it is receiving. + * + * For reasons of efficiency, the callback function actually gets called for + * "blocks" of pixels rather than for individual pixels. The format of the + * callback arguments is given below. + * + * This code was taken from TIFFReadRGBAImage() in tif_getimage.c of the original + * TIFF distribution, and simplified and generalized to provide this general + * iteration capability. Those routines could certainly be re-implemented in terms + * of a TIFFImageIter if desired. + * + */ +#include "tiffiop.h" +#include "tif_imgiter.h" +#include +#include + +static int gtTileContig(TIFFImageIter*, void *udata, uint32, uint32); +static int gtTileSeparate(TIFFImageIter*, void *udata, uint32, uint32); +static int gtStripContig(TIFFImageIter*, void *udata, uint32, uint32); +static int gtStripSeparate(TIFFImageIter*, void *udata, uint32, uint32); + +static const char photoTag[] = "PhotometricInterpretation"; + +static int +isCCITTCompression(TIFF* tif) +{ + uint16 compress; + TIFFGetField(tif, TIFFTAG_COMPRESSION, &compress); + return (compress == COMPRESSION_CCITTFAX3 || + compress == COMPRESSION_CCITTFAX4 || + compress == COMPRESSION_CCITTRLE || + compress == COMPRESSION_CCITTRLEW); +} + +int +TIFFImageIterBegin(TIFFImageIter* img, TIFF* tif, int stop, char emsg[1024]) +{ + uint16* sampleinfo; + uint16 extrasamples; + uint16 planarconfig; + int colorchannels; + + img->tif = tif; + img->stoponerr = stop; + TIFFGetFieldDefaulted(tif, TIFFTAG_BITSPERSAMPLE, &img->bitspersample); + img->alpha = 0; + TIFFGetFieldDefaulted(tif, TIFFTAG_SAMPLESPERPIXEL, &img->samplesperpixel); + TIFFGetFieldDefaulted(tif, TIFFTAG_EXTRASAMPLES, + &extrasamples, &sampleinfo); + if (extrasamples == 1) + switch (sampleinfo[0]) { + case EXTRASAMPLE_ASSOCALPHA: /* data is pre-multiplied */ + case EXTRASAMPLE_UNASSALPHA: /* data is not pre-multiplied */ + img->alpha = sampleinfo[0]; + break; + } + colorchannels = img->samplesperpixel - extrasamples; + TIFFGetFieldDefaulted(tif, TIFFTAG_PLANARCONFIG, &planarconfig); + if (!TIFFGetField(tif, TIFFTAG_PHOTOMETRIC, &img->photometric)) { + switch (colorchannels) { + case 1: + if (isCCITTCompression(tif)) + img->photometric = PHOTOMETRIC_MINISWHITE; + else + img->photometric = PHOTOMETRIC_MINISBLACK; + break; + case 3: + img->photometric = PHOTOMETRIC_RGB; + break; + default: + sprintf(emsg, "Missing needed %s tag", photoTag); + return (0); + } + } + switch (img->photometric) { + case PHOTOMETRIC_PALETTE: + if (!TIFFGetField(tif, TIFFTAG_COLORMAP, + &img->redcmap, &img->greencmap, &img->bluecmap)) { + TIFFError(TIFFFileName(tif), "Missing required \"Colormap\" tag"); + return (0); + } + /* fall thru... */ + case PHOTOMETRIC_MINISWHITE: + case PHOTOMETRIC_MINISBLACK: +/* This should work now so skip the check - BSR + if (planarconfig == PLANARCONFIG_CONTIG && img->samplesperpixel != 1) { + sprintf(emsg, + "Sorry, can not handle contiguous data with %s=%d, and %s=%d", + photoTag, img->photometric, + "Samples/pixel", img->samplesperpixel); + return (0); + } + */ + break; + case PHOTOMETRIC_YCBCR: + if (planarconfig != PLANARCONFIG_CONTIG) { + sprintf(emsg, "Sorry, can not handle YCbCr images with %s=%d", + "Planarconfiguration", planarconfig); + return (0); + } + /* It would probably be nice to have a reality check here. */ + { uint16 compress; + TIFFGetField(tif, TIFFTAG_COMPRESSION, &compress); + if (compress == COMPRESSION_JPEG && planarconfig == PLANARCONFIG_CONTIG) { + /* can rely on libjpeg to convert to RGB */ + /* XXX should restore current state on exit */ + TIFFSetField(tif, TIFFTAG_JPEGCOLORMODE, JPEGCOLORMODE_RGB); + img->photometric = PHOTOMETRIC_RGB; + } + } + break; + case PHOTOMETRIC_RGB: + if (colorchannels < 3) { + sprintf(emsg, "Sorry, can not handle RGB image with %s=%d", + "Color channels", colorchannels); + return (0); + } + break; + case PHOTOMETRIC_SEPARATED: { + uint16 inkset; + TIFFGetFieldDefaulted(tif, TIFFTAG_INKSET, &inkset); + if (inkset != INKSET_CMYK) { + sprintf(emsg, "Sorry, can not handle separated image with %s=%d", + "InkSet", inkset); + return (0); + } + if (img->samplesperpixel != 4) { + sprintf(emsg, "Sorry, can not handle separated image with %s=%d", + "Samples/pixel", img->samplesperpixel); + return (0); + } + break; + } + default: + sprintf(emsg, "Sorry, can not handle image with %s=%d", + photoTag, img->photometric); + return (0); + } + TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &img->width); + TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &img->height); + + TIFFGetFieldDefaulted(tif, TIFFTAG_ORIENTATION, &img->orientation); + switch (img->orientation) { + case ORIENTATION_BOTRIGHT: + case ORIENTATION_RIGHTBOT: /* XXX */ + case ORIENTATION_LEFTBOT: /* XXX */ + TIFFWarning(TIFFFileName(tif), "using bottom-left orientation"); + img->orientation = ORIENTATION_BOTLEFT; + /* fall thru... */ + case ORIENTATION_BOTLEFT: + break; + case ORIENTATION_TOPRIGHT: + case ORIENTATION_RIGHTTOP: /* XXX */ + case ORIENTATION_LEFTTOP: /* XXX */ + default: + TIFFWarning(TIFFFileName(tif), "using top-left orientation"); + img->orientation = ORIENTATION_TOPLEFT; + /* fall thru... */ + case ORIENTATION_TOPLEFT: + break; + } + + img->isContig = + !(planarconfig == PLANARCONFIG_SEPARATE && colorchannels > 1); + if (img->isContig) { + img->get = TIFFIsTiled(tif) ? gtTileContig : gtStripContig; + } else { + img->get = TIFFIsTiled(tif) ? gtTileSeparate : gtStripSeparate; + } + return (1); +} + +int +TIFFImageIterGet(TIFFImageIter* img, void *udata, uint32 w, uint32 h) +{ + if (img->get == NULL) { + TIFFError(TIFFFileName(img->tif), "No \"get\" routine setup"); + return (0); + } + if (img->callback.any == NULL) { + TIFFError(TIFFFileName(img->tif), + "No \"put\" routine setupl; probably can not handle image format"); + return (0); + } + return (*img->get)(img, udata, w, h); +} + +TIFFImageIterEnd(TIFFImageIter* img) +{ + /* Nothing to free... ? */ +} + +/* + * Read the specified image into an ABGR-format raster. + */ +int +TIFFReadImageIter(TIFF* tif, + uint32 rwidth, uint32 rheight, uint8* raster, int stop) +{ + char emsg[1024]; + TIFFImageIter img; + int ok; + + if (TIFFImageIterBegin(&img, tif, stop, emsg)) { + /* XXX verify rwidth and rheight against width and height */ + ok = TIFFImageIterGet(&img, raster, rwidth, img.height); + TIFFImageIterEnd(&img); + } else { + TIFFError(TIFFFileName(tif), emsg); + ok = 0; + } + return (ok); +} + + +/* + * Get an tile-organized image that has + * PlanarConfiguration contiguous if SamplesPerPixel > 1 + * or + * SamplesPerPixel == 1 + */ +static int +gtTileContig(TIFFImageIter* img, void *udata, uint32 w, uint32 h) +{ + TIFF* tif = img->tif; + ImageIterTileContigRoutine callback = img->callback.contig; + uint16 orientation; + uint32 col, row; + uint32 tw, th; + u_char* buf; + int32 fromskew; + uint32 nrow; + + buf = (u_char*) _TIFFmalloc(TIFFTileSize(tif)); + if (buf == 0) { + TIFFError(TIFFFileName(tif), "No space for tile buffer"); + return (0); + } + TIFFGetField(tif, TIFFTAG_TILEWIDTH, &tw); + TIFFGetField(tif, TIFFTAG_TILELENGTH, &th); + orientation = img->orientation; + for (row = 0; row < h; row += th) { + nrow = (row + th > h ? h - row : th); + for (col = 0; col < w; col += tw) { + if (TIFFReadTile(tif, buf, col, row, 0, 0) < 0 && img->stoponerr) + break; + if (col + tw > w) { + /* + * Tile is clipped horizontally. Calculate + * visible portion and skewing factors. + */ + uint32 npix = w - col; + fromskew = tw - npix; + (*callback)(img, udata, col, row, npix, nrow, fromskew, buf); + } else { + (*callback)(img, udata, col, row, tw, nrow, 0, buf); + } + } + } + _TIFFfree(buf); + return (1); +} + +/* + * Get an tile-organized image that has + * SamplesPerPixel > 1 + * PlanarConfiguration separated + * We assume that all such images are RGB. + */ +static int +gtTileSeparate(TIFFImageIter* img, void *udata, uint32 w, uint32 h) +{ + TIFF* tif = img->tif; + ImageIterTileSeparateRoutine callback = img->callback.separate; + uint16 orientation; + uint32 col, row; + uint32 tw, th; + u_char* buf; + u_char* r; + u_char* g; + u_char* b; + u_char* a; + tsize_t tilesize; + int32 fromskew; + int alpha = img->alpha; + uint32 nrow; + + tilesize = TIFFTileSize(tif); + buf = (u_char*) _TIFFmalloc(4*tilesize); + if (buf == 0) { + TIFFError(TIFFFileName(tif), "No space for tile buffer"); + return (0); + } + r = buf; + g = r + tilesize; + b = g + tilesize; + a = b + tilesize; + if (!alpha) + memset(a, 0xff, tilesize); + TIFFGetField(tif, TIFFTAG_TILEWIDTH, &tw); + TIFFGetField(tif, TIFFTAG_TILELENGTH, &th); + orientation = img->orientation; + for (row = 0; row < h; row += th) { + nrow = (row + th > h ? h - row : th); + for (col = 0; col < w; col += tw) { + if (TIFFReadTile(tif, r, col, row,0,0) < 0 && img->stoponerr) + break; + if (TIFFReadTile(tif, g, col, row,0,1) < 0 && img->stoponerr) + break; + if (TIFFReadTile(tif, b, col, row,0,2) < 0 && img->stoponerr) + break; + if (alpha && TIFFReadTile(tif,a,col,row,0,3) < 0 && img->stoponerr) + break; + if (col + tw > w) { + /* + * Tile is clipped horizontally. Calculate + * visible portion and skewing factors. + */ + uint32 npix = w - col; + fromskew = tw - npix; + (*callback)(img, udata, col, row, npix, nrow, fromskew, r, g, b, a); + } else { + (*callback)(img, udata, col, row, tw, nrow, 0, r, g, b, a); + } + } + } + _TIFFfree(buf); + return (1); +} + +/* + * Get a strip-organized image that has + * PlanarConfiguration contiguous if SamplesPerPixel > 1 + * or + * SamplesPerPixel == 1 + */ +static int +gtStripContig(TIFFImageIter* img, void *udata, uint32 w, uint32 h) +{ + TIFF* tif = img->tif; + ImageIterTileContigRoutine callback = img->callback.contig; + uint16 orientation; + uint32 row, nrow; + u_char* buf; + uint32 rowsperstrip; + uint32 imagewidth = img->width; + tsize_t scanline; + int32 fromskew; + + buf = (u_char*) _TIFFmalloc(TIFFStripSize(tif)); + if (buf == 0) { + TIFFError(TIFFFileName(tif), "No space for strip buffer"); + return (0); + } + orientation = img->orientation; + TIFFGetFieldDefaulted(tif, TIFFTAG_ROWSPERSTRIP, &rowsperstrip); + scanline = TIFFScanlineSize(tif); + fromskew = (w < imagewidth ? imagewidth - w : 0); + for (row = 0; row < h; row += rowsperstrip) { + nrow = (row + rowsperstrip > h ? h - row : rowsperstrip); + if (TIFFReadEncodedStrip(tif, TIFFComputeStrip(tif, row, 0), + buf, nrow*scanline) < 0 && img->stoponerr) + break; + (*callback)(img, udata, 0, row, w, nrow, fromskew, buf); + } + _TIFFfree(buf); + return (1); +} + +/* + * Get a strip-organized image with + * SamplesPerPixel > 1 + * PlanarConfiguration separated + * We assume that all such images are RGB. + */ +static int +gtStripSeparate(TIFFImageIter* img, void *udata, uint32 w, uint32 h) +{ + TIFF* tif = img->tif; + ImageIterTileSeparateRoutine callback = img->callback.separate; + uint16 orientation; + u_char *buf; + u_char *r, *g, *b, *a; + uint32 row, nrow; + tsize_t scanline; + uint32 rowsperstrip; + uint32 imagewidth = img->width; + tsize_t stripsize; + int32 fromskew; + int alpha = img->alpha; + + stripsize = TIFFStripSize(tif); + r = buf = (u_char *)_TIFFmalloc(4*stripsize); + if (buf == 0) { + TIFFError(TIFFFileName(tif), "No space for tile buffer"); + return (0); + } + g = r + stripsize; + b = g + stripsize; + a = b + stripsize; + if (!alpha) + memset(a, 0xff, stripsize); + orientation = img->orientation; + TIFFGetFieldDefaulted(tif, TIFFTAG_ROWSPERSTRIP, &rowsperstrip); + scanline = TIFFScanlineSize(tif); + fromskew = (w < imagewidth ? imagewidth - w : 0); + for (row = 0; row < h; row += rowsperstrip) { + nrow = (row + rowsperstrip > h ? h - row : rowsperstrip); + if (TIFFReadEncodedStrip(tif, TIFFComputeStrip(tif, row, 0), + r, nrow*scanline) < 0 && img->stoponerr) + break; + if (TIFFReadEncodedStrip(tif, TIFFComputeStrip(tif, row, 1), + g, nrow*scanline) < 0 && img->stoponerr) + break; + if (TIFFReadEncodedStrip(tif, TIFFComputeStrip(tif, row, 2), + b, nrow*scanline) < 0 && img->stoponerr) + break; + if (alpha && + (TIFFReadEncodedStrip(tif, TIFFComputeStrip(tif, row, 3), + a, nrow*scanline) < 0 && img->stoponerr)) + break; + (*callback)(img, udata, 0, row, w, nrow, fromskew, r, g, b, a); + } + _TIFFfree(buf); + return (1); +} + +DECLAREContigCallbackFunc(TestContigCallback) +{ + printf("Contig Callback called with x = %d, y = %d, w = %d, h = %d, fromskew = %d\n", + x, y, w, h, fromskew); +} + + +DECLARESepCallbackFunc(TestSepCallback) +{ + printf("Sep Callback called with x = %d, y = %d, w = %d, h = %d, fromskew = %d\n", + x, y, w, h, fromskew); +} + + +#ifdef MAIN +main(int argc, char **argv) +{ + char emsg[1024]; + TIFFImageIter img; + int ok; + int stop = 1; + + TIFF *tif; + unsigned long nx, ny; + unsigned short BitsPerSample, SamplesPerPixel; + int isColorMapped, isPliFile; + unsigned char *ColorMap; + unsigned char *data; + + if (argc < 2) { + fprintf(stderr,"usage: %s tiff_file\n",argv[0]); + exit(1); + } + tif = (TIFF *)PLIGetImage(argv[1], (void *) &data, &ColorMap, + &nx, &ny, &BitsPerSample, &SamplesPerPixel, + &isColorMapped, &isPliFile); + if (tif != NULL) { + + if (TIFFImageIterBegin(&img, tif, stop, emsg)) { + /* Here need to set data and callback function! */ + if (img.isContig) { + img.callback = TestContigCallback; + } else { + img.callback = TestSepCallback; + } + ok = TIFFImageIterGet(&img, NULL, img.width, img.height); + TIFFImageIterEnd(&img); + } else { + TIFFError(TIFFFileName(tif), emsg); + } + } + +} +#endif diff --git a/contrib/pds/tif_imageiter.h b/contrib/pds/tif_imageiter.h new file mode 100755 index 0000000..4056889 --- /dev/null +++ b/contrib/pds/tif_imageiter.h @@ -0,0 +1,57 @@ +typedef struct _TIFFImageIter TIFFImageIter; + +/* The callback function is called for each "block" of image pixel data after + it has been read from the file and decoded. This image pixel data is in the + buffer pp, and this data represents the image pixels from (x,y) to + (x+w,y+h). It is stored in pixel format, so each pixel contains + img->samplesperpixel consecutive samples each containing img->bitspersample + bits of data. The array pp is ordered in h consecutive rows of w+fromskew + pixels each. */ +typedef void (*ImageIterTileContigRoutine) + (TIFFImageIter*, void *, uint32, uint32, uint32, uint32, int32, + unsigned char*); +#define DECLAREContigCallbackFunc(name) \ +static void name(\ + TIFFImageIter* img, \ + void* user_data, \ + uint32 x, uint32 y, \ + uint32 w, uint32 h, \ + int32 fromskew, \ + u_char* pp \ +) + +typedef void (*ImageIterTileSeparateRoutine) + (TIFFImageIter*, void *, uint32, uint32, uint32, uint32, int32, + unsigned char*, unsigned char*, unsigned char*, unsigned char*); +#define DECLARESepCallbackFunc(name) \ +static void name(\ + TIFFImageIter* img, \ + void* user_data, \ + uint32 x, uint32 y, \ + uint32 w, uint32 h,\ + int32 fromskew, \ + u_char* r, u_char* g, u_char* b, u_char* a\ +) + +struct _TIFFImageIter { + TIFF* tif; /* image handle */ + int stoponerr; /* stop on read error */ + int isContig; /* data is packed/separate */ + int alpha; /* type of alpha data present */ + uint32 width; /* image width */ + uint32 height; /* image height */ + uint16 bitspersample; /* image bits/sample */ + uint16 samplesperpixel; /* image samples/pixel */ + uint16 orientation; /* image orientation */ + uint16 photometric; /* image photometric interp */ + uint16* redcmap; /* colormap pallete */ + uint16* greencmap; + uint16* bluecmap; + /* get image data routine */ + int (*get)(TIFFImageIter*, void *udata, uint32, uint32); + union { + void (*any)(TIFFImageIter*); + ImageIterTileContigRoutine contig; + ImageIterTileSeparateRoutine separate; + } callback; /* fn to exec for each block */ +}; diff --git a/contrib/pds/tif_pdsdirread.c b/contrib/pds/tif_pdsdirread.c new file mode 100755 index 0000000..6c6a7c3 --- /dev/null +++ b/contrib/pds/tif_pdsdirread.c @@ -0,0 +1,1124 @@ +/* $Header: /home/cvsroot/libtiff/contrib/pds/tif_pdsdirread.c,v 1.1.1.1 2000/06/24 19:10:17 tshead Exp $ */ + +/* + * Copyright (c) 1988-1996 Sam Leffler + * Copyright (c) 1991-1996 Silicon Graphics, Inc. + * Copyright (c( 1996 USAF Phillips Laboratory + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library. + * + * These routines written by Conrad J. Poelman on a single late-night of + * March 20-21, 1996. + * + * The entire purpose of this file is to provide a single external function, + * TIFFReadPrivateDataSubDirectory(). This function is intended for use in reading a + * private subdirectory from a TIFF file into a private structure. The + * actual writing of data into the structure is handled by the setFieldFn(), + * which is passed to TIFFReadPrivateDataSubDirectory() as a parameter. The idea is to + * enable any application wishing to store private subdirectories to do so + * easily using this function, without modifying the TIFF library. + * + * The astute observer will notice that only two functions are at all different + * from the original tif_dirread.c file: TIFFReadPrivateDataSubDirectory() and + * TIFFFetchNormalSubTag(). All the other stuff that makes this file so huge + * is only necessary because all of those functions are declared static in + * tif_dirread.c, so we have to totally duplicate them in order to use them. + * + * Oh, also note the bug fix in TIFFFetchFloat(). + * + */ + +#include "tiffiop.h" + +#define IGNORE 0 /* tag placeholder used below */ + +#if HAVE_IEEEFP +#define TIFFCvtIEEEFloatToNative(tif, n, fp) +#define TIFFCvtIEEEDoubleToNative(tif, n, dp) +#else +extern void TIFFCvtIEEEFloatToNative(TIFF*, uint32, float*); +extern void TIFFCvtIEEEDoubleToNative(TIFF*, uint32, double*); +#endif + +static void EstimateStripByteCounts(TIFF*, TIFFDirEntry*, uint16); +static void MissingRequired(TIFF*, const char*); +static int CheckDirCount(TIFF*, TIFFDirEntry*, uint32); +static tsize_t TIFFFetchData(TIFF*, TIFFDirEntry*, char*); +static tsize_t TIFFFetchString(TIFF*, TIFFDirEntry*, char*); +static float TIFFFetchRational(TIFF*, TIFFDirEntry*); +static int TIFFFetchNormalSubTag(TIFF*, TIFFDirEntry*, const TIFFFieldInfo*, + int (*getFieldFn)(TIFF *tif,ttag_t tag,...)); +static int TIFFFetchPerSampleShorts(TIFF*, TIFFDirEntry*, int*); +static int TIFFFetchPerSampleAnys(TIFF*, TIFFDirEntry*, double*); +static int TIFFFetchShortArray(TIFF*, TIFFDirEntry*, uint16*); +static int TIFFFetchStripThing(TIFF*, TIFFDirEntry*, long, uint32**); +static int TIFFFetchExtraSamples(TIFF*, TIFFDirEntry*); +static int TIFFFetchRefBlackWhite(TIFF*, TIFFDirEntry*); +static float TIFFFetchFloat(TIFF*, TIFFDirEntry*); +static int TIFFFetchFloatArray(TIFF*, TIFFDirEntry*, float*); +static int TIFFFetchDoubleArray(TIFF*, TIFFDirEntry*, double*); +static int TIFFFetchAnyArray(TIFF*, TIFFDirEntry*, double*); +static int TIFFFetchShortPair(TIFF*, TIFFDirEntry*); +#if STRIPCHOP_SUPPORT +static void ChopUpSingleUncompressedStrip(TIFF*); +#endif + +static char * +CheckMalloc(TIFF* tif, tsize_t n, const char* what) +{ + char *cp = (char*)_TIFFmalloc(n); + if (cp == NULL) + TIFFError(tif->tif_name, "No space %s", what); + return (cp); +} + +/* Just as was done with TIFFWritePrivateDataSubDirectory(), here we implement + TIFFReadPrivateDataSubDirectory() which takes an offset into the TIFF file, + a TIFFFieldInfo structure specifying the types of the various tags, + and a function to use to set individual tags when they are encountered. + The data is read from the file, translated using the TIFF library's + built-in machine-independent conversion functions, and filled into + private subdirectory structure. + + This code was written by copying the original TIFFReadDirectory() function + from tif_dirread.c and paring it down to what is needed for this. + + It is the caller's responsibility to allocate and initialize the internal + structure that setFieldFn() will be writing into. If this function is being + called more than once before closing the file, the caller also must be + careful to free data in the structure before re-initializing. + + It is also the caller's responsibility to verify the presence of + any required fields after reading the directory in. +*/ + + +int +TIFFReadPrivateDataSubDirectory(TIFF* tif, toff_t pdir_offset, + TIFFFieldInfo *field_info, + int (*setFieldFn)(TIFF *tif, ttag_t tag, ...)) +{ + register TIFFDirEntry* dp; + register int n; + register TIFFDirectory* td; + TIFFDirEntry* dir; + int iv; + long v; + double dv; + const TIFFFieldInfo* fip; + int fix; + uint16 dircount; + uint32 nextdiroff; + char* cp; + int diroutoforderwarning = 0; + + /* Skipped part about checking for directories or compression data. */ + + if (!isMapped(tif)) { + if (!SeekOK(tif, pdir_offset)) { + TIFFError(tif->tif_name, + "Seek error accessing TIFF private subdirectory"); + return (0); + } + if (!ReadOK(tif, &dircount, sizeof (uint16))) { + TIFFError(tif->tif_name, + "Can not read TIFF private subdirectory count"); + return (0); + } + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabShort(&dircount); + dir = (TIFFDirEntry *)CheckMalloc(tif, + dircount * sizeof (TIFFDirEntry), "to read TIFF private subdirectory"); + if (dir == NULL) + return (0); + if (!ReadOK(tif, dir, dircount*sizeof (TIFFDirEntry))) { + TIFFError(tif->tif_name, "Can not read TIFF private subdirectory"); + goto bad; + } + /* + * Read offset to next directory for sequential scans. + */ + (void) ReadOK(tif, &nextdiroff, sizeof (uint32)); + } else { + toff_t off = pdir_offset; + + if (off + sizeof (short) > tif->tif_size) { + TIFFError(tif->tif_name, + "Can not read TIFF private subdirectory count"); + return (0); + } else + _TIFFmemcpy(&dircount, tif->tif_base + off, sizeof (uint16)); + off += sizeof (uint16); + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabShort(&dircount); + dir = (TIFFDirEntry *)CheckMalloc(tif, + dircount * sizeof (TIFFDirEntry), "to read TIFF private subdirectory"); + if (dir == NULL) + return (0); + if (off + dircount*sizeof (TIFFDirEntry) > tif->tif_size) { + TIFFError(tif->tif_name, "Can not read TIFF private subdirectory"); + goto bad; + } else + _TIFFmemcpy(dir, tif->tif_base + off, + dircount*sizeof (TIFFDirEntry)); + off += dircount* sizeof (TIFFDirEntry); + if (off + sizeof (uint32) < tif->tif_size) + _TIFFmemcpy(&nextdiroff, tif->tif_base+off, sizeof (uint32)); + } + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabLong(&nextdiroff); + + /* + * Setup default value and then make a pass over + * the fields to check type and tag information, + * and to extract info required to size data + * structures. A second pass is made afterwards + * to read in everthing not taken in the first pass. + */ + td = &tif->tif_dir; + + for (fip = field_info, dp = dir, n = dircount; + n > 0; n--, dp++) { + if (tif->tif_flags & TIFF_SWAB) { + TIFFSwabArrayOfShort(&dp->tdir_tag, 2); + TIFFSwabArrayOfLong(&dp->tdir_count, 2); + } + /* + * Find the field information entry for this tag. + */ + /* + * Silicon Beach (at least) writes unordered + * directory tags (violating the spec). Handle + * it here, but be obnoxious (maybe they'll fix it?). + */ + if (dp->tdir_tag < fip->field_tag) { + if (!diroutoforderwarning) { + TIFFWarning(tif->tif_name, + "invalid TIFF private subdirectory; tags are not sorted in ascending order"); + diroutoforderwarning = 1; + } + fip = field_info; /* O(n^2) */ + } + + while (fip->field_tag && fip->field_tag < dp->tdir_tag) + fip++; + if (!fip->field_tag || fip->field_tag != dp->tdir_tag) { + TIFFWarning(tif->tif_name, + "unknown field with tag %d (0x%x) in private subdirectory ignored", + dp->tdir_tag, dp->tdir_tag); + dp->tdir_tag = IGNORE; + fip = field_info;/* restart search */ + continue; + } + /* + * Null out old tags that we ignore. + */ + + /* Not implemented yet, since FIELD_IGNORE is specific to + the main directories. Could pass this in too... */ + if (0 /* && fip->field_bit == FIELD_IGNORE */) { + ignore: + dp->tdir_tag = IGNORE; + continue; + } + + /* + * Check data type. + */ + + while (dp->tdir_type != (u_short)fip->field_type) { + if (fip->field_type == TIFF_ANY) /* wildcard */ + break; + fip++; + if (!fip->field_tag || fip->field_tag != dp->tdir_tag) { + TIFFWarning(tif->tif_name, + "wrong data type %d for \"%s\"; tag ignored", + dp->tdir_type, fip[-1].field_name); + goto ignore; + } + } + /* + * Check count if known in advance. + */ + if (fip->field_readcount != TIFF_VARIABLE) { + uint32 expected = (fip->field_readcount == TIFF_SPP) ? + (uint32) td->td_samplesperpixel : + (uint32) fip->field_readcount; + if (!CheckDirCount(tif, dp, expected)) + goto ignore; + } + + /* Now read in and process data from field. */ + if (!TIFFFetchNormalSubTag(tif, dp, fip, setFieldFn)) + goto bad; + + } + + if (dir) + _TIFFfree(dir); + return (1); +bad: + if (dir) + _TIFFfree(dir); + return (0); +} + +static void +EstimateStripByteCounts(TIFF* tif, TIFFDirEntry* dir, uint16 dircount) +{ + register TIFFDirEntry *dp; + register TIFFDirectory *td = &tif->tif_dir; + uint16 i; + + if (td->td_stripbytecount) + _TIFFfree(td->td_stripbytecount); + td->td_stripbytecount = (uint32*) + CheckMalloc(tif, td->td_nstrips * sizeof (uint32), + "for \"StripByteCounts\" array"); + if (td->td_compression != COMPRESSION_NONE) { + uint32 space = (uint32)(sizeof (TIFFHeader) + + sizeof (uint16) + + (dircount * sizeof (TIFFDirEntry)) + + sizeof (uint32)); + toff_t filesize = TIFFGetFileSize(tif); + uint16 n; + + /* calculate amount of space used by indirect values */ + for (dp = dir, n = dircount; n > 0; n--, dp++) { + uint32 cc = dp->tdir_count*tiffDataWidth[dp->tdir_type]; + if (cc > sizeof (uint32)) + space += cc; + } + space = (filesize - space) / td->td_samplesperpixel; + for (i = 0; i < td->td_nstrips; i++) + td->td_stripbytecount[i] = space; + /* + * This gross hack handles the case were the offset to + * the last strip is past the place where we think the strip + * should begin. Since a strip of data must be contiguous, + * it's safe to assume that we've overestimated the amount + * of data in the strip and trim this number back accordingly. + */ + i--; + if (td->td_stripoffset[i] + td->td_stripbytecount[i] > filesize) + td->td_stripbytecount[i] = + filesize - td->td_stripoffset[i]; + } else { + uint32 rowbytes = TIFFScanlineSize(tif); + uint32 rowsperstrip = td->td_imagelength / td->td_nstrips; + for (i = 0; i < td->td_nstrips; i++) + td->td_stripbytecount[i] = rowbytes*rowsperstrip; + } + TIFFSetFieldBit(tif, FIELD_STRIPBYTECOUNTS); + if (!TIFFFieldSet(tif, FIELD_ROWSPERSTRIP)) + td->td_rowsperstrip = td->td_imagelength; +} + +static void +MissingRequired(TIFF* tif, const char* tagname) +{ + TIFFError(tif->tif_name, + "TIFF directory is missing required \"%s\" field", tagname); +} + +/* + * Check the count field of a directory + * entry against a known value. The caller + * is expected to skip/ignore the tag if + * there is a mismatch. + */ +static int +CheckDirCount(TIFF* tif, TIFFDirEntry* dir, uint32 count) +{ + if (count != dir->tdir_count) { + TIFFWarning(tif->tif_name, + "incorrect count for field \"%s\" (%lu, expecting %lu); tag ignored", + _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name, + dir->tdir_count, count); + return (0); + } + return (1); +} + +/* + * Fetch a contiguous directory item. + */ +static tsize_t +TIFFFetchData(TIFF* tif, TIFFDirEntry* dir, char* cp) +{ + int w = tiffDataWidth[dir->tdir_type]; + tsize_t cc = dir->tdir_count * w; + + if (!isMapped(tif)) { + if (!SeekOK(tif, dir->tdir_offset)) + goto bad; + if (!ReadOK(tif, cp, cc)) + goto bad; + } else { + if (dir->tdir_offset + cc > tif->tif_size) + goto bad; + _TIFFmemcpy(cp, tif->tif_base + dir->tdir_offset, cc); + } + if (tif->tif_flags & TIFF_SWAB) { + switch (dir->tdir_type) { + case TIFF_SHORT: + case TIFF_SSHORT: + TIFFSwabArrayOfShort((uint16*) cp, dir->tdir_count); + break; + case TIFF_LONG: + case TIFF_SLONG: + case TIFF_FLOAT: + TIFFSwabArrayOfLong((uint32*) cp, dir->tdir_count); + break; + case TIFF_RATIONAL: + case TIFF_SRATIONAL: + TIFFSwabArrayOfLong((uint32*) cp, 2*dir->tdir_count); + break; + case TIFF_DOUBLE: + TIFFSwabArrayOfDouble((double*) cp, dir->tdir_count); + break; + } + } + return (cc); +bad: + TIFFError(tif->tif_name, "Error fetching data for field \"%s\"", + _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name); + return ((tsize_t) 0); +} + +/* + * Fetch an ASCII item from the file. + */ +static tsize_t +TIFFFetchString(TIFF* tif, TIFFDirEntry* dir, char* cp) +{ + if (dir->tdir_count <= 4) { + uint32 l = dir->tdir_offset; + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabLong(&l); + _TIFFmemcpy(cp, &l, dir->tdir_count); + return (1); + } + return (TIFFFetchData(tif, dir, cp)); +} + +/* + * Convert numerator+denominator to float. + */ +static int +cvtRational(TIFF* tif, TIFFDirEntry* dir, uint32 num, uint32 denom, float* rv) +{ + if (denom == 0) { + TIFFError(tif->tif_name, + "%s: Rational with zero denominator (num = %lu)", + _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name, num); + return (0); + } else { + if (dir->tdir_type == TIFF_RATIONAL) + *rv = ((float)num / (float)denom); + else + *rv = ((float)(int32)num / (float)(int32)denom); + return (1); + } +} + +/* + * Fetch a rational item from the file + * at offset off and return the value + * as a floating point number. + */ +static float +TIFFFetchRational(TIFF* tif, TIFFDirEntry* dir) +{ + uint32 l[2]; + float v; + + return (!TIFFFetchData(tif, dir, (char *)l) || + !cvtRational(tif, dir, l[0], l[1], &v) ? 1.0f : v); +} + +/* + * Fetch a single floating point value + * from the offset field and return it + * as a native float. + */ +static float +TIFFFetchFloat(TIFF* tif, TIFFDirEntry* dir) +{ + /* This appears to be a flagrant bug in the TIFF library, yet I + actually don't understand how it could have ever worked the old + way. Look at the comments in my new code and you'll understand. */ +#if (0) + float v = (float) + TIFFExtractData(tif, dir->tdir_type, dir->tdir_offset); + TIFFCvtIEEEFloatToNative(tif, 1, &v); +#else + float v; + /* This is a little bit tricky - if we just cast the uint32 to a float, + C will perform a numerical conversion, which is not what we want. + We want to take the actual bit pattern in the uint32 and interpret + it as a float. Thus we cast a uint32 * into a float * and then + dereference to get v. */ + uint32 l = (uint32) + TIFFExtractData(tif, dir->tdir_type, dir->tdir_offset); + v = * (float *) &l; + TIFFCvtIEEEFloatToNative(tif, 1, &v); +#endif + return (v); + +} + +/* + * Fetch an array of BYTE or SBYTE values. + */ +static int +TIFFFetchByteArray(TIFF* tif, TIFFDirEntry* dir, uint16* v) +{ + if (dir->tdir_count <= 4) { + /* + * Extract data from offset field. + */ + if (tif->tif_header.tiff_magic == TIFF_BIGENDIAN) { + switch (dir->tdir_count) { + case 4: v[3] = dir->tdir_offset & 0xff; + case 3: v[2] = (dir->tdir_offset >> 8) & 0xff; + case 2: v[1] = (dir->tdir_offset >> 16) & 0xff; + case 1: v[0] = dir->tdir_offset >> 24; + } + } else { + switch (dir->tdir_count) { + case 4: v[3] = dir->tdir_offset >> 24; + case 3: v[2] = (dir->tdir_offset >> 16) & 0xff; + case 2: v[1] = (dir->tdir_offset >> 8) & 0xff; + case 1: v[0] = dir->tdir_offset & 0xff; + } + } + return (1); + } else + return (TIFFFetchData(tif, dir, (char*) v) != 0); /* XXX */ +} + +/* + * Fetch an array of SHORT or SSHORT values. + */ +static int +TIFFFetchShortArray(TIFF* tif, TIFFDirEntry* dir, uint16* v) +{ + if (dir->tdir_count <= 2) { + if (tif->tif_header.tiff_magic == TIFF_BIGENDIAN) { + switch (dir->tdir_count) { + case 2: v[1] = dir->tdir_offset & 0xffff; + case 1: v[0] = dir->tdir_offset >> 16; + } + } else { + switch (dir->tdir_count) { + case 2: v[1] = dir->tdir_offset >> 16; + case 1: v[0] = dir->tdir_offset & 0xffff; + } + } + return (1); + } else + return (TIFFFetchData(tif, dir, (char *)v) != 0); +} + +/* + * Fetch a pair of SHORT or BYTE values. + */ +static int +TIFFFetchShortPair(TIFF* tif, TIFFDirEntry* dir) +{ + uint16 v[2]; + int ok = 0; + + switch (dir->tdir_type) { + case TIFF_SHORT: + case TIFF_SSHORT: + ok = TIFFFetchShortArray(tif, dir, v); + break; + case TIFF_BYTE: + case TIFF_SBYTE: + ok = TIFFFetchByteArray(tif, dir, v); + break; + } + if (ok) + TIFFSetField(tif, dir->tdir_tag, v[0], v[1]); + return (ok); +} + +/* + * Fetch an array of LONG or SLONG values. + */ +static int +TIFFFetchLongArray(TIFF* tif, TIFFDirEntry* dir, uint32* v) +{ + if (dir->tdir_count == 1) { + v[0] = dir->tdir_offset; + return (1); + } else + return (TIFFFetchData(tif, dir, (char*) v) != 0); +} + +/* + * Fetch an array of RATIONAL or SRATIONAL values. + */ +static int +TIFFFetchRationalArray(TIFF* tif, TIFFDirEntry* dir, float* v) +{ + int ok = 0; + uint32* l; + + l = (uint32*)CheckMalloc(tif, + dir->tdir_count*tiffDataWidth[dir->tdir_type], + "to fetch array of rationals"); + if (l) { + if (TIFFFetchData(tif, dir, (char *)l)) { + uint32 i; + for (i = 0; i < dir->tdir_count; i++) { + ok = cvtRational(tif, dir, + l[2*i+0], l[2*i+1], &v[i]); + if (!ok) + break; + } + } + _TIFFfree((char *)l); + } + return (ok); +} + +/* + * Fetch an array of FLOAT values. + */ +static int +TIFFFetchFloatArray(TIFF* tif, TIFFDirEntry* dir, float* v) +{ + + if (dir->tdir_count == 1) { + v[0] = *(float*) &dir->tdir_offset; + TIFFCvtIEEEFloatToNative(tif, dir->tdir_count, v); + return (1); + } else if (TIFFFetchData(tif, dir, (char*) v)) { + TIFFCvtIEEEFloatToNative(tif, dir->tdir_count, v); + return (1); + } else + return (0); +} + +/* + * Fetch an array of DOUBLE values. + */ +static int +TIFFFetchDoubleArray(TIFF* tif, TIFFDirEntry* dir, double* v) +{ + if (TIFFFetchData(tif, dir, (char*) v)) { + TIFFCvtIEEEDoubleToNative(tif, dir->tdir_count, v); + return (1); + } else + return (0); +} + +/* + * Fetch an array of ANY values. The actual values are + * returned as doubles which should be able hold all the + * types. Yes, there really should be an tany_t to avoid + * this potential non-portability ... Note in particular + * that we assume that the double return value vector is + * large enough to read in any fundamental type. We use + * that vector as a buffer to read in the base type vector + * and then convert it in place to double (from end + * to front of course). + */ +static int +TIFFFetchAnyArray(TIFF* tif, TIFFDirEntry* dir, double* v) +{ + int i; + + switch (dir->tdir_type) { + case TIFF_BYTE: + case TIFF_SBYTE: + if (!TIFFFetchByteArray(tif, dir, (uint16*) v)) + return (0); + if (dir->tdir_type == TIFF_BYTE) { + uint16* vp = (uint16*) v; + for (i = dir->tdir_count-1; i >= 0; i--) + v[i] = vp[i]; + } else { + int16* vp = (int16*) v; + for (i = dir->tdir_count-1; i >= 0; i--) + v[i] = vp[i]; + } + break; + case TIFF_SHORT: + case TIFF_SSHORT: + if (!TIFFFetchShortArray(tif, dir, (uint16*) v)) + return (0); + if (dir->tdir_type == TIFF_SHORT) { + uint16* vp = (uint16*) v; + for (i = dir->tdir_count-1; i >= 0; i--) + v[i] = vp[i]; + } else { + int16* vp = (int16*) v; + for (i = dir->tdir_count-1; i >= 0; i--) + v[i] = vp[i]; + } + break; + case TIFF_LONG: + case TIFF_SLONG: + if (!TIFFFetchLongArray(tif, dir, (uint32*) v)) + return (0); + if (dir->tdir_type == TIFF_LONG) { + uint32* vp = (uint32*) v; + for (i = dir->tdir_count-1; i >= 0; i--) + v[i] = vp[i]; + } else { + int32* vp = (int32*) v; + for (i = dir->tdir_count-1; i >= 0; i--) + v[i] = vp[i]; + } + break; + case TIFF_RATIONAL: + case TIFF_SRATIONAL: + if (!TIFFFetchRationalArray(tif, dir, (float*) v)) + return (0); + { float* vp = (float*) v; + for (i = dir->tdir_count-1; i >= 0; i--) + v[i] = vp[i]; + } + break; + case TIFF_FLOAT: + if (!TIFFFetchFloatArray(tif, dir, (float*) v)) + return (0); + { float* vp = (float*) v; + for (i = dir->tdir_count-1; i >= 0; i--) + v[i] = vp[i]; + } + break; + case TIFF_DOUBLE: + return (TIFFFetchDoubleArray(tif, dir, (double*) v)); + default: + /* TIFF_NOTYPE */ + /* TIFF_ASCII */ + /* TIFF_UNDEFINED */ + TIFFError(tif->tif_name, + "Cannot read TIFF_ANY type %d for field \"%s\"", + _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name); + return (0); + } + return (1); +} + + +/* + * Fetch a tag that is not handled by special case code. + */ +/* The standard function TIFFFetchNormalTag() could definitely be replaced + with a simple call to this function, just adding TIFFSetField() as the + last argument. */ +static int +TIFFFetchNormalSubTag(TIFF* tif, TIFFDirEntry* dp, const TIFFFieldInfo* fip, + int (*setFieldFn)(TIFF *tif, ttag_t tag, ...)) +{ + static char mesg[] = "to fetch tag value"; + int ok = 0; + + if (dp->tdir_count > 1) { /* array of values */ + char* cp = NULL; + + switch (dp->tdir_type) { + case TIFF_BYTE: + case TIFF_SBYTE: + /* NB: always expand BYTE values to shorts */ + cp = CheckMalloc(tif, + dp->tdir_count * sizeof (uint16), mesg); + ok = cp && TIFFFetchByteArray(tif, dp, (uint16*) cp); + break; + case TIFF_SHORT: + case TIFF_SSHORT: + cp = CheckMalloc(tif, + dp->tdir_count * sizeof (uint16), mesg); + ok = cp && TIFFFetchShortArray(tif, dp, (uint16*) cp); + break; + case TIFF_LONG: + case TIFF_SLONG: + cp = CheckMalloc(tif, + dp->tdir_count * sizeof (uint32), mesg); + ok = cp && TIFFFetchLongArray(tif, dp, (uint32*) cp); + break; + case TIFF_RATIONAL: + case TIFF_SRATIONAL: + cp = CheckMalloc(tif, + dp->tdir_count * sizeof (float), mesg); + ok = cp && TIFFFetchRationalArray(tif, dp, (float*) cp); + break; + case TIFF_FLOAT: + cp = CheckMalloc(tif, + dp->tdir_count * sizeof (float), mesg); + ok = cp && TIFFFetchFloatArray(tif, dp, (float*) cp); + break; + case TIFF_DOUBLE: + cp = CheckMalloc(tif, + dp->tdir_count * sizeof (double), mesg); + ok = cp && TIFFFetchDoubleArray(tif, dp, (double*) cp); + break; + case TIFF_ASCII: + case TIFF_UNDEFINED: /* bit of a cheat... */ + /* + * Some vendors write strings w/o the trailing + * NULL byte, so always append one just in case. + */ + cp = CheckMalloc(tif, dp->tdir_count+1, mesg); + if (ok = (cp && TIFFFetchString(tif, dp, cp))) + cp[dp->tdir_count] = '\0'; /* XXX */ + break; + } + if (ok) { + ok = (fip->field_passcount ? + (*setFieldFn)(tif, dp->tdir_tag, dp->tdir_count, cp) + : (*setFieldFn)(tif, dp->tdir_tag, cp)); + } + if (cp != NULL) + _TIFFfree(cp); + } else if (CheckDirCount(tif, dp, 1)) { /* singleton value */ + switch (dp->tdir_type) { + case TIFF_BYTE: + case TIFF_SBYTE: + case TIFF_SHORT: + case TIFF_SSHORT: + /* + * If the tag is also acceptable as a LONG or SLONG + * then (*setFieldFn) will expect an uint32 parameter + * passed to it (through varargs). Thus, for machines + * where sizeof (int) != sizeof (uint32) we must do + * a careful check here. It's hard to say if this + * is worth optimizing. + * + * NB: We use TIFFFieldWithTag here knowing that + * it returns us the first entry in the table + * for the tag and that that entry is for the + * widest potential data type the tag may have. + */ + { TIFFDataType type = fip->field_type; + if (type != TIFF_LONG && type != TIFF_SLONG) { + uint16 v = (uint16) + TIFFExtractData(tif, dp->tdir_type, dp->tdir_offset); + ok = (fip->field_passcount ? + (*setFieldFn)(tif, dp->tdir_tag, 1, &v) + : (*setFieldFn)(tif, dp->tdir_tag, v)); + break; + } + } + /* fall thru... */ + case TIFF_LONG: + case TIFF_SLONG: + { uint32 v32 = + TIFFExtractData(tif, dp->tdir_type, dp->tdir_offset); + ok = (fip->field_passcount ? + (*setFieldFn)(tif, dp->tdir_tag, 1, &v32) + : (*setFieldFn)(tif, dp->tdir_tag, v32)); + } + break; + case TIFF_RATIONAL: + case TIFF_SRATIONAL: + case TIFF_FLOAT: + { float v = (dp->tdir_type == TIFF_FLOAT ? + TIFFFetchFloat(tif, dp) + : TIFFFetchRational(tif, dp)); + ok = (fip->field_passcount ? + (*setFieldFn)(tif, dp->tdir_tag, 1, &v) + : (*setFieldFn)(tif, dp->tdir_tag, v)); + } + break; + case TIFF_DOUBLE: + { double v; + ok = (TIFFFetchDoubleArray(tif, dp, &v) && + (fip->field_passcount ? + (*setFieldFn)(tif, dp->tdir_tag, 1, &v) + : (*setFieldFn)(tif, dp->tdir_tag, v)) + ); + } + break; + case TIFF_ASCII: + case TIFF_UNDEFINED: /* bit of a cheat... */ + { char c[2]; + if (ok = (TIFFFetchString(tif, dp, c) != 0)) { + c[1] = '\0'; /* XXX paranoid */ + ok = (*setFieldFn)(tif, dp->tdir_tag, c); + } + } + break; + } + } + return (ok); +} + +/* Everything after this is exactly duplicated from the standard tif_dirread.c + file, necessitated by the fact that they are declared static there so + we can't call them! +*/ +#define NITEMS(x) (sizeof (x) / sizeof (x[0])) +/* + * Fetch samples/pixel short values for + * the specified tag and verify that + * all values are the same. + */ +static int +TIFFFetchPerSampleShorts(TIFF* tif, TIFFDirEntry* dir, int* pl) +{ + int samples = tif->tif_dir.td_samplesperpixel; + int status = 0; + + if (CheckDirCount(tif, dir, (uint32) samples)) { + uint16 buf[10]; + uint16* v = buf; + + if (samples > NITEMS(buf)) + v = (uint16*) _TIFFmalloc(samples * sizeof (uint16)); + if (TIFFFetchShortArray(tif, dir, v)) { + int i; + for (i = 1; i < samples; i++) + if (v[i] != v[0]) { + TIFFError(tif->tif_name, + "Cannot handle different per-sample values for field \"%s\"", + _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name); + goto bad; + } + *pl = v[0]; + status = 1; + } + bad: + if (v != buf) + _TIFFfree((char*) v); + } + return (status); +} + +/* + * Fetch samples/pixel ANY values for + * the specified tag and verify that + * all values are the same. + */ +static int +TIFFFetchPerSampleAnys(TIFF* tif, TIFFDirEntry* dir, double* pl) +{ + int samples = (int) tif->tif_dir.td_samplesperpixel; + int status = 0; + + if (CheckDirCount(tif, dir, (uint32) samples)) { + double buf[10]; + double* v = buf; + + if (samples > NITEMS(buf)) + v = (double*) _TIFFmalloc(samples * sizeof (double)); + if (TIFFFetchAnyArray(tif, dir, v)) { + int i; + for (i = 1; i < samples; i++) + if (v[i] != v[0]) { + TIFFError(tif->tif_name, + "Cannot handle different per-sample values for field \"%s\"", + _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name); + goto bad; + } + *pl = v[0]; + status = 1; + } + bad: + if (v != buf) + _TIFFfree(v); + } + return (status); +} +#undef NITEMS + +/* + * Fetch a set of offsets or lengths. + * While this routine says "strips", + * in fact it's also used for tiles. + */ +static int +TIFFFetchStripThing(TIFF* tif, TIFFDirEntry* dir, long nstrips, uint32** lpp) +{ + register uint32* lp; + int status; + + if (!CheckDirCount(tif, dir, (uint32) nstrips)) + return (0); + /* + * Allocate space for strip information. + */ + if (*lpp == NULL && + (*lpp = (uint32 *)CheckMalloc(tif, + nstrips * sizeof (uint32), "for strip array")) == NULL) + return (0); + lp = *lpp; + if (dir->tdir_type == (int)TIFF_SHORT) { + /* + * Handle uint16->uint32 expansion. + */ + uint16* dp = (uint16*) CheckMalloc(tif, + dir->tdir_count* sizeof (uint16), "to fetch strip tag"); + if (dp == NULL) + return (0); + if (status = TIFFFetchShortArray(tif, dir, dp)) { + register uint16* wp = dp; + while (nstrips-- > 0) + *lp++ = *wp++; + } + _TIFFfree((char*) dp); + } else + status = TIFFFetchLongArray(tif, dir, lp); + return (status); +} + +#define NITEMS(x) (sizeof (x) / sizeof (x[0])) +/* + * Fetch and set the ExtraSamples tag. + */ +static int +TIFFFetchExtraSamples(TIFF* tif, TIFFDirEntry* dir) +{ + uint16 buf[10]; + uint16* v = buf; + int status; + + if (dir->tdir_count > NITEMS(buf)) + v = (uint16*) _TIFFmalloc(dir->tdir_count * sizeof (uint16)); + if (dir->tdir_type == TIFF_BYTE) + status = TIFFFetchByteArray(tif, dir, v); + else + status = TIFFFetchShortArray(tif, dir, v); + if (status) + status = TIFFSetField(tif, dir->tdir_tag, dir->tdir_count, v); + if (v != buf) + _TIFFfree((char*) v); + return (status); +} +#undef NITEMS + +#ifdef COLORIMETRY_SUPPORT +/* + * Fetch and set the RefBlackWhite tag. + */ +static int +TIFFFetchRefBlackWhite(TIFF* tif, TIFFDirEntry* dir) +{ + static char mesg[] = "for \"ReferenceBlackWhite\" array"; + char* cp; + int ok; + + if (dir->tdir_type == TIFF_RATIONAL) + return (1/*TIFFFetchNormalTag(tif, dir) just so linker won't complain - this part of the code is never used anyway */); + /* + * Handle LONG's for backward compatibility. + */ + cp = CheckMalloc(tif, dir->tdir_count * sizeof (uint32), mesg); + if (ok = (cp && TIFFFetchLongArray(tif, dir, (uint32*) cp))) { + float* fp = (float*) + CheckMalloc(tif, dir->tdir_count * sizeof (float), mesg); + if (ok = (fp != NULL)) { + uint32 i; + for (i = 0; i < dir->tdir_count; i++) + fp[i] = (float)((uint32*) cp)[i]; + ok = TIFFSetField(tif, dir->tdir_tag, fp); + _TIFFfree((char*) fp); + } + } + if (cp) + _TIFFfree(cp); + return (ok); +} +#endif + +#if STRIPCHOP_SUPPORT +/* + * Replace a single strip (tile) of uncompressed data by + * multiple strips (tiles), each approximately 8Kbytes. + * This is useful for dealing with large images or + * for dealing with machines with a limited amount + * memory. + */ +static void +ChopUpSingleUncompressedStrip(TIFF* tif) +{ + register TIFFDirectory *td = &tif->tif_dir; + uint32 bytecount = td->td_stripbytecount[0]; + uint32 offset = td->td_stripoffset[0]; + tsize_t rowbytes = TIFFVTileSize(tif, 1), stripbytes; + tstrip_t strip, nstrips, rowsperstrip; + uint32* newcounts; + uint32* newoffsets; + + /* + * Make the rows hold at least one + * scanline, but fill 8k if possible. + */ + if (rowbytes > 8192) { + stripbytes = rowbytes; + rowsperstrip = 1; + } else { + rowsperstrip = 8192 / rowbytes; + stripbytes = rowbytes * rowsperstrip; + } + /* never increase the number of strips in an image */ + if (rowsperstrip >= td->td_rowsperstrip) + return; + nstrips = (tstrip_t) TIFFhowmany(bytecount, stripbytes); + newcounts = (uint32*) CheckMalloc(tif, nstrips * sizeof (uint32), + "for chopped \"StripByteCounts\" array"); + newoffsets = (uint32*) CheckMalloc(tif, nstrips * sizeof (uint32), + "for chopped \"StripOffsets\" array"); + if (newcounts == NULL || newoffsets == NULL) { + /* + * Unable to allocate new strip information, give + * up and use the original one strip information. + */ + if (newcounts != NULL) + _TIFFfree(newcounts); + if (newoffsets != NULL) + _TIFFfree(newoffsets); + return; + } + /* + * Fill the strip information arrays with + * new bytecounts and offsets that reflect + * the broken-up format. + */ + for (strip = 0; strip < nstrips; strip++) { + if (stripbytes > bytecount) + stripbytes = bytecount; + newcounts[strip] = stripbytes; + newoffsets[strip] = offset; + offset += stripbytes; + bytecount -= stripbytes; + } + /* + * Replace old single strip info with multi-strip info. + */ + td->td_stripsperimage = td->td_nstrips = nstrips; + TIFFSetField(tif, TIFFTAG_ROWSPERSTRIP, rowsperstrip); + + _TIFFfree(td->td_stripbytecount); + _TIFFfree(td->td_stripoffset); + td->td_stripbytecount = newcounts; + td->td_stripoffset = newoffsets; +} +#endif /* STRIPCHOP_SUPPORT */ diff --git a/contrib/pds/tif_pdsdirwrite.c b/contrib/pds/tif_pdsdirwrite.c new file mode 100755 index 0000000..647a04a --- /dev/null +++ b/contrib/pds/tif_pdsdirwrite.c @@ -0,0 +1,964 @@ +/* $Header: /home/cvsroot/libtiff/contrib/pds/tif_pdsdirwrite.c,v 1.1.1.1 2000/06/24 19:10:17 tshead Exp $ */ + +/* When writing data to TIFF files, it is often useful to store application- + specific data in a private TIFF directory so that the tags don't need to + be registered and won't conflict with other people's user-defined tags. + One needs to have a registered public tag which contains some amount of + raw data. That raw data, however, is interpreted at an independent, + separate, private tiff directory. This file provides some routines which + will be useful for converting that data from its raw binary form into + the proper form for your application. +*/ + +/* + * Copyright (c) 1988-1996 Sam Leffler + * Copyright (c) 1991-1996 Silicon Graphics, Inc. + * Copyright (c( 1996 USAF Phillips Laboratory + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library. + * + * These routines written by Conrad J. Poelman on a single late-night of + * March 20-21, 1996. + * + * The entire purpose of this file is to provide a single external function, + * TIFFWritePrivateDataSubDirectory(). This function is intended for use + * in writing a private subdirectory structure into a TIFF file. The + * actual reading of data from the structure is handled by the getFieldFn(), + * which is passed to TIFFWritePrivateDataSubDirectory() as a parameter. The + * idea is to enable any application wishing to read private subdirectories to + * do so easily using this function, without modifying the TIFF library. + * + * The astute observer will notice that only two functions are at all different + * from the original tif_dirwrite.c file: TIFFWritePrivateDataSubDirectory()and + * TIFFWriteNormalSubTag(). All the other stuff that makes this file so huge + * is only necessary because all of those functions are declared static in + * tif_dirwrite.c, so we have to totally duplicate them in order to use them. + * + * Oh, also please note the bug-fix in the routine TIFFWriteNormalSubTag(), + * which equally should be applied to TIFFWriteNormalTag(). + * + */ +#include "tiffiop.h" + +#if HAVE_IEEEFP +#define TIFFCvtNativeToIEEEFloat(tif, n, fp) +#define TIFFCvtNativeToIEEEDouble(tif, n, dp) +#else +extern void TIFFCvtNativeToIEEEFloat(TIFF*, uint32, float*); +extern void TIFFCvtNativeToIEEEDouble(TIFF*, uint32, double*); +#endif + +static int TIFFWriteNormalTag(TIFF*, TIFFDirEntry*, const TIFFFieldInfo*); +static int TIFFWriteNormalSubTag(TIFF*, TIFFDirEntry*, const TIFFFieldInfo*, + int (*getFieldFn)(TIFF *tif,ttag_t tag,...)); +static void TIFFSetupShortLong(TIFF*, ttag_t, TIFFDirEntry*, uint32); +static int TIFFSetupShortPair(TIFF*, ttag_t, TIFFDirEntry*); +static int TIFFWritePerSampleShorts(TIFF*, ttag_t, TIFFDirEntry*); +static int TIFFWritePerSampleAnys(TIFF*, TIFFDataType, ttag_t, TIFFDirEntry*); +static int TIFFWriteShortTable(TIFF*, ttag_t, TIFFDirEntry*, uint32, uint16**); +static int TIFFWriteShortArray(TIFF*, + TIFFDataType, ttag_t, TIFFDirEntry*, uint32, uint16*); +static int TIFFWriteLongArray(TIFF *, + TIFFDataType, ttag_t, TIFFDirEntry*, uint32, uint32*); +static int TIFFWriteRationalArray(TIFF *, + TIFFDataType, ttag_t, TIFFDirEntry*, uint32, float*); +static int TIFFWriteFloatArray(TIFF *, + TIFFDataType, ttag_t, TIFFDirEntry*, uint32, float*); +static int TIFFWriteDoubleArray(TIFF *, + TIFFDataType, ttag_t, TIFFDirEntry*, uint32, double*); +static int TIFFWriteByteArray(TIFF*, TIFFDirEntry*, char*); +static int TIFFWriteAnyArray(TIFF*, + TIFFDataType, ttag_t, TIFFDirEntry*, uint32, double*); +#ifdef COLORIMETRY_SUPPORT +static int TIFFWriteTransferFunction(TIFF*, TIFFDirEntry*); +#endif +static int TIFFWriteData(TIFF*, TIFFDirEntry*, char*); +static int TIFFLinkDirectory(TIFF*); + +#define WriteRationalPair(type, tag1, v1, tag2, v2) { \ + if (!TIFFWriteRational(tif, type, tag1, dir, v1)) \ + goto bad; \ + if (!TIFFWriteRational(tif, type, tag2, dir+1, v2)) \ + goto bad; \ + dir++; \ +} +#define TIFFWriteRational(tif, type, tag, dir, v) \ + TIFFWriteRationalArray((tif), (type), (tag), (dir), 1, &(v)) +#ifndef TIFFWriteRational +static int TIFFWriteRational(TIFF*, + TIFFDataType, ttag_t, TIFFDirEntry*, float); +#endif + +/* This function will write an entire directory to the disk, and return the + offset value indicating where in the file it wrote the beginning of the + directory structure. This is NOT the same as the offset value before + calling this function, because some of the fields may have caused various + data items to be written out BEFORE writing the directory structure. + + This code was basically written by ripping of the TIFFWriteDirectory() + code and generalizing it, using RPS's TIFFWritePliIfd() code for + inspiration. My original goal was to make this code general enough that + the original TIFFWriteDirectory() could be rewritten to just call this + function with the appropriate field and field-accessing arguments. + + However, now I realize that there's a lot of code that gets executed for + the main, standard TIFF directories that does not apply to special + private subdirectories, so such a reimplementation for the sake of + eliminating redundant or duplicate code is probably not possible, + unless we also pass in a Main flag to indiciate which type of handling + to do, which would be kind of a hack. I've marked those places where I + changed or ripped out code which would have to be re-inserted to + generalize this function. If it can be done in a clean and graceful way, + it would be a great way to generalize the TIFF library. Otherwise, I'll + just leave this code here where it duplicates but remains on top of and + hopefully mostly independent of the main TIFF library. + + The caller will probably want to free the sub directory structure after + returning from this call, since otherwise once written out, the user + is likely to forget about it and leave data lying around. +*/ +toff_t +TIFFWritePrivateDataSubDirectory(TIFF* tif, + uint32 pdir_fieldsset[], int pdir_fields_last, + TIFFFieldInfo *field_info, + int (*getFieldFn)(TIFF *tif, ttag_t tag, ...)) +{ + uint16 dircount; + uint32 diroff, nextdiroff; + ttag_t tag; + uint32 nfields; + tsize_t dirsize; + char* data; + TIFFDirEntry* dir; + u_long b, *fields, fields_size; + toff_t directory_offset; + TIFFFieldInfo* fip; + + /* + * Deleted out all of the encoder flushing and such code from here - + * not necessary for subdirectories. + */ + + /* Finish writing out any image data. */ + TIFFFlushData(tif); + + /* + * Size the directory so that we can calculate + * offsets for the data items that aren't kept + * in-place in each field. + */ + nfields = 0; + for (b = 0; b <= pdir_fields_last; b++) + if (FieldSet(pdir_fieldsset, b)) + /* Deleted code to make size of first 4 tags 2 + instead of 1. */ + nfields += 1; + dirsize = nfields * sizeof (TIFFDirEntry); + data = (char*) _TIFFmalloc(dirsize); + if (data == NULL) { + TIFFError(tif->tif_name, + "Cannot write private subdirectory, out of space"); + return (0); + } + /* + * Place directory in data section of the file. If there isn't one + * yet, place it at the end of the file. The directory is treated as + * data, so we don't link it into the directory structure at all. + */ + if (tif->tif_dataoff == 0) + tif->tif_dataoff =(TIFFSeekFile(tif, (toff_t) 0, SEEK_END)+1) &~ 1; + diroff = tif->tif_dataoff; + tif->tif_dataoff = (toff_t)( + diroff + sizeof (uint16) + dirsize + sizeof (toff_t)); + if (tif->tif_dataoff & 1) + tif->tif_dataoff++; + (void) TIFFSeekFile(tif, tif->tif_dataoff, SEEK_SET); + /*tif->tif_curdir++;*/ + dir = (TIFFDirEntry*) data; + /* + * Setup external form of directory + * entries and write data items. + */ + /* + * We make a local copy of the fieldsset here so that we don't mess + * up the original one when we call ResetFieldBit(). But I'm not sure + * why the original code calls ResetFieldBit(), since we're already + * going through the fields in order... + * + * fields_size is the number of uint32's we will need to hold the + * bit-mask for all of the fields. If our highest field number is + * 100, then we'll need 100 / (8*4)+1 == 4 uint32's to hold the + * fieldset. + * + * Unlike the original code, we allocate fields dynamically based + * on the requested pdir_fields_last value, allowing private + * data subdirectories to contain more than the built-in code's limit + * of 95 tags in a directory. + */ + fields_size = pdir_fields_last / (8*sizeof(uint32)) + 1; + fields = _TIFFmalloc(fields_size*sizeof(uint32)); + _TIFFmemcpy(fields, pdir_fieldsset, fields_size * sizeof(uint32)); + + /* Deleted "write out extra samples tag" code here. */ + + /* Deleted code for checking a billion little special cases for the + * standard TIFF tags. Should add a general mechanism for overloading + * write function for each field, just like Brian kept telling me!!! + */ + for (fip = field_info; fip->field_tag; fip++) { + /* Deleted code to check for FIELD_IGNORE!! */ + if (/* fip->field_bit == FIELD_IGNORE || */ + !FieldSet(fields, fip->field_bit)) + continue; + if (!TIFFWriteNormalSubTag(tif, dir, fip, getFieldFn)) + goto bad; + dir++; + ResetFieldBit(fields, fip->field_bit); + } + + /* Now we've written all of the referenced data, and are about to + write the main directory structure, so grab the tif_dataoff value + now so we can remember where we wrote the directory. */ + directory_offset = tif->tif_dataoff; + + /* + * Write directory. + */ + dircount = (uint16) nfields; + /* Deleted code to link to the next directory - we set it to zero! */ + nextdiroff = 0; + if (tif->tif_flags & TIFF_SWAB) { + /* + * The file's byte order is opposite to the + * native machine architecture. We overwrite + * the directory information with impunity + * because it'll be released below after we + * write it to the file. Note that all the + * other tag construction routines assume that + * we do this byte-swapping; i.e. they only + * byte-swap indirect data. + */ + for (dir = (TIFFDirEntry*) data; dircount; dir++, dircount--) { + TIFFSwabArrayOfShort(&dir->tdir_tag, 2); + TIFFSwabArrayOfLong(&dir->tdir_count, 2); + } + dircount = (uint16) nfields; + TIFFSwabShort(&dircount); + TIFFSwabLong(&nextdiroff); + } + + (void) TIFFSeekFile(tif, tif->tif_dataoff, SEEK_SET); + if (!WriteOK(tif, &dircount, sizeof (dircount))) { + TIFFError(tif->tif_name, "Error writing private subdirectory count"); + goto bad; + } + if (!WriteOK(tif, data, dirsize)) { + TIFFError(tif->tif_name, "Error writing private subdirectory contents"); + goto bad; + } + if (!WriteOK(tif, &nextdiroff, sizeof (nextdiroff))) { + TIFFError(tif->tif_name, "Error writing private subdirectory link"); + goto bad; + } + tif->tif_dataoff += sizeof(dircount) + dirsize + sizeof(nextdiroff); + + _TIFFfree(data); + _TIFFfree(fields); + tif->tif_flags &= ~TIFF_DIRTYDIRECT; + +#if (0) + /* This stuff commented out because I don't think we want it for + subdirectories, but I could be wrong. */ + (*tif->tif_cleanup)(tif); + + /* + * Reset directory-related state for subsequent + * directories. + */ + TIFFDefaultDirectory(tif); + tif->tif_curoff = 0; + tif->tif_row = (uint32) -1; + tif->tif_curstrip = (tstrip_t) -1; +#endif + + return (directory_offset); +bad: + _TIFFfree(data); + _TIFFfree(fields); + return (0); +} +#undef WriteRationalPair + +/* + * Process tags that are not special cased. + */ +/* The standard function TIFFWriteNormalTag() could definitely be replaced + with a simple call to this function, just adding TIFFGetField() as the + last argument. */ +static int +TIFFWriteNormalSubTag(TIFF* tif, TIFFDirEntry* dir, const TIFFFieldInfo* fip, + int (*getFieldFn)(TIFF *tif, ttag_t tag, ...)) +{ + u_short wc = (u_short) fip->field_writecount; + + dir->tdir_tag = fip->field_tag; + dir->tdir_type = (u_short) fip->field_type; + dir->tdir_count = wc; +#define WRITEF(x,y) x(tif, fip->field_type, fip->field_tag, dir, wc, y) + switch (fip->field_type) { + case TIFF_SHORT: + case TIFF_SSHORT: + if (wc > 1) { + uint16* wp; + if (wc == (u_short) TIFF_VARIABLE) { + (*getFieldFn)(tif, fip->field_tag, &wc, &wp); + dir->tdir_count = wc; + } else + (*getFieldFn)(tif, fip->field_tag, &wp); + if (!WRITEF(TIFFWriteShortArray, wp)) + return (0); + } else { + uint16 sv; + (*getFieldFn)(tif, fip->field_tag, &sv); + dir->tdir_offset = + TIFFInsertData(tif, dir->tdir_type, sv); + } + break; + case TIFF_LONG: + case TIFF_SLONG: + if (wc > 1) { + uint32* lp; + if (wc == (u_short) TIFF_VARIABLE) { + (*getFieldFn)(tif, fip->field_tag, &wc, &lp); + dir->tdir_count = wc; + } else + (*getFieldFn)(tif, fip->field_tag, &lp); + if (!WRITEF(TIFFWriteLongArray, lp)) + return (0); + } else { + /* XXX handle LONG->SHORT conversion */ + (*getFieldFn)(tif, fip->field_tag, &dir->tdir_offset); + } + break; + case TIFF_RATIONAL: + case TIFF_SRATIONAL: + if (wc > 1) { + float* fp; + if (wc == (u_short) TIFF_VARIABLE) { + (*getFieldFn)(tif, fip->field_tag, &wc, &fp); + dir->tdir_count = wc; + } else + (*getFieldFn)(tif, fip->field_tag, &fp); + if (!WRITEF(TIFFWriteRationalArray, fp)) + return (0); + } else { + float fv; + (*getFieldFn)(tif, fip->field_tag, &fv); + if (!WRITEF(TIFFWriteRationalArray, &fv)) + return (0); + } + break; + case TIFF_FLOAT: + if (wc > 1) { + float* fp; + if (wc == (u_short) TIFF_VARIABLE) { + (*getFieldFn)(tif, fip->field_tag, &wc, &fp); + dir->tdir_count = wc; + } else + (*getFieldFn)(tif, fip->field_tag, &fp); + if (!WRITEF(TIFFWriteFloatArray, fp)) + return (0); + } else { + float fv; + (*getFieldFn)(tif, fip->field_tag, &fv); + if (!WRITEF(TIFFWriteFloatArray, &fv)) + return (0); + } + break; + case TIFF_DOUBLE: + /* Hey - I think this is a bug, or at least a "gross + inconsistency", in the TIFF library. Look at the original + TIFF library code below within the "#if (0) ... #else". + Just from the type of *dp, you can see that this code + expects TIFFGetField() to be handed a double ** for + any TIFF_DOUBLE tag, even for the constant wc==1 case. + This is totally inconsistent with other fields (like + TIFF_FLOAT, above) and is also inconsistent with the + TIFFSetField() function for TIFF_DOUBLEs, which expects + to be passed a single double by value for the wc==1 case. + (See the handling of TIFFFetchNormalTag() in tif_dirread.c + for an example.) Maybe this function was written before + TIFFWriteDoubleArray() was written, not that that's an + excuse. Anyway, the new code below is a trivial modification + of the TIFF_FLOAT code above. The fact that even single + doubles get written out in the data segment and get an + offset value stored is irrelevant here - that is all + handled by TIFFWriteDoubleArray(). */ +#if (0) + { double* dp; + if (wc == (u_short) TIFF_VARIABLE) { + (*getFieldFn)(tif, fip->field_tag, &wc, &dp); + dir->tdir_count = wc; + } else + (*getFieldFn)(tif, fip->field_tag, &dp); + TIFFCvtNativeToIEEEDouble(tif, wc, dp); + if (!TIFFWriteData(tif, dir, (char*) dp)) + return (0); + } +#else + if (wc > 1) { + double* dp; + if (wc == (u_short) TIFF_VARIABLE) { + (*getFieldFn)(tif, fip->field_tag, &wc, &dp); + dir->tdir_count = wc; + } else + (*getFieldFn)(tif, fip->field_tag, &dp); + if (!WRITEF(TIFFWriteDoubleArray, dp)) + return (0); + } else { + double dv; + (*getFieldFn)(tif, fip->field_tag, &dv); + if (!WRITEF(TIFFWriteDoubleArray, &dv)) + return (0); + } +#endif + break; + case TIFF_ASCII: + { char* cp; + (*getFieldFn)(tif, fip->field_tag, &cp); + dir->tdir_count = (uint32) (strlen(cp) + 1); + if (!TIFFWriteByteArray(tif, dir, cp)) + return (0); + } + break; + case TIFF_UNDEFINED: + { char* cp; + if (wc == (u_short) TIFF_VARIABLE) { + (*getFieldFn)(tif, fip->field_tag, &wc, &cp); + dir->tdir_count = wc; + } else + (*getFieldFn)(tif, fip->field_tag, &cp); + if (!TIFFWriteByteArray(tif, dir, cp)) + return (0); + } + break; + } + return (1); +} +#undef WRITEF + +/* Everything after this is exactly duplicated from the standard tif_dirwrite.c + file, necessitated by the fact that they are declared static there so + we can't call them! +*/ +/* + * Setup a directory entry with either a SHORT + * or LONG type according to the value. + */ +static void +TIFFSetupShortLong(TIFF* tif, ttag_t tag, TIFFDirEntry* dir, uint32 v) +{ + dir->tdir_tag = tag; + dir->tdir_count = 1; + if (v > 0xffffL) { + dir->tdir_type = (short) TIFF_LONG; + dir->tdir_offset = v; + } else { + dir->tdir_type = (short) TIFF_SHORT; + dir->tdir_offset = TIFFInsertData(tif, (int) TIFF_SHORT, v); + } +} +#undef MakeShortDirent + +#ifndef TIFFWriteRational +/* + * Setup a RATIONAL directory entry and + * write the associated indirect value. + */ +static int +TIFFWriteRational(TIFF* tif, + TIFFDataType type, ttag_t tag, TIFFDirEntry* dir, float v) +{ + return (TIFFWriteRationalArray(tif, type, tag, dir, 1, &v)); +} +#endif + +#define NITEMS(x) (sizeof (x) / sizeof (x[0])) +/* + * Setup a directory entry that references a + * samples/pixel array of SHORT values and + * (potentially) write the associated indirect + * values. + */ +static int +TIFFWritePerSampleShorts(TIFF* tif, ttag_t tag, TIFFDirEntry* dir) +{ + uint16 buf[10], v; + uint16* w = buf; + int i, status, samples = tif->tif_dir.td_samplesperpixel; + + if (samples > NITEMS(buf)) + w = (uint16*) _TIFFmalloc(samples * sizeof (uint16)); + TIFFGetField(tif, tag, &v); + for (i = 0; i < samples; i++) + w[i] = v; + status = TIFFWriteShortArray(tif, TIFF_SHORT, tag, dir, samples, w); + if (w != buf) + _TIFFfree((char*) w); + return (status); +} + +/* + * Setup a directory entry that references a samples/pixel array of ``type'' + * values and (potentially) write the associated indirect values. The source + * data from TIFFGetField() for the specified tag must be returned as double. + */ +static int +TIFFWritePerSampleAnys(TIFF* tif, + TIFFDataType type, ttag_t tag, TIFFDirEntry* dir) +{ + double buf[10], v; + double* w = buf; + int i, status; + int samples = (int) tif->tif_dir.td_samplesperpixel; + + if (samples > NITEMS(buf)) + w = (double*) _TIFFmalloc(samples * sizeof (double)); + TIFFGetField(tif, tag, &v); + for (i = 0; i < samples; i++) + w[i] = v; + status = TIFFWriteAnyArray(tif, type, tag, dir, samples, w); + if (w != buf) + _TIFFfree(w); + return (status); +} +#undef NITEMS + +/* + * Setup a pair of shorts that are returned by + * value, rather than as a reference to an array. + */ +static int +TIFFSetupShortPair(TIFF* tif, ttag_t tag, TIFFDirEntry* dir) +{ + uint16 v[2]; + + TIFFGetField(tif, tag, &v[0], &v[1]); + return (TIFFWriteShortArray(tif, TIFF_SHORT, tag, dir, 2, v)); +} + +/* + * Setup a directory entry for an NxM table of shorts, + * where M is known to be 2**bitspersample, and write + * the associated indirect data. + */ +static int +TIFFWriteShortTable(TIFF* tif, + ttag_t tag, TIFFDirEntry* dir, uint32 n, uint16** table) +{ + uint32 i, off; + + dir->tdir_tag = tag; + dir->tdir_type = (short) TIFF_SHORT; + /* XXX -- yech, fool TIFFWriteData */ + dir->tdir_count = (uint32) (1L<tif_dir.td_bitspersample); + off = tif->tif_dataoff; + for (i = 0; i < n; i++) + if (!TIFFWriteData(tif, dir, (char *)table[i])) + return (0); + dir->tdir_count *= n; + dir->tdir_offset = off; + return (1); +} + +/* + * Write/copy data associated with an ASCII or opaque tag value. + */ +static int +TIFFWriteByteArray(TIFF* tif, TIFFDirEntry* dir, char* cp) +{ + if (dir->tdir_count > 4) { + if (!TIFFWriteData(tif, dir, cp)) + return (0); + } else + _TIFFmemcpy(&dir->tdir_offset, cp, dir->tdir_count); + return (1); +} + +/* + * Setup a directory entry of an array of SHORT + * or SSHORT and write the associated indirect values. + */ +static int +TIFFWriteShortArray(TIFF* tif, + TIFFDataType type, ttag_t tag, TIFFDirEntry* dir, uint32 n, uint16* v) +{ + dir->tdir_tag = tag; + dir->tdir_type = (short) type; + dir->tdir_count = n; + if (n <= 2) { + if (tif->tif_header.tiff_magic == TIFF_BIGENDIAN) { + dir->tdir_offset = (uint32) ((long) v[0] << 16); + if (n == 2) + dir->tdir_offset |= v[1] & 0xffff; + } else { + dir->tdir_offset = v[0] & 0xffff; + if (n == 2) + dir->tdir_offset |= (long) v[1] << 16; + } + return (1); + } else + return (TIFFWriteData(tif, dir, (char*) v)); +} + +/* + * Setup a directory entry of an array of LONG + * or SLONG and write the associated indirect values. + */ +static int +TIFFWriteLongArray(TIFF* tif, + TIFFDataType type, ttag_t tag, TIFFDirEntry* dir, uint32 n, uint32* v) +{ + dir->tdir_tag = tag; + dir->tdir_type = (short) type; + dir->tdir_count = n; + if (n == 1) { + dir->tdir_offset = v[0]; + return (1); + } else + return (TIFFWriteData(tif, dir, (char*) v)); +} + +/* + * Setup a directory entry of an array of RATIONAL + * or SRATIONAL and write the associated indirect values. + */ +static int +TIFFWriteRationalArray(TIFF* tif, + TIFFDataType type, ttag_t tag, TIFFDirEntry* dir, uint32 n, float* v) +{ + uint32 i; + uint32* t; + int status; + + dir->tdir_tag = tag; + dir->tdir_type = (short) type; + dir->tdir_count = n; + t = (uint32*) _TIFFmalloc(2*n * sizeof (uint32)); + for (i = 0; i < n; i++) { + float fv = v[i]; + int sign = 1; + uint32 den; + + if (fv < 0) { + if (type == TIFF_RATIONAL) { + TIFFWarning(tif->tif_name, + "\"%s\": Information lost writing value (%g) as (unsigned) RATIONAL", + _TIFFFieldWithTag(tif,tag)->field_name, v); + fv = 0; + } else + fv = -fv, sign = -1; + } + den = 1L; + if (fv > 0) { + while (fv < 1L<<(31-3) && den < 1L<<(31-3)) + fv *= 1<<3, den *= 1L<<3; + } + t[2*i+0] = sign * (fv + 0.5); + t[2*i+1] = den; + } + status = TIFFWriteData(tif, dir, (char *)t); + _TIFFfree((char*) t); + return (status); +} + +static int +TIFFWriteFloatArray(TIFF* tif, + TIFFDataType type, ttag_t tag, TIFFDirEntry* dir, uint32 n, float* v) +{ + dir->tdir_tag = tag; + dir->tdir_type = (short) type; + dir->tdir_count = n; + TIFFCvtNativeToIEEEFloat(tif, n, v); + if (n == 1) { + dir->tdir_offset = *(uint32*) &v[0]; + return (1); + } else + return (TIFFWriteData(tif, dir, (char*) v)); +} + +static int +TIFFWriteDoubleArray(TIFF* tif, + TIFFDataType type, ttag_t tag, TIFFDirEntry* dir, uint32 n, double* v) +{ + dir->tdir_tag = tag; + dir->tdir_type = (short) type; + dir->tdir_count = n; + TIFFCvtNativeToIEEEDouble(tif, n, v); + return (TIFFWriteData(tif, dir, (char*) v)); +} + +/* + * Write an array of ``type'' values for a specified tag (i.e. this is a tag + * which is allowed to have different types, e.g. SMaxSampleType). + * Internally the data values are represented as double since a double can + * hold any of the TIFF tag types (yes, this should really be an abstract + * type tany_t for portability). The data is converted into the specified + * type in a temporary buffer and then handed off to the appropriate array + * writer. + */ +static int +TIFFWriteAnyArray(TIFF* tif, + TIFFDataType type, ttag_t tag, TIFFDirEntry* dir, uint32 n, double* v) +{ + char buf[10 * sizeof(double)]; + char* w = buf; + int i, status = 0; + + if (n * tiffDataWidth[type] > sizeof buf) + w = (char*) _TIFFmalloc(n * tiffDataWidth[type]); + switch (type) { + case TIFF_BYTE: + { unsigned char* bp = (unsigned char*) w; + for (i = 0; i < n; i++) + bp[i] = (unsigned char) v[i]; + dir->tdir_tag = tag; + dir->tdir_type = (short) type; + dir->tdir_count = n; + if (!TIFFWriteByteArray(tif, dir, (char*) bp)) + goto out; + } + break; + case TIFF_SBYTE: + { signed char* bp = (signed char*) w; + for (i = 0; i < n; i++) + bp[i] = (signed char) v[i]; + dir->tdir_tag = tag; + dir->tdir_type = (short) type; + dir->tdir_count = n; + if (!TIFFWriteByteArray(tif, dir, (char*) bp)) + goto out; + } + break; + case TIFF_SHORT: + { uint16* bp = (uint16*) w; + for (i = 0; i < n; i++) + bp[i] = (uint16) v[i]; + if (!TIFFWriteShortArray(tif, type, tag, dir, n, (uint16*)bp)) + goto out; + } + break; + case TIFF_SSHORT: + { int16* bp = (int16*) w; + for (i = 0; i < n; i++) + bp[i] = (int16) v[i]; + if (!TIFFWriteShortArray(tif, type, tag, dir, n, (uint16*)bp)) + goto out; + } + break; + case TIFF_LONG: + { uint32* bp = (uint32*) w; + for (i = 0; i < n; i++) + bp[i] = (uint32) v[i]; + if (!TIFFWriteLongArray(tif, type, tag, dir, n, bp)) + goto out; + } + break; + case TIFF_SLONG: + { int32* bp = (int32*) w; + for (i = 0; i < n; i++) + bp[i] = (int32) v[i]; + if (!TIFFWriteLongArray(tif, type, tag, dir, n, (uint32*) bp)) + goto out; + } + break; + case TIFF_FLOAT: + { float* bp = (float*) w; + for (i = 0; i < n; i++) + bp[i] = (float) v[i]; + if (!TIFFWriteFloatArray(tif, type, tag, dir, n, bp)) + goto out; + } + break; + case TIFF_DOUBLE: + return (TIFFWriteDoubleArray(tif, type, tag, dir, n, v)); + default: + /* TIFF_NOTYPE */ + /* TIFF_ASCII */ + /* TIFF_UNDEFINED */ + /* TIFF_RATIONAL */ + /* TIFF_SRATIONAL */ + goto out; + } + status = 1; + out: + if (w != buf) + _TIFFfree(w); + return (status); +} + +#ifdef COLORIMETRY_SUPPORT +static int +TIFFWriteTransferFunction(TIFF* tif, TIFFDirEntry* dir) +{ + TIFFDirectory* td = &tif->tif_dir; + tsize_t n = (1L<td_bitspersample) * sizeof (uint16); + uint16** tf = td->td_transferfunction; + int ncols; + + /* + * Check if the table can be written as a single column, + * or if it must be written as 3 columns. Note that we + * write a 3-column tag if there are 2 samples/pixel and + * a single column of data won't suffice--hmm. + */ + switch (td->td_samplesperpixel - td->td_extrasamples) { + default: if (_TIFFmemcmp(tf[0], tf[2], n)) { ncols = 3; break; } + case 2: if (_TIFFmemcmp(tf[0], tf[1], n)) { ncols = 3; break; } + case 1: case 0: ncols = 1; + } + return (TIFFWriteShortTable(tif, + TIFFTAG_TRANSFERFUNCTION, dir, ncols, tf)); +} +#endif + +/* + * Write a contiguous directory item. + */ +static int +TIFFWriteData(TIFF* tif, TIFFDirEntry* dir, char* cp) +{ + tsize_t cc; + + if (tif->tif_flags & TIFF_SWAB) { + switch (dir->tdir_type) { + case TIFF_SHORT: + case TIFF_SSHORT: + TIFFSwabArrayOfShort((uint16*) cp, dir->tdir_count); + break; + case TIFF_LONG: + case TIFF_SLONG: + case TIFF_FLOAT: + TIFFSwabArrayOfLong((uint32*) cp, dir->tdir_count); + break; + case TIFF_RATIONAL: + case TIFF_SRATIONAL: + TIFFSwabArrayOfLong((uint32*) cp, 2*dir->tdir_count); + break; + case TIFF_DOUBLE: + TIFFSwabArrayOfDouble((double*) cp, dir->tdir_count); + break; + } + } + dir->tdir_offset = tif->tif_dataoff; + cc = dir->tdir_count * tiffDataWidth[dir->tdir_type]; + if (SeekOK(tif, dir->tdir_offset) && + WriteOK(tif, cp, cc)) { + tif->tif_dataoff += (cc + 1) & ~1; + return (1); + } + TIFFError(tif->tif_name, "Error writing data for field \"%s\"", + _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name); + return (0); +} + +/* + * Link the current directory into the + * directory chain for the file. + */ +static int +TIFFLinkDirectory(TIFF* tif) +{ + static const char module[] = "TIFFLinkDirectory"; + uint32 nextdir; + uint32 diroff; + + tif->tif_diroff = (TIFFSeekFile(tif, (toff_t) 0, SEEK_END)+1) &~ 1; + diroff = (uint32) tif->tif_diroff; + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabLong(&diroff); +#if SUBIFD_SUPPORT + if (tif->tif_flags & TIFF_INSUBIFD) { + (void) TIFFSeekFile(tif, tif->tif_subifdoff, SEEK_SET); + if (!WriteOK(tif, &diroff, sizeof (diroff))) { + TIFFError(module, + "%s: Error writing SubIFD directory link", + tif->tif_name); + return (0); + } + /* + * Advance to the next SubIFD or, if this is + * the last one configured, revert back to the + * normal directory linkage. + */ + if (--tif->tif_nsubifd) + tif->tif_subifdoff += sizeof (diroff); + else + tif->tif_flags &= ~TIFF_INSUBIFD; + return (1); + } +#endif + if (tif->tif_header.tiff_diroff == 0) { + /* + * First directory, overwrite offset in header. + */ + tif->tif_header.tiff_diroff = (uint32) tif->tif_diroff; +#define HDROFF(f) ((toff_t) &(((TIFFHeader*) 0)->f)) + (void) TIFFSeekFile(tif, HDROFF(tiff_diroff), SEEK_SET); + if (!WriteOK(tif, &diroff, sizeof (diroff))) { + TIFFError(tif->tif_name, "Error writing TIFF header"); + return (0); + } + return (1); + } + /* + * Not the first directory, search to the last and append. + */ + nextdir = tif->tif_header.tiff_diroff; + do { + uint16 dircount; + + if (!SeekOK(tif, nextdir) || + !ReadOK(tif, &dircount, sizeof (dircount))) { + TIFFError(module, "Error fetching directory count"); + return (0); + } + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabShort(&dircount); + (void) TIFFSeekFile(tif, + dircount * sizeof (TIFFDirEntry), SEEK_CUR); + if (!ReadOK(tif, &nextdir, sizeof (nextdir))) { + TIFFError(module, "Error fetching directory link"); + return (0); + } + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabLong(&nextdir); + } while (nextdir != 0); + (void) TIFFSeekFile(tif, -(toff_t) sizeof (nextdir), SEEK_CUR); + if (!WriteOK(tif, &diroff, sizeof (diroff))) { + TIFFError(module, "Error writing directory link"); + return (0); + } + return (1); +} diff --git a/contrib/ras/ras2tif.c b/contrib/ras/ras2tif.c new file mode 100755 index 0000000..e314d38 --- /dev/null +++ b/contrib/ras/ras2tif.c @@ -0,0 +1,247 @@ +#ifndef lint +static char sccsid[] = "@(#)ras2tif.c 1.2 90/03/06"; +#endif +/*- + * ras2tif.c - Converts from a Sun Rasterfile to a Tagged Image File. + * + * Copyright (c) 1990 by Sun Microsystems, Inc. + * + * Author: Patrick J. Naughton + * naughton@wind.sun.com + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation. + * + * This file is provided AS IS with no warranties of any kind. The author + * shall have no liability with respect to the infringement of copyrights, + * trade secrets or any patents by this file or any part thereof. In no + * event will the author be liable for any lost revenue or profits or + * other special, indirect and consequential damages. + * + * Comments and additions should be sent to the author: + * + * Patrick J. Naughton + * Sun Microsystems + * 2550 Garcia Ave, MS 14-40 + * Mountain View, CA 94043 + * (415) 336-1080 + * + * Revision History: + * 11-Jan-89: Created. + * 06-Mar-90: fix bug in SCALE() macro. + * got rid of xres and yres, (they weren't working anyways). + * fixed bpsl calculation. + * 25-Nov-99: y2k fix (year as 1900 + tm_year) + * + * Description: + * This program takes a Sun Rasterfile [see rasterfile(5)] as input and + * writes a MicroSoft/Aldus "Tagged Image File Format" image or "TIFF" file. + * The input file may be standard input, but the output TIFF file must be a + * real file since seek(2) is used. + */ + +#include +#include +#include +#include "tiffio.h" + +typedef int boolean; +#define True (1) +#define False (0) +#define SCALE(x) (((x)*((1L<<16)-1))/255) + +boolean Verbose = False; +boolean dummyinput = False; +char *pname; /* program name (used for error messages) */ + +void +error(s1, s2) + char *s1, + *s2; +{ + fprintf(stderr, s1, pname, s2); + exit(1); +} + +void +usage() +{ + error("usage: %s -[vq] [-|rasterfile] TIFFfile\n", NULL); +} + + +main(argc, argv) + int argc; + char *argv[]; +{ + char *inf = NULL; + char *outf = NULL; + FILE *fp; + int depth, + i; + long row; + TIFF *tif; + Pixrect *pix; /* The Sun Pixrect */ + colormap_t Colormap; /* The Pixrect Colormap */ + u_short red[256], + green[256], + blue[256]; + struct tm *ct; + struct timeval tv; + long width, + height; + long rowsperstrip; + int year; + short photometric; + short samplesperpixel; + short bitspersample; + int bpsl; + static char *version = "ras2tif 1.0"; + static char *datetime = "1990:01:01 12:00:00"; + + gettimeofday(&tv, (struct timezone *) NULL); + ct = localtime(&tv.tv_sec); + year=1900 + ct->tm_year; + sprintf(datetime, "%04d:%02d:%02d %02d:%02d:%02d", + year, ct->tm_mon + 1, ct->tm_mday, + ct->tm_hour, ct->tm_min, ct->tm_sec); + + setbuf(stderr, NULL); + pname = argv[0]; + + while (--argc) { + if ((++argv)[0][0] == '-') { + switch (argv[0][1]) { + case 'v': + Verbose = True; + break; + case 'q': + usage(); + break; + case '\0': + if (inf == NULL) + dummyinput = True; + else + usage(); + break; + default: + fprintf(stderr, "%s: illegal option -%c.\n", pname, + argv[0][1]); + exit(1); + } + } else if (inf == NULL && !dummyinput) { + inf = argv[0]; + } else if (outf == NULL) + outf = argv[0]; + else + usage(); + } + + if (outf == NULL) + error("%s: can't write output file to a stream.\n", NULL); + + if (dummyinput || inf == NULL) { + inf = "Standard Input"; + fp = stdin; + } else if ((fp = fopen(inf, "r")) == NULL) + error("%s: %s couldn't be opened.\n", inf); + + if (Verbose) + fprintf(stderr, "Reading rasterfile from %s...", inf); + + pix = pr_load(fp, &Colormap); + if (pix == NULL) + error("%s: %s is not a raster file.\n", inf); + + if (Verbose) + fprintf(stderr, "done.\n"); + + if (Verbose) + fprintf(stderr, "Writing %s...", outf); + + tif = TIFFOpen(outf, "w"); + + if (tif == NULL) + error("%s: error opening TIFF file %s", outf); + + width = pix->pr_width; + height = pix->pr_height; + depth = pix->pr_depth; + + switch (depth) { + case 1: + samplesperpixel = 1; + bitspersample = 1; + photometric = PHOTOMETRIC_MINISBLACK; + break; + case 8: + samplesperpixel = 1; + bitspersample = 8; + photometric = PHOTOMETRIC_PALETTE; + break; + case 24: + samplesperpixel = 3; + bitspersample = 8; + photometric = PHOTOMETRIC_RGB; + break; + case 32: + samplesperpixel = 4; + bitspersample = 8; + photometric = PHOTOMETRIC_RGB; + break; + default: + error("%s: bogus depth: %d\n", depth); + } + + bpsl = ((depth * width + 15) >> 3) & ~1; + rowsperstrip = (8 * 1024) / bpsl; + + TIFFSetField(tif, TIFFTAG_IMAGEWIDTH, width); + TIFFSetField(tif, TIFFTAG_IMAGELENGTH, height); + TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, bitspersample); + TIFFSetField(tif, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT); + TIFFSetField(tif, TIFFTAG_COMPRESSION, COMPRESSION_LZW); + TIFFSetField(tif, TIFFTAG_PHOTOMETRIC, photometric); + TIFFSetField(tif, TIFFTAG_DOCUMENTNAME, inf); + TIFFSetField(tif, TIFFTAG_IMAGEDESCRIPTION, "converted Sun rasterfile"); + TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, samplesperpixel); + TIFFSetField(tif, TIFFTAG_ROWSPERSTRIP, rowsperstrip); + TIFFSetField(tif, TIFFTAG_STRIPBYTECOUNTS, height / rowsperstrip); + TIFFSetField(tif, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); + TIFFSetField(tif, TIFFTAG_SOFTWARE, version); + TIFFSetField(tif, TIFFTAG_DATETIME, datetime); + + memset(red, 0, sizeof(red)); + memset(green, 0, sizeof(green)); + memset(blue, 0, sizeof(blue)); + if (depth == 8) { + TIFFSetField(tif, TIFFTAG_COLORMAP, red, green, blue); + for (i = 0; i < Colormap.length; i++) { + red[i] = SCALE(Colormap.map[0][i]); + green[i] = SCALE(Colormap.map[1][i]); + blue[i] = SCALE(Colormap.map[2][i]); + } + } + if (Verbose) + fprintf(stderr, "%dx%dx%d image, ", width, height, depth); + + for (row = 0; row < height; row++) + if (TIFFWriteScanline(tif, + (u_char *) mprd_addr(mpr_d(pix), 0, row), + row, 0) < 0) { + fprintf("failed a scanline write (%d)\n", row); + break; + } + TIFFFlushData(tif); + TIFFClose(tif); + + if (Verbose) + fprintf(stderr, "done.\n"); + + pr_destroy(pix); + + exit(0); +} diff --git a/contrib/ras/readme b/contrib/ras/readme new file mode 100755 index 0000000..6d74b28 --- /dev/null +++ b/contrib/ras/readme @@ -0,0 +1,10 @@ +Sun May 19 22:28:16 PDT 1991 + +These programs are from Patrick Naughton (naughton@wind.sun.com). +I've tried to update them to reflect changes to the library, but +I am unable to verify that they operate properly, because they +require the Sun pixrect library. + +Please contact Patrick directly if you have questions/problems. + + Sam diff --git a/contrib/ras/tif2ras.c b/contrib/ras/tif2ras.c new file mode 100755 index 0000000..20c4bf7 --- /dev/null +++ b/contrib/ras/tif2ras.c @@ -0,0 +1,337 @@ +#ifndef lint +static char id[] = "$Id: tif2ras.c,v 1.1.1.1 2000/06/24 19:10:17 tshead Exp $"; +#endif +/*- + * tif2ras.c - Converts from a Tagged Image File Format image to a Sun Raster. + * + * Copyright (c) 1990 by Sun Microsystems, Inc. + * + * Author: Patrick J. Naughton + * naughton@wind.sun.com + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation. + * + * This file is provided AS IS with no warranties of any kind. The author + * shall have no liability with respect to the infringement of copyrights, + * trade secrets or any patents by this file or any part thereof. In no + * event will the author be liable for any lost revenue or profits or + * other special, indirect and consequential damages. + * + * Comments and additions should be sent to the author: + * + * Patrick J. Naughton + * Sun Microsystems + * 2550 Garcia Ave, MS 14-40 + * Mountain View, CA 94043 + * (415) 336-1080 + * + * Revision History: + * 10-Jan-89: Created. + * 06-Mar-90: Change to byte encoded rasterfiles. + * fix bug in call to ReadScanline(). + * fix bug in CVT() macro. + * fix assignment of td, (missing &). + * + * Description: + * This program takes a MicroSoft/Aldus "Tagged Image File Format" image or + * "TIFF" file as input and writes a Sun Rasterfile [see rasterfile(5)]. The + * output file may be standard output, but the input TIFF file must be a real + * file since seek(2) is used. + */ + +#include +#include +#include "tiffio.h" + +typedef int boolean; +#define True (1) +#define False (0) +#define CVT(x) (((x) * 255) / ((1L<<16)-1)) + +boolean Verbose = False; +char *pname; /* program name (used for error messages) */ + +void +error(s1, s2) + char *s1, + *s2; +{ + fprintf(stderr, s1, pname, s2); + exit(1); +} + +void +usage() +{ + error("usage: %s -[vq] TIFFfile [rasterfile]\n", NULL); +} + + +main(argc, argv) + int argc; + char *argv[]; +{ + char *inf = NULL; + char *outf = NULL; + FILE *fp; + long width, + height; + int depth, + numcolors; + register TIFF *tif; + TIFFDirectory *td; + register u_char *inp, + *outp; + register int col, + i; + register long row; + u_char *Map = NULL; + u_char *buf; + short bitspersample; + short samplesperpixel; + short photometric; + u_short *redcolormap, + *bluecolormap, + *greencolormap; + + Pixrect *pix; /* The Sun Pixrect */ + colormap_t Colormap; /* The Pixrect Colormap */ + u_char red[256], + green[256], + blue[256]; + + setbuf(stderr, NULL); + pname = argv[0]; + + while (--argc) { + if ((++argv)[0][0] == '-') + switch (argv[0][1]) { + case 'v': + Verbose = True; + break; + case 'q': + usage(); + break; + default: + fprintf(stderr, "%s: illegal option -%c.\n", pname, + argv[0][1]); + exit(1); + } + else if (inf == NULL) + inf = argv[0]; + else if (outf == NULL) + outf = argv[0]; + else + usage(); + + } + + if (inf == NULL) + error("%s: can't read input file from a stream.\n", NULL); + + if (Verbose) + fprintf(stderr, "Reading %s...", inf); + + tif = TIFFOpen(inf, "r"); + + if (tif == NULL) + error("%s: error opening TIFF file %s", inf); + + if (Verbose) + TIFFPrintDirectory(tif, stderr, True, False, False); + TIFFGetField(tif, TIFFTAG_BITSPERSAMPLE, &bitspersample); + if (bitspersample > 8) + error("%s: can't handle more than 8-bits per sample\n", NULL); + + TIFFGetField(tif, TIFFTAG_SAMPLESPERPIXEL, &samplesperpixel); + switch (samplesperpixel) { + case 1: + if (bitspersample == 1) + depth = 1; + else + depth = 8; + break; + case 3: + case 4: + depth = 24; + break; + default: + error("%s: only handle 1-channel gray scale or 3-channel color\n"); + } + + TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &width); + TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &height); + + if (Verbose) + fprintf(stderr, "%dx%dx%d image, ", width, height, depth); + if (Verbose) + fprintf(stderr, "%d bits/sample, %d samples/pixel, ", + bitspersample, samplesperpixel); + + pix = mem_create(width, height, depth); + if (pix == (Pixrect *) NULL) + error("%s: can't allocate memory for output pixrect...\n", NULL); + + numcolors = (1 << bitspersample); + + TIFFGetField(tif, TIFFTAG_PHOTOMETRIC, &photometric); + if (numcolors == 2) { + if (Verbose) + fprintf(stderr, "monochrome "); + Colormap.type = RMT_NONE; + Colormap.length = 0; + Colormap.map[0] = Colormap.map[1] = Colormap.map[2] = NULL; + } else { + switch (photometric) { + case PHOTOMETRIC_MINISBLACK: + if (Verbose) + fprintf(stderr, "%d graylevels (min=black), ", numcolors); + Map = (u_char *) malloc(numcolors * sizeof(u_char)); + for (i = 0; i < numcolors; i++) + Map[i] = (255 * i) / numcolors; + Colormap.type = RMT_EQUAL_RGB; + Colormap.length = numcolors; + Colormap.map[0] = Colormap.map[1] = Colormap.map[2] = Map; + break; + case PHOTOMETRIC_MINISWHITE: + if (Verbose) + fprintf(stderr, "%d graylevels (min=white), ", numcolors); + Map = (u_char *) malloc(numcolors * sizeof(u_char)); + for (i = 0; i < numcolors; i++) + Map[i] = 255 - ((255 * i) / numcolors); + Colormap.type = RMT_EQUAL_RGB; + Colormap.length = numcolors; + Colormap.map[0] = Colormap.map[1] = Colormap.map[2] = Map; + break; + case PHOTOMETRIC_RGB: + if (Verbose) + fprintf(stderr, "truecolor "); + Colormap.type = RMT_NONE; + Colormap.length = 0; + Colormap.map[0] = Colormap.map[1] = Colormap.map[2] = NULL; + break; + case PHOTOMETRIC_PALETTE: + if (Verbose) + fprintf(stderr, "colormapped "); + Colormap.type = RMT_EQUAL_RGB; + Colormap.length = numcolors; + memset(red, 0, sizeof(red)); + memset(green, 0, sizeof(green)); + memset(blue, 0, sizeof(blue)); + TIFFGetField(tif, TIFFTAG_COLORMAP, + &redcolormap, &greencolormap, &bluecolormap); + for (i = 0; i < numcolors; i++) { + red[i] = (u_char) CVT(redcolormap[i]); + green[i] = (u_char) CVT(greencolormap[i]); + blue[i] = (u_char) CVT(bluecolormap[i]); + } + Colormap.map[0] = red; + Colormap.map[1] = green; + Colormap.map[2] = blue; + break; + case PHOTOMETRIC_MASK: + error("%s: Don't know how to handle PHOTOMETRIC_MASK\n"); + break; + case PHOTOMETRIC_DEPTH: + error("%s: Don't know how to handle PHOTOMETRIC_DEPTH\n"); + break; + default: + error("%s: unknown photometric (cmap): %d\n", photometric); + } + } + + buf = (u_char *) malloc(TIFFScanlineSize(tif)); + if (buf == NULL) + error("%s: can't allocate memory for scanline buffer...\n", NULL); + + for (row = 0; row < height; row++) { + if (TIFFReadScanline(tif, buf, row, 0) < 0) + error("%s: bad data read on line: %d\n", row); + inp = buf; + outp = (u_char *) mprd_addr(mpr_d(pix), 0, row); + switch (photometric) { + case PHOTOMETRIC_RGB: + if (samplesperpixel == 4) + for (col = 0; col < width; col++) { + *outp++ = *inp++; /* Blue */ + *outp++ = *inp++; /* Green */ + *outp++ = *inp++; /* Red */ + inp++; /* skip alpha channel */ + } + else + for (col = 0; col < width; col++) { + *outp++ = *inp++; /* Blue */ + *outp++ = *inp++; /* Green */ + *outp++ = *inp++; /* Red */ + } + break; + case PHOTOMETRIC_MINISWHITE: + case PHOTOMETRIC_MINISBLACK: + switch (bitspersample) { + case 1: + for (col = 0; col < ((width + 7) / 8); col++) + *outp++ = *inp++; + break; + case 2: + for (col = 0; col < ((width + 3) / 4); col++) { + *outp++ = (*inp >> 6) & 3; + *outp++ = (*inp >> 4) & 3; + *outp++ = (*inp >> 2) & 3; + *outp++ = *inp++ & 3; + } + break; + case 4: + for (col = 0; col < width / 2; col++) { + *outp++ = *inp >> 4; + *outp++ = *inp++ & 0xf; + } + break; + case 8: + for (col = 0; col < width; col++) + *outp++ = *inp++; + break; + default: + error("%s: bad bits/sample: %d\n", bitspersample); + } + break; + case PHOTOMETRIC_PALETTE: + memcpy(outp, inp, width); + break; + default: + error("%s: unknown photometric (write): %d\n", photometric); + } + } + + free((char *) buf); + + if (Verbose) + fprintf(stderr, "done.\n"); + + if (outf == NULL || strcmp(outf, "Standard Output") == 0) { + outf = "Standard Output"; + fp = stdout; + } else { + if (!(fp = fopen(outf, "w"))) + error("%s: %s couldn't be opened for writing.\n", outf); + } + + if (Verbose) + fprintf(stderr, "Writing rasterfile in %s...", outf); + + if (pr_dump(pix, fp, &Colormap, RT_BYTE_ENCODED, 0) == PIX_ERR) + error("%s: error writing Sun Rasterfile: %s\n", outf); + + if (Verbose) + fprintf(stderr, "done.\n"); + + pr_destroy(pix); + + if (fp != stdout) + fclose(fp); + + exit(0); +} diff --git a/contrib/vms/libtiff/makevms.com b/contrib/vms/libtiff/makevms.com new file mode 100755 index 0000000..33e62fc --- /dev/null +++ b/contrib/vms/libtiff/makevms.com @@ -0,0 +1,229 @@ +$!======================================================================== +$! +$! Name : MAKEVMS +$! +$! Purpose : Compile TIFF library +$! +$! Arguments : If P1 is DEBUG, compile with debug +$! +$! Created 1-DEC-1994 Karsten Spang +$! +$!======================================================================== +$ CURRENT_DIR=F$ENVIRONMENT("DEFAULT") +$ ON CONTROL_Y THEN GOTO EXIT +$ ON ERROR THEN GOTO EXIT +$! +$! Get hold on definitions +$! +$! Older versions of VMS may not recoqnize the "ARCH_NAME" keyword +$! This happens only on VAX +$! +$ SAVE_MESS=F$ENVIRONMENT("MESSAGE") +$ SET MESSAGE/NOID/NOFAC/NOSEV/NOTEXT +$ ARCH=F$GETSYI("ARCH_NAME") +$ SET MESSAGE 'SAVE_MESS' +$ IF F$TYPE(ARCH).EQS."" THEN ARCH="VAX" +$ ARCH=F$EDIT(ARCH,"UPCASE") +$! +$ DEFINE/NOLOG SYS SYS$LIBRARY +$ THIS_FILE=F$ENVIRONMENT("PROCEDURE") +$ PROC_NAME=F$PARSE(THIS_FILE,,,"NAME","SYNTAX_ONLY") +$ THIS_DIR=F$PARSE(THIS_FILE,,,"DEVICE","SYNTAX_ONLY")+ - + F$PARSE(THIS_FILE,,,"DIRECTORY","SYNTAX_ONLY") +$ SET DEFAULT 'THIS_DIR' +$ IF ARCH.EQS."ALPHA" +$ THEN +$ CONF_FP="HAVE_IEEEFP=1" +$ ELSE +$ CONF_FP="HAVE_IEEEFP=0" +$ ENDIF +$ CONF_LIBRARY="BSDTYPES,HAVE_MMAP" +$ IF P1.EQS."DEBUG" +$ THEN +$ DEBUG_OPTIONS="/DEBUG/NOOPTIMIZE" +$ CONF_LIBRARY=CONF_LIBRARY+",DEBUG" +$ LINK_OPTIONS="/DEBUG" +$ ELSE +$ DEBUG_OPTIONS="" +$ LINK_OPTIONS="" +$ ENDIF +$ DEFINES="/DEFINE=("+CONF_FP+","+CONF_LIBRARY+")" +$ C_COMPILE="CC"+DEBUG_OPTIONS+DEFINES +$ IF ARCH.EQS."ALPHA" +$ THEN +$! +$! You may want a different floating point option +$! +$ C_COMPILE=C_COMPILE+ - + "/FLOAT=IEEE_FLOAT/PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES" +$ ENDIF +$! +$ SOURCES="TIF_AUX,TIF_CLOSE,TIF_CODEC,TIF_COMPRESS,"+ - + "TIF_DIR,TIF_DIRINFO,TIF_DIRREAD,TIF_DIRWRITE,"+ - + "TIF_DUMPMODE,TIF_ERROR,TIF_FAX3,TIF_FAX3SM,TIF_FLUSH,TIF_GETIMAGE,"+ - +-! "TIF_JPEG,"+ - + "TIF_LZW,TIF_NEXT,TIF_OPEN,TIF_PACKBITS,TIF_PIXARLOG,TIF_PREDICT,"+ - + "TIF_PRINT,TIF_READ,TIF_STRIP,TIF_SWAB,TIF_THUNDER,TIF_TILE,"+ - + "TIF_VERSION,TIF_VMS,TIF_WARNING,TIF_WRITE" +! ",TIF_ZIP" +$ LIBFILE="TIFF" +$ IF F$SEARCH(LIBFILE+".OLB").EQS."" THEN - + LIBRARY/CREATE 'LIBFILE' +$! +$! Create the port library +$! +$ LIBPORT="[-.PORT]PORT" +$ IF F$SEARCH(LIBPORT+".OLB") .EQS "" +$ THEN +$ WRITE SYS$OUTPUT "Creating PORT.OLB" +$ LIBRARY/CREATE 'LIBPORT' +$ CREATE DUM.C +main(){getopt();strtoul();strcasecmp();} +$ C_COMPILE DUM +$ SET MESSAGE/ID/FAC/SEV/TEXT +$ DEFINE/USER SYS$OUTPUT LINK.WARNINGS +$ DEFINE/USER SYS$ERROR NLA0: +$ IF ARCH.EQS."ALPHA" +$ THEN +$ LINK DUM +$ ELSE +$ LINK DUM,SYS$INPUT:/OPTIONS +SYS$SHARE:VAXCRTL/SHARE +$ ENDIF +$ DELETE DUM.C;,DUM.OBJ;,DUM.EXE; +$ SEARCH/OUT=MISSING.OBJECTS LINK.WARNINGS LINK-I-UDFSYM +$ DELETE LINK.WARNINGS; +$ OPEN/READ MISSING MISSING.OBJECTS +$NEXTMIS: +$ READ/END=NOMOREMIS MISSING LINE +$ LINE=F$EDIT(LINE,"TRIM,COMPRESS,UPCASE") +$ LINE=F$ELEMENT(1," ",LINE) +$ IF LINE .EQS. " " THEN GOTO NEXTMIS +$ WRITE SYS$OUTPUT " "+LINE +$ C_COMPILE/OBJECT=[-.PORT]'LINE' [-.PORT]'LINE' +$ LIBRARY 'LIBPORT' [-.PORT]'LINE' +$ DELETE [-.PORT]'LINE'.OBJ; +$ GOTO NEXTMIS +$NOMOREMIS: +$ CLOSE MISSING +$ DELETE MISSING.OBJECTS; +$ ENDIF +$! +$! Create VERSION.H +$! +$ IF F$SEARCH("VERSION.H").EQS."" +$ THEN +$ WRITE SYS$OUTPUT "Creating VERSION.H" +$ IF F$SEARCH("MKVERSION.EXE").EQS."" +$ THEN +$ IF F$SEARCH("MKVERSION.OBJ").EQS."" +$ THEN +$ C_COMPILE MKVERSION +$ ENDIF +$ IF ARCH.EQS."ALPHA" +$ THEN +$ LINK MKVERSION,'LIBPORT'/LIBRARY +$ ELSE +$ LINK MKVERSION,'LIBPORT'/LIBRARY,SYS$INPUT:/OPTIONS +SYS$SHARE:VAXCRTL/SHARE +$ ENDIF +$ DELETE MKVERSION.OBJ;* +$ ENDIF +$ MKVERSION:=$'THIS_DIR'MKVERSION +$ MKVERSION -V [-]VERSION -A [-.DIST]TIFF.ALPHA VERSION.H +$ DELETE MKVERSION.EXE;* +$ ENDIF +$! +$! Create TIF_FAX3SM.C +$! +$ IF F$SEARCH("TIF_FAX3SM.C").EQS."" +$ THEN +$ WRITE SYS$OUTPUT "Creating FAX3SM.C" +$ IF F$SEARCH("MKG3STATES.EXE").EQS."" +$ THEN +$ IF F$SEARCH("MKG3STATES.OBJ").EQS."" +$ THEN +$ C_COMPILE MKG3STATES +$ ENDIF +$ IF ARCH.EQS."ALPHA" +$ THEN +$ LINK MKG3STATES,'LIBPORT'/LIBRARY +$ ELSE +$ LINK MKG3STATES,'LIBPORT'/LIBRARY,SYS$INPUT:/OPTIONS +SYS$SHARE:VAXCRTL/SHARE +$ ENDIF +$ DELETE MKG3STATES.OBJ;* +$ ENDIF +$ MKG3STATES:=$'THIS_DIR'MKG3STATES +$ MKG3STATES -c const TIF_FAX3SM.C +$ DELETE MKG3STATES.EXE;* +$ ENDIF +$! +$! Loop over modules +$! +$ NUMBER=0 +$COMPILE_LOOP: +$ FILE=F$ELEMENT(NUMBER,",",SOURCES) +$ IF FILE.EQS."," THEN GOTO END_COMPILE +$ C_FILE=F$PARSE(FILE,".C",,,"SYNTAX_ONLY") +$ C_FILE=F$SEARCH(C_FILE) +$ IF C_FILE.EQS."" +$ THEN +$ WRITE SYS$OUTPUT "Source file "+FILE+" not found" +$ GOTO EXIT +$ ENDIF +$ C_DATE=F$CVTIME(F$FILE_ATTRIBUTES(C_FILE,"RDT")) +$ OBJ_FILE=F$PARSE("",".OBJ",C_FILE,,"SYNTAX_ONLY") +$ OBJ_FILE=F$EXTRACT(0,F$LOCATE(";",OBJ_FILE),OBJ_FILE) +$ FOUND_OBJ_FILE=F$SEARCH(OBJ_FILE) +$ IF FOUND_OBJ_FILE.EQS."" +$ THEN +$ OBJ_DATE="" +$ ELSE +$ OBJ_DATE=F$CVTIME(F$FILE_ATTRIBUTES(FOUND_OBJ_FILE,"CDT")) +$ ENDIF +$ IF OBJ_DATE.LTS.C_DATE +$ THEN +$ WRITE SYS$OUTPUT "Compiling "+FILE +$ ON ERROR THEN CONTINUE +$ C_COMPILE/OBJECT='OBJ_FILE' 'C_FILE' +$ ON ERROR THEN GOTO EXIT +$ LIBRARY 'LIBFILE' 'OBJ_FILE' +$ +$ ENDIF +$ NUMBER=NUMBER+1 +$ GOTO COMPILE_LOOP +$END_COMPILE: +$ IF ARCH.EQS."ALPHA" +$ THEN +$ OPT_FILE="TIFFSHRAXP" +$ ELSE +$ OPT_FILE="TIFFSHRVAX" +$ FILE="TIFFVEC" +$ MAR_FILE=F$PARSE(FILE,".MAR",,,"SYNTAX_ONLY") +$ MAR_FILE=F$SEARCH(MAR_FILE) +$ MAR_FILE=F$SEARCH("TIFFVEC.MAR") +$ MAR_DATE=F$CVTIME(F$FILE_ATTRIBUTES(MAR_FILE,"RDT")) +$ OBJ_FILE=F$PARSE("",".OBJ",MAR_FILE,,"SYNTAX_ONLY") +$ OBJ_FILE=F$EXTRACT(0,F$LOCATE(";",OBJ_FILE),OBJ_FILE) +$ FOUND_OBJ_FILE=F$SEARCH(OBJ_FILE) +$ IF FOUND_OBJ_FILE.EQS."" +$ THEN +$ OBJ_DATE="" +$ ELSE +$ OBJ_DATE=F$CVTIME(F$FILE_ATTRIBUTES(FOUND_OBJ_FILE,"CDT")) +$ ENDIF +$ IF OBJ_DATE.LTS.MAR_DATE +$ THEN +$ WRITE SYS$OUTPUT "Compiling "+FILE +$ MACRO 'MAR_FILE' +$ LIBRARY 'LIBFILE' 'OBJ_FILE' +$ PURGE 'OBJ_FILE' +$ ENDIF +$ ENDIF +$ WRITE SYS$OUTPUT "Creating shareable library" +$ LINK/SHAREABLE='THIS_DIR'TIFFSHR'LINK_OPTIONS' 'OPT_FILE'/OPTIONS +$ PURGE/LOG TIFFSHR.EXE +$EXIT: +$ SET DEFAULT 'CURRENT_DIR' +$ EXIT diff --git a/contrib/vms/libtiff/tiffvec.mar b/contrib/vms/libtiff/tiffvec.mar new file mode 100755 index 0000000..c711d16 --- /dev/null +++ b/contrib/vms/libtiff/tiffvec.mar @@ -0,0 +1,131 @@ + .TITLE TIFFVEC - Transfer vector for TIFF library + .IDENT /LIBTIFF 3.4-002/ +; + .PSECT TIFFVEC,EXE,NOWRT,PIC,SHR,GBL,QUAD +; +; Macro that defines one entry in the transfer vector +; + .MACRO VECTOR,NAME + .ALIGN QUAD + .TRANSFER NAME + .MASK NAME + JMP L^NAME+2 + .ENDM +; +; Here goes the definitions of all public functions in the library, plus +; a few extra that are called by the tools. +; The sequence MUST NOT be changed, otherwise you will have to relink +; all applications. Add new functions at the end. +; + VECTOR TIFFCheckTile + VECTOR TIFFClose + VECTOR TIFFComputeStrip + VECTOR TIFFComputeTile + VECTOR TIFFCurrentDirectory + VECTOR TIFFCurrentRow + VECTOR TIFFCurrentStrip + VECTOR TIFFCurrentTile + VECTOR TIFFError + VECTOR TIFFFdOpen + VECTOR TIFFFileName + VECTOR TIFFFileno + VECTOR TIFFFlush + VECTOR TIFFFlushData + VECTOR TIFFGetField + VECTOR TIFFGetFieldDefaulted +; +; TIFFGetFileSize was removed in version 3.2. It has been replaced by a +; dummy value that makes the program abort with a privileged instruction +; fault, in case an old program calls TIFFGetFileSize. +; +; VECTOR TIFFGetFileSize + .QUAD 0 +; + VECTOR TIFFGetMode + VECTOR TIFFIsTiled +; +; TIFFModeCCITTFax3 gone in 3.3 beta 024 +; VECTOR TIFFModeCCITTFax3 + .QUAD 0 + VECTOR TIFFNumberOfStrips + VECTOR TIFFNumberOfTiles + VECTOR TIFFOpen + VECTOR TIFFPrintDirectory + VECTOR TIFFReadBufferSetup + VECTOR TIFFReadDirectory + VECTOR TIFFReadEncodedStrip + VECTOR TIFFReadEncodedTile + VECTOR TIFFReadRawStrip + VECTOR TIFFReadRawTile + VECTOR TIFFReadRGBAImage + VECTOR TIFFReadScanline + VECTOR TIFFReadTile + VECTOR TIFFReverseBits + VECTOR TIFFScanlineSize + VECTOR TIFFSetDirectory + VECTOR TIFFSetErrorHandler + VECTOR TIFFSetField + VECTOR TIFFSetWarningHandler + VECTOR TIFFStripSize + VECTOR TIFFSwabShort + VECTOR TIFFSwabLong + VECTOR TIFFSwabArrayOfShort + VECTOR TIFFSwabArrayOfLong + VECTOR TIFFTileRowSize + VECTOR TIFFTileSize + VECTOR TIFFVGetField + VECTOR TIFFVGetFieldDefaulted + VECTOR TIFFVSetField + VECTOR TIFFWarning + VECTOR TIFFWriteDirectory + VECTOR TIFFWriteEncodedStrip + VECTOR TIFFWriteEncodedTile + VECTOR TIFFWriteRawStrip + VECTOR TIFFWriteRawTile + VECTOR TIFFWriteScanline + VECTOR TIFFWriteTile +; +; New entries in version 3.1 +; + VECTOR TIFFClientOpen + VECTOR TIFFVStripSize ; For tiffcp +; +; New entries in version 3.2 +; + VECTOR TIFFGetVersion + VECTOR TIFFGetBitRevTable + VECTOR _TIFFmalloc ; For fax2tiff +; +; New entries in version 3.3 +; + VECTOR TIFFIsByteSwapped + VECTOR TIFFSetWriteOffset +; +; New entries in version 3.3 beta 020 +; + VECTOR TIFFSetSubDirectory + VECTOR TIFFUnlinkDirectory +; +; New entries in version 3.3 beta 026 (for the tools) +; + VECTOR _TIFFfree + VECTOR _TIFFrealloc + VECTOR _TIFFmemset + VECTOR _TIFFmemcpy + VECTOR _TIFFmemcmp +; +; New entries in version 3.4 beta 002 +; + VECTOR TIFFRasterScanlineSize + VECTOR TIFFDefaultStripSize + VECTOR TIFFDefaultTileSize + VECTOR TIFFVTileSize ; not new, but omitted previously + VECTOR TIFFSwabDouble + VECTOR TIFFSwabArrayOfDouble + VECTOR TIFFLastDirectory ; not new either +; +; New entries in version 3.4 beta 007 through 032 +; + VECTOR TIFFCurrentDirOffset + VECTOR TIFFWriteBufferSetup + .END diff --git a/contrib/vms/tools/makevms.com b/contrib/vms/tools/makevms.com new file mode 100755 index 0000000..f3a1704 --- /dev/null +++ b/contrib/vms/tools/makevms.com @@ -0,0 +1,113 @@ +$!======================================================================== +$! +$! Name : MAKEVMS +$! +$! Purpose : Compile TIFF tools +$! +$! Arguments : +$! +$! Created 6-DEC-1991 Karsten Spang +$! +$!======================================================================== +$ CURRENT_DIR=F$ENVIRONMENT("DEFAULT") +$ ON CONTROL_Y THEN GOTO EXIT +$ ON ERROR THEN GOTO EXIT +$! +$! Get hold on definitions +$! +$! Older versions of VMS may not recoqnize the "ARCH_NAME" keyword +$! This happens only on VAX +$! +$ SAVE_MESS=F$ENVIRONMENT("MESSAGE") +$ SET MESSAGE/NOID/NOFAC/NOSEV/NOTEXT +$ ARCH=F$GETSYI("ARCH_NAME") +$ SET MESSAGE 'SAVE_MESS' +$ IF F$TYPE(ARCH).EQS."" THEN ARCH="VAX" +$ ARCH=F$EDIT(ARCH,"UPCASE") +$! +$ DEFINE SYS SYS$LIBRARY +$ THIS_FILE=F$ENVIRONMENT("PROCEDURE") +$ PROC_NAME=F$PARSE(THIS_FILE,,,"NAME","SYNTAX_ONLY") +$ THIS_DIR=F$PARSE(THIS_FILE,,,"DEVICE","SYNTAX_ONLY")+ - + F$PARSE(THIS_FILE,,,"DIRECTORY","SYNTAX_ONLY") +$ SET DEFAULT 'THIS_DIR' +$ LIB_DIR=F$PARSE("[-.LIBTIFF]") +$ LIB_DIR=F$PARSE(LIB_DIR,,,"DEVICE","SYNTAX_ONLY")+ - + F$PARSE(LIB_DIR,,,"DIRECTORY","SYNTAX_ONLY") +$ DEFINE TIFFSHR 'LIB_DIR'TIFFSHR +$ CONF_LIBRARY="USE_VARARGS=0,USE_PROTOTYPES=1,USE_CONST=1,"+ - + "BSDTYPES,MMAP_SUPPORT" +$ IF ARCH.EQS."ALPHA" +$ THEN +$! +$! You may want a different floating point option +$! +$ CONF_FP="HAVE_IEEEFP=1" +$ ALPHA_OPT="/PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES/FLOAT=IEEE_FLOAT" +$ ELSE +$ CONF_FP="HAVE_IEEEFP=0" +$ ALPHA_OPT="" +$ ENDIF +$ DEFINES="/DEFINE=("+CONF_LIBRARY+","+CONF_FP+")" +$ INCLUDES="/INCLUDE="+LIB_DIR +$ IF P1.EQS."DEBUG" +$ THEN +$ DEBUG_OPTIONS="/DEBUG/NOOPTIMIZE" +$ LINK_OPTIONS="/DEBUG" +$ ELSE +$ DEBUG_OPTIONS="" +$ LINK_OPTIONS="" +$ ENDIF +$ C_COMPILE="CC"+DEBUG_OPTIONS+DEFINES+INCLUDES+ALPHA_OPT +$ LIBPORT="[-.PORT]PORT" +$! +$ SOURCES="FAX2PS,FAX2TIFF,GIF2TIFF,PAL2RGB," + - + "PPM2TIFF,RAS2TIFF,RGB2YCBCR," + - + "THUMBNAIL,TIFF2BW," + - + "TIFF2PS,TIFFCMP,TIFFCP,TIFFDITHER," + - + "TIFFDUMP,TIFFINFO,TIFFMEDIAN,TIFFSPLIT,YCBCR" +$! +$! Loop over programs +$! +$ NUMBER=0 +$COMPILE_LOOP: +$ FILE=F$ELEMENT(NUMBER,",",SOURCES) +$ IF FILE.EQS."," THEN GOTO END_COMPILE +$ C_FILE=F$PARSE(FILE,".C",,,"SYNTAX_ONLY") +$ C_FILE=F$SEARCH(C_FILE) +$ IF C_FILE.EQS."" +$ THEN +$ WRITE SYS$OUTPUT "Source file "+FILE+" not found" +$ GOTO EXIT +$ ENDIF +$ C_DATE=F$CVTIME(F$FILE_ATTRIBUTES(C_FILE,"RDT")) +$ EXE_FILE=F$PARSE("",".EXE",C_FILE,,"SYNTAX_ONLY") +$ EXE_FILE=F$EXTRACT(0,F$LOCATE(";",EXE_FILE),EXE_FILE) +$ FOUND_EXE_FILE=F$SEARCH(EXE_FILE) +$ IF FOUND_EXE_FILE.EQS."" +$ THEN +$ EXE_DATE="" +$ ELSE +$ EXE_DATE=F$CVTIME(F$FILE_ATTRIBUTES(FOUND_EXE_FILE,"CDT")) +$ ENDIF +$ IF EXE_DATE.LTS.C_DATE +$ THEN +$ WRITE SYS$OUTPUT "Compiling "+FILE +$ C_COMPILE 'FILE' +$ IF ARCH.EQS."ALPHA" +$ THEN +$ LINK'LINK_OPTIONS' 'FILE','LIBPORT'/LIB,'LIB_DIR'TIFF/OPTIONS +$ ELSE +$ LINK'LINK_OPTIONS' 'FILE','LIBPORT'/LIB, - + 'LIB_DIR'TIFF/OPTIONS,SYS$INPUT:/OPTIONS +SYS$SHARE:VAXCRTL/SHAREABLE +$ ENDIF +$ DELETE 'FILE'.OBJ;* +$ PURGE 'EXE_FILE' +$ ENDIF +$ NUMBER=NUMBER+1 +$ GOTO COMPILE_LOOP +$END_COMPILE: +$EXIT: +$ SET DEFAULT 'CURRENT_DIR' +$ EXIT diff --git a/contrib/win32/dllshell.c b/contrib/win32/dllshell.c new file mode 100755 index 0000000..d167779 --- /dev/null +++ b/contrib/win32/dllshell.c @@ -0,0 +1,38 @@ +dllshell.c --------------------------------------------------------------- +#define STRICT +#include +#pragma hdrstop + +#pragma argsused + +/* DLL has an entry point LibMain || DllEntryPoint and an exit point WEP. */ + +#if defined(__FLAT__) + +BOOL WINAPI DllEntryPoint(HINSTANCE hinstDll, DWORD fdwRreason, + LPVOID plvReserved) +{ + return 1; /* Indicate that the DLL was initialized successfully. */ +} + +#else /* not flat model */ + +int FAR PASCAL LibMain(HINSTANCE hInstance, WORD wDataSegment, WORD wHeapSize, + LPSTR lpszCmdLine) +{ +/* The startup code for the DLL initializes the local heap(if there is one) + with a call to LocalInit which locks the data segment. */ + + if ( wHeapSize != 0 ) + UnlockData( 0 ); + return 1; /* Indicate that the DLL was initialized successfully. */ +} + +#endif /* __FLAT */ + +#pragma argsused + +int FAR PASCAL WEP ( int bSystemExit ) +{ + return 1; +} diff --git a/contrib/win32/libtiff.def b/contrib/win32/libtiff.def new file mode 100755 index 0000000..55bc8c6 --- /dev/null +++ b/contrib/win32/libtiff.def @@ -0,0 +1,72 @@ +LIBRARY LIBTIFF +EXETYPE WINDOWS +CODE PRELOAD MOVEABLE DISCARDABLE +DATA PRELOAD MOVEABLE MULTIPLE +HEAPSIZE 4096 +STACKSIZE 8192 +EXPORTS +_TIFFGetVersion @1 +_TIFFClose @2 +_TIFFFlush @3 +_TIFFFlushData @4 +_TIFFGetField @5 +_TIFFVGetField @6 +_TIFFGetFieldDefaulted @7 +_TIFFVGetFieldDefaulted @8 +_TIFFReadDirectory @9 +_TIFFScanlineSize @10 +_TIFFStripSize @11 +_TIFFVStripSize @12 +_TIFFTileRowSize @13 +_TIFFTileSize @14 +_TIFFVTileSize @15 +_TIFFFileno @16 +_TIFFGetMode @17 +_TIFFIsTiled @18 +_TIFFIsByteSwapped @19 +_TIFFCurrentRow @20 +_TIFFCurrentDirectory @21 +_TIFFCurrentStrip @22 +_TIFFCurrentTile @23 +_TIFFReadBufferSetup @24 +_TIFFLastDirectory @25 +_TIFFSetDirectory @26 +_TIFFSetSubDirectory @27 +_TIFFUnlinkDirectory @28 +_TIFFSetField @29 +_TIFFVSetField @30 +_TIFFWriteDirectory @31 +_TIFFReadScanline @32 +_TIFFWriteScanline @33 +_TIFFReadRGBAImage @34 +_TIFFOpen @35 +_TIFFFdOpen @36 +_TIFFClientOpen @37 +_TIFFFileName @38 +_TIFFError @39 +_TIFFWarning @40 +_TIFFSetErrorHandler @41 +_TIFFSetWarningHandler @42 +_TIFFComputeTile @43 +_TIFFCheckTile @44 +_TIFFNumberOfTiles @45 +_TIFFReadTile @46 +_TIFFWriteTile @47 +_TIFFComputeStrip @48 +_TIFFNumberOfStrips @49 +_TIFFReadEncodedStrip @50 +_TIFFReadRawStrip @51 +_TIFFReadEncodedTile @52 +_TIFFReadRawTile @53 +_TIFFWriteEncodedStrip @54 +_TIFFWriteRawStrip @55 +_TIFFWriteEncodedTile @56 +_TIFFWriteRawTile @57 +_TIFFSetWriteOffset @58 +_TIFFSwabShort @59 +_TIFFSwabLong @60 +_TIFFSwabArrayOfShort @61 +_TIFFSwabArrayOfLong @62 +_TIFFReverseBits @63 +_TIFFGetBitRevTable @64 +_TIFFModeCCITTFax3 @65 diff --git a/contrib/win32/readme b/contrib/win32/readme new file mode 100755 index 0000000..3706fcc --- /dev/null +++ b/contrib/win32/readme @@ -0,0 +1,111 @@ +This mail from Scott describes changes to the library that I have +not made because I couldn't figure out exactly where they went. +Anything not in this file has either been placed in the appropriate +directory (e.g. libtiff/tif_win32.c) or applied to the current +source code (e.g. libtiff/tiffiop.h). + +Note that the Window NT/Window 95 support is untested; Scott's work +was done with an earlier version of the library. Hopefully this'll +get cleaned up soon. + + Sam + +Date: Fri, 14 Apr 95 17:01:42 EDT +From: wagner@itek.com (scott wagner) +Message-Id: <9504142101.AA00764@cyan.> +To: sam@cthulhu.engr.sgi.com +Subject: Re: Libtiff for Win32 (Windows NT / Windows 95) + +Hi, Sam! + +Enclosed are my libtiff for win32 pieces. They are in the form of 3 files +(tif_w32.c, dllshell.c, and libtiff.def), and 2 diffs (for tiffiop.h and +tiffio.h). + +Hope this is not too difficult to separate! + +Regards, +Scott Wagner (wagner@itek.com) + +tif_w32.c --------------------------------------------------------------- + +tiffiop.h --------------------------------------------------------------- + +tiffio.h --------------------------------------------------------------- +38a39 +> #ifdef _TIFFIOP_ +39a41,43 +> #else +> typedef void TIFF; /* Avoid ANSI undefined structure warning */ +> #endif +66a71,75 +> #ifdef WIN32 /* WIN32 identifies Win32 compiles */ +> #pragma warn -sig /* Turn off Borland warn of long to short int convert */ +> #pragma warn -par /* Turn off Borland warn "Parameter x is never used" */ +> DECLARE_HANDLE(thandle_t); /* Win32 file handle */ +> #else /* if not WIN32_ */ +67a77 +> #endif /* defined WIN32 */ + +(Message tiff:1396) + -- using template mhl.format -- +Date: Mon, 17 Apr 1995 07:51:03 EDT +To: sam@cthulhu.engr.sgi.com + +From: wagner@itek.com (scott wagner) +Subject: Libtiff for Win32 + +Return-Path: sam@flake.asd.sgi.com +Delivery-Date: Mon, 17 Apr 1995 05:36:50 PDT +Return-Path: sam@flake.asd.sgi.com + +Hello, Sam! + +> ... libtiff for win32 pieces. They are in the form of 3 files +> (tif_w32.c, dllshell.c, and libtiff.def), and 2 diffs (for tiffiop.h and +> tiffio.h). +> +> I don't understand how these pieces fit together. Can you please explain +> what dllshell.c and libtiff.def are for? + +Sorry I was short on documentation here ... I was rushing to get home to +dinner on Friday and the material for you was the last loose end I had to +deal with. Excuses aside ... + +The goal of the adaptation of libtiff to Win32 was to replace only one +environment-specific code module and to make minimal changes to header +files. tif_win32.c required one addition to tiffio.h (the +DECLARE_HANDLE line, which is probably a better way to typedef thandle-t +under Windows 3.1 as well); it also required the addition of pv_map_handle +to the tiff structure and the conditional definition of the +TIFFUnmapFileContents macro in tiffiop.h (this because Win32 uses a handle +and a pointer in mapping memory, and I needed to save both). + +Additionally, I made a general style change to tiffio.h. If tiffio.h is +included by a client, which does not include tiffiop.h, then ANSI compilers +warn about the typedef of TIFF to a non-existent structure. To avoid this, +I changed the typedef of TIFF in this case to void. + +I also made a style change in the tiff structure. All references to tif_fd +in the library treat it as int, yet the tif_fd member itself is short. I +changed this member to int and added the reserved member to maintain +32-bit structure member alignment in a 32 bit environment. [ At cost of +4 more bytes in an already bloated structure! :-) ] As long as fd's are +less than 64k, the old member works; this is not the case in Win32, and is +not generally a safe assumption. + +The module dllshell.c and the file libtiff.def are not specific to the +functionality of libtiff; they are used to make a Win32 dynamic link +library, and would be best packaged with a Win32 makefile, which I have +not yet perfected. I will, however, commit to a Borland and Microsoft C +makefile for libtiff; perhaps these two could be combined with the +makefile for the _next_ (!) release of libtiff when it is ready. + +Once again, sorry for the confused message on Friday. I hope that at +least tif_w32 and the tiffio.h and tiffiop.h diffs will be useful for +this release. + +Regards, +Scott Wagner (wagner@itek.com) +Itek Graphix +Rochester, NY diff --git a/contrib/win95/Makefile.w95 b/contrib/win95/Makefile.w95 new file mode 100755 index 0000000..3e81fc2 --- /dev/null +++ b/contrib/win95/Makefile.w95 @@ -0,0 +1,134 @@ +# $Header: /usr/people/sam/tiff/libtiff/RCS/Makefile.w95,v 1.2 1994/11/28 +06:13:31 sam Exp $ +# +# Tag Image File Format Library +# +# Copyright (c) 1988, 1989, 1990, 1991, 1992 Sam Leffler +# Copyright (c) 1991, 1992 Silicon Graphics, Inc. +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Sam Leffler and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# +# This Makefile is for use with microsoft nmake version 1.50 and +# Microsoft 32-bit C/C++ Compiler 9.00 +# +DESTDIR=. +# +IPATH= -I. +CONF_LIBRARY=$(NULL) +COPTS= -Oxa -DBSDTYPES -Zd +CFLAGS= $(COPTS) $(CONF_LIBRARY) +# +INCS= tiff.h tiffio.h +SRCS= tif_aux.c \ + tif_close.c \ + tif_codec.c \ + tif_compress.c \ + tif_dir.c \ + tif_dirinfo.c \ + tif_dirread.c \ + tif_dirwrite.c \ + tif_dumpmode.c \ + tif_error.c \ + tif_getimage.c \ + tif_jpeg.c \ + tif_flush.c \ + tif_lzw.c \ + tif_next.c \ + tif_open.c \ + tif_packbits.c \ + tif_predict \ + tif_print.c \ + tif_read.c \ + tif_swab.c \ + tif_strip.c \ + tif_thunder.c \ + tif_tile.c \ + tif_version.c \ + tif_warning.c \ + tif_write.c \ + tif_win32.c + + +OBJS= tif_aux.obj \ + tif_close.obj \ + tif_codec.obj \ + tif_compress.obj \ + tif_dir.obj \ + tif_dirinfo.obj \ + tif_dirread.obj \ + tif_dirwrite.obj \ + tif_dumpmode.obj \ + tif_error.obj \ + tif_getimage.obj \ + tif_jpeg.obj \ + tif_flush.obj \ + tif_lzw.obj \ + tif_next.obj \ + tif_open.obj \ + tif_packbits.obj \ + tif_predict.obj \ + tif_print.obj \ + tif_read.obj \ + tif_swab.obj \ + tif_strip.obj \ + tif_thunder.obj \ + tif_tile.obj \ + tif_version.obj \ + tif_warning.obj \ + tif_write.obj \ + tif_win32.obj + + + +ALL= libtiff.lib + +all: $(ALL) + +%.obj : %.c + $(CC) $(CFLAGS) -c $*.c + + +#.INCLUDE .IGNORE : depend + +libtiff.lib: $(OBJS) + - del libtiff.lib + lib /OUT:libtiff.lib $(OBJS) + + +#To include fax3 support, you need to modify mkg3states.c so it could run +#under windows 95 or NT. This application make the file g3state.h. +#after that, you have to add to the build script : tif_fax3.c and tif_fax3.obj +#and define CCITT_SUPPORT in the file tifconf.h + +#$(OBJS): tiffio.h tiff.h tiffcomp.h tiffiop.h tiffconf.h +#tif_fax3.obj: tif_fax3.c g3states.h t4.h tif_fax3.h + +#g3states.h: mkg3states.c t4.h +# $(CC) $(CFLAGS) mkg3states.c +# mkg3states -c > g3states.h + + +clean: + del *.obj + del mkg3stat + del g3states.h + +tags: $(SRCS) + $(CTAGS) $(SRCS) diff --git a/contrib/win95/readme b/contrib/win95/readme new file mode 100755 index 0000000..71cc634 --- /dev/null +++ b/contrib/win95/readme @@ -0,0 +1,50 @@ +Date: 04 Dec 95 10:34:23 EST +From: Philippe <100423.3705@compuserve.com> +To: TIFF/sam Leffler +Subject: TIFF library and Windows 95 +Message-Id: <951204153422_100423.3705_BHG101-1@CompuServe.COM> + +Sam, + +First, let me thanks all of you how have worked +on that great TIFF library ! + +Here is some information that may help someone. + +I build the library under Windows 95 as a 32-bit library. +The contribution of Scott Wagner (tif_win32.c) worked fine, but +the makefile "makefile.msc" was unsable because it was +written for DOS or Windows 3.1 and all the files names +are limited to 8 characters. + +Here is the makefile I used : makefile.w95 + +Also, I had to disable fax3 support because I wasn't able +to build (as it is) the tool "mkg3states" to generate the include +file "g3states.h". +This source file must be modify to be build under Windows 95. + +To build the library under Windows 95 with Visual C++ 2.0, +I had to : + +- undefine CCITT_SUPPORT in "tiffconf.h" + +- create the file version.h with this line : + #define VERSION "3.4beta024" + +- build the makefile "makefile.w95" + +I also join the source file "tif2dib.c" that I created, +it contain the function LoadTIFFinDIB that load +a TIFF file and build a memory DIB with it and return the +HANDLE (HDIB) of the memory bloc containing this DIB. +Since DIB is the "natural" bitmap format for Windows 3.1, 95 and NT, +this function sould be usefull for some Windows 95 (or NT) developer. + + +Sorry for my approximate english ... + +Regards, + +Philippe Tenenhaus 100423.3705@compuserve.com +Paris diff --git a/contrib/win95/tiff2dib.c b/contrib/win95/tiff2dib.c new file mode 100755 index 0000000..9b8f89a --- /dev/null +++ b/contrib/win95/tiff2dib.c @@ -0,0 +1,372 @@ +/************************************************************************* + * + * Source file for Windows 95/Win32. + * + * The function LoadTIFFinDIB in this source file let you load + * a TIFF file and build a memory DIB with it and return the + * HANDLE (HDIB) of the memory bloc containing the DIB. + * + * Example : + * + * HDIB hDIB; + * hDIB = LoadTIFFinDIB("sample.tif"); + * + * + * To build this source file you must include the TIFF library + * in your project. + * + * 4/12/95 Philippe Tenenhaus 100423.3705@compuserve.com + * + ************************************************************************/ + + +#include "tiffio.h" + +#define HDIB HANDLE +#define IS_WIN30_DIB(lpbi) ((*(LPDWORD)(lpbi)) == sizeof(BITMAPINFOHEADER)) +#define CVT(x) (((x) * 255L) / ((1L<<16)-1)) + +static HDIB CreateDIB(DWORD dwWidth, DWORD dwHeight, WORD wBitCount); +static LPSTR FindDIBBits(LPSTR lpDIB); +static WORD PaletteSize(LPSTR lpDIB); +static WORD DIBNumColors(LPSTR lpDIB); +static int checkcmap(int n, uint16* r, uint16* g, uint16* b); + + + +/************************************************************************* + * + * HDIB LoadTIFFinDIB(LPSTR lpFileName) + * + * Parameter: + * + * LPSTR lpDIB - File name of a tiff imag + * + * Return Value: + * + * LPSTR - HANDLE of a DIB + * + * Description: + * + * This function load a TIFF file and build a memory DIB with it + * and return the HANDLE (HDIB) of the memory bloc containing + * the DIB. + * + * 4/12/95 Philippe Tenenhaus 100423.3705@compuserve.com + * + ************************************************************************/ + +HDIB LoadTIFFinDIB(LPSTR lpFileName) +{ + TIFF *tif; + unsigned long imageLength; + unsigned long imageWidth; + unsigned int BitsPerSample; + unsigned long LineSize; + unsigned int SamplePerPixel; + unsigned long RowsPerStrip; + int PhotometricInterpretation; + long nrow; + unsigned long row; + char *buf; + LPBITMAPINFOHEADER lpDIB; + HDIB hDIB; + char *lpBits; + HGLOBAL hStrip; + int i,l; + int Align; + + tif = TIFFOpen(lpFileName, "r"); + + if (!tif) + goto TiffOpenError; + + TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &imageWidth); + TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &imageLength); + TIFFGetField(tif, TIFFTAG_BITSPERSAMPLE, &BitsPerSample); + TIFFGetField(tif, TIFFTAG_ROWSPERSTRIP, &RowsPerStrip); + TIFFGetField(tif, TIFFTAG_ROWSPERSTRIP, &RowsPerStrip); + TIFFGetField(tif, TIFFTAG_PHOTOMETRIC, &PhotometricInterpretation); + + LineSize = TIFFScanlineSize(tif); //Number of byte in ine line + + SamplePerPixel = (int) (LineSize/imageWidth); + + //Align = Number of byte to add at the end of each line of the DIB + Align = 4 - (LineSize % 4); + if (Align == 4) Align = 0; + + + //Create a new DIB + hDIB = CreateDIB((DWORD) imageWidth, (DWORD) imageLength, (WORD) +(BitsPerSample*SamplePerPixel)); + lpDIB = (LPBITMAPINFOHEADER) GlobalLock(hDIB); + if (!lpDIB) + goto OutOfDIBMemory; + + if (lpDIB) + lpBits = FindDIBBits((LPSTR) lpDIB); + + //In the tiff file the lines are save from up to down + //In a DIB the lines must be save from down to up + if (lpBits) + { + lpBits = FindDIBBits((LPSTR) lpDIB); + lpBits+=((imageWidth*SamplePerPixel)+Align)*(imageLength-1); + //now lpBits pointe on the bottom line + + hStrip = GlobalAlloc(GHND,TIFFStripSize(tif)); + buf = GlobalLock(hStrip); + + if (!buf) + goto OutOfBufMemory; + + //PhotometricInterpretation = 2 image is RGB + //PhotometricInterpretation = 3 image have a color palette + if (PhotometricInterpretation == 3) + { + uint16* red; + uint16* green; + uint16* blue; + int16 i; + LPBITMAPINFO lpbmi; + int Palette16Bits; + + TIFFGetField(tif, TIFFTAG_COLORMAP, &red, &green, &blue); + + //Is the palette 16 or 8 bits ? + if (checkcmap(1<= 0; i--) + { + if (Palette16Bits) + { + lpbmi->bmiColors[i].rgbRed =(BYTE) CVT(red[i]); + lpbmi->bmiColors[i].rgbGreen = (BYTE) CVT(green[i]); + lpbmi->bmiColors[i].rgbBlue = (BYTE) CVT(blue[i]); + } + else + { + lpbmi->bmiColors[i].rgbRed = (BYTE) red[i]; + lpbmi->bmiColors[i].rgbGreen = (BYTE) green[i]; + lpbmi->bmiColors[i].rgbBlue = (BYTE) blue[i]; + } + } + + } + + //read the tiff lines and save them in the DIB + //with RGB mode, we have to change the order of the 3 samples RGB +<=> BGR + for (row = 0; row < imageLength; row += RowsPerStrip) + { + nrow = (row + RowsPerStrip > imageLength ? imageLength - row : +RowsPerStrip); + if (TIFFReadEncodedStrip(tif, TIFFComputeStrip(tif, row, 0), + buf, nrow*LineSize)==-1) + { + goto TiffReadError; + } + else + { + for (l = 0; l < nrow; l++) + { + if (SamplePerPixel == 3) + for (i=0;i< (int) (imageWidth);i++) + { + lpBits[i*SamplePerPixel+0]=buf[l*LineSize+i*Sample +PerPixel+2]; + lpBits[i*SamplePerPixel+1]=buf[l*LineSize+i*Sample +PerPixel+1]; + lpBits[i*SamplePerPixel+2]=buf[l*LineSize+i*Sample +PerPixel+0]; + } + else + memcpy(lpBits, &buf[(int) (l*LineSize)], (int) +imageWidth*SamplePerPixel); + + lpBits-=imageWidth*SamplePerPixel+Align; + + } + } + } + GlobalUnlock(hStrip); + GlobalFree(hStrip); + GlobalUnlock(hDIB); + TIFFClose(tif); + } + + return hDIB; + + OutOfBufMemory: + + TiffReadError: + GlobalUnlock(hDIB); + GlobalFree(hStrip); + OutOfDIBMemory: + TIFFClose(tif); + TiffOpenError: + return (HANDLE) 0; + + +} + + +static int checkcmap(int n, uint16* r, uint16* g, uint16* b) +{ + while (n-- > 0) + if (*r++ >= 256 || *g++ >= 256 || *b++ >= 256) + return (16); + + return (8); +} + + + +/************************************************************************* + * All the following functions were created by microsoft, they are + * parts of the sample project "wincap" given with the SDK Win32. + * + * Microsoft says that : + * + * You have a royalty-free right to use, modify, reproduce and + * distribute the Sample Files (and/or any modified version) in + * any way you find useful, provided that you agree that + * Microsoft has no warranty obligations or liability for any + * Sample Application Files which are modified. + * + ************************************************************************/ + +HDIB CreateDIB(DWORD dwWidth, DWORD dwHeight, WORD wBitCount) +{ + BITMAPINFOHEADER bi; // bitmap header + LPBITMAPINFOHEADER lpbi; // pointer to BITMAPINFOHEADER + DWORD dwLen; // size of memory block + HDIB hDIB; + DWORD dwBytesPerLine; // Number of bytes per scanline + + + // Make sure bits per pixel is valid + if (wBitCount <= 1) + wBitCount = 1; + else if (wBitCount <= 4) + wBitCount = 4; + else if (wBitCount <= 8) + wBitCount = 8; + else if (wBitCount <= 24) + wBitCount = 24; + else + wBitCount = 4; // set default value to 4 if parameter is bogus + + // initialize BITMAPINFOHEADER + bi.biSize = sizeof(BITMAPINFOHEADER); + bi.biWidth = dwWidth; // fill in width from parameter + bi.biHeight = dwHeight; // fill in height from parameter + bi.biPlanes = 1; // must be 1 + bi.biBitCount = wBitCount; // from parameter + bi.biCompression = BI_RGB; + bi.biSizeImage = (dwWidth*dwHeight*wBitCount)/8; //0; // 0's here +mean "default" + bi.biXPelsPerMeter = 2834; //0; + bi.biYPelsPerMeter = 2834; //0; + bi.biClrUsed = 0; + bi.biClrImportant = 0; + + // calculate size of memory block required to store the DIB. This + // block should be big enough to hold the BITMAPINFOHEADER, the color + // table, and the bits + + dwBytesPerLine = (((wBitCount * dwWidth) + 31) / 32 * 4); + dwLen = bi.biSize + PaletteSize((LPSTR)&bi) + (dwBytesPerLine * dwHeight); + + // alloc memory block to store our bitmap + hDIB = GlobalAlloc(GHND, dwLen); + + // major bummer if we couldn't get memory block + if (!hDIB) + { + return NULL; + } + + // lock memory and get pointer to it + lpbi = (VOID FAR *)GlobalLock(hDIB); + + // use our bitmap info structure to fill in first part of + // our DIB with the BITMAPINFOHEADER + *lpbi = bi; + + // Since we don't know what the colortable and bits should contain, + // just leave these blank. Unlock the DIB and return the HDIB. + + GlobalUnlock(hDIB); + + /* return handle to the DIB */ + return hDIB; +} + + +LPSTR FAR FindDIBBits(LPSTR lpDIB) +{ + return (lpDIB + *(LPDWORD)lpDIB + PaletteSize(lpDIB)); +} + + +WORD FAR PaletteSize(LPSTR lpDIB) +{ + /* calculate the size required by the palette */ + if (IS_WIN30_DIB (lpDIB)) + return (DIBNumColors(lpDIB) * sizeof(RGBQUAD)); + else + return (DIBNumColors(lpDIB) * sizeof(RGBTRIPLE)); +} + + +WORD DIBNumColors(LPSTR lpDIB) +{ + WORD wBitCount; // DIB bit count + + /* If this is a Windows-style DIB, the number of colors in the + * color table can be less than the number of bits per pixel + * allows for (i.e. lpbi->biClrUsed can be set to some value). + * If this is the case, return the appropriate value. + */ + + if (IS_WIN30_DIB(lpDIB)) + { + DWORD dwClrUsed; + + dwClrUsed = ((LPBITMAPINFOHEADER)lpDIB)->biClrUsed; + if (dwClrUsed) + return (WORD)dwClrUsed; + } + + /* Calculate the number of colors in the color table based on + * the number of bits per pixel for the DIB. + */ + if (IS_WIN30_DIB(lpDIB)) + wBitCount = ((LPBITMAPINFOHEADER)lpDIB)->biBitCount; + else + wBitCount = ((LPBITMAPCOREHEADER)lpDIB)->bcBitCount; + + /* return number of colors based on bits per pixel */ + switch (wBitCount) + { + case 1: + return 2; + + case 4: + return 16; + + case 8: + return 256; + + default: + return 0; + } +} diff --git a/contrib/winnt/README.console b/contrib/winnt/README.console new file mode 100755 index 0000000..782614f --- /dev/null +++ b/contrib/winnt/README.console @@ -0,0 +1,182 @@ +Date: Fri, 18 Apr 1997 09:25:09 EDT +To: "'sam@cthulhu.engr.sgi.com'" +cc: "'tiff@sgi.engr.sgi.com'" + +From: xingong chang +Subject: Contribution: libtiff for Windows-nt console applications + +Return-Path: xingong@feith1.FEITH.COM +Delivery-Date: Fri, 18 Apr 1997 06:37:38 -0700 +Return-Path: xingong@feith1.FEITH.COM +MIME-Version: 1.0 + +Hi, +I built the libtiff under WINNT 4.0 as a 32-bit library for pure +console applications. I made the makefile.nt based on Philippe +Tenenhaus' makefile.w95 file. Since I want my stuff to be a pure +console application running on WinNT, Dave Dyer's makefile for WINNT is +not good for me since it is for Windows applications. + +I used the tif_msdos.c file instead of the tif_win32.c in the $(OBJS) +list because tif_win32.c is not a pure console program, it includes +some function calls such as MessageBox etc which requires windows +application library ($winslib as defined in ). + +unlike Philippe Tenenhaus' makefile.w95 file, this makefile.nt does +support fax3 stuff. And to make the mkg3states.exe,the getopt.obj is +needed. "getopt" package is ATT public domain source for getopt(3). +Also you need to inlcude the g3states.h in tif_fax.c fileand modify the +tif_fax3.h to delete the external declaration of FFFaxMainTable, +TIFFFaxWhileTable and TIFFFaxBlackTable + + +libtiff version: TIFFLIB_VERSION 19960307 + +Hardware you are using: i386 + +Operating system you are using: Windows NT 4.0 + +C compiler : Microsoft Visual C++ 4.1 + +NMAKE : Microsoft nmake 1.61 + + +Here is the makefile.nt I used: +--------------------------------------------------------- + +# makefile.nt for the tiff library +# Tag Image File Format Library +# +# Copyright (c) 1988, 1989, 1990, 1991, 1992 Sam Leffler +# Copyright (c) 1991, 1992 Silicon Graphics, Inc. +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Sam Leffler and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# +# This Makefile is for use with microsoft nmake version 1.61 +# + +!include + +DEFS = -DBSDTYPES -DO_RDONLY=S_IREAD -DO_RDWR=S_IWRITE + +INCS= tiff.h tiffio.h +SRCS= tif_aux.c \ + tif_close.c \ + tif_codec.c \ + tif_compress.c \ + tif_dir.c \ + tif_dirinfo.c \ + tif_dirread.c \ + tif_dirwrite.c \ + tif_dumpmode.c \ + tif_error.c \ + tif_getimage.c \ + tif_jpeg.c \ + tif_flush.c \ + tif_lzw.c \ + tif_next.c \ + tif_open.c \ + tif_packbits.c \ + tif_predict \ + tif_print.c \ + tif_read.c \ + tif_swab.c \ + tif_strip.c \ + tif_thunder.c \ + tif_tile.c \ + tif_version.c \ + tif_warning.c \ + tif_write.c \ + tif_msdos.c \ + tif_fax3.c + + +OBJS= tif_aux.obj \ + tif_close.obj \ + tif_codec.obj \ + tif_compress.obj \ + tif_dir.obj \ + tif_dirinfo.obj \ + tif_dirread.obj \ + tif_dirwrite.obj \ + tif_dumpmode.obj \ + tif_error.obj \ + tif_getimage.obj \ + tif_jpeg.obj \ + tif_flush.obj \ + tif_lzw.obj \ + tif_next.obj \ + tif_open.obj \ + tif_packbits.obj \ + tif_predict.obj \ + tif_print.obj \ + tif_read.obj \ + tif_swab.obj \ + tif_strip.obj \ + tif_thunder.obj \ + tif_tile.obj \ + tif_version.obj \ + tif_warning.obj \ + tif_write.obj \ + tif_msdos.obj \ + tif_fax3.obj + +#To make the mkg3states.exe,the getopt.obj is needed. getopt package is +# ATT public domain source for getopt(3). +EXTRA_OBJS = getopt.obj + +all: libtiff.lib + +libtiff.lib: $(OBJS) + del libtiff.lib + lib -out:libtiff.lib $(OBJS) + +.c.obj: + $(cc) $(DEFS) $(cdebug) $(cflags) $(cvarsmt) $*.c + + +#To include fax3 support, we did this modification +#add to the build script : tif_fax3.c and tif_fax3.obj +#define CCITT_SUPPORT in the file tifconf.h +#inlcude the g3states.h in tif_fax.c file +#modify the tif_fax3.h to delete the TIFFFaxMainTable,TIFFFaxWhileTable +# TIFFFaxBlackTable etc external declaration +#mkg3states.exe without any command line options will produce the g3states.h + +$(OBJS): tiffio.h tiff.h tiffcomp.h tiffiop.h tiffconf.h +tif_fax3.obj: tif_fax3.c g3states.h t4.h tif_fax3.h + +g3states.h: mkg3states.obj t4.h + $(link) $(ldebug) $(conslflags) -out:mkg3states.exe mkg3states.obj \ + $(EXTRA_OBJS) + mkg3states.exe + +clean: + del *.obj + del g3states.h + +clobber: + del libtiff.lib + del *.obj + del g3states.h + + + + diff --git a/contrib/winnt/fax3sm.c b/contrib/winnt/fax3sm.c new file mode 100755 index 0000000..1d0f34a --- /dev/null +++ b/contrib/winnt/fax3sm.c @@ -0,0 +1,1046 @@ +/* WARNING, this file was automatically generated by the + mkg3states program */ +#include "tiff.h" +#include "tif_fax3.h" + const TIFFFaxTabEnt TIFFFaxMainTable[128] = { +12,7,0,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0,1,4,0,3,1,0,5,3,1,3,1,0, +2,3,0,3,1,0,4,3,1,3,1,0,5,6,2,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0, +1,4,0,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0,5,7,3,3,1,0,5,3,1,3,1,0, +2,3,0,3,1,0,4,3,1,3,1,0,1,4,0,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0, +4,6,2,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0,1,4,0,3,1,0,5,3,1,3,1,0, +2,3,0,3,1,0,4,3,1,3,1,0,6,7,0,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0, +1,4,0,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0,5,6,2,3,1,0,5,3,1,3,1,0, +2,3,0,3,1,0,4,3,1,3,1,0,1,4,0,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0, +4,7,3,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0,1,4,0,3,1,0,5,3,1,3,1,0, +2,3,0,3,1,0,4,3,1,3,1,0,4,6,2,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0, +1,4,0,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0 +}; +const TIFFFaxTabEnt TIFFFaxWhiteTable[4096] = { +12,11,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6, +7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5, +7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1472,7,4,5,7,8,43,7,6,17,9,9,1216,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5, +7,8,41,7,6,16,9,9,960,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,704,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15, +9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,11,11,1792,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,832,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6, +7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1600,7,4,5, +7,8,44,7,6,17,9,9,1344,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14, +7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1088,7,4,6, +7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15, +7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1536,7,4,5,7,8,43,7,6,17,9,9,1280,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7, +7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,1024,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,768,7,4,6, +7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +11,11,1856,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,896,7,4,6, +7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5, +7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1728,7,4,5,7,8,44,7,6,17,9,9,1408,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5, +7,8,42,7,6,16,9,9,1152,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15, +9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6, +7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1472,7,4,5, +7,8,43,7,6,17,9,9,1216,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14, +7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,960,7,4,6, +7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,9,704,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,11,12,2112,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,40,7,6,16,9,9,832,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15, +7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1600,7,4,5,7,8,44,7,6,17,9,9,1344,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7, +7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1088,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6, +7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6, +7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5, +7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1536,7,4,5,7,8,43,7,6,17,9,9,1280,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5, +7,8,41,7,6,16,9,9,1024,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,768,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15, +9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,11,12,2368,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,896,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6, +7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1728,7,4,5, +7,8,44,7,6,17,9,9,1408,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14, +7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1152,7,4,6, +7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15, +7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1472,7,4,5,7,8,43,7,6,17,9,9,1216,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7, +7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,960,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,704,7,4,6, +7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +11,12,1984,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,832,7,4,6, +7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5, +7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1600,7,4,5,7,8,44,7,6,17,9,9,1344,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5, +7,8,42,7,6,16,9,9,1088,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15, +9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6, +7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1536,7,4,5, +7,8,43,7,6,17,9,9,1280,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14, +7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,1024,7,4,6, +7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,9,768,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,11,11,1920,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,40,7,6,16,9,9,896,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15, +7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1728,7,4,5,7,8,44,7,6,17,9,9,1408,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7, +7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1152,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6, +7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6, +7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5, +7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1472,7,4,5,7,8,43,7,6,17,9,9,1216,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5, +7,8,41,7,6,16,9,9,960,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,704,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15, +9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,11,12,2240,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,832,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6, +7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1600,7,4,5, +7,8,44,7,6,17,9,9,1344,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14, +7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1088,7,4,6, +7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15, +7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1536,7,4,5,7,8,43,7,6,17,9,9,1280,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7, +7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,1024,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,768,7,4,6, +7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +11,12,2496,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,896,7,4,6, +7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5, +7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1728,7,4,5,7,8,44,7,6,17,9,9,1408,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5, +7,8,42,7,6,16,9,9,1152,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15, +9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,12,11,0,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6, +7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1472,7,4,5, +7,8,43,7,6,17,9,9,1216,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14, +7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,960,7,4,6, +7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,9,704,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,11,11,1792,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,40,7,6,16,9,9,832,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15, +7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1600,7,4,5,7,8,44,7,6,17,9,9,1344,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7, +7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1088,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6, +7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6, +7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5, +7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1536,7,4,5,7,8,43,7,6,17,9,9,1280,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5, +7,8,41,7,6,16,9,9,1024,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,768,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15, +9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,11,11,1856,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,896,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6, +7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1728,7,4,5, +7,8,44,7,6,17,9,9,1408,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14, +7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1152,7,4,6, +7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15, +7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1472,7,4,5,7,8,43,7,6,17,9,9,1216,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7, +7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,960,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,704,7,4,6, +7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +11,12,2176,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,832,7,4,6, +7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5, +7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1600,7,4,5,7,8,44,7,6,17,9,9,1344,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5, +7,8,42,7,6,16,9,9,1088,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15, +9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6, +7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1536,7,4,5, +7,8,43,7,6,17,9,9,1280,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14, +7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,1024,7,4,6, +7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,9,768,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,11,12,2432,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,40,7,6,16,9,9,896,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15, +7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1728,7,4,5,7,8,44,7,6,17,9,9,1408,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7, +7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1152,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6, +7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6, +7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5, +7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1472,7,4,5,7,8,43,7,6,17,9,9,1216,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5, +7,8,41,7,6,16,9,9,960,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,704,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15, +9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,11,12,2048,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,832,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6, +7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1600,7,4,5, +7,8,44,7,6,17,9,9,1344,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14, +7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1088,7,4,6, +7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15, +7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1536,7,4,5,7,8,43,7,6,17,9,9,1280,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7, +7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,1024,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,768,7,4,6, +7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +11,11,1920,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,896,7,4,6, +7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5, +7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1728,7,4,5,7,8,44,7,6,17,9,9,1408,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5, +7,8,42,7,6,16,9,9,1152,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15, +9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6, +7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1472,7,4,5, +7,8,43,7,6,17,9,9,1216,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14, +7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,960,7,4,6, +7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,9,704,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,11,12,2304,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,40,7,6,16,9,9,832,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15, +7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1600,7,4,5,7,8,44,7,6,17,9,9,1344,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7, +7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1088,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6, +7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6, +7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5, +7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1536,7,4,5,7,8,43,7,6,17,9,9,1280,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5, +7,8,41,7,6,16,9,9,1024,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,768,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15, +9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,11,12,2560,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,896,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6, +7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1728,7,4,5, +7,8,44,7,6,17,9,9,1408,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14, +7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1152,7,4,6, +7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7 +}; +const TIFFFaxTabEnt TIFFFaxBlackTable[8192] = { +12,11,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,18,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,17,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,11,1792,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,23,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,20,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,25,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,12,128,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,56,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,30,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,11,1856,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,57,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,21,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,54,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,52,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,48,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,12,2112,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,44,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,36,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,12,384,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,28,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,60,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,40,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,12,2368,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,16,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,10,64,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,18,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,17,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,12,1984,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,50,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,34,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,1664,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,26,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,13,1408,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,32,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,11,1920,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,61,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,42,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,13,1024,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,768,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,62,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,12,2240,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,46,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,38,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,13,512,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,19,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,24,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,22,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,12,2496,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,16,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,10,64,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,12,11,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,18,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,17,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,11,1792,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,23,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,20,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,25,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,12,192,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,1280,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,31,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,11,1856,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,58,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,21,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,13,896,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,13,640,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,49,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,12,2176,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,45,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,37,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,12,448,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,29,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,13,1536,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,41,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,12,2432,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,16,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,10,64,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,18,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,17,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,12,2048,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,51,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,35,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,12,320,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,27,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,59,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,33,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,11,1920,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,12,256,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,43,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,1152,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,55,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,63,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,12,2304,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,47,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,39,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,53,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,19,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,24,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,22,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,12,2560,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,16,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,10,64,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,12,11,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,18,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,17,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,11,1792,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,23,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,20,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,25,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,12,128,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,56,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,30,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,11,1856,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,57,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,21,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,54,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,52,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,48,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,12,2112,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,44,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,36,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,12,384,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,28,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,60,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,40,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,12,2368,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,16,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,10,64,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,18,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,17,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,12,1984,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,50,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,34,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,13,1728,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,26,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,1472,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,32,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,11,1920,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,61,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,42,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,13,1088,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,13,832,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,62,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,12,2240,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,46,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,38,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,576,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,19,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,24,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,22,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,12,2496,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,16,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,10,64,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +12,11,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,18,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,17,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,11,1792,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,23,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,20,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,25,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,12,192,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,13,1344,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,31,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,11,1856,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,58,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,21,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,960,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,13,704,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,49,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,12,2176,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,45,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,37,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,12,448,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,29,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,1600,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,41,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,12,2432,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,16,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,10,64,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,18,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,17,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,12,2048,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,51,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,35,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,12,320,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,27,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,59,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,33,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,11,1920,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,12,256,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,43,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,13,1216,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,55,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,63,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,12,2304,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,47,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,39,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,53,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,19,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,24,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,22,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,12,2560,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,16,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,10,64,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2 +}; diff --git a/contrib/winnt/libtiff.def b/contrib/winnt/libtiff.def new file mode 100755 index 0000000..7ed4e7b --- /dev/null +++ b/contrib/winnt/libtiff.def @@ -0,0 +1,72 @@ +LIBRARY libtiff +EXPORTS TIFFOpen + TIFFGetVersion + TIFFClose + TIFFFlush + TIFFFlushData + TIFFFlushdata1 + TIFFGetField + TIFFVGetField + TIFFGetFieldDefaulted + TIFFVGetFieldDefaulted + TIFFReadDirectory + TIFFScanlineSize + TIFFStripSize + TIFFVStripSize + TIFFTileRowSize + TIFFTileSize + TIFFVTileSize + TIFFFileno + TIFFGetMode + TIFFIsTiled + TIFFIsByteSwapped + TIFFCurrentRow + TIFFCurrentDirectory + TIFFCurrentStrip + TIFFCurrentTile + TIFFReadBufferSetup + TIFFLastDirectory + TIFFSetDirectory + TIFFSetSubDirectory + TIFFUnlinkDirectory + TIFFSetField + TIFFVSetField + TIFFWriteDirectory + TIFFPrintDirectory + TIFFReadScanline + TIFFWriteScanline + TIFFReadRGBAImage + TIFFPrintDirectory + TIFFReadScanline + TIFFWriteScanline + TIFFReadRGBAImage + TIFFFdOpen + TIFFClientOpen + TIFFFileName + TIFFError + TIFFWarning + TIFFSetErrorHandler + TIFFSetWarningHandler + TIFFComputeTile + TIFFCheckTile + TIFFNumberOfTiles + TIFFReadTile + TIFFWriteTile + TIFFComputeStrip + TIFFNumberOfStrips + TIFFReadEncodedStrip + TIFFReadRawStrip + TIFFReadEncodedTile + TIFFReadRawTile + TIFFWriteEncodedStrip + TIFFWriteRawStrip + TIFFWriteEncodedTile + TIFFWriteRawTile + TIFFSetWriteOffset + TIFFSwabShort + TIFFSwabLong + TIFFSwabArrayOfShort + TIFFSwabArrayOfLong + TIFFReverseBits + TIFFGetBitRevTable + TIFFModeCCITTFax3 diff --git a/contrib/winnt/libtiff.mak b/contrib/winnt/libtiff.mak new file mode 100755 index 0000000..c5a351e --- /dev/null +++ b/contrib/winnt/libtiff.mak @@ -0,0 +1,1947 @@ +# Microsoft Visual C++ Generated NMAKE File, Format Version 2.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (ALPHA) Static Library" 0x0604 +# TARGTYPE "Macintosh Static Library" 0x0304 +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +!IF "$(CFG)" == "" +CFG=Win32 Debug +!MESSAGE No configuration specified. Defaulting to Win32 Debug. +!ENDIF + +!IF "$(CFG)" != "Win32 Release" && "$(CFG)" != "Win32 Debug" && "$(CFG)" !=\ + "Macintosh Release" && "$(CFG)" != "Macintosh Debug" && "$(CFG)" != "APXrel" &&\ + "$(CFG)" != "APXdeb" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE on this makefile +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "libtiff.mak" CFG="Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "Macintosh Release" (based on "Macintosh Static Library") +!MESSAGE "Macintosh Debug" (based on "Macintosh Static Library") +!MESSAGE "APXrel" (based on "Win32 (ALPHA) Static Library") +!MESSAGE "APXdeb" (based on "Win32 (ALPHA) Static Library") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +################################################################################ +# Begin Project +# PROP Target_Last_Scanned "Win32 Release" + +!IF "$(CFG)" == "Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "WinRel" +# PROP BASE Intermediate_Dir "WinRel" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "WinRel" +# PROP Intermediate_Dir "WinRel" +OUTDIR=.\WinRel +INTDIR=.\WinRel + +ALL : $(OUTDIR)/""libtiff.lib"" $(OUTDIR)/""libtiff.bsc"" + +$(OUTDIR) : + if not exist $(OUTDIR)/nul mkdir $(OUTDIR) + +CPP=cl.exe +# ADD BASE CPP /nologo /W3 /GX /YX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FR /c +# ADD CPP /nologo /MT /W3 /GX /YX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FR /c +CPP_PROJ=/nologo /MT /W3 /GX /YX /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D\ + "_WINDOWS" /FR$(INTDIR)/ /Fp$(OUTDIR)/"libtiff.pch" /Fo$(INTDIR)/ /c +CPP_OBJS=.\WinRel/ + +.c{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.cpp{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.cxx{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +BSC32_FLAGS=/nologo /o$(OUTDIR)/"libtiff.bsc" +BSC32_SBRS= \ + $(INTDIR)/"tif_jpeg.sbr" \ + $(INTDIR)/"tif_dirinfo.sbr" \ + $(INTDIR)/"tif_win32.sbr" \ + $(INTDIR)/"tif_flush.sbr" \ + $(INTDIR)/"tif_thunder.sbr" \ + $(INTDIR)/"tif_compress.sbr" \ + $(INTDIR)/"tif_print.sbr" \ + $(INTDIR)/"tif_dirread.sbr" \ + $(INTDIR)/"tif_getimage.sbr" \ + $(INTDIR)/"tif_fax3.sbr" \ + $(INTDIR)/"tif_version.sbr" \ + $(INTDIR)/"tif_codec.sbr" \ + $(INTDIR)/"tif_dir.sbr" \ + $(INTDIR)/"tif_predict.sbr" \ + $(INTDIR)/"tif_close.sbr" \ + $(INTDIR)/"tif_dumpmode.sbr" \ + $(INTDIR)/"tif_aux.sbr" \ + $(INTDIR)/"tif_error.sbr" \ + $(INTDIR)/"tif_lzw.sbr" \ + $(INTDIR)/"tif_zip.sbr" \ + $(INTDIR)/"tif_read.sbr" \ + $(INTDIR)/"tif_packbits.sbr" \ + $(INTDIR)/"tif_swab.sbr" \ + $(INTDIR)/"tif_dirwrite.sbr" \ + $(INTDIR)/"tif_open.sbr" \ + $(INTDIR)/"tif_warning.sbr" \ + $(INTDIR)/"tif_tile.sbr" \ + $(INTDIR)/"tif_strip.sbr" \ + $(INTDIR)/"tif_next.sbr" \ + $(INTDIR)/"tif_write.sbr" \ + $(INTDIR)/"fax3sm.sbr" + +$(OUTDIR)/"libtiff.bsc" : $(OUTDIR) $(BSC32_SBRS) + $(BSC32) @<< + $(BSC32_FLAGS) $(BSC32_SBRS) +<< + +LIB32=lib.exe +# ADD BASE LIB32 /NOLOGO +# ADD LIB32 /NOLOGO +LIB32_FLAGS=/NOLOGO /OUT:$(OUTDIR)\"libtiff.lib" +DEF_FLAGS= +DEF_FILE= +LIB32_OBJS= \ + $(INTDIR)/"tif_jpeg.obj" \ + $(INTDIR)/"tif_dirinfo.obj" \ + $(INTDIR)/"tif_win32.obj" \ + $(INTDIR)/"tif_flush.obj" \ + $(INTDIR)/"tif_thunder.obj" \ + $(INTDIR)/"tif_compress.obj" \ + $(INTDIR)/"tif_print.obj" \ + $(INTDIR)/"tif_dirread.obj" \ + $(INTDIR)/"tif_getimage.obj" \ + $(INTDIR)/"tif_fax3.obj" \ + $(INTDIR)/"tif_version.obj" \ + $(INTDIR)/"tif_codec.obj" \ + $(INTDIR)/"tif_dir.obj" \ + $(INTDIR)/"tif_predict.obj" \ + $(INTDIR)/"tif_close.obj" \ + $(INTDIR)/"tif_dumpmode.obj" \ + $(INTDIR)/"tif_aux.obj" \ + $(INTDIR)/"tif_error.obj" \ + $(INTDIR)/"tif_lzw.obj" \ + $(INTDIR)/"tif_zip.obj" \ + $(INTDIR)/"tif_read.obj" \ + $(INTDIR)/"tif_packbits.obj" \ + $(INTDIR)/"tif_swab.obj" \ + $(INTDIR)/"tif_dirwrite.obj" \ + $(INTDIR)/"tif_open.obj" \ + $(INTDIR)/"tif_warning.obj" \ + $(INTDIR)/"tif_tile.obj" \ + $(INTDIR)/"tif_strip.obj" \ + $(INTDIR)/"tif_next.obj" \ + $(INTDIR)/"tif_write.obj" \ + $(INTDIR)/"fax3sm.obj" + +$(OUTDIR)/"libtiff.lib" : $(OUTDIR) $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< + $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) +<< + +!ELSEIF "$(CFG)" == "Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "WinDebug" +# PROP BASE Intermediate_Dir "WinDebug" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "WinDebug" +# PROP Intermediate_Dir "WinDebug" +OUTDIR=.\WinDebug +INTDIR=.\WinDebug + +ALL : $(OUTDIR)/""dlibtiff.lib"" $(OUTDIR)/""libtiff.bsc"" + +$(OUTDIR) : + if not exist $(OUTDIR)/nul mkdir $(OUTDIR) + +CPP=cl.exe +# ADD BASE CPP /nologo /W3 /GX /Z7 /YX /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR /c +# ADD CPP /nologo /MT /W3 /GX /Z7 /YX /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FAs /FR /c +CPP_PROJ=/nologo /MT /W3 /GX /Z7 /YX /Od /I "." /I ".." /D "WIN32" /D "_DEBUG"\ + /D "_WINDOWS" /FAs /Fa$(INTDIR)/ /FR$(INTDIR)/ /Fp$(OUTDIR)/"libtiff.pch"\ + /Fo$(INTDIR)/ /c +CPP_OBJS=.\WinDebug/ + +.c{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.cpp{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.cxx{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +BSC32_FLAGS=/nologo /o$(OUTDIR)/"libtiff.bsc" +BSC32_SBRS= \ + $(INTDIR)/"tif_jpeg.sbr" \ + $(INTDIR)/"tif_dirinfo.sbr" \ + $(INTDIR)/"tif_win32.sbr" \ + $(INTDIR)/"tif_flush.sbr" \ + $(INTDIR)/"tif_thunder.sbr" \ + $(INTDIR)/"tif_compress.sbr" \ + $(INTDIR)/"tif_print.sbr" \ + $(INTDIR)/"tif_dirread.sbr" \ + $(INTDIR)/"tif_getimage.sbr" \ + $(INTDIR)/"tif_fax3.sbr" \ + $(INTDIR)/"tif_version.sbr" \ + $(INTDIR)/"tif_codec.sbr" \ + $(INTDIR)/"tif_dir.sbr" \ + $(INTDIR)/"tif_predict.sbr" \ + $(INTDIR)/"tif_close.sbr" \ + $(INTDIR)/"tif_dumpmode.sbr" \ + $(INTDIR)/"tif_aux.sbr" \ + $(INTDIR)/"tif_error.sbr" \ + $(INTDIR)/"tif_lzw.sbr" \ + $(INTDIR)/"tif_zip.sbr" \ + $(INTDIR)/"tif_read.sbr" \ + $(INTDIR)/"tif_packbits.sbr" \ + $(INTDIR)/"tif_swab.sbr" \ + $(INTDIR)/"tif_dirwrite.sbr" \ + $(INTDIR)/"tif_open.sbr" \ + $(INTDIR)/"tif_warning.sbr" \ + $(INTDIR)/"tif_tile.sbr" \ + $(INTDIR)/"tif_strip.sbr" \ + $(INTDIR)/"tif_next.sbr" \ + $(INTDIR)/"tif_write.sbr" \ + $(INTDIR)/"fax3sm.sbr" + +$(OUTDIR)/"libtiff.bsc" : $(OUTDIR) $(BSC32_SBRS) + $(BSC32) @<< + $(BSC32_FLAGS) $(BSC32_SBRS) +<< + +LIB32=lib.exe +# ADD BASE LIB32 /NOLOGO +# ADD LIB32 /NOLOGO /OUT:"WinDebug\dlibtiff.lib" +LIB32_FLAGS=/NOLOGO /OUT:"WinDebug\dlibtiff.lib" +DEF_FLAGS= +DEF_FILE= +LIB32_OBJS= \ + $(INTDIR)/"tif_jpeg.obj" \ + $(INTDIR)/"tif_dirinfo.obj" \ + $(INTDIR)/"tif_win32.obj" \ + $(INTDIR)/"tif_flush.obj" \ + $(INTDIR)/"tif_thunder.obj" \ + $(INTDIR)/"tif_compress.obj" \ + $(INTDIR)/"tif_print.obj" \ + $(INTDIR)/"tif_dirread.obj" \ + $(INTDIR)/"tif_getimage.obj" \ + $(INTDIR)/"tif_fax3.obj" \ + $(INTDIR)/"tif_version.obj" \ + $(INTDIR)/"tif_codec.obj" \ + $(INTDIR)/"tif_dir.obj" \ + $(INTDIR)/"tif_predict.obj" \ + $(INTDIR)/"tif_close.obj" \ + $(INTDIR)/"tif_dumpmode.obj" \ + $(INTDIR)/"tif_aux.obj" \ + $(INTDIR)/"tif_error.obj" \ + $(INTDIR)/"tif_lzw.obj" \ + $(INTDIR)/"tif_zip.obj" \ + $(INTDIR)/"tif_read.obj" \ + $(INTDIR)/"tif_packbits.obj" \ + $(INTDIR)/"tif_swab.obj" \ + $(INTDIR)/"tif_dirwrite.obj" \ + $(INTDIR)/"tif_open.obj" \ + $(INTDIR)/"tif_warning.obj" \ + $(INTDIR)/"tif_tile.obj" \ + $(INTDIR)/"tif_strip.obj" \ + $(INTDIR)/"tif_next.obj" \ + $(INTDIR)/"tif_write.obj" \ + $(INTDIR)/"fax3sm.obj" + +$(OUTDIR)/"dlibtiff.lib" : $(OUTDIR) $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< + $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) +<< + +!ELSEIF "$(CFG)" == "Macintosh Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "MacRel" +# PROP BASE Intermediate_Dir "MacRel" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "MacRel" +# PROP Intermediate_Dir "MacRel" +OUTDIR=.\MacRel +INTDIR=.\MacRel + +ALL : $(OUTDIR)/""libtiff.lib"" $(OUTDIR)/""libtiff.bsc"" + +$(OUTDIR) : + if not exist $(OUTDIR)/nul mkdir $(OUTDIR) + +CPP=cl.exe +# ADD BASE CPP /nologo /AL /W3 /GX /YX /O2 /D "_WINDOWS" /D "_MAC" /D "_68K_" /D "NDEBUG" /FR /c +# ADD CPP /nologo /AL /W3 /GX /YX /O2 /D "_WINDOWS" /D "_MAC" /D "_68K_" /D "NDEBUG" /FR /c +CPP_PROJ=/nologo /AL /W3 /GX /YX /O2 /D "_WINDOWS" /D "_MAC" /D "_68K_" /D\ + "NDEBUG" /FR$(INTDIR)/ /Fp$(OUTDIR)/"libtiff.pch" /Fo$(INTDIR)/ /c +CPP_OBJS=.\MacRel/ + +.c{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.cpp{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.cxx{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +BSC32_FLAGS=/nologo /o$(OUTDIR)/"libtiff.bsc" +BSC32_SBRS= \ + $(INTDIR)/"tif_jpeg.sbr" \ + $(INTDIR)/"tif_dirinfo.sbr" \ + $(INTDIR)/"tif_win32.sbr" \ + $(INTDIR)/"tif_flush.sbr" \ + $(INTDIR)/"tif_thunder.sbr" \ + $(INTDIR)/"tif_compress.sbr" \ + $(INTDIR)/"tif_print.sbr" \ + $(INTDIR)/"tif_dirread.sbr" \ + $(INTDIR)/"tif_getimage.sbr" \ + $(INTDIR)/"tif_fax3.sbr" \ + $(INTDIR)/"tif_version.sbr" \ + $(INTDIR)/"tif_codec.sbr" \ + $(INTDIR)/"tif_dir.sbr" \ + $(INTDIR)/"tif_predict.sbr" \ + $(INTDIR)/"tif_close.sbr" \ + $(INTDIR)/"tif_dumpmode.sbr" \ + $(INTDIR)/"tif_aux.sbr" \ + $(INTDIR)/"tif_error.sbr" \ + $(INTDIR)/"tif_lzw.sbr" \ + $(INTDIR)/"tif_zip.sbr" \ + $(INTDIR)/"tif_read.sbr" \ + $(INTDIR)/"tif_packbits.sbr" \ + $(INTDIR)/"tif_swab.sbr" \ + $(INTDIR)/"tif_dirwrite.sbr" \ + $(INTDIR)/"tif_open.sbr" \ + $(INTDIR)/"tif_warning.sbr" \ + $(INTDIR)/"tif_tile.sbr" \ + $(INTDIR)/"tif_strip.sbr" \ + $(INTDIR)/"tif_next.sbr" \ + $(INTDIR)/"tif_write.sbr" \ + $(INTDIR)/"fax3sm.sbr" + +$(OUTDIR)/"libtiff.bsc" : $(OUTDIR) $(BSC32_SBRS) + $(BSC32) @<< + $(BSC32_FLAGS) $(BSC32_SBRS) +<< + +LIB32=lib.exe +# ADD BASE LIB32 /NOLOGO +# ADD LIB32 /NOLOGO +LIB32_FLAGS=/NOLOGO /OUT:$(OUTDIR)\"libtiff.lib" +DEF_FLAGS= +DEF_FILE= +LIB32_OBJS= \ + $(INTDIR)/"tif_jpeg.obj" \ + $(INTDIR)/"tif_dirinfo.obj" \ + $(INTDIR)/"tif_win32.obj" \ + $(INTDIR)/"tif_flush.obj" \ + $(INTDIR)/"tif_thunder.obj" \ + $(INTDIR)/"tif_compress.obj" \ + $(INTDIR)/"tif_print.obj" \ + $(INTDIR)/"tif_dirread.obj" \ + $(INTDIR)/"tif_getimage.obj" \ + $(INTDIR)/"tif_fax3.obj" \ + $(INTDIR)/"tif_version.obj" \ + $(INTDIR)/"tif_codec.obj" \ + $(INTDIR)/"tif_dir.obj" \ + $(INTDIR)/"tif_predict.obj" \ + $(INTDIR)/"tif_close.obj" \ + $(INTDIR)/"tif_dumpmode.obj" \ + $(INTDIR)/"tif_aux.obj" \ + $(INTDIR)/"tif_error.obj" \ + $(INTDIR)/"tif_lzw.obj" \ + $(INTDIR)/"tif_zip.obj" \ + $(INTDIR)/"tif_read.obj" \ + $(INTDIR)/"tif_packbits.obj" \ + $(INTDIR)/"tif_swab.obj" \ + $(INTDIR)/"tif_dirwrite.obj" \ + $(INTDIR)/"tif_open.obj" \ + $(INTDIR)/"tif_warning.obj" \ + $(INTDIR)/"tif_tile.obj" \ + $(INTDIR)/"tif_strip.obj" \ + $(INTDIR)/"tif_next.obj" \ + $(INTDIR)/"tif_write.obj" \ + $(INTDIR)/"fax3sm.obj" + +$(OUTDIR)/"libtiff.lib" : $(OUTDIR) $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< + $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) +<< + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "MacDebug" +# PROP BASE Intermediate_Dir "MacDebug" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "MacDebug" +# PROP Intermediate_Dir "MacDebug" +OUTDIR=.\MacDebug +INTDIR=.\MacDebug + +ALL : $(OUTDIR)/""libtiff.lib"" $(OUTDIR)/""libtiff.bsc"" + +$(OUTDIR) : + if not exist $(OUTDIR)/nul mkdir $(OUTDIR) + +CPP=cl.exe +# ADD BASE CPP /nologo /AL /Q68m /W3 /GX /Z7 /YX /Od /D "_WINDOWS" /D "_MAC" /D "_68K_" /D "_DEBUG" /FR /c +# ADD CPP /nologo /AL /Q68m /W3 /GX /Z7 /YX /Od /D "_WINDOWS" /D "_MAC" /D "_68K_" /D "_DEBUG" /FR /c +CPP_PROJ=/nologo /AL /Q68m /W3 /GX /Z7 /YX /Od /D "_WINDOWS" /D "_MAC" /D\ + "_68K_" /D "_DEBUG" /FR$(INTDIR)/ /Fp$(OUTDIR)/"libtiff.pch" /Fo$(INTDIR)/ /c +CPP_OBJS=.\MacDebug/ + +.c{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.cpp{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.cxx{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +BSC32_FLAGS=/nologo /o$(OUTDIR)/"libtiff.bsc" +BSC32_SBRS= \ + $(INTDIR)/"tif_jpeg.sbr" \ + $(INTDIR)/"tif_dirinfo.sbr" \ + $(INTDIR)/"tif_win32.sbr" \ + $(INTDIR)/"tif_flush.sbr" \ + $(INTDIR)/"tif_thunder.sbr" \ + $(INTDIR)/"tif_compress.sbr" \ + $(INTDIR)/"tif_print.sbr" \ + $(INTDIR)/"tif_dirread.sbr" \ + $(INTDIR)/"tif_getimage.sbr" \ + $(INTDIR)/"tif_fax3.sbr" \ + $(INTDIR)/"tif_version.sbr" \ + $(INTDIR)/"tif_codec.sbr" \ + $(INTDIR)/"tif_dir.sbr" \ + $(INTDIR)/"tif_predict.sbr" \ + $(INTDIR)/"tif_close.sbr" \ + $(INTDIR)/"tif_dumpmode.sbr" \ + $(INTDIR)/"tif_aux.sbr" \ + $(INTDIR)/"tif_error.sbr" \ + $(INTDIR)/"tif_lzw.sbr" \ + $(INTDIR)/"tif_zip.sbr" \ + $(INTDIR)/"tif_read.sbr" \ + $(INTDIR)/"tif_packbits.sbr" \ + $(INTDIR)/"tif_swab.sbr" \ + $(INTDIR)/"tif_dirwrite.sbr" \ + $(INTDIR)/"tif_open.sbr" \ + $(INTDIR)/"tif_warning.sbr" \ + $(INTDIR)/"tif_tile.sbr" \ + $(INTDIR)/"tif_strip.sbr" \ + $(INTDIR)/"tif_next.sbr" \ + $(INTDIR)/"tif_write.sbr" \ + $(INTDIR)/"fax3sm.sbr" + +$(OUTDIR)/"libtiff.bsc" : $(OUTDIR) $(BSC32_SBRS) + $(BSC32) @<< + $(BSC32_FLAGS) $(BSC32_SBRS) +<< + +LIB32=lib.exe +# ADD BASE LIB32 /NOLOGO +# ADD LIB32 /NOLOGO +LIB32_FLAGS=/NOLOGO /OUT:$(OUTDIR)\"libtiff.lib" +DEF_FLAGS= +DEF_FILE= +LIB32_OBJS= \ + $(INTDIR)/"tif_jpeg.obj" \ + $(INTDIR)/"tif_dirinfo.obj" \ + $(INTDIR)/"tif_win32.obj" \ + $(INTDIR)/"tif_flush.obj" \ + $(INTDIR)/"tif_thunder.obj" \ + $(INTDIR)/"tif_compress.obj" \ + $(INTDIR)/"tif_print.obj" \ + $(INTDIR)/"tif_dirread.obj" \ + $(INTDIR)/"tif_getimage.obj" \ + $(INTDIR)/"tif_fax3.obj" \ + $(INTDIR)/"tif_version.obj" \ + $(INTDIR)/"tif_codec.obj" \ + $(INTDIR)/"tif_dir.obj" \ + $(INTDIR)/"tif_predict.obj" \ + $(INTDIR)/"tif_close.obj" \ + $(INTDIR)/"tif_dumpmode.obj" \ + $(INTDIR)/"tif_aux.obj" \ + $(INTDIR)/"tif_error.obj" \ + $(INTDIR)/"tif_lzw.obj" \ + $(INTDIR)/"tif_zip.obj" \ + $(INTDIR)/"tif_read.obj" \ + $(INTDIR)/"tif_packbits.obj" \ + $(INTDIR)/"tif_swab.obj" \ + $(INTDIR)/"tif_dirwrite.obj" \ + $(INTDIR)/"tif_open.obj" \ + $(INTDIR)/"tif_warning.obj" \ + $(INTDIR)/"tif_tile.obj" \ + $(INTDIR)/"tif_strip.obj" \ + $(INTDIR)/"tif_next.obj" \ + $(INTDIR)/"tif_write.obj" \ + $(INTDIR)/"fax3sm.obj" + +$(OUTDIR)/"libtiff.lib" : $(OUTDIR) $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< + $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) +<< + +!ELSEIF "$(CFG)" == "APXrel" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "APXrel" +# PROP BASE Intermediate_Dir "APXrel" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "APXrel" +# PROP Intermediate_Dir "APXrel" +OUTDIR=.\APXrel +INTDIR=.\APXrel + +ALL : $(OUTDIR)/"libtiff.lib" $(OUTDIR)/"libtiff.bsc" + +$(OUTDIR) : + if not exist $(OUTDIR)/nul mkdir $(OUTDIR) + +CPP=cl.exe +# ADD BASE CPP /nologo /ML /Gt0 /W3 /GX /YX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FR /c +# ADD CPP /nologo /MT /Gt0 /W3 /GX /YX /O2 /I ".." /I "." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FR /c +CPP_PROJ=/nologo /MT /Gt0 /W3 /GX /YX /O2 /I ".." /I "." /D "WIN32" /D "NDEBUG"\ + /D "_WINDOWS" /FR$(INTDIR)/ /Fp$(OUTDIR)/"libtiff.pch" /Fo$(INTDIR)/ /c +CPP_OBJS=.\APXrel/ + +.c{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.cpp{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.cxx{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +BSC32_FLAGS=/nologo /o$(OUTDIR)/"libtiff.bsc" +BSC32_SBRS= \ + $(INTDIR)/"tif_jpeg.sbr" \ + $(INTDIR)/"tif_dirinfo.sbr" \ + $(INTDIR)/"tif_win32.sbr" \ + $(INTDIR)/"tif_flush.sbr" \ + $(INTDIR)/"tif_thunder.sbr" \ + $(INTDIR)/"tif_compress.sbr" \ + $(INTDIR)/"tif_print.sbr" \ + $(INTDIR)/"tif_dirread.sbr" \ + $(INTDIR)/"tif_getimage.sbr" \ + $(INTDIR)/"tif_fax3.sbr" \ + $(INTDIR)/"tif_version.sbr" \ + $(INTDIR)/"tif_codec.sbr" \ + $(INTDIR)/"tif_dir.sbr" \ + $(INTDIR)/"tif_predict.sbr" \ + $(INTDIR)/"tif_close.sbr" \ + $(INTDIR)/"tif_dumpmode.sbr" \ + $(INTDIR)/"tif_aux.sbr" \ + $(INTDIR)/"tif_error.sbr" \ + $(INTDIR)/"tif_lzw.sbr" \ + $(INTDIR)/"tif_zip.sbr" \ + $(INTDIR)/"tif_read.sbr" \ + $(INTDIR)/"tif_packbits.sbr" \ + $(INTDIR)/"tif_swab.sbr" \ + $(INTDIR)/"tif_dirwrite.sbr" \ + $(INTDIR)/"tif_open.sbr" \ + $(INTDIR)/"tif_warning.sbr" \ + $(INTDIR)/"tif_tile.sbr" \ + $(INTDIR)/"tif_strip.sbr" \ + $(INTDIR)/"tif_next.sbr" \ + $(INTDIR)/"tif_write.sbr" \ + $(INTDIR)/"fax3sm.sbr" + +$(OUTDIR)/"libtiff.bsc" : $(OUTDIR) $(BSC32_SBRS) + $(BSC32) @<< + $(BSC32_FLAGS) $(BSC32_SBRS) +<< + +LIB32=lib.exe +# ADD BASE LIB32 /NOLOGO +# ADD LIB32 /NOLOGO +LIB32_FLAGS=/NOLOGO /OUT:$(OUTDIR)\"libtiff.lib" +DEF_FLAGS= +DEF_FILE= +LIB32_OBJS= \ + $(INTDIR)/"tif_jpeg.obj" \ + $(INTDIR)/"tif_dirinfo.obj" \ + $(INTDIR)/"tif_win32.obj" \ + $(INTDIR)/"tif_flush.obj" \ + $(INTDIR)/"tif_thunder.obj" \ + $(INTDIR)/"tif_compress.obj" \ + $(INTDIR)/"tif_print.obj" \ + $(INTDIR)/"tif_dirread.obj" \ + $(INTDIR)/"tif_getimage.obj" \ + $(INTDIR)/"tif_fax3.obj" \ + $(INTDIR)/"tif_version.obj" \ + $(INTDIR)/"tif_codec.obj" \ + $(INTDIR)/"tif_dir.obj" \ + $(INTDIR)/"tif_predict.obj" \ + $(INTDIR)/"tif_close.obj" \ + $(INTDIR)/"tif_dumpmode.obj" \ + $(INTDIR)/"tif_aux.obj" \ + $(INTDIR)/"tif_error.obj" \ + $(INTDIR)/"tif_lzw.obj" \ + $(INTDIR)/"tif_zip.obj" \ + $(INTDIR)/"tif_read.obj" \ + $(INTDIR)/"tif_packbits.obj" \ + $(INTDIR)/"tif_swab.obj" \ + $(INTDIR)/"tif_dirwrite.obj" \ + $(INTDIR)/"tif_open.obj" \ + $(INTDIR)/"tif_warning.obj" \ + $(INTDIR)/"tif_tile.obj" \ + $(INTDIR)/"tif_strip.obj" \ + $(INTDIR)/"tif_next.obj" \ + $(INTDIR)/"tif_write.obj" \ + $(INTDIR)/"fax3sm.obj" + +$(OUTDIR)/"libtiff.lib" : $(OUTDIR) $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< + $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) +<< + +!ELSEIF "$(CFG)" == "APXdeb" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "APXdeb" +# PROP BASE Intermediate_Dir "APXdeb" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "APXdeb" +# PROP Intermediate_Dir "APXdeb" +OUTDIR=.\APXdeb +INTDIR=.\APXdeb + +ALL : $(OUTDIR)/"dlibtiff.lib" $(OUTDIR)/"libtiff.bsc" + +$(OUTDIR) : + if not exist $(OUTDIR)/nul mkdir $(OUTDIR) + +CPP=cl.exe +# ADD BASE CPP /nologo /ML /Gt0 /W3 /GX /Z7 /YX /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR /c +# ADD CPP /nologo /MT /Gt0 /W3 /GX /Z7 /YX /Od /I ".." /I "." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR /c +CPP_PROJ=/nologo /MT /Gt0 /W3 /GX /Z7 /YX /Od /I ".." /I "." /D "WIN32" /D\ + "_DEBUG" /D "_WINDOWS" /FR$(INTDIR)/ /Fp$(OUTDIR)/"libtiff.pch" /Fo$(INTDIR)/\ + /c +CPP_OBJS=.\APXdeb/ + +.c{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.cpp{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +.cxx{$(CPP_OBJS)}.obj: + $(CPP) $(CPP_PROJ) $< + +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +BSC32_FLAGS=/nologo /o$(OUTDIR)/"libtiff.bsc" +BSC32_SBRS= \ + $(INTDIR)/"tif_jpeg.sbr" \ + $(INTDIR)/"tif_dirinfo.sbr" \ + $(INTDIR)/"tif_win32.sbr" \ + $(INTDIR)/"tif_flush.sbr" \ + $(INTDIR)/"tif_thunder.sbr" \ + $(INTDIR)/"tif_compress.sbr" \ + $(INTDIR)/"tif_print.sbr" \ + $(INTDIR)/"tif_dirread.sbr" \ + $(INTDIR)/"tif_getimage.sbr" \ + $(INTDIR)/"tif_fax3.sbr" \ + $(INTDIR)/"tif_version.sbr" \ + $(INTDIR)/"tif_codec.sbr" \ + $(INTDIR)/"tif_dir.sbr" \ + $(INTDIR)/"tif_predict.sbr" \ + $(INTDIR)/"tif_close.sbr" \ + $(INTDIR)/"tif_dumpmode.sbr" \ + $(INTDIR)/"tif_aux.sbr" \ + $(INTDIR)/"tif_error.sbr" \ + $(INTDIR)/"tif_lzw.sbr" \ + $(INTDIR)/"tif_zip.sbr" \ + $(INTDIR)/"tif_read.sbr" \ + $(INTDIR)/"tif_packbits.sbr" \ + $(INTDIR)/"tif_swab.sbr" \ + $(INTDIR)/"tif_dirwrite.sbr" \ + $(INTDIR)/"tif_open.sbr" \ + $(INTDIR)/"tif_warning.sbr" \ + $(INTDIR)/"tif_tile.sbr" \ + $(INTDIR)/"tif_strip.sbr" \ + $(INTDIR)/"tif_next.sbr" \ + $(INTDIR)/"tif_write.sbr" \ + $(INTDIR)/"fax3sm.sbr" + +$(OUTDIR)/"libtiff.bsc" : $(OUTDIR) $(BSC32_SBRS) + $(BSC32) @<< + $(BSC32_FLAGS) $(BSC32_SBRS) +<< + +LIB32=lib.exe +# ADD BASE LIB32 /NOLOGO +# ADD LIB32 /NOLOGO /OUT:"APXdeb\dlibtiff.lib" +LIB32_FLAGS=/NOLOGO /OUT:"APXdeb\dlibtiff.lib" +DEF_FLAGS= +DEF_FILE= +LIB32_OBJS= \ + $(INTDIR)/"tif_jpeg.obj" \ + $(INTDIR)/"tif_dirinfo.obj" \ + $(INTDIR)/"tif_win32.obj" \ + $(INTDIR)/"tif_flush.obj" \ + $(INTDIR)/"tif_thunder.obj" \ + $(INTDIR)/"tif_compress.obj" \ + $(INTDIR)/"tif_print.obj" \ + $(INTDIR)/"tif_dirread.obj" \ + $(INTDIR)/"tif_getimage.obj" \ + $(INTDIR)/"tif_fax3.obj" \ + $(INTDIR)/"tif_version.obj" \ + $(INTDIR)/"tif_codec.obj" \ + $(INTDIR)/"tif_dir.obj" \ + $(INTDIR)/"tif_predict.obj" \ + $(INTDIR)/"tif_close.obj" \ + $(INTDIR)/"tif_dumpmode.obj" \ + $(INTDIR)/"tif_aux.obj" \ + $(INTDIR)/"tif_error.obj" \ + $(INTDIR)/"tif_lzw.obj" \ + $(INTDIR)/"tif_zip.obj" \ + $(INTDIR)/"tif_read.obj" \ + $(INTDIR)/"tif_packbits.obj" \ + $(INTDIR)/"tif_swab.obj" \ + $(INTDIR)/"tif_dirwrite.obj" \ + $(INTDIR)/"tif_open.obj" \ + $(INTDIR)/"tif_warning.obj" \ + $(INTDIR)/"tif_tile.obj" \ + $(INTDIR)/"tif_strip.obj" \ + $(INTDIR)/"tif_next.obj" \ + $(INTDIR)/"tif_write.obj" \ + $(INTDIR)/"fax3sm.obj" + +$(OUTDIR)/"dlibtiff.lib" : $(OUTDIR) $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< + $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) +<< + +!ENDIF + +################################################################################ +# Begin Group "Source Files" + +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_jpeg.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_jpeg.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_jpeg.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_jpeg.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_jpeg.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_jpeg.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_jpeg.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_dirinfo.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_dirinfo.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_dirinfo.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_dirinfo.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_dirinfo.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_dirinfo.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_dirinfo.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_win32.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_win32.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_win32.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_win32.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_win32.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_win32.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_win32.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_flush.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_flush.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_flush.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_flush.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_flush.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_flush.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_flush.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_thunder.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_thunder.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_thunder.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_thunder.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_thunder.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_thunder.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_thunder.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_compress.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_compress.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_compress.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_compress.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_compress.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_compress.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_compress.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_print.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_print.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_print.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_print.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_print.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_print.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_print.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_dirread.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_dirread.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_dirread.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_dirread.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_dirread.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_dirread.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_dirread.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_getimage.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_getimage.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_getimage.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_getimage.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_getimage.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_getimage.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_getimage.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_fax3.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_fax3.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_fax3.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_fax3.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_fax3.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_fax3.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_fax3.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_version.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_version.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_version.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_version.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_version.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_version.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_version.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_codec.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_codec.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_codec.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_codec.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_codec.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_codec.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_codec.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_dir.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_dir.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_dir.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_dir.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_dir.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_dir.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_dir.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_predict.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_predict.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_predict.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_predict.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_predict.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_predict.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_predict.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_close.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_close.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_close.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_close.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_close.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_close.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_close.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_dumpmode.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_dumpmode.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_dumpmode.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_dumpmode.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_dumpmode.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_dumpmode.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_dumpmode.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_aux.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_aux.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_aux.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_aux.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_aux.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_aux.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_aux.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_error.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_error.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_error.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_error.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_error.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_error.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_error.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_lzw.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_lzw.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_lzw.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_lzw.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_lzw.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_lzw.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_lzw.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_zip.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_zip.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_zip.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_zip.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_zip.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_zip.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_zip.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_read.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_read.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_read.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_read.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_read.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_read.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_read.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_packbits.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_packbits.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_packbits.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_packbits.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_packbits.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_packbits.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_packbits.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_swab.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_swab.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_swab.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_swab.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_swab.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_swab.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_swab.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_dirwrite.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_dirwrite.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_dirwrite.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_dirwrite.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_dirwrite.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_dirwrite.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_dirwrite.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_open.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_open.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_open.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_open.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_open.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_open.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_open.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_warning.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_warning.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_warning.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_warning.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_warning.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_warning.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_warning.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\libtiff.def +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_tile.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_tile.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_tile.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_tile.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_tile.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_tile.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_tile.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_strip.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_strip.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_strip.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_strip.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_strip.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_strip.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_strip.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_next.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_next.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_next.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_next.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_next.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_next.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_next.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE="\tiff\tiff-v3.4beta024\libtiff\tif_write.c" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"tif_write.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"tif_write.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"tif_write.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"tif_write.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"tif_write.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"tif_write.obj" : $(SOURCE) $(INTDIR) + $(CPP) $(CPP_PROJ) $(SOURCE) + +!ENDIF + +# End Source File +################################################################################ +# Begin Source File + +SOURCE=.\fax3sm.c +DEP_FAX3S=\ + "\tiff\tiff-v3.4beta024\libtiff\tiff.h"\ + "\tiff\tiff-v3.4beta024\libtiff\tif_fax3.h" + +!IF "$(CFG)" == "Win32 Release" + +$(INTDIR)/"fax3sm.obj" : $(SOURCE) $(DEP_FAX3S) $(INTDIR) + +!ELSEIF "$(CFG)" == "Win32 Debug" + +$(INTDIR)/"fax3sm.obj" : $(SOURCE) $(DEP_FAX3S) $(INTDIR) + +!ELSEIF "$(CFG)" == "Macintosh Release" + +$(INTDIR)/"fax3sm.obj" : $(SOURCE) $(DEP_FAX3S) $(INTDIR) + +!ELSEIF "$(CFG)" == "Macintosh Debug" + +$(INTDIR)/"fax3sm.obj" : $(SOURCE) $(DEP_FAX3S) $(INTDIR) + +!ELSEIF "$(CFG)" == "APXrel" + +$(INTDIR)/"fax3sm.obj" : $(SOURCE) $(DEP_FAX3S) $(INTDIR) + +!ELSEIF "$(CFG)" == "APXdeb" + +$(INTDIR)/"fax3sm.obj" : $(SOURCE) $(DEP_FAX3S) $(INTDIR) + +!ENDIF + +# End Source File +# End Group +# End Project +################################################################################ diff --git a/contrib/winnt/libtiff.vcp b/contrib/winnt/libtiff.vcp new file mode 100755 index 0000000000000000000000000000000000000000..4c63936d895a9a7dc1299c4db02156f4649b0ae7 GIT binary patch literal 17408 zcmeHOO-x(a6+SS)I3@-rq#34@N#3|o3sqtaMy*L^qyXl}DZ!Qv4XP}Gf1a_4v0c9h z7&4VuwJf?|HWiC5GP`NjN>N*>v+SaaEV{@ti!NAn!KPBAb}@^#>38mZ4-A2DL7K$_ zKk5D4d(XM|oOAE}&VA>;_aHv*e}|gLOVmj9P>AXJLV6^nU|UGnRmKg>)0o2Nr@JU!sstnfYwix0HPR`gJFbL@T95 zJ#B_c>1lnbTu7Qa(dW#EgKvi|yNJ9X&P5cCGQng%RlyCIBaat1gS7eiAZ`8JPk+br zUvX;wKH9~d%U=GWkN%B2m;GhFpGXUeviX1X(`7t!+0JJH>cTUZb-M@X7Vccu@p6Ft zxO3T;fA&+;--4oSpK7Kbb9UdDKmpeZW_y&eYr-%Ig1BuD-uqb#G zo=OZwXG5dIOfwe>$HG%%5np8Zf#84ESf$cJNjqyj@!^=1ykHj6Nm!sd6;%InKX^gQPSU+GNN5ou0O3pp8(}n=Q?T8hf4NkInjx|+)1{OT8n{N zvOcBuBtQ4z9{*O&c97h%uIzwV*=s1L(83O!hn$fRDRN~ zhY_CL(H8vK#=Sj!AK$pTF7hpv;g42{-BgVU%-nJ@qgT*VK(nCx39(mGu_J?Y*Uc4r zh4xhF6YM{)VLkAPBK?s7668#%OPKUNxK6Lmg_{Dl(D(P`Q1^;k-B*6GD^SU|N|0VL{Js!8f ze>Ww!+At2V?mulit#nz;%lhRaT7b9wO&w)lj9)w!y>rp4tSyK7Au!K%e_7?!zdn@D_T{o4oG-zwvCExuEehzoH0NAh#I zC^!_~8jZywa`jKbUOC9Y@s;E1Iqp3|*273Io$4;^!TlvoMf3`34oX?3qpy+HGx>B4 zl|CIeD;ybpG8)y&HXiBL)sieSr zn|}-Z9Is=%xAV}Sfo{A}FsOJ&KWVM)H(36JFt^BjuiXl;}EDPzW z<%NSK?>$VW^F^~{_K+UM7Z@(rt4}P=yN$Ka0rQug78IFQK64Qr8{R8s51VnaFKJAQt79{`s#Tbdc57{pci|UMbdd((3X?w$Em#O zsFy00zA{#^G47!8r{tybmDNh#bd;A;=_`DY;HXu)%IeSBxOdVJtoaB&qi0X$U=j7+ z;5g}QOZcG%D^!ZGIo-MRn|9#Svh~6v#3|k-HVXppxEt8aG1wf za?+G}C!?1e@JaSaNQalm=*9HfNU3Nh^F>{Jwa2K#M~g&_7T$95r(T7^*hHT(n8wBF?{Zr5zsu?GaeD0Tb=1rJIq2U^Qh(m9+%fy` zP34R+iE^gz@bx1t`T5g!*1y@Rpa0f)J{Umx^xaQD&+X-)KlAHz568-u+#dJaET-Mn zv|HWr$V`ms@fhCkaF}`|8fE=)n~TOG4|;6kkrtn>}-!) z;}ja`k+);p*<$(df0pJ2`Pg`mSNrr+&3j;b*$Z)K19ZhIw+})bpqr$zY3s+iwLk~`AJ< +To: tiff@sgi.engr.sgi.com +Subject: Contribution: libtiff for Windows-nt +Reply-To: Dave Dyer +Sender: owner-tiff@sgi.engr.sgi.com +Precedence: bulk + + +Since I needed it, and the support for windows-nt versions of libtiff +is sketchy at best, I packaged up my port of libtiff v3.4beta024 +to windows-nt. + + ftp://torii.triple-i.com/pub/ddyer/libtiff.tar.gz + +this contains "libtiff.mak", a makefile for microsoft visual c++, +a couple of hand-built .h and .c files (corresponding to those which +are automatically constructed by unix makefiles) and static libraries +compiled for intel and dec alpha. + +As customary, I make no claims regarding the completeness or +correctness of these libraries, and accept no responsibily for any +mishaps you may have as a result of using them. They work for me. + +I hope Sam will copy and incorporate this into the "contrib" section +of the next libtiff release. diff --git a/contrib/winnt/version.h b/contrib/winnt/version.h new file mode 100755 index 0000000..11b9435 --- /dev/null +++ b/contrib/winnt/version.h @@ -0,0 +1 @@ +#define VERSION "LIBTIFF, Version 3.4beta024\nCopyright (c) 1988-1995 Sam Leffler\nCopyright (c) 1991-1995 Silicon Graphics, Inc." diff --git a/dist/newalpha b/dist/newalpha new file mode 100755 index 0000000..6995777 --- /dev/null +++ b/dist/newalpha @@ -0,0 +1,8 @@ +#! /bin/sh +# $Header: /home/cvsroot/libtiff/dist/newalpha,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +if test -r tiff.alpha; then + ALPHA=`cat tiff.alpha`; rm -f tiff.alpha + echo "$ALPHA" | awk '{ printf "define ALPHA %1d\n", $3+1}' > tiff.alpha +else + echo "define ALPHA 001" >tiff.alpha +fi diff --git a/dist/newversion b/dist/newversion new file mode 100755 index 0000000..ddf3821 --- /dev/null +++ b/dist/newversion @@ -0,0 +1,32 @@ +#! /bin/sh +# $Header: /home/cvsroot/libtiff/dist/newversion,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +# +# TIFF Software +# +# Copyright (c) 1994-1996 Sam Leffler +# Copyright (c) 1994-1996 Silicon Graphics, Inc. +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Sam Leffler and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# +rm -f tiff.version +awk ' +$1 ~ /.*beta/ { print "define TIFF_VNUM " $0 } +$1 !~ /.*beta/{ print "define TIFF_VNUM \"" $0 " (release)\"" } +' ../VERSION > tiff.version diff --git a/dist/tiff.alpha b/dist/tiff.alpha new file mode 100755 index 0000000..58b5ddb --- /dev/null +++ b/dist/tiff.alpha @@ -0,0 +1 @@ +define ALPHA diff --git a/dist/tiff.spec b/dist/tiff.spec new file mode 100755 index 0000000..38ff379 --- /dev/null +++ b/dist/tiff.spec @@ -0,0 +1,68 @@ +# $Header: /home/cvsroot/libtiff/dist/tiff.spec,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +# +# TIFF Software +# +# Copyright (c) 1994-1997 Sam Leffler +# Copyright (c) 1994-1997 Silicon Graphics, Inc. +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Sam Leffler and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# +define CUR_MAJ_VERS 1006 # Major Version number +define CUR_MIN_VERS 001 # Minor Version number +define CUR_VERS ${CUR_MAJ_VERS}${CUR_MIN_VERS}${ALPHA} +define TIFF_NAME "TIFF" + +include tiff.version +include tiff.alpha + +product tiff + id "${TIFF_NAME} Tools, Version ${TIFF_VNUM}" + inplace + + image sw + id "${TIFF_NAME} Software" + version "${CUR_VERS}" + subsys tools default + id "${TIFF_NAME} Tools & Library DSO" + exp "tiff.sw.tools" + endsubsys + subsys dev + id "${TIFF_NAME} Developement Software" + exp "tiff.sw.dev" + endsubsys + endimage + + image man + id "${TIFF_NAME} Documentation" + version "${CUR_VERS}" + subsys tools default + id "${TIFF_NAME} Tools Manual Pages" + exp "tiff.man.tools" + endsubsys + subsys dev + id "${TIFF_NAME} Library Manual Pages" + exp "tiff.man.dev" + endsubsys + subsys html + id "${TIFF_NAME} HTML Materials" + exp "tiff.man.html" + endsubsys + endimage +endproduct diff --git a/dist/tiff.version b/dist/tiff.version new file mode 100755 index 0000000..3c928d5 --- /dev/null +++ b/dist/tiff.version @@ -0,0 +1 @@ +define TIFF_VNUM "3.5.5 (release)" diff --git a/html/Makefile.in b/html/Makefile.in new file mode 100755 index 0000000..9fb77bb --- /dev/null +++ b/html/Makefile.in @@ -0,0 +1,109 @@ +# $Header: /home/cvsroot/libtiff/html/Makefile.in,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +# +# @WARNING@ +# +# Tag Image File Format Library Manual Pages +# +# Copyright (c) 1991-1997 Sam Leffler +# Copyright (c) 1991-1997 Silicon Graphics, Inc. +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Stanford and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# +DEPTH = .. + +SRCDIR = ${DEPTH}/@SRCDIR@/html +VPATH = ../@SRCDIR@/html + +PORT = ${DEPTH}/port + +# +# VERSION: @VERSION@ +# DATE: @DATE@ +# TARGET: @TARGET@ +# CCOMPILER: @CCOMPILER@ +# +SHELL = @SCRIPT_SH@ +NULL = +ECHO = echo +MV = mv +RM = rm -f +INSTALL = @INSTALL@ + +HTML = @DIR_HTML@ + +HTMLFILES=\ + bugs.html \ + build.html \ + contrib.html \ + document.html \ + images.html \ + index.html \ + internals.html \ + intro.html \ + libtiff.html \ + misc.html \ + support.html \ + tools.html \ + v3.4beta007.html \ + v3.4beta016.html \ + v3.4beta018.html \ + v3.4beta024.html \ + v3.4beta028.html \ + v3.4beta029.html \ + v3.4beta031.html \ + v3.4beta032.html \ + v3.4beta033.html \ + v3.4beta034.html \ + v3.4beta035.html \ + v3.4beta036.html \ + v3.5.1.html \ + v3.5.2.html \ + v3.5.3.html \ + v3.5.4.html \ + v3.5.5.html \ + ${NULL} +IMAGES=\ + images/back.gif \ + images/bali.jpg \ + images/cat.gif \ + images/cover.jpg \ + images/cramps.gif \ + images/jello.jpg \ + images/jim.gif \ + images/note.gif \ + images/oxford.gif \ + images/quad.jpg \ + images/ring.gif \ + images/smallliz.jpg \ + images/strike.gif \ + images/warning.gif \ + ${NULL} +TARGETS= + +all: ${TARGETS} + +install: all + ${INSTALL} -m 755 -dir -idb tiff.man.html ${HTML} ${HTML}/images + for i in ${HTMLFILES} ${IMAGES}; do \ + ${INSTALL} -idb tiff.man.html -m 444 -F ${HTML} \ + -src ${SRCDIR}/$$i -O $$i; \ + done + +clean:; diff --git a/html/bugs.html b/html/bugs.html new file mode 100755 index 0000000..0f7bd2a --- /dev/null +++ b/html/bugs.html @@ -0,0 +1,46 @@ + + + +Bugs and the TIFF Mailing List + + + + +

    + +Bugs and the TIFF Mailing List +

    + +

    +This software is free. Please let us know when you find a problem or +fix a bug. + +

    +A mailing list for users of this software is located at olympiakos.com +If you want to join this mailing list or have a list-related request +such as getting your name removed from it, send a request to +

    +For example, to subscribe, send the line +
      +subscribe
      +
    +in the body of your message. The line help will return a list of +the commands understood by the mailing list management software. + +

    +Submissions (including bug reports) should be directed to: +

    +When corresponding about this software please always specify what +version you have and what system you are running on. + +

    + +


    + +Last updated: $Date: 2000/06/24 19:10:16 $ + + diff --git a/html/build.html b/html/build.html new file mode 100755 index 0000000..cc99b44 --- /dev/null +++ b/html/build.html @@ -0,0 +1,1167 @@ + + + +Building the TIFF Software Distribution + + + + +

    + +Building the Software Distribution +

    + + + +
    + +This chapter contains step-by-step instructions on how to configure +and build the TIFF software distribution. +The software is most easily built on a UNIX system, but with a little +bit of work it can easily be built and used on other non-UNIX platforms. + +

    Building on a UNIX System

    + +To build the software on a UNIX system +you need to first run the configure shell script +that is located in the top level of the source directory. +This script probes the target system for necessary tools and functions +and constructs a build environment in which the software may be +compiled. +Once configuration is done, you simply run make + to build the software +and then make install to do the installation; for example: + +
      +hyla% cd tiff-v3.4beta099
      +hyla% ./configure
      +    ...lots of messages...
      +hyla% make
      +    ...lots of messages...
      +hyla# make install
      +
    + +In general, the software is designed such that the following should +be ``make-able'' in each directory: + +
      +make [all]	build stuff
      +make install	build&install stuff
      +make clean	remove .o files and cruft, but not executables
      +make clobber	remove everything that can be recreated
      +make distclean	remove absolutely everything that can be recreated
      +
    + +Note that after running "make clobber" or +"make distclean" the configure script must +be run again to create the Makefiles and other make-related files. + +


    Build Trees

    + +There are two schemes for configuring and building the software. +If you intend to build the software for only one target system, you +can configure the software so that it is built in the same directories +as the source code. + +
      +hyla% cd tiff-v3.4beta099
      +hyla% ls
      +COPYRIGHT       VERSION         config.sub      dist            man
      +Makefile.in     config.guess    configure       html            port
      +README          config.site     contrib         libtiff         tools
      +hyla% ./configure
      +
    + +

    +Otherwise, you can configure a build tree that +is parallel to the source tree hierarchy but which contains only +configured files and files created during the build procedure. + +

      +hyla% cd tiff-v3.4beta099
      +hyla% mkdir obj obj/mycpu
      +hyla% cd obj/mycpu
      +hyla% ../../configure
      +
    + +This second scheme is useful for: + +
      +
    • building multiple targets from a single source tree +
    • building from a read-only source tree (e.g. if you receive + the distribution on CD-ROM) +
    + +


    Configuration Files

    + +The configuration process is critical to the proper compilation, +installation, and operation of the software. +The configure script runs a series of tests to +decide whether or not the target system +supports required functionality and, if it does not, whether it +can emulate or workaround the missing functions. +This procedure is fairly complicated and, due to the nonstandard +nature of most UNIX systems, prone to error. +The first time that you configure the software for use you should +check the output from the configure script and look for anything +that does not make sense for your system. +A sample configure run is shown below together with an explanation +of some of the work that is done. + +

    +A second function of the configure script is to set the default +configuration parameters for the software. +Of particular note are the directories where the software is to be +installed. +By default the software is installed in the /usr/local hierarchy. +To change this behaviour the appropriate parameters can be +specified either: +

      +
    • on the command line to configure, +
    • in a site-wide configuration file, or +
    • in a target-specific configuration file. +
    +configure reads any site-wide configure file first, and +then any target-specific configuration file. +This permits target-specific definitions to override +site-wide definitions. + +

    +Site-wide configuration files are named +config.site and are automatically searched for first +in any directory specified on the command line to configure +(using the -site option), or if that fails, in +the directory in in which the configure script is located. + +

    +Target-specific configuration files are named config.local +and are looked for first in the top-level configuration directory, +or, if that fails, in the directory in which the configure script +is located. + +

    +Configuration files are just shell scripts that define +shell variables that control the configuration process. +For example, the following file might be used on a BSDI system to +configure the software for installation in the /usr/contrib area. + +

    +#
    +# Parameters suitable for BSDI 1.1
    +#
    +DIR_BIN="/usr/contrib/bin"		# directory for client apps
    +DIR_LIB="/usr/contrib/lib"		# directory for libraries
    +DIR_MAN="/usr/contrib/man"		# directory for manual pages
    +
    + +

    +For a complete list of the possible configuration parameters look +at the sample config.site file provided in the distribution; the +section below describes some of the more important parameters. + +


    Configuring Optional Packages/Support

    + +The TIFF software comes with several packages that are installed only +as needed, or only if specifically configured at the time +the configure script is run. Packages can be configured in a +config.site or config.local file, or by using a +-with-<PACKAGE> option when invoking configure; +e.g. configure -with-AFM. + +
    +
    DSO Support +
    The DSO support controls whether or not to +configure the software +to build a Dynamic Shared Object for the TIFF library. +Use of DSOs can significantly reduce the disk space needed for +users of the TIFF software. +If DSOs are not used then the code is statically linked into +each application that uses it. +By default this support is configured only if the system appears +to suport DSOs in a way that fits into the normal build scheme +(auto). +If DSO support is explicitly enabled and there is no +support for using DSOs in the expected way then DSOs are not used. + +

    +

    JPEG Support +
    The JPEG package enables support for the handling +of TIFF images with JPEG-encoded data. +Support for JPEG-encoded data requires the Independent JPEG Group (IJG) +libjpeg distribution; this software is available at +ftp.uu.net:/graphics/jpeg/. +If JPEG support is enabled the DIRS_LIBINC and DIR_JPEGLIB +parameters should also be set (see below). +By default JPEG support is not configured. + +

    +

    ZIP Support +
    The ZIP support enables support for the handling +of TIFF images with deflate-encoded data. +Support for deflate-encoded data requires the freely available +zlib distribution written by Jean-loup Gailly and Mark Adler; +this software is available at +ftp.uu.net:/pub/archiving/zip/zlib/ +(or try quest.jpl.nasa.gov:/beta/zlib/). +If ZIP support is enabled the DIRS_LIBINC and DIR_GZLIB +parameters should also be set (see below). +By default this package is not configured. + +
    + +


    A Sample Configuration Session

    + +This section shows a sample configuration session and describes +the work done. The session is shown indented in a fixed width +font with user-supplied input in a bold font. +Comments are shown in a normal or italic font. +This session was collected on a 486 machine running BSDI 1.1. + +
      
      +wullbrandt% mkdir tiff
      +wullbrandt% cd tiff
      +wullbrandt% ln -s /hosts/oxford/usr/people/sam/tiff src
      +
    + +A build tree separate from the source tree is used here. +In fact, in this case the distribution is accessed from +a read-only NFS-mounted filesystem. + +
      
      +wullbrandt% src/configure
      +Configuring TIFF Software v3.4beta015.
      +
      +Reading site-wide parameters from ../tiff-v3.4beta015/config.site.
      +Reading local parameters from config.local.
      +Gosh, aren't you lucky to have a i386-unknown-bsdi1.1 system!
      +
    + +Note that configure announces the distribution version and the +deduced target configuration (i386-unknown-bsdi1.1 here). + +
      
      +Using /usr/local/bin/gcc for a C compiler (set CC to override).
      +Looks like /usr/local/bin/gcc supports the -g option.
      +Using " -g" for C compiler options.
      +
    + +configure checked the normal shell search path for potential +ANSI C compilers. The compiler is selected according to it properly +compiling a small ANSI C test program. A specific compiler may be requested +by setting the CC environment variable to the appropriate +pathname, by supplying the parameter on the command line, e.g. +-with-CC=gcc, or by setting CC in a configuration +file. + +

    + +Note that an ANSI C compiler is required to build the software. +If a C compiler requires options to enable ANSI C compilation, they +can be specified with the ENVOPTS parameter. + +

    +Once a compiler is selected configure checks to see +if the compiler accepts a -g option to enable the generation + of debugging symbols, and +if the compiler includes an ANSI C preprocessor. + +

      
      +Using /usr/ucb/make to configure the software.
      +
    + +Next various system-specific libraries that may or may not be needed +are checked for (none are needed in this case). +If your system requires a library that is not +automatically included it can be specified by setting the +MACHDEPLIBS parameter. + +

    Creating port.h. +The port.h file is included by all the C code +in the library (but not the tools). +It includes definitions for functions and type +definitions that are missing from system include files, #defines +to enable or disable system-specific functionality, and other +odds and ends. + +

      
      +Creating libtiff/port.h with necessary definitions.
      +... using LSB2MSB bit order for your i386 cpu
      +... using big-endian byte order for your i386 cpu
      +... configure use of mmap for memory-mapped files
      +... O_RDONLY is in <fcntl.h>
      +... using double for promoted floating point parameters
      +... enabling use of inline functions
      +Done creating libtiff/port.h.
      +
    + +This file can take a long time to create so configure +generates the file only when it is needed, either because the +file does not exist or because a different target or compiler +is to be used. +Note that running "make distclean" in the top-level directory +of the build tree will remove the port.h file (along +with all the other files generated by configure). + +

    Selecting emulated library functions. +Certain library functions used by the tools are not present on all systems +and can be emulated using other system functionality. +configure checks for the presence of such functions and if they are +missing, will configure emulation code from the port directory +to use instead. Building the TIFF +software on unsupported systems may require +adding to the code to the port directory. + +

      
      +Checking system libraries for functionality to emulate.
      +Done checking system libraries.
      +
    + +If a routine must be emulated and configure does not automatically +check for it, the routine name can be specified using the PORTFUNCS +parameter. To add emulation support for a new function foo, +create a file port/foo.c that contains the emulation code +and then set PORTFUNCS=foo in a configuration file or modify +the configure script to automatically check for the missing function. + +
      
      +Checking for Dynamic Shared Object (DSO) support.
      +Done checking for DSO support.
      +
    + +If the DSO package is enabled (DSO=auto or +DSO=yes), then +configure will verify the system and compiler are capable of +constructing SVR4-style DSO's in the expected way. Note that +while a system may support DSO's the compiler may not be +capable of generating the required position-independent +code and/or the compiler may not pass the needed options +through to the loader. + +

    Selecting utility programs. +configure locates various system utility programs that are +used during installation of the software. + +

      
      +Selecting programs used during installation.
      +Looks like mv supports the -f option to force a move.
      +Looks like /bin/ln supports the -s option to create a symbolic link.
      +Done selecting programs.
      +
    + +

    Selecting default configuration parameters. +The remainder of the work done by configure involves setting up +configuration parameters that control the placement and +setup of files during the installation procedure. + +

      
      +Selecting default TIFF configuration parameters.
      +
      +Looks like manual pages go in /usr/contrib/man.
      +Looks like manual pages should be installed with bsd-nroff-gzip-0.gz.
      +
      +TIFF configuration parameters are:
      +
      +[ 1] Directory for tools:               /usr/contrib/bin
      +[ 2] Directory for libraries:           /usr/contrib/lib
      +[ 3] Directory for include files:       /usr/contrib/include
      +[ 4] Directory for manual pages:        /usr/contrib/man
      +[ 5] Manual page installation scheme:   bsd-nroff-gzip-0.gz
      +
      +Are these ok [yes]? 
      +
    + + + +At this point you can interactively modify any of the +displayed parameters. Hitting a carriage return or typing +yes will accept the current parameters. Typing one +of the number displayed along the left hand side causes +configure to prompt for a new value of the specified parameter. +Typing anything else causes configure to prompt for a new +value for each parameter. +In general hitting carriage return will accept the current +value and typing anything that is unacceptable will cause a +help message to be displayed. +A description of each of the configuration parameters is given below. + +

    +Once acceptable parameters are setup configure will generate +all the files that depend on these parameters. Note that certain +files may or may not be created based on the configuration of +optional packages and/or the functions supported by target system. + +

      
      +Creating Makefile from ../tiff-v3.4beta015/Makefile.in
      +Creating libtiff/Makefile from ../tiff-v3.4beta015/libtiff/Makefile.in
      +Creating man/Makefile from ../tiff-v3.4beta015/man/Makefile.in
      +Creating tools/Makefile from ../tiff-v3.4beta015/tools/Makefile.in
      +Creating port/install.sh from ../tiff-v3.4beta015/port/install.sh.in
      +Done.
      +
    + +


    Shared Library Support

    + +It is desirable to make the TIFF library be a shared object +on systems that have support for shared libraries. +Unfortunately the rules to use to build a shared library +vary between operating systems and even compilers. +The distributed software includes support for building a shared +version of the library on a number of different systems. +This support is split between rules in the file +libtiff/Makefile.in that construct the shared library +and checks done by the configure script to verify that +the expected rules are supported by compilation tools for +the target system. + +

    +To add new support for building a shared library both these files +must be updated. +In the configure script search for the section where the autoconfiguration +setting of the DSO parameter is handled and +add a new case for the target system that sets the +DSOSUF, +DSOLD, +DSOOPTS, +and +LIBCOPTS +options as appropriate for the system. +DSOSUF specifies the filename suffix used for the shared +library (e.g. ``.so'' for Dynamic Shared Objects on most SVR4-based +systems). +DSOLD specifies the program to use to build the shared library +from a compiled object file; typically ``${LD}'' though on some systems +it is better to use the C compiler directly so system-dependent options and +libraries are automatically supplied. +DSOOPTS are options that must be specified to DSOLD +when building the shared library. +LIBCOPTS are options to pass to the C compiler when constructing +a relocatable object file to include in a shared library; e.g. ``-K PIC'' +on a Sun system. +The DSO parameter must also be set to a unique label that identifies +the target system and compilation tools. +This label is used to select +a target in libtiff/Makefile.in to do the actual work in building +the shared library. +Finally, to complete support for the shared library added the appropriate +rules to libtiff/Makefile.in under the target specified in the +configure script. + + + + +


    Configuration Parameters

    + +This section gives a brief description of the less obvious +configuration parameters. Consult the distributed config.site +for a complete list of parameters. +The list here is sorted alphabetically. + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AROPTSThe options passed to ar when creating an archive. +Note that configure will automatically check to see if ar +supports an s to create a symbol table instead of +using ranlib.
    DIR_BINThe directory where client applications should be installed; by +default this is /usr/local/bin.
    DIR_GZLIBThe pathname of the directory containing the zlib library +(when ZIP or PixarLog compression support is enabled); +e.g. ``../src/zlib''.
    DIR_JPEGLIBThe pathname of the directory containing the JPEG library +(when JPEG support is enabled); e.g. ``/usr/local/lib''.
    DIR_LIBThe directory to install libraries and DSO's; by default +this is /usr/local/lib.
    DIR_MANThe top-most directory of the manual area where manual +pages should be installed.
    DIRS_LIBINCA space-separated list of directories in which to search for +include files when building the library and tools. +If JPEG or ZIP support is configured this parameter should include +the directories where the associated include files are located.
    DIST_ALPHAThe alpha version number for the distribution; e.g. if this +is version 3.4beta031 then the the major number is 31.
    DIST_MAJORThe major version number for the distribution; e.g. if this +is version 3.4beta031 then the the major number is 3.
    DIST_MINORThe minor version number for the distribution; e.g. if this +is version 3.4beta031 then the the major number is 4.
    DSOSUFWhen DSO's are built, the filename suffix for a DSO. +If this is set to "a" then statically linked archives are used.
    DSOSUF_VERSIONWhen DSO's are built, a version-specific filename suffix for a DSO. +If this is set to something other than the value of DSO then +the file libtiff.DSOSUF_VERSION will be installed and +a link to it named libtiff.DSOSUF will automatically +be created. (Note that this means that rule for building the target +DSO must generate a file named libtiff.DSOSUF_VERSION.)
    ENVOPTSOptions to pass to CC to force ANSI C compilation.
    FILLORDERThe order of bits in a byte on the server machine; +either LSB2MSB or MSB2LSB. +This is normally selected according to the target system.
    GCOPTSSpecial options to pass the C compiler. If this parameter +is set, then configure may append other options to this list.
    INSTALLThe pathname of the install program to use. Note that this program +must emulate the command line interface used by the IRIX install program.
    LIBPORTThe pathname of the library that holds code to emulate missing +system functionality. +Normally this parameter is set by configure based on whether or +not emulation code is required for the target. +
    LLDOPTS +Extra command line options passed to CC +when linking an executable. +This option is usually set only when DSO support is enabled +(to force the executable to search for the TIFF DSO +in non-standard locations in the filesystem.)
    MACHDEPLIBSTarget-dependent libraries that should be used when linking +tools. +Note that if this parameter is specified configure will append to +the list of libraries.
    MANSCHEMEThe scheme to use when preparing and installing manual pages. +Schemes are constructed according to: +
      +<organization>-<formatting>-<compression>[-<suffix>] +
    +where: +<organization> is either bsd +for BSD-style section organization (e.g. file formats in +section 5) or sysv for System V-style +organization (e.g. file formats in section 4). +<formatting> is either nroff to force +installation of formatted materials (using nroff) or +source to get the nroff source installed. +<compression> is either the name of a program +to compress the manual pages (gipz, compress, pack) or +cat for uncompressed data. +<suffix> is either the file suffix to convert +installed pages to (e.g. 0.gz for gzip-compressed pages under BSD) +or strip to force the normal ".4f" suffix to be converted to ".4" +(or ".5" if using the BSD organization). If no -<suffix> +is specified then filenames are not converted when they are installed.
    PORTFUNCSA list of non-standard functions that should be emulated. +Normally this list is constructed by configure based on checks it does. +If this parameter is set, configure will append to the specified list.
    SETMAKEIf make does not automatically set $MAKE to +the name of the make program to invoke for subdirectories, then +configure will create an explicit definition. +If this parameter is set, then it will be used instead. +by default bin is used.
    + + +


    Building the Software under Windows 95/98/NT/2000 with MS VC++

    + +With Microsoft Visual C++ installed, and properly configured for commandline +use (you will likely need to source VCVARS32.BAT in AUTOEXEC.bAT or somewhere +similar) you should be able to use the provided makefile.vc.

    + +

    +C:\LIBTIFF\LIBTIFF> nmake /f makefile.vc
    +C:\LIBTIFF\LIBTIFF> cd ..\tools
    +C:\LIBTIFF\TOOLS> nmake /f makefile.vc
    +
    + +This will build the library file LIBTIFF\LIBTIFF\LIBTIFF.LIB. This +can be used in Win32 programs. If used in a project using the /MD compiler +switch (using the runtime C library), it may be necessary to modify the +CFLAGS macro in makefile.vc to correspond.

    + +The makefile also builds a DLL (libtiff.dll) with an associated import +library (libtiff_i.lib). Any builds using libtiff will need to include +the LIBTIFF\LIBTIFF directory in the include path.

    + +The libtiff\tools\makefile.vc should build .exe's for all the +standard TIFF tool programs.

    + +NOTE: The contents of the contrib/win32 directory should no longer be +needed, and are kept in the distribution temporarily.

    + +


    Building the Software under MS/DOS with the DJGPP v2 compiler

    + +[From the file contrib/dosdjgpp/README.] + +

    +The directory contrib/dosdjgpp +contains the files necessary to build the library and tools +with the DJGPP v2 compiler under MSDOS. + +

    +All you have to do is copy the files in the directory +into the respective directories and run +make. If you want, you can use the conf.bat script +to do that for you, make sure that +the file is stored with MSDOS text EOL-convention (CR/LF), otherwise the +command.com will not do anything. + +

    +Note that you probably will not be able to build the library with the v1.x +versions of djgpp, due to two problems. First, the top makefile calls a +sub-make for each directory and you are likely to run out of memory, since +each recursive invocation of a djgpp v1.x program requires about 130k, to +avoid that, you can enter the directories manually and call make (well, there +are only two dirs). The 2nd problem is that djgpp 1.x doesn't call the +coff2exe (stubify) program when creating an executable. This means that all +programs compiled are not converted to exe and consequently are not available +for calling directly. For the tools directory, you can just call coff2exe for +each program after make finishes, but in the libtiff directory, a few programs +are created during the make process that have to be called for make to +continue (e.g. mkg3states). Make will probably report an error at each +such stage. To fix that, either add a coff2exe call before each program is +called or call coff2exe manually and rerun make (there 2-3 such programs). + + +


    Building the Software on a Macintosh with MPW

    + +The directory contrib/mac-mpw contains support for +compiling the library and tools under the MPW Shell on a +Macintosh system. +This support was contributed by Niles Ritter +(ndr@tazboy.jpl.nasa.gov). + +

    +[From the file contrib/mac-mpw/README.] + +

    +This directory contains all of the utilities and makefile source +to build the LIBTIFF library and tools from the MPW Shell. The +file BUILD.mpw in this directory is an executable script +which uses all of these files to create the MPW makefiles and +run them. + +

    +The .make files are not MPW makefiles as such, +but are when run through the "mactrans" program, which turns +the ascii "%nn" metacharacters into the standard weird MPW +make characters. + +

    +This translation trick is necessary to protect the files when +they are put into unix tarfiles, which tend to mangle the +special characters. + + + +


    Building the Software on a Macintosh with CodeWarrior

    + +The directory contrib/mac-cw contains support for +compiling the library and tools with MetroWerks CodeWarrior 6.1 +on a Macintosh system. +This support was contributed by Niles Ritter +(ndr@tazboy.jpl.nasa.gov). + +

    +[From the file contrib/mac-cw/README.] + +In this directory you will find a Makefile.script Applescript +file, which should be run in order to build the libtiff code +using MetroWerks CodeWarrior. + +Refer to the "metrowerks.note" instructions on building the +library for 68k and PowerPC native code, as well as building +some of the libtiff tools, which are rather unix-like, but +at least give an example of how to link everything together. + + + +


    Building the Software on a VMS System

    + +The VMS port was done by Karsten Spang +(krs@kampsax.dk), who also +"sort of" maintains it. +The VMS specific files are not in the main directories. Instead they +are placed under [.CONTRIB.VMS...] in the distribution tree. + +Installation: + +It is assumed that you have unpacked the tar file into a VMS directory +tree, in this text called DISK:[TIFF]. + +
      +
    1. Move the VMS specific files to their proper directories. +
      +$ SET DEFAULT DISK:[TIFF.CONTRIB.VMS]
      +$ RENAME [.LIBTIFF]*.* [-.-.LIBTIFF]
      +$ RENAME [.TOOLS]*.* [-.-.TOOLS]
      +
      +
    2. Compile the library. +
      +$ SET DEFAULT DISK:[TIFF.LIBTIFF]
      +$ @MAKEVMS
      +
      +
    3. Compile the tools. +
      +$ SET DEFAULT DISK:[TIFF.TOOLS]
      +$ @MAKEVMS
      +
      +
    4. Define the programs. +
      +$ DEFINE TIFFSHR DISK:[TIFF.LIBTIFF]TIFFSHR
      +$ FAX2PS    :==$DISK:[TIFF.TOOLS]FAX2PS
      +$ FAX2TIFF  :==$DISK:[TIFF.TOOLS]FAX2TIFF
      +$ GIF2TIFF  :==$DISK:[TIFF.TOOLS]GIF2TIFF
      +$ PAL2RGB   :==$DISK:[TIFF.TOOLS]PAL2RGB
      +$ PPM2TIFF  :==$DISK:[TIFF.TOOLS]PPM2TIFF
      +$ RAS2TIFF  :==$DISK:[TIFF.TOOLS]RAS2TIFF
      +$ RGB2YCBCR :==$DISK:[TIFF.TOOLS]RGB2YCBCR
      +$ THUMBNAIL :==$DISK:[TIFF.TOOLS]THUMBNAIL
      +$ TIFF2BW   :==$DISK:[TIFF.TOOLS]TIFF2BW
      +$ TIFF2PS   :==$DISK:[TIFF.TOOLS]TIFF2PS
      +$ TIFFCMP   :==$DISK:[TIFF.TOOLS]TIFFCMP
      +$ TIFFCP    :==$DISK:[TIFF.TOOLS]TIFFCP
      +$ TIFFDITHER:==$DISK:[TIFF.TOOLS]TIFFDITHER
      +$ TIFFDUMP  :==$DISK:[TIFF.TOOLS]TIFFDUMP
      +$ TIFFINFO  :==$DISK:[TIFF.TOOLS]TIFFINFO
      +$ TIFFMEDIAN:==$DISK:[TIFF.TOOLS]TIFFMEDIAN
      +$ TIFFSPLIT :==$DISK:[TIFF.TOOLS]TIFFSPLIT
      +$ YCBCR     :==$DISK:[TIFF.TOOLS]YCBCR
      +
      +
    + +You will want to add these lines to your LOGIN.COM +file, after changing +the name of the directory that you have used on your machine. + +

    +This release has been tested on OpenVMS/VAX 5.5-2, using VAX C 3.2. +A previous release was tested under OpenVMS/AXP ?.? using DEC C ?.?, it is +believed that this release as well works on AXP. +The code contains some GNU C specific things. This does *not* imply, +however, that the VAX/GCC configuration has been tested, *it has not*. + +

    +The command procedures (MAKEVMS.COM) for building the +library and tools, +is believed to choose the correct options for the VAX and AXP cases +automatically. + +

    +On the AXP, IEEE floating point is used by default. If you want VAX +floating point, remove the /FLOAT=IEEE_FLOAT qualifier, and change +HAVE_IEEEFP=1 to HAVE_IEEEFP=0 in the MAKEVMS.COM +files in both the libtiff and tools directories. + + +

    Compiling your own program on a VMS system:

    + +When compiling a source file in which you +"#include ", use the +following command +
    +    $ CC/INCLUDE=DISK:[TIFF.LIBTIFF]
    +
    +This ensures that the header file is found. +On the AXP, also add /FLOAT=IEEE_FLOAT +(if used when building the library). + + +

    Linking your own program to the TIFF library on a VMS system:

    + +You can link to the library in two ways: Either using the shareable +library, or using the object library. +On the VAX these possibilities are: + +
      +
    1. Using the shareable TIFF library. +
      +$ LINK MY_PROGRAM,DISK:[TIFF.LIBTIFF]TIFF/OPTIONS,SYS$INPUT:/OPTIONS
      +    SYS$SHARE:VAXCRTL/SHAREABLE
      +
      +
    2. Using the TIFF object library. +
      +$ LINK MY_PROGRAM, -
      +    DISK:[TIFF.LIBTIFF]TIFF/LIBRARY/INCLUDE=(TIF_FAX3SM,TIF_CODEC), -
      +    SYS$INPUT:/OPTIONS
      +    SYS$SHARE:VAXCRTL/SHAREABLE
      +
      +
    + +On AXP (and possibly also using DEC C on VAX) the corresponding commands are +
      +
    1. Using the shareable TIFF library. +
      +$ LINK MY_PROGRAM,DISK:[TIFF.LIBTIFF]TIFF/OPTIONS
      +
      +
    2. Using the TIFF object library. +
      +$ LINK MY_PROGRAM,DISK:[TIFF.LIBTIFF]TIFF/LIBRARY
      +
      +
    + +Method 1 uses the shortest link time and smallest .EXE +files, but it +requires that TIFFSHR is defined as above at link time and +at run time. +Using the compilation procedure above, the tools are linked in this way. + +

    +Method 2 gives somewhat longer link time and larger .EXE +files, but does +not require TIFFSHR to be defined. This method is recommended if you +want to run your program on another machine, and for some reason don't +want to have the library on that machine. If you plan to have more than +one program (including the tools) on the machine, it is recommended that +you copy the library to the other machine and use method 1. + + + +


    Building the Software on an Acorn RISC OS system

    + +The directory contrib/acorn contains support for compiling the library +under Acorn C/C++ under Acorn's RISC OS 3.10 or above. Subsequent pathnames +will use the Acorn format: The full-stop or period character is a pathname +delimeter, and the slash character is not interpreted; the reverse position +from Unix. Thus "libtiff/tif_acorn.c" becomes "libtiff.tif_acorn/c". + +

    +This support was contributed by Peter Greenham. (peter@enlarion.demon.co.uk). + +

    +

    Installing LibTIFF:

    + +

    +LIBTIFF uses several files which have names longer than the normal RISC OS +maximum of ten characters. This complicates matters. Maybe one day Acorn will +address the problem and implement long filenames properly. Until then this +gets messy, especially as I'm trying to do this with obeyfiles and not have +to include binaries in this distribution. + +

    +First of all, ensure you have Truncate configured on (type *Configure +Truncate On) + +

    +Although it is, of course, preferable to have long filenames, LIBTIFF can be +installed with short filenames, and it will compile and link without +problems. However, getting it there is more problematic. +contrib.acorn.install is an installation obeyfile which will create a normal +Acorn-style library from the source (ie: with c, h and o folders etc.), but +needs the distribution library to have been unpacked into a location which is +capable of supporting long filenames, even if only temporarily. + +

    +My recommendation, until Acorn address this problem properly, is to use Jason +Tribbeck's LongFilenames, or any other +working system that gives you long filenames, like a nearby NFS server for +instance. + +

    +If you are using Longfilenames, even if only temporarily to install LIBTIFF, +unpack the TAR into a RAMDisc which has been longfilenamed (ie: *addlongfs +ram) and then install from there to the hard disk. Unfortunately +Longfilenames seems a bit unhappy about copying a bunch of long-named files +across the same filing system, but is happy going between systems. You'll +need to create a ramdisk of about 2Mb. + +

    +Now you can run the installation script I've supplied (in contrib.acorn), +which will automate the process of installing LIBTIFF as an Acorn-style +library. The syntax is as follows: + +

    +install <source_dir> <dest_dir> + +

    +Install will then create <dest_dir> and put the library in there. For +example, having used LongFilenames on the RAMDisk and unpacked the library +into there, you can then type: + +

    +Obey RAM::RamDisc0.$.contrib.acorn.install RAM::RamDisc0.$ ADFS::4.$.LIBTIFF +

    + +It doesn't matter if the destination location can cope with long filenames or +not. The filenames will be truncated if necessary (*Configure Truncate On if +you get errors) and all will be well. + +

    +

    Compiling LibTIFF:

    + +

    +Once the LibTIFF folder has been created and the files put inside, making the +library should be just a matter of running 'SetVars' to set the +appropriate system variables, then running 'Makefile'. + +

    +OSLib + +

    +OSLib +is a comprehensive API for RISC OS machines, written by Jonathan Coxhead of +Acorn Computers (although OSLib is not an official Acorn product). Using the +OSLib SWI veneers produces code which is more compact and more efficient than +code written using _kernel_swi or _swi. The Acorn port of LibTIFF can take +advantage of this if present. Edit the Makefile and go to the Static +dependencies section. The first entry is: + +

    +# Static dependencies:
    +@.o.tif_acorn:   @.c.tif_acorn
    +	cc $(ccflags) -o @.o.tif_acorn @.c.tif_acorn 
    +
    +

    +Change the cc line to: +

    +	cc $(ccflags) -DINCLUDE_OSLIB -o @.o.tif_acorn @.c.tif_acorn 
    +
    +

    +Remember, however, that OSLib is only recommended for efficiency's +sake. It is not required. + + + +


    Building the Software on Other Systems

    + +This section contains information that might be useful +if you are working on a non-UNIX system that is not directly supported. +All library-related files described below are located in the libtiff +directory. + +

    +The library requires two files that are generated on-the-fly. +The file tif_fax3sm.c has the state tables for the +Group 3 and Group 4 decoders. +This file is generated by the mkg3states program +on a UNIX system; for example, + +

      
      +cd libtiff
      +cc -o mkg3states mkg3states.c
      +rm -f tif_fax3sm.c
      +./mkg3states -c const tif_fax3sm.c
      +
    + +The -c option can be used to control whether or not the +resutling tables are generated with a const declaration. +The -s option can be used to specify a C storage class +for the table declarations. +The -b option can be used to force data values to be +explicitly bracketed with ``{}'' (apparently needed for some +MS-Windows compilers); otherwise the structures are emitted in +as compact a format as possible. +Consult the source code for this program if you have questions. + +

    +The second file required to build the library, version.h, +contains the version +information returned by the TIFFGetVersion routine. +This file is built on most systems using the +mkversion program and the contents of the +VERSION and tiff.alpha files; for example, + +

      +cd libtiff
      +cc -o mkversion mkversion.c
      +rm -f version.h
      +./mkversion -v ../VERSION -a ../dist/tiff.alpha version.h
      +
    + +

    +Otherwise, when building the library on a non-UNIX system be sure to +consult the files tiffcomp.h and tiffconf.h. +The former contains system compatibility definitions while the latter +is provided so that the software configuration can be controlled +on systems that do not support the make facility for building +the software. + +

    +Systems without a 32-bit compiler may not be able to handle some +of the codecs in the library; especially the Group 3 and 4 decoder. +If you encounter problems try disabling support for a particular +codec; consult the documentation. + +

    +Programs in the tools directory are written to assume an ANSI C +compilation environment. +There may be a few POSIX'isms as well. +The code in the port directory is provided to emulate routines +that may be missing on some systems. +On UNIX systems the configure script automatically figures +out which routines are not present on a system and enables the use +of the equivalent emulation routines from the port directory. +It may be necessary to manually do this work on a non-UNIX system. + + +


    Checking out the Software

    + +

    +Assuming you have working versions of tiffgt and tiffsv, +you can just +use them to view any of the sample images available for testing +(see the section on obtaining the test images). +Otherwise, you can do a cursory check of the library with +the tiffcp and tiffcmp programs. For example, + +

      +tiffcp -lzw cramps.tif x.tif
      +tiffcmp cramps.tif x.tif
      +
    + +

    +(tiffcmp should be silent if the files compare correctly). + + + +


    Table of Contents

    + +The following files makup the core library: + +
    +libtiff/tiff.h			TIFF spec definitions
    +libtiff/tiffcomp.h		non-UNIX OS-compatibility definitions
    +libtiff/tiffconf.h		non-UNIX configuration definitions
    +libtiff/tiffio.h		public TIFF library definitions
    +libtiff/tiffiop.h		private TIFF library definitions
    +libtiff/t4.h			CCITT Group 3/4 code tables+definitions
    +libtiff/tif_dir.h		private defs for TIFF directory handling
    +libtiff/tif_fax3.h		CCITT Group 3/4-related definitions
    +libtiff/tif_predict.h		private defs for Predictor tag support
    +libtiff/uvcode.h		LogL/LogLuv codec-specific definitions
    +libtiff/version.h		version string (generated by Makefile)
    +
    +libtiff/tif_acorn.c		Acorn-related OS support
    +libtiff/tif_apple.c		Apple-related OS support
    +libtiff/tif_atari.c		Atari-related OS support
    +libtiff/tif_aux.c		auxilary directory-related functions
    +libtiff/tif_close.c		close an open TIFF file
    +libtiff/tif_codec.c		configuration table of builtin codecs
    +libtiff/tif_compress.c		compression scheme support
    +libtiff/tif_dir.c		directory tag interface code
    +libtiff/tif_dirinfo.c		directory known tag support code
    +libtiff/tif_dirread.c		directory reading code
    +libtiff/tif_dirwrite.c		directory writing code
    +libtiff/tif_dumpmode.c		"no" compression codec
    +libtiff/tif_error.c		library error handler
    +libtiff/tif_fax3.c		CCITT Group 3 and 4 codec
    +libtiff/tif_fax3sm.c		G3/G4 state tables (generated by mkg3states)
    +libtiff/tif_flush.c		i/o and directory state flushing
    +libtiff/tif_getimage.c		TIFFRGBAImage support
    +libtiff/tif_jpeg.c		JPEG codec (interface to the IJG distribution)
    +libtiff/tif_luv.c		SGI LogL/LogLuv codec
    +libtiff/tif_lzw.c		LZW codec
    +libtiff/tif_msdos.c		MSDOS-related OS support
    +libtiff/tif_next.c		NeXT 2-bit scheme codec (decoding only)
    +libtiff/tif_open.c		open and simply query code
    +libtiff/tif_packbits.c		Packbits codec
    +libtiff/tif_pixarlog.c		Pixar codec
    +libtiff/tif_predict.c		Predictor tag support
    +libtiff/tif_print.c		directory printing support
    +libtiff/tif_read.c		image data reading support
    +libtiff/tif_strip.c		some strip-related code
    +libtiff/tif_swab.c		byte and bit swapping support
    +libtiff/tif_thunder.c		Thunderscan codec (decoding only)
    +libtiff/tif_tile.c		some tile-related code
    +libtiff/tif_unix.c		UNIX-related OS support
    +libtiff/tif_version.c		library version support
    +libtiff/tif_vms.c		VMS-related OS support
    +libtiff/tif_warning.c		library warning handler
    +libtiff/tif_win3.c		Windows-3.1-related OS support
    +libtiff/tif_win32.c		Win32 (95/98/NT) related OS support
    +libtiff/tif_write.c		image data writing support
    +libtiff/tif_zip.c		Deflate codec
    +
    +libtiff/mkg3states.c		program to generate G3/G4 decoder state tables
    +libtiff/mkspans.c		program to generate black-white span tables
    +libtiff/mkversion.c		program to generate libtiff/version.h.
    +
    + +

    +


    + +Last updated: $Date: 2000/06/24 19:10:16 $ + + + diff --git a/html/contrib.html b/html/contrib.html new file mode 100755 index 0000000..070cb8b --- /dev/null +++ b/html/contrib.html @@ -0,0 +1,158 @@ + + + +Contributed TIFF Software + + + + + +

    + +Contributed TIFF Software +

    + + +

    +The contrib directory has contributed software that +uses the TIFF library or which is associated with the library +(typically glue and guidance for ports to non-UNIX platforms, or tools that +aren't directly TIFF related). + +
    + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +contrib/vms + +scripts and files from Karsten Spang for building + the library and tools under VMS +
    +contrib/dbs + +various tools from Dan & Chris Sears, including a simple X-based viewer +
    +contrib/ras + +two programs by Patrick Naughton for converting + between Sun rasterfile format and TIFF (these + require libpixrect.a, as opposed to the one in + tools that doesn't) +
    +contrib/mac-mpw + +scripts and files from Niles Ritter for building + the library and tools under Macintosh/MPW C. +
    +contrib/acorn + +scripts and files from Peter Greenham for building + the library and tools on an Acorn RISC OS system. +
    +contrib/win32 + +scripts and files from Scott Wagner for building + the library under Windows NT and Windows 95. +
    +contrib/dosdjgpp + +scripts and files from Alexander Lehmann for building + the library under MSDOS with the DJGPP v2 compiler. +
    +contrib/tags + +scripts and files from Niles Ritter for adding private + tag support at runtime, without changing libtiff. +
    +contrib/mfs + +code from Mike Johnson to read+write images in memory +without modifying the library +
    +contrib/pds + +various routines from Conrad Poelman; a TIFF image iterator and + code to support ``private sub-directories'' +
    +contrib/iptcutil + + +A utility by Bill Radcliffe to +convert an extracted IPTC Newsphoto caption from a binary blob to +ASCII text, and vice versa. IPTC binary blobs can be extracted from +images via the ImageMagick convert(1) +utility. + + +
    + +

    +Questions regarding these packages are usually best directed toward +their authors. + +

    +


    + +Last updated: $Date: 2000/06/24 19:10:16 $ + + + diff --git a/html/document.html b/html/document.html new file mode 100755 index 0000000..a232a47 --- /dev/null +++ b/html/document.html @@ -0,0 +1,50 @@ + + + +TIFF Documentation + + + + +

    + +TIFF Documentation +

    + +

    +A copy of the 6.0 specification is available by public ftp at + +

    + +This is a PostScript version of the final 6.0 specification compressed +with the standard UNIX compress(1) program. +An uncompressed PostScript file is also available as TIFF6.ps in +the same directory. + +
    + +

    +Adobe provides the 6.0 spec online in +Acrobat format (PDF); this can be found at + +

    + +TIFF Technical Notes can be retrieved from + + + +

    +


    + +
    +Last updated: $Date: 2000/06/24 19:10:16 $ +
    + + + diff --git a/html/images.html b/html/images.html new file mode 100755 index 0000000..93998a4 --- /dev/null +++ b/html/images.html @@ -0,0 +1,40 @@ + + + +TIFF Test Images + + + + +

    + +TIFF Test Images +

    + +

    +Test images are available for most formats supported by the library. +Most of the images included in the test kit are also part of this +documentation (albeit in TIFF rather than GIF or JFIF). +The images are kept in a separate archive that should be located in +the same directory as this software. + +
    + +

    +The latest archive of test images is located at +ftp://ftp.onshore.com/pub/libtiff/v3.4pics.tar.Z + +

    +There are two other good sources for TIFF test images: +the contributed software contrib/dbs includes several +programs that generate test images suitable for debugging, and +the tiffcp program can be used to generate a variety +of images with different storage characteristics. + +

    +


    + +Last updated: $Date: 2000/06/24 19:10:16 $ + + + diff --git a/html/images/back.gif b/html/images/back.gif new file mode 100755 index 0000000000000000000000000000000000000000..11d0c35f4671f6086d992776c7521efef880e914 GIT binary patch literal 1000 zcmW-gKWN_t5XGNTq-cg9Ar)LgJSnMm(7^~n2LtBPLMf#uf;dDfV&p`m?p24{>frr~ zj#5jgaPU*9dUG`BP%BCY|D16tMMZQGTts+&^S$x7d+*@$Zf*VXhnF|zFo)l;R{|*D zKmY|az_BX=6}TV-C1?T1QBkPE6`?3aD>&|pLmlo2M>*QTQB(pN@IVAA&;gE4QqY1I zqELk{aI}|(HoOsyYIK9+O+qN)L=Z(Z!M#IGU@LiP$p$s=4DY6KAgm0ih7bV{dodS`T2XLqs_Okpb1nZYb( zGszsnGUQ^2z(9KdJ1`t@4P+n`p$c6X!Vi zYS4obtY8N@CP0c>^kNjN*hP-9kft`h8O>^TlVer}|G{cd9R!Bip*__7dmpg(3)ue+ z{`%?P<&PIWfBm*QCRcvQ_jk_D-re{7^Y*1LpE$5IdH%T<-kiQMyY%RPYggxYE=-Tt zV;7%2x^lkeUpuY0-@1Qh@!;j%bCZqx7M34)dH2SJUv~~~UpzCre*NaL6DN*MCi`aY z+V|G&fhqGaP`COGkWCYXVa~7tKVMnqX(W`jHzDUmFbH=%iJrQ z1LZ>t>ys`0;;DyTI`ZK5rN3{kZ~ne^_SDw3(?5Rt!L|36Hm>f@T>tabcaN-07FRdF R{^R?Pp8n+BUk)u`<$t1E;KBd^ literal 0 HcmV?d00001 diff --git a/html/images/bali.jpg b/html/images/bali.jpg new file mode 100755 index 0000000000000000000000000000000000000000..1f5c146dd5ed78b6f0f227773214b78aecd57c81 GIT binary patch literal 26152 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 MpU}Qe9|!pSAJtj5%m4rY literal 0 HcmV?d00001 diff --git a/html/images/cover.jpg b/html/images/cover.jpg new file mode 100755 index 0000000000000000000000000000000000000000..8698cfb064736d498501de801fcd727b8952bd3c GIT binary patch literal 20189 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 literal 0 HcmV?d00001 diff --git a/html/images/dave.gif b/html/images/dave.gif new file mode 100755 index 0000000000000000000000000000000000000000..c36d447772a630e171de8e8fad5e7ce2cc1cf98e GIT binary patch literal 8220 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 HK=1zmtoJ7? literal 0 HcmV?d00001 diff --git a/html/images/info.gif b/html/images/info.gif new file mode 100755 index 0000000000000000000000000000000000000000..783d63153ec9268f7e17f3887a844c2a8741e3ce GIT binary patch literal 131 zcmZ?wbhEHbRA5kG_{hMJl$4Z^knsQie+GtUia%Kx8Gt|sM1bTOnL=9nSDt>$zj%&F zZ+E`$&d0nJj~sf{IOnFX>g(4$lFfWt?d~d{b^7T#FEq2Z&FGFqlI!W hi^EyjTy^5q9{u&HSRnS|fz|5kZ?^q@tHHov4FK7YGsge` literal 0 HcmV?d00001 diff --git a/html/images/jello.jpg b/html/images/jello.jpg new file mode 100755 index 0000000000000000000000000000000000000000..df99e663ef3b35d30b6031435bb3e3d6d57faeab GIT binary patch literal 13744 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 literal 0 HcmV?d00001 diff --git a/html/images/jim.gif b/html/images/jim.gif new file mode 100755 index 0000000000000000000000000000000000000000..9a18a031fac72973e00b7fee7055774cbc6a43f9 GIT binary patch literal 14493 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≥o<2q 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 literal 0 HcmV?d00001 diff --git a/html/images/note.gif b/html/images/note.gif new file mode 100755 index 0000000000000000000000000000000000000000..7177d68a19ff69dadbbc166fe9386fdff45bcba4 GIT binary patch literal 264 zcmZ?wbh9u|RA5kG_{`4$1Px%^0Hzv%yao_BaNxjyp!k1=|6mG816e?z0~7@6RA69c z*(-3;b2Y2P?X%hj3LGU%#OEbPGM&?0HAPI?FIHNU$EI7SR^tZCh6lDalJnP{c%tfj zYU;+Dhqo43+$}k^sVh!<)yD3_4u_+kJ(tRQYGGX{n6Z1R^~WzaRIPXx*%w87O4c#g zi#Ihf)b)0VS9LKk_w^f2oH1qAG{df$ZF3rD%yV7H;j(yTyQSokmE3bG*LAIyTfZvb ynPYR+R%wYnAx)@c*dw)d`I6$C1UaA#rTRf8E zDkT`!FHN~DBH1n&K-QuKYyljvxlno9fFh*r!ibWZwU?Rv#8OdNRtXFW2dRpr%TNr>?whe+*$}9L=Iz_BF#F~u`&X=9$9mT~mW5ZL zKtGKdyJcGfvWW_N`(EaY_i~>Zd@L|24^=01hw+-!z6^sq3!1`d24^fF|(d z1H2ZSB%-Xc8t0v-{yqxovd=m@=%b-Sxo9@8~{|IHm40|iAreP)uB7_m+ zcVU+SLuqKd9OF4Bkw2=Sls49lY*Wc5>x6R3EGxCLF)z0)^HDDGaltF=nPW&~k;Nn_ z2rLCH^w25+$HF)t5v?>T5>PM;W$dh{YA{Pn#L?1MAM^qMxQNsVNtm3p^w?x~(sT~R z^n-H>Q1cv_&Kgo($<-}}G?6k_Y=j9Hme4IpNDfH=(IpZ=ll0$gL?Z%9VawC_J7q^M zIVER5tu`S3|41E(q}nw%`R6Ku9S`K7mrk@R`@}TLEx3Ttx^ z?!5Qz`|rR9FZ}St7jOLUoJE%WT8p8D-4(BGCej`}JM)?|bh&bl+o(xzm}T3u*8NM?1*bLk6SK23^3cMX-xT2t)V+>oms$L|TN8 zx>KGa4QYlz5>Jt&)`9kDYC}HM6qR~Nr8|LX0bc@B5+g>425|sQWkOIC!^MF&xyeEm z>XiP(phdw6dXY{hd{?Zv=koO=tXON5rPlG)d7sLNMn?%i1b2L3iPAM2Q<=>vcS?I9oQ;BdaP0qB#0P2 z3Cd8Nt6|?7r3!{f9z~*Z02PuXC$HrwTWyk)5d_qsHl?qAbu5n>f{%VchDvW?vP_FW zzyc5u!~+yFVGlc_y>RKrY0@hJzpQ2&t*NU07@z_ADuAvApeX~ai#zLT*Z?e%laA&0EaiEL*J+S;w0tF(~A>3!({wkBUN=FLS zX{&Xn^ASTBqbzsbgy<|GHrsml6itIg+H&hyTZmP%=rw|ROK<|uUBYi-mB2ijpb)uH zf^Ty>Tzml#xM!SoxgII3U%mE;?sC_0-%T(lL_6N7Wsa(6VT@3CXkWt#SQ&uBTU>H6 zfeJGKzXQJTewp!*?3!q~+eq3vwjo#knz$0%H3@=O783&=iB9(&3;z%p8HJx=Qit(&xSVhYJ$2v z|Apo+@$;TsJ?rS3E@mRod#V0_$`(x5l&K^gDqx}~RMg2Pe*5$6jbRXKkd{=ZONBM8 zRV}}b9;2zME?-hx8teZ}V+Vg#OrvKCi1z7v*7fTP6@H4oX1AJqvuXB7>$g&9$Mo7q zNHMe1M_5sdG}w_oDn|2=X`vdsc~lTL8DbT8PcyW`7wDKjMK9wMYRJ@B-)Z!NT#BfSs`X4nChaPOS zfneasy*M&CS&K9BP*`^yBo}!uBr%MFn>PhZasZONQzZVK|0q2@?>WefgrA2h080<0 z=##GWLns;Xh!KT)L>Hu>11VrkQk0?xu9!tN!I4dDVxYZ2lpEp*XG9<$xXe=kkL=Va zb`G#c1>W9+8XN1jkQYCTbbRTW1pgHD%uEV*BaV=>HUaz0errzVJ*xM5Hc@h+Z z8b~1rbZYFM*XGzw4|-*FeBP=$e!_1bZ{&}W_@pF$@S)Fo?bIPFRlz=0uA+UbETQ{Y z>5BND(tYiNpAP3Azxv6K2JOg*-p;4fgQ94F2mZC|i($v6@{^Bo_&0o75+qgF@<+D^ zCzz5k8RJf@mv2ub01twI2CyIZSA7T6ET1%h`nGWwh%F!Qn>6f<=R2Pp7Vg~sv# z=0qj@1bB|fE9<08iuioal0YdCOY^Y+{%ayfdYFXw(s5k~PVVkZj_3j;P!f*GvQ;mj^ zk#Tpr)@=6EKGoAxsism&MQRJ#JsXu#%2Sa)Wm7}&SF!dzqh@X7<20l7ejtYeJ@aFB zgb5!-RaHfD7_kg@RX8vPJwQ4B0YI}1nZRL(Kn?=N5$ClzK!XZK>600D4JoDz^;LF5 zunS4^laP=NFNS5xa5l7)0XX>qkR=xDRSYkXImDF(HxeVt&{vjVmw8E-*Pxef#RGRa zI57g4s^FJCX_$ez1TYo^hm)8tV3x$CWq{^^n^RS^5n*`oJmleFklC45nFK4KkPG3N zsqj`Bkd`{8Lb>1>7MV6AM4GT!n6mI&Wf_}383m}x4l~yxD3q9Y`I~q-a<(}+R#u$D zNo7g)dVS!5wPOhNhyl*Y2hl+`74Q}|qBKi^H)`PoQ&3>VX=TT`SyNL-Q;aOC}ly5}=mT;Ao5TN@r zpbgOkeC1cnBbs@T2FvCIr(k47He>f$IyWE#TZS3$CkxIQVU?vC8zyk?rC%8a8r+GL zgOeR&F`Y;=niwWH-Ox0>;dUoxp?csA`9-7i$v8Bpp&R-+<4FNqmYU5mn-+-{6ULS) zdSM`8qb;HlRe7KQW?>ysqx^NFV(??k90gyUNww8}2 z5R^p%bj3NCrKOaRmBnTjoQa@fdJ%%-1|?9IVH#j#x*9EZrbB9<8S1EP8aYRbW4a}$ z#37=d0XHCLV*bORl-Kncgc<;HhY=Bxr8JifpV|h~P?me}lB=m=Y#>%?BM6o!YA95m8I~-O!dhB?$F*{XBtFRwT%L{JchPVn}TE8wq8_UyfvG^QJJ%8x4o6OrS-AA(4WR36XsA_CRDe+g7n2r}At{n=;c1$tlDF%pNdr zgTDfC83K8F9C>6ib_l|8j}jqfSjL15Dy>BX8xU5*F(PHRb{^1nA8aB#7%%>U!i3V2 z$Q;9uUDPjVw1yla$`|-`ab$aDJWVzj$fOA1-h1*diIV3~lGyv)G9XYfu?PNwnq%q9YPSTVg|KWH?R3MdCag}F)ZXzM3 zta)#Akg2?+#=%3a)j}gja{jhf?&r>BH$rurdc7P9wNN7{gmz+E9y7EEJH&J1QA0q2 zB;c_mJoHfQVF8C{F4J62E@;hB=Xiz?AaF8ylou{qmxHtzM_nh*;2cMP97=W50WPP{ z@Nv&-XLBDg4hCn*qX)?_C(Epi4Uvq3NK(u~0z*5ra~eW;@^W|^(*90xa(Eg7CIiAH zM_q`KcP6_xMHbzOv7~ueG$9%nfANC4#_&ORmpLsU9eBew$pACSfxa!29Jc^nVQmA? zx>n#CLet52MPg6|9oIlo3rq5MKF1^;fY4x=h5W)El2}e~V${A;*#BY0Sm)FhEz03c z)uH&!d3eVdc*(@kx>lTznyzt*CuZS(!PgB#SNYE=*8viae;Y-(TK?( zvH%)`%F#_J7e^_>-N~I)hE8~fU`*MPoq?`W#>*|ml4Rat{`|!u&3o+)gX;a=C}_vz z?A^>wdb`k$`JJ`ssNd+w3;K=OQ5N7$R^Z{d-vEB#k&EEHVBk*HWK2uo2maqs2H^?5 z-xl8B0&d~{EshH=;GiA3ORM1u9^eY@;h+t-uMjgc)8a1v;xHcLGCt$#z&22L-wI^N z*R99FGBEgtX08p;Qe4>H~vrdd2eG-MM(*pezUI8-e!jXuz?6H*4(wIaVX{Zq z#6%XOA-Cus?ja$zqVV_L+!&9F5x-A@Js_>99|GX#KQu9GQYM_I0A}xv%*^&k5>F5n zCS8IdU_X0Gt%BZU?S39h6h-FWt>#ycC)AjV3iFNuLnNopD*_{n5N+oPcuJ5z`w7GI zwE%S~5HN^njJc99T|Ob}A^No>{GNx}rN7d=f=M)gFbRP6&d(ibUoN^>higy!*3W{L zG)}{!A1@zKC5TB+vi!xgNWy~li~gh@pijin0gJ%F9em6kfdJbW^4jOZ{?#8&dWo3K za3hYn|BIO-5K!b~)iP=4=G}iV6vt8HFp43F0=v8`Cfm4bvkjf$yI^4*=eJ=6ISynJ ziEuEJ2&nQYZ6Xy-rc;@%M!i&RQ=!O0&1ZC4y*^*DY^_+|SeC*4$Z7*artw<;-8!<6`8?Och>q1M21e&zI^)FC9L#7f&+x{+5tGokKns_5&I!j zI15@vcNYCAl=u&0K8X|ASz)LTL4k@O7otpwttGp449mSUhpk-6k_Bxt{I~PsQGF*9 vb~9CzlEVTBlHxm6b7{wmKqVSgS=DRDPA#hv6^oQ=yR6xK;p2L?QUm}ynrck% literal 0 HcmV?d00001 diff --git a/html/images/quad.jpg b/html/images/quad.jpg new file mode 100755 index 0000000000000000000000000000000000000000..4b7df170beb5da5b9be8b5d00efe19c9d9f4435c GIT binary patch literal 23904 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 literal 0 HcmV?d00001 diff --git a/html/images/ring.gif b/html/images/ring.gif new file mode 100755 index 0000000000000000000000000000000000000000..2a614f4929e4cfbc14e656f576e320e1ee601e45 GIT binary patch literal 4275 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 RUk}#s0~@9TMlvwK^#83(8SVf8 literal 0 HcmV?d00001 diff --git a/html/images/smallliz.jpg b/html/images/smallliz.jpg new file mode 100755 index 0000000000000000000000000000000000000000..8eb827f8ad56ff57e9324c5e2fcd07947aca0c49 GIT binary patch literal 16463 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 V9|w>FnA)HW1c~_VCk_EP{x9Pz_gw%0 literal 0 HcmV?d00001 diff --git a/html/images/warning.gif b/html/images/warning.gif new file mode 100755 index 0000000000000000000000000000000000000000..f51eb4b1a7b7f392b183e183ec2d93aab7d3090b GIT binary patch literal 287 zcmV+)0pR{eNk%w1VJHA70P+9;=jZ2cZf?H5zWe|H{{R300000000000A^8LW00062 zEC2ui04M+`000Bz2)f+N_DFSAmXsV{#*oJWIwOJ|OFii%yF#J7% z?sfYSfViQp$QksMJQ>pGyg`|rs_Ys=7BN zq^_xzt7fP!iL*hxLbX0Icy*7uWw0Hxn;d(N$#=tpw8qOJ%GF%XpIE=t$i1gmKjY-( l=I2P+= + + +TIFF Software + + + + +

    + +TIFF Software +
    +

    +Home Page:
    + http://www.libtiff.org
    +FAQ Page: forthcoming
    +Latest Release: v3.5.5
    +Latest Software: v3.5.5
    +Master FTP Site: ftp.onshore.com , directory pub/libtiff (Active mode FTP only!)
    +HTTP Download: http://www.libtiff.org/tiff-v3.5.5.tar.gz, http://www.libtiff.org/tiff-v3.5.5.zip
    +LZW Compression Kit: libtiff-lzw-compression-kit
    +Mailing List: tiff@olympiakos.com
    +Mailing List Subscription: tiff-request@olympiakos.com ("subscribe tiff" in body of message).
    +Mailing List Archive: http://www.remotesensing.org/lists/libtiff_archive/maillist.html
    +Anonymous CVS:
    +        export CVSROOT=:pserver:anonymous@remotesensing.org:/cvsroot
    +        cvs login # use password "anonymous" 
    +        cvs checkout libtiff
    +        cvs checkout libtiff-lzw-compression-kit
    +
    +
    + +

    +This software provides support for the Tag Image File Format (TIFF), +a widely used format for storing image data. The latest version of +the TIFF specification is available on-line +in several different formats, +as are a number of Technical Notes (TTN's). + +

    +Included in this software distribution is a library, libtiff, for +reading and writing TIFF, a small collection of tools for doing simple +manipulations of TIFF images on UNIX systems, +and documentation on the library and +tools. A small assortment of TIFF-related software for UNIX +that has been contributed by others is also included. + +

    +The library, along with associated tool programs, should handle most of +your needs for reading and writing TIFF images on 32- and 64-bit +machines. This software can also be used on older 16-bit systems +though it may require some effort and you may need to leave out some of +the compression support. + +

    The software was orginally authored and maintained by Sam Leffler. +While he keeps a fatherly eye on the mailing list, he is no longer +responsible for day to day maintenance. + +

    Questions should be sent to +the TIFF mailing list: tiff@olympiakos.com. + +

    The persons responsible for putting up this site and putting together versions >= 3.5.1 are +Frank Warmerdam and Mike Welles. + +

    + +The following sections are included in this documentation: + +

    + +

    +


    + +$Id: index.html,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ + + + + + + + + + + diff --git a/html/internals.html b/html/internals.html new file mode 100755 index 0000000..39af89a --- /dev/null +++ b/html/internals.html @@ -0,0 +1,654 @@ + + + +Modifying The TIFF Library + + + + +

    + +Modifying The TIFF Library +

    + + +

    +This chapter provides information about the internal structure of +the library, how to control the configuration when building it, and +how to add new support to the library. +The following sections are found in this chapter: + +

    + + +


    Library Configuration

    + +Information on compiling the library is given +elsewhere in this documentation. +This section describes the low-level mechanisms used to control +the optional parts of the library that are configured at build +time. Control is based on +a collection of C defines that are specified either on the compiler +command line or in a configuration file such as port.h +(as generated by the configure script for UNIX systems) +or tiffconf.h. + +

    +Configuration defines are split into three areas: +

      +
    • those that control which compression schemes are + configured as part of the builtin codecs, +
    • those that control support for groups of tags that + are considered optional, and +
    • those that control operating system or machine-specific support. +
    + +

    +If the define COMPRESSION_SUPPORT is not defined +then a default set of compression schemes is automatically +configured: +

      +
    • CCITT Group 3 and 4 algorithms (compression codes 2, 3, 4, and 32771), +
    • the Macintosh PackBits algorithm (compression 32773), +
    • a Lempel-Ziv & Welch (LZW) algorithm (compression 5), +
    • a 4-bit run-length encoding scheme from ThunderScan (compression 32809), +
    • a 2-bit encoding scheme used by NeXT (compression 32766), and +
    • two experimental schemes intended for images with high dynamic range +(compression 34676 and 34677). +
    + +To override this behaviour define COMPRESSION_SUPPORT +and then one or more additional defines to enable configuration of +the appropriate codecs (see the table below); e.g. + +
      +#define	COMPRESSION_SUPPORT
      +#define	CCITT_SUPPORT
      +#define	PACKBITS_SUPPORT
      +
    + +Several other compression schemes are configured separately from +the default set because they depend on ancillary software +packages that are not distributed with libtiff. + +

    +Support for JPEG compression is controlled by JPEG_SUPPORT. +The JPEG codec that comes with libtiff is designed for +use with release 5 or later of the Independent JPEG Group's freely +available software distribution. +This software can be retrieved from the directory +ftp.uu.net:/graphics/jpeg/. + + +

    +NOTE: +Enabling JPEG support automatically enables support for +the TIFF 6.0 colorimetry and YCbCr-related tags. + +

    +Experimental support for the deflate algorithm is controlled by +DEFLATE_SUPPORT. +The deflate codec that comes with libtiff is designed +for use with version 0.99 or later of the freely available +libz library written by Jean-loup Gailly and Mark Adler. +The data format used by this library is described +in the files +zlib-3.1.doc, +and +deflate-1.1.doc, +available in the directory +ftp.uu.net:/pub/archiving/zip/doc. +The library can be retried from the directory +ftp.uu.net:/pub/archiving/zip/zlib/ +(or try quest.jpl.nasa.gov:/beta/zlib/). + +

    +NOTE: +The deflate algorithm is experimental. Do not expect +to exchange files using this compression scheme; +it is included only because the similar, and more common, +LZW algorithm is claimed to be governed by licensing restrictions. + + +

    +By default tiffconf.h defines +COLORIMETRY_SUPPORT, +YCBCR_SUPPORT, +and +CMYK_SUPPORT. + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    DefineDescription
    CCITT_SUPPORTCCITT Group 3 and 4 algorithms (compression codes 2, 3, 4, + and 32771)
    PACKBITS_SUPPORTMacintosh PackBits algorithm (compression 32773)
    LZW_SUPPORTLempel-Ziv & Welch (LZW) algorithm (compression 5)
    THUNDER_SUPPORT4-bit +run-length encoding scheme from ThunderScan (compression 32809)
    NEXT_SUPPORT2-bit encoding scheme used by NeXT (compression 32766)
    OJPEG_SUPPORTobsolete JPEG scheme defined in the 6.0 spec (compression 6)
    JPEG_SUPPORTcurrent JPEG scheme defined in TTN2 (compression 7)
    ZIP_SUPPORTexperimental Deflate scheme (compression 32946)
    PIXARLOG_SUPPORTPixar's compression scheme for high-resolution color images (compression 32909)
    SGILOG_SUPPORTSGI's compression scheme for high-resolution color images (compression 34676 and 34677)
    COLORIMETRY_SUPPORTsupport for the TIFF 6.0 colorimetry tags
    YCBCR_SUPPORTsupport for the TIFF 6.0 YCbCr-related tags
    CMYK_SUPPORTsupport for the TIFF 6.0 CMYK-related tags
    ICC_SUPPORTsupport for the ICC Profile tag; see +The ICC Profile Format Specification, +Annex B.3 "Embedding ICC Profiles in TIFF Files"; +available at +http://www.color.org +
    + + +


    General Portability Comments

    + +This software is developed on Silicon Graphics UNIX +systems (big-endian, MIPS CPU, 32-bit ints, +IEEE floating point). +The configure shell script generates the appropriate +include files and make files for UNIX systems. +Makefiles exist for non-UNIX platforms that the +code runs on -- this work has mostly been done by other people. + +

    +In general, the code is guaranteed to work only on SGI machines. +In practice it is highly portable to any 32-bit or 64-bit system and much +work has been done to insure portability to 16-bit systems. +If you encounter portability problems please return fixes so +that future distributions can be improved. + +

    +The software is written to assume an ANSI C compilation environment. +If your compiler does not support ANSI function prototypes, const, +and <stdarg.h> then you will have to make modifications to the +software. In the past I have tried to support compilers without const +and systems without <stdarg.h>, but I am +no longer interested in these +antiquated environments. With the general availability of +the freely available GCC compiler, I +see no reason to incorporate modifications to the software for these +purposes. + +

    +An effort has been made to isolate as many of the +operating system-dependencies +as possible in two files: tiffcomp.h and +libtiff/tif_<os>.c. The latter file contains +operating system-specific routines to do I/O and I/O-related operations. +The UNIX (tif_unix.c), +Macintosh (tif_apple.c), +and VMS (tif_vms.c) +code has had the most use; +the MS/DOS support (tif_msdos.c) assumes +some level of UNIX system call emulation (i.e. +open, +read, +write, +fstat, +malloc, +free). + +

    +Native CPU byte order is determined on the fly by +the library and does not need to be specified. +The HOST_FILLORDER and HOST_BIGENDIAN +definitions are not currently used, but may be employed by +codecs for optimization purposes. + +

    +The following defines control general portability: + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    BSDTYPESDefine this if your system does NOT define the + usual BSD typedefs: u_char, + u_short, u_int, u_long.
    HAVE_IEEEFPDefine this as 0 or 1 according to the floating point + format suported by the machine. If your machine does + not support IEEE floating point then you will need to + add support to tif_machdep.c to convert between the + native format and IEEE format.
    HAVE_MMAPDefine this if there is mmap-style support for +mapping files into memory (used only to read data).
    HOST_FILLORDERDefine the native CPU bit order: one of FILLORDER_MSB2LSB + or FILLORDER_LSB2MSB
    HOST_BIGENDIANDefine the native CPU byte order: 1 if big-endian (Motorola) + or 0 if little-endian (Intel); this may be used + in codecs to optimize code
    + +

    +On UNIX systems HAVE_MMAP is defined through the running of +the configure script; otherwise support for memory-mapped +files is disabled. +Note that tiffcomp.h defines HAVE_IEEEFP to be +1 (BSDTYPES is not defined). + + +


    Types and Portability

    + +The software makes extensive use of C typedefs to promote portability. +Two sets of typedefs are used, one for communication with clients +of the library and one for internal data structures and parsing of the +TIFF format. There are interactions between these two to be careful +of, but for the most part you should be able to deal with portability +purely by fiddling with the following machine-dependent typedefs: + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    uint88-bit unsigned integertiff.h
    int88-bit signed integertiff.h
    uint1616-bit unsigned integertiff.h
    int1616-bit signed integertiff.h
    uint3232-bit unsigned integertiff.h
    int3232-bit signed integertiff.h
    dblparam_tpromoted type for floatstiffcomp.h
    + +

    +(to clarify dblparam_t, it is the type that float parameters are +promoted to when passed by value in a function call.) + +

    +The following typedefs are used throughout the library and interfaces +to refer to certain objects whose size is dependent on the TIFF image +structure: + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    typedef unsigned int ttag_t; directory tag
    typedef uint16 tdir_t; directory index
    typedef uint16 tsample_t; sample number
    typedef uint32 tstrip_t; strip number
    typedef uint32 ttile_t; tile number
    typedef int32 tsize_t; i/o size in bytes
    typedef void* tdata_t; image data ref
    typedef void* thandle_t; client data handle
    typedef int32 toff_t; file offset (should be off_t)
    typedef unsigned char* tidata_t; internal image data
    + +

    +Note that tstrip_t, ttile_t, and tsize_t +are constrained to be +no more than 32-bit quantities by 32-bit fields they are stored +in in the TIFF image. Likewise tsample_t is limited by the 16-bit +field used to store the SamplesPerPixel tag. tdir_t +constrains +the maximum number of IFDs that may appear in an image and may +be an arbitrary size (without penalty). ttag_t must be either +int, unsigned int, pointer, or double +because the library uses a varargs +interface and ANSI C restricts the type of the parameter before an +ellipsis to be a promoted type. toff_t is defined as +int32 because +TIFF file offsets are (unsigned) 32-bit quantities. A signed +value is used because some interfaces return -1 on error (sigh). +Finally, note that tidata_t is used internally to the library to +manipulate internal data. User-specified data references are +passed as opaque handles and only cast at the lowest layers where +their type is presumed. + + +


    General Comments

    + +The library is designed to hide as much of the details of TIFF from +applications as +possible. In particular, TIFF directories are read in their entirety +into an internal format. Only the tags known by the library are +available to a user and certain tag data may be maintained that a user +does not care about (e.g. transfer function tables). + +


    Adding New Tags

    + +To add support for a new directory tag you have three options. If your +tag is specific to a compression algorithm, see below. If you have a lot +of tags you may want to try using Niles Ritter's runtime tag-extension +scheme in the "contrib/tags" directory, which makes the changes +orthogonal to the main libtiff code. Otherwise use +the following guidelines to add support to the ``core library''. + +
      +
    1. Define the tag in tiff.h. +
    2. Add a field to the directory structure in tif_dir.h + and define a FIELD_* bit (also update the definition of + FIELD_CODEC to reflect your addition). +
    3. Add an entry in the TIFFFieldInfo array defined at the top of + tif_dirinfo.c. + Note that you must keep this array sorted by tag + number and that the widest variant entry for a tag should come + first (e.g. LONG before SHORT). +
    4. Add entries in _TIFFVSetField() and _TIFFVGetField() + for the new tag. +
    5. (optional) If the value associated with the tag is not a scalar value + (e.g. the array for TransferFunction) and requires + special processing, + then add the appropriate code to TIFFReadDirectory() and + TIFFWriteDirectory(). You're best off finding a similar tag and + cribbing code. +
    6. Add support to TIFFPrintDirectory() in tif_print.c + to print the tag's value. +
    + +

    +If you want to maintain portability, beware of making assumptions +about data types. Use the typedefs (uint16, etc. when dealing with +data on disk and t*_t when stuff is in memory) and be careful about +passing items through printf or similar vararg interfaces. + +


    Adding New Builtin Codecs

    + +To add builtin support for a new compression algorithm, you can either +use the "tag-extension" trick to override the handling of the +TIFF Compression tag (see Adding New Tags, above), +or do the following to add support directly to the core library: + +
      +
    1. Define the tag value in tiff.h. +
    2. Edit the file tif_codec.c to add an entry to the + _TIFFBuiltinCODECS array (see how other algorithms are handled). +
    3. Add the appropriate function prototype declaration to + tiffiop.h (close to the bottom). +
    4. Create a file with the compression scheme code, by convention files + are named tif_*.c (except perhaps on some systems where the + tif_ prefix pushes some filenames over 14 chars. +
    5. Edit Makefile.in (and any other Makefiles) + to include the new source file. +
    + +

    +A codec, say foo, can have many different entry points: + +

    +TIFFInitfoo(tif, scheme)/* initialize scheme and setup entry points in tif */
    +fooSetupDecode(tif)	/* called once per IFD after tags has been frozen */
    +fooPreDecode(tif, sample)/* called once per strip/tile, after data is read,
    +			    but before the first row is decoded */
    +fooDecode*(tif, bp, cc, sample)/* decode cc bytes of data into the buffer */
    +    fooDecodeRow(...)	/* called to decode a single scanline */
    +    fooDecodeStrip(...)	/* called to decode an entire strip */
    +    fooDecodeTile(...)	/* called to decode an entire tile */
    +fooSetupEncode(tif)	/* called once per IFD after tags has been frozen */
    +fooPreEncode(tif, sample)/* called once per strip/tile, before the first row in
    +			    a strip/tile is encoded */
    +fooEncode*(tif, bp, cc, sample)/* encode cc bytes of user data (bp) */
    +    fooEncodeRow(...)	/* called to decode a single scanline */
    +    fooEncodeStrip(...)	/* called to decode an entire strip */
    +    fooEncodeTile(...)	/* called to decode an entire tile */
    +fooPostEncode(tif)	/* called once per strip/tile, just before data is written */
    +fooSeek(tif, row)	/* seek forwards row scanlines from the beginning
    +			   of a strip (row will always be >0 and <rows/strip */
    +fooCleanup(tif)		/* called when compression scheme is replaced by user */
    +
    + +

    +Note that the encoding and decoding variants are only needed when +a compression algorithm is dependent on the structure of the data. +For example, Group 3 2D encoding and decoding maintains a reference +scanline. The sample parameter identifies which sample is to be +encoded or decoded if the image is organized with PlanarConfig=2 +(separate planes). This is important for algorithms such as JPEG. +If PlanarConfig=1 (interleaved), then sample will always be 0. + + +


    Adding New Codec-private Tags

    + +To add tags that are meaningful only when a particular compression +algorithm is used follow these steps: + +
      +
    1. Define the tag in tiff.h. +
    2. Allocate storage for the tag values in the private state block of + the codec. +
    3. Insure the state block is created when the codec is initialized. +
    4. At TIFFInitfoo time override the method pointers in the + TIFF structure + for getting, setting and printing tag values. For example, +
      +    sp->vgetparent = tif->tif_vgetfield;
      +    tif->tif_vgetfield = fooVGetField;	/* hook for codec tags */
      +    sp->vsetparent = tif->tif_vsetfield;
      +    tif->tif_vsetfield = fooVSetField;	/* hook for codec tags */
      +    tif->tif_printdir = fooPrintDir;	/* hook for codec tags */
      +
      + (Actually you may decide not to override the + tif_printdir method, but rather just specify it). +
    5. Create a private TIFFFieldInfo array for your tags and + merge them into the core tags at initialization time using + _TIFFMergeFieldInfo; e.g. +
      +    _TIFFMergeFieldInfo(tif, fooFieldInfo, N(fooFieldInfo));
      +
      + (where N is a macro used liberaly throughout the distributed code). +
    6. Fill in the get and set routines. Be sure to call the parent method + for tags that you are not handled directly. Also be sure to set the + FIELD_* bits for tags that are to be written to the file. Note that + you can create ``pseudo-tags'' by defining tags that are processed + exclusively in the get/set routines and never written to file (see + the handling of TIFFTAG_FAXMODE in tif_fax3.c + for an example of this). +
    7. Fill in the print routine, if appropriate. +
    + +Note that space has been allocated in the FIELD_* bit space for +codec-private tags. Define your bits as FIELD_CODEC+<offset> to +keep them away from the core tags. If you need more tags than there +is room for, just increase FIELD_SETLONGS at the top of +tiffiop.h. + + +


    Other Comments

    + +The library handles most I/O buffering. There are two data buffers +when decoding data: a raw data buffer that holds all the data in a +strip, and a user-supplied scanline buffer that compression schemes +place decoded data into. When encoding data the data in the +user-supplied scanline buffer is encoded into the raw data buffer (from +where it is written). Decoding routines should never have to explicitly +read data -- a full strip/tile's worth of raw data is read and scanlines +never cross strip boundaries. Encoding routines must be cognizant of +the raw data buffer size and call TIFFFlushData1() when necessary. +Note that any pending data is automatically flushed when a new strip/tile is +started, so there's no need do that in the tif_postencode routine (if +one exists). Bit order is automatically handled by the library when +a raw strip or tile is filled. If the decoded samples are interpreted +by the decoding routine before they are passed back to the user, then +the decoding logic must handle byte-swapping by overriding the +tif_postdecode +routine (set it to TIFFNoPostDecode) and doing the required work +internally. For an example of doing this look at the horizontal +differencing code in the routines in tif_predict.c. + +

    +The variables tif_rawcc, tif_rawdata, and +tif_rawcp in a TIFF structure +are associated with the raw data buffer. tif_rawcc must be non-zero +for the library to automatically flush data. The variable +tif_scanlinesize is the size a user's scanline buffer should be. The +variable tif_tilesize is the size of a tile for tiled images. This +should not normally be used by compression routines, except where it +relates to the compression algorithm. That is, the cc parameter to the +tif_decode* and tif_encode* +routines should be used in terminating +decompression/compression. This ensures these routines can be used, +for example, to decode/encode entire strips of data. + +

    +In general, if you have a new compression algorithm to add, work from +the code for an existing routine. In particular, +tif_dumpmode.c +has the trivial code for the "nil" compression scheme, +tif_packbits.c is a +simple byte-oriented scheme that has to watch out for buffer +boundaries, and tif_lzw.c has the LZW scheme that has the most +complexity -- it tracks the buffer boundary at a bit level. +Of course, using a private compression scheme (or private tags) limits +the portability of your TIFF files. + +

    +


    + +Last updated: $Date: 2000/06/24 19:10:16 $ + + + + diff --git a/html/intro.html b/html/intro.html new file mode 100755 index 0000000..baa17b1 --- /dev/null +++ b/html/intro.html @@ -0,0 +1,68 @@ + + + +Introduction to the TIFF Documentation + + + + +

    + +Introduction to the TIFF Documentation +

    + + +

    +The following definitions are used throughout this documentation. +They are consistent with the terminology used in the TIFF 6.0 specification. + +

    +
    Sample +
    The unit of information stored in an image; often called a + channel elsewhere. Sample values are numbers, usually unsigned + integers, but possibly in some other format if the SampleFormat + tag is specified in a TIFF +
    Pixel +
    A collection of one or more samples that go together. +
    Row +
    An Nx1 rectangular collection of pixels. +
    Tile +
    An NxM rectangular organization of data (or pixels). +
    Strip +
    A tile whose width is the full image width. +
    Compression +
    A scheme by which pixel or sample data are stored in + an encoded form, specifically with the intent of reducing the + storage cost. +
    Codec +
    Software that implements the decoding and encoding algorithms + of a compression scheme. + + +

    +In order to better understand how TIFF works (and consequently this +software) it is important to recognize the distinction between the +physical organization of image data as it is stored in a TIFF and how +the data is interpreted and manipulated as pixels in an image. TIFF +supports a wide variety of storage and data compression schemes that +can be used to optimize retrieval time and/or minimize storage space. +These on-disk formats are independent of the image characteristics; it +is the responsibility of the TIFF reader to process the on-disk storage +into an in-memory format suitable for an application. Furthermore, it +is the responsibility of the application to properly interpret the +visual characteristics of the image data. TIFF defines a framework for +specifying the on-disk storage format and image characteristics with +few restrictions. This permits significant complexity that can be +daunting. Good applications that handle TIFF work by handling as wide +a range of storage formats as possible, while constraining the +acceptable image characteristics to those that make sense for the +application. + + +

    +


    + +Last updated: $Date: 2000/06/24 19:10:16 $ + + + diff --git a/html/libtiff.html b/html/libtiff.html new file mode 100755 index 0000000..b5154f0 --- /dev/null +++ b/html/libtiff.html @@ -0,0 +1,728 @@ + + + +Using The TIFF Library + + + + +

    + +Using The TIFF Library +

    + +

    +libtiff is a set of C functions (a library) that support +the manipulation of TIFF image files. +The library requires an ANSI C compilation environment for building +and presumes an ANSI C environment for use. + +

    +libtiff +provides interfaces to image data at several layers of abstraction (and cost). +At the highest level image data can be read into an 8-bit/sample, +ABGR pixel raster format without regard for the underlying data organization, +colorspace, or compression scheme. Below this high-level interface +the library provides scanline-, strip-, and tile-oriented interfaces that +return data decompressed but otherwise untransformed. These interfaces +require that the application first identify the organization of stored +data and select either a strip-based or tile-based API for manipulating +data. At the lowest level the library +provides access to the raw uncompressed strips or tiles, +returning the data exactly as it appears in the file. + +

    +The material presented in this chapter is a basic introduction +to the capabilities of the library; it is not an attempt to describe +everything a developer needs to know about the library or about TIFF. +Detailed information on the interfaces to the library are given in +the +UNIX manual pages that accompany this software. + +

    +The following sections are found in this chapter: + +

    + + +


    How to tell which version you have

    + +The software version can be found by looking at the file named +VERSION +that is located at the top of the source tree; the precise alpha number +is given in the file dist/tiff.alpha. +If you have need to refer to this +specific software, you should identify it as: + +
    +    TIFF <version> <alpha>
    +
    + +where <version> is whatever you get from +"cat VERSION" and <alpha> is +what you get from "cat dist/tiff.alpha". + +

    +Within an application that uses libtiff the TIFFGetVersion +routine will return a pointer to a string that contains software version +information. +The library include file <tiffio.h> contains a C pre-processor +define TIFFLIB_VERSION that can be used to check library +version compatiblity at compile time. + +


    Library Datatypes

    + +libtiff defines a portable programming interface through the +use of a set of C type definitions. +These definitions, defined in in the files tiff.h and +tiffio.h, +isolate the libtiff API from the characteristics +of the underlying machine. +To insure portable code and correct operation, applications that use +libtiff should use the typedefs and follow the function +prototypes for the library API. + +


    Memory Management

    + +libtiff uses a machine-specific set of routines for managing +dynamically allocated memory. +_TIFFmalloc, _TIFFrealloc, and _TIFFfree +mimic the normal ANSI C routines. +Any dynamically allocated memory that is to be passed into the library +should be allocated using these interfaces in order to insure pointer +compatibility on machines with a segmented architecture. +(On 32-bit UNIX systems these routines just call the normal malloc, +realloc, and free routines in the C library.) + +

    +To deal with segmented pointer issues libtiff also provides +_TIFFmemcpy, _TIFFmemset, and _TIFFmemmove +routines that mimic the equivalent ANSI C routines, but that are +intended for use with memory allocated through _TIFFmalloc +and _TIFFrealloc. + +


    Error Handling

    + +libtiff handles most errors by returning an invalid/erroneous +value when returning from a function call. +Various diagnostic messages may also be generated by the library. +All error messages are directed to a single global error handler +routine that can be specified with a call to TIFFSetErrorHandler. +Likewise warning messages are directed to a single handler routine +that can be specified with a call to TIFFSetWarningHandler + +


    Basic File Handling

    + +The library is modeled after the normal UNIX stdio library. +For example, to read from an existing TIFF image the +file must first be opened: + +
      +#include "tiffio.h" +main() +{ + TIFF* tif = TIFFOpen("foo.tif", "r"); + ... do stuff ... + TIFFClose(tif); +} +
    + +The handle returned by TIFFOpen is opaque, that is +the application is not permitted to know about its contents. +All subsequent library calls for this file must pass the handle +as an argument. + +

    +To create or overwrite a TIFF image the file is also opened, but with +a "w" argument: + +

      +#include "tiffio.h" +main() +{ + TIFF* tif = TIFFOpen("foo.tif", "w"); + ... do stuff ... + TIFFClose(tif); +} +
    + +If the file already exists it is first truncated to zero length. + +

    + +Note that unlike the stdio library TIFF image files may not be +opened for both reading and writing; +there is no support for altering the contents of a TIFF file. + + +

    +libtiff buffers much information associated with writing a +valid TIFF image. Consequently, when writing a TIFF image it is necessary +to always call TIFFClose or TIFFFlush to flush any +buffered information to a file. Note that if you call TIFFClose +you do not need to call TIFFFlush. + +


    TIFF Directories

    + +TIFF supports the storage of multiple images in a single file. +Each image has an associated data structure termed a directory +that houses all the information about the format and content of the +image data. +Images in a file are usually related but they do not need to be; it +is perfectly alright to store a color image together with a black and +white image. +Note however that while images may be related their directories are +not. +That is, each directory stands on its own; their is no need to read +an unrelated directory in order to properly interpret the contents +of an image. + +

    +libtiff provides several routines for reading and writing +directories. In normal use there is no need to explicitly +read or write a directory: the library automatically reads the first +directory in a file when opened for reading, and directory information +to be written is automatically accumulated and written when writing +(assuming TIFFClose or TIFFFlush are called). + +

    +For a file open for reading the TIFFSetDirectory routine can +be used to select an arbitrary directory; directories are referenced by +number with the numbering starting at 0. Otherwise the +TIFFReadDirectory and TIFFWriteDirectory routines can +be used for sequential access to directories. +For example, to count the number of directories in a file the following +code might be used: + +

      +#include "tiffio.h" +main(int argc, char* argv[]) +{ + TIFF* tif = TIFFOpen(argv[1], "r"); + if (tif) { + int dircount = 0; + do { + dircount++; + } while (TIFFReadDirectory(tif)); + printf("%d directories in %s\n", dircount, argv[1]); + TIFFClose(tif); + } + exit(0); +} +
    + +

    +Finally, note that there are several routines for querying the +directory status of an open file: +TIFFCurrentDirectory returns the index of the current +directory and +TIFFLastDirectory returns an indication of whether the +current directory is the last directory in a file. +There is also a routine, TIFFPrintDirectory, that can +be called to print a formatted description of the contents of +the current directory; consult the manual page for complete details. + +


    TIFF Tags

    + +Image-related information such as the image width and height, number +of samples, orientation, colorimetric information, etc. +are stored in each image +directory in fields or tags. +Tags are identified by a number that is usually a value registered +with the Aldus (now Adobe) Corporation. +Beware however that some vendors write +TIFF images with tags that are unregistered; in this case interpreting +their contents is usually a waste of time. + +

    +libtiff reads the contents of a directory all at once +and converts the on-disk information to an appropriate in-memory +form. While the TIFF specification permits an arbitrary set of +tags to be defined and used in a file, the library only understands +a limited set of tags. +Any unknown tags that are encountered in a file are ignored. +There is a mechanism to extend the set of tags the library handles +without modifying the library itself; +this is described elsewhere. + +

    +libtiff provides two interfaces for getting and setting tag +values: TIFFGetField and TIFFSetField. +These routines use a variable argument list-style interface to pass +parameters of different type through a single function interface. +The get interface takes one or more pointers to memory locations +where the tag values are to be returned and also returns one or +zero according to whether the requested tag is defined in the directory. +The set interface takes the tag values either by-reference or +by-value. +The TIFF specification defines +default values for some tags. +To get the value of a tag, or its default value if it is undefined, +the TIFFGetFieldDefaulted interface may be used. + +

    +The manual pages for the tag get and set routines specifiy the exact data types +and calling conventions required for each tag supported by the library. + +


    TIFF Compression Schemes

    + +libtiff includes support for a wide variety of +data compression schemes. +In normal operation a compression scheme is automatically used when +the TIFF Compression tag is set, either by opening a file +for reading, or by setting the tag when writing. + +

    +Compression schemes are implemented by software modules termed codecs +that implement decoder and encoder routines that hook into the +core library i/o support. +Codecs other than those bundled with the library can be registered +for use with the TIFFRegisterCODEC routine. +This interface can also be used to override the core-library +implementation for a compression scheme. + +


    Byte Order

    + +The TIFF specification says, and has always said, that +a correct TIFF +reader must handle images in big-endian and little-endian byte order. +libtiff conforms in this respect. +Consequently there is no means to force a specific +byte order for the data written to a TIFF image file (data is +written in the native order of the host CPU unless appending to +an existing file, in which case it is written in the byte order +specified in the file). + + +


    Data Placement

    + +The TIFF specification requires that all information except an +8-byte header can be placed anywhere in a file. +In particular, it is perfectly legitimate for directory information +to be written after the image data itself. +Consequently TIFF is inherently not suitable for passing through a +stream-oriented mechanism such as UNIX pipes. +Software that require that data be organized in a file in a particular +order (e.g. directory information before image data) does not +correctly support TIFF. +libtiff provides no mechanism for controlling the placement +of data in a file; image data is typically written before directory +information. + +


    TIFFRGBAImage Support

    + +libtiff provides a high-level interface for reading image +data from a TIFF file. This interface handles the details of +data organization and format for a wide variety of TIFF files; +at least the large majority of those files that one would normally +encounter. Image data is, by default, returned as ABGR +pixels packed into 32-bit words (8 bits per sample). Rectangular +rasters can be read or data can be intercepted at an intermediate +level and packed into memory in a format more suitable to the +application. +The library handles all the details of the format of data stored on +disk and, in most cases, if any colorspace conversions are required: +bilevel to RGB, greyscale to RGB, CMYK to RGB, YCbCr to RGB, 16-bit +samples to 8-bit samples, associated/unassociated alpha, etc. + +

    +There are two ways to read image data using this interface. If +all the data is to be stored in memory and manipulated at once, +then the routine TIFFReadRGBAImage can be used: + +

      +#include "tiffio.h" +main(int argc, char* argv[]) +{ + TIFF* tif = TIFFOpen(argv[1], "r"); + if (tif) { + uint32 w, h; + size_t npixels; + uint32* raster; + + TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &w); + TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &h); + npixels = w * h; + raster = (uint32*) _TIFFmalloc(npixels * sizeof (uint32)); + if (raster != NULL) { + if (TIFFReadRGBAImage(tif, w, h, raster, 0)) { + ...process raster data... + } + _TIFFfree(raster); + } + TIFFClose(tif); + } + exit(0); +} +
    + +Note above that _TIFFmalloc is used to allocate memory for +the raster passed to TIFFReadRGBAImage; this is important +to insure the ``appropriate type of memory'' is passed on machines +with segmented architectures. + +

    +Alternatively, TIFFReadRGBAImage can be replaced with a +more low-level interface that permits an application to have more +control over this reading procedure. The equivalent to the above +is: + +

      +#include "tiffio.h" +main(int argc, char* argv[]) +{ + TIFF* tif = TIFFOpen(argv[1], "r"); + if (tif) { + TIFFRGBAImage img; + char emsg[1024]; + + if (TIFFRGBAImageBegin(&img, tif, 0, emsg)) { + size_t npixels; + uint32* raster; + + npixels = img.width * img.height; + raster = (uint32*) _TIFFmalloc(npixels * sizeof (uint32)); + if (raster != NULL) { + if (TIFFRGBAImageGet(&img, raster, img.width, img.width)) { + ...process raster data... + } + _TIFFfree(raster); + } + TIFFRGBAImageEnd(&img); + } else + TIFFError(argv[1], emsg); + TIFFClose(tif); + } + exit(0); +} +
    + +However this usage does not take advantage of the more fine-grained +control that's possible. That is, by using this interface it is +possible to: + +
      +
    • repeatedly fetch (and manipulate) an image without opening + and closing the file +
    • interpose a method for packing raster pixel data according to + application-specific needs (or write the data at all) +
    • interpose methods that handle TIFF formats that are not already + handled by the core library +
    + +The first item means that, for example, image viewers that want to +handle multiple files can cache decoding information in order to +speedup the work required to display a TIFF image. + +

    +The second item is the main reason for this interface. By interposing +a ``put method'' (the routine that is called to pack pixel data in +the raster) it is possible share the core logic that understands how +to deal with TIFF while packing the resultant pixels in a format that +is optimized for the application. This alternate format might be very +different than the 8-bit per sample ABGR format the library writes by +default. For example, if the application is going to display the image +on an 8-bit colormap display the put routine might take the data and +convert it on-the-fly to the best colormap indices for display. + +

    +The last item permits an application to extend the library +without modifying the core code. +By overriding the code provided an application might add support +for some esoteric flavor of TIFF that it needs, or it might +substitute a packing routine that is able to do optimizations +using application/environment-specific information. + +

    +The TIFF image viewer found in tools/sgigt.c is an example +of an application that makes use of the TIFFRGBAImage +support. + +


    Scanline-based Image I/O

    + +The simplest interface provided by libtiff is a +scanline-oriented interface that can be used to read TIFF +images that have their image data organized in strips +(trying to use this interface to read data written in tiles +will produce errors.) +A scanline is a one pixel high row of image data whose width +is the width of the image. +Data is returned packed if the image data is stored with samples +packed together, or as arrays of separate samples if the data +is stored with samples separated. +The major limitation of the scanline-oriented interface, other +than the need to first identify an existing file as having a +suitable organization, is that random access to individual +scanlines can only be provided when data is not stored in a +compressed format, or when the number of rows in a strip +of image data is set to one (RowsPerStrip is one). + +

    +Two routines are provided for scanline-based i/o: +TIFFReadScanline +and +TIFFWriteScanline. +For example, to read the contents of a file that +is assumed to be organized in strips, the following might be used: + +

      +#include "tiffio.h" +main() +{ + TIFF* tif = TIFFOpen("myfile.tif", "r"); + if (tif) { + uint32 imagelength; + tdata_t buf; + uint32 row; + + TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &imagelength); + buf = _TIFFmalloc(TIFFScanlineSize(tif)); + for (row = 0; row < imagelength; row++) + TIFFReadScanline(tif, buf, row); + _TIFFfree(buf); + TIFFClose(tif); + } +} +
    + +TIFFScanlineSize returns the number of bytes in +a decoded scanline, as returned by TIFFReadScanline. +Note however that if the file had been create with samples +written in separate planes, then the above code would only +read data that contained the first sample of each pixel; +to handle either case one might use the following instead: + +
      +#include "tiffio.h" +main() +{ + TIFF* tif = TIFFOpen("myfile.tif", "r"); + if (tif) { + uint32 imagelength; + tdata_t buf; + uint32 row; + + TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &imagelength); + TIFFGetField(tif, TIFFTAG_PLANARCONFIG, &config); + buf = _TIFFmalloc(TIFFScanlineSize(tif)); + if (config == PLANARCONFIG_CONTIG) { + for (row = 0; row < imagelength; row++) + TIFFReadScanline(tif, buf, row); + } else if (config == PLANARCONFIG_SEPARATE) { + uint16 s, nsamples; + + TIFFGetField(tif, TIFFTAG_SAMPLESPERPIXEL, &nsamples); + for (s = 0; s < nsamples; s++) + for (row = 0; row < imagelength; row++) + TIFFReadScanline(tif, buf, row, s); + } + _TIFFfree(buf); + TIFFClose(tif); + } +} +
    + +Beware however that if the following code were used instead to +read data in the case PLANARCONFIG_SEPARATE, + +
      + for (row = 0; row < imagelength; row++) + for (s = 0; s < nsamples; s++) + TIFFReadScanline(tif, buf, row, s); +
    + +then problems would arise if RowsPerStrip was not one +because the order in which scanlines are requested would require +random access to data within strips (something that is not supported +by the library when strips are compressed). + +


    Strip-oriented Image I/O

    + +The strip-oriented interfaces provided by the library provide +access to entire strips of data. Unlike the scanline-oriented +calls, data can be read or written compressed or uncompressed. +Accessing data at a strip (or tile) level is often desirable +because there are no complications with regard to random access +to data within strips. + +

    +A simple example of reading an image by strips is: + +

      +#include "tiffio.h" +main() +{ + TIFF* tif = TIFFOpen("myfile.tif", "r"); + if (tif) { + tdata_t buf; + tstrip_t strip; + + buf = _TIFFmalloc(TIFFStripSize(tif)); + for (strip = 0; strip < TIFFNumberOfStrips(tif); strip++) + TIFFReadEncodedStrip(tif, strip, buf, (tsize_t) -1); + _TIFFfree(buf); + TIFFClose(tif); + } +} +
    + +Notice how a strip size of -1 is used; TIFFReadEncodedStrip +will calculate the appropriate size in this case. + +

    +The above code reads strips in the order in which the +data is physically stored in the file. If multiple samples +are present and data is stored with PLANARCONFIG_SEPARATE +then all the strips of data holding the first sample will be +read, followed by strips for the second sample, etc. + +

    +Finally, note that the last strip of data in an image may have fewer +rows in it than specified by the RowsPerStrip tag. A +reader should not assume that each decoded strip contains a full +set of rows in it. + +

    +The following is an example of how to read raw strips of data from +a file: + +

      +#include "tiffio.h" +main() +{ + TIFF* tif = TIFFOpen("myfile.tif", "r"); + if (tif) { + tdata_t buf; + tstrip_t strip; + uint32* bc; + uint32 stripsize; + + TIFFGetField(tif, TIFFTAG_STRIPBYTECOUNTS, &bc); + stripsize = bc[0]; + buf = _TIFFmalloc(stripsize); + for (strip = 0; strip < TIFFNumberOfStrips(tif); strip++) { + if (bc[strip] > stripsize) { + buf = _TIFFrealloc(buf, bc[strip]); + stripsize = bc[strip]; + } + TIFFReadRawStrip(tif, strip, buf, bc[strip]); + } + _TIFFfree(buf); + TIFFClose(tif); + } +} +
    + +As above the strips are read in the order in which they are +physically stored in the file; this may be different from the +logical ordering expected by an application. + +


    Tile-oriented Image I/O

    + +Tiles of data may be read and written in a manner similar to strips. +With this interface, an image is +broken up into a set of rectangular areas that may have dimensions +less than the image width and height. All the tiles +in an image have the same size, and the tile width and length must each +be a multiple of 16 pixels. Tiles are ordered left-to-right and +top-to-bottom in an image. As for scanlines, samples can be packed +contiguously or separately. When separated, all the tiles for a sample +are colocated in the file. That is, all the tiles for sample 0 appear +before the tiles for sample 1, etc. + +

    +Tiles and strips may also be extended in a z dimension to form +volumes. Data volumes are organized as "slices". That is, all the +data for a slice is colocated. Volumes whose data is organized in +tiles can also have a tile depth so that data can be organized in +cubes. + +

    +There are actually two interfaces for tiles. +One interface is similar to scanlines, to read a tiled image, +code of the following sort might be used: + +

      +main() +{ + TIFF* tif = TIFFOpen("myfile.tif", "r"); + if (tif) { + uint32 imageWidth, imageLength; + uint32 tileWidth, tileLength; + uint32 x, y; + tdata_t buf; + + TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &imageWidth); + TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &imageLength); + TIFFGetField(tif, TIFFTAG_TILEWIDTH, &tileWidth); + TIFFGetField(tif, TIFFTAG_TILELENGTH, &tileLength); + buf = _TIFFmalloc(TIFFTileSize(tif)); + for (y = 0; y < imageLength; y += tileLength) + for (x = 0; x < imageWidth; x += tileWidth) + TIFFReadTile(tif, buf, x, y, 0); + _TIFFfree(buf); + TIFFClose(tif); + } +} +
    + +(once again, we assume samples are packed contiguously.) + +

    +Alternatively a direct interface to the low-level data is provided +a la strips. Tiles can be read with +TIFFReadEncodedTile or +TIFFReadRawTile, +and written with +TIFFWriteEncodedTile or +TIFFWriteRawTile. +For example, to read all the tiles in an image: + +

      +#include "tiffio.h" +main() +{ + TIFF* tif = TIFFOpen("myfile.tif", "r"); + if (tif) { + tdata_t buf; + ttile_t tile; + + buf = _TIFFmalloc(TIFFTileSize(tif)); + for (tile = 0; tile < TIFFNumberOfTiles(tif); tile++) + TIFFReadEncodedTile(tif, tile, buf, (tsize_t) -1); + _TIFFfree(buf); + TIFFClose(tif); + } +} +
    + + + +


    Other Stuff

    + +

    +Some other stuff will almost certainly go here... + +

    +


    + +Last updated: $Date: 2000/06/24 19:10:16 $ + + + diff --git a/html/man/TIFFClose.3t.html b/html/man/TIFFClose.3t.html new file mode 100755 index 0000000..5dfbe91 --- /dev/null +++ b/html/man/TIFFClose.3t.html @@ -0,0 +1,69 @@ + +Manpage of TIFFClose + +

    TIFFClose

    +Section: Misc. Reference Manual Pages (3T)
    Updated: May 2, 1990
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFClose - close a previously opened +TIFF +file +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +void TIFFClose(TIFF* tif) + +  +

    DESCRIPTION

    + +TIFFClose + +closes a file that was previously opened with +TIFFOpen(3T). + +Any buffered data are flushed to the file, including the contents of +the current directory (if modified); and all resources +are reclaimed. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +Likewise, warning messages are directed to the +TIFFWarning(3T) + +routine. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:37 GMT, November 23, 1999 + + diff --git a/html/man/TIFFError.3t.html b/html/man/TIFFError.3t.html new file mode 100755 index 0000000..9668fb6 --- /dev/null +++ b/html/man/TIFFError.3t.html @@ -0,0 +1,97 @@ + +Manpage of TIFFError + +

    TIFFError

    +Section: Misc. Reference Manual Pages (3T)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFError, TIFFSetErrorHandler - library error handling interface +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +void TIFFError(const char* module, const char* fmt, ...) + +

    +#include <stdarg.h> + +
    + +typedef void (*TIFFErrorHandler)(const char* module, const char* fmt, va_list ap); + +
    + +TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler handler); + +  +

    DESCRIPTION

    + +TIFFError + +invokes the library-wide error handling function +to (normally) write an error message to the +stderr. + +The +fmt + +parameter is a +printf(3S) + +format string, and any number arguments can be supplied. +The +module + +parameter, if non-zero, is printed before the message; it typically +is used to identify the software module in which an error +is detected. +

    + +Applications that desire to capture control in the event of an error +should use +TIFFSetErrorHandler + +to override the default error handler. +A +NULL +(0) error handling function may be installed to +suppress error messages. +  +

    RETURN VALUES

    + +TIFFSetErrorHandler + +returns a reference to the previous error handling function. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFWarning(3T), + +printf(3S) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    RETURN VALUES
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:37 GMT, November 23, 1999 + + diff --git a/html/man/TIFFFlush.3t.html b/html/man/TIFFFlush.3t.html new file mode 100755 index 0000000..14e32e9 --- /dev/null +++ b/html/man/TIFFFlush.3t.html @@ -0,0 +1,93 @@ + +Manpage of TIFFFlush + +

    TIFFFlush

    +Section: Misc. Reference Manual Pages (3T)
    Updated: December 16, 1991
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFFlush, TIFFFlushData - flush pending writes to an open +TIFF +file +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +int TIFFFlush(TIFF* tif) + +
    + +int TIFFFlushData(TIFF* tif) + +  +

    DESCRIPTION

    + +TIFFFlush + +causes any pending writes for the specified file (including writes +for the current directory) +to be done. +In normal operation this call is never needed- the library +automatically does any flushing required. +

    + +TIFFFlushData + +flushes any pending image data for the specified file to be written out; +directory-related data are not flushed. +In normal operation this call is never needed- the library +automatically does any flushing required. +  +

    RETURN VALUES

    + +0 is returned if an error is encountered, otherwise 1 is returned. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T), + +TIFFWriteEncodedStrip(3T), + +TIFFWriteEncodedTile(3T), + +TIFFWriteRawStrip(3T), + +TIFFWriteRawTile(3T), + +TIFFWriteScanline(3T), + +TIFFWriteTile(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:37 GMT, November 23, 1999 + + diff --git a/html/man/TIFFGetField.3t.html b/html/man/TIFFGetField.3t.html new file mode 100755 index 0000000..d0f8fa3 --- /dev/null +++ b/html/man/TIFFGetField.3t.html @@ -0,0 +1,266 @@ + +Manpage of TIFFGetField + +

    TIFFGetField

    +Section: Misc. Reference Manual Pages (3T)
    Updated: August 22, 1997
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFGetField, TIFFVGetField - get the value(s) of a tag in an open +TIFF +file +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +int TIFFGetField(TIFF* tif, ttag_t tag, ...) + +

    +#include <stdarg.h> + +
    + +int TIFFVGetField(TIFF* tif, ttag_t tag, va_list ap) + +

    +int TIFFGetFieldDefaulted(TIFF* tif, ttag_t tag, ...) + +
    + +int TIFFVGetFieldDefaulted(TIFF* tif, ttag_t tag, va_list ap) + +  +

    DESCRIPTION

    + +TIFFGetField + +returns the value of a tag or pseudo-tag associated with the +the current directory of the open +TIFF +file +tif. + +(A +pseudo-tag + +is a parameter that is used to control the operation of the +TIFF +library but whose value is not read or written to the underlying file.) +The file must have been previously opened with +TIFFOpen(3T). + +The tag is identified by +tag, + +one of the values defined in the include file +tiff.h + +(see also the table below). +The type and number of values returned is dependent +on the tag being requested. +The programming interface uses a variable argument list +as prescribed by the +stdarg(3) + +interface. +The returned values should only be interpreted if +TIFFGetField + +returns 1. +

    + +TIFFVGetField + +is functionally equivalent to +TIFFGetField + +except that it takes a pointer to a variable +argument list. +TIFFVGetField + +is useful for layering interfaces on top of +the functionality provided by +TIFFGetField. + +

    + +TIFFGetFieldDefaulted + +and +TIFFVGetFieldDefaulted + +are identical to +TIFFGetField + +and +TIFFVGetField, + +except that if a tag is not defined in the current directory +and it has a default value, then the default value is returned. +

    + +The tags understood by +libtiff, + +the number of parameter values, and the +types for the returned values are shown below. +The data types are specified as in C and correspond +to the types used to specify tag values to +TIFFSetField(3T). + +Remember that +TIFFGetField + +returns parameter values, so all the listed +data types are pointers to storage where values +should be returned. +Consult the +TIFF +specification for information on the meaning of +each tag and their possible values. +

    + +

    +
    +Tag Name                        Count  Types             Notes
    +
    +TIFFTAG_ARTIST                  1      char**
    +TIFFTAG_BADFAXLINES             1      uint32*
    +TIFFTAG_BITSPERSAMPLE           1      uint16*
    +TIFFTAG_CLEANFAXDATA            1      uint16*
    +TIFFTAG_COLORMAP                3      uint16**          1<<BitsPerSample arrays
    +TIFFTAG_COMPRESSION             1      uint16*
    +TIFFTAG_CONSECUTIVEBADFAXLINES  1      uint32*
    +TIFFTAG_DATATYPE                1      uint16*
    +TIFFTAG_DATETIME                1      char**
    +TIFFTAG_DOCUMENTNAME            1      char**
    +TIFFTAG_DOTRANGE                2      uint16*
    +TIFFTAG_EXTRASAMPLES            2      uint16*,uint16**  count & types array
    +TIFFTAG_FAXMODE                 1      int*              G3/G4 compression pseudo-tag
    +TIFFTAG_FAXFILLFUNC             1      TIFFFaxFillFunc*  G3/G4 compression pseudo-tag
    +TIFFTAG_FILLORDER               1      uint16*
    +TIFFTAG_GROUP3OPTIONS           1      uint32*
    +TIFFTAG_GROUP4OPTIONS           1      uint32*
    +TIFFTAG_HALFTONEHINTS           2      uint16*
    +TIFFTAG_HOSTCOMPUTER            1      char**
    +TIFFTAG_IMAGEDEPTH              1      uint32*
    +TIFFTAG_IMAGEDESCRIPTION        1      char**
    +TIFFTAG_IMAGELENGTH             1      uint32*
    +TIFFTAG_IMAGEWIDTH              1      uint32*
    +TIFFTAG_INKNAMES                1      char**
    +TIFFTAG_INKSET                  1      uint16*
    +TIFFTAG_JPEGTABLES              2      u_short*,void**   count & tables
    +TIFFTAG_JPEGQUALITY             1      int*              JPEG pseudo-tag
    +TIFFTAG_JPEGCOLORMODE           1      int*              JPEG pseudo-tag
    +TIFFTAG_JPEGTABLESMODE          1      int*              JPEG pseudo-tag
    +TIFFTAG_MAKE                    1      char**
    +TIFFTAG_MATTEING                1      uint16*
    +TIFFTAG_MAXSAMPLEVALUE          1      uint16*
    +TIFFTAG_MINSAMPLEVALUE          1      uint16*
    +TIFFTAG_MODEL                   1      char**
    +TIFFTAG_ORIENTATION             1      uint16*
    +TIFFTAG_PAGENAME                1      char**
    +TIFFTAG_PAGENUMBER              2      uint16*
    +TIFFTAG_PHOTOMETRIC             1      uint16*
    +TIFFTAG_PLANARCONFIG            1      uint16*
    +TIFFTAG_PREDICTOR               1      uint16*
    +TIFFTAG_PRIMARYCHROMATICITIES   1      float**           6-entry array
    +TIFFTAG_REFERENCEBLACKWHITE     1      float**           2*SamplesPerPixel array
    +TIFFTAG_RESOLUTIONUNIT          1      uint16*
    +TIFFTAG_ROWSPERSTRIP            1      uint32*
    +TIFFTAG_SAMPLEFORMAT            1      uint16*
    +TIFFTAG_SAMPLESPERPIXEL         1      uint16*
    +TIFFTAG_SMAXSAMPLEVALUE         1      double*
    +TIFFTAG_SMINSAMPLEVALUE         1      double*
    +TIFFTAG_SOFTWARE                1      char**
    +TIFFTAG_STONITS                 1      double**
    +TIFFTAG_STRIPBYTECOUNTS         1      uint32**
    +TIFFTAG_STRIPOFFSETS            1      uint32**
    +TIFFTAG_SUBFILETYPE             1      uint32*
    +TIFFTAG_SUBIFD                  2      uint16*,uint32**  count & offsets array
    +TIFFTAG_TARGETPRINTER           1      char**
    +TIFFTAG_THRESHHOLDING           1      uint16*
    +TIFFTAG_TILEBYTECOUNTS          1      uint32**
    +TIFFTAG_TILEDEPTH               1      uint32*
    +TIFFTAG_TILELENGTH              1      uint32*
    +TIFFTAG_TILEOFFSETS             1      uint32**
    +TIFFTAG_TILEWIDTH               1      uint32*
    +TIFFTAG_TRANSFERFUNCTION        1 or 3+                  uint16**1<<BitsPerSample entry arrays
    +TIFFTAG_WHITEPOINT              1      float**           2-entry array
    +TIFFTAG_XPOSITION               1      float*
    +TIFFTAG_XRESOLUTION             1      float*
    +TIFFTAG_YCBCRCOEFFICIENTS       1      float**           3-entry array
    +TIFFTAG_YCBCRPOSITIONING        1      uint16*
    +TIFFTAG_YCBCRSUBSAMPLING        2      uint16*
    +TIFFTAG_YPOSITION               1      float*
    +TIFFTAG_YRESOLUTION             1      float*
    +TIFFTAG_ICCPROFILE              2      uint32*,void**    count, profile datadd
    +
    + ++ If +SamplesPerPixel + +is one, then a single array is returned; otherwise three arrays are +returned. + +dd The contents of this field are quite complex. See +The ICC Profile Format Specification, + +Annex B.3 "Embedding ICC Profiles in TIFF Files" +(available at http://www.color.org) for an explanation. +  +

    RETURN VALUES

    + +1 is returned if the tag is defined in the current +directory; otherwise a 0 is returned. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +

    + +Unknown field, tag 0x%x. + +An unknown tag was supplied. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T), + +TIFFSetField(3T), + +TIFFSetDirectory(3T), + +TIFFReadDirectory(3T), + +TIFFWriteDirectory(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:37 GMT, November 23, 1999 + + diff --git a/html/man/TIFFOpen.3t.html b/html/man/TIFFOpen.3t.html new file mode 100755 index 0000000..6c94a15 --- /dev/null +++ b/html/man/TIFFOpen.3t.html @@ -0,0 +1,361 @@ + +Manpage of TIFFOpen + +

    TIFFOpen

    +Section: Misc. Reference Manual Pages (3T)
    Updated: January 9, 1996
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFOpen, TIFFFdOpen, TIFFClientOpen - open a +TIFF +file for reading or writing +  +

    SYNOPSIS

    + +
    +#include <tiffio.h>
    +TIFF* TIFFOpen(const char* filename, const char* mode)
    +
    +TIFF* TIFFFdOpen(const int fd, const char* filename, const char* mode)
    +
    +typedef tsize_t (*TIFFReadWriteProc)(thandle_t, tdata_t, tsize_t);
    +typedef toff_t (*TIFFSeekProc)(thandle_t, toff_t, int);
    +typedef int (*TIFFCloseProc)(thandle_t);
    +typedef toff_t (*TIFFSizeProc)(thandle_t);
    +typedef int (*TIFFMapFileProc)(thandle_t, tdata_t*, toff_t*);
    +typedef void (*TIFFUnmapFileProc)(thandle_t, tdata_t, toff_t);
    +
    +TIFF* TIFFClientOpen(const char* filename, const char* mode, thandle_t clientdata,
    +    TIFFReadWriteProc readproc, TIFFReadWriteProc writeproc, TIFFSeekProc seekproc,
    +    TIFFCloseProc closeproc, TIFFSizeProc sizeproc, TIFFMapFileProc mapproc,
    +    TIFFUnmapFileProc unmapproc)
    +
    + +  +

    DESCRIPTION

    + +TIFFOpen + +opens a +TIFF +file whose name is +filename + +and returns a handle to be used in subsequent calls to routines in +libtiff. + +If the open operation fails, then zero is returned. +The +mode + +parameter specifies if the file is to be opened for reading (``r''), +writing (``w''), or appending (``a'') and, optionally, whether +to override certain default aspects of library operation (see below). +When a file is opened for appending, existing data will not +be touched; instead new data will be written as additional subfiles. +If an existing file is opened for writing, all previous data is +overwritten. +

    + +If a file is opened for reading, the first +TIFF +directory in the file is automatically read +(also see +TIFFSetDirectory(3T) + +for reading directories other than the first). +If a file is opened for writing or appending, a default directory +is automatically created for writing subsequent data. +This directory has all the default values specified in +TIFF +Revision 6.0: +BitsPerSample=1, + +ThreshHolding=bilevel art scan, + +FillOrder=1 + +(most significant bit of each data byte is filled first), +Orientation=1 + +(the 0th row represents the visual top of the image, and the 0th +column represents the visual left hand side), +SamplesPerPixel=1, + +RowsPerStrip=infinity, + +ResolutionUnit=2 + +(inches), and +Compression=1 + +(no compression). +To alter these values, or to define values for additional fields, +TIFFSetField(3T) + +must be used. +

    + +TIFFFdOpen + +is like +TIFFOpen + +except that it opens a +TIFF +file given an open file descriptor +fd. + +The file's name and mode must reflect that of the open descriptor. +The object associated with the file descriptor +must support random access. + +

    + +TIFFClientOpen + +is like +TIFFOpen + +except that the caller supplies a collection of functions that the +library will use to do UNIX-like I/O operations. +The +readproc + +and +writeproc + +are called to read and write data at the current file position. +seekproc + +is called to change the current file position a la +lseek(2). + +closeproc + +is invoked to release any resources associated with an open file. +sizeproc + +is invoked to obtain the size in bytes of a file. +mapproc + +and +unmapproc + +are called to map and unmap a file's contents in memory; c.f. +mmap(2) + +and +munmap(2). + +The +clientdata + +parameter is an opaque ``handle'' passed to the client-specified +routines passed as parameters to +TIFFClientOpen. + +  +

    OPTIONS

    + +The open mode parameter can include the following flags in +addition to the ``r'', ``w'', and ``a'' flags. +Note however that option flags must follow the read-write-append +specification. +
    +
    l + +
    +When creating a new file force information be written with +Little-Endian byte order (but see below). +By default the library will create new files using the native +CPU +byte order. +
    b + +
    +When creating a new file force information be written with +Big-Endian byte order (but see below). +By default the library will create new files using the native +CPU +byte order. +
    L + +
    +Force image data that is read or written to be treated with +bits filled from Least Significant Bit (LSB) to +Most Significant Bit (MSB). +Note that this is the opposite to the way the library has +worked from its inception. +
    B + +
    +Force image data that is read or written to be treated with +bits filled from Most Significant Bit (MSB) to +Least Significant Bit (LSB); this is the default. +
    H + +
    +Force image data that is read or written to be treated with +bits filled in the same order as the native +CPU. +
    M + +
    +Enable the use of memory-mapped files for images opened read-only. +If the underlying system does not support memory-mapped files +or if the specific image being opened cannot be memory-mapped +then the library will fallback to using the normal system interface +for reading information. +By default the library will attempt to use memory-mapped files. +
    m + +
    +Disable the use of memory-mapped files. +
    C + +
    +Enable the use of ``strip chopping'' when reading images +that are comprised of a single strip or tile of uncompressed data. +Strip chopping is a mechanism by which the library will automatically +convert the single-strip image to multiple strips, +each of which has about 8 Kilobytes of data. +This facility can be useful in reducing the amount of memory used +to read an image because the library normally reads each strip +in its entirety. +Strip chopping does however alter the apparent contents of the +image because when an image is divided into multiple strips it +looks as though the underlying file contains multiple separate +strips. +Finally, note that default handling of strip chopping is a compile-time +configuration parameter. +The default behaviour, for backwards compatibility, is to enable +strip chopping. +
    c + +
    +Disable the use of strip chopping when reading images. +
    +  +

    BYTE ORDER

    + +The +TIFF +specification (all versions) states that compliant readers +must be capable of reading images written in either byte order. + +Nonetheless some software that claims to support the reading of +TIFF +images is incapable of reading images in anything but the native +CPU +byte order on which the software was written. +(Especially notorious +are applications written to run on Intel-based machines.) +By default the library will create new files with the native +byte-order of the +CPU +on which the application is run. +This ensures optimal performance and is portable to any application +that conforms to the TIFF specification. +To force the library to use a specific byte-order when creating +a new file the ``b'' and ``l'' option flags may be included in +the call to open a file; for example, ``wb'' or ``wl''. +  +

    RETURN VALUES

    + +Upon successful completion +TIFFOpen, + +TIFFFdOpen, + +and +TIFFClientOpen + +return a +TIFF +pointer. +Otherwise, NULL is returned. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +Likewise, warning messages are directed to the +TIFFWarning(3T) + +routine. +

    + +"%s": Bad mode. +The specified +mode + +parameter was not one of ``r'' (read), ``w'' (write), or ``a'' (append). +

    + +%s: Cannot open. + +TIFFOpen() + +was unable to open the specified filename for read/writing. +

    + +Cannot read TIFF header. + +An error occurred while attempting to read the header information. +

    + +Error writing TIFF header. + +An error occurred while writing the default header information +for a new file. +

    + +Not a TIFF file, bad magic number %d (0x%x). + +The magic number in the header was not (hex) +0x4d4d or (hex) 0x4949. +

    + +Not a TIFF file, bad version number %d (0x%x). + +The version field in the header was not 42 (decimal). +

    + +Cannot append to file that has opposite byte ordering. + +A file with a byte ordering opposite to the native byte +ordering of the current machine was opened for appending (``a''). +This is a limitation of the library. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFClose(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    OPTIONS
    +
    BYTE ORDER
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:37 GMT, November 23, 1999 + + diff --git a/html/man/TIFFPrintDirectory.3t.html b/html/man/TIFFPrintDirectory.3t.html new file mode 100755 index 0000000..0bf764b --- /dev/null +++ b/html/man/TIFFPrintDirectory.3t.html @@ -0,0 +1,100 @@ + +Manpage of TIFFPrintDirectory + +

    TIFFPrintDirectory

    +Section: Misc. Reference Manual Pages (3T)
    Updated: December 12, 1991
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFPrintDirectory - print a description of a +TIFF +directory +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +void TIFFPrintDirectory(TIFF* tif, FILE* fd, long flags) + +  +

    DESCRIPTION

    + +TIFFPrintDirectory + +prints a description of the current directory in the specified +TIFF +file to the standard I/O output stream +fd. + +The +flags + +parameter is used to control the +level of detail + +of the printed information; it is a bit-or of the flags +defined in +tiffio.h: + +

    +

    +
    +#define TIFFPRINT_NONE          0x0     /* no extra info */
    +#define TIFFPRINT_STRIPS        0x1     /* strips/tiles info */
    +#define TIFFPRINT_CURVES        0x2     /* color/gray response curves */
    +#define TIFFPRINT_COLORMAP      0x4     /* colormap */
    +#define TIFFPRINT_JPEGQTABLES   0x100   /* JPEG Q matrices */
    +#define TIFFPRINT_JPEGACTABLES  0x200   /* JPEG AC tables */
    +#define TIFFPRINT_JPEGDCTABLES  0x200   /* JPEG DC tables */
    +
    + +  +

    NOTES

    + +In C++ the +flags + +parameter defaults to 0. +  +

    RETURN VALUES

    + +None. +  +

    DIAGNOSTICS

    + +None. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T), + +TIFFReadDirectory(3T), + +TIFFSetDirectory(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    NOTES
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:37 GMT, November 23, 1999 + + diff --git a/html/man/TIFFRGBAImage.3t.html b/html/man/TIFFRGBAImage.3t.html new file mode 100755 index 0000000..bec5ef7 --- /dev/null +++ b/html/man/TIFFRGBAImage.3t.html @@ -0,0 +1,370 @@ + +Manpage of TIFFRGBAImage + +

    TIFFRGBAImage

    +Section: Misc. Reference Manual Pages (3T)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFRGBAImage - read and decode an image into a raster +  +

    SYNOPSIS

    + +
    +#include <tiffio.h>
    +typedef unsigned char TIFFRGBValue;
    +typedef struct _TIFFRGBAImage TIFFRGBAImage;
    +int TIFFRGBAImageOK(TIFF* tif, char emsg[1024]);
    +int TIFFRGBAImageBegin(TIFFRGBAImage* img, TIFF* tif, int stopOnError, char emsg[1024]);
    +int TIFFRGBAImageGet(TIFFRGBAImage* img, uint32* raster, uint32 width, uint32 height);
    +void TIFFRGBAImageEnd(TIFFRGBAImage* img);
    +
      +

    DESCRIPTION

    + +The routines described here provide a high-level interface +through which +TIFF +images may be read into memory. +Images may be strip- or tile-based and have a variety of different +characteristics: bits/sample, samples/pixel, photometric, etc. +Decoding state is encapsulated in a +TIFFRGBAImage + +structure making it possible to capture state for multiple images +and quickly switch between them. +The target raster format can be customized to a particular application's +needs by installing custom routines that manipulate image data +according to application requirements. +

    + +The default usage for these routines is: check if an image can +be processed using +TIFFRGBAImageOK, + +construct a decoder state block using +TIFFRGBAImageBegin, + +read and decode an image into a target raster using +TIFFRGBAImageGet, + +and then +release resources using +TIFFRGBAImageEnd. + +TIFFRGBAImageGet + +can be called multiple times to decode an image using different +state parameters. +If multiple images are to be displayed and there is not enough +space for each of the decoded rasters, multiple state blocks can +be managed and then calls can be made to +TIFFRGBAImageGet + +as needed to display an image. +

    + +The generated raster is assumed to be an array of +width + +times +height + +32-bit entries, where +width + +must be less than or equal to the width of the image (height + +may be any non-zero size). +If the raster dimensions are smaller than the image, the image data +is cropped to the raster bounds. +If the raster height is greater than that of the image, then the +image data are placed in the lower part of the raster. +(Note that the raster is assume to be organized such that the pixel +at location (x,y) is raster[y*width+x]; +with the raster origin in the lower-left hand corner.) +

    + +Raster pixels are 8-bit packed red, green, blue, alpha samples. +The macros +TIFFGetR, + +TIFFGetG, + +TIFFGetB, + +and +TIFFGetA + +should be used to access individual samples. +Images without Associated Alpha matting information have a constant +Alpha of 1.0 (255). +

    + +TIFFRGBAImageGet + +converts non-8-bit images by scaling sample values. +Palette, grayscale, bilevel, +CMYK, and YCbCr images are converted to +RGB +transparently. +Raster pixels are returned uncorrected by any colorimetry information +present in the directory. +

    + +The paramater +stopOnError + +specifies how to act if an error is encountered while reading +the image. +If +stopOnError + +is non-zero, then an error will terminate the operation; otherwise +TIFFRGBAImageGet + +will continue processing data until all the possible data in the +image have been requested. +  +

    ALTERNATE RASTER FORMATS

    + +To use the core support for reading and processing +TIFF +images, but write the resulting raster data in a different format +one need only override the ``put methods'' used to store raster data. +These methods are are defined in the +TIFFRGBAImage + +structure and initially setup by +TIFFRGBAImageBegin + +to point to routines that pack raster data in the default +ABGR +pixel format. +Two different routines are used according to the physical organization +of the image data in the file: +PlanarConfiguration=1 + +(packed samples), +and +PlanarConfiguration=2 + +(separated samples). +Note that this mechanism can be used to transform the data before +storing it in the raster. +For example one can convert data +to colormap indices for display on a colormap display. +  +

    SIMULTANEOUS RASTER STORE AND DISPLAY

    + +It is simple to display an image as it is being read into memory +by overriding the put methods as described above for supporting +alternate raster formats. +Simply keep a reference to the default put methods setup by +TIFFRGBAImageBegin + +and then invoke them before or after each display operation. +For example, the +tiffgt(1) + +utility uses the following put method to update the display as +the raster is being filled: +

    +

    +static void
    +putContigAndDraw(TIFFRGBAImage* img, uint32* raster,
    +    uint32 x, uint32 y, uint32 w, uint32 h,
    +    int32 fromskew, int32 toskew,
    +    unsigned char* cp)
    +{
    +    (*putContig)(img, raster, x, y, w, h, fromskew, toskew, cp);
    +    if (x+w == width) {
    +        w = width;
    +        if (img->orientation == ORIENTATION_TOPLEFT)
    +            lrectwrite(0, y-(h-1), w-1, y, raster-x-(h-1)*w);
    +        else
    +            lrectwrite(0, y, w-1, y+h-1, raster);
    +    }
    +}
    +
    + +

    +(the original routine provided by the library is saved in the +variable +putContig.) + +  +

    SUPPORTING ADDITIONAL TIFF FORMATS

    + +The +TIFFRGBAImage + +routines support the most commonly encountered flavors of +TIFF. +It is possible to extend this support by overriding the ``get method'' +invoked by +TIFFRGBAImageGet + +to read +TIFF +image data. +Details of doing this are a bit involved, it is best to make a copy +of an existing get method and modify it to suit the needs of an +application. +  +

    NOTES

    + +Samples must be either 1, 2, 4, 8, or 16 bits. +Colorimetric samples/pixel must be either 1, 3, or 4 (i.e. +SamplesPerPixel + +minus +ExtraSamples). + +

    + +Palettte image colormaps that appear to be incorrectly written +as 8-bit values are automatically scaled to 16-bits. +  +

    RETURN VALUES

    + +All routines return +1 if the operation was successful. +Otherwise, 0 is returned if an error was encountered and +stopOnError + +is zero. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +

    + +Sorry, can not handle %d-bit pictures. + +The image had +BitsPerSample + +other than 1, 2, 4, 8, or 16. +

    + +Sorry, can not handle %d-channel images. + +The image had +SamplesPerPixel + +other than 1, 3, or 4. +

    + +Missing needed "PhotometricInterpretation" tag. +The image did not have a tag that describes how to display +the data. +

    + +No "PhotometricInterpretation" tag, assuming RGB. +The image was missing a tag that describes how to display it, +but because it has 3 or 4 samples/pixel, it is assumed to be +RGB. +

    + +No "PhotometricInterpretation" tag, assuming min-is-black. +The image was missing a tag that describes how to display it, +but because it has 1 sample/pixel, it is assumed to be a grayscale +or bilevel image. +

    + +No space for photometric conversion table. + +There was insufficient memory for a table used to convert +image samples to 8-bit +RGB. +

    + +Missing required "Colormap" tag. +A Palette image did not have a required +Colormap + +tag. +

    + +No space for tile buffer. + +There was insufficient memory to allocate an i/o buffer. +

    + +No space for strip buffer. + +There was insufficient memory to allocate an i/o buffer. +

    + +Can not handle format. + +The image has a format (combination of +BitsPerSample, + +SamplesPerPixel, + +and +PhotometricInterpretation) + +that can not be handled. +

    + +No space for B&W mapping table. + +There was insufficient memory to allocate a table used to map +grayscale data to +RGB. +

    + +No space for Palette mapping table. + +There was insufficient memory to allocate a table used to map +data to 8-bit +RGB. +  +

    BUGS

    + +Orientations other than bottom-left, or top-left are +not handled correctly. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T), + +TIFFReadRGBAImage(3T), + +TIFFReadRGBAStrip(3T), + +TIFFReadRGBATile(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    ALTERNATE RASTER FORMATS
    +
    SIMULTANEOUS RASTER STORE AND DISPLAY
    +
    SUPPORTING ADDITIONAL TIFF FORMATS
    +
    NOTES
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    BUGS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:38 GMT, November 23, 1999 + + diff --git a/html/man/TIFFReadDirectory.3t.html b/html/man/TIFFReadDirectory.3t.html new file mode 100755 index 0000000..6ee870b --- /dev/null +++ b/html/man/TIFFReadDirectory.3t.html @@ -0,0 +1,212 @@ + +Manpage of TIFFReadDirectory + +

    TIFFReadDirectory

    +Section: Misc. Reference Manual Pages (3T)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFReadDirectory - get the contents of the next directory in an open +TIFF +file +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +int TIFFReadDirectory(TIFF* tif) + +  +

    DESCRIPTION

    + +Read the next directory in the specified file and make it the +current directory. +Applications only need to call +TIFFReadDirectory + +to read multiple subfiles in a single +TIFF +file- +the first directory in a file is automatically read when +TIFFOpen + +is called. +  +

    NOTES

    + +If the library is compiled with +STRIPCHOP_SUPPORT +enabled, then images that have a single uncompressed strip or +tile of data are automatically treated as if they were made +up of multiple strips or tiles of approximately 8 kilobytes each. +This operation is done only in-memory; it does not alter the +contents of the file. +However, the construction of the ``chopped strips'' is visible +to the application through the number of strips [tiles] +returned by +TIFFNumberOfStrips + +[TIFFNumberOfTiles]. + +  +

    RETURN VALUES

    + +If the next directory was successfully read, 1 is returned. +Otherwise, 0 is returned if an error was encountered, +or if there are no more directories to be read. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +All warning messages are directed to the +TIFFWarning(3T) + +routine. +

    + +Seek error accessing TIFF directory. +An error occurred while positioning to the location of the +directory. +

    + +Wrong data type %d for field "%s". +The tag entry in the directory had an incorrect data type. +For example, an +ImageDescription + +tag with a +SHORT +data type. +

    + +TIFF directory is missing required "%s" field. +The specified tag is required to be present by the +TIFF +5.0 specification, but is missing. +The directory is (usually) unusable. +

    + +%s: Rational with zero denominator. +A directory tag has a +RATIONAL +value whose denominator is zero. +

    + +Incorrect count %d for field "%s" (%lu, expecting %lu); tag ignored. +The specified tag's count field is bad. +For example, a count other than 1 for a +SubFileType + +tag. +

    + +Cannot handle different per-sample values for field "%s". +The tag has +SamplesPerPixel + +values and they are not all the same; e.g. +BitsPerSample. + +The library is unable to handle images of this sort. +

    + +Count mismatch for field "%s"; expecting %d, got %d. +The count field in a +tag does not agree with the number expected by the library. +This should never happen, so if it does, the library refuses to +read the directory. +

    + +Invalid TIFF directory; tags are not sorted in ascending order. +The directory tags are not properly sorted as specified +in the +TIFF +5.0 specification. +This error is not fatal. +

    + +Ignoring unknown field with tag %d (0x%x). +An unknown tag was encountered in the directory; +the library ignores all such tags. +

    + +TIFF directory is missing requred "ImageLength" field. +The image violates the specification by not having a necessary field. +There is no way for the library to recover from this error. +

    + +TIFF directory is missing requred "PlanarConfig" field. +The image violates the specification by not having a necessary field. +There is no way for the library to recover from this error. +

    + +TIFF directory is missing requred "StripOffsets" field. +The image has multiple strips, but is missing the tag that +specifies the file offset to each strip of data. +There is no way for the library to recover from this error. +

    + +TIFF directory is missing requred "TileOffsets" field. +The image has multiple tiles, but is missing the tag that +specifies the file offset to each tile of data. +There is no way for the library to recover from this error. +

    + +TIFF directory is missing required "StripByteCounts" field. +The image has multiple strips, but is missing the tag that +specifies the size of each strip of data. +There is no way for the library to recover from this error. +

    + +TIFF directory is missing required "StripByteCounts" field, calculating from imagelength. +The image violates the specification by not having a necessary field. +However, when the image is comprised of only one strip or tile, the +library will estimate the missing value based on the file size. +

    + +Bogus "StripByteCounts" field, ignoring and calculating from imagelength. +Certain vendors violate the specification by writing zero for +the StripByteCounts tag when they want to leave the value +unspecified. +If the image has a single strip, the library will estimate +the missing value based on the file size. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T), + +TIFFWriteDirectory(3T), + +TIFFSetDirectory(3T), + +TIFFSetSubDirectory(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    NOTES
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:38 GMT, November 23, 1999 + + diff --git a/html/man/TIFFReadEncodedStrip.3t.html b/html/man/TIFFReadEncodedStrip.3t.html new file mode 100755 index 0000000..1e3e8f9 --- /dev/null +++ b/html/man/TIFFReadEncodedStrip.3t.html @@ -0,0 +1,103 @@ + +Manpage of TIFFReadEncodedStrip + +

    TIFFReadEncodedStrip

    +Section: Misc. Reference Manual Pages (3T)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFReadEncodedStrip - read and decode a strip of data from an open +TIFF +file +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +tsize_t TIFFReadEncodedStrip(TIFF* tif, tstrip_t strip, tdata_t buf, tsize_t size) + +  +

    DESCRIPTION

    + +Read the specified strip of data and place up to +size + +bytes of decompressed information in the (user supplied) data buffer. +  +

    NOTES

    + +The value of +strip + +is a ``raw strip number.'' +That is, the caller must take into account whether or not the +data are organized in separate planes (PlanarConfiguration=2). + +To read a full strip of data the data buffer should typically be +at least as large as the number returned by +TIFFStripSize(3T). + +

    + +The library attempts to hide bit- and byte-ordering differences +between the image and the native machine by converting data +to the native machine order. +Bit reversal is done if the +FillOrder + +tag is opposite to the native machine bit order. +16- and 32-bit samples are automatically byte-swapped if the +file was written with a byte order opposite to the native +machine byte order, +  +

    RETURN VALUES

    + +The actual number of bytes of data that were placed in +buf + +is returned; +TIFFReadEncodedStrip + +returns -1 if an error was encountered. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T), + +TIFFReadRawStrip(3T), + +TIFFReadScanline(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    NOTES
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:38 GMT, November 23, 1999 + + diff --git a/html/man/TIFFReadEncodedTile.3t.html b/html/man/TIFFReadEncodedTile.3t.html new file mode 100755 index 0000000..de57a77 --- /dev/null +++ b/html/man/TIFFReadEncodedTile.3t.html @@ -0,0 +1,107 @@ + +Manpage of TIFFReadEncodedTile + +

    TIFFReadEncodedTile

    +Section: Misc. Reference Manual Pages (3T)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFReadEncodedTile - read and decode a tile of data from an open +TIFF +file +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +int TIFFReadEncodedTile(TIFF* tif, u_long tile, u_char* buf, u_long size) + +  +

    DESCRIPTION

    + +Read the specified tile of data and place up to +size + +bytes of decompressed information in the (user supplied) data buffer. +  +

    NOTES

    + +The value of +tile + +is a ``raw tile number.'' +That is, the caller must take into account whether or not the +data are organized in separate planes (PlanarConfiguration=2). + +TIFFComputeTile + +automatically does this when converting an (x,y,z,sample) +coordinate quadruple to a tile number. +To read a full tile of data the data buffer should be +at least as large as the value returned by +TIFFTileSize. + +

    + +The library attempts to hide bit- and byte-ordering differences +between the image and the native machine by converting data +to the native machine order. +Bit reversal is done if the +FillOrder + +tag is opposite to the native machine bit order. +16- and 32-bit samples are automatically byte-swapped if the +file was written with a byte order opposite to the native +machine byte order, +  +

    RETURN VALUES

    + +The actual number of bytes of data that were placed in +buf + +is returned; +TIFFReadEncodedTile + +returns -1 if an error was encountered. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T), + +TIFFReadRawTile(3T), + +TIFFReadTile(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    NOTES
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:38 GMT, November 23, 1999 + + diff --git a/html/man/TIFFReadRGBAImage.3t.html b/html/man/TIFFReadRGBAImage.3t.html new file mode 100755 index 0000000..9d1440e --- /dev/null +++ b/html/man/TIFFReadRGBAImage.3t.html @@ -0,0 +1,262 @@ + +Manpage of TIFFReadRGBAImage + +

    TIFFReadRGBAImage

    +Section: Misc. Reference Manual Pages (3T)
    Updated: February 14, 1992
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFReadRGBAImage - read and decode an image into a fixed-format raster +  +

    SYNOPSIS

    + +
    +#include <tiffio.h>
    +
    +#define TIFFGetR(abgr)      ((abgr) & 0xff)
    +#define TIFFGetG(abgr)      (((abgr) >> 8) & 0xff)
    +#define TIFFGetB(abgr)      (((abgr) >> 16) & 0xff)
    +#define TIFFGetA(abgr)      (((abgr) >> 24) & 0xff)
    +
    +int TIFFReadRGBAImage(TIFF* tif, u_long width, u_long height, u_long* raster, int stopOnError)
    +
      +

    DESCRIPTION

    + +TIFFReadRGBAImage + +reads a strip- or tile-based image into memory, storing the
    +result in the user supplied +raster. + +The raster is assumed to be an array of +width + +times +height + +32-bit entries, where +width + +must be less than or equal to the width of the image (height + +may be any non-zero size). +If the raster dimensions are smaller than the image, the image data +is cropped to the raster bounds. +If the raster height is greater than that of the image, then the +image data are placed in the lower part of the raster. +(Note that the raster is assume to be organized such that the pixel +at location (x,y) is raster[y*width+x]; +with the raster origin in the lower-left hand corner.) +

    + +Raster pixels are 8-bit packed red, green, blue, alpha samples. +The macros +TIFFGetR, + +TIFFGetG, + +TIFFGetB, + +and +TIFFGetA + +should be used to access individual samples. +Images without Associated Alpha matting information have a constant +Alpha of 1.0 (255). +

    + +TIFFReadRGBAImage + +converts non-8-bit images by scaling sample values. +Palette, grayscale, bilevel, +CMYK, and YCbCr images are converted to +RGB +transparently. +Raster pixels are returned uncorrected by any colorimetry information +present in the directory. +

    + +The paramater +stopOnError + +specifies how to act if an error is encountered while reading +the image. +If +stopOnError + +is non-zero, then an error will terminate the operation; otherwise +TIFFReadRGBAImage + +will continue processing data until all the possible data in the +image have been requested. +  +

    NOTES

    + +In C++ the +stopOnError + +parameter defaults to 0. +

    + +Samples must be either 1, 2, 4, 8, or 16 bits. +Colorimetric samples/pixel must be either 1, 3, or 4 (i.e. +SamplesPerPixel + +minus +ExtraSamples). + +

    + +Palettte image colormaps that appear to be incorrectly written +as 8-bit values are automatically scaled to 16-bits. +

    + +TIFFReadRGBAImage + +is just a wrapper around the more general +TIFFRGBAImage(3T) + +facilities. +  +

    RETURN VALUES

    + +1 is returned if the image was successfully read and converted. +Otherwise, 0 is returned if an error was encountered and +stopOnError + +is zero. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +

    + +Sorry, can not handle %d-bit pictures. + +The image had +BitsPerSample + +other than 1, 2, 4, 8, or 16. +

    + +Sorry, can not handle %d-channel images. + +The image had +SamplesPerPixel + +other than 1, 3, or 4. +

    + +Missing needed "PhotometricInterpretation" tag. +The image did not have a tag that describes how to display +the data. +

    + +No "PhotometricInterpretation" tag, assuming RGB. +The image was missing a tag that describes how to display it, +but because it has 3 or 4 samples/pixel, it is assumed to be +RGB. +

    + +No "PhotometricInterpretation" tag, assuming min-is-black. +The image was missing a tag that describes how to display it, +but because it has 1 sample/pixel, it is assumed to be a grayscale +or bilevel image. +

    + +No space for photometric conversion table. + +There was insufficient memory for a table used to convert +image samples to 8-bit +RGB. +

    + +Missing required "Colormap" tag. +A Palette image did not have a required +Colormap + +tag. +

    + +No space for tile buffer. + +There was insufficient memory to allocate an i/o buffer. +

    + +No space for strip buffer. + +There was insufficient memory to allocate an i/o buffer. +

    + +Can not handle format. + +The image has a format (combination of +BitsPerSample, + +SamplesPerPixel, + +and +PhotometricInterpretation) + +that +TIFFReadRGBAImage + +can not handle. +

    + +No space for B&W mapping table. + +There was insufficient memory to allocate a table used to map +grayscale data to +RGB. +

    + +No space for Palette mapping table. + +There was insufficient memory to allocate a table used to map +data to 8-bit +RGB. +  +

    BUGS

    + +Orientations other than bottom-left, or top-left are +not handled correctly. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T), + +TIFFRGBAImage(3T), + +TIFFReadRGBAStrip(3T), + +TIFFReadRGBATile(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    NOTES
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    BUGS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:38 GMT, November 23, 1999 + + diff --git a/html/man/TIFFReadRGBAStrip.3t.html b/html/man/TIFFReadRGBAStrip.3t.html new file mode 100755 index 0000000..713a6b2 --- /dev/null +++ b/html/man/TIFFReadRGBAStrip.3t.html @@ -0,0 +1,249 @@ + +Manpage of TIFFReadRGBAStrip + +

    TIFFReadRGBAStrip

    +Section: Misc. Reference Manual Pages (3T)
    Updated: December 10, 1998
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFReadRGBAStrip - read and decode an image strip into a fixed-format raster +  +

    SYNOPSIS

    + +
    +#include <tiffio.h>
    +
    +#define TIFFGetR(abgr)      ((abgr) & 0xff)
    +#define TIFFGetG(abgr)      (((abgr) >> 8) & 0xff)
    +#define TIFFGetB(abgr)      (((abgr) >> 16) & 0xff)
    +#define TIFFGetA(abgr)      (((abgr) >> 24) & 0xff)
    +
    +int TIFFReadRGBAStrip(TIFF* tif, tstrip_t strip, uint32 * raster )
    +
      +

    DESCRIPTION

    + +TIFFReadRGBAStrip + +reads a single strip of a strip-based image into memory,
    +storing the result in the user supplied RGBA +raster. + +The raster is assumed to be an array of +width times rowsperstrip 32-bit entries, where width +is the width of the image (TIFFTAG_IMAGEWIDTH) and +rowsperstrip is the maximum lines in a strip (TIFFTAG_ROWSPERSTRIP). +

    +

    + +The +strip + +value should be the strip number (strip zero is the first) as returned by the +TIFFComputeStrip + +function, but always for sample 0. +

    +

    + +Note that the raster is assume to be organized such that the pixel +at location (x,y) is raster[y*width+x]; +with the raster origin in the +lower-left hand corner + +of the strip. That is bottom to top organization. When reading a partial +last strip in the file the last line of the image will begin at the +beginning of the buffer. +

    +

    + +Raster pixels are 8-bit packed red, green, blue, alpha samples. +The macros +TIFFGetR, + +TIFFGetG, + +TIFFGetB, + +and +TIFFGetA + +should be used to access individual samples. +Images without Associated Alpha matting information have a constant +Alpha of 1.0 (255). +

    + +See the +TIFFRGBAImage(3T) + +page for more details on how various image types are converted to RGBA +values. +  +

    NOTES

    + +Samples must be either 1, 2, 4, 8, or 16 bits. +Colorimetric samples/pixel must be either 1, 3, or 4 (i.e. +SamplesPerPixel + +minus +ExtraSamples). + +

    + +Palette image colormaps that appear to be incorrectly written +as 8-bit values are automatically scaled to 16-bits. +

    + +TIFFReadRGBAStrip + +is just a wrapper around the more general +TIFFRGBAImage(3T) + +facilities. It's main advantage over the similar +TIFFReadRGBAImage() + +function is that for large images a single +buffer capable of holding the whole image doesn't need to be allocated, +only enough for one strip. The +TIFFReadRGBATile() + +function does a similar operation for tiled images. +  +

    RETURN VALUES

    + +1 is returned if the image was successfully read and converted. +Otherwise, 0 is returned if an error was encountered. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +

    + +Sorry, can not handle %d-bit pictures. + +The image had +BitsPerSample + +other than 1, 2, 4, 8, or 16. +

    + +Sorry, can not handle %d-channel images. + +The image had +SamplesPerPixel + +other than 1, 3, or 4. +

    + +Missing needed "PhotometricInterpretation" tag. +The image did not have a tag that describes how to display +the data. +

    + +No "PhotometricInterpretation" tag, assuming RGB. +The image was missing a tag that describes how to display it, +but because it has 3 or 4 samples/pixel, it is assumed to be +RGB. +

    + +No "PhotometricInterpretation" tag, assuming min-is-black. +The image was missing a tag that describes how to display it, +but because it has 1 sample/pixel, it is assumed to be a grayscale +or bilevel image. +

    + +No space for photometric conversion table. + +There was insufficient memory for a table used to convert +image samples to 8-bit +RGB. +

    + +Missing required "Colormap" tag. +A Palette image did not have a required +Colormap + +tag. +

    + +No space for tile buffer. + +There was insufficient memory to allocate an i/o buffer. +

    + +No space for strip buffer. + +There was insufficient memory to allocate an i/o buffer. +

    + +Can not handle format. + +The image has a format (combination of +BitsPerSample, + +SamplesPerPixel, + +and +PhotometricInterpretation) + +that +TIFFReadRGBAImage + +can not handle. +

    + +No space for B&W mapping table. + +There was insufficient memory to allocate a table used to map +grayscale data to +RGB. +

    + +No space for Palette mapping table. + +There was insufficient memory to allocate a table used to map +data to 8-bit +RGB. +  +

    BUGS

    + +Orientations other than bottom-left, or top-left are +not handled correctly. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T), + +TIFFRGBAImage(3T), + +TIFFReadRGBAImage(3T), + +TIFFReadRGBATile(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    NOTES
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    BUGS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:38 GMT, November 23, 1999 + + diff --git a/html/man/TIFFReadRGBATile.3t.html b/html/man/TIFFReadRGBATile.3t.html new file mode 100755 index 0000000..ef5eebe --- /dev/null +++ b/html/man/TIFFReadRGBATile.3t.html @@ -0,0 +1,251 @@ + +Manpage of TIFFReadRGBATile + +

    TIFFReadRGBATile

    +Section: Misc. Reference Manual Pages (3T)
    Updated: December 10, 1998
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFReadRGBATile - read and decode an image tile into a fixed-format raster +  +

    SYNOPSIS

    + +
    +#include <tiffio.h>
    +
    +#define TIFFGetR(abgr)      ((abgr) & 0xff)
    +#define TIFFGetG(abgr)      (((abgr) >> 8) & 0xff)
    +#define TIFFGetB(abgr)      (((abgr) >> 16) & 0xff)
    +#define TIFFGetA(abgr)      (((abgr) >> 24) & 0xff)
    +
    +int TIFFReadRGBATile(TIFF* tif, uint32 x, uint32 y, uint32 * raster )
    +
      +

    DESCRIPTION

    + +TIFFReadRGBATile + +reads a single tile of a tile-based image into memory,
    +storing the result in the user supplied RGBA +raster. + +The raster is assumed to be an array of +width times length 32-bit entries, where width +is the width of a tile (TIFFTAG_TILEWIDTH) and +length is the height of a tile (TIFFTAG_TILELENGTH). +

    +

    + +The +x + +and +y + +values are the offsets from the top left corner to the top left corner +of the tile to be read. They must be an exact multiple of the tile +width and length. +

    +

    + +Note that the raster is assume to be organized such that the pixel +at location (x,y) is raster[y*width+x]; +with the raster origin in the +lower-left hand corner + +of the tile. That is bottom to top organization. Edge tiles which +partly fall off the image will be filled out with appropriate zeroed +areas. +

    +

    + +Raster pixels are 8-bit packed red, green, blue, alpha samples. +The macros +TIFFGetR, + +TIFFGetG, + +TIFFGetB, + +and +TIFFGetA + +should be used to access individual samples. +Images without Associated Alpha matting information have a constant +Alpha of 1.0 (255). +

    + +See the +TIFFRGBAImage(3T) + +page for more details on how various image types are converted to RGBA +values. +  +

    NOTES

    + +Samples must be either 1, 2, 4, 8, or 16 bits. +Colorimetric samples/pixel must be either 1, 3, or 4 (i.e. +SamplesPerPixel + +minus +ExtraSamples). + +

    + +Palette image colormaps that appear to be incorrectly written +as 8-bit values are automatically scaled to 16-bits. +

    + +TIFFReadRGBATile + +is just a wrapper around the more general +TIFFRGBAImage(3T) + +facilities. It's main advantage over the similar +TIFFReadRGBAImage() + +function is that for large images a single +buffer capable of holding the whole image doesn't need to be allocated, +only enough for one tile. The +TIFFReadRGBAStrip() + +function does a similar operation for stripped images. +  +

    RETURN VALUES

    + +1 is returned if the image was successfully read and converted. +Otherwise, 0 is returned if an error was encountered. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +

    + +Sorry, can not handle %d-bit pictures. + +The image had +BitsPerSample + +other than 1, 2, 4, 8, or 16. +

    + +Sorry, can not handle %d-channel images. + +The image had +SamplesPerPixel + +other than 1, 3, or 4. +

    + +Missing needed "PhotometricInterpretation" tag. +The image did not have a tag that describes how to display +the data. +

    + +No "PhotometricInterpretation" tag, assuming RGB. +The image was missing a tag that describes how to display it, +but because it has 3 or 4 samples/pixel, it is assumed to be +RGB. +

    + +No "PhotometricInterpretation" tag, assuming min-is-black. +The image was missing a tag that describes how to display it, +but because it has 1 sample/pixel, it is assumed to be a grayscale +or bilevel image. +

    + +No space for photometric conversion table. + +There was insufficient memory for a table used to convert +image samples to 8-bit +RGB. +

    + +Missing required "Colormap" tag. +A Palette image did not have a required +Colormap + +tag. +

    + +No space for tile buffer. + +There was insufficient memory to allocate an i/o buffer. +

    + +No space for strip buffer. + +There was insufficient memory to allocate an i/o buffer. +

    + +Can not handle format. + +The image has a format (combination of +BitsPerSample, + +SamplesPerPixel, + +and +PhotometricInterpretation) + +that +TIFFReadRGBAImage + +can not handle. +

    + +No space for B&W mapping table. + +There was insufficient memory to allocate a table used to map +grayscale data to +RGB. +

    + +No space for Palette mapping table. + +There was insufficient memory to allocate a table used to map +data to 8-bit +RGB. +  +

    BUGS

    + +Orientations other than bottom-left, or top-left are +not handled correctly. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T), + +TIFFRGBAImage(3T), + +TIFFReadRGBAImage(3T), + +TIFFReadRGBAStrip(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    NOTES
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    BUGS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:38 GMT, November 23, 1999 + + diff --git a/html/man/TIFFReadRawStrip.3t.html b/html/man/TIFFReadRawStrip.3t.html new file mode 100755 index 0000000..f34c90f --- /dev/null +++ b/html/man/TIFFReadRawStrip.3t.html @@ -0,0 +1,88 @@ + +Manpage of TIFFReadRawStrip + +

    TIFFReadRawStrip

    +Section: Misc. Reference Manual Pages (3T)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFReadRawStrip - return the undecoded contents +of a strip of data from an open +TIFF +file +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +tsize_t TIFFReadRawStrip(TIFF* tif, tstrip_t strip, tdata_t buf, tsize_t size) + +  +

    DESCRIPTION

    + +Read the contents of the specified strip into the +(user supplied) data buffer. +Note that the value of +strip + +is a ``raw strip number.'' +That is, the caller must take into account whether or not the +data is organized in separate planes (PlanarConfiguration=2). + +To read a full strip of data the data buffer should typically be +at least as large as the number returned by +TIFFStripSize. + +  +

    RETURN VALUES

    + +The actual number of bytes of data that were placed in +buf + +is returned; +TIFFReadEncodedStrip + +returns -1 if an error was encountered. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T), + +TIFFReadEncodedStrip(3T), + +TIFFReadScanline(3T), + +TIFFStripSize(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:38 GMT, November 23, 1999 + + diff --git a/html/man/TIFFReadRawTile.3t.html b/html/man/TIFFReadRawTile.3t.html new file mode 100755 index 0000000..d4fc935 --- /dev/null +++ b/html/man/TIFFReadRawTile.3t.html @@ -0,0 +1,91 @@ + +Manpage of TIFFReadRawTile + +

    TIFFReadRawTile

    +Section: Misc. Reference Manual Pages (3T)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFReadRawTile - return an undecoded tile of data from an open +TIFF +file +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +tsize_t TIFFReadRawTile(TIFF* tif, ttile_t tile, tdata_t buf, tsize_t size) + +  +

    DESCRIPTION

    + +Read the contents of the specified tile into the +(user supplied) data buffer. +Note that the value of +tile + +is a ``raw tile number.'' +That is, the caller must take into account whether or not the +data is organized in separate planes (PlanarConfiguration=2). + +TIFFComputeTile + +automatically does this when converting an (x,y,z,sample) +coordinate quadruple to a tile number. +To read a full tile of data the data buffer should typically be +at least as large as the value returned by +TIFFTileSize. + +  +

    RETURN VALUES

    + +The actual number of bytes of data that were placed in +buf + +is returned; +TIFFReadEncodedTile + +returns -1 if an error was encountered. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T), + +TIFFReadEncodedTile(3T), + +TIFFReadTile(3T), + +TIFFTileSize(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:38 GMT, November 23, 1999 + + diff --git a/html/man/TIFFReadScanline.3t.html b/html/man/TIFFReadScanline.3t.html new file mode 100755 index 0000000..e99b4bf --- /dev/null +++ b/html/man/TIFFReadScanline.3t.html @@ -0,0 +1,139 @@ + +Manpage of TIFFReadScanline + +

    TIFFReadScanline

    +Section: Misc. Reference Manual Pages (3T)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFReadScanline - read and decode a scanline of data from an open +TIFF +file +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +int TIFFReadScanline(TIFF* tif, tdata_t buf, uint32 row, tsample_t sample) + +  +

    DESCRIPTION

    + +Read the data for the specified row into the (user supplied) +data buffer +buf. + +The data are returned decompressed and, in the native byte- +and bit-ordering, but are otherwise packed (see further below). +The buffer must be large enough to hold an entire scanline of data. +Applications should call the routine +TIFFScanlineSize + +to find out the size (in bytes) of a scanline buffer. +The +row + +parameter is always used by +TIFFReadScanline; + +the +sample + +parameter is used only if data are organized in separate planes (PlanarConfiguration=2). + +  +

    NOTES

    + +The library attempts to hide bit- and byte-ordering differences +between the image and the native machine by converting data +to the native machine order. +Bit reversal is done if the +FillOrder + +tag is opposite to the native machine bit order. +16- and 32-bit samples are automatically byte-swapped if the +file was written with a byte order opposite to the native +machine byte order, +

    + +In C++ the +sample + +parameter defaults to 0. +  +

    RETURN VALUES

    + +TIFFReadScanline + +returns -1 if it detects an error; otherwise 1 is returned. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +

    + +Compression algorithm does not support random access. + +Data was requested in a non-sequential order from a file that +uses a compression algorithm and that has +RowsPerStrip + +greater than one. +That is, data in the image is stored in a compressed form, +and with multiple rows packed into a strip. +In this case, the library does not support random access to the data. +The data should either be accessed sequentially, or the file +should be converted so that each strip is made up of one row +of data. +  +

    BUGS

    + +Reading subsampled YCbCR data does not work correctly +because, for +PlanarConfiguration=2 + +the size of a scanline is not calculated on a per-sample basis, +and for +PlanarConfiguration=1 + +the library does not unpack the block-interleaved samples; use +the strip- and tile-based interfaces to read these formats. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T), + +TIFFReadEncodedStrip(3T), + +TIFFReadRawStrip(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    NOTES
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    BUGS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:38 GMT, November 23, 1999 + + diff --git a/html/man/TIFFReadTile.3t.html b/html/man/TIFFReadTile.3t.html new file mode 100755 index 0000000..12eddab --- /dev/null +++ b/html/man/TIFFReadTile.3t.html @@ -0,0 +1,120 @@ + +Manpage of TIFFReadTile + +

    TIFFReadTile

    +Section: Misc. Reference Manual Pages (3T)
    Updated: December 16, 1991
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFReadTile - read and decode a tile of data from an open +TIFF +file +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +tsize_t TIFFReadTile(TIFF* tif, tdata_t buf, uint32 x, uint32 y, uint32 z, tsample_t sample) + +  +

    DESCRIPTION

    + +Return the data for the tile +containing + +the specified coordinates. +The data placed in +buf + +are returned decompressed and, typically, in the native byte- +and bit-ordering, but are otherwise packed (see further below). +The buffer must be large enough to hold an entire tile of data. +Applications should call the routine +TIFFTileSize + +to find out the size (in bytes) of a tile buffer. +The +x + +and +y + +parameters are always used by +TIFFReadTile. + +The +z + +parameter is used if the image is deeper than 1 slice (ImageDepth>1). + +The +sample + +parameter is used only if data are organized in separate planes (PlanarConfiguration=2). + +  +

    NOTES

    + +The library attempts to hide bit- and byte-ordering differences +between the image and the native machine by converting data +to the native machine order. +Bit reversal is done if the +FillOrder + +tag is opposite to the native machine bit order. +16- and 32-bit samples are automatically byte-swapped if the +file was written with a byte order opposite to the native +machine byte order, +  +

    RETURN VALUES

    + +TIFFReadTile + +returns -1 if it detects an error; otherwise the number of +bytes in the decoded tile is returned. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFCheckTile(3T), + +TIFFComputeTile(3T), + +TIFFOpen(3T), + +TIFFReadEncodedTile(3T), + +TIFFReadRawTile(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    NOTES
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:38 GMT, November 23, 1999 + + diff --git a/html/man/TIFFSetDirectory.3t.html b/html/man/TIFFSetDirectory.3t.html new file mode 100755 index 0000000..3f5732d --- /dev/null +++ b/html/man/TIFFSetDirectory.3t.html @@ -0,0 +1,114 @@ + +Manpage of TIFFSetDirectory + +

    TIFFSetDirectory

    +Section: Misc. Reference Manual Pages (3T)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFSetDirectory, TIFFSetSubDirectory - set the current directory for an open +TIFF +file +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +int TIFFSetDirectory(TIFF* tif, tdir_t dirnum) + +
    + +int TIFFSetSubDirectory(TIFF* tif, uint32 diroff) + +  +

    DESCRIPTION

    + +TIFFSetDirectory + +changes the current directory and reads its contents with +TIFFReadDirectory. + +The parameter +dirnum + +specifies the subfile/directory as an integer number, with +the first directory numbered zero. +

    + +TIFFSetSubDirectory + +acts like +TIFFSetDirectory, + +except the directory is specified as a +file offset instead of an index; this is required for accessing +subdirectories linked through a +SubIFD + +tag. +  +

    RETURN VALUES

    + +On successful return 1 is returned. +Otherwise, 0 is returned if +dirnum + +or +diroff + +specifies a non-existent directory, or if an error was +encountered while reading the directory's contents. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +

    + +%s: Error fetching directory count. + +An error was encountered while reading the ``directory count'' field. +

    + +%s: Error fetching directory link. + +An error was encountered while reading the ``link value'' that +points to the next directory in a file. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFCurrentDirectory(3T), + +TIFFOpen(3T), + +TIFFReadDirectory(3T), + +TIFFWriteDirectory(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:38 GMT, November 23, 1999 + + diff --git a/html/man/TIFFSetField.3t.html b/html/man/TIFFSetField.3t.html new file mode 100755 index 0000000..aae8ec9 --- /dev/null +++ b/html/man/TIFFSetField.3t.html @@ -0,0 +1,269 @@ + +Manpage of TIFFSetField + +

    TIFFSetField

    +Section: Misc. Reference Manual Pages (3T)
    Updated: August 28, 1997
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFSetField - set the value(s) of a tag in a +TIFF +file open for writing +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +int TIFFSetField(TIFF* tif, ttag_t tag, ...) + +
    + +#include <stdarg.h> + +
    + +int TIFFVSetField(TIFF* tif, ttag_t tag, va_list ap) + +  +

    DESCRIPTION

    + +TIFFSetField + +sets the value of a field +or pseudo-tag in the current directory associated with +the open +TIFF +file +tif. + +(A +pseudo-tag + +is a parameter that is used to control the operation of the +TIFF +library but whose value is not read or written to the underlying file.) +To set the value of a field +the file must have been previously opened for writing with +TIFFOpen(3T); + +pseudo-tags can be set whether the file was opened for reading +or writing. +The field is identified by +tag, + +one of the values defined in the include file +tiff.h + +(see also the table below). +The actual value is specified using a variable argument list, +as prescribed by the +stdarg(3) + +interface (or, on some machines, the +varargs(3) + +interface.) +

    + +TIFFVSetField + +is functionally equivalent to +TIFFSetField + +except that it takes a pointer to a variable +argument list. +TIFFVSetField + +is useful for writing routines that are layered +on top of the functionality provided by +TIFFSetField. + +

    + +The tags understood by +libtiff, + +the number of parameter values, and the +expected types for the parameter values are shown below. +The data types are: +char* + +is null-terminated string and corresponds to the +ASCII +data type; +uint16 + +is an unsigned 16-bit value; +uint32 + +is an unsigned 32-bit value; +uint16* + +is an array of unsigned 16-bit values. +void* + +is an array of data values of unspecified type. +

    +Consult the +TIFF +specification for information on the meaning of each tag. +

    + +

    +
    +Tag Name                        Count  Types              Notes
    +
    +TIFFTAG_ARTIST                  1      char*
    +TIFFTAG_BADFAXLINES             1      uint32
    +TIFFTAG_BITSPERSAMPLE           1      uint16             +
    +TIFFTAG_CLEANFAXDATA            1      uint16
    +TIFFTAG_COLORMAP                3      uint16*            1<<BitsPerSample arrays
    +TIFFTAG_COMPRESSION             1      uint16             +
    +TIFFTAG_CONSECUTIVEBADFAXLINES  1      uint32
    +TIFFTAG_DATETIME                1      char*
    +TIFFTAG_DOCUMENTNAME            1      char*
    +TIFFTAG_DOTRANGE                2      uint16
    +TIFFTAG_EXTRASAMPLES            2      uint16,uint16*     + count & types array
    +TIFFTAG_FAXMODE                 1      int                + G3/G4 compression pseudo-tag
    +TIFFTAG_FAXFILLFUNC             1      TIFFFaxFillFunc    G3/G4 compression pseudo-tag
    +TIFFTAG_FILLORDER               1      uint16             +
    +TIFFTAG_GROUP3OPTIONS           1      uint32             +
    +TIFFTAG_GROUP4OPTIONS           1      uint32             +
    +TIFFTAG_HALFTONEHINTS           2      uint16
    +TIFFTAG_HOSTCOMPUTER            1      char*
    +TIFFTAG_IMAGEDESCRIPTION        1      char*
    +TIFFTAG_IMAGEDEPTH              1      uint32             +
    +TIFFTAG_IMAGELENGTH             1      uint32
    +TIFFTAG_IMAGEWIDTH              1      uint32             +
    +TIFFTAG_INKNAMES                1      char*
    +TIFFTAG_INKSET                  1      uint16             +
    +TIFFTAG_JPEGTABLES              2      uint32*,void*      + count & tables
    +TIFFTAG_JPEGQUALITY             1      int                JPEG pseudo-tag
    +TIFFTAG_JPEGCOLORMODE           1      int                + JPEG pseudo-tag
    +TIFFTAG_JPEGTABLESMODE          1      int                + JPEG pseudo-tag
    +TIFFTAG_MAKE                    1      char*
    +TIFFTAG_MATTEING                1      uint16             +
    +TIFFTAG_MAXSAMPLEVALUE          1      uint16
    +TIFFTAG_MINSAMPLEVALUE          1      uint16
    +TIFFTAG_MODEL                   1      char*
    +TIFFTAG_ORIENTATION             1      uint16
    +TIFFTAG_PAGENAME                1      char*
    +TIFFTAG_PAGENUMBER              2      uint16
    +TIFFTAG_PHOTOMETRIC             1      uint16
    +TIFFTAG_PLANARCONFIG            1      uint16             +
    +TIFFTAG_PREDICTOR               1      uint16             +
    +TIFFTAG_PRIMARYCHROMATICITIES   1      float*             6-entry array
    +TIFFTAG_REFERENCEBLACKWHITE     1      float*             + 2*SamplesPerPixel array
    +TIFFTAG_RESOLUTIONUNIT          1      uint16
    +TIFFTAG_ROWSPERSTRIP            1      uint32             + must be > 0
    +TIFFTAG_SAMPLEFORMAT            1      uint16             +
    +TIFFTAG_SAMPLESPERPIXEL         1      uint16             + value must be <= 4
    +TIFFTAG_SMAXSAMPLEVALUE         1      double
    +TIFFTAG_SMINSAMPLEVALUE         1      double
    +TIFFTAG_SOFTWARE                1      char*
    +TIFFTAG_STONITS                 1      double             +
    +TIFFTAG_SUBFILETYPE             1      uint32
    +TIFFTAG_SUBIFD                  2      uint16,uint32*     count & offsets array
    +TIFFTAG_TARGETPRINTER           1      char*
    +TIFFTAG_THRESHHOLDING           1      uint16
    +TIFFTAG_TILEDEPTH               1      uint32             +
    +TIFFTAG_TILELENGTH              1      uint32             + must be a multiple of 8
    +TIFFTAG_TILEWIDTH               1      uint32             + must be a multiple of 8
    +TIFFTAG_TRANSFERFUNCTION        1 or 3 dd                 uint16*1<<BitsPerSample entry arrays
    +TIFFTAG_XPOSITION               1      float
    +TIFFTAG_XRESOLUTION             1      float
    +TIFFTAG_WHITEPOINT              1      float*             2-entry array
    +TIFFTAG_YCBCRCOEFFICIENTS       1      float*             + 3-entry array
    +TIFFTAG_YCBCRPOSITIONING        1      uint16             +
    +TIFFTAG_YCBCRSAMPLING           2      uint16             +
    +TIFFTAG_YPOSITION               1      float
    +TIFFTAG_YRESOLUTION             1      float
    +TIFFTAG_ICCPROFILE              2      uint32,void*       count, profile data*
    +
    + +

    ++ Tag may not have its values changed once data is written. +
    + + +dd +If +SamplesPerPixel + +is one, then a single array is passed; otherwise three arrays should be +passed. + +* The contents of this field are quite complex. See +The ICC Profile Format Specification, + +Annex B.3 "Embedding ICC Profiles in TIFF Files" +(available at http://www.color.org) for an explanation. +
    + +  +

    RETURN VALUES

    + +1 is returned if the tag is defined in the current +directory; otherwise a 0 is returned. +  +

    RETURN VALUES

    + +1 is returned if the operation was successful. +Otherwise, 0 is returned if an error was detected. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +

    + +%s: Cannot modify tag "%s" while writing. +Data has already been written to the file, so the +specified tag's value can not be changed. +This restriction is applied to all tags that affect +the format of written data. +

    + +%d: Bad value for "%s". +An invalid value was supplied for the named tag. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T), + +TIFFGetField(3T), + +TIFFSetDirectory(3T), + +TIFFWriteDirectory(3T), + +TIFFReadDirectory(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    RETURN VALUES
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:38 GMT, November 23, 1999 + + diff --git a/html/man/TIFFWarning.3t.html b/html/man/TIFFWarning.3t.html new file mode 100755 index 0000000..f7fbbca --- /dev/null +++ b/html/man/TIFFWarning.3t.html @@ -0,0 +1,98 @@ + +Manpage of TIFFWarning + +

    TIFFWarning

    +Section: Misc. Reference Manual Pages (3T)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFWarning, TIFFSetWarningHandler - library warning interface +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +void TIFFWarning(const char* module, const char* fmt, ...) + +

    +#include <stdargh.h> + +
    + +typedef void (*TIFFWarningHandler)(const char* module, const char* fmt, va_list ap); + +
    + +TIFFWarningHandler TIFFSetWarningHandler(TIFFWarningHandler handler); + +  +

    DESCRIPTION

    + +TIFFWarning + +invokes the library-wide warning handler function +to (normally) write a warning message to the +stderr. + +The +fmt + +parameter is a +printf(3S) + +format string, and any number arguments can be supplied. +The +module + +parameter is interpreted as a string that, if non-zero, +should be printed before the message; it typically +is used to identify the software module in which a warning +is detected. +

    + +Applications that desire to capture control in the event of a warning +should use +TIFFSetWarningHandler + +to override the default warning handler. +A +NULL +(0) warning handler function may be installed to +suppress error messages. +  +

    RETURN VALUES

    + +TIFFSetWarningHandler + +returns a reference to the previous error handling function. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFError(3T), + +printf(3S) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    RETURN VALUES
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:38 GMT, November 23, 1999 + + diff --git a/html/man/TIFFWriteDirectory.3t.html b/html/man/TIFFWriteDirectory.3t.html new file mode 100755 index 0000000..86e6ffa --- /dev/null +++ b/html/man/TIFFWriteDirectory.3t.html @@ -0,0 +1,148 @@ + +Manpage of TIFFWriteDirectory + +

    TIFFWriteDirectory

    +Section: Misc. Reference Manual Pages (3T)
    Updated: December 16, 1991
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFWriteDirectory - write the current directory in an open +TIFF +file +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +int TIFFWriteDirectory(TIFF* tif) + +  +

    DESCRIPTION

    + +Write the contents of the current directory to the file and setup +to create a new subfile in the same file. +Applications only need to call +TIFFWriteDirectory + +when writing multiple subfiles to a single +TIFF +file. +TIFFWriteDirectory + +is automatically called by +TIFFClose + +and +TIFFFlush + +to write a modified directory if the file is open for writing. +  +

    RETURN VALUES

    + +1 is returned when the contents are successfully +written to the file. +Otherwise, 0 is returned if an error was encountered when writing +the directory contents. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +

    + +Error post-encoding before directory write. + +Before writing the contents of the current directory, any pending +data are flushed. +This message indicates that an error occurred while doing this. +

    + +Error flushing data before directory write. + +Before writing the contents of the current directory, any pending +data are flushed. +This message indicates that an error occurred while doing this. +

    + +Cannot write directory, out of space. + +There was not enough space to allocate a temporary area for +the directory that was to be written. +

    + +Error writing directory count. + +A write error occurred when writing the count of fields in the directory. +

    + +Error writing directory contents. + +A write error occurred when writing the directory fields. +

    + +Error writing directory link. + +A write error occurred when writing the link to the next directory. +

    + +Error writing data for field "%s". +A write error occurred when writing indirect data for the specified field. +

    + +Error writing TIFF header. + +A write error occurred when re-writing header at the front of the file. +

    + +Error fetching directory count. + +A read error occurred when fetching the directory count field for +a previous directory. +This can occur when setting up a link to the directory that is being +written. +

    + +Error fetching directory link. + +A read error occurred when fetching the directory link field for +a previous directory. +This can occur when setting up a link to the directory that is being +written. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T), + +TIFFError(3T), + +TIFFReadDirectory(3T), + +TIFFSetDirectory(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:38 GMT, November 23, 1999 + + diff --git a/html/man/TIFFWriteEncodedStrip.3t.html b/html/man/TIFFWriteEncodedStrip.3t.html new file mode 100755 index 0000000..d56a668 --- /dev/null +++ b/html/man/TIFFWriteEncodedStrip.3t.html @@ -0,0 +1,147 @@ + +Manpage of TIFFWriteEncodedStrip + +

    TIFFWriteEncodedStrip

    +Section: Misc. Reference Manual Pages (3T)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFWritedEncodedStrip - compress and write a strip of data to an open +TIFF +file +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +tsize_t TIFFWriteEncodedStrip(TIFF* tif, tstrip_t strip, tdata_t buf, tsize_t size) + +  +

    DESCRIPTION

    + +Compress +size + +bytes of raw data from +buf + +and write the result to the specified strip; replacing +any previously written data. +Note that the value of +strip + +is a ``raw strip number.'' +That is, the caller must take into account whether or not the +data are organized in separate places (PlanarConfiguration=2). + +  +

    NOTES

    + +The library writes encoded data using the native machine byte order. +Correctly implemented +TIFF +readers are expected to do any necessary byte-swapping to +correctly process image data with BitsPerSample greater than 8. +

    + +The strip number must be valid according to the current settings +of the +ImageLength + +and +RowsPerStrip + +tags. +An image may be dynamically grown by increasing the value of +ImageLength + +prior to each call to +TIFFWriteEncodedStrip. + +  +

    RETURN VALUES

    + +-1 is returned if an error was encountered. +Otherwise, the value of +size + +is returned. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +

    + +%s: File not open for writing. +The file was opened for reading, not writing. +

    + +Can not write scanlines to a tiled image. +The image is assumed to be organized in tiles because the +TileWidth + +and +TileLength + +tags have been set with +TIFFSetField(3T). + +

    + +%s: Must set "ImageWidth" before writing data. +The image's width has not be set before the first write. +See +TIFFSetField(3T) + +for information on how to do this. +

    + +%s: Must set "PlanarConfiguration" before writing data. +The organization of data has not be defined before the first write. +See +TIFFSetField(3T) + +for information on how to do this. +

    + +%s: No space for strip arrays". +There was not enough space for the arrays that hold strip +offsets and byte counts. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T), + +TIFFWriteScanline(3T), + +TIFFWriteRawStrip(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    NOTES
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:38 GMT, November 23, 1999 + + diff --git a/html/man/TIFFWriteEncodedTile.3t.html b/html/man/TIFFWriteEncodedTile.3t.html new file mode 100755 index 0000000..556b55e --- /dev/null +++ b/html/man/TIFFWriteEncodedTile.3t.html @@ -0,0 +1,137 @@ + +Manpage of TIFFWriteEncodedTile + +

    TIFFWriteEncodedTile

    +Section: Misc. Reference Manual Pages (3T)
    Updated: December 16, 1991
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFWritedEncodedTile - compress and write a tile of data to an open +TIFF +file +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +tsize_t TIFFWriteEncodedTile(TIFF* tif, ttile_t tile, tdata_t buf, tsize_t size) + +  +

    DESCRIPTION

    + +Compress +size + +bytes of raw data from +buf + +and +append + +the result to the end of the specified tile. +Note that the value of +tile + +is a ``raw tile number.'' +That is, the caller must take into account whether or not the +data are organized in separate places (PlanarConfiguration=2). + +TIFFComputeTile + +automatically does this when converting an (x,y,z,sample) +coordinate quadruple to a tile number. +  +

    NOTES

    + +The library writes encoded data using the native machine byte order. +Correctly implemented +TIFF +readers are expected to do any necessary byte-swapping to +correctly process image data with BitsPerSample greater than 8. +  +

    RETURN VALUES

    + +-1 is returned if an error was encountered. +Otherwise, the value of +size + +is returned. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +

    + +%s: File not open for writing. +The file was opened for reading, not writing. +

    + +Can not write tiles to a stripped image. +The image is assumed to be organized in strips because neither of the +TileWidth + +or +TileLength + +tags have been set with +TIFFSetField(3T). + +

    + +%s: Must set "ImageWidth" before writing data. +The image's width has not be set before the first write. +See +TIFFSetField(3T) + +for information on how to do this. +

    + +%s: Must set "PlanarConfiguration" before writing data. +The organization of data has not be defined before the first write. +See +TIFFSetField(3T) + +for information on how to do this. +

    + +%s: No space for tile arrays". +There was not enough space for the arrays that hold tile +offsets and byte counts. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T), + +TIFFWriteTile(3T), + +TIFFWriteRawTile(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    NOTES
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:38 GMT, November 23, 1999 + + diff --git a/html/man/TIFFWriteRawStrip.3t.html b/html/man/TIFFWriteRawStrip.3t.html new file mode 100755 index 0000000..a5dbf8a --- /dev/null +++ b/html/man/TIFFWriteRawStrip.3t.html @@ -0,0 +1,134 @@ + +Manpage of TIFFWriteRawstrip + +

    TIFFWriteRawstrip

    +Section: Misc. Reference Manual Pages (3T)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFWriteRawStrip - write a strip of raw data to an open +TIFF +file +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +tsize_t TIFFWriteRawStrip(TIFF* tif, tstrip_t strip, tdata_t buf, tsize_t size) + +  +

    DESCRIPTION

    + +Append +size + +bytes of raw data to the specified strip. +  +

    NOTES

    + +The strip number must be valid according to the current settings +of the +ImageLength + +and +RowsPerStrip + +tags. +An image may be dynamically grown by increasing the value of +ImageLength + +prior to each call to +TIFFWriteRawStrip. + +  +

    RETURN VALUES

    + +-1 is returned if an error occurred. +Otherwise, the value of +size + +is returned. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +

    + +%s: File not open for writing. +The file was opened for reading, not writing. +

    + +Can not write scanlines to a tiled image. +The image is assumed to be organized in tiles because the +TileWidth + +and +TileLength + +tags have been set with +TIFFSetField(3T). + +

    + +%s: Must set "ImageWidth" before writing data. +The image's width has not be set before the first write. +See +TIFFSetField(3T) + +for information on how to do this. +

    + +%s: Must set "PlanarConfiguration" before writing data. +The organization of data has not be defined before the first write. +See +TIFFSetField(3T) + +for information on how to do this. +

    + +%s: No space for strip arrays". +There was not enough space for the arrays that hold strip +offsets and byte counts. +

    + +%s: Strip %d out of range, max %d. +The specified strip is not a valid strip according to the +currently specified image dimensions. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T), + +TIFFWriteEncodedStrip(3T), + +TIFFWriteScanline(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    NOTES
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:38 GMT, November 23, 1999 + + diff --git a/html/man/TIFFWriteRawTile.3t.html b/html/man/TIFFWriteRawTile.3t.html new file mode 100755 index 0000000..09d9101 --- /dev/null +++ b/html/man/TIFFWriteRawTile.3t.html @@ -0,0 +1,116 @@ + +Manpage of TIFFWriteRawtile + +

    TIFFWriteRawtile

    +Section: Misc. Reference Manual Pages (3T)
    Updated: December 16, 1991
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFWriteRawTile - write a tile of raw data to an open +TIFF +file +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +tsize_t TIFFWriteRawTile(TIFF* tif, ttile_t tile, tdata_t buf, tsize_t size) + +  +

    DESCRIPTION

    + +Append +size + +bytes of raw data to the specified tile. +  +

    RETURN VALUES

    + +-1 is returned if an error occurred. +Otherwise, the value of +size + +is returned. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +

    + +%s: File not open for writing. +The file was opened for reading, not writing. +

    + +Can not write tiles to a stripped image. +The image is assumed to be organized in strips because neither of the +TileWidth + +or +TileLength + +tags have been set with +TIFFSetField(3T). + +

    + +%s: Must set "ImageWidth" before writing data. +The image's width has not be set before the first write. +See +TIFFSetField(3T) + +for information on how to do this. +

    + +%s: Must set "PlanarConfiguration" before writing data. +The organization of data has not be defined before the first write. +See +TIFFSetField(3T) + +for information on how to do this. +

    + +%s: No space for tile arrays". +There was not enough space for the arrays that hold tile +offsets and byte counts. +

    + +%s: Specified tile %d out of range, max %d. +The specified tile is not valid according to the currently +specified image dimensions. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T), + +TIFFWriteEncodedTile(3T), + +TIFFWriteScanline(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:38 GMT, November 23, 1999 + + diff --git a/html/man/TIFFWriteScanline.3t.html b/html/man/TIFFWriteScanline.3t.html new file mode 100755 index 0000000..75f5c78 --- /dev/null +++ b/html/man/TIFFWriteScanline.3t.html @@ -0,0 +1,225 @@ + +Manpage of TIFFWriteScanline + +

    TIFFWriteScanline

    +Section: Misc. Reference Manual Pages (3T)
    Updated: December 16, 1991
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFWriteScanline - write a scanline to an open +TIFF +file +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +int TIFFWriteScanline(TIFF* tif, tdata_t buf, uint32 row, tsample_t sample) + +  +

    DESCRIPTION

    + +Write data to a file at the specified row. +The +sample + +parameter is used only if data are organized in separate planes (PlanarConfiguration=2). + +The data are assumed to be uncompressed and in the native +bit- and byte-order of the host machine. +The data written to the file is +compressed according to the compression scheme +of the current +TIFF +directory (see further below). +If the current scanline is past the end of the current subfile, the +ImageLength + +field is automatically increased to include the scanline (except +for +PlanarConfiguration=2, + +where the +ImageLength + +cannot be changed once the first data are written). +If the +ImageLength + +is increased, the +StripOffsets + +and +StripByteCounts + +fields are similarly enlarged to reflect data written past the +previous end of image. +  +

    NOTES

    + +The library writes encoded data using the native machine byte order. +Correctly implemented +TIFF +readers are expected to do any necessary byte-swapping to +correctly process image data with BitsPerSample greater than 8. +The library attempts to hide bit-ordering differences +between the image and the native machine by converting data +from the native machine order. +

    + +In C++ the +sample + +parameter defaults to 0. +

    + +Once data are written to a file for the current directory, +the values of certain tags may not be altered; see +TIFFSetField(3T) + +for more information. +

    + +It is not possible to write scanlines to a file that +uses a tiled organization. The routine +TIFFIsTiled + +can be used to determine if the file is organized +as tiles or strips. +  +

    RETURN VALUES

    + +TIFFWriteScanline + +returns -1 if it immediately detects an error +and 1 for a successful write. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +

    + +%s: File not open for writing . + +The file was opened for reading, not writing. +

    + +Can not write scanlines to a tiled image. + +An attempt was made to write a scanline to a tiled image. +The image is assumed to be organized in tiles because the +TileWidth + +and +TileLength + +tags have been set with +TIFFSetField(3T). + +

    + +Compression algorithm does not support random access. + +Data was written in a non-sequential order to a file that +uses a compression algorithm and that has +RowsPerStrip + +greater than one. +That is, data in the image is to be stored in a compressed form, +and with multiple rows packed into a strip. +In this case, the library does not support random access to the data. +The data should either be written as entire strips, +sequentially by rows, or the value of +RowsPerStrip + +should be set to one. +

    + +%s: Must set "ImageWidth" before writing data. +The image's width has not be set before the first write. +See +TIFFSetField(3T) + +for information on how to do this. +

    + +%s: Must set "PlanarConfiguration" before writing data. +The organization of data has not be defined before the first write. +See +TIFFSetField(3T) + +for information on how to do this. +

    + +Can not change "ImageLength" when using separate planes. +Separate image planes are being used (PlanarConfiguration=2), + +but the number of rows has not been specified before the first write. +The library supports the dynamic growth of an image only when data +are organized in a contiguous manner (PlanarConfiguration=1). + +

    + +%d: Sample out of range, max %d. + +The +sample + +parameter was greater than the value of the SamplesPerPixel tag. +

    + +%s: No space for strip arrays . + +There was not enough space for the arrays that hold strip +offsets and byte counts. +  +

    BUGS

    + +Writing subsampled YCbCR data does not work correctly +because, for +PlanarConfiguration=2 + +the size of a scanline is not calculated on a per-sample basis, +and for +PlanarConfiguration=1 + +the library does not pack the block-interleaved samples. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T), + +TIFFWriteEncodedStrip(3T), + +TIFFWriteRawStrip(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    NOTES
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    BUGS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:39 GMT, November 23, 1999 + + diff --git a/html/man/TIFFWriteTile.3t.html b/html/man/TIFFWriteTile.3t.html new file mode 100755 index 0000000..b8d676c --- /dev/null +++ b/html/man/TIFFWriteTile.3t.html @@ -0,0 +1,109 @@ +Content-type: text/html + + +Manpage of TIFFWriteTile + +

    TIFFWriteTile

    +Section: Misc. Reference Manual Pages (3T)
    Updated: November 29, 1999
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFWriteTile - encode and write a tile of data to an open +TIFF +file +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +tsize_t TIFFWriteTile(TIFF* tif, tdata_t buf, uint32 x, uint32 y, uint32 z, tsample_t sample) + +  +

    DESCRIPTION

    + +Write the data for the tile +containing + +the specified coordinates. +The data in +buf + +are is (potentially) compressed, and written to the indicated file, normally +being appended to the end of the file. +The buffer must be contain an entire tile of data. +Applications should call the routine +TIFFTileSize + +to find out the size (in bytes) of a tile buffer. +The +x + +and +y + +parameters are always used by +TIFFWriteTile. + +The +z + +parameter is used if the image is deeper than 1 slice (ImageDepth>1). + +The +sample + +parameter is used only if data are organized in separate planes (PlanarConfiguration=2). + +  +

    RETURN VALUES

    + +TIFFWriteTile + +returns -1 if it detects an error; otherwise the number of +bytes in the tile is returned. +  +

    DIAGNOSTICS

    + +All error messages are directed to the +TIFFError(3T) + +routine. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFCheckTile(3T), + +TIFFComputeTile(3T), + +TIFFOpen(3T), + +TIFFReadTile(3T), + +TIFFWriteScanline(3T), + +TIFFWriteEncodedTile(3T), + +TIFFWriteRawTile(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    RETURN VALUES
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +Time: 18:38:00 GMT, November 30, 1999 + + diff --git a/html/man/TIFFbuffer.3t.html b/html/man/TIFFbuffer.3t.html new file mode 100755 index 0000000..00fdb2e --- /dev/null +++ b/html/man/TIFFbuffer.3t.html @@ -0,0 +1,101 @@ + +Manpage of TIFFBUFFER + +

    TIFFBUFFER

    +Section: Misc. Reference Manual Pages (3T)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFReadBufferSetup, +TIFFWriteBufferSetup +- I/O buffering control routines +  +

    SYNOPSIS

    + +
    +#include <tiffio.h>
    +int TIFFReadBufferSetup(TIFF*, tdata_t buffer, tsize_t size);
    +int TIFFWriteBufferSetup(TIFF*, tdata_t buffer, tsize_t size);
    +
    + +  +

    DESCRIPTION

    + +The following routines are provided for client-control of the +I/O buffers used by the library. +Applications need never use these routines; they are provided only +for ``intelligent clients'' that wish to optimize memory usage and/or +eliminate potential copy operations that can occur when working with +images that have data stored without compression. +

    + +TIFFReadBufferSetup + +sets up the data buffer used to read raw (encoded) data from a file. +If the specified pointer is +NULL +(zero), then a buffer of the appropriate size is allocated. +Otherwise the caller must guarantee that the buffer is large +enough to hold any individual strip of raw data. +TIFFReadBufferSetup + +returns a non-zero value if the setup was successful and zero otherwise. +

    + +TIFFWriteBufferSetup + +sets up the data buffer used to write raw (encoded) data to a file. +If the specified +size + +is -1 then the buffer size is selected to hold a complete +tile or strip, or at least 8 kilobytes, whichever is greater. +If the specified +buffer + +is +NULL +(zero), then a buffer of the appropriate size is dynamically allocated. +TIFFWriteBufferSetup + +returns a non-zero value if the setup was successful and zero otherwise. +  +

    DIAGNOSTICS

    + +%s: No space for data buffer at scanline %ld. + +TIFFReadBufferSetup + +was unable to dynamically allocate space for a data buffer. +

    + +%s: No space for output buffer. + +TIFFWriteBufferSetup + +was unable to dynamically allocate space for a data buffer. +  +

    SEE ALSO

    + +libtiff(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:39 GMT, November 23, 1999 + + diff --git a/html/man/TIFFcodec.3t.html b/html/man/TIFFcodec.3t.html new file mode 100755 index 0000000..cda02c8 --- /dev/null +++ b/html/man/TIFFcodec.3t.html @@ -0,0 +1,102 @@ + +Manpage of CODEC + +

    CODEC

    +Section: Misc. Reference Manual Pages (3T)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFFindCODEC, TIFFRegisterCODEC, TIFFUnRegisterCODEC - codec-related utility routines +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +const TIFFCodec* TIFFFindCODEC(uint16 scheme); + +
    + +TIFFCodec* TIFFRegisterCODEC(uint16 scheme, const char* method, TIFFInitMethod init); + +
    + +void TIFFUnRegisterCODEC(TIFFCodec* codec); + +  +

    DESCRIPTION

    + +libtiff + +supports a variety of compression schemes implemented by software +codecs. + +Each codec adheres to a modular interface that provides for +the decoding and encoding of image data; as well as some other +methods for initialization, setup, cleanup, and the control +of default strip and tile sizes. +Codecs are identified by the associated value of the +TIFF +Compression + +tag; e.g. 5 for +LZW +compression. +

    + +The +TIFFRegisterCODEC + +routine can be used to +augment or override the set of codecs available to an application. +If the specified +scheme + +already has a registered codec then it is +overridden + +and any images with data encoded with this +compression scheme will be decoded using the supplied coded. +  +

    DIAGNOSTICS

    + +No space to register compression scheme %s. + +TIFFRegisterCODEC + +was unable to allocate memory for the data structures needed +to register a codec. +

    + +Cannot remove compression scheme %s; not registered. + +TIFFUnRegisterCODEC + +did not locate the specified codec in the table of registered +compression schemes. +  +

    SEE ALSO

    + +libtiff(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:39 GMT, November 23, 1999 + + diff --git a/html/man/TIFFmemory.3t.html b/html/man/TIFFmemory.3t.html new file mode 100755 index 0000000..bf92beb --- /dev/null +++ b/html/man/TIFFmemory.3t.html @@ -0,0 +1,104 @@ + +Manpage of MEMORY + +

    MEMORY

    +Section: Misc. Reference Manual Pages (3T)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +_TIFFmalloc, _TIFFrealloc, _TIFFfree, _TIFFmemset, _TIFFmemcpy, _TIFFmemcmp, - memory management-related functions for use with +TIFF +files +  +

    SYNOPSIS

    + +
    +#include <tiffio.h>
    +tdata_t _TIFFmalloc(tsize_t);
    +tdata_t _TIFFrealloc(tdata_t, tsize_t);
    +void _TIFFfree(tdata_t);
    +void _TIFFmemset(tdata_t, int, tsize_t);
    +void _TIFFmemcpy(tdata_t, const tdata_t, tsize_t);
    +int _TIFFmemcmp(const tdata_t, const tdata_t, tsize_t);
    +
    + +  +

    DESCRIPTION

    + +These routines are provided for writing portable software that uses +libtiff; + +they hide any memory-management related issues, such as dealing with +segmented architectures found on 16-bit machines. +

    + +_TIFFmalloc + +and +_TIFFrealloc + +are used to dynamically allocate and reallocate memory used by +libtiff; + +such as memory passed into the I/O routines. +Memory allocated through these interfaces is released back to the +system using the +_TIFFfree + +routine. +

    + +Memory allocated through one of the above interfaces can be set to +a known value using +_TIFFmemset, + +copied to another memory location using +_TIFFmemcpy, + +or compared for equality using +_TIFFmemcmp. + +These routines conform to the equivalent +ANSI +C routines: +memset, + +memcpy, + +and +memcmp, + +repsectively. +  +

    DIAGNOSTICS

    + +None. +  +

    SEE ALSO

    + +libtiff(3T), + +malloc(3C), + +memory(3C) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:39 GMT, November 23, 1999 + + diff --git a/html/man/TIFFquery.3t.html b/html/man/TIFFquery.3t.html new file mode 100755 index 0000000..5a364d9 --- /dev/null +++ b/html/man/TIFFquery.3t.html @@ -0,0 +1,178 @@ + +Manpage of QUERY + +

    QUERY

    +Section: Misc. Reference Manual Pages (3T)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFCurrentRow, +TIFFCurrentStrip, +TIFFCurrentTile, +TIFFCurrentDirectory, +TIFFLastDirectory, +TIFFFileno, +TIFFFileName, +TIFFGetMode, +TIFFIsTiled, +TIFFIsByteSwapped, +TIFFIsUpSampled, +TIFFIsMSB2LSB +- query routines +  +

    SYNOPSIS

    + +
    +#include <tiffio.h>
    +uint32 TIFFCurrentRow(TIFF* tif)
    +tstrip_t TIFFCurrentStrip(TIFF* tif)
    +ttile_t TIFFCurrentTile(TIFF* tif)
    +tdir_t TIFFCurrentDirectory(TIFF* tif)
    +int TIFFLastDirectory(TIFF* tif)
    +int TIFFFileno(TIFF* tif)
    +char* TIFFFileName(TIFF* tif)
    +int TIFFGetMode(TIFF* tif)
    +int TIFFIsTiled(TIFF* tif)
    +int TIFFIsByteSwapped(TIFF* tif)
    +int TIFFIsUpSampled(TIFF* tif)
    +int TIFFIsMSB2LSB(TIFF* tif)
    +const char* TIFFGetVersion(void)
    +
    + +  +

    DESCRIPTION

    + +The following routines return status information about an open +TIFF +file. +

    + +TIFFCurrentDirectory + +returns the index of the current directory (directories +are numbered starting at 0). +This number is suitable for use with the +TIFFSetDirectory + +routine. +

    + +TIFFLastDirectory + +returns a non-zero value if the current directory is the +last directory in the file; +otherwise zero is returned. +

    + +TIFFCurrentRow, + +TIFFCurrentStrip, + +and +TIFFCurrentTile, + +return the current row, strip, and tile, respectively, +that is being read or written. +These values are updated each time a read or write is done. +

    + +TIFFFileno + +returns the underlying file descriptor used to access the +TIFF +image in the filesystem. +

    + +TIFFFileName + +returns the pathname argument passed to +TIFFOpen + +or +TIFFFdOpen. + +

    + +TIFFGetMode + +returns the mode with which the underlying file was opened. +On +UNIX +systems, this is the value passed to the +open(2) + +system call. +

    + +TIFFIsTiled + +returns a non-zero value if the image data has +a tiled organization. +Zero is returned if the image data is organized in strips. +

    + +TIFFIsByteSwapped + +returns a non-zero value if the image data was in a different +byte-order than the host machine. +Zero is returned if the image data and local host byte-orders +are the same. +Data samples that are more than 8 bits wide must be byte-swapped +by the application. +

    + +TIFFIsUpSampled + +returns a non-zero value if image data returned through the +read interface routines is being up-sampled. +This can be useful to applications that want to calculate +I/O buffer sizes to reflect this usage (though the usual +strip and tile size routines already do this). +

    + +TIFFIsMSB2LSB + +returns a non-zero value if the image data is being returned with +bit 0 as the most significant bit. +

    + +TIFFGetVersion + +returns an +ASCII +string that has a version stamp for the +TIFF +library software. +  +

    DIAGNOSTICS

    + +None. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T), + +TIFFFdOpen(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:39 GMT, November 23, 1999 + + diff --git a/html/man/TIFFsize.3t.html b/html/man/TIFFsize.3t.html new file mode 100755 index 0000000..d88d332 --- /dev/null +++ b/html/man/TIFFsize.3t.html @@ -0,0 +1,75 @@ + +Manpage of TIFFSIZE + +

    TIFFSIZE

    +Section: Misc. Reference Manual Pages (3T)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFScanlineSize, +TIFFRasterScanlineSize, +- return the size of various items associated with an open +TIFF +file +  +

    SYNOPSIS

    + +
    +#include <tiffio.h>
    +tsize_t TIFFRasterScanlineSize(TIFF* tif)
    +tsize_t TIFFScanlineSize(TIFF* tif)
    +
      +

    DESCRIPTION

    + +TIFFScanlineSize + +returns the size in bytes of a row of data as it would be +returned in a call to +TIFFReadScanline, + +or as it would be expected in a call to +TIFFWriteScanline. + +

    + +TIFFRasterScanlineSize + +returns the size in bytes of a complete decoded and packed +raster scanline. +Note that this value may be different from the value returned by +TIFFScanlineSize + +if data is stored as separate planes. +  +

    DIAGNOSTICS

    + +None. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFOpen(3T), + +TIFFReadScanline(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:39 GMT, November 23, 1999 + + diff --git a/html/man/TIFFstrip.3t.html b/html/man/TIFFstrip.3t.html new file mode 100755 index 0000000..788c54f --- /dev/null +++ b/html/man/TIFFstrip.3t.html @@ -0,0 +1,131 @@ + +Manpage of TIFFSTRIP + +

    TIFFSTRIP

    +Section: Misc. Reference Manual Pages (3T)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFDefaultStripSize, +TIFFStripSize, +TIFFVStripSize, +TIFFComputeStrip, +TIFFNumberOfStrips +- strip-related utility routines +  +

    SYNOPSIS

    + +
    +#include <tiffio.h>
    +uint32 TIFFDefaultStripSize(TIFF* tif, uint32 estimate)
    +tsize_t TIFFStripSize(TIFF* tif)
    +tsize_t TIFFVStripSize(TIFF* tif, uint32 nrows)
    +tstrip_t TIFFComputeStrip(TIFF* tif, uint32 row, tsample_t sample)
    +tstrip_t TIFFNumberOfStrips(TIFF* tif)
    +
    + +  +

    DESCRIPTION

    + +TIFFDefaultStripSize + +returns the number of rows for a reasonable-sized strip according +to the current settings of the +ImageWidth, + +BitsPerSample, + +SamplesPerPixel, + +tags and any compression-specific requirements. +If the +estimate + +parameter, if non-zero, then it is taken as an estimate of the desired +strip size and adjusted according to any compression-specific requirements. +The value returned by this function is typically used to define the +RowsPerStrip + +tag. +In lieu of any unusual requirements +TIFFDefaultStripSize + +tries to create strips that have approximately +8 kilobytes of uncompressed data. +

    + +TIFFStripSize + +returns the equivalent size for a strip of data as it would +be returned in a call to +TIFFReadEncodedStrip + +or as it would be expected in a call to +TIFFWriteEncodedStrip. + +

    + +TIFFVStripSize + +returns the number of bytes in a strip with +nrows + +rows of data. +

    + +TIFFComputeStrip + +returns the strip that contains the specified coordinates. +A valid strip is always returned; +out-of-range coordinate values are clamped to the bounds of the image. +The +row + +parameter is always used in calculating a strip. +The +sample + +parameter is used only if data are organized in separate planes (PlanarConfiguration=2). + +

    + +TIFFNumberOfStrips + +returns the number of strips in the image. +  +

    DIAGNOSTICS

    + +None. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFReadEncodedStrip(3T), + +TIFFReadRawStrip(3T), + +TIFFWriteEncodedStrip(3T), + +TIFFWriteRawStrip(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:39 GMT, November 23, 1999 + + diff --git a/html/man/TIFFswab.3t.html b/html/man/TIFFswab.3t.html new file mode 100755 index 0000000..268b0ce --- /dev/null +++ b/html/man/TIFFswab.3t.html @@ -0,0 +1,108 @@ + +Manpage of SWAB + +

    SWAB

    +Section: Misc. Reference Manual Pages (3T)
    Updated: December 16, 1991
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFReverseBits, TIFFSwabShort, TIFFSwabLong, TIFFSwabArrayOfShort, TIFFSwabArrayOfLong - byte- and bit-swapping routines +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +const unsigned char* TIFFGetBitRevTable(int reversed); + +
    + +void TIFFReverseBits(u_char* data, unsigned long nbytes) + +
    + +void TIFFSwabShort(uint16* data) + +
    + +void TIFFSwabLong(uint32* data) + +
    + +void TIFFSwabArrayOfShort(uint16* data, unsigned long nshorts) + +
    + +void TIFFSwabArrayOfLong(uint32* data, unsigned long nlongs) + +  +

    DESCRIPTION

    + +The following routines are used by the library to swap +16- and 32-bit data and to reverse the order of bits in bytes. +

    + +TIFFSwabShort + +and +TIFFSwabLong + +swap the bytes in a single 16-bit and 32-bit item, respectively. +TIFFSwabArrayOfShort + +and +TIFFSwabArrayOfLong + +swap the bytes in an array of 16-bit and 32-bit items, respectively. +

    + +TIFFReverseBits + +replaces each byte in +data + +with the equivalent bit-reversed value. +This operation is done with a lookup table, +TIFFBitRevTable + +which is declared public. +A second table, +TIFFNoBitRevTable + +is also declared public; it is a lookup table that +can be used as an +identity function; + +i.e. +TIFFNoBitRevTable[n] == n. + +  +

    DIAGNOSTICS

    + +None. +  +

    SEE ALSO

    + +libtiff(3T), + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:39 GMT, November 23, 1999 + + diff --git a/html/man/TIFFtile.3t.html b/html/man/TIFFtile.3t.html new file mode 100755 index 0000000..5baaf5c --- /dev/null +++ b/html/man/TIFFtile.3t.html @@ -0,0 +1,183 @@ + +Manpage of TIFFTILE + +

    TIFFTILE

    +Section: Misc. Reference Manual Pages (3T)
    Updated: February 14, 1992
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +TIFFTileSize, +TIFFTileRowSize, +TIFFVTileSize, +TIFFDefaultTileSize, +TIFFComputeTile, +TIFFCheckTile, +TIFFNumberOfTiles +- tile-related utility routines +  +

    SYNOPSIS

    + +
    +#include <tiffio.h>
    +void TIFFDefaultTileSize(TIFF* tif, uint32* tw, uint32* th)
    +tsize_t TIFFTileSize(TIFF* tif)
    +tsize_t TIFFTileRowSize(TIFF* tif)
    +tsize_t TIFFVTileSize(TIFF* tif, uint32 nrows)
    +ttile_t TIFFComputeTile(TIFF* tif, uint32 x, uint32 y, uint32 z, tsample_t sample)
    +int TIFFCheckTile(TIFF* tif, uint32 x, uint32 y, uint32 z, tsample_t sample)
    +ttile_t TIFFNumberOfTiles(TIFF* tif)
    +
    + +  +

    DESCRIPTION

    + +TIFFDefaultTileSize + +returns the pixel width and height of a reasonable-sized tile; +suitable for setting up the +TileWidth + +and +TileLength + +tags. +If the +tw + +and +th + +values passed in are non-zero, then they are adjusted to reflect +any compression-specific requirements. +The returned width and height are constrained to be a multiple +of 16 pixels to conform with the +TIFF +specification. +

    + +TIFFTileSize + +returns the equivalent size for a tile of data as it would +be returned in a call to +TIFFReadTile + +or as it would be expected in a call to +TIFFWriteTile. + +

    + +TIFFVTileSize + +returns the number of bytes in a row-aligned tile with +nrows + +of data. +

    + +TIFFTileRowSize + +returns the number of bytes of a row of data in a tile. +

    + +TIFFComputeTile + +returns the tile that contains the specified coordinates. +A valid tile is always returned; +out-of-range coordinate values are clamped to the bounds of the image. +The +x + +and +y + +parameters are always used in calculating a tile. +The +z + +parameter is used if the image is deeper than 1 slice (ImageDepth>1). + +The +sample + +parameter is used only if data are organized in separate planes (PlanarConfiguration=2). + +

    + +TIFFCheckTile + +returns a non-zero value if the supplied coordinates are +within the bounds of the image and zero otherwise. +The +x + +parameter is checked against the value of the +ImageWidth + +tag. +The +y + +parameter is checked against the value of the +ImageLength + +tag. +The +z + +parameter is checked against the value of the +ImageDepth + +tag (if defined). +The +sample + +parameter is checked against the value of the +SamplesPerPixel + +parameter if the data are organized in separate planes. +

    + +TIFFNumberOfTiles + +returns the number of tiles in the image. +  +

    DIAGNOSTICS

    + +None. +  +

    SEE ALSO

    + +libtiff(3T), + +TIFFReadEncodedTile(3T), + +TIFFReadRawTile(3T), + +TIFFReadTile(3T), + +TIFFWriteEncodedTile(3T), + +TIFFWriteRawTile(3T), + +TIFFWriteTile(3T) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:39 GMT, November 23, 1999 + + diff --git a/html/man/fax2ps.1.html b/html/man/fax2ps.1.html new file mode 100755 index 0000000..15ec9d0 --- /dev/null +++ b/html/man/fax2ps.1.html @@ -0,0 +1,210 @@ + +Manpage of FAX2PS + +

    FAX2PS

    +Section: User Commands (1)
    Updated: March 16, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +fax2ps - convert a +TIFF +facsimile to compressed POSTSCRIPTtm +  +

    SYNOPSIS

    + +fax2ps + +[ +options + +] [ +file... + +] +  +

    DESCRIPTION

    + +fax2ps + +reads one or more +TIFF +facsimile image files and prints a compressed form of +POSTSCRIPT on the standard output that is suitable for printing. +

    + +By default, each page is scaled to reflect the +image dimensions and resolutions stored in the file. +The +-x + +and +-y + +options can be used to specify the horizontal and vertical +image resolutions (lines/inch), respectively. +If the +-S + +option is specified, each page is scaled to fill an output page. +The default output page is 8.5 by 11 inches. +Alternate page dimensions can be specified in inches with the +-W + +and +-H + +options. +

    + +By default +fax2ps + +generates POSTSCRIPT for all pages in the file. +The +-p + +option can be used to select one or more pages from +a multi-page document. +

    + +fax2ps + +generates a compressed form of POSTSCRIPT that is +optimized for sending pages of text to a POSTSCRIPT +printer attached to a host through a low-speed link (such +as a serial line). +Each output page is filled with white and then only +the black areas are drawn. +The POSTSCRIPT specification of the black drawing operations +is optimized by using a special font that encodes the +move-draw operations required to fill +the black regions on the page. +This compression scheme typically results in a substantially +reduced POSTSCRIPT description, relative to the straightforward +imaging of the page with a POSTSCRIPT +image + +operator. +This algorithm can, however, be ineffective +for continuous-tone and white-on-black images. +For these images, it sometimes is more efficient to send +the raster bitmap image directly; see +tiff2ps(1). + +  +

    OPTIONS

    + +
    +
    -p number + +
    +Print only the indicated page. +Multiple pages may be printed by specifying +this option more than once. +
    -x resolution + +
    +Use +resolution + +as the horizontal resolution, in dots/inch, of the image data. +By default this value is taken from the file. +
    -y resolution + +
    +Use +resolution + +as the vertical resolution, in lines/inch, of the image data. +By default this value is taken from the file. +
    -S + +
    +Scale each page of image data to fill the output page dimensions. +By default images are presented according to the dimension +information recorded in the +TIFF +file. +
    -W width + +
    +Use +width + +as the width, in inches, of the output page. +The default page width is 8.5 inches. +
    -H height + +
    +Use +height + +as the height, in inches, of the output page. +The default page height is 11 inches. +
    +  +

    DIAGNOSTICS

    + +Some messages about malformed +TIFF +images come from the +TIFF +library. +

    + +Various messages about badly formatted facsimile images +may be generated due to transmission errors in received +facsimile. +fax2ps + +attempts to recover from such data errors by resynchronizing +decoding at the end of the current scanline. +This can result in long horizontal black lines in the resultant +POSTSCRIPT image. +  +

    NOTES

    + +If the destination printer supports POSTSCRIPT Level II then +it is always faster to just send the encoded bitmap generated +by the +tiff2ps(1) + +program. +  +

    BUGS

    + +fax2ps + +should probably figure out when it is doing a poor +job of compressing the output and just generate +POSTSCRIPT to image the bitmap raster instead. +  +

    SEE ALSO

    + +tiff2ps(1), + +libtiff(3) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    OPTIONS
    +
    DIAGNOSTICS
    +
    NOTES
    +
    BUGS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:47 GMT, November 23, 1999 + + diff --git a/html/man/fax2tiff.1.html b/html/man/fax2tiff.1.html new file mode 100755 index 0000000..aa38b0b --- /dev/null +++ b/html/man/fax2tiff.1.html @@ -0,0 +1,257 @@ + +Manpage of FAX2TIFF + +

    FAX2TIFF

    +Section: User Commands (1)
    Updated: September 24, 1994
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +fax2tiff - create a +TIFF +Class F fax file from raw fax data +  +

    SYNOPSIS

    + +fax2tiff + +[ +options + +] [ +-o + +output.tif + +] +input.g3 + +  +

    DESCRIPTION

    + +Fax2tiff + +creates a +TIFF +file containing +CCITT +Group 3 or Group 4 encoded data from one or more files containing ``raw'' +Group 3 encoded data (typically obtained directly from a fax modem). +By default, each row of data in the resultant +TIFF +file is 2-dimensionally encoded and +padded or truncated to 1728 pixels, as needed. +The resultant image is a set of low resolution (98 lines/inch) +or medium resolution (196 lines/inch) +pages, each of which is a single strip of data. +The generated file conforms to the +TIFF +Class F (FAX) specification for storing facsimile data. +This means, in particular, that each page of the data does +not + +include the trailing +return to control + +(RTC) code; as required +for transmission by the +CCITT +Group 3 specifications. +The old, ``classic'', format is created if the +-c + +option is used. +(The Class F format can also be requested with the +-f + +option.) +

    + +The default name of the output image is +fax.tif; + +this can be changed with the +-o + +option. +Each input file is assumed to be a separate page of facsimile data +from the same document. +The order in which input files are specified on the command +line is the order in which the resultant pages appear in the +output file. +  +

    OPTIONS

    + +Options that affect the interpretation of input data are: +
    +
    -2 + +
    +Assume input data is 2-d Huffman encoded. +
    -B + +
    +Assume input data was encoded with +black as 0 and white as 1. +
    -L + +
    +Treat input data as having bits filled from least +significant bit (LSB) to most significant bit (MSB). +(This is the default.) +
    -M + +
    +Treat input data as having bits filled from most +significant bit (MSB) to most least bit (LSB). +
    -R + +
    +Specify the vertical resolution, in lines/inch, of the +input images. +By default input are assumed to have a vertical +resolution of 196 lines/inch. +If images are low resolution facsimile, a value of +98 lines/inch should be specified. +
    -W + +
    +Assume input data was encoded with +black as 1 and white as 0. +(This is the default.) +
    +

    + +Options that affect the output file format are: +

    +
    -1 + +
    +Force output to be compressed with the 1-dimensional +version of the +CCITT +Group 3 Huffman encoding algorithm. +
    -4 + +
    +Force output to be compressed with the +CCITT +Group 4 Huffman encoding. +
    -o + +
    +Specify the name of the output file. +
    -p + +
    +Force the last bit of each +End Of Line + +(EOL) code to land on a byte boundary. +This ``zero padding'' will be reflected in the contents of the +Group3Options + +tag of the resultant +TIFF +file. +
    -s + +
    +Stretch the input image vertically by writing each input row of +data twice to the output file. +
    -v + +
    +Force +fax2tiff + +to print the number of rows of data it retrieved from the input file. +
    +  +

    DIAGNOSTICS

    + +The following warnings and errors come from the decoding +routines in the library. +

    + +Warning, %s: Premature EOL at scanline %d (x %d).\n. + +The input data had a row that was shorter than the expected value of 1728. +The row is padded with white. +

    + +%s: Premature EOF at scanline %d (x %d).\n. + +The decoder ran out of data in the middle of a scanline. +The resultant row is padded with white. +

    + +%s: Bad code word at row %d, x %d\n. + +An invalid Group 3 +code + +was encountered while decoding the input file. +The row number and horizontal position is given. +The remainder of the input row is discarded, while +the corresponding output row is padded with white. +

    + +%s: Bad 2D code word at scanline %d.\n. + +An invalid Group 4 or 2D Group 3 +code + +was encountered while decoding the input file. +The row number and horizontal position is given. +The remainder of the input row is discarded, while +the corresponding output row is padded with white. +  +

    BUGS

    + +Should not have the constant width 1728 built into it. +Input data are assumed to have a a ``top left'' orientation; +it should be possible to override this assumption +from the command line. +  +

    SEE ALSO

    + +CCITT Recommendation T.4 + +(Standardization of Group 3 Facsimile Apparatus for Document Transmission). +

    + +The Spirit of TIFF Class F, + +an appendix to the TIFF 5.0 specification prepared by Cygnet Technologies. +

    + +tiffinfo(1), + +tiffdither(1), + +tiffgt(1), + +libtiff(3). + + +


    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    OPTIONS
    +
    DIAGNOSTICS
    +
    BUGS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:47 GMT, November 23, 1999 + + diff --git a/html/man/gif2tiff.1.html b/html/man/gif2tiff.1.html new file mode 100755 index 0000000..d0c3ff9 --- /dev/null +++ b/html/man/gif2tiff.1.html @@ -0,0 +1,112 @@ + +Manpage of GIF2TIFF + +

    GIF2TIFF

    +Section: User Commands (1)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +gif2tiff - create a +TIFF +file from a GIF87 format image file +  +

    SYNOPSIS

    + +gif2tiff + +[ +options + +] +input.gif + +output.tif + +  +

    DESCRIPTION

    + +Gif2tiff + +converts a file in the GIF87 format to +TIFF. +The +TIFF +image is created as a palette image, with samples +compressed with the Lempel-Ziv & Welch algorithm (Compression=5). + +These characteristics can overriden, or explicitly specified +with the options described below. +  +

    OPTIONS

    + +
    +
    -c + +
    +Specify a compression scheme to use when writing image data: +-c none + +for no compression, +-c packbits + +for the PackBits compression algorithm, +-c zip + +for the Deflate compression algorithm, +and +-c lzw + +for Lempel-Ziv & Welch (the default). +
    -r + +
    +Write data with a specified number of rows per strip; +by default the number of rows/strip is selected so that each strip +is approximately 8 kilobytes. +
    +  +

    NOTES

    + +The program is based on Paul Haeberli's +fromgif + +program which, in turn, is based on Marcel J.E. Mol's GIF reader. +  +

    BUGS

    + +Should have more options to control output format. +  +

    SEE ALSO

    + +pal2rgb(1), + +tiffinfo(1), + +tiffcp(1), + +tiffmedian(1), + +libtiff(3) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    OPTIONS
    +
    NOTES
    +
    BUGS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:47 GMT, November 23, 1999 + + diff --git a/html/man/index.html b/html/man/index.html new file mode 100755 index 0000000..ae6030c --- /dev/null +++ b/html/man/index.html @@ -0,0 +1,69 @@ + + +Libtiff HTML manpage index + + + + + + \ No newline at end of file diff --git a/html/man/libtiff.3t.html b/html/man/libtiff.3t.html new file mode 100755 index 0000000..a91c13d --- /dev/null +++ b/html/man/libtiff.3t.html @@ -0,0 +1,612 @@ + +Manpage of INTRO + +

    INTRO

    +Section: Misc. Reference Manual Pages (3T)
    Updated: August 21, 1997
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +libtiff - introduction to +libtiff, + +a library for reading and writing +TIFF +files +  +

    SYNOPSIS

    + +#include <tiffio.h> + +
    + +cc file.c +-ltiff + +  +

    DESCRIPTION

    + +libtiff + +is a library for reading and writing data files encoded with the +Tag Image File + +format, Revision 6.0 (or revision 5.0 or revision 4.0). +This file format is suitable for archiving multi-color and +monochromatic image data. +

    + +The library supports several compression algorithms, as indicated +by the +Compression + +field, including: +no compression (1), +CCITT +1D Huffman compression (2), +CCITT +Group 3 Facsimile compression (3), +CCITT +Group 4 Facsimile compression (4), +Lempel-Ziv & Welch compression (5), +baseline JPEG compression (7), +word-aligned 1D Huffman compression (32771), +and +PackBits compression (32773). +In addition, several nonstandard compression algorithms are supported: +the 4-bit compression algorithm used +by the +ThunderScan + +program (32809) (decompression only), +NeXT's 2-bit compression algorithm (32766) (decompression only), +an experimental LZ-style algorithm known as Deflate (32946), and +an experimental CIE LogLuv compression scheme designed for images +with high dynamic range (32845 for LogL and 32845 for LogLuv). +Directory information may be in either little- or big-endian byte +order-byte swapping is automatically done by the library. +Data bit ordering may be either Most Significant Bit (MSB) to Least Significant Bit (LSB) or +LSB +to +MSB. +Finally, the library does not support files in which the +BitsPerSample, + +Compression, + +MinSampleValue, + +or +MaxSampleValue + +fields are defined differently on a per-sample basis +(in Rev. 6.0 the +Compression + +tag is not defined on a per-sample basis, so this is immaterial). +  +

    DATA TYPES

    + +The library makes extensive use of C typedefs to promote portability. +Two sets of typedefs are used, one for communication with clients +of the library and one for internal data structures and parsing of the +TIFF +format. +The following typedefs are exposed to users either through +function definitions or through parameters passed through the +varargs interfaces. + +

    + + +

    +typedef unsigned short uint16;        16-bit unsigned integer
    +typedef unsigned <thing> uint32;      32-bit unsigned integer
    +
    +typedef unsigned int ttag_t;          directory tag
    +typedef uint16 tdir_t;                directory index
    +typedef uint16 tsample_t;             sample number
    +typedef uint32 tstrip_t;              strip number
    +typedef uint32 ttile_t;               tile number
    +typedef int32 tsize_t;                i/o size in bytes
    +typedef void* tdata_t;                image data ref
    +typedef void* thandle_t;              client data handle
    +typedef int32 toff_t;                 file offset
    +
    + +

    + +Note that +tstrip_t, + +ttile_t, + +and +tsize_t + +are constrained to be no more than 32-bit quantities by +32-bit fields they are stored in in the +TIFF +image. +Likewise +tsample_t + +is limited by the 16-bit field used to store the +SamplesPerPixel + +tag. +tdir_t + +constrains the maximum number of +IFDs +that may appear in an image and may be an arbitrary size (w/o penalty). +ttag_t + +must be either int, unsigned int, pointer, or double because +the library uses a varargs interface and +ANSI C +restricts the type of the parameter before an ellipsis to be a +promoted type. +toff_t + +is defined as int32 because TIFF file offsets are (unsigned) 32-bit +quantities. +A signed value is used because some interfaces return -1 on error. +Finally, note that user-specified data references are +passed as opaque handles and only cast at the lowest layers where +their type is presumed. +  +

    LIST OF ROUTINES

    + +The following routines are part of the library. +Consult specific manual pages for details on their operation. +The manual page names listed below are for systems +where the full function names can not be encoded in the filesystem; +on most systems doing ``man function-name'' will work. +

    +

    +
    +Name                   Appears on Page  Description
    +
    +TIFFCheckTile          tile.3t          very x,y,z,sample is within image
    +TIFFClientOpen         open.3t          open a file for reading or writing
    +TIFFClose              close.3t         close an open file
    +TIFFComputeStrip       strip.3t         return strip containing y,sample
    +TIFFComputeTile        tile.3t          return tile containing x,y,z,sample
    +TIFFCurrentDirectory   query.3t         return index of current directory
    +TIFFCurrentRow         query.3t         return index of current scanline
    +TIFFCurrentStrip       query.3t         return index of current strip
    +TIFFCurrentTile        query.3t         return index of current tile
    +TIFFError              error.3t         library error handler
    +TIFFFdOpen             open.3t          open a file for reading or writing
    +TIFFFileName           query.3t         return name of open file
    +TIFFFileno             query.3t         return open file descriptor
    +TIFFFlush              flush.3t         flush all pending writes
    +TIFFFlushData          flush.3t         flush pending data writes
    +TIFFGetBitRevTable     swab.3t          return bit reversal table
    +TIFFGetField           getfield.3t      return tag value in current directory
    +TIFFGetFieldDefaulted  getfield.3t      return tag value in current directory
    +TIFFGetMode            query.3t         return open file mode
    +TIFFGetVersion         query.3t         return library version string
    +TIFFIsTiled            query.3t         return true if image data is tiled
    +TIFFIsByteSwapped      query.3t         return true if image data is byte-swapped
    +TIFFNumberOfStrips     strip.3t         return number of strips in an image
    +TIFFNumberOfTiles      tile.3t          return number of tiles in an image
    +TIFFOpen               open.3t          open a file for reading or writing
    +TIFFPrintDirectory     print.3t         print description of the current directory
    +TIFFReadBufferSetup    rdbuf.3t         specify i/o buffer for reading
    +TIFFReadDirectory      readdir.3t       read the next directory
    +TIFFReadEncodedStrip   rdestrip.3t      read and decode a strip of data
    +TIFFReadEncodedTile    rdetile.3t       read and decode a tile of data
    +TIFFReadRawStrip       rdrstrip.3t      read a raw strip of data
    +TIFFReadRawTile        rdrtile.3t       read a raw tile of data
    +TIFFReadRGBAImage      rdimage.3t       read an image into a fixed format raster
    +TIFFReadScanline       readline.3t      read and decode a row of data
    +TIFFReadTile           readtile.3t      read and decode a tile of data
    +TIFFReverseBits        swab.3t          reverse bits in an array of bytes
    +TIFFRGBAImageBegin     rgbaimage.3t     setup decoder state for TIFFRGBAImageGet
    +TIFFRGBAImageEnd       rgbaimage.3t     release TIFFRGBAImage decoder state
    +TIFFRGBAImageGet       rgbaimage.3t     read and decode an image
    +TIFFRGBAImageOK        rgbaimage.3t     is image readable by TIFFRGBAImageGet
    +TIFFScanlineSize       size.3t          return size of a scanline
    +TIFFSetDirectory       setdir.3t        set the current directory
    +TIFFSetSubDirectory    setdir.3t        set the current directory
    +TIFFSetErrorHandler    error.3t         set error handler function
    +TIFFSetField           setfield.3t      set a tag's value in the current directory
    +TIFFSetWarningHandler  error.3t         set warning handler function
    +TIFFStripSize          size.3t          return size of a strip
    +TIFFSwabShort          swab.3t          swap bytes of short
    +TIFFSwabLong           swab.3t          swap bytes of long
    +TIFFSwabArrayOfShort   swab.3t          swap bytes of an array of shorts
    +TIFFSwabArrayOfLong    swab.3t          swap bytes of an array of longs
    +TIFFTileRowSize        size.3t          return size of a row in a tile
    +TIFFTileSize           size.3t          return size of a tile
    +TIFFVGetField          getfield.3t      return tag value in current directory
    +TIFFVGetFieldDefaulted getfield.3t      return tag value in current directory
    +TIFFVSetField          setfield.3t      set a tag's value in the current directory
    +TIFFWarning            warning.3t       library warning handler
    +TIFFWriteDirectory     writedir.3t      write the current directory
    +TIFFWriteEncodedStrip  wrestrip.3t      compress and write a strip of data
    +TIFFWriteEncodedTile   wretile.3t       compress and write a tile of data
    +TIFFWriteRawStrip      wrrstrip.3t      write a raw strip of data
    +TIFFWriteRawTile       wrrtile.3t       write a raw tile of data
    +TIFFWriteScanline      writeline.3t     write a scanline of data
    +TIFFWriteTile          wrrtile.3t       compress and write a tile of data
    +
    + +  +

    TAG USAGE

    + +The table below lists the +TIFF +tags that are recognized and handled by the library. +If no use is indicated in the table, then the library +reads and writes the tag, but does not use it internally. +Note that some tags are meaningful only when a particular +compression scheme is being used; e.g. +Group3Options + +is only useful if +Compression + +is set to +CCITT +Group 3 encoding. +Tags of this sort are considered +codec-specific + +tags and the library does not recognize them except when the +Compression + +tag has been previously set to the relevant compression scheme. +

    +

    +
    +Tag Name                Value  R/W  Library Use/Notes
    +
    +Artist                  315    R/W
    +BadFaxLines             326    R/W
    +BitsPerSample           258    R/W  lots
    +CellLength              265         parsed but ignored
    +CellWidth               264         parsed but ignored
    +CleanFaxData            327    R/W
    +ColorMap                320    R/W
    +ColorResponseUnit       300         parsed but ignored
    +Compression             259    R/W  choosing codec
    +ConsecutiveBadFaxLines  328    R/W
    +DataType                32996  R    obsoleted by SampleFormat tag
    +DateTime                306    R/W
    +DocumentName            269    R/W
    +DotRange                336    R/W
    +ExtraSamples            338    R/W  lots
    +FaxRecvParams           34908  R/W
    +FaxSubAddress           34909  R/W
    +FaxRecvTime             34910  R/W
    +FillOrder               266    R/W  control bit order
    +FreeByteCounts          289         parsed but ignored
    +FreeOffsets             288         parsed but ignored
    +GrayResponseCurve       291         parsed but ignored
    +GrayResponseUnit        290         parsed but ignored
    +Group3Options           292    R/W  used by Group 3 codec
    +Group4Options           293    R/W
    +HostComputer            316    R/W
    +ImageDepth              32997  R/W  tile/strip calculations
    +ImageDescription        270    R/W
    +ImageLength             257    R/W  lots
    +ImageWidth              256    R/W  lots
    +InkNames                333    R/W
    +InkSet                  332    R/W
    +JPEGTables              347    R/W  used by JPEG codec
    +Make                    271    R/W
    +Matteing                32995  R    obsoleted by ExtraSamples tag
    +MaxSampleValue          281    R/W
    +MinSampleValue          280    R/W
    +Model                   272    R/W
    +NewSubFileType          254    R/W  called SubFileType in spec
    +NumberOfInks            334    R/W
    +Orientation             274    R/W
    +PageName                285    R/W
    +PageNumber              297    R/W
    +PhotometricInterpretation      262  R/Wused by Group 3 and JPEG codecs
    +PlanarConfiguration     284    R/W  data i/o
    +Predictor               317    R/W  used by LZW and Deflate codecs
    +PrimaryChromacities     319    R/W
    +ReferenceBlackWhite     532    R/W
    +ResolutionUnit          296    R/W  used by Group 3 codec
    +RowsPerStrip            278    R/W  data i/o
    +SampleFormat            339    R/W
    +SamplesPerPixel         277    R/W  lots
    +SMinSampleValue         340    R/W
    +SMaxSampleValue         341    R/W
    +Software                305    R/W
    +StoNits                 37439  R/W
    +StripByteCounts         279    R/W  data i/o
    +StripOffsets            273    R/W  data i/o
    +SubFileType             255    R/W  called OSubFileType in spec
    +TargetPrinter           337    R/W
    +Thresholding            263    R/W  
    +TileByteCounts          324    R/W  data i/o
    +TileDepth               32998  R/W  tile/strip calculations
    +TileLength              323    R/W  data i/o
    +TileOffsets             324    R/W  data i/o
    +TileWidth               322    R/W  data i/o
    +TransferFunction        301    R/W
    +WhitePoint              318    R/W
    +XPosition               286    R/W
    +XResolution             282    R/W
    +YCbCrCoefficients       529    R/W  used by TIFFRGBAImage support
    +YCbCrPositioning        531    R/W  tile/strip size calulcations
    +YCbCrSubsampling        530    R/W
    +YPosition               286    R/W
    +YResolution             283    R/W  used by Group 3 codec
    +
      +

    PSEUDO TAGS

    + +In addition to the normal +TIFF +tags the library supports a collection of +tags whose values lie in a range outside the valid range of +TIFF +tags. +These tags are termed +pseud-tags + +and are used to control various codec-specific functions within the library. +The table below summarizes the defined pseudo-tags. +

    +

    +
    +Tag Name                Codec  R/W  Library Use/Notes
    +
    +TIFFTAG_FAXMODE         G3     R/W  general codec operation
    +TIFFTAG_FAXFILLFUNC     G3/G4  R/W  bitmap fill function
    +TIFFTAG_JPEGQUALITY     JPEG   R/W  compression quality control
    +TIFFTAG_JPEGCOLORMODE   JPEG   R/W  control colorspace conversions
    +TIFFTAG_JPEGTABLESMODE  JPEG   R/W  control contents of JPEGTables tag
    +TIFFTAG_ZIPQUALITY      Deflate     R/Wcompression quality level
    +TIFFTAG_PIXARLOGDATAFMT PixarLog    R/Wuser data format
    +TIFFTAG_PIXARLOGQUALITY PixarLog    R/Wcompression quality level
    +TIFFTAG_SGILOGDATAFMT   SGILog R/W  user data format
    +
    + +
    +
    TIFFTAG_FAXMODE + +
    +Control the operation of the Group 3 codec. +Possible values (independent bits that can be combined by +or'ing them together) are: +FAXMODE_CLASSIC +(enable old-style format in which the +RTC +is written at the end of the last strip), +FAXMODE_NORTC +(opposite of +FAXMODE_CLASSIC; +also called +FAXMODE_CLASSF), +FAXMODE_NOEOL +(do not write +EOL +codes at the start of each row of data), +FAXMODE_BYTEALIGN +(align each encoded row to an 8-bit boundary), +FAXMODE_WORDALIGN +(align each encoded row to an 16-bit boundary), +The default value is dependent on the compression scheme; this +pseudo-tag is used by the various G3 and G4 codecs to share code. +
    TIFFTAG_FAXFILLFUNC + +
    +Control the function used to convert arrays of black and white +runs to packed bit arrays. +This hook can be used to image decoded scanlines in multi-bit +depth rasters (e.g. for display in colormap mode) +or for other purposes. +The default value is a pointer to a builtin function that images +packed bilevel data. +
    TIFFTAG_IPTCNEWSPHOTO + +
    +Tag contaings image metadata per the IPTC newsphoto spec: Headline, +captioning, credit, etc... Used by most wire services. +
    TIFFTAG_PHOTOSHOP + +
    +Tag contains Photoshop captioning information and metadata. Photoshop +uses in parallel and redundantly alongside IPTCNEWSPHOTO information. +
    TIFFTAG_JPEGQUALITY + +
    +Control the compression quality level used in the baseline algorithm. +Note that quality levels are in the range 0-100 with a default value of 75. +
    TIFFTAG_JPEGCOLORMODE + +
    +Control whether or not conversion is done between +RGB and YCbCr colorspaces. +Possible values are: +JPEGCOLORMODE_RAW +(do not convert), and +JPEGCOLORMODE_RGB +(convert to/from RGB) +The default value is JPEGCOLORMODE_RAW. +
    TIFFTAG_JPEGTABLESMODE + +
    +Control the information written in the +JPEGTables + +tag. +Possible values (independent bits that can be combined by +or'ing them together) are: +JPEGTABLESMODE_QUANT +(include quantization tables), +and +JPEGTABLESMODE_HUFF +(include Huffman encoding tables). +The default value is JPEGTABLESMODE_QUANT|JPEGTABLESMODE_HUFF. +
    TIFFTAG_ZIPQUALITY + +
    +Control the compression technique used by the Deflate codec. +Quality levels are in the range 1-9 with larger numbers yielding better +compression at the cost of more computation. +The default quality level is 6 which yields a good time-space tradeoff. +
    TIFFTAG_PIXARLOGDATAFMT + +
    +Control the format of user data passed +in + +to the PixarLog codec when encoding and passed +out + +from when decoding. +Possible values are: +PIXARLOGDATAFMT_8BIT +for 8-bit unsigned pixels, +PIXARLOGDATAFMT_8BITABGR +for 8-bit unsigned ABGR-ordered pixels, +PIXARLOGDATAFMT_11BITLOG +for 11-bit log-encoded raw data, +PIXARLOGDATAFMT_12BITPICIO +for 12-bit PICIO-compatible data, +PIXARLOGDATAFMT_16BIT +for 16-bit signed samples, +and +PIXARLOGDATAFMT_FLOAT +for 32-bit IEEE floating point samples. +
    TIFFTAG_PIXARLOGQUALITY + +
    +Control the compression technique used by the PixarLog codec. +This value is treated identically to TIFFTAG_ZIPQUALITY; see the +above description. +
    TIFFTAG_SGILOGDATAFMT + +
    +Control the format of client data passed +in + +to the SGILog codec when encoding and passed +out + +from when decoding. +Possible values are: +SGILOGDATAFMT_FLTXYZ +for converting between LogLuv and 32-bit IEEE floating valued XYZ pixels, +SGILOGDATAFMT_16BITLUV +for 16-bit encoded Luv pixels, +SGILOGDATAFMT_32BITRAW and SGILOGDATAFMT_24BITRAW +for no conversion of data, +SGILOGDATAFMT_8BITRGB +for returning 8-bit RGB data (valid only when decoding LogLuv-encoded data), +SGILOGDATAFMT_FLTY +for converting between LogL and 32-bit IEEE floating valued Y pixels, +SGILOGDATAFMT_16BITL +for 16-bit encoded L pixels, +and +SGILOGDATAFMT_8BITGRY +for returning 8-bit greyscale data +(valid only when decoding LogL-encoded data). +
    +  +

    DIAGNOSTICS

    + +All error messages are directed through the +TIFFError + +routine. +By default messages are directed to +stderr + +in the form: +module: message\n. + +Warning messages are likewise directed through the +TIFFWarning + +routine. +  +

    SEE ALSO

    + +fax2tiff(1), + +gif2tiff(1), + +pal2rgb(1), + +ppm2tiff(1), + +rgb2ycbcr(1), + +ras2tiff(1), + +sgi2tiff(1), + +tiff2bw(1), + +tiffdither(1), + +tiffdump(1), + +tiffcp(1), + +tiffcmp(1), + +tiffgt(1), + +tiffinfo(1), + +tiffmedian(1), + +tiffsplit(1), + +tiffsv(1), + +

    + +Tag Image File Format Specification - Revision 6.0, + +an Aldus Technical Memorandum. +

    + +The Spirit of TIFF Class F, + +an appendix to the TIFF 5.0 specification prepared by Cygnet Technologies. +  +

    BUGS

    + +The library does not support multi-sample images +where some samples have different bits/sample. +

    + +The library does not support random access to compressed data +that is organized with more than one row per tile or strip. +The library discards unknown tags. +The library should do more validity checking of a directory's contents. + +


    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    DATA TYPES
    +
    LIST OF ROUTINES
    +
    TAG USAGE
    +
    PSEUDO TAGS
    +
    DIAGNOSTICS
    +
    SEE ALSO
    +
    BUGS
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:39 GMT, November 23, 1999 + + diff --git a/html/man/pal2rgb.1.html b/html/man/pal2rgb.1.html new file mode 100755 index 0000000..ebf9e1f --- /dev/null +++ b/html/man/pal2rgb.1.html @@ -0,0 +1,149 @@ + +Manpage of PAL2RGB + +

    PAL2RGB

    +Section: User Commands (1)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +pal2rgb - convert a palette color +TIFF +image to a full color image +  +

    SYNOPSIS

    + +pal2rgb + +[ +options + +] +input.tif + +output.tif + +  +

    DESCRIPTION

    + +Pal2rgb + +converts a palette color +TIFF +image to a full color image by +applying the colormap of the palette image to each sample +to generate a full color +RGB +image. +  +

    OPTIONS

    + +Options that affect the interpretation of input data are: +
    +
    -C + +
    +This option overrides the default behaviour of +pal2rgb + +in determining whether or not +colormap entries contain 16-bit or 8-bit values. +By default the colormap is inspected and +if no colormap entry greater than 255 is found, +the colormap is assumed to have only 8-bit values; otherwise +16-bit values (as required by the +TIFF +specification) are assumed. +The +-C + +option can be used to explicitly specify the number of +bits for colormap entries: +-C 8 + +for 8-bit values, +-C 16 + +for 16-bit values. +
    +

    + +Options that affect the output file format are: +

    +
    -p + +
    +Explicitly select the planar configuration used in organizing +data samples in the output image: +-p contig + +for samples packed contiguously, and +-p separate + +for samples stored separately. +By default samples are packed. +
    -c + +
    +Use the specific compression algorithm to encoded image data +in the output file: +-c packbits + +for Macintosh Packbits, +-c lzw + +for Lempel-Ziv & Welch, +-c zip + +for Deflate, +-c none + +for no compression. +If no compression-related option is specified, the input +file's compression algorithm is used. +
    -r + +
    +Explicitly specify the number of rows in each strip of the +output file. +If the +-r + +option is not specified, a number is selected such that each +output strip has approximately 8 kilobytes of data in it. +
    +  +

    BUGS

    + +Only 8-bit images are handled. +  +

    SEE ALSO

    + +tiffinfo(1), + +tiffcp(1), + +tiffmedian(1), + +libtiff(3) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    OPTIONS
    +
    BUGS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:47 GMT, November 23, 1999 + + diff --git a/html/man/ppm2tiff.1.html b/html/man/ppm2tiff.1.html new file mode 100755 index 0000000..4c9b362 --- /dev/null +++ b/html/man/ppm2tiff.1.html @@ -0,0 +1,129 @@ + +Manpage of PPM2TIFF + +

    PPM2TIFF

    +Section: User Commands (1)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +ppm2tiff - create a +TIFF +file from a +PPM +image file +  +

    SYNOPSIS

    + +ppm2tiff + +[ +options + +] [ +input.ppm + +] +output.tif + +  +

    DESCRIPTION

    + +ppm2tiff + +converts a file in the +PPM +image format to +TIFF. +By default, the +TIFF +image is created with data samples packed (PlanarConfiguration=1), + +compressed with the Lempel-Ziv & Welch algorithm (Compression=5), + +and with each strip no more than 8 kilobytes. +These characteristics can be overriden, or explicitly specified +with the options described below +

    + +If the +PPM +file contains greyscale data, then the +PhotometricInterpretation + +tag is set to 1 (min-is-black), +otherwise it is set to 2 (RGB). +

    + +If no +PPM +file is specified on the command line, +ppm2tiff + +will read from the standard input. +  +

    OPTIONS

    + +
    +
    -c + +
    +Specify a compression scheme to use when writing image data: +-c none + +for no compression, +-c packbits + +for the PackBits compression algorithm, +-c jpeg + +for the baseline JPEG compression algorithm, +-c zip + +for the Deflate compression algorithm, +and +-c lzw + +for Lempel-Ziv & Welch compression (the default). +
    -r + +
    +Write data with a specified number of rows per strip; +by default the number of rows/strip is selected so that each strip +is approximately 8 kilobytes. +
    -R + +
    +Mark the resultant image to have the specified +X and Y resolution (in dots/inch). +
    +  +

    SEE ALSO

    + +tiffinfo(1), + +tiffcp(1), + +tiffmedian(1), + +libtiff(3) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    OPTIONS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:47 GMT, November 23, 1999 + + diff --git a/html/man/ras2tiff.1.html b/html/man/ras2tiff.1.html new file mode 100755 index 0000000..fd49f56 --- /dev/null +++ b/html/man/ras2tiff.1.html @@ -0,0 +1,127 @@ + +Manpage of RAS2TIFF + +

    RAS2TIFF

    +Section: User Commands (1)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +ras2tiff - create a +TIFF +file from a Sun rasterfile +  +

    SYNOPSIS

    + +ras2tiff + +[ +options + +] +input.ras + +output.tif + +  +

    DESCRIPTION

    + +ras2tiff + +converts a file in the Sun rasterfile format to +TIFF. +By default, the +TIFF +image is created with data samples packed (PlanarConfiguration=1), + +compressed with the Lempel-Ziv & Welch algorithm (Compression=5), + +and with each strip no more than 8 kilobytes. +These characteristics can overriden, or explicitly specified +with the options described below. +

    + +Any colormap information in the rasterfile is carried over to the +TIFF +file by including a +Colormap + +tag in the output file. +If the rasterfile has a colormap, the +PhotometricInterpretation + +tag is set to 3 (palette); +otherwise it is set to 2 (RGB) if the depth +is 24 or 1 (min-is-black) if the depth is not 24. +  +

    OPTIONS

    + +
    +
    -c + +
    +Specify a compression scheme to use when writing image data: +-c none + +for no compression, +-c packbits + +for the PackBits compression algorithm, +-c jpeg + +for the baseline JPEG compression algorithm, +-c zip + +for the Deflate compression algorithm, +and +-c lzw + +for Lempel-Ziv & Welch (the default). +
    -r + +
    +Write data with a specified number of rows per strip; +by default the number of rows/strip is selected so that each strip +is approximately 8 kilobytes. +
    +  +

    BUGS

    + +Does not handle all possible rasterfiles. +In particular, +ras2tiff + +does not handle run-length encoded images. +  +

    SEE ALSO

    + +pal2rgb(1), + +tiffinfo(1), + +tiffcp(1), + +tiffmedian(1), + +libtiff(3) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    OPTIONS
    +
    BUGS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:47 GMT, November 23, 1999 + + diff --git a/html/man/rgb2ycbcr.1.html b/html/man/rgb2ycbcr.1.html new file mode 100755 index 0000000..3ecdcae --- /dev/null +++ b/html/man/rgb2ycbcr.1.html @@ -0,0 +1,129 @@ + +Manpage of RGB2YCBCR + +

    RGB2YCBCR

    +Section: User Commands (1)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +rgb2ycbcr - convert non-YCbCr +TIFF +images to a YCbCr +TIFF +image +  +

    SYNOPSIS

    + +rgb2ycbcr + +[ +options + +] +src1.tif src2.tif ... dst.tif + +  +

    DESCRIPTION

    + +rgb2ycbcr + +converts +RGB +color, greyscale, or bi-level +TIFF +images to YCbCr images by +transforming and sampling pixel data. +If multiple files are specified on the command line +each source file is converted to a separate directory +in the destination file. +

    + +By default, chrominance samples are created by sampling +2 by 2 blocks of luminance values; this can be changed with +the +-h + +and +-v + +options. +Output data are compressed with the +LZW +compression scheme, by default; an alternate scheme can be +selected with the +-c + +option. +By default, output data are compressed in strips with +the number of rows in each strip selected so that the +size of a strip is never more than 8 kilobytes; +the +-r + +option can be used to explicitly set the number of +rows per strip. +  +

    OPTIONS

    + +
    +
    -c + +
    +Specify a compression scheme to use when writing image data: +-c none + +for no compression, +-c packbits + +for the PackBits compression algorithm, +-c jpeg + +for the JPEG compression algorithm, +and +-c lzw + +for Lempel-Ziv & Welch (the default). +
    -h + +
    +Set the horizontal sampling dimension to one of: 1, 2 (default), or 4. +
    -r + +
    +Write data with a specified number of rows per strip; +by default the number of rows/strip is selected so that each strip +is approximately 8 kilobytes. +
    -v + +
    +Set the vertical sampling dimension to one of: 1, 2 (default), or 4. +
    +  +

    SEE ALSO

    + +tiffinfo(1), + +tiffcp(1), + +libtiff(3) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    OPTIONS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:47 GMT, November 23, 1999 + + diff --git a/html/man/sgi2tiff.1.html b/html/man/sgi2tiff.1.html new file mode 100755 index 0000000..647af05 --- /dev/null +++ b/html/man/sgi2tiff.1.html @@ -0,0 +1,123 @@ + +Manpage of SGI2TIFF + +

    SGI2TIFF

    +Section: User Commands (1)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +sgi2tiff - create a +TIFF +file from an +SGI +image file +  +

    SYNOPSIS

    + +sgi2tiff + +[ +options + +] +input.rgb + +output.tif + +  +

    DESCRIPTION

    + +sgi2tiff + +converts a file in the +SGI +image format to +TIFF. +By default, the +TIFF +image is created with data samples packed (PlanarConfiguration=1), + +compressed with the Lempel-Ziv & Welch algorithm (Compression=5), + +and with each strip no more than 8 kilobytes. +These characteristics can overriden, or explicitly specified +with the options described below. +  +

    OPTIONS

    + +
    +
    -c + +
    +Specify a compression scheme to use when writing image data: +-c none + +for no compression, +-c packbits + +for the PackBits compression algorithm), +-c jpeg + +for the baseline JPEG compression algorithm, +-c zip + +for the Deflate compression algorithm, +and +-c lzw + +for Lempel-Ziv & Welch (the default). +
    -p + +
    +Explicitly select the planar configuration used in organizing +data samples in the output image: +-p contig + +for samples packed contiguously, and +-p separate + +for samples stored separately. +By default samples are packed. +
    -r + +
    +Write data with a specified number of rows per strip; +by default the number of rows/strip is selected so that each strip +is approximately 8 kilobytes. +
    +  +

    BUGS

    + +Does not record colormap information. +  +

    SEE ALSO

    + +tiffinfo(1), + +tiffcp(1), + +tiffmedian(1), + +libtiff(3) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    OPTIONS
    +
    BUGS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:47 GMT, November 23, 1999 + + diff --git a/html/man/thumbnail.1.html b/html/man/thumbnail.1.html new file mode 100755 index 0000000..0b5c2f3 --- /dev/null +++ b/html/man/thumbnail.1.html @@ -0,0 +1,123 @@ + +Manpage of THUMBNAIL + +

    THUMBNAIL

    +Section: User Commands (1)
    Updated: September 26, 1994
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +thumbnail - create a +TIFF +file with thumbnail images +  +

    SYNOPSIS

    + +thumbnail + +[ +options + +] +input.tif + +output.tif + +  +

    DESCRIPTION

    + +thumbnail + +is a program written to show how one might use the +SubIFD tag (#330) to store thumbnail images. +thumbnail + +copies a +TIFF +Class F facsimile file to the output file +and for each image an 8-bit greyscale +thumbnail sketch. + +The output file contains the thumbnail image with the associated +full-resolution page linked below with the SubIFD tag. +

    + +By default, thumbnail images are 216 pixels wide by 274 pixels high. +Pixels are calculated by sampling and filtering the input image +with each pixel value passed through a contrast curve. +  +

    OPTIONS

    + +
    +
    -w + +
    +Specify the width of thumbnail images in pixels. +
    -h + +
    +Specify the height of thumbnail images in pixels. +
    -c + +
    +Specify a contrast curve to apply in generating the thumbnail images. +By default pixels values are passed through a linear contrast curve +that simply maps the pixel value ranges. +Alternative curves are: +exp50 + +for a 50% exponential curve, +exp60 + +for a 60% exponential curve, +exp70 + +for a 70% exponential curve, +exp80 + +for a 80% exponential curve, +exp90 + +for a 90% exponential curve, +exp + +for a pure exponential curve, +linear + +for a linear curve. +
    +  +

    BUGS

    + +There are no options to control the format of the saved thumbnail images. +  +

    SEE ALSO

    + +tiffdump(1), + +tiffgt(1), + +tiffinfo(1), + +libtiff(3) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    OPTIONS
    +
    BUGS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:47 GMT, November 23, 1999 + + diff --git a/html/man/tiff2bw.1.html b/html/man/tiff2bw.1.html new file mode 100755 index 0000000..9e516ee --- /dev/null +++ b/html/man/tiff2bw.1.html @@ -0,0 +1,125 @@ + +Manpage of TIFF2BW + +

    TIFF2BW

    +Section: User Commands (1)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +tiff2bw - convert a color +TIFF +image to greyscale +  +

    SYNOPSIS

    + +tiff2bw + +[ +options +] +input.tif + +output.tif + +  +

    DESCRIPTION

    + +Tiff2bw + +converts an +RGB +or Palette color +TIFF +image to a greyscale image by +combining percentages of the red, green, and blue channels. +By default, output samples are created by taking +28% of the red channel, 59% of the green channel, and 11% of +the blue channel. +To alter these percentages, the +-R, + +-G, + +and +-B + +options may be used. +  +

    OPTIONS

    + +
    +
    -c + +
    +Specify a compression scheme to use when writing image data: +-c none + +for no compression, +-c packbits + +for the PackBits compression algorithm, +-c zip + +for the Deflate compression algorithm, +-c g3 + +for the CCITT Group 3 compression algorithm, +-c g4 + +for the CCITT Group 4 compression algorithm, +and +-c lzw + +for Lempel-Ziv & Welch (the default). +
    -r + +
    +Write data with a specified number of rows per strip; +by default the number of rows/strip is selected so that each strip +is approximately 8 kilobytes. +
    -R + +
    +Specify the percentage of the red channel to use (default 28). +
    -G + +
    +Specify the percentage of the green channel to use (default 59). +
    -B + +
    +Specify the percentage of the blue channel to use (default 11). +
    +  +

    SEE ALSO

    + +pal2rgb(1), + +tiffinfo(1), + +tiffcp(1), + +tiffmedian(1), + +libtiff(3) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    OPTIONS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:47 GMT, November 23, 1999 + + diff --git a/html/man/tiff2ps.1.html b/html/man/tiff2ps.1.html new file mode 100755 index 0000000..34e3706 --- /dev/null +++ b/html/man/tiff2ps.1.html @@ -0,0 +1,237 @@ + +Manpage of TIFF2PS + +

    TIFF2PS

    +Section: User Commands (1)
    Updated: January 27, 1997
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +tiff2ps - convert a +TIFF +image to POSTSCRIPTtm +  +

    SYNOPSIS

    + +tiff2ps + +[ +options + +] +input.tif ... + +  +

    DESCRIPTION

    + +tiff2ps + +reads +TIFF +images and writes POSTSCRIPT or Encapsulated POSTSCRIPT (EPS) +on the standard output. +By default, +tiff2ps + +writes Encapsulated POSTSCRIPT for the first image in the specified +TIFF +image file. +

    + +By default, +tiff2ps + +will generate POSTSCRIPT that fills a printed area specified +by the +TIFF +tags in the input file. +If the file does not contain +XResolution + +or +YResolution + +tags, then the printed area is set according to the image dimensions. +The +-w + +and +-h + +options (see below) +can be used to set the dimensions of the printed area in inches; +overriding any relevant +TIFF +tags. +

    + +The POSTSCRIPT generated for +RGB, +palette, and +CMYK +images uses the +colorimage + +operator. +The POSTSCRIPT generated for +greyscale and bilevel images +uses the +image + +operator. +When the +colorimage + +operator is used, POSTSCRIPT code to emulate this operator +on older POSTSCRIPT printers is also generated. +Note that this emulation code can be very slow. +

    + +Color images with associated alpha data are composited over +a white background. +  +

    OPTIONS

    + +
    +
    -1 + +
    +Generate POSTSCRIPT Level I (the default). +
    -2 + +
    +Generate POSTSCRIPT Level II. +
    -a + +
    +Generate output for all IFDs (pages) in the input file. +
    -d + +
    +Set the initial +TIFF +directory to the specified directory number. +(NB: directories are numbered starting at zero.) +This option is useful for selecting individual pages in a +multi-page (e.g. facsimile) file. +
    -e + +
    +Force the generation of Encapsulated POSTSCRIPT. +
    -h + +
    +Specify the vertical size of the printed area (in inches). +
    -o + +
    +Set the initial +TIFF +directory to the +IFD +at the specified file offset. +This option is useful for selecting thumbnail images and the +like which are hidden using the SubIFD tag. +
    -p + +
    +Force the generation of (non-Encapsulated) POSTSCRIPT. +
    -s + +
    +Generate output for a single IFD (page) in the input file. +
    -w + +
    +Specify the horizontal size of the printed area (in inches). +
    -z + +
    +When generating POSTSCRIPT Level II, data is scaled so that it does not +image into the +deadzone + +on a page (the outer margin that the printing device is unable to mark). +This option suppresses this behaviour. +When POSTSCRIPT Level I is generated, data is imaged to the entire printed +page and this option has no affect. +
    +  +

    EXAMPLES

    + +The following generates POSTSCRIPT Level II for all pages of a facsimile: +
    +
    +tiff2ps -a2 fax.tif | lpr
    +
    + +
    + +Note also that if you have version 2.6.1 or newer of Ghostscript then you +can efficiently preview facsimile generated with the above command. +

    + +To generate Encapsulated POSTSCRIPT for a the image at directory 2 +of an image use: +

    +
    +tiff2ps -d 1 foo.tif
    +
    + +
    + +(notice that directories are numbered starting at zero.) +  +

    BUGS

    + +Because POSTSCRIPT does not support the notion of a colormap, +8-bit palette images produce 24-bit POSTSCRIPT images. +This conversion results in output that is six times +bigger than the original image and which takes a long time +to send to a printer over a serial line. +Matters are even worse for 4-, 2-, and 1-bit palette images. +  +

    BUGS

    + +Does not handle tiled images when generating PS Level I output. +  +

    SEE ALSO

    + +pal2rgb(1), + +tiffinfo(1), + +tiffcp(1), + +tiffgt(1), + +tiffmedian(1), + +tiff2bw(1), + +tiffsv(1), + +libtiff(3) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    OPTIONS
    +
    EXAMPLES
    +
    BUGS
    +
    BUGS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:47 GMT, November 23, 1999 + + diff --git a/html/man/tiffcmp.1.html b/html/man/tiffcmp.1.html new file mode 100755 index 0000000..6acd87d --- /dev/null +++ b/html/man/tiffcmp.1.html @@ -0,0 +1,106 @@ + +Manpage of TIFFCMP + +

    TIFFCMP

    +Section: User Commands (1)
    Updated: September 26, 1994
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +tiffcmp - compare two +TIFF +files +  +

    SYNOPSIS

    + +tiffcmp + +[ +options + +] +file1.tif file2.tif + +  +

    DESCRIPTION

    + +Tiffcmp + +compares the tags and data in two files created according +to the Tagged Image File Format, Revision 6.0. +The schemes used for compressing data in each file +are immaterial when data are compared-data are compared on +a scanline-by-scanline basis after decompression. +Most directory tags are checked; notable exceptions are: +GrayResponseCurve, + +ColorResponseCurve, + +and +ColorMap + +tags. +Data will not be compared if any of the +BitsPerSample, + +SamplesPerPixel, + +or +ImageWidth + +values are not equal. +By default, +tiffcmp + +will terminate if it encounters any difference. +  +

    OPTIONS

    + +
    +
    -l + +
    +List each byte of image data that differs between the files. +
    -t + +
    +Ignore any differences in directory tags. +
    +  +

    BUGS

    + +Tags that are not recognized by the library are not +compared; they may also generate spurious diagnostics. +  +

    SEE ALSO

    + +pal2rgb(1), + +tiffinfo(1), + +tiffcp(1), + +tiffmedian(1), + +libtiff(3) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    OPTIONS
    +
    BUGS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:47 GMT, November 23, 1999 + + diff --git a/html/man/tiffcp.1.html b/html/man/tiffcp.1.html new file mode 100755 index 0000000..ca6f441 --- /dev/null +++ b/html/man/tiffcp.1.html @@ -0,0 +1,291 @@ + +Manpage of TIFFCP + +

    TIFFCP

    +Section: User Commands (1)
    Updated: January 9, 1996
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +tiffcp - copy (and possibly convert) a +TIFF +file +  +

    SYNOPSIS

    + +tiffcp + +[ +options + +] +src1.tif ... srcN.tif dst.tif + +  +

    DESCRIPTION

    + +tiffcp + +combines one or more files created according +to the Tag Image File Format, Revision 6.0 +into a single +TIFF +file. +Because the output file may be compressed using a different +algorithm than the input files, +tiffcp + +is most often used to convert between different compression +schemes. +

    + +By default, +tiffcp + +will copy all the understood tags in a +TIFF +directory of an input +file to the associated directory in the output file. +

    + +tiffcp + +can be used to reorganize the storage characteristics of data +in a file, but it is explicitly intended to not alter or convert +the image data content in any way. +  +

    OPTIONS

    + +
    +
    -B + +
    +Force output to be written with Big-Endian byte order. +This option only has an effect when the output file is created or +overwritten and not when it is appended to. +
    -C + +
    +Suppress the use of ``strip chopping'' when reading images +that have a single strip/tile of uncompressed data. +
    -c + +
    +Specify the compression to use for data written to the output file: +none + +for no compression, +packbits + +for PackBits compression, +lzw + +for Lempel-Ziv & Welch compression, +jpeg + +for baseline JPEG compression, +zip + +for Deflate compression, +g3 + +for CCITT Group 3 (T.4) compression, +and +g4 + +for CCITT Group 4 (T.6) compression. +By default +tiffcp + +will compress data according to the value of the +Compression + +tag found in the source file. +
    +The +CCITT +Group 3 and Group 4 compression algorithms can only +be used with bilevel data. +
    +Group 3 compression can be specified together with several +T.4-specific options: +1d + +for 1-dimensional encoding, +2d + +for 2-dimensional encoding, +and +fill + +to force each encoded scanline to be zero-filled so that the +terminating EOL code lies on a byte boundary. +Group 3-specific options are specified by appending a ``:''-separated +list to the ``g3'' option; e.g. +-c g3:2d:fill + +to get 2D-encoded data with byte-aligned EOL codes. +
    +LZW +compression can be specified together with a +predictor + +value. +A predictor value of 2 causes +each scanline of the output image to undergo horizontal +differencing before it is encoded; a value +of 1 forces each scanline to be encoded without differencing. +LZW-specific options are specified by appending a ``:''-separated +list to the ``lzw'' option; e.g. +-c lzw:2 + +for +LZW +compression with horizontal differencing. +
    -f + +
    +Specify the bit fill order to use in writing output data. +By default, +tiffcp + +will create a new file with the same fill order as the original. +Specifying +-f lsb2msb + +will force data to be written with the FillOrder tag set to +LSB2MSB, +while +-f msb2lsb + +will force data to be written with the FillOrder tag set to +MSB2LSB. +
    -l + +
    +Specify the length of a tile (in pixels). +tiffcp + +attempts to set the tile dimensions so +that no more than 8 kilobytes of data appear in a tile. +
    -L + +
    +Force output to be written with Little-Endian byte order. +This option only has an effect when the output file is created or +overwritten and not when it is appended to. +
    -M + +
    +Suppress the use of memory-mapped files when reading images. +
    -p + +
    +Specify the planar configuration to use in writing image data +that has one 8-bit sample per pixel. +By default, +tiffcp + +will create a new file with the same planar configuration as +the original. +Specifying +-p contig + +will force data to be written with multi-sample data packed +together, while +-p separate + +will force samples to be written in separate planes. +
    -r + +
    +Specify the number of rows (scanlines) in each strip of data +written to the output file. +By default, +tiffcp + +attempts to set the rows/strip +that no more than 8 kilobytes of data appear in a strip. +
    -s + +
    +Force the output file to be written with data organized in strips +(rather than tiles). +
    -t + +
    +Force the output file to be written wtih data organized in tiles +(rather than strips). +options can be used to force the resultant image to be written +as strips or tiles of data, respectively. +
    -w + +
    +Specify the width of a tile (in pixels). +tiffcp + +attempts to set the tile dimensions so +that no more than 8 kilobytes of data appear in a tile. +
    +  +

    EXAMPLES

    + +The following concatenates two files and writes the result using +LZW +encoding: +
    +
    +tiffcp -c lzw a.tif b.tif result.tif
    +
    + +
    + +

    + +To convert a G3 1d-encoded +TIFF +to a single strip of G4-encoded data the following might be used: +

    +
    +tiffcp -c g4 -r 10000 g3.tif g4.tif
    +
    + +
    + +(1000 is just a number that is larger than the number of rows in +the source file.) +  +

    SEE ALSO

    + +pal2rgb(1), + +tiffinfo(1), + +tiffcmp(1), + +tiffmedian(1), + +tiffsplit(1), + +libtiff(3) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    OPTIONS
    +
    EXAMPLES
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:48 GMT, November 23, 1999 + + diff --git a/html/man/tiffdither.1.html b/html/man/tiffdither.1.html new file mode 100755 index 0000000..5a8de6c --- /dev/null +++ b/html/man/tiffdither.1.html @@ -0,0 +1,171 @@ + +Manpage of TIFFDITHER + +

    TIFFDITHER

    +Section: User Commands (1)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +tiffdither - convert a greyscale image to bilevel using dithering +  +

    SYNOPSIS

    + +tiffdither + +[ +options + +] +input.tif + +output.tif + +  +

    DESCRIPTION

    + +tiffdither + +converts a single channel 8-bit greyscale image to a bilevel image +using Floyd-Steinberg error propagation with threholding. +  +

    OPTIONS

    + +
    +
    -c + +
    +Specify the compression to use for data written to the output file: +none + +for no compression, +packbits + +for PackBits compression, +lzw + +for Lempel-Ziv & Welch compression, +zip + +for Deflate compression, +g3 + +for CCITT Group 3 (T.4) compression, +and +g4 + +for CCITT Group 4 (T.6) compression. +By default +tiffdither + +will compress data according to the value of the +Compression + +tag found in the source file. +
    +The +CCITT +Group 3 and Group 4 compression algorithms can only +be used with bilevel data. +
    +Group 3 compression can be specified together with several +T.4-specific options: +1d + +for 1-dimensional encoding, +2d + +for 2-dimensional encoding, +and +fill + +to force each encoded scanline to be zero-filled so that the +terminating EOL code lies on a byte boundary. +Group 3-specific options are specified by appending a ``:''-separated +list to the ``g3'' option; e.g. +-c g3:2d:fill + +to get 2D-encoded data with byte-aligned EOL codes. +
    +LZW +compression can be specified together with a +predictor + +value. +A predictor value of 2 causes +each scanline of the output image to undergo horizontal +differencing before it is encoded; a value +of 1 forces each scanline to be encoded without differencing. +LZW-specific options are specified by appending a ``:''-separated +list to the ``lzw'' option; e.g. +-c lzw:2 + +for +LZW +compression with horizontal differencing. +
    -f + +
    +Specify the bit fill order to use in writing output data. +By default, +tiffdither + +will create a new file with the same fill order as the original. +Specifying +-f lsb2msb + +will force data to be written with the FillOrder tag set to +LSB2MSB , +while +-f msb2lsb + +will force data to be written with the FillOrder tag set to +MSB2LSB . +
    -t + +
    +Set the threshold value for dithering. +By default the threshold value is 128. +
    +  +

    NOTES

    + +The dither algorithm is taken from the +tiffmedian(1) + +program (written by Paul Heckbert). +  +

    SEE ALSO

    + +pal2rgb(1), + +fax2tiff(1), + +tiffinfo(1), + +tiffcp(1), + +tiff2bw(1), + +libtiff(3) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    OPTIONS
    +
    NOTES
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:48 GMT, November 23, 1999 + + diff --git a/html/man/tiffdump.1.html b/html/man/tiffdump.1.html new file mode 100755 index 0000000..15083ee --- /dev/null +++ b/html/man/tiffdump.1.html @@ -0,0 +1,97 @@ + +Manpage of TIFFDUMP + +

    TIFFDUMP

    +Section: User Commands (1)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +tiffdump - print verbatim information about +TIFF +files +  +

    SYNOPSIS

    + +tiffdump + +[ +options + +] +name ... + +  +

    DESCRIPTION

    + +tiffdump + +displays directory information from files created according +to the Tag Image File Format, Revision 6.0. +The header of each +TIFF +file (magic number, version, and first directory offset) +is displayed, followed by the tag contents of each directory in the file. +For each tag, the name, datatype, count, and value(s) is displayed. +When the symbolic name for a tag or datatype is known, the symbolic +name is displayed followed by it's numeric (decimal) value. +Tag values are displayed enclosed in ``<>'' characters immediately +preceded by the value of the count field. +For example, an +ImageWidth + +tag might be displayed as ``ImageWidth (256) SHORT (3) 1<800>''. +

    + +tiffdump + +is particularly useful for investigating the contents of +TIFF +files that +libtiff + +does not understand. +  +

    OPTIONS

    + +
    +
    -h + +
    +Force numeric data to be printed in hexadecimal rather than the +default decimal. +
    -o + +
    +Dump the contents of the +IFD +at the a particular file offset. +The file offset may be specified using the usual C-style syntax; +i.e. a leading ``0x'' for hexadecimal and a leading ``0'' for octal. +
    +  +

    SEE ALSO

    + +tiffinfo(1), + +libtiff(3) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    OPTIONS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:48 GMT, November 23, 1999 + + diff --git a/html/man/tiffgt.1.html b/html/man/tiffgt.1.html new file mode 100755 index 0000000..3b9fa53 --- /dev/null +++ b/html/man/tiffgt.1.html @@ -0,0 +1,325 @@ + +Manpage of TIFFGT + +

    TIFFGT

    +Section: User Commands (1)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +tiffgt - display an image stored in a +TIFF +file (Silicon Graphics version) +  +

    SYNOPSIS

    + +tiffgt + +[ +options + +] +input.tif ... + +  +

    DESCRIPTION

    + +tiffgt + +displays one or more images stored using the +Tag Image File Format, Revision 6.0. +Each image is placed in a fixed size window that the +user must position on the display (unless configured +otherwise through X defaults). +If the display has fewer than 24 bitplanes, or if the +image does not warrant full color, then +RGB +color values are mapped to the closest values that exist in +the colormap (this is done using the +rgbi + +routine found in the graphics utility library +-lgutil.) + +

    + +tiffgt + +correctly handles files with any of the following characteristics: +

    + + + +

    +BitsPerSample                1, 2, 4, 8, 16
    +SamplesPerPixel              1, 3, 4 (the 4th sample is ignored)
    +PhotometricInterpretation    0 (min-is-white), 1 (min-is-black), 2 (RGB), 3 (palette), 6 (YCbCr)
    +PlanarConfiguration          1 (contiguous), 2 (separate)
    +Orientation                  1 (top-left), 4 (bottom-left)
    +
    + + +

    +Data may be organized as strips or tiles and may be +compressed with any of the compression algorithms supported +by the +libtiff(3) + +library. +

    + +For palette images (PhotomatricInterpretation=3), + +tiffgt + +inspects the colormap values and assumes either 16-bit +or 8-bit values according to the maximum value. +That is, if no colormap entry greater than 255 is found, +tiffgt + +assumes the colormap has only 8-bit values; otherwise +it assumes 16-bit values. +This inspection is done to handle old images written by +previous (incorrect) versions of +libtiff. + +

    + +tiffgt + +can be used to display multiple images one-at-a-time. +The left mouse button switches the display to the first image in the +next + +file in the list of files specified on the command line. +The right mouse button switches to the first image in the +previous + +file in the list. +The middle mouse button causes the first image in the first file +specified on the command line to be displayed. +In addition the following keyboard commands are recognized: +

    +
    b + +
    +Use a +PhotometricIntepretation + +of MinIsBlack in displaying the current image. +
    l + +
    +Use a +FillOrder + +of lsb-to-msb in decoding the current image. +
    m + +
    +Use a +FillOrder + +of msb-tolmsb in decoding the current image. +
    c + +
    +Use a colormap visual to display the current image. +
    r + +
    +Use a true color (24-bit RGB) visual to display the current image. +
    w + +
    +Use a +PhotometricIntepretation + +of MinIsWhite in displaying the current image. +
    W + +
    +Toggle (enable/disable) display of warning messages from the +TIFF +library when decoding images. +
    E + +
    +Toggle (enable/disable) display of error messages from the +TIFF +library when decoding images. +
    z + +
    +Reset all parameters to their default settings (FillOrder, + +PhotometricInterpretation, + +handling of warnings and errors). +
    PageUp + +
    +Display the previous image in the current file or the last +image in the previous file. +
    PageDown + +
    +Display the next image in the current file or the first image +in the next file. +
    Home + +
    +Display the first image in the current file. +
    End + +
    +Display the last image in the current file (unimplemented). +
    +  +

    OPTIONS

    + +
    +
    -c + +
    +Force image display in a colormap window. +
    -d + +
    +Specify an image to display by directory number. +By default the first image in the file is displayed. +Directories are numbered starting at zero. +
    -e + +
    +Enable reporting of error messages from the +TIFF +library. +By default +tiffgt + +silently ignores images that cannot be read. +
    -f + +
    +Force +tiffgt + +to run as a foreground process. +By default +tiffgt + +will place itself in the background once it has opened the +requested image file. +
    -l + +
    +Force the presumed bit ordering to be +LSB +to +MSB. +
    -m + +
    +Force the presumed bit ordering to be +MSB +to +LSB. +
    -o + +
    +Specify an image to display by directory offset. +By default the first image in the file is displayed. +Directories offsets may be specified using C-style syntax; +i.e. a leading ``0x'' for hexadecimal and a leading ``0'' for octal. +
    -p + +
    +Override the value of the +PhotometricInterpretation + +tag; the parameter may be one of: +miniswhite, + +minisblack, + +rgb, + +palette, + +mask, + +separated, + +ycbcr, + +and +cielab. + +
    -r + +
    +Force image display in a full color window. +
    -s + +
    +Stop on the first read error. +By default all errors in the input data are ignored and +tiffgt + +does it's best to display as much of an image as possible. +
    -w + +
    +Enable reporting of warning messages from the +TIFF +library. +By default +tiffgt + +ignores warning messages generated when reading an image. +
    -v + +
    +Place information in the title bar describing +what type of window (full color or colormap) is being +used, the name of the input file, and the directory +index of the image (if non-zero). +By default, the window type is not shown in the title bar. +
    +  +

    BUGS

    + +Images wider and taller than the display are silently truncated to avoid +crashing old versions of the window manager. +  +

    SEE ALSO

    + +tiffdump(1), + +tiffinfo(1), + +tiffcp(1), + +libtiff(3) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    OPTIONS
    +
    BUGS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:48 GMT, November 23, 1999 + + diff --git a/html/man/tiffinfo.1.html b/html/man/tiffinfo.1.html new file mode 100755 index 0000000..d4e22ba --- /dev/null +++ b/html/man/tiffinfo.1.html @@ -0,0 +1,114 @@ + +Manpage of TIFFINFO + +

    TIFFINFO

    +Section: User Commands (1)
    Updated: January 27, 1997
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +tiffinfo - print information about +TIFF +files +  +

    SYNOPSIS

    + +tiffinfo + +[ +options + +] +input.tif ... + +  +

    DESCRIPTION

    + +Tiffinfo + +displays information about files created according +to the Tag Image File Format, Revision 6.0. +By default, the contents of each +TIFF +directory in each file +is displayed, with the value of each tag shown symbolically +(where sensible). +  +

    OPTIONS

    + +
    +
    -c + +
    +Display the colormap and color/gray response curves, if present. +
    -D + +
    +In addition to displaying the directory tags, +read and decompress all the data in each image (but not display it). +
    -d + +
    +In addition to displaying the directory tags, +print each byte of decompressed data in hexadecimal. +
    -j + +
    +Display any JPEG-related tags that are present. +
    -o + +
    +Set the initial +TIFF +directory according to the specified file offset. +The file offset may be specified using the usual C-style syntax; +i.e. a leading ``0x'' for hexadecimal and a leading ``0'' for octal. +
    -s + +
    +Display the offsets and byte counts for each data strip in a directory. +
    -z + +
    +Enable strip chopping when reading image data. +
    -# + +
    +Set the initial +TIFF +directory to +#. + +
    +  +

    SEE ALSO

    + +pal2rgb(1), + +tiffcp(1), + +tiffcmp(1), + +tiffmedian(1), + +libtiff(3) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    OPTIONS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:48 GMT, November 23, 1999 + + diff --git a/html/man/tiffmedian.1.html b/html/man/tiffmedian.1.html new file mode 100755 index 0000000..46216a8 --- /dev/null +++ b/html/man/tiffmedian.1.html @@ -0,0 +1,150 @@ + +Manpage of TIFFMEDIAN + +

    TIFFMEDIAN

    +Section: User Commands (1)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +tiffmedian - apply the median cut algorithm to data in a +TIFF +file +  +

    SYNOPSIS

    + +tiffmedian + +[ +options + +] +input.tif + +output.tif + +  +

    DESCRIPTION

    + +tiffmedian + +applys the median cut algorithm to an +RGB +image in +input.tif + +to generate a palette image that is written to +output.tif. + +The generated colormap has, by default, 256 entries. +The image data is quantized by mapping each +pixel to the closest color values in the colormap. +  +

    OPTIONS

    + +
    +
    -c + +
    +Specify the compression to use for data written to the output file: +none + +for no compression, +packbits + +for PackBits compression, +lzw + +for Lempel-Ziv & Welch compression, +and +zip + +for Deflate compression. +By default +tiffmedian + +will compress data according to the value of the +Compression + +tag found in the source file. +
    +LZW +compression can be specified together with a +predictor + +value. +A predictor value of 2 causes +each scanline of the output image to undergo horizontal +differencing before it is encoded; a value +of 1 forces each scanline to be encoded without differencing. +LZW-specific options are specified by appending a ``:''-separated +list to the ``lzw'' option; e.g. +-c lzw:2 + +for +LZW +compression with horizontal differencing. +
    -C + +
    +Specify the number of entries to use in the generated colormap. +By default all 256 entries/colors are used. +
    -f + +
    +Apply Floyd-Steinberg dithering before selecting a colormap entry. +
    -r + +
    +Specify the number of rows (scanlines) in each strip of data +written to the output file. +By default, +tiffmedian + +attempts to set the rows/strip +that no more than 8 kilobytes of data appear in a strip. +
    +  +

    NOTES

    + +This program is derived from Paul Heckbert's +median + +program. +  +

    SEE ALSO

    + +pal2rgb(1), + +tiffinfo(1), + +tiffcp(1), + +tiffcmp(1), + +libtiff(3) + +

    + +"Color Image Quantization for Frame Buffer Display", Paul +Heckbert, SIGGRAPH proceedings, 1982, pp. 297-307. + +


    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    OPTIONS
    +
    NOTES
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:48 GMT, November 23, 1999 + + diff --git a/html/man/tiffsplit.1.html b/html/man/tiffsplit.1.html new file mode 100755 index 0000000..8cc7a90 --- /dev/null +++ b/html/man/tiffsplit.1.html @@ -0,0 +1,90 @@ + +Manpage of TIFFCP + +

    TIFFCP

    +Section: User Commands (1)
    Updated: September 26, 1994
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +tiffsplit - split a multi-image +TIFF +into single-image +TIFF +files +  +

    SYNOPSIS

    + +tiffsplit + +src.tif + +[ +prefix + +] +  +

    DESCRIPTION

    + +tiffsplit + +takes a multi-directory (page) +TIFF +file and creates one or more single-directory (page) +TIFF +files from it. +The output files are given names created by concatenating +a prefix, a lexically ordered +suffix in the range [aa-zz], the suffix +.tif + +(e.g. +xaa.tif, + +xab.tif, + +... +xzz.tif). + +If a prefix is not specified on the command line, +the default prefix of +x + +is used. +  +

    OPTIONS

    + +None. +  +

    BUGS

    + +Only a select set of ``known tags'' is copied when spliting. +  +

    SEE ALSO

    + +tiffcp(1), + +tiffinfo(1), + +libtiff(3) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    OPTIONS
    +
    BUGS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:48 GMT, November 23, 1999 + + diff --git a/html/man/tiffsv.1.html b/html/man/tiffsv.1.html new file mode 100755 index 0000000..3725236 --- /dev/null +++ b/html/man/tiffsv.1.html @@ -0,0 +1,192 @@ + +Manpage of TIFFSV + +

    TIFFSV

    +Section: User Commands (1)
    Updated: October 15, 1995
    Index +
    Return to Main Contents +
    + +  +

    NAME

    + +tiffsv - save an image from the framebuffer in a +TIFF +file (Silicon Graphics version) +  +

    SYNOPSIS

    + +tiffsv + +[ +options + +] +output.tif + +[ +x1 x2 y1 y2 + +] +  +

    DESCRIPTION

    + +tiffsv + +saves all or part of the framebuffer in a file using the +Tag Image File Format, Revision 6.0. +By default, the image is saved with data samples packed (PlanarConfiguration=1), + +compressed with the Lempel-Ziv & Welch algorithm (Compression=5), + +and with each strip no more than 8 kilobytes. +These characteristics can be overriden, or explicitly specified +with the options described below. +  +

    OPTIONS

    + +
    +
    -b + +
    +Save the image as a greyscale image +as if it were processed by +tiff2bw(1). + +This option is included for compatibility with the standard +scrsave(6D) + +program. +
    -c + +
    +Specify the compression to use for data written to the output file: +none + +for no compression, +packbits + +for PackBits compression, +jpeg + +for baseline JPEG compression, +zip + +for Deflate compression, +and +lzw + +for Lempel-Ziv & Welch compression (default). +
    +LZW +compression can be specified together with a +predictor + +value. +A predictor value of 2 causes +each scanline of the output image to undergo horizontal +differencing before it is encoded; a value +of 1 forces each scanline to be encoded without differencing. +LZW-specific options are specified by appending a ``:''-separated +list to the ``lzw'' option; e.g. +-c lzw:2 + +for +LZW +compression with horizontal differencing. +
    -p + +
    +Specify the planar configuration to use in writing image data. +By default, +tiffsv + +will create a new file with the data samples packed contiguously. +Specifying +-p contig + +will force data to be written with multi-sample data packed +together, while +-p separate + +will force samples to be written in separate planes. +
    -r + +
    +Specify the number of rows (scanlines) in each strip of data +written to the output file. +By default, +tiffsv + +attempts to set the rows/strip +that no more than 8 kilobytes of data appear in a strip. +
    +  +

    NOTE

    + +Except for the use of +TIFF, +this program is equivalent to the standard +scrsave + +program. +This means, for example, that you can use it in conjunction with +the standard +icut + +program simply by creating a link called +scrsave, + +or by creating a shell script called +scrsave + +that invokes +tiffgt + +with the appropriate options. +  +

    BUGS

    + +If data are saved compressed and in separate planes, then the +rows in each strip is silently set to one to avoid limitations +in the +libtiff(3) + +library. +  +

    SEE ALSO

    + +scrsave(6D) + +pal2rgb(1), + +tiffdump(1), + +tiffgt(1), + +tiffinfo(1), + +tiffcp(1), + +tiffmedian(1), + +libtiff(3) + + +
    + 

    Index

    +
    +
    NAME
    +
    SYNOPSIS
    +
    DESCRIPTION
    +
    OPTIONS
    +
    NOTE
    +
    BUGS
    +
    SEE ALSO
    +
    +
    +This document was created by +man2html, +using the manual pages.
    +Time: 01:31:48 GMT, November 23, 1999 + + diff --git a/html/misc.html b/html/misc.html new file mode 100755 index 0000000..f6d5571 --- /dev/null +++ b/html/misc.html @@ -0,0 +1,93 @@ + + + +Acknowledgments and Other Issues + + + + +

    + +Acknowledgments and Other Issues +

    + +

    +Silicon Graphics has seen fit to allow me to give this work away. It +is free. There is no support or guarantee of any sort as to its +operations, correctness, or whatever. If you do anything useful with +all or parts of it you need to honor the copyright notices. I would +also be interested in knowing about it and, hopefully, be acknowledged. + +
    + + +

    Acknowledgements

    + +The LZW algorithm is derived from the compress program (the proper +attribution is included in the source code). The Group 3 fax stuff +originated as code from Jef Poskanzer, but has since been rewritten +several times. The latest version uses an algorithm from Frank +Cringle -- consult libtiff/mkg3states.c and +libtiff/tif_fax3.h for further information. +The JPEG support was written by Tom Lane and is dependent on the +excellent work of Tom Lane and the Independent JPEG Group (IJG) +who distribute their work under friendly licensing similar to this +software. +Many other people have by now helped with bug fixes and code; a +few of the more persistent contributors have been: + +
    +    Bjorn P. Brox               Dan McCoy
    +    J.T. Conklin                Richard Minner
    +    Frank D. Cringle            Richard Mlynarik
    +    Soren Pingel Dalsgaard      Niles Ritter
    +    Steve Johnson               Karsten Spang
    +    Tom Lane                    Peter Smith
    +
    + +(my apology to anyone that was inadvertently not listed.) + +

    Warning

    + +It appears that Unisys is actively pursuing copyright control on the +LZW compression algorithm. In particular, users of the LZW compression +within the TIFF framework. For this reason the TIFF 6.0 spec states +that LZW compression is not recommended. It is unclear at this time +what compression algorithm will be used in place of it. I have no idea +what this means to you or to this library. I make no warranty or +guarantees with regard to the LZW support in this library. + + +

    Use and Copyright

    + +

    +Copyright (c) 1988-1997 Sam Leffler
    +Copyright (c) 1991-1997 Silicon Graphics, Inc.
    +
    +Permission to use, copy, modify, distribute, and sell this software and 
    +its documentation for any purpose is hereby granted without fee, provided
    +that (i) the above copyright notices and this permission notice appear in
    +all copies of the software and related documentation, and (ii) the names of
    +Sam Leffler and Silicon Graphics may not be used in any advertising or
    +publicity relating to the software without the specific, prior written
    +permission of Sam Leffler and Silicon Graphics.
    +
    +THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
    +EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
    +WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
    +
    +IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
    +ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
    +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
    +WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
    +LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
    +OF THIS SOFTWARE.
    +
    + +

    +


    + + +Last updated: $Date: 2000/06/24 19:10:16 $ + + diff --git a/html/support.html b/html/support.html new file mode 100755 index 0000000..4502afa --- /dev/null +++ b/html/support.html @@ -0,0 +1,682 @@ + + + +TIFF 6.0 Specification Coverage + + + + +

    + +TIFF 6.0 Specification Coverage +

    + + +

    +The library is capable of dealing with images that are written to +follow the 5.0 or 6.0 TIFF spec. There is also considerable support +for some of the more esoteric portions of the 6.0 TIFF spec. + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +Core requirements + +Both "MM" and "II" byte orders are handled. +Both packed and separated planar configuration of samples. +Any number of samples per pixel (memory permitting). +Any image width and height (memory permitting). +Multiple subfiles can be read and written. +Editing is not supported in that related subfiles (e.g. +a reduced resolution version of an image) are not automatically +updated. +

    +Tags handled: +ExtraSamples, +ImageWidth, +ImageLength, +NewSubfileType, +ResolutionUnit. +Rowsperstrip, +StripOffsets, +StripByteCounts, +XResolution, +YResolution, +

    Tiled ImagesTileWidth, + TileLength, + TileOffsets, + TileByteCounts +
    Image Colorimetry InformationWhitePoint, + PrimaryChromaticities, + TransferFunction, + ReferenceBlackWhite +
    Class B for bilevel imagesSamplesPerPixel = 1
    + BitsPerSample = 1
    + Compression = 1 (none), 2 (CCITT 1D), or 32773 (PackBits)
    + PhotometricInterpretation = 0 (Min-is-White), 1 (Min-is-Black)
    +
    Class G for grayscale imagesSamplesPerPixel = 1
    + BitsPerSample = 4, 8
    + Compression = 1 (none) 5 (LZW)
    + PhotometricInterpretation = 0 (Min-is-White), 1 (Min-is-Black)
    +
    Class P for palette color imagesSamplesPerPixel = 1
    + BitsPerSample = 1-8
    + Compression = 1 (none) 5 (LZW)
    + PhotometricInterpretation = 3 (Palette RGB)
    + ColorMap +
    Class R for RGB full color imagesSamplesPerPixel = 3
    + BitsPerSample = <8,8,8>
    + PlanarConfiguration = 1, 2
    + Compression = 1 (none) 5 (LZW)
    + PhotometricInterpretation = 2 (RGB)
    +
    Class F for facsimile(Class B tags plus...)
    + Compression = 3 (CCITT Group 3), 4 (CCITT Group 4)
    + FillOrder = 1 (MSB), 2 (LSB)
    + Group3Options = 1 (2d encoding), 4 (zero fill), 5 (2d+fill)
    + ImageWidth = 1728, 2048, 2482
    + NewSubFileType = 2
    + ResolutionUnit = 2 (Inch), 3 (Centimeter)
    + PageNumber, + XResolution, + YResolution, + Software, + BadFaxLines, + CleanFaxData, + ConsecutiveBadFaxLines, + DateTime, + DocumentName, + ImageDescription, + Orientation +
    Class S for separated imagesSamplesPerPixel = 4
    + PlanarConfiguration = 1, 2
    + Compression = 1 (none), 5 (LZW)
    + PhotometricInterpretation = 5 (Separated)
    + InkSet = 1 (CMYK)
    + DotRange, + InkNames, + DotRange, + TargetPrinter +
    Class Y for YCbCr imagesSamplesPerPixel = 3
    + BitsPerSample = <8,8,8>
    + PlanarConfiguration = 1, 2
    + Compression = 1 (none), 5 (LZW), 7 (JPEG)
    + PhotometricInterpretation = 6 (YCbCr)
    + YCbCrCoefficients, + YCbCrSubsampling, + YCbCrPositioning
    + (colorimetry info from Appendix H; see above) +
    Class "JPEG" for JPEG images (per TTN2)PhotometricInterpretation = 1 (grayscale), 2 (RGB), 5 (CMYK), 6 (YCbCr)
    + (Class Y tags if YCbCr)
    + (Class S tags if CMYK)
    + Compression = 7 (JPEG)
    +
    + +

    +In addition, the library supports some optional compression algorithms +that are, in some cases, of dubious value. + +

    +    Compression = 32766	NeXT 2-bit encoding
    +    Compression = 32809	ThunderScan 4-bit encoding
    +    Compression = 32909	Pixar companded 11-bit ZIP encoding
    +    Compression = 32946	PKZIP-style Deflate encoding (experimental)
    +    Compression = 34676	SGI 32-bit Log Luminance encoding (experimental)
    +    Compression = 34677	SGI 24-bit Log Luminance encoding (experimental)
    +
    + +Note that there is no support for the JPEG-related tags defined +in the 6.0 specification; the JPEG support is based on the post-6.0 +proposal given in TIFF Technical Note #2. + +

    + + + + + +
    + +For more information on the experimental Log Luminance encoding +consult the materials available at +http://www.sgi.com/Technology/pixformat. + +
    + +

    +The following table shows the tags that are recognized +and how they are used by the library. If no use is indicated, +then the library +reads and writes the tag, but does not use it internally. + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Tag Name Value R/W Library's Use (Comments)
    NewSubFileType254R/Wnone (called SubFileType in <tiff.h>)
    SubFileType255R/Wnone (called OSubFileType in <tiff.h>)
    ImageWidth256R/Wlots
    ImageLength257R/Wlots
    BitsPerSample258R/Wlots
    Compression259R/Wto select appropriate codec
    PhotometricInterpretation262R/Wlots
    Thresholding263R/W 
    CellWidth264 parsed but ignored
    CellLength265 parsed but ignored
    FillOrder266R/Wcontrol bit order
    DocumentName269R/W 
    ImageDescription270R/W 
    Make271R/W 
    Model272R/W 
    StripOffsets273R/Wdata i/o
    Orientation274R/W 
    SamplesPerPixel277R/Wlots
    RowsPerStrip278R/Wdata i/o
    StripByteCounts279R/Wdata i/o
    MinSampleValue280R/W 
    MaxSampleValue281R/W 
    XResolution282R/W 
    YResolution283R/Wused by Group 3 2d encoder
    PlanarConfiguration284R/Wdata i/o
    PageName285R/W 
    XPosition286R/W 
    YPosition286R/W 
    FreeOffsets288 parsed but ignored
    FreeByteCounts289 parsed but ignored
    GrayResponseUnit290 parsed but ignored
    GrayResponseCurve291 parsed but ignored
    Group3Options292R/Wused by Group 3 codec
    Group4Options293R/W 
    ResolutionUnit296R/Wused by Group 3 2d encoder
    PageNumber297R/W 
    ColorResponseUnit300 parsed but ignored
    TransferFunction301R/W 
    Software305R/W 
    DateTime306R/W 
    Artist315R/W 
    HostComputer316R/W 
    Predictor317R/Wused by LZW codec
    WhitePoint318R/W 
    PrimaryChromacities319R/W 
    ColorMap320R/W 
    TileWidth322R/Wdata i/o
    TileLength323R/Wdata i/o
    TileOffsets324R/Wdata i/o
    TileByteCounts324R/Wdata i/o
    BadFaxLines326R/W 
    CleanFaxData327R/W 
    ConsecutiveBadFaxLines328R/W 
    SubIFD330R/Wsubimage descriptor support
    InkSet332R/W 
    InkNames333R/W 
    DotRange336R/W 
    TargetPrinter337R/W 
    ExtraSamples338R/Wlots
    SampleFormat339R/W 
    SMinSampleValue340R/W 
    SMaxSampleValue341R/W 
    JPEGTables347R/Wused by JPEG codec
    YCbCrCoefficients529R/Wused by TIFFReadRGBAImage support
    YCbCrSubsampling530R/Wtile/strip size calculations
    YCbCrPositioning531R/W 
    ReferenceBlackWhite532R/W 
    Matteing32995Rnone (obsoleted by ExtraSamples tag)
    DataType32996Rnone (obsoleted by SampleFormat tag)
    ImageDepth32997R/Wtile/strip calculations
    TileDepth32998R/Wtile/strip calculations
    StoNits37439R/W 
    + +

    +The Matteing and DataType +tags have been obsoleted by the 6.0 +ExtraSamples and SampleFormat tags. +Consult the documentation on the +ExtraSamples tag and Associated Alpha for elaboration. Note however +that if you use Associated Alpha, you are expected to save data that is +pre-multipled by Alpha. If this means nothing to you, check out +Porter & Duff's paper in the '84 SIGGRAPH proceedings: "Compositing Digital +Images". + +

    +The ImageDepth +tag is a non-standard, but registered tag that specifies +the Z-dimension of volumetric data. The combination of ImageWidth, +ImageLength, and ImageDepth, +defines a 3D volume of pixels that are +further specified by BitsPerSample and +SamplesPerPixel. The TileDepth +tag (also non-standard, but registered) can be used to specified a +subvolume "tiling" of a volume of data. + +

    +The Colorimetry, and CMYK tags are additions that appear in TIFF 6.0. +Consult the TIFF 6.0 specification included in the doc directory +and online. + +

    +The JPEG-related tag is specified in +TIFF Technical Note #2 which defines +a revised JPEG-in-TIFF scheme (revised over that appendix that was +part of the TIFF 6.0 specification). + + + +

    +


    + +Last updated: $Date: 2000/06/24 19:10:16 $ + + + diff --git a/html/tools.html b/html/tools.html new file mode 100755 index 0000000..4d3faf2 --- /dev/null +++ b/html/tools.html @@ -0,0 +1,178 @@ + + + +TIFF Tools Overview + + + + +

    + +TIFF Tools Overview +

    + +

    +This software distribution comes with a small collection of programs +for converting non-TIFF format images to TIFF and for manipulating +and interogating the contents of TIFF images. +Several of these tools are useful in their own right. +Many of them however are more intended to serve as programming +examples for using the TIFF library. + +

    Device-dependent Programs

    + +There are two device-dependent programs that serve as simple examples +for writing programs to display and save TIFF images. + + +

    + + + + + + + + + + + + +
    tiffgt    Display the contents of one or +more TIFF images on a Silicon Graphics system using +the Silicon Graphics IRIS GL. +The software makes extensive use of the TIFFRGBAImage +facilities described elsewhere.
    tiffsvA program to save all or part of a screen dump on a Silicon +Graphics system. +As for tiffgt this code, while written to use the IRIS GL, +can be easily tailored to other devices.
    + +

    Device-independent Programs

    + +The remaining programs should be device-independent: + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    tiffinfoDisplay information about one or more TIFF files.
    tiffdumpDisplay the verbatim contents of the TIFF directory in a + file (it's very useful for debugging bogus files that you may get from + someone that claims they support TIFF)
    tiffcpCopy, concatenate, and convert TIFF images (e.g. + switching from Compression=5 to Compression=1)
    tiff2psConvert TIFF images to PostScript
    tiffcmpCompare the contents of two TIFF files (it does + not check all the directory information, but does check all the data)
    tiff2bwA simple program to convert a color image to grayscale
    ras2tiffA quick hack that converts Sun rasterfile format images to + TIFF -- it's less than complete
    rgb2ycbcrConvert an RGB, grayscale, or bilevel TIFF image to a + YCbCr TIFF image; it's mainly provided for testing
    gif2tiffA quick hack that converts GIF 87a format images to TIFF
    ppm2tiffA quick hack that converts PPM format images to TIFF
    fax2tiffConvert raw Group 3 or Group 4 facsimile data to TIFF
    pal2rgbConvert a Palette-style image to a full color RGB image by + applying the colormap
    tiffditherDither a b&w image into a bilevel image (suitable for + use in creating fax files)
    tiffsplitCreate one or more single-image files from a (possibly) + multi-image file
    fax2psConvert a Group 3- or Group 4- compressed TIFF to PostScript + that is significantly more compressed than is generated by tiff2ps + (unless tiff2ps writes PS Level II)
    thumbnailCopy a bilevel TIFF to one that includes 8-bit greyscale + "thumbnail images" for each page; it is provided as an example of + how one might use the SubIFD tag + (and the library support for it)
    tiffmedianA version of Paul Heckbert's median cut program + that reads an RGB TIFF image, and creates a TIFF palette file as a + result; it's useful for converting full-color RGB images to 8-bit + color for your friends that have cheapo 8-bit framebuffers.
    sgi2tiffA program to convert SGI image files to TIFF. This + program is only useful on SGI machines as it uses -limage.
    + +

    +Check out the manual pages for details about the above programs. + + +

    +


    + + +Last updated: $Date: 2000/06/24 19:10:16 $ + + + + diff --git a/html/v3.4beta007.html b/html/v3.4beta007.html new file mode 100755 index 0000000..ac12eed --- /dev/null +++ b/html/v3.4beta007.html @@ -0,0 +1,112 @@ + + + +Changes in TIFF v3.4beta007 + + + + + + + +TIFF CHANGE INFORMATION + + + + +

    +This document describes the changes made to the software between the +previous and current versions (see above). +If you don't find something listed here, then it was not done in this +timeframe, or it was not considered important enough to be mentioned. +The following information is located here: +

    + +


    + +CHANGES IN THE SOFTWARE CONFIGURATION: + +
      +
    • bit order was corrected for Pentium systems +
    • a new define, HOST_BIGENDIAN, was added for code that + wants to statically use information about native cpu byte order +
    + +


    + +CHANGES IN LIBTIFF: + +
      +
    • the G3/G4 decoder was replaced by a new one that is faster and + has smaller state tables +
    • Niles Ritter's client tag extension hooks were added +
    • a new routine TIFFCurrentDirOffset was added for + applications that want to find out the file offset of a TIFF directory +
    • the calculation of the number of strips in an image was corected + for images with certain esoteric configurations +
    • a potential memory leak (very unlikely) was plugged +
    • the TIFFReadRGBAImage support was completely rewritten + and new, more flexible support was added for reading images into + a fixed-format raster +
    • YCbCr to RGB conversion done in the TIFFReadRGBAImage support + was optimized +
    • a bug in JPEG support calculation of strip size was corrected +
    • the LZW decoder was changed to initialize the code table to zero + to lessen potential problems that arise when invalid data is decoded +
    • tiffcomp.h is now aware of OS/2 +
    • some function prototypes in tiffio.h and tiffiop.h + that contained parameter + names have been changed to avoid complaints from certain compilers +
    + +


    + +CHANGES IN THE PORTABILITY SUPPORT: + +
      +
    • Makefile.in has been corrected to use the parameters + chosen by the configure script +
    + +


    + +CHANGES IN THE TOOLS: + +
      +
    • fax2ps has been rewritten and moved over from the user + contributed software +
    • an uninitialized variable in pal2rgb has been fixed +
    • ras2tiff now converts 24-bit RGB raster data so that + samples are written in the proper order +
    • tiff2ps has been updated to include fixes + and enhancements from Alberto Accomazzi +
    • tiffcp now has a -o option to select a directory + by file offset +
    • tiffinfo is now capable of displaying the raw undecoded + image data in a file +
    • tiffgt has been rewritten to use the new TIFFRGBAImage + support and to handle multiple files +
    + + TIFF home page.
    + +
    + +
    +Sam Leffler / sam@engr.sgi.com +Last updated $Date: 2000/06/24 19:10:16 $. +
    + + + diff --git a/html/v3.4beta016.html b/html/v3.4beta016.html new file mode 100755 index 0000000..fa1b522 --- /dev/null +++ b/html/v3.4beta016.html @@ -0,0 +1,122 @@ + + + +Changes in TIFF v3.4beta016 + + + + + + + +TIFF CHANGE INFORMATION + + + + +

    +This document describes the changes made to the software between the +previous and current versions (see above). +If you don't find something listed here, then it was not done in this +timeframe, or it was not considered important enough to be mentioned. +The following information is located here: +

    + +


    + +CHANGES IN THE SOFTWARE CONFIGURATION: + +
      +
    • support was added for configuring the Deflate codec +
    • support was added for the HTML documentation +
    • codecs that are not configured for inclusion in the library + are no longer compiled +
    + +


    + +CHANGES IN LIBTIFF: + +
      +
    • support was added for registering new codecs external to the library + and for overriding the codecs that are builtin to the library +
    • emulation support for the old DataType tag was improved +
    • suppport was added for the SMinSampleValue + and SMaxSampleValue tags +
    • the library no longer ignores TileWidth and TileLength + tags whose values are not a multiple of 16 (per the spec); this + permits old, improperly written, images to be read +
    • the support for the Predictor tag was placed in a reusable + module so that it can be shared by multiple codecs +
    • experimental compression support was added for the Deflate algorithm + (using the freely available zlib package) +
    • a new routine, TIFFWriteBufferSetup was added a la the + routine TIFFReadBufferSetup +
    • the DSO version of the library is now statically linked with the + JPEG and Deflate libraries; this means applications that link against + the DSO do not also need to link against these ancillary libraries +
    + +


    + +CHANGES IN THE TOOLS: + +
      +
    • all the tools now use common code to process compress-oriented arguments +
    • tiffdump should now compile on a Macintosh with MPW +
    + +


    + +CHANGES IN THE MANUAL PAGES: + +
      +
    • everything was updated +
    + +


    + +CHANGES IN THE DOCUMENTATION: + +
      +
    • everything was updated +
    + +


    + +CHANGES IN CONTRIBUTED SOFTWARE: + +
      +
    • contrib/dbs/xtiff was made to compile +
    • contrib/mac-mpw is new support for compiling the software on + a Macintosh under MPW; consult the documentation + for details +
    • contrib/tags is information on how to use the tag extenion + facilities; consult + contrib/tags/README for details +
    + + TIFF home page.
    + +
    + +
    +Sam Leffler / sam@engr.sgi.com +Last updated $Date: 2000/06/24 19:10:16 $. +
    + + + diff --git a/html/v3.4beta018.html b/html/v3.4beta018.html new file mode 100755 index 0000000..f48b833 --- /dev/null +++ b/html/v3.4beta018.html @@ -0,0 +1,84 @@ + + + +Changes in TIFF v3.4beta018 + + + + + + + +TIFF CHANGE INFORMATION + + + + +

    +This document describes the changes made to the software between the +previous and current versions (see above). +If you don't find something listed here, then it was not done in this +timeframe, or it was not considered important enough to be mentioned. +The following information is located here: +

    + +


    + +CHANGES IN THE SOFTWARE CONFIGURATION: + +
      +
    • configure now recognizes IRIX 6.x systems +
    • configure now uses ENVOPTS when searching for an ANSI + C compiler; this fixes a problem configuring the software under + HP/UX with the native C compiler +
    • configure now correctly recognizes memory-mapped files are supported + under AIX +
    + +


    + +CHANGES IN LIBTIFF: + +
      +
    • make install now properly installs the include files +
    • some portability fixes from Bjorn Brox +
    • the G3/G4 codec now warns about decoded rows that are longer than + the image/tile width +
    • changes from Frank Cringle to make the library work with the + gcc-specific bounds checking software +
    • miscellaneous fixes to TIFFPrintDirectory +
    • bug fix to correct a problem where TIFFWriteRawStrip + could not be used to automatically grow an image's length +
    + +


    + +CHANGES IN THE TOOLS: + +
      +
    • fixes from Frank Cringle to update fax2tiff +
    • portability fixes to tiff2bw and tiffcmp +
    • tiffdump now uses the byte swapping routines in the library +
    + + TIFF home page.
    + +
    + +
    +Sam Leffler / sam@engr.sgi.com +Last updated $Date: 2000/06/24 19:10:16 $. +
    + + + diff --git a/html/v3.4beta024.html b/html/v3.4beta024.html new file mode 100755 index 0000000..340e9c9 --- /dev/null +++ b/html/v3.4beta024.html @@ -0,0 +1,139 @@ + + + +Changes in TIFF v3.4beta024 + + + + + + + +TIFF CHANGE INFORMATION + + + + +

    +This document describes the changes made to the software between the +previous and current versions (see above). +If you don't find something listed here, then it was not done in this +timeframe, or it was not considered important enough to be mentioned. +The following information is located here: +

    + +


    + +CHANGES IN THE SOFTWARE CONFIGURATION: + +
      +
    • It is now possible to setup the software to build only the + library; configure reconizes this is the intent when the + VERSION, tiff.alpha, and tif_version.c + files are in the local directory (i.e. ``.'') +
    • configure no longer tries to setup HTML materials +
    • include file directories needed in building the library are now + specified with a DIRS_LIBINC config parameter +
    • configure no longer checks for alternate compilers if CC + is set; if the specified compiler is not found or is not appropriate + the configuration procedure aborts +
    • the port.h file generated by configure is now used only by + the library and as such as have been moved to the libtiff + directory +
    • there is beginning support for building DSO's on systems other than IRIX +
    • configure now verifies the JPEG and zlib directory pathnames by + checking for well-known include files in these directories +
    • configure no longer creates the dist directory needed only + on SGI machines (for building SGI binary distributions) +
    • a bug was fixed whereby configure would incorrectly set + ENVOPTS when building the software with gcc under AIX +
    + +


    + +CHANGES IN LIBTIFF: + +
      +
    • two new typedefs were added to tiff.h: int8 + and uint8 for signed and unsigned 8-bit quantities, + respectively; these are currently used only by + programs in the tools directory +
    • the BadFaxLines, CleanFaxData, and + ConsecutiveBadFaxLines tags are now supported with + Group 4 compression +
    • byte order is now correctly identified on 64-bit machines +
    • a bug was fixed in the PackBits decoder where input data would + appear short when a no-op run was present +
    • a bug was fixed in calculations with very wide strips +
    • TIFFWriteEncodedStrip and TIFFWriteRawStrip + were extended to support dynamically growing the number of + strips in an image (must set ImageLength prior to + making calls though) +
    • TIFFDefaultTileSize now rounds tile width and height + up to a multiple of 16 pixels, as required by the TIFF 6.0 specification +
    • the file version.h is now built by a new mkversion + program; this was done for portability to non-UNIX systems +
    • support was added for the Acorn RISC OS (from Peter Greenham) +
    • the builtin codec table is now made const when compiling + under VMS so that libtiff can be built as a shared library +
    • support for the PowerPC Mac (from Ruedi Boesch) +
    • support for Window NT/Window 95 (from Scott Wagner) +
    + +


    + +CHANGES IN THE TOOLS: + +
      +
    • the tools no longer include port.h +
    • various portability fixes; mostly to eliminate implicit assumptions + about how long int32 data types are +
    • PostScript Level II additions to tiff2ps from Bjorn Brox +
    • sgi2tiff now handles RGBA images +
    + +


    + +CHANGES IN THE MANUAL PAGES: + +
      +
    • the documentation has been updated to reflect the current state of + the software +
    • some routines have been moved to different manual pages + to group like-routines together +
    + +


    + +CHANGES IN THE CONTRIBUTED SOFTWARE: + +
      +
    • support was added for the Acorn RISC OS (from Peter Greenham) +
    • support for Windows NT/Windows 95 contributed for a previous + version of this software was sort of incorporated (it's broken + right now) (from Scott Wagner) +
    + + TIFF home page.
    + +
    + +
    +Sam Leffler / sam@engr.sgi.com +Last updated $Date: 2000/06/24 19:10:16 $. +
    + + + diff --git a/html/v3.4beta028.html b/html/v3.4beta028.html new file mode 100755 index 0000000..9c9578e --- /dev/null +++ b/html/v3.4beta028.html @@ -0,0 +1,146 @@ + + + +Changes in TIFF v3.4beta028 + + + + + + + +TIFF CHANGE INFORMATION + + + + +

    +This document describes the changes made to the software between the +previous and current versions (see above). +If you don't find something listed here, then it was not done in this +timeframe, or it was not considered important enough to be mentioned. +The following information is located here: +

    + +


    + +CHANGES IN THE SOFTWARE CONFIGURATION: + +
      +
    • a -noninteractive flag was added to configure to + control whether or not it prints and prompts for configuration information +
    • various typos and fixes were made in configure for the the + library-only build support (this and other configure fixes from + Richard Mlynarik <mly@adoc.xerox.com>) +
    • bugs were fixed in the handling of pathnames supplied for external + packages; e.g. DIR_JPEG +
    • the handling of SETMAKE is now done properly +
    • the default prototype function declaration for pow was corrected +
    • a bug was fixed in libtiff/Makefile.in that caused installation + to fail on systems without DSO support +
    + +


    + +CHANGES IN LIBTIFF: + +
      +
    • Acorn RISC O/S support that was accidentally left out of the + left out of the previous distribution is present (from Peter Greenham) +
    • complaints about unknown and/or unsupported codecs have been + delayed until they are invoked; this permits applications to open + images and look at tags even if the image data is compressed with + an unknown/unsupported compression scheme +
    • bugs in handling unknown tags have been corrected; applications + that use multiple codecs, each with codec-specific tags, no longer + generate confusing error messages +
    • a missing pseudo-tag definition in the CCITT G3 codec was fixed + (this problem caused core dumps in the tiffcp program) +
    • pseudo-tags are now treated specially; they are always considered + to be set (i.e. they do not use bits in the FIELD_* bit-vectors). +
    • the use of strip chopping can now be controlled on a per-file basis + through a mode parameter supplied when opening a file (``C'' to + enable strip chopping and ``c'' to disable) +
    • two bugs were fixed in the writing of opposite-endian byte-order + files +
    • support was added for three new fax-related tags registered to + SGI: FaxRecvParams, FaxRecvTime, and FaxSubAddress +
    • the bit order of image data read and written can now be controlled + on a per-file basis through a mode parameter supplied when opening + a file (``B'' to force MSB2LSB bit order, ``L'' for LSB2MSB bit + order, and ``H'' for the bit order of the native CPU) +
    • the byte order of image and tag data written to newly-created files + can now be controlled on a per-file basis through a mode parameter + supplied when openening a file (``b'' to force Big-Endian byte order + and ``l'' to force Little-Endian byte order) +
    • the use memory-mapped files for images opened read-only can now + be controlled on a per-file basis through a mode parameter supplied + when opening a file (``M'' to enable use of memory-mapped files + and ``m'' to disable use) +
    • the use of the WIN32 define in tiffiop.h has + been replaced by __WIN32__ +
    + +


    + +CHANGES IN THE TOOLS: + +
      +
    • fax2ps now does a save and restore + around each page of PostScript; this fixes a problem with VM + overflow when printing a many-page document on some printers +
    • a bug in the handling of 3-channel images by ras2tiff + was fixed +
    • tiffcp has new options to control the byte order of + newly created files: -B for Big-Endian byte order, -L + for Little-Endian byte order; a -M option to disable the + use of memory-mapped files, and a -C option to disable the + use of strip chopping +
    • bugs were fixed in tiffcp's handling of codec-specific tags +
    + +


    + +CHANGES IN THE MANUAL PAGES: + +
      +
    • the TIFFOpen page has been updated to reflect the new + optional open mode parameters +
    + +


    + +CHANGES IN THE CONTRIBUTED SOFTWARE: + +
      +
    • contrib/win95 contains information and code from Philippe Tenenhaus + <100423.3705@compuserve.com> + about using the software under Windows 95 +
    • contrib/winnt contains information and code from Dave Dyer + <ddyer@triple-i.com> + about using the software under Windows NT +
    + + TIFF home page.
    + +
    + +
    +Sam Leffler / sam@engr.sgi.com +Last updated $Date: 2000/06/24 19:10:16 $. +
    + + + diff --git a/html/v3.4beta029.html b/html/v3.4beta029.html new file mode 100755 index 0000000..1725211 --- /dev/null +++ b/html/v3.4beta029.html @@ -0,0 +1,86 @@ + + + +Changes in TIFF v3.4beta029 + + + + + + + +TIFF CHANGE INFORMATION + + + + +

    +This document describes the changes made to the software between the +previous and current versions (see above). +If you don't find something listed here, then it was not done in this +timeframe, or it was not considered important enough to be mentioned. +The following information is located here: +

    + +


    + +CHANGES IN THE SOFTWARE CONFIGURATION: + +
      +
    • configure now relativizes pathname references given in + -L options (as frequently specified when configuring + ancillary packages) +
    • problems related to configuring the software on Ultrix 4.4 have + been corrected +
    • the shell to use in Makefiles and scripts can now be set with the + SCRIPT_SH configuration parameter +
    • comments in config.site now correctly indicate how to setup the + use of ancillary packages +
    + +


    + +CHANGES IN LIBTIFF: + +
      +
    • mods for building the software on a Mac using the + MetroWerks CodeWarrior compilers +
    • a bug in the CCITT T.4/T.6 decoder was fixed where the last codeword in + a strip/tile might not be decoded; this was seen only when decoding + multi-strip images +
    • a bug in the CCITT RLE codecs was fixed whereby the pseudo tags were not + being properly registered +
    + +


    + +CHANGES IN THE CONTRIBUTED SOFTWARE: + +
      +
    • contrib/mac-cw contains information and code from Niles Ritter + <ndr@tazboy.jpl.nasa.gov> + about building the software with the MetroWerks CodeWarrior compilers + on Macintosh systems +
    + + TIFF home page.
    + +
    + +
    +Sam Leffler / sam@engr.sgi.com +Last updated $Date: 2000/06/24 19:10:16 $. +
    + + + diff --git a/html/v3.4beta031.html b/html/v3.4beta031.html new file mode 100755 index 0000000..f47f151 --- /dev/null +++ b/html/v3.4beta031.html @@ -0,0 +1,94 @@ + + + +Changes in TIFF v3.4beta031 + + + + + + + +TIFF CHANGE INFORMATION + + + + +

    +This document describes the changes made to the software between the +previous and current versions (see above). +If you don't find something listed here, then it was not done in this +timeframe, or it was not considered important enough to be mentioned. +The following information is located here: +

    + +


    + +CHANGES IN THE SOFTWARE CONFIGURATION: + +
      +
    • configure now captures significantly more information + in the config.log file and provides more information when + it is unable to setup a configuration +
    • support was added for building shared libraries on more systems: + AIX, HPUX, Solaris, and Linux. +
    • a new configuration parameter LIBCOPTS was added for + passing arguments to the C compiler to use when building only + the library; this is part of the enhanced support for building + shared libraries +
    • include files for optional packages that reside in /usr/include + are now handled correctly +
    • build trees may now be configured using either relative or absolute + pathnames to the source distribution +
    • several new configuration parameters were added, mainly for building + shared libraries: DIST_MAJOR, DIST_MINOR, + DIST_ALPHA, and DSOSUF_VERSION +
    + +


    + +CHANGES IN LIBTIFF: + +
      +
    • the Deflate support has been revised: it requires version 0.99 of + the zlib software distribution, the output format has changed and + is incompatible with previous versions of this library (each + strip now includes a header read and written by the zlib library) +
    • the codec name printed by the TIFFPrintDirectory routine is now + taken from the codec table instead of from a builtin table; this means + that application-defined codecs are handled correctly +
    • a new symbol was added that contains the library version number; + this can be used to do a compile-time compatibility check of the + library version +
    + +


    + +CHANGES IN THE MANUAL PAGES: + +
      +
    • the creation and installation of manual pages was redone; it now + implements the documented ``configuration scheme'' +
    + + TIFF home page.
    + +
    + +
    +Sam Leffler / sam@engr.sgi.com +Last updated $Date: 2000/06/24 19:10:16 $. +
    + + + diff --git a/html/v3.4beta032.html b/html/v3.4beta032.html new file mode 100755 index 0000000..4f7e1a4 --- /dev/null +++ b/html/v3.4beta032.html @@ -0,0 +1,90 @@ + + + +Changes in TIFF v3.4beta032 + + + + + + + +TIFF CHANGE INFORMATION + + + + +

    +This document describes the changes made to the software between the +previous and current versions (see above). +If you don't find something listed here, then it was not done in this +timeframe, or it was not considered important enough to be mentioned. +The following information is located here: +

    + +


    + +CHANGES IN THE SOFTWARE CONFIGURATION: + +
      +
    • various fixups and subtle improvements to configure + from Richard Mlynarik +
    + +


    + +CHANGES IN LIBTIFF: + +
      +
    • a new codec from Pixar designed for high-resolution color images; + note that this codec is not configured by default +
    • a bug fix for reading tags with a single FLOAT value +
    • change to the TIFFGetField calling convention: + a tag that has a single value of + type DOUBLE is now retrieved by passing a + ``double*'' instead of a + ``double**'' (this change makes the handling of tags with + DOUBLE values identical to the handling of tags with + FLOAT values) +
    • fix to VMS support for the handling of floating point values +
    + +


    + +CHANGES IN THE TOOLS: + +
      +
    • tiffdump now handles tags with FLOAT and DOUBLE + values +
    + +


    + +CHANGES IN THE CONTRIBUTED SOFTWARE: + +
      +
    • updates to the Acorn OS support from Peter Greenham +
    + + TIFF home page.
    + +
    + +
    +Sam Leffler / sam@engr.sgi.com +Last updated $Date: 2000/06/24 19:10:16 $. +
    + + + diff --git a/html/v3.4beta033.html b/html/v3.4beta033.html new file mode 100755 index 0000000..518e337 --- /dev/null +++ b/html/v3.4beta033.html @@ -0,0 +1,82 @@ + + + +Changes in TIFF v3.4beta033 + + + + + + + +TIFF CHANGE INFORMATION + + + + +

    +This document describes the changes made to the software between the +previous and current versions (see above). +If you don't find something listed here, then it was not done in this +timeframe, or it was not considered important enough to be mentioned. +The following information is located here: +

    + +


    + +CHANGES IN THE SOFTWARE CONFIGURATION: + +
      +
    • support was added for building the library as a DSO under OSF/1 +
    + +


    + +CHANGES IN LIBTIFF: + +
      +
    • fixes to the Pixar codec +
    • portability mods for VMS +
    + +


    + +CHANGES IN THE TOOLS: + +
      +
    • fixes to gif2tiff and ppm2tiff for building under MS/DOS +
    • portability mods to fax2ps and ycbcr for VMS +
    + +


    + +CHANGES IN THE CONTRIBUTED SOFTWARE: + +
      +
    • a new package from Alexander Lehmann + for building the library and tools under MS/DOS with DJGPP v2 +
    • updated VMS support from Karsten Spang +
    + + TIFF home page.
    + +
    + +
    +Sam Leffler / sam@engr.sgi.com +Last updated $Date: 2000/06/24 19:10:16 $. +
    + + + diff --git a/html/v3.4beta034.html b/html/v3.4beta034.html new file mode 100755 index 0000000..72ab4b6 --- /dev/null +++ b/html/v3.4beta034.html @@ -0,0 +1,68 @@ + + + +Changes in TIFF v3.4beta034 + + + + + + + +TIFF CHANGE INFORMATION + + + + +

    +This document describes the changes made to the software between the +previous and current versions (see above). +If you don't find something listed here, then it was not done in this +timeframe, or it was not considered important enough to be mentioned. +The following information is located here: +

    + +


    + +CHANGES IN THE SOFTWARE CONFIGURATION: + +
      +
    • support was added for building the library as a DSO under NetBSD +
    • a bug was fixed in the DSO support for Linux +
    • the handling of version strings has changed slightly to simplify parsing +
    • a new parameter, TIFFLIBREF, was added to control how the + library is referenced when linking programs in the tools directory +
    + +


    + +CHANGES IN LIBTIFF: + +
      +
    • DSO creation under Solaris now forces the DSO name with a -h option +
    • the interface to the mkversion program was changed + to eliminate the need to parse files +
    • a bug was fixed in the EOL-detection logic of the T.4/T.6 decoder +
    • ANSI IT8 TIFF/IT tag definitions were added to tiff.h +
    + + TIFF home page.
    + +
    + +
    +Sam Leffler / sam@engr.sgi.com +Last updated $Date: 2000/06/24 19:10:16 $. +
    + + + diff --git a/html/v3.4beta035.html b/html/v3.4beta035.html new file mode 100755 index 0000000..804ee06 --- /dev/null +++ b/html/v3.4beta035.html @@ -0,0 +1,63 @@ + + + +Changes in TIFF v3.4beta035 + + + + + + + +TIFF CHANGE INFORMATION + + + + +

    +This document describes the changes made to the software between the +previous and current versions (see above). +If you don't find something listed here, then it was not done in this +timeframe, or it was not considered important enough to be mentioned. +The following information is located here: +

    + +


    + +CHANGES IN THE SOFTWARE CONFIGURATION: + +
      +
    • support was added installing the HTML documentation +
    • support was added for building the library as a DSO under FreeBSD +
    + +


    + +CHANGES IN LIBTIFF: + +
      +
    • the interface to the mkversion program was restored to + the form used prior to v3.4beta034 +
    • several portability problems for 16-bit systems were fixed +
    + + TIFF home page.
    + +
    + +
    +Sam Leffler / sam@engr.sgi.com +Last updated $Date: 2000/06/24 19:10:16 $. +
    + + + diff --git a/html/v3.4beta036.html b/html/v3.4beta036.html new file mode 100755 index 0000000..e9ed2b8 --- /dev/null +++ b/html/v3.4beta036.html @@ -0,0 +1,117 @@ + + + +Changes in TIFF v3.4beta036 + + + + + + + +TIFF CHANGE INFORMATION + + + + +

    +This document describes the changes made to the software between the +previous and current versions (see above). +If you don't find something listed here, then it was not done in this +timeframe, or it was not considered important enough to be mentioned. +The following information is located here: +

    + +


    + +CHANGES IN THE SOFTWARE CONFIGURATION: + +
      +
    • support was added for building the library as a DSO under HP-UX with + the native C compiler +
    • tools are now built with explicit pathnames for the DSO under IRIX, + Solaris, and Linux +
    • DSO configuration support for Linux was changed to require that + libc.so only be readable (not executable) +
    + +


    + +CHANGES IN LIBTIFF: + +
      +
    • support was add for ICC: NumberOfInks, and ICCProfile +
    • a memory leak caused by doing TIFFSetDirectory(0) was fixed +
    • a bug was fixed whereby certain multi-directory files were not + properly handled when accessed by mapping the data into memory +
    • the strip chopping support is now always compiled + into the library with the default usage controlled by a + STRIPCHOP_DEFAULT configuration parameter +
    • the strip chopping support no longer chops tiled images +
    • all static strings are now const--for shared libraries +
    • the logic for estimating the strip size of images without + a StripByteCounts tag was improved by handling + PlanarContig images differently from PlanarSeparate +
    • a bug was fixed in the G3 codec when converting the Y resolution + of data specified in metric units +
    • a bug was fixed in the G3/G4 decoder for data where lines terminate + with a v0 code +
    • the TIFFRGBAImage support was changed to scale 16-bit colormap + entries more conservatively to avoid problems with applications + that do not generate fully saturated pixel values +
    • the LZW decoder was changed to use a more conservative scheme when + bounds checking the hash table array; this avoids pitfalls with + systems that load objects into memory in unusual locations +
    • a bug was fixed in TIFFPrintDirectory's handling of the + InkNames tag +
    • TIFFPrintDirectory now understands NumberOfInks + and ICC-related tags +
    • the routines for reading image data now provide more useful information + when a read error is encountered +
    • support was added for compiling with Microsoft Visual C++ 4.0 +
    + +


    + +CHANGES IN THE TOOLS: + +
      +
    • a bug was fixed in pal2rgb's colormap handling +
    • tiff2ps now includes John Wehle's changes for maintaining + the aspect ratio + of images when scaling and for honoring the deadzone on a page when + generating PostScript Level II +
    • tiff2ps does a better job guarding against the mishandling + of greyscale images +
    • tiff2ps now correctly converts X- and Y-resolution values + specified in metric units +
    • tiffdump has a new -m option to control the maximum + number of indirect + data values printed for a tag (by default 24) +
    • tiffdump understands several new tags +
    • tiffdump now shows any terminating null in ASCII strings +
    • tiffinfo now suppresses strip chopping when interpreting an image; + a new -z option has been added to enable strip chopping +
    + + TIFF home page.
    + +
    + +
    +Sam Leffler / sam@engr.sgi.com +Last updated $Date: 2000/06/24 19:10:16 $. +
    + + + diff --git a/html/v3.5.1.html b/html/v3.5.1.html new file mode 100755 index 0000000..e91f95d --- /dev/null +++ b/html/v3.5.1.html @@ -0,0 +1,75 @@ + + + +Changes in TIFF v3.5.1 + + + + + + + + +TIFF CHANGE INFORMATION + + + + +


    + +CHANGES IN THE SOFTWARE CONFIGURATION: + +
      +
    • None of consequence +
    + +


    + +CHANGES IN LIBTIFF: + + +
      +
    • Support was added for IPTC Newsphoto metadata (TIFFTAGE_IPTCNEWSPHOTO) +
    • Support was added for photoshop caption handling (TIFFTAG_PHOTOSHOP) +
    + +


    + +CHANGES IN THE TOOLS: + +
      +
    • Bill Radcliffe's iptcutil was +added to the "contrib" subdirectory . It can convert an IPTC binary +blob to ASCII text and vice-versa. The blob itself can be extracted +from or added to an image with the ImageMagick convert(1) +utility. +
    + + TIFF home page.
    + +
    + +Last updated $Date: 2000/06/24 19:10:16 $. + + + diff --git a/html/v3.5.2.html b/html/v3.5.2.html new file mode 100755 index 0000000..b0ccd90 --- /dev/null +++ b/html/v3.5.2.html @@ -0,0 +1,108 @@ + + + +Changes in TIFF v3.5.2 + + + + + + + + +TIFF CHANGE INFORMATION + + + + +

    +This document describes the changes made to the software between the +previous and current versions (see above). +If you don't find something listed here, then it was not done in this +timeframe, or it was not considered important enough to be mentioned. +The following information is located here: +

    + +


    + +CHANGES IN THE SOFTWARE CONFIGURATION: + +
      +
    • Corrected alpha versioning. + +
    • Removed distinction between alpha and release targets in Makefile.in. + +
    • Added release.stamp target, which tags cvs tree, and updates + "RELEASE-DATE" + +
    • Added releasediff target, which diffs tree with source as of + date in "RELEASE-DATE" + +
    • Ticked up version to 3.5.2 (alpha 01 -- but I think we'll moving + away from alpha/non-alpha distinctions). + +
    + +


    + +CHANGES IN LIBTIFF: + + +
      +
    • Added IRIX/gcc, and OSF/1 4.x support on behalf of + Albert Chin-A-Young + +
    • Added TIFFReassignTagToIgnore() API on behalf of + Bruce Cameron . Man page still pending. + +
    • pre-remove so link before softlink in LINUXdso action in + libtiff/Makefile.in to avoid failure on LINUXdso builds other than + the first. + +
    • Fixed problem with cvtcmap() in tif_getimage.c modifying the + colormaps owned by the TIFF handle itself when trying to fixup wrong + (eight bit) colormaps. Corrected by maintaining a private copy of + the colormap. + +
    • Added TIFFReadRGBATile()/TIFFReadRGBAStrip() support in + tif_getimage.c. + +
    • Applied "a" mode fix to tif_win32.c/TIFFOpen() as suggested + by Christopher Lawton + +
    • Set O_BINARY for tif_unix.c open() ... used on cygwin for instance. + +
    • Added CYGWIN case in configure. + +
    • Applied Francois Dagand's patch to handle fax decompression bug. + (sizes >= 65536 were failing) +
    + +


    + +CHANGES IN THE TOOLS: + +
      +
    • Added addtiffo (add overviews to a TIFF file) in contrib. Didn't + put it in tools since part of it is in C++. +
    + + TIFF home page.
    + +
    + +Last updated $Date: 2000/06/24 19:10:16 $. + + + diff --git a/html/v3.5.3.html b/html/v3.5.3.html new file mode 100755 index 0000000..bd2395b --- /dev/null +++ b/html/v3.5.3.html @@ -0,0 +1,132 @@ + + + +Changes in TIFF v3.5.3 + + + + + + + + +TIFF CHANGE INFORMATION + + + + +

    +This document describes the changes made to the software between the +previous and current versions (see above). +If you don't find something listed here, then it was not done in this +timeframe, or it was not considered important enough to be mentioned. +The following information is located here: +

    +

    +The ChangeLog will follow, but please note the most important change: +LZW compression has been removed. +

    +Unisys has the patent on LZW compression and have been very active in +their enforcement of late, demanding payments of $5000 or more from +websites using unlicensed software to create GIF's. They could well +do the same do persons using libtiff to create LZW compressed TIFF +images. +

    +From Burn All GIF's Day: +
    +The catch is that it appears to be difficult or impossible to get a +Unisys license to use LZW in free software that complies with the Open +Source Definition +

    +Unfortunatly, the removal of LZW compression means that saved image size has +grown dramatically. Without a change in the TIFF spec to support +another lossless compression format, this is unavoidable. +

    +The library can use zip for lossless compression, but as this is not +part of the spec, TIFFs using zip compression may not work with other +software +

    +We will be making a patch available that will contain the LZW +compression code for users who have either obtained a license from +Unisys or are willing to risk it. +

    +LZW decompression is unchanged. +

    +


    + +CHANGES IN THE SOFTWARE CONFIGURATION: + +
      +
    • Added zip creation to release makefile target + + +
    + +


    + +CHANGES IN LIBTIFF: + + +
      + +
    • Added html for TIFFWriteTile.3t man page. + +
    • Added some changes to tif_write.c to support rewriting existing + fixed sized tiles and strips. Code mods disabled by default, only + enabled if REWRITE_HACK is defined for now. + +
    • Added TIFFWriteTile.3t man page. + +
    • Added notes on use of makefile.vc in build.html, and fixed + email subscription address. + +
    • Fixed apocalypse-inducing y2k bug in contrib/ras/ras2tiff.c + +
    • Did some casts cleaning up to reduce compiler warnings in tif_fax3.c, + from Bruce Carmeron -- modifications of + changes made by Frank (sun cc still complained on cast). + +
    • fixed various VC++ warnings as suggested by Gilles Vollant + . + +
    • Modified TIFFquery.3t man pages info on TIFFIsByteSwapped() to + not imply applications are responsible for image data swapping. + +
    • HTML-ized the man pages, added to html/man + +
    • Removed LZW Compression to comply with Unisys patent extortion. + +
    • Corrected one remaining 16 -> 32 bit value in tif_fax3.c, + From Ivo Penzar Added patch from Ivo Penzar to have TiffAdvanceDirectory handle + memory mapped files. +
    + +


    + +CHANGES IN THE TOOLS: + +
      +
    • Fixed apocalypse-inducing y2k bug in contrib/ras/ras2tiff.c +
    + + TIFF home page.
    + +
    + +Last updated $Date: 2000/06/24 19:10:16 $. + + + diff --git a/libtiff.dsp b/libtiff.dsp new file mode 100755 index 0000000..97908d4 --- /dev/null +++ b/libtiff.dsp @@ -0,0 +1,264 @@ +# Microsoft Developer Studio Project File - Name="libtiff" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** NICHT BEARBEITEN ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=libtiff - Win32 Debug +!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE +!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl +!MESSAGE +!MESSAGE NMAKE /f "libtiff.mak". +!MESSAGE +!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben +!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel: +!MESSAGE +!MESSAGE NMAKE /f "libtiff.mak" CFG="libtiff - Win32 Debug" +!MESSAGE +!MESSAGE Für die Konfiguration stehen zur Auswahl: +!MESSAGE +!MESSAGE "libtiff - Win32 Release" (basierend auf "Win32 (x86) Static Library") +!MESSAGE "libtiff - Win32 Debug" (basierend auf "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "libtiff - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\lib\release\libtiff.lib" + +!ELSEIF "$(CFG)" == "libtiff - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /G6 /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\lib\debug\libtiff.lib" + +!ENDIF + +# Begin Target + +# Name "libtiff - Win32 Release" +# Name "libtiff - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\libtiff\fax3sm.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_aux.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_close.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_codec.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_compress.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_dir.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_dirinfo.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_dirread.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_dirwrite.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_dumpmode.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_error.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_fax3.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_flush.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_getimage.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_jpeg.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_luv.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_lzw.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_next.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_open.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_packbits.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_pixarlog.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_predict.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_print.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_read.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_strip.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_swab.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_thunder.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_tile.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_version.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_warning.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_win32.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_write.c +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_zip.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\libtiff\t4.h +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_dir.h +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_fax3.h +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tif_predict.h +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tiff.h +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tiffcomp.h +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tiffconf.h +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tiffio.h +# End Source File +# Begin Source File + +SOURCE=.\libtiff\tiffiop.h +# End Source File +# Begin Source File + +SOURCE=.\libtiff\uvcode.h +# End Source File +# End Group +# End Target +# End Project diff --git a/libtiff.dsw b/libtiff.dsw new file mode 100755 index 0000000..e6d08b7 --- /dev/null +++ b/libtiff.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELÖSCHT WERDEN! + +############################################################################### + +Project: "libtiff"=.\libtiff.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/libtiff.ncb b/libtiff.ncb new file mode 100755 index 0000000000000000000000000000000000000000..dae9e487ad4f962982ab111e7d3c62820ac9f0a0 GIT binary patch literal 8186880 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຿!ro)_+@>D&b+V>C$E?@U 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%0DMOU{~7qA!N(GS2h|2K5Wsc_z;{vbMU*>yv;lZf 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�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%0D)elC0t9u?nCKNda) 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%0D-~k&ihq-2w3k`u9Gy;s1!o&@1|U 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

    o!PJFi&bB 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

    NkNMIvFgI4Gm4<3y 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

  • bUp34z}UcBS-%Www~kKX~wASxJ!Y)UXJ_B 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
  • Q_ZD~jS3Tb9X4G*Qtj(q^GPl5<|>|c>SYR913C#?>9 znFy+S(jKOIbBo%GR%=%XZkC-!j}P#z9MB{(k7+snv_1jNY&?dfM@u!LsX0tB2QgIK4pNA;Q)m z*Q}6!JEdions`cuMOVq(Q{fl25Od!1+sQSLNUxDnO-ua=uf!D_IO=35U$-e;v|Th5 zt*tp`9>#As8@AE7)mYKOQL63ueWlbCaZRjPQG5e05Nng5H@*j!@!cH1V3Jqb0F+uu zFPG9ImU=i!#ofM)v?#;~i8+Oy$yL}-B|~K35wPXi0dK!6@b&8mO=5RwN!f?uasGy} zNa{%_@3J3Q>P}hKla9RwN?)5};j@woQ4!fDC4I)^!Fq1>KCCLJdEm94h@-VFFXc(_ z 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

    5|f)oOE3OU`+Rt^m;$! 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%0Aw-Kpm126ZX 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

    B|eQ8pJoyt=7|rNi4QZx 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ƁQrjlm@B?xM*Jkc?L3l!<(~64UpMgsgKPq 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 z∾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�Vl{y<%pnX{5;qIs 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


    U@9_8#(exNT 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
    VC9Fu&K&yB%jcHP;4u$~0g3lyC< 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

    +vJ= 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%0AnG>EV`3l^zGmuc;r=*JGOQji>%U%CM2JelFwe^ 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

  • b|cp43VKfIv0yz5>Zj{q!IT7ykQQxk%bXa1W4<-*UGFx8 zGU9ljG~r#9Yh2DX&T`e5_72?1#XQDy==9^DE92o6&*Vp#*hqo~%~)NfHQ{#S&}jagtND0IE=; z3Vduw?V^A6np2|aSnXf0@9yDvVU(YpV1S?gFqs}}z_$uddX~Mz4c7sG!KHw!{?DuT z8^`}VdkK%>Y(73Y8UNUOd$(94`E+p~vRRC_HGa=)Xss?7njT!!Kz>L>@gc$Hg(r)< zhnst_#=JMX%EOHeB%P>l_VS#`Vo5AOKK1!9MR)m2b8 z^x9N_SvV9EJ-wiznK^nC#d>ThiU~f~qLkgy#+G65vRQ>Tt$6z zIbuv_Zxy5d3H>Ju?|OMRukSlYZY7VDku3Daju-Brm61i^v(Idt=8W!)|?;Z z$=Azv^6717ZY1Zqs{l}(B*AK3BGP^K%Pm_yJ4IZHflL~n=@0MV*@XHtvy(_6k|GeA zPAjZ&`2}v}^75L~H-W&PW}yu^WREG<(V}GBO-Z}-aaLTzpDC4IXl1i(__GbNo=6m2 z+{5w7D+Wo=rmvUa(8f8_7&gm~2D~bE8>Q<~TP%bmuFtx(Q6d{lSaBru*H^6d7-~ zr0%6R${TNlwE`9wZdqCwV_$-Wm*?wWuu^rgzP`O*ts~@l2k7_|p^CVYdWtB88Lt>0 zC0}fHF?h!Ek818>r?V4iNkdjx@97{QmVa|QzPUcXqXE4BIoaXHP?G$!a$bJ`J6>OZ zKEK!M=pC1$pD>!48Ey~)z3yCS%QJ_O?d*7dFzel3Q)lOT2;=&d1<{XTo)KP&p>0M> zE!(#}c?8G8i88#p*rkJbBdvOf42_kO#=VCH$qZKi(;aNl^(rp+e!6>yDa-0h zawXZ0P?VOVcwaWj=A)B~!chx#S8E~&7Nch;-+|FTMQ-6S5|2F=-$mLf13V^_T2a7e zQKtuQj~P*hN%O@|Np(6?lrmhD(8W%swYk)FIbuu65^exBSc z&X*4eO<}$2=h#;!d0vS=Zn&_vvFzwIUfh3NU%t7%2-OhOYNM?tS0<8DP z&>Q8vnrnPOGnyL&yKl^a8jtxD6w8vgHw$`j)6Wa|8tu~J!dN6l?d%0o>e(Ch)E*(? zU>0vb9xc8Y2kPi~J8HNM0X7~JpBY+8Lo63f53%luI0Dz?XZPq@ zU5skfU3+YBn{|iEx=QLGyT#)UW!-;!G)Wr0`f0I@(GNONaGuUqlaC9oPD^1A?%pi4 zh8kLrng1O(!kuN9)-m_4@3>fs63qXlQ#Qx0fP4!PfOluBkTZ6c1vGgY8L4jK$=&-MV(3jz+XIbrnR> zCKdcx<2ls3!)e0=L2bxf!ITRFDQ1kbBU@BFoPIw&>>Yf%#iVt$)PAPJ#b*pSXS467 zM|19&>ZvHrH|xEhTuQd4!JlqdvP$is0$i*rjblU5v$K!u#rb7W&DirqSCIMTm&4VE z)zadDng4xzdvkrEW(8+Igq6cijzjL`FonJRGC>_QqOp+R;7^yIuh*;PCtB937jf(GX8F=yhO+#%k8$j_~&c8AAdXOE|`!w=b(Tov21-{$qpO zM&|DDbBt*=GC#3ZN%7OJFvf)f_}3*ETarzJ%CAnu#@wtL6zoLWYBE1H&zDM zsKKbt(x1qI5dR;y`hu+s$E$TSambRjviCy zyI(uh`R>=2Lf`$GR65!NSrpm5S_)L>^YtY+X9Yua`_U|s;ttrqB|Hp0!5>CSi1LID zB{3L}jo$$f*Bbxj?d)tkKRkGIaCX|e{g;Q;{rMsHF;Tx7+V4L$xY&3!W#To)M7jdZ zIWaO1aTzIRXiTg48B-EFBk4gc(jr=n=v#V&#Kz-qp*Yr?`rzNnGR|GCjK8%hWM>$N znmUoT9dSJ2X6=;0Vpgv)*9pd1CD8ZB*6Vc`-b_=M+L0JKbB4hZYY6nJv77s3u8o}g zGmcC>78SzFaTk6d0yDKPj3~+W+RW4N$W8?Yx(iPNtSNtW)N~3Vs#w`sl8s`s>Rp> z`pKANk(zC;DPp2uTrByaOSpKeh3hY(LjyDi z<~RahytgL_{e;VuSm9Y*+F;h?LnmC*S{cu`rwBbRFg8A_12&j76d<*@k*=9#tRU+o zdAp3+o%EGC)k#H%Q0S#%@|}|)cGV=CsJBwnW1}&p^i~a2o>~P)n3dj1WM^Wl+{$!s zaO;BYt3$tjbI$ddhO#B%6>CeQ!QHPZYok)-+aI5BegzwN#R*fGMCR4K58LF}8ZIrS z;w&NSrYbNxpNMy?__|g8zEO# z*qP7Z148gxjDt&i3NE@${@$J61Lajc8%uzwvc}xOk8B zDy9h)nc)qP8;A`7>l`94s}b$gm>R;oCm2>4xrof_WLejAsv)jB31Yd+`0WziUlya?A8OKv|qM#bK z>gh$s0!qf)7#VXFt08U1hx+@bonizNZ>~-jH;Bi5UUbMb7DaE@`ltGIcUj~2cX%cC z{;_h(*{tmG1aFD$onPFfhOl-fWbo4_oC$$81k`V5UzRoNaQQ_kSq_-_PuS}4YQ1`( z?KPIMrW~OBQL#JqVh(a!X0tP~6TKs`5@5yk7`RA%ChLmNZ6M0JL8o}0mJ4BeY{NW9 zz_r=}lC&x835mp5dgn&RT5pMQ#YST75o<7AZNq!f*HMMty$NGbCI zT4#gt`XVFam7qFvDcZhTKbGw|)?>0f_7+fJDT5Sok&SN}*-BGbsG4B)88Pd{y0~UW z_JkLQ+OJHuho-15Oj$93j!sr$$;$u~!)skaXDOIixYYA`m=$6RJUz{Y*F3o7F|sHDc@k4#noIOPu*l<^MJ!e;Zb#;Vgtx>Q29}Gp{Mb z8@$nT&Q6_(F`G3$yj=lcbG*|?MN@(WbxV0pP<=%lj-R?l}BJHZu$wUUUyMJg_6 zG!^;~`%6O1Vi_Jo2kR`fr8CCHT2txAs>iVRf*}j?%odu7 zly%e%hoiHk$P88mQ1d$f_$T0MXeyJRsXf!=K zJJ>(K%GLPo8D0{_;Y4Lf@Alvl<1Re*#kwl!<&S66-ZC%S{KsgJ6+G;!C}X%eA01@k zOTjuutXBS3S7N^_anO}G>`L73N*r}1?wAPRcZmB>ZC=*erx_&BAO*Fc+jsfemId)nu|f9w!eU)v2gBs%8vP^eV!%OA-(xE~UVp)hmpDo# z?8Lh>E|^IO_5rMDgsd8mMmqLrWJM-NRQpm|G&1y`lNhV8xrUW*_io{`@U~&>Ab2I3 zMdMA08IJ5)b*Z_n3ahgG`D{Zh!XmZ}tKtmTT^ z+A!=X^@(gq4NNxTEOtpS! z?=-5UAl=)mC(75@*XXZ}M~B52ck8Wg8TWa!?d=?`sFGayhB7rC)eFO7T*bH04P;U* zwWvdR!%IfR@-%Ax-`nKa9U9%SA+g5e|FHs$t;sF9(f)stNJ5v(yJCAp%+)Q)?*BwF zsqfXsxc_T}((#@ZWseT2_!IW> zTaj(cpI6v`26sEW7Bap;kTSWTq58y;jMz5laq6ma8Z=;@ZWI=CJPU6~WZ}IK6p$O8 z#TD}X8ul(l1`IrI;sh5Uax@Ursw>VAY8qDUq4+Aa1_y!^W;khKjHRoatF+x&w1!tP zB7rpmf~&_KhM9cgV0}8lU~cqfl7NxuIY07qVwKi`ySwpk@I0D*rO_hqv10iDR+@t8 z_GoBXp08`QYKXhu?UfwZnrbtD$4focYfJRUE|0HqYDFwz@4;TqS#)WXTWVajjBf(z zwMT5b554K~3wxNo$7FMC?W)$IdDJ<)H?EyIVedseZ&6-6j?u}X+2qu zydah@XmG9M0&ghU-nSrtWn+IEkpk%X?J{iD%9C&yOARG$)#)@msm;c-$MdimH6(_T zs%_SIHTbL}knootGEDE?PEyROoH!WFizzdB$*B?7{ zYrXj97L?Dh#~fQjc;ZCZrd7R-DFHPkgIkwM2xkF}T{70BnnSeCaXU z4Oi_wuhYVRYW#2ca)HGts;&lhGrXwMd@P^>dav zIL#U=LY&gRKfl4z4q=OMJ+J_P&fOJ|9BLc_#V!(vp})HyoZ-0~+LUp1lw zodOuVJx+TUU-1w%x$TCD1a-ou6za<`F@ZKCOTa;LKUeGx z${S)0QHP_%yIa+wr`G1LgjQ3D>fP(6%Ka_n`?%e;N3}9vK3JGz`(g?XCHP6o^p!kH ztYrVGTnrxYifR_;pGuk$5G$UflKiG6ykvQ*y4X!NpqTN?D07`OaoVe9X06uYb@pcV zPGeG?)o4eC?H}NE#(>Mi#LNT6(B@Ds8Nc43KM1NO ze&{riSNsA|I*v#uQhdOE$h-J%PwG?ZNs*G0wsq3bk(fEKIYqJfc0)VLXqjK*aV+Dv zljy1B<8-iTntjDj`J|xBWOe(CDcx_PQSt1K`oEgo#|!!@-nEPSJ5bd5ah=+Er{DIz z>QSBl+g|vwNk;V{7t`_(Y<|z}p$AtoiXCr_H@dr`kx`&+#TB@+OMC;ZX3oQBOpvA? z$|GJeuf@9y++^IS%71LAMv`H;2_YS`GLZ~>N*_}J6-?gw#Cwp3Su5>L^A^lAvMz< z6qSwc1h$cfNH6B0$z;~33RtJp@yX=%e0F@=yE}qI@j+Yqnq6G0xD8Rs;C7jv zr)5qu=n}c5#c4r^%;95^dTIL=zJS0JUhAsXt0{l%J*gJ#?d`%cX}5&bbtfATU%LBvw!mSV zSk_T3$M%Jq-tEI3Rtm1;(eLribJ=&i+FO0luO%gqpwcA5$1wwL*OW6X>U3#d%F`Jp z=$>}?I8Ub_>62gJZzZCs<^NH&RBpx|HbjKIwJA7cp9|K=ZzBsnJgE~W(loG!Wv)Sn zRF$43wzkhV4OsrA=*;VXyolgKq;t9|CYGd?(!)))I2YC3%51PdR8(8diwLR622M&( zRaN9YT8Y>Y=3}uNr*{-Fq{O*CW=6H-Ad%4VJ3uvrRuj6kw@Gz(o{FSYsYW{l+-u(_ zz;J<+C={nnpQ*&bt@yGikEv^AKEt_kVXkv0Uq4SoPGQoILq_a`S*=8(If)0AhJEq__ym#s;)JI9%gef=8m0Vm1`^D;}FV z@fE0zDLG4OUw|w|=VqJz!bdi7P);`-{UU;G#GBpNGD>(O5i8C1On-}S z8tZeR`*+hN*LF`9mpVKZC$8#r99?=3Azt3*XLP*k&X!WEeu6z;_|}3&RYQSqm)AJE z19HxKJ_m30q?Y&^W;AgT^`z6TG7YZP7bEesEv*`YwM%9-6Pe03F;p$N`;`hx=HzML zEqKyw2$Z3j_!3OUw~!DK?E7!+F575h!&NY93d2W@Dzl4szZy|mQEXJ%Zgjb_$bcZG zyI<`Dhx!^-Q9I0eskMw^iX_&`g3#+qlp{wn;$VPdQ>7`9sd4|!qik)_5|&)E0*$($ ztx*-*JhPG_VSzvKNTCLH>Nn{osc_!PWDX*W3dIFtp3W}l!jn2yjXUK7B%8%~%!#E$ zMnwt6U9OSAi8CGzsk3MOw7|e1*Jd@3kop))`DHb{Ua6xC9@Vw3J{z0crX$O3yoy=> zCeAd6uS#ok!Nk?_npWcD;%Borz2*3R^-14+wgXJFK`hK)5`kz!Z72(HYpZ}PF-_Xu z-d=J;v*!I*VRKGqSF;^^@hrzM*}QlU-kZ(xwI#JDn`t#vCmS|YVZGqCn4Vgs3_>;F zsFCmOMEtnEge4X21M7&Yidisjv_(}RQ6n;j#!shw#7gf2f{D|kw{Nh9!H=`@z&nN# zr^|;={3^o+KP{%i^=>rv4PS8Wk-3P|{r;Qm3oB7Ml4u)zmaI(SM+GCCQ&4oTrb>d7(^6cpy8smtsfRSoS zttn(oYX5DIy4K2-;p5i)<QtY9SD zsUfqSgd*Sk*5*CYigwczQdvN@sX_D5aQLii809zv+QXR|sTPAk zo-mgI5ZYsHNEzcJp%8WL;{#-Eo`A&~`!p=RHC~^>yulJTj!HhW4@0GJczz(QbhD?t>2$fhQQdGt zOKi677_2A`lhwb0)&@a$n(&*RbT=M*pKJ-Gn{c>nl^K}+Y%!1&H47)lN58aId1*dW zO|oNg1$0xhTA7uljkv+sWRJlXna`=2W%NUz-$qX~n|cn`a)H%V(VRe*L}`no2cw zbdAgmccEHsop@nCd7OIac;s+oW_Wwh)?s4?+oStt`et_W;~W!<+1r!Jbbd7BIX@Ho zT9r;$$O{VdsQIHK@^`v_u)+yr2cB9lM>S z^W5#&SGw(aP4F!{)_^v2z6PZ!Ga3EeD(Y0Tzk4k~Gyj9=m+flr(uAtswc@uljf3`r7~Z7kmq5q(Xl(dMCB6c{cU=t5|?_H8lmY16NEc?!?ElZ@Gei|I* zLv`>xQr)3BUxQ*KSimc&a6F2@X=>Jn%)UGgp`%7S7dErMH(~mUJNDJ5 z&$zQFE;6KVBTj!9_RD2K9=yIg|FW5AgSr$l)t_6)5QmFrXR1@=fC{cT801luMNZ8daS*)8ryGr2Y*&Cci`OR)XWAXZ~+5qdL1&($m3$W zwjYpu?8l9V$G*przTrMh=HoHDC{VLRnBNKZ^jQ$WT9`(N$4AKU;;-xgk?GW@IKb+Q zNaAtBi=R?5owz(b4a^wbj$UX8+4fNJ>W z`R|{7BjregWd6~Y*p|yLXE%3tu5McCM~a0*TE(;E3UfbV#$XB(w6FVk|L`<@&>e?c z98LHsZFJ1^t@27YxDEZYX1UjjU>xEb1ZT*4O^4*B+8$qHoAHTOruR`>Bh4)er!N57 zySDwA;1Hgo15lx%Yfm&E4mwMyLm*&Y^-QVVcAoi{gJ-~Y$<(| zl&0v$gXFiw<@*d5WPzp%)%aEM&H@9}|J}0!zOaX=?^*L^yeC)y*vI8cIt;w;x<(r zWszE%gl*=}bXkq<+M!d=RKvB!AC30k_Eax^L`}A7O3JMMU(XowRmPm|>q87H@CcJI zj%Oyl_7yG@s~LgxeXH7taJJgV7PyZ|8?CR@n!sjvBxj0h?XMv+sWh3#AdP8ceH*^)&1GW>$||CB=)D!&>*Sy z$T&usX4*^|eY|AtMqY)d>p$RcJ3%Zv5GlI6%*YLy!sZ|K!^ zoc-RYRpVmhWur!O5$lPmU^_=^|NI_K&mx?vg(v2QipJSBhDW+6O3fG+cJ3rv!n5AI zVOZx`@Gny_@RL$G7{#&3&yqvsc|xekWRc3N9sbl=xmV+sLk&HKj>=j|3V{B2dN$Rk zd+9akxbQN$^V5{Oi?+kng}r{`ln}Ycy5l`+uA>^IRb@J0tb?{Z2i8wxd6BlgAF)3N z-_fG<=Knf7g7cAmR1o4Lo&SoXk@6E66YGQ(i)dr>0}F2Xh0=|hh}tYSlKwZ4+$_@8 zyt)f4v7nn}k+_`gL3ENhY;V#J$P_!Tadz3=`AuCNx+%d)XhA=-GLYDza(RYkEe#T+ zR;vCkterk0)fCEb^QEZSp#Rs6ikv!fTMj-vj2K1@l<;33@Gc1^)vGTs>y2cT zh_v99-rVv9IUGhti#a*J_=t~yaM8a4+gW7|aC8ge3%JQRKgA;rWp`E_VO_N*3s6bc z#@3oH*0@(0&hcFu6Cj<+B5^($!gjXB6<+#c&9Cg(2h_4qf-z@Oum&&uU3Sza>HD*IKLXN}xno6wvM|?gr7MS^} zILb(0M&?p%p10$B$+6r9IaR5Vq^iVvik5+&#t2`@#iokd>F0ZWwX0Bc7T1IIrZ;yn z!8M75N!9$1A0C!3fYqzhEO~G8vQmIpV^lk=Uwwk=r6N@bzWKI)@T%ct=JN!4^f>PH zTwBplD>keg!?>|9SU`RhJGkZ~iNJ~gZ847AJy`zB!vgR3#AnPmEFojjdc9inRW1~T za6dyfsyJ5B;5X@KHc}h*_D?=t;#8(Z2=CzO^rKWJZdp2CV*>|XGkbZnx~PK2l1t>0 z%^8Am4}ruwtdSVr)LgIl`LO^yj8hK_@+0`y+o)fHU5?cp*g!TMt1genV4Gp z)#|X=jaIJjwb-3FktJc7SV2BSCa*6UWlZs;Ah|h89}T0^5KSR{x%f>I4LCOJ=itNh zyL&rT-^rjUUl_5h!j^xVT#Bmjj-=rfG-{ZW-Oa@1p zUf@XNH>=MW9vkr6aA?o*3arges$k||nW9qH7m877t*Ca#)S`c@dZpghlWUgD#^H|9 zI132feLy&yTYoUL#W>xYyARn|fp06#mZ{65ZTXVS0anQM@y`iNM#@xE+Rojug~SG8 z%|J%xb@r8~Aest(HM;fR<>~!p=+LpB-+ttF$gmZ%CP5f6IvVn#BH48rQ?FnCI5#6B zO{`6S48K0}2_3hLRh_+7&XcVNmNNyD)m+GYyQBr>cpO;Lh-DhQrhyHy_>VPdcUOTa zgF^tJzrFefaW!ge!?d+`LmTRQ2y|g3NPd2{2N4?$x!ry~M;C(yemOowr)ZQ+K{CG3 zW#8kdqg^k_c}$yw^zu#*VcVMpoU0ggwdI`KxH;F7quy0UK%)n~#)lnyhYYI4RVFO( z!T{itNwyyxp7F`q;e67_Sq<^0x7T4!uaLE6z@C<`g%+3*#${V|{_gtbX12t;Q!$1O zr}yI;F~=;zN0W5Dd{~5lJ)Di{%eSxWY74|aMs2+LqC0^(sb!uWv0u-AzB z>m$L(ldwjz#C{?(oZ3!pr^07DZ)8&mibL(Y*}KtDpSzv@aHjFLu~;5P%0@m+?CL4) zRrYx;L#&S<`1NZ_Iiw&Vdq?ph-?MlUukH5^lQlRFHFLo6mfHrR8k+TbstM*0Qz)46 z5 zzZ)rg;YLcP(zb) z1{rDg_9CYvp)K~3d)0V$t4gdT=FR6{M#K6M|1}oYV!-5ga+~6-n-v9;ZzaA8K+>#P zQR=Wx7xs;KGhF!=h(v0}&=&8+tf))V^;)ji^apH~rA6m{ENpISJogrN^>=FU*%+O} z0j?kJVM|lckC;rk7qxDlFmj>MCX19rT1+rAdUJa)JHW9Y`WOJJO@2RK1x3!KdF6!Puk8kBYzcc+S)k-(SWM zk{vpZZ-Wl1krJP_J?Hjw&Jy8Yi!oH*>JA;x2v~w;y!BkcaXXar5<7B%zH%5|44RhBxnnsiJg!Q+Uiau_O z8Nm3DDmk@p|N1>9VqqW&d_vd!gzuj-z*z@`^?X67oiFhLW0#FBooT30ZewI;-q>hMhyx zlhfYwR8S0CR}@v5Dy2@@8=XB;b94S7Zjwkdh-!V+M(oN`!ctejujHteRbw-Uc&zSC zUV|MLKGPGwn>Jm3zFx1ES_4JMI)iH8_LvxC-f&RW_5X@X4a=jo;<+PL*Gg}dtY z*w(7MUsE-4rNErE4wo$}uuUY?CYG4DCd3@GYOn&NO9Bw3jm*zU;ia@~6aQve@%i6q1~$ zkE9lzly5=ug<6#n{g1lekzTs3@>D^N4*Y7fa~o)T(d!ld;Sc%P&Ch(aQ}F4J4l>&L z+9~t+`S|GhvEex3v_7r1L@0F_liw_g-vY315=W3Mf3j9_Yo*zRj_%VKsiRfDx|xOO zbSf&ovr!u;gSiW1WF$HI702NXzL(=uEbQmY`Dv4RD!!qPRny?xm5M1659u21~c4X1P#F+#NNlo!j7iE_IFgkb5=qniTfvu4_J#(J<%6@neAP)G!D(? zF~%vPh6f~bcFH~7!82t7zl8m8bB1(Q5|!wudyt} zDXy2)yN%a}GX(8=A88yE!MJ!2otOL!1bb?|@s?SFoFB{_SjZ!;(l=;ov`2HxOn#ly zpwQ1b(R_P4{Q*8{&@Z_3)^{VQvexzVEDT)-*vyClO|&Qn6)Q=BR^yKKqsuSw+r+v3 z@d?KQ^2f$$ia5L@T8rD7EX-$&FN=S~Yt{B5I&?bA%@Htr%=Cfm1Vsl&;K0!Y`|aa~ z$vlmL+LWFgjku0UKXeJ7;|mg+^`wI5^X#R62`%~|v6u#hHB57cgchRI3TNwWgwHF? zY_WJ@`=xu&_wYeNZhhcp2D1y(pC=y~DGQH`bzn2YGDhXtg-ywLgO;k z2m_#T2^P8raZ@izzzWe8Ryz?pE6RyarCgaWrPgP-i ztp}Ro)S8TKsm3RjXzNUk41phwRN3tYgRQozKgKs6vYr@|Hjdj9z>R-CI18b2j_bgx zC#2m|_2jJdI>17mqhZ3!!tfbVmWqg0oF`i<>DZXyJ-4%IJa3~7h<;!Onf`#LgfK}n zxg-1GY>e+Q;DfVS-nU0xso0ls{5En4#^wO$tcl2z19S5?^2LU>znFLt^Jk2RNhwdM zvJ9t`C6&?HjI4l8c*5>rL5AA_O_-8Eo7EY1AxFK0mJFK(v@#_8pf)ZI#XJ~Gx}t2& z!dtax!{|6G63cw3;L3$tkaGtCQYl^<}9kC-?r?PNFPh zmAHX@NwvJ(w8^bYjodLgW= z*wqoE;bC|?zQ-}$Xy+alP7$N~etdE;eu+2fCMyK8IVye+r&ljT9-p4PgP-2jA z8DmJ{3Ek-62&Q;OKM8RyM89X)U4!H>vjvCs7O@5Ruj0x9VaD>ty8K30s5)DKwuXU@PMh`rGxw&=jpjzWDBCl4JN^?q{$NY(E(b|1CHeOB z1XqdE)H0-0s`7Y(K~YqRZkEW=Qd0HtJ-_`vPbQWG-j^zMAK!@E9VNa<0Eq;U*b<4% zFtlWUAeHeM{8VHWZNm_XzyR`-sXh0{0ag+la+VmOFf%|&Y{(g}{M-#zEHIBk4@Xc5 z0#l+%cQAviJiL^q;F70?))y73!khw>4)C!2%cslbVm_r`NV%w-Odn=fWw9`<@ZqR+ zGJs@c&_Dih+#56x#+^Q<>N6Nss%-33zpd`p@TXp@)ix_T_*-ezw)ZLGo_n+cwZZ0L}AGycGNP zx$iCS6vEbO784i{Q-tJ46ex)5T(hF~aTSe)L;79>vZ{QSSRMmW%l(?Dm+TP7>9}X#|y2jxO z4cx&>!J#t75gHdw=clKGez#Nodo@JxquW6@1<2Z@=f^&=vSkacc?H2U&Og(;`3lN? zS|!|feg@aF^BTQ>Pg$0Rg-#(cHs4vtj7=kIRU1 zKWAs9AntC({PL2Mr2|6CK)Z6DqOycK(xs%;mQ|V{ zjLi6y+0Af*)mtLHw}>#4t&c=0X=E7cu>{|>OlT47Iw09AcyocJV0o`^kk|m%cralA zEa-6&HaQkg7DfJ`Dp>FiWYcC*p0v`mN?(YQ{*oP40O^E2zyFDHT=5R*S`#yIglVe9 z!ery>kO0_Qx&WuCiaMk70de<%Osh@it$=+x*>Hyog#usdRv=0(Mc$r~6O|iMl8QS}#13iU1w_p_mj+ z2kWrhzhO?qs)s8#*~z&56qZhS+YwB!jZkf8P7hf5%TQ{9GMql9ESId|WtrAR^tm88 zOtLq0J9dX71tsY$Mom_L2y(P2op-RRI=3=}wesppKMoel%gG{1r6A6zHc80Qy}eSe z9a!4McSW<3hg(=cZ*w58B7GKbhT)#0+D1s1n-%qNf5MU(UGH~|#*r5iNw50*-_m&4&Y9d^nJ7gJCIw~# zPB5;6bC(Njd>U1s z-)vTYU!{=3UkyYHkzg9=0&e1HhIGHF{`Y@z)vEsMnhYvwss6cIbD93>6`A_SxI8d< z{`nPonjK0d-*qM1W<~W(Do$;*e+$;+D2J31&(&0Lz(cF<2V}w5-tK>b)qkBHj%Ty0 zd|AX99Y(*y?5r1}+T|P(r(6)#y0(AML^G0@Pi#s9;HE@N8!RW_&C5HSREfz1B{}xd ze3&9re;5TkZV-dF_v{20283pqcz!lu58{@Z@>(h!%R$yja=ZavQlcQ)>&KwH$zhNr zBv^cg49Ilh>5flh0F0M1e4Gmqu4Zo?Auix$Keb6^LygsKMmfZ0WpV#-x4>CUKAMb~lUC3D#>qDuW|Q)Br>y zv`6EuMhimkR{yw3sow@&VQo^ZhD#;f8E$TD1l?GC)0BhMdvg;5xDC-CvY;8h!_-pY z3pBa1mnMO73`|_|*n$bqUqAb|sOwYU3U+;@jbhKM0U?t9 z%P@eL9(Tr_1aJYFdN)A+{k)5=;qwF$%fTSt2-4;D@PlY+YlOt&s_7KQ@JF~8Qs}#r z!8uL|eVB7}QQeNloI=yO4`V*C9@}gWMhZMX?zc}mU0h>85Ip)(f$ipq#$b;}GPC2W zIfOQ|md7ZT*d4y>cH~4ds%*Te?}B~a)FJl8U%WoRUkZ2M)FIWyUozL5eg2`8_|04X zksLexl3dIbCX`xDWWFXWVqX((5TyyTh{nz?xwGD&th!RK?=R`lq`X!efISY`rDNzFvVHm|=*|!0erM1v zj~Sd?49_YXN6q)bVwDY-KV&`Z9~^c^XKzquDQe^_W&&2^`QzF={o_!9Dly}Vkk-FN zt!<;~Mm0QE;93^T>ASAnGNPUW==I-=C^(5tBC$P@$iH-l(CqJ@`N)8(5RcK+d)uh! zUcX2PY#pbBY^dU@&PSCEi5I$1v;<7iY34$F?fI<~%_5FZFda6JA?n8T&3#%WDot?; zcN+wm_b};2l`PK=wdd~Jt#)sxfvusNGL<(>5IikRD-$Xz4z9DY;6ED#W7%MhS1JKB zSdPO>=VqCagf%_pnvRYTl<{X0a}b8Hqa3WIDc1`^P*;F~!~#sRTYOBz0hq&xFozLg z4kN-G=9|vYhXyH0=Nd6d=UOs>73LQd>RK&Lr%ji_Jb!qQnG zoYP!JZ@reyk0_sbCdu*c0M%5c2rv&$-C@NOJ|Grw^ zt)lfpBy8E@MsBH!jAilANPL)IJ100L37WUd+b^G%kM|*N_^@bCR#f-K?iiOH_=oKw zG#C&eG|m1pyIVpZcZsKzfTba9p%*cZg76rk0NsV$4wrAQhbMTIk4+9YIHGzxK0O(Y z`cOu}cDdPMFZzi7@w?`r-*M+L4?Q?<4m;!1=0SJ-u785pjNG_5R6YkbBETxTEa0pB{_vJ21up zHa4YM&JZ;$P{B8Bgm;h`3=EqVT!cJM(Azv4<8m}5UBOx{VY4)SUQcV8XsKB4;9?O@Qj$Po@Z z+?}3vPd%uG9ng>RT+c)3^?`D%@lk&SW;i&e&jKH*yW%1nxRaDmCKt}MaImrA>B3Uo zfwjiY_@aq(Os%?E{bLn>V~PUYZyUJT;tPUJ?tXAGI-ApmG;T#V5EL2YIWBUaH`0BE z7e(gqt0xr6qmaskrhoqHikDH7Pt|K2PVfKvX+FJM-Y>5os`pnv-T(DT#n6BKy!)rx zEiKfM(D?@`JZkozb^ag{sy<`Kh=pqOjBPR3`Q5tQ|OZ9I`kSp4hfsR z3vJx?NMWJrlG+#wsR~sHUN4ptw6yz?Rv#B|2l|Uqk@R9*MaHdC2SE*PGT=s#&vON2 zaz>zUV#5i)pgQtqLY=}M3}~$eW^44r;0q8+MOj`Uh3CW!hiN-W;i`l#>mCiyhRx&A zDYhBMXRQJ3pLnJ(i>)Aig$h!G%KIK>$u#Z3u-WMY4UWcx9FL8wpzpDE;aaTv+yAHs z-#J=flUCcXejRsm6fwpWE9?c`S`u~Igg>COZj!GgKF@vBJZm4GoxsTs6NmDgbmpk^A9nQ1U# ze5?$zns+;@ot>l0n7gcX-?yo{tVs3$$q)PLz%^V_F z^tx;%Q$rZQZr+gWnl3FlP}h^~wKhdzte2;9wPDVS6e~927*B`jXPnCN21z2beBCq6 zbA|)ryFOI4vtfW?nkGo|pAHU6=6Qwcx;MbIyp>JMN6pcXCD|M}Ex{3Al03$wInV?p zsTG>0JUtn}Q`q}6yjw7?!Q9kf;VUC9aq=sFB0$|FdNM}iTYjkV9(gZ}C8pp21| z_%wHKh?%-1mxs$U(Lt66i)mRF1*d6oBEqs-k~&1B>Die42leMJPUjgPrLoEyqmuTt z>0ZJSnJZuOiJ>!WUX;_IF-6J=FDsAmV(RsE)R^)dW%!vsP2J?-54Qq&Y7cic&oY&y z#||)AqTmMs3mNdqsIY=}Q+s)3uosZ7Sau!qQ$u#CD zV07C89B799ZgGXiK+w&COHeVv4<*wiqGONL(Qou5lrU;~Sc?rZTaGoR~OuO9g>sNs%@>&5K5ZY@^#L z%)22XO%M8yaIHKX^zlMY5v2f-vRL>1XW>Sz~N-BJW1R|U8Rue)2*fZiW;{DG7e*vW$Ptd<9G90I= zVMuw&MHSM>DF|+26IO*v#>BLTNRL?m&5Fs=)GV%zoyLP)FjeuWjOG`Dz|x z68la-S^Y{5Br$?%k4vb=7{m$GU1T^)zyk}Z@>KNSF^IkSeS41DlTH}5v?iD=lA> zX#tYP&0KJc?9FNkox1G7w=%APtEWXV%4NouTR}cPL z5A&}RXs#BQcl6lm5@`-4NkQMP?wy0-&`>2i9p4(@!-zYZt9_aT4?9Jxq&0H&TQ1C~ zwpUd;5nN$zQzGg3zWVLtZ?P#9ZU=-yLa}V>z@vViH=;~ zWlTN5j}QTO@ZPSF%jE+erU>x)t}ee{-0$;U!-X4>a_Q!;{@JYP9vGW4-C()iI%)Iu zH3m7X*UckRjUD4TwTt%Cf`eeVzLWvcvQN_N(3kcf?hI-W`@MDmL7_%BzQuh1xiyC?S!d_-#y#kAbH-Aaib9X-uv zD+PoK#HlC26_ftsJ#WVL~N z$=SoCzAHE}ZBc|UoL###KFevJa%ZINouc4?eSL|LD`Z`sqVoKrRa#xX4lCPF2kx0D zV6U(^X@y<&u!*8G;cr);;4n*eWJnQs0-a%Ud*%Z)%We1%HB1|?dh^M!zin3T^}_(u z-CUk^hP+DFCEL5ci~2|lNS7i=lIM6l<@Uol`n2IgD6HbH)g9|hFWpJB^a7k)-)q^J z7}iLHK+?Ntoi*7#gW^S(UmmaliE>bSG=T(a22V3S9zF5Z!VCg-w@a@>4H&z(u(SFw zfnjEt^kvt64Pk=7w@ff^9waZ`7>g6-yofcN54}w0mtUmCxqx(e?lD^-> z+u6gTo)>R<>6V%s7U`Dqr9ZF?d0+{nB5y(Ic3sK}?3}kZd&pasr(jB?Ole_v6twv? zY^YeWCJcv)tTaEGOlvzUv7w}3H?|C~j*2x%OMBt=ri7sqBIVGNb&MuZglIbzvB(C{ zOg3@VcDembCELU(atV{P%rkkP#y<12X%H~zX5+>3nP*M0>9o3VHt@xKHhRxw#1b%c z3)2#|YRsWKpIi}+`SKYRil$!eYX##>uq5Z4I^DXE8hpdrgyWpNxvM&_W*T^0_!&}H znQ_2pO46fU$)+qzgVCt#9=J#kJJ0Y^gBS84{3Q!Ng_s-pa`{K#b@qVE?t?D34?g*i z8-D0=a3@a}`8W`UyF)L_NX-7YWi^9JFw6-EZB|5Yj(*Un++DqXFcRvr%rD>_C#W!m zQdhWoD}CcnPDv7TG)mz9$T9XBfKbS`_t`1Dm>Qid*XRa+z~tjXuD}r{b%5!G9~N9R zMHR+u?k4gjW}vi7;F|U0ZO~Z7!Vd9q?3vKiI_#tqAMaJf3Lm_B9)1p7LQ`MLS^QAp z1xse=a2C$k&z>{B_z(QX)Cjo5I_2oO12SQrXM}|Lxg2$L=dHegU+C8|Hn5oe1dNd! z_q@sOTrgy9L5W}W<_?VqKE`*Lp_1ZCrAINv3sh&tAy4&MUNgI$;F{fv-|XmoAth;D zU)tc5jKr*Xf4r|k*L>kAFk2Yxvakm-`=7GgHlZdU&S*=JVXE>ozdK*~8@_Af*~j|; z#nj0SrJR>W)5)!yY-n)e-qGrLNDsx5Ty9EWF)nhuP?Qp>b8DbkgC*(GToU@lEao`GD6$EAa!;Chj6EGmFj+$gotqo!*)KR_K|_4Iy;C-ouzihy%=wC>?fwf6mlvxK0I-Pa;f3J*qc47lm3&d#?H8 zD-Fd%K2K9wojLhx9miKQnz*AF0x7aQDz1Aek4WrD+3je8J7@dkqDYo$fvmeE#x>Oo zQ68lyQ)CnrWsrjDYXlig=x+={D~2J<3()}eg}Du&1Op@MvZAEAdlMX{=)2mBymLT_Q3ERPVRQ}Ef;U-=r$*`5f%WwFymqK{K&{>U~4}E zfT{%iPuhRak3WcBU7BPesda|)Oxvo@puD3NRIuOBv;<{dV3a&m=v_Q2OiPoZ_pJe*g z@IuH>`X!e!Ou(g-p_U1UmH6S}AM85oyG zc8X27xUA-~yEmukHF;CK4ikVxB$O>yPw;Uk7vZ{EL26=xx9|-nrn`7C$dVT;*l98W zTvdnZQTj1VkAb3Cs-19!GBbtxcIvA_gEpRMMy&3WX}1)wLF7e7;O012>v|R>My1UX z5c^fYy9F#FQW4SXu*iEts12g&tgZnl_A&Ol&BGF&^FWL{=szEH$#Qlk@L)Sw9ZZL+ zbgdJFfNGw>W49i(X*`DyoJYKczyO3{U&C5uZRdN><}EDPc&8ar^U`7sYSWq}c#GOj zZfaPpc-qB4#$1H#I49*vS8`*8);7sXDCOG5*&oiYhE&FZ)3?Yy$eqNOQOoLfl!r( zfXE8`^*F)VQcg+GjFCCgZM>0~U`|Eo@x&2q^?2^_xk#i41Tjmf(aW^UqX z{SbOo;sF>=&Vc4_a{qwyp;yECn|HN1E+jU6jta^CcFo}^O)0#WR#sPsztK7b$igcm zQF1p|fvcsx-U}6zh8!2uvtgon@h8k@uE?UvqDmH=FStDC}AG? z6Zk1(T&bQ8g{T+ePJ(^{#?W)quO>vDTw2o(iq{RQkkd`}-TUbT9EifI)4!=z({L-- z*STHe)EX~%PSw~E^b@}k$x4N^B(o^;Q;TB}Kq2et3T_(lt%s4%RILepDQF6~bP{8m zihQ~*%Bk`xa}VI`1}{7#)#}XjfRAHvbas-6-s5d}I{>Tf#m56uFdL0Cgx^rWT zKNUHAJ7nCZiCiNPu2oO>w*iwjTp1#+q-BUq8+t76;LM^urcgS1-$%PGzIJ`WVXTx( z#bRGTf*oIIij1A4Wwbu%#6W-~mp_pQVk559M1E*g2*e-|mIKH26O27gF6Rq+xOI2> zE5~t)DvBwI#@!xf&7B29wcW`lbc?3TMVp>2BbBV65~*BYN)e9z1&Xxav>5%)X|X8` zAtHPUY1w;T;~%u}mRWwd9E1Sgji>~7Gxf@*dW;vx9SjKwc+Us07#-4@+zzor5+YcJ zn<7r<&$ETwDacB6tJ^c|KFcgKR7gjM! z_nm>4D!QEM;wUSAafQ(eppo^igP`(+VY%~yLT*UDUFjt_)cY6oHXX195wt>p(uvAt zn(!zvwLnq`EDP9Kw%L7zV=7hdCK7i;YKcrb$YR#ZG{KJRIzt?>`$#k6L>^$LxOY*3 zB@h<#*LMj-E<7wmrYWtonT4)+@1f9aVtF}eMmuDUfuRyw9I@FjAIuLY4^s{eVU(=-rIXAx_f+=`pQ!5~aVK|kd{5*Vod7QM9!j_Bmwi~m zpHJP;y*$U>_m0MlJ%D1apJrVDHT}Ge?E=h5`ygWA(|J0l$1e|qHyePX|bJJrESi|*Uq);ONLoX+95)Fk(h zO0E}lNts-pul^YmU#=xQmdf3~93dAJ7fC4{QTKy12)nm?F3&TuVkOSwF5Hu@qV&^B@l8*LMOKwsgsCZj+$ zc(H_%$Dlk~aYM&v(sLKvQZYWhfPHlww5t?umDx0+eYt7ROd9 zX2(!2W*1ntc|p@GrpHRI63w+jmeV5sa=}h`$CHLIqcadg=tQK`&{`=hV1ovscjPngSC8E zOZUYj;=EW&0@gx84i)Pq!4Oc~y!dwyJS)fM+kS=wu~U4ev_}F|j2-%t$X6akB-=v4 z2}NNp$SDDq!Ag=jN=qcik%E#)@nxo>*$Z44AD@i66`liqRf<^*ZB22G1E*M?yz$} z9`>ZAaKjq(3Sm$N)r|~p+cM1ozcPCJzSa0oQmChJD09Tm_!VM3T~}7GDm0scmcT46 zF(s87aB1OpQ7GSrl7NkHgn;EE)HF{Dr#(H{&sF5P%WwZ<+unOd1ct%{0ccbN@B_uD%MCJ5M6D4pg(PJ@lXrY9YWKN@eQ|5UxYArfx)Cf@DWuXqH?P8j> z6a>~v%U@eM%ML{y$Iti`%XjJ0vOUn$+v7`G$ph1L;T&BGHo$aWvL?cSl}$uCPzE(H z5SAxX5avIzqlsz&AiLQ#n}D`(ZBz;_0hXpT=}x-?u@;`B^FWiXpc9q=E@bx=F1FX_ z%XGoW3JD@kFBu>YN9ITprYw?1t)nMp(IgKkiyJ_aWkX3I5)_l9)EKxSB|=j=4BVu4 z?{e~$M8=#*65SdUsmWgQ6mda*2CX3j=Mkl(fC$dg^0lTuy<8KKfwjPd)ri~CA(HY; zu{6&k)W9!8X^+GjR?An%zk%fG*zDc)f6=S3>Jz{J?%wXH~7Bg;)NC$8lRT;G5 zjE(LQ_;t{PvlMLl;b<$4y(B|Aywj+p#S+r74~$Kz?dlRI$y`kD{pnewb8-gnX2Je| zp~t~eh~o;omIPigDYXrgLKS4vxLesA;=|+9QLigHPvbVM9-hMd_b?(Xi!I5CBL}@) z269a{jWT)q$FwCVN<21w1c$UV!HQK^?-I(Om8XvjJU8KO2t>7%?822{gh9CWX|e*S z_Po8jv$a#(-r*h(UwOM%dHYsq-R^9|&zkeS3sZ9NTL0q=?jGq*7eUusABTL3Q02&6j!Sn-+rfQ8EMP9kiJRlSpDvOVXdwVLPPOIQZaJh9NXH zNO^t;-{AxK@v;+&B%q8>ZaT|pv$8QdgayM*cwq9M@Lh**t|^=B4EO1O5gB0OdrnjC z?nH2{fj|W|NzaeqZxQa1+BVQ@*ifhh-hSWBr)V@#>7Ig94;c^XrZAPp8-zS6xbM`5 z<4g?@bhb=(?>L=22<1lSH5p%UR^Ijq7zwf3oaUbBXjC1l+bo2_rE3m?Gd#Ne!hh92 zR{t>h1O9IOVetpLD%ykl#5DR!qd$jeRPTCdBbin%H><*Gt zys^O@N@yol_U%5)n~@AEu&qWJRA6otk|At!^Vz+&o+rsAluV=rM|#y~?$IAd5gZ_r zDorFHM-*{MSO*K+6ZPh};iufk%-Iq-gzc|_?w}1I>EMtGZo)7q=^0Fa>im)a_6Ff| zJAO9eXMNxtz2XVof+}RTe?4==#?kTGPuRw%VouLO9wrPX4yJtbW-P>+PyEJ#T%pR% zeex}i=Nw$docneev=*8{zcqt?YX<$+4DMSpxNk|sZ!}@6(m8^2)G;kLk50~q?XCly z)8H$4B;CY;`g@sZkX@7`K}pusTqE$8HTBWW6)(jRz0C9yYZWG{14xi z)@XcuJ{VN^XROE3qoeWJ1uS=0@X)u0nyUD3e>mEOe| z+thb(^?CshTd)`2!i@t1qwZ1Pf2(({kOY3T4$rVYV}ZuMxA?~u27FLK|5rA4zW;t3 zRod2{E&XZePhEd%@)PE3bbK94d;|N8#@1e?!41YPHW0h~#RdY4eI2WP9h<`X7B&!D z*kCmFD;s+b&2?qtTlmeTx1bUHl4DD@`FrV^&B`C(w!HI)${(OJ{No?8X7r8r&ulJP zVMEhOYn8U6v@qMT*u?1e@4s(svx%pbPn9o~pHQGSKdJfQ2gX&VpT6X9;jT2PGL)x~ z4CUAvY&59+;bMMUMXm0^D)>1aowWZD6KoACM;GwI#%?;oI|ZDXJ_rQf;oz+9>_Y{b zcJR&%>)mpAK+ZZ{qBpSIZSU;vA^es;((zwqyWZI1p9cRRnw!3D?)va&kAL3s&o2M$ z@DI~r&xb!uhn*k(Fdg=O_``JA{o&6x{}3~H5Pz6McnBN9?Haa(_=6lZYzwz)Z@2iT zLH@wT4&|BLDt!SY}udP2V{gFw%-rHxWcFhfAt$r<2Lmjvf+Sz7x zYuDSlZf(oDb-69;*8aAp+|rcbOk&v*EZg8i32~QPYk(v1bG0Q{Ch)@|K*6#Hu0^Qc z=;}{Le}v9@L+GqylYk`K;A!S-NI~_66tvrrg0>n`&{jhVYN1n*av$A-pB;3J(Uanx|FwDm-2S&Qr>o5%G;}JdFV#u+eSy?XAfN|At`Sg-ASC-%gc|Hhu+tal!qRZ zP)%FDCgnA1QeLB`{ZP|>s7ZMZumg~hA>>E9156) zor9gR)Irxg30KaV<3YD~#$Vxjezd{sSS;~%c5=#}*2x+CjLR2%B=ZqLWrJWB_+!Y! zuk%wJy1MOCe!~?gT`P-o^$px^;FLxf$Z~T!_@v@n(FSGX6})`Y)annU$NlyywwDp?rr?crFq0R6H1p>+Ze#f6ANxPDk$@EEZ# z70&n=XU&oWV4x@car2#bH6Y z|C#X=X{lBf7L)++%a5C=(Yz5$*+L^@&AsR_cwa_C)s>V}>~ry0VA2Z_94hhvXDExw z{k`ZP>)JED2@pKz6HJl#GD1UBOa(XGMv=Oz9wk>JlNn6?o zHTW>UQaLxYq1tfYK4>+ETG)M3m_G6VS0t%ynMp)aXcFUgGr#?hoj>B)zu26ZUn$#C zd>@McR8o8(!lbk$7;r*>fzx!@@wp#rs1HuugRUzz^Fx+KiRK$FH-+v~8wcMXS-;p= zOQ3}(6xxW&DK-L~6a2xNwR*}>$2f~PLKCzR3|2ZHj!sW45u=J zER08eA(D(n3dsrJU<}iQ2kI1d-C8WCKlQ^Kg{!lhJ6N=>oF1I_&kpra$0qprNOHqK z30#mQvlU1pk~$p{ zn)~+^l91JRFUMfaba~~=kcW!CczIK~x`vLp5+IRU+Wd+E?9GcUkTu9*|9EuPJZ^Wn zKxdmJZL%yw65KTE&`Gm=R~15_=#6OyiphB9>;Jk4`N4$B2f*{I_RU;8JtWvQHwjZp z_?J^KJk`SVB~2voElLG`cl&f;26Zs^%=G$}*BeMFPO7e+($})OlLa3Wja#@BHC88Q zg4W>#1@uOsZ^Zel>fGoWDH4zWmw3_u>y|L|svsGDc$6>W&%sy&6lYSf7ADwz-}JR$ zeg@-)AW4^A{ijju@}yV%NuD+3B+PFzkSC?$!sk48nq|4zJ4ltab<({!$#IRtJcxv7 z9|@Hp)D!8*80eYaV1W2159BZs5>{;4W9T@5;R3$#kB!+phc_ng$vStGmq$W_BH3b} zogBbHDfV{ebPl>B7`=+Co#W0(-V5Lk*ajjI2AuY%jW9$TaN3tP!lZ{#tvec>^^dxc zY9)P{#F!kiGc8msKut=ZZU6Y8kTil#T4)kMlu<|f>L`265rS|a*J$Pg@6P;wwV1&8EKM*5Mh-ld zFfuHyr0U5RhNdtqxN!{S=Q`ADOU$;E#8xP-XdWom*FRs9Ro2y-FSuFlpg1iRUiY#) zuj*CQo?c(gq}WgnAHAbRlNaRW6^w-xE9YmGwVe?&Uu=f1`)WCUrM`Mn`=#DOi85fJ zQ1g@%-R&o#tg*<8ISD2s>h_h4CUKFee!F3!i|qu%sc{DkvH{R**e-}^Y%LoG)DcG0(2M-yy?C2D1(7+-|C<(+CHQ=-{ZA366iI*&;S<}`u zS)m1^k6`2tj9dz1pfLgHOM_`B7GvQliAjth%)(R3k{Io_r^DrwlNtRuhk!$OgVN!6 zM=YS&6=@G98^`>~uAesTl?BY+1=&tyBJ3EhmQQB!yLyV&58lf=%MUn}ISy2rOjt6) z0;9x)V4zf2V_}!BG>9Xhf^SK zbJ1?+)(-**FGjPHDBEPfc`FA*{8>~sFw%S%z-`5_Y`8QHAWH5m zaPxO6hc(!aOipW1c9eSJoKFE|YgsC36*}>URny_%utaXr0T2@^Yb7Pq^2=y7Q$s4Z z{Z1$mxp42;fnM&zd@A-~^t?gol30R^#e|XWOEMeXguqZ(%$t&!XCx7jIm>H(e$TIX zRmlcn2;})-q)kq+!AhO?KNQC)r5Jvo;4NlPf_F7B`F%b{uV}7_4IP=F4>@$8PJuEWX^zbU~F$Kwm#U5GL zLjCGxU}j8OsIOQ*sn}Pj)Mk^q@-yIb#tH`BFX)#u=NNSQEDE~XQ(yF3x*MD@TlKG- zxAXSnow0n^g9(?PW_P{2*{s8%Es3w(_6dEK8-bJVVatOT+@G{7qv1RYC-ud{^Exc# z0w+4GLctpM?LyY|<6sG4Y{p4C#{_1xrLMG zNDI8;yvg0oaD@Tezg~a@O?ENrEOYC%aE6b9za{NNdaHqMyBgr1(qoN;q(S`6O&~3+ zfmy^u5(6u#mJw>d5*K?mAP?jCrIs(IhOZ629-cbOBO0Lf7BNxg4Ztu7wsx0Lcam1r zj+ev)zdsoYIP2Qji&?o@P_ZSzXwxDC%K|B@k-26-L6~HL2Abrs0?Od@S^88yzsRS~ zZr`qSev?l8Rwt?}<#EA4(R#+#u^RH_hGD*W&BOT;fz2ydKSQ-IsI=#PeJO6KW}Rh& zoOMc4Io)oE1S_QXlW`nTVea!+J=L2jW-=#s(pkYR3Zb{$9#KbP^#(KFJ>==^j_1SW z!w439CGf=ulq}9uu*dQld?pN;S{3>XK2va3r>uu0Xc2n*D2hI^5DphYm$Z}Xpd99! z6GH-TuF`}CmgyYqq49E14tQHk^Hwh;aW^!(eRLD={Lat8I0yNw`kNV40?`P(zD%U` zQuWXYUkPEZ*SoHppQJNjMqPZ)3p6Y=DK_m_6wREx2a^xUKEIN?GDd_88@rm|!V5GD zO*#{Xl_sfz;~b9#H(}Vy@kI~aotXU2l#)iuZc4`VWBb#UQ;KLWZ$HD69`>Ees&It; z3{}n(%WEClPSp)B zge7ue*1Se_L7z92>hv2Dh#o1)1CAp9n~ZPI_-=_d!`6LT5|#q2_^sy(Lh1 zT~!x|CHnEZuH+1lt`3h!aMr%Og$ynj<<>>XR3(@swVb66)&Q+V-X9h2*ofncYg!=lNelq#ZC?mzPVG^txp+pN2AB`eRS| zR*zdzbdm?UMgE9eC4Y45KC2kmOhBO>&03tmND9z${>w;_0aIQ{s;i&iQK#yr@S-)W zmi(y|Rm2aWmc_ua;A)>ObBw!KkITpt4nZYTn%~pVsLgn#Pc+ z4}YpplxRj)5l)gw?`!}HPp8X!3~kQQkUmfF+}al4bGW7@&Rds9zcqtSPs37?XBi3> zqAjA!7#7UY^lrKE{zn5;G>d{w%k$OM^1v%vh_ifvbH!gEHG*XA?c7rD^|Fu%h zS~!40U(zkCU#w5U$t6^WQ7X-+od)MPhX1sF-d$)HE^ow%p+oFzFWF<4W)&!o8bgZD zs!gv;w9Vj>I&N0Xr%muaCTF?7pjllYF*JwblXP5HETEVVMVSPa2oV&b+3_AtTsH`h z$NKta2+gUptR9xwMRMv>IoSE_Pq)h_^;32W=P(#ob1rIrbh(`uqec%)>}Y&6iqkgI z>V?$CKv}|%+HrAwN78VGT*l z!f6rGv1#})U$>B02Cg2sfpn#&{S-!!t((lDDHfKmJ04eLz-M~ymmu?p>jJt|0YU0t zidVLRYe*6tUn9&)veU{Y`<*l@wxjPE+?rElC$bpKeDeN7P9ZYFuRlR%#53{u6k({t=L@QaxtSXJ4Mxx%Zf*kPj+G|3HlAu#bo}_gdk`wPFYH_@{*vR zj^v!I!}w^j5`p>QkAv#f)6Gu_`V^srkdFIvLqj1EB#Hy*^UEV~?kuaTh3qTQ(+S+3 z8j^@)rA=aV>YIvj4wcQ(c*n|xK?z)SIuGZe;zA$F7J3}V#sh#e|6%qz0>NuH7)sDj z=q$HjhX*BL=nOj-FuAOuh$Vq1wvl!!D*9>FGUq$Nok!Cq?o>_5DpEBCU{9GjkC zJo0YRrv{uTyWuduM>IEINaipYWWis5ATsf}e? zd-v(x{0>G=zqk;|5`NVo=QVYZfQpjNIjOTCBP=Z@UMQ&zH7RhY7kP#hq=|CJKy@LD zA36zfkAXOd6nGyCi6iUrtI7_Im5N~c+|_wLMZw%! zxB;a-Zd-`cfI_uTk)F$|bP=@YeGe4?#QT{&%#T~&qSAou=~G-baWkM22{BU}gHUtf z)qCE|u4c+3N{#&vEkJUU*{dXDmN>3R_i*tJo4F*$36P+Bp!7rnO(Ly;O%t-Yfr{20 z%x*uz@uZgt-T$1RlGQon;>xTSM97GM%j<76wceqJ3ia^x5RI*aUXyEkh1`m)fJ1s^ zrMm{9Yej6O6p$BKWJwAlmz|iRSW5tw5*gDA7)eqmqyE;}hrCrD7p5Zj%cC#UNVrw7 zf4iD!_S3uh@(x}C#X1w2bLxvpadN7V>_L(UWjK);%6=tHoX#q~QPd|X#f+s{wDnyX zk=wKo%OMV;i@6K z=bmQ;uL(Aqf4oH?L(CTNJgKZ8DkFI^%loeFaSx&!Wr#4KuvBqjvRG$u5RWc5o%v+3 z{1}cdh;$ohjj+=BD;QFn(|*i^{Fms)X&p0#!X5uy3aa?yr`>IGg_=~5Il|DL4~6dUF?&wXX3=_L7eWZKIwVKQ`6O6XB$O-oUsi9#kyWPQWK=5-3d4)8Ps zHFJH;-Mk2Q&@==A4Q@AL2TM7=P(dcGT%QMC? z_WBy=xpX*NWp|}nwSCYZ?M75zI_=@CLn9?TGF^*-oU9wRH}j6!F80;7n|1rDGK!+A zx6mY&B7$Ps^p5*4JpnWqs~dZl68c2X3=&);}lkZRYOE zLN?H|sRl}6r5YO2h7vecRa$h9Lw(5{TR_9oIpqZasY?Kw!V6;5v?{Enc8A@LvV=7B zx2yBPg)nsN?!ZlJGufl-+C=6AwH+DbIObj1CA3g5kB0 zGDKR84g~w1CHuAI$#`^nda~(bJ79`yV`3PoqSez>o+kR2P259eb?0Ojv!ocf*sR5% z)k?DCzDuzijNn4Q-A~d&yje`mi>%Vrh_Iw_fuzznUr3WjUROU@&xq~Ay1k5|P(f7B z6Bk&=6dhwVXA+gRi^z6O=^AU=r=)d6*85T(X(P0}+h}ncjpR;Nse{jRabQ4Uy)>kw z5E0ee?lV0x<7tGmfLmR-ZJ&MEJDDG375Q@gV@*% z`+_4icYV+6K%IktjVkPlJxogi<^1;g^6Z`m_BL^^-sMRJ=cR&ugFM#kggRX~idmO2 zkF@z{TeiG7sujg3ljo@09G$PFvJh)>!ap6n9~Nt7;FaT}!;bO8hK3YK@w{R1W@i!3 zaf!``G!*X_EF3F|!I;FXfpZZq$7S_Mj80~f-oOnOz4Eho1tKC{EF&<2ro0xlghi7p z2V!Z7qg;kjU{THKr+GB5SBHoh+~%~9B^?;5e#LUaUY4j{9=}d!>%XvpmO(nZf>2t% zKHgpH6bAK@A>L!iHH?_s#0Eqz8zHojM~$F4OJT=Q7L~Ml7H8W1xQ%xpZSKy;PASp$ zK_S*#cis9=Z+`XkWMt4ehCE3P1_o%pR5UQjWT(#b{;j=g0O9Z2)1cC38rC;J-?}?gWC9QJ|i$z%)`=Q7@&Ma$@S9| z=Ht>~7@&p_+SQDtFcgSkz-LL#Z$@Z2NjNu@5Ca@Zi$pB2!-hx8aCmwH3(6I5<N#1z#pm&wd!ir zAI|;@FXbpMjY+&U%@bTjj9`F-A{H?>r@tcA!o`kEL=wXbZjA%?ipf?UPr~b$G>XTL z5EZ47@(7h!b+^&Ky_w-=p~6XWG#Vc@M?d1a-PvKFo&}CQ$gIN0kT;@xn!|v_1W7{0 z;p=+XZ$Y_a1Oo0E<#M~EvZsT%bawv}^xI|j!zNGf?j_EN-@TyKwF;DOwJ2^0;lrl1 z1vmq{mU5?Q?aVCC+NOy_>C_z#UkNuk)Cr6SzR*fJ8a<^Y>DS_jcWPoS5@@m4KZ4~| z*oc7zNWAdIbT2P(9~W@_v64$rKNxWQK!awqXF+56FgJ{t4Fc@iOM11CNJSD!^~LmO zpd8j}JmsD^Z4sqRzYSTrLB>Lfzkn=XVCczzaBJj8@qc8M$WyY2ADz7GstjxasaiP{ zo@-=}bBho6@>LJZcW^Dbc$9aO=6o#kAoti*Ckgmf7b^ov(u8^KZXrdGOxtRoj>-NLW<`|diy1Rx`Gwf^Ig6bVv6@_+ zZtMJjF)Dvv7h~W@qro7eN{dONOr9TGowb>=IFqY=fp_}h$=8~Q6kO8Wz@ku-QZ~qP z>MQ}~d&+{d^VIjr#TlfbqY)(HV-exNAFC6OM~+yN#uVOeoi!m=f49a)UmlCmfgEE! zZ(+9tD-d>UeT++8m+H|*;M&)Rj_O}~h;AKQ8y9z480n(`Tz!x;*< zB(h`vt{N2W3?iTM)d@xN?{StO;{GQ_b6eni0tiVwqZ&d$qdGgoeCpp$N&RFx_U)q& z{YuJGcLJf&lE#(xTvNPLBXC|8D1~(Q`bAQ68d5T~^|Vrjl=7g*-&(`Y0=OxL;7gYr zr0xfuMw>X+g@;18#p=F;>sfC2xEJ57$c7J2AmzVajUKqYmndwiU}BvIAUc#3AI7!X zW&ET^Ne87nN#}Ied~U%bYw!uTNof_8NykmNv_0O~h&+Q-ya5s?yH)rRhx^tyKit4| z2)y{gEG(|}=;akob`gPi-t{f7os+@pn`(U%HT$0%Merv4da38H@e$N)2Hi2v4R90* zf0OHC;HTv{#)*5&vP?-tnuo42%d%Lw(MZa!HZkMLBqdxUzuhcD`o1fttV`0}1F#8(TuZLcQ2Me##lpZK9~QT))iD1PW$ z6hHJW3crl>Es7ud7R3*Ji{gjAMe#%5qWDpq;#(9U`WD3xIRQWPEs7s<0DiPQaZ!$t zmIqIx;{TEv;KG<0@WTxFVFvt=K>RQRe&DAP41IjC8T@h9$Oh33HZ4G%Ig*D{poxZ?-FMwkmJL zeJyyzIV1P3!@c8i?_69Ri=*EMmC8Sp~_@k0XPm6-(MhXlesGmFI!i^Y%5rQ(GcA;ltI zh!IjO@RG`u;)NJLibcE-BgAUrM=298#0V*6;)NI?El-*iAuUgu6(KE8niX@q(kTsz z5a$N`wAp3ou`}xL)01NRygL#Y-bE%bNv@PggCnz2A`Om^QX*3VLQ07=I6_K^G&n-6 zInpx&e%Ms_VFvuLhw#G;_)!jo|7r=bsW9iTBKTob;YS=O*LK-d2(kC@quJqoS3;U^ zNAsz(YV9@Tg%(l@`TYb6tq0`>#d9qpq2-Rza(N?%Ts6H%Kc~+EvTU-G_-_XO8c>{M9Pft}3Ll zHr1a?{h9Em!Kp}ob!vhWbqQn8xnDnJ?YpTB@ol&|dzeAWuWL2*3TM}}H%|9iv{)#B z9yCK|8rm3PsvB~CgR5wMpElzst|b&G_aV5sP>1wg?dq;JeOJ4>t1Z&i?(AyQcePi$ z+SpyKa$RTM`mXd#eOEHpcO^}ISJKpXu37W?&P;!#k?K3rNcA0Qq`GoiT{*3;oK{y( zt1G9~mDB3VX?5kax^h}wIjz2<kFCttgyH;`G+Mb3nKWpbU@VhZ+jr7RD^b4YaWF?he^oC`S-rzEVW>mh@1)C0$c*O7GR1GEnPH88~(L*JeGM+Cfd1 zQmfO{2HTf`Q{UGH+n0e;-;5-LSjzEt)VC;t3=;&p38rqyc+LPLk>_rgb2JoN) zo%_xl+BFLpN%Ds1xvx<;rG_5rVVX8g)2#IGRWIA=A0Y9?;B*WHW6>pvXB7p|P9~xu z4$`w}Jj{f{>c&y?M?AB`9{=PBPUpc!4V-=0hPt-Zb#1Hb+E&-Kt^QUz3#``m?1o=V zj6LOH`S$xQ!uYrb_Nt@U(y>gjUP(>bdr zJW}iFeAd(XtS78e>(wi*<8kNY96FcqBGLX4haLdVj}Q9;s6g=Be~rdGY0-EMTaEvr zO#%sUS+Cz6ojp5BNk=K^C?%bp3XWC-c=?HVI!abY$?7Os9pT_wM_a$GYg$`|O06wJ zrPh|AQfuqf-PTguT54NMZELA*t$$k!YHJB?Eup12TZ*%#I9rOdrOQD}QMVLzOHsEJ zbxTpV6tzx7HJylREmwln;Vm{-TbwH^G!{P+UlCyPPJfImYIuo)wiE*t`^ZQ4JybOH z7P8_P7o2@^K5Tb4wi-Ki9Hz>^IChnRaX>2r<0w}K#-Xna4ArkPFs2k7pJ*bRXD1G0 z*0BF+@^J~5E~ z!|rxzJM3GkSGd6M8zW^>lC2(=9`<@#yLCt5;Jj*z!qAU^(i+$9%7O zJ~-oNm|*0)eb|+m2Z8Q!6H`%#Y23tvuNXfX)0mgWi>&D1&haq3_krn0T`I7^FDe5N zH+6?pP8O6tcq*xiO0?z`&o`Cx#~r+cu< zh6JJ%N)mkY8wj;%$s1^b{cROFC_YEghHAy0EzfzEP7zkUlhFKpzu8h;lMG z8ID_LSj7$wArw74iy*kZfRr$Xdw2!pLr}gt7}A4j#cey_rUrf!;M!vPfZ0k_Apv7c z#gHx&IDuh$59=XDT==f_@O{)0UjZ`1yYDddyRe<~-4Y9=gV_HxD5piEUPzs})|%=y$AybO?dIy;Kya$+!&gD{`ZUpzDvu?GHT|rRvJ( z`}p|*`{fvVA41^~s2F6K-A&-o8KVZvkO7Eo6hP(tU4*lI0|ldP{QC&nQ?#G)_bNVd zx`wviXr#w)0K`a&i=!b>{X9IOJWIbRp>$c$fd32VG`C!}E9Ovyzbr8+s70ZvB!gaM zpvNXFS`v7iEby{TM!W^+(Tp3qcR$fE0gOs8O$bPDB7%=cbx8K_(V=$(K0e^_hJkZ1 zLI}u9HM~`XS{H;Gnm}M86o!w7*=POY+N58C404(S$%13d*%Ckv zhFC=*F;Wd$O}$)B?ylmKbj~Cn>AmSLi$q>5pFvF>BYk#_vmfRcRB8macaO5exemkH zfwY-0?vt<{1Cxok01`?4g%Ow>l`4oiSjwg71EKgs`(KSoa zg|w)cU;tq+l%A&f3Q9k=1z(OI?J5ING5VzC&=&|QL!#xCR@Wv^%X*=Vh5CZAd0$zC zua+iHYV1ImV{s|H$tx89sZ%|n@eA|)=;9QTCD{i4MTAEJk=anMKRT5SeIGk+H%~>~ z!<@ClYkBSuG1xyUB|mx-qzwV_yd;5 zFgq};yIKdj@V97b+e6dfO4C*NAV%;c`I_tU6-vOV6@>;0d`sx1y?xWgC1AU;-Pxg- zv~`E|a0+`6dUqJIm&4hjoD5wuHrFLo{1qr=V5@L{Kj9hLq;s#E5*T*=c!Q^{i=Nu( zUc4U1%U2VaVwhHQh3pb*Y16{i&}qT3 z;1ro62r!?lGsK-of7I=qKw)Lb5&;>VAOG0JT^CNm%oZRvjplkeO%YGAtRfx*SxZk5 zkCr7Af@WL;bl;D0X^kUWwa*0S&wIO1l-T*S3 zo}8Yu&+(~u4f+lFH-!h92K&U}pm}=Q?Pz3NH;~Jv)R;2}a(M7mVldMlH_mfoLj=`Hb=-imF>7<2no3jy##KE zLIi+HgtlNqTd*OD4Y(#2`FBGbvVj(a1T*T$ZET1!v`woww?WN2G9QMNi?&%vs5WRr z8?>Pf+Rz4VXoKP+S*j$83sBAw3hSx~P~Q>>eSJ%6R^Ji|>#7$}*A}U3i`2C#>J90@ zx;8~!o1(5wQP-xZYg5#~rk4CdA zqt%ts>dI5Ko?c5d^;)8-*Ah*=me32%nqF|$^n$ad7o0V{;H)+EK0>*urmR&{W~wQN z)s%~BdYf2NW~wPO)%G;I4#3)5rRA;C@>XeitF&m-QM(2=jEQd1#+xn3&o|yQu z>u(y|U%Y8h81sfV82FYgyT7Az`cV|4Qw`0XNJK-?>65;YLUlQvn02!RM*umt6E(p< zJwqy*0KQNqa`jO8AEGY#r|0UwR8=W%12g3C%ro=10{nLK_YlYa-1U5_*?Cy*p1u=Jqf5@N@X&Vha- z#OvorPLGS9ij-nzzaIKs9%TZU~tlE!f^4) zktw_T9*Wtrl3O6i>_V1Lxs0JvwRkpFy-weuxi)Yww|wngklSo`4AsxWOD*&M! z+;4Xs6cZok$W1d>LeI8`jRju8AK?a2Uh@gt>-?D}{GVkh4@dC*HE=s6{|ce=cL$~z z9Kui3!U1$AP>8NQ^RAQgCnwJx__W0ldMM9~Di?>GwdJROjMyG$fF4)E9y7_!v)nt& zt+U)Y%Z;<#H_L4^?wXN~t6rB=UzhU=_7V8QIYo4Ey2K~?H(gR8N;h53;G&EpsyL#7 zBQt)7Sg?b^A7X*mMEoIDZI;nutX%KP<*r=q%Ehi+>&i8*T;j?Vu3X^C^{rgq%9`9F zmL{<@S%%ETG84-@+$5zk70W~{)38j!G6l;7EYq({zB2X7#4Bndq9h_JBBCH7>LIem z%L*^ku1vZz<;sLB)9qUp`Br*}jUx(rqMj!T45GInS_`6xCu(@2geNL^yKEQH!rLW+ zUFl=#WL8iV-$d2vtZFG}mX)#B}GwO#@&xqQXalH-HsdI83TC{NcYLsx>2%TysRma!aG zFS(Acm)yzopq=NnYWu@8xhtYhey88-!NS;a8%LI}WKoCGU(3X+ksJ~4M{-z6RWJ?a zsY)tWQn!)|_LANx5=KdtnSATdUxtvZGGp^edgLP?W3uD1NOI+Y`RNqT`JMf54pA*Sr zQ2zi4-a}w%zISw%mP5Hv@6&@R2ye^WgJh+_*|3z-v*%mkfn_8H>Qq>J(_*ATaMhI- zggO-{Mmx}el79lkAS@6Xih*hck(bCCL)!q8WUL|vk}(*)j&*?f9w)iN68zz`%QRwS zK5<|h-lt_XdQE-TS3=)o`N}XIOeMGJCa^A5_o0TjlKAl!KG50|cm*iDVJ>Taf#FYd z^^A)rZx6(GBFygLR?wGcj3whD1J(&l9D``Nt9*)i%p7V90%Kt*Kjc*ufy}+mXTW8 z-!IdY6+L_Ai|OJl;(8#NS1en2n|)Z0xNd#GG=e9qiJY##%FJ(>b z!|_y1r%%7Yu^UQEUy6IGaIk1~hwEs<_3P#A&QPR)Ur7(+8hvcWIh`%kdBjaT z#**5J;1Rg`xL5>e91wX^`Xq*M4|*l(?%A7CViu_J7~Q?Q?ceo=ehwdq_D!2r21`Zc zA1)l0I*s(xTbS}+H;OW1vk`1b%jhnrRLqD5wq(dqDv|$avdq9j)y4m%8&&ch4Fh_k z+gTM~9>-a1+8#+H=xED&ik~kl(_MqM5c0KpThyjb@Mbutki*r<2aUA{-D+gDLh^jf zMwZv<#-nnWQ(#Pd#x*e|!h&8!NRc?!&~t2a)b8UA%EZnU0T$W*{B}Nt;g>9-ff|$s zO8yHB$*tS!ZYGXE3}aewOdM!nN}Sz~#y$M09z(vwNkhBjDY$vy@m`Z;BgH*lj}_J( z2=urd3WOb&Kq#yRqtuuL;a3)vcY7PJsQGLs>=|h;$$RqfyId&kWvOT$sE{h#mlKn+ zO~8|-AeJn}d4GThMdvw106SOq0oVEsJ}o#Fu&}HWEKEm5#M6v4As$5@+$|q-8V3i% zQy4e(6iE_H{xYbNL2qVvyW?M1rZmU8GF__(tx0DkWQ5l7^-t6L5*~5gEo8^^-ZYcj z|EfKixaVCnkf#`z&d@^mjQde;f&FX;F&udY>D_T6YpLQSU|LUwbC^Qe>~hjWduIr; zpyCTe6_LFTft`1YINT()nm*k>+`-+3?~6(j;eBYtST#EYYpIkPKi&@??h^M+rE_-H zKv{K@Ae1|F_FO%Ey8k&AD?3b@;ORLn2p@ItthiQXgTFQsHiYlymyZwPQZ6a6FsFrf z%aSF*NGBTbXKLJ^PT)^RcfzF8(+5{FvPUC%5f-b1oJZ$<%^Xt_VG33xkBi3z8DF(A zi=33T^t!67gNG`*9UW@f>kqo1L=K26M-~T%Ghz!%`j-}3V9ksoJQxf33{#SAXd5bY zer&*d>K(%Ei*Lur1-9G1B@>5RrMwra#8?y%T0Wr2@SA?}MHecSAT{e!0;f=)#^euX zOL)(eZ~hgl>I90WluH8zE@&Kvlwp>{yaQmE>I#Htl`(z$!Z^jq=>R3krVZKsJO%?U ziqCD^G;>0;sY|*h_-RaBD+y6AA$ei$N=~QLtQ2ag=!=Huexy*xjKJ&wS{T047{3rn znJA0PDC(F>vR<=RmLcQnRYaD{&q|6c$k<9S6~ukSlS%suX^1CJQxw7x6Am97@SX|R z3MjLFN`lanEC~2WK@oSJu7rXDt`baNWut6f(%`Fv14d*4lUGJ$q2tSoCtkzLTB?qg zA_c$>?)KZ1#1LNT&@Hdh*X0XA+EG>=Otwzg@wG8kQkhWpudB-IkMMHp()JHx4-InE zy}m0-OLYD7OFJUN6~@Esq$PeAn@Jj+h&~`wMhNS9I%zY~o=3eH;cGpaVNdwVwDkWH zIyUOpSvsTSEA?~(&D*aIByJI)?kD(=)~S!INz})2uo^ z+SDo(9_Zox8U#GPCfTIBzT|*9-F(7H8LZM(DUy@wt*r&~%OE}FAw~TawNGWs!n@Qk zHp?g&Pgis7ZD!9G7K7|3eklgnBty#x4cypB_CoQlykKJ29*3&IRJ?_XBuz{w$_c_4 zOVk$st|}Lz1$Y5~yH;n3(ME|p2vHDE@G_RCqn8u<3tDD2aQ|@kIDM#QTh35~ zy{0MyVnKvV$rsg0k7p$W)?i~?02=Ri@y z>HuCqVC1N2ZYS22c*OLUiz`fe@`@P`R`io+Z}&2ar+dsb&h8&imZHxYO#w!bd#F!^ z4Nao}Y`8?}LFcw2Odnvm`%TR$pkvv?8-N@|1+&D0ltoW=T+3-O=4|CIMqO|kPH*bEpdSX*?dkbmP$@TU9?BR#n=D!++r*FRb zR_}=NEd6MD-?Q2o5c@NR`}&+DW(ia`y&_;IXJ{asNwMB04hyX$gTeV_f-tx0||Cp21QzY8ICN4BFRN1 zG81QF7MNYgbiwduxS+OGgkerET%6_FYk1*Va#>Ybdq*TOydTSMb}AU3cwRdgv|w68 zRHLC$4GS(%nTDwVwCDip;80S63aK|gDUUH~wQB*@X8MCCP5P`uUN`B}4*gUEO#F7H zALUbxNy(=?e&H8h_ylAPhaS*IETVB06HMdhW&E7PPpZ)h+M0U=!GON15wJcd(a%Vv zGqWgZBa!;NMAJqh>ygNMB(ffftVbg2k;r-^(lnnp%g91vHdvi@SB$XIe?Elydr^<^ zK-i2Mw@=5-_Nj*))5pY+uhnSrIyAvpwS1XK~Rvui*rP(fNh_012zYtDqId`7l$rbGqmF(9ok0-up>oM}->8`;L07!_z_8#Mq4 zASmmF9&(mPnO1E=@~h@7kjiH}rftPfUm>K8q^rqD#Slq%)=33fBwbBN0tj*>v*s7&CDqsnKjyfcz2P>&a+ zdm8ZR)8f<9fKT5#`1F;>XY4F}Ek?9zO<2BYVbxC~VpZ5dJzk`ZH0T3G=2u(HOp78s zr=nb+4N%{x_^emb&9SpWD*h1ZfUB(@} zj@Y3EJv?{VM|dBPC$>Oq1Mlm$FiduLSWEup5Wj*Y0sc%ibg7{|gnqS(H-t!3@zyKG z?z3!W-Q}X*nkTTJ7=u%5HHq;knv40wUqLDY0}0vXLeu4kydlVOg4`n!5qlY-!Gz)r z2|%F&nJmATvPf}3`Bp+_@Y*qZNNQ?9LA@uC7Cy2v9Ng0wN+Ed`W1#WtlxjBHE}`(O zw2)Gf#=j&-o1ac%siP0G1mf99p#diP-ocGs8}iBJVg_4Rt4Fw+ZJ($b2~;hhbT*sO zlM}ABJ2>OrQZ<@4*(JX1;H67)S|VU2YG&NoKKZjPd?~3Mv&63#FRDf}2o>fJUyLq9 z@OPfjGo$aW_h-us z&`C{0-|k5?BVkf3G?>L(D7usqwYFD41 z`fvQ64NnGDoJfHh#XQ_C7lGi?e$EI*x35JT#fL8>GV+oaQlV;IThTSf+5BO_rgswN z3@QU2;!SNhpOynO1NyPiez;qRds5fFVYG2iQ0k|P5NS~QT6k{2z=a*{P+nWR6xY}H%R3RI`1W;$m*&I8zD#Ua zPnr={apt1Y;WPW`%O|6}A)h0iXLiproZm`@+|ly!e%5+?cmScCPjz^V;Mp1ewBT08 zyONnk!u&3?RAHS0d6?faFs#0C09U767AI2}(hJoI+n9h?_jzmZ ztV5&QoY&#dc|fLNOrc>S4kT%Oz$Nvh3QK^zNTFGX3YAsNzp%=230s5jm((4*dfmUp zYWo?DyMPxt!EGV@(iy1nxAn1ewVr0q4%;MOnC_Zn5=}u$!Kqn({$J+ay*%aLDocSY>G)}fI*j84uavlW8A{Lhbvd78E!y_SNkwHK}vg}#O{_Oi#Reh@$hQ+tt<8)z#J2_i8whqfr!j;K6MnYmX%hI7@b2jqfw8?x-$>TAf36+=SUs`J!Ar z{SDNG9eJ4yoioYUj}6oDpR~%jX_+#GR1&=l)DYzg&|T4r^5jaiLWEJHr__YuO&P(2 z%Vk~e-_o&L*db+xZ6N~Ox7v}6+aa?(f$oDcgmiS0*7YLjl>FABrL1C$Q?5&wq*8rH zCY_2+Qs#Px42c{X>^Gb~_Zp|=Z~l7l%Do)Frf=AauxHV=6(vFoEBRLOU;h=nXMZ(3 za3r*9smwLF1V^<)e%jQiV2ORwh9Gg5VtZls*(Lf~B41@8?rEoX0Vitj8W@)tq(H^j zu$v}TOsA2qm3?R>4do6!+410p;&fRhl6;!F5?hc)-!H^7Q_hXUtMq4B}Z%J#RKXaBZLuZ>%J@#5BYXOE?KovT^)Kg8aA6%0+&aQh>WxH z6lBiFw~s)Lhe&eu!_3IcZ459Mbl>WzSO6!MXfeXjNK$2nd|V1MHlw>xbem;{{baXZ z5zS6TR6(wGw(X=9#YRDrgpys5Y05FzNrrD#7c#E4WJRR3R%tljo~D+?y_SWo*5{Ql zOKSTfNr4_huMn#raovyViuV4Uwy%C9*A^Ktkn!SFgcm|E(G`Hv!U4QCfIcoBQ5%^q z9t>a`1&CVDlY*&?bz4iyE$SW@TcEzw9?KM30Itjuv_)R4F;W<*zOBA7;Ze$J3uB~= zCAhE};Mh5+2E(GO1qo9nID0{br!)@70KUGavUQO&KDJaMM_(ujyE0{^ZrOjH)D!8# z8YM6{>%i0R@64-hbQ6!(%u4VA^5=)~@(cSB!0QC#r9Lggy)!ig`yp|qMk=G%ycZqNNs2cV!9S(il2i9n>k6#SI z52dx=6y%53P8$t8Ms$M5*5FOc_`-Sq2He_H@E|#;w=oQ__OYl* zjsoGox`!Q>izY@oX=E4YZQAT?IE`DIuy)?4;t{u}Q}qe=KacjwB|A1xL(W>&KVfP4 zyz!=5!`4u@2@j1acZPGg8rCI--(MtcciQG0z-y{E+5dj!Ke=WF$`$K+Yr0Y>Yj_R> z$55qn93vWB^h;+LmX~kg#L;yHxWGkLUMv|#519?E?AF;gJ49AwLFY*s*)ek)hg#ybK0#S`-_nbL`s5LOag3j>fREtJ-vq+YbiX z8(+=m_thJ$o7zHRAnA(bK7tbXt0YOKtz{cMfJqvVqkAMSBli)Y_#6q@bgZEX7s=Qx zuz1CKytw@Vx{doErC#GrzuGFVF7MEp;3XvpBtV~!-8byTKx~$oXsA^r@pa{lTC{7d zie*w~&#{>Xt>tJxaO4Vd^F3Oj-tp{d^+1E0e)bEVDxKMABN%2~9AP zHle40#7CT!DYsIaXJo?KPF5QOT5rN>+?3?!DqIwTbT(8CVW=q9B+n<)(<4@1JNIB& z^9}Dyr@mh!c&V24^7ahmODHs?w2{cykdJ9OaR!=_7msZ>qN|0JB4(nX#8cczvP!Y0jxtfY@KJ$f1)z}S+;~D$lQKw_+u=Ix2pB1% z86kN|<4hC}gFK`&{(H1vO4ba%TnyVgY(%o94&sjoDQcr#$b%q?BQ+*5Jt(e0tZK+m(vHF zwYc#mN4GM+U(w+WUs$Ah7!Pr1;eEoFt0>12@r!|ruu%0Z*zuyvGDE+b(9f37vCqv6 zezD*iacaj6o@}5jYBDbzT7K3vRmt3*^Wd;Bzb)kzFr*}ssWz|wo~y#_GwBue zXY?(B;rmI7UL+yafWE4DSrI7W(mJsL^_6%tlk$G+RP5q5|e>G;44hV*P4oT>5D2f&~YueZO1)&fQHkxcshyy=)fgaxN5R~v_(j=f5h1S=MMejbW&3O+{K+^ds*ECdRJbSbv1N^BMe;Sd`q_kD zirjV~Oe&Q$%WQGyhzQRG^=~N@<`^S{)O>6t1Ro(97DY!vi%q}fTg->f!c`g@ZwKZj zGeEb8PCmIYzCWAdVF{M<WKQQ$m2O&&NF%&78)VE~S6 zj#mYfcvmV!4`E&I@!&Q%#6igZ<)<-(Oj}{i8BW8K2Qst9t{`9VF7};;6YkEz{@&56 zmwShmy;uAAf3z>cJ3(g4B-}Ca+bkg*4|}%p5><9`PYwNM7e);X=b3FcwJqoCX3zBCF<1z$_gF{>IsJU@;ZNB(2z(p|*)W=iw z>Mn?rRiNT=B{~3I%qTmX7ZNZw=^1IL&d8`MM_|7I>*=JuCb*bl!^j5xF0rA*0Coel z!2U3?j-zLw?-6~F&iY$I^dKF+2g}RZijK8kGn#=K+9t#?x+vtn#h08ypk&gR5T_BD zcuXgwC|3tJG+dae$ir|cuMTcfxv->~&t@38K@wPGSz7LDA(UL8@YtceTUKsP;QIsX z7XICBygmd)-3IgJwwSOjThe^FHRgV0TblbvTVoz>jd`#&CYMOAQ_IG6uXj4c?mxEB zh9}K-wf6y=)e81!enzUaqd++{)5$z<^Pk>_8s9(uz{mL7jRBs|?OgO~4RU_k9z%~- z^7ajUJ2eI{v~9Zbgrgf+?zq5(HbyeqMa>K*1sxkE3qwr{C-HNsX^5lH$oHAfG9-e9 zxB?=kGtI{Ou09*B=FW}f5(`modd)$Yc{CTXdXiX_4sPI>PXt*r?3#?t7`LP!us-X zGyJ-Kgo2ob@TdShRrX5(s1@9CHnk;kvwTIEGptX3gadUyXlJKV>=)gZAYVuJJ*i;a zs|1nK$y7!m5qj5h&=|I>tp?v@gLzLNR)%qm8dAc#gmm89(Pa{&2AXLc3XmO7;66_bE% z%95b!ru3mD!#BvQDU_Eb?Z)w1x%PTGbr1*FuVKm2kIW}~$y8K8dRZZII zLQ*FNBv9mJ^@tj<>mH;G#Ps?^QLLt6N=V|ZH~Y2v`5Wm}*zYz5EcNNfzUxjxj3f>F z&0L#?on!`7;Cf1D>t#dH+8AfEw&6y;uRe}s1kkk5xb{BPFQ83cgBBLLmaow2y1zT>9axK>^+&G>E zL9v|Y5G_Jjl72#e2bpfOU}rZgz{5oo&D2UHDl>0Qcqwz2WrS)v*xvYVes2%=nSyCF zDVxID)M=XCkTs=?m?AMUPrek-uUA!J8|ZFZ8?ohnnx4g}x6jqrni4*MNrk9Z>W!QN z>Q=77u0<=LZp<27;<-4c5_0{E=AhU;z3rVY-3rpSs%)<#1OH-bKD8F#k0@Y54p5HH!zO+eCq)8>~QA-4mD9l@Sb7d7wyLP zT{0My+`vvQ`Zl^+t2O$4RAIZBaAq~erb4}ve?cWI%Wk*Yg9Hbz4lTS|uVc()Wx*;6 zCz!S|z^kESvsT3;+UMtv2a<6AqTB8CNb}!g;)A9|M`34n1dwp0h*48RT%_**Wm+9C&sPJUa)T zodeI#ftT5V=j_09cHlWX@SGiZ&JH|h2VQ3Tp0j<=*}ms&-*dL_IolV`p0~I+!j2bR z(B1z`JmUvUlE+8xPTUU23?n6r1|X_pFMjNbhgcqSFL9oNP0mbCweql4kAl9Pq_&H3iP%J8R|0mdm`=8%qJtV#y! zFh)vJWf`c%$qq8Kk2A1WrJeV!VZGkKA)8)*@ZB-?H3Gov81O0vyo>>r7;qE=4r9PU z1mHg5sPPr8?{13rXI9&A!Lrq9qnCPz82~NLyM>E5rgYZ-OX-X-!?fqk_S<|~9}}j) zh$^4JMU=W=3i%0I75+kWC}7=TsR@a&?qkC29b8RIq7-h%V}x*$=eK6yr88&=kI+aw z_(vQ3W+CmHzaBfkEkdo;H)~e0tX)J2xPZ|z}gQ|-ecu`LUy=KQwV z&ap{I&dxYWcZ2tj=)s@`UX->nq|?vt8xI6f9l0zNfvf-u$nzB>sr)8Ra7btSczP#Y zZTa%1c1P#*g49pS$|#UZ17U?Bl8z}XU5R5O!rn|j8Fqqe3b+#HmgF2;*&;I`r@~>L zg`sE+A(fE`K(~#M6s^6OjLneZF)KpHoGXJUk<`UtzL<r^ylzuDayi5jE(RKO3jW@B-)O8Y$8?+3OGDUw223oCnb*=a*f=W z$?j>}J_J!-+|2M2&GhOL-fYAaNZXR{2Y6o1y#AYQ-q~6)=HDkM@9{HRG9#Tbc?ILqR+NM9YA+LzC~*eN5E9=LeB-;eXIPr3FT~awRAh@=gIf z!OIhG(QvQFe5R;x4oe{{CvF5Fj&8^aenq_AH6jcl^+M6ZoNL9PmT$OyK8A zelF#QeDec%TtY+OY_Z^DKe2cfggF8X@xI&Qym|@@%_Vc){^V;6!B$6=?I63FfyMY{8mKS zP@<&KO)5f`cwM2bmpG%>o`!y+(3uI0v`J`H1>Yjq-zjuD_1LGwN<`;aMFezA{Oh9l zM4y=4D}~O7?(=9b6mxFL&`T+pJl0crDFu^9dMYoaU@xU$cqfDtNWor8 z!Q?5OiaeuJktcL2P#MOQ{Gc`*lKd)?Uqu92k^Cwm$cp4wk^JN>oQk}IQ-QV-6?y-r z0*&L4lusVIsX*@-DEUG6D0C$G9Z7yilHZZ!cO>~8Nq+LIO$D0D=_J1+$w=P4svJqd zjwB;_>k6ykoIswts>oAU6?x{Wawr)cN=Ap0k-TM9k$0>r@`hFAP%@IYt15?*k-S+& zug4Hec(jFnZLQOjYGTGLq-1DhE=A1CbKmapB}b3_bf|b$cMW${SV{ zdB3V6Z&y{gf8Vd{3)AxUPDP$%s>pLp6?voTi*+rEBV;~kY9-0&FJ_H@ zp*TwIT{$!b_-ev6Y%l5)VP!NVO?q;uVtw#)=N@D zog6hVBSjxwAVYHCd8W0$MQx&*ON%J*bmi<5@YxwLgmT?#dylWPnk zd4}uau;ddcNj?FFl8>TO$;Sw}GAK@xW*DWXBbvn4yZW%vuT{HY-;_YJs9_1BG-(N9 zgs22jbgDZsLYm&UtEBiy>|@iEzD?y)`q(HX%o?3M<4!F}s3VQElVOYokc@RW6t9m- zC9C2h27OE_PZej_(;Yu+hXxRPIvld+V^a21T*RJ_N!e3zQK}Q1*?U_cbQKq+DmD%- z#){!XpH@gE2Q%L6hcFgK2#VyPBQqiiqGL{VWJWMSbd>f@V}S7i8g#!vKrwPaZxH+(J3g2j*Qba8bu1ycTrIq-^i1e?4yjdl%X}#5k3Mc zqd^j%MhL~{V^Z;{xQIC)lZsEpMX7Lrw9#wU3gj2WmOeBa=XD%!t?40V`EE4f}PX85teNkH)jpE_1vy?K9$UB!z5DZ>&M1)j7K%^G2-@zvr(zMCz@m* zY+}>CsyVs6A%V=NZNbBgYV$iBwpO?QBOK8e%5L=JLTKEyU83h?UA?5PaNHYlX zArdNJu>H&xBC?bAM&)jHY`G`%3GFEJp+6Ml`V*bLjkpu+g0i1ZA6B$R<%FfHgc#-% z9iv-&myg`)p*fqN$=8Gw6;ZCJ&W#9a#Rah2<5mn#p!qVW3?(bhK@t%MsKXJKrVP)z zlp5znStNUA%Nii^!kZwN(z2Ur*Xm*DXid%B*l{OjjPpqbi*350lNd9c@&R`GCFitCnVB0ZVoDf;cQso-%DT;fq zQ@ZG0E8mPp08n2f%1v>2Jy$@=yht6(U#F%b5~1WO1t*q_knkmC_3herysDihAeYEA zHMgtoO6~_94pd?dD%s)z!=4i;lh+zlkUd)<4WHcAkUek@G?+$+gsf^0f0}x)5Xgsj_`T+Pn{2BS?~(n;_q}s zI868V`4_S_?R^2dD0AXH24Bgs6QcP8s>&a^f`4mhc}<;A_LOMHE^a}V#KqszsLBotSI z(Q05UosPr(%H2Y7AaMT#rroL>AM#d64I(V`b3wpS}AX zb4P}Vy`f?dU9nNbk69`%XS zMy=-ejb7*EPZ$q^?$oX0iA*D2IoZIH!ODwoNN1MlSQV`- zki0_as_6BxmQCzUt)UV&#I=}Cfa@uSO?Dl{YKdP7{^qZ*D*l9ZCc%1XS}EeNI{5@6 zMI;k{_jzjPnb5)7e0Go5(^DlhWeE}|T4>Z*%qq=cR;Q$#D$RUG(NIv4CDDR_oo#~Q4+Ch)i5r#UJJKB8T?CW3L}f&|6)khVm*oZH zY|g#9D#guoM?4`WdK@!ji%#mZR()-~Gon}5q{b;eQ{4>4;MKl_rSr{Ic}Dp&l_|_< zT4}}L9t8`CdNNn~bQT;4E|H_HLb*O*2rh`Cj5K_mo8=3)*y6g{^7SLXM`owc)I6TX zM#7aJ_;UWXkCu@yx@HWH?C95o;-QNbUBMVw8Ybwm@-V%16tn`FX@H}Ek*n$CWEiU> zqRQsMZAOO#o-}o)ml`p~=FKfOL{tdHfwfx<&g5T^ePT%|myBXE*eafz-ihAu(PcM4 z@{BtWBZywr$8IV476Aq+{So^Q7zU0B~FPYA{`5X*FOIishb4f(~T zRUu}{X`NwkjYe5h)#A(ERy=_`>`=x=mZ5vk7oIAPC2T6eDhQSet%Be)Rx$1}xzZS4 zky9Fia#Jj+$VL)*9bpS04yVftELYG~bTgE!H%UBJ8uU$5e4ez!BiW$WLRvHbkubG< zqcIdsDb~~o+Ka4COnG@CPFT1=VJ;3%7mMY5aZR@eZQWw^bunJv^Am0)Ys-Xdr%|)D z^}IQl~>db9V)wmhd+~>2%ci6Sf>cE}1}Mrt;1>Xv;Z58Ql|j>s`p#FOr&6%8-LfK|(o zY06GiKFl2YAd&Q;kTDBSS#vRwyevEwn2Uk=Re4&GnP?+37YZ=5%oXw$%gxeE1ZN{k z+$((Z*Mmb`sHcqW{TrmH_i!df)+S{z#O-@ezCi#e-0U$%GG9I$XAgqgf2L#!3=XdJ zB|<`Dz!@EYqaoNMn-K{G9nMB0!saxeFp4T(&xKvJ6lg?8-#jjRbmKC7DJ0y*hxh;D zahVW9--u$-=>*U_?etnW#Ebow#~Yse+6LbyEZX}R)pp>3;>GqMw2`2c=ItHOQrM>TsO;8tKL8j)W{e*}{%Ki7NT*Z1SSCA>3F6+jF8zBuXwA zhJq+>-xWBt?>fS=h5k>0!=6V+1dLI?<0H}S=z#vtF;&Eq?s60jRV$iR>Z%FLC=Pek zVK|BoBSXe4k(4zT6UocMQ-QgdkU=Xl6K!PXLW(=RysE&3yv1^}G!wzu2wN0oGCZyV zmee;8h!@+9Bgj1&NZL>Cyp33GT+kU)`lx><5aUqig+T%NmFdqPa2)Ea)u~^QPwYGQ zwmdd^B+ec}aq9zT{E`Y>Ee1B*nqoeJ=Lp-xGW}SWlIMdr50a-E!l1xrdlh~6J9h%Z z4Y}2(s`@nDhgmAFFUd(`^BSZ4$qi09!qo#vmC@6GB3B^MWQHSyvT+YCeY6zQq!+r> zIT1ZG2b9myvdR%9cTkB?ps!L1cnY1_3r--RV#NO|L#-5D6^M~_L1D_V5$5L3u&{>= zB{ybz!-*EyD=>?lBs>qqXV$zek7BHv2k00WxdcW=9^iZ49IWJ{)6Jq3f<3G!COBN1 zpwz0qZII}8c7E}T-52|x58yjOZoA_WKAZra(|uO_hwnr6eW1RN)%R=l{YrgT)b~sE zT~psD>bt7Ge|KJbg&XomrJYLoyD}YxrdvCm(^DL>$0h%x9Pls)Jjem}b3n?3&4}az z6!OTHLh%3=Lu>FH%={=!4YPQ-GUD*aEgVtQF!Br+!^k;Y3?puKSjTsFc6P|k(k|5> z92e~D(3AfnHi8`SWh2NTUpB(lK$3^8h9m-YL6mUx zmz+409$qxiL-YdZyIQaG5|_(g;%52F19%jq-0f*$_Oh}A>oFuk>|_u+!(Lsu*&WMe z|6{rAe=L{%kL9xeF+4<|H6F`l|6_QGppabCKZa`v4)F!_W4We(3c_aG9u$hWco@MR`p zTI`o;v0tXe#-m@cHdWGMSJGlv(qdQAVpme`D=GJtl>17`eI@0-l5&5Pa(|R^f0S~6 zlyZNRa(|R^f0S~6lyZNRa(|R^f0(j*nDTX)@^zT%Kbsg{Xxq8LCXC>%6-awD&~~+l=GDF43oPh+>9cJ8}z(c-}o>S zklh?UUC!^^#igpjw~-v~>~?ar@TzkX5vb%Xx! zSNYc{s*0{tOo#sT=}#PePQa#%9z>~oF8Y+dP7zH9>xb`qcwj<4={X4MIr%@h9{Tln zzlLrBNvj~&S_I>Ii(ssA5sYgyg0ap;Fjl$<##$G`SnWa(>s<(9#S1~1GGvO7DM6+H zIsSJ`INuHxh04`%BFPL#SgcbLFy<)qAAhrJb@R=>)y+3XIu6GqVElbaAm5Tez9oVA z<{Zp7CotcfU|QP2>24+ zBTfxJJYRF);M9GCQ}>Mo{=1^S57qa9`rbeG`1=+0eW<<3F*tjef_y zp$4F_+)X}@m-3_podh#WbS|qk} zn~>P@Z9-yG9w1qLlf0g+Op4n+p4#Cut>wgF6|-Vcig=N`5lJ=Mg0wH_^`yeO>Ef0H z-g|m(a(ffxx#_=-`Ff+)JZYT6bQiSg{`=;jc9tnTT9L#J#rkJZwr)lC<_WDoz=G}{ z9=_&YJ~`qorVPdgW3Q?~R8MkRXNSL*mklcZwd6O6vUbrQbXtXyl4u$Gz}+$aJEt)qf5|sL z%46XCDv$Z*XL-ywJ!wP#QCgD}-@1dRyWX~Qr&|Je-Ko{>v|)N=39wglt9UYnqh_%I zkw@5D;PJ3~3q03qH{{C$^eyPQ=DmTQYu_92Tm#>L=UVs%JlDiG;PK?9puBbX&9=+0 z>*TEQ*2!7pt&_9HTPJ6Yw@%I)Z=IYq-a0vJymfNcc#yMgGHz}r9orC>i!fe1HBa~b zlSi-)NGGY9ZEH*&Sf2UI;9_HVJ7n1v-X3>r!py&=>ld;Uh?AVdfs8I6KI_@*4*TEd z4FNi5*__$c7jh>x z5`>1;o8&-~E9$+H8GSpMQNUKid(@__EBf|G2#8>byx-j+S%eT0MF=5Dgb)a#i`(^l zJ_2V}X4lo}Q=>JVYdjRe9@oIGSyjksIgR1G#O+KyIBe zFjpd3Ck^Ex3#B0}SDajFa)rs2C0CSeNp?#IhuD8UIG~pW_Tii#k5fXMj_R})cU0$Z zJkW!0m}mM+E2>9za%g^3CujOcb#h&PRHv=wqdM&@AJu6K`lv>Gz(+Om;(k_+;Y#lj9C6WpruJb3Q)1I@*Wh@h-Z+@?ti+!ZE5L zzTN$hVYNmbEa2!Us{o!`Ns(euTw$(m4#hW>;|8JlE_w6&)Y`GXg%busANP9h^_gTLt`2y*CU93)t zID3ncycAUG)q6t{1IE}KiAPQ8PCNQJLKw%7aPHNoQ*#k(A}o2z%1)5&!UH$|~oaynB{w6Vg^;2MD@k*@lT+#CW#g(u8Oc95opo-W5@17f|h zaF(abtB;zam(OR{6!z5xri=;5WgDQ^L^=rLmcYrA$H|!7XLG}9~HYVEi1{+S? z*$!fhv|^ErIdVL6WyB6wO-&L}J~|HVxnGU{!8|aaF}q&CndLo0_z<{8VSqyswYkOn z&)y~26{4iO{4DE@v@mKL-YDLa!&}drd5hY- z|6((eU$Lqu7<16+Oj(yHpG;=gG%q0`@gsB;ciJwWOy}@#I{S#Gg_q>FA7b2s6&9++y@jD$V`q)1%mO@yV}ap)74GUu{QNB9-U3erK3*=bPakF@ zc8e!3xV!3e^f^7ZDbWw^^eHa~gTs;#*dE_M&X+%Q7DRX@3K;6fjI_SpA8L0Brm z=+GXI9^i6`+Uwrp=5(@L-Bb4x$r%F)##q--sq`hLT9}mNY5p%9wXtu6bBa?!S;b=;dT_KVO=N?tD5Kkr#!aTuPo)Oci8di|SYl zqeKvKq^K5@$mN=)`_%M~n#nEZQ_+ix6$L|;lE|2t%Zz)71`hvxAsZzvz$=oANE!Q&|pw{JbbqmcIUk@&qAIJB!>&Y$F zH;o)hzH~uvL*=8U=?J}_EXOdc!ra^O7s|?n&~u8ynuZx$PA+nJZ%-CRW7Fn}WYJW? z4aiHE*x?n?9^R$E0OGV-!^D&fH9@1l!NREh*@l5m{EPx z$Pa$u4V=kgZH!Y3u4*O7P*lj0*|US_FbQc|2*IKZcWzPy+u^BPNLyV8s5_9_c@wh@ ztsX)D5=WP~nD9x{t>Wko*5^;o8v=u)@Bv*}YqaZKxWpd>WKtzu8y!T(gw^^K6)=u2 z4Tldi^l#(qA#V2lZg>Fv7{r?93gL%!(n48lbafi_7K>w>xmf~&r(iShC1#AjMv}G# zy9O&Z!fI&LkGmQVif*7HU>T1T%?^{;NK8pQ%fR}V)EZ%7yj&nH`eL>mf5cPSlno&vJmz z0b@hR1O(9p1W^L!Fs=j)IS$xUx)O6tn@g6O$w*=tejxeSGc_uP)9jd8?Cy?xn0}Y{ zqUiWeJ+?xP&!aJq^K0|#G1o}zO=~c$UJTAUz2;x|5q6rdR3Gkd=gY~DY(X(wA=6~1 zh|$1U*%Ptiq?dO2SIkRjcFT>0?PLfQBV$_sY2KjwvVAPuD-$6KtgHzo!n1wN_Mh$C z8S3ybS$@%$UPh7C*=&yGQ0Z*MUZy$2?6GRF4Eg2?ot;27QooK8i%1D*4XPiH zSzUmG0xUz7?bPxedO{4O$%w(INfdP}1|BFzOaes>(g{nNRVjQab2-CDDQ|_3ly|6H3fM+`EuohMG!U$z`Z+eq3 zy%`}I0)prA4(ZuWi|1DPd`So@TjEk?ivfC3F1A6*V2hryxV)C7V!Ize1dVvd*6OiZ z+qyTpE^7wbB1H%oKf}4-(qaUC`|sUGxKbsNtw^3skx)4O9%BBv6VQ^P=cTT{yBiGPVU$ zoEe{}(XK3*la^(p>!FCLcBCb2& z-Y_U%nd5$>}cBA6auN`brYA6CQ6?Gq<%6H z0j4qIxM`wTP?efU&(@QpA}wW8KGX?*6-O>Vt{YWpBth2gxN-=mpl&FNt0pN;UgLwz z?SLTya>pOb@h77%RT7eSnldMMpVBHFQ`sixVs#6QfZLVhndE7n7cu(vDxD$v)k-Py zCcXNLYwR!~pVVq8D)j-W90QfQ{d2C_VEEV5r6WaHudGG+KCq z6t7diI~c+V*Z|&Xr*s;F@`_NMsSs3aD{`pV!o@+KK8Tk0>@JO2j){my`J2uoLW*+E zBk4SC&me6sqNcNihqY~s3{+R-&1C_0o=shrLZp0I^b$l=CY>NyA1TCJhZXU-HEIb7 zhwqzhtd@oSCkmPwmuyQ{Ij7^UBr22U_I)7>8;C?ov5vI>wUpy1z=)i89m93knu^p( zpTP3_jeNv!qQrbSDPoj3d{-G#m1#bcc&<=3KD@)$?euVC6K7B8WJdM8&jga5pDAyU zNSsqFh9rIyCqy92$r8(SC z8pP+b*;JY}n)fa(+Xn1tLKTXCecHIPHed%8y9PIIe(O-TrTGL_o!d`rjuo49Yaa@6 z9A`xsnx#S1>w34x3AW#bz zo3q>|na+$COx+SBFH5^M$Y|;35X%~V{G5$+!r;k>EK^~vZ}fxP2BsAebP;CB6H9DZ zuEsf&k)O0ggfR$2u3UL(Qmk9>Ix2=#dRGeF6Q|-$CR~jye><19 z<7_tkLV!x{inlRofKBp#UOt;r2H9kpidlYE$?`;k%yXQ&WD>b4>#a!y8D~qqDXTS! z0^&KAHqkCl6Oev_wk4=}LT=KKQCLTUrhl@=-uk$teHLEcMzr1b4<>!8RoaDmpsHOq zO8EYAa*y+Rd}e4chpVo|6vyP9y-b(PnS_WDOf(jsd=ENtEx^0!lVBhLcjrbu=Q-WY~Pv9MvSYdk}K)~pN>9PSGZw^zZXu0GV zsBDv*(5%|x2nMUHD6!MvbbmR1r>-cs6gU^3e+B@;IapZnSw?}Tk1g>iDv_pQs|y`2xD1peN~4_5$l-ZI$M2Djko&9BGhGIfGz_A;xb4wb=aB#$>}?%a+#V? z96vdhxR0!%Jxv$%bOwoZTl$Njk2QkK#0Wz+g6haxSF_)GYjxU{kb8hROQhruvEY2T zR5Y$SJ^0QuNTlRodl8>r2ukW`Fnq{Oz*sQ6gY>uXz!oj$1o@O1hst91FTdHL00>B# zyok8m{)m>?WLazWTc38KM>Nb}Je(s7Fqn-+-G}GT*c;|BAZ(7uNw-w>38dvF_$&>V zB{6O$C1!M#B(T*g8L&hx$ka3^k&}x8DWSJ$eZ0GGEE-cBhW$sIU2@b%V?H?o0G%_b z5>^9m>d67HDA>|v#?=z_dV{&NeF>2(RT~Boqi8tT#aoRydD{5QBa=ypkX_s7 zK5tG>&r6&}4hpn~=Z$xb^I`Wb@OsU6)!GMmz98PycsgbNhR$XbVPxSnSIS3p+HLmV zlF6U=dl^r3^iqDL-!vUYDPHV-^9a-Fv&vhl{Hs372R2u zEO|2E(u>J9Mj5xtS3))b(=2*!A`GUr{U*qi&A0Ced?a?6ZCH43J&ks2zg zu^Tp3?J|ZPu@$HDBfCs8;**CEekqeq^g>hgbS}?HJUZjaZ80Crzs!DJW*CNJ;gd!L z+vVuk4d!mbUg2TVy~gLo{<5WPBoD_n1?_ywYqDLHDA4opwD-n(c#39QUSu7hHNLwV zFEa->u|_k&@pyhRnaG>N31&v2>cNc86-2660Srp49Wa_VlPO=-RoCF`G}%T)D&-lD z)A*Rp?a|eaX%FiZBEoe+Wn^T=>0*Sa3mQZ=gQ@&-$f=}UT{x<_bcL0aM_x-yE!5!7 zl+zM7vCfN3v|ZIb*0m24J|(e!{5#V1EAz1oJAY#ndrB%93fB?1e( zoW1k;{D+4{-XN!O@pwkv@_=BK#Y_<6#%;!LbOqboWOsZ<8lxK%qS~68sLh(%ONr?z(Zy{1nMSYO zSy$!<_U0Xi4guKMJiSK5bOQJZ)`#%YO%%}^-_1XnSqaTMsGkHKTtouIGcaC~ zqN{(H!O)=9OkY+Gp2xNeHOvCx8eO&JG}L(-D9Qo)nr)7eaTD1hgU{{0b+rVttdB8$ z1=S=hI4HLT`cg9_C`F!E1CU+HY1DCYJZWC_=;`I}FD`J1O*vi6P87x;`;L@-0hR0py_v}({h{y{hfSz=?2v|5#*$Uo8Jaz61Ey}vHQW~*zOEKyL0j83{GG>@VYCE(9<|iX8Yy#oL&eX$$e92@QH!)o{n4n`C;mY(5LBjbe|g( zExiq^13XNMmo^$W_(Us^Bv5t}L8lg~_gEdeg4ctU-HkAnmrV-eNQqq08R@)(ALoUM zj?Hf-^`5#CBBgu?(FBjL1`r3^#4;Nzak5#&HLculMDZsEsXjLpiuE*$LuF!bNXD-X zPNk4nD^;dUtR5zqbthRmGzQ{MjJ)XQk2n!;8xun zE|kWdS#Ny*u$+}74crFO9ZOts#r26ETxRjQF8r`!?b0ri(BXs9Ir%=Y*oP(dM(e^y z5w(gl1vnXEPqGbz44}+JGHP!YSM<`@r0)l?-Hp1jA)@PM-wLi)zS*%RCWi<2+bkQ# zhex-o(rWVKcz93V-L8y}4zVrHY%t4~COK)B-pnopT8euK$vs80IK5qAR3)e5GgzeJ zA2?#0FX5=f7b|7KIq6!5v|Hk;ugw=Ti6b+IA6M!ltw5uKHtMz-T0a-2c6U99a)A|2`%Vy`Go&R8t9cohOHB6y-TO1R` zS{82HmK9icA1r?)-i%c0p02u zc6Q=X>24V>Yy9SqaNcx}o`Xg^yCpMFMIoDb1+c+Zczz@Mm3}+e7 z@^5FiguD2G{}h1!Rr*(XIJ^PQbo!r`S1bV-0+6{ zhWa2~iEPA?a<*L2>k@%r#$^+*@2fw#L_!OYV%>8zAZd zJ{}%vLO;|F|75J{+AeGx#`wmYrEjI*WfjSWN zHR#p+JpCD zC5_hQWNJP8DR7@e*Z2(YX!m$=^6n0MJIG+2Y;4X(a=VlXF1MB;@hA@iU6)066;5)O zCAc$qgDBs^{R0iMRAtIa7|pQx8B90_#VUskkGfU?av77PN2A+Z)Hgen*>D&YP}y`* z4UCt3zAwB6aes2&U0dofhfL|otOeu+$I!MV(}Ff7(jZ?FH zXi_ajN(zCzDF61izjd0aG9@-$o@=v_;(Aq7YM?W)HG=VYYkvJ;O9B-$4qhkME5xO3 zDm6SzmTD7?*vbcu%2TE|L(auNu6{ICAoBp&IpasCOHb#};Sq8|NZbD1K93)&rNRi? z)fOP=t5roPcHqem_vCW-CbSU6m43Q_kK%(ccqoJE8%X<-eCAr^aGK6yjC3Ok0!1l@ z%|mnpA#yCVj%=zLmY~%Jyx;r7VD1>F&SCI*ljClw ze};D_Yj2yiP8(hOih6bp!l)AmegQ^_G+fWjS-FQgmQ%UWN*sj@sIQ_i30m)Bbu$r5 zJG!F&(ky>PYUb2R`V5d%BtoqVLsUYGirX2STPV6>(!dXig`t47voSt9zgFa7RWn?m zk>6^Cu@#=mp|#2nQ~~r9zAjkAcz@G#vTOdG;bHaggEqD5z{S6ft6$f z^pa4j_WPY$lb68pig^oj(DL5$V{Ll5TA}Zk5&6gl{b=5ClBOR9?Lk_i=>XMhmilsFpNV*G?K6R8ksEdSkD8`*}4%>1Dc$F6WP+ zVTT7xy%tw0t6T%`D}N6H17l97SePA;jLL!CC|>k51d`cUmk8E^lsifUvl>I}NG*=h zMk9%H#vzW;h9ik%j_8>y+Q-AbT@~yELC=cBfKCB{O5%)sKC-+{p7dnqW(i8dtCEV!KeG6TIqy&bM6D^}+(3TrR0!_O0E+R2%m| zXhXeMeM1cxoxc0BifJLbb{x!Ag@x!!a4_T`Q{E|TBw8@(4iBWcyt5{x-o#?}XH-Bi zb&YBx6gg;;bYhZO5>ZEJCLBB*pDrkSGYfo=Qvskj@f@LsG>n#a0v4UBIOfcWnJ~<4 zh`DvSMT8<23#n*!wq%C-?11T9UI~)Xb>dtqkGnS&>fGPriIID}jzjc$&wJAne!&j)JCT zn3fgfFJ(~K$CaKb4=)m@aL$D%@Hf>Fxf3s))v>}-zO66k)B|xyPEeRn-q2$w{aB)< za!<&H_*z>1$YGZ>od38nR0t+fOQ|*`mm;_(&HNktXc&ZL-8sXPO>~V1j}W)|Z?J0r zqFuw|%y@a=y!wGR83)boi~Seag1CLeO7YJ77SAKTqg@Dj7Bx)z2CuH+fyVc=B_iou z5_)VlpI=`m+Ii3Wjk~}2CFOdFClXtis~?JzQhu@ykKA_7ZBp!dd@7xPd$$_hPgld) z_@3xsQurSwt4>n1Zaib%s@}(xL8D+vAy=NR<1W{=lw2jmo;1D>kNA}<^BL~hc@5QK?V{T zu{ZlP{{gQ2QDbzOhlts zQ$}n}{XmN<{RM88(sd~=c?88KlU{tN^BeO(JZ;JVm8o0wWH7 zXTXZ)7y`22^frP0rUdqz64>v3ByitI;J%T-eItR?|B$x=zfjkSO+3?T%JM|K57FDr zK18oJ`w+D-AL1v_rR{+VZT>+VpQUT{Uh>4LSzde>-e_`H0T-rS*Ad{1I0gWni;4AvK78)y0AfNy~PuqyL9Mcc{#eLnxcGneuGt; zGVK@c(iSY9W}i1^pC-%s><(uI`wv$uTs3!%$9?@y(}BSfqV_$Z@wFwNjW8Au=Pn*V z{1oRAWqXmKZNkl6@@!@_VMFX{`QIa%%g4D%3Q^OjL?9yHjKb@&2N@=8< z^l+5hYr`#GIuig#yK(9aN=U=zT}&dy2q_q+Jk;&QxvQu!4L|6bEv}C#y*F#0IIpzx zszR5ZcW8?oFT{||$A4r#BhWz#g85`=$zDgV`hIv)?Ket03?wTmr|Qr!8A9c-HDX~_ z1l?Yv)})8aZGHCA5a%Kg+ILqOs01l>D?;m4{= z3%53+M`zruElHba3)8e_Y#ne}qS5OoW@lZ=|NTsU6*pEoT640Zu(^nS29>?B$TkyQ z1=+gF<}9{U8?&FITDImfWhcwEl~=BHJWF8Pb}9cZ;cUy#PcDe8Io_ggf1b`38K_J< z*xKmn#%9H1?7lM7G>Ys#WR%rFO6Qu+W%1K z0oPlLL>sfzCSGB@-r}3Z`)ZU+><-;V`m8s&+v9^)cbEcru#a2sV-&d zVF9p-6|$d{$0yNzSM4?FHCcF@a&r+L(&E)!T8H4)LEpoRHrCzhZbY(PHPYgn?#hzP z^M)6bIqMk}_y(zmumvGAW*@n2c? zudstTOSE;Vzb;=<_5IKG1zfvSSM!U_h+6ay*>@Cb~@Lj~X@ z*fR-fI1DPMEjC@T`E)t;#WnyNzkp}oIhI{Lf`wQNz5uEb48X?U&hZ?yjyC`se{(%t zjTLugR@vHc2p7TYUvo|>zc678Rt_pTmp z_*%zwEYE@O-I%8p!?FmnQ2>;VPR>4{Vd1)2YxPlXhD{rv(3BG~*i$GWL8_x&cMy&} zO$@LLZf>E=2?)uQ4HD&akIS~qD|jY${aJ^Qv`*|f#xWQ!Fhh3DDOUl_a13utY5@&m z3VY@_;$N5=C{f0gh#cbt9I)BkKx9sr`)vO97u5KWkU8nIP7tA30s^Pi9vu;dPUDt2 zUYB^7jabkVzUf@z<4up|?cCm&US)@$3)--$^0~L^g1(|-=jO1KiNSFN-&e2*C|L5{ zgYd&OLDBRNoz%FKC<=2M2@EDj_aN`}Qo`Aqo*V)}w(an4stSo#R zHd64Z89;_9kwBD)Oc$%C{Vn7Cj0KQk0-Syb%t5LfdUjUrgUgxpfY2;n9mdD)=u?EQC;!?jE_3pD(ecPZ-SUO_%i(kTB4tIv* z<#N6(nGOp~Vyb6Ob5R)(A_HnZv4u)wln)df^gax$Z>r5U1@HIBF<;R3hBt+*s5cfOzp%Y>V zy_TO>^7B%D=)@S}j^u~Vj3IPT+ToGQ?#}=2cZT5NO#{bFcBB^p5WC_)AjQXi`i=RI zlHTyvIwv==3=l2_4-CU+0mqVllz&y;|2#HWyXF7>Zv;m+2$GbDf@va$C5gy)50b0UJ&+SpVxj9?58SdON>f{rW}uHCnn9Tmg>) z;CsP541gy2K>#$E`!Vna866zH%!6MAV9*t8#n?`>gVTlWe_An<#~t{3_{D$h{t7WT z9ogbzNxOge!@;XvV4)WN@P}i3p-rM}W;*2z5 z!5iYerRr(Dxx#r-oQLG;9G|axQQk4O5MxAGei7r%HAZgtq;*jw4rKl2kAU&1(f@|J zUeC+_Q=Z(EQ&d!kM=k%Md|Jnf(11>z>;gNYYmqOP%gZl+EsW-Dzx(cQ|4nlJ{lChO zw>X5gW7&}T%5XUOefeg-EaNudglgjVaOyDu1M8`l8ST68b~lwrSOm$xQPTq-NWgqZ zhMV&F%>gAS3>do&s#&o8r*34WpV%P zMYt=QygiUtcKDurqe^#%ZW=Q>eMhqp=eVIZ$ARL{_vUiq^<$IH7vJFMuSTM|%{?3v zX;^nT|1`Pgd)(w`1h;GF*YMxKUPty8qpK5H_vzMpAG-8-Mdw`;ek$RI@w5+C=te&+ z3)u-udiz8MQ8FBIu~E!%NLo>uaSjlk@O&}l zQKjw$A1*_=t^}Zlb=iVMtVZREf&p@HAyfv$*4fL*WNx_m`FTOdgQp!n&c@d~$HvJx zkuVMy@ov%SMVrswxatq9-X(s9h=R1La@S>D%paegeG}+qkU?@C=n1jwn6vqAY4=#vX)+raf>cfOjivHH3;7;v75##Wp% zWI=-U3X>6pC0LZxwh9ncalU5PR%lR;lvA#$$f~cQrwG_SAV&fHLfHJ)nLuTBL{ExX zwmAxQzX+V|2kg#9u9vWeO%Xg*i^eIvwUKglUeUyk;@|^yjYwuhivt1h{RvRSmV+lb zxR@vfc-HjoZCJ;%i;U7ibqbC6)~Fj0p$eNY^6`ZU{hjK9uE;jDJl&z|vIMUHYXgyN zTB|!L>nPVe;KH_^Ix=%bd#*Cuy2QGtK6xAjxh0!@yjzU$-F2qQLk zkC$C0Iw{o0MlJ?zk#Vc@6ESK8 z5=1>*shChysKM$-+|;zf(p6<0L2i>hWgr>}VP0S3cmO*yaiU~3v1$?N3_E`){1HmyCIn`nrOR~<4Se;a@K`@$VX+%b8eOXMr zZ-HhZ7v`-kb3+(%<%6R-@B<1IHr4BwekfO1-*Cak5J`-h9n0l1@QCVJYl!8lHa%&9KM~4U~$hO>O!T6lr9PeGDwP0?^ne=e1qv+x3&JkS`2I; z7@UBZw}-zi!F#%Wdl@@W?z$oEXmWtvL)ZXq9pWOQ$&9wIQCK@;G83Df19DNq+f=`8 zUH*N(G>3r7e~`VX07!noFKHPa$8Tgk{eN~YaF?<-*u|cB*?s@=U!^;uRe}?C{5}8n zwAt++9KV7d_u6m11;G3?YS7K@%fkbLN#N+X;se;_Hvwv-9*;sEkwONue^z~Ya7bzJ zWiasNV>zc*{UxEa>YP=p&Iyk2O4IN_64N(f;OBeuOFvbC_G+B2SL1Xj6r-HcU#LDj zBD`svZ~AFXM$7qXesf>O&>4pbG1AAE$nRTh@m8*1?!P>$R4BWC)y)v#=Y`@bhm}g@ z3ZE}u88ko-U5a;yHTYhkboAi%ph5P7GF=b7IDvx`i<%}Th(Zw-E62j(S;!%=#ZkhR z!Q$-Cay*@B$|!M+1VE7W(JRR2s6yNQM=$+n#eW|8&qM!t;6GngP83j3xFn|lQEE=pW}S*~pk*OS6dy*` zZZ9V@Oq6KPt9B~tp+JpV0;-+VScw!?`+u>PH{VeN&8zqvp^P61j&MN?-wlbMz;@Q;IulRav;S zYV$38(_W89)74@;+QBR9A7?wZXE^y2yyD;?KG+g+&5Dx^&)cJQJG7W?USO>Ffj#D4 z^h<3SuEw)ay`a(FxPWo;0T;d(S8B0B4qA^=P_TXxjL4GV+t09&VM@UXH#{nv#HlZlO?RfAxX!0O><(<2}BlfC(U)QLGQTk}1}CZNe1T)}@()c8xxg zeUhzhtBxLGah$<21q)Y$qDoA}zJAudKGx24f9^aI(PyRU7euUN%o?o~oe3tY7_lGC zx&A$E*sp9^=Ho-^nH7vD+8d$}h;p0Swd}}>wiTs>iY1w){6yVL*ey`EsJ>inW_fV2 zKRK~LvO?X?UWeBHUUbRTAfE6u^CCZIG8h-lVYh=J?T6wRo>}YlPZ%)j&0_-=*&|{v zl2jB7L=&aXoDvAoGt`6lgq-;8T71%KMbAW8OE0TK(r;TBm68{QEFiZsM4V)kB`m1r znEq&v`#O@$h?6t2qBUN|77Ow_NiV!)q#a2!CRVsLAWbS>C=)12#4VKx#b5;Yge9`5 z_#`H%C9N#P6eCQ(%#=abdT47Ur;MBQgXZ>rl|%NJ5>NoZ8iYZ{ z7poh`^bQWqDADs;*lRpx`3^_myA6WCdH3>ubh*5yhY)HwY1Y4=FL`v#F*U?o;Py{G zraPIT;P6W5C=osshtTCQ-jLKA_*V>Yd$`LoUIri#rLdJ~*$&{%n3|Rv=ov^_=j#K{ z)nJ*Q*`}m;uD;Ce#m^itYXU!G&K%__a}y(6b3Tz?QuRRW;yhr(_e+^7L%0hd<^IFM zirK8R5G@qEOq((G`+}bSpa89Sx){lck3do!UAuE-1V8*5d$~KuTL@n$9u60Mfag4A zUo83J*^>u)iI5PO#%zL_49kRq0ygr*8V)^&giGSsActD<(i$y(R0kJ5yxg5c$=+%8 zO|QYvO{5s`GucA*^qP3_Sxh@9r)a$4osh3JyJuLyP2jkKL8C{0Ydl~T3xGo`^jXd+ zNDG5HOfBI+1KJ(DMJY>FBo8cE(dv)shVYFUn^}@~z_S!at3)2rE!-KGx3q@mGWGIw zOLvwZGj;RwOfd5DOwd@K9tw4YyzuM~oYFVGwYj;aI>ouEbGL9;6ouutY!ofrVNtIz z4hwjNaao$O{FkPY#lS4Qh)#wpEE}dIu!xug;(2VR3D*7uwQhl0Jq*k)BBmrl#nEev zY;((GM9XAM$QHwdsD;J=8LN?xIJr=O+QobGy#XAx@tLaff^2fl9KA;OZ=H9a&p*yP z%ah6cZj6T$M!cD9yJfr*y_}F|fm6P0EMwTkCmdkl_o7QYQKOxzD;}`hejDosbjj4X zfk!lsQnYaOkZIdJxS{6G4$n3ZTcZv-GqNBW7#l>0)Crq2-E{8L2&doZVFi8Isr9=! zeAMs4g*5rFGZO1lDVLqmYJn0jaIY8dRLaryun_C0Y?T$J>Qq%ZI%OOwh`E4d+4HNa z2^oMDQgLPSn-@PR?wSHvQRB2a{6st1)@W5SFU|lnsz#}AoS!H5$++RAM;@`1q~mh? zcyvtX^m{i%qqhoIt4F-5?e_2G&}9c}w`RZ2Dxo|2AB^H@7C;Tap6OqgFq!Px3D-07 zOp@rryP1+%Iiim4aM(R*$QY?_E`UlqU0lf<)^4f91Wh}|^CDP&#R{{D$5NkrOvUQE zlZZ63q;gz571%Yn2#wmGJRab)d}an2dm+@_Ws{&tzCc-t@EsDklv&zkGMa+)f0)p9 zTWMf<)riWcf>|+va!siytM#d#mJ>}? zo|+G(fz`w_7`zFI{)wI!B2#7*LMnr{ox24>TnGwn^5t+$`3;tNwbkml=$Gibt|Vi+ z$^K<)E*l{^`Dt{TG^vXs6esu;A(C<)A(tLb$LqtB55s1^e*rlc)5#!~I2$@2WY2rh z%l9hpC=EG;KdIK`=yy7=nH<=<(ca+%4x5q%j*|mOJ|x4B^NNzKq`N zppGDnB2{b$bp$s0qRQa<>+W*=sTTIx(i;YrOj#c30isx)rR{FD$V_%hUwY>ln7!-N zc+STSK{cmZ8Vhv?5Y`6w^C4e+8=B6BXY=Fn1PdI8HgMCue9MJx%s$e)gXdj(5skdX zl@|jHWP{46;`}OI{<)mWKqP3B)chArs#vxdAZH~TG(j1YqK#QjL|vjrhwPFnkZKBu z1w%3P#@5uUiZ5;oY@QhN0uB!7b%{ak%##?L<6RyH*Oe83} zRdY^ahB~SUR(GQ@Z_unXf8MHDm0@Byy#u!nVy28S?c>=TxUOVMpkUi^DAur8QIbI7 zI?m)EOu8364OCd614-d|Csk;lB*-G5=NJ~HGQ^{1W}tzH1CkLlu_U8tkVAdDc8PB* z+B1Y)nFCRv3BA{V*WXz}T z{fwT2$)1^3^E27x!Ma8G5t%_;F)oiPpnqoDe7eTK}|13wVQtwiG%`w>f26yC16dNrWOkn7} zyyp=`0B&G}M#BslN?<wPsT>VHO-Ulja#Lhy-e2v*X3=MAe#4B*lkC&2LA>SDc$4g!-6=1nuU!S?}G$_pnoU~ZzyB*u*qq0dY#wGA7Q&o+{UMOGGo zR~`86PF?IQGm+4LHileRNm`mOmmg>q;gG_a{_%ABu)3wjg_A{->kccUsk&f^ONzYy z4ObSa)4QCmtd+tOltZ#BvP(8JuEk|JLkt%`o5p4ow{N^oaqT`aUg_J#a!N{O`jHC|s`h%- z59I|Ss^lff7)n}ubRdN-^@bR(HERhOx3C_gijlTCba_X1K-C$cP=*-{QRJXCGDYT3 ziHobj((zJsU@3hr0mt~o5$V$T&B9nM7>H#7Y%w>mA&e0*O~<0g<4m{K|In^wQPrTY zm>%EFmoW_w(4=X)@tBwux(fyCVxQ5oqY0Hdyqb#UmC|t=g_N zXxYP*j|QQ&%h_l=H99Lv7N2P7YFv5hL0D9Kc37y!nXE=0?z-dEk5DwFykdSxe^qUS zMWV$KV?S{cVse9?P)cFgZw#v!-^;qqqWbVT&{;Ps7VgEiM&gNr*2vJWGb@3q31Si^ zv@NExhGy{J$w%0f5=ONNVy#Fp@EodHld>K>;GmJ)WUX2|!wwKmZ=5!;HX{>asg@As z^c?qoilg0*Xs(fml%9(kT8NOQ=PnjT5#Bm#p*Yr43~__@PveLeWuxOX0Tp}h8^4L_ zR{MSOIjZ}?s@bH>$At=!!+9Tbjm|2~<$WlHERNojkmj1BRE;R9c9w9W;-XYuNJ%0e zWvzxAVrMK4ER7k&(Mau%%#s=^F-%!eG3vBf*&3eWtP-1YjJ;t@>8)wBe6bXML`NN= z*cU&U`LrF`VxmG4=3QG*T#Q|Pf$wh4&2%h54`N*(&}A7jK)8MsYn)lSH={%u99%!* z2pJ}^kEKgyD%pNQ> z)r!3>RK+d1q!*hja!2iaV#@Fim~@mHG3nx>Zem@KsyT?y0)!!}5O%M^ut{4qZnfB) ztf9S;m6OHjii%u|fC^@p*?7|i?;7)x120TTHIA;*7}rl@Evx&mT+CNqIj|&QZgQyg z$88GgL_rN95rr+d>#7~P9BFVy%Zo#e?Htg^i`u)ffx(Ij4LQuT(`gFJLh9VgisFn^ zjG#r#7G^th$E+lGEN4sTMg&+Nv|7q}TWVq;wj-t1q0Sp`sx@4_p@kwuNI}c z*=mzRTs$%&@z4RwNH|m$7EP!`gZar=is^Jnfo!RjAbi0UFerPH`A=TNGja|U);%rA zbMY+8_3`~BE@@s+$EH6)bH38z_b8X%viZ?ToP#FvA@QKi+b3ccoB}1ljH%n>9y_g1#T!ex%+A{iX~w ze3UTEk;xFrEFk2B5Vj{}-|jOKZDIQXo|b z8sf@WDvqGeUbHQcn;kMqR5E08U?+>8%?M|eB^V2lh3C!6^C7q-1{z(#5!o-G}Z8O!xE576Sh zmZG_*n&rDmSVpVOdJi^k-{Iaj&4{Db!TjVcM?H~+qHV9~5j8pTVU`(k#~LCIk|{~D zOqpOr6msLOgh&o4qLZ_b37s5LL?=@Z37HIzT0EtVSCTi*MAP^aE(vh}w-IHNR7jFZ zf{~183E($ZLBNb%ssn6(om?PKY1QEOD`cBl$;jgA zdjJdXU(o}(XsqhQe*rO4f71a_B-m6+#c`0LJX{yR+Oq0R zgkN=r!e{fMyrB?2b+nwrce2qcGehx&Bg=r#H-FSsmsuZnHR8nH-T$HPO_iWE5{<)hmj44I;AZObBuqI~r6{q}t_aV4&o zq@>!2?U|DKA`^*3B9TY{3BYU>vG<85y69BjY)PA1MpN{$dgtQNND+-mYOs!IdF^T1!~BbfIhCC{zk+OFth8r|qDY017MBwc zTvu$$ikXUeq>`2LFtXb!9v0EDa@IFnIMG?*>d2*_Qx-Ld8lR1MG22VZx)>dsepqAF zx3@j(1Z+%tq!6A|0wvvCl&aUY+Q*Hv?${hG`lK)PZQ5G_s7a$TOwYA@r95HMw9GM> zNe_fO6CB*&At-XCi_x`P`P4dknlpCxlyy;DEWT(6yTZv@LF1!(6$?=okg2`vYR*qr z8|SPkW;jJx<4bdNJ*M;$g-VFpRVjq>_bq$Lk>0p+a%>+7W{*#bnNRrWqb*?Bwu3zX}PAhydEA`@n6qfL}f6_6eF16m5(40C~-UZ%sTDqN|crM8io8XkgT5^9jaQ$tXY zU2s{|gH#@)7FQ%$mKkgUN=8s(6^b@s**{Ut!Ko=P@Fy-OkbJb%qxeA9f#8WO=BHAVfUi z%h*KAx$}y=9VgSjhO;l+akP1FYWH8AgMe3LVp!o8=|*xlSg61~P+$i<0-KvzfMBm> z2^zBalRH?n;b(*<&d(DgiR9#kEh1a`x|RsRZ52?v2{6}RZ0{t%*}TS0lar$$zd?cE z&Giz9dQi4cO(YngcR$o!6Ec>PadgvwfQM(=MtPNtxnUa_8#%E|MfQ?GUU8;@(rk!* zx-^0mQW^s?B7V$lRy0b8A2wPFt|vh*fZwOSXs+-~m%2SqiGzZ@PiNm&x^+y4r5D>( zH#U<2ceY>mX@{a+E}Cs!eZbLvIu)%(Qw*{K~kj#J=JM} zXC}!iLZI3JuGB$4as5+^Zc(M1vlIq-jOo=CuCg(a_Vy?*d!%-j#iX-HE|c+8P5a&8 z#4;UhDI@k;Hz|_xj#ZK{HN>NFs8%uPNP$}IrBel(MUK2!s(X3dreOK$^5Z873YKM| znF^}O@HKD{`%K3Pnxi9Dc*-R)?HeQ;%^*u<`&!TtBxp05U|6IRz5b3T7^d;^me=&2 zPEYSXW2NX8Q(jt#qw4UdB0+Nq{)`$W!wRhvqHiQyia68zZ>gre)UcbFK+B-8@)W2f!LJHolbSOd|$I60b$=Jmc%~Oad zXQbS&-eR7?4rHKs)3Z>TANb6A*hZy&1u@o{Zco?dxqyc0B6i-ZCk1(dno=WC!M)kE zOjSrk!3>YWrJxR(s-N%?GAO?D7L_Hv5~2_xXfvo!n0-?VMoLR?#1KI!#)hh8a=Hcq z`>))cB6H_8n-RH9Oq#pEU>FBEQFI`!1V&ib1d0f`p)-o=ldYj&*AZ=c(mU~PPe-f2 z|BvZ(+l)|ZU4(K*mAA5zb8b@xmt00et(Mn`eFjSAW)b7=r{)}6jd&PreiMz!7?3gd zzxk*DhWOdy0?q3mU&N*_J;!ctPQcRj#YO817c}4UJ$#{Ci@}^aNHf@^QN7c56O;9o zC?qQk%_3rnR+J5CA3|P4QNfN#BzMD`L(v7ZYM8kAHS`5;wg7>n)WDSN<^|3JY^zsW zty6?`O`T%wr4&_ErWJ0o<5BUdaN%&8U?imt>~NYS$lCFUU0ON6$Y{SJU(80tbu19# z)NbX02fpTWbf%tqOU#raxbpWo*-b!Wk`5*fi7C)QL5`Y{hRs0ranBGg?R4|5j9jcl zlFNNc0A}2b#o-I1af-8eS{6KC5hDgz55WcV2H&TS%MDtJ25n`-VpKPv7bxgPNM@)E z3eWYO04@5IvX$k#ejjDAjg{?1t}}|>{UADyov4p4uT6)vebgmI_E6YL(^|GZa)_~s z$x23bF)i-+^czITA*_J0V1|4D+w(%?AY_lgYX`;DMsczw`xZUf|2!y9({TCQO2;Fq z;YievEg>d~&0w_isNB;PGGg|MOO1!te^w5sU4=0OTsuWgX`BnJ!sy#VxkjW@D_qN- z(d~^1^8%11yiu3i2x%j`P*Ck;^B7s!!3G3))Zp8yTa#m4br_B}8I;gz;eo+9E=GL= zHi|!$(8GbjRgwhfTVx4?ZIF7jP@7N9Ky6LK3RI)KSjn?%mw_5l?|0YDBFtn}tUf#{ z@YS>dA+rE6#ch8a=%E(}UC74rqX8)kLQ56viVMW5mLxecg(Kbr9-L}r+00tIfRt2a zPoe=wrcJ%%O$!OiG|gp{Ic#^c`n#rQ=h;<_?JJWeYP2aVlTYmOg&PJV)Kssyq!LE5 zNfkm%c3}}-#ztcY$d9k$T}Xlz~NBlVrlS$0~i zt6j`;gwEaFr9Pl5Y|gV#$&Hwf@tJFpOl)(9;+6lw)SiBKHC1enkU`4&=vf7%iSQS}hy=t3nd7E=Xq{uJ8t_ z?zzgaEL3=gaY|?!x^AfUMz+xF@oLs>H3qutZ zY)^*$Mz4eCJX7QfPzz}`yB&DOlUDO){IubQC$d zXVhzeiDm=$EDrm9wFo9z%p#R6`lNe?#}Z5f`N@Km53u;G$aJp4?(Akk4!~SdCO#G& zYIh99WX4aV2JYqPF;H-x%&YpQ@UdhDHyET-!4FV~Z{5GJ_ihG0X$%F2cB&>RI$Wxu zrl>h1<;uvkIN6PjDux14sfrM^*qp&8)~%URJzf~Nb@?=W434Q0`Q=tinxy||q{qX? z>8O~rQCtqE$kkN}ox(11cxwNNFz{AYzv(`Cb1FK3B}L5&nvM$>^6E7@-3h;6W11o% zFB&U|9E9r)sAlq=4BZxmY}6=^QOMfn$rr+{KpQ#GN^_!LX{D-&6V$McCz06(i!dM> zLWzV!^NDz#tXQGX=LuCLOQx0+*YVc?bZrap-JW=yW|-Usz974RpA(Gvnmv6B^&jiGlXTQaCD0$rJ+YB zRLt?`+*K=$HFl-Qve90prIWT=vOtSrT;M?ckgO;ULZ{nNp)G)7j_Eq~d;t`5L^{qE z-ZN0TbS^-buf|567Tn@0;t7J9n8WfyUAl#UIGogCWW)oipgEbu54Fsew;Vi2QEgPR zzE}jBX`>pKA45#u1zvm*$?8aql1!PFS?6~MCuQ2}PRnfKzl(sxp^Uf`et&{Yc8M*R z4&V;N4=vRDQJ>TlXwk}{c==E=EZw|6nU5>>$@ z?3d(Hu6lZwuSu?43r{X+%{)7$r)POZKAN8JsJ8~+`Mnk!Q_roa7vLwTyTMwzRgw85 zw$rG(XF8y>r|jm(;-b+a_I#5?rcrf~4j2@vrY%REF-Ku1Dor`nNVK-nX;i_1q7!fs zS9)zh5+T8|j_)TmYmCqEK12I$Ucqw60o~pRlW^lAa;Fj@7p#8~hEE~a=wVyt@E}Gt zM4IEzlkvL&zd>{+Zj2&Ma%~-!l*7{v=Blfm8?2yEmQ>{*3)dH!(+0abd2KvlnjM+B}EPe2)yog|!aLef? z;ENtV({~u-G2(N2oP~0lwKPkV1}Jh;Y=RnIIDT0TmG0JEIo8-aO4&ovzQ`DXmOVWf zjaCRI{j8&R1L|9Sx{<~nba3UET?8eS#TOh`P%$)Iu)QBl-V#jL6tp%U8oFv)e6LAsd% z14$&m@0{S`b(og|A~A+ffxB1>k#9uhHC8>R3kW4e$>45uQG_k2(beGH5=nVY8McAYp#4)c8}-E^E+z+Nlwzfc6@6J0d1l zssLl}x3y+4D=6KKIY6SJSC4-W%MuGDbczb-rv^HK?$b`{Xy^kZk&N)Ld>i6>Lb3D8 zKs%F2x*^t8AzT?MqP3Oo=?*W%71k}r&^$B1o2>!>C!gP0@y)Qh%yV5KJ}pZ@X{=;R z>#)-0(dZ0^Hb-~?1jnWDfbvm$sNDxLjsZ8EGm#^rp1`4#XzE@|x^9AQyW_(>X3&4N zoZr!#&+aKbJ`aWE5Iw-FGhF!IXpA>*i+?Z*d(`ai8mcB7h32(B#9nQv1}`1wW%AMJ zn*;=oO-$GNVYnR0o9WX(-OZF+Ka=|&|u zDhc`1_NzI91{BH|dmoB-<*CTufs>MM7ghp3q6Qbj{i~A|Ii)DZp)|^5zLi&@Fio1t zp~@5&t3mdt6@x8L>of0sXpQW~TnERaI-N@T_K6&0p$-B_=**ZrU2jnYy>x-175 z!^{>Gv@5iMOj4NID>3&+l(=9*RI70@+lA$LKusENZo}K~{4XwK*#6J6_9zNaiC}Od z$U$m!#}mGDM+scDsG*T)N)HrD)&u&@q8l;HVcOO>fL2auTSF~aPRgNZZ7dS94-0wm zp_YAS@u<`9(JRU5?{6d7W-zpbT~@lWBuAEDf}wyU=j1f8z7VDf;6RxY<6$v=DQVKnR&nps0nv0-t2S2#J%60nGkvsTBMpad*i50%r;(Q1zoxH3u>;u||ZAJbBE4`)|% zC>hP+>Sei2R-O}!_;Luvgo|j{cFdBn7+P*?JBb!^mY`_{Pw5@iFrS0?q8+#KTs(yy zqEm)>B+TXNH7B$oXOI1iqBc!qL=^1Rt62&GhDSkNK$R+6Kp<=|gSgUQ81_h}f>U`V z&*|(EBSk?omd~W|dR}2BZGj5H7k)_lZXEsMrW2W^00HbSHz+ zXbtxXw18GzjfkBX#nGUl??0P}28TWB!Lb`UDa!YNat~ z9Cf;#ai<+OZj1tEQklaipMs1C@^mb3lApE+nn$p46a}48ya**IqTOuL&eddunXjI( zL~JB*0xEA`?$svBf(7od5<~!Zxk>sAY@KAPk;c$nZ*&}7wR!4aZQj|61h^N@xI^z#)~+5-mpvi+5qZh25YC(or|t+6!Nfb8PYmk1=0 zbO(c>Y7gl$u(KmG(01PD&fR(=;%__Y{$m zz=C|(bt+~_(g~3rU6R0{-|aN{AWxx{$e<-@^%{c#dUD)%M0p;LRtjB)1{IN(a*K(k za=zT3{O1|QiQ`UtSWRd5P)g0gh!!?HtgpnKRfpG7bkr0ftYGOCh_xgioFUNwaHWzRkhwKLuL7ZKA=-Hj$Rp$A zP>|~$NPZpFnza~e)8;0FwuV+xa1klS@+o;kQP}JrFq4nhT(cSVDlHG0${i$M!YAd@ zLoyEH=O9C@uKB`jn^rm5u}d{x9@94{;-Dk*s(T1t=u3CR5TDAiGs3hQCr}Iz;*B?U zEHP^O6&@roBF+*xJ{33G5-(=&Kd4|5$*1F1VnQAqMDN()9$EK@iQDECi5u)G+MTfE zMrpKPWp=@BHnZtw2VFj1L6fBN0`J}9ozL_wnR4Sx{k9}G<3w+aA@-T#Zq$LkEO*Wg zRGxv&BZaKJ1`87r1?php2I7o3NLGe+DYd|KY>X0^ipXSvDME`c=AyIvl&yBMwV*^n zW)C)KUE<0Yl*khaO2BMr$nkvn`CMI|s`T;Vt4e}S%9s(Gh$ncAGJjBsnijDLVKiigt`LW(jk-FwYAIM4jZ}MA8D18nmrUsgfZnlO|}9)k?nM zx*kUu8rCg2+);!;l7jb4scaNQf}gJSaEy=Lc}4rpJh9gX4qimR`?@`GX9?An!fwDw zvt=(ZQW`ATRsu7p2&pep97va6LJ=qGRmSw3z`UNyOZ&twQSbu1wxL0Q-4)g^R6Sn9V`doPpj-RA$j% z8loZ?H`P@vKzn@jERmHkQs(sl0qZ9eP#emgYil7v4i%9yZXjx37Q%T1EXbAas~aE%DCYcLRI~x; z_eGvAWQgR&S2(OA95|NIfXaV^afrMEWza|fxzvdyQU1dVqoz!V(^i!#9#qvP8Fp-f@oz(kAsG4o^2r6-8gV>`c((dFxZPu1 zdCzHnA{hn=99@g00}9L*vXBnB*O`Ls2?bSIO>8qAEmvpnO(P(sJG*fgFQ6mb(IdV# zavve4v)k$NYC(?x#2rM@w@fAHYyp=h@HQA|9}hP zkf1PQj8U>RU@iOM&-L10qO|HkB5nUKf2MR>M>S^x2i4k(H5_;tacR{QAE3q74K&B-P3Xg(6{JBLMa2>fc}UT>`7U<PAbbmyI7mlP}UEp1}_P5pS z<`&b#!3;0GU7+1+d*!EPXamre^V?f)?D^N5>-qUbhwgy;a(;a>zgyn^2n@W(fvo%! zkHVdQxSlmSjkD$Ta0aED0h5qe8*gT-=K1u~?4m!tU5vh7t)`#GbAF--7t2wp6_lzv zCUTG>;Z^R&bb9ys?i!DHewj(CGp<#KkjBF+rE0g0H& z-j(8!UXfN01!l7Dkp3LxIq02#Veg8QUBqf)iSE?6J>m?ZNNoSPF1mL`K8)LSlu5<+`he2kI=A5BV$&nKsqtj(RU1%bfYGj#~92Y zk~Nt@4}~F}8!Cm;waq=dxxHH~=F8RWqKUUUF&1B2vo39Ovq9^;uw8IoL3t%%z4M!k zbG)GW9kbZ0X@J9wuo|F=zu!!cudZh+7!TrMG{0PZJzv5o_O7NFFz^ZcNY{nTKQ7M~ zpT56;j|1iJ-*ZF<91&WagB!!}&MMq733)YJnRH93DxJ$JkI~vEtxAXVr6~M`_$^&DcxXRD z(ZPZ(2%p;Z(__y}F>v%9kOtf~EFHjjBa0Hcg6dRoKf>_*c?Ph_u7hwC-kY@;D4e|f z(=pvlgEmKy$7n>a*CQ0iq>m=>Ih8|&P+~l$fEit{fr%YlKui}-8@Nb7dx8l#W)25? za33jFsg=iTjBwCt)a-O7C%E&`phJ-5YWd&)JyCixLjgWbVH_hxh+HE=U{6C;$wYo| zohjX~i4Puki=e|IsJbJl^C!5C{6C@cN6{O_T`xPQ$jH#sd$($8$?3aTnJqI2!(uRz7Hyv*oCF)PNnoH*v{68Hd_MYoj>i(u zmzeM4t8usbG@Q@brF@QierC(X67yr4AqEMeoD88-Di4Vg2vQ8M-tZT7G3v zE!?zEPiSS6gEiR|5g2&)wFrFLF9g#P^`w8=rH3u@Wgs$XJyM?!tiiR4DXC>wzA+Tb zYw}5Ob4bp(Jr?Jrb4*fWNti^nJU!{P_9wifwNa+@0Y>X*8QP;%fm}KcL~K-0`z?-K z;(*s?*!*no5NGE$LpL%bj&eDi*2oqJWGF#7LcY{V^G1VqGl%Vp)pf#d!Q@R)EJp(} zAWg>jFx1)jNGpzdk^dR0fTh#emX2f7$nwE_8bS|dw1^PJG;Uj0zX3^R52LUl4@K43 zkclD^YCDSdc+#~Ab%ksjx=R*YXv9gQ$|fbyTHa3L86zE#+^ke`Fx3rWo7<@EEE=vU zP~2|D5S`7<7%-NAv4GMtsPV->Y=J6SjeVmAHqgd>JVM@WbFX}3y$~MNu~x&+DbgUj z!5U1b-MU(?z8_zoe`Gi3`BW_-on!1@V(h=2{nzu=H+BJR((3y8^!x)n5tH)#cEv0D z;kTta!r~BCuUF@^5<;AjTY-Yr(gc(RS5GxDgki%G*8^gx!q#WIr>3XatZ}RD4egS= ze~({twcbqh^okdel>ip>X6yKdvf)mWfh7CK<2Sga!duOHb9Hku|9XoxE46M8CzN(f z-oM8+l6MQNZ#BzUK0C+CJ(BJ|Oy}^UZ?L}3f~NBD`-;wlX*n^s8wz5)yn|19p;wQ& zgmZ+`WLsUifx;^T6I)0pTO40Di^CY5x09a-6aDlg9qcRr_`dQZ0z!DfM}ymZCo}BB zxXtG%B@S}8k4KzR`f)IuEzfQtITn@t+Ja|NhWGE`+pe$*H@l!uCWm5<5Hht@{gKBP zExWr{Gc>+f-b@KujR~GY`%R36vGx$r1$4Qjb9tf+eD2iqmLe3_e>|0c0M+K%5ZAn!Qfsr;OK&UtSj2#S`TG~(# zteLYZiDe~_u$UeqdGZpd*dz#1g}4ObUW}+avJjWRm%9vQZ=;}0I|X5(nil2(uC8(q zp^Qz0FprR!%Y_XFgt*k7A0Vh@5C7Gxh;X53m*;zsXc|&`nFqbdgDO9k)T!Kh?adf- z-W@e+Fq=G4rac2(7}0sVTlNtr2sosfbf>lR$#TmiS4wQPQel<w7Qy%JLpr-9vVoP#A$9_lZcCTiU~8>6KD?;?Q<`!?eZs6c z${C&us%t6htO4a$vzvqpSaH%BYqQ0m5211hWF(q29a)%a?VO@1Hgix=mmp@(J=x;k zMtQv#zDp!v^#WL}09FZM9D4gY%A%4rHcid3?dYL;X&R4ri-sIhI(e-*^wO%TbWSt$ zB%VpDngw8b`p%vghG|mE!j!7Y_mVVO@3|-s!AjXnRoT2GswoeoL9FOYJ&H!jbsi>z zEZKaOzB~o_TlpkZF04uVAjLu6i3Rd{N$F=RuasZinm~AQysyjDpM#i@9V1x z0`99(FcNGG(_v7sg}l$yY`#G>h`-gsrc@))?WTF?>74d;Xl5q!^gdoz^LcP5Vjf64 zLlTOCy!^*Ml;QNMD)Kt1yYq6l)VTh5bpg5PFqC%bN5nHX&bnjEl%CxGNUtD}7zrSM zW88tH(UIpDCJYAO8!X*GLO|q-g9Z*=U3kqEz_dJNDql}xf>F#?mX6*XcX|Fz=xU2g zr6c%KY<|(;NW&&x>_gyEzvpOah`RDdC3{nOQad9GAjIk5^Ci4s$Kwmw9mA3m>1ch@GWt|SQqGcFB@vNV&uD*a@eC_QAGcoOvj7{o05M$v9HoC~QvRsU4VzpY}r zr>0~$YBRx;4DC~MaD);@lmLwSQ%tybYW%m#e=F*5`Tyo=TKP9+p4YYCHoIqt9y6EA zBIs;PCGY_7$8vHvbJ8A?kJ3UgnOc}5VyPQh1tQ%;4YCzcJhrRdU95~sH?8U!V8}*< z8v3=(7WMurz{7+PaA8iq|RSbMRby2-?eOiRKDm^J|{E?)~I zq~^q1h^9%p!p}}Se1F*nWgAr5bIX>TK}uA`U?S*dEj1rU5vzQwV>TOgS?W_506ejq zG3)^S$OEWBMA5WEy`ToENct8X>9P!&p3+Ou@!V2@UzIYF z=~7NIUCK(POL@t3DKnX#sTaEx#-K_3OubUQ4b_#}AgE+2o2hH2s+pQ*Dw?aO=qi>$ z7`=3Il88U2F+|YU>9A^oPQAd+r^;ok0ZW%4MTKMmX?&cbO#^&CLsTPKX)0GXfa+dI zl-MRw*2<)%@I0k6h>~5MCMv)w;@j}eqo&Mi0M$Af#6%7TNUppb8B&z2?Ma=qSN|rB zHOW+#`AwZi|K1bmH8o>lvs9zLp>b*gzkc}K`*K)y!9-1z#->SAs)`cW)R=T?L;brh zxZaoPHLqk6k;zTH-uxEzVYk4f3$6tdqL#8KM^6?bcNKBuh^7o?lX2faPJSrQ>68z> zv($(3kWu-N<}8-Xp|=HiD9;L&54{2py`8=Td0wb|AWsaH4?JEDJYEhwUJg874m@5C zJYEhwUg%(|tHZv>%f83UzQ@bH$IHIQ%f83UzQ@bH$IHIQ%f83Uo>$(U$Jrh@d%ItG zIq6{uuQQ?B8z%J7i>S(;$KamF;GW0ep2y&x$KamF;GV}|-D9cl39IfgU-x*ad%V;= zUh3e5D@GSc;1v}d8du-$5^i4GRF7wf>efBB>mJ*6kL{YrcFkkE=CNJ#*sg(XX3fl* zc>9v4Y${!RJB_M&)vI};u6aDyJf3SF&sC4-DtPAA0Gg3uPEPkVPCD(q$=Ue$g$Mwb z;O0rY`LnuBgyKh0lxW7xr{V&z+B?TRB@_Gy)d00!GrgzM9VK2Xrztum zv!dZyP{jL!U^<*YZ8LKW-P%^GnU||8HDiD6;U@M z3{qVYbytKPL4n{(<46k{#rB@t0UAGDX*E}xs1Pq^>ujzxo%A7BB%J^#Nq7JdAO*=oR3#F5v;yN zstb8)NLB`_T@%G*C6EFje=kK1Zt>K|+k-XQ0wZS9N|r zw}a6H!A4mDm%mAVIxl~d*yJ}!OMa7(&gBd|;LlF$3_Re^F2iX!>7igJkY2!CAiF?R0VlqoY%%yjR*)93h&A4a2?dKS&~ppvT@ixNoc=<=pn%CdkT`xqDQ$z7Cl^~Ak48I zZYz~NGVCZOnW{t=;wlLSsfqlyiR+jEs_|5bia+BLAwj*;Cuy5b>C$KgJmk!+iVM7e zCoFdB9`A6J>gaEENtjud3=);j1&LlIOm}FZjE2s)L2u*1gLesEB zRcyXQ=>`__#SpWQ8JCr#m8c9+Qaw2$qk43doRBgR$U{PN}MzK_K7+R=`s+ z)nepXXiFC3D|L_4mF11nlX5W&o)LCZF1efRQp!fGCtC=v>vc>zZVu3=t<4Rw zIs?uvnUwaoI8CRhNFaO2-ryk+i=wCWXJh(bcUMcgREX}DX_Q_Z?BUX*AL*6>go5&& zL4&*H$C~WxS`{vX6 z&2)BA22L5*D3x)uY+00XH7y%ygZMr3fsIkKfxC1P4A8~HWj@kTrZfGz>~x`PaZwN= z+vo;fdsk?p$ks`Dgj=C*Zf4h;RCN<{Eochrpl6BcR@01}fx>cbU0q&Y&3<<>yT1N> zezOT5wyCxxVT6+9jm5epQK1U=$u4+G2+LC3KoQsC>Y}I*6e$Ji|2A5&5xy+D^D3nm zOvXHpu!$CImH`E0MXQe$w1jwZ0}I{Oy@7DoV4@V5mj>SXO?GXou<4S@U#h$>k}xWT z8MIIn6=Pi}%p0n0A+lOS#7P;wXxYGNX54|aTw!^URu?T~bcVN=33S}(j@k&cZQ{Qp z{MVqMTZ%-+|4KU)pWE!>UNP|&`ajB)%8QfK1J&mUXE55$)(BDAA`_hyKm-`%{i>}I zIUk+jmic=B`Ff*#uxm0~>%_}NfzkO=a9(DDn71u+)L+ngxD&(rGH}PamxF`yb%^{w ztmN?WRP$&4B*|d}yH6gvPyJr`urzzWe7yUxsWdoHeb^p!8}zF7n`5uYVnL3(qv~L| zO%A$1+bdubxeuGPwd3j|PBXZs8ntnNv`tEk`@LJH#lW*pS&F#%D z9(#DZbwTvt#Jw_2s=)}EmY`p)u&{Is!wa+`$8X%w=<5X?dE$#^@VUr3U&<#Aa#lLTU?3o{R^P^^d z@R2}5KBSZ?MHFy0{>AzD7iZ*OoRfcXR{q7Y=Qy*##}m{C?w@BaKu;wY`n#n!9rc81 zz1A3XO4HxJUo2_;;dA*C7Z=>V|7>nfF5h1K_4fT&ec#NNgXfj=_g6R5>${5?rOqyI zpMNS1_^pw}hu&;;jys#rZ9@P0B1$`*eRXNt>+AFpNr2sZb3GnQc+vlgSB3bk#z6tz zq>EeF$_shH3~sl?n~y*2OzC3jvVCgEdn-r0_A}-82+bkQ6fXil}%*O{AUHkn%#GQ-%bDhS;aPn&*r24_DW?qMSvLDJW`wt4XT%^k6x?-<8P@T}X4M zRX53EqD3;~jlN~dpuVIFqP~=B>KtL4HD3dZf``?Hcu?ZYY>A5r=&Gq$qt+Hf`kfP% zEJ*1E^cm0Amkm`cSI~7L@GQp-9+Ta0`P4ocq-B)HU0;3<1L?;&4mN1|4+dvig^gCk zS7>_(D_5R)8YxqT5LqaIupoKBqv0mwA#FYM1suINh5i5$Q4X*V3IxD0Uj=*3I*JnWHs!1 zIgC06IZU#LYg-{ew&@l-6tKt;g6{8H+)lA`0O#VKzR8NVo$j4|xtQKuEFYBp_G*Fr z7!*j@z4mC-c-4MZrU7HO#PY}aNeXwws!59;=RUzk%{4uF?Ps8|h3w*Fa(8os!Tw@` z@P-!?JarN!G1=3Rrsx&&8rRz58s0h-WwMmh>3S9qVPDV&ovHHhNZm{`~oFEHbJ; zt0&!ohXpKzxwnVMSObN0a3LFfh|XnFG%STU({50YrwhLNB1olMKS-_M3U+5-X4j?D z)==Fq*lP?i-Neaf9tjq`^X2WQ^J~Hf7lEv!s!lRwaPyaTP?8Ag(s6eDb-P%fTF_(ZqpEft%4TQxPLP4jVQn`js@RhZ9V_Q+BI2yQMoplQL4)+}uCf#jZv9 zY4iFDE^y=edOl@6*U;l(8!E1V+!|zH{G3lQWiHI^5SYRbJEp7o|Kg!tZ6_6fFahHe zEb6t)c!SI8sPr&hC9-2gopFWt-KkkDE%jp|G)nXk$X$(aG+-&rA9j?I#9g#G|BRO= zn7&mLZ6S~86);wxP@RoAd-`dIVn=I)NY@x@#DO z1Z&p6VGC`MMXQtLKyEcUwr`a7;e92~2U^hG$IcN-w24&}MbFhd%}#(W_+iCS+`xW) z#OlNv3Y0+=$Bu*W4PZqgPIJyhM)-1g--NtT15q$(ho~R=BE{SAaE_X-VK+lh^eeXD zR-7!o;q1TeW^@;{5+jc(k5QEBy0$D&bDYiRWaTI}p<8G^n}fN74X_DDS-gbeCJIoQ zq#9xPmM$KvqEk zx@aty5jLJ8#ZB_KvVVo>%bSbYH{vB-TF`Jb;%i&z6%(O(-kO|u5cj$??U4y+L?&ID zbNN$VtXL&Ufy1G?4)I`|#l6GZ%C^ys#ubnMDmOOX8wc+<@$CCQS`X!D##Y--jJd7byF@sd7kA ziv&+nc6eQex2kY4Ev|sV0c0zwx4jO|v?}pU{*w-bpABfWsMNz$zu%nDl!BrH&zfVK z2lpZNCVUknUK=_dwZ|h1;tSr*bk~t>w1%3jY9Fcq9{TPazcXc93Iu9mom;WwC{sGK zAIR8Cw~`O2sIiMe=>F8E`)%Ps+FDZ)C~%DDIA68L^xl#w8~{1R22wIV=YBV6Pfpuo zg`t_Z06b~}n5&fqs0;R)YMAGE*zX0o*oLb03!ZG+K|&kDyX(>HhOgQ@|LBy}0x^j| z-1-G}QD%5B8t>93u{`i>xtuR2w>*o&tUj2qJu8Ewgy{(=B zKP!L0qs3(SgXG{dIqp-o2bP|sn_=n^iVJE*YpYOL-B%(hqzjzkMZYpGikDe!7mBTh z1;w_;f;@xLJTk+FSoJLhC>$4CQmiCFrcZmo$X5Ae(M5$}@L}5AA?(ar4jkHR)%kG&P9|Ghj1sF*=}!OjC^_G_@RKoeQs@D3P0mDuEL? z8QvC#8*-dip?wo8Bn5FEl#ovd;^j8n_c3UUnU#6 z1f^;YkTvi~YKbHv6C=W?F0_DWmruQo5FVEC}xVLPG+&$%zIT+MDpUkVH(V4HVSQYLg^qhBMlH;;lq4>Jv+aVE(n$E zY(Y>R&{UlL@aNiJta6t>d@?kLv-4|OqF2)z>QJUlOpW;8ou?K7WvLAn`bSgWc}jG6 zJ!RJ}r5i$aL|{KpktKRE9ajmHpHzZgw}*(bD=QDbgXjxHCv@qZPfX^!*dIphXc=LG ze<=U`$*-P0`Sr6W|MKkbPyXApC;$D~lmGGT$^U%z&wk673HV-*9D> zXgwn;7hk(&bFmrNIlWjOU(K#BaCr50wgSV?p8N_=E0+`LzuqMPss8+O=gGg&71(Ak zb9d)AWxo6gy{NMLyFY>kprA3*Mnmt|UhnLXSumY{my1IsDN&or-6y}^EiI-c*l7~q zABYn}AZ6;H7HX9@d3v6U1eq&!Ff03*`FbSHI=!zC=b# zTk&Jo;V2`}%e%;{^6WhM)gLCGuP&}(aXz2#k66`k@+-zC zA=(m3({pUSQ49Z;Y6W(4Z&YO()a`F2RkwI02$(d(O` zS2a3?XFuJ6{J|~S9?~d%#yNA-Ibe8s$eAv_g9qv@rPVo3tFKD8^E(_YCzE%bnH?-+6Sr*hO-yT74AOlFd! z$naD7pQY~nD*`omnf7e4FhBneN+=u6L~X2iLQRPl>Pq=k6b86YB6_9j96LIZTpZow z5rSkKhRNh&Hod-G%%(dRc-ap}<(CLHpg!O2jK_!wZDW(Mfve~|ZQQNAB~w_bR4d&a zs8Y>?vbk`dTP_!3r!pXVM==A!Ba3-Zpe= zb_V21h$KG(6r^N~D}ACFV;r4WA}D-Uv^Gv7(l5H#@f8B1-}G^pgU$zst%F4$=Qo2a z(n`&DNK)GpNNK(+QI9;Kh-(VH9&~sS+DjvR!oiVpgJzNjjV{)6X==zAcyFTD7~pG& zH#1ih52Q9Hkz#Z?fRrXdf>p{69!TbUM@YF}+WcIOF1FO|<8f!h!9;@6WUM!S`SwU6m@OSXIHV3ZNPA&As7fN=_M`Q>K?Zkh6MCbQ=J>7r>=Lz+O~IU&5Pnyy?j7#Es2}XXs3Kx| z|L~x+U)!s_cu}ey0Jc}E)~l7nn$6d1_b4AG4+t1^HmBLAdy0AcPycLTB8ZbtF^&f4 z1ukb{wRBK-*sG)A+33WGM>x!s&-DUGL%X-n2{gh*S?8K-mTz-{6u@`&b=pwI>wE(d{={KI9CKIrngk zp2LV8NZ+%Z&v=a6M{sk(1Y?oQWv+j2H0ZpouAL_3rSTS|e)P|-UD_NCJaqpWORtl9 zjh>W>YGmODdr7!q9<}`$TOW><0S>=(aUL8xcF*GkI5>JWpRVXYfmYPX>wXuvgVWX5 zKVuttj4np|z6H>dK=rMc1UM2R)sh{*#X%l^mX?Hp1$LGRF5dP}1QntAw3>*pg~WTE z(~gdTOw!7r`LwXvZFz%xW@9Qh!SZq53_D=z2)7`d;hAXEZP?@e1R-FqVh+!z#zDj} zu?YeKLV^XTK2193W-E(^kZsSbMF?y1W6n1oN)w%?qR@(Ip>sBW)&~aH^5r3KL3cBL zJ?bgmNoQyr;Pa2v(y3NSB9$gAp(KpF7jgLL98);cF*y@PbPCt#73o$A$EPyvce_x{ zH*}@ku-)nxQ7gjrsq*w}4R0wNpGvRa;#inosNoi1@kb{(!t}GTXX)OS#VPraVH>Pb z&wzWV9UQ#(C+T|_U`}nT7vNYv`K+v}ISe0LN7!H%`sC>B__$4TL(|ObkxOrQI{Cw& z>w9h*BeG$Kla6*3lJ;@@!V$$pw*bNuob+Dx;EyC(Ok??!dX1kc#;Aua*ABgckfxNz zvXn+0kQlt93JNiaREvpdt+&u;YzuIw)D0#wr4dT{oGJ{D?aU%m0%}V%Ix%d#fsNo( zs+x)*kVmp~FyW_n9cWzC+bEH!awwLDIBgqcj$k$y>kaQQ(`zAQTEoOxD|zCoC{0V&j)yN9lgUXSiMX(bkGQHb8DxQ zjKL6xB#oxaE}cWMG+23%{TKm+xR&Xy=wl&BEjZAm-gj6%yj*@PX?kODtpdy_EljDt zjIpXOBdiw*tQQg1VFK$Ap;V_4=0O7UAi~;DU6WJ)ju)DZ3)9)mN&4w>;-Db70WwQhhNmTJVgS8?JrWN6I~la*HI zOnTJ`sI9Dlnfp@nxdV)d0u9uI{-{IFjgY1(K!T&ZnA?v#2--lTdLUcZEQU}PHxv|K z&=VEq)At7#Q$&QbhDxHkK8Yy5r(;@;;;JUFB1$Az6^fJK!U3av=t3XtCu_1z=|5dvW>j;O*o4qIrJCG8O!SyNF77G0nCgMXWNLw{0 zrfl!JZ7mv?O5R5-g*e4Z^&VNB!^j-A(A;VVfC?AdnShoYGFxp%LBM;p&XqU&68Nx5 zUhl?okOPH9c|c#r`AiO?M~i?%TRe>clWyZ3MhxavFNFl{p2t$7NQy%5XqX4S8sHK; z+vvi%q=LPTXC8Sn^rfhBED{@QYYTQZp+#I9T3PO$iO!*9YEGP{v&eGEN9ndtUyV;> zdkOB-2$pZX(L^dLGKo|?-O4*wti;5V{Fa=^bl|0_O{Dx~4qxN}#B$4Scf%NmKu?^c zi_l7WAn}%mQeCr9%VE03e0gMX)==?fl%_&l+J$yZQI#9vaFszdT8pN|qShG~z%HaB-RGmwgMz4Q`IjT`E)q-jvKbBlH)mnfdmq`pCYu9%*(!lOi=L^9*&wF>Lgs()jxZ6qUEk~rqUE^I;(1= zL@_ad88Vt>s)63z!YzV>M$?aQO2VxM7^qSXr~uYSv@06U+1H^)G>!i~K@1l52F?Zp zM8AnnV+bbkB5G#4XmZ4_gX56{+94l!p$mp$7Izb>n8~`Z6YK-G#VYARM z5016|b#US`%XJPlqN$fBu^mM>HViuhbwOxYbP6q^g$X@oOUE5=>S5&QfTcJIrUFq_ zu(&B0tEkC?v8>hQwA&1jOW1`Gtl-YwuIZfsLHC{*AgXeP_ zQ6x&Y6bw$(1Qc^bU8A@)6IfR8oZHg(rR%{W{yb>JnLd1H578BKSb!ZpKQ+UPVUKz0jbiWeo2`=iBYC84){AG%{H`g0w47Abo z!$=nmpj53L26fgA5TZBl}k|7ESsGl>R%Ry`o^`@X=LOFLBD$Vr-#suV% zEFFX<3aaKZDb~jm*5iZ7t^S>)9KSs9q@6~7~!_|YVBDWOQR=! z6SLE9Ju7p#1`f;Xtt?!=T|fb+W!Dqf+2L~)yXAj<{jZ3E_k$|wbOQy5bMrTFiyH3V zq8$x{o4-X+_NK_#yx0Jl&X45rXf>XfqOgL)yV7VL#}++wnc*hNh-p+4TA9y*Ll=D$ z>!^`28%yKUZUWO>oHpuHBJslQrnCJHzoA=2T6JMYcuYk~gCpk$}@JgBaa>mY_`}Zn4k| zrtbAUya9xp(cZF|bWLHf5ZQ~X<&234kP~%_TEGw*Vg`*P1H+!t3IkZvSqjlyH<4(+ zuy~7=T{5y+L+JQlb*eF)Z+ap$D`E?jU(quIEMtI_pM@Cu$Z{NFzHmZ9xN<@}x(njc9PaRCFZ` zm05<8W2F>IKq$) zw1-75PQKYH2bPWslq>d?3JC2z7NKl6+g9F>rP`IOYH#0gFSFXTm3qJ2&q-UYB5&H= zUS?&q9XnYGZAT{CXSb`>i>#2hq?7HjTUG0Y>#IQ@+mfAZU)_?Fp&{bJBiD)oRX=Jcx|5A%SjhDIwSH52NGE$iwJl?Z}q(a*FscezG=XOMV_nqpMD% zAEG|htoqo&<9?Hr>Lck>)#=lN>iI}&P< z9#pBvGDNur+wElYNcy*t724V15ba&; zN1&Y@S_SP*+BIw1wxpA_Z5|!Dlc|-ygud3GKQHOe3;ek_pkMp+XOI5W=}(RRROwFz zf132Ucg&B#;0X*q4P;M8tG8j0Y*X|ZYciPw#&xGYDc}{?`>Uw32_8GxZC%~|_0??t zdA3@9e>Gd-3FFljy_7=tw*IzU1pVC~>9*MZrOkqeQs=vP#K4fV<@<-8=y?HpK7ig! zq8Ab>-&B|eMQ5o0aiR+3FiARwLWOz+i5%DA(nPd{OT+;3_j2W14Hx1cUeXd2u9rQW zLak7G^#b1nJxBKd4mv*!9{oAzzf)M1$~SaD!1!miQvPT8pQs+*g7{6@)ed)J;USpc zm?ug2&4?!6RQban1k%abtG0UnMP2R8zD{J@-bj)8QWBJ1-jzj z7?SM~awD>^u2h7(i2T}f*RI0@%!$@-6Qn6N_~@FcQ5WX=|uM-oL{3Aed1n( zAEBRAA46l-EVgYiOAAynzu5Lb(TUZ!V9vIAFRuPlCgxtpJOat(!(SgLx!NYf#J#k6 z6Qj6hIIV2CjG6Kp;ZLwxfQp5iSyay^(J}p zQ#{GtoL|sZiwCQGyTt!!cM4D2|M8FI>Very*)9M3ztbn|8@5*dMSbq+PduItDD6^U zbLQ9d9%F0vWnY&dQG=B4v!l+!mWcFusw(y9}y?f z9yV~NMgozZJwfb10-_Zt18ugR%ss*&<~guSH8W( z6c!sWNUD6Bs!c;qKfv4_n~qpXK>CM&{`05%KaqI*dAhv76N#fHJ&881iu+W&7dk#n z>KdohH#jC!#U$Vslps^h;ppoc%{_|yxJOYwiSl6*y@-M&{miN2&Xp{$TVcjG0%=|v z;Eik;^|RC7!oI)lCGZIEF!HmAJ54f5VL$m_)BRdAi)Jmhtv!}Ue2KB>hq?rg#R zJC$#Z^&(7WS|^=krgarhWl!4)U)Lrf{@VH; zx9IlDalhGTt6Hg5rt7L4XZf&wmhvXc$CikM#Y$y$@?ypnIQM-9YPdjiQtnRI2DL`LGeb9e{JE`cgN=3iE zj(@LzRBP*+E;LF10oNk1N*T>{*KI4by zbL&%b=B=GWqqdWA1+y(BK$m9ZVD4S~)STa}X5Ut&GfcY5Pn+kkeJ0LGh-NBpDcv$Yv=YPFh@RI$2W8o<-Qs<$c-Puj)hn>5d+pCW^ zvy1Ze{O04c@`R>4<)_ceLHgI}r}O1xCDJKDd{XvZ6djbjaRC9j;8RiOS#bI3FT;HK z>F(y@2-pigiCZGq9pLizQ&JO}FuVbIZ<4b=!65GAG-4bmy+@`|l0+N+ya^=3X%~`I zKh-*g5}VY>RC4naiKkG%<{SNa@-uy@kJhNkAFQMp=UVh~j+~|KPof7Rk>nF@(5H|B zqC69VKsS!i60$(o4vG2V0QE>B(PNVPlLJQvix-U{o>9ehKas7|*6QMGW3^g#E}$b#wq%PB zl%Szg{zzK0z=%!fH@7Qi*%G~$)KHet9VnZ#*t`&1W|F)jckz|%`f{$;@K7sikn;7S zb8~cuVR;!FB1=`7X;l+y?7##+D<>1Z>{Llpt?}~w=JxZ|ipLI;uNslW3d-VYKAPQJ z45n8?{FI_uRg|V5C<%@5arFs!DJsL+^oydRB}@sLh-2sjrD{6S;GwEL38_CTuWwll zZE-d$mSkJ$arE|Y!`b=8Y{?_3V|4mSC6nUW)Qhj9)%j{B69&uqYCfG`Bh6|SjnSqB zpuNka^2S51YJ1Cc@n@z=G(LMZiiI2x?2(e?ct{o+m5|FFR47TzbRZlcS{3)E zrGO7?GO9my&Zcan*cPa=64KeYnM^^dN6^j%9@L?=p*Q8_N2S)R$3}irm3ABR5;SEn zjA5vXHSpKt$0gJ+_GftCh>j4Py7aUDUWiUGB_ zHmSBRCGHM}l@}o_BeU?KolJ zbdnv(z0t<`P23TL>y#dR0!>k$JUKLjt^V-3o`Km!r5P%BkZ3=ZF)EbWFJC<5>zRGi z+&b~qa;~S+x=Wbh!Qd&2?V;(cYA4ml^U^e)XlmmcOh4JgjCgVbPCA_}Bai><=q3l3 zL}J)Wpr=xY*Yyd@CMy#YQ-WmYKT~IIZKxc|;mQ-e!jA9Lpu1#f`iumYKd~;L6jE>! zWpN$$zfv96=gah2Rt0NqT_vXMbz}{??MjLvueVs3a;|Jey>z1(w&;wQY^L=EDGZyz zcpR#ip&afiw`f08XX9eXTAQ>CJGL_RM_eB1lPpeuuc55#7kk1aDZ{a?g6pp~DJ<5E zI>XuRZ24t&Ax9#URs(Gw>CNgNoK3y_ml1%P>#6om%=`2Lt#)0XddomqJW%go>pUV~J^i&`{X1 z<^1Aq%B&F%*5;p;pZp5{{dfHLKk(oG#DBlWfB%C2{u>VJv%|+@3@wc;OZ=BS-V!Zb z@DQJLDXPcyeMo5LNgbL6;LDW4wQ~7*1fu2*$Nxop+wdShr^#Dk1AVc5ZoYnjI-=JKXMWO zYxMngHT$e{yhkj?kJwKUaMHKyJh(NxJiohMT| z@{5-=u0|;pPMQAx{bD))xIF({zP!4g-M;^PHC@hc=a;MU?Zsbj-+#TjxtM>wegEa) zdFA~5)y?$!?qWu%n3T`25kYi60*mGCrxkLWdCy>Uf`?o1sILg|v1z5#-bridRx!K0 zib!jU$ES@}3rp8PZMVk*yy8Qt^nR^a^gPKRVBoe8^@bj;S1Vh|&tWoA4Vk>grcs=O zmafw|8l1x~8_1KvXy6kfuHUG2Eokjx^l3(SXndRv=2yJQ6BocaVj_*LiQuh^xJqxp zcp{nVgXBYUuo^5&E|XLL#x1dTrKaWt1^v1 zXr$VHtyHV-muh&ovijl${@W{6_bR2@;X!E!ao>Xxba&hsj^A_;BKd|M;KM~nm}s1~ zdZSnDs18PW%&R>ye0&c%w$&ohQHA#g`t7Db#$o^a+!J(#6-KyVVLY=GTkc zzl|y2A)@l8wDYDn!E<)Q@^8yv30uLVu`E-)ZvLk8Csi_nc8ZEMJ2e+y*-e(T>j=jS zXpc_%Z#JiVe2s7!k0M3uMG~S1>&OvAtdJB60&Yz04TfL$I>o{G)bLtFquV6arf1YB zUJ3sXS5HW+PN6b>F1#y>);#Mf4nlm2qw(?4qqj6{4jpX5XH#qLIZ$`iTj18~8HR!Btlv=EHw&)GY)%{tO$oN5V zP*1NosNc>GITgD*n8-xc?wrCBXy4u!nO|Q?vkK`Yn-H3SxJ=yf$plqPQV;6-JXJ{~ zNBw>`Qh`wm_hR;6_1dEmYh=`+7rk5GBvc{J953U>5iJ4Xh0at*=D@p12N0>=8J!fH z6NeMXo>W_yifY{T(bSO8sNJQ`AJxvwjLtup->!OyNJAg8Ljt|!I8vrL(POW){r4!r z45TQ57io(lZZ5u(0lxLCM8SQL(6rvt(u&m@498=v-XS28Mknm&f4`oY{*uz$ppRGM z!LTtHbSdIDp-{*iaCLU7PAtVXHc-Y&Yzp`V^ik)iix*@u22iz72~Q3csBlWA%?8dp zbrCGz?b9p7310aKi7&xn8=YZnPgcbBtHfiD?>?kUiq&sZnNXmo&m*k_q`Rb4H4fDE zGxEFDZI#zk5Y`JXb5gfdcaf_8YtQ$gVcw%cop3NZog8%Pdwx-Y-Ppg<3kO0S&#uJ-cfnf_I&;1?}a%$BR~yjX#Y0+%za zuX>5Jf`Rp3f2K?xH$VTH08|wqT49KZgqdlr;HNN=iu%c1cN(xk8SI^>0gUqHV91B2 zyTz5IxGOcz2bkF;rfW@qDw{7hQa_bxv?+i3iU_OoB_ex~fT3+n-Ld?sgLt*`n<+Bg z-QWZ!?h-xeU}OLQGu@xcFjc%40iRhV{IlFT>-F9ta2;Wt2s!mon&%6Oeff!J>g5}1 zid#pRM%wZXR>_yV%p`J(w2*$y<&P%(<;CK5f!bJ!P**BHU9e~M6Ye?nS*`z6POZF@ z7nj&uxW4{yKK<)YzoZ~(!=_k{8e@Aga>n~fvGGetF>I;^9ta;}R)?9W*H|_^of?yQ zU5`m1Ey&JTZjF`Hg1T2CYc0y^FG1?8w3il^QH`?3DWTCZ1H6v1H&7d51l6iNt-I2Ct;{GZwWJ{^8n)3wi!G4Zmj8hMK(*AsqyUd;u?bjI=dMI zs5HAER$gE;bbhxalNVYDXKS`If-q8&gR9jwi0g$nGA~$vz!)_pEZQO{U&9cef2L1= zP0lk#%7{K)ATo~bsV2kyFbQev^2-RQ(6}l2nDXx{9#|@2sZ-+l{qKe2S^E9&DPUMn z5=wfD8u2b_cSCQoFWNU>u9owg&ycScZ+G@(=3;4EOT=z2>3(nxo_;_?G3Cv znSVgMS(}CSb};&n`3G#pFVAU|Cz$>4P@wA{aboC}FwAd=ClNjnL_AI>dr=DPlNa_k z#qkejhxVc=443^utSbgsIDkR*F$k~EukU6d&c0^bAn|1s0iFHd|2|BaR8wgP{R;Uc(lK7O5!Bc%jLz?FwOplplsh%vgl&C|)ZptKpZ^Tww3S5*| zZo?(=Qn-_~7Bh;BQO0YahMUC{ra~k?tntivY@6N_BDJFF-iac&Y7SG9$`lo24YN{T zj-uMKYJt|qMVP9vyW*8lToY-#VydRCm>@^LkPdU;8*B}GMa~~7;!$};vgc?Xt?2mV zTta{*CnjL3w_|zY6i=690b)Yu;3rjDsmX%u=3@>;YI~N>8>{nK6sh@nBsYX=i^gK; z4vY_G{Zm_AToKd22HFVbO$Ta~EUZ7^%L4%F^U4dw?*^@)ye?-d4K>&{!=<6(T1WC` z3p0$sjO7>sC}c#nXod^CofUGyp+Ny>Xy747NV*kp)a55_B5JxPgZ69sXd&@1>b!}2yetNi_sM(T+?7F zD;fyiav2~p+f6xxF{oORRF5^jFHVfi&9OqZ5E_er$4F{UbL~xl;2bj*-PzN|R4_#i z&Mrcs!=tcxRpoVuZbIU&T;rDR2PwlK!F6d5;J3675-sfk{7&nG&{eU7Ab24|6Q_hI zY3{0d?yAzb_~m(e=!5J)I+!n4x>ePA97+fqYr|I4Bcdewe^|T&duU(MTut8@xi5Nl>Xf+ z#1TnuLa!3_wB97EXpTFwu*#SPcGe1Ky{trM2_%{Lq^@LJ&kUA2!F4kOFioMP)SKf> zs^9CM;;+u}- zC08OWKliAUvB5;2mC}@9Th3AsWMUeORX)mI%!+rf-?a(0{*Az-QT|PT*eWk@O@kt+Ld!94PZCKgtV*Q6G$&UCFAY$;k2PvL5;-QZR1!HAmJ?16h4y*W^eikQu6vw9%c`5_&&feM z_IXiggs5Zd^vU=gZsc{YomU@;v$h09X+Yf{W>C8`KhM5v7fv}$;#(O?UcUB5mcae+ zKHWqvmrq+dJLjexVM*ENj3KtSFMm(veUyG8vHiJsQmil~w{YOH_* z@wuLR=a&T~ug@yV3BOYk1eHUPFV0;IRXSrPjb@wbRBJXqtbDj&^XzR{KBj+ug3`KekM z!z}nSRZ;6qqAD>!@ftE@HCB|5l_>cYu0$nDQA<<=NSC52Du~i@pIFHv{qhC10bhYa z$28WJx`u!;4cO}Dn^uypw{4)C7purklB`IP4rMj_afhx*Zz3H~HM3DHEbLbAevZ(7H&(zZWry|%U$38_jwe?-DY z9DXJ5wcr&n9ek2%Jx(2*TR=PY+Ksb9&;Fon$`H9+k|Foo6(Dw)loDNhZQ&k-)r?OJ znIyee%xNh-uq@@;&6p--IlVn6wrh^HK&ZhdF|HMpiL?+0FvXIU@tk-%J8RAt-&Mf9 zU^d5^D%yj(mh_SZFUd@XH9ck4y|Ov~{23uKP>!ulgRw2gSIgTK42-6DI>&FfXhnc^ z#Do4Bd?som>KY)crrff?^(BzZiv<+$kswLhVdj2j_epGnnF8$m(Bh;rifyZGM&5i< z^B~>mVQ19?dc+l#sQRjkqSEO`gFO>|lVl`z^88f2Lf|Ea(`^CtcT?1CT!N#ix&ZonK2cr@Q3#t?ux)e>LQC)x7$_xv1gd(ThLvV}6Cf_TMB ziKY%`0JEigqd8NRfCV3O7R;(^fav@S>(WJ8$ zgb(>UD%w+Dhv{VD(vn4kJ|g@3!=5vB-k0}bN*9T;<}%qm(o&(;T1>(elKA6&gO|Z&SQWll2#=w)!qjmMv1LXbuTg4e)|W_rHTr%Y(%7 z*zf?36PfHW;{gJG4g!AgE&0J`il2iVKL@T^d@{nY`hb9+{eT~QOMHB$_}S0#v!CW? zKPMm1_uFeP;0NE5AAF|x*~{^>m*!_L#}DZH{Lla_8Nhe&nc}COwqK(f*=TzAn3`$cPUx#D#>~mxs+jYQ%9DPll4u zr%JMZsvzs9N^VuvK@ankR{l0`2F-y9*#z*-aI;_vuWW{!2h$Rj&ET0Z$xGU!0PtkF z$uP}VNtT-q(-M_rRn_5@NPDX_Xi=_HZj@LC20;SGsRyB7lbaWnKj!0{!)Xctlg9T?6m zLTvzYNMu|oS>*||k=mF|hpS0U!VO5e>UOrdyP7Pmz%_;Bv9HZC*0DKj5*kZe-Qr|d zu0y79zFe7rK;9gOa$l`1(~D3G2n1b#E!X|2t46afX4Ctd-e$2tt&?$9ilW&fIfLR5 zg^!{$@MM9D<2W9Hk6&yJS95_|ftT?1O$!h-g>X!c^U3mbdcVojx{vpcos71-oZ@0M z-}hZrv_N{{a*@^}K9Ct~vVNQ|KSN^Zc5s>odOo$j;OsMN0pP!u!VwpGnf1!)WIP>K zP|0a@+M1UcexY~(vkhHot|~kHQcm0OOF3HM1d31$_}UZG#)atBq%xr$iX4p$;g>e z>~k>H@QwL|FC0B)(4^#evKlR?e4)v*UD0WIQErE;)nuLNfuq$WBH&xeqm`&n2k6nD z<19NA2j__6s<+>t^m~W|4@0}(LeNRF5F1U}@*6acPAT>o3_!#p%1eBtXZ^k*KLv14 zvlFBQ@kQ%Tm+gyImO0Y$EF`f#I_ZQqAY@G;qcAc%p50xy1jw}<8%y%u{)Sri7ly@`5HB~+ae?}IioQb zvrd*CiWeq`L_AqASqDmF8e6iVnS*e9i*9FqRLho&0^jxY2E8nph$e>9IXL}-aVk`W zi#$w={ia-c<)=}jFBX5Mh<-60@*4}OK>Q2(^Rgd`gQnWKSQnu)qUtQa^4cbNbfv-{Q} z87NuEgsR<2h_N=t4-}nl4Bxj6h3J8_QoI)ghX9!+F!U|d8t5ejhYTi>u1)4LCo;oX z3`VrFe_W(4rm1sMSwRrwhLrf^<*Z}_sK{Xk$NF>?XhXV~DAwjW;Vt9x+|ce(A%RuYY>|?$z7ZKhf9D%jDaa*i84| z)?OjL`%m;^=cWFPc{WqTfj{^O{~{7I{f$XN{bk2h*GVetNM2vRLZ~8yD(xY*>jiTo z{A!%ltyst=Ag_oEo>p1hgr1I(y3a)PSw4vtpqD?|XpZb^M`F&t07 z6g{>iC&$Zqp~c|-3t1Hu_(&}cdR%NP7dc1s79BSKRT?^E61)FNHK z-w_9_q}1;z3^-m(&AWqh zO!)D4Z+df|mnQ7HjEU|hCaz}n!O=z{h($OPbG$?xsLB24YX-OM!ieAv2VQX4EB)O0 zVZiIW7k`$&#Mr;qeCl*bY13sPg%+PkqCbT+>^&d}|4K?0UW3{gt4ONO6GFWi*y_yS zTA_q(L;#7{C=Ds0O|fsqWq^PrJSU-a?n1t2h(L&tVG+cv^WW2@`=afpdvM1vD}b2d z@}WW!Vt*&ha|p~bNnqi$`v2YpcJSR&t*fZ)C&p-6n1fEc0(Bb&YhQK3leKv6i-hc*&u#&vaPtS(^t4uB`XMy_y7l>2}pX35M_t^_$7 zC8Zir!PNT@EL9(WHB{&)z=Ia~tBq`(QbKuTVeP^4jP}ul!(E`N*2An457Zh|Fr|X1 zroy-ADE%P0lF3w+k$#JKc@Bljik%ZC$5bl`+FT`-LE|vg)a`$>1_mV~Wt?&-a@tt{ z+7{pvPP>At9-f0Bj*^mAl+>5A7P$Co{urj8Sp2nA)0ZSTvbw;;!MAS1=hQrUc*Rj!YTN;({1!&{sc{g z=uqyp`Zs$69LoYlU>ohi&n8oZuN}xqCT!l$QTOt&gGlL>DBzyD9R<G01OW zkcVMVuJcp-jn)O@^YzjOzRrc{0Q-sGY;~20M2Sh06^ly35`L_gU@{Jdn4z-Ra93I^ zmZ-x6vIu`(*3q77A8rW61xCTQueFLTn9Gu^Hf9QwU?lAhutK{=6qS{PZ_{s@Y#Dv3cpSg_=R82j{8OhEmJz5eLEq~ zKbsAe7z*;fwGm=0?ef|>_EDHfPp_JB%VY2nA3P+D*g{odsFq5_^NLclq;?zO71**| z2|q-;6yz$X2kU#6t9dh~8V0@P2&O`b8gN8=8g!0*c5TmWej+f$JTP8KD2~Fi z+P7gS$dl(mszd#D1q>04GM|_D1(0eoe37P(ip=Lt@mBP2TA)PKe1-v!c{ffxXLyL@ zTj^=nahBP5`hfES!creJ_VvdBWI!;}zb^t9GX_1Efslui|7dbQznk7OB%v&9>O1qr zY*y{8K%kLS$Y3eRX@*lFS3pyMmzHKsOh5^%Vq!r)xDp{86K8Hr2Y~PTgc;G44k%Jl zV2$l`O_}5tX!aFU7AUkMEhRmVw$2i z2fL|43zD~LEtq(RICkVym>n`m=%k8VTHqD*BJ8`Xg(Z~B7qwU6Mjhx**~%h=_n^08 zdQpSxEr+z0Lm{)g3{1W1OfOm&^X_mi(<{WOxe6XN}p3?-)yQKmNEKlcC zKGOi+3n_qEuFINoyw9P?SCTcA`lmWM@1?Xd;qMFU-)cN~8&asJ>P!Mf@P3uk$X}!I z5#E6WUGWvx2mF{dr#30pl?=4q--n&F?sa3i9De;PwyNfv`}O>q0;gd=c);L16X-~@ zWf@-7$QR=t8`OA-BjStm2g@3x)}u-CE=T)_KzI1EyGtjyyvWm8ahEz?Y!pii-);`u zwey?Z-CfPU8`;F{Q{-G}K!&}E2lB!ikjwTR0`M#ci1dn=m6o;Yr20T!Us}p=-vL{T z$7#~T)(n*;2k;#R=>b`b^>TncmcatPR@e}nMOt!5Bq7^=dlMVYY(g~G19Wq`_xM`o zIoamQ6VsQCuv2-E=h!dSu@^(ehM8AyWQaB%OymKt+FZRP$j+<1 zpZ}HKawoNg=QDQ)gONzm;C3>DGZCH-#yhDZpEXKWJUjG!s(c1y3_*_Z91fSu`+4|| zzvC8`NYaa)9|--+|1%o{+34T@vY@B2hIjRAoT#pxm&j`TdG(h^yqrCMT>a(Y?H~7s z<|DGX|9t;=59f|{a|U!G#~X zSAT2ZI%9E1f>n|U0%Dn76!2G~C!JixM+Tior(wz(s|5)wzjK94 zGW4u`d0|s{q>gE&Ko&T~D1b9~zlmm$!zb=GtVgv*@6%ax(CgzR^`rLXDbjlD8@wb} zfq6Z=ad>{LGC{W+K*>XR zb#HVPe&F@TD~$;V`O6R^nqrDp#nRXzTF4m?!XHbQ*()`GK*cvyB|`jk4P_{$?MBRV ziLFNUTw>bfXBLjJsuy+h{K0o%JBrv z>}4lleiBzIerylr|wRX z6oj9ds)({wQh;3ENeHWA_bqjYdK^4MRTQ*@M_f~`hJe(8{&5QAnRuT&Kr?+vYLFwP zK3R=%;JL~~C=#8woiop+z1_oh53b?_>5{o@3AbrH+&OjzF6&-um!urjq|uu5AOwfh z?^hx=B%#n7Y-LO!%Os9gVL?EQ9hu&*;EoBl)bJwMcuE3oac!xrf*;W&Z40J;Ny>K{j5O{F^(eOI$dW7sN|Bh%RcI+oXAQ~= zic&n!B|`+6o$7oR+Ur0NrQo?p{FT$W_F># zWj;B=?n7A{k?;+*KPPjjTeF@Vw)>}z^NQLf@f#?3Zh=6B&z`S-%h*v^B0o))~@~bT)&jdt{W7wt8w0sUo<{%H*0J%-_x;-6acWXfDt0mIvBoMFE^ug9V_thl8tYQ zw$sEp+;TocJwCa=9F9KYI$BKSdV%z)**!(5+)f8ODA+Gm~_Wrc@J_n^z%W*zPm@FH8a2}P$u=S5UQbz!# zcC%k&NbAgiwfA_!v3vNRcrqObIrV*~d)VmIm>ffer}yml;PMR5tJ7nAr|qN8!0}*! zYuvAl3lX&-7PT+G&l{aqALD)yGgToxP=qvUbwj;oE#PL^@{g9(VS~jL!?tHEsr}pk zgiU_UD_3=JHKGf4BMZ~olD%VW6wPkq`O=*P_(%5<(Ng)9vi4-lggzSy%;`0BU zm~`r)q^G|izS3p0Ronmh?c2R~4&M9JGhDXXFo>~E*6BIiF`kw=m>y;Ilh0@Q z8p!Yvv9VT_FJ5_&ZZXop2V0J~Xp9NC*6d2mp@Md{qE4~-qJCIf-q<#u)hM^csX?eM zwscV_%AQ_!`t8A=+HQGi>a~4}73TC$Z6_qHU;8lT&lEu$x5FmO`{4|R$2|@SVW33H z(EH=l;c|6Lw#4<^C7i2h>*-~4P6k@o zAH+kyn-D9gu~=VBu2;1aysHZy)NkQVp5(-Cki-Pioa$L<#$jeF(x<*Hgahvh7VKj@ zEp|7YlI+!j4T$wB5VC;>zZ(O-s0E7==~As`G5Cwx`%BuKUEFM@V+2-$tvHjccp?pz zt=4tU@WYZa6d@sk3RxcEC+Q>Lb6;|(w!64?#%SXaj%~2Vr3!N$NRf!!nr%}!LI@M; zbO@TA1O5P-b~wgcG364BHvJfnW0mbbaNm>EG`FfltP((Yye?-LKI)@Rs(^ z!`kr2IxhgR>0#=Z&Y`Wk&gA|E7xd-)X)`;SOmA-EaTHFE`6>G(*X}~WA-Amn7q^oA zaJs%5E3LM-OURCvTArPqn&$hN4ORIJTRpn(Y@f#GQkl-m`pv$qU{-08s`_?~ zh_AHnZ1><|bGwA&%x|!o;8lW8h)Gh04jGbMH2yt6OQp~k`C@Hxy1H?zsYUbleulcB zev-9YL8MW?&BRLo?g9?Pp`*g`ZUJirGZZZosU_I*1#%G$9688T0LhNH7R~i?2Fz|M z=bd64e_4IBnGG}I~}q(!KARRtLWH=WD4VKz4pxU^-Lm#gym$VN2vIDfWU3Mwv){q zSP02?UB)AlD1ZJR4NXs-j+dIMWN5_*6 z&TZvnt2;ZkR2h0Mg6uFAqYdf~1ZQY5?RC4I`jzbU!D+^gi}U3d8LfkJoUn}_)h|0{ zDKt1~RxopEl+&tG@;tC5I|@I5TEI!q_zSrS!Nq^($6rlH|yK`-owboJ^_9s zKwL;KdK_q+A`gyO$dbaH$-`u3#oKoa0fd?;R`i34K9u)xF}#}2un~;$kO@vf<_TcO zBYwxa)R>{%q0)>C#KPEJWW|5^YHEYp%dhcjql`qRFqSJIEdl(asMS%J_0IUQ*gF-S zBU$f#=Zqh-&f(4vFA-O^Gi#;mkwQu)iKTbDVc%U(=huJX3 z*7XW24v7|yW0Hk@-cab6vSw!4%UPeVYf9Lm3Ybp(c=zR`-{}2Pzg-Vkp9zKwC7Pu_ z9ew7@URWO{2T1kV!VLbPWs_E8GlGx~23h^={*Yk8f+DLvx@lcZ=!Q(#A*w={)T=BW zKb}wS$JlY>!pUh8t47%bj>ib#J~Zgr^cwzz^1)35zWt9d|a;Ft#ZYq#Tm!s4{ zeYA#yy2}(D_-T#DV(n6MMm_U1z#zG6(n7~(_82;WSmuZU&ys$j z9;f>`B~)juOp0ZkmDwbELebmgFh2Qt^3`v&F;k=re2!gNf-moEk%dw`u6eMLXlkMsN>H*{~+;;r3`_)xir*#3RcUq%s0%{}?9+w5gVM zHm@-B%F5k@-b{)D0rrbXa4t1~%h$k_hr z5Mt~ZHwiZuR{VxTSsgKFf!wNHkywN^V@8%Y1mdcUCQ?1zR$JYcjqIB~d2|a#h?{J5 zm2f2@(lvfnr>gD;Hf#kVlDOi`NUrET(+qs5i?&MB60*CqF_SGx zJ?p@DIH(MK$KaC225v?S+UCJlkkZQA+p@bY+98bN2~JFOsSOa{d@tzqpgFnqnQ#O} ztn;KYC~l@^98Nx^@V7gFXInJlT^^Qo5DN1wPxBRY9<4Aky%?IKILgGjO2(+D2ue7D z&(uC}!fwKD^NVo5V!;c*V2F>duxn<<{790lEl_;nUWK$RY(8B#u_3s`Y`x|Mu~HrM zX4-m^#H;eHtk7sX*TxXFlX;UeSx@WaghuEjbAd-GJ*bV^Z1vOF1;-SsV=FOnO_&elB{uCSkOn9&@}ZnLk! zp@QZ@$Df$b6U!E9MJ}fqJUz?{LT(k4WOYkmkIX7z+5IJf{Vk8%i4 zv&;Zp{dP26EoQ^7VJ@y}pbfIru=9m=OJ{W3!tOHeZ(0kub}@{fz+X^iS&Kx*X}Nv+ z88H+5j^GAC0wmBtte9BGFgJlw;fu))ypUj%6f|qHfnW_NkmW~PKov`(xse#(t!Rv$ z#GrfPJh8ZjfgC29Y}h3-lOoHL(osPjB?jMYAty4hY)NTQ0=d>S`@h!dLP(Tq)nc9D zYJGW+z3R`+8NyCz$cHAj2;knq_faz{Bg>&2k~Gu8#!Rqhg7KU69mv3}=3IU-1j-zl zPoKLNsd!Rc9SdgWxew&AC%C)H^P!ivh)88yJ#KC*cuc($;kw^5I{j07Ra3tt z%nAHms1vM-dBXD117utvWD%^A`(VUVFNXW#p&NCE@H;zVVWqo0ah*Vi?*(GiC=183 zSenoiFnzwUC~g-4X#=mR;SH1Ur9K&=%i#~jf~3fxv~^DxT@1CW*()si=$aJG-XWT;U8ER!Q9UVCJQ>Z6@P72^YY|A=O*uTiwcoWZ+aH zO>$-SQH6C-Agr`Tp1PvVQrdD1h@JXQIHRe*cqtDl?bOZm4zTZwJ2N6*E_#}X{kym$ zzBhu+a&|YT2sYnG2wrNEC?-5?(KtN$hTW+VL{t$hK7lj_+ll4A$ zjq`nJexnxe%t7lthk|4*@-|;yb=FqSlhlcQVRF>-G(E3wZ9T-RSSh>uRaQ234B*SqvBO+3#T28!<)^vI;TB6WGT9Y&T&G;5lcw9pU&-e*Obl7N`$@f+AwdOu>aO zM@X<YH3oUV26p=AVyyLU2At|h);Sx z!*wLgVAF?5q8~zs)VYh6xLxA&U$#GTL@)G<{tV{8F@=PaL~3+Z70O^p6|q=9ql;85 zs1?w%o#)hVLF)+k7CdC%;pPqm^bY=LTPq}+srMe19w=_&N!kgVtAhfk!-a4?#h;Rh zZo{t2dB zq5;&0^Le@DU^wPIIc=R?R#Z<(-%$VavIhcU<`cOoR8E78!-7#x+$k{NIeDda&3Qua zRCmg2mb7nZKI3{ie`vqUO$!E!`4w!2M!$d2KGZu15e_m}a%VEa6p~sk20g+{rZV%z z!fgWf=9}e+F5U!;ZtC+l68w~GS))GaVJFAohzY8`vSR}fA}T4nv4al6^^pFt0ciEw zJ8!xBU&Mp;~Fi%ahgXqDwcmmGglba&$kkv zX?GQx^n4;PvNEgw31mrgdCl^%dvOHc)Ud1){tP)9Wx>lb>kb$qB7k&`Pq?zW3;jxf zqzKA%&S?vUO#c-;kjS?`AyL;{XlQY@0U#At<7GiI3Ix%t2ogY->^Wo=4WnS;2HlLc zEdMGuW|4}QwLv4ri%c>XlkFGcW^)a_@Z$tm&9jMf%-}oDF9C* zFzS2o3hfhP*#Dr(NA|wzs}Z!x46cnszAR+ykY-;Z$O}ak(Ag!SUr!bTX6grCgK;Kn zQI<=sa#u(h1D+h>ttdWkZyrLVS{EPNNBxr?_Ierq$g{0yb2Y^tNv>qI7S0PG5o}Q2;;EcX50S4i@_GM+pzklbm*;`F*@Dagu>?qR#2ysISuhoV z6+{W*IX}a*5wn@(&eP*Dkt$IenzSOyftd&|EKB&ec@)3>_yf=--gd2Ap zUqg3dX_+B?&9#$reWAxnWh*Y6+>ue>ovV!W5RcioiC!4wkY1WE{1&qv^x&9>%n(z$ zy#-!5Im7?F1zTPp@Hv{KS8Ww2dfE1EFg)=@G~c2?!wuha5a>LBB^TJ%P3EWw!(?bp zR}l-u=*HC**1fWUThLsQ4&s{I`R7k-WmqaYQv(MlYIjgU2z>6t7L0_7U4gw}COJE>qZ%Wy&Ksl&@Cubas|E`;0|F zvPgClC*2w>E;Si2yJoTqPWmjQz0Gg1gwB}Ar}2DEa*F$5SF(1uK7f%Uqnivt;F0MW zN|1+U-aR^F$tYJ5&g;aDucVpJSzmT0-rr*qa zz+!I%_2xY1GRm?~9ulO4qFWy-gkCoQ)fw@Jrbj@APmVye@#9Ar^&_1B%OF_cAmU(e zuTBRNZ{*M3mv;yiLjN&z@5_Pw*r{VBbMs~U zS+4F`=TrOmu+upECFF@16#hT1zV2DC@uB6h?tR%;`rZXPUx&X3;V+%4eBZ$ZZB*fa z^nqgclk@y^1dDtAFy$aLy!$1ZT+XxTxFzJGo+%X2L1TJ9n+9@K`ppPz9?|L2YLZy? z1#m`ymDj~zfr9VkVK#aN@k1dL*t^| zI76_U1w8@ZZXxE>5`!Aw`ZH*NhoR`5$a#Jp0n-HfFR4xY&Sqoi8>@zl1*@Yl>LPNU zAionWln<%M&h!d=nB71g~ZE*iFkR zzz8H&#ztFNiK7`QL`OpKE6VhB_G#)nV+vVcmd0F(Z7WA?xwm67ubIpHDGtv`8dlNm zY;^0vS#uK7iNFjHJ0S2smM6{I@3aqTa}h$;M<>xmT*olN2Z@Q9$Yu^E^XfMu6PJDh zp)>NE!ktLza9UvTHb$S9TBohk!`21)9WQV2SZEt3alMo71Mj~`j(5q=OwwGM9~*|#jRp5}8lsv>vQTc3kT8%Tr zZfbOT*w}2mhxN2L+T7i-yQPzuL~>b>OG^4706WDh@xvq=1Q<4#q{Se+BHd|TYfwmD=tIXy;$voj#HkXZasHvp_bd3xBh{r!Va!=TB32BjKKs!9rS%I=1TYjI ze!*1fQ0Dk-@e@m_%TS^wFb}e(;LQvK8t5)@U5pnC2@guqRf}GkB8U21Ao}S9mkzJzDzlr$@&?vgE&wDog>lV%9%b|U26e`L2Yy!WztdUw;5=%S|rk?EFmsCV=8yq^me~>s-(GM1TMwL z`NM#R()301rM|Hb+0(wH`7VW!ks**U6hI4#i5cfA2{1EgYb~5BQ!eU37Ach%{f_wJ zEb9;|&=8^31Y=xrrBXV?}WrS$s{vbEzFC_h_vOlt5}UYUb1tW3Bn9TPuQ5ffU;Q!reSSV;r@b?Ndbek9~_~kU`-fMhJ)Mw=dudr3Um)fQQ>}ei@)Vo4gvJ z6b@)R)IKiHemU!YJhN}&V58qWF@O>oDjFQZi3T1smVSbhJ9@W*;^_|Pto8_9#%uie z#pf6C^90>>5kJ#5ov>CDB=6EF-lM89^6+LyZZ#toOJYZRPb@0=>{j&BCl)@4g zT5E`{p=IUF9w;9uXZT%_(^yzmq4K*djXQ=Z;SKDhG3CTXLbMnQ&bdhie`=Reo|qJ= z$1t-3G8RqV3Q4f*#3&Ej7pbv{#Zxq#$gtazw>&w~yt;Kn;ZyW?>kDorQ}lE`ot4n% zy5oNZuJS&fE`vhw0B59xl_kyUAkQaweFmDQ zST2XO1OH^nxIrncc$A&8%!-#>x=UKx8G3!zc8C&vL|%ZwoFzuYFPid{+2Zr=HdyIa ztffjB`=r5XAC$2fjvlo)_+qDgjKZ_>AyT>o<6c;dLSd4vQpAui1zH|m$rwPFugdZy z!7cX$xusU(ak9c&GAu&23Ap+#@XA4GXJa`PZzKn{gC#lE9X}F4c@?CZ{-{*b{$D`u zPqG~HxOS+6e5@DZehN{EJqkXEIh^3>X!5XBufARwE^=CPEm2`14H)$iW!MlAL~h$C zY#b(Rp-hcy2^#PWB+1f`m)#B<#8BsTY5+IM4Fb-NI$|D;8WY_%^0U^djCvWi=0%a# z$*qqoDNqsAgza60;2CcJ*8Ma&67e&B(Wr7>e@QkzRNS7y)2KVdPKMn{0I|dlt@+$3 zZlu%kv+87PJ_?wMBO24~4;dZLY@jZ1&|l5XYE60%2uToZWkfZEUX#-*=8LgIdsUYR z!QZNo4vNXF49V3*rj5ZDv03d%kck~BR$IAXS%uP#bnHY2nusgQQ4$L(nd=GYt($2p z#t?B1#ilw*2)8`{n5`l8`E#A-ep+QhOD3Q~5IQI>wOo$mry(-oGrr!IuvIX7IVMpk zt&bGF42NiK>r7{2tC^fiJe@D-7J%TiCQ~(BZS~=0B9K8sqXY(kiCn6eFzE%=6tK`j zgs9h9kK{|_C2W$?`GOv?mbTwG8w4tp!$xUZEYFtcPrTYv+&dVj6w4`06C;8KM zv`84LkfuoZ%S{?asr9+_hNDL~l5h3HYHeYkkR+M@T0s&s(M-4kO_Q7Ss=8fRmCQ-| z5&}H6IFOM|eeB26x|mNZvre`F<)|>1VD5$k1d|*yle+_n9@Y{tRKRW&3#San)4r zSU0+X3u7nW-~*54j>GBjZ}TNQpU=<{0W!Teh*?#L7R9%4?C?$PJz1GhcWt1Gf=XaN zZZQF2jbUBW3`VoVM_x#-a8xLkha3Q@R@bLu^7*;WX=Rts^=9lj>lGb>UK>&irpZLe z+!$RoW^kLwB^J7HC}pt;7Jah3LCr7(mL{o? zq{Kl_y*`Xub~csB{}t8P445J^uQHyEXc@|LQP_4P!(lulnm|2-&A`+e8H@xq#}@L| zekpFxFMnch=a+Bg&l~w8uFx-E$(Mwe;f*=k&K(?IwE7c)?(1!m)GQzE#p~L&=0kp`reo8y*+i)hIhH;)?ey^PF~##dq+QX1Mk;Ux~g<4 zJ2?tG>YkqA^&z&;z)?D^8NlIqFd?Vh8j1{B7Z-GMSNwnF#VT+#W}<0W>;uGm;yslI zT~x{6MXgO$^Yy4T&IO=nG5wJQL(`@y0TT$(10x=i$_EANs~29mggnj|e@1Si-I0Kp zD>Dgi%v7fIC5bO&D|=TgRgVJ=#FIqR*_awEx$q7jxf=7xk8i2vjo0H?%0@El=mO4! z&PpC4A}{t z~&-(po~jJBEo|*Ak-(5 zAzdUj+C%|}wpmbyf<_4SMCHWU1W)vQgU}w%$FyVUs}*)E_%SU!o8YPmSDw;d4;Va9 zH6mBa>7lKV>9RVBOkeB73l`ST!?9eT58=^WRa({BI+4p1(v}V z%gMuZzFGAk$h0x-2teicxO|bPfFWa|;B*LIt=%Cm6-=)-Yx;B)rkOG-?*WS~L6(n8}29nW}kr`3%SsumB^;+TtBp*_n3Vk}xjVKhcE(C!$!ZA1i{B}_;WvJ3mECwGOC zx>xJ3v&rgqA~D^38_nP~b%hH!OAL8htM~?l(S*nq@YM~2%`~d3tYXwjIc~U9$*vr; zJ7*<~HHwoFdV!o`7l;RTdC^wQh+#4P5{Qkt0zkQmL9*DaC8UZQfauiJnJOC<3#K;c zM!o=_kgMCYraq4*3p^bg@?#N6esfF{%@Tx*d#Q>THpruGakjGJsituxIGlY7 zEHAua`<~t%4K3R&Rc56JamRW!zYi@G(28R-1(0BYDxQRfMF0X~@Bj-nQAA+_DKU7j z7kYez4mAj(C?hg}oyaVq61cClzf)BWi)p(4O3J)E{eBK>2BVyE2>CQniipxyNZ{R>51$DsiT2fT&DUjyV zd0pmiZh`x`3jv5K=pL+5HjqCw&vSmxs~GVD*Hh65HIBhY-t}P^6!LWKq2?#~_h~;8xvB1{+#q7HiArQ!oQ-MJxwP-sL zu;(T$qQDUPio})Vv1-GhWDBBLVMw*ySV@ISM)IqK$e1S?9- zX0u^L@nKbFv86FW)GAm7bkT=)YXs+F>Pg8NS5?X=^uyQ2p4Qo7O^d^(3HEF#Hs7x3 zUO;@M+DV1naaLm)O{M*wW+1=%a^oUzMi>x*F^Cr+=8-BBvbuPN(kUfuBES~hjEHO3 zn-G{Hl=u-Z*u$$huDwLT1_IgYVLuycG3|y?2oxJ(NwPK3s!UeL0-de|$l8(Y2v~rg zfkuorXp9*j7v!jm3r&K)oI;MsJPg^jlB$&5DZ*5(=Cg;AG8G9ZLP63fctf$CVoDu0 z!x)n|3>R^b;MJVqQ(#rZQ*;u?;JtlbTuBlVw(AfVwQ7TV5K0u?fc34WWDB_e0sZt4->|ZNfaNr zFp@^_KW2ksV^k6_u4KZgH_;5r_>H zV1~whRy2}(E%2%WMJc`L7ZR3SK$s};S3=N4h}&`PV&Y%Si;w$J0$x-)Z5_2Q;m=Ml zc)==CA<7ZEmJojmpRm=^ig+=RRsk37e`I}0C?C}CkmH<`#dDXKfOCH40{sZrQm?=| zK8FoM=84vlcnqY45lLwSWAfrV>xdXa7ejG|A*YWy@Jm~mk=OIlJU(Al*ZZwc(``XPul$f!acoj zpS>S&FU=?t)D7wj9Yr0GXEKy!iP3SkEEQEYKav@~cti*+Y)l8@C@+~&M1#U`m_M3B zU~X{23#Yl`;Rx~JzNYxkFS`9M!r|Z{oPO(qFx1*@iV+FbsSTxB38f0~h=~JANi7c8 z#I!e?Q|%!_h!M|E9^rkPsfI&ER5Vr!@jX^V(?rysDfVA*CcdKeY%h!s%A2KidQbpz za%l5kq8Kxo$v#OT_qxY@cq#O`6Bny7*_9ba;<3+`bfZs*Jjjb^*ASfUeH=D=Ed)}e zXydLUeTp1n4lXY`|Amv%i*8j*oX{I1C#f=izIvjsW?RtPuytu>D5mM?`l8o{k(rrd;9a-SNQksyZyIz$QmfD z;S6@K_Vdp_D>-GgfLK0;9b|-Ht*}}0?#BJ_X0jw=UOhW!Ap03Oaa>mjQnl!vM+tWf zfepM^{MRW>FoiNOcXX_zB?|Io`LY%=_TH1&i=_%R;9wdu<<+oAZ-l_enf8{WnuA-jaJ;flCN6f8f^KQagjAZ&Hv>q(b1UHSHIF0fw7z*r!7fS2mtkuUIqWX|33%)vzbD(=ksWOeol5q4xSkmxRtfcS!M-B zAXq@(=e^4YJgmBB^~GvKfhaW+C%+QGwuC(sp#8>ArI z+lhIW#aGg^a8&EHf;Qnzt)NfBctd~1RY>4653N|NAYtE2N}mWQ>YWoinee@i=Ny~ins{fM=7+lNQ+Foc_7uYfKntP*TW2dz`E zBp!XHZMG-!ZAp$v)C)kkTthsDcW$dpiQ{exD=1z&8Gp~)70pm$>EItVsW&2-Syc=O16T?kWktc6Kz4E6+L^yI@fW; zpmZxlH&UQeX!XfQZ$-pLqW#D)XP@6huTY&~$UdKm(8x===kH^upeiNuTdDfKMm@i3 zolsZ5krx1)d=VrP&(BtHFP9JxnUy&PyJ{z$vttr58xksHRXkQ<J|Q zrkJdUNVc;c-2V9wty?#-s134-Z;B@D{g0Ex@svF2-=Kn zjl&Imv*=MKST^pP)c`H9G9DH_T^ZnD1;@K%tKS-DJ*ZH4-jJcBCY9}o@iVguC2x>( zY&cjpxuhXxs8~cGkML*@mP&6n5Vn5?v{5CKeF)DY6>WU#*>12Ai3DU&5~?Kjnbj81 zJhNP~Zv&RN4I|xo3D6KkL7~KC4$?TANr(lNNSBa`%6R?=k0TOT>|tKISH|>2gLJ!2 z3yJ8RO>XAvDURd3B$G^9f~yJfA8zSj7rKS4hIB@zSuWToVXvw<+fZ}DKA1MPJkuL& zj$s?^_5Qnq*R_MU?_R%p^ZL!(+WxE82m3$K?%JzYZ{ECqjjgr)w?6@Z-L-eG-o1Of z_pbJO|L51Q_Fii%VVI=n78MB!CPM`UbTg-R(K_w5nh>Y{r$O99wA|&%k!OSQ3|1bs zSyg5ABtlfqtJk$Ruin0s?Z#(h&$bE6ab`P&<(VwXNBLBuQcH#TR6!ff+10vJIZ}BD z^9_<0sqnjm$lmrjZF#TOHcQ!q*nEZp9U+8lpdaB z`V<}ph_iw{t1DIB?eV^8MR)=2mt;8b84jSIOp}n7+@`{xN~a?`QjkHTUpBfMJuuh} zu{T_8a==%jnduA%R%^3PC)~ohP}(WmQ+Nnc_sspvXarQ=+9u3z1SLvfN01c2A}Cl9 zB^x<~JjNy=Jm~WRztol;KT7(}0Sh-sM{783t-|H5fSm)|QU&(j`|<|zomF9^@?F7bwi4A5-fIF$m<}{u%TeU z%Cq*lWT7yZBMvk`7ZM|j9M$FwlGhw_Ct_gvb%fwaI^MuziD$is79Ebs+blC;bxaUG zm-|I+13ALeoD`(IiOUWvdRH$DZs4L9m+lrgh`L|11O&|){!G``gGZJjQlERQL-`-7 zMbt>K0`i2f@rEG15!(8-kD7UZ5k%{YMBh*iIw?iw_$!)9IDv3g^&gh}04G|a3`F}V z&YP^BoBdy*j6`>s_H52pO}m|IVa$!eBJ4jrrABPL1a&xvyPTenhYn$dmE{vPAq}va z2uR9vi=s==L}QjB9L*-=9O@WAdUG4DQdN~nS5lv8fC{$~a$LGfYGi@Tmu(fLNx*x} zL%4fAJdGo;HbX4iL zaZpmL%$qALW)p-JEde;g9Hpsz<6m0@FEi9bO$ub9AeIOz;f1l}6qQJFY1chL)eAG6 zFt}K)Wa1QN5EgNxF3Y226Tu0mo>>Zg-aSJs;>A6!bZk6efhQ}U9KuFUaOJ=w1PHs3 zxL2S9;TTj5GwC5&M*;(eZ>1UjWkm4TSXPJ~KDb5>duH<^54+IA^=f z)KIB@CPDKhBk#y1qL%uiU=R@0yspV!NjQ(D+=uahv9Am_*5u zGXTJO!UTtzI&Sz-trrurRqNIdETGkvIyNuEASwr-9A+Z89;i)aXss8noIJ``A8@f zQTmA3Hb+{Jd+s>5gz38uQYn|>7uWJhJD|ATg)0r@G@Dh)i;*IXY(T+$Hs@Vpl&s7e zJUn!Mh#LvUT`azXpBD!LvieGyR?=kwbu$>t!iCY5eivG`y#mM8QUY9hHne1_(7E(m zbjY(Qk}B*dQ27RDCwhMs>NGsVTAc$HVLSM97D_{XK3Sg4|EfV)%CM3iQy$r#wJ{)L zX(>Y215c%A=+Yjt+NC-F#12!1N~`8`+$(}Rtr+Imt=7f!1PVt!i{p?@ZOiN0FAWlj zC#?tDNY!XnA7w0gii1z3XXr{kWxLI`%T~YPCMw*f$ypg|fMEG20#J~cYLD))94*7* z*z{B*o=PuimBUV{6?Bv$E;Nr94xtJEbXn9%f?ZrhSQNyY$IGz8={%?E-RPPnX88U2 zQk*%|Dvy9RZ|0bD`2u%0RQ$2T(GBqsuW%GbgWC!;LD7*yMq!3jtpXde+l4(zE#bb= z#}T>YK0;-kL2Ja7J6c6MaNkO0L=bk;R4pru_zbj5ca{i3=xskTX%H=+qsvD84cpXI zy~CLaZi%5$V%L{2t$V!0m;jV=jr zxe2jolBF};AaU1jvtnCS^8w|}5>Aa)Pytx|P@KBnWv5@i#hXFS>umhU_Z&@N-Nlnq z6_E6Un^~!&G|u#U!JHyWA9fE}S9A4H|BI0SeY4RF^~>k+poZZ*2~5f;s+pv8XAy*;W;#?`)VE-j&;J)&LKI% zD>GA#6v}9!`zQBw3&WSUVd09hD7$YH+5|=-O2_s>Gc4`f#{F2N%fSnPi{WF|E+=TN zAc+(iIldATGZje08pc56xjcddA4Zgbux?dFBO1b9C{S_7{ZQOX(-0658p2#K8n&fw z!$b(r(9aZG2oq<_tuYUEZyby9#(2yTnuaq?EX-tyk|`*4o99%*_|6f|tyh!GM5RqQ z0&7K)u8YZkZ_vD$5SBomyevg+P7%dBgxZ%jdB?>OAs29N)@2P& zT19Gr%{<+-xvGUzP1AgLpBE-_2&3W@N-z~kiv_KhHCNQ|@n$yr8c)Ka{kfRleGZD9 ze3zzIkrz;lYMr~*3 zcfWg4|G(?<_lNrb?%>=7(Yf2rPlMA&@0S6lhtqbihZ}pn7cc7nQ{VaBzr1)+8$TY@ zP_q6*eM|P*-WT%qICzWu#Np?g`13WcDF^6lyw_zvE$^!ceHDuxL@4e-raP|*k+YVye;%Gqzo(K-2`c70s}9H(4qGZQW7z7XP3Q!8g$tHsgcPC3+WJxoc0k@#C8UF}+rlyCk6Oor zoxLv*Nes#T*PR#Jl3yXYjhp6!*5I<&8lY?gJ5^*_b6^hHIJ($|;b40O`&5DNF3d>0 z=Sh1@*t3xPa%mQSK`%|Qjo<{Oc0vNwdble}Q;32bz0d~MmzF4paunSpziyMI`7tTB z^@_YQxYs`W1-IFnzcdaztu#ZsOAhiL)<-utj(Q*4^oFHF)@$(`=RqES85}Q}Is}@# z40h4&_B~wp&^%1bbNm;F7ws>J=Hh!jBxgNtg~GPKp@}_hS)|88FK5uu!x@x&H-i-^ z4ZRxjxgHIW8jOc7+-eVJu>N78VaYWa-Zcn(gu9Qk`EcBq^J>~r%isng4Ck=HTxkO7 zCrcI8&1dHHyTYdF4WAp8|jSJZ+>IQHxR@gH0j#DW*->{U~m&}*LHZH&^S z^X^5zG=b@+FbSop#*fle<_|H78&sNw5u7zDs1kw)mFX9ak8rbSmtwB2lgKJ9a^C3m zC@5EHA~B*gLHnpQ5uV5`Tu$qrm8Mec*>*(|UQy~aK2vT~ z{kJbycMdk(jHgt`;{GM3${Bx_BoC+8*B-oBz{iqrUjN(edRURN7*~~acAU}cOUHuw1;p#7U)6sIif=_mRHU7N%%OecE`Qz#@ z4{!gtH~h==el**RCsbrH9nb!F8=SZh`+^LsUaOA~W+BQY1;p?`1h1a469+k#=84&6 zUD(M?5oCFID>A`VtePO@^-@ZPFs-yC1Jwxc^aetpU0gIi;d*Me=SwKDCF^n&ws4bL z)j8^0%E&%(UP3lfVRyG1o%VmVj?~P>yL6XyeU&<_cG-h5)Q3QY%l(u|V>0t&M78tN z$sHnM(t#}0+Z=Zz7W|T+pr=Z!YH+;dt8&bUq=FyoMeK+qTZJ%OjZ9F`gGtpTLLqvJIk%cS^XM^5E2hfpNk!}acy}C=U{ZEH8ZKTv}u)eyWG@ONq=YF zCe;0f>=r|_n%j13G(7q^U;W10;>V|bG#5{$-L27NyW0Ri6S?ZFhx}AP&E8DOq!|`(9dJDaBf|{)03pX3T3@ za}~}5OuEs|Jdy*9Ed&@|t=(PoWq!uP6FpzDI((Hyy^>K-(iGAY=W+6L_M2BV?mzDN;Gf|bS)$DtIG3uzR&vPg?IxQHB9480UtY?FlnNOW|VA<7d; z=UPgcU}z$ZjbwVMu}qgG_umIS;1a3Pbn!L=8Eci%*tXX{x1pj#zG)Bo=sIFkZ|5hpKF^_HhwC zYjaU2!hjUJW3=GQ{!s^W9DwBwga7>3WFP{H$rNfE@Io&N2K1%swECa_TClzT{8wd` z8%TAJm*8Y7p`z)SjEQ4B-hSc&MCj8*uQ zv}ygf)9KP~><%0W;CR5U1l=A6Kkg-zCZDu@c6m+uTK>ZW(Q*ikRqU&d{ocEFzbEeZ z*!>>4-&gMUu)|ec#VY9iY8(X8fAXNVeI9@Smn!dU zANMq;YdAZxb4u=ayl7voM!dLQmS=#Xp)BaXiaVU8XoK%aUK_6xFD}o{a2C=%{Lfai z-=~u_S%sC1srJR@{vM|_cvJ|>kUlw*$VxNBnyfE2a+M&MxTw~AQP^`j@PO`C9ZhD_ zJI5D-h1bS}fkEh1D($lxCArP<@F1O8u_nk zCUnu=XO4)1Ck6SgNnk=`NBkxHgS!t(!Qm%jp^%`r(^U%TBHS6qOQEVe_#s9pijr-d z0N9X@5T+5~gNbFlUk@X*`C&(N#3K zwDy*DB@~RytI}be>HPHBQ4UgNx9THp1p@*rPjPg8PS6^Vz^73bn#O$XNXS(T&P17XU^p9t7Cml4#w;(%$+;IT|>$SjZ@* z15=v~0+&nJlTng=veu8)=_PCAT3O&j?VBA?gas>YYc|~#KYJH82tA^v+Uv^!qy6w zEg%JYm@sNxv?We)>j-{O+|jhspPg)@i(N$(u*@ z+2Rx~WZ37!s3F0D_D#}vXNx=wsaIcyrXl}Lf)H)u*#ej+`~)$akRu%TtzgR5?~mpy z+=HCNuaMO^7Pgr4?*tWg9SGTMq1Zg2Shv#wrP!T-kPawv)rK^?5yxqqa$_&+Mna#_ zHVSBBnKc|%G#5qYv=uK%u1zdN91W4#0&^hHK7|n3!>|xSbTfQ2v;A?sEQzb?tCI`h zED=c3$S%!vJS1dJ5T0wn@Xgv(xfiI)ss(OEKx5Y-c* z;1Dva*~Pv)w$}JfDtbs}`4FyPoWe!0J@^x1;x1&ykCFdO@x%&TXUm@aAjMor$M}ym zBpczfKr57&N@=FERuzy&ja^8}>T~mVn0_#Ba+04@rHvSAwh7Qv1QbM1n^h=Sq1`n< z`Ugr_j3n3N5CLfL0G3Y26*US(+`)IzF-PY?Hl=Hk|O5WGykHNz`Ym@?3w z5<@lPpVMCjZfarex$)yA`+8zCVE7fPIoLHc5p||lY}D{gn=AC){CGK`D`I}HK~!&q zVQ@krpW?LXmhbcESoX?|rT}cj(2E#Y7V*|_kNsQJf-@~Ftfc%_CsbrCj@kr4rb%3_ zf?1491&1fJh|&F{)80u(3^mautGmgUYmRUqYn5524Wo%(PEs_54$uVIQs7x`@j&bT zriCUw#gi~6jSlq2A~LCx`lm-A8BfA&s+7Cxx-(qidB_>oR@h&_&1}R7_C&+x2>S;f znpDN>3E`aYtQ9&-=lb0Ro}u9dG_Yv*kpKr)dyqp{=wjtrftjW1CK?|hCSO7}N&DZy zOK$4r#YOi$j>{mL8$92ABazG6_EEA(36m)m7ZD;u9s%<()>&SjOH$I7j2|V{X4!>b zSzS7S3Ujh1tmH_Rbq>tz85z^V^UW1})`Fh;{h#;$YCm896?WBW?+9$Z>mBh;)lv;g z1M>({2fUm=s-3t*0vg%A=gX+Oi~jsGHbO2tjf?l>Roid9$D(mFn>MjbnUdaVpSAnq zv(h{Ng#KB4&2#TAVt$Ba8*ije@#Oh$6Xd0kfGKVa7~f-XhzR=ucaysjEJ%zja&FAjCeR+J*N_(`f}NCrW{;+)_`}UCk~rgyvf)?XcG$FR&2!HfpfE+*K!fEYpf{XfNU@ghSSjtkY zbXg*o!Zb8lk_}crYJqidu^3!lwvTpx_kX>JkhAUwIS|2p*MG<12I-~x@BXDWW#bLr zoD=y)OW8_<|5A>ytUzUbMPgmn8alQ1FkP-U!&x2r4)@SPi_W^Z^wj-W2lS2T$Pc)G2%d=EJ%35KZ}PJ%Z$&O9CdZLYD8_?>>(Hz5Bv_&J=Sh) z46^Ys|8Tt~Kcx;1gg(?qqZ%9wc!WKyFDB~^0!Yf66NvwdA-b~U-32`3*7QkkOwf)r z0l{wo4iq;E#gs~)vQvZ>Xu~pgkdOuf9PRn`Alu$nl2fVoQCM9e=owi58QaZ=k?kln z3&i-K_~yn@NXUjRrH(0zO2%uY+Lh1xhOc%WH<~RTf4lJQpzv}oKhR5!JmY8CU7KYU z>kDcd25UM`#Y6GrKQac9(=p7TD;UWH!;_+oQ#vYJ(1VfON#a~a{15DJ{n~874m|E6 z+vLk=vIyg$w0S~E%57$@uPx;^f4NFrv(R-Ug|M~cc#L0Qp#`$F2oPx$@jmvG+hRfA z8aXTqx?u7YEeJ{A0gEl}AaL9j6Wa%z{6j#wAAHFiyVVuM(92btms%E=0$JZyrPRby z5P5N#o&?vps|)3xfYy4SdcWY1y1x3l!i`nLxHp#$aTUP91}^5TCt*f7U~6);o^ikx zv^|tp#bX=a#bVHb399eI#73;2c0dW%7=^W1-c6O?BG9oVATzWT!-3mr(g}{>S}r>m zI2f6JM^oOzu!2rJ-Oq5m@@Ug3ACT}T&!!3QwI&ZNuS&RKoKHS6fyt$VM@-=HH=;fv z8Vfn@%p^2c?qg!RMU{NZwXpCpP~n+KDo(^Do4vmgb?g?5D=cnUY?qT87F+Fq;{rM~ z97I`j`ofo`dkItw z)lxw?2Q2aI;N6hiaX8fY^5zN)d$P6bBl|UFAD$!ZI1*gGK29c*4V(E_GEt+!)>NaM zYUKSZ|Bs~#Z9!M#q)BG>I!z&M79@J2Z9#-IH%lLk3mciDP(u+L3$Ec(byioPkf!k@ z<%P5jo+NPaA%d_&MXpnIFk9A2vJSyg19f&#q?{@^C8T2nTkkvTF1mv9drHD-c>_^6`Y4v!`h?2Cbkj8&P66*(KS|FG1Y=>+tkRdP2Ea6R2&_2!E z*Y#Oe!C-*0Z(oPpFKVQp3YkP{1^n2OY&F~1Nvto%6AWE+0apoVY)hKS)ycVl34e({ z9u>FG1AHsFoHmmS$4UhqH-S@9waOHxAV-g>6(F(SSvRIypfY1N5~z6rBdd4c8mmcL z6aX~DJpTB*I)&S9<QouR8w!(= zXi%%w%RBP1%H&hj4e6wUl12w;F0uVK(==OLxrBVY_`?1SwVW-1h$66QAP1K7xzt#| z(5B__5HYaPhqTmUTn<=ZTCCw4x$O($cTgIkAyH4pY)9Qo^8OYDe%$Fc`lN=Lz@T(v z-k@-#OGvb$q6sxH--QV#N+HQHo2|5~lYg zb{7lt?tMBmr-v3%aMF{L08F)8oyn6iyu zlxsU9vw@^&!@3oJEQ?=qKE z=rfm=cbZGu%9O0zTrp#6)^C<2IQoZ4JRgKqDjP{gNJ*N|QIf#bVb{&j6#(11C>Hys zj)}!WcSL}8LWBg?M?gtCE1O59V(Stk1i{2%hLn#9>jY;MS+!+}LO@wc;HOIxnjByo zhh4UBVzDb1cl>xQgS7VBh6~7A^w(&d``zD6RV#@6Z39OEQz~=}E9M?DJ6N4>njZDD1ixsI8-rRx} zUane`6cDG7fO;sca)@rekn<@4k}5bZgd+9 z%54|>aIqTt!&n$hpuwdlN27LbRC76SbPpWvz&J&KEu^qAV=pgu>EehC!p1y}qBp2F zf^6a;NAM^U;z9}9uoo1l&%ulfS=;mO=kN6J;YpMgIIMPR+?KZ8SlBizQPzeMhRJ=X zS?3CmppV0r93GUM+)X&*T)6Op%f?IU31dN^H{*nSlH*n~n5#20LEHy8P6>x%P5_*M zF%B8esT4qSYk0$=gh@9BZxVQgBo3Pk^}NgxrrEM$&ntyf9lB=*_c4kuIf6r(xU)f| zACBaW*SuC@9?40_h>$=r(kPDvQFwW=^c!QM$b}ShF-H;Ns9<-s`y&b~!!25rkj)rR9XQxq3IlC zgyyXxzXN5^oKQWUZXiWQ4HWk z)NdhfD7`IUX1wNdseTP%Tf>ifwLXD_yY*UyH8+glvN5e{Im1Wz1GW@Pjw7LtI&_9x zM>eJO_>K8+bY;F&bcx@vf@xev^o8Y-^H>&<&9wGmaCwHS$8?8+&+)Mf0R82FI65uB zuD&iO*J(C#1YHilX23ESlzssrI|LV@@DeTpX{WLPEd?%CBZLJ`Nh$#?_;j^^vI0t8 zA%(o9zy&$mq_r0z*fS|$D*@rYSRvb@2r9`{%!JdA`*i_ZDG+YU#hhg@&{wRe42H@} zsxE*QMWHJ~XlY(3Sq7s;dm&>PY*EsR640X9h9YD^J8Eh7E2MqEH;Z;Y3_kSf*AE~1 zgAa(Q*1fZXKXgm#Q|*6o zSF3R}=ywkB(81uvA}!-q+O*bot<8`|Q=h zkGPwJ|Ivcr^hploxGokhT-U%tJpWFSG>*d4IDmvReKdt1%K@bM$$ebB^B=F>$7S0m zB_Ee-n zwnM%`Gvq^B5we9w$d|Ms{C3nx3k2?|l*R}=v;~AyKZVAGFYUDhmxL~f9opV^De@s@ zs8KFSKSLts7oQkDC9(O{CCP^*P`|k({glLucP>djLIR6lXx4?3#kMaYA5ucvr@iVL z3r@L8!WYWy;A$uCH9}dC)_}8TZ9yjg%eQZSdW}c64t{>~?)BR@a2FHDY>u^ni*|H_ zpMo!R@eCIHpeY~?MSzxvVPOo9uGM=x*zb=Yr(^gpt6hFFVINS9x-x#`Yxsl_uWB8& zFA>oJ{<2e!_dBqv;np6)o8`tBtzmS^NKot@?u3F7VU4ZM4``Y>3QoBlx&_O4cPB z(T@wxztFZA-?Y+TbRMINBbVl1Xzmzl&LcK1;i3kM8rAGrkTO!N=ObM2#dZJwQA+~! zEY=i~Dl*(lj+B5fyamTnFc9&o4lxWhWVRr*3oab>+Hz6nP%-zab5+4i zycv%xM#7m@m6b?7{bse%mgGpb>$I^D3j~!JUQK4!eg?^!oT9wR0(;s9E!YX+ICv** zTu8@cvVF= z#MlKRvN()Rp`!(<{*6&_C=%N}-inm&l<>v%5Y!aK z+CVH(x|mZJFvQW{%h4h29;P8_tSf~TCr3@u%FKq!e0uDIfb!P6FqImSg(jt>k{+xO=)L?d7jcY3#d+}7Sl?H{oLb^CZf zmNFh2y1)IQ71}>r;O^4&fm#k82w@s1TK^Jf(&`+N`}dzF{96Z*G)i>=lT zA{$>J;v`*w#PySgG9JdskZMh!&?OE|Z&`FN@wR4taYT=<%r{Hiqn6ox{Mh{k4{@Vb zicu*r#IX?&b!WhX3=q~>ydcQNcIr&(`Xf{;YF?_f{WjwVVH2pvF#0fEO>rlO>J3uH zqmj_zP0n7shu5Pdg4DT0fNGylmMcWuk@=A44Vr({3z>t0B1%MC133VZj8ts03fBy8 zFpkc9RJ)<&*KGWJ6r~C#2_mue@O~C_z-)@$@Lq^JZDvn4IH|v5PMv6YoX9lFnvrxA zU*ePAz`ZTRPMsr=v3SFd#8$)oV^Lts8;s*?G%Tw2<&ETNtw*)CjB~|Q={G36Qf-tt`(-Lr3GB zuOt!^{=P$k=k!%MiQ92L(gaP^FcAzb~Z+mUeAPJ`{zGHpr8sY zDEM|lznw2$i-RdqVMiHGL^x5!|5#!&J-;3KH}udyr%N*Ovd?cIFO#SL4^aD$k|HQ` zzhtH*K4yq8$%L4}Fo&09Hq(4(GnR4B&SISNWwHp5_{hS41~N0^!>U-8s7dc7DKf|K zab={hEPI%vE&tBTxAc_kOM1U{=OsN;yYrG>quqH)4;=5j+^2u(#bAWHY7K0()jqUa z9|1VRbJ*V*)ClqM?#8nl4r+9cy%s!od3k=+dH)eSM%SMAjy|$2U90y54ucn%=;!q-9T?7sF(r{aB|n ztsmIzO623x_MmXlj_ibz!v zK`B=3*Z~zQiX8<6MMbU+P%QZW&hE2MIp-w6z1R2t-u-;`oafm(TV{54W_BOG!$7;C zGFVhR0ZRP}#3h-?4EHf+w9pqKbz!NNTxS(5qk)te5X0l*YDfq4ldg(?HYc@Kq2yaa zzQKj)qo9w0Wd!v8H}!s!r6WUoUhj9FXnao}>JXD%e>ZhrO6VXYA$2lR=A@<#$;#DW zG6gWi#;XRMDFAaM+4QOns1d@@NJhdj8L%5Bmcde1;5WWvzFTo6yDcCwL<_Io6I|7WRG}d7;MWehQB)KZJZ3|$B!q8>px%>AXe4~rKk z1iBf6$N}6-X;~3Q7@?*{%Iu;KO`{Ra%1uOHhJ{$F;6!2dia;wUqOef-WDP^{g$sP5 zw!S*0d|VPm4bKebK_}Xw8`uZ++|_vIZC*VfM7CGvqcEa4l1LkZTzotl%YwvgBk&Z>9!6C%+3CjvW%j_2L+ZC5t{)~W8;kg zMLGT^Gz9&z3uz2?#vL|@f+iWBCH~S5yc3wEYmsZqf%j<1yMfqdx^2JNtB$zVM9PF#XZAO=H$aWmRIK% zS72$X6B2Pugho;)g{6*)5~GXjw8gD-(NXQ$bSox0Hd@@}-#2p8HQlJEVQah%itgxo4wyLBqP+K&mt7>BH zmY<>knnau}Z?Yi|;}Hcf~RohS~{*=MOMFN`l2ZSodVH-+&y^2p$HJV-+sOYP_o~`w>h`E(>P?YZxyIzYZ2nRdU!9ztDZYw@>xuB0qxzb%y2*UO zIN#aHT0c~)r8RvJiR+e0L6{0_%BnHI#~5EZ_alO+PaC~SLdmH`=A z4Pk>25+8w9m@14|gI<21G$%PTzY?2L{^Fwe6s}$!qpjA8;phiOUt`87swZYi!}*Q{ zNF#M7{hM`~Wup-r-+1@wy?Hz%6$(Dq$F%f;+*=xof##RsHouT6gVqkya-C>j$!y$B zCtlexJ4v4*p|D%XZ3xI=Q&%RA(365n3yP0>q+xEtAK=h%SHnw7sIbX`8E#!tA+Bmi zau{>~LY|>k__$nY#DLFT7M4a{21A+&949~bVi#24Ve`UzeecBh7(7?Wo0^|jiA2t|KEj_Tg+gJLA9=FCaQ5P zmPe;ivQOj`2`TLaJJM2Q0}z@>&3^&HW00W6;Sa-33;bYQB6V=%MTW%wJ2jkGlZ;Pz z0aw99vff-FvG{Nb77ww1PzYFFJpfy|n#n9)QDj6TE*Vw%MMG*})Fm(CHi%%+#N7OG z>EaUyirf}sFI`kzSy+bi!A8*yVAM*M$_vsXuBR(%j2u;O51f@g_u-t$Co}#2BAYC zg&aoD$alys0x=&w3&!huMjcv}I8yiNaWpgy--k|CvK0P=(*TIj z!n#Ujh}125Ttm5V&31!Pkq(uJFsGGk-0^UC5zmqh;1>bPJ{xF0lPu!B$;lk3C954 z07D^@mGVbGLTduOZfpJq^T|&WG2s;L=6$Xaq!ld!wIQ|^tBWd8zRrsnb?HIDpb@B( z^`WqX8Vm4`sH`?8jK2yNJ~o3$jeR*^7$rckb?Y`^awyiN)}dDN@_;Z zNOXHrUhWWPoU(Hp0;hqLrZEhu&=|U~h|m!WNf2qELX+?Wl^t;Grkk-;4SYy>CQOY~ zt_m}16*43Pw|62O>11K?1IT$pt;Ja1lA#k+pY15FVG|kob#*NsEUop$ zHIub$hHTs#4xl0a1xsm8ECXR|#>O8~fTz7EQM}ZF%P0m`lO>vi2Nw(RBGwXoJw_{~ z7R^Q{FyP^#GAu>g*s9K{MaRNuz795NLXwDA(S_Qp4u6DD7)nSx1HN@69;QfYqB4bG zl8u``Kw)84mYkcK0!ua(uW`8=amUT^FtHBe3K9flr6gsi1hdlz4$95JZ6T7vnu?a3 z4z?_ivYUdnGQz?&#z<(#Ov!nrfn_&7@STzhrXz)q+?k>UQL(%a8ESeRngokIXvVX0 z)3fqYO%br?PR-69GLSzJX7mP|_n{t`!h&dNn=RNrG}hSUU}jPl8=rIfEI#du;!J_q zCu$!jhw|1MXEaUgZEG|$T-FfTMJ7hf8V!qdsFnFcIJlWbbUVYY=@aE~RnDLVq-V(> zAv_qEJtS{v5Y}GksI+wSx0(Q;|5y*u8+=-6KvGVsDMscu#bjLA;X-PwCU{ytOd^V4 z%BKS48CSOaQz0se5u(!kdzKXyg_EG=S5%KJ^fO_0hOr;WM-?K5TSH;jpPV!_EU^|$ znJ}Cin2KG0_K@5mFuvrqH7dZNdI)%o^rW<$jxv-VgG2Ii2Mz%YK&yYRfb=YUUi<_K z7&tT=0K^_|eVD(nY?lyo>*TxMBr(7N*-R~JSVCeT`kyO4J7Xy9qSOBIDzZck!J6{w z;~N-eV@%z|OpO|MOD73#XJ{&8O=?;aj&I0Jf(y#bz$XQdzwiD#HD(RTN)?sDq=_wd z`t;$6m@_CnEmz~s7~1Ie9GaPwGuRv$n8JDNf$&V38G+C&nHg-hSzBEU4OOtB90p{Q z68iLk9ounD{9$o%uwYe5`7L7qiU=6!p?|w}PZ^TiZSe7T=!sX6&;wN@{-agIa}_=Q z(JJD4qKf!`wu;1myrbgcQAO-O+6wNce|AD~H~q7N&As%`&e%BApv|UmieliWi9DDB zDOkk!+bTR)BsAh;I-+}5gCgK1B0=DA=1+nHaz`9LDLApBbA#QnpdRmyL`ZrKXykBm*5HY)g(qHH*KYsQ+VoZT zxMuo^H!rL+^$IcAq07AJa4`s`@iqlUT;@f*b(z}_P&NPW=TT&k{)h7@ zGC=>kc@!C*|BLgeA(*uAtyM8Ad9e4C@cwGEUe)X*9(<|5zM?dw1&&94(pCm zC9$qH=1^=b^XqXdDfX1z`}E<%O}sBPt!8FM65THLt=7HnfK(ib&1SifDVr$}RTLEG z*A&v#WUKlp|yl!2l5FA@L(P z^hhmNr9^Cb1Yo#>&~DK~4McMr`CyWzhgCfSEK3h_7n=nbmXzUD$aZnV_)rvA)Igd* zzkXueq*%mKYNHV1DCu#*hjigJBamkWPLbhUZUfLEO=Q>*5fL)ejBXS%Q#u1OQy@cD zP!R@~DTNg-Q-s(+$euJpDN4r+BXEiyrn+2AEmHw{IPM}3Pn;57fEaSZ$!2-WdMrQU z%5~O#$Vc(~Z{G1!R#5>N^Pu!hzVifM#o!wnaR(sevuQ)vEI7RaM{03tUtK0HZEP@! zh{UC%DCXGac(?^2v?6hLUU;CzM2>BQLXxmm@G$_?lKh7N!n!sb>QIwgd^aaEnYADo z;bcHoQc2mV195aaHJfeQRSaJiA+6f^rm5`W{GzhTaUo$+F^Ka8g9aOSxE6xU)&(LT z8BmshdaOLU6sdkTSJG@vE!9gyQx0mRc4=v785dQxjFR<=8-Xg*>xwH-Sx)ZAjMM>n zX~N39ZgP3CyqH64nqC&por_-9lMACTEw8ZuKK{Ho{AcduyvmxeMx8)!io#U)G+fp( z`i3t!*RG_}U^7|Ai3wqt$C*>2Vsk?AD$VHxTu@x5gF@i$q3lddy5xL(ehJGR--D*m z5mPtWoQ&;pRh-`a(w;v&DPSFvIdljv28F6zRZ>+U?(#F0!x^pV7`mZQ6!C?*)pbLw z*lu6diqs;?utUd(9qP?6hrrd?tEC(GssvP+Qi}^lx$b(tUYBc@h@=1r8GUoJ~Vl=I~`s=0tk-S))2r9CrJHINJl zWaL(D7S!Dwp@SOXfDG3oj}(9siaS|xy?ia7&a{N*U}?dD06s3H9TL!}L*%7Ir*D?3 zxh{#Hjb@I3p!x*FUB-M_H)gxS6m2FkLS^7iUQ>Tq>J~K1k}1SU+uRXF6S=5lTprzE zd7NCcbjLjr)%vjve#yWIbUl_=4n3A%IMx`n5FmMmga9TlnhgmwRo`e|Mkr6r3~hd@ ziD!W#Jb?(2m>H5%A}>JDS|t;O55Jn5GCpL4MWjBlYOhoWf8{Jx6x|wXEX`mx)V&Wp zFSO~&*S}A$s;}ewY&ckz5|Ua4n-T*W?M6b(ZKm}}xWQZ9!=UjOkeOsFVr%I5fxal- z9EX}ic_GRQ4+;+n%cYqS$SSPdpKfCiAyOF{gh!dosUk!IaJ9h0jLP(EdNdLkz^O2k zp%+TmLrvhQFe@B-s3|3`WFL}+>pS=wZnj4-w>KmXV4Ha<2HpA|@@kDVnqdyNHpLQS z0n%V0txYoL&`t8tDHdX6X_O_#REHie)^~F^SYpgMtZTis7Hb?~={4e+Fkp{h4G`~{ zur1MKJjBm=S%cCuuocl>k_V+G561VKI0~284S*Gocs3<6C&3q>WE%NRsYGq36tDfq z;U9O`6v)4P4(*| zX_9htv-K4G5)zN8rbpu$vGM=}Zg!29uq9w$mxRaoxHSHaO%T5fczmn?TZAX`_AfRT zAXil2)*9@Bc#FdvH|**V##VTWlOK+6fQdjPG>7FdLoFf^^nTq7eIRa8}v z^Wd1wrteWQFT{5*hb(CP4ZXN-)};Ea#35&+p6ERYirUn}KC~65KFbAgO z5tv0&Y*=BIzA+^{u41_NQYV4KED~35h}W8$sv6DEmg-<~S|pmuQOrdR$7LeLdg7eo z;_>=RayhQI)8F{6Tm2<7znbTb{+?G^VG2>#voL$YV<&eX>P?4%8GG5Ph;73J3TwUy zliYt3z8xyGY;#R=F5%Y0r1T0Pv6zZM(QG4#8M4r@kV?ZQUr0PIo8e}T9viVJHJ2o; zG9g#0!nM5Spc9w?j4(!7jb-GNfC1M>#U5vlkY;i>pa2u5gp}1d5@^$$2RbBQu&k<} zUZ6Nf%0WvXS6Nj9L+Q#|-XrsvnL-pCSo(pk6Y_)Qa=W6sG^882ha2go&Ye4>O+{rj zkx@SkJ;NrQxop`7vK=vVTqq9uJ2k0aL zt5*oDabi_PxkBoM>7qc15fLMk3zBPcs}PTGyux=~g7AA_auUacLjZxqz(Dj0mxGCc~cg3|UtQx%`c zddApECHQo7e!;jJQ&e0xBT7@PAwv%%Fs^6M?y+(4-DzSkzM?Q8eoT2;0dD8xKc;~} zTw2*(y^KLf5Y!Dy4<4%&a7p6!3j@v5%8JYJiKUV%K}H%NqUKo<8yAH7)*x?+fGaY_ z^%#YUby1ZnYc&_vjY-w$u^RHocyt`**;va|CTG1V9m6as`U9db5H`qgkcT=%K%s(4$aKO3LCmrOEdry#&FoJu`* z3}{a(jcJJ&C=tV}jUufwL?zV_MU~K;sS=& zK!PCHA~m|E*I{6JOs~8vGQaZf(e$2+HQMwF)sN!1xM+hEqN_Pz7~}$`>Scb4_=Qtz^3au$v-4&1{LdX^VzpGpI>B6HJSBG>sRT8+V67BK#XT=> ze^A9}NFL5Ag=OYav>kXPa2kwb4v8n(g#7X#54+eblvYiw$gi9X0>Rhm#^}UGPb1eo^mC*jQjgguTd zgC~=z2+1sq5^_>gaSLQ>u9jPmi6%VC%)DbaWtQj_Qa{sPD*z${G*{dpEZ3HL-mq8W zdd_Im!cZu_gUE%V-#T(JlwVZD%!w)I@#U))8LPQVtl2rF;d)V{rLsa6K^%YbTJ&wh zsXIn#TN55-*}RFRLK$bNb0SMb8Yx9}jU`hJ2Ijc(7^_wZG_|!@V0mH%^M>XmWe$aq zH#*P;dvq~L^#xm{6th!{SC(yZI8_Q!R%Q~ux7lbxA{jKtd^S|C5O!+)1WU?HY3K>g zK-8oj-J(r5WKSrott`>i6HFGDk4+u!`pe11bi?{dzj#tHS2LgP>E^vLSRQZqM3L*Y2 zFP@~8r@dLbE|^s>?nF2BEv_WSHRqzsg2JjmtCE`u>qovF6k_c_OfXeEqhfQY84#^| z4LDdH4S<56+OUF9P0>J5ucCG^sCA{qHDLOo#m9A6L2zaKmk0aJ?6iy_!zqYQcxX>K z&}vaIWeDF&M8QFM_?{Tg^gs;r<#I`5y`z#D1@fy!yv|D?q4<=!X{V2U2X2Cr6Q{PY zv>3O?<1&O~CF(B{1!$6zLbc)05^~*!_$5#VNeoyN2yDbkr76kKDG1>)l9C*K84T2_ zZ8}qbwO|ISt0AivvhP4)p%gvFR4Dllv-G^GE6z+nV93(YcwA)8qrnmAiS!gr^cBDs zu~OBCXRcB%iGi3(Xnql-iR1$@9LM<$IdcFh#CL8*+2VqDGw)j~f@3D|3<>L639Ojm zChUlbDMCZlge$6+XkMxFz$J*)kglX!hZI+P8!tE(th2ZiwQ$}HPOR2?Ev68mvZo5G z0h@f(dr$F38gDxRiRI%2=Xv^$ZnS_iP4TwkMrLwS4W}$ zF1Qxx|NBtu#ajpsuQ)OC7ImXFdQyr0$I;b#4y|zDq)}W*{^J=-b9TM#hM>_&rkOGx zGgrurQn+bdzG6zsj!6{6vSn_gkQt)~qSSsafG-1y{kfC_#YAHRg>M95YcG&N?Ao)% zr!w-(lWJ=6CyPBVw(PtQ#IN|in9YgjxQ-~x=0Zm16L~??Xi;Siz64}&VZ56+Qxlvx zs>en7=Ae>_I#Ij0Us}_@2c&`kpV2uk(S0I#1X-k*K`KtH9B)tP*!JN3iPp*gwr%~VF6|`YXPeJ*f3B{Q?%h4WPw;OpaCop zoFYFk)eg%e=cgG0tz{7QckL#aAmpvB&R0vW2|&g{6Fjo0u)bx!BFJl(=pgx6UR*g2 z=hh5#)8RrwQ&-_l&2cWF$>^R?KnR5e1_9GWn@BM=$gjT?<4wJk=hxOvQZM+(JD`?uf*=gw3u`&3dT{C6tXA7^ekC?k<>t zJWEq>1x_Cb=AhRo!B@SC(3N0frIf29FdwP`Pyy`1s&Qrthx;%Au_MFBGDXe~pb<_j zYaGunJuheE0%NVApdZ|yL+k4X0Mj@%O0a__@h(q2%ZUX_Q%qL{CYEA>MuXE3S`al=&&Ew|9|%^|7D%0qL(|zH z8wx^edvgg~kj>FMPzD~KUzvG{4lk7uR|_yX8JeRhsA}>j78VBjLDXpuVz`<2h0ck$ z7tw-+5n%GJCXUng4wwXrTuOC^4loPhoV~4u6&7~r&|9_%kaZLw_YL$wL;rDTRYtK}r9fzqrFW`X!jUX)xX1TI5=XoGw;R>M3tX9t}LO(C?5BuN8L zDY5D1ZDMFbIpgxMS;vxzp);_+2EK@G8|#?-ReJN1*04#2o3O~74mm{kbm)}lEG z#phpSQ0kD3LeR6m0r`MHo0K`q(Z~D&Q_1;)n6-t~Jhw~>!7m)EMw^`YXldN;|e+4YrjQX#Qeh+@!a zQMqEDvchE4seLxl`4t3(;G;luYH&<45FOlJg;^37Yl+~o-q#UF{TFVHoob_4L6zY zlvRuqL1yEc$%O@l{0%nqatK>32pHAsuGaD zhk-{v+JNaGSpj4o!wMa5RzpAoZyE;I@fRb( z(K-Z|bCi^1XpOuIt7D)8Rvs5K0{W9fe{yP(Q%R5;J-t&;&rdQvo|t3PCR=b)?*Kku z8Hfr_;zh&;K6VoGk@4aIEJZvsz&3mDKsK%oPRfnvX7lpQ{AX~Iie$!hD$1>@j)RXs zcKL~_e3;*v%TKhH&w5amAQ`vjCZbN(7t7j?*$Qx{XbxHdqdjviJsPj2hozRUA%)nP1ro4Hv16U(=Xld|oP6efpa|Kzo04`jJ$E%dCz_s*Sq+bu%|`mrFh6g4 z(IU{NMud1dKB-6j1YXV|`7p1N-4n1%HW?k)4c4bpB^w>vIX13a&%{`Y>lWXmrztcx zp(}2R$fz2ZQ9nU&0)ZH?;)+KNpp#e;ZHfiKQYKPN={0SultPXeISMpbSzL`Cs}poC zMb9SJJ(+{kDB*j(p~HgKNNHwytyL+s%Cy&dm2-lojhHm~N>tBS(<4wbuD}9H2-vWq z)GHn-R+j3xZlJ&7n?n zD}UBKF__50V$~yk{~S{ z!S77sMFckLHk;U+gMDY@h&D2_P(o$s)FT>1K)ngthy4SHwH^fOF3913P~Ox4OyGr@ z#RQ*{1K{)QtS%BJEU`u=Fy$ z$6l*g%b>;Zf(%`#Dietaw)o~Q=BuQ%-3|*n?9u2!?rN=fO&x`P20WII(uc$}W+z(U zR9q{t?4P%@|DoT4+Ps8*hM%Z|UO zur}#12=SN#yOW&Iyu%bvrk0ACZEn?7nmmgob3nQvCnzs2se`CcmJ+y1u++ozYbtSR z4G5Fm6|!2fW1ubYTy89T1#(!s8n~b+P+3(M0FPdQuSY@%6Tl)~3PD9WHpfN9ZCT_a zOTdS@fzf5v7z0QaSt*D!xJakZIPeWF%p7nXES_YcSQwC|mS747As*(tyCJ)T=jtdp zu9&Z-vXVH^Q3P0a$a*_OXygPsL5o0#3&4Wu;6Fd96&12exArp_#^+&VXk2DZ(wMJ;6MwIIt;5hXVzI{U|6K2cw`e zXk!fB2~ub*h3o*%0k#fYoqT6TN(;~z+yc{rTUdz2SL00}%!&=+cZ-Tk^6Sg%dSR%! zPs7$UID+fRxl=_ehP$#It@a&2oj1M`H86Dp-y{C_DN;|?0s|JC`Dyw|gHjKK)tfu&i z`eNKpBe{`)5R=K%KhjdMrkGFYP2}VjwR%E*4k2 zlK|{(+l=%9Ea&SO7$z?t3M6z+EP%KO#B@w$a#i)@8kRc+q6(t}aXowV=!COmT?0A! z6@iT6l9KY`n(#zDe8~p+Kz$r%EHe0K1^d(PKwPxo=PJmJ65%! zT2J#llqQ8r8LOr=WCSvi9uTi1LZN2br>2cc!b);!B4@ooK!#O|Y0O3uDh;NLG85Q0Hk>LXaWmFG4D7&m{y0q^4#K&rauW6j_T+E-fw`FAI$0LnzU#Az~Ae z|Dd2)Sx}cDMS(6Ufwsfbvl8Olibq@|GazrE_6&s7o`xm&h{ef*f!RqZseSp%m$+Ch zCUZb?4j$7|0$oxE)fNW2WalQw1-fLWpy;&fww=eM6c^Nw>!O_~?Oa`0%BidL2!1Ov zzYR|abg6{Gd|Xwa3yK?+9_W%gG|&Z>+f_B$#nn|cb-ln=R8-di-e6{MM2~Lt|C@Fs zM{0+_jbJ7lRI@m#Fu%N*ZE@Ki5Fd#a7@?sB_RU!FnQ5u236?_!$lCy^*EL6Be)0Hf zL`u8)3)c189W-I#Y!OI08Zur4`RW*wO82NhRGT(}I~Jyh!HLr7I4YQouQ(3Jr^2G_ zHrP8EufZVO83%(L7{sTsA7|~__v?f1>@}EKWaD8kHt3eyl$-w6EE7&{g2ye!%(+5 zNId^o=+eVFtoBh#noob{hq=|VOcm&z<)#g*>@;BlQCysjM%-to+Lm@&G*iN((%rhz zPTiiBaI8JYDT05V@1Wt|$Y%~n>u0C&kIQ_g&a~0!7#A%*;-Yz8FFiBCp^9qszt^{3 z5r0mt(YD0v9n`$4;rz=xNw}8uwA0kCc51fMMmMc>((AqL)cp+?jT$WD6aMss)qU#i zZo2DA2W_52)N8q)y8Pv#ee2wGG()zd-yx&Fp8v>BpZ#K|Ja z-0q-jpRv;#JP&VTrzi0LF#PpM_eZvuj{N4Ng_|4{`>B@-;7^(Dp;GvF#iJGmjQR*icgXitkzt}}h(2tAS+G#Fu z#x}}M4_}XYdDKJEy?pdsZ$Ev~7r0e!r?YK-+C0clKa8@`nw#8o~F7eZ}j$S(O zH_|qBQtf&_y_4#uesBA!$4);zbdQI2o#~)6mU!v5#a>#M?xI3G&vUz|po5#*9dc5y zpS;wrm7fM8{8yxz2*2}?pQZ<$G@*%?M)=&+vYUs#ywXlD{^qA#R}(5g_>A+K=yNZw zi=A4;*eT~vqHCh<^$9kb8D*!pH`(arK@PfqmyPl#dT8D#qDRlL)2ZF<)EV=6 zOkX=4$gopzn4KP*Yo{xFI_XaI{V(sh=pg#-U+_ENKZJi5ek=U*@SEVjg#QM9#p!OE zw8KL;>~>Jq$zGc3a8u4Wl$iwFyBGa=59ZE1AJu$s(12l>)4wG;D0vvs-%HUS58J6} z9~aFA?P!mAe^oapow3MA*L~`u=lpKE>2yCWOmNV6^lK?-$Jdi>wCs5=?W(d-iT{yrxWe@P3BQ)8~V4!xv1z;%;l|4 zy6Jou?LFk9-ybnxd1982X1rvS)p7%Hd7_=3J;_FIud-3%Cr;Wv*+pjzwbP7`e6;U6 zJKeXzLD^Rrc`n?CIr@f|D!+GA?Oq>wPI1z`%Vb}?+to>nJ~3cda9;4IgIf0SPz-2* z^KBWw{Ui@vH^oI6E9|rl_+K!_PjL$*JxdGNXv~cUO{K|*POCu!o*Lt#;xs31L!Q|EF6vu|^$mUk{L+q2 zdItVI_!WsxO7dY|z>kE#9{y?gZ{aTlec1K6gSMVwqbtv}(XUY|Fb{Fn!M9PXZ*`UMXkNG8f$?U zcvy0qm-3f+(Fa6p#yRQnX&%~{;H6@O9eBY@V-9+0`x!n;-RPoIa=f(QevB#jn%cWv z^!nd+y5VfBB^UeX)uleV`gtEc^M{Xa>F1&IoB63jwV$4Ve;s}w;#<}D(RM!#sP|L$ zB0r7sIH`p;pC2CNqd&_fo)uxN&p6*r1FyBwqdyw>c5tzenl5tFh;eRu>l8QDT|#tM z69fO>eMRyu+kz5jS{`*!{=(q^z>2iH8(xcLgMPDXBhmQKtj_`-(Njcx7JN(-5;Lj0*vKbIc^HP z<0L!AG9LcmVh26*6xJ4>pH9#A)7&Gn9f#Lh@qNg8Hw~zeVTU((==%F5d|b8bB@f+o zyYU|VxR0&}PS1j$41eLxMAPvPw=)C)M92VV>S^Kd)81H4@X|0MinM;vqn>3n_{wY=O;1BQF()I)Ac z$a2z^Q?NGPVW;ompXzC&b>DiZ!$LbHed?t1@!tymEcjF4z3?{p-;s9U#}1l*5WLnQ z4|PV_cKBuBJ-WT_pgzBNC>1=%JAK?Vy_uIbl{l$=8!z3y)=sl$I%wlCCuP3krDwq} zJ@lKG_Rn_FE#TL4-gnTpB|iFLrH5`=>!Uf{eKh$IA0@x)qjvB4sN+DQCUc0Yz#m-H z#6|A|)_%A7=o7%P{7EN0kAM3%C%pvR{|UZ1@O_ZmPf7S+)7?q=_}_#0Yv9|jchM}o zFCXinW!WAY3S5|5=c3Byep=rSz7k`;gy{4se(-sAS~(JY#WFjcJ44QaQ=Ty9G>`KP z%!ydcmFI@bxwUnn{GZZ?X#XM?-G7RMUU=C?^X_v}_h>&o_m#1>Tnie}ClhsnhhkTY zH0-YHEZ3p~k2&ay$xfOLKGFt$!R#(s>7+ldaZ=fCHu!}x7_A085jaSHaEJ0f3TD+#78vp+yAloy?Veob;M}McW z*SPw82Ne~%>E~5$+WVLhKJkE^TwXWbu*F4}0{=tZ4$!@OF^+5RcF<96O}{IHXke1H zkA__+@oy{E^L24<>H{8N`A8d;VV-ukgFi&xr-4Je&v4Sypvi^(d=z!SL8ry}Y37qw zTvsqutvC8jg{lAN3S|9JCOFzYJmI5syuWyppI%w+psOaksQ+#!1+bO}z(2j%8aNJK>az7l zc{$gBuYAZy_g~?pU#@b~*vWQUu)t2+PxH{?i`+C7Ysy@_xBkmPr-E0_1O89Vanfg4 zUlT!F-$L9L_!r>a?>T7q2R531nUh+LcThXv{)b=MXc5-Z`>+?-7zbK{bl+`r(ADIm zHF&-kekuGT@MTM!^fBi4RalD`4ztni)h>Ewn1kMV!$FUI<)Yod|54|Au?O_h7g*z7 z$M}4=-%DHfU@e>Mqe+kX=;=bDRN(C4TpP_j&rfUMqrl4ru*bP!qMtsR;-#xW8?MCK zwR@F=l7RE?y=$k^yIeHvYX|K+$41xnaMEOi|BUc5(Dzd8f9^o~SK)iqIB5_5|44Vx zlM`K3dI0S}e@{Qxn9FzXAo_3?_7rRFH24lT#n}Pp17rTLUuFC`?X2@`>Osg0 z#u5F}-b;4SMCE#~k+{b1n|2s^7T+UNyfj_Xk|)o>zT*NT?NQ(zyQNVE&OAEJOMS36 zjN}q7mFZ(vd+9OkPp@$}Dd#$)zK+!fOgqwCbO3bi?pr+68qf%t{(lIG~#{-y*!!d6yQI*kAWk10$^SpzWZ?(~6%=7x$4!ZX=JH7FMgFY$6+KcgzYALF1KzO&M_Egh`%cgY$Xkl_7uE&zv;mMHf9@=_Om1pN6gS z&=1XhG#zW?p)1fwkR|=}zKwc+MpOy>UxPistH8l)cKK;)TLWLX?1^*zbpJp%*}rqq zr-^R5?+qtS8z}qPjlDCwZ=bOCiwu>&)%7wiZmYFlE_udJ_iPQH7Y~`j&L8cg+aL?L z?kqPwu){`|c)U~wdUEo|KAI2D?uWbN{}td}y7#h?`vTC{v%$Mx>!Ht|4u{K)eMirp zMtIT<9y$j!AUoX(pM;)h3ig=nw(iBg@Fh2`JKsiUVNADy?`GFM3i62+@|oY;IUV$z z1{1&U$bw9&1Twjc}ocnxqFa`ANJ)(!E`YE=^ zMK@rLXt_?(0xnOvZ`xYJvazqY1nVHX!(DlBcFffrz7wOK$~AX*-OoWe%k+o1kyLqM)%w=pN~LB@#LMd z#!Ctzhlz5~q47>CD0b7Y3xH1-8t`zc9@s;MxQC7pu4p+%6?>hu`(_7C1>UCv?~}nF*F7fbMHc8*;e!&!wy!wpZ20kS+3E0V zqBq_}zZ~+?QB8h+59sakTqpf)cT?3Itc_{bwv9{18a&-YGk$VY@4jC8WE6O?cGfv) zKpFXI4djE}L91_^@1%~m6724W9Rbth4JLCk+E_>;)Op(??|5(BH(xMDIc7kc2tQ?kdRX*ge=6d-wK4 zHy-s-{9zflG}b{64VEyw|CDvC0{^AlJLkHn?YB1i{RI!DmC8Ix*q2VYRX%UiaDHZq zgVKvU^u~54T?%<~2Dzyi>6EL%-cLCX=256y4E(!1J^iiNV^(6GFTM`@Y`>G1?1jt+YnTf%h){PinUJZE+==cNM z{d8@GjS7!?=#^O6wz-f;o_UUgo^4`XJ5?RMKvUQ~7;mE&@Vp#F@537P?YnZE?4bS1 zwKma|X^>qj_Z#F8?Dj(@a$u)}eg$n+?#4B;oNHyXMv4Ay4FswV*NL}VZX_@ zp7R{E`c4N8*7mO)+L`$Rle;F%M|;65b%#7>))#)72Oos&;e!WUv;fa$_c&yl8`sJ< zK7l>y;shH#^QVV)Lx*(aM+c1ojcv>w!T7NI_)*9vz=JP@oM9~X|6_qeM<=?e8~Fae z@m$>2MHSZ>eKo=_%Uz8%;?d6F?ZLb4hWle_Gc02yeHlN|I*JLostL+=Qm5M`9j`M!e;@-wa77iIhCv(IFFMN`>7<3F+X z(|X8VJsqIu`o$PKF6WP~E_xGshZT@l%(xosWtEp6Kh;Ie{_@cc1F%a?*lR-SjbNeE%JGDu)hWG{W|R7O=bEau>4fNo(E8TSKz1RmI@zE=18Ew4wVe33wF~Ck$PZKRZ&q{+P{S6(l#!GBR zT`RDEx(#!iUGFZ|v=5!^q19hNCUyhnz#TUF<6;}#0J^dq`Il?*#jl~4+=4QuK(3?Q zd7zcOT03YHbdfjpchj|x+Nc%aXV>v8nQqRXM*8)SSYhXM?J*Z;)VgTMQpm;N-#_G| z4!x~&kkj3WxNG2F?B=GYf&Y{7TmygmB@X%>x|Z>HE`lEmKL_&VVfbg~sCLtg)5FVq zf0dWMgue=M$bGlkX&3w<_vQgcZe*40-#rypoaZtx0B^JWb01yMTlU3|KAHB~ z9kR^nV`O+GOcJSU4rb> zl20WJ%~yKq?1N5f`nHemf*nQWAUCZ5&(->O4_!LTNA;gUj;GO@ft{fjiFeTxF|bw8 z`m{#d|8M%mfN>=BSIRw#y>jVx`Cj)J^u&-?p7gGZzVkV$Fa~?1SQ+QMi)b2TF{`ou zvpeN6iKhj<(H_Xc%r1SDjqdwNwrR9U?qg09|E-`lVjK8}5f^A=f-O6R!8LmxpV zlM7xV2Xc^mQfzeXVWJd_t=}!-tcQ%A-K}THb`NXorWbx9`uTCl>~Ho`I_AufYm9Oy zx5mB?bn(-!9=cK+%cpii*A98h9gx-ev1aXsJh2tZng6PXF8WZ;@3*Rqahd@+dPA;9 z$ePCKer@BR?Y#`VdI@^kwcj}C_Om3+VP!!^X?8vh|2gdY3D85ALVi5YMpMqV(-6en z2>%nOnPH=Gmq9Orz8(0Zja~b0pBY?G{;km$d zyt>GsHL6bY|LZ1uie*?g9@O^WoMsdB4a(JhX0);MSYwW!y#xHx9wN_qu=l~fKeZ(C zJa79v=w5`q%luO?pRiuCD}er@4|J03mh`pJ7g+ah)Yki_`a~{QB-VcZ>fxmuO!7Y! z_t+-cM={_*K8MVY-4u-VfWC4ZzIn?*w?U4T1pHTS^*uIvb_CWq%&9jK-*LXteoj-+ z3;OD&ke$3{^u=R08go&V6Z)TNhhG1Xld9Xuaev}&IX=EAvYeP?@E{|-G<>&@o`N^K z#lZi(#jt%CYok3kSo=${qYH9=2jtOso(le8 zF8t1>uvdXyQl`sCxrcqUwx6G#gl_YfC!BO0JiAj~HtNlI&q2x~cPHEEz0OYh7kIBhjQ8Vh&`mgL&WjHEqnnc+Yh;aIw-2)G6xdmu z(RnvHrbbHx>guMqAlO-?qWH zgv=3h$%{XhZ=M=i&KIyHF}o4VWgmRiUe5dPwY~6}7ZaTq0Hr z1*pm4Y_N%e4JQ26+WY~K2_0ccb|F1ggr3tXRV3&EDi#C4?*%#KaNq>2%C1}U7 z-2DT=U)bDq?g!Q}*!qQ}^-FqNVY}K5`wDH%>#z7g#{>9*Tdrh)Y0p1@w0NoM7 zw)b>W+H0_dc^$Sb9h`LLWDgzO1RW9VU9Ny0aRy}1k8FWm$!~%GDF-0az<#3t1JL`Wxam6BVQqjsjNLrw*x04R9!9x89tO^7^E>Nv zIfr^K_0y7*jWvLGRs2`P9i!Ny3H{Qy!7KQUdp}BNvCBxs8tbo>1i(d zwFUl>?yM!Idfo+XS^^u-rEdDVla2bL9c{0Jjt2PtC1}@D{J)p!p{2W_Z^yU~MqAH@ zZD11Qb`L=>d$kREIP|IesEbxlg}xnjk?Gh&IN5d#eGrBI`4+s%IT+W=TX|{O&t4kU zAF`oEvP~Z@!k)sk4|w`yH{JPw>=*whME)t(IZdNwz9*1o9en@0eY8SLUjRPfQ|PRB zL(j7n?HaMzO*`@L0nVnZbkG9KCFQ}Y++7=W5JFjNM6C zN1|pL@b>!JXx|h~r}#1Ws9fMFyLimi_L$FmFh6gD{Cv@~4w|bK|LAJ z9UbieTtU6FW@CR09GVY$u+-}yJNC6df)E_HDGGY9XTbk0oC3Q(wC@1?x_7Xy zLRNTlKJ3+?3wj6pu`!V2K9dGs1$pZ*Hn;rjpE!FF`!>heF-@Wc!zAr8}3Vm z92;`AzhGDKstOk2x6Rh{ zNBy=qXvbyTO6eYc5psCw%BNosy)gKZd$G5A;bw_94}eE|5B5@5wRY2D*osesPU|V~ zfMf7ntjYYilvSDxO)FCTJr2HnSORo%v)nWXw02jjlTLyh_ml!JRYQKlZej^+4R9ua zT^HcLa{FNOw*5xP9>AiU_KB0ee*7W561Bu>x%|R_71DI;_&^GY@FKtGi1k5eWqa@h1|Ma|<3P<{AV49!4u{WVt);j1; z%x^F7-|V7+!=vCA!Ov&;Kk%hJ?EQwn0s4nL(}%dJ9(ub1tcSk>|1Sgn&j!97%0~Tm z*%x0&&`19M3-*8aLCyoeKNd9}!QOEXWU_a7=sC#eHs-)C6*A^GqYawKaGmN4?;A6` zq0g;>+Y2Dehy#4x&^~qv2piAg@J-P!<+ftZeS-D>t{HBe>4825dXVVBuv?k$rOW2~ zXd;Gi^9w%u`x~6yfy}G@2jCgj!N%|^tZi?*=?cW}d)+}}qr5cxbnr;;dg;?MVPgyV z*O=R2W4zi%e|-$wR_JE3_7UYm{`b*g&{gQTRwZIDcD|p!##}CY7JHR1{p8T}W?8V0 zT6(i=_gPoKUR<*w4Yu^q$H4zf!0WMF_mQ!_-l3%#0e-vX3K^c?RJQeVjGY@cfr}u+ zHM=vhr&R7|$e%uh+&PlF8EfPW;EZxrmtjA3sT`-nn$AMS9oXrjXV-e^twh*o-3=NK z{GSH;HRK7{cwOzKZQz-IgKqoEwszWl3C{0;|8EIh#`1fyKHezdSq3?saxV__(AZH9 z%9({dBGTOnUS-Z}E;{tEj}`>I)Z#RW8-K+*sSYwXcC(UX{|wgfKOOsd!C1W1`e=$tjJGiV=u(c3wh?#!=azq z4IK`2%Ir3QMxUpRwFtmZA=Zs+cNpV--b$iRb0N2b4Z&vM{b|KEx)fy$g6!^dyboUE zqfWs8Yf_Nr71=N6w1pfNxN!<_zh|Y7swX;V=;=;+XMvMqfge|NhhC(In|{H#=i~h@ z(14}D^`r3PfbVxBEG@@NRri1n?UQBh*dYJk1mFMBST}w7gPcoUMiX_=_W!C4{67kI z5@wh4yqsT^hm5uz!d|&@l9Nup6lWBoee@9c|3#Z+J)E~4Y^2%!?l%91+huRd|pX5ja0 zxA`c)7IwXN_~^$Le(F}{r`7Ox-z;IzpJL3Xsy;qCrK5E{xxJf#GXhZUC*@ot-`$YW z_SWo0%xMm^1r0hN`*8OSGX2-U{rh2OGPfmk^|O66W)|r5MA;uH%Vb?8m&^II_kA~= zhkfI7Xw%QIX&E;Sa>eF0>Hr*^-34|jkXfwi?xH>2Z1gAijx6w#`Cr*60sAFScgV?* z?(h&}j9xv6J*T!`QE;~SlIRJ@H-FwE;k*QUmIazEg-TO02WL*4PCETxux%gYBllZQ z8n6X>U9!W56E>aL6Rmg&b}cBY8}^RB-U+!AXzT_rY_|dPFQ9qn&Bquo_E0O}#SP^| zuOBk-^pzw7#tHYx{_lx&B@RE01O8tL8awSe7sWze_50-peS4~%hXz6h@#!oh?4~o^ zR6R$QHx#sMYKe=sU1X=rKzo)V{erc!RewNtq})qbW0h;O3pD6#oJSh$qz9HlmwJ(e za|+hnhTJsl`PpSdj;`GO@5p@Vv0i%MdM{l7n+|(dKkaG``zYwyufrZ>Ltkr|qrZUt zGVpyk{8acKFcUW`(fuTIG+Oi zD1~1IT*-OLNz)xJ8jQX1y}*AL@V^qi@m-S4&ZO-bUI<2o*jwvnBQa1UI3jt+II@*_vzSU4!RiY$EWDm_q>$U8E1X& z!r95~cKVs+T}Pm&$9bvE81J({JFi{ipgPDm+U@eujlcWI4;zIkk2q*h8|-gkx0gK= zGE30N_{EUtKxcSFqw`OM=sFI8uV5Gdm5Ww=gMA3{@5Q{h5cACJJeo}RQIkA+2JB=K zp)ZLY#$2fCfip_$VZ%GmMbpuytAHCV9&k_^ zizU3aQ=MI?-y^w zoCL2j@ky*_*!z^e>!(fc!%hY|k7lq}VRxz~(>J%H<#y;AH2kl@-u1l)uxH(lGo-*J zc9oD>J_8-V80hF$Jpw)Vd?(GsIj*D7J^uExovwv!YZv0a2L9jq4e$*-;!BWW9Yng5 zp##W&9p|tiZ+Qr7&DEdD`SxqIoIfY0LWi7&v%MGMJP`IZn;wRK2Ke8GnovFLo|T*S zwuGPGn>)eRB9Ga90{&0A1xs<37QTA4gH}S8J-Rc_>|(u~3>)hGUtzsK+!pv3;Gcqj z1bz+tC3j-n@V^xPXVftnJkKP^_TR^PT82FUyKKlK%x*g7<*FlI>iaU}2dKmB&eLR} zclg}&=sd_;G@5_KN(t*V+W#rw|G$BL^Hkt}fA~u9QBBW>egW(MhFHj2-Qb_TcG8>B z39JYHpM~{**A;;0)FzY-{`J|WI8y_hu7WSWA2I>(RMT>CRtR<>qd*5v0^ZldyTF6o z*c)SwbcfnO#|T@Qvp=%Y_<=sUum{d)gPw1Qhiqi8jph#mJ-HpY2R-wn!2g?Oc&QFF z_1uL%O6v_l-2vYB47BZe z@T>iS|F4XPeaZJYC$j=}TzHTB8~cy-ke5!i)AN7(sPCD6YCZ<%qH7?#sQ}#Hp>H4y z8WfB9h_=0XubuW{AKP@dF^3c^#UJ846V~|Cu7@50c(${4)mhlr!&c^T*ny11 z-s4Z$mFxkQD+Kw(WD!1^Dj>|K6j(7w{P$K8JbI1ac0@ z5-!&CWt{&2Xh7Rekj=CQ|MekAbgG-~X#*M5M#v7ofV{dZ=zdSg4u6Au=3>a4dIR?^ zLz#sbH`tN1UIp3fX*eT%2F_JNKJPpWYtUvFUE+n!(jCy{V867=2|c;TPdlNHz3(cZ}P0{psCt2pY%b_O%?sxoE_S4AI zU{m~*gWmlU=K(&BJik>r)!C3yZne|ZKiTP9$gDa-5AZSM^-ae(D7fC}_cu><(mlZY zS@4DL+3Ea0fCoRomgWr?O*jR1m)Jk;DSR$woW2;=DBE6uVEe)8F8IuDB31sk5Cv0Ka^8FFPH<{Q7V(c+@^P zH*}$oZiWu*d%vGr_ro0z(DgrmhMx*Q$GU5h3$|--z=hpBeYHi7&3(7Yk=$|=^1CS> z`tvY!mDoRJ)_Ukn*zW%D9prW2!u}LGo7UKSL~=X9yPI9yB0I&v|8O5_mk8k3lx6^?;ccPESz|I5zAA+xFcB_My{pp6yDDEI==A(0GV;vkOVUNW={Ota+ zzt=*xdCK*$l^Y3L_*dNYIpn&l$N8yUBHnLt(enPo_CCRn?$9HAe8qC#g*y~m81TJ9Cw!mDz6myzgCHgr%+D1LF?tBBB z&jruT?n12pg~0s;_;aBf*$lki4x5P2f&Z&v`}g}=qo1AyPP9R}cc7m0f#+?sJ*@}z zoW2meHtL!R+^z%OUl#A6`T*|V!J6r+#N6l)oB%C2w8%;4%mt0U9A|DH1&!YXd_M|V z(et2BhltKT180!~DE|W3`Js=80`FghUy*O8{ey9~c^mXH*i-!21@i|qWeWU8)Oo{T z4|Pp~-tlzo*&%C5nhqNV=ww@U@=+pesap<%zW*$oiH3e-LlkUgAa70rKA-sk@E!Pk z{x#t30lyt>`3ZEgIp+Ofw0A|mlbYc9bojp(Vvm6TAMk$|em8vICg@N6&qtrMMBn^; z31kInpaHY7-eK)r@g3;iUf8pOrhE=MaVB7WeHr$LkZ1o~=Ae_FvQzY1uo@fjvh6d$tKgPVCRv zEsF8e<^ARO@0=*>$lL0qzmVox&1Sj<fd+NrI5RX2eafDbv;N#cj& zRS8p*!!qBmu)$~7^a9ukeob@}aQ_eZ4vTy={$!l3!FkZjE|O_PLhUD~Bkr4kyz|HX zZrIgGy7?CL#OyL>8uW4#WdB`$!P*A;ehcXQO`y9)pzDjDwb7Q%n6o=E56=XxIv@89 zb;BJmp#O(J`-cyQ?qV$DwMDR*o{9AiW!AuEAp!H^{=JYZLw5Hw>=mn3@+9PITX6n#2Y9wqAs+#M{4>_L9t7K9@G;9ES6MK@Prn|LZK{S0U?$c&!6#t3i6F{n2VX1%kwjERvz1 zRD!b>PeLBo9D9KISd*LF;G!E$BXa<7_+R41*petlQwf;ZI$JvkXW(3UsH%T+oPk zoFz(z9RYmpYz}eH`{w@7AG@7W#1?LKECsfqPC0F;{|orU>^db#c?E zO^zn|Sb^FK3bfA`+!UC*;~CdX%E z?X|uOn{SxOx5TOmF3)$wPHmD%91G%`9mp-I(KSb)bIw-rtJKLaWtqb#IB;EIl(7qY= z>b`#Cu<{!ST>BDp%t4=?R zw2&B3u*5;|-Timq z0OM`L95%=M{9R3r=ef@>LSOne+NcM$KQ{YnW;00y__ft#6YIMZ-7Rhe@_d+N4>_iq zfy*C^NBkQ+J2JXkS^O{Dw1Iy3k@2|tFnNYeCT9M__efD>TmL7cf`zPddYl_VSyyC)o zupGAMh#9InoZL=Mn=E$NWGDO}BK^_dLQa8_=$&kTp^vr$XN)kPd_=`9a{VXy8HVBK zchxS7kp(Iu2Lw$cpCK^lxxY;*S4`%{A%&PG=Cq|l$t zT`kEohy0Zr?CQn>aJh=)VwjgJGY~%h0a@pYZqpAO z`%Vc{=PfhIHMVytCn)DBFDV&_*?BwGBD1J(2jl-Hz6?=Z@dfVp8q(P;w;y@;t+V;; zvIqN3T70Aw9YlVAk`VvSV3UMiv&-a6VB^?ae(-yCYyCbKzoC03LhkE@Y>KW{D9|J~ z@%b-nL8ncNoi`Mpq}t38%$>2WgUxMYOboP2JZP~V7ZY|eA3ZQhBW!T3!QB#?9CDGq5uW15^S)PY^#0}tePjYM ze@tZBvG5O18rjw=w^qZm82|5S{7)xDQh&F|_N!p@?Z~C}$hhBJ;!~P|W4mcc5io+> z_{eZyMZr90HF{g@H^jI4(~p*0WGp&&#GLvbj_tbsZ^Co87RLvvD;VuK^w3Y_yI_to zg9XIh;r)IUlaSknvHyVbxDYsaa{YW?+@T7L%xcDPaogWm~WcA7eB6^#KBjvNzMRw&?S2vL)BQ5|;ymV%#5D$b8%0CI>xT{N#KZsgFlI zsox`C9g}>Rhp#DEXZ&|gsRvI?mih1cj?a1j7dpGxIBO?<@Oy?}kIARy6`!LHd2~{L zOCkKO?-$00@vSlM+y|#mvC)`Y7c%~%F#ew=bV~GN`uQ*DV?&uQ!oaZ_q%cdHPWoL_ zA(w1Tu6fX%q26`iexsPo9Ze{n^c4A4QSm&wJ}zFuKeLoYUOVtr!glDU%=lgHE>6xG zc>0ZU`W}&;$We)z^Jwcz*kX_4SM%a0GJkvHo7DBK;Q!T17_x}k*UnG(`&#A5d+Bd{ zvpVKUUpE=wGWaX9Hse2SA$Sjc`X)MODf)F!#)6x=Fz+bZ@WdjCc-K7xb=@a&*@F`x zFDo+B#tSRyd-r1u*wQ1rg8fI2VV7*&vj@)^!ZU0)%`)~i{tpw7Q`#HPQTI5w1Kb+k zIwlEtKE6EVum$d7d$kjGRzLC!Rv|AR`e$5x(q7r@62`YCLVpin?BAm7hHn&4PmJqM z{OiHh6n)26=IJ%vNB-;x_vhDEbbENUqMRKKIe6R(?>cV`uB@m(-_V(F$;dZFTSBZ} z2szB)FFpC@hwyAgAAb|;gKuFFykjTjVgYO;qp*eVVID(f{n*e9=8}JL03?4WE>z2Z$$+ zjIDbn;}|(0IEz`zWBVJl!6CVqQg@8|VXm?N=LP@cPm^KDm-ubRdq%&WkAGO0{+<$G zzKTLZh=0vxmn$jpQS!szp8W&i0pY1=b&G7chJR%aWQ&Wsje9r7A8L$AN(SKDdlQ*5 zz${0=l4`yub{E+`2QlTbU0DAwAKjS>r+if+c=8~?PBio_v~#m9p2AKNAWZ>0C^;H61!u;mH|#3 zkKcEZlg@3#Mp=S30XzMFG!2s$xc9+ZB3;ItrSU)FO6pHF&Tos&X!HyruO;|T4*EOs zGSTeJ{|m?u)0v#6x$)!OK^zh`yAv+nP@DE^jGPgkEVS{)nwP0?QgnUJB&Yg&Z%%GZ)Zj+u_@Mj6OY` zd1o;5&%)o>sOj7OC7n`Wn-jk%V;t0H-U&}99V7qhV9lQv;Cra(6?Tj&6OF#$ zc@OvRNv-jhN9X8{kLKZr#9Ea5_xTz5)&tnM-E;^4n9g8jD?h{MXphy5`2>MR{i*Z% z<*-R+=B(WC_3*Tg@&9JBRYua+4zvIZi*KAWH5~TuzBYYH{e6Slxc7(@qd(_o{J)+< zZrFkNa#GJRt~wg(5#s>KCud>Kg##2rY+wkBa*!>?MOC&=sM*g2Z&LQP)>t{7L8+GJ< z%fkDNZ~KwkDG$c}ea?CM>~8vUlD@>v!>jDzc;Da!%jwf6TCKzA zF!rlX z^!{HRTeL!dxBI+YU{#TXJ`W#wM)5;NDB4*+=NCNfz#{US)92!&n-qP5&p-tHXzx3u zPA_D^!uorfm!Tel7n+IU<15wbak*)I#^Md@0FKvBF1oPC*WOL*9dw#Qh+5yu6J5FbBIbvWB9l zuZ-_6mxMf~D~z^nf5j?EcNt@1=SqBK;O#w_|Fh!|kc2JhU4?fUoPf7eq5yYX&+Zpxos>rK*jA^JrS zdJXMRx-@Z4=#<&|Vt2`d?H-)MlS;q-``&B!>wUX2=5?zW*AWd&8H{r}`(`p`SF$Zw z$R>}1$3zC*jwbrhXVXViT>+A;(^xjN(gKIa$2m+EbG z-PZ2+`{L3M)&IS*alfK%rhGC<=ch(JZsoe^=yJQe6I;ahok#Xh>#y$dI(R? zie2l?RsG#>kdXp!c#ox;uDSiw0Q|a`cb1|n#$%3O#TY+}KTTKSB6_*T`;2nr7GVDA zhQDO!0(cv9=7@jrSoJRN-($-TCZ9I3CxvEtx9z{)RqeZa#{0;j0@#5+l8a_E{>84G zujwA@KDeL#ibBzYdLJf`;R8TF}-`J#Kf$&c^pLSGH8D-s?3SJ5!!c~5FT)o2^f{gaRf+%&YA zRkAKI&WnL8>!wLylAX&F??b(otAMU_3v3Ww>=$+XGA6#U`2KxGwv1iXxL>1o*l-m1 z`45^0udhX$Pu+qK;u&(o9P*W|CGqRTCoUp#QiW&avG_#}io@6ygUBQDm6)(<qJKc@J;Cd6>E7r<2%}top-lfk!Ip zLO+Sp4?VB7QHMR~CwZx-mtz<|2X$SfoTuBUYaMKX*c#p*H=ftt<iSRe0t2)SHXB{b53iHeJ75! zGWAr*KZ2|{W4yQLJDx-A=nOof_*+oqV4l3kxBM2H{RRolyW7!@2#E_^E)v<8L$z<)7?~QIO_$> zH~Qm%OkfC&@Ij2u8VND5^9=@{7>3ONe$s^PB+7nD4CeS3$gCBIgZEIf)7~%WgBO~c zrR^YaUdr(GPN|X@UkTc|<`$z~l62F&&;1T+J7^B^?Z^u4&;#=))Za7bAGW`0*zNl_ z)Z;#-hfb;P(J8V~zt6y!!qcZ9;`3Z{P4pGUnB2I_B0rayq#(Sf3HIQ|+wjTUPL6vk zG8F#E**B3Zt%p-igDL$N&B0f%-(LM*#WRxE1OGlnKJD;N+l~#cHGXY5iL2agmdIiF zPIrV)90Dt9gg@>)^82Slr#(w7Q3X8?W|;N+7wBM?Es2bGRrg#rn0gN-CX9M~`ovdO zzacJ@viB{vY-};3IseH%bn$1{3>YgnZUxToapX9#F<+ zWxjcbZxqMgHo(8)s)z~wE&!~l`FZoO!HRSm9^reEF@5`KjdWS>m zqF-C-Cu!MtAAQ74z0mWXQLoD!tLQAs6rmL8f^L#7H)b{*DP}$>;D_O*l-+G8F$ z(o6U88Ln+I{C8S`4{mY!hPdxJY#X@_0*U>vtohXd;*oRWJF6(yYTdqXM#7`9yAQ>0 zyjR3wqI$E;F>ZFm}3fxNoNs;zojiTfab|2uug5$2?|;8NT0KTs6;5y=Y5o1izr1-=vqR%Bk ze~5RS{D2k7<$O}#rxdpAEC0X+HfD0&kj;_2ugU59(b#7hY4Di- z_;V`CXE%u*-8`TIIS*iscPK+c@gHMcnr2}~4)Nv>jj{6`*Z`J!7z~c~K0cK7y%_gH z8M`Senk5mxQ@_EtnlT+^Gx-G>Z|M|2JY$oN$a@=}f;WKmRUJVL2L63%XAwga7x|fa z_!m0X(MZIM_CeO=+23;$?~Tr1Jd`{WjNP8d%BN4_f7c#6btUpyWOB+aav)5{*S9D3 z@`UvLqRc;MQh^oV*R(i4`KYmdb;DL(Gbg%Sd3=eO>lRWH(*G0CXCE9uemCQ*p9@UC zIrBJu@fI?+X*O%4JqHU|ZI_3X#A|e){kRCd_3sn2MLsb8s#Ic5I3{v&BDp=Mi`0k%ZgN+D%L$7<_udt9k%Ip{ zZh((dY~n`}Gq*BlR0jX6H`-|b8O&GJ@Lk9oF3+#~z1`avoTF$3^J$UIcKJdd$i4s> zhWqV>?|*EipR3MENBlt`JU)IH{LR5 z%NYI3^L|feVE^D)-WK|s_n`xXr}5wQ_dYnTziojBZr21kw80qGGy(5&lmY8vJVo3} z4EA;SIkEI^8c>y-M_~VB@s(NTz!p{8F6Xd?HY=*z@dP@^@NIuTTV3CjIbKl;D{(Z8 z;nei|hw1TmtIWCv%sqMO_j{1R2QdeQ_QRj|HTgEPAro-!FZ^JSbR&1sZT#WNAXCz> zKG6T{K6bgqd2!$$JJIbr;R~~)5%yO6mLI{VIGjxpZbA-63C*Q~dk_5E&= zSBKm`IjGuh=nRTt@J+|R@Q!Ot@{qYV3H@QqdnCzMZstFyQ|*;i~~<}7z47Fasi*vqjeD0wpSo2Wz2TG|d!F~4JxuRQhTrRcVr+bwcicpG{(rPF zv-h_pM5c^QS&GbD1KVdCWSGqG>i?pmKlS^nID_$}ejH2IlL648GY9Y7vE10ET(6?qprW7lYHm4T!2y-@vdCAO9H#I)cKxs`tB zgUqpe0_*jya!MZ;U-@$rk3Y}g5sJdF8HXo7^!CISUC&Ehxtq)fh>Low`)RFky7C&Z zk6b^z`;q&e55L%C!)2$eK4SFoZ1^F3LSJ5vzFcgAuA2wtG+!L&$23D3MCn86M(IFl zO-XW({)t`V0{&}9>AN3XcA7nm^A@j=?ULzxRlvresQpv@ZPnMY-rvT5zu(%lM!VN` zwP)J|+yqh~FD>f7mPXJ?sEaFUdM6_-!e= zvk?6NjN>>wz+RMir7Xl;T_Qdc9ehPHexu(l1p^I0ckYJne4lu>B*-b{$2ettFZ5r! z;9>N+B-o=Op4IofO04bvI`{y=gFUIvP|yGV{ym#M@-OlY1G{A0DauMexrR(os+2KC zYMf)uo1(}9yWr*YmjaVm)0b*|QiQpQad?P1#*uV(LH3DA%F#S8=BVB!o zQ^oe~Ny~qbe;Xcjk{r!_0;sadXA<2-F54o_wYsg*2zUw~ysl8LW zh2tlsJ@|=w-r=6$4)B$CkHBaS5ZjT#sM~vBVL4sAMV)&Jf6DgBU3KA_$69W6O7oh= zH3N#_Q%au?wCnnuJJ+b!2;@`fdci7nO6h%m=n0DQu|GULnQQRsIN&UvbQyVG(f3v8 zSv}BWz}DR~ANyQrRAPueS!MoH{8xt=$3}zCdQxfd%*W60#~6$Z0M7Yl4zk2Ia^Y3h z@3)2cxs;c6o4v7^FkxkAl}1 zfiEYxfUhnxj-q(zl=+drY9iy51E09u1w0BI!{%Y9j7^@B@DwQ%xr7>nPu0>#%vOEB z($kFRdtNioWoPu+~?^B}f0Sz&L-g7)*B=@of`{4KBvo-uIYS@R{D?VNXj$4C3d)$cu^4O&RY=iCHRE z&8V*?X*9n|n8zw9Z2H}sGxlxBtSiFhfD8ZbO|WxkY=R&5GO+Q&y`(9&yQ~4c zbVgk)Vji75$}YW;^@j{5?i>tK(X0LVW*xN23)g#JosNtGwjQ3+Wn+!tM@D^Y#5XFG zYi=(h7Xx<7WVH32Fyam`SmatVd^#4A!!ppQiypz`@PzOE7u}5F-7eq1z?&E8vma*H zZP@Uw@jdFuuhRJREGIuQ@_(WzCh2$#jAIvmKk%_ci?IFkEw{Q`WWXZU+}Z@@@eCVw zOL7C@htd!IG!^+oTJ=NDuMP$ZHswhR;oSj=iNEvX+tRT{bU$nn$P|gt0g@mm*6;_r zOCoY~87?|<4JP6)Q!0J(6KuCoZ0kgMQDPq$#xgcsRA>iyl& zY4%}D+r(IJ#`u5T8+#lwc?!mQGsb?#&*(+2n8xib@teJ%>+rx*qm6ConVwVynK`6C zau9Ox(?upZ71JWM@B!$F@8HHUtWl4gk=CDFM%X6SF-|6iQUB=4b>ItY8evOv=^jN7 zdCNMU&*&D#sIPl1blnFJru~pL9*+IHpA@{W`$q@-d>)*z$R*b~QBLV+_;rCtN3qHo z?4(D)kGg<0BtzzpM(G6J|M)UCKk&ZCl*Q=B`RNaeE{@UPz9cs}OVG(D93%ekAvq?{ z#Xo<=cRVvOY#E7L|7wcE5KK*SF9vKj^o^BC;+S#}-mX zQ@T(}a$Y^Q=b6jGz~?jYyEvsZ-{8|9AC(}pyu5}zxfSE@4(p$w*S$)>S|M%m@q|a@ zY)K3-nBpBU&W|~WKVdG(!~YLy%hGJeFrU<7+k!d^WF8p={<#FKdkW<>0^>7qmy^@b z!G4(K3R@ra{*acmGv62a7jt7a{3rQcvyD}p*udUUmfXT8W}{OU!ZU_9BOk?i@AkZo ztfnY_U$Zo&eod(yGH4n4I@j$^t>^f0bBX&gk)L3(O}^IC`>rq^6}<&3-_zB*&;B{! z`tuna$4!mFcgwXm$;E?4e=iA^+K>Hf!LLumGx*MrL99c}+*!ttym;thqlu~iSs%QT zzOuTxudHu}kLG9NKJI6DZl^WW@2d8F$@f2>I~-eKjHB39uy-T}=fBv@;IE$dbpK8i z2Hy6NJj(b1J_1|zp)FUUBe(j5fA|vo36?Ye^Zs*h8TB2y8=ubv;G~>$J0*QYh_m*` zkHg~}b^lo8^4QCM8~PBGr7PSQznZ z-&s%X4Dnt0edTj8;^zzD_i)}SjNQ5V`GOy9_@rb@~g+> zeo2MzX6+*n6L{Td zbg``Hm=TasYo9bpgJ{e4k$sfCvF>%OOuDa~w?z-6J;mevD zOd}C^ouaDrWjFN&7ge;|18-Q%Sa8#_S;Pc_D?cp&ucyCxQkl5MoIK3$@3xDUoOo{L zX-}$w{NbkA_jUXAO=#T5eN1id)HB9J8Tjj|g{+%f!MI+XQy!beH|n%lO>%>GArCO} z`mSr_z3lIhJk0$$k=H*F=j^5w|5yiG9jki~U*dy*e}g(U!3P;S4Rc3QaxcWv@4BCU z5P6?|zf&&UO`RKIi~ioiKXqMoqCMSY86(m>)4!kLKIceA{e2C_g1@de>LvM2e7z@; zN47iTv<7*0!3M73i}w&rr6S}10`q@0#{X&NeMK*^3)^YavrWC*>{2e{|D(v@+YYn- zUKQQmkGPMUCZ9Lv=z;uh^+By&YL>!f^cne)Clswh{&G`W`btOQt=zQU>HV#_sjqI# z6>iGD-gt)Ew=}+SFZVe^8TWydIx*0D*k*$V)R{-@2HRfzpPFsP0pthbcS3##4Tev{ zOLOJJ-rvth8guUXoy4Ri#@8I4->(pHy7+O`WsW>n(k5dUiG)nF^BY8Qa}UeD7YUX3J0P82$n) zAK2yCV%D6&4mzAX6JMe_rR65@f~H2_-GZE68hNsBa-)uxoyO<3lCIYeF25pG4^gn? zDw=}a5uUbUr*M-cvR!;#@rZH3siyN?pTMY6?m+(GSQqA-!L{}CdX+Y=Q`gr;k6AlF z_tm{O^|5F7jJ`XkG`>pUWd*?iXU8Jmp*MMj(vV~HDR?d0bLi~FTs8vt`>1WMM*5wH zZP9(X`4_#-i$3dQ{6Fk!m$c+xSu)M2n=5URt9YI#wRvflN-@3nspF&Ode_Nje9NuW ztD-ieGc6#RelE4wT_Vv%k1?TGN+FM&4MMvl4_qx3h&V$SIq*Zbb; zKCxF?WITQgomulfFS2OknpQbo*d|%v?a8}3<@gxgR>3Y`z{-1!{@%%lxT`1N)CpN5 zth_O{-S2l2Ov;lszcaC37yYN7aqh7zq!cOY2pIJt?#ukSSy%&CNwUPVERwY(660wa@@gaF&6aQEa>2i*IT5*V7 z>H$Bg!kP)3zi$rhjXqx5LnqI=aCnJ?s_=KnI3M~U$* z2Vb~=oV|(nzQ;CcBlLsLcG4V>54t&ZucQNw+s^`ex5v}rp*#3Oj zp}#%XZ9R)vPDLvh8RPZO4v#-y7$;+x{}(T}%6fQ4LvYMV7g^^4y|OSi%MAyJ)0v0O zax?M>Hp^2j@U6t2)*K&U-vJJJK#W~?Y);pH>t|KN52X1H@*|KJ=zeZ;nP&KVtf6W!_y;Fn)FixNn@4-p@C?;?>nT z+u+;b$$AznocLTtb($D;{BFG7cf6AE{txaUhjhgkrk7PVU7Bk0nRHH!n!G4SmP>%erB}O7V)E4DMI;n$|4Ewk>~7%uH%%~(XrPMOPC&? z5@dn?%$5&b zXMEPBW?u;7&XbPK)_tH}V*HCHn&m`K@cN5J+edq@pOw+#5C?UnXnHWYZdzlT7yu@X z-mmD*8T2=JPzbX774-b6f!O@h(q~sI8#uB7a>eLS>{!w9OV33Pc4Q0x7UWqyON>6e zF#jm{730qz*<#iN^4F4UUXA@L7d0Ni|iKQPkW#56Ns z=ESBQ$;T?`#@eObWBg~)qZeQ|S;_A}>?Msj@B1*;w*<#Mi_VbzCGtQXhwT06ki_)= zjp*f3e(O5T56;-|ChL{N0$UE&`#$;^{V?D;d09_6BrS51qKQ7nu`*@7+xX83{8^44 z!1GMH-zKR8X8BY9UdDHqON*}|^Y(sx&^+mLWBu%Cv&eA*kNW>hC*k)CkoSvLAg}gv zY%Y`lu+g7o9$r^ zsyG23mtBm#b=UyF7k?9j(dMv8`urqkbPV)k#!JZtKGGDu>ee#yL?M%p3cwE!y}8~( zi@d8(zU5>#sq_Op@;-4x=+aM+fvpQz2k$ZYw|KuEZP5MrMhnW==dZI$bvqGe}J2YH1U3BX0Xt&OTFuSNk`*7-Pc`s%v!($jCN4_ zUyLL!CCDm%b6Jx#7uX24-(rmaqtsKOrw*BgJ$oIv!|Q2wIXRRZl<@F$%*nGjzF{rC zvEU80Q-L+k!>5|^n^GqgIX;P(*oz%AIcCSg#vu%vm|Xg-(og zNX`;YDKqNdwzJzV_am%_O_`Jx$Z1hsdN~>(_~heHimv3-}sK=d&px_9PER+Vpc5lf;3L? zMVE@^vb+4(^ZvCz(IaE;^T@i*t@w;88jKuskokWMW4|CWKr`34*GEP6!P6B*jYK_A z6#anL$IkAMecyGxC2z0KDR|rHPsdzXt22{P&(9mfL-1kA$a!(L>2Ga*l-PkNc8SXN zSTlRaxQ9=v)IIj0y4lZsen zI*FI6opOcfo-~d5P1vm7xScSbBykT1yubT?Z(P2A>i_QKx=}ReCO)wfyz9PDOyk;PL&=+#nmhyGKC>&5 zR~dbBT4m#%2D@x!e{SablQX|Vj#eRWR2#L{0C^mc7d*)yT~Sfh#q?`*9!0Iefp52g z&vZ1N-C-g=_xLfNWPj}9_`y#n|5Ykv12E+>ebL=1-BzN{Ju>dUkN@3t96#BA(Nvf1 zQ61ats=GSNkS7Ldo-j8Q`^h)feId`u3-pay_(E*1XSA8Ru0=xqoNLVaiVD3m%L?Qt zMT-)F?e!*qsvkCMgtm+ZCnQ!PKF_*LtVsi~ zqP$J0GwRMCtSCQN`;Fr8f8_O}OMuSxJ<8@%6r&AGcq-+dTaw^vqh14TaQl<~pF3)1G(!^k5#UysFRpYWTx=Oewq zOKtFpU+>Y;Q?jlrGFqQ|;2pnoU-*mG*_k-{;?r zK6}$8k3I0fMjy2zKdXmM?|y&xww}p&hI?Q5?FH`FxU5A+zOYI1cC7JLmYllli8o26 z>u68{T^9~JYyV^e)47BV8l6kgtlH#Dh_CCV$4!0SmV)>keDKz7?h^Yo9NUVbx}2A% z8@XssnI#rB!9V-_@u37mE4u*OO<(NsBk+5`p4k(AvWnP%`cHK|+}uD66~*tYS#n*) ze|jT1Xvf=R)J|kRw)PpUvHsaAN!Xu@Qjzi-oPO{b{GGrsTk!u+=B8}O(r=lE-kZVG zUhDVvAEC!rp%8rEm=`W20N3JoJxWPR1xhE%Na4NMHl?(oIB54J_N&MwbBdcuQf!`qa3r|rQ*GWg>KLu}1%DL?w^h1B1HH93>ZSccCi_Zl-Kg&+L zJV*Cg+K3!_&qOx%{QF++dw1?&wD-EQx^CUaJhu-TqIaKSUAG?&`Q+-CevJKEKh1Ij zy}2&)ZdhFG$6!v1CX%19+fUseM&ch37ys?IE$}@?)@lI`Y-9dEewTO07CxFW?&HGi z+|SHHEa(#Kp2xwh6rCq8X`V@}nb`_#Wdioct!C*km3M(Jc+zon5;qM>4F-z5{4eV3 z8vn;Dvfh*nBN|-As0%;W+*RW|{K$d+zUH zyl+8t%3XQzjiGOszYqT}kIw=+=Haf!U0O`BvR);)H#VA$$bLD(h~+OyE`wS=^30EK zK>y0jT=KtBhW7aOGxr=JH(CI`F7Lr+?#%eRPepdsi|75C7G&)fcy*hF@RudXBG|t7 zrVz<1#Ai$+PbGMHVRZ1U@KDDr<}h@lk8O#`LFTdJH+=!T|1tRUX5@M|B?r4~06*Ai zBfju0xqk0hq)a?t$&Fml46MM(HYw#6y!k!FhMnUjI_+V8*Q$sQfC(80Kj*CYzCA6A zOx}xF;oEk()>_wvwFUX>J+PVMk2OCUjtt^SOBnwTR+(hRdDhj*V;t+_!s1V6bx32d zinI6`CPW8uQ^D8d|G*E>4_RdrK42k~32V{gzmen3hw<2-9DTPOVxC}pv-{eAZ6n)t zTU4p7$7WD#{l4j3`_(l+(s=XbVa%0N!PeeY)ORcf&M+g4_|8PwG?5M8K6XlvV06*G z*u;y_KFl#qkgb!^j?dx0@rV~HU&i<*^C7eJCg*Gd^W!M*AehA?CYJ!f`@MfFCDGFFFN>A$OGfq>R#)YdC&ds`;T5@$XQJv zu>Niw@{J*THSBD>%MkYOV*XR~y|}SIGjpY)r^USc`uaKGEXx}n3^WXRW zUp;ThXL6x$!#_2OO?oKoZyh2+TlleO;6ZI`kkgRc?xP%`#6WiSTWle3 z5w?H<7~$THe5hH zYKBBI^xJ>Yx}$o$ya0=JQyu2ne8|@~k60x(Ji23K{PgMT2f=LT{2(u9T$`NEPt4T{ zo4llap_qffIoskZiC!0p-*G7^D48gEDJ3Xl=v#ezSS8OYa(k@921y@I>hjgERufsb z8u;@O=J~_)i-Y=on;mCu`B>P8k#)jTEb>f;r`{gp|Jn=e!9U1h!T2wRe_*A87S>|G zmkhrDEIEFd_;4l7Ol}L0wpaHn$UaXhkFD$nr33sSF)~TBB}N~0pZ7io>qZaIby;*A z_M^MxhQfYV_?cOvf&>3=^ozdMHZ8HJL(!4o)2aQjy$?j^M=yCv?iNK2kZnEb1p3I8 zg2uRVA6wRsd2lrARn*~HzP}^(@}ywp1&}k(g6EIi$T}5^@OQ+=EGBj*Pnv<>Ny1TD zK52i^IC22I{a>^a`{jYl$awh1)tRBM3#w(7Qs}1J?lZq6^^t`o9C9XuO@?5X&7|z! z_)ONwNp1#o(Wucaa`riP$poym#e8T*Pmc(;6_s)t`F$()I7MkP05kM3$@U}II}?Lb zoc;T|U$yzy8|r;EQvH3bWhS#cLvEhd#wv&6d)GtJ*2FFj^4|9ZKC&JkylRZ)<2}eb zxQjgD*bTq+BcIbC-NqllH6PA5i**V-it+DBxoOMrG&C7LDZ#|k4TTpxB0iTk^=*iM z82c54+%sgwo-@7s(OG;6{G;Hriru6*@~DGnUgRE%7GKuyes(`GraX6UTZ^fuc0e76z2>rV!*Ti*=bN9XXG5*br|Gh`>o91{H z#(x}i!micLlC_yx2GIxN!XFdF((hGjD6t)f$Qf9{`#aSA>OaJ0bsyhuu+(l`mo^@} z3VYnYXa<<|)nw#FsE&Q7F7}||$kvR-SIdc!%gg%ab9qJp{w?@=B=jLB8+-j?e61A~ zrp>dR(D(H#%=!oxWV&@$IiJBHudvxn!B*Y@n|pYwjjS6&`z$_S^s`pzO}=-qe`5zw zbRHW~W3Yv(@bBMXteYO7|E6`wb#Uy%C0JMB0sI|(>e(d5d`5ir(qLDmluhj;q1gVq zA$!i~V3W4k%-`fCCO#)N%mU<)FHhV9cEI1`kd3e(KW97741aD4_TGXVQ(ei~yu?SI zfCuzvob;%NP8f)+4u5aFo;5d0VV}dFrNp)9yyJ6aMLpQy`t~PYt;*y<$7%5nI~g=D@EQt+V~9pw%cH* zynbUmXRL!Y!f)#TJ6jwQ_=&h@=Ij`?yvM|V`3~8LKHKLvJ_0xJ3BaE5^dmlxTzhyl z7zehDUM=hr3eSB@dnRB`zSz<(+tBx-ZF0!Ec2244irrH0_%NQne}st0JzzGCnfund zuwnloY=rpxY(a-iicNT3NBB(-)+d~ZFBbRP-iZ8`N68yGlw4b#@$H^Re!WK6X(N7%3$m4+QTOB>`b3bB9 zb~&W-*ol4RHnAZdHWc+8$;0tfwJ+Kr+TgQy{i*!}u3?i2 zr<=zA;(gv!*L4HQ`=Y4zId}_lbTIpyHo=G7!w2vjby`kgT~Hau-iaATzewfU{}$hp z8Te?dMNZfe0YAP};EcOW;)lKb4gMwbu$8x9jC^KH_>V@XW&CeFNuHur#O{Q!E+9O0 z!F>FL7uludVsZd2BfqsTzL!y)Vp(GJBlQmT+kxq(G2TJ#y9ACANd3BL(M$L~_f_=u z_uupFH8IY0UlV@YEIt12VE@Tl+gToLGw1x_vzl^kN%nj);r`2rq>R0gXSlCVQU)a1-^SNkESZ8gMu9eCj zI-_Sj?S|)N<-96KS=SyLz#XuLU9`7FjTMjh&vah`=&`u4vjf=DY^JvhW4IjuDw_`qMw7!9Sw2)-XPJJ?K-f z0=)Z3SMZbQ@bDPuV6pGv2Ur9-UGeZZ=(pgV$1)LPgrC%lJo=gHIcbB5pG40MPczXw z6dhP)%n$1S*w@MNa*aNRKVSvM^%Hc3l#J^i;3MDA+utuG_w51jtK!%Ti!m3RcHIX* zjfG(U|DwLFb${5LUmxvv(fhmpbxrtvtH7{2;>(nU_xPVE!C`D>xpn*Xx`H1{WL+0e zk^kpT)z5v9?(ciFe2xBj5qu53cNdtfqRn7%2RS#8{ZTiub{neJxq;X`2b=JBC7z9a z11YPIT4f@3;QtG)MFwaz-)NtW_zEaWlEAn=Mog=u>5Omf8sj|Adl$jR9b*suw!QAt zyHEeS-rd*Si-lcrCweKx!M7yZ!JLPUDTr+b^oWGWnGwP3cTK|gjQDapJf++LU*hkG zL8LF_dTo~)AL#?g^y|{<_Ez_foI<}}G4MV`7fW+*S8hJ_e}#Xr)nU%rhl*kIqijeEAzCJP?-W!qcR&?u!T60A2 z&*Wp1PW}EKBkE|<>Bv%)3A33`^4er5{v@7MhhtSKWwnJB3#U*7BI)mT8D zLvYpbv_F$m#vS(N5B)D%WeEDkmHl>!!q{0637iY{Wkzn#JJc|ha(jQ!^Exr!;WSE#+ z%5G*XFwQ42_KT&&{>JtRJm3lYdQnD<$M1ENRqW`PTiG63YZA*^6#y{w8NF<9>8fa4fbyjQ_RB-sQ?r ze~kZT=-tC;`z@t7d9p(ewO~!DR8|=s&9UG?lt*{RG=0{wgaX8~4oz_TTLQ`rvVVWn0tEPw`)A z#dzO9|Hc1c=v{*chxLLlfC~f-FiY#3R!LAEIfS_^^*h>n8hycKtM`2VCoqkl=wOrf znIs=rP<8al>(qbXR*Nj6bUlu*H1gSn>B!Fc^}B~*(@MDw{e`((*cLd=xaZuLlwitH zN_6)3jz(-Ku^pw+*LqZQO6d?i7HhWEb#wI>KKR(L6nziy9;ZP&tuo;vajMui#`W=K z9X$NEr@$NbvThi5pz8^cBc|aCm00tq2FwFhkcAaBap{L$Ts->EPX0tX#TW?jl`LQJ zO-xBnPy8_y)qLdLCTTJm@6xK{pHpN^G-795a?7bRdQKeRvH=u2M4u$Sc)P2gt1EU? zHrizkzA}-TvxW+o^XQ^B8Qlqd8hm9^EB&1MH*|dzN8eL)?yA0aitB!F20FxlKRko6 zR+I6Obqg{U zbNdbGxx?R>WFI(a+9AXNQW9WmsCNT@tz1^Q6d8X`sy075XV^$$O&t;BT2hA;4EXbk z|Kp!Jj29np%!V()i3;kvEtSZ)B)F(qI-WAg`Gc%o_!FFyaX*q0n{Nw2Mk`yBH4Yj3 zy%_sj*~ZRGn-O;r`!um2$Ui?Bm!CXr2Uo!$@AEC;X*c6P+cKja>UJ~6)$6G?sk>R!+Lf+K_ZEBcgJUpws`7>rGi|33%*ilk86Hm z+xE$eeF_}m0OP;?A@WM{e_F7>^lXct0Ixd6IZ;@bg6lF&VI3>lxcw!QoWQ>zZ56N& zkNcHCuL<#p3z~pGm!iR0j5<;Ozs3%88aqwns>c3c_9+@ge5s;Y&8+fG5YG7>k>l%rfrd-lw)3tGLGENbf!{_N38g9)YJSiu9hfvA-JqtqRy!UUchyxzUfC zo8$t1atoLvhMyrHi9c;y9{a^fa$I@DC8_&_7EpgRt>*VT;uJR{NAAW3IN~njI{=@; z!)T+-ZwDLVxMDxWV_;OGx`nCTHDQ-By22;7>06 z@(cC!WgRy#vqs3}v{Py1eSh?x%g0z-b{w`nc)&>fZrkGDHF-B{{T)HJ6z2Vy@Q0(= z9vS~%umOx;4EAyrj1Ji(8a&|I8f>H6;hVnX_NeS6Lo@;mT5cUCaE=;$rE z$Tw6DU)`}_vh;(IwE4sb$UkH7mtud*=lF<5A@4(J@NYi3%^K=r1nc^OML57cqo2UH zkg?USB5TMXXQbf$i}wY;9YpLNeR2VKL;E+Zd5_Lh7rD`fO)3n3zu1vj)1V^VkjS z@(Q9mO!~zf zg$*DA{;VHev6^ES;a6S|ALNfJE(l*?`dt~1@4fGby=olmGBant+GFsP@=x&FO+hYO z#{D#kKi~Fkw3S?&>|@NgW&S_Uwtq|S`D}Al-N&o+G)udt;Edn^JGo{yKEsP!>b{;n zqW-RAlgVZBm9+*g8sDwHx72oc89v!NkZT6aPg@+jb_d}n2g)AKjzkt!$F^1xIzA}mNEgRynez@5-)rYn6z#{}$uV z>N=L0?X{KY703YRu*EBCik@FD8TJe2?=>62*^3cZwvM=D#(z*1v#i7?;0^deAacNb z#=q}zY;s_yzUafFkbA?p{ula7v7^4S51Z9~aE3nU^iAPOi~U%SopJq@vhNsJ$vSdH zfuB#nW|s(_7OOb^64)EQe$(IdwI8tzU;=KkTqO=L(D+8R|K?oQSfn)AVv|KK`To!^ zUGI@{U=zsVE77sHG|Yz&2wMx~7w3PbyrIl{NX{{~0jVq!8T-wBe$TIouG1eJDkJMq zPCzF{|ETbp+|MS1uhzz%^9$bFdx-IVAN%Ozanr+V;ayd*y(!w7?9WElGH*V*238C9 zpYjAgfisM@Tjs*}^qKnap4#~5Ge&YT{yk~V3-ki!%2-{t_%i;d z!Uufe4|Sa6nH+#^khV?#ioEdfgM0}eq z9=YB7Ah$E_qcM+!u+7FT6Cw*WMla4e%lP(m@asM8d2hZ=(ZIvZqvMR@p3igt-k+0v z;>hOj&?QeMHc8QFtV6qo7=&eZ`E`tS+c@r~{1Nr|P0XCEs7V!Kvu47xR+2a41@Q)% z|9+O~gYJ*Bz*amd>o|Si6~)N8P=mg|kF}lh5o^2*`(-)Skgvp?w96*vXct9erW?HD z2eN`E)j{4?RP>SF=0q0`x`xe=wah0n7aglg+RQ2X-F#eQ$9?@V&MSfq<}GDpIk3ZN zW@$JWf8MJ$`Sz0az-A)v(5~Sr09?;aLHo%q0dBCMJU$kjzoaa`;Rj8qk25jw=YtpA zItK1<^OeLih;w-e-*h71)gvG0dDf?W2k)4QU)E5oG^f2cb+t+vc)(LiW9IGA5zzm@ z5N##MOAdy->^*tkeaUZ!Z{whqx-RnNHQqaxB6YZXZ z%t)MR5bswb8G2qe=Dt+=zLT+|D~b<3tY{N>!|#4h@EF}*6F9HleSMBP-YX}01hJ=O zk59}x80p@1#7wJu{Ip7MG0RYF02#o0;|1HL(Fd#4XP%Gf=iScgKAvR*&?MG_XC;#@3O6ozL_R3v3B>ZvKu)iXbiX%I9JTac1gzE z-~5)*7rNYq?+qgk@d|4d!*3JUwn@QEx?L8!{A!O7cak(r_whH(OKy7o$(UQ!KJ!!T zlwXbcC2KWe&PUs1@(_Jq^_a%B?tA!kGI&D%*hYKipnmItHB|Sv%8lsyoEzPZbKTeP z*-0MZoqAl?rme$M_eJ1GiO4n0R#7(M9NGuiB=S@+5%8qR&-MEzP3tR*@R=BWom^}m ziL;^ZJSlJ;yc->E1GdrW8__%Qaj|{Ex0sl!#@ET?h#ZibIlLFY+kLi3R_5^&N3eNg z12A(=O>}@|2U){|z7mCbe(x9je;D%<(SZleU`>YP>3HcZgT7^91kwL-9sjQydH-S#2JZ+G}g9$hbc4wJX|t*(aw zC5?7c-+6buQ)&}?(-2?Za$wtv-k}SObmdf5{}0}5V}4^j8T#^5^dv zL9qX7-SqD?$911Q23F~&ZsqOr4V_{RdU^?XKuP#XZ~UiHGR_+@&fhcsTTuou_CqL( z*&l)Z%bU~wjJwm=Y`=~tJ__EklXf|bZ(7wutiAJ#H7=uJi%fz%vUZM@42ozxRj#V3jB1@Oyr7h%iwWaow94Y(bo0GS;Uf7x05<` z-%fq3Ep?Ivn?n`+e)@ye$IFhM*n_p>U*Jdi#Vo0bGjY>4`uh^b%L?o)ZJJ@zYl?2S z-I)7NfM3LVg#WVB=sztAdG~d7uQ>GOY3CVR^yTn$xVNuVjOE>Tdu+q^s69SogYeV) zsjsl13sqXiTDX0YWmg~%S3@7z1Qw9ocwP#|{jCtbg|WZp33*)530r{!#9^E^S93nL z#@A=DyJ5E|g|DOUU5lhzLtGKQ11~PHRwFw1TJ(?OjQuo}^}giGc42#Ki;Ilq|A+I8 z@2{N^Trri8q?(AWBR{$0b|K>)rq9CX$HwrHTsfJm^YSg_S--IXvTHN?Zgc#T(c=a# zWqo)0@wf@d_{+?4W&^ob85h$Ak~4R+Nj{uljXCsvl+Zk@frGPW7^wIFE^l* z7b33*K52u%ldp%9#ngF+J9_u41q)3wd3k(qL*nSuc-Q?VA8b7v9C8U6P*JN8 zvot~%{}#tCmu|DB7R61c_GPcZfs%`Hrht(1%fu)aX{Poqp?{?O%9ol-}mfp;1kFuEx*~MHT}2wTc^YV^G$Cz z`mFnV)HZT#>JxvTyvy+K$KHC8_ut6)FT(h5+Q}^WqF^6jOr!zlA0N!PXZ**(=Dha_ zeji|I2ey#MmNJ!N@fi1h$RHE*kv|2SMhBjo7+;te?JTl*Hkdi*4ezAu|5R<_VRFE~ z(EYl2*bhA4EjTIb`7jPVsqA#4J>2{A97E^w!-p3eR;%3TUg%MZDhBH|eVxMi_Vxby z`3b=NXX4+R2^)eZjZCV?*XzRYfQ7_i<r8C=4*XEBf=&D&FElb}WcvI~@+j7R3Kq(|?JA( z)BpRNk~Wj<;eKwa<{I;MWWq1V9W9U0h2;#FeYk6?_4v2Dwov*rQv^B&d+8G#Qo&wj+XUI2!W79MbB zzF92zk8VO9-9TMMz?K;e8PH9g6JyKIY?0*j0YxXlfTtEQ%Rb_PeVqC|ON=l}*Tuwx zuEd8Tss0A{^=jLjcsxbPTHucn%^2S!i@{szOVi*@>t7KQ&Hul7*NZv5zrPUe<%?Y+ zX-lX0VJ|8_RJZ-6^2U2MNY8p~d66~tv3AP>i)2RLUJ2&Wr3td@LTnk|jeABxK7UY_ zT-d}Sc+w&K`4zS6M=l3sEl*mLOFzq}GQJkm7{iptBdM>*j9GM>Y!iq(-l)&X%du=u zixgp-Uj3$+DzknyJmMzthM#7!w&)yeFYNcH%t8d z40y#lctyVB)ZJ?2wDR~m62H)N1nW)2G)Z}|q-*{0X@)PXq(pfSJ_G+4T+Jbi;*n1l zY;zcVH#IRc2k5hn8sPKR19_b}V=Fm5F0Wvn=-T-A3@7%9c0Th19EEnwhW){EL$}uw z#^)!-c?`yX%q8UBAoegiZC3yuu$B^wV^sI~14vz$9Gv*8#8_vvdwKfz)eo%6v<=yQ7`pHi{F|Ll$=J;3 zNA5OH`G!1aV;oY0`cc%!BR({&HF?I4>$&0nL-OJ;#a8Fi)y6&s{{-V)^jkl-S$}`whO-Y%li3*v7l<%Vn1C_}1q_SN@4k*RqoFPHl$S$Z>>^NmlrA5OyTwDsw!u z#DJIGt4p3L>;Yw{tC{%w%-oCIhOBk30{NAlcKN+nKf{g;5^@fGRvC= z^xN#jpd;UuM$fTuzxoI80pq%o$c?Qx_{cW!hEoga$E(O&f}E9oGd9eW`1Ipny|$!H z+KdAC;@!@GNlXTB_%;#yP8#wRk$3JIb+m2)co4p)k$RKEFU%or$LjB@P3&JC`cF;9 z+`4^6y{NiwYG!`GS2)l$9;<91=T1*uj|my)w=2@u;aiUE*w~1dTup!90}nimE_DuU zUXiJi?qgGwtrIE?{-6Doe$I`%T5gz=20L9SIU3&M%guJoJz@p!6BD|WeC>zGSIzIQ z<>0Txh0aIrEW>#0w39r~yx#!u(rDm9Hn99X^o^L^;7w!6WpIx8-znsAv4Rh>U3-A_ zr`cAfGZOCg?RoB-%hg0q#T?UVHX z?KiXj0c8qh5M>8tIpr?p6vYyZyv26xN@CT&k~agLs}6EXg%k8WbeUoi@i9GaJok}H zhEUH+UrE<-B|qf)Vi$IRfsL)Gn3&j|sMswkwqgf%7pT}>*xib)*a0?nxBlPb?0xQne4pR*Kd;y9 z-MxErX3oqxpA+Lm-fc7a@KVyZDfL#vL(b$XG?CZKh>X>Qe3eaEt7N^CnD!D3o_;s1 zAnV+pBhSSEWVhDjR05mdn2t3xz?jRnLHEaJD!2x?YX-))ZNVfGnD z-7^kW^dhFAr&Y{jd|23ud`bKlx&gZ^F*{Rv&SdcaEBpc^Eh2A)q|=ie#3JN^)z~1; zG3GX)ztliBZ;AbPE&VYDy{Q%$Z(u5ec(~Fk0%CcV`>YT03yhsOibL3X`+US#qY!hn z7yimSu_f%n4{jcQs{!ONX1%Cm9OI1rx9Lo0k&SqTr_5)Surc`aT+8Wmz1go(b1;)^ zV1#+V0W|84d|U}TR-g6c;&02EQXF5AiW&&o~C*wW-y1%o?yz${ih1>=QhJ~K9SC-+F+307i&v9~*6 z+vnI`-pGhxi`G@D54^3#`mQ~(7adpqrEEN#NHWgX=%ej<-yU^0WABy-CNS;SYs~B4}N|l_xrD{mQtH|h75$2|jA^JV^*6njy}BjoSMnfTOS)%SgGWD<1; zko$JBMO^BLPi%GOQTRUT8;fwChF?GP&N%vCLFW7?CAe38c@-g+Fcw9Fq4{BhZOfcf z!bAFRBVUfd4~85f578+Lgd4>3JJ{20xWm!vE@tzSRLclSU;D;9uv9+-|dN$^CO|vhD@!;gYjfVfz!~ZYgdtb^`ct04P?+^d)h5vKH`w^5n_=SwdR*->l@W4vOw?&nNTufokMj@N*Jj@Z<%`i)UbG$oH2DvPFI{e?*qJZxX-xFOwg0x`UHA zbO5^|&(`88xuaL$vzlG?zwFKNg8*;H{M}jHW)75eeXia&n}IJ3!)8$o-@94(J3c4R zTmZ5|x!3wJ_U{|c_$BFgW8z?TVY?mcEKE~%Ue=Bc$Vgs6?D~>Cv!nZihe;}m4x!QG z91fyJYt^?qf?NC<&s?%k9XI|Ier>i`9qoAgt$SzH52NWbo<6Ma&Hc>nh&Q6`n@~p& zZV|tIp7p=tqXkow=Xqj z->4{bl%RkAljru`h5Um4P|uUtpHO{#lK+jWPOkh->hp^e4~jv^RG1?&tM3c27*sk1JrmjKA?| z=3Ui(a(}fP@&DC-=cVtQP7$|{?5szw&`|79$oQeeEm)T!iz3TQ%E26eF^HT<;GDzp z1G;9DO$Jr4ig)ajFO2o##FZmugl=8XH=bdu}{+F)%vkD(0Tj2 z>$pX5CVU;ym6r$U?Qqsbo&R7Ry81)bl%*asRUpSg6P{xP;~)N~W9X~dQ&`1EaC|nAakFNDU$Jd;Lw4PcjC35`Nz&7HM&ZNw{Sxe~CoA>O)=FuTir4$jPp1|JGdOHo1VV@Qn2b zY5OP0T}O~>GPENHfSZ1w!6(((DW?A0e)6Bx=v`0oV{20zY&<9HH2PvAKZJ}I>@4~* zmzIUspCIo(z=tbr12$H8eU~rK3-8}9oPx1 zh&xuv`)mQ9(&(f`egCsYJyToT*f0N20@jlQoJAua+n6tZXCSA6Mknw=aYN@?_!_*+ z5quHeb%ZCUf;G3}_bu>-6THh2WT-Y>z`4s3cK{|j=O-}?{PtNU#A7q-VxGs3k$E!Y zJ$`Aoh~tJA-W|YC7=8|FY!=?gqOb4~mDGr~IWU(#Pk)((Y|(&`(U>7+9EF=cNT@QZ3dxpZ(v{0BJwByBu1i#MU*k3mt*&T+8zH@JDJ)cwO&v1 zo^!Z{Mv)D`2e%r9NUz$kx|0TBg0Px7<$apirNMv|!xI2oAI2 zAo!Is8QN= ztpMrezcn$F_$le~8zLu{qmDHCzQkGh zRaWnz?bEhRZJ3YtJAXFqo7#rX(A#ET8Pz763>MJ?|8tF8CaU^sJ<=euJCg6hNB{44 zYjjZb#4nZbb04celRP&CF;E(9fd`zJi%%^jM^TtjjC+RfrW0~LWf-!53H1MG6c^LdTZqSUCx+RH=XJrCv|utKk%;B?r?n@j>za>ORvnY=96=6j=y=fW?m z%mecBgO|_i#eDPvJvbG*ejj3t(aXQzw2Ddf)w5RFslUJWtQ$kH{q(1AVRMl5Yo;1+ zR&OO<9GyYZ`u*esD?!eIf#keG2liqA)W+a?Ntoa8N61;pBDz<`#~M4*hEd2Ev||It zkYTT|Kfot5n2UCR0c-~Y*arrXjhetC;f=}H7Gy8hlEcy<279~2y9oyw|K6ru;!5h6Dk$-~Yy5 z{OPfkcf(HZ))-y0C2cjHSXYkmL*AR&koew2)W>Rgk})B3GGrQ0@>AY4iyvUzPk66P z$JH~0*!0EyMs!&_-Em=3@~(|kytzKc8$_oI(G~aoX{6`!bLIF7o%) zW#k%i#ZL`eKo;8a<6`*E~78={UdVOOLAnm!TZ6K zC`ws)`nUmqdwBjL#Rs0>Oo_<~=A4Z2aQ6Sf^9WX z=ecE4`xDVm_8=pl!{_QV^FgIF7IC^a@!rTT8m*dwMZejRO%;YX7MI#F#$BZ{{&`)f8s zs|PP%XA#sISv0j-TzsSJRxa@VW=dc9fBjeo5sm&P;QgnRW$^z-_`fQ=A492y{pbhy zTKbNR1zzO4`pUhM!>3QkMS`B?9YWrTQTPSzHi%;>RQ)@T*5?5G_t@G-wg1Cd_%%Ci zjPBkL9LUdxCoNe{9u;Kt$MF4X+CtJ0`h%pa%y+Gj*UuxT_eCCwfNy(&LnNiWBu$AI zLmFr|&pok?CoMu*cX_w;lK=zA!5Z*quqj<6h6r2oA;y^f$Q;KQU#{NP>+0{tZ6BfU z)O+;-H-6Cp3H6y>l^VcE2;PYsg1xA*e|Kca4`0w zs_!&ft={b-c$XyCr8-ak-C_HP^i}dJ{ z$2_Jqgzt}2c7z*6e#VB2@5#5ZlDH)&vBvLUCcO7IA)%W2eLqG9!wu<7#O(J7o3o-fN|M>IF$&dVbgt%d= zi+Gh2+r@ncao8IlsZ#jI;@4EKCf8_>pC$6m{3Kxi*-T;x{pjd)@PSq65#x!?rY#;~ z3vAE(7EOsPj=mB}xirB@ekk(3Vt>kmzUr}C=F!0?5Pul)PKY-2?;gi!+q>is#lO!R zjOO?+izr+GxwfoTjO?Jsl1XRDLF=o_S82fiSK`+@npg)(LDbRz5WK&F(h2_mLWzR^ zKOx)Pf&b^i|I6Y3GVuO&%Gor;_dO+lJoOmvNM7Js=se;0XRM~Zwh8eN9Y5I#V%zAa z>yZbFrKMg9kkf3j%uS&B!-P8Y!7S?gAY{Av)M}l2?kM8jG>WD_NqW23whvkBJ6KeA zU*4&=y9ENvnB37Am?c9H|^%gIa=5%CFANyO zJ7kj@o513jzsgp}*A*Gn2VQq%{>kl3T<}bE_(S-9F#qId-ie^igTGnD66PNt=AE(3 zKfb*fo95xeUyyyYO>ANAQ-S%hBzg4i;&WS#F^n|lEgF{*vgulRloet$98Nvs%3o?z@BGbkCJ;E#aKcq?U96{DyCj(TY` zvTQzVAceqj_@0}xrX}lw@n2i)$fcLzbDqp1`XUpA*Fc`ZX7mZa{RQxUOL+g_Xa{i? z{*Q(KFTwwl;s1H?zZbk8NwG4|r{kStnU9Z6A#X(w{FoV=-ythIMw&%=+H=lzgYaey zwalhJFplQ&#D9T(jY~3ragTmC@ele)UW6pzOt~5Nva_Z<^Ufbi#?j!g=rz%^S+A)c zc-9zvF=h~R%XpjO4l)jnpM`T=988{?3^MUpnF|cis7yN8%s9&6hEFKe!vd zMQ?rZ-RVS|P=4ck5TC~7R{M(QM1N^d4g!3*B|XGfPowY}22lum>xQ-1z>8>m)wVwK zjz+cTGhcnDJ;21j?b7FbU*crq)2&n{F%|xAlAHJ#+PcjKa{k@KU-UTZ*c`z}@fPb* zCnb+XTWsL;)!S$B+koFB^?}EYH=RY-Lrx-w@4k`h9cnYibccT@4aA0o3{Ve#k2K>8 zF^XLGZ&@<}K3_6Q+ic?Zwi<}FVZ1_4mh`-WQIsbafg|NIa&i&c zQd0Q^f z+0l#FKWDD+L+2fhTtR&2Gcb=|=*m~&@zTi0^~hy70^Q*qz6+8z;RCqn9d_U2tck$f zb6`r`ezS%8@JH`xgU>_C3r^x=Mb;9jY!oAq752ij{andm%rNgy3E;TSl?aA3 zNJNNBaRu!{}1{8gA#JmHspg!d2Kz=J1LY(J*)?q)%+L+kjCj4O?_|(+LIQ)YA(Tz3| zM}-f>;mpMPf_Hi>z+ZrUCl3<`p9EZIEd3L{Y#q#c7SEVVTaquSJ$_1*=sm0xM0rjz z-NUDrn6eEy%px)GcZuyS?6%91>oY!Qt%%`fVIt2^>Qu<#;4f=-nZx9}@Qj|zXqeD%dF7JkL|&BY>$Hv%_lE^W{F{GyL{h39Wm-nYYc7|S}FDTyQ8 zflUhD??Cxb%Op;*z2lCrN-1GHXHoEuOP8Xov^m3k3eR@{ z`z;be?o#}g@^?ZXX>S#o7&{uhcMyj*(a+)ck=L!FWqV=_pIgOkbPN9#Mlp)9It;(u z+T?gyKuL%O8XZK^p|mq|^E1YUeuB28ot)vFlh^`>A_Lr~cyu<2$>{$s{$SSV)X4(P zB02g%apwLzlu&rt4?h1*$qOH+fRArdiZ%gfr`(4B1Cap|Hv`Y9Oum{d*zWLuyw2Rx zC!JA5VpD3scwTBLJOmz?Z!Z`>m_WVn*xG~eGh0VqN7}71+np`Q)4=vAeKL}5TXHaJ zv=7-%(pdO7Zzm+e$veqi?v5Wd% z)L?>o^pf zHu&-MwybCMOg+m$YyesCX({%FJc#^%E-Ba_+x*Lv-2Qb0GUpU>A~tjoKFkNr?-8#( z(;|Ep7)1k)8`Ts1Jg-$WUxF?_RiAefIT6#sSf!B(OrrD^VlKg`PuF106+_&)AuaR2 zq;km4(_5(Pct*hI@OoC}%IMGd&IIFMMSI*u2cG9e&Q<17d)jvh-!kNOjRx#Cis-b+ zeJRwn8|RNJU-SfPl=K6PCLub;cz%5_x)HpRc#yNG+#XrrGrrLt>N?3D=CkS;Ir~ytx6Ba{5jNRF7V|NWlwIE|7q*T<*fm-S~K-cs>ou21TE z2l}XX_M%-9q5`{!Cl5eZLw-)i7%;f2K|D$1Bp#q^rH23S!2f+IPB-u^xsQLT3pROv z=b+R;uDjS4e_`~Ox9y100pE%sXOTvau_LE$iR^?Od?Wt8p_KiU;v4YgphSTK-(+5_ zG#C98{r0jzE@!_Rr6Hv~r7tCNfmw_i6}O)sW1pmF-_`!c$a+tG)jJP__n%YZQ~A;4 zu7URpFrEdnZ3^Fy1HZd89^W+&;%Qc*L$lAT2beXbAY()i?7HKx8;SWrm!3%OGwhQ` zO0XU$dilmvvx3MIs6dcZ9=~|$=HWq*isuVFVFb}pJj#jPf#Y%&r%}uzs!lR68!&* zauoj04DTPKw1WS?QUvmR5b-9rE0AlByuNJ{vGzk+d`)8vV*4EI!{{VMh($f}82j86 znFoYe_aE5b*%$pmy=S^PLR@1E=)%5OR zQTEMQJP0ug|H5FB=o~At=k`>M-d8@U`$$cdF2j9PYGvU*!L1;C{c65qp6}9R~0B zn`adDsMrPh&?~{ColB_ttKh8OqvCTVSIH~w!fqRbFU{gMVBI5$r(B|roetLBxVQSQ zy_>~`9Ypj1pXe*|fDl_d4}Bgy+6SJtrw`m?^fhoHboOh^)8(SbdB*$Z`+;7&1gxMA zIaEua*J0CLFp}6Ld;v;qu!#INKjW|W6z{%#t@E6A{f;ik*u|0Uc-KDYe5LTK2}Ivp zg1sbQhFP4%zjszQi->KFEWDF>@+J0mbU{gNKIrcr&fMd79~}fgg%7>qo8hdFQCaT? zHCLna)7C@r(MXD)NEY~i_#lgD`qL`h*PuUwBLp({74AxZ25YQVnl|#mM+UrMQ73Ew zj1N;rpo_+n4I1ZC?Y#1?dLzfa>Rr_@{c|pUh#I|oie0oFvR((?doekxmZPI)Q|FcF z_;0^4q+>nn1oms!liMuJ`Ts?0yvYCAko5)9s(w4=1i9%w!4_iC$H6Y@Xu8<0Nd;7~F z=yKR6w#O2~K9n`U;r|2ZsomiJa^QYO;!GDGBmS`pII}0RBXd?H$9g?L-vsyAAIVzw z;BNNR{FB}eX-28`ivUM?)tkHl>zu{@y4d<&TSV#Ws($^1IwtIu`rU5|m^ysFg!w^I zk73yLeiL8*!GMo3wn-0sDSog%#5XW!aFQ+HB}wtEXm!~^G{x4x8@p5S7hod?z?HX? zqv#ZQ%fUp}fmdJN6Zcu~fpg^mOPFsPAAUKLJ1GTY;4+@I3hT+ZF$W`8Eo8n-+l81| z@*`^0@Rc@z_sj`_EodPB?4Xmf0gSzIPuGn(&5+lq0TWrIF_4EIp%tv@K zeJ+X!ME53sFPK;YjSe7dT>MPF8|L#w$W?AOyL@8C%a`D|_7uGlUe80kOKSW$83V%B z5+Br^9DP5DA4GqSuwmiaIgJ_+r+}KnaMBnjwNiM+2_!{Cjc?Z2>I&xUKiuh6-LDq6JiIK-mVg%1|68U8rW5N#bnY!q2 zEo?em>KCftj)cd8r^T)754Yov<60fJT8Hh8_$^7ZeuMci#}%9o=4{Kud2^{g)@$d; zt*bl7PGyewW!*mHjv(|?w+r~aRU+>69c#-Z1Ecd%{pUtS{aG5|$Dz?vFsv^b^*&aG z@i~M!T%(wPxcxaBHfDReZHo)G-zUKNPvR5peie-11i5HiI*S8^_3=SFc0Bt-ACtf7 zH@^4u>vJu@aoN{)DRV;x{TX(o!A}X9aT+o}2K0dT;0-gF1q^F%z^3HuD{KiK45FTC<7>Un-Y(JpVBn;zt8FtQdB&_~ghuwxbwpA0)v2C5dN1`7d$5)bN^`z_GWaN&6~*;6OP@3HXlg4nMdH;0Kd1Z!TL#Tr}bw} zLGP)+_l7SSdtQU9Gghqb#MtCXEG?K!Ah>xwA^sA>2;H`d=@9+MDt!gtxUfi=-+`#EnD zK7Ok$r-$D=b<&O(u%6RQ{x}`3_Pg8JoVnLcDl0t_2l>3#IEPE>3VBxtFgW#Sjz#hw4BU& zGaT911RLFJ@-ZNj-Um~RPrV=hyH7i&#Z+C#ZV&%g=)f3cH{Z{{Pwph~b+L-@FxK(&vx>URJ5r=;#~g6s9CoAL_|1f{R@*aT zkzUiE+rz)`v=4qTBjNK+u~xCNJUS@fOH;bBe+l#1C;X0+d5}k-I{7Aj$%oS%AE-(A zo8`xM4qMhfbfw7|O~S`Yydl`i>+i%;V@u4rLiPW_%#{Ngpu@g)5*JRW=Uxhq@&%b! zQWQGCG!J6J;lWz)SdM|@3!(%iwul{Eryu&-Xnt>_{3d>>=XdgH@IBcee5QIZuMfrc zw+ug$)Z`&Lgr5`qpAO72#cqR`@(4_*32WV6K;B*gHia!RW)i+j3oOF;3!mst#Pw7m zXD7N|7i>r$!7CTcH;VrFQ)k^ut{6&fN@2#Qm%GU00B+QQ-$N<0DAmf61Awgoj7rkp z^vuoZ{+F?DZfwGOpj%kGkN-p2?*JyBp&zl)gNQ+`ulLIqmC0dVRMktE8T%qWnf8*u}6rS~cA_}Mo3V&59<9#64#VmFIVp-b?22X~0dV-&8x;@&F)9AXey zL!C*gPgbz;zP!dP?9Gy{J~N63$ZwK9^Ig(CaIT;y$P3@$d|?_dA(@u3X4 zQeLQ^q40lx+qt>vo06(^ApcN=K`ePdUh-0`4djonI(ZaVFu$LFPkt$M$jS~n4`gJl zmedK|wfAszIeZ@MDT;G7iehYESC07P5~?1T*TV*QQ9ZkMjJD0fTq)@ZeBQFBy5D`9 zkIOkL*bVZor0OsA@jc&j);daq?7`ZEDbf;q!d6m83mD5ta8}}1Z+#}7H~^o8Q%<5G zc%@;bT*ra+R?*3Fg{y1Ib2<$p-taa3whQ+AZ%$%nA*-m=UvGDLj7NEO{LZoXbo^2E z5Q7a`k|~KANB;h>eVo8H*%n`}3pUI}?slZD%fkOlrdh=BW9psDmec3oxzmX);{7u+ zR=pAy;q#OE(uEvLMi=1@rW;)Wxd2Sp0e!gh2;%C9^D})Ve~`NsdnkN_Zd;CVVeeDc zr1`AZl{Yx{e^GVh4oPFq>BqYfqjP>JK6A(chc`QmiRiUY*~Y|F=GhZhsQrn?GRO zU=N?L?Jws1pXID#$Sd^NSZu=B!|!9aE>{_!jR97%7#nIKTWtLkaa@?+t% zyM2C38U<}eAMJ=QO&~f2W3N4>d7*wso>F`3+OYo=WyuAY*DMazQSaZdAM5pk zYk$Fq?Q0&@U(%(s;70^D2#z`pec7A7k}VdWJtw6@t>U=;*hikAM>rH?J={k4PJ}v& z4&+3$r?d2-L13(2*b^FJE89*VX@I?~1>6{apD;H$j+(fyTG$Fs7S6}#$c}stUW><9|5~<$ac;m##{bda8`(o{CR`5x=*qb$v*9rx{?EjDQ`z5{a+%*p*uJHt<`{2^KtJ$fnv}GFtc6R3heVW|4 z+nFl^_K`pPIynkUm_%j#sSAKtzkSR)CC|xm*&hsy`Q*hxFx$J}jLf|;Q>-E-w(y7# zV7So+(I%0L=t4sOYr$Kw>B(RZT$Tb=TZ6r?J6+FbwpHchI z8~wR97+DqiaIvT47o<;rIYG{@O6WB2&|_o3bEFN4vHk_P%2&pHFGoLHH#}iUyC#xtH97@c$X)k3F^3Gx_6lfBQQ&s-D^z*fPK^ zN?d1M8SLcsGGbpIh(8fJ>oqWmxnT1#xyS?h7+=I5%)yDVtKdI%iTvb0gN$P2Sp4dK zSVTee#lChnfDYKq5~B7ih;3sG(*IF4#aUt%0wUDbOm2=+Q>|wK2Bf$ za2mhbf#e!Po-IaSFBs}1@-P-&q~52{PW~56;ygHco$ugq^s7cIShJiMgsaHgS%x`? zL$#RakzpLY_4bwb8U}9E@H#mJ*al!DfA8f;P8Qavd?c|)WU%jy#r&6;>s}jY6pfmL z#kIjtihYwQ?or4(y{Nwj_*odiKiL;SG2O&JaVYUyeBVSlfQ(=*?!I-YZYqz(EZ;P<$E(Mdhhz~iwb}O;77u-m0BXYml(><`uQ_^4? zj~<*hiK`R99y!SX>mUiufRnVuJ&=;mNkG02s2TmX3 zqSsNV)W7X0o19}HZyWY6zxM_wuQ3NdRrJp8%sX?qR;><#b-Z{ld@tXSCo8fgYc!Fg zU@|hXJ?+A;r0|`%`_3%Ke}J}@ln>jIJr!pE_to(5FZ@Nj;cG zL9p3V$R6+heV&EP4+olSM+#BXZj2sRO0Ro)#L;Q${hAUXlL~Y6KpJ&tQDoioIb0eM+Nk^wZfK_W`?5l?c@in-Vxr z9v^ZMS&=dOtnGituSQV>JX2Ci`tm}?#G*MYVkGnIN$delkSA6!PT5nTBrd{b75<4e zz+v$jI#Jvrh9T!v0XM&YS%0qLfkv@oHGZG`mmw4Rt(m*t)^`?9u%~YZ8-K;v;g0`b z&^Z3XUOSPxT!~zE!iv5Ie*PRiYZ!PziYw~*7LAYl9QMy7zfZ&`CLeg*4(8;F_#FOU zXhv7Y>ow~7OUB0SubGhDGaQAllVUsMzfqKejL|t#;R6WHA&}8p?xwH*#9n+Ee`8Pb zT(?x$azg)?l!7tAFATlB6*17kv?qP2ui04)@Wh||D)F88bV#bRQkVb!?y!9ny^oC+ z>?Z}|N_pN(Qm?_RFI0o^0o=aT3!Z-->!;k27%26ZxKzr)VWuW=*PYssOluuR`ovpCn{bX(v`KB_Zfv3e6G=Gu<=iW z^|9n4{x3c7ZQ+mC_OmU}V}6rcZaHH+{j?Qx*-~tDPTld1DF)67UaK!#40Ciad4b zK3l( zi&@l6iHwqoc$+`0d9>Xkx($bSr=rih5l{Pz^?hfk=aTp7^;GXOmCfqja=)ZR$OP$3 z;2*@Be)-N8Ic`8lvk1dx*1^dlj_}?ZmG6p;7M}}O>QK_nQ1bX-quE4R!g03}gOLH3?_@29+j{#}1TX5t@fz(isXjfHdAD9mZLiwy-A$gi ziNs(t51qh%nevwE7f~nU9ygi#>>AJ4%l?QVm62bt+XSv6A3bFqC5$qgGLdqf5=l8s zIW?0!YF(vYgh^yxi;R2?U#Rq|ZTb~ab$cuou?w^GJ7gM-&nTtvNbrGR=Cv`j3uQ6; z&QWT&#T7EfD3TH@>paWEnjFOXP(&4jXqN}SIqG_xuMjuLX_^N+OtVwu0~=-$b9WO5 zcV3MrE7FmJ)291-_=EA`D``*nGjSX`_cz;kBL6$LUe$9@Bj&Xx_;@i_rKt#(k6e@e z1G;Y%@n?X|KktX0frjHt$oCd;%7DEH1?g;#Lv3moAQKML&k=W z_mL&sR9(k9xQLhNKi|=D4`IhooYo{ZgMSVvO@3}c z{*!ct7+cS-s@^?9u$}Z%&-Rf0Q=PEI*w}CFvbb&a9sFUN&Gz)!W-C9rRU|{cAjC~ z88F*fquHJ(pL-3~dZ~}ED06ei4EW4mBKFY}+?V<;yu&C)gcHveY7(u`Z38}%XJH&U zbnzYPH->mp=8UvGiS0{8-fVQ3iPUYWKu56~obfR8RAaEa4aieNx3T5|Wdda?Wj19Y zC1oCR1yJgOpQk8HUWFUjoA3uc2!D2}f$oZ*u{$!tX>4!y)C>8|_nWG0hZL&c*QrZh zY4Qy{$ZY{P!$#GFwnom#Q_E3IWULv9zs%-#jLk2JFUMD`D>B|C;$3Py)aU;C*Hk_2 zd!W~scHddx(;B74hx9Ty<^ufu4t7@kTKlh@r+U^J=-gFk_d^@;k)Ds=UsilA1hO`A z=C%~b1Nh3U2lq~otvN5(TXqy1;e7PBPpmPXgZ!9ayfwf&yzhZc76DIqfsMF2_Zr9A zU8~5YPrto}?y(0sE)zaxF$IZ>oJ>9<{L40-L54455Xq5Si#}ofihJfiTZTA>vczuhQFWH|26K{4?$GK}+j{!pJD-=anw&0m8S}qp!vCfbb%)%wsh{3n z2OLy?*nxf0o?h9F-=imC>%g}4Y6JZ>n3#BU+H_Cx&&3a5Pa6D&k()enVHX2a7`&L6 zCTwG)kpT;K05k1G?zy-0=`5=MRnAAQY-eH^7}Mr}7w-c*)u<=qQu0lze;ng{N$xiO zPjL*N%?GT7uoC%zzVu6gEirzD(0>g;Nuu$xNy|Bxq!#63Eb?VS>7xR6>JfjH1FKlmnHCCQS zhm^D(-)D`&H{d(pk{rm_wLSmu?I^D2@f06O=DvM2an=`(q6{|k&jW}Vi6#~joAzB| zAlHYO#oSoc2jo@9)n(mVo4oFJUcGnxyHz{@epMA8c_&p**YE*)XyJXb;k)Ny79na~%Id zaMA7b^`G>^ODXW}rq55p4p5TuwAc*%c^l!c17F;LFN_ly3*rALV%%C{^GHIQIKqpI zQh}|%Azw#&Y&6x7A<)aC@PpdPI2hH3e0ZVAn@NdR?MPk=;+{IAGiQB8Zm6`_X>;Ps zv>Mwdv6(^ntzt_h))hNJe`Tylhd*nbgZTA;u}V6I|CvUI_Ogyh4RS*@brdUy;(rKc z?o$X1ocN{fe^j4}S)m`FGADdaf048qA3cqJbi%jmDeD9yze`%vNb%kZ>ZBlbQRf!+ zU&;UIcd4nj&bRPIBnH*hqK@n1soLw)U@$LAetak1^dyFB2s}2J7?>H3B0b;pQ;xad zZ#hPYF!nb@RxQuI29&Az-iCm?PGgS$FPb`39}{*>CvO4rb65Q2Q-mAEt|DepuoCzI zc*b%th=cg<3^-vHLz#ahO@aT8VEfo1$QwjoO^7a_189`4K5Mo_GuVpD8}E)2%Ab~d^y z7~`f|7SVnQajcK0A%;QS!eZ_-n4otVPGXQy%=H z)g$b5@SW2Md}0|FyUis(SSn)1HV`XF8Bb|T=|@>esZDtW{|~dWp5AnH!|cSqgEPGU zfgNQFSa=hrO`6C-7CY~-8wt}(9G3~%uHe*vC@q<#Ec8er` zRxZ|AMn5l$uS~X54x-Iei}0CAymL7GHJv#71IPl%O>T^1$xB;BZt%&&g~56^V#B12 z1Fv&s8-a{=A3MNP>g_uv3;V9Jb;I}a=yGHN-aRH8zCGl!I*47)`G-N=1@jzk)03|C z)7w$jQF(Yj<7whvs0(9e)}RFM{PY|-k@{NC81R`on+K+{0=zc~$M$x|UNsyav>DjG zGnvKoJgUyO*tYVT*^u2OeY=P5TSSdN4=UlqiO*C*bovlEm%+s@JY=1%^5o~N$NIh| zo-><14#Yq22>wI9i}9iUjE|x(Ha`5f;**j2K0fUY!T;hNe&NONX~>12>_=>wD^22_ z2XSlIGbZlGu6PoB|E_~@{e!(6`OUeyqv+U>e1^;gXIhYV0G!0N54l498B4*6zTtlt z2}Y2%6Z6ANaHp!yVnlA4@5e0eF&=otGUw12KDrpiUCKtVpGx2bVW>AV}8%6(Jtn;mWx1sLX*w2{6MqB(rdz-yM{+EGy zQ&N|`=s%Rtim=>RcTj1{{@cDklbB-t0Wz0+Z ze>!9=FuxhZo;rh9e!&ND_bq(rbC^V_O9{8LXX&_oPu}a-c%#U8Pt8Zmg6O-<-yNEx z*Sz?54A!14{3QE_jHnA>{&0Aq)@CsH5#sjETMS+^(nM-0WUm9<N6oJ2;B5cr!Bch7fXMjnuC__#?3$sVxZu>Ni__+#xQ?-1jnMxC&uf7+(kW&c&GeYOAPcF>WyhDdS@RbR{g ziuk25Z)aw$0F9CqMXzChLbSh!+TZUd7%hHVu3+Yy+p=aD{ql4+llaq$98<_6^X8EE zi23sJ6LQRFWSt`Xr9R_#;Ww6CjmRS#;DvTx#MJOU8m(@w+M-Ec;trVq?@wfY1%o)n z{^HlkA+W+CM%ZkhX6yix(!wv2Hg1jE$I?&G+fDv|mFnCH#*(@>`Z0YuoIc$PUE||y zVyNloZEvtncu#Cr1zD>sfxHOv8XA?{rtTdZ#QM&R^A=Zf0Wnr<)ZgZ-uKnIPiFmJb zj-pF9)o$L$8E3oU`-tC=Mjxi)-&op7v{`~Z2fcnWwna(i4GH(pZ(t3JV#r&H4{n)T z;A?YO_YJ?pBxz*axO$e8jlt{}A-7P%z%D|$W{vtXPdB+@&|7!5BA=ff4t-$&pRxY9wSA`U>()H?Y8 zA7c&dcziO$&NjK)ZZ7|Z>|eh=v934N`EC!$H9Zpvjjr!m z$spEnOiA`PB^O^A<{jftgNQCcOiU@_+QB7zL?W;8-<=n%bM(+GlHyY{tF-DThgYfR zj;7!C%A@#W`49T$9()ip==|clOC4VqpTF=BDRZKvbXke* z97W-oL)x>R#X>=DT-Jg>2iB-9n6sqn5%|SrK-Y)=4K}--+~3RQ$0fgOR6e`@eA+&_ zeKmz#Ylj>~WwZXw+W%|mUolh3IgrCa_zWW!82vngx%@fyQc3;l5_^7&Tp0NKx#UNt zb+w8?;2W*I$xnryZajW{2hXWzot>Uoqou@^!vA@&{S5e~zmF61&)8|;$RS`-;1ToC z_p&l(4ww%gQaV%GQkqj5P-;=CP|8tCP*yM=)SJk95@Yb`bs>kek6C=~Xcevp@L&0< z^Pcuz@wa}@8S|c~cAbU%zm`6|g7Ks|ecExjMNG2se8uW<>!>($gruD8|5HaFV=A>F zx64i9OKtP_XmqE=`N_F?D(?B8q8&y1v*?Pbmz*wjhXX-|$&wzH;ySG_igldZr$ zI+IV1Sc!d|EaL1v^ds=(D`UX_kqhnV=oRwVMYFzpC$OWNLJT;LzrPh(7<=Hlx)xE0 z>#Vqk?$eGj8JVRic8;dRYB<3EJDLAus^gz{hM4VSI-hFSUzvfp$q2<~{`gvqz73W> zjWHU(tp?)f=f9py9KgBlAk0idv zo*LI=9SrmhN#2+6#bU1RN(^*DbRV7k8P9gFmXqkpy_+pZ7X^!aj6Xw0;-7{(#;pT+ zjhDLn}Qo2Os< z6!VXjeIxH;tG@z~Uc;vM$oqGrF9*@5O{|%gn?Bu{`M=C#)xP8J zsCJOYNgB}(e^Goa%Od|5xJWKV{CF;*tJ%|6Y-6Q*@LYY+3;V$j;4{auad!iAS}`77 zAKCoPUDj^j0B(Mp9Bn`Fd;gAYj5%yNJ;&>!j!dQ#wX(87hby(NderD{GS?3 zwN50qZfrpZcw-jNkBkmt^>Q&_5!P?{70d?_b6`vwK-fvORGK`&sK08DS-J$-wXW zbD#Aghh;GSEJx8F@!bqrra$N38^-&no(SEBqS0q?PuIHS0%Kn#%ADd>abuWO-0T^b zhiC=xwpJ7+73a^*ehyav44nVmC5vZ`+(9 z&p9%P9FcFyk>bD_pBx+f*ij6bi~k04l_ckhZj2qLiA~o1`v)Jbep^I^@(!YJ zZelyYuAS)9BbSlaaiKn5^+*lo9*E8BB=$yhoDXM-m%Hj9s@0`E`MsOsX)=h@Y$J2w zujz%)@>23P{84RKDLC%CSH(X?Qb1mPocOzgkHqxnDflq#p)Y3{O70$8e9B|`e7jj@ z5iy5#byDLenUeUu-pqf=EMgz_4UIhlgm$j@J&m}2DfV_(1{tAhowZ*w&V#v1ZqG{f&djf*Il0sTG~u~zI$i7hb{ z+t$kR|IQWKeYau@vL`bnZQcI)i${$LaNC#j1{^YGgZC*K0& zW#Vwgx7FlWU<_DFy}bfsS;lz31s%kPYc-(WBn?HT48)&CqYmgg8tsAK=GJ9gW6qa! zI#fSSJH~$7AGvk#F#Y_h$f$E?<8R=m-mlm%a!rM+dgw%KQ1TQ`;!hc)=(`)=G7v|ex8 zH9GcJ^%`y)XSDrty9&J|oOa#0#w0F-4?E9NV@<#+^$ZR%tZ~5jY)|tht7DEM6Shcd z7U%E8ecnWNx`=jO?YZjPR%G?*%Xw#PQ`=e)YvoD4m20fcHc9W7^2p)2(LcZ{i{ke% z4~!;iVcdJj1gTD0`8KLK~0|v!zKmttQ7H z`xb}emxC=k`9W+2ln)&94m>|*zswzH6c4`Rr+`oBb$k`lgSqEQ%Nl|g$OE_wZ0x#8 zbhzXo=4S>!XWls;ji2l}Y>vN)e+ReN3@&pE93wi0T+iqwE6_!DaO{ZAX0atLdOWh# zZYOewZ@~u@d*#P*tnt>%Dqu&kg#H_b{CtN#eRn=OEPXkcK7alR^D}+k{U-MKE(T$o zf!t}s_hfxtJB*D2eP9wkWO*86!}^8K&;Y#m%fk|*~tohEiY zyNS;i+BQl+#vH`Ba|9XZ zf1}Lg^Nml9XiG`1HvK#LJ-G$?>TPF#e0k)6zqFqA`V{w=Ie8e9^5SCy-=u1d?DtLj z2;g(#rStxDyZ8zF>&owgmtx}qdoM6k?{9Ak>-}NqfVliE&)K?Hugj!K@UO@!_cA9g zBc~&});Q#srr1~fE3=L`aS!k6sOudA%b8-QZ>Y1tBN$^PC8ys{#Rk3vyVj5S`g``F zo$@o6rMW_$D)iP8+pz!6BmF>Ceot1CK4X(TUGt3FE_Iz8#e)j)Vp;ST=9mN5 zu@#Zi)N2*j|AIX~z){>xLT-D;m)gz939{8Jtc)vuZ^*&9oY+P%^u8I@vwmd1q@Rvz z`{$8fe{z4_iWXu;RNZwl6L-n{P#sz4(+K>ciNy?mZV?&3scUs({QBWbP9b#EN8#if zcE?9BvAl{-gDdEKDEA(3jc*I>RDk1hQ$~UPubJ&2it_z?FLD~=@7?{hS$J#*Cq(8? zeiA$9Rbqobn<|3PDbWD(!bOU}FugG0ZJWX5bsl2!9SKYefNB4`E zN9sz_K4gj)x$w=TUbanC?NH$-v5>^ZxT7m3--cf$^ZfSv)MYmP9@@PE=cu~MK|h?! z|BJ)1Lvdac{2*sx!&*c9PC~SygWl#@ACfPe@uWF*=~j!}0XBIcpk~~6Y{9s)XO60a zcQtk1ytbH}UCF=;mKsGju;sP)!MFT~V*~fwT9$l1V9c&1$&oOPT>Dn=s6wpYmmy~+6+eLontUA6tahf-h6FVp;( zTacp%A5rzweUv(PRSR|PYZ=iU^Qvn^)mCTE{;c!T$rb#-MzEw<4EehfgNGh5i`Km3+k&hiu$8&+2|f|8u}QomKRo{R_ou1n`5Et; z^7_ZQZp$5dd-)DQC#+6vF?}G3jQ-zciW)R-9@VYiKb) zzV{KL^hs=i%~}8KFt%mp{%Z!-My(3L&VO#`QzMYeS6jsUTHw^z@JT^7 zSjQaNl5r*s*aF&S zKz^C|O0`479IBqr$oUdqEN@Dt6y)=MP97`l^^z*cxt_Lb556F&D*f&VV_&Zb)}&9Q z_Ye8s`PjI9==Xms|UQgl6<*(XBp67B6zqH~`;&~~(kIVg& z-VwillQwrYh!XgA)}W-MUwW{0NB>Vg0KfL;X7LrjB#mCTA=eo7q)|)e{wwXsgELk= zYbWaIpbP6mY)7vTF^Vqb)HC0po(8jT6E+)3^*vNu9{mdDfKQ*X2|3F~lShEMl60~Y zx!qD@$1aZE$(WuJ%x(q8g_g65xADgJUvsdv*ztDhli0KFF!$K_-o2~-{PNn}{pF`l zzmW^3HLwVCpjG&A|99x_k_wEsiqy!dqNI9uzD409BJcBx}_+(8B!Ld-pw z;vHnv_;i^ZB%^B~BVz-4^ek@Qh}uiO1^SQ!@wc5OU|V@cTu&(L9$$dBx$n;3;O;g* zWsmFR5$kLf9no3tF>ha5fPW!+Pp1X=O(T1m{gF?>9FJvSy#e}HZ~*?w#BKXmGKvV| zMh74_F2|M?I61h`F*<=9K;}yNJ8tWu zzt6r&_-ix9wgLO7e_B809`k>7wt4LqK^N7*YMw0WP#2X@Z%}VoSh0g8T+ccTE(*NRuM*B z7DFHVa)eylY<;q^uFEEJ`ck|ol_^aqeULxi6Kn7YU8)FjOf&qK1~8|l0q0rWfLuM; zvOiU0Z7asth10B}m|S1tst`5cqkwR|ZsPY9`MV=}szy`6dF`oLx41mf66{gZZS==C z;L(S{fCn(gtxk=fRc$qn{aK~1(eE^II$$%^3!~$8A%+M0gA2M`*gzw?6YFa*2Dd|R zudtWh_@wMaSHgPh= zE?gtXBX&*7pUu6+RJrvduyGqYIua zh3@Z$^mvn0PBp?qlqBW)9not)oW<;&i7ICju7r{VD6Yw`H8mLF_5>&n9e5yU=YrRCExpZ3!jT*M=bUcaTL#J%1HXzx!h7Moaf=PCJ@ z(D^&Xs`tE+UVmSoD~vJWtS9ZDKc{?`ITQ8qU;dUf9sYj}uXIi1EY4Iz_Qy_ghQ5%Z zpnA?aqt$Wg8|u$(c)|5KHV19!1)i-@-B_Kky^(PwInkb{HYmRDJdBvx+w5nKX-B;E z*h`9+$2~))LKhl~-}y3d(hxAhi?s1obh#zSI`-5eE8_^V;@R}fiK)S^kaG*?#OFF6 zxHYn5TgEZ3tnkn#dgOovQu7Y{c{UVjI7D7Cfd7K8xurqJRwx z-$gy0&4&-#JiR~2=UI&(O~6R)$!L!)s%;xFCrpjx9n!I`4ec`_pWZ(5Xm{d2{NTr! zhm3Kw&Fo?Zv28Rttkbei`3|G z&sb#IEQ#@r_rJ(pY38i%9K>~m9j}$OPP5s zn0a#4O}*cq>le2_$a_v%AGdDgz8*vH*98Mle9$0<8%$zZeS^5#fS6x?=leho#J%br zpJg_RMZ^ckr_px%)**}Zf|rbkd4Bjce?~BcOaGpuUBe&$iY53BYc%|*dME9-+z!a8 zKlA+2CXr{5{#!fl$X4v@x9AVZjo0}8gYt}$bsK9=QG6*yC<~c~2U7xw$E)B@UWU}f zdCtYp^%yaA*YTwVrw9dS_hSF85XtZ4Ha~{1J+lAn-wxtta&+yi#7PV`inbo$HvZTO z#^dvq6n`6oMVv#=Zen77+Gr6UN}0(Giu{_zC>k>dH1)r04&)YX2_g5lPYcu&X~ai`nJK=SP44R2o03vix@Y?{-Tu zk~~m3;AL!&Khd2&VlOP{Y8LYx^|s7wXP>v0v52uviEn}b@8hRF0{!nG{9ge6e|8PO zxwk^Jf$uL;lDv%D2SO$}ibFqnZv1b8XqRG)0lTo5S38ZJx`m^7$oL{DX&&^$E!15o zc>QLz@9!Uc93HCISuFT^NEhPwuyLKGkGC2`%=~l*;e)J|eJ-h07y#wJ(%K*@_g zRV(JEFkZv>}NSN9g!y*!O#zb&6fXME0zP$Hdsn$2TS~4n7m77O|dV0C}pvv6k5e@=P!WOzWne;Vt@zq;DJ5*&Wbr zPZEpVA|B>zz(?{>X_Lqa7Vh0quM>v~;3~+Iy*BClCRDJ9Uv?O_XL9{Nb(e%cGdN-| zV$PLhf!BxI*xnA@+lo&G=3>j7p^vfg|Chh_V_%t`lbE7y z>bd2<)Yp-z(mILZf9RJN%;NDquv`2FPQ%Obsge)kddB&;nF+cpB--eAC`V;fJ-7FpI*3uos)Mj$R3S_2Cb*)Sf)xLRQKrKs= zL8zx#_%V#OD}?P$QaAXrOL~)-*BgBZUcZuDwduhn_{S{zdx+>6qwaT)er-?V!Tr+C z!>7XFB2s4{rj76O@tt`}fB#ldwc$Pby+%FJa}uHj^nrcgph3+2SJR?j)c}7>Z4eW% zOOD5eR*Sj&q$4o}F8a0XuhV`lF@fdC*}0wkD%i2MzXIdOuR&5Hu;x(q^=3|!)Edl2 zQgm6h{re-{$LDEA@nR(T?4lgRqWzmKvWk#etbtOQwIHV&#LZ_Gk?bL3R0Vb8mM_5J z^0CfjTh(rXJJhrGKdbtG-*oC-IbiE(Jc0hnd>nB^@4xbx^wbxZSa zeS0u=NqT~B!J%dNf#+e(6vk?e`hM5H&l|1IZ&Nhx^|fQ=Hn5ofY})?Q*zD{nIDk0j zOJHK>jlz=4D0ULdo3kRZYs~R;@T-3Dk+r64GoBz1t^uFBM?YwS4nCFRBwc3zA>@2V z@ZD6IiG>bhj9`A$Xvsd+mTT|Dz3G|G@5vIjqZWlNty!xpM&>%jV6u&{-3v(SU-6G9>wb^xjG}s53vjEyBN9U#_Dye zUFU7QHUCCnm#J_L--BOz|Gc|G)kD$3s$aD7uqlMvMeMe3si$_Ckn6yAe(o`d+V{yX z`x`%V{Lju)PnM?CE%HpKcj{ecT{Vep)b+aj>e}*B3w-om(tvCKEBX5S2&150jhn@c1BiXP7BLQOk75FZjrV6yACm$L`U$3 zlZDBPmY%hL;rU~Ai2b0Xgx|0G5=%3LJW$2)am26bdm*q2=7TmS)?DB^zJt(L@B^%M z!6Np*wTeG%6M;@82RW4O;Id>aHNMUlFj8o6= zahEln!H2t4)BD593hFxjdZ_WReHy(^(%5|EwK^JBME&=ADL$}c@CT0|FZ&s1(Iulv zgtW#_lleeW-Hxo0>dJb&-^g{aRn?DM35%$Iku@Z@TSO!LEb<~}oY=0ex7&w&;Zw2U z7dDA*(H4={kJ!$%tmA5vEw%f{-^SQ{W>O$~N*a3(+{+I=eUX#!K?ZonIBtkk?|PFl z^i@~&y%T!v5o{07KM>DX&mtmi_OXTU$vw8m@&6<39iZ!KzW@KZxxT4w+qP5NZfe^~ z)6`b#)J$#Lw%eyjncC*>HJx+TIXCU|e7@`d-)l|I&G8xR+55dQV)7cWIp+TNz3{Py z*RRAkW?T~WjNKpcZ$^Kqlu~_Hoj&;QYqmW34oTXO3kg1|Qw?;7IeA!@kGZQWy1b-( znjJ}?S3XCFDSS-bdn)7q663!lV}Co>EUr&(CdU3lieF>afkwY@ydXvqedh#v&Hm5i z8OkoiCnvFXh44R)&G^7xP;{MB6egbAh96BvEho&#wZ=QicX&3Nb#;(WUVkRP5_Y@( zV~p{%IHT$>FNU~9BJ{O3i=1LOxbbXwh7b0WJG8T3Tk`mfa*DP)SRc=Zjss4z8hiWQ zis~CDzft#)&(f(T^TDoS_=YtGXGw&e0^8+8>_9_cdTErCQ z?t^2|HwqHFa)f#LwnZ$Ajob_NQUnanhm#vCmsOulDkWUNGBQ<7q0qi?7kE307|zYm!H zH0_9f+R-hn>(zJfB!9~I@vN~3@6;(PV_njs@x<)x#|H!6*;DIJ`Z?z9I_zY5hJsPm zRQ*C8v%o+Y1|o4T9S8vNj!5B!h(;nZ7NrVeK?aSP~7I^B-qD;6&y zcT^m;Z`%x2FCH+B-N>G1$_4Lx$9qfiNB8&}O~kfx;10IiNvuhS?axfvqANZw_r>gt z|9da+h<*5H5F79hept>H#8$`f5e3KM*YJXMak~)5G>`m>=(NM}xj7`jf`=1J&e+=fH~Vmm!- z5tU+*=Pnf(=w#O8u0!tH=EQ}LBxe_T>|6BBw9m-3G6mVCI5^`R{CeLAu{S1j%^)Aq z1o^82Hjg) za%?8lVR(6R>8&JA%t5Ywep{RJCejk9)9j=DHr(k%*#n{e(t>P=r9?G&rCo(P-*0zC-{Q)L?(eJ zqz+Km?_c5&lZ)ZA*_nA{H-4GK1hzj&?ydaf+RXFkJ>|XqiQkRH-0}_?JD72kexFSg zme@ZucfMP^$xW;kHu&B7$YD%9{u_PRt-hrJdPKB_M*j}j5590g-7gRM!(tR*jja^K z>f*1mFpIYwDev7GzR<@XKT`C7wA~E8^KZ|U`@@bI{U-TGkk_s{1aB z2x6{FC9p5JJYpL9ilo8W)f|!s`Lot`^-WPfFz$1z>tZiO)`j<^(CmbHG`r5n*{W`) ztyRw|!SN4Hqh0lPk=xEw$aBb;h_n$u4&wfDVb^(9lb93q(yiTz@n5N~bJZs$pWmN# zR3(>Fgfjjm?VRKmzlN#bS-}*)qWcuWC!i!)Tz2rKx0{W3XvF^w(UYTLE8m5DIQa<^aw#Mxjo`mqE1#RiYK`Ga*exR<0% z*q_dBVZCwmE;E(fKz2YnW;S^SyiHJ2ej*Z`87^Wzp4WTk|>ccSSI$Y*+ui&qh37|343PVy5G?xtY!o zM;c&fJ~72?Y|~_0dERK+@DhH15or>>FlI{O0B? zLg>Fm@dG@l&HeALsB`7t&tSPvYLFwpJoq8JEq!NW9O!4&S?Cn=X*ZoZck%uBxLSe3*fo`Y@H<^Nt_U6(k|hVAA-1KtC9%6=U`N5)BL zJk}9FPkF&Rrox|a0^`2{azaI9zt!0P>$NAp89oZ3l&ak8^)lkR(dE-Vmp%{JXpkei zF{e%e)18H$JY}?7+2;!&7Iyv2sw&g3UA>tQgyRSB`xhhK4s z=I@O@H~WP89lnG3ION;DkC~e}*LN|wv>5*l`TbOD8+ji|3&B&qKeUMSk;uKz@#M(Y z1AXD&*klgl@6rxmk@FFB`PblO8Q|ytMi=q9_+Jzw9DjpWs_&Jdp3)L09gI%7NpE5eRr#WWp0%$tImK&udT1HNKkK(3 zcPlc|aeR`egZrcgcYKtAV{wrI-8K=V*>U8%ej~@)gsAGCi#%hX){6=Lc{_5AW+vW*_2hcf<` zU>A7dGS0WrR*&|OTY&lXcqX@~X&T#I@gb5_j`1In+G8U*g&kyGJ>%VWwZ;yH?_Wgv zi0vw}i3gPSfd4&Z?Xsa@_t@bjT?0chQxbfd`&~!QjezCJb4FzKo+m1WlRqFWejmT)v$GDHAW$05W>KorOGPbJk#oGM882L=nfQ{aD8WUXa>j~_ypRJ+>JZs`)Y_0*` z{PXvP{~!LeA#dRT4KLdUM$s8PNmAtU4pHzjai;h^bSUiF`X-NXbk&%xtAG)2Ed-h64oZbNgTLxVp) zpl@_upz5(8c*5Vv_d5RM7u9>p<8dG0lm1wU8=6gWeGOux#*k||x%&3M-Q!bCHMYLi zRQG8?+m!jrTDSO%#zU7$hp)`}$l&;Gts-Vm<_?bQ^m3Vx2m_Zl)866U&l-+CdAuHe zCQZ?q`-4{#NA&Rv`C4}Rhy>+{JHCxS$USm!Yy2)@BKjcsM!7(8zBB&Evwym_E~fc8 z^7nL2hUouB)zkU`*r>B&i~dR-TqPbJzL#T)Lu9|#AGK$7fH{G5keaGB?*;NM1qon@zsPxM?ui82hPb{n>YZ-$47b zpE>d#*Iz)!OEwM+_6E6Uz_=y7LLM)0)FRsbVr}!-(m-@X`9J+F;sGqwb$F*I#DrPsVOo;2*cB0KOvW`D*nYR~z7i zvK`;8f)0_FW4n&wBQb-ypHhudp5jL-L`g$E(lc89L9e# zw$11_*T4~KWMgbqA!hs?zMEIbe-3_-kbO(h9~a?g{T2PcZwn7tDD!*)w|H=!-(enc zu>*OZ?t0f}9QxOnd-y9qQ~Nh#1CUfZA3oj}R6VAEcRd4hnDxQCFRtAL9^Q?$DbL}1 zkW-!O9HP#dUXDD>QSh+^ht;VIGDi*MiUpzS+{3r<%?{<=!H@q&QL*jhWzO-{{Hjyt z`t!V^;rQ8Wn5Vo)f^4dEApF!G!Jlv7r_BCu z@T#%c@XxB6roMCLU3dm%`#tjc#3C+YB|7UO>JS~i zDcEOv_Fn*Fit~~+NAHvC=rwCaXl>VWgm#als(mdM0v=~W zm#v=m&*Spk7Q~w@#=anF&_mTv_CHZ=RSjA7Z#04RvPvxSVa{P4E-=aeKhy_*xFJiu z>#{iG`G3&{O_n=6)Gd6q`1kq9Cf{$mMKs1<;#w=H$Biyz2B3;U>gsDwTh zwfNuPy)5@^@ezOJ7j99U@zD|;XgB!kf?~+<#KQ+S0jvD(U7u4%6I+rB{ShA26@L1F zIFg9e9$%SOjQOG9(ebJCl-x5Stv#mrMZH(v@Aej1J0OzxGtJlbZf6rQN8u}XSnd6K z27fN%qhnGW=*Y>&5jPT@xPX?}540TBAHl6-BQI3}qkQITyvy7L-p|&b({`9Kh6jDK z3TJVLczmC@!1Rjel?ErT+?IUk#HbbRP5#{4*rbR(`9hvPNwu^&SpJR#9@oDxb1C_K zbeggVJLg)Dc(ww6u+t7v`2~3>Pmw}&8abmW~w)c<)hf+gesA>aWkd#ZgeTEM6A zp*p(IXdnFvZ_qYiafG*{5WYh zUu>r_ke5zke>T&di|ScpkE-$WZWca~dF|qS7;E>mMUF3lUGpS4OVRZfWweUt+Pp9C zaTNY!rq%dS-`(w9SMP7C`*vhJ6njV>*=pF)orO?W4x}E?-4>@| zJv4BGqW3+brqv<(eKp=Y57^A~b;kXMg8h%b{wFWlsI7ze5#D|zn|lApwTVyGe2C<` zG`$2)Nlphz-O(Epgs`p~yd@91fTXO0Syx=^Q}X|0=)f_+-E=C795@Udsw!JaRj>h6 z@FypiNu$kgolr`FFPQ`k- z$f{$(sYX>Ij&=)c=tUt1JnM&u)au!Zz-O}WVr`ijU|H4h^XI%ke|4`9l~`kon1PYl z0L&D*4RImJ0pa)oN=l84{m)I~yXC&##N72f$og5G$rG``B_5qN#-BXip&2pGy~za( z?y@!w>n1hD*2McJz=w7zzBLmydG^~D6EbwYa}0~ z|Arg)(vSVy_P)PMEIFaRd+kW0p8xH9^Zsjr_y(o^-_PDbYW)2=^I6d^dBg!?tBPrQiaeIHpV8*iOxV9z zLmQyGY)eFJKKfz6dhF5I8Tz2d&SqaO{Njp?!ruIZH9xkJM;*JvyQ;?1p3}#-oK*EW z++<(qyux^%JiA^!W9%4L6GMgmrc(h8>yiKa&|Z?>6!eHxd`pjutjjc$SOs*=J<`_} zo*Yn*HI30RGi(I+LZ=)aPOgmQ#Jv|Hf6G#r$j|^ECyqs{#k$kznXR9bCxCOx<^YS% zO>QwTiUHZ(B2R3q2oG_K;NDho1Rt3p=sY3I$?v$IJTngFYb*NI0d#iybe~?{^TzL& z93?O{d`N8xuK25`Ig{%y;Iz`1kfb z9gYsodFko9rx<(He}SpjQulO3LkBwS%^TO>QSURqD0~kd{1(i<>s)nCow~*|Dj}l{ zh(c~A&g&QK5_fxmFR@1G0Oa6^v;^OvlBb!U@t5iN0=@#KunK<6H`rJ&J~6%}*E;pSeXQR6O+LTm0^==gi5+4R`qK+u z&9)qydp+_jCAEp#LVa5kQw-s3=8ShiMxExY&lrLa4h6?K8r9gp_m)SbJ`X;~`BkPc z|C7g}61tV7G1TknG3xo(E~xRp9$p`j>^ASZ(vROBZtOq1nYavO)*YLj;w9(1;XP42 z>Ugu8MqTLFnzu3M;g`f*DJi)5-}}1xeEoM%`uvAA#OqtIU8O~rj)xyVGO47d^`-8TTkEt?p{cZfg z@Bvy3#?cPG`k}Q&B#jLI`3jp6v1r@auhZBS2EV#z!B;t#OLU>UY)!tw;w}-~id-_2 zS(^wsXg4}YAlC-A@rXP7kl`A9Q-Tt0=JaWKAc^T-nys_LR$8sug$ zir6_+{f7CeZ|}%`Yw?`k*n!7(N4Gl)mU)o0OmL`nfpTpH|Or$Xq$`~HIY z$m7$CU~@ypz4V!NnU8?6q04Tvdc-dDI!O=PfM>G5`y4gKo`o=OPZL`P&esiG>3%AU z$YH}5ZWA#e$Yk}=W!B~*2Vju#{CKOes~lG2x-Nb=J;6Kj#8lr`(KOzFKhX3i>oIi5 zxW@b`4|%X1zR~)0hNE`TXuiQO6PwRx#om*Kxm5 zcfgmv6N81V|88Yt?76~?zVEjjy%hYvQ4a5KICa$~>Q%Cfmrb4GBKX4D*S{bA`%it% z|2h)&JC1WwF#i{&+|_(1Zp8K;GykBowx0x+xq&<&wB1^C2T3^#qt}}H#M9*1edyzB zb6|@^Mq3h$k8B8Qa3N1l#gD37GGg$!X3Gw~eTGv+kA^*Sj!himex=cI;x+(t#kL%o za{}k7v6l`kUZ>>jPk`M^Qp1gE{|m;*H~MoS`f@h#~|oo0D;^)4A#J;+z(A8l$h(6AT?vX8qaj#6+L}Eu#=k=%G3}0o`*^FMq-*DfZPgxg*@o2$5bcy@EtnUzU zc~(Tqkscpi#$rC&ZBss*xX=fGwC~2ZHpMO>=`wyFSG8xF@9_yc_j1Pm$eeCb78}5T z>u%QGK!%`visca<8WG>d@0ICU3j*Gio;f=;|7U<-XF~oe#P1rE3zxC^xRbfIjgz8W-2tKbSaqN$Wa+qj*@KY@|_lza}|FRpi~2 zsfe|%O+H2Dtu2dHy-Yu6e7C&5%>vfa1tThn&1T9D9})Wjwi@K5l2@3&vBhR2HbtlF z%qu!2;yOtl=5#Y1s>^z?6Y>AcKzoBLWG<(!_X{ECqZ1!M=7=oUEaE1%)CuWWZ)6;K z$-#yjf`#Z*%a?hDHl7j3*!TO`GW-WF5L1mDkZvn+8(b$T8!~coWVC^q!KlF(J}_r& zWbB`q#vH@=(F~J1E7bc(zsuS;^y%{9tTVA4+u2W>$Vq=HSq%FbGH3TX z>KQ&!@aGP2lFJYqNpIF)q%QV8(C>_FgYTrIUe%3#pMDv2lN5|fr-66Xvn!oZ*TiCM z==7BFxs$%U>85(`pUj<^=LnhiLzP#z5ezS=ko zcY;+70H5!7R-M=EIdUZ(f-uKn-Z*OkYi`>@`+`kom6Zb}7*Jhor>9k=)+LeiQ ze({AKJD5Bf;LDYe-$tY7FTtjL5!ruB0pcFPA1v6^EAD3f)PC5o!6Aac8g3oI|K%Wh zKQ{GfQ^8(z+5r_AB!vp$l;1D+DtC|&m^UB z6YI9e=<5TY5N}dSh^v&hBanBn(*EiW4!BDo*&I>CvPA5;IP47 z1ygT^KG$&%bI=`izZTdz%+w$MIGyZ8h$Ywr9=g&Y+7CjO*o=(hCZ;jKAyPQ-8wS_D zJN{38qF-;`Mn0qd`%&F4s)1#_tVKKrbJ*oh_!#uW=1Ct2K8B4)u>RIgmly)h?niw_ zMSeQ9&m}DU4hP#j1y4^l%`Gm1W3I`^}WE zp1NM{JHmPQS{eUGM=lBah>xKUYZE26i@y6UN_jNr)%+$MY5AO>s{8`TBPA z4fxn{@S85!fRJBw+5~n#UaD)-mpybX*ENp-+{bqe2# z@6}A3XoXEdk}vartA6B0dE^$ckYBeDr}fk0D||Z}_uL+C6H7Jy?&?KV591CK6R-KW z4Y;l9V8si3m}==yQrp=Vjc0%1_ud_}A2RLVsBmubxlw|O6YoMPxR$Y13Lo5M*uUGb z&I$XPQmS!IM#?Pw(h{F>i7;^LN$>F=9}d>R+6jJ|Zt%3Xw``OfyKcIj#Lj8LF@25t;)Q`_t<6STM{)pQW*af<*BIa#3Jf;D1 z(-~w8KjM&ieus9dE363*}KK+xqk7^ay5;;Tx zY~ni}I>m{LtdnP_Ur(k@T06u7<_Z6s#CF1q>LvGxG0YEV@RwS0R=rzPO-CLOkF}~& zyTxtviN-~Vm!bdrP-k^_6KDF_BPxQMN=n?#XqVF_d&os}o2w_8|EG~VqP6;_q}UZJ z_a!zKUzy7Inbq!S5eFBeLvLVxY_O#gw0R2RHMS7n5RsNea*9-gRXz75=B5O`e`fks zLXFi@wVdMPeuHmJTW;{RcK91eI)MMd>v7<&^qY#<>?bq-?>a!t3Ybwz+VUDYO};Yt z@A?t@x)JOG|Ms2u9o&3Lj#w(#*%04W+I4JA5KI zzeFvJI?~^H-v_5ib{zjLjepyE8oXv;W^@|HazK9ac@aD6pBvwz9~QBqAoJir;s`5% zWwO6RphXlri+=PP3<6uhKi~}mz_ZNMk~#F>Xth>n|8`vN?+TW#)9lz_1LN^i)v%Wv zlhm<#Wn3a8AvjNVyXdR=9^Pq*k78S^sI^?bT5Wd?@DU>dRXfb?Pdo5E<@kRh+kKSY z_>XQxXX^@{wKuy{4CH@FRnY(Ek5cV=3Vp=?9yu_X8_nd`(|A|8KhZsSIq|?|vTF99 zMn$Pd5~q19Mx+``R6%KX`UsaLOpP;Pv4C zd6%+|9dT9l2H3<9r%UvPFSNvVHWA&{KZux2%D~s)f!OLDL%}yG2?vpT7QcxS!^jUw z8OFZNlqipdIE&1@W-e>DV#6+re0RDEbHWv;Xi*_@@dvJMaq_ zNdJq9{W=c(Zq_VpY4qc*L-9KYvs(TLT=gUP4Ejey&hNa}E!vkRx9&PMP7C||IbN5< zH2U2N#?`*YRZzZ<;(&g}F-wJPJ>?MEB8l^n?Y?7`<}yd)6FASO(ctGzKFHGP7q%@gtfp9fz2I8UpNZB z1ZJ=f?0*b%-&Eo^o-=o*eUHBh7^I{g@WEkVt!Dak&6@|*<-R%{1Z%w1UY$RP=M(`u zX^0Ahqeje#1e>i(@;Vt2VrKIIcu@xy@+8u?{f4q!ctzFAz{(pE zWBksj&!5r;vB{_h`RunH4PJT(pB_oSdZ}yn2N>7>KA`=%PChoBzUXzS@6fiX>C0{C z(}Rb?XX*1F%Y)erCbsw-YiY+scS1%hPzB$B$JhgUxJ2|2?6=sImf<@n$p?9>vu4Zv z_8vW@zg<*EADh|$z5TjN_;qxPDCj)TkRc|1Q*GrRMb%$U=93J}|4--O+xL~+$i3iM zjDMYu?Nz^P#ditUGP^kDAz#2PwXf4zReuF|=SbM>oAV9H_?BU9@i99{zb0m54P&~D z$xleXZ^Z3v>>Q;&Tg1M)MxCeOzCH1+YX)wVC=4AB9&j6*Qx%>QiRWBHH#JiRZO+v9 zHGQe>bu<)v&vy0Q!^^U+2Uz2sJ;t@4GO4!9`NL>md5?@Y9il}Qqg`9#FE;;?Q8)T? z^zG}$#<8Cd!CCN8i=B>k)Z~`I%zf1u=jra@&xZ|S2y4JjsLJ|o>D7Dog$M5g!y8?f ze2CrL!ha{ZI+-^z^~JXSK)uH~Y-$}}81F8h-RrsfziuD${4P`P@Oh#T)vs#%v$6*1 zLbtf8jqB2xv7;toZ7SOK4H)aiv)H}5k~82KI?P;j7!7Or_*2!#7UC`cMjIX2Mv1S~ zX?X|l_lonCc%V%1{}kldSf|cQFhaG1evRB-0gs&45xfT5+TX~1L_NQ7CDt;-4ksxn z96b&jR01%O7n*I=dYrX5=%;*Fl9h~x0Ye4Mw8=l=>J9|NU3?fvp0{1?1v z665$%JJvCSSN_Q45%)FSO+MrG0x$=MN9^oj7rnGP=-L?^6y5U1UiD7jc#l#O)py^e zzm1$|)YYpYb`gY(wrnji+TgIq{1{{Lz5Ccb=E`@>nR)2b_3GyR;(;nZ! zb;5~f*^hp964~x9IzSBae_;v4A?U(2xObPu=KmkM3yvbx_ed<^Cv zpdT|HFHk!0z8j-rC*>QeGcIk&>*;9IN9`=aS(J4?G&_d=Y|@U1FNIWpNQXXC#cdHS zus`-5Y}B1RcLVp8l$U43JWl)~aZ7f7Kjb+Jc}}assxKWSZb8!3^XmPUW-)l~?*sf9 zr}6Uq_%2S*OkQAg%MaL-Ya*{jd@EU}@yGNWWMQ>mhlN z81Eagopi@+!%(t)g2+AwFidiOsaLnex6+ z|J^iUMD@t?;fp?Nrh&-5lJ?*O7z5s333=&mBI-CAZ5PQZN**EJnA{%G3wu~EoV8f6 zn`~xHkE!^EjhaTTX;WV1V$4;aBj_9EXUX63u^)CHMSe>7%aYB=m-lJ&G^)P8z3^_6 zLE0Q}13fA^wyXq{rpG;^AZ>gbfA^YORiAo2)gn^jf4UVukOMqF7BYGs&b>aAJk7}L zO`YUJ=Kpk*S;U9$%S!uKb%{-7kfq=O9flCk4Mq{WCi(in%P%1F6$Lli<8p{6*nHyR zdnYND=F|QAAJd;?n%%Gvu>ob;vTjKd{PNPP6GqXOPtm6<;Y&Z0KL3k8zMW$ieZfa~ zPONq0o-WQ<^ZT=3n;s#)4z!DVd}qyD@ELI0E7%o=gZrAPn8vrdZg7i^X;nLy+vr`V zEy45uMuDY?{nqA?)iKpMUwPLlyz@QA;8DI|DBqGNANHJ8_`87@L|K9E7fk#&Z9Y4c zyhUq$#G(@98U@SfdkTC9zrmgl;0NgBb2n#u(zfFBIb^yqE;EEWL|t%lGfmTc0T0q&j^k%NP7Za&KlEcYkWnPPeS)9$6ty=h_7h3%@qg<+ z(;@0%56B2+x#%&rFm$0S^vUMv5jov%;pF*!)5!Iv;bZtkCcX`3g?xSsy=HA>JL|mD z2g-w?Hz(giQRKrD=#uyY9_wcj+sEM>xsN${BI}Ec#ZM7T_Bnm_F1U2PE3D(Wi+o7P zU5*m!z2x6ttI6;32n^wl(Ke019sY{~rWta|f1MYG9J~Aj{j6RSgi4xwLnrO#ib zuVnq?4(@Aa!T@VU`!H zlk(0ZI@6w!(yIGTL7vRniggKj�PC(e@zgZy?JgK&F{On~q=UUFR|IC)fg}DJd3u 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
    ?nXmY0^MtEf2K~di|O6|&ZwBX&ot6=@{pW+ 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%0ALo_Pst`!yB# zyMt$Dz{cr-jJ`@)5LD7nm#A5Amk48BM~Y1V@CMZVKRRIvczJfVLLPx~>XUFnTLD@M88UX3Q z;;lyi>g)9K?q$_A&4~2v;pN@E-mqipr-xQOc2EPi@`%Py2smivAaG`@uiEaM-hDS! zv@h<(6ffSH>6fA2R1K3eDHN6B{HO2NjGH$zK%|iQ-S-vtioQQ3AZRzQFV~>+Aphmc zk;5l##)7g~+xMS*=~7_%SK;z2T;G54O8@@#?&}sKFH*JSbaqgLFcUuek;P8=@vlfB; zUtdfmLJDyO3CZ`*2$T7PRYcS4V(KD5b%Yc<0#o$6hwGf?<;_iY8$2i&JlqCPv@9Tb zEF_V&5cgE-DXPctkj z(Rhbbk??{$$myKZdji_=9bTAgH-yVo1@#9<3%$|h#RW`3qUqe6<1Ls3l1CFla#zK* zGrC@rIPWcEz?c4veA6<8dvSPRwoYOyEA~7yZVQp7eVWbQX_c^#Wz zLsaD0JLA@z3%%X5m@)vrK#px`^4!T-x*F{e^ULFju_3y_j=; z`PIHULO%bw;z9jDwx`EWQYjj4KQbD;n2;Rbl`_PsQr&e8W83G;r5*H!_m7va)795I zEX+N>bbkB(z4D|i>~xxWpELpD6ZX(3lggLw4knu?kKb3F$(Db%{j=krUH|OaN7cb3 zAX6+aOtW8m_S?7Lf&C8c_t<`CFP(v-_MbO8eazkWF?Qd7#u(%C9)J6tDGE=fC_b5@ z?qqt!-^&wU{$B2Y@psUf9(Ja@sh;wEY^s%k=K4GrWJDUH-Z1oG_s? zah@{sT>n%JZRlrHKU@0Q)(>^`{rj$d_Vlx_p9B3I>W5VHYjH?PZi_`~a_?f<@|xX1 zs`~Io4`G{j_4YM+PT6oAu|2!~Hh)wuEC2BM@q2=>QF9}A6;cKzyy)_%tny*rK~_tb z30XB6EUrFcdRVgJrm-H>IikxvbYr_T;7k=xw?t^u+ej13N3SQN#jybYvl2J6j9)9Z_@!~F}?U|?!0fV+r+ zT68BcF0^$^d5UisM9kG3e(*^@C29G|8E~Jn_0zTWh$ED8OT^IwI(_f&Ymv2sxxxaX z7j48o9t+W0*iTmvUoktK!^dy0*VqjX z?@*Ir{aM?`Hx!FMIIMHaOeB*{bjO2@?SuVdAxo>t-8K&$-&vh(1rdme{h`*{*#{D{`K$+0Ob3(51CH zz2}Ydr+2MMt4?0MD_qyiRgZ7Wh|QJ*=GFmo?0`9Uz}!1v4jwQU514xg%vS^EVK!xE z;ytCxf$Ov%%93=uYYG@D5Sm!nduv(M_(E=jV%j3x$7L6iT1e+jP;+; z+scW~DG)aM`9fKJrQ|NQzq-9-FAcZ!Yv-6r_3i$W&E8LS`4?NmZ7I%qL#4Xb)+|$*26aI8}(^6v?C$eOm!iShExf z{z18m;9taStA{dXBcD}T4Hgms7zF;Xo?EdSv~yKQB{bsX;PrHJP?Y8uF&k;-25C<- z2d}4@gWA)~!NgRWWzR|VyG}HPd|1r|!Y^aDXR02%nXLvJE$EjSU&j!Qq8kUo-cCx% z&YORQ@T>4>mw$y$v-hoKCMxA$qV*S*V`=@OYOKwRa;5qRhGLYewO0hnU!{=H{vx9Z z?Xo@t!bXpKlCluv=Vl#_*$n%gNdr&G7UhGP*iP_Zo#H_|$%AH{iJRC?baQW=>gHZM zS#a0#y0_C#cYR3d`k|dJxDC3nGTX=kZsrzH8&P4d(`>C+P}gc!un)+t)h)Q~m1_Yl z`E9RW$6n8Kdj*5NUc(0bAlvJ8%+9v0jsZ9G45*E&FdO*=)LO@aw@_`ZW5Zpi+g`^Y zulHaBevsq!J`8qy9a}(4uG_n@V=Lcjf-+ua@@S7&406YIjf0&rdhv=d4HTvbWc_N_ ztKQ`6@amw#)qaZisv}N8vqI8dF{8C&K&HyT9UFjFETdE5wc=>m@RL)@*I%H0lvqWm zN)gfg#T*3^$gJ{W0XX_pZ(djMnC-*8|9Lvy%mtkf(CDRWh0#%`Isz@1R~!)j=$POe zJ9V+|cz!NP!2=y&I#?V+NZtkXTrh6A{AsETVN=UA2v;Jy&NxMofxSt1Z4;h-=ypam zZ7s|}XZ_{r&@MZ;G8l9U?|if7+p76wN(nwchmDRaJ;c92oaiK<$FiOHWjHg(fx9JC*jx7Tq+xKG&k4ZdGM|$`<(T=L2s&Qy z4PlAe$Knmq>|s8OH$?N7`7GWL1yJVmcxW<|4^=DnaVlsQF`rXG^_KaZ3M!b)=TuOr zA|L8=?Bi6>I$}Pjf_5SEITbWRna`=9&BuIB1szE8p?k+ZPG!%jFj@`hRQ8<8o>M^$ zl!ZAJG&sq(?^O1k3W{0`=v4Nd%Dz+CcPgknF%+i)lUlw5r-G^<^Enl?q?ymDz>F}T zQ$fXw`JBq3Q#o`hhfd|tsT?|$L#J}+R1TfWp;I|@DzHC{=qB3NL>wvQ_&TLcl#V&v zX>FoK%>7Pn6YW~=4|?9^hMV5!_y#@ib@+px_dEPS&wC#Jpcj2_6K$DBA4OUI4SHyC zbAQm=iu`Q_J#6uvDSGpE1= zEYPm~+CBDs-`sX_&d5|KRbU?@KBofA=fo(!`J94Zh0iIw0i6gXmyd$m$Ej=?mGeuu zAFxesUOGq5Q`lqAl!Kp5{lI2=>WbjwPLAGu0MH6u3G~R21nq zLC)A7J={KWMuw&I0s~g!5j6U8`M=-3KP}%Le%xiLiL;lX4AuqGQOyTG`(k{-8l2V= zV-q$&ViDFsX#uH2(>+`rns4Ij;KpiI4{YAX)k9nOjdg^f?(6Cx-P$?iBSxu*CQ;c| zZl$B-oL79v4+AD2hM?}ZsP}qqF>X=|tgadB0`A2fYRY$hRx;Ce)-PUU2)Xk4T~!WD zUC8$%lVp&NORW@L9qsvhh~^*yZ}QCWdeNndYSb!k0WmT85{K2ai3DgZBCxfnVq(#m zW$B}Pj|Drkj@Tpy(i$;f6xhf!>N^b)!OiLg{m*W{`%<!n;oFgf7gX{xGtf0b$!0$z&ZPJoDGUY`;ahCxm{913{332A$-W3^%Rl;EE6 z^v(xbDIn$jJxCQnmcK|Gunr!U1_~RHc0WcM=V66mQHjeW_k|=al4tO~x_+y?U9PU0 zBqmM3f6vgt)62IfZq#;UZV+`8OuWmfT7xS^2E0X;D4&QTh3gc|8t=M?Sq zmAOZ*8Cr162FO~(bwpRA&SLao(0{XZk54Kcg=0i5c>%*sE=pjh%P!jHP$hw0?R@3( z5ypp6W!|lws6{CWbMNx!-HSvGXKz>CH>_^zs>Sa;t82_0(0M_+ae2obTY)X2SXb1q z(wz=IAY3X<(aXLfg^yQBq| zM#+8r{P^~iJpIS-mvtW$+LSdR`>Ux9v*)@)FasKE9|6ev(OT_qlZ5)u}7Su zE*}0+#N^eHp23iFaC&*g`MH))Yl)m|O0w2lNy(x#IUEfX zbhjzy{(=$*SiD`*-^zVB6686i7F{4ThDrsNewG|9-dh0?VU6?O8386R-mHR z1O3UTCA=QkW1?hB`4M4BH1ggU$)YyOJS;=YEaFK#SL7vPF%YY)S++4#RY5$nHIQeq z21*&TrHz%MAdrGwUwCVf$CC6ExoX8Im5m#QmO%Z}YqV77DW#MNUo^|Sz*uUjaPl5z4Nu!(*@HvDT|MA*d`xSMcu6SylwCa=OWCbq#EYyPm_*6S z$a(~qB1^C2m$Na?d!0;)r-zgY4}q26zSMKZ$O!upY2R{+5L_*rdbgG+M6*=McY&#PU;2JA&~iF#C^R^}wg8gC{`JiWh6B;zTs63%@l zRdK(-LofUo8N@2@2}zGHGqIBqrah*|s4x889^TcG)#JN_IcjEpQ%@>WXpCHcuwLYR zQ*SC8NFgX#VwF8P^}d!~u&D=%iJHBLPGdfGvdyxS)iClp)$DCWm(W&he9lwE*wZ%q z#%9?IW!w=_#U(l=&{Jylmhu!jMEEp4njcpfbe|@MvJkMmNGvU3M00JHXP2L&RVd12g+W!W z5wXlwC=A3klrYUw5UOgSN~#zPIZIV#6nMIYXk@*rlM0W{i1xlFW>q&8W-&Aybmz%3IIxc3bzgJwoo0+ilI>o1)o# z?0O@phYGo^?cGYX6kO!(7WV37dnfgR?bb%63IBztZ7s{v!bqUrjV+_CVLiEWgC)%; z>gHe2Qzf={%kH{DVYI4~NOrVbf-400Ll$I{zF0WLa#mrTVbcKp2BKkzVga=x>Z-It z+x`eGCWuT=yt-C;?4?n}r2Ho_@Ek{K8d~G9wwdAub#%*1RgP0C`gBQ0s6e8}W%L~QRu4B9Iy~UKe!cs16_6Qp@2-=t`|$Yi^ZVo5ON1gM{{A!E zT#~GwpPqR>7sB^?E|;m?--c5;ljQj|GQu}vjRYJy2W0H^j!XRS0M1v>-+5+wuUr(E z-?2J<`uO$nVN}(s`BHjb$v=6S@;xXyq*jcu1MQT0pI(A|$cR8kE+%cEVphzqTbk zOX9)v&9AW_q~& zu)1#zoPWD}89#r$e7O5BYquabmMPU1c=R6RnjaY^UwP8LMw!4P${FSo2{O2 z&mK{x05kXDYuPph0)w2#LT#bSGBG`Cw8847LBBqAoHBGIP#+&<%nn&sD6%XOE5Zo}0+wz%tjvJ`^FD5(h4?prT56L_~1yWwU4 zf(^EWC&Xw+F8z-E@?mCB`30KSFS@BuYpv zc&p~yuK9MPuBskYzE1a=*KXMN%8DNVA3PnOb`sL?w0q2Xc$0!H zth*xJL!#bs$*saWLo`EM>^eB(xtxLJm34;qgwL<3`BFamYC(x+TeMtc8#c9QsnF{ox!CJLnV!{1E4}rQOm96X6?v^b ziq`q4J`0po1-~Mbl4@2{LFR)>E-+F;zaWyUs9t*ok@lJ|5ORfmNFpavuhN1>O5{U? zoXCe5bmmZaYMU?CBd*?1b1HbX=tP>PXE|X|*U~l&D;vG@;(qr|c~MgCLQA>G*o)Rc zt?`X)+CrD~$x^kqt_9FwAA}e&lV>e5sw~>O^U(tb&g>gLukb)=4d3XmLGz_yB?wt< z{eKm>$@w8fnTn`74ulf-mf+SXNrJLXCNo_{>#X9k9iavtVZwY0tAP-^Jk8Ayiur38 zvj&FwYZw*>e)c%^9clz4rCb&$YFofs4A0*hzR5ry@H8RiEHjof`3hnZj)HT5h)Qx5 z{f29D7ijpG{0aMsmbQ?&GYgH=cgHxvXdN(7vP)h(_4V`1s7Sv3igH`Jl9pSK)2WS5 z3_2r#fAwFTa!49*vIdE%F5t&H-v>y$PHtUM0)$SN)_@YIgOf4dIWpR8<+mMv;(NQf zdo@;rZz!BG)ahn$A3dwmm-ADcAb3Ivp-E`6PTEjxx|f1}u5w)4bt(j6LLr=$4k~3ZBS|2A9-l5yMwOtWGug4jawx~z1dBR3J{=z+{Fb2Ua+AEu zU`@ojB2DOO3W*r%a$92|!L2QSmw}iBiR5NqumnlxT!JP|a|a0qirXV_sKp=Lul}?ip>udBGjhtckRg}YEnritw7QAhH|R$W8qml~ zvGa{Bx@AXqEuM~TYj`3TCHD0r{J!x?L8=Vj1Q{d>VS6D1gq~Y-8@It+wTkn{CIAEktx;kVn5xNtFmWwE`HV()_ApOwv&1#*5bs3mQ#u6FEdf$HU z%S8*-sN1%XkhHaf9q+sJy5U%YaBf;BWz>RGpsjr56k`ad5ozu#RW z?ZLZql=r*0`zPAXO;6|9AJf{F1yw_iD8 zdw6xU`1=BhW%w&PRl2xDQj0rB+V2mVgC4+}^V?gPBgp=Z5%s9D)e^f(x+Rb_8asRy zj19T=OeFmDb1We+4lV6?5O0l-={GYIr{hOnmpU`#SC7UVNVv|N^NhCZT`nGK>rBh@ zWF$VT@|1HvL6oWst3n?Lo#o%xzLeGX7y}h#x3hgP5d4R`p}T70$;=EMS@Z zHKh{kV_Iq9h}T;*YJ$WGH|#bhs7}Sz(I`PbpM~T!C#FmQpdE+`BtI1;0B5~0c$niv zqJfdYO4XP?HAvYYiKd?j+d`6=H98QygiOdIoQ}?df0XYVGKLspzSwl$d0wB5xkZu^ z7WYa*QPz|N*hYp~yX0+`n|6yd15JvqV}PfaDqsV&UXq9|+_HcLIORhtOd?%7L3_4b zlXrbcCUjA6tBoN2adibkSzFuG*5AfQiNTx?{BG&92vMSilv5F6>6JvPIxesjKM%Qf zLPfroifKtsr`Q(%+vC*v!cU>S=?;Gnak~u@cP}?viaRrr~7<$hv4$_ zPo0>O_8Rp2-*!@Z{za=tc7zf)Df)02S~{{L0s%!!+WR`DW#>sEkHKu*8bnQe5TMDy@gNh zw6tS#motu2iZx&9VOE;kz{G{|~)``m? z1_Rqg))d`Jh}T@3&L7e9uR(1a{keRfR?ob$A&=cp4BxsW@F~8qkTjok$-sn+2 z_$qcZahqIT0t#GuCurZSVNn~5aG)8{AXRpMk(Z*$et}h#%lmNJcJYqdE{R=<)%X^B zTWE_ayG{y;9FJ~ZMh~{sWq|pr%(f>`}+JNnqVtg=+GW0#?&uTC^GsB ztRlBEJj@{y;%rj5Vk>7NOu3A2l|j}|O%dEmRhjrz#3C2JLMyVt)^OY#X@!$`HTt}C zStLU%oGzsaSBZaG{VaTwM|kd4c0MLhWaeX}A}cXDQ!mWkAI#A_1gFVD z9j%EH>RJ+tjh(;1G0W{mNt9B-3vI@ht!0VjO$@3g=PhLsA#u`)GKeDZg+?o6+KZYYAdA}+j|$TYYBHv8F_+OCn2>7 z{RJ%dslLUNP$w6yc+={s>_VX;VSufI~ySIz_G1F-_E6lyxk}pVmWXh-h%w z`8Cp~5r=)!Q1c8^=AhO_(-=*^#BlMJLR)9i&?yI;&QSjPg|Vt#dTUNx-h}7&XRX1Z z@u4k?nrbevsy4o8jS0V^9_yoO%Y{JW(Fk6oTXKkZg4{mHDYfqX_I@8e&TH`&DcxX2U%4oH~_C-z(}!5bUf zs^(p|lKTe9ZaE*{K?R5GY=O2?v0M?g37h~GNHetMOwbyMoLxz*0vEVix283E4yna- zP$SmT#I87BEY9s+X-8NYNd8S7YaQC}emRwTRupxPkJ0%exno;`kcf2ITMhyU_rV{y zH<6j>Jdd38u??J{99b^Ub&Zk$_PRFva-<2oI?mU;Uj1car}N2j(p%2X$XAsgQwZW> zJVt);U>A4T?&Dx8qkqqs(AC!40LE%D7hDI#P}=Dr_9)AZr)UgITVBZ`!@cgf0+Lb{ zcIv@g<74fN3wD2)>G`Sz$T1CRWD7`oK(Jo!a+{i~>Fo05k6d|J5PnK$+^BX{wVx7Y zo55?|ib^EdA=p1n&vpJH!H``13#{BD^n&+vDeHVyZ8}VPx0|pDn+Q~$tijE0M1_oz zblFOmYUG^I8EVa!Q?1wquzLzmZ@Gn*`x13RN7+L`eihjv+iQ@uSZHytVx5fUl7U^$ zPRf`CG+%@;G%9dO6m5NDY*loZ2Pnj^D9=vb8&n-qM&;B!K0oG}Z4nROel3dt4w`_& zCSbWgN9kEXW{iSsR3h&j?%Wp8?v%pnj%~rLWNr9SpxWZ2Fl&;J0%?bjf@UZ1BXeul z^3tq>GMiXn`7oL~$H&2E>}fxYde;9q;s~R|+UBzV_!ucoxR_wXFgZvyn*yk2v?{_6kG!TcsqgyB z*%?*Zs4vn2!|sIlN!iP^{fg`WbMIFI?XD$(;()tOZ1Q2qhZ*25>Z3>meMnGOSRcis zM=zJiLAtj3&C>I6Vj2d&Ajl5aSW%U~ zV%Xj@AqTiq#-?ywKTA=H;FEIl4dCx40*8&yElRQ3p|97rRByI9-~%j}e3-;8f2; zEMPbtxI=O!x{+5*shej?N<>hAsU!M^0i>5tZzIfO$uBRYTDTMH><7CAAZ}r7`c=a}#w9rZ47q^NPX0bkPC$Uk>x=6;8L$ zyCW6PVyL>|DAt3K%WDuxLLZ}v7Hw_mc>!JJU=ZnhTFICCqTz9u&bu6%-h6HlV#ykN z+Aru7ash_s^qSCOw4m}}=<$%^=ipT9{iS~D6VvalG}sPP1eseuhVr&V|YYWr_`oWy_xWxXT|prQORYUVycPy*3 zK=eJ~_HxhcQ{HQy@1Vm{z#d!E$}Y%QBN92*j}S!Rybe7dL}yy?8y)G@R@0 zor-J;M>=RVPgzJ+o0E&%J=D{ClpGK}IOo~hfPL?v3)j)e+f;4rJ5MMmV4OzBRTv;X z*^M=`z9(xojbxZa&k+=~eYlW(<-tTeqnIYNw|?c;@qG3EibApHpX1xxmlf(<94(nA*#PRh8v2*l>OzSfn)ntvxqBpUeXcNkW>P@QG$F?k? z9CtXR1EMLl=cS!p*zd>iAmZl zQPG+jnRf&(D^u9KD>boxOR=kit!TVwZe)w`oOW0nXm@Ue_AwC` z`>zdV^hPL;H1#5+lhWoXO#_4YXodC-oJ<1{tYI4W&^0DyJ*e0%T4j{0N`v8KwJtxAuLT8cIbFzJ~d9<^I z5y1E19>yKtcd$JLA&BfMN5K1#-x_q7+}YB(6t%tTe;*FI+mwQtW`D53UDnParWxNc zVfntz-;lo^(IKkZv;3Rt^#MwaO-JC~L3eX-xT~GB{Nu}d_UUo z{1*h4@hn)P@#Jl1w|`)@xP6EX(DxmRLv+<6rPx1&#J-bA_ou1>&x*1-JREMp0DRxw zz(nTz&eo6&ZBcgYSX%9W#(q*&b|~&{?j0TOQY*uKjB%14hsyVT{Jp4Zk6{_MXV_w8 zj~8untMHsG(l_YS%={?1^7Y<9`w9trmN+aHvPcKcoUUzj(^v{WaDyN7)hvA@@a z($3)#@w+6CiB5V0Zs}j#b~>T&JGu|M2P}Z?Z)1~F?X`$^w0L^xFDfvH}O)b)-$0~R@F-!8VTD)#ob4+dL3YHo1Q zRc5+76zPcM_mngl8$fN3qG9*+eJ`rTsI}F~_Te79F7=4rhu(K&LM>`%3yO}Z;6T?-{R&1N5esi?n-P+&47%Kfl&9bw1tzm}0N4nT4_Ogbe zHE!pbPN9Ez(A^*IVwe`Ibeh|C4!WQpQmq?Nt;`Pa>U5v)F}8MZZZ9{n(fhu8bE5{` z#}x4U6$xElb>3Gr)+Lp@f8_~!>{P{kWupzu+v}~}O=xWIX_no&-nt|%e>b~jyy=`1 zG>RZ7UVr;&fAfI6ZR{zxJN-j7E`D_?nG)RV*NTWWxH-Ggsx$2j5BE0*2c$U|XbA1> z?2>17E~^L9*oaGAMEb4 zAehO+?Hzj0&i)1+L#qljy=m0>8>t@d9Uks6C4tq)95S)6UX-SVQA>wIj2df}+S*pBcY2!4vD$6r z#9kGJe(D?%rPiK!w>E+5jA+&XlrPC24{rinM!kb+vzecuPMxSkd}B z8#l@;;|JKU^Gi+i5B7Jq`pW6{K(qPI(KhvYM7#FXATjROllMGB;9&D$`>3mVd~j%M z)PbhSE(Pupx)F`CPQddI%GLGF>gI44*X98;#rw{UHYiuuo%d`0ZmEnFekQPAmxVI# zY;E?Ax|knlNmPyR9AI7heLz_lDIdi4au9iAzq_&DQ%_{gqWN|<)DBu>HmRK9UzCGr z`?oh+w;R`tBKi-w2OB&4TYHQjQ9edhf4!H13MZ9zn)@6GM&Yx>g7)h#_}XG?ps zTg~awm#WLOB!W{6o86t=?QQ0Aim{~?dFNn@>e%ORBPQf3I?M8SK9{|YSnYOMvG%t$ z6Yg}i8{CoA@%Lf0Tua0_f6-feyBpgF8ZcYi+KucS?xl@rzWU3_#cLq4c(~mk4Af7^ zs~UV$aeJh!J<`rvy4pXoW77Khzp@bbu{$YC~s~E_FJLRV_^d)B*NnI1-BsD~o8949xv* zpWaVB9_?s*wA0fh!j*xgYFjz!Qqrjg2KKxQXX$-+bGNs>NwL}AZ>t9Pwn={&ovnfH z3=_6Yz7+L_Tie5}9rCx;-6by5eN-Pj^3(1DTf>~@wdg^&yLWK7rK8gRwpBNELkp)) z-5YT~Bqphzu$f$1IVd(ZFL!PhNS? z?0qIRAL2fyQNLD9Razf??$@ieCUbC~i@6Gk{Y&YK_6f{r826?6ZcDTU#<4$IA=}ah z#NI=qmyFr4uMJFFM9ChQ0#W?wXi!7aZNTV!ffY^+ki-5qX14FlPPx7!6cMQDpo2#$ zreVBGPT`y*P<&m+deZN4x!d1hY*Cj}lVotv<~nF=9kjg$(!97FPBB>3LbV87r(XoF zr&I*CrHO{h!QZ&NF0#{Oz^h%C;$<#hIulN!Qsd9}?D6Gwy3)%%!{F_yh8Kn%FP|>2 z?(Xki?|3bSzrT4($iwwd^K6x#?ZQ(LIlFw)P&af&Jr8hv4!F4dW7ScHY|z<7;iT?$ zJfq}FI=a`LHCX?;^O;9+w?9*enObQBf|+orf?By8j`1X{9{u#97pMmCcf!w=;93n@ zV0%`3a76VA(u}?&J3~cLA}cY2*c>5tc}2by@GPj8;4EHOW@QWIG%v5JTzfPqk4;JD zb3$%XU7{V<$OUx+oIk!&oonSSGEY0?vd~vu zq%pfsZhwjBM*R$BD3S~PRUiV!MX9l%WAqqg{`~LpdBnr?CT#u<;hfhD_nJ{_hk`T* zv;Z(XmZiZcDv)T9RmM z0@!IWNY;x@SPKy|l&UB<;7 z9eZJlFDs?7E7o&~1^w#7fOTYgE%(Nx6}ObW-zf1qlaGUz+R4X;KX&x>tZ0K58XBd- z>FDkC70rW4cweGWP`Z==d@^nU+q9@MN^-WK#S?DjRv|61Qg`r1WiL3FW|k$A$O9DN zY1>*&c%}<-cn9C30i$Qy{wP#+xjM}@U?Z~iGjE_yBgod#_Mqu2-FnQmHBu<;>3$HT zfm`M?j3#{mZ3j1Lgd9)mUz5w%Z^~SmOrU6_wt$-iE$>Yd0c=okXp?}}jE>K6tZ(%+ zEv%Ul12(B(7+$tbn*=hrK{&zDuspYyM@t@3JY8PvtwUlFaBt2IUmTAaR~*b49|a`E zne<%kk&oV9*Z^~Wo}u!^q@9a*9nu#~;IBfl2=LE0-$gsY0zkYAB$=fU8QamBk>eCw zLr&9dHVy&_)Inb*SHm%@gt)y)-8k8;eY z$f{^X?bd)WD!uWJ7QIg_oUR^G&Cd4l;l-BYm(CDng6O6#AfpHJdv|m6cKwGQpWUq9 zQ2~c`5vzTRPQg6X8@uWu5_|}4C*I`kK~Z=alXJ>N>c$dr{UxA1zgntlVYCvSHrxts9)DL?HXy3#VLdy<48@5A@o;ywceO7jxm|#9qYE33btcN)lJL&K_QCCn zcQM>&Y?9>8N=))?c#q;9UwYh}Dy$ZX5_xK{#SgBpd3^J}e5t-afQYUOgJYqFh{Zp?Yv_I}Nf zp^$TooSpr@?7iu7qD!te%BAcJII*Mbsx`FZixYtX+jL=I0j^<1M-UirmAkO<2X+m8 z_2+q{oQD@`b^klPqPzSeDV54OQ>m2N11gwt>x>&hTfM*ka=JWSA|W)MEamBIU!SmU z2%1I9hAWek-+%oDcN5Dy);_XXpk6eQ$pwoIZ^L0aEDr89;hW#@UjOzR8}8TN<(6d0 zo1@?H{}u9GA_(6TMxxzfZ?PweI)yy01gr$KhddoEu1%n(qNaLYOd8>a>u)k-Tn%e~ z2oiE|#6VxCTFQXfR(6OGN0LEH*gDFS#TW_N!N|{8s<|&W*G}eA0c(8$7{c`Nsa)gZ zVk{zu_mv_XPlYB3*Nve)=IgGIo4g05w(p`pna&a%!xNYrj2Htgq&TSL_9$U!Eh0<; zy$+KTgE=D5zh@PR4e8JpDo;wqrAZocG#3O~t`K2EE|@gfC^Lv4JhWb--l;Ez*`&F4 zPVaQ36~%&9Jcw1v7&vU5XPo4MaePH=O(ukwzF|dWcKXg{(S&H*PAV#J>i4?OL=-|aUGL? zxV~&(p5=RrSi@Kr<%z6uwriCzS{ry-gi`ZH1I}c>>&FC+rIw5vEUHq4;rK0%a&@OA z75Tc=-TrGmePi=G-$4Vjgv!otRH@|HyvSJ${(+X_^Vd|hsGw{@`O&?90MXNC@uMZb zxoYa$Stww6HDakpPtR~e^shDII!ohWy??Z2n&AYAl^4@6uqc9svykq4g!7;M;hyGd zi`sgRn%M%~HL0JP6lL}y{{GSvnDap)sbJcBxK+Uknm+HROYBjg(=)D=Ffq%m2 z0%rE}`a?=ASnB5Fm*PcL=c+5`IQFH@kri2Nm3CxYW6dh^$5K>*yM2;vZe376o8Li^ zlTt?2k>b>0hx!7=1MILRIMkxijbg;VG2bLZnln!V5|1F|48~13KVyz@fZ-)ZFmYNC zrcL{4CVa%6`+->L57SfofuP(9d1F6*!3hmlx4h}FsTq_+CSN;+Sw#Ek!G7L6?d_*O zZ83Ja-+8%ac4y9TzH&fI#+hQ>+H*0(b*9~mh27*FfA@^alq!H0N&Z6gK+h!yY7-CzhflMn z2w^nI;?}Z#4#zq(uAT8R8=-9WRwygEc$7EOr>r#mmSqYN#TVc0k_5f-1CF^sdI*-e zRuA!39`Lc^Dq{myw6T~xpG3dVJ#+_PHypA>bpppwd8vp!F)oS`F09SR{jkPp!}>!p zqbaUMJ?70XZ+ayRlqonS`~qVeP4?~sEXtiH(qFJ8(;|XsYc8iDq zxkI{nm*|M(_L>;4~KfBoNAi+|idE;lc$^*^5WpP^~`a{9lYkuOZ7 z@UPk-c4&?G3s^G)cr4{JP${2L{H^B?i%<8<)_T6Y-8}J+{IlB#2>tc*Y6s}U{o{h~ zwfVXDZa?>X{N77~{mTQs;b;RK2;JN*l*jh#;}*X$vhnYB{eXup`j?(31%8S@Ab(tc zGquI)w|dD;U{eG(grRw~WxxmZ#Q3vYf8`&{CC@O}#nH!}54m7l@##_6v)%w$e_ucU5CKH&?K6}>f_U2DUh(tG;}`t}33ltd+aJ%G zZ2t`kNT|1z#S?2sD>SISaRxC}%uZ{234A!1euA&t?QR85YkYq5pPThp#3&(f`Sc=x zw`g+wWUl=CpfxU^Pq?g9Eb4CeyuJOWkgVB(Kq}Smfb3xaN*Y=Z@CO{KK1YDN`|mGL zdyCdz?31Kj?Hq#N1`Pge1XAF0iJCW`59kB@L~Lnj+VtBtDB=9J_rs~Qxo1| zKRjVK4(%uo4%_LEhuiIDCgDn48iC>39bIO0#}f(y-)*koiW%LNOVeVBv?i#R4v|m< zBWDOwB0ju@m(v^}5V(XIb+EYL#4P>+0>)}WBsu_rnvp8W_#SzVQ)@XTSmL<^o}QJ_ z?aNCX%=v@|e#VjUb;Mciyt`d7^Mjca7Q8?xZeig_2uF83vWDZ`QHXqfN}P22S;j*13S_Zl(<|&hfGie^u8M$MzACYu zUEN&6rWfd<%fEjOmL z1mEMmIxV*a8C;BSK=8WE!4OC$Z^|U?4`XCekPZX9gQxCb{tJ}r1%eKZ!e8;<0V zpRf3D0SQNAES9($E1<7mpH522I$m0Nz=Ii5S>kt*~zF4F|a?@HA$+ zO`s|S=0&_t!<_5L;fx5?fK!RxEaC+tLbwj>cIH~Pyw{6=Zg)5reOd3`VK+rJ1`a|g zNY@8ZF6(Fi5!yLy(Ehbv(W=obAn>J^z)g8ZcRfB_m$e8dpgk5FVWywLp^vTAT6`jz zg{r=x@jonPuupp*F zbS2$mDaFn36#Ev(rPbYR(gjx2W7%GQnWz@gun`a(Uc!sHXZ#e?Agd=sLW?q-_hoBu zSNh4ekdpLIR&(hUCtat_I+^Gu=hv z?5IF4!4bfv|DlLc0n8(fX+5(Zt*$b3?*fK6-fF#wKOeyXoOz)z@4^`;yltiBB_C*) z#It)7$;fKSe33sOQf$W0)}Q2^3kdBLT`9mI2`(oj%<|lZ@P$uX+Z+WdHLRhRic1)w zd^GtM2;tqA{-fHn29nXdk0;amK3FTH#0U}Fc zB?FtlQY%n6#>e-MZ~-e(nT)`FID)1%ww&!hVhlDQq07|g-sQA#Vce55pDk>{+qp6< zCuhTn9=DQQw4W7R=&8FxqG3M9GuwC5YC-7FN=n*+)41%Se_5e8mpA5(b%)4UmBery zidV9YiO~}yfB!IGvB95o7UTgA7x(v{PFoT+0(Pf*^cO`)JENaN<#~-e6QW7zewgP= z+CoO>4sS>kcz}fOGdo8obEO1HAAkOVSa^$#)i)XSlX8d6lM!gL_$D&BON1PNixGXP z2Ky9y)xdl9N4b{RyXy(WbZ~@LDG}0{LKwf#rlR7K6>*)RzI%gPG#FTzR+|Fa!FokQ zy9C6*OmNVM3ku^X*W_VRz`tdkU@&|;AJJwr;7OR+40%2Tsf*8q4m|_Py8sBG5qOl3 zsK)RZj3F7|F7fi(YV}zjdQrZB3upQV_IVLHzJZ$>iHIA+;T{bxoMRZhN5H%@1~Ml; zpYTvr(B*J`BG&~O__PduqhQ?P^BMq}{FL4AjzFR)L!IYKuRG_n#2A`&U!Z(j%PyYi8ZKIg4Ely?|t&hNZl2? zIq~E5`DoA*TOpYc<*PN=!up2)C`@lub+&3vpSL?`b~VnAox$2K-}PSAs_bzANyc`Y zs=tgVdMRos4D91I0_|W9z}==R24L-T>{V`HIp@j36%{<}));!i5Acf8gX?ThD=&eE z2uPE{-i@%>By`-Hr7&4V&^#E+DGJ-M6f{885h4C1#Yi9vLD`EjiZ0@rpcKr*>PsCC zx26bCkut;FOn)s%U@!k%f*$Ta1mosLo6Yrzef1UGcqYZ>s1uBvbZru`ZDpFQs%}_# zV#0>e(zrxfJB-6s2zhi%t)oEk+3J@UM|=T?HS#Lgmq8P>C8D~A>XSPYRX?+cLYTAi3;hdl}H1rVe;gp~#s|sL3dy($*e&1`qjbwKQ0-mNb zm}oFP$>F>;oS)BRO~e+`u8nxMWq#qU(yLb;_mfr!SUDxp^y*?pGQ>2)$2l9l1^+ob ztxPXEL;Oo0{TKu6TX2Vu-j2W-{A1K6?VArYRpCl8TObA>U-tRUaBJ{5{g=MSlMQ)c zU+wqW^a_6Q@@Ra4+Yh`-;0p@csPA@onsBjvZ0~-wW?wZgtXXn*1h)hmUF7hkEVR!A z0-B{PfTScEO|1yk`VPjsXA_`qv5d+?&0BM)iRTU8T1iFTee%dmq=1)-p*wA?kpmnW zuqSa|q3y9TCTQakVkx1xkd`O{C2a2lR2o=+8MUN@4`acV@Dd>ekE2RBIQ7TtDT4|+ zH;TmLGm13mpGznRO4NPta#+nEQ*_D{7Va#Yjz8_GPunW_&Uj$}^bpmgT~LWSc5 z4^xhW7}y*LN+=i;N&yb-BJQ}t40${jUhG2ZBj5Yjbk{jk4klH!Oali*8!#n_o zem(^aRZ7JcI0pSydtg^Pa9z zOtz(-l_miEj~jPn@bpr1QNL6Ayz(3zPXYr;6?{3yA!(d}F;wGrRq89hnf8+Ohhpj2 zP=Khqm6K3s*-FKwH4si%KG(cADC4X<1o;gwqY)V)S6R+Ni3+tzv*Ti;Dk5E@#7wzV zSYeYd2}%#qlM<6$ph@vOJT9S!M{BtVseHmIC&+akt>i*qsu=PwG`0sv{Yuzm9aEW? z%bF}fD&TZFZV#i1p;>&XH3Z(jzK+&x3ye0l78va;1el$Fm=}OKrA$4iaAEI;38WFe*(_Fd%CgF=5oHvUw(N-yvLx5l3ga?=)L0+v={%9~NIk@E2It8?l zC!jfFykjjurLul~Wvv=O6I9l(PH&vTvr064vSJ#z>g25A+Hpf)k=jS&a!YE}*AB0p zm#D0jB^^phq*dCwbeQI#1r}T=DPBC3x~+iIiO~Y1erJKnj*{TKUl=Ha3VJAk>5#|JFSq00^oAM2Q=6XcFKT4Z>cp0T5ILh!WQX z08w3l=G?1UhsnzMHf4H!{pMtGpx#MQEq9!}EP!TGFFEnI2Zgw85+Y1q7vi>|`YFWn zpb*O@A;RQ!A(nL^=mw%m1i_b^B1u}zUTAzXe0Yr)K;nkWkKGR~4>cKifG1P-9+Pv1 zr_NwD0cGFToP2wvV?_cKKavkFZLd;B0`syZB#xaSOF3euJAIY1RG{aX5;>-pu)y{8 z-{vO;z5tIv|Sj>joqJe+nML!{$Hf>g#C zB9}58wqHRYj{-fnl*n@ZQ{9?GI6oyp__L~-B zx}`0LBCh(E_T~=x!ey~O?|&a`dpse%-KCt#pxym@1`lsL8j;a%PVG;XdZ;o*^fe=9 z!Y@_@7Ns>}MzAaocX;q*0A)!X8FuP@K4xchJIH5)QNuJ#|1&iflBH?g05e1mKOG_z z5vt$79bEzsB(NB{&`iT}AI$KYd-v@6kF}`Az{p?@pe7LR zX9vEg&hbjzI&S%Mz1!j`@WvDx#_>^xwiXj`Njz5v5s$c}t}Ko?tmU}ktwgRbHYm9Okf-)8ejpF zc#H)IlWq8zAhh~d(|q{yH8E109lV0vc$%#5>^xCpWkjf^q27Wg)%Ew17#HaNfgf9q|wpTsE1g65{^? zSl18jjFmIicQP%Rl<)2s;f-iGlEdzYPi#C` z((#7++Ax6j-5uSa{80ZF)2`iR^bmJv0AE@(wR=Hfess3mFZXa2(lZeSR0j7mw7?2p zHTiz;r{x-28={ECLS!1FhHgmQnACPW_{6r446S9T=_uSr$tp-MpquR{#1v`~#=o=A za2xky_HBC(XD2;)rWdDVtYFiv>TFGU>IA0miX{l|wagR9L^_wL4fJ6C$`qjj`^DM_ zb%3Rj>;P3LUQIY{6t!ik$RB1_V`E2gxd!HjMI{53LCz@^3X{HxWG>E|=C=Om$*Cr+ zEl?AU%G4}Q1#2wHY`0avZGLfayDqy^)2vc5BV-B=iN!cPewwW0g6QC~&D2H&Wz?Xa zJ$eS1i?OvY2!Pjkp_4Po-g+Y7`=!3ZK$Fq%pRi)2aEwJ5N%OOpaNt zmkl-`IxjA7xtPf6vs`_{GR5O0zQ%CL_<%2>F>&H!vi`Jh-CZsAe7Agu)Asqeg_Tcz z&@XQ=VHPNZq=`VgcsO`FWM zQd%4+%^;(CApSMF(~`c}OcDmB5fW%IGk1=QiTy&D!3~>fkB=&5a2YJ)#%MQs-=DTS zcwXj~Z7(g=r4v!NR}_#|OqqcZy^MrW4??Q&k(|j@tWJtR#K?AR}n*@HFs0>1a}HLB>2pO?-=KExGP6QjOBXY+3v1ZJDd^W zMRtiTJ06C^8{X(zJB#+7KD3GhoE~DR_*He$s1sy=02Q-7e@HMm`&b<%`a0fJCV0%m zowqWMrCL!M8-)@NIsVRHc$A+4V@Q7p`EzTd?9;@6;#^9 zV2tYzS?lp;bKW@@;{M>eH@h0)eiuD^j?pr}69J$p9_MJZ12yW*@49~lRVa!5ps?`X zRStvFxZlwSTT&zuYc3TV$T`Q0X*?4TC}e5B8D6)C@<_LefsSFuuu1Uvp+S;DCe(+` zuSd8Ofi?n4T&s8{w_bbpcZBYseo=}j)iJ z-a6ScmiVqrVa9a=78mP-a<=_~qXr%uNibWe(Gb@_AN_jYdOXcuFCKB8-RZ&Xo&1sM zV~>*wXMeM73F7ZB4^Mjt#S~Z+5WL1tac-mFhYI564Dde84jlW_%sGnFAK`bD2;zU@ z1FtSlNS|@0l+cE72aWe&I??F_tJ4n7qb>dYyZMWohfoBB0tf_ZO`bR2#pjf#R;I=q zHS+W&<7= z=A$7Fe0)$E0r&tjhIFoa2s+2h%Ef~M`Ac7dnxt=GNoFXfeBUWvZSj{ij_@7a{9xa^{6ZDJ#0PK5 zE`1Ll?O)*g-~KS9aH?v_+!wa{p95|-LM4=7RLfH(Z}R`$CynVsVW`osER`Sb(P6*dfFu)-c30VS}llt>J>2-opNIyh#g#cr*t zSA^|(L3A{@PLjW;B}O7TBtbiOl&*R9~j6?g_VgQk#)ZgUZ-33obI z_n$roS3BHW@TMx`rfKrb6`mJFP7Ll?$@BOv`43!~Ih3}Hn9@&ZMJ zT)}*U1_^;7pJgZf&3PDzgdp3vbc7`3BPf+7siWS9w3Z0T_!MeNQgSDl$dzS~$(gfn z(W_t&&zuMHg~%t^7fr(N0E>;(R8af~;8fv~4-UKhgGIY5K23BnB8aX^xWQ%U-xB_s zCuI<_r`t{Si7=C+c7iz-%=t}!&^4xGW*`1W5ZFM@xZXiaY~a5OoEz;vTp8lLDES#I zbj%bn#PWD=um}nv*c-fzmlLM4LA~EH4R!h1lT;`NlBQSa?l6p>r=7xxqdc-gA)&ido=0bXE^ChpCT-NhSZNIsIhO?u zttT&KIo2w&$(&We$zjbdZCVsPz{N1jU9>u)m5UNONR|s%Q7+c1YZk4q<<*x6N2V5q z&bm>Zj{7(xmI@?f(qDNDGiTx~Q|fAjQqHU2FVsWas|J?#gj*(2;j_F&K`uRwO{YyY z;bk~I)#%UBHwHQ6B|Fs(pqe7o))PWH;+`C_AWfP=N%i2ImQ2sy)5&{rTf`c&-_mII zM}W{;(thZsymxJ!hw1fB>Np2$hsoh(@}MEIBzRtpiHwIg;{$K}4h@c2HeG+*o+FMc zqKr@c^|;h2l}WS~)>8q`2jV!1`W{9Gd4fvn_I?Aq15zWV8;6S^HOll1ao%7qMd%3i zyxYCV&AXm)bFS}ayddhpN1Z)pcnCTg++=cR*$RP}ZFAuJc7K+EsVAUbCrVCt#gmMb zCaLz~CL+h8G^HCdxH&EfaWpeaD=EhrZB8ZoZUf5kqXYB`VDpN zu%Nz8s;mplzqqq8>CFU2;VtCP(Z`s z_LZ6uhzg>SLbf{+5wIkw=X5g}G!x*O06zZ)A8FtS^@#q^P=j6GM?jAlPJ*aCwa(I7 zd&Er~%#1!kW&W}mFP=Y}9~ft-Q{L0H^pm*O5$wmu&~%O<@@0X`aGaji0)^9fu~?4d zQPf__0MfA)|3641JK=16*1Kr77uadj%7RDc&z^uwbqyTg2Gj*}-QsG>36LfqLOA zSdO7q3=8BF1a>@;%>oUjtqEsAz}{#@eX`g}wV~Hq3M-%VU=Q}i4``#jI8-nQbdOaS z%*`!YnqUs3C`~!dNg$Qnui)NifOwn(s8Q)UyAQ9HT}~S@vW+Ld!*_VpJ;`x=x&vL- zy!{SShV1RKfk zJ-NI8^s8O{bHTv@TdVsnf;6WOT;h#vjdWApAnI8yLg z0fXR%V7_-L!KXJJO6t@1CKIT?<{NcKSF^xi~Wc${WlmaLVkjz3hntccns}P(w*_`Ys%262Y@uJ4(qvb(F3Uttr zew+f{_CC&a7mPa$__*V5p7s1MbE%97ICCI{fKOZX2HZfW0>*V+|3WEDB0i-Q)cetU zm^Z&ZwH);KuW#bt(5VQu3^Gchj_mnmFQ@s<4%*fM2CvU1k|jo_XdBVPJdEaj?AwnjjaSzKJOGt9PeATF$0#JT1j_SRaic_929iSqEm&+LX zEI#4(($QRKDnqEOu{^6XLm*I!1vi-jdVe*7HGsSkjmm_x0VKW>j7>Xe|M?M0uAAwV zK){#}1%h(HjL9dkvnFroAc-W=Ipy!T)uJRgeyD_Gj@x{j_75kTd?lip%K>!5 z$q-vf6Sm1hr9n+Ru>{rbw#Td{OUk+ZatLER*aT|qCyPmb>LD06sdh1UEEFR;zcS8I zG8`6TY4KsS>7@?G6_fLW186ibu7wU{iX@%c0p(sh26f>EhwU9DHU>BdSftl3b6weC zYRTCl1_A_Y#soOU&PT-5qS{cCrd`9np}_@>60ko7+HW zj&b)OTjvlw#ddOS5$zSsZwxE0JD(mAPDwfE*@nW%8z~Xy9NSU`ScZpk910)gv;FeC zm5(lz)sHLvyx%WwH)|y|MebP;${&@dhWfQrKwtdlH7tN(zvocDaF9{|U}w|vU9BwuEVl5gl%YV5)?q-KAK4Ta-^7aUM?Q1veSVq6Xq$fSqq zp{og;Txz8d2^D}6i2@9K8Din%9+=VMVP&j*6%02R&>CZAkp!mR6_r%90)s=u#kFlG ziwfJ$!rYl-N^-3qZn#|iNP!}VHc$i-BAHv!)*o>64*=@(KZNk!3lZIL`x}sD14P*= zScXYPd_Eeh1!IPRyAJ5?~c>4a3_ek!1%6Z%9l3|&5JkX8#Q*?of^X=VVeO5*H@I3GkP zHfBvic}^kK8A%EYy&<*%=s#1K)CMAuSLYfI8w#z1?E&UTY&mJ+9;A_p*i2>Cb;Lfc-*1 zWQ2`LV9OAYSdkH{F60BVhJZ*~1sy~s!G1MGhTTPp5CbeFvYkf>5CJSD2)mLJ{T>rV z9ZDz|jx1yY3RGQG7)B!tNy45dJQ#~CAxL>Zj))|jB*{afqJ=zy=@PRUNhBy*NaCkW zq9q_&h)yR^65)Tb9B3F_ynq!MA}IqFGCV<~q1nQGtjVvNXF;XW*+MFvrK5f;!bJJ$ zoD;~TA{A)Dva3i1BD0KhIr#p&id3M|bzO;6qyiBu$#!rJ+ZWfP*^PYHczq?DrcP&a z>Wb$VFrtEr$u3%)-E^Llh)cM6h1oHuS6;Q_0j31s;l=HEvErM?7M?`m#R!aZ9u_-z zZZZA~#C}lJCC2wa0JwjoGlBr1-U-|eLKUkQu%m%R`5v~9E&DB|E|_57FLpGi_;dTX zmONyz7bVw4wuthJbXH#B$7v(O_(eNI`Av~bk5KCHwXD?N1p8-{8nxw1ofKEDc(9-6 zD?%#GxRs^Y882U=4CPCdp?8qcAhsF5115Mj%STZcD<_+XO0>QN%d7 z7BPdWI2l+(QH@qs@c~YY5N}TOfegloZOzFDCNI~Tzq0I)%&Eoi8%KoWO`k`imI{1&p4e;uJb)JaL^xl3EB8*cIGneZvtn0pC3CU!L><@ih-%KDX&| ze~){QM~%moB%_Y_88!{;1lLOaq;xDUh%iK zL7`@0>xe~X+@H7pnnSTK&kxVAG~Cmn*xT7PPo~p(>jqBr#{8!Pr~TZvjyf=29j3lS#M?}(%Pb+WIl0CKfwe|zATb&caDyJVb(oM^J`86X2PFcTJmDG; zyV459WO6eWJtlUqoe{JjI13b6c|ueSY<6*hQX;fZlZ>wQJ2wjm(|HjQ?WBNGY1+au#G^a*(HDL}b*XULCoy}{!_u_w1wHXSkCyW}SkiG$> zU8TelZ>7|8T!o=#C%SJMc$HX~d>d&@U&Wtsjg6J0k&o%cB{7UrdwfORQ@y}^H+_l2 zas!FUMDJ!wS!qL~gEuvYsK6WKg;Hg7a~=;|*Ulq&U!agY@k2gtuWHr%>#C#p=mN=f?SP0Ycxd z5k}Pi9B!ZQ?{LYh8qEjeDh;>LaN676eS+hM$7gfbT;-0ysg-=I61lY$4q#1u-yU8P z?w^?-UP0A37SdI7FVMOHAX}E`S6x(3=472NzTz|p$F5DH7Sh#aEfCiw!ay>Uo0ACp z=cmOdV-qZH>1GdoW0Kd>E&G9HLKJ}OBLR#`H*N`vOo^N5IION=3UBibj_Z42-A z;e?X5;dV6msjx4`@z$_LYU#w()~Qxkl7Wbxz*N8(Sdi}QED*1V&m=8U1v7ahevw#P z{siZ_Xj{(OIy+P3sX?YS3_K2fnlQ%&Q%#M;^#tu02g$U<)W~c{s^P;9rZn+bIXkoC zLkxPGNn{9>Nuq&OCNaY;8u;Pb>_)Mj9M8_;+3{ymN+X5s6Xk?nnN0A~4U=`Fo?j{b z&*vC+mY)(eTE*&8<}2yhS-4);Q`+;rTN=*JqD{$9rEIL2v$J5}az|EW9Z^P`wWcKT zKCXeXzQwbvk5L@@S83ti%o0(B99VvqND9X|n;LEqpg=AqGU`#-U zL9K@B3qkM&AAX^RoAe#x>J16 z9fLz=UXuYbt;7Ij>n{MoXjXj^;=FF!EyAiQuYigQ9VD@E?OFwdEoy)YN*T@pUPIvb zb)%Q(<@RBHgZFl@9m5-0s?swwuKn;1RIa2lT>Dl$g+`;tsv@G?VQfbQpJ%{b+*&Qc zGBDmFZC`GmGq{sPrhA;$gVVKU5alUe0^`}&=a0>=DSpHzPZJ%2a&(xZ9h^B;q&*14 zuBQmIty7h9hkZa)Xc&*X^KK#Ql)RL2N>j;J-a3YJH?ki4mx$(9Sl_l}$RJBx5hSAv zg^{TRZ>jsZk_iO~w!QXv6Z9Rf4TVIZ05!%@=CbaF+0GtJz?7igVX=eNIi!m6$*@rl z!8qru3|zgdqer|xqC3Y#>5@`M8KuZdK5;!_TYtOWjqd#J505sSdTPA5--WFUTReM_ z5wocX5)(xNiLG>4X~7f1uyQlHD60&csTA^|o30``1yuEF+HHGtPLkzg)dzT;JsIgna zmUO)jo~nn7f$wn@f{T~Urh+=Ze~g~`ho#LW4hv*kH>V0@Hv_S$c!q@2a^S8a=V7MH zW}=aJnL~};hVS~rL0A_%>y&xPlKCYoR)Y7PH8B8;bbcd~Y zKoee^=19Esu`^U5X~;NWX?nBog;}+D6m9Wg;U0M=@z}H~JSMG$K+ar}u$Rgc5eUw( zHDTXoF%38x!vQ>J6J+JWAq5?E9}dc}&9aO`MtSxjmL?VEmPu^>gP(rIrasvcd8j=z z1z0QSdY&)s#gT7obo);jxb#Hntt(5BQ5OM+IZp3hbHRUSzfHg9*L|&IOp;qoZ%Yi z6PF~Vclnkz-_4BP>r#YrJD(~|X|NrXM`%fOjzG9J#txJ%m>svth? zrImC(=-stR1uHXHIbk%q50fObT{(f91B;^OlR}wGaj2I`=ku4xM{L|ybG#+^ZH}9? zV$Lbq*_pY`I+8j~{}UPINzcxr>F-#HON{IqaV(F0rG8%Wodu+HTZ>?Cq&tSQGrPag z-9`fevkbOMvh53IrL!}8w2$_82hs$z;r1_2CHqlxRq8ih`IbAqS8ApWvtPj>MZ;eH z>?}EEKvfcnnVw})A>K*R5tQ)9m>g8fhwrnq${GLY^!|_~_hV_c*&(M`^dnN`IQ6;K%%R}Mk7C$#!julsITSYtOmlu)`+dz{3vOH?qC$JKbtJ-MOK+n&=+$$54Fu< zKF1`h6@63km4sR zu)rHPI#S z0h>q*FZq<5b=_2wGCnU!nJzC$nXXupGHLeev8f!{i^xXe^tEIoaq%T(QwsaClCLa} zp_3PwO@!4p77BVq&(C#MLJ%Ew0@P$gg+j|&gcK^b-qk){wY4pGhq5)dY?z|PK$+p^Tj z7!la@XI{oibk^@!<`d0xPu-lIon?N~im4%j^^{h?XWrD51{(kxU`)DLlGW*L2FKn^ zW5pIQfvdU<%gvDYT~|bN@})Do3@LR9{c#zg{YC02kRRo@{_o1koI|_}ZHs8OdMW3U z%e;(7-C#r&Q6tG9+=h_c}akSNh_Y8 z?aWaaHV0Yal0EjZ{g(s_x%_o$HWg3ae@P_o?7BLV4pxrm@$VE$xx_BU|5A|}y^{Ym zj;8hFw+#PIKeC+k$-`gaq}65l=H$1ZM>qx65HKR7S#mC^iHW)<(_JsgSu z9w*=V|2;lYz5Nwdp-*}rB7vTTsv8os&vOI3nHU}=c_-uA^k75@u04Uh=21cg;U#{8 zp1Bn3%vxh3I!L$!(+CBnxgbeEH=05m#1E;2Ji-$n1i%!eiIx;Vtm97Hmx`y3vojy! zsTj(OszDq1sX~BLP8blXLKVe{s?fyYqbfu`s#K8xoea^+>`_wUIl*%-ZaeX4UdwDL ziZREu;?ipJNnio7Tx<|{RNhZFN&xFMIyYsZH0W6)bq_%=f0z??qtvu02_mO8GBpFM zkzXmSn<_(^l1-oBB1fF{X7LYsoIy;)BtB-5EQ(K8rr=6oc;&Ginbmm^ShL6?h_zY3 zN8vXM_&j#yAtGJ7(x{MUXF-I^5({(}7xc1(w};}a7TU*ExR5ngxKcD#xKK1zxDYf{ zIPi@X4*cN?Pl<{ZE<`S*Xj-AfHdQ$Bl?s11fwQwE48{sz=_)v`KSRlAXX_#z zyUa0ki0DL3S}`-Ns1kcwM91{gG24EDBC|w;VJ*?f_eCt!hOm;Pjl>l7D2^J7bRC4k zG8XSMx(zQ9y%W^M{r8ura&B<+hSw17)oO>0f)M}x<)K2WxvhrKr+-}|MC1wvf-rui zlV4*fX4?popVU#O6_jtb63^?!@-ySUmvf|U8O^oEHSEJvg@%`xqdU{6r7T7}xZPZA zD#@?Vs1=lG49bGBAsf(sitj(*p;3E>Leftq+;d7-f*}_hk4D9lcZeljqZ+Qik)}YP z4TWL(u-Jcjx7fVkW+mei5luhe-!*Z%xZmxcMLH3QAw%%UA1;%909w3%cbylnTT29H zvMD3=p1F*(9ihUP%FG2EeeU4e=YEOVu*@ayFcqTC=QYB~zC6^JXpfTGtdR&3?-*F? zGHp$HGes|9T3f-8F@wFC&Qx0?FIPj2R9QteQYZD*Nb9Suk?i=Y;kY%m+{n?I+L_Z4 z8o!ZTC%-jjw1@RxyIdo^oK&59;)n!Bj$lP>l=)!XT}0}{A4C< zTfUsIhiKl%k&W)K4c%-%$-Gd>_U7@MdEM2R@saY;5bU6ILX^vmlI=JB3UByH7&iPHKHak6a8FUAP7jQ|K#p=%UhngwP$$RpxSkTQatxveTy+Dqx z?48lY#eDkl`h0{y!geBZW9Y}jEuA-+AylLtd|k}8vK&l>x{=s29$*!Jl;^I;GWRJO zGnhDO&VM{(#^4U=a02Ste}-O)s|mDEXcsHik4WS*2Fa{g*)AYA<9QsAdD`6jpZ^k#^`Rc_|`}$yJm#e*(QWIZ19zei+ioJAxzEI zpY9)%`KU&V3Fk=4>QvVrz)2|sbsjBDbBbJ~1N7gQI4j}#vOZmgf>j%=Ih7#}E512_ z&Oa655RvYuE1)6G&*#!>s)UA|YSqw?q*f7pu2bm*eA;G~1Z|rJT4j%A%C=(zE%_ct zIs1ISd;T%|wmrw=D?4-71$NcRU1cl1uYR3FxUYv7_KXtR?&ttkAc$wA_*u*A*Dza) zCZimGx!K+>G%z<`_Mrba(%|`DiNc1$GCMP4Tu9-!@Df;H*+p<;x@o!Ct=FQ*;bX%6 z=j{dxn_K`(J=;D*RwQYprec1)Ti@M(*Ask!p)qJ|Z#LLKaP-&e-i*_Pv*>#7q>I*+CzImcDtRzqoq7)Z*~7Xz!9y4L*u-_ z5Db?Q;#Rbf8oM7vP1|6#5YuNRI2fjiK* zNzvT5LkiQkb+NH8kK}-2H%V4E9Bu%LggUP@aN=%y3>B4KR*GC~wd6#7JPk$YQH0vN z@s_1&b`g=NK%vn_Xcx1R`79Bmxr69zh`cL2n>Z$fM{za!@MMa>JeCV=*qapOZf!4* zq3!S0O7u9+hpBi?a46rTRG0}5rD*O%t}RR*IBG-?Sw1t~^uY|+JNtX5S*a(e9+UE} zkxkpRQl`^)16?$Y*Xis@m%U*{MXB7%9H#H5#OI?MxU@oi9fnMo$K@B5VihU1C9ZL+ zyIE5fTdzgpbm%IPQEFR<(4$FX{sro0843w(<*C@PF-9mH+%!zqcTQbUNL4vK7br)& zdz>4wJEInR_W9)zyB}?u0&%jdtaR=_#ocyT*tR1Q| zYJbGa4&WKBV`_|ow6t|H`lL9AXAsve8L6rV{#@^%B%u^sJ%k)wxB5Uh#MU<$HsEA6kYDJXks})fuKTr`&E)=bU zAvZ16Nts;(nQNdUSUTEcd6Ld_7$-t|(qZH<7;s#lW4U)K`C#p?kYFsi<-J0}Cq;Zg zr7ct;5?@FMsjxO5$}K!kRPw?EZLA24On6pJUpO#|5zjF0;AiUAik^|_G9%gEW%4u;?>^xQ%-&|Dg!T6Ig~(~J zja__-+O?TFU3usr=ddJszVnk3>_5#7=V5or_Mep#<3bd`f3@s`$LYWRxh(X{ zN~nr1E&?7U4)b3d-C)t)?G{eu(Ok-lzTpF*K>VF3cyHXmK%Q6#}xr$sLH_FS)fPn^l8^evBNMFtuMgM!w_9Jza0?!;O3f zHFr{$lNx4Z1#=5e4UZ}MGi*A;hOCn&)qUcps-Ho5kLBEsL|=7JDY$?05?E3aGTbw=aY& zE^QwtRl*~s!xHiN$DS{RlC9{W4BVzWTxQcm;li5Y$~)kcO1JEZ3MVCUtK89a+ylo` zM3rY@R!C`W6BcHk8tD;SQjVM@fg!doIUzFV9%2tMr-rJ5 zJ<&}W5MRzh1C`^!q?Uq&*Nad0ZZluR|8u*;==-wvkM*>?C1NV0jwRLx3XKU19F@rX zr(T81%_==?QJqKYLn)ks$v-i%i$Q@uRb{aSWPvC%z%J03H8C?`E|9XVkD(KVp>fRg z_-XoM|Ga*%vz8eG1@2-)@$;$Z4?xO!WDdvDlJE58cKhfu)R(84|6=^z0&|E$>O$ABE z_=!%DlU6%KMw)kq3Q46SRH&<+Afs>S02yuG_!W|{;WLs$%O*BOdXPM{80z-uFxAg5 znCJ^^!k=0$*?*2(EDiS~mP*6ZEf~#jNjyR2zQsW?H| zrVzJ2R<&Y}bY@!;;q20F2C`eXBck}+S7PH77{PT{Q5Kh9{OBsmPG{Qkfhi)a?7QB5 z=(-!__3P6)_KW^Rl_C*-l+U|Op;GL(M(k$&b?uCO(xl5L#A48)lcKh+np4czx+o8K z>eH{x@&S>?{jMuzyQeAD_V%AOf!6m=H58IAzceM?SCfiJL8nZmg0A5C5DlIT;6;A} z6D8ow<#NSrR=cL;MAs9e+|P^K8f##ebpBAz7}$qJwQlhC9X>^?=-qy|Y{;4DhOBo8 zrBoMt{rKE~UEy6#JuR>e`QEWL8&coVPPWec{^99?Ug692sn~|xLGXkZAGP$-)9OvV z!l{HL)#N*=!TBCczNDZ!kToe_3aCcJ@2-S1RMVdD;*ZZnytJRlaZXHce-3sxz zju(goS5LKDf3>nEY2p!DjgvS9!!I&BS9w9Wr~fa!vqP5>U=S!)RD=EPWUb#5Vg~<4heQa z*Fm*f$2h2<*5B99KWZ&0{bT$58Q$P3$uYp6pJ@nQB|t6Xncgj4mDfo2-!M(WkzFN= z_4lV>#B@jgxqULsV$||>8&#c+CY(bX@8Z|)Y=;%>h_x>-L?74)MRv0Xp-nKDNO%Sem_LuXtO zV<6z;8qpt;r-rz~Pa&`yS&klgdsxDqFW?n__XBT5_cD0$)ZFu9rOO}j;)1;kGpGi% zI8rQ%ga>*)QcIqv3((R?B!;PZ;vT&7zi(3rust$zO2=nH}zRNqUp+O#|+i67K3A zq2+lw(;zPcCcj^N$y);QzPn$ox3G+ANZx*G!rnaX8`91&H9ssi3{(r>C#3?ISDo7( z-ZgKZpJ|Acwzhlvx!pnYbsXK|dlTISj$utTzUO>jY(tExYO~W$t?{SZJG|3g)zFjYWetUP=wk1QaJT4J z)92DWfX-z`F;4dtwc#miG(pUm_b`Vaj}S8yo>IVAhA8|TH&HFV zA47HjDBYX0kaz$%!15=EAtgG&3Z39s<{5q5cTWG7Ht^}+_!9Z+y;>}$)KtD!yEv0J zj1;2JU-m!RtAAFV36Lh~-lu<~0a-4HtT81-Mq4nDCet$8<5OdO-JgG)_5M8>pv2sE zw-0#Y*Iq8SbT*lRL^nX{r?)pE;ZQ`u%^CmU7pE-iPU9{w- zve?p=R(;l-mA{6!>BsBcval5jSvV5JTkQ0v2qvG*BYx!6D7rr$7Z3MKzf9B!P5-W; zu_Dk@TYR1OhT&?947Y7myC+vv!U>N!^90-Im#220S-B2_lm7OAA3vFk1({l>72c00l%da{Q1`}N9f zL(Sf?NQrxAgv8xGnvPqf5kaxZFCx3!f32r)nrrQR2fg|dhY)+ZMiXr}FZwXM%+;Lp z-BzMV74Kl{BslP4ls|3wn59m2pxu<#aDRHCCs*1xpK-Xzos*)2a@?#J7_GLzV z^P*?noC~|jdY$(*q-n@JQ+AzF%~b3T2Jw=Y0GOIsOjHyL2q#urn3L?ddV&qUNM-h~ zaTO9P4?HFCHWrKRVuc*ryPg06Qt2eQ(tc7lGfmU zO)I29JM8*=dy8f*6@Laj{QB7qib88aEU7%_$2HGI38)d3kQq6_><|YfXy9;xS>_ft zEDciFddQ|WR;@*5^DB|%&XKK`Cs@7eeGy2r8%WAegdYDJ6I)e5ab0EBR@YD^D0UDe zw4966Ou)E?uc*2y6KgJ?n~Ax)uS|Nt*~Z9QDnRBf6(C<{eL34VoM01BtP#M=vkeo- za47c&plge*JHNtv-(5w#&acEi1@`i z1=2QZiL)duZq>-PHtd1ovQ``NL7sU>$~y=)XZ7(%Wa(Ic0>r_=oA*@g%XDL%?Tk)< zG7PyQWR;bd1Y4;~EbK3v1%1rs2~dBy%U=o(?*8Am-}dIy(ai)7ny+vpq0ZW={DtbM zg4Sn=nEMlg{_tYt21^lFOL@`%&_hUewNB3X8Z1J^tmUR=D)EK1VR1JV7lT#I=%F@Wv3gYc!)Tz7sd=MRGl zZ2DDAQM@lsyDFA|2?Hg;A=u?jAEBja`+t6OaY2V(lQr(%_iK1?I)W-3B~2`?f2k%K z$yNt^oh%uPSb&bF)j@s!a(73I_jV_u-&>!Y4u7~0-B+4T-tf-AR(g}UenVvyuS52 zpuo%d_EVmMMgYCTQ>=TI6j!kbzy9x(~;iD z>L|%{eQwGrkR2ngMoAx}N7Xb5eeE^ZbWD4&JS0D+{z!MA{z!6Ee$DlFWStyeBO&EM z`HriNgLQF4P1sf5XvhbnONnLeFO9jYb#ny-R~4zgcs(u=9IU9W`e^M~zMx(()v@#)cw9M} z*q@a5z4*q(tk|WyC`@1t|$(Fb2R zy@cx)RH*9*SY#TxJgKg5ZFqd|kLK-82hQK+)Dw*_Ose3t?iaFyQmy+2@eBPjBjXB+~_A}VPiWyH> zvZh4i9eUPgjR%NG3de8Mmmen{x-)_XAc!fvMyzo3@~O0s-1M^Zj64A|^nV{x+E!m@52l| z1%YG>Z7uy?8k)Tr2E%$N_L(&$&bxjSwUJLlDH+43jlCY*kzk0)ZS94O=!$aj`Rx6k(ZUTDJ?Sm`E=z`TFnOcNcRsf5AV0TFE~~rMDqOkUdJ_!_aHgu*tfN{3ltE5WVQY2Xp%nPMS?Vga>K8Q8V8LT(jp zL*>FXCVRWyJ+3#ZUrS}ICj5NAN6)(7uKsGyF@wJ(10%1E@nZF2@v^ZuCPx=Q64z(J zTEU}!Q<^?&3H9C=ru%q*h1uTpJaWJmKsErq38r@_(`dl8lS$9qwL}E((WBOl6eGTX zYouT%a+wX?Lp6^k0?8sF_~T{-#f{8B(|PX$jvHv2)p)zznBkQX4DmMS5KU!n$avwd zx-=7HbjeHm{2S=1vHq&2z@lA(7tH5X3`jqQouaCxGS^EjdRq0x7HG$2 z{d4M%TmVenig*N62+J?3z({}@4>){L#pdiDJ`p_i1)p7MU3;Lr1@NHu?)Lt9x7hvQ zOl>@dgnZyL7_YyTo~nzY%tq}I%j|%W%mOXQOn4?Ufr-onHOVae1DPuli)td4*MK5v z0V~K_kTjFCSxWE~8L>3*dTHLCOxhpM&aktw_W=neJ+y_X%xHwN8ev*6V~>WSIYo3j z3^H^*J!;g@o$b?)(Ie(&7^Bx{deGtW)@wa_+~7P`BQs}8cPjbgraj={35PFtJ7QI@ zjYRziEH}8okrn3{uIA1e)BlqDH8uZh%pxh0#+evR`j>s&xR@wid|)G{wo{nh$t{?Y zbwKi%s>uA3_rJfx5eRF9A&OAV7#8DnaB70k0lm7@I>Mr>-an$t)y7_$|~vF>#?T0ol^xip7h`K2fa&PPooi|K2|5QbK4uL8!3qgY8a83D z1+cx3tGtM;nmofMK|6cC1n#76S^w^{kK>+EzL`bUsEGr_^cE3va`5Q(pV$HDvf$R$ zP|xk3GZxWci|ffE%E@2Enno$&Od}R?Q|SUll=hAS3Tn*(=8$*TG&L3{psSWEplK># zKvpklKvXYsKvXSzK%jSj*pgp;sciMx&dAsx0cE@&TIcBbt8YrVHzy>(vbIGvU;Pl4}3|m6kdK^_3b;`Id>U2q6)Co(4s#7=CMLn6X3$xGY_J(~d z;f5rn2Xj-U+d;|TI%g&dJCs}T$lc&9k7N*ZaSI%%YgE2WXNP%Dk}P1Vwv z(ASF{HSr8`#MB`q@i-~)$TNz&Z!x0+Nt{uEz-LtH7Ew-3G*Qc@BS^Spd1ZB7%B)Nj z ze5q6!QDdnxYG10ji4G7LcuFY{ge9wIQ!HAYJS&^+uAykQ%?z6oNmRNL zL0r5NMWK8pvZex-=zR%ImrKsj*t!MA_)RoX&n$Au^3p9=DTe?P@eSZPH|d&1ZXOeJ z^Kj2C?hO&U0xD`*(=8=U#?aP&iDQI|SVowTCmwtB+FhOqu@~1<7dVGN*QX+=-crj^ zxV;Sa)dJD8ibY1G!G0eKkK2FYvM4ql=iv>O8`O=oXE6OZznS&mMzTG<3Kb+xB<<&C z9Br!&!oHLaRRfOqw=d!r6A7b38-GG|PpyI8ck6jZ$h>;bp(TSjh345utHUI@ z4+miFo7oi<#53sWO(2W`ZNuX#fnrHsWE4@Mz?VJf9AHv>jb|ZvTmp4~HL9jR;~G|O zTI=ZEci1G+(5IFj=CLhYgm!vkV{O$R&g72QUF*Q)AMVx5L`KV=lT3P@(WDz)Y3W;i zpH+dxbm2ytqw;b#*dk_=-WDV5aL&m*~wo z^r8su6`|c6+FRXcTzmTh?Dl(3w<^Gv1=ykhyM^_2QkotuvJ)7}-6=?2Znhr%0Ot&* z1qR>Y0CKfn(aaw);W$xfx{JXGNG|KN5i)~#n8U`F@N2+7E*(!rKP?&bqbM5S24WGW7_Ys3G zUJ2nI70anyxx+IRAjkL#58&vB((-GBP5vtng^ zc3@eVgI^eN!7p^&;MeQu7gpc^hqc%J3RYbQGwW^mn=5Vjn`>h#>QQ(Vp;0QES*U zAM)$6+Yj=_FX(bxS8sbCTVwh6idsG}Kkv_=dBNYw&Gf2u)fo*&lj#^bw$@d*(}D~W z{0sYrw~%&tb={k_`BuDjb%Dbo%86OB1?cdG|5{vs2s^qVSzM30H>4i7@vIGQzputU z&`&P;&y<{}u+<fK-p_un36X2g0pP+e}wKnU!=hpM~skOuCeQw<%kiqt$C8)9dJJde|`==vN z7z}h~1ECwV1T{cT3Pg_jfjq_|OaiSRE&V&zKST3(VE)3c3sm4^{+Pc=P7{O{mN{6{ z$>&)99q1o^Ba!}5*ns7d&Y}%T$p7`FcwfcrWk5xb%#o`ycyZh;=#_nt2 zKOK{Kt9w1a8N)!W$FI(4{E>gr=dQ;yexb?Xxqx5j{pu>h{O~lRn^}P3FJryb>UNM* zZ_u6cYuu(4um57@0F00X@@@>-QEm9a|2Rk2A+URcXOtiKCH05DpqaD@cn6L!y$~u` z7xgCmLb_r5x+iJTm#;D2M}r%A)JHTcq}xN+g$}gSSF+jUrblZb;zdr!0IE@pYB9kh z5;epmt^&`_;%0~tQH!{yJv;mE+xhJ52Y;|&XJ_at{u>sU+LK7{K80G~AscehK7Dp3 zL&E;x(6HY+MC>m!RFEHgyGiDLF`fIN3EfYVQikn(uETdeKRZ)RBWDR2*F?Ebj}7Ml zlEl9~-P-}N{MW;DE-|SvtAsetHpJ*(p9WJA!SW}7%0wjy^W|}z%81dw0sL|(VE*w? z^dmy$PXN^!QZV+@W9^JewEy;aJNFXrzeD`+MsfV>;hevPr~LJB&hCWkUk?wK0HULx zo{Gx_(fZfJxtI{He?1(dgw*)g!~8--T=>h=$eKm8`3NwwstL+`d7LbKM41nd!Rko3 z{P9q(Jp}7t565~=u>5h*s9iBVep- zALK`C{IhUyk)-##?cphZhclU6I*jRx%VFSd^xnodeGwY zPDD_n`buua2HWKq9Ea#rrFFU4-Yz!qZPvPZgcFwpe)EV>r>#qPgjK(#VpNZxv-{;2 zHKF@>zuv4`{UMx(;j&2gF6v3l0Xfg=jQ#z>{O53d93ps`$}nwPP6G5-aV`0M-ox_+ z{lxxY!d;fYF@?9}>HD9fA@=Kd;;-_w-nU`ae$nPcuixhC`<4D`pJQ`|BnIhzLI)u! z67_{XQ++&{BynAnon`@unqw5b@u#%m{ zowga~!l;YK56Bj4T4ykt_JTAtpS>Bw?iwZ=d_NSR*aRPn81&*H`nmc))6wUJ79=Fc zW(d{`0l$m>1j>tXA13B@sczwbz;~X*-h2Dm9=vaVoVJ7ungde?$}YbQ20e8M?~CkO z28%iU5~FS^sws559u6WF!s8YXCgwN%V~+i=KW_THS<4xVcCK!QZ!wu7u-6sZ!ND;& zdhP4^^nHKUxx#^J{849IPK)#Yg$gna5D;e8p3LMd>&c}M##1Le5@}ZmQi-hxx@%|h zaXf>?CUyxZyv~T8i+oK#Uh}aEj$Pvcj-*oganA}dm^Md~9^7Y97bBw?ry(|jnRv0L za#oCBID6zkb9|7rodI|A&>5L@e7^@92=|-Qzj7Ro{5LAHi-Qp7P@I#5kptnJG3DSE zs7(5vNY{XnfU=J{+g^{*7gQQktV!?h*oYTVH$!>rjoP(caN2Tq{%y=%AFoF@0mxc+ zsJl;38oi_RV2-m(Z867{vkOjH^lRC9%g*dDJ-7>$wGaby@X^Dke;@!W&d^h?b&gv1 z2ZH06p0>WfdUbN~3jaY@=w}ac{*7pTuGep~`VKVV(<1f)Etr*Gd{pN+qR)@KCSfcF6u(m?RM za`jDt_$;Lzmw-?`6tXdP{Gy5Y_Hn(~wZ2{B_V{xPDhaqWe7|0Qk1k?tn;j-Dk-_T~Rv9i(?D^R0K}D26s5MGJDF9RB`ORgX*1&TP27#F!n;GD~)$SDA6HvNFss zh8V8*&m%^Ru^;?<57&)wQ*1%TdMhG3hc&`uK)ZRe)UCTQ>=p1rSw^n<>bE#ElGm;2 zVx7sm?DM^#_krjbq!0* z4@Ui{PyP)E8xFgPoN^0@+8)5u+BHmCLX3~gu-KqWNfd(BycMLY65fP*!J9*4s{q{>sK2Av#Kg`o?~}aj@SU-QRrLH;(Y+Zw~+ZcL)9D*SAKN)8Fma$uExb zm){&KK5K2+N`Tnz^H=}*oB#aXf1U&sC%=Bc`A%zZj(YIlzxeOdS1r@h*yy2OX{(RA z=mh%7D;4{VC&6#+x8D2UcyWD=1$^AXZ70L!nC*%AW!;dhurP}ga53aweY0j6C!9PG z@b>#3FYA}J{+NV6&KECci}4kP$ztIm8;-A$|7@~~p>%q|%Z?+warXw+sS92!nNRy6GacpDPzt-JSnJT)yYlU2l8Wx|_jQ zQtQsvW^0KJAZikSM=#I(u-ru;$p@oej)XkhL!}@~NeJudZDRbPdV)u2TXt#Dh zMNX{U7yU~PIBv?mxdFetHKPQ9=y&nZC1j*lnL3b!M3T!`;!hc<%-rzTtj!Pm$d@mo zk;`cPfCGm;hHQ83-SRV@5HG27q7YD6i*TDKHIQ2VLz^%STzTyzA zezE@o#`bV$&OeMWC*@IJ%4V+euC+sZFfXjS6!5>@t8VkINXlqWDwsr2V!jR6um!Ep zgZo?aNhp5NDOKwlJ3C5cqhesQ%b%^!4nXRN0uJb}p}|4Kl9qg4TwEd|r-%ZAYas1Oa=LL z{J>^Xj=)xJVSZ7K1l@9<+9OeCSf%Rp2HR4)t_2~k6rkNqDWHMna);~v9!em0Ah;Tk z*Gy2Z!K-qs4DP`C|_6 zs@&@juW(wLiJt+eLTs&AxlsEv=r@8|7E=tm4hHYZ>;^~w3u#eN@mZyiDn^kvJ<;G2 zRWIvmSZZ2L{m3m?8+!Bk1(++FXp?Mh%{kXiXRQ<*Hd}_&*37`{ zh$UWOGiQmk%#+^iW-`o>T>9r$@swdX7%Z^dY^GExlCAa*HZ)*P!{NNw8;qa;*f3IQ9WQmL7$a-r3l1J6T`&*tIR za|9cWvMJhf>-gap6YG7>91v2|&fF-}W>$iardERe`tZ#UYKU9kpHR0Z9G}bl*{!)C zrTRK{xpunP$EJbHqnkGTBgA_V-a=C!Nc{{HV$9744Z56N{8!WG#rYlTXEL|To|B%` z^|_M&0lhdNIus>O4l`k2S+N}Q)c+?IW9dLH$OaVmL}jTmeRq5hRUV%Wfc_IT=a>Re zpXTp>oun}kB9x4MAS>I!5H4Tn78JfZ_*Kf)5~_TSkrdxc`;zT^vym$YiZO%8$oa
    L2?n_W#VZJVBOyy};Q>Cm^18$GGtOpH2N5W_h!!X63ej7{s#GPg8!@ zPnl=ks&9$i0E?1MCROqA@Wc=x=(&OTmK%W6jqBYOsNmw4_pi{8pfWDMUHrf#BU?U$v%hzKE$yiON)f8RQa~D9N=f}N-KTz->Qg^V-)U(~ z-D$r}+o@l!?9{KnQIr?qYE4V$%1-;_U(M&F}P6T6O-c(6cLv zbnE=}=JSJI8eA4|KJl;e@3;T;C+nAz$m{>l!rHH&7E--S4R3!>^#^s^V*mJDfA~Uk zr!W1HY3+j7K?RN>J3jXxXP5GOxOj^!D1(K4op)a-&yKkyP;mamY3}#M30gojfmkZ} zMc?9=2`LU#PX*l)t^DBfz{g{2yXp35bBvPz8gq#Rjr%!vQmTge4M*wwMRs2}_L@#Eqwe!Pj)s}uEBX}B`sKk$9`ABX>p zAFK0BQ+`}5PEXFvU(o*H00#kZk`7=vkmM)FkR)ARzr{*<$Q;Qj)Xu$OVl6;USn?#p z;gDo`#)MPoAdQXDd7TaQ7Iz}Kv=ILUH>mA3Vz-KvHi)^~B2fc0KA0dGuoH#{y!>_y zBzH|NkC2s10G2~v=ActQB}~_^#uisH9K6L-fwf0;Y)i~vFCzfu!_L9hP_*lcr7hi( zMCRkmt$JQS_&2_*Wq2}!S@~`=`_o_kG-R+d2W7yW@EzlayOZe`(@#Fl!_|S%7t9y`eM_tovwm-yDkkL+a8tQVj7WkM-On_mmmotDcd zlft0c&8y${wQuQ4S3*+fWoVwkJ-NAikeAHuZ$;UP==J%7?l3MMwx1rq@v-=pDI2vd zW8TP@@o<$3e4*Igzq!AEk?1s^}DPezBxI4LQ@$k zPdhw?)3!YU9(q%GHTchPDSE1Te2@aIZp2TUYaZZ~TfjpDzrx!gl3YGCAFeO;3$M^( zK7HD%HMyRHiKgmO`KZd&f=TUZ!8U+SpPC6$p_<=$c{kxh6M9uEZSs+6+kf!8t2AT0 zeVpyoEc$X>jHE$h4DGkgf&KDn@}C-4M}Oh~^(&@5G}$$24))g^Ya@J7-t$-99>5Z1 zPxAT6Fe%2;#0kSpKR)I!3tK8qar@uj-}}`s|BhByu%(ScDl`C*+S2Ix`T##ZPf|WU z3tz!8_CA2dnVxw@VDa(ZAojF@9r8ZjQ>H!i8aa&8K77+3OAz2p_3@r@%a8k~kM|e= z@-vcJYZq+;n9lwalh4iK;enjD;mF5Qvmv~?`SSjgoyy94vG-3{l`Vo+=?6C_1Z_=0 zaG9=<6y2AM)ZFKfyfHW$^Ey;9suf`4$|r37$&b`b=jKV&DYHm8Em&zAT!Q-1JW^4Uy*1!zmIAGip1?`=8^FJU~Bb3%m2jZ`TCK`F-&%nXe{XAt@Gn z_u>hnkG&pp&$Oj_Q#K7O9+oXEoGuM?&J7sE zwyr!J$}zvLxrn>s-Jw(Y9JN`j>v-aCxg$J<7qin0uGslBys)-kZEAuO3U+mK|0{!P z8@u6DaHimAAO@2G?#c6%UPNaJs>lboT%FmlOiihnPTPUQ-5Z*cPWXbK0uuZc0kB( zu7qOa?-JMQoHU*B!|U76nn<1;+6#;y(nq@jC#40B{jP$jLvJg^@WT_?1`r=V zEZ>W1Yi`3kD^pA$c!Ye_Xxbs^B46ukk|#1jKKPdW5HGQN;Z5IbAj&^@`0eib@j>?+ zU3YEmm_m&xr(iS-b7d?S$R$nc`BYc)U~>g&GDo|XJK$G4;EVGceC3M{nc*(Kt@F*d zZ(SMX>zpZK#D5( z2S|o)XQ3FU9-qvOW~|Pg?d`Ich3zP}l}yQRzWMakuBDm00B^{EmthF7G!SE?@_jiZ z70VZ!xqU@umCHc!cMS?&R8AZ!K~Sgv*fsU*@`nu|vlyBF&h|FQI}+i!QsnORVN zMcOpeH4#&hF4S2~ft~9z3CqJpv2(mtiov6?$bD| zAN<%u-dI~}9*d3wYq|c50^4-cmHqhav{viw*lyl9>42q)>kqd#Iw!bC7PB}2NEle2 zeX)qQdykKJ3H=<0?;ctk+QXk_Q=i}d&sStuIoW?jW+O}@aXRkf@A}2}8_0+CLqOd} zJ&yd|m|hG~=|onxfE{`x>sTbjn@s~f^B;gU%AU}-q4K%j#O(+Xi?)@`n#W=NzC_`n z(LORI3#}0Um2sh5f|D=qJ>GcSPtv6&|LLgGN58}Yl|n_x>bH1$-uzWhjpMV1RIdLMW5%@k@=fwcVf_Cw8~ zx%&D83@q&{_ek_4&ewZN)|}tnzKG-K_|smUQ}Y77__(}>W6GI(amHfYQL7!Bn&<9K zLA-s9y;q88#jrt!UUwpjM0{iG$&Y|UY*$!Tn5|Q;HhuWa-ZLkwn+v`I%4&* zU|$w7F!!O< zcv%<|N6odcD|hByLes0k!n{eelpl5V!{M%r_5oNbO4)<`s}a@@kKxjw8Q%6}`Zc61 zZK99Ah+tOFTwQ#T?)g`-JmyV*-0h0UVBNRfp)Q94-;^GeQwitbmcdm%R`{64QFFN+ zWBIdb5R1%NwgY(hfs>Pi)f#&n7sv~ySpIOG!uC}wC%dAT_$J`COgZ6T`ZdF)_q!3P zKSGx-Qrn6AqsbV4Fl_*Sr9$$`hi`8l?~(ElSh%_xoc|#ElUdjNH3=JLRW%_q!>~keKFp$R*E2(i(5~}(f!+Rg z_nz%t{QCLve(}ix%wd6<2+8GQ&k~)@&&2~bl{$dHLeIXS_$hsgdIR1SFTnVp#ScHd>92#0?Uh zw{&`2e8sHIh<#h^vt#0$@cFZgOXbtgWT@FBvr1tkA{P1TrPt4&wZ?RL@vAr{tHggE za53jeBKhaTuMaN4FaZ42f)JRM`jPP5pY)prLa_)KF6H8r6Ny6ed+^&A`xQ{8iU-rb za3mp@@(WP1AXI-2aShFBekIx$AZvsBdQqHck;{2mSou8r%A~7!6KVMC<3h)q_Q#hs zkCSRNG@xEte3WwS*oWcBO40Sx_jaXFTtFZfZpd`O0CJFmH=s&KQjVXocujQvlE`*@ z_usbMe_nt7eEZ=}M{_#6qd?mOH2lcoQJ}tRk@d?8MV69Jh)UCpGZnVkEDoM;UJ~lR z<<#p(TC2Jg-&9q4;|$Ij1ts%pu}o~rr=Qlw`ss@F#*pNf;^Jyrc}%6HIwJ>|NQ#M(GeoHA2K|D zV-wGB4w|N)se>R|kvl_<<|!2Y+pXiRzo^qv8+nKfiH$x_qa&ObwRPFXLk~9M=-%B8 zY6v#y4_sLE{VP7$`b-OJ7)wT|oO=Z>wq*HX$@0UJ%~yom-dz2t>1W~I+|@fg*9Z|a zX|_h>Uyl#BuW!G5Yra3+5a%-6A#`X_KPhp-_#W_c|6Pc!FpwTErr#Iffc3-s=Ub~` zOi)ThH^i|iWOA9;T?T|z2Mn7B*M(6Ve!cnSmXB&U>#}04YfD=Ak(4dRBErdknz-)V z|BSHN13GRS64C8Ij^P8=u0;B^vRPEdVxP@sL9@neMC#}Mo;-!m&zCs(+WEOO77t3a zcB_jc99+46;hXu{9s4>Cm}n{Omu=ei6Co2wbLK|Mdq9CD))9&8PX_+|h=wdm0+*6g zU^C4q+r!Q8`;YgsMIaTq7$6zYAW-IwCLdu=rb?W>&NhO=LMQgS+e;yXl~vXXz% zpBdw1i1HOuVxRGc-_5TPh+&V3KY#J*?j;Ckk?sw(NFPajPVZmtAHRs&gj?W+`g>&Z zW@(hOPf#Qe9-^ZA-j49IEThmyIn{!O%z`80h5!w1uM3NV=sX^pxkI`(YoPe z-`yRgxHWvr6{zhcQTw^H;fYw@7RSY3G>>w1CDpl+v?9x!IfP#gy}3@8cMbR$ZF-Ct~;9-~WuYSXvgn ztD+nPkCd^-a>SKUcu0Wr3a20%AJt}#{?|uq+{p-ze7HS7BY?l67%HSIia+^}L_cm# z!Ek=_ZK=wm(mDLqY%WtGjYVNzIQabu9YS`-O(-+T)}Om%rc0P4yGPu7|M|)1K{q9} zkGea@Pm4fa<&XS(M{>`1S8#U@diwsbT->oTW9%&*z(~ihOc!N5eJ?1-+=!c~^qVh% z;j}Km{Vhdj;}YUYK-mb|3cklbQ-dsZ*y8K<%Xe1w_5C9da;N*5d?ar^xUTN{p1qYy z?h0EXJrG`zyZ;8eBD>$qbWX`vK=0q1D(M>Mc*TXh_ao=xZo|_8IOF3&0hQ%#;Je^V zQWa3S8B`CCxy{5iJ?>&~yPqp2Y?${i?r6%k5acQte9#q-Qp3EM9#&v@nS=RlKByPd z5-+kuel*4K<;C!$6vK{i|KcU`!%FM|gf=$L3{`3NZ5*s+3>=wY1RmwMVipBdbU#-k z>x{*M1OXjv6(F{Eco*M0OUAIHbc@i5AtD;GehZ6^Qgdt^M7m$ej`z3PchA{jbt}TA zKk$3-g|AQ!v;MP1VOsngN2A=d7M^6QskYZKVmAnYbPFv+S_f3+0x5+lVf{6e2INHs z8M=`%0vzM|EaxA{P(g_65_*I=xGIf z%ijk}i-(t=B~ojfhUg*$_m?!-LMNCNak}0! zvq_}m-X*TEYGmAx`qK@!UAf~V%eDndDRE>I&LvC>oXEvI3zW@8ugIbM!Ak^HXWs-J zoFJm{dKxA2M5AggNn%_0m0Znk;wggV^YaaUH&7I2VYwX?Vta+ZD+w+5$f5Qzt|DH! zX}JXwN22*GA=qm+3kRfIplTd}Osp(6UVM1t$?t@7rB&BDx9o51S&^7MZU2BET7=%$ z;Pzl1HW=V)=f%nuylsU?n+v_y)W%W~m&R}MSJ{zuTKNJ4{_yQB|Gm>+BUXOLUt*Zq|YJ!fFIF|?a}20v1LxRhPc+tY&y5##x{XNSZ&M2d$CCq@!v1yQi)E_ zPT>Y(PXZe{P7~lCpY01ccMyn}C#R}OnZc8qT9QpQps^`eV>wrgu^jb(sBDsJl4+W! zjsiDG>wFpa$>OJ&TJ;ncXB(OAwMNWvU*;Y2d$=WRzCFl;6V}hcNQuj-$PE6HZ9J>V zJdvV6BcrL|Rg3@lf(z8oWT%#sn+Jk>Y5CxA7*+Zy)vL4&S*2_9Rd^Iweum6yt_+^B zxG$KPmc9&42k)b{IF%tK%4OTXh9a{5Ql|B_d@cJ=Z%e`A?~AVR950*{Qp`*EBHh~> z5y15|&ur8wUg@;@tj*j3-Y&@#@(eSiy5~RYs0PHA!%UX!PFIfgp@Vq0I*@m*14;SR z13p=EXx8d$Xu8fY`eP!+7ilW?$aw?5fQ1`<`;y`ajKZ!&NJawHn`@=woZuW3(GH2kIdIga4Ll_QkD$oq<%M}&@jq74!SlP4yH{oS56 zOIK}KS2;-VOlbOR=^FM7@Y-&D5K{05SUg9OqhINM)n~?YIlCCZ7Q1+?vvLw{H&?B-gYGOz;!#2 z7KmvFj(PQPC_Byu)Nj{--3_@&QaC!`RvKe4mmmWQxZtgXLkT{=cGQ@`BAD%H@Qwz# zsO0A^F8kxvfddzZ=l$uBa;TTJMo6RR*+eBmrw81fFDaaj^for{$&rXAr@}#+AgrVPwTE+^X-X;pyEZr%cl=W_%kJNy0tp*pL}4e|8IV~ zW1l7R%}S+U^3Xbv6Aos2i~FIRj>yK_F$4X>U3hWHb)dP)r~Jd(2Gky7OOdS|yK6+s z7g4pu)%dyn^z{p;_Xh|V=FKruM}Ch)4WHSa$aHD9zunqpn@E;{MljIc+;cBk&gsj= zSGls|Z^Y@!EkIJiF4{EM6q+33Z%yxv1vcNt|C(H{X`L`Bw5~aPv(R%QgeI z>@#qU;0$=Y*_p+2+@DPkXMTb(nv#mZ#uPulXV6w$Lfe%J6V;CV>Sl&{XiCrah$vru zz2h|E9;$zk+(zLC#i@5cK(ihCD*16T8>Al;vvA#!U2*VXQa2pv-_sNb$fj^=GGV}a z_>dx=N-%M;1uOM*>QY1X%cx?7RAH>`5U&%#l(*IxGc@pbjD_m?GLl2I}(}s7sVC4@2Gp z?(-M$BBfO9sh20$gk0+ZCztCfB%TPU2!DmV%N-!)Z~I~+WCA=c8tD9IaD7W7LzmEc zuR_|~0qk=JuuE9_K9`m=@cs z+QzT+qrAAudKFR zy0$6qd}Et%rg2bLql5aQGG|wQ=A8k0t#`kOjX=m zwDdEx)1qf8vp8s8O{BCcSwHwBaG+pT2$Tjae!To!jB-~&bM<=xb0ZLS??mmIRyBwz zvKx5XT-5yY$Hx-0r$btkN>ZWRBeduQ5XS9*GR0WdA+-v)xczJn8n!g^!xHC5rpir4 zEyR+1TC>%#Z-58HF`AJoO2kOhaP@%(Sc%n@kErx7S(9AUNsMxYVl z2vpq!voDlt^|k=3vjwQW_S@=e0ai~7upGp(m1mO$VHX1tf97TwCbNB_x5|kl++cw? z4geMsLg?TmO3p}TH+1Aco45j3yV_d39W7+i5J}vezf++a;+ASNry_IDH4EgU+`_Dl z=DeGATPjNEfF=7(b<;M5vtZimh@7k$*AB#y-8SA9 zXVcRH#>}-?Bl|XKMNLYnsKsif0E;jfTwUB^A zQu#i2d0m^|6!n!Lf>K?Z0ieJ`>tDWkJ>`t&Ty+~CqqMb(F!o0Gnu{eGNqhX*9QJD% zE7tQO?fqA zTXKa$wDQrg>OQ$As^7j5f3+SKRj_f`9u#UZ#-XG#!qdnUh!b1~azg7s)B0*7XKJp< znKo49;#$Nivn1~*>z1R(b=zhu54Z*K@e!4+T}P`>2t$ZaHvh1Q+R<9=Qm=PLc62jZ z$X#b^%9)X<$Z19~%t>isc`^iH$Q7W-E_zV720O2P!FObo^gEp3o%1B+y7cUe)$V73%904v4aQd zTK`%+{j8+&z$Zxhi*5Wb0kr%(ierH(R?noG1@tF(?T-GWZ5fEKf;#G($(#j-U43(g zBe<2ffu36^kHHeP^D#Fx-6x+z8++|hG{+0xaFNBk($*}uzr*#pqLRJ! z*BqLM8)z14^B1Fk-|bbYX4`IAd@Kb^uu|heNv6VpW|qN6ytv&i>G?`guBK|rw%(NQ zI{B^?pFs>I)Es?DL;fL`rPWO$Ctx))zdU7r!Qa$9H+pjnRT$e~-7h*ZRkRpdCMDY9 z(|0dgiCq_}@7Mq%V1<4Ce8~N(HTOM8^-?lIl~Dvfi)i9s$u)piiY_nKJfv;%pUSf( zQ15ryU_`Js&dRuzTLS-S!eg7FIG3B$%iQH%g!9{*7y1@KCsdDOl}Mp$m*@?U&2#EN z#rBIBRyy53{p@~cDpdV2-_V++_DJqXR}Z)cCVL?VhCZfGdxKE39c@kZUVu)tJ#z$fQ&WHU;bcEl7c1 zOo?efV9uxZRIQh92jsZ{f?$h-x=jbGbOMXgr-(l&tDm#~C_DUK&NRsRp1gjy z}h*Mzvn+GPR{RcBFR)U~Ka&G%FSR@=>_jW+KSsEB0(%s6vekBWn~{r>R& z6Cu|LxVU}{*!ofOh@pYSu42^x(etC)`~ky7~LZhYtkPGYJcX z<1Em#?9Uc$7NuQWl#D*2(}P#M=nQLyats<00BO273`HkJa`zABN))LDB@A*~{Zf?E22vA|( z)Zg`R@Gmu~Rz#>=GrK<^TAxYDZ<1nVV2JvJ3kSxtqvhU;b(Xj*r~AIJY}s&DaX)e~ z>o%$Tyl25kB$MV#6*vJ(c9{UJ;C_7E$G(Sol|78&Za!oyw14W`mx+GAe|#pY-p3bi z^gKDK3D0lTN;!%~f%3`aE@E4nnp(@|L$}7Qs^!ApwMF>Vb>fMi+~0kPVJo5cE*^j7HhG@j?8|rAMV};q z)akEk`0ZtE3Kj)}v9^_c%Zl?jc7wDnFo2eK?8M&PcK(EHhe+Q`?#DBD%%Y`iCu;=wLqH=mx-o)nIz&lr zi5^SHl9pj5KIq+xwu+@Z-(&a*@)ALTUAk>DzIuNA$^%l`l%yXDPo0v}CtSp*SuS8S zVs<{E+L3am${i{H zhYp0)KCxJc>`<{iZ?x6uJRN4}wr=LM(Q8TD0 z&j@W=)&S0O25^+&>gs7BBRoqP;gywskSIa`;I^y)*&-_am?q?QPjZAQk`N?UxA*t2 zAMm*scjYPrfe0Fitq510wBW^xcR}tfi>@NzCiy>H8LmK;^JgpVC&i-?QtUDOSeSZU z>95Iop{|toRDZ4&Y2@xhDZl&(j~?o!P@v8~lVK6A`RmU-T|yvTLP_~$3>YIp<~Zy> zu$OZEgmQ7QQjd9gg%J23?}*KxS^5J0)PMfD|NN={{7e7&*Z%Ww{pa8N&;QR}K~kgo zCVC&|+Uc0Kw|$8*JZ%CW4l??fsWvH0^%sRo(bMuBo02_r7}{H<3PD&um(SX8d?DYy zv_+syiuvt-q_+fbS;U-ZOvXB}Q) zG)g)Qn*vq~JNOp+I1s|y=u4&rJ=LjZ8r#mSQC!<}=d)^>{}R`*3mxkRyGeBWVStyu zdn0T9zP1W48ccbtsG>?GGXjK;JTYU*Lqeo(q>RAuR)PmZou-(U95j`jrlB@lYLg-& zz1HajCu^fZxpN=Of9MiZX*UG9J4@u)yZiF8!R*X&nU%{rwsHiOIBy}Wr)8{eSXBf( zdyk}u{Ksn%yb_wA5Cu5_&NkT+-YZ;M%^jaL=WNTjR)zj8wN_BgJ6o$Iq?$H&eAb+^ zwR)h8C;#)a{i!)->++22mkiNgG_$X59nYkR)3@ZHPGn^LJ` z2Ks}B!*ABSYhtE(9PIq%lBNM+AbeIdl-b6}>XzZcqR~>*EySUGJM==uwFqIXyA5;W zm#uCWJ!T0-@io0((?>6lQ=y;Z8_cfK=_FG-U$K|g6jFZ{ex&m)$Lfk<|9R2-#Pda- z@c5g~tcCfl*pq&K;W-cmBb&5ZoXIt*xv6%Urx{d!DNo8EcHN!DhdM~Qq4(@+_7D^s zZTn%Xv7qP^G1I@>8geyE3*p_hwsM7k%GO(A^Zv?CHgZU_279P!l%tQuFDVNszDNns zJoY&Tfa#sv6e77<^-tOKT=m%om00R69v)mow8Ks(8N-#Nlq+9~ALMLIanoXpZ^I1g zlfyz~r5fziGm}#K!ooTn|AHa0fEMvQH<6ux&ENj)4RiNYgQ2o0hHq4fH?cxpxWB(a zU?JRoJV5BeoUf!N!TM$IhD(;j^Zg=S+2ZT_pW!LM{00O-`#Spi3!T5-zjBUE+@9&HCYGJDaN~al7hk@H6!`*dNr7^TQ%1qZ@=_@WVf~ z?QVFd_Mmahm2a3P<(q&OO(#7-TXh1M9qip1a22f+)R!e1OXm*!tf)<{C0-Cd>ncJ8Avv;C#c~i|rON;=05ofmhG_ zvUR?(9uVvLsTub&>f@OACnjs3%CHV1uvFXO^5OB}`)9lyyzjm366x$yXW^uFOIMtD zFc^K}xYrIGh6^0V-edoZBHeDq{P{`DRp4c(cOY0=kXiLEy=4wblqlMonMA`z19FKv zMAx<8tMbyeRD^xwme$LsyC>pB(*`$nt$D~m@Pz{Z5$#>UA@_O5!s6bhp*#h6s^v|plZVX1*H9D(wGC|xnE+b@SD$VlO3@Y>f}wbSx48YSJa}6|dCsMMVbQ#Q zCPWlU51iB^a_&r_pK&HVo_S_?uF$9VT%6zl9=(}Ml5IY@`Ob*gfN+#x8+?4PhwDO9 z=6yeWe*B#2c~s>)$9rAjD3n@ojJgP6LTO?Tnv!q7$`aq@brgtTWVKXbvSh9i$Rn#q zPO5P}Ks{gX`neAT;HQsYl9_zg)mcTG{ruty(qz*0e%p-dUfOJXQyX`G_L_!1 z+VbSn;|yvBl(rs;n7%vBBs#iEdG7iZw^}*3+F>?iJe^|+th)c&?gw0+>L<4{3S|5y zl>WKBrgOY*lNorL+rUx8mz!Ujrl>mk0Nzp42RqN7AI4jwo!`$uaIXp>m0N`?i$?mm8R@@Qgo_%Q?Qhi~_6=8B8? z$R!8tTFcYLlU5cXZ zfcF0X|L-T=ak}~ZzjUB_`EQ;`e13d+{P^X6y?prf<-flnj6QyQ`S0KU{=ffp^WV7a z>8_5Tw|Z0ee}A%2`SyPA_2O{3zdq(M4T*K#WxxKqg+R84+m zxaQ0}!YbfW4^m~0%ae8exHvnx-fj*rt_V0fK>Z}n70b-HecOI;L?B3UgS`+#BZ@iD z6VBWXW_#AuxZURxRf9Y_I6iJZ4=ygxmR)+i8l`7PN;`N$-%|428=0XoNQ12S+m%SveHqsQ($@z&aO4t`r@#Dh&2%v znV86gA4I#c-89p8ba8Q3lfEJv|IvECY1QFXgFZyDQW{o@5 zUVy@-lu&w`N|%CR;11WXF3&BPc+Ft%8eKN6D{TOC!n)`Eq%<@Wryd+_xyWgi!F;uX$wWns>xr2R>fsvDe8I{XD>SH}I5ud55Yg zfQsK>m-SlU#b%@7dw0zvJg0VRejCY`Rx``)RGW}DC#&g^iJvrBQFj%%))!`VtLltW}> zVOf~rLI?p@!?#E#^xKqiUM9m&Cy-Q#Dv;yj*CpBE^0=#18UUiL&+^(!rsCM28Dzp({nGZHehjEF$z~j3NEWQb6NCm9)!8;Dg2}aF?AmN(EGuFE zWR-KgTrJP8k5*S&e0}+fP=6Mn%TpqTNP{;dQ)5*^Bt!5$z4&L}!|UzYW^>HH$iZzg zG#y0TKRzxUr*sQZ#RcAjixw*7^7Y(W6|t$Gc74xBLLfC$B}Hwe*CvjSK%R8Up-752 zTf+I0e9sU5Y2&E+vzw@$dDgK@X6(quI!mK_n%uiYMCjRNK(S#sm&IFhH7tm#9 zTprtk;`MAGN*vz&RX@p!|-v_52Ie6|NCY)~+P z#6ZnjczW>4UOa%r$~K{& z3cb{AT~OgaHtW*};*c)~qu~x?Q#l{N@V5T$V zm{7=oi9P!aXCm8%HRS;iUr{^sI_&^DI5|U1j=7A^c)+RxvvxGwf{8=To{(eEk5q&U zRD6SMMiPcyA!9!$nnKiEn8nHETg~+WFYopArF{#M&|R~@7$GrcgehVd9SgeH-^(Jz z@9dGJ!-fH~;B}_xrm0`-EE|7)f>>L6B_wLlR*)}aXAOdBRGLK)l_DFi6kWnQBQrf^ zu81jeu-vagp9u%zqX$lZ>U<(RUmD@1%^T&bDbp4pQiq<3p*!cZ^h{nt~lKLpckyjdI%xL(_k zYDKT$g1md@Xilx*4mONa9wXxreSNatT8zC0pTd;hF=f{@x#)V2 zW|U)>N*Pk29iYOw#3rq=tkrBiJ{&a}L}Hnw7oy8%3q_`urJ;BK7Ee>?z$id;yuF5U zj>aN5`(17sw?hs!rCbO0@~&hS@rtt4jb&9q#_$c(fh?Mnp9??V(VuPfz3f3#tQr>ZNltrAiD?32jh3*zG5vaFYrTT+ z9Tp*v8hwg3=aLkY5IBO{lXbcw9k8awo$zo#sTzlo*9zuO`FZVyT6tWyNUOZhV{iU7 zt%h;vT&V1*ad3r6+Qa z`Ft%K#lpRg_6o!aP{`T{(g;e^|WR*kYRI>Q-U&I%5}GEN1iWIf~I-ROSJ#fh;!{xOD}YY{vnp?xDT zNEkpty*)Tim5Zq?j0IkwoXAy7cqS$?_Gk{i-Ng1-e~PQgY#Rd6GyFBiX5WVe$~Y!f z;pw(hE9KB1uV6}5Vrjvf!^3)-ZV||3`{(O3v|-Ws!nJ$_=G4b})DmLHXADiT>ZE!G zIoLw+xgQi(?uX^7Z|xn2$Lpf;+rHziKDN^Jzf4Uw?rc&tOi$N%vd9XGcmfr60yCvc zZGVlD_idR*h-xeP@w159S*FR^y5vL@FpZvWc_#UZ)22$VvS#UL%y?IK4ywPvc!WAP zs$t$TV?cOAob%@~mfH;^s7A{N(Z`b1elj{+u5(IOn-d9p`xocO=Qe_C#73zUhVt}S zIV`&@Je1eW3#U*?iyelV&j@hmr|~GoIFNUVwVk^><3NGUPANu=&M=1hxKzfIwpu^7 zplm=JouwX?cjdz%{lpe-uUMWRyn<2kG-fkJtAoAESK>o(jDD))WEq5bU6yGwJ;@`+ z8BMuX_r^D?6P}pF6|fz^Xq+?ALF=Iyf$vbmJJTEF$76POSB32zAY}TvBF1wc^D_ey zgwMY3Iy6aY?Kwp&3h5Qe^8!ASQoPI7xy7(9$_~W9vw@Ij6c3qg$(z@k!)x2rqZxLN z5r5jdL?lfzYw9~>g7}h@BG~v8jiLVVQ`uv*JpM3RpNIjn=I3UZ>|Yau$h+DXdQ~lfg2CCbZj$t7v}hAn8(n&Qz2WO9k(e@tkH` zu^+7Iv+QlB$EmP#E_!l#e6dD{2_f<;cdY@()=A`FZ}h1s3;k@>Oa&JR7Put>c1maa zepblWFB%3Vd(`^ER4a%H>k}Rn_2SP?&r%|WSkZZQV;$Vf_X?BGbR=%n8lGKZ_qZo^ zTG+Ej%<4yAqAH3i2g%(ex_)({P=LYMI=4gXunGF~DNB2dup*X+(p6xu_K}Q{i1Cck zwN)LM5Dc5)>A3QVbc5H%0gRIyKY3Fmyxef3l+E5hkjPjHy{+P8e|f#x$6i_TMMJbf z*ds7DU(uo%q$9MZF5fl>@SZ%7Kv3!HdO_jL?55jOggw}#USYjHTBB-{=op3PwqVl0ExYruF$h zTS;>!K`^PJaJ#}9l`F*d?N>!Ma5)Rk%zjzs0htF{!oFa-3sdUS$!OoXJ%`|{3!|Ha z&8m+vUkYRzbS#nF1Y=W?uP=PZIa#i9+;z<2U?AQ8_T7m^;q^5tmGM6=PjZzPu8MgH zmi^}7VpAF$XC)XGd)gY>$->JHVl)H)*M?fMiEW;&UmckmkCiKrl*~Ecv<)!rs1Bn~ zt36i^nqX=RAjH)M@4^X(fil#}b!i$%NeGBXy0H?EYBw2+ycFu~SyV6Ot7I{F6R?}~ zW|%D!^mSU~m7Ie`K{PqCls&|noIx+$jQbODJeGDSBiT`thsUAh3Wdz}aw~mD8F^=| zVoQkFTIW%}6Bgo?wktchrNoF9)m7x1i#1lRb_r?)?Q(fI6o&>MQ;+z1zBw^<#bpu} zN!(nTX`(IO#uH@QUHVDM6XHdoHOf8&lr0=-J>rX<+~7r#nRC%`JmYeGgn2!h@(ZO zP)%{zK2iX-kH56Z{+?g#j=0+D^k|9x6p03KNp2dmB@T8zEw9=74n!;oSaMXXq>3K~ zZp_-$h7+Ofon^I#=F=Dj@~6ht!tqBXVNEtcp^j*?b<_%t=8(e~x6`sPVO<=A-uXsn zq7bY}y6s`Rle){~N>9m~@@1pa(LQi1d>lA~>Bd>KuR%)Rs~yM~!4&=KQfE@7pW=Y# zdJN>g6lj*ZUo`vjBD-GIEiGJ#bkI|?l0ssTubr_*p%Sky&v7V^84)vN%ZBb>m9cF_ z25ngKrittfFl_9VcAc`hWM4v6D{jmr{$sN@AUa@*QMn}4py~v6xP>oK0eT@jIhj8X z+~3^oq`c2#LD5^Vk(;wuGLM+z(x;jbD-r`W;*I*@8Pur77ERZFRra>nU&|Veow7L! zm80Yt?QWH^8bwCl#BHo5t?5vQohKFf`Qi^oRKtXK7TSAzRyV z$@hMv!omQlj=-S=02JpK4h*8*?Y&a1vO{VVj#0i>>7AUauN0Va(z8X z>ulF|gyy6BpX{X^D!LnPSNva7A% zD=OUBMwff0^N0#jNR-cIxNQnyux()joO&w3wesgC*!qBw#V<+2T2=R%+hh! zMoJHutVGy$%P7Z<5GBhRFNn}pL~#YoxcWi7G*5EtRO3p+(6Dq~lJc!Vecm`(DiIoP zHisEctn^x7*x2FAaR!zm`?|gLjw@0$V|8Fsd+15IzmKu-^0cveW#*U)l?icgPQQ70_Y^q#O8kSWWBqEGn5P)dM>VO zUN=MUAOfMZ4sdOh8DL1@*hWX0IxN45k;gV9u-x6EfWpPJFGpJfRR(AEqoxJ(#o*Gc z$&h}p`_*2$TE@UAa_EYygF8~qjJA(xt1T`!v2rs(vppv$T!XYvI8_hTbxuyhj9(wW z&YH5gI)B3=F-=|O_lYV?Gc%uZ+>+5(F(-0;<9^LPp~GlNg_$6yV6A8ch+zfUQ(Mr* z3Ly-Uwb4&iB}1R2o0zDC#Sy%OO-tf+wLt{+h`Jz;_Ao_@*uSjP(e5Y>)-3~sX=nl@ zj;U#2#MI8x^*y+ct@JSihJv~DG*mP>7GpUvU9uJ`MZsg!EPWt|X_Rf^SxE_gDA)26G=0rwu{B-iTP0y(JO1DbkV&CGBr zqLv?E*$BMG5qNO4%_)#=%+^hDB-cHRU3mR!tmezw)sE z4qcqCr1`7_?(+2YDPA-kLkW~*4&Sq?Yp4k(5HNlNdk7hWLD;ZW{OH(9c1P>7_`K1Neo8Xx9z>XQ|mM#|wr*CV9JiNt=(tbXU(f%GB;o)f1~WDrxwwZ6%^*?VUytBsu$i#!*( zROfiGoEs~CsX3RB|#4FA(p zb&1tfM47dKF~N0emHvSuLEhHkh&E+WnLz#PjjP-Tv#3k1er$W0dBCHx>1EW)@6ZIJ z8(Cde58Q$i4NA-S3Vj9y7u^w4={R3ZlW2^tzG>*&XE=9xhVMYm)MezD26I?BH;YT- zE3Ycx(H1)@YK?u_oLfLO=e$VVK!SEI@Bt~z(%pvWM=N*bvegaAv&P9X;X3$aaJXnk zqD&J!lf_+6W)MMVGZ@BT25M*X8F*efnn4AF*o_f8h<=2tVH37X%dK@a61AI{<+_$x zKNVeuoAlVH)uNF3!es8c%Voyfg4Z|G*3i-UL3`@}5o;fS9jYTy^dcBmb(IU2TSzPu z*t!{!O@%S7No=mv6h(K7EtLm4?V?d^4)RCxYng(fRP#WcL&;%qnj;Tp{ZXK4X^+55 zuXtTIiA>h$eDzqxa1|Z*Bw$^f<5EWVqQ8#3dd)sJgO$pG+p9>-{r*tbwNAy&x(-sG zFk_np{ISKbB*LdmFZjr1=uGPwk#&{*rpfFZrn98nE1^MDoJXj%ioP|S!rUUKqg{8F zk%Pqb`f#%8NU}MXN$_;zs@<$Ye8(ucXGiKxF>sg(wO*-lQK<0ODVsMkBFI2a%&AeJ z&n8|TFRBg!}y%uN!$v=PLYr@^C#-ogo|ITW%XIMwQl~Z-2XQ42Yu!JfYaX z&e$?1UVdBs7EYf25~sjq$y8rE;CwGzZyn`BtZf*kD1oF-h?1d zsRw?$9kM-yt|zYkamKSjDHUXK+~LzA0zc-buX&UCxO8 zP$VHA%GV*eSlsCBbuM;UB+NoxC9L0iQRlcGc;*nG^ z^rpDiMxjYz?X^wgen|YoRpRXimMolah*1Fi%i6Tnbu1~e8l4%71yRvhPwwJXJF2)F z*T*N=x;%nol$VFZb3`(kP6C{tqt!Lr-`>thSlR$hXsXR+hL9FFaoA`zxorO^TijGb zFHccQ)H}Fz6xI(z(_Gb4YVz;InG8}ZGu}Q9dil2Dgc%m%3HA}g*j}fxQSA1CtXY_- z(0bbM7MZFY1eb25UzmYvh6l{?5}9GS!VNC!@#E((bF#2O1E@j9In9JKTec6|zV+OdafhRBDu#UM#7xV-j#An<>nSyR!0tTZaHPjI7W5^UQgz@=u7Ei*0NI0u|W^s z9&!D@3JTdA_8Gg_wXtY5E@UQdxnKE??;3TF%rxd!q>w=7%pYyke!f0ELc0^E{Zf#V zW|DAHRX{bdLvOPhSe&k(wXGDBy`V#G9e}2~P!*Zc2@Wsr^YtF*kDLu_VYkfM%i^}o z?0mFjJ9~$Xzs(merxI!RA-oo4Yqe#@BJKzUBmt%~dRr~I1G<}i`&RUW}sdG zv2|H)R*MjP1;vgO&Fxs&JQu-I^tyU7sFFTYJB~eu+ihG2Y`fz$@2Q#%mU%N4RLCcX z*!{b5cG{Xcm%^Txm=%LfsNa|p+OofdHSE;+q;_j}CTWv9EvAqJ!z5pfW6}cJre%_E zu-ss-GZ;!}q4v9<10N}s(BCC242q?|DJyIAFZXq=7w8KWt@b(vLn*{$iMMP4#V4W8 zkdawmIU6SK3W)Bw4B*pm`a7}6<{oSghY!K9k~&~%1dK4dfrRiMRM4=)s6fZ{Ttopf z0jf8m(l*;zr{W2=n*+Q$=LJ{a{~~}#qs8E+%%zA;S9v?h)#T6Z>w^p!Qd|z5F=`pJ|F%(Zkv3Zgk>c$zsu*id`@TwClQw^aH3f5dn@KmE_cm`?Ew(mVr6#0x#lYBcvs}{31|Z;{ z?QL`t)zmjm0x=GPPR1YxP&jW&4tlum&NL!B%1K~vqlWf=6HSSkVi*m1p1}&|$@Z0Mnd@CaTtK-cc3&>O)N)g~x5L+g+=K=OI z7!EUhG(n-VLC1SThsobZe+MT3XN)zL(QVjhh-Nyw4%utZw*(H`+XMC#1o29^tF_c2JyWZQ@xa095} zifcjb*ZK*cf{#^W3obmFDhn# z&&#TcwDX~}yA#f>$1_4)tgwC+bzuy~+mmCF+u#@obVdA(PQH*T7v-BQljaps1;MZw zOI2}h*R7&#ZK7QL>%}=UW{3&TZ0`kUlD}0KMU@PVMX{vzl9-h03!5WI7#9rP)oY`J zx7$FhmRtl7uChk$!JLXhsqax@C5EuA<+@GqeB!tg5f!A$1n#;bDBJ)&jS)6G6ZYR(T%0ThTX%E` z^Fx$T1Oip>w|P*oUM$C59Bp6`N{V?`R?XaLvQ0T>qc0frgFYi$WvA6nqRaf5B4}fn zbG$(3XV6HpyD63h9z%(ja31?l0jbbg?VbEV6N8GAsiM!M@MX6T|H z(ON%H`RN$D8g4%{jcpI;^VjKpY+;sXbW*M-jeRQnh~@giy4aLF3@+VZ)#QYt>BNkZ zU7t=^kMF0e$4zTYGL+u0a;{_tv4dj8D&~jmMVKa~cIlMX;nj|eXP#DWEUGi*?aA{6 zv(-vlePf3?&WbCE>_`wTqi1;IH#d#EbYYqN85%5%qVZ?&JldUm-|@bz$spwTc`|m5 zm|y=!|7tt>a>b}$teI$uj}3#%u1bX?r?2!|TM!HSy4=NwXDOzY!aiA~Hb?rV!>(^W zZ9OiV)kCTKg6<95U|*HKBHer=E>RW^7~JaI^+Uvtil#47UI(&e2ACmk(kp^-pF9Nt zhvwzFLO%{J9M61&%^KZbY9UDd^-CXFwu% zML7vxAJ&3n3bqxJRRzSh`d~6SGJ%SK2~`sG7KOqu{6CEGbO`An%sbAZNepRF-7x57daHuH z%;H?D?N#NFnexX?l88}`Yy0`H6a*J?`L28lSxgQR1~alo4zmqVk)#Z&ZF_Eo<>f34 z99W5?%6k1`ZeF#Kp>{Aci8qlU@Q4oP`BVwq6jM6<>dvRvz?Pd`=3JsM3zKoT&Xhx8 zsB1ivqtqAQ)S`MLwBY2^#hHV9x;#YJ64i&YDWs$T(vMVOnuk}j!i(G*C%8Gg`y0Sr4pVwGNl#TGqK+e@u>>#abv5kDF66bG$I)Y4o$nCp$2@+tm_}$e1Oo&c$~ks%4DCQdW%NEA|=V zTX8sbyw!rgf=6mVspDX~=waH4>AHH0>jtVaSF-eL7Zfu4_5zcbq{t%7xsYjU*e?1^ zcT=ZzJ7-jhD~3t(c)OJSrv?Bk7$VgVDu2s?3=#I1UMf!{x9iMwxSgIny~fO@fnXNJ z`r6&Y?v}4KoCaeL}PpD8C}Sp>ZRVU1Q2pBtnK^t>sOC+>1j5 zDg`B$H!h+;b=y^u>ox!;#-ZmXCVvV=Ps<|)so4c%yKHOxGKt-a0RIYHU> zPKP_@n^#KZ;bS13_KgIem|S;7e(*-0ZhT&>Z9xb=uf2IF(>2EApt$*TAydp1)zu=N zTtZ=blOn4&p_yq<;l-~ci9pI)>5RmsdzBJ>~&4+!cJZ+vseq~`7+!O{S$E$M!iOl3^;hDoZ&TBmTJdR-R0hzK~zhNR8 zyWQ4V?yOUshQNf1AEYsSTxIw{GO;DbJ0iz06Xyq4D!$W}6@>~cQX;5=O~6UEgIC_^ z1s3hTk4b`O>$g~DLl5A?B8kbzWmv#rxod4liqKu=Z&V#teUN5%#L66bCN0SvGMl%5 zk`d4n5(E=X3i_2#_2(!Abx zql^ccOLd{my1Fd%TMha!!ezt)Udydwv^Tx0xit%9Q;Tid!sYed2}(gSb+ck}%2I1Y z(fcOjXV8l$j)!fV=qB3f6BsLQD3Y&nX+){t!6&Qv*NUFxs5u#DCRF4!=Q1+ln87*wjHD%ni;kpLPa+x`&FOFqdS1~)R{98Zb5B5hjC zG_IY;ixBJr&6@(roU@+Jiig<9h|dh*%dlXOS36W?VazPg*YccpF-3-qI2p0#KR%PQ{QApa-?U91z(mN^7 zoV8Htw|Ja&rdcu{G_P+clL9}uxL>Q(-AdJ2O`fGfPT8Z@!LAmUdr4hNlpZx8zm^En zI0cN%-+}$*lPGn#lG2NS9I%?FdAyYAAeJNE(EDtu-Bc~!HssgM1%-Il4b~V$KNC!d zLWgOKlG%?|1+x~S1aF;-&VHXD5T$vdxPFh%7P94dgqW@@rLXEapS{>}=1}50FbEMW z+fj0Wtil*r@BEuH&=~yH2{gf0yh++kK*l<7cIm{EMuRJk`j7$@^Ve$p0bUQK{QzyE zMWdrB-|ZWCEH*n3nT&GKq^=Dz^DaA;B0O;|zoGA-3wyDRC7O-tz#54u3V$_pl`HJe zIK(#Y0SMq`OTOk=qMQIbpM>~qcLd}BQ|8&jYP;h&sz<#VQ6t#L-DPzW_QloScU&N8 z1QS{7aBfxzQ8NoTiRk3y(UmnSHVet!vum~e#^xF$_u2-r9bywn`lTCEyh1z62Jh6; zgkKr(zA~(F(QnHEp}Jd48{|4+#amwDS$mH)={XZNTG9kbo{nTuUyCURK_9IcW1DC0 z9QAxX>=|v=QlK*8%2&AI? zf6)KZrS|etKSW+mizgG3cLX@?ch^99jT4kd0PLE>x%nKHnC)mNI52&nxENpyK_YFC z33ZVvX}4ASWVw>sRGinwqN~CY5I9D1T^bkX7GFPb1G7Kj%PQWv_^~ z3)y>sHwayX)bjy$)x|hg!?2okf0$tZ==FR!ho%tqJp+#*dgmD{`e`%H=>@vYS&49P zb2PYfMM+5^WGIDpt+!4_i#8^kX_rl+tiDcvpBQ^fkfp?L-U5ld+ixICW~F4$s(#kt12LIWwyF!Z7WvhIeV#HdtLJuN=eaB zwM|ZQmTQM9IdzHeS_;r+lGx@xdcj8pnWW=?I}>$R$xEuXs@Vx}8AygNUE&H77{@po zBo#t#q-E31=_x`pd@eX-6q8wETkg-FT}!(ev3asB(e{^txpw(PKss2JD2DAkXtNzz zf95vw>w`Wdsy#ZSp(6#2OoM=Eo*IW`KSE^bZyjdRaPpS;gqyKj6N*e4&CM>F_{e&j z=Lw`L#WN>UPvErk>0G-_9=uDt!zJ_wY>8ujD~GQ#EApXRaIGS;!tzeC&L zv(iX+S(vXJv#|fDD|Iv9HFr%xymyn5T2@n(9H>r)fy^Yyqe}(Sy;Bs9M9zpwY-tfGLr`av2Tm#nyN@#3|-Y>8s4Al^hk` zH78Uy*|o0v4)}~h+zVMMP`P6b8ddoL9HW|C6ox}hHbAk=(!^QYp$s{g9ARafQy3%J z!mu~>Z5Euh#;jqTTAuMavJiwW?)7&aQ6?9nacD(mZTcuwp4c1U^Sw~EQ4clW0QfNkZr@awmyK zi97xzo3^XtJ~f99-n`7DF&az+@DcV<#R(A$Q%%+^R^k&yk~ep!iN9 zRF1SeC|9^;ksREI7f}|Yxj0p2{-&8smR-1;Hqe{V@5OEN%(1U43A(h$zouo`y0eO! z401#;S*h2wsE&e~7S*8WRX!M9hk_0EXS0d{kCw)XKakTUVY4s+D4I<4NBTjKA!uqGs_Li?~p08j(THv1$s< z*$VCUt{!jlNiSXZ38rey9uMu}Ydxi~U2t4{s&uTP%9=YwsvkmD2rpihOHmxrR5{Ir zi^J(Wk&9#C=w3!VM7x-|w^jT;iwm-S@KI&|dX%p03wJfVmx~)Qul+)T=zX`U&az z^`Y!Um!d60LM&ba7MrCb$Njb#HKSFVwk70r5kJx2mhBw%Gnh%6m%%T1dlXQx}nPQ3{X1bp-dQp?XsI*arw5YHp_0EfJ0=jM@l@;RsoF#+c z{pHq^uNB1_T<;U0qb*YXA5~c`UI)@wCcC^@>m84|`Z!?@+Y^+cg1glStT2#%tIz8U zZaXZlbxkvLo2ays<)H|^4P%MzCF!oQ!xV1@_8zY64-12{DlaXgQaEJ;^_NaZdf1Vq zWg%^Lg{G9tnZ<;(2LLTlltr6t`V(z8F~rz*TZS}3lAsjYQNv%%>aDiME(%Q>mpfP( zo=w=zuBGNADtG5)<|&7!?Gw<8w|c(8WwU0iW9m=Jy|IC7s{Yw$?=lkA%(TUbogHm{%1pTLOnM*lh9NE*doHk3^~Mr61MP zx&pL{R~^!9x%uG{qG^|S^rG*i5nYof5@{Dl|8+G9NEI6|d$-OhI+5*MkS*Pm>FK?F znzr~8<#snpN@edz^)qQxraPhbG8jOkg7O$}yi2l=I?zste>etS5i9gxg*Mx|2)cWK zz&aHtHD-F;mz#D75L-oN1bjUBs8Zn0gsmvogPH;A*M z4Fz~M4aQ}q&4XbEYR-w?I4(h9V9~`ZP}ZYB zX-Zh|P3?!h&#Cfg%5*5Ip+5zUv!w^5nT~s8Xm-kGI1(9qXoEr4R`5SK1hK^%csm?^ zX=supspzWB7v)WRn-xvF8y(ANh%D8{37~d7@wTw5yCDf$%;?jlkxP73G;LcZ=yy+L zjaIA9K6+1s^y4WnF>30=R2(B|vaFwq{JQdJZKjGk(lt1JGZBsM+Ab|3$aYTs){x+< zlc8hvVN<~kTeNoAG6>kad^&Y*#uu}F|KJ>t>T>WKm;XND(WgWtXqC{K#^-tdnqcda zPMT-lcpbJg*++QH?c$KI0VK=?LpU#afJ64UlNY2(Zjva1Yc>d;Yo9|DBN^qD)Cnwr zWWqX&7a&{2jSz=3a+H z#mv@;+VG4A13B&FSPt;=?ACzC>SKIu0JD|o=#Oyh%F0K=Ykl4{NG>G4JrVn z#WN~50XMdFUUNRaG*QG9<>eJ#%iKt?=qQvj89nH1OO`7_+}BpaP*o3$N=^ zWcj@&gd`2O=L_%X!OaaIOAVi9*-+GndQ5SYoxFsv!y@YUmqZlf`MPz$BoAp7yhaM3 zZrOn1c*@SltUGiM1z3*bj4vioo7$1Q_QX7#dZ?KVu;!%mA2K zjs{#C>1?2Ea8e2E!da;Ld6hpoCG0W|DC~}l!KeXalWS;LTtJ8BBc{PNx0G7zRKTOr zM0n8Of&Wu1`hzq22WNurJj#qs7GvpI;#OTPk4p}uD5`DJH8hRmuZZp~N`xj7nKd70 zC_77FwB-^80>tsKfHn>BTn~v;+kCv?(QVgSR3JjL($6fwpmO%r%VYL9 zQ>QJ@%ggNQ4)1dAgGy5d(^O)3gBDw5uWTF*0UBQ%mmoVL3Lly=EKSVXvv3p~a!8p_ zgE8>2kR6mLHWytZCJGO=wVagc)qN79;#T`g2U5smFzYBL8SY$1L<%uc*h=N}sz(TG zb|e~I#WI8D*nDYAi+8|j-ul$&uVewY2%%6=ADB+)3%`WUE&?nZ72^0XQ#>T1OZ;72f4-;G*^M4c{7(4;x~C^PHtOZ6Ar-m9hzNs2-;hRlQnSg3SE|M2YHUJX!UJ|nsxHA-Cei+ntL=hSh_3$b!=RZDhK zt6Z#NqPU{F8fV_>MZqc^jH>B7G>28|YWYUbmJDwfp8R0xR3tQkFC?-;yE+ocZY=q# zOC3U_PeR2682aFntFg?Av${{#9PoLm1ujCQcCDjk^h_Q_@a;5~jH(Dn^fqt=E1$** zJz3hKDqBG#XOF!ATb41`*;YE6AKD)-Z>W(82UwOvkl`M0cgp(RMsH1GiOXjqV^Y_w z`7XxDd`XvHN!sUpxN0_++%z7PSiyc)kW(UOIix>=p*KUDOLI_i(?sab-$gM2a-~*n+e$cV$ov?2BNq22r6QFA0T>_OWrjO-u;c7TvCC1>J?D ze6%Z=;~~6oyKj8O!jR42`s2Fl(PP8*#(e9(3Bs3!kG{n!cY3a6p6*-gb9&ls!N^;D zA)HRJ-KBRrCHtghKGweif;D7RM3Ix!g^)>vZP%JdUJ%Szs%xneP;nlH&RhzwesUC4V9!u~)I6tBPJw6(UAUl2J6vGjTyEwY|zcIf&M=Jc8-a3MiyRY=4?E-yRK1i3-0aGzEke?gc3wtq+$d^aqVig0 zMMd#*sA*fUQZA2q3sUk}?~1{=8U@8xAqqmru-?{45+YH1`OO$ttxt`Q5)pzr!chMj z^w>Wu&Z1Q)RV}fB4{OLUzQM8Y4$ai8Y_S zS>HGS?Kdp9_;C;W>np{-l^Aq|+Mxva>)laH1u90cRqX*q9rt z3`4t(R5UyeF7U%SHi@p*T81da5w-zZUK7N8+l%1WM{DAHY5!;rU!v(FY(etPd)Ip9 zvOe}MdCI22TEzCrXtH7HLKZu_`CtquLepuRbiGIC@CoEvYUhqbJ+*$XL4kia`;%m; z8a70Y^g#i+|rc={}c+RpB#dgxP!)ZbayN|vdsRiJbukQLXxCLXAWwlLTh6Dc$L zJj%qZ(e|9#{B}RFk`&vgxs?(4q~KBL)?G*D4=p4rJHA(i%pq2ScxKRYQdy1APPn{=kJY(+L3L8lb-WJFc$&*ZZ0J9dVy zn!LjDAPIV&+UO1~K~i?ES#-p^>?QC%yKO_5{S?h~QWT?tnwEE7IG$_!g3s4_{Duow zfg-b4oG%&zSIK9$YaK)~)$$}~`hkoqJBEc2;KA|S(!tb*g}8I z!rcZf^K@6;o_h?~9Vlr$R>-f~I86)A*wyv~W?HJIQYwDMFqX@`4tAcnW>(F1RGenF zewqO$550^#;!Vwb#&c=q_@_M`Ue`uOVCemLlwnX6xQUYm^U+Le?&)uf!Kaj2tFp$J zn-VNbk3?>Cr15a>N3AZ1F)HT^4cN#OkiPWbINNtbld|)iOqP|)GStyx4WZsrZqF*o zZt!tAM1H&N&P#LCd8(c9WxYpMyfWG`heA5tWtIuYWEUSdj8K3u(( z{&DoCs&=o;!!}}u{Fk^tXEZPz1u~V>76PHqv-G=)<4!IofZA?FAU6Y{M4V1U;qE5k zUqx*`MKgAa=(Juuv6n|JVav&qAbj+FgEh(Y?B(9#h~=cYN|NZ>C~SG^kLH}nSiM) zC&OA!rZua~kCVo0gErcxlX6RrubEonBpJ+KF1X^(w!CW6iur#o)Yw3*sj*mZS1qzl zJKtvOPEb!Wf!a)#Bpbl>)?V;ZSLFOV%Hr%vN))P@SFI30z%DFrui-Bf>duuCq_sUO zeuqg^Xy^Qtx@|a|9{-%%SA9d%77^Rsctq1WlM69!y#9pf5I~h$CrR+FJUbhYM&`9r zhiHE7LR@FB-OpsneOpGY3Mn;jN_hF|w75j40n(e27>3QWv0T$B^sz9 znpbdAKX!6pf-PxLj*CMui3Tdc*9Hk?lxiBUwaf{=Dq_YqsgT@noe!oCwm%E+W`QO} zItx;?M(h?H(6(b>?0CCZ>W= zyTJ7Pr+*Lf8@^m;8}YTu0c?C5!N-=bwAdK_+SLS2(U1KI8D$$dQbRK#zU%!5vmfl5 zR>1y~u9}i^r!;BPNaUF0QH9m)}WoLX=iE z`Ldx4zl5B+2jrD5u7~5hr-dZ3tLwJNHzXCA)z1EU4Xq+Ov12vlYNOihz~&%fk~0KQ z2eDnw>Rsc%NmE8jou=?LkQWz7y*8_0=e_H>XF7D4+p?uF45W z6NdU%F+>?4)*5@==}NCpyFW{v0OwI*=QPhkJEx27wHBA1Cxq)aKh?tGRn%QxT56TK z&9}A@YXBrC@fg{m91_FvhK|+p!y~|aDi|htbTtwGL@F06o*7>2%?$HF8kJrZ&#BC8 zyS5r@4SG)*w4nEN zT&va!@tkbQj+V2P`OQK#1Fsu378lOiZJs#WdJvDv_~d@zgH#(JLj%Wxw8n9Oon-Yx zs}^Ffq8#T>yG)*q$0ZwStuEX4>_W7KFm9I#{l*7e=M#l@~snWnEU9uqRVD~j{hs>z;czsC3L+P|8TW`a|#G3rg?9#N_ z5YzqGyD9XQ80<|b0O(V4n)ta`+v*ZGS-j=(jH}thdsN+QeGZ^+y?>%*VVd-Qri8UO zy>g)e$Twmo5DXMx$;~Ox8E&l|j25_ghIBd^sjZe4ogEf;J-EzXM2##p47r+0B z|NZorpZ;r-gEfeWYLe^RiVMb?=eSy^qwCf(DOS^}8^{D=;7;pmf`>WS&OH|SPFgG+ zq9z&My*6V+dH@ zz>-iku`^& zMFM`sh|ZA9q;7A4ST7IbSulZPFb@BTajf}XZ4}wgeUTb)hz_zrR9xRLqkMMlt|?p& zoTX5o*K#^5-E4{#mqEGl zrpp-ayk*a)))GeivAIB3yfpOM)ljL+n9eTKR6pq}XSSNP#YQIwLet6|Ny%X4ksRCF zx-zdVfmT%mPFniEti9=ST}O`Z%SSm+a6)s*`o>Y($DE3TWL0zogO(^;w`ft9q&(Eq z-`^ioX0Ek1{>rUDH`2`!l^r$;(-9k!CH)A=#%+}5@7Gob#^*ychR&V zx1dm5EUgi1K-?<)4ruWBJ{n7W@; z2Li2aYuAilO}#lqt33M3qH0=EfuxwH-F8W3mmImjr;{q+ZW?r5@hqfkB{#z>qWDDi z@+-@xXUlB;G;Jz*!`>91x+XpDQ#U!fkJb-3Wx(#cBezrV)(^yTXC8 zR)Ctwi>zHi)I)44Jg935*2(b#sr6WsZ1iLHB~iYcEeQ>4U+U5VXS;SWvb(!KBj8~b zL67ASH_2MzEjgW1JqgT~aWDkzH`^5M+}H)9MqrQbp75y@ZxcYXel~yFQ!3baYO$+? z?=}v{(kp}EP?g5$MhGut?v&9H>$^57t3wvHNE^~>#&YC5qVRn&hYV-iJkHov%qJC^ z>n5(&PD=A-fva9Ku(fgoOrl=-d|D^_QkK?ub5acjE&9kB-+0GUNKATu=ud(^ z&ioI|%RT#IK`Zu`zY^zI=v4c5AhEE&-YKD*B?PpetHau9szeOXKn&=VWzPQA@r8^# zbfWz}IDKsydQ^rA&W=nk=+_|^-}uc-uyM7Fv$3tTe zNC^|Va);}{IwE(Nx4I+GyLXP5Ag7PJcJz^5KZJrBWP0Z(?uwv#(SYAt;gtne9#}Pm zL(yv$z)h7$$GnDqxpFq)^m#ouw z|9q5)*(|Fsr1fNOXQ%izcB>?el?#uftop=tq0_-C$%b3ywzLdq`oN6NtH#(u#p=( z#nl3RoYZIEEIhQ8rt7?S`9 zJKd3Ud8m$y)OH7N_$qB-ClJR@FJC8C$E;)*|0G}E5nfCpiTjt5ra)%g;NP0UF`lI8 z`kHx9dwtCfxLk9CFW2nkSn9K$@%9_5%QYivhxoGCUazlXhO=B1P07u(rWXc!xZuLr z;`P*vMu6oiI=lxOO034^<=P_4_X8C1G~f?XwoyLf_dP znAY{~0q8Pew^{APTEu2brrfzJ{OJ6Y7ys5`hyi_Ed+RXc#7RJA>Rlz0pH;Bqd39&s zvuWLBt0VTYR$DRF7Q~m$abF89Y-NAkJ=xmj(%l+CQ-{yDSdA9@8*-|$v!**3F%u7h zLCxzGtz&(8Q&109@#CBueFb&Sxm^F^jOoi8N415S3Pq2Eb1;KEmYdOu!b25s*i^~S zmTO?GXcu*sQGAv^*bYyV?o>{dR!d6R@#cH^a%WZOBd*Uq9D#Fw#&?{^CmdB{Xw8ae z_1i=PuIB8Lq_Im~)?N--KR3gy8A4avz)ZW0scd@S+4hzu<*dUPV;b_Jrq{>QQv&zv z>PxFpFm&6=dl2T8l9zt_pNn;#p1ieUxPRuvf4zG~bBpDYux<*>T8uE7INh1bpMuOH z{!)rf4J@>tO*oxrO{A-D=V Wl@fCNewkMJ+#V%)?3m}S-3wqZ-kDNYO^NeIgr`+ zkdpomUaPE6X}X{;vL}m^ya(dyna}b8q03O*noo=v(}T5`0rF5YONz#3?;7^%2GSb6 zu|-0`*Sh_;DC*g3U!mo3uSkM5swzvEMn&S-xXt*)vTlJuGeB=cWjM?X38Q4WG}VrY z0UPyAzsTC*`FJ^`qnER~t=DK7wh1XrW6Wr)64NuUuO48_>4o42#LDg8HHvqK<=M5S zd<6@(-NH+Its~p7xuB&@(HiFWOBhDN(OkDD&mfRubpAQF)S&q~(kgVpa#px{%1DjY zzs}xfT^dMko(j_Z^-2qCwPb9mO^tWXMa!A!K+*+n|U`&Dta-nXawqn-nOZE3yU zMl=!OUA-ZC`jb4zmXWb@K6%xG;c_CdnnND)Hjw-=1}R9=+W~SYiSDSa4hKo)J^|+! z)9s@wfZhc3;4SiEgKam!bx1U3gcEqkcFFKHt})%Gu(Vt(HJ%|;@>F3s_MHyi1X0Yh z)94W)fLa3e`tL%EDXF=KPN%y3vaOz6j4G>Ezj&zQQ-rQ;QvRm{l3(Fs^>iyBaA+!)|cV^+cW;nwE9jt)Gac?Or3)?Ib$+6>yQ#Se7S zBg%EIs;9&(^WLnc=qQ0yL|o3GHB5_DUgmIR3$%gea@a_b^ATQfpD%q(bNCy)!{5V+ z3mCJ0HX_csl;~UI?5>VHfk!xWv|pm#BPp@i+4LmZIkgKvV4bXYi43r zAIe}hvV?28t_5x{PSrekkd|1Usv&=CXF$MDQTKI?dmtSo+E#Sql;$be5RITCCixtt zu_dk@EMjFvVQ9=63dVC_M%LC2imum_B|0g~GrQ3i)G#`v=J@i^IBtITc1DLu#5n`< z%XS`&)CNy-Zk=xssc6yaZ{Pq4MVGsk_1F>O;5cD5wT{~w@(6f}^si%ZSn}G;#?1h5#0EfC3WB0cpeE)dO z=FVGN)R6?F3A_1ZoROw(GdnIq*}HB;*Rn&49$e2O5{R1y#$hFwtcy9FR0g{5GveM( z2d*IzRi;tt?Bsa==)Fv{4$Y>i;4p#fZ`^x|O<9LiJ=8w9J;iDg=XV;ch1m;&LNLW4 zK}2I|nN^TeGg7jVgO$z{c$QoDpw`eakLbtAQyjMwM!V2u&3gBo4XK~no#*6N;z z+8BT}&Lbs#C@WZax`$$1K+AC|cyLO8yEb4SN-(3$EH`R;QdBy?&~}$x*0o#iKx+CV z&Aah?mymD*AgpHI2UAGUU=Ha#taaYg)z}vQv!kYjgphP;0fY*;$!qQF`I6;Q0$4BX zD#4(h`v#hTtwqhcBKAI(i3K`nzI#w(x^~o3x&oKPJYig2TLLShONoe3$VdWVjm-6S z(yPil47h+IluXR9l=|8~YGowAt=3A_5mQLUugTzISF)#ey?uGkrWZ(LINI-pv4`+% zb0;T3Q;U2~I-^zBE0&3mNc|5{k3$d3^PDYkm%pFUYdE;g8uohXeIhJpdv&tSV;n3{ z9$ntH&;oK~O*??(bS+ zNo@1BQ#{v*8Q!$7>M~%;?ZgZbywhw0Zr5NsCG|L|H& z(xAg`)$~LF^T-lBVr^3WQ+@O|ImORwbRG$ zPb$r?FWa9#sFsX_+UA}rBhu@%?AWu16l{Qak49JLn4Uy0Bo?D?SWYSIpeYtDH>^G@ zZdOBo8iHkHbhEMA!4=mK=q6`7&9>BLgWKGNyfsD6{SC;f^op)d=fl|P z(NDK|g@ChwpEBGr$AW;gN`<8r16$W0)QYImL`L>TWbjanyYIB2v85(3A3vI6>dj4) z4XK~RLTp=ocEctvQ2O~!O8v7(j}c45w1cn+HqTm+PJ`JApg*Kyi&DZ7OM~Z$lHKag zO1uI~h3{-heicT zu{k(h#R3$~K1rd$->mx%+Os)7q((V2VqGE^6f1*fA*Y&EWlB>F{CLwYqi3}#MFCZZ zCm1P4u2{+{%?e78_Upchy||F@6d~?2kZ?-Rv$FatH)NYEPf~QE6Rs>r);vkk!Mfz& zSq};lr%*eTY%K)`?*dm*b@NKsUXvD2lP^A9kGW$q#Yo=BZ!jrbylFlt(ndwgPvH-* zDg4NP{5>r_m&W37Eu<5EgA@rbTFkRse+fy<**s&fp$aSo3dc%(S4>XD*^l3M4`UUA9Vk)ecn zrtSnFIu6*vJSH=P5BL!xQkdyD(;NTLAr3UntPQYkLu65u$58amJ0d<3 z7)p75#a=FfVIe3&H>%cBv-4K6W?>Y&XEov% zFwG!4Z_#!H+3oC_xf}&wz&8V*p1sDSx;j6|Dqq03fNY+b$0>`zIs=ePYKM0v@-u9+ z&u4fMYs@d;m3>7q9ed}h06a1fE>i7FYMd`%QULlc+f!Cm7#nI@$79JY=d#$o3LNMa5^6!(zT7j{(R$y1|GZ{ELTUE8)%=b^h;^(k98zy8bPu3C&hZ7ot zZO*-z$d8}1UxykYzkO8Xonj;zg5R{Xul(ZZg^-N0 zm*}#TvO#_3REZ#|G_!%zixiHVq}dCZW9kQHlGR|2yMoFX6Vz2^>rd7$L#%^m3|hCV zQWs^42`l?xXC_&NEHLZ9?wJ{T?iom^Om;yRUnWf?nd(A{RDtD_O1P|aZ{Oo$!cz8> z1QW*m!+4D!nEHC&{6oBvf4Jz)2S;MaOQc zXc#w81K}l^!%;8Zn>0KiV1j$7M)Z4=em4ZCXZziEbF*t}(#O7)v4bjP2J(a;Tl6cw z_ibz?`lNwEA8QwS7;cXrO~qkbG3VnabOelCDn;i9BAZHMV7dEF$5Altaai54Q^4cB*E*+BmT;l@+YO(v)3o0&7oq zrhD7!c_B&@P7rriTWZbQEkx-=Ow28kJx$oU<8mILp5i;Acodq@yDv0SyDx;{qb-Wg zbE=~F=J^Ohpm%&CMi;D%4k;6A#$EPZ4x!H6e!L@6*2t`^MWj_}XnFACbkMsD+P?PV z<+8dyPKFw&<0u1_!T2_iLv@0Ucxlio%_NG1wd}A9$Zg2uUB+n$N=On%^4ZT_nR@DH zpTs37u*(k9S!W1ETlKR=N3lyvuTE0O>DYt+I#;dA~5V%|SRUN_(b-U_~z+azTJP z5sp9|g(FZ+x!Wl!NiqJFErq?%e-CQynWCXtQA_VsE2xPGKei4@ls!{3LebYa^2*|- zQ-EOyP9UaEfZzb08cTboK^*3OS|tt0Dy22#nl}T*UMDY*j3|Nd%+2bQ3Dp%#=N(Mn zll3H!c?XV8+49nh742jNnJIu=YFCMarW7c&j-!%#14O=B?FUumNWXS9eK&Zd2A__c5J7jiG<+H zkWNnGVCLDQCw7<=ZIl&^yHS%|j|Nn0NK#g0uz6F+Q)1L@B7z&<9PQ-Hc=8CrN}SkY zc_>3af1W%-z!D1q(>W2$_s4>BTu54?Soj7fsX}dM)`^JZ6{40o&%Uk1^L~{MO^!HP zMnMjA1`Yk>5n}mp;q^t4+ANxM_1`vBi$(M3q3meMsSey418i8FL6C-;Jm1L<`8s~W zi^8<%l;RFvp8VYAz|Ny5Kls;S1~lYe{&(=+Wfh?WP3gPVIp#t|=p7ZWK1dgG60Q`m zHXMMc$>^Y>*;Z#Ua}tc?4`5aTNnxr4DnL;N#+zNP_7Ebu-OfCpfq?u^5xlAD1HwPW z*x5WNk0W)UI_DUq{Eh_<4CFpAR)qD~n&dI=ITFM^5b!GLXrP)$*bCyB!wQ6i7l?W% zv_rTHn(-S|6oD?_85z}-%)EdIYy&EwS)SPx8%BdvHu%JR0E`RFlz>E| z;I=ZzEnVUuCs`CW;5m7tgGO?Y1?VSrr{9HBYvVM2P(0BmXZaBKmVx zu9`&7)o|l4+Mzp#L4F=L&em#=Ki!}5%9kRZSrhbEazDv;!m z4E`C?ISP54&pHVV45gC0SRVP4CI_l#IDvyBIvI>g$nj=A7Y@f}SWOxf(97FnA5odg*SKF$`oLjs!DBk(Fr{sC=E7wq6=jng}4U&B)pqm#fbQ}_Z?6yTS@(LxpumojiIoikGIxKA%C9|J8lvIw% z6E@ZX%3dnOoNG4rAcNA`otaJyq}J6AX;M)N0mG4{occIwNVWr2K0)JUfRfGhozMHb zu|ftkIn4@-qm7-X&Q-JXsV98-O+C*Zl?96R$E&bI4L=7T*ZN)HGK}qr98g>DcOU7P zAR)t=KNjlO{jm^+cqC3VnWPvz${GV$5)BjT1)x~9HSe=wDU|`>w7f^jgVsB zr_?Kw{cZ8ThHdrF2UMokcFbGp>gft-g&|A!#Ep!Ac0 zjF71*h(a-H(!_WeVKMc34kc?s_-%kJ+oYDo1jPJaZHKkbkP!cX`-0sd$i6{#*j3eT zgc7-dq+5z<=-M*&(Ip@-nys_Fms(xP4J7+4$<7If?fyhcVdOSaW*oNWemUcBfjl?6VlslW@gGRs_}T~|bPbtRA)TEr)zeG_|P|B*-fn&$j}A@S^z z;$P~RIpD}r9j>BVm5QnRjs4B(zv~RFG%D+WG#l5Yuokg3;eu6a=dpHbi1H%jxShJ& zVV_i?)RO|J1?T|GX3mR#DfHp z5e&9C$On=Z^)U(U9Ts|V#&aNcj2VmO+Cy8`M9JFazK;r?2h6kVC_g!mwBpi zCtu;m8tU#OtM0DpDp(G={Hw{8Zb;e8pV ztfrv_jr{FnrpEz612w2lZagkmJNsQ-<}8#nn%oZW|b%^yctM>K#YPY z{#^w#&ROuZB6R>)(F_7GelO@@+Owc=;Xnk#VWN`d?qaEaU%jM3_&<^z`I(8>pb8j% z--s?6k$lg0zJfD$V*kx{b6%6el#r@I+J%!eVrH;lS`<*dd%C%~S>1(DMhe1W z{6hWc$WT>KOD#Z-(2&(_tA!H^v*a9wv12Q@E>nRJ=yKFycL`^3*dB1*b19owWK(fQ zGj^fIDkx(JC>L8H7~0~sYj{Ch_YpSkrCOq>tQby5(ea=_1>tkRWXCCKca0at7$E9w zk(nxmE(}mmYkxaDlY*iG1G>pGneSJp+FZu;7aRrHDmGGi-tp`&x-Z~KM_+g7P@EGBy-J*C7M|=PahI1dvwGV`iP}h zVVEr9A}FL|pCP;?kf{*th-j1o;IJwxKp)HGmzm@31BF)swe`0PaD4(4ZUxkB)RXu2 z6h+7Z2#`Jy_E%dp-J7x!Gf<#@wZLA41JfP-&K^8z{Zlp&dt}k%tsZ7A%+}XfS(*=; zhP301hRg@8zwsH>P!)S0aOS1*1WZY#9cWcn_B0a`!2L+=g~TSM zK#{VjoYU4lHX)LcSr-trz+w_`UWFaq4dUfiYeOm!X;H!g@4(A#W^^`@uWaTtdHHg? z2}+Q!gSBQ=!Kf-;ZYvTgDz@8hW<8`3Y%AC)psTn-=N;PKM7jf_QzBpQ&JK<%$lwWe zHvt!pJgSJ&N!lh)e%OB27}sBA!4NtY8KWORY|E*ct;J1X{dDR8mK8vlPFZ!y14Cd_ zW!ol0Q2z$b2+CNzxR%x#l(roTOIY&XXDo&HPUWk4pF-VTAwgl?(7Eo~pTO`g!R?7u zmIb{AC}InT>5(|L!1mV(1!sOZ+^`^rgw&gkSL{X-PPZ~0!|xB&fexh=N9iz$8{4a#8jUClFmaSkG@#5Po>!EIDC_4Y z&Dev;5gyc0;Kb0uQaQB0C-dG07zNL}#{ofI2#44ka(8X{>801u3b)Z`&;}s;(vlpbSFM_nHnS7Mb|4 zYOLv?d59cqw`#Zh^L$rz6k7?dqDv8Qk9`<+jBsks>>O>YqJGCKcu6(dSdHW(m_aJr zIvWL}JhR{5UrdA&PCSI2|#tT~viIcQQFy$cNeOPHW^hSV#fz}P2t1Ao)rf+U( z0x7s@2~{Oi_;4K+83~l)sMd4>I<}9F-`k0#+fu_`2j5f^knK~PmE_K4Jzu&sDcq`C zxS10*+iaoz- zu$F}cR~wQbtn1*}dES5sf0qyyuc%~>11@Y1+`4&3`U6k=)pZbdIGT3!oZ#-{$+kMi zq>VcK9_RpMwmLABnT44~LSW4qRRH0m0_ME==m|hE^3~uW`_P6IR$j-cz*W`Ns2`V7 zK~%~uzwR@jqNlyi7}VN2(c3e`HFcu99km~BjRNI8LdS)T{!2SKih7e=-h7>*IzmAy z4BZjEc~Q@mw-8F4NKD~Un3LNG4ocP_5#j_T4>R4iV8zgy;cb*>#+8YmFvWmu0dX`` zgiV?BiAO^vv(17~?Iod3`4QMe($0r>6atoGdo0D^Ee3%-Vy!w*nWU?SmcJ_D6BRR~;{DbGDeDSjUWoPy)xKwa3f`eMWzqyk&noOGoe$goKY_&q672 zOO(}dY*Pd+5lCnkEF^fyf(vSUcB2Ru?))vamG0~?V^*AFwDXVu@MVg zqQEZMpR(*Jt6j90X8q?hzAISbfYa>t(UGka?lq6=R5eW=mq_>q0pDT8{Ag??43Q`R zp;X9u5Z2^vZ_aoKN1=nRsHzKyexNEM>ue zxp{}ysL2p?h*Fgy2ZqEkA?k-`9(PZ*IN*QhV3v9d5s4UTvmjl^v3ufiJ3_-mItEnM z`khULR*QGwjG&7%WiMaVtbdBWFbr+!Wx5}Q zzZ!Bpor}xi`FYbtPg7E|cK2>*6Oq(-I+YO%!s>SRY9@ulZ=|ruA{qWTMiQ)v$1Z^u z#$TQ_Z@TL#io-_XI|vML)Pmna3O-hcQb@ATnksB;m7;Z+D^F8Q2&`hkoNzD&WpkUA zx*}0J!lx9lC}Eq9&Tq!7OTw-h+VPxsF%m7wv4By(Ly$E2$eN|o3M^2g85T#3G6u2^6FN#9e)@n z+NB`DoT|`FBxXk;1e+QH3kInU=wYD*!@TBM1;Mp|&PxaPS_3e{6Yl2Nf`uhnni@u< z>Ortkb&zj|?HBfrCU_wPN39V7WsZ-03D%18(N)`fR1Lx8zE;@_;+A$1%*;fUkzk+c zRNN@LC^wxDgWpOj#C;`bPVY+<3n6&UjWc_nfE5RYQN0MBr=ilR zXq64VCv@Cr2_dJa9njEQOr<)*5j>bKLRO4JwH-VcCly}90}Tf?jkWNbj9bkF!J-s! zFIL&$HdE%>3!iCrwaP zIi-KV4+7g0$xnR;+TvnMcpv^TcrjHAa^SUiI+Z*#4LW$NQgp@r62mw>Ov&KXa{QyG zxa>vR{Yi$QvGO)v35UCn48(FKXhio^<8Xf*Vp~epcbMt%QWPW2cztACEvJf%5|-e1Q8ub)SXBr4>Pik0nCa89%8V2f*gX9;0Y<~5}@ zA;|fSj+h{z5Y*ugK}of>?NN1A4{E{D@RX9l#RynHw1N-XmY5&gy8F}uh-@^mk*c?~ zTn~E?QMAtl=6NRKkX9MtrxA2gQ)39?78y!(ns0cCJ9bE7z40UBnFe}l0XNp2bu~F% zvnJ_-e95hdm6gQRP*g0Ht&UMqF=&g{u~v|xeO>{pU1roCOhKWu%e*-Kk<`LjG#H_9 z2;X|`TvU7rs2Bu)JLYb5tf;MPQ+$$}0p z{Jr`RgJ+#UmF+>7cBOQyo|>2vG0%);9deE3e0x^%B6X+?19g(dpq`bG4=~bO+S*!VY_FN;FnkeVkU3vA(8` zGCnzVdFkt1n@md)9hxV}^1NuL;>xFlfptXg0Ag4!N@SJ)$?FOsawpJKMLe(hIO*C% z89gsDL#5Ma=MtZi{pwj!+g^8roBQ_8cJgkt0-xFmw~=LGAl>YHUQAdbOFvJa7c(Sz zOG@>5P0qrYG9hN>itAJH_Vr{He_r!*o$dYfc}>nvbmI-&5S-^VE92?6!~L@ZLROou zRKhT^aD|>h?sMfc8_Sn2CEIc)iz~+m^`lsWaG9>c9zHnDN8zmpIz_=lBSi)OqDQ zP1Xjtzec(sK?#>kv){#8i0Mm~5ke|!P)JdtNf>pnbk-DNlsNTV8pq=PR$$eHC?%Hr z;7lA;n}T0rdBzEbKuz%2SFp`nZQDrOG6iml4+2WoXK92u7H=z%}0R^_5kU`jd?@AJ1-63PSAA0#`HkS2;ffA z!t~L?^|m_I2^zI`eh|ub^3~0UaoT{^Nf}k(%upwBPUT(%lup7xNdr(SuR78RnJ7yu z1?mKg(k@#C>?A4N!$}eIf+aUGwdcs0keJ$9_+xAn+-^XLyV`s{t+A8k z#QN#^qeoM;$$+>*tc==2-?~v~R&cg$d4f!x5;xPyH>*S5hVkb#YJ8oP!vs7ytG)N! z2UIG>j#t{EBpIe?1GnrrDHfBVvI)QJ24>)C&cd(lv)HTA^-=P3&ov6DUCE3pLeE{` zF|}#J>oqmPPX3Pwcj;6I4j|a8kLKKBf9i$!4lDJY#TLVgcd; z2%?USn>=9X9l`7bCsi4rp?0=&d=|?NpV2M(SzF?28-nV))>V7uM_%{d(lGg>JlaKg z^lvg;G)q-niNG{qG>QOrPMxP+e3v@Wch*p500AOgaPfCn!e#~~7`6v-`y3G}9juCj zYhPjG4(`}7o#3mTL#2^8WB4%=o!r;=z3t+H4(;_l7A!l;sWQPlHb-yqdfNGbj(Q3n z98_q8Ww_(275S?5oCrIJ!U}EwG|uYO-Uv5oq&c4_Asv>RC0+hD(;*fTJyX&jOCv8u^%o_^}d1!SW= z!XERZgM|u08ai28rk%X@UK{tQNcpC`OmW^Y=~76CUAS_@b)64+(TpH{&AR$Ra*j#B zy{5&G9bv3%Dg=k4_;rDly)59ArCPAsrt#@x z3y|m;bNGIhg)KCqhgqnWx!~mv;-2S}#;E5LX#<1XlcU7bFfB8s*)fTPTGa|ee{uQM@kA%^+}=% z*F*F;x+BRyD{=@nHOjIpEZa}XmBgOwb^6vol5iE0vXdad?cR`RAo*$-3f)*K(hz$N zIS69`G>KWE$p+gzAqa=fxfutlm1o85h(R2pfaIcxXrm|aHby!gPmgxQ=+;!ks2Xw(O_^xnPH+7R`~2@9T+A}b0DrmA0|&j zZx=y-pa;W*X-LCMKf)WPjoeC#bK?0n9*0;U=P+%OQRm0nK6eq5s&|+;iRo|J>dB1P z1S!o64YQ{T9m)=zR6oukQyw7#%|#L-{c@a35|cr#y&NY}Hp^{y4Do5h=3gk;O9$vo z@U=H+bG*P~(8IHr+A1`(I{7JfrOtS%y~9tT1vq442r`avx0A-J?TPRUFeMvaoYHe# zW(SZqKbR>M{hMIl6$~sGUWt0Z6b=AR8F>1k?{H8agA? zD>THOXvWTPp@!}9S&!oYuQMZG*w_+|S`s<2NJVJx92kryF>KxdceKKw`-MSC19P1x z-k$q`I_Pm?_#yDw=0U`>0PXrHRk5>rT}NUsY>%2{aW&ycYNlW?9V8}tBC&O5V&d$@ zA||W`w{Lb-TP3~OcFgrL=)qRUo^b5k47}n9vpXE^A_*Yv0?vN`2ai`AdlGcv#s`sUpR4f=FwzEQ-KY~i5l6IRI#Ns+B2RSeSw zB$RE3q;6R*S#R&c9(K|KTP>q*JA7+-5{^Wr(0+=>2f zXh+r-cTh%gX!|Qbqa2vQUtO4Se^?qRJo0^qStmy&SH{ygTgA#R~!nM{e}X=!H|op#CPMCV{L zyiUg?o_Jxkhi$F~p(*M^l(NXty!Imy)GQGG{2l}i3lx`A?EPXtw^3n8SQy4dKgAOW z>goOhxxA!f+*rX>*D3lMTeQ>!EHdy!%}T=K$$7qr0r0AP`e2i6|!99jvIf!iFkpNX@9xPAn>;UHaKWco{(=YT4o3#NsL}^hS{t){YPn)`9%AuC8v zcz1FvOlJLnx#uxpll(HmMC&GIb`GrZ99MYgg2aO$2tW-FRnS3rNc|070~=nUpcN9u zjuR~LvomLf5-dD)MB-&<0t;esc{AKO>JO?SQFrhl>u9-oGlYPe=nxJqo?X}Ct1&c1 zB4lH4-mwCg-9ar<7>Oh~u(va3av+V7ST=OX&9!&scdJZFs;ralM6M1WJR#HApD%q_Iw>T%ULz#;8$qISFPlw{1>1V`64# zw1wA+6dmm5sXT${n^pftnFfXB^V&$mK zB8>wrYGKVCvjYmP6GsV>c|djQ6KpCuvJ`<)Uyejh;$xk`r^#A<9L2NL0b?#g6>cY> zNV>8uP@S&R$q_vGLDb()RI?k~N5Q0~87x>idTYZ{mch{AZAhbxri^sD$byz9gVwS~ z=&Dny2GNV9G!cH)=v1L}`Y(IVgk(=0{VK#x7RehIXRWL$IeYBTnPp(YqJVs(dG7@(6_U2JaIGrt&%>m4!PtiJJCxn~I_KwUbA1MyBhUY7Ro84e7{Cda;EeW9wYamZzPxF;DY; z5l{XoA$XkosH>yA)jbuqh$(#4&raY5JW;aC8&0hj%N;T@pqkY#j|BG{73%M2Ju1AHH}Jj`fw;!^;^kkH3#ynlh4{qUL2iPjN|A^R6CutDvZ`QlNhqZjBK`K zJh`t{iB5)7Ri!~>eQL3h!tSIv4Of$OIc2;15<>07c&ylyA2n0g0?dO6QEAB446~E! zwp%Dak6P^{T6Rfu|0>AJl~j?pljmVD9@01+Pbbmmhw;dV)Dr70dkOP}SJKQqZg+L& zoqKLHXKKQDC)nHw%`PsGvgq702*htqn(37};oBC&N=Wi`jXP3J7*K*1z+4X6y*|T` zP)#s~dy|GFIhr6f-Dwz-o4`Q-w{v|1N=yv6XDL0HNd4B(P$VAJLKj}^7o|iVLzA)# zv{ZJINS}~~A(;pa`K|F7S78Z5fRwFFEB}zF&dN&)0*Qgt6@aQle4q3{KMO7e7I0gQ z&@$;pvHGRB0*(d3jhTMWXc*F0fgu^G87H9a5(1bEt*CE9kU|QCSb%0yVY>sv*<-;u z=t9!0hLVWAbm_Ha!VnguVbf#f3_OTJdw#)ZxM7q$$af>|O^rswDv>z8$Xhx|W#w_n zQ66uv#(Q*DxD$hFVpzfqtCNVfJs$(fwOqN2crxOYZP1}4Jv=fN{p(HSB zJBoBt(GHzzw4Fq(wsjN9mf7<1su45TQ!v2s(4snTFqBR-x;ZgBTdu# zhsKkXju@SUK#xe|VPyy5u;MvNPu}f>rjUmy7O;dt-ZsvNjODsXRv4W~ z`1W$wZtq&FoiyaE*?wd3=?3n^plKBXwcNRBC=<0H*Ml6ET{w!Nb%M}=m&9AaUMa#1 z*M*J@d5Vxs^VX{DM8hU)?BjhGY#5z*P?Ow4>>KpXUsH=_N2glwY;ID)nVwzMm>q2> z?|K~xp?oiaN=B5F~KTVNHx8Mbj-sn#JY?a#m#pNT(IpLZo<6YXd&scU+^B^lG<7>_;guwgN^ks%KT zvZrC?WYiYG3~-#*1l}y5#GJ7q3TLbafnyERM!FEt5M4XrIUI}~YYR2eqa7c+K8eJ% zp6S96k(VVzO`1FtFgzq@39mb)Gc*LKLql7n*UO*?P6y?&Tb%c%Yn$iO@Q|SnPvK_;E7K?XsGq*u{=Yqw3VFQ1ZBWd{w7 z@r*dputDOwyvAfl4h^sNCN}(fQPVI-7OPjhS#kPq2XVI}tLos$Wa}0euU9*R-J`Zg z=J^J6aO7CKBku^r^^tI#XKJmQ9l6Nqn}ID$ZQ+a@q%L`j+rGux8#&Zbj^x)JftmFk z8|;PT;T-_0Yh-A!VDn^b(G#iFB&AkM!)-2qh-)&IBk+`Jb6kys;q-IEv#QNe36(Hs zBJmPcD+;_DO!dI<=z^_Lg*?v9LWWXj`&)%IGPkg(Ev=adpAez!Mobe!ko?uaS{H>g zWiao2%R?~Wj0}!g#p=^!enMz2zp$7!zqNH{lmKq(QK@7lJMS6MI#fJ0!k;NwPmflJng%$=8{K0)QtKnz(F~k9pONS6 zZI@Tfx;e7kBW*_A=h@P#RrQP)WtCt9zf&nMxurUKFi5i}yRdU>ZscP2YuI8N-pEfI zV$jX4M2&Iek#`+Ty<^u)j;{W9J+nnX0YL~N2XBLJl@p{x)jF_nJf{xI2hw4(fGf(D zRZl5V6uc2cD*DJ3(iI3dHP@zAdSF6fwTg<>QG1HTvyq~#Ic86IES(Mxg z61{p>)s8Gkyr>pAR@H?(@&zbbu3P4!ijos_WG`wAzE?vWjU}vvi?)qyb?2eH z6&YnfMRG^7robozD$o$!kD6rEUH`7%HkTT1>zM#0W4iv|6|xT5^Uku_OCsHhZQfEF z$|w}|5{LMZCQ}_dTY*t9T7lNdfmEYZFqMfnw^txBYa#!oD0>~ ziWihm2^Ym3g$ByL>H*=dO0kZ^H=KsY7Ks<73VR&Cu+3=-x2BjQ4P4}~@U&MuCt{Tz zGa-)^p4(QBmm@V)$W5*~E4RV9vizsAkqu%(m39P_CMz+fHaNp%S8G6NXm^9^v^GVU zSki_nJURAaopZSz_S9T6iVaNGy^1g{PDFM$QaM014kS#xPR_`)SkpjBYpe!aAN zD$UFY+0iR)_J8#v`QQd1@@M?DB5gHmwfp|IDId#Y(7CrK0Z^ZhjW8s|g*42{omy-?B zF|PoSrqGKV@Cez_8FvV$Wu_BPd5VABwFkksqeDqRid&}bwd&nH*RJD8mL@y6hJ0|k>KE9T3diVrqD)3e z1dENwG{vc$y8rm%kq(hjd)1?Hy?UT5hqvP*U-BWJZr8qAc9VXXb1xOIv53}L{V#Rh zcM*xy2)rqmTm6@cWbg3Qvqqo{K$voDG+B^isa}>o9<^&mQc}k9GxV}!?S~_EriJ{T0AMD z@o==w|02d&z?GYgeg@1rNW>lbQJR%Lifm{^I{4#dMwc0$T%$_!m*H$vWY*MHX(~E< zZbR=??-0T*$Hc%3_YKvkbgpWxW)Y});#mLAq59iw_IqxJ5p8Hnhk4gj!n<*=Ap+(T8+%%hP!Y!srs0! z4afH9TAO`AD)ulL8&am4WAZBKN0$JOEIQfRWI{I7wpg+T`tw?b#Dr`}+gm&T9HmhG zVlFlmBKmAvopEsMwv|wrdNUNVm~|*}y)_iucq`tDn|-UZbHyQWtC1JiJ?Kz9(@L{Y zz=U9qJP2aPv3Am;Dp^}vm2Z#s(>@!qCc?)&Q%^PO5pNK^HdAnjn8+=Z7=$myI!lJq z7{pbveXYknc5{Bqh)J2yO41=!IOHffT1FaH3_j=e0ST(pJQbk^QB0)WLxmH@@-D1F z7IPSh-EtimHwR(FMAd5*=rzSWRf0z$N-uji-<%`;IuPc)(v0+NZ>v1P=9QVZ^G=Vi zqMn(6wmI#U=#v+O5)_g-Nj0TRP4p(Y;UPj^nH@0s{X~U%pPu7$l&JQGv6VoavV9nmbt*!dt$cjyxKH((4;(Y93{QMo$h1 zb;)XxG&QlfJ$?LUwVko%+xzFII_}fsJeho1EfES|LS9ACh+UergUxss)%!+?5|6Hg z9UasZ+1%MYW=d6wl8!177|cDb%eG&L{*+J@ZVlaI`!ohtmOw9IDD;qeAFKPH*_;M? z3BU~fXd5C~?twrpe$Plqsdd*Wni%BmVEQ$DyB*JD*P^HQ-DrnXwoieheL$ zb0+H)(~`zkP&2A1u;*-6Sff3iW$*i>@ZeaPb+%#J8+%dXoV8s~Lx!sPIdh4uc(?l3 zzgR2Cmn{c6H~-|8X{t8bnX`LM(azNpMd!>nx+|0t@8F6Dut=U&DGjW5>5(?h*N7Iip{6sq*y#5%HlIIC!&J+%p5ve{aeo(*CMG|bGIGU&$-i8kMhZ4 z8F?7R<}C7Iq2JjlpRF6roKLo>Y2-eGlwBTuXb(!;|RZ4(c-n;6XXboNUZcUh%n!D#mpgeu#1HqXvD(^WQz0lm!I8Tt|zZJErb7Su*| zZ7l0V7|YJZG&Gv=$M%Pqy+k*av&6?I*W85S3hStiJ_V*TsqLO>jMhjR{1llmXhDSx zBTG}+e7BuA=z`Rwb4%r%9(}pFn7X+2!|L(pt4h$g8&i)zUrM@uA>29XJVGWYJ(p73 zV6bH&6#=%7tc3-|)%IXT?rbd0(~@$_@X&X3z4R`ZEm@q)@z{tdJ2>4pRxX6BowJ0Uc2fTu%9n$o+F-lF`Nl-z+U~LNrbJs*KyvX-`n6ncn0@m4O-fBz zn^!VW7{=wKvwVP)k~Wvfgp)oUGB@Hms{(UeGwvbn$hB}{-c?#$I-;>?gD7hL`G|!}?p_|wCPBFHVBB7qw z7g?Na}=7FSl{{3Z}4M2tAZbErm@10CJm&laCpNLBJa~t zrW_$P-u1KSE$&`UHQkW1#3EH_K8>;|-Otr>5`&meoJ2h4Ni@r=p~JAip3jxUHm`xQ zFO`y0?9;m8s%pDO;>SC_z(pJLX%RBJhOD|pH)#ifNVlhHb9VDM_boACDE1tYF4Rp5 zyL9B#vYUg2J)a!56ZTOo3ZZV%O&Um&nabzoE~Oolf1KMBB&JFq(No=~d#Ge?2Vd_V z@n{`h2z%7rPcJ(=TvzNS)mX#dDZacXQ}EfOvK-Cp%>#UH+|nm7%Q>m|vk7uTT2udg zPT8|Dr&Mb$4#~jOLGe^kXp@GF?IAGwyIYoYNpFHJ&y>{jigQlc1ZiwNn@=M|%RHb2 ze@dQ|i`yJq)`0Keo~@r#qvl}?6gI4TeK{QCk>euY`pGshuwPRYr8XH`@<*}YoW17* z5ksl@l*5BWh&`#^-1-!8a{0`dN@ucy*Cs6vy;~!l#{O~RtG9P1HD%wqYQV_}c8y&y z!qt^D(n~y(GP&vEqJ=V44@dk}Y(6QqhNRC-&*@DjWob1%*E4CckN(4I_haykA_ywY zCt;4wB=wj881vxeD`C~s^%E`^Ct_YUJr@<^S-oDB0O@s~Sy$cTona6q}KVePS;?TQCUO0qp45(5Ba}y{qBAb|b>G1$)raYN<$^xy;MV zr&w+ttgJN^$NJIAe0EJ*Vb~ta7X{{XYEmF?b(MB}ra1Entuzl0m1RvaYH{h?h#@Mc z#baUTlY&Jx>zCp=K&TUnXA6d**kbVt(TpF4gseSNH2S0oT&i@1x0yIwh)GBOg*XFw zwqO~q>B@YDBs0PWQP0T7(4PrC(^Geo{u~`2EUv)h4xQn$a?IW!HO4((I8!^{w4mA9 zBK=%JkPDs22~O@9Wff;Ka$MxE@TSgv-cDT0C*l2JphM4o&;pQqa9cjyw2y3k(^? zenvu3o&GNsS#XD{e{c5MqmtgAg<}&Zkq_ilasGk1%seN2yMB;flQ%otX$3xCaC)kd zbwxM3l5@52P|5Ar2d8lo{p9(A15{3LYnWW2S3RLohB zZf@GDWToFgve^h_8h|LXJb51IwUcDp>G>LKcuJOO8rtlJ7TV&CFL*`!p|b8+j{P*_ zBVaGeF4(nCW^ZRZuA=rQQn&&)SD8r`z9_R?zgJ^>!h@B)JZ1Zo6h8&?FSO*J*q7|C zNOVW^P(^n zs3u#<%umh>!K(xI76wXc?aZm%GgH!6H?Dn3?9Az_64~>3!HSFv+k_g$Ho#*;s?9m6 ztp*i{#=1-@(dwMaD%0n_um-1{T_ABMt8Ccc9NK}r>-C%k)zi6NoVIGdIeTA0vAmWV zI(odI43)P@cC_vl=7KWa*gW5z>nX$`eQu$yEX|lw;d9wgPc>VvSZ{cDuCpeErBBE- zrBF?!??DBg{>auoN4+~&Uk58?7BHpdNxqhK((YV~)m%`@w2J?FzB|`m3^IgB_b1sT z*zl}>8D?p1S2yQ6t;}1VX*nS-Q)WeEIS<;*b=R`dx;s}@$uRAc!vQk403JQxWk#K` z;F6M8G$Y#S)RLDxQ6xO9b(k(0<&|!Oz%++&KdGK}H3-}&NHgFSUTa`To>lIw&QxdQ zCpRc$cBn$W38(L3_zeyX9lo<`ZhqgcA$r5h=mu8# zW1|Qv!GUqtZ83c18B5*O%|i4yASY?%-5q>d`29I%;SG;9Xg##9&g(LbV|W-FZWiL5+$HCPR?>&D4mnA5KcreI?sC-8i8#LILMc{@ zn{+}O7)uRM7z4k3BG`#X^rG0U3hdTv$+^y?y@!IC-`~#KqGWMgQ0=X&$>Oyj9;MP| zkIs-=t+l>KrNwgy|Be7>Kd6z1xoR)&Z=Q#OG_%1H^6j0Mpv&Xu?KHed+t*{2G@xLZ zeB2_5yN}|c5|erzKot_(YA*@U7<;}d`-7KB`N}z+Bal0;YTaA;-AHS$W4P<2z0HG_ zKe2A`;x^Pde0u?-?Ru$SV=;{4wsw&#TDIq7s^#LgM1?VR#)>mQc}A0JoH}c>#(nW3 zzPw`rMlp2RIIQu3??x_UzS=InOQqDELn~NZXGC<%k_=V3;Qlg;*W^sy z-ya62GeYlyD%IV$*PE8C!P+i%W9lEiwSukh#p%N%zjqe5J4BUYbBbPf3)yNeF6-hK zZwGr~mFjeHxxk|!>eSA=T?lsjxhg1L+n!p}SJGy_R$Wpkykh(^WsCJYn;e(Mwd*2* zj?RWr(2vHFx5r}kC+YB)QG{wmfE^`*8!`IDDI0}xV0_$wkPScYPx0| zZxCH75)GoF?iN$aMr*Zb-Z@flJW^V7ZRkc+?>(;GYStNApRHn`2z6=t8Im@pnngUv zZ7)4ZmB&;9P4jR>o9HrdG#`id{7_4erJBbrXslUjXve$~gG%ksjsit<(oj<3{7~6% zQW|YED-FYGX4~p|FW4|NISoU?re?am7oFAYG;k7U+=ntlTp;}^o18`RJ-X`uK^cRo zr0qm&BECzxYV(Z$hT zU6+bZxkh)4j)3+0n)Tc@dNwwjE^5j3x}(H_WZpW9mR!3BhO5Ybx!c?~SthKi$`yUK zHq4rS#Sp6NeMc1!B_zaC#BHy(QxdK(0fCDkq(F^Wz6Ll}`f$apCQ+)(SAwyNY~PMb zx`pIx!iXfht9G|S@}9t;rpTw%-^}N|UePd7VK-MbmD~cnu{09BPukQHrGInQCA=&dx z)t~J7R3X{ZOoerFtPIneGrl_GLE#Q z1E1(rzZ%pvebxwE0G!`)&EB6LVs_c{OjEReDG`dVG~QOX3^a$EkbJ$FA&H406*)WX zt)^--M>vwpCVdKE#u)VuOq#U$ojAE#bFy4d0cw0Uy%Q-pn8+zNHnS6n5%MagLR;`z zC=+O5_0nbHXO0NlF&0iQTk9cC90}{;$|5oicYVU)l<1Zlv*L*pRnE+ z^YuRcdNeenS4S2RIW-pRLOD7TVp0o5N|9MY4%W!z5%S@M!>&;P&FFZkS@OWj4+n$n zs7A-qe-+1aNc^ZPQh73~IvGTcNci@Twn#jPUQ%|#TEgkC-3lOsie;uqZc0mfrQ4fZ zGNQUUFS1HO?s4BL^Y&hNA{Z->ZA%wgS_K1e@PQN}+%>UBH7a&gIw;uk7sS zsj9A)VZs)#i|SsQPVYu6gu5ycmL5Kvpdi>Y6&$&dUVKsHEfg`+*B9B2A1C@Sc;whC;v?Q4hc8LwI+Ftd)iDn?E3mv$VjL9b3S}&I;``?m2ZZ9t*jY!bT~<{dW!!+2qQx3>EdvS0PDT#VcpZUi$)I}=Xr|((hTYS z4Qfn>dXA)PA{;8cx5Kb$?{%){XoTDCvi43$t8+bvtB!pR-EiEUAHxLmTUbja7&2x~ zS?9D>vabJY_rwm54Xp$u#4GeqKf!dfHG1RuepHhd>I|`pyo301D=J47(_* z3=FaGj#Zo3qrn z2#CzMkn*g)MpD8u7SKEF7ALAcdv5S5QUatQ$C-JXe~P!C49TY`MDEuVog6wI%qu=v zG*bow*oaDw=!vpj+te8eT>_LSLGbEviA^GCc{;EI0&An>MRRnjE0jMzJ6h{3tIvf} zZPr1y>e1<s1EyQd zg)~Z2j5xWl#-z~Mqj!*Ccd=eFq7)HTYbQ%52Ns?!h8ylo-76oy*9I9F#O|TLPj7TA z5mGa#Z!GNX;+F0hRzJGbfL5}kWmiB{3(v z(jhaYrOSZciJjf8^Vb$eKI%~AsCSH$&371a%0!%$(n(~4S&q8aH=RN{aBG`W=*D8U zf!fz-J8f@_R&6CYB3BrK63{MKLd1D4A$liQ8-WS?a?}XFO(i^S+EfP$p@p7Ke~zT~ zte&M*mQPhpwM2Hr@GOn(NJ^~=X1>DACvTHkB@)sR2Pw8g?|GLbn}$m=fOTz3JPl`F zT*7Fe++lXhfyN_&G&oeXdj_a)eU~WO_nr6bvR3Q`;j-orc#JHr1_ZKX(~x7ybX4P_ z>XJwrmux=DJ)7mRK+1%TM|1D)-bfqL@ z81ktd`-hdN=1MjWZG)e|vQbHiMk@Zie&{hAHl`Ad#M#^5^q>R-mtZ7Ve9G8V!zk%U z49nY-WH+PeBccru*jm9eXM3u5ADPz zw`>Qhr*Q0>ytS;h3196O-+(SE=e()+^Xr8-KJ7} zzgHEO)a5iYGtR=Iv?D0I(oc!Ey*lPG>z1gZFcHTKq>n%hi$~Wy;uh{j+)y%zO=U|X ztbC3UKk$@;d%4iPnBmEJ(Hj-QKwnQV@G71lgY5MQ@X?hvX0|Y)Rfm~(YsbY{cxdkq zPw&3;)|oIMQil;&B053}2Lg3Cmg!O-FoSh&Gv7K8AZpB>&@*umKvTTE#nfQbmK8Yh#mtEeZv+&sRvQkji%R`LFw78b}w|O>B!&WlgwzP?mCnmkEcYdo{`sG92Cyk zofQ{Xqvs>LO|5Y8p9d7lCDvJXYItP%!p2ibBkjGTBB-2PDpC!P3{NAIXqGf4RNKhy zJbfDvbcBZz?r35o)TR|RmPwRixFgq-n=#<*TT2r+Fd-&YNN^&{LhRaZ4~&ReEhkyj zgbFaFGMgrH4t3S^48vnliT171k#sqTjPN#;k#IeVc8+0Xse>csaF~;5fG2GySR>hX zj?NxG)_SE^D|GBMILn@~-i$PHeCJ9pQy`AB%MrT{AcAevuZlz(Ryzh} zXQ8_GO6(&i?b`(LoUo@l(Vwp^CjMA|TIl2c#^$z?UXbu*kAuR)-S*q^z|_wzRLJ?U zQ>Z@1@%P3SE_``SWn}uz?cocg9Z|?9FF)n}xtdH?NhW9#z%{_6Ixz3aNa|C{dNBBbcT4f z@#*y2-PfxxA2&Yj-O#y>&Fkx%5102>=XY1P$G`q{_xZ!+_3`B|S9cqS-+ue~>h|c9 z|I&XqZ*MRET3>~-+uo2+x;Bj-L%BU5yS4v4?o|H(2dQzyU)LTIljI5 zKH@AK{5{YL&ex%%zq_p7zYT}9hBU+zDD`F6Ejathu1 z{Nol{!`*)zc6iA=n&7{iez4z%SAX7TeZQ)N|CqqM zY{NCMV{TvH+|AlLxcTiX*bYKptL=KH%f-#5^9UWX`) z&YD;FJ&bqXt)n3%3#DJ~{zF# z%Oe7d)!FvhPrlf)ZIvsT)0E8<5?$%=lR%h=bmYgFl3Dk|=wB`HQ!( zx$(#T<(FSpAE7_0{_3}%um9Tld~3?@FH^mDH{VztjrUoE9g&E*xlz@;i?-fv1S~(~ z?~UW_ER=tN8{a}5Z+^JnzW;M`lk?B@RRI#9k{Cx=gNFq&>xUp`*_nL@IzXTi_4Jx?C4MR;)V zDXoh9VModnJ=b5mWxS1JI?6^98*lJ#VG#2c9vIOAa){{C@aEVLja8PEO|OHi`^%4T zdp+fI(kwJub7l#)$G#@TxFZE8Zpui*PR1mhmj)k1b7%K=kmh5TJ>ilcf_RES`sEjK zbobBut1pu2*WW&WY&Yr!;3Mc?f z=MU+sR5D6JxOd9#0|7#0(2DuzyR%cYEdIcL5GA@BY2fLpOiF{Cs`+^YzsMJBr)C3{>B?{?fj# zRsQGa-#*_v4mJ8ONYfo~w=k7$4yfgSfYQg8x0qVmRAQ1?q%F6bm2SkG81)ejZ=Y}t zqyIp3>+AkEhY!38nblCj5BDM6FQ2uxY<~TE4SltIom_oji*)*w};^G=-#;AGJ>h%?i z?B@@fBKGT)N&fNj_G5jJbyz=6uDlehT_QfwyVb|7oBLnOh+X#`Pk@A_fp3m)Ki{CA{(8e!);=FxGPS<_ zmc82g%lGcC*36HsWn)ILHeoW zR71bh%fVdvs%31$+wVSjtIT+R_R%u!G!~dR75U5Ag-`F_cd->c#!ZI!Z4^VuM#&1CTz$R1{BX7UwEHJ|J?jtm#Oo4Uh8q9Ye>&6`+c{KJGR4J!%W zYVfA|I=vO0_oA00bcUvK;#}cSVu6(M$WI8K?>YJ}=U+bGpZ@y!6JD}kzkT_4{CWLN zYTbVr6=v;thi0F>SCs+e0w=SRz-n3e9&8}4eYJH?dWM+Hl?a=O}QRwv7o7?-2J*ERbIu~Z8y{*}2HuWn@t$+ z{`K3>H<(3It=bpy8w2Ivs#>DPm$S>;Uz|wx!Cn1*vGjxV-xg{=yS@B!clqJ|>f`2v z(532HSy`Nz3OWXHcW&}}Q|@SWTL8N4{z3b(uE@K!mG%3Gv~%8V+=ay>I-GuG3CJ%- zm=voG%%=ICV$SzhuRi`^BDe%H!CC?Y&zC?YM-NQ6SFeT{x2$?zy^^PW_sjk5Uq_!l zG3quE1{L+{mG#D4HtT9KaYqhuXQvnOM~|1RFcZ2R~i*hJb}m@ZhaUismH4L&NFubD0!GvX{EVo+V)-d$lZ zM{Uyu`_-$o4myLuJGUOS84`a3vl$p`k(=SM7Ns{x)*)fzv!!I8;|QIxv~JoBD9!vD zglPfCbjv~`i&ouQyiN|LCgiJE(|I(pQ(wJWoJO4~{OZ-znD&m0D1&{yfFMDfO|PMf z#0a97E$>1)E4u(Mc6A$;HRBt$8*?H}!0xv>`s90?#-MVPAH9zIjJJ#eZa|Bg5D)vG+E_*?EyEu`+Jc*xiN>eYvzZAv_hv~=q6 zaEa@$<{Ew&>02InJdCzF*nZbvPf|4x?41 zD?R1>^tzY}lg)3|xPbiWel$WKM4cL>-$m|>(+69&bi1fjs6{cLDJux+MS95EI z4#5Lw-H3aPbpxH^ER3(ARAjcR9nIYNx99>NiXkmS6fDe_X ztGj>S-+Y}HIs1IiLfm&9{EvV9H2?H|{^=*zZDV5}|9HRr`KN7#3A25@<*<2H<{=;g zdtIcQm-QXWq{=_=-~I89kRmCSv9%9BC!wB9L5+qp(66WW9Cv^HHu4c_32^l7ehp;z z_V(s>XhxznGS9f3eVXE8crP%|ip-hE=PC2-)5tu>nsLc7mp`v#o|jp}JOi$0o`Wsq zq2~~v*D(*!I_3dd$2>sG%nQH*^8ymgb5)y8za7!omu=37V!>Jfmc%0Nvl^Vrv(H(v zjFB}cgT-Js_A_0=zmB+vG?*+~pD$_rJ4hMJ;Rev(M8*k&+W4Euf2$iimw#PjD%g?h zcWX}MztxRI{#)Hp7{|M1h` z)2rLhm)8;h*G2x!hdD8B9;&=h&CGcabK=2%5LcF-#dy25`uA|H3waxX*L%rv!;>rT zrC;Iypv?p5ZI1VJ*lu!a+lKv-EoqzfN ztujSqa1rl+NEwN>bjAbKxOi^ht|rU&du&M_aozn%gvmp}ImBal_irTgQz%{p^Caqu z=_1ske%C_1?By@E%X^^wLl{;^+$&vQ#di@btpDTH$3i^X!w}*TC+swjSSDmHzYyE` zCxQK+3489oe!<4tR*ZD_Elpu&WGkK@k>&RB?mrorvT^Z$$SiF6!^{RUBTbQR3*VRB zp$mv-zjB!Okqin8ukzzH};DI0YHiD69vQ$;cK;^j(ooV zo0StqdLLDPw^~i#9l87l`pug^|8o5|F^y&H9TZCYy;@H`hhJf6{oBUH$?CX7Ja#Dk zCktk(XX}+vkKL7}iq+o0mT?J=_rh20cq73Z8jwE`s`0_6=lR(&S?(5azI3BXjpzyX zFLrREdWmdXhb~8-jH*h(Kf|z~vJKuqT7X@D{a)#q6!JgI_Q`mv#oD~vLiJ^B5s8Dz z-%zA(9WP=u3X$igzs4!T`=~$uA*u68YDoUF=Rlbrhn(>w+NdSFCt#50A&iplhmdl% zJb;tbHUeyLA!Kc*)=>R{5>whgfJ#WDY2kfRGhEw|-9ugBd`K?2Qo9dU+_ClnyvE=_ zTHxNV6M8P7tRKfB@;D3<{_h^!rL|rdO8@2pv5cm(0}Levju1pSm?P_q7=2%7!U(p; zei3Mm@zP2y+9j>zTJU~LTf12{cJ$*Pxos>gIblaK z6v$VQ3A6>5y(YBy+x4X`%1r8LMBBgm{fdQisG~tou73Y)H=MbHd2ryFfW$GmeU`#)K?(C>hM8L{{HzR*A~A0?4w!+=R&azUFg<_tk@S&m6NlFh4fTWb{LIu zmrV|#8##^VC??PWKOiT`XD-ZfGw(Z?y5`93t67ci#?WQ&?^ZcOZFTN!ZxL|1y>;!G zS9r;V-&>d8KAxDv&whT|A|m`2-uo}^6q+RXFPy1=Zr|VSUCZy@KJDDy_Mdj{G5U#k zzL9aICO(01sw=|W-ND5o5~ zY<=eLQWpHu^-;s>eolw5dow_Pw*!=E_t+>QUfP*LNvQwk<{Ew0K0(~+r<3cukJE4J z%F;I&?pFlm80tPelK!~ArBOW{~?99$0NVs6NuX3PK> zbb&+A8N~N~{&3|=uN7$y6(>&A#Iknz=h>e$9KGqkpRD;V`M0hYvS$CFQnEJ!Y+ru8 z{Q2`WqRf?Do6QN;z0IK(wDwJkmearwx1Ya~nu;+lp)%Ee#YcVbS5@(rwAVDs zk*ffIG7{l+<(y*~MLyf>%dcN`jxn#omN)JNEy0?xVLl+cO+?x%-SzKkdi83lj`r1E z)~)5aTXU=}m+-!Xf1B52xvI3(_Q=1QD`n%utN;3{OVpRY{jX1KA@BZ+)1BL!yPHq< z|LgAKzwiF*4?9!7`>)?${O?DX|MmIHhwE=2uk`hokDvdyN4mV;SzT;g@L$4$HaO$s zFFn?E!L`Ms{rF~o>+8uA-j3AmeEv8*Iy=}sdA&=PR{c~)X+Fg-{@Ok|CgE(s_>+%O zQ2+dNbkdMjdPEM)9_!fJQJbxyzLn@rG}CwPozf+#G*`sWHcn5rRZLH*ZEq78^+;ci zH+AcgPrJLMkbR*~MB3}a%a`EU2hud|Dv2qXY6)b0X5V(nJwUooem*1r@XHNa@9KZb z<5rLIW1&7KC;#S)4eMd`1jOx4|5kn3+IsZl$qVvv7&X<(9%xS<>q{Z+Z9Uq2^n*UN z{ypEMLqBZn=%MZG^YiDF{b9oxc!)|-b^714CmTke{I*9MFP<=vgO&0IZ>`QqSGuvi zd8~9(Tl@bXXJ5M1MzVz4k8+>jhQTm1$NyRzXwY^fu}z!^LI`0r7D7h?8_(0<@5`(u ztGXMXxQ;NYTqQlNrBswt3sS4uoc1WB)yXN+`mC_9eA+dvoHZ;xrur`q9Lb+6c|Z!i{Tu^YM@f z+|}rcn^5x4@%hBPEh&>K95V-q)l*iiGBm`(!3%MXR;Q<9v~QfERlZDF5x6pP!l*i7HRYh4hJ+MA0?R- z;Y6CBk|6HS;`MokJcB-=z6FZFiEPUhg5)UGw6~hG!3wUzmK92Zip?j-@=sph|`GNP3BlkhN0|=1W znP+n6IbfWLqG z?a0@1i3bdr33!(d^*-s}z+p0lxoXwQlMWu?ov>uTVIq_S=*EXnp)%J;$FAyFMQ#>h z_I&M4;hH0$PmW#v>6{qwN5`%rWlA;Z&~^vm`^gl>bVK_k&A&1Nysy_T+$7)3%K?TW z$)~H`Hr$|dRq@AXSA%HD;thQ2UhVjF{Ml6`qQ~l8eD;;uop<`JIcBOWhob&6qo(EqC&DW5*Onk`3tn2Q_A$>%s~kRO&5eZJ!eSJSSR`GMkhJN@jc z8DAtx;^?!hXyi0DhZ9#~Amf+>>GvnDz#ypB8qJimXKQ*1w@#>RtWb0`(}n~-U>{Fh z(NRyfmz6Rj5$dqT^%h#A%vkbvUU8N{J-p+1uBUI5-P7fg_(4M_b&qjS zf{5kD5=$qTATt465atgAPR?&<6HLnTz9C^uxu~Br9b(9V4v#_L3=ZVc&5L1=8+f!u ziQFAs_d9rwPx3jrZDWwbdLG}DZC_sdx`ZoC_{qG&!(y~U$Fg`f!=c6a^6Z=v;5GGp zG#;GY8ej|v0y*+vtntA=@e~ikLu?(UgFb%XWSmPmIH_^9$wn$41A?zO3~)!|3#JJ9 zzJhWuEnafHE5$_FndKHQUqxIUE%?G0ns|}0lOUzM_wk1Ea-V?Di}Sd*cf27 z$|Vr%8jpcoL=4#dcm^Wh2jFGu0&4|%;G77QhLQc#i}I~!4(Y{ng@(L}TqZyOx68RA zfkzWQJPQQZH2CprciFXo4YLFu{GQ@f$Em9)R7}c9lJV8~HfwkjCWx2ZwZ=EX<(?~I1l_@@L_Vj2YT>ib zq0V6yht~p7xG`2Jj%FH%?K_B!63RLlg%1rXX-o2Wc<(mBjs8T(V4>UR-S)+wlkS;b zQ&M<>elE9`_&M$-c*z|Hx7cPP^Bfck>>wu?cJA;Lm<%-X;UW&5kJIU}Kfo`1FGVgc z;4cSQ)#EL5OufwvFag4R`McY+7PCovV2XWQOlEkbZZxNcgu5BO9PLq)na3dKeJQ96 zIaGeCMNxlCpZCyQi4v!n@N{0h^HWBQFi9atx|8O|sj?gfexy`(#;vYFa4^L@j?vqT zLE{82f*5*7UA+Cn_f8Tl8#-QEOYw}1T1C4E^2|mvBBh<-BeC5DP9%l>*$BhBs4b;w zn>5{6ZZJ|v=grWdIbo=CX@eAANXDJFm?AiHlvW(v$W9VAG%Aac;m($_JMN|YS=HB; zt)}KNa<{Bp%{D(tngQm#iY2O&HN2LFnM*cfp{g+%V>N*7ZNLy}C7;73QLXl?A;+f} z^=gQ=!DV%k_CRd6CppTk0W!wP3|lCSEg8CvaarcEoSteN#3vPq>)_lMCJ2=X=&YFt zBQ%zFGv2QuPTXr0o9p!hT~D2_cx%9cP6_Og4vNB~D3hW=VlvPwfscZAzmJRtL<`Cu z1I{xTD~@t{Tl^b3JG4m5cbw)4q2U<_!TDI{Amxp#@7aXv-)Wb#B;LORsA@X|;MG;u ze?($UF%1A(&A11LL71>7to(6LZB5}4?(WYqwgfa)EwD1bqav8Uy8dSfdp-Ve6X1f_ zp9qSpYh_k7CE47f*~j3d@1hS~Y%E25BHhus5$m83MaM7r;KqUm6-1GuLLOe@-7cB# zpbR2F<(E7)Ho=3HM2HeB!B9;}3e}W%H=OqFc&%MR#cBv$1pXZ34|dY{gHY!k|9=+B zG0~ra`$bHrnZ17&Yk~V`ZDjY)u9Z22&P4amlg(m_Grs$0p6*Uy-nwz&!pWJq-;oat zeBl4@m|=H#f+w_ZM>uFeW~XN@OrBW$7W=RFuwZ^$N#G36&TJ(##gR*7n#AD9ga;<9 zLjQe<6%j;wi9w)~Cv=G>p*CK_lQm|65L%)`3F-{|zvKnx#)0L6(C9Druf?sso)|0ZyIsWnQq&OlOE(TJ{W!GrL(dXJk6gcWLyn2;#~OojqmRLaRJjTFsjfBE zwM%vFQ(gO1*CEyWwRaYWC3$f#G1X%9etk1pZ4P+%3-2A^u=Rd@o5AhP{_=ni0vVfq z|9J;%92z!hEtvfHf*6!5h{4=nooKGFPF%LHPJF(vPJG6%PGZilPOeUp%&P>K`>T^I z`&TDf{t??3K!ULZ$O{^pn4};m?aTvgW+dYAfp0RFsB&MJXf|g@U`m0U=my@PJ>;Y9i<>CKxff%0101*CTx8 z2G}`7f$Hl5>o_;=-{Fyg2U!e6A+>vsp883FF<`HS6r92wZ$ zvBE%qT)?K0q4vw>1^4M=m%*@N02>ZHoxR^lT1HXJR90Z}@&dxi3~-RkiP4WBkGg(( z)arcnwRu$Bhww4NSfQhl`TQFJK2?Kq=^6|V%_n@_dxn#Bu3E9UU}d==j*7X?csyJl z?(w&czbR#sf|vqThKmSEPUj`Hg$knY0{CZLu1o9&ENx52YRax)b_HHdyz*5oi&jqOe`=+Ac)`&!0D3qdU0_7(0kj8>ZaH~z+mlJ zP9Pl5#PAO+;6(AWPx?4|dwwq7aqq17$v;m+JxvQ#jT%4~*|o~&S80{cuiAg4Z9a$B zmY!c7V)UZEeGkR+E35^bas4yi{Sdo7PG$$mx)Uq84Z{P=;Q*xWHb1VAYe`?ro>H)N zl0B1S9At2m0?0lRXc}TF}J)f358!+~ec2q8o zE3L1<6byxT`A_;>?F&NB0yM1pVhvOID4T{BI~nfa2L(G8>~PYAAsDq8 zv3SGG@9tio%Y(d8`ufaT;3D$%*;}a%Fy`{w*6TBGJ;Kcnd`x;wiPvW^Ht1yf`iw?n z!E4n}ygth{XuRP78J+c4*oXcD@7#ESbO~eT3hEXpe{W-tFfXZ6Dmk^QJE(;_ir-wg z|GI#8aj;xM@v?_&af|@3&$#OKw)_TrTZAX;*X2`*rzPRFVDl3Q#)NvNur)HVz$k$R z36#|2wUL3R-J*=^!ph*n*wSLy#z~?iF^bWANPPtK=2Hp79eYOteVz^DU|Edimi#y5SQH~ho2-J2G2lZ;RgF4UPOeAYQ=dc2@`1k|~cOIMlC}HU0 zK|mCE{w($Kvc-VedGs&IW+>2MU5i z5%^&R+mN^8(L| zVBkhLMkSA>;0TN-panF38bFp^2sw5kO#^MW*u3nvF2e|EGb2tjkJQOT`TUhs8ITki zfFO*Hj=b9J;PhCfA*{j>Xzkw)@SnqTa6l><0j(DVaQfos2tdL}_-7GCPhxOn!Wig7 z>NsB!I{}^t@x{e3Qd@knTX6%wTj|<4pd<}(DwuvuC@>z)l zS1EvC(-H_utZXGTI9DS8yv!nI2(Tv@T$i^F?DWd0$tFE)-+l7Xd=GGiL#=jjkggDR z`_LYH2#b&shBzR>?6(upb-4BbPt9_<5x62oHfrS{P<$42F>DvcSLL+NJ)2u6565_x zPr49nuKRa>)9K@TSf8s2{1_4CaSN$AOAxl%ay}w)$tM z0XN2FTQBX;@p;(_(0R8t?Oq2E?XZQXbv*AG3`s5mgx&l_e|8>V7?;jz?gGnWA7Or8 z#&UMq9xq|;8|koqoApaP{pt4K!!jn;f_=G3yEntJ6bvSg3LiRVsC_$yStM4O2ut=D za5-a83&fC?g&~#9P|PwR=9a&x>_5v%iL+K#x>O%6`Uzg+%UwbR6e&2z?noroBh2t% zC(M61#l_)@JUmqNdUqWRoNesC8J>=Zl-;|VUH5S|f&k57u*e`vOqdvgsqGlYD{@YJ zZQ@@en>+@-zQbfaMO!{QpA!m!5sgid{58%JJN?TcLwFOrFUxX-{jWs#0Je5lx8#ID zi4p3T^&oVN2x0P3_38nt3kEhgzoE4n08Ff~NV%0R1lvE@gAs|t(mou}+@ecFe*ck>}T8Gv0))N(LBufL23AK2MC4!im z&(3h@&Qtk_#U!dmWD%tu;cmtYE)naponc`~ILSF-tqc=v6ID#v9L6Da-ysvLdVARthoyqt=%zJ ztH@)(4swLn9ySpfqp8&p+3}uZ$VsJEF_L;fyVVPhusc{>pl_8h&|+uMb(zOwjKU7D ziia@mpcy}G<^Qt$I3dTgg*mrkb6!~0;!?ys;Vxw?<@k4J*$w)-+o3^~X3^knng)#% zeAs5{5Kt4VGrr^kM@9%Cx3FWxTx-*hsF-%dg>)mTl4c}T(&M;}0g!W^G!ZPEB_9^A zz05UPOMoF+4Hg|An|*2~Sxc7RjsO-9%Wi)WERSMFH;FNB4f-%4sOHrZs+skaEVmwA zlU+}$f6jCkh>0 zJ40O#1F=qIAl8Y+m{OZT;_HMFZ{_&qL`($jR43IcX|DBJAz&VIJ=T*tm+cE~8fO)0 zfszUHc$L+~&K;wDXFP=g&|h+trK%s*7+{a=wJmah!u+Lk)PSuzQ)?kFrf{{^6L!5pvx8nIX zm<;OO)7AwidbR0;O%|^sV_PBj7idCtRgQ3tqyR;%{&0UnOyzt1Gal9g&6EDAw{VWA#9@tz28_sqrvJV}gO3EUiFeJb~%omu5zj#>HE0VdeNt%QJ= zb(7=a6>b+iN1dZDs}fm-QbViU3<)m-+)V4HpDm$~t$hw-kD?oYb*iCZ*M9u=Ut)W} z>oGmQoVFz#XP12^rtNasX^UAYOq|;n`Z3!BzNUPIO(N_ZupPxaxe{RBiO@nyh-Q0e z20(hPHiFVN6$?vQLx|7>SB65IKW<<^L7PL*>kwS=`Pk>OFzLgoHBN^LK%D>k_?isE zc(%laNd;OKXivx3D}#kd1)z=65+Tqj(Z2XQMxRkI4LV3l4hAfpVB4x!!~oKY*R77B zCyh3Poh&zJ$hDcR5^I>rI~gW~}bc=IZX5vV1m<(?*2 zvI1umK<5ZVx5qPdH@T?+n`YnjK#(1G;3xa10=^q%W8R&jZ?`X?c0ktwE&zI82wy^m zK6inPcgDDelo^6wNdm<1js+3?g>}nJFVkYL2~86^#!z~V2GK(VH7t2?N`h?05>Si6 zVxk>Eq{Gz;4w8A#h{KKq+-1yiAP`3z2~bTa0UeelsMp+Y+;#U`_j_|ICj-3jJG+TN zT!=F_I+1IXM%@cYzF0P1N#D95pr#kl;Orb%nJ{omBZOv@cO`~rL#>Yvw7~;7Aiz;6 zf~XX~`&URV(*;_acZN$cislU;68CQa(O81U8VobOgxj2hurG3zkI^XR1e*BHYk81d;wk{N_0QR29l7OF`U_#{yZ zG(s^1o}mw2-}k}!oa71Vs^#$*B`71F`=%a)c2zp}E&oB?|) zqGc#F;IvCShKQh^K)ySf1;B=dmhIXmXvHpfEn$I9ER5ZU@HSFH`wWOC4kT~2xO zht7YlnU=e*fT(1Z@ZE!4FnWG@Se3;C>|}V|NR9v>o@cPL@tX{g_UrGfeS~GZ;n6T6 z*e?*jw_a@?4hY!u*N5i`4rcc*f`pyJI!DnHTqFp8wXn*1ZolkkKgH~bg`Rt$5!`SC z4HtNN@(R%3JqPFdu-m{hnz`;2km5xh$GLoOh{9q2N!f4k=k<=jE%r$-n>Wz{KRmBYKkA|2q)`pEX09tDMf-vlq!Z8KxLuM(uY3!Y=W zvyWtX|J@%*>XPt;r$yk^j;**q9Im5x=|R24=*qng_oe{RlEeYAi-`3mU1H!LVyd{% z3&D+pa~YT|Iw92T=@S{OY~z`6wrtWjIMiy`wqK{m1O z{Cun)#S%Pc9qf%Dlls?Ex6e#qevV}%j#)X>NDR$8lxT1_ai;l#Cy^?tnoDkxaApms z=txID2o?-jq?Q=T0tRbT`n*Dl9rZncy&IPP0n+Vx2CACHN1z!lR|X!&I)F231kbR4 z@sLbdvU>BF?hU*I%3jrD%FltlJTbvE+43}yT9K<2u{~_>;J3jQi{~)ds(bM0)6G$g zb#!zChdiE!dycU>x}&Q*cvW*!2*JHj0v@H{aSFyn+Gt92Fy%ybQV?rjOJzcxSZxH` zv1kIuS`siOB;ao$AqCUOrp8D%wI*O1nRbh?BrsKg4J_OnaBPra1N*)!be!o-wyGZ4 zD{&nF$1J$wnWJX&4t8nKQM2!=2+ut@8{{PDKkiJ1U2qfL*&@<{&j;Jm0lpf zuz^l3#QZ`LKo5bQ-7nVe;7g{8i!DGqgdR2r#sO?OvAhtET0XMt78$lY$q-JSD5^L{ z#~gvR25Zx=qnFtBm>S0l%z`dQ`GX&zL^-{(Tg4i`B^fK#c zoz~#4`TN7cqObiw`H3&ei_4f=K*f$DC~Vm-Yf!O2xk|&`YdK`~Ng$sU)JYX}T0yl= zXi`x{pVp!)#jQlFt&|E^`CA1QYUH??R4rtzwE9@A&uTrieq-sv_ffDS;ON+PQ%MO< z6XT}{m`cpa(Qg+)`sDL*3ShGniEJ8iWPnEI>Mpht0b_FzFs3hH97+X@jZVNgj|dn? z69MBuBA}T|Sb%D&P>@P%db(0|h5`xJKj%n2d0c?EutdcL2+* z2qxqbz6=}*1DH6iQt7fp=?&+OD5pyqh{aZkqYO@{%xN3Ws(1wAK(10}esxT`E3Fht z%ZizbZo%NyvqK%7obzkQ9q=n4C-oh?UV!Z}EUIv90+(2HzT{AD-#o;U8i!uulNB^V z)V+xYT0v;Eyn4Db#No2jEJ)aUazac{W|uAOKQ!zq)E0=cNYdrH+&Sopu=wLaT4TRG zU_Qpw_t^nez`9mY+ zsJH`Av=b@&2-Jk0OGAnxWO|kJFKkad@(jM8W)XA}bo1d0>!9|SPPGuz!8Ci15Wg!{ z)e#{I7JBQ2qXXHOxoCcI#i24oak$J-95OQ$hfRm#S(V>{I+T>aZ_k{@2-@7JUeTaF zDdq6oum}S^jJw7WqE2!Iw$s{v0!x-0cI^oRH}4rDmyt)wV{oURh{%$ld-js2RCH42 z^yE22=^wp)3006ukDv|$&sF@4H^DQEa)TSQt6ZD#I9r-me|1|_}* z{Wxu}kG<%vu>!yI)%zKoDLiHn`!95cFR#YH%*j06!jPtBras?g&`YCGs z_{h804haoxl`|kC??JD_yu7`7kr5LVu8?_Mf@#JCEK5oI}dYKAKcRA#2<@5c}j z!`evl7f{?3Z9n~_1~;lh4(gEA#&pfQ9h@&>A{ZiTa5afg=UKy9LDk4ZKdG|SNE16| zoK7)!WwF^EUiZb@TJLS)26M4{c!zXPhpR{*#QnDrhAnak!(PV&ET^&~6oWA)%NOxJ z6nRmIfQ+1lT3Hm2`^ECL_%3dD#LfawsFicL&*dN7H|LK!SXXv{{AH%0r~CD~jMPE_fu-HRGb67cM7%rjGUN{X;sDiV!bA{=oU zRJ$1oax%vQ6MAq(8WATs;*SJje8n@y;&N7FahTp zhRh_k9W37qa(XzprppHWvZ^%%;(SioavWbQcaQJIf`2R)w}uT*h=T06d*X;7ujaW} zk>F!S%o$EKJ1u&4m4i?{Xkr*E9eP2n&gqe3c9#<`-D*!>b$CwRa`=mO>- z{Z1)iJp}6w`e-Kb%=Uit>2pg6>fjx>9zasTf^K660s~YD!`uiRgsN*wbrBrR&82@` zYu0erV|HCmaQZL2BX!}=2Ti6t4QG5Tw6Q)Nq&Vf9(R@kMbTOUtf5ejvVPE7J6m<7m z0@>Ye39w6x>ALvzDgoJa+Zd4)+JvM-ESM9(0IP%rLp2iVGx*8Cs@{@){;L#RI}?YR zxMC8ec_g2S2>GI>vxe1U9j|;eHusBG7yC%5g#7xkH#QML!(M{PI}n3@IE09?QuNnAyG<*nVsN< zc%cW%Y1mN-$dLjUcnk)1XE{pEJ6e~$9-2D^^VVkdr4gxj9H8s4r-m zT&MsC(;WkRg^&gB5wW|&;*iZmP;|HJZ;3~QstOW3hehbbVQGYWi<$s2^0tj6PYA_C z^VU+p@X92K$4TJ0(B1c8@m%iI89hrV>8peI-Qbf6nL1F>v|d# zyzQ5;sK^l4Iie`>wkd23a6z6o%ZeuiinYwi^alH0EW6H`44xG$%Kfrjq!7j3R+JD`4a1D;X5P9SS$HjUGD-p2ne)@Q20$nFip)Z&tf6v$tIZq2)XN9nJ zF4MLkt3wKSO`uyV8woYA#tnRUskndk1bSA8_{}|GN29+rT-d_^;nGxDu(Vh%_7963 zAK6(|@Cfs|g5_wj`*HY3O?C>oOIeKu8ZXZeU~uuyM8Jju};P8 zv-?{LMqIJJJYdL*?Cy~S@fT5#oxl|Vo+`v6j}J6>(iFRRnh!=QOMb2jCe+SmCzYoR zY?hwF-Nfe6#k2%pB8xL@W#OGEI_HW@<8onXO>dU|f~E7fa39?*@OGv1wjkcY=xkw) zNj~~kfNMkRYGLi|eK6f6ju!Au!cH<4(w4#HUHoon9k0~~$5L#7G!oRx{Jj2~Bcz|) zQ@uc}TNM=>KXV|xN7{kM`v@L((R>%*ZFcD6Dhl31*xPxvG$8y}D!>S`!@q2PPVoQh z3pG8(Zug1};Idc}=UMc@4K3$W=rQoc^%~oWgF+fAeM-MrDI-m>*k#h;?D65p`T7A4 zs?mZ_cC;xCuo8$td-lDtPJpkOI+`oR>}9il&@yzOv|*owQj~#Eolnn?4y8`Vil-OA z)NR}+!<;UUoRckhs>8f2Mod_{Nf@UdIQ*m4;i&9z<3ON0#5FNK2Zy_=f}j>nRs|T~ zaYKhXLRfh6x(5}5G<_Xi(tsFOF>vYw7}`V}*}#m|86U{G3P4&Fsdn7}eB1(>H%B6L zH<`fCeu8NupD6}==nT^bhKVvFpWF~g6z+Vi0h)E1RF-sn?75g1rUh7*I9}%pTTmW0 zpd{W7NIV847}gt>t8RfJMooCSiNyxiAG4^j6K>o%ygQ0<+%Q{AxV?VH$NGcxRw>?J zE+=AoX<&b%5;^4EH^ZUNzXb#{l?oxoiQ$W5IDPfPqyT)PF2Oi~GC0`xYB74a5o0G) z#N&@Z{aJAPLbF4%$n2@Cfdgia(79J+7M=a#hYqgA+Wjv7?z7wBj|~63wY7bNW#aZ# z)N7E`edovy1I0&n%qkUkv??(wsIr2oMhh&5$c=J%=?4jUkAPd*plo*ZWLR{eJ>76P z;_5<|7RQAv;O;xhw)>76D_~A)O3eyn!Nu?B@^4qAvNaS`_g!8T<+Q;;jIrIgw))De z{hQr8ad=Jp<$+q_f`5D_il_U1VMufgNE$D4@!324s>3-v=e>SGOx*wPa{qaN^D-%!Z0wN1&5ox9PIzDnf&!+(lI9`srTIwFA_HxNT6d<%=As{(Q;Q3_ zSDxL>Lbf+N!@CX7Ta zC)eWPhts<+|JKbfGp72^w^#ZiEQ>esQ~3Di=CRH0>ode+&miB#@=C2)gb3R&c277V z@l9{I*oB~5{4?8HEI-A{xAlOC^#DbV@J{s#o)u*c6=Ao&!O~(S^{Z7VogYl-v@DM~ zv%zZeZ|)_E-OKAUkpFDjEcQRq0LB1+LLP`|&}B7x|zYHYEu`GJEub$EBU(J%els>JkSziVc8)`|x_8)e181fl2p@<1 zV3QUM+j;r28BS_B!+AL-DhCM;dYf8Woe&*1qU7$oJV1mGzl3)@nDT!`9UcC0!7a3P znjElO>h16YO`j{ClAMSvHHY=AtREhHnd$=A-#)%TBpocu``R?^cbtyYJ}?S9Y0%v< z4sfByv29(7i#fP$9Ij%1vE#?3YKdRvmE2a*RD52yaT^#ammkZ)%Ma-3c+_zyJa*y( zgAhU-RfNNAcX>a5S|6~_gpLhY5M1o&$asm?`W5#m_WBdz=>Z8$e5l3b(FKDrLHPsg zIasLhi7BZ0&!~-`UWoO@4IW?Mxw~=~H!$`-@^y8&T`!>*aA{$Dl3I|GaGQY#;?Zut zuE}nZQYjWehS*l5rSyv>A|f&u27bPcJnplD>xXGj*uT3Lgdwnv-6m%C>%7*a7kKjQuC5C6iY<$GbY>*-~DBb;^8|^q04vP zW%(|*zYn}j7zN{Qgn@WL!ho6Xh^sq{ySWCb`(9BhVKASro?pHvn>R+^J$$dFT-RcK zO2ZXzmxw|Ol9zwWY3~k0=jv*``hgW2sQd49GKs>n_Z*D4G;)vr^5m(c0>ROkN^ZEn za<|4=n>dskLN_>Kt(ItZbO8?Yfp;8y>-BjA7w!v1?B$jr&e;u{X1fpl$%z6@hnGN%HWwhsjkoT4ZH`?(F51!ZfAgx2n2S_m@lrdUdC;xN(`u#GZ~pDMT)H^g*`wT z4>erDR3uemRU)B)nHZ-oU~}`z47PAx_orB|bx5&3_wn!__4N8YTK(VvgY^#VN?23y zMvVSDSYxruELe8QlSODQEyh(*L}^(qoJrxgP7}(bXzfH1l?WV3*){3f4AUk`VGv>C zz*k;KxW)?hl^|!bKDEcItr9kanxC7*$dXD^#2PWWW9)BM2 z{9r+*`Afkw8mFX2vwJPxbeGhdx{$u(Mx@+*E1|&jMuHg(Fi}%An#RC5) zXj)U3Q?icb(l?;yFS_|Eq`^UxxFrqS z8kjPvaSXsSyX#T1PaEfnFVH8T;kyvY=}rikY%xxZY$JT&iiz4Yl}FqV#TJ2ByRX1X z#4YxVAJW{Pw9!iw=O091BVsdjysqTrla&i~n|OXf92g^p;t=pCr>DTl&oQON6n%*+ z+X!%Rj0-DLGy`lSfWco+lg*t2bZ6m!Ki>|o>&Nv{T_axZ(9c)$m2h@59>V_>ee`ws z{3FgPv4Dgr2;8)^i{077db)z+1ce(BEVC`?=t~_>^-}MPYkUVT);qLy1fF+rbJ(3fKUx_ETx*A(pU2Ap#nq z0^fy!bhfJq9%-7Q|9x#Ky1 z;lk=kKy4bBO7Z?8)@jnUf10qvv!6ROgO9IU-GS~F)GTqXTJB{_s)$&(@a-`Wqu)Ec z8t!W{BCj%J_-H9FJS6abFxmqi-#~&?dK6gs@xvB7|2tgaAQgLB{C#se5jINHmDD6# zoXI0I4NM}^POcc!c=o*IyD(IP>03Ce^xEu(d{CW>962=KveP3WRayJ7xY(h&W65=H zIHC927f&h+!wpZcyW6J_gW4nmm&FqxIg>V6tOipyw`MdfoTc$CmsN^iN*ZQ&6lF17 zYg-t~A+DV;i~=@~&;B=>aI zX6JJ2;Iuf|gt^5&$ZN8Aex0kfOu_9es>@OTL8Z*gdyexM-DJGSF9t|eVPfRx9KmL1 z#O1JSiAyvuHZis!%w#5lqyiKczDdGprdSr>6-X{*0rVzp@vs_@7Y2~ixKDtFW3y8w zra?*#8<;x|OzwE&Ts#Ck99qu>|G-oLKkL^==Q{&WN1(ZIE_ygP^{|P?8yG=`4VPSd z(n3TQMgkSHAFI_)gIt#IKee#@z}GMP&4cu4E?toS_eWMthQ=CV{rEFOI%APEGSsvp z(!yOkk5pX7>-e%}=&p>#}7rv@sQicP~JN1Mo962uGQ$Kkr zpTmJq))eqPi06)xmVrP+I~IhVnv3Uz@EX%7cT& zav>`d4{(9v!|2Z|%!$}s&>9?^0df7bhI!O-5xjIS7cES>Pp^1Q7|MF!;nn5wZR0>D z#y5TE+~nq&o#Y5SIL9lAraWkbBC&k<8|z(tQ)IUkU3-pKmBaaB^Z5F*4O=*Qa9XA} zoQJnni$!I3=Vd7hD~8c!^k@@k3^K2LjP>z{oS1|-=pdWP`e3zE-Z_24M~OzWQ$|i!#aT1A%xT12hbIsEMUI`g#4EG&@c!I zholU1iCSogmLM37uvTqh3yo*dXc@v8ySM&I=c6J6IIc#7h?WBjIAz4pAh;!Vx!KY{-~+WQh#tGgN8fEt4U+0i2#{o2C#0WW!l%E%nuqYhS1i| zU!bYse1UdR`T$-CQw&eA1Mx*Be4Mif9F#;MTyUHZyjb<}sO3PTAxnX3F0#4dniywd z1k)n+ozCR-WiUajdVT5OId`SYuS_IFv{wJDVU`_(_~r!2fFQn0s*ExSRWku$l~4gx zs!oAkgvD7^6-|mnA03rm@0dW}i=W%#Cq6jIHj#JLU5FyWp0*=#bH0wx#(JcgSvWZ( z5TRHvl(65?$B8$6igucg*_(T2wYo$Z2~k=P_&;`OSPbYvK;e(EF&z2|4US#Vnkqlc9IEW1RznIy)k;_>Dk?Ds`3cy9OWQaQMSp))l;8@<&eQ-at=? zq!wxhiR__(7!DtCOoD?KltGV8)M9YU*C!Jm$zhD*YA6WM3UeTaW-Fe8R3|3W=ydVC zLs{epd^trjIpo)#zswi=uh2kXA?-pqRp!vi4NS}n8e@jQV3Tqbss}l}e?8D{YI3#=`cUj0@)V7AypVT{ydD+u40a17wzVSPXO?WA*Z z3g2Px$DdA45&kW5iHlv@Y2%h|cR0l>Gw{qgl_0N8xeH&UxEor5B$u%~Avjd_2)Qsg z4$O?4M6l9uuBvAJyrFa>aRO=#hv5N*M{cg^2rJ?9$b?h;wnj{M-1B1PQp1&pbUaeO zV9Yww1&YRro}n`dNKJr%Ecz1kUU@OB7*9TwGC&n zykg84>bW{r5AN^5zq-B17Wk^f=*7gb z`o?7`5Al1Ar-KemH%BvGt#BEHM}gZK!VG#x_}+-ku8s8;>@2bHr)-7f8}ghz6aXfp zxP@w>iSiBptR$B6+v;-XJ)%lp>E$>`@%-xWm2`T5<*#PTd)mpp(X=0}+iC53xZFU4sowbO4PFS%B#zHbPosY)^qf zm-Id}Q1e3HEt?;ozHg%9v)Tjj=>?Unhp-|*<%Xs_kI8r>Y%u8bRO%@DKqbh#k)AXe zocSQW8}`d^7&u4g7Pko|u2Qu2&;_M2@?wi`eHh7Eu{WrRn>l824D|`DbPf(W5JLY# z1~YiQ~wAxr5l*YR55TSe4+%3&-O@C9WKXpaRT%=p-17 zia`Hy>lK`@LWcq`&1{Vk&4>{S=_b?fI?+~W+6jY8J;4Q0*a8@9u`{PY=@9kQZA zOxA~VU>t$T27p;de7`<)aXqNS7|D?%!V5O5u=SJM@k(Sv(8vY>hGZc|h6G`y`=N6! zS2lxekB-7UMkC`xq>HB%!DuPQr|HLPzc^dqP{p6HNa{I*<{-xgaZ>9><0-Xo)SW6b z=W;@Gv`S5vLM~bvLO4#i7&n3rQVJh++XP7iq+rB&(KN*I>8pD)Y<(3Ro(Vp3+7+5Vb zlsem0zRU5PD@nQ&b!E;Xs36RHwL8>WJO$MfLZ+N@0j)yqpfo=Y>+<0sjf3irTS7#W zQwD9mhQOE!r;Ci|g87&hT0JjPkjY^rf(rx9HLTjHkPsmi6Q3;fhMw zem4(SQ;GTVGECVGDixgZXf>XRgL^AUpAOs~| za(KbE;!))GVaJRoSMW;Th!caJ-U+|QN(2vR42(2!N8h{Cl(hjSt1 z#HGSax}X*^Zmo)?7=bUv3LI>P!dM2>m|iQU*%3Q&&5s0^%uqlgA0F$25a}gQybrso zS1lVySF!B_gHyaoEi2U(prVCSFD_^g+hWPT(yy_S%9M3ds0uczm8isXrFRHZ9}c6@ z(BxEem1_FdPrL!ayB|N;QyRD^w1K43olebZgg0MzGV`QZ3P~|ZTxi3wZK4;6m)(|m zalF8rn1HhKP?4t}7kA(AVFkdKB*dT9#;uTD`N^M@hX|V!S#^3{Xv|28j#*0aR#2jq z)Y3#$6cBMXGCm%b{+aqxg;YsVSe2$iodYOTlnl$LUhfhr29-0>QAU7CL@2OU6qpsI zri+*|YJ98fr28QxVNr}}VU479Ae&9qzpkI)fRLxOV6PBk&6pS}2;I)$5IIFKW{MGn zXsW0!)x?!6LxQoQ{v~4tsTo1ff^ip}BQEdZ;Xpr-|CNsC$dnP8DG-WqLo=XC=Dj(X z^*Grbd8~`oWbqVgVU!vADyQ;=>ys8Fh`%}TB{bw#td=TxtrH`KNhVQo>8*;&F*++H z@o?@grxo$LWf{!LqW!HRnR*o~QWKT3m0qR7{JwN&;}FL-kwn&EtBS^_5#~(YE;=Le z_l0}TINzoo=O=aqxD6y1DVgOOExi<_2Coeu)yx}+(F~~E-b9>hDlrBxwy?OMc|X5k zLS_5}p%SXf{tUx-87eA)?s(cZ@AvRpaq)ig`Q%?GCnvx2PK7&EbN=vV@x4n!69xJi z_Hi)DjWM7-ui(VlxDJ0aq@#~iofKUd!X+IK z^ok!}v9a7?;f_5W)_VlS7gPm-%SLc45ZS!NNQeg`4(DpZa782zry(3LP3&+pcu%uO zV1|otD;JO84CfdtURD$$E>3aE$K3b~mj-aX@pY4;uB#~63@@C?&7r_SA2deljoSuI zIPv4FoL`?GtvBBQ(4FsN?$7tpIP~@5)T6IUUhbYdPrizBx7QQgHQs9CvPWF(&WZqX z#fuHh%oG@Ab~I5->c!)1#dsW74me}LvuyPK$gy_XpU|(W`m2N;IxMSe84#f++Mo#y z`%L5IkQSZZVWb3&D@Y4FSCE1_$MfPa@`U$9jV&*7+%y9+txq>;VU`{KT-zu2jE0{kj zn159;I4`Yax|-{wYPOH6`97*<{K(|o`wTVWJ<5ppC?npZjChZ#5pQb7bD65~C{s5c zWh%#`Z0!VGP5y2D1iqRQ*cu9ar|hnJGv$6IL#XyLj&yQ?6OV7EcS}IQAgQbsio0fO zsZ4+)p5VL#+B0iEh zckT@X%a65pQK=*5UkLnPN*Y}^Hw&{qotwGJ z=0hg@{N<*EJ1N!dmBJIueO1tS?{Q zQ}Cx#VVF4?);3?h&9|Y7b)+aOZbNOxEH=-UrP*d`@wTB^e9}AHIqeW*;(UNMKp(W={(9-heXK7i}v!qJ1v&6i~CA5Y@ho)Aeq6lBLmKN0>XeG5A zRvpsFV=P7*dF-?xDJANfG@BVIXnMTx3Oy{T>Lfc&Swm#K&CCu|7gyAQpkauvsH{Ss z>xrTnZH!8lX(Q3B5$k2gOxM#*wi6Ye&2mOa)69sm3Xxug)|{H57%ivGMS}K@b+uv= z5=yKJ)LNQX+}03NQc&R9JQ!q}14D?)VNJu3(iBiT(vU<$ZBxkzA2bgeD{pmQzI+%l zHY=mMxAGD+)&5$X{NTVwsnYT(p~{go&??!q3lP-+J4@0db4ea=M5s3L%a;dulH4v{ zd6!j7`oVF&X$7ZvJ#y7ApHh-)NJ+L1Qc79@DJ>~|O5z!_;ZD|nA%^Gf%90%8+XON~KJsN`yB^L+c7dCb z%(5<{nB{CnQJaj~%!lP5=W4yMgrTB8pMCkF%_?qaGO{$SMyhLGjdX2djpTeKouzFT z`WY$NHRQCUUURFB6{EO7>m#v9x>Z(djzHklMwv8&e@};XR`PZ&; zRKIwYr}EXSER`=`!y-19Vw&UHbd|^1>?mEWe(d-4nEa!9e6Sfx1(;9dIZe%al>Hb1 zSHqWWGy|(O(@N9NE5}F4KcL5FU(KT{pUM;R@8j|6#xu=}I`vF(nm;kpN(q|58iM4o z2Jf<1L(x1Mf;0NEpEscL?;8lVs|KX)paGc-C=pxBYsaO)Y8p+znbr_+S#t>Z8l^*^ z~~i$~W>6otGma))gaRNK28Dl0u{;XZRg*nb@>vSs6pn* z8d9FHA*E@sd+@*BlCcTplsvVZ?rxiCE#^eIq*G6_*Haoec)6!aYRYW&P}1fGmJfO@ zrcR*Tc&a0OoXIa=!`O?p~ZQ64S#o2v5t9io&{mu`KfQ2duKS*aCS zQz8`8-C2t1)wdgutt+XgWhM3KtfWNe`Hl*-IT{)ezS5T4mUE~JvuFAr1*Pv zIo{s0tJ0#MR7ab(lY|LMS>9b6$7Q}RUyuvE*JvUE$Gd}y30DoRFoR4)8hpI3sB+x( zM=K?u5*e5&V3MGocoOaepXED^|f&iG=cTmmps%jU>AV zhfha5)T;5AlEq3Wm1A;DJHcmK7BMBI4qZYutEU(n6ZPnk(SJ-RTl6+#J&tG&6kl?K+*x<|=E1`RF4QepfQFMmJ zWd!<+&afOd#C^2EJ5SOcgWY(R5HNKKIdqngXU-D>-X(-usEk+6EqFaCHKVb^T-AMe zy@cRWyq;{_jMpl{(CXA3`7fB%MR`3F@AU8;Q8urdS~9N8>ltKd_wLQ>SrV7$ zV8JPzdujl-3Vdsz28X8ys@U)nL4_1t_g5%x-c8?P`SL}c4#8tAwRrvhIcZk&SWC_$ z#>(#Tmh?TDFJIz=GC9ROFcV4s&6F=+V6}leTt~3)^)IdDwBrwGpUvw#VzGTQ0`DGsx`Z z4-LA+DqOhJ5nmsyGBK@Ri&Cy!lz$!(*|BdkB9WAWMLG+^YE22@-9|$}QVqhCQX@{i8-V~Ai zld_y}!vQ>uGgHbJ^aZGm%-reEes zufDi@JB^~U`!*l){ZAEExpDKM$p5Ll$(@@faoMGtCbsm}O#_!+yYY+P2BzfNO#{!v z54lt4&)FNf-20ioI78S;09d5$Wp=~?aSJO3~L;WAv-kQ_u zzv6A0rM^_xB&j=`{r3$6Wn)t1VM+I(P4Rh;{3H4R&LGYf*sM0x`=Pzqb)Vg{yNygY zzhKxe#U%&aS~iIoE|$M22{?XL7_j`RJZ}eV9M;co&v?0L*qEE$>+J1b-Em(8 z^E8Y@O8(_IRAH+fhm`B%aY%VS7>AUhvG*#ux$7#ux!)@N7vqp)Y95D_;iGX#IX)VP z0>`fk^Wiw8QhqfKDVG^v8hT@euW`hPoMCkNrOd$j3#oB{`A}qJ`(Vt_eExbIs_^|% z=EviZtDg_XA;VvPX=;N#(A<|`ak^8Z{lKkv>x^3%vWE?!=%##6C)pDm}M0;`z>vN@B1Sf5Fd zn=={WRx=q$lF5hF_w{o1{PM6uEj~Qk++?KLZngB9y1R^~S9zPL`Ymgtz*J(tC~|Q< zeWp1@-`%}!w|La=;qKF?$|fRa(nP5Y3qq?73qXG~EJ&<|9wM~bVIfkg z!$PE0s!>RlVL`CfVL{N1!-A&LFf1ssW>`>}9}WwarD0eQmddc85i7%jpc{q-q16ow zK81W(5PaRRAcWdsK`8aZf{<#5g+OU)>{^9x^3U35HY|uNKaSK53&K!4EO<(FSP)9> zu;7xb8y1A*JAX1PB$Q-W5K7aqV2Q4#plgJt&7Cx3y?_H`d=_zeUPB7o;~JW*YN-v( z<@v#)h9q%h4zD4~bGvl{eU;SFu2$QJmwjJNiL-*WF=2bh6B$Xj-Kjv-R#R;#slGOp zR#O{FsI3hXr&=3Itf>tp)YpbjtgbecR$CiNinTE*N8=fE_V=oRk%?gA&x_v$2dS)tj^K+coqroKG+OAb19Zl>`Eac#Wre1 zsVXZMBf3i8lq|cdPq7luV~CnxZK^FlI45|jd+j~lSQ;(88;O21kriUH#*^gb_CdR6 zo{6A}h_O)NHB~FvylMqmTeU)|uUeH9y1y%*U@KKC*t)6}LS5Agp<1?2RS=9#9=-pytMtBt8QgFP~g+(Lxllnz0(OJps0b4XZzs0%Oiq>z4;n-=B zE@(A^t09OjTn#=LkLnz)USu{qJSq}K^_`vh@uNkB%Ve&U!bM35GgvX zl9VP1u)?HHSeJCvLr*p#X^RYbwaAbgAjJ{TXPnY*?yUfWZr~1i_d;q#5LppGWQacL z4$A4Yn10ptH47g# zec|}9=?h0g(-&G}(-&&isH;uCj;q@Ag{!&g3%RlBYZ9u(t!>-F(A@Ne+|cxe_CeDZ zdUMkk@-Ldc@H91j5F4Am(i)n+5#fp>lsHr z#%JWbm1pGG#500z-x;Z{aevGrEjwdLnsr9AZ8{@mV|hkRT60E=O*tc^?KmSQjX0xK zTX4o;ns20_h1tLx%ircPbtC<2!QZTvIuq4Pkk?eqLcgE}N4q?d823 z4Z3@2)!IegK4!Qd?^fHhK~vhx{Yxcn@1HntAReDL5RZSDEcUXCvaRg-)oVpl>^b%) z?tmJlN@=E1qy(@1O|hew@%`V}BS`(FBn&;;T3G&+G%q^V zAQAVDk17xo?fUfyP%Bl^W z!Ukiyg9s1LVMl$qJcv1Z4W)g!cXMDvR4~AhlB#IcskHIR7j97n(R{7e(R`;rY7*=jj++=@ znZ@I_NXD~^U9FD$=jB?PaT8Va9VV`iSBVw~E=G37i!-d$76e+F`>Rtac`ZdZ?X@I- z23RLh9>RiUKphRW;Eb2*sO^{M-5$>eiYZDR1M}MFWt)2GH$1q6sRN7&XklI_;r7=o z?adx<5yBRsEmmzP^`OnMMIBm8=HjravT$PcxZbS9xkznf$I#qJec#IqhO^wX zEJtkZCv}39Qrp^gk~` zd_dOD@BxGG4K45uhjbEK%h z`1x@5_3z6PH!AmE@4YaK3#nVA%WaBs&xxx{Uph#AHDWE=O15|>Tt`bx@XzTQpO|bY zASxdK0$b1)M1lEmKwb<2hu}dlvJ%Z|y5So-?w)D_%Kjiwaa+|=abeYfdPmvwc3?9* znf1E3P>$!5+m|yq5Sw(T=s?y&pn=6LZ0h6trA<9mqGI#H-CBcm6;S2D6}!nL_Q3ZO zEZ6(EuLcdmgRBE%Qh^6&OJs8z4y4o{{RuB=dVzwAL;Wxrp}*yZ9h-#-m$uBHjYfg~ zt|@(zPD;E1!d>}}_u1VAyNn+N#$_OK%M4L#uh!gT(+Kf0X3SwL~e zpU=m4g~ODSK7-t@GdLQPUYvKXC&du9PxI~&S2^b0GJ&oW2=8I1tSNk*(TnR*XEGhP zi_YLoe&_umo)jkrj)!jH&m7Oq3kXJC^pXr#0=Cl0;c-cCc?)FQ5Fo@=Jgfw(Ei)klq)%l824#E`G>g zn}aL^RY3(`UW>W6&^5mel898eZn>D-!ln$!RLYP`$mvCYc83@4;q+mAIc;}~yL~Y% zFQ7CCD17=9fv=w;&}u^b=^W$6bcRRa5z;Y>p?-Tj;x8Kte>?pWb16gmy&0m81-|`! zkiU4Jy*ubmOFl9W5WfF#*NLHFcQz}}RLxX$`n_IvinranB%Q&H?8Ib3VV?oGq?+|L zFKB=LQG0ONk!X{_Hby@}%H=hmrvG1fV6KVA)o=HQlQD~2CwAB$^@o>3Ce?*UhE4-ldGkMT z{rG;^(W)Ic(-!-$n>C!Z1=Mv67C!=;4}t1%=$G^BlD=;5r!}6R^Ot@CE+;-T==Ow(*v|NR3GH=zlTS7z!OK~vOVu#VOa4P{(2c62iP$NwoyqUS_0i! zdcN=puF=2H!L1ymTrmHf9i%wO>mA1y3$xK%xOX`ipe`_A6)c20Kq8H_Rc zY497W6XDswAu->LI>klr4#rgo;oBgL5dp50y9{!m^5JqYmu3a@v^&A-hzw|cqw!UL zI=?Ij7v0-7;?0Vyi@QPV63u7C;4}u?B}S(Kk;90*(clr$E_}>zi|rD>P@?mvjj4Ic zz_g2XnMj_U_t8U0!RK*mLxhDE0pKFJD335BmV&HTat3WBxgOzR8R8LldSY47d^>9Ptxv5vb`fIU=LnzM21E`()dRw#ryA)mEMs` zIZ`o4D(6TA9jT;am4uxKC1J-QKPu_iR}D^lq?NmY6)fZK5N)D;*TwEnibO>3&$~bS z_?ndAU_4d?#HGQ^G0%=KEM_piEsOVmNnTyFDN&Fz2)$<-LIcy0rY1b_y=v+Mt?Bq0 zO)7L!4`X!2%q~^rQPXY@qwzV@^eBwY(xL*4uH8N_-b=}u$M(vr@f7}rXEv(u9#`YR z12nTC~h+CUgbESH^;#n++i#kl$WFSIaU{a`7j<7 z`LRPfH2RNx`3Oo2;Aap#16Xd&iuaZbaD?0A;ZW*;046C=-3P})qCb{;B`HXf)RNbLjfjbD8luuJ)edakA1gJ6_U~UT*fAbF+QUw zc&Y92L~^YC9WJOD?sQw1XTpsSIbZ;NvdiWFsME)pG%-dzW>aE(R_-*4 zNcLg05^$i9+mr);S`sJ?OVDn4byOHiAJ(6Bs#= zUgzbZ1^32ieAEvy*^pc*7;KL*BF(3lZEV4?Lp~HwKeiA3Ei??T?<*#f@klxu4!OOa&t~ZU*fija z&ilQ7Teffo+-T_WF)k-I@l2Wsz;oG#{UB6q;}Ir2v_pe~KMRXyLz<_Y4wW(boMK;% z7DkB{gI1QJF!@@<aSe>^y-;*kZ(-poAUlZLMQB8H zEeWW)X~rJwwjtW=&}J>twRJXSMTd{Ym`-vM!!v{!9B29?>gK$RX_p!t56#Qj1@_n; z9B_S%O{9m}U#YxsiD1pj2p;6Z7Y(J=AN1!?VR7^3Gdh`sUS>;#oy4GQ#{y{?6w95F zi++wRFVrX=>H>3ZEGYn&R#Y-d53*yIVR`hQTMLlJ5)LHPg3Pb z(~wn`DF{|I9a{w4&#)jh1s0}W0o(f6(q|^1xNDzxF%TOW9a!{X^tgi-#CK)49YKm`XIRA; zW>obZ<|e!XR71ppG6y?OUW0zxN@9afq)B7dCBIEX&~7wL* zVSX%jH2WOr&w23*+uI`0CO$;QQ34GTC;)~Fsru-$Y`UJf(}`TcM4f8 zIT1O}*ei&t$SziPX)ItWl7P!)0R?G(M`!X_gBna~kaf88ivje6-K&BD*`{3#dQl}z z0Q$7qyg!FN#AkNsceE08|W>v$C4j_|y#a zM>wUX4AqBnFNhGWl`AAanC4N!N{$7=o*WA7GaQ}_UKS7V6?gx#*gwGE{L9;GS?qos z{<(mryM~B8RV6|p`y#jjOXU<#-!{ek<#M}TqH%QJiyv3({VV;_{eUAS?MRy)U~zO; z;Ett7qK2~d&81}2S@n{Dwu zu5C4f+9)IJ8g4|K4TlpRq6g=KB4$#*OMI5j&qu9Ur0HL6!tQ= zz7T8OXiRi3@ z!T4Ivkg&^wGH1?A7i|oXuQ25}e0zP_Q6X{o#{n)(&xyqjwjOk!NZcZg17(60kwV?~ zvUtO#;l)mDHFn=$)(<&HCIFw4*H=Q09{XGPhr??F277G*3HP^n&CF-KyM2R?M=8;v zgnDJoVZX3gm@60_3tX!SNb%%_&3@3KNPt$aI;VIX>I5-E zz)8*J(0!np$FWU9xj60PGz%JQ$Eh1)D4`}!(We63=H4}H$19DZNyOP;+$wQ&J{|_y z-5XeJNJEdP(BPa*=E@yYzN2ZPCHahD)vcMsDy8R?Tv$cpyybe^Qe z@eSrbY-H|}Xv;~czBMFB`NRoETPjcxTBU0HNFvBLPB3U1Yy>Gz8%ByNX~TN;hM7rXDW7;NH`NhlV?NJy*05O5lA%Wfzz9B81hY|!Vnq2-y;R_P$_xHh}T zEwq>XF2(Y`y}`^uzpTr9AT{{Z$9szf?UfEM`{L<--&!ocecg*YUXF~z)%H!?c@k)E z@Sci55^eTOi>#33!~&xP8YEDXRhStC88ErBfR#awuBFAWjZ@etNeo**Wk?b>U0zUW z;+7_=sIWa#%&f`kwTWr78JS}$hSj7|^bhB6+ppzrr(LRm=fTDOW|j1(!`aiz;ng`i z;l^zP2eaSlf|USv2HeW=FLw<9Us+h-(nyn0Y^n4%$_AySR}B6Uk@f$<|Gvg zFp(;2ryyV=650bXUXWqn48VD7%Ehjp+!TUwc32XoMT%l^oN~!5B2K%7WT0f8VihT1 zdw?F~!BA$9Tv6IE4569N|Kse;x7tdQKd(obCzxXvSGoM3Hb8BG)RHiEoj!-dYBa{c z2q;|r^z->fvzW8g))}h^X3v65t)))T6kU+h0-_60xB0ql?|mKn2S@i$dKkS zCepXQ2r_e)E^fO~rqQo2iwXrnw}RSp>euEzexsbXch={yYY_Cl<1J)&K9NAgc%eh& zPdqs7w>to1)AzKr$EzR(S4LxdvR8P7Au<&&g5kIUZQj>dB;cYriS1D+J!24o`}gU1 z@fCSjxO+$_6XQW|k`QeR%X?Pi!6$r~3$lx;DcVY|J0c94M!w>UPKf^%R0@m8JR=a; z6uKwGh)sulM+r#NFmP*MYne(5HK*YEI!eR}#7oq!)JSAIKg0yJzeUXf^zdjh9VIjf zTH#MTwg7;JJdBkXl7#u zFV`vT?~e^L5axK?U!qH%kV9iLEu4h2=KqYWY&AEOSe`BsfsYnw z#Yoq*LM=IF8D_}NjN3_W-3?{6nt!!U;!q!8-CpXxfOU7w|l5JiBjKv}aiW(YF1+{)}NIqiCp}&8pW^T|` zmG{;gtD$rX1X}0YO@koocP(80fji5-lJcw(x$w4^MSR~oIar|iyF?eBz$x>LCV`U! zpV<_!@+_>wb##tRK}NsZn70L{909-EsLyEceblKaKzO~t3#JnMZcV`0j$h~Raoor8 zdNK^l1>7I3-Y3JjYzSp_hp9gu+R`DMwE!AC6Q*?rkx*X$q0i<*ytf7!ra4SF8@m)n z6M))5I2*O5dT$GXP&O%?43lU@e0}RH6s%p#(Zu;ehY|-g;#(m@nIrFDI-GtoLMV7p zrA�!UuFnBvc^s=0vO(6t7VdpWY%mBoeC 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�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¨*tR!&&tldJPccTkcR?4!UjCeN|{!Rwzmm* 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

    b>iae{K3<{k8JM0U$kHC14+>hGjR==D446#dr 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 V|GNVJy8{2a0{^=L|L?EB{{c351h)VH literal 0 HcmV?d00001 diff --git a/libtiff.opt b/libtiff.opt new file mode 100755 index 0000000000000000000000000000000000000000..ab78f697b5e292aa228819f11f62b2552e73168c GIT binary patch literal 48640 zcmeHQO>i7X6&^+Yk=IU~_%9~>4FW6~ORHZil5iYLE3G5{Bt~*jNY*&ByRF@^W@k1t zvzBa%BljFq6bB!miUU`wD5|)@jRRHWkOPMt4CM={95_(LA%OT^_w-6TyOwsxiendV z>`&d((>>k$w!5e2+xK37_~#ey|Kis#{ndya=Z$XTzZ(aPeOuDI5GTmvc>~usHYlz` ziX(}Sr$_?-L0e6HZ{5HiU@t)5`F@}WH~^%8g8+Tc&mw#dI1Hc*7%u=vfTO@M;5b0} zUPO2j_!96E@MYjDz*m8<0bd6w-vYv3;G4j=fNuk*fIgrfI1PLUpu7VJ2Z1y&1PlWs zz$h>Vj02Q!0^!TRBrpX`1K$PC0j~h(0m^p);S4YfWPmwf9>@Y0f!6@aN4Sjm72qoH zI`9T?4fr0g2rL1V?@ff?2bO`ifFA&F1MdJi;08eXo|I$J@bE7*Onh<|p>Nzl3)??V zpvUOX^2`p!-tGJ02e1C^4_);6b=GCn?i;H{U{npuC>R1QSwcH3Kpw)*MD@=bMZ?BtB`G91oyr~XTn+pJ1(ZpL z>0(f&!aHWnq14Ti2%A@Iw&}m_^~6!ghr@D&%F(a*}|_u#>DsEo+vqXp$zHHS)ri9PAy0vQPnhjr;W1w9GXUw zbj5lYiPEbIH;PuR!fM_Q1AS_*TfXCI=~sPGvoeOO8`W{&4t1HkvW8hZ@7P{g7E#y7jY8o#VLF{o z;W$?wJ3sH2MBcT7K%5)GX(}3uX@usWIc#Rp`Gr4VPMXUYRQSUCg?l=6ZU~?BJc7Je zyhC9*tT^?;vil3)_wZqQQ@tH`!4+$LEMZA>ta7rVo6|^=CaV#cq@*0Mi3-v{O;S*G z>?9@CI7m`*bJ!#*T_0tMO6x(HtgsxzNs6i=pQL0oLnJCHCzK>5>+?^d!g9JwQnEg~ zB`I8=3=jDXz9^gaMEI3m>1@zbIS{_ zPfg~o&tJWkTU@%99m$TRuV1~^Yo_MaJT6?hWC=y3>iG|RoYM2vHqG8vg~wIliXEB@ zZrO71Bu>4P8ge~6zC3fttA*3O>2wbNG56<+B3~=j7i365wP~#0D3#{tppy3Tx9Ums zz_e=XO=$(k3q*6OR}_U7sTDj`f}rU_(e_)V+3t$hDqW7dc;j%7HTk7AU8q&66||@6 zPU-;`&n}-$O^Ncc6Hl!_QQ{Zm!y=wY&w-{iO!4tFIeW(w<-{CMtk1bk7xZ-6bRn84 zo6~6$jHkAgvzof%Sp%At;)!~~X-cQLB%Y|JiFmr60h-d~;BHE7*#&4wQqCK(fi){= z>3>(CJ!UUP=c*i;gS0eiIXu+}lglc+a+It*%DY%``D$r(*{f7-Ct5Z;4{9rN9Tp8H zwbY{_q+)8|L~%J>bUYd)>Xe2?JthZ4{Y*W6jAn^7{+P{cTO?V6Z==(@LvPB95MDyVws!``V4BqqOC|zE}ADxfrSe;Mb zPv@cVkHAj>qE6e%N7d|<4_QD4x0jFd(miQ8-0<9E{*U=T=Kpr4{v~y&7NJRAu2-1< z+xC|gDPHFP+WQ$w3M=C9lXOP)0+ysC^M7s56#DHy5f8q`{2%jwH;bAKiE~BF|4Fi! zma=LRj0=eQzZgBw{2!=M^q0CKhkSxIyazG=x1Hik3wbgBNAJ{pumo5FPl*JG|LXw- zclF98Qf-a%Ys~-cs$L?k&shI&msJxFLQ4%pV zRjsg+tTgNY?VxZkyRcTrNhITt_5a$WELs0=N=de^=g0bgyI`Ni`hOkrlC1ytl&~?}OqRgol>qU7t?aLtVUg^D4kWwiosM4E zACs>DWqsV9{qZ;Grjh;e0<7p4jGKmoI`goDwv841YyUV2l|Nl~yY|m#TGZcujg2`| z3F<$)rTz>)xdrR<0A2%Z*r2Z&Cccx7!}$(FJP9N7rub0F_~+~Um|;_%@OmO@7)rsVZS)7s!@MC zD$-GAb^pc&#>}aA&%S{9U$*~N?*hucO~u*%y90j{v7g))f0p#z-*7%`XTu3$2)-3yyB(2fXNewQ7`O zZ_ly0OUs8|gI7ST;CIT`T@-MLdCbVn33wtb3b$}4Bzn`pfkDW_!mnz^?88$j~lQ-#^GTOsH#d-f{-v6b# zGn>Zxf2{w<`hS>7dH)yQ|AqH|*4F=_IOuYkJanr~W6C*7LA(k5Ye1Zoy4=*3#R9_@R&C zpK;A9lxuEjr15mL@pP>5bX>QQti9R(o9(}+&4>rZUP|o$QT<5I{vU5L|I7R@9GNw4 zK&n}dL|T!&|F_eQGXmcKN3{7PCfk3r{WsfxlebB&a2~gW=ly>m9Jc>{ygci~X>;p4 z#qRm%pHJ?Hoc%xQ*M1IJ0xW^2L;}SB?t=y>JTC4ry1R^@HMBc3lsR+8c>mL%7&AyW zLFnB>{FlH7IR6zwI(~zYK*#J+!}xs^-!L|eKOz1RZ~@o;5~V*tNEo<$S6=%E;{Qba z{-^%}h5PJ2y3b~)&J5#ZIv4qhjCtNY^`o)z$%%=n$+^MtsrlK#k&#Sxa5g(WF*rOt zGc!Cqo*5aPAN{dm3`DmgUUDm6s##CEd=G;7kTQJ1l2}F?-Uf)G)*-cuj-!o|keZeq z34z>eb^}@n|3>8RzzL)gev1qrq4H3;@c8f4g0OQ-64w7@{m<>U8Daj9`9J3Wl6hU# zuj7emQs)1d|FdfAOizq|H%B`N|;WkQ{?PAs6={}G=$jy;}@Z4$^75& a`u1z + +

    +

    Erstellungsprotokoll

    +

    +--------------------Konfiguration: libtiff - Win32 Debug-------------------- +

    +

    Befehlszeilen

    +Erstellen der temporären Datei "D:\WIN98\TEMP\RSPF1F3.TMP" mit Inhalten +[ +/nologo /G6 /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /Fp"Debug/libtiff.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\fax3sm.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_aux.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_close.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_codec.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_compress.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_dir.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_dirinfo.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_dirread.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_dirwrite.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_dumpmode.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_error.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_fax3.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_flush.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_getimage.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_jpeg.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_luv.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_lzw.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_next.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_open.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_packbits.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_pixarlog.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_predict.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_print.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_read.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_strip.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_swab.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_thunder.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_tile.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_version.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_warning.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_win32.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_write.c" +"E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_zip.c" +] +Creating command line "cl.exe @D:\WIN98\TEMP\RSPF1F3.TMP" +Erstellen der temporären Datei "D:\WIN98\TEMP\RSPF1F4.TMP" mit Inhalten +[ +/nologo /out:"..\..\lib\debug\libtiff.lib" +.\Debug\fax3sm.obj +.\Debug\tif_aux.obj +.\Debug\tif_close.obj +.\Debug\tif_codec.obj +.\Debug\tif_compress.obj +.\Debug\tif_dir.obj +.\Debug\tif_dirinfo.obj +.\Debug\tif_dirread.obj +.\Debug\tif_dirwrite.obj +.\Debug\tif_dumpmode.obj +.\Debug\tif_error.obj +.\Debug\tif_fax3.obj +.\Debug\tif_flush.obj +.\Debug\tif_getimage.obj +.\Debug\tif_jpeg.obj +.\Debug\tif_luv.obj +.\Debug\tif_lzw.obj +.\Debug\tif_next.obj +.\Debug\tif_open.obj +.\Debug\tif_packbits.obj +.\Debug\tif_pixarlog.obj +.\Debug\tif_predict.obj +.\Debug\tif_print.obj +.\Debug\tif_read.obj +.\Debug\tif_strip.obj +.\Debug\tif_swab.obj +.\Debug\tif_thunder.obj +.\Debug\tif_tile.obj +.\Debug\tif_version.obj +.\Debug\tif_warning.obj +.\Debug\tif_win32.obj +.\Debug\tif_write.obj +.\Debug\tif_zip.obj +] +Erstellen der Befehlzeile "link.exe -lib @D:\WIN98\TEMP\RSPF1F4.TMP" +

    Ausgabefenster

    +Kompilierung läuft... +fax3sm.c +tif_aux.c +tif_close.c +tif_codec.c +tif_compress.c +tif_dir.c +tif_dirinfo.c +tif_dirread.c +tif_dirwrite.c +tif_dumpmode.c +tif_error.c +tif_fax3.c +tif_flush.c +tif_getimage.c +E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_getimage.c(1545) : warning C4550: Ausdruck wird als Funktion ausgewertet, der eine Argumentliste fehlt +E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_getimage.c(1546) : warning C4550: Ausdruck wird als Funktion ausgewertet, der eine Argumentliste fehlt +E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_getimage.c(1547) : warning C4550: Ausdruck wird als Funktion ausgewertet, der eine Argumentliste fehlt +E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_getimage.c(1548) : warning C4550: Ausdruck wird als Funktion ausgewertet, der eine Argumentliste fehlt +E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_getimage.c(1549) : warning C4550: Ausdruck wird als Funktion ausgewertet, der eine Argumentliste fehlt +E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_getimage.c(1550) : warning C4550: Ausdruck wird als Funktion ausgewertet, der eine Argumentliste fehlt +tif_jpeg.c +tif_luv.c +tif_lzw.c +E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_lzw.c(390) : warning C4244: '=' : Konvertierung von 'unsigned short ' in 'char ', moeglicher Datenverlust +E:\home\Develop\80x86\libsrc\libtiff\libtiff\tif_lzw.c(455) : warning C4244: '=' : Konvertierung von 'unsigned short ' in 'char ', moeglicher Datenverlust +tif_next.c +tif_open.c +tif_packbits.c +tif_pixarlog.c +tif_predict.c +tif_print.c +tif_read.c +tif_strip.c +tif_swab.c +tif_thunder.c +tif_tile.c +tif_version.c +tif_warning.c +tif_win32.c +tif_write.c +tif_zip.c +Bibliothek wird erstellt... + + + +

    Ergebnisse

    +libtiff.lib - 0 Fehler, 8 Warnung(en) +
    + + diff --git a/libtiff.sln b/libtiff.sln new file mode 100755 index 0000000..724045c --- /dev/null +++ b/libtiff.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtiff", "libtiff.vcproj", "{A96090B9-FCD0-4EB7-802D-3A9EE375DC92}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A96090B9-FCD0-4EB7-802D-3A9EE375DC92}.Debug|Win32.ActiveCfg = Debug|Win32 + {A96090B9-FCD0-4EB7-802D-3A9EE375DC92}.Debug|Win32.Build.0 = Debug|Win32 + {A96090B9-FCD0-4EB7-802D-3A9EE375DC92}.Release|Win32.ActiveCfg = Release|Win32 + {A96090B9-FCD0-4EB7-802D-3A9EE375DC92}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/libtiff.sln.old b/libtiff.sln.old new file mode 100755 index 0000000..7a3217f --- /dev/null +++ b/libtiff.sln.old @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtiff", "libtiff.vcproj", "{A96090B9-FCD0-4EB7-802D-3A9EE375DC92}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {A96090B9-FCD0-4EB7-802D-3A9EE375DC92}.Debug.ActiveCfg = Debug|Win32 + {A96090B9-FCD0-4EB7-802D-3A9EE375DC92}.Debug.Build.0 = Debug|Win32 + {A96090B9-FCD0-4EB7-802D-3A9EE375DC92}.Release.ActiveCfg = Release|Win32 + {A96090B9-FCD0-4EB7-802D-3A9EE375DC92}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/libtiff.suo b/libtiff.suo new file mode 100755 index 0000000000000000000000000000000000000000..28ce4151a3ddaa5ed1cfc394d34f62efe6e74a50 GIT binary patch literal 11264 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libtiff.vcproj.7.10.old b/libtiff.vcproj.7.10.old new file mode 100755 index 0000000..03d6caf --- /dev/null +++ b/libtiff.vcproj.7.10.old @@ -0,0 +1,753 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libtiff.vcproj.Jupiter.jens.user b/libtiff.vcproj.Jupiter.jens.user new file mode 100755 index 0000000..395916a --- /dev/null +++ b/libtiff.vcproj.Jupiter.jens.user @@ -0,0 +1,65 @@ + + + + + + + + + + + diff --git a/libtiff/Makefile.in b/libtiff/Makefile.in new file mode 100755 index 0000000..7dfb198 --- /dev/null +++ b/libtiff/Makefile.in @@ -0,0 +1,348 @@ +# $Header: /home/cvsroot/libtiff/libtiff/Makefile.in,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +# +# Tag Image File Format Library +# +# Copyright (c) 1988-1997 Sam Leffler +# Copyright (c) 1991-1997 Silicon Graphics, Inc. +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Sam Leffler and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# + +SRCDIR = @LIBSRCDIR@ + +# +# VERSION: @VERSION@ +# DATE: @DATE@ +# TARGET: @TARGET@ +# CCOMPILER: @CCOMPILER@ +# +SHELL = @SCRIPT_SH@ +NULL = +CC = @CCOMPILER@ +AR = @AR@ +AROPTS = @AROPTS@ +RANLIB = @RANLIB@ +INSTALL = @INSTALL@ + +# +# If JPEG support is to be included and the Independent JPEG +# Software distribution is not installed then DIR_JPEG must +# refer to the directory where the include files reside. +# +# Similarly, if the libgz distribution is not installed, then +# DIR_LIBGZ must refer to the directory where the include files +# are located. Note that recent versions +# +IPATH = -I. -I${SRCDIR} @COPT_LIBINC@ +# +# To enable JPEG support include -DJPEG_SUPPORT here. +# To enable Deflate support add a -DZIP_SUPPORT here. +# Note that where the configure script is used these defines +# are automatically setup when JPEG/ZIP is set to "yes". +# +# Otherwise, consult tiffconf.h for information on controlling +# the configuration of optional library support. +# +CONF_LIBRARY=@CONF_JPEG@ @CONF_ZIP@ +COPTS = @GCOPTS@ +OPTIMIZER=-O +CFLAGS = @ENVOPTS@ @LIBCOPTS@ ${COPTS} ${OPTIMIZER} ${IPATH} ${CONF_LIBRARY} +# +SRCS = \ + tif_aux.c \ + tif_close.c \ + tif_codec.c \ + tif_compress.c \ + tif_dir.c \ + tif_dirinfo.c \ + tif_dirread.c \ + tif_dirwrite.c \ + tif_dumpmode.c \ + tif_error.c \ + tif_fax3.c \ + tif_fax3sm.c \ + tif_getimage.c \ + tif_jpeg.c \ + tif_flush.c \ + tif_luv.c \ + tif_lzw.c \ + tif_next.c \ + tif_open.c \ + tif_packbits.c \ + tif_pixarlog.c \ + tif_predict.c \ + tif_print.c \ + tif_read.c \ + tif_swab.c \ + tif_strip.c \ + tif_thunder.c \ + tif_tile.c \ + tif_unix.c \ + tif_version.c \ + tif_warning.c \ + tif_write.c \ + tif_zip.c \ + ${NULL} +OBJS = \ + tif_aux.o \ + tif_close.o \ + tif_codec.o \ + tif_compress.o \ + tif_dir.o \ + tif_dirinfo.o \ + tif_dirread.o \ + tif_dirwrite.o \ + tif_dumpmode.o \ + tif_error.o \ + tif_fax3.o \ + tif_fax3sm.o \ + tif_getimage.o \ + tif_jpeg.o \ + tif_flush.o \ + tif_luv.o \ + tif_lzw.o \ + tif_next.o \ + tif_open.o \ + tif_packbits.o \ + tif_pixarlog.o \ + tif_predict.o \ + tif_print.o \ + tif_read.o \ + tif_swab.o \ + tif_strip.o \ + tif_thunder.o \ + tif_tile.o \ + tif_unix.o \ + tif_version.o \ + tif_warning.o \ + tif_write.o \ + tif_zip.o \ + ${NULL} +TARGETS = libtiff.a + +all: ${TARGETS} + if [ @DSO@dso != nodso ]; then \ + ${MAKE} @DSO@dso; \ + else \ + true; \ + fi + +libtiff.a: ${OBJS} + ${AR} ${AROPTS} libtiff.a $? + ${RANLIB} libtiff.a + +# +# NB: The configure script verifies that the configured +# tools are capable of producing a DSO before enabling +# their creation/use. The following rules are effectively +# duplicated in the configure script to do this verification. +# This means that if you want to add support for building a +# DSO on another system you'll need to modify this file *and* +# configure if you want the right thing to happen automatically +# (should probably be fixed up). +# + +# default IRIX DSO building rule +IRIXdso: ${OBJS} + @if [ "`basename ${CC}`" = "gcc" ]; then \ + ${LD} -n32 @ENVOPTS@ -o libtiff.@DSOSUF@ -shared -rdata_shared \ + ${OBJS}; \ + else \ + ${CC} @ENVOPTS@ -o libtiff.@DSOSUF@ -shared -rdata_shared \ + -check_registry ${SRCDIR}/../port/irix/so_locations \ + -quickstart_info \ + ${OBJS} @LIBJPEG@ @LIBGZ@; \ + fi + touch $@ +# special rule for IRIX 5.2 +IRIX52dso: ${OBJS} + ${LD} -elf -o libtiff.@DSOSUF@ -shared -no_unresolved -all ${OBJS} \ + @LIBJPEG@ @LIBGZ@ -lc -lm + touch $@ +# Solaris 2.x +SOLARISdso: ${OBJS} + ${LD} -L@DIR_LIB@ -G -h libtiff.@DSOSUF@ -o libtiff.@DSOSUF@ ${OBJS} + touch $@ +# HP-UX A.09.03 +HPUXdso: ${OBJS} + ${LD} +b@DIR_LIB@ -b -o libtiff.@DSOSUF@ ${OBJS} + touch $@ +# AIX 2.3.5 and 4.1.1 +AIXdso: ${OBJS} + rm -f libtiff.syms shr.o + echo "#!" > libtiff.syms + /bin/dump -g libtiff.a | sed -n -e \ + 's/^[ ]*[0-9][0-9]*[ ]*\([^ .][^ ]*\)$$/\1/p' \ + >> libtiff.syms + ${LD} -o shr.o libtiff.a -H512 -T512 -bM\:SRE \ + -bE\:libtiff.syms @LIBJPEG@ @LIBGZ@ -lc -lm -L@DIR_LIB@ + rm -f libtiff.syms libtiff.@DSOSUF@ + ${AR} ${AROPTS} libtiff.@DSOSUF@ shr.o + rm -f shr.o + touch $@ +# NetBSD 1.1 or FreeBSD +NETBSDdso FREEBSDdso: ${OBJS} + @rm -f libtiff_pic.a + @${AR} cq libtiff_pic.a `lorder ${OBJS} | tsort -q` + ${RANLIB} libtiff_pic.a + ${LD} -x -Bshareable -Bforcearchive -o libtiff.@DSOSUF@ libtiff_pic.a + rm -f libtiff_pic.a + touch $@ +# linux ELF shared lib rule +LINUXdso: ${OBJS} + ${CC} -shared -Wl,-soname,libtiff.@DSOSUF@ \ + -o libtiff.@DSOSUF_VERSION@ ${OBJS} @LIBJPEG@ @LIBGZ@ + rm -f libtiff.@DSOSUF@ + @LN@ @LN_S@ libtiff.@DSOSUF_VERSION@ libtiff.@DSOSUF@ + touch $@ +# OSF/1 3.2 shared lib rule +OSFdso: ${OBJS} + ${LD} -o libtiff.@DSOSUF@ -shared -error_unresolved ${OBJS} @LIBJPEG@ @LIBGZ@ -lc -lm + + +${OBJS}: ${SRCDIR}/tiffio.h ${SRCDIR}/tiff.h ${SRCDIR}/tif_dir.h +${OBJS}: ${SRCDIR}/tiffcomp.h ${SRCDIR}/tiffiop.h ${SRCDIR}/tiffconf.h + +ALPHA = @ALPHAFILE@ +VERSION = @VERSIONFILE@ + +version.h: ${VERSION} ${ALPHA} ${SRCDIR}/mkversion.c + ${CC} -o mkversion ${CFLAGS} ${SRCDIR}/mkversion.c + rm -f version.h; ./mkversion -v ${VERSION} -a ${ALPHA} version.h +tif_version.o: version.h + +# +# The finite state machine tables used by the G3/G4 decoders +# are generated by the mkg3states program. On systems without +# make these rules have to be manually carried out. +# +tif_fax3sm.c: ${SRCDIR}/mkg3states.c ${SRCDIR}/tif_fax3.h + ${CC} -o mkg3states ${CFLAGS} ${SRCDIR}/mkg3states.c + rm -f tif_fax3sm.c; ./mkg3states -c const tif_fax3sm.c + +tif_aux.o: ${SRCDIR}/tif_aux.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_aux.c +tif_close.o: ${SRCDIR}/tif_close.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_close.c +tif_codec.o: ${SRCDIR}/tif_codec.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_codec.c +tif_compress.o: ${SRCDIR}/tif_compress.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_compress.c +tif_dir.o: ${SRCDIR}/tif_dir.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_dir.c +tif_dirinfo.o: ${SRCDIR}/tif_dirinfo.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_dirinfo.c +tif_dirread.o: ${SRCDIR}/tif_dirread.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_dirread.c +tif_dirwrite.o: ${SRCDIR}/tif_dirwrite.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_dirwrite.c +tif_dumpmode.o: ${SRCDIR}/tif_dumpmode.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_dumpmode.c +tif_error.o: ${SRCDIR}/tif_error.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_error.c +tif_fax3.o: ${SRCDIR}/tif_fax3.c ${SRCDIR}/t4.h ${SRCDIR}/tif_fax3.h + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_fax3.c +tif_getimage.o: ${SRCDIR}/tif_getimage.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_getimage.c +tif_jpeg.o: ${SRCDIR}/tif_jpeg.c @DEPEND_JPEGLIB@ + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_jpeg.c +tif_flush.o: ${SRCDIR}/tif_flush.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_flush.c +tif_luv.o: ${SRCDIR}/tif_luv.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_luv.c +tif_lzw.o: ${SRCDIR}/tif_lzw.c ${SRCDIR}/tif_predict.h + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_lzw.c +tif_next.o: ${SRCDIR}/tif_next.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_next.c +tif_open.o: ${SRCDIR}/tif_open.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_open.c +tif_packbits.o: ${SRCDIR}/tif_packbits.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_packbits.c +tif_pixarlog.o: ${SRCDIR}/tif_pixarlog.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_pixarlog.c +tif_predict.o: ${SRCDIR}/tif_predict.c ${SRCDIR}/tif_predict.h + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_predict.c +tif_print.o: ${SRCDIR}/tif_print.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_print.c +tif_read.o: ${SRCDIR}/tif_read.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_read.c +tif_swab.o: ${SRCDIR}/tif_swab.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_swab.c +tif_strip.o: ${SRCDIR}/tif_strip.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_strip.c +tif_thunder.o: ${SRCDIR}/tif_thunder.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_thunder.c +tif_tile.o: ${SRCDIR}/tif_tile.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_tile.c +tif_unix.o: ${SRCDIR}/tif_unix.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_unix.c +tif_version.o: ${SRCDIR}/tif_version.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_version.c +tif_warning.o: ${SRCDIR}/tif_warning.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_warning.c +tif_write.o: ${SRCDIR}/tif_write.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_write.c +tif_zip.o: ${SRCDIR}/tif_zip.c ${SRCDIR}/tif_predict.h @DEPEND_ZLIB@ + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_zip.c + +tif_apple.o: ${SRCDIR}/tif_apple.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_apple.c +tif_atari.o: ${SRCDIR}/tif_atari.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_atari.c +tif_msdos.o: ${SRCDIR}/tif_msdos.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_msdos.c +tif_vms.o: ${SRCDIR}/tif_vms.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_vms.c +tif_win3.o: ${SRCDIR}/tif_win3.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tif_win3.c + +INCS = ${SRCDIR}/tiff.h ${SRCDIR}/tiffio.h ${SRCDIR}/tiffconf.h + +installHdrs: ${INCS} + ${INSTALL} -idb tiff.sw.dev -m 755 -dir @DIR_INC@ + for i in ${INCS}; do \ + f=`basename $$i`; \ + ${INSTALL} -idb tiff.sw.dev -m 444 -F @DIR_INC@ \ + -src $$i -O $$f; \ + done +installDSO: @DSO@dso + if [ @DSOSUF_VERSION@ != @DSOSUF@ ]; then \ + ${INSTALL} -idb tiff.sw.tools -m 555 -F @DIR_LIB@ \ + -O libtiff.@DSOSUF_VERSION@; \ + ${INSTALL} -idb tiff.sw.tools -F @DIR_LIB@ \ + -ln libtiff.@DSOSUF_VERSION@ -O libtiff.@DSOSUF@; \ + else \ + ${INSTALL} -idb tiff.sw.tools -m 555 -F @DIR_LIB@ \ + -O libtiff.@DSOSUF@; \ + fi +install: all installHdrs + ${INSTALL} -idb tiff.sw.dev -m 755 -dir @DIR_LIB@ + ${INSTALL} -idb tiff.sw.dev -m 444 -F @DIR_LIB@ -O libtiff.a + if [ @DSO@dso != nodso ]; then \ + ${MAKE} installDSO; \ + else \ + true; \ + fi + +clean: + rm -f ${TARGETS} ${OBJS} core a.out \ + mkg3states tif_fax3sm.c \ + mkversion version.h \ + libtiff.a libtiff.@DSOSUF@ libtiff.@DSOSUF_VERSION@ *dso diff --git a/libtiff/Makefile.lcc b/libtiff/Makefile.lcc new file mode 100755 index 0000000..02d6a49 --- /dev/null +++ b/libtiff/Makefile.lcc @@ -0,0 +1,129 @@ +# $Header: /home/cvsroot/libtiff/libtiff/Makefile.lcc,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +# +# Tag Image File Format Library +# +# Copyright (c) 1988-1997 Sam Leffler +# Copyright (c) 1991-1997 Silicon Graphics, Inc. +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Stanford and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# +DESTDIR=. +# +INSTALL=install +NULL= + +IPATH= -I. -I../jpeg +CONF_LIBRARY=\ + ${NULL} +COPTS= -Oloop -cwagshf -d1 -b0 -v -DNDEBUG -rr -j135i +CFLAGS= ${COPTS} ${IPATH} ${CONF_LIBRARY} +# +INCS= tiff.h tiffio.h +SRCS= tif_fax3.c \ + tif_fax4.c \ + tif_aux.c \ + tif_atari.c \ + tif_ccittrle.c \ + tif_close.c \ + tif_compress.c \ + tif_dir.c \ + tif_dirinfo.c \ + tif_dirread.c \ + tif_dirwrite.c \ + tif_dumpmode.c \ + tif_error.c \ + tif_getimage.c \ + tif_jpeg.c \ + tif_flush.c \ + tif_lzw.c \ + tif_next.c \ + tif_open.c \ + tif_packbits.c \ + tif_print.c \ + tif_read.c \ + tif_swab.c \ + tif_strip.c \ + tif_thunder.c \ + tif_tile.c \ + tif_version.c \ + tif_warning.c \ + tif_write.c \ + ${NULL} +OBJS= tif_fax3.o \ + tif_fax4.o \ + tif_aux.o \ + tif_atari.o \ + tif_ccittrle.o \ + tif_close.o \ + tif_compress.o \ + tif_dir.o \ + tif_dirinfo.o \ + tif_dirread.o \ + tif_dirwrite.o \ + tif_dumpmode.o \ + tif_error.o \ + tif_getimage.o \ + tif_jpeg.o \ + tif_flush.o \ + tif_lzw.o \ + tif_next.o \ + tif_open.o \ + tif_packbits.o \ + tif_print.o \ + tif_read.o \ + tif_swab.o \ + tif_strip.o \ + tif_thunder.o \ + tif_tile.o \ + tif_version.o \ + tif_warning.o \ + tif_write.o \ + ${NULL} +ALL= tiffrnb.lib + +all: ${ALL} + +${ALL}: ${OBJS} + ${AR} ${ARFLAGS} $@ r $< + +${OBJS}: tiffio.h tiff.h tiffcomp.h tiffiop.h tiffconf.h +tif_fax3.o: tif_fax3.c g3states.h t4.h tif_fax3.h + +g3states.h: mkg3states.c t4.h + ${CC} -o mkg3states.ttp ${CFLAGS} mkg3states.c + ./mkg3states -c > g3states.h + +install: all installh + -for i in ${ALL}; do \ + ${INSTALL} -c -m 644 $$i ${DESTDIR}/lib/$$i; \ + done + +installh: ${INCS} + -for i in ${INCS}; do \ + h=`basename $$i`; \ + cmp -s $$i ${DESTDIR}/include/$$h || \ + ${INSTALL} -c -m 444 $$i ${DESTDIR}/include/$$h; \ + done + +clean: + rm -f ${ALL} ${OBJS} mkg3states.ttp mkg3states.o g3states.h + +tags: ${SRCS} + ${CTAGS} ${SRCS} diff --git a/libtiff/fax3sm.c b/libtiff/fax3sm.c new file mode 100755 index 0000000..1d0f34a --- /dev/null +++ b/libtiff/fax3sm.c @@ -0,0 +1,1046 @@ +/* WARNING, this file was automatically generated by the + mkg3states program */ +#include "tiff.h" +#include "tif_fax3.h" + const TIFFFaxTabEnt TIFFFaxMainTable[128] = { +12,7,0,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0,1,4,0,3,1,0,5,3,1,3,1,0, +2,3,0,3,1,0,4,3,1,3,1,0,5,6,2,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0, +1,4,0,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0,5,7,3,3,1,0,5,3,1,3,1,0, +2,3,0,3,1,0,4,3,1,3,1,0,1,4,0,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0, +4,6,2,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0,1,4,0,3,1,0,5,3,1,3,1,0, +2,3,0,3,1,0,4,3,1,3,1,0,6,7,0,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0, +1,4,0,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0,5,6,2,3,1,0,5,3,1,3,1,0, +2,3,0,3,1,0,4,3,1,3,1,0,1,4,0,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0, +4,7,3,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0,1,4,0,3,1,0,5,3,1,3,1,0, +2,3,0,3,1,0,4,3,1,3,1,0,4,6,2,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0, +1,4,0,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0 +}; +const TIFFFaxTabEnt TIFFFaxWhiteTable[4096] = { +12,11,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6, +7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5, +7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1472,7,4,5,7,8,43,7,6,17,9,9,1216,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5, +7,8,41,7,6,16,9,9,960,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,704,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15, +9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,11,11,1792,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,832,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6, +7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1600,7,4,5, +7,8,44,7,6,17,9,9,1344,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14, +7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1088,7,4,6, +7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15, +7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1536,7,4,5,7,8,43,7,6,17,9,9,1280,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7, +7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,1024,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,768,7,4,6, +7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +11,11,1856,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,896,7,4,6, +7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5, +7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1728,7,4,5,7,8,44,7,6,17,9,9,1408,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5, +7,8,42,7,6,16,9,9,1152,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15, +9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6, +7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1472,7,4,5, +7,8,43,7,6,17,9,9,1216,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14, +7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,960,7,4,6, +7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,9,704,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,11,12,2112,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,40,7,6,16,9,9,832,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15, +7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1600,7,4,5,7,8,44,7,6,17,9,9,1344,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7, +7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1088,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6, +7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6, +7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5, +7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1536,7,4,5,7,8,43,7,6,17,9,9,1280,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5, +7,8,41,7,6,16,9,9,1024,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,768,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15, +9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,11,12,2368,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,896,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6, +7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1728,7,4,5, +7,8,44,7,6,17,9,9,1408,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14, +7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1152,7,4,6, +7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15, +7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1472,7,4,5,7,8,43,7,6,17,9,9,1216,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7, +7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,960,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,704,7,4,6, +7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +11,12,1984,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,832,7,4,6, +7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5, +7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1600,7,4,5,7,8,44,7,6,17,9,9,1344,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5, +7,8,42,7,6,16,9,9,1088,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15, +9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6, +7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1536,7,4,5, +7,8,43,7,6,17,9,9,1280,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14, +7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,1024,7,4,6, +7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,9,768,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,11,11,1920,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,40,7,6,16,9,9,896,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15, +7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1728,7,4,5,7,8,44,7,6,17,9,9,1408,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7, +7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1152,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6, +7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6, +7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5, +7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1472,7,4,5,7,8,43,7,6,17,9,9,1216,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5, +7,8,41,7,6,16,9,9,960,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,704,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15, +9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,11,12,2240,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,832,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6, +7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1600,7,4,5, +7,8,44,7,6,17,9,9,1344,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14, +7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1088,7,4,6, +7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15, +7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1536,7,4,5,7,8,43,7,6,17,9,9,1280,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7, +7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,1024,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,768,7,4,6, +7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +11,12,2496,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,896,7,4,6, +7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5, +7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1728,7,4,5,7,8,44,7,6,17,9,9,1408,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5, +7,8,42,7,6,16,9,9,1152,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15, +9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,12,11,0,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6, +7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1472,7,4,5, +7,8,43,7,6,17,9,9,1216,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14, +7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,960,7,4,6, +7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,9,704,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,11,11,1792,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,40,7,6,16,9,9,832,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15, +7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1600,7,4,5,7,8,44,7,6,17,9,9,1344,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7, +7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1088,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6, +7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6, +7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5, +7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1536,7,4,5,7,8,43,7,6,17,9,9,1280,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5, +7,8,41,7,6,16,9,9,1024,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,768,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15, +9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,11,11,1856,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,896,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6, +7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1728,7,4,5, +7,8,44,7,6,17,9,9,1408,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14, +7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1152,7,4,6, +7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15, +7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1472,7,4,5,7,8,43,7,6,17,9,9,1216,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7, +7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,960,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,704,7,4,6, +7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +11,12,2176,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,832,7,4,6, +7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5, +7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1600,7,4,5,7,8,44,7,6,17,9,9,1344,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5, +7,8,42,7,6,16,9,9,1088,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15, +9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6, +7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1536,7,4,5, +7,8,43,7,6,17,9,9,1280,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14, +7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,1024,7,4,6, +7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,9,768,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,11,12,2432,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,40,7,6,16,9,9,896,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15, +7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1728,7,4,5,7,8,44,7,6,17,9,9,1408,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7, +7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1152,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6, +7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6, +7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5, +7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1472,7,4,5,7,8,43,7,6,17,9,9,1216,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5, +7,8,41,7,6,16,9,9,960,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,704,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15, +9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,11,12,2048,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,832,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6, +7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1600,7,4,5, +7,8,44,7,6,17,9,9,1344,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14, +7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1088,7,4,6, +7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15, +7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1536,7,4,5,7,8,43,7,6,17,9,9,1280,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7, +7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,1024,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,768,7,4,6, +7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +11,11,1920,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,896,7,4,6, +7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5, +7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1728,7,4,5,7,8,44,7,6,17,9,9,1408,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5, +7,8,42,7,6,16,9,9,1152,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15, +9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6, +7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1472,7,4,5, +7,8,43,7,6,17,9,9,1216,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14, +7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,960,7,4,6, +7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,9,704,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,11,12,2304,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,40,7,6,16,9,9,832,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15, +7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1600,7,4,5,7,8,44,7,6,17,9,9,1344,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7, +7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1088,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6, +7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6, +7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5, +7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1536,7,4,5,7,8,43,7,6,17,9,9,1280,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5, +7,8,41,7,6,16,9,9,1024,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,768,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15, +9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,11,12,2560,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,896,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6, +7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1728,7,4,5, +7,8,44,7,6,17,9,9,1408,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14, +7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1152,7,4,6, +7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7 +}; +const TIFFFaxTabEnt TIFFFaxBlackTable[8192] = { +12,11,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,18,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,17,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,11,1792,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,23,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,20,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,25,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,12,128,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,56,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,30,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,11,1856,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,57,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,21,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,54,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,52,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,48,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,12,2112,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,44,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,36,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,12,384,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,28,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,60,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,40,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,12,2368,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,16,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,10,64,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,18,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,17,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,12,1984,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,50,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,34,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,1664,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,26,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,13,1408,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,32,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,11,1920,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,61,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,42,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,13,1024,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,768,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,62,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,12,2240,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,46,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,38,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,13,512,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,19,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,24,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,22,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,12,2496,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,16,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,10,64,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,12,11,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,18,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,17,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,11,1792,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,23,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,20,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,25,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,12,192,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,1280,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,31,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,11,1856,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,58,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,21,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,13,896,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,13,640,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,49,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,12,2176,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,45,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,37,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,12,448,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,29,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,13,1536,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,41,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,12,2432,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,16,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,10,64,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,18,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,17,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,12,2048,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,51,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,35,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,12,320,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,27,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,59,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,33,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,11,1920,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,12,256,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,43,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,1152,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,55,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,63,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,12,2304,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,47,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,39,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,53,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,19,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,24,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,22,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,12,2560,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,16,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,10,64,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,12,11,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,18,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,17,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,11,1792,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,23,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,20,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,25,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,12,128,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,56,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,30,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,11,1856,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,57,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,21,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,54,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,52,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,48,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,12,2112,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,44,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,36,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,12,384,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,28,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,60,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,40,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,12,2368,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,16,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,10,64,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,18,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,17,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,12,1984,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,50,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,34,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,13,1728,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,26,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,1472,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,32,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,11,1920,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,61,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,42,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,13,1088,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,13,832,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,62,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,12,2240,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,46,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,38,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,576,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,19,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,24,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,22,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,12,2496,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,16,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,10,64,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +12,11,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,18,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,17,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,11,1792,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,23,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,20,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,25,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,12,192,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,13,1344,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,31,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,11,1856,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,58,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,21,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,960,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,13,704,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,49,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,12,2176,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,45,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,37,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,12,448,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,29,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,1600,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,41,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,12,2432,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,16,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,10,64,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,18,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,17,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,12,2048,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,51,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,35,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,12,320,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,27,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,59,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,33,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,11,1920,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,12,256,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,43,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,13,1216,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,55,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,63,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,12,2304,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,47,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,39,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,53,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,19,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,24,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,22,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,12,2560,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,16,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,10,64,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2 +}; diff --git a/libtiff/fax3sm_winnt.c b/libtiff/fax3sm_winnt.c new file mode 100755 index 0000000..1d0f34a --- /dev/null +++ b/libtiff/fax3sm_winnt.c @@ -0,0 +1,1046 @@ +/* WARNING, this file was automatically generated by the + mkg3states program */ +#include "tiff.h" +#include "tif_fax3.h" + const TIFFFaxTabEnt TIFFFaxMainTable[128] = { +12,7,0,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0,1,4,0,3,1,0,5,3,1,3,1,0, +2,3,0,3,1,0,4,3,1,3,1,0,5,6,2,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0, +1,4,0,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0,5,7,3,3,1,0,5,3,1,3,1,0, +2,3,0,3,1,0,4,3,1,3,1,0,1,4,0,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0, +4,6,2,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0,1,4,0,3,1,0,5,3,1,3,1,0, +2,3,0,3,1,0,4,3,1,3,1,0,6,7,0,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0, +1,4,0,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0,5,6,2,3,1,0,5,3,1,3,1,0, +2,3,0,3,1,0,4,3,1,3,1,0,1,4,0,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0, +4,7,3,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0,1,4,0,3,1,0,5,3,1,3,1,0, +2,3,0,3,1,0,4,3,1,3,1,0,4,6,2,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0, +1,4,0,3,1,0,5,3,1,3,1,0,2,3,0,3,1,0,4,3,1,3,1,0 +}; +const TIFFFaxTabEnt TIFFFaxWhiteTable[4096] = { +12,11,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6, +7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5, +7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1472,7,4,5,7,8,43,7,6,17,9,9,1216,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5, +7,8,41,7,6,16,9,9,960,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,704,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15, +9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,11,11,1792,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,832,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6, +7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1600,7,4,5, +7,8,44,7,6,17,9,9,1344,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14, +7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1088,7,4,6, +7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15, +7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1536,7,4,5,7,8,43,7,6,17,9,9,1280,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7, +7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,1024,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,768,7,4,6, +7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +11,11,1856,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,896,7,4,6, +7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5, +7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1728,7,4,5,7,8,44,7,6,17,9,9,1408,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5, +7,8,42,7,6,16,9,9,1152,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15, +9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6, +7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1472,7,4,5, +7,8,43,7,6,17,9,9,1216,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14, +7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,960,7,4,6, +7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,9,704,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,11,12,2112,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,40,7,6,16,9,9,832,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15, +7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1600,7,4,5,7,8,44,7,6,17,9,9,1344,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7, +7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1088,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6, +7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6, +7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5, +7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1536,7,4,5,7,8,43,7,6,17,9,9,1280,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5, +7,8,41,7,6,16,9,9,1024,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,768,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15, +9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,11,12,2368,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,896,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6, +7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1728,7,4,5, +7,8,44,7,6,17,9,9,1408,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14, +7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1152,7,4,6, +7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15, +7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1472,7,4,5,7,8,43,7,6,17,9,9,1216,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7, +7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,960,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,704,7,4,6, +7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +11,12,1984,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,832,7,4,6, +7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5, +7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1600,7,4,5,7,8,44,7,6,17,9,9,1344,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5, +7,8,42,7,6,16,9,9,1088,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15, +9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6, +7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1536,7,4,5, +7,8,43,7,6,17,9,9,1280,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14, +7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,1024,7,4,6, +7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,9,768,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,11,11,1920,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,40,7,6,16,9,9,896,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15, +7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1728,7,4,5,7,8,44,7,6,17,9,9,1408,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7, +7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1152,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6, +7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6, +7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5, +7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1472,7,4,5,7,8,43,7,6,17,9,9,1216,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5, +7,8,41,7,6,16,9,9,960,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,704,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15, +9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,11,12,2240,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,832,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6, +7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1600,7,4,5, +7,8,44,7,6,17,9,9,1344,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14, +7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1088,7,4,6, +7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15, +7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1536,7,4,5,7,8,43,7,6,17,9,9,1280,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7, +7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,1024,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,768,7,4,6, +7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +11,12,2496,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,896,7,4,6, +7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5, +7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1728,7,4,5,7,8,44,7,6,17,9,9,1408,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5, +7,8,42,7,6,16,9,9,1152,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15, +9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,12,11,0,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6, +7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1472,7,4,5, +7,8,43,7,6,17,9,9,1216,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14, +7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,960,7,4,6, +7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,9,704,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,11,11,1792,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,40,7,6,16,9,9,832,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15, +7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1600,7,4,5,7,8,44,7,6,17,9,9,1344,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7, +7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1088,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6, +7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6, +7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5, +7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1536,7,4,5,7,8,43,7,6,17,9,9,1280,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5, +7,8,41,7,6,16,9,9,1024,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,768,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15, +9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,11,11,1856,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,896,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6, +7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1728,7,4,5, +7,8,44,7,6,17,9,9,1408,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14, +7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1152,7,4,6, +7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15, +7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1472,7,4,5,7,8,43,7,6,17,9,9,1216,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7, +7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,960,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,704,7,4,6, +7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +11,12,2176,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,832,7,4,6, +7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5, +7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1600,7,4,5,7,8,44,7,6,17,9,9,1344,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5, +7,8,42,7,6,16,9,9,1088,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15, +9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6, +7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1536,7,4,5, +7,8,43,7,6,17,9,9,1280,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14, +7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,1024,7,4,6, +7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,9,768,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,11,12,2432,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,40,7,6,16,9,9,896,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15, +7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1728,7,4,5,7,8,44,7,6,17,9,9,1408,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7, +7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1152,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6, +7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6, +7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5, +7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1472,7,4,5,7,8,43,7,6,17,9,9,1216,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5, +7,8,41,7,6,16,9,9,960,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,704,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15, +9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,11,12,2048,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,832,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6, +7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1600,7,4,5, +7,8,44,7,6,17,9,9,1344,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14, +7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1088,7,4,6, +7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15, +7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1536,7,4,5,7,8,43,7,6,17,9,9,1280,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7, +7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,1024,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,768,7,4,6, +7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +11,11,1920,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,896,7,4,6, +7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5, +7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1728,7,4,5,7,8,44,7,6,17,9,9,1408,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5, +7,8,42,7,6,16,9,9,1152,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15, +9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,0,0,0,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6,7,7,19,7,5,8,7,8,55,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5,7,8,53,7,5,9,9,8,448,7,4,6, +7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1472,7,4,5, +7,8,43,7,6,17,9,9,1216,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,33,9,5,128,7,8,49,7,6,14, +7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5,7,8,41,7,6,16,9,9,960,7,4,6, +7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,9,704,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15,9,8,320,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,11,12,2304,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5, +7,8,40,7,6,16,9,9,832,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6,7,8,36,9,5,128,7,8,52,7,6,15, +7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1600,7,4,5,7,8,44,7,6,17,9,9,1344,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,30,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14,7,8,62,7,4,4,7,4,2,7,4,7, +7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1088,7,4,6,7,8,32,7,5,8,7,8,58,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,8,640,7,4,6, +7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5, +7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +0,0,0,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14, +7,7,28,7,4,4,7,4,2,7,4,7,7,7,23,7,4,3,7,7,27,7,4,5,7,8,39,7,6,16,9,8,576,7,4,6, +7,7,19,7,5,8,7,8,55,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,8,45,7,4,3,7,5,11,7,4,5, +7,8,53,7,5,9,9,8,448,7,4,6,7,8,35,9,5,128,7,8,51,7,6,15,7,8,63,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,9,9,1536,7,4,5,7,8,43,7,6,17,9,9,1280,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,29,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6, +7,8,33,9,5,128,7,8,49,7,6,14,7,8,61,7,4,4,7,4,2,7,4,7,7,8,47,7,4,3,7,8,59,7,4,5, +7,8,41,7,6,16,9,9,1024,7,4,6,7,8,31,7,5,8,7,8,57,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,7,22,7,4,3,7,5,11,7,4,5,7,7,26,7,5,9,9,9,768,7,4,6,7,8,37,9,5,128,7,7,25,7,6,15, +9,8,320,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6, +7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,11,12,2560,7,4,3,7,5,11,7,4,5, +7,6,12,7,5,9,9,6,1664,7,4,6,7,7,20,9,5,128,7,7,24,7,6,14,7,7,28,7,4,4,7,4,2,7,4,7, +7,7,23,7,4,3,7,7,27,7,4,5,7,8,40,7,6,16,9,9,896,7,4,6,7,7,19,7,5,8,7,8,56,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7,7,8,46,7,4,3,7,5,11,7,4,5,7,8,54,7,5,9,9,8,512,7,4,6, +7,8,36,9,5,128,7,8,52,7,6,15,7,8,0,7,4,4,7,4,2,7,4,7,7,6,13,7,4,3,9,9,1728,7,4,5, +7,8,44,7,6,17,9,9,1408,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7, +7,8,30,7,4,3,7,5,11,7,4,5,7,6,12,7,5,9,9,6,1664,7,4,6,7,8,34,9,5,128,7,8,50,7,6,14, +7,8,62,7,4,4,7,4,2,7,4,7,7,8,48,7,4,3,7,8,60,7,4,5,7,8,42,7,6,16,9,9,1152,7,4,6, +7,8,32,7,5,8,7,8,58,9,5,64,7,5,10,7,4,4,7,4,2,7,4,7,7,7,22,7,4,3,7,5,11,7,4,5, +7,7,26,7,5,9,9,8,640,7,4,6,7,8,38,9,5,128,7,7,25,7,6,15,9,8,384,7,4,4,7,4,2,7,4,7, +7,6,13,7,4,3,7,7,18,7,4,5,7,7,21,7,6,17,9,7,256,7,4,6,7,6,1,7,5,8,9,6,192,9,5,64, +7,5,10,7,4,4,7,4,2,7,4,7 +}; +const TIFFFaxTabEnt TIFFFaxBlackTable[8192] = { +12,11,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,18,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,17,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,11,1792,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,23,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,20,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,25,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,12,128,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,56,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,30,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,11,1856,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,57,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,21,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,54,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,52,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,48,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,12,2112,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,44,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,36,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,12,384,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,28,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,60,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,40,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,12,2368,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,16,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,10,64,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,18,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,17,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,12,1984,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,50,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,34,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,1664,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,26,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,13,1408,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,32,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,11,1920,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,61,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,42,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,13,1024,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,768,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,62,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,12,2240,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,46,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,38,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,13,512,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,19,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,24,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,22,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,12,2496,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,16,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,10,64,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,12,11,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,18,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,17,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,11,1792,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,23,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,20,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,25,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,12,192,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,1280,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,31,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,11,1856,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,58,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,21,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,13,896,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,13,640,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,49,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,12,2176,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,45,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,37,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,12,448,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,29,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,13,1536,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,41,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,12,2432,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,16,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,10,64,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,18,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,17,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,12,2048,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,51,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,35,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,12,320,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,27,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,59,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,33,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,11,1920,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,12,256,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,43,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,1152,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,55,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,63,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,12,2304,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,47,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,39,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,53,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,19,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,24,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,22,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,12,2560,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,16,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,10,64,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,12,11,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,18,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,17,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,11,1792,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,23,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,20,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,25,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,12,128,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,56,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,30,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,11,1856,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,57,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,21,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,54,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,52,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,48,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,12,2112,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,44,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,36,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,12,384,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,28,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,60,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,40,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,12,2368,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,16,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,10,64,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,18,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,17,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,12,1984,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,50,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,34,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,13,1728,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,26,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,1472,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,32,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,11,1920,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,61,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,42,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,13,1088,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,13,832,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,62,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,12,2240,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,46,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,38,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,576,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,19,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,24,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,22,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,12,2496,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,16,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,10,64,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +12,11,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,18,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,17,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,11,1792,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,23,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,20,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,25,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,12,192,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,13,1344,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,31,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,11,1856,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,58,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,11,21,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,960,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,13,704,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,49,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,12,2176,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,45,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,37,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,12,448,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,29,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,13,1600,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,41,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,12,2432,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,16,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,10,64,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,18,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,10,17,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,12,2048,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,51,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,35,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,12,320,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,27,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,59,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,33,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,11,11,1920,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +10,12,256,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,43,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,10,13,1216,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,13,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,9,15,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,55,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,63,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,11,12,2304,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,12,47,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,12,39,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,12,53,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,8,14,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,0,0,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,13,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,19,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,11,24,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,7,11,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,11,22,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +11,12,2560,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,9,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,10,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,10,16,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,10,0,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,10,10,64,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,6,9,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2,8,7,11,8,2,3,8,3,1,8,2,2, +8,4,6,8,2,3,8,3,4,8,2,2,8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2, +8,8,14,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2,8,6,8,8,2,3,8,3,1,8,2,2, +8,4,5,8,2,3,8,3,4,8,2,2,8,7,12,8,2,3,8,3,1,8,2,2,8,4,6,8,2,3,8,3,4,8,2,2, +8,5,7,8,2,3,8,3,1,8,2,2,8,4,5,8,2,3,8,3,4,8,2,2 +}; diff --git a/libtiff/libtiff.def b/libtiff/libtiff.def new file mode 100755 index 0000000..2be223a --- /dev/null +++ b/libtiff/libtiff.def @@ -0,0 +1,77 @@ +LIBRARY libtiff +EXPORTS TIFFOpen + TIFFGetVersion + TIFFClose + TIFFFlush + TIFFFlushData + TIFFGetField + TIFFVGetField + TIFFGetFieldDefaulted + TIFFVGetFieldDefaulted + TIFFReadDirectory + TIFFScanlineSize + TIFFStripSize + TIFFVStripSize + TIFFTileRowSize + TIFFTileSize + TIFFVTileSize + TIFFFileno + TIFFGetMode + TIFFIsTiled + TIFFIsByteSwapped + TIFFCurrentRow + TIFFCurrentDirectory + TIFFCurrentStrip + TIFFCurrentTile + TIFFReadBufferSetup + TIFFLastDirectory + TIFFSetDirectory + TIFFSetSubDirectory + TIFFUnlinkDirectory + TIFFSetField + TIFFVSetField + TIFFWriteDirectory + TIFFPrintDirectory + TIFFReadScanline + TIFFWriteScanline + TIFFReadRGBAImage + TIFFPrintDirectory + TIFFReadScanline + TIFFWriteScanline + TIFFReadRGBAImage + TIFFFdOpen + TIFFClientOpen + TIFFFileName + TIFFError + TIFFWarning + TIFFSetErrorHandler + TIFFSetWarningHandler + TIFFComputeTile + TIFFCheckTile + TIFFNumberOfTiles + TIFFReadTile + TIFFWriteTile + TIFFComputeStrip + TIFFNumberOfStrips + TIFFReadEncodedStrip + TIFFReadRawStrip + TIFFReadEncodedTile + TIFFReadRawTile + TIFFWriteEncodedStrip + TIFFWriteRawStrip + TIFFWriteEncodedTile + TIFFWriteRawTile + TIFFSetWriteOffset + TIFFSwabShort + TIFFSwabLong + TIFFSwabArrayOfShort + TIFFSwabArrayOfLong + TIFFReverseBits + TIFFGetBitRevTable + _TIFFmalloc + _TIFFrealloc + _TIFFfree + _TIFFmemset + _TIFFmemcpy + _TIFFmemcmp + diff --git a/libtiff/makefile.vc b/libtiff/makefile.vc new file mode 100755 index 0000000..c6fe716 --- /dev/null +++ b/libtiff/makefile.vc @@ -0,0 +1,79 @@ +# +# Simple MS VC++ Makefile +# +# To build: +# C:\libtiff\libtiff> nmake /f makefile.vc all +# + +# +# Select _CONSOLE to build a library which reports errors to stderr, or +# _WINDOWED to build such that errors are reported via MessageBox(). +# +WINMODE = -DTIF_PLATFORM_CONSOLE +#WINMODE = -DTIF_PLATFORM_WINDOWED + +CC = cl +INCL = -I. +LIBS = +CFLAGS = /nologo /W3 $(INCL) $(WINMODE) + +OBJ = \ + tif_aux.obj \ + tif_close.obj \ + tif_codec.obj \ + tif_compress.obj \ + tif_dir.obj \ + tif_dirinfo.obj \ + tif_dirread.obj \ + tif_dirwrite.obj \ + tif_dumpmode.obj \ + tif_error.obj \ + tif_fax3.obj \ + fax3sm_winnt.obj \ + tif_getimage.obj \ + tif_jpeg.obj \ + tif_flush.obj \ + tif_luv.obj \ + tif_lzw.obj \ + tif_next.obj \ + tif_open.obj \ + tif_packbits.obj \ + tif_pixarlog.obj \ + tif_predict.obj \ + tif_print.obj \ + tif_read.obj \ + tif_swab.obj \ + tif_strip.obj \ + tif_thunder.obj \ + tif_tile.obj \ + tif_win32.obj \ + tif_version.obj \ + tif_warning.obj \ + tif_write.obj \ + tif_zip.obj + +VERSION = ..\VERSION +ALPHA = ..\dist\tiff.alpha + +default: libtiff.lib + +all: libtiff.lib libtiff.dll + +libtiff.lib: $(OBJ) + lib /out:libtiff.lib $(OBJ) + +libtiff.dll: $(OBJ) + link /dll /def:libtiff.def /out:libtiff.dll /implib:libtiff_i.lib \ + $(OBJ) $(LIBS) + +version.h: $(VERSION) $(ALPHA) mkversion.c + $(CC) mkversion.c + del version.h + .\mkversion.exe -v $(VERSION) -a $(ALPHA) version.h + +clean: + del *.obj *.lib libtiff.dll + +tif_version.obj: version.h + + diff --git a/libtiff/mkg3states.c b/libtiff/mkg3states.c new file mode 100755 index 0000000..a3ce1a5 --- /dev/null +++ b/libtiff/mkg3states.c @@ -0,0 +1,436 @@ +/* "$Header: /home/cvsroot/libtiff/libtiff/mkg3states.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1991-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* Initialise fax decoder tables + * Decoder support is derived, with permission, from the code + * in Frank Cringle's viewfax program; + * Copyright (C) 1990, 1995 Frank D. Cringle. + */ +#if defined(unix) || defined(__unix) +#include "port.h" +#else +#include +#include +#include +#endif + +#include "tif_fax3.h" + +#define streq(a,b) (strcmp(a,b) == 0) + +/* NB: can't use names in tif_fax3.h 'cuz they are declared const */ +TIFFFaxTabEnt MainTable[128]; +TIFFFaxTabEnt WhiteTable[4096]; +TIFFFaxTabEnt BlackTable[8192]; + +struct proto { + uint16 code; /* right justified, lsb-first, zero filled */ + uint16 val; /* (pixel count)<<4 + code width */ +}; + +static struct proto Pass[] = { +{ 0x0008, 4 }, +{ 0, 0 } +}; + +static struct proto Horiz[] = { +{ 0x0004, 3 }, +{ 0, 0 } +}; + +static struct proto V0[] = { +{ 0x0001, 1 }, +{ 0, 0 } +}; + +static struct proto VR[] = { +{ 0x0006, (1<<4)+3 }, +{ 0x0030, (2<<4)+6 }, +{ 0x0060, (3<<4)+7 }, +{ 0, 0 } +}; + +static struct proto VL[] = { +{ 0x0002, (1<<4)+3 }, +{ 0x0010, (2<<4)+6 }, +{ 0x0020, (3<<4)+7 }, +{ 0, 0 } +}; + +static struct proto Ext[] = { +{ 0x0040, 7 }, +{ 0, 0 } +}; + +static struct proto EOLV[] = { +{ 0x0000, 7 }, +{ 0, 0 } +}; + +static struct proto MakeUpW[] = { +{ 0x001b, 1029 }, +{ 0x0009, 2053 }, +{ 0x003a, 3078 }, +{ 0x0076, 4103 }, +{ 0x006c, 5128 }, +{ 0x00ec, 6152 }, +{ 0x0026, 7176 }, +{ 0x00a6, 8200 }, +{ 0x0016, 9224 }, +{ 0x00e6, 10248 }, +{ 0x0066, 11273 }, +{ 0x0166, 12297 }, +{ 0x0096, 13321 }, +{ 0x0196, 14345 }, +{ 0x0056, 15369 }, +{ 0x0156, 16393 }, +{ 0x00d6, 17417 }, +{ 0x01d6, 18441 }, +{ 0x0036, 19465 }, +{ 0x0136, 20489 }, +{ 0x00b6, 21513 }, +{ 0x01b6, 22537 }, +{ 0x0032, 23561 }, +{ 0x0132, 24585 }, +{ 0x00b2, 25609 }, +{ 0x0006, 26630 }, +{ 0x01b2, 27657 }, +{ 0, 0 } +}; + +static struct proto MakeUpB[] = { +{ 0x03c0, 1034 }, +{ 0x0130, 2060 }, +{ 0x0930, 3084 }, +{ 0x0da0, 4108 }, +{ 0x0cc0, 5132 }, +{ 0x02c0, 6156 }, +{ 0x0ac0, 7180 }, +{ 0x06c0, 8205 }, +{ 0x16c0, 9229 }, +{ 0x0a40, 10253 }, +{ 0x1a40, 11277 }, +{ 0x0640, 12301 }, +{ 0x1640, 13325 }, +{ 0x09c0, 14349 }, +{ 0x19c0, 15373 }, +{ 0x05c0, 16397 }, +{ 0x15c0, 17421 }, +{ 0x0dc0, 18445 }, +{ 0x1dc0, 19469 }, +{ 0x0940, 20493 }, +{ 0x1940, 21517 }, +{ 0x0540, 22541 }, +{ 0x1540, 23565 }, +{ 0x0b40, 24589 }, +{ 0x1b40, 25613 }, +{ 0x04c0, 26637 }, +{ 0x14c0, 27661 }, +{ 0, 0 } +}; + +static struct proto MakeUp[] = { +{ 0x0080, 28683 }, +{ 0x0180, 29707 }, +{ 0x0580, 30731 }, +{ 0x0480, 31756 }, +{ 0x0c80, 32780 }, +{ 0x0280, 33804 }, +{ 0x0a80, 34828 }, +{ 0x0680, 35852 }, +{ 0x0e80, 36876 }, +{ 0x0380, 37900 }, +{ 0x0b80, 38924 }, +{ 0x0780, 39948 }, +{ 0x0f80, 40972 }, +{ 0, 0 } +}; + +static struct proto TermW[] = { +{ 0x00ac, 8 }, +{ 0x0038, 22 }, +{ 0x000e, 36 }, +{ 0x0001, 52 }, +{ 0x000d, 68 }, +{ 0x0003, 84 }, +{ 0x0007, 100 }, +{ 0x000f, 116 }, +{ 0x0019, 133 }, +{ 0x0005, 149 }, +{ 0x001c, 165 }, +{ 0x0002, 181 }, +{ 0x0004, 198 }, +{ 0x0030, 214 }, +{ 0x000b, 230 }, +{ 0x002b, 246 }, +{ 0x0015, 262 }, +{ 0x0035, 278 }, +{ 0x0072, 295 }, +{ 0x0018, 311 }, +{ 0x0008, 327 }, +{ 0x0074, 343 }, +{ 0x0060, 359 }, +{ 0x0010, 375 }, +{ 0x000a, 391 }, +{ 0x006a, 407 }, +{ 0x0064, 423 }, +{ 0x0012, 439 }, +{ 0x000c, 455 }, +{ 0x0040, 472 }, +{ 0x00c0, 488 }, +{ 0x0058, 504 }, +{ 0x00d8, 520 }, +{ 0x0048, 536 }, +{ 0x00c8, 552 }, +{ 0x0028, 568 }, +{ 0x00a8, 584 }, +{ 0x0068, 600 }, +{ 0x00e8, 616 }, +{ 0x0014, 632 }, +{ 0x0094, 648 }, +{ 0x0054, 664 }, +{ 0x00d4, 680 }, +{ 0x0034, 696 }, +{ 0x00b4, 712 }, +{ 0x0020, 728 }, +{ 0x00a0, 744 }, +{ 0x0050, 760 }, +{ 0x00d0, 776 }, +{ 0x004a, 792 }, +{ 0x00ca, 808 }, +{ 0x002a, 824 }, +{ 0x00aa, 840 }, +{ 0x0024, 856 }, +{ 0x00a4, 872 }, +{ 0x001a, 888 }, +{ 0x009a, 904 }, +{ 0x005a, 920 }, +{ 0x00da, 936 }, +{ 0x0052, 952 }, +{ 0x00d2, 968 }, +{ 0x004c, 984 }, +{ 0x00cc, 1000 }, +{ 0x002c, 1016 }, +{ 0, 0 } +}; + +static struct proto TermB[] = { +{ 0x03b0, 10 }, +{ 0x0002, 19 }, +{ 0x0003, 34 }, +{ 0x0001, 50 }, +{ 0x0006, 67 }, +{ 0x000c, 84 }, +{ 0x0004, 100 }, +{ 0x0018, 117 }, +{ 0x0028, 134 }, +{ 0x0008, 150 }, +{ 0x0010, 167 }, +{ 0x0050, 183 }, +{ 0x0070, 199 }, +{ 0x0020, 216 }, +{ 0x00e0, 232 }, +{ 0x0030, 249 }, +{ 0x03a0, 266 }, +{ 0x0060, 282 }, +{ 0x0040, 298 }, +{ 0x0730, 315 }, +{ 0x00b0, 331 }, +{ 0x01b0, 347 }, +{ 0x0760, 363 }, +{ 0x00a0, 379 }, +{ 0x0740, 395 }, +{ 0x00c0, 411 }, +{ 0x0530, 428 }, +{ 0x0d30, 444 }, +{ 0x0330, 460 }, +{ 0x0b30, 476 }, +{ 0x0160, 492 }, +{ 0x0960, 508 }, +{ 0x0560, 524 }, +{ 0x0d60, 540 }, +{ 0x04b0, 556 }, +{ 0x0cb0, 572 }, +{ 0x02b0, 588 }, +{ 0x0ab0, 604 }, +{ 0x06b0, 620 }, +{ 0x0eb0, 636 }, +{ 0x0360, 652 }, +{ 0x0b60, 668 }, +{ 0x05b0, 684 }, +{ 0x0db0, 700 }, +{ 0x02a0, 716 }, +{ 0x0aa0, 732 }, +{ 0x06a0, 748 }, +{ 0x0ea0, 764 }, +{ 0x0260, 780 }, +{ 0x0a60, 796 }, +{ 0x04a0, 812 }, +{ 0x0ca0, 828 }, +{ 0x0240, 844 }, +{ 0x0ec0, 860 }, +{ 0x01c0, 876 }, +{ 0x0e40, 892 }, +{ 0x0140, 908 }, +{ 0x01a0, 924 }, +{ 0x09a0, 940 }, +{ 0x0d40, 956 }, +{ 0x0340, 972 }, +{ 0x05a0, 988 }, +{ 0x0660, 1004 }, +{ 0x0e60, 1020 }, +{ 0, 0 } +}; + +static struct proto EOLH[] = { +{ 0x0000, 11 }, +{ 0, 0 } +}; + +static void +FillTable(TIFFFaxTabEnt *T, int Size, struct proto *P, int State) +{ + int limit = 1 << Size; + + while (P->val) { + int width = P->val & 15; + int param = P->val >> 4; + int incr = 1 << width; + int code; + for (code = P->code; code < limit; code += incr) { + TIFFFaxTabEnt *E = T+code; + E->State = State; + E->Width = width; + E->Param = param; + } + P++; + } +} + +static char* storage_class = ""; +static char* const_class = ""; +static int packoutput = 1; +static char* prebrace = ""; +static char* postbrace = ""; + +void +WriteTable(FILE* fd, const TIFFFaxTabEnt* T, int Size, const char* name) +{ + int i; + char* sep; + + fprintf(fd, "%s %s TIFFFaxTabEnt %s[%d] = {", + storage_class, const_class, name, Size); + if (packoutput) { + sep = "\n"; + for (i = 0; i < Size; i++) { + fprintf(fd, "%s%s%d,%d,%d%s", + sep, prebrace, T->State, T->Width, (int) T->Param, postbrace); + if (((i+1) % 12) == 0) + sep = ",\n"; + else + sep = ","; + T++; + } + } else { + sep = "\n "; + for (i = 0; i < Size; i++) { + fprintf(fd, "%s%s%3d,%3d,%4d%s", + sep, prebrace, T->State, T->Width, (int) T->Param, postbrace); + if (((i+1) % 6) == 0) + sep = ",\n "; + else + sep = ","; + T++; + } + } + fprintf(fd, "\n};\n"); +} + +/* initialise the huffman code tables */ +int +main(int argc, char* argv[]) +{ + FILE* fd; + char* outputfile; + int c; + extern int optind; + extern char* optarg; + + while ((c = getopt(argc, argv, "c:s:bp")) != -1) + switch (c) { + case 'c': + const_class = optarg; + break; + case 's': + storage_class = optarg; + break; + case 'p': + packoutput = 0; + break; + case 'b': + prebrace = "{"; + postbrace = "}"; + break; + case '?': + fprintf(stderr, + "usage: %s [-c const] [-s storage] [-p] [-b] file\n", + argv[0]); + return (-1); + } + outputfile = optind < argc ? argv[optind] : "g3states.h"; + fd = fopen(outputfile, "w"); + if (fd == NULL) { + fprintf(stderr, "%s: %s: Cannot create output file.\n", + argv[0], outputfile); + return (-2); + } + FillTable(MainTable, 7, Pass, S_Pass); + FillTable(MainTable, 7, Horiz, S_Horiz); + FillTable(MainTable, 7, V0, S_V0); + FillTable(MainTable, 7, VR, S_VR); + FillTable(MainTable, 7, VL, S_VL); + FillTable(MainTable, 7, Ext, S_Ext); + FillTable(MainTable, 7, EOLV, S_EOL); + FillTable(WhiteTable, 12, MakeUpW, S_MakeUpW); + FillTable(WhiteTable, 12, MakeUp, S_MakeUp); + FillTable(WhiteTable, 12, TermW, S_TermW); + FillTable(WhiteTable, 12, EOLH, S_EOL); + FillTable(BlackTable, 13, MakeUpB, S_MakeUpB); + FillTable(BlackTable, 13, MakeUp, S_MakeUp); + FillTable(BlackTable, 13, TermB, S_TermB); + FillTable(BlackTable, 13, EOLH, S_EOL); + + fprintf(fd, "/* WARNING, this file was automatically generated by the\n"); + fprintf(fd, " mkg3states program */\n"); + fprintf(fd, "#include \"tiff.h\"\n"); + fprintf(fd, "#include \"tif_fax3.h\"\n"); + WriteTable(fd, MainTable, 128, "TIFFFaxMainTable"); + WriteTable(fd, WhiteTable, 4096, "TIFFFaxWhiteTable"); + WriteTable(fd, BlackTable, 8192, "TIFFFaxBlackTable"); + fclose(fd); + return (0); +} diff --git a/libtiff/mkspans.c b/libtiff/mkspans.c new file mode 100755 index 0000000..f14d34a --- /dev/null +++ b/libtiff/mkspans.c @@ -0,0 +1,72 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/mkspans.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1991-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include "tiffcomp.h" + +/* + * Hack program to construct tables used to find + * runs of zeros and ones in Group 3 Fax encoding. + */ + +dumparray(name, runs) + char *name; + unsigned char runs[256]; +{ + register int i; + register char *sep; + printf("static u_char %s[256] = {\n", name); + sep = " "; + for (i = 0; i < 256; i++) { + printf("%s%d", sep, runs[i]); + if (((i + 1) % 16) == 0) { + printf(", /* 0x%02x - 0x%02x */\n", i-15, i); + sep = " "; + } else + sep = ", "; + } + printf("\n};\n"); +} + +main() +{ + unsigned char runs[2][256]; + + memset(runs[0], 0, 256*sizeof (char)); + memset(runs[1], 0, 256*sizeof (char)); + { register int run, runlen, i; + runlen = 1; + for (run = 0x80; run != 0xff; run = (run>>1)|0x80) { + for (i = run-1; i >= 0; i--) { + runs[1][run|i] = runlen; + runs[0][(~(run|i)) & 0xff] = runlen; + } + runlen++; + } + runs[1][0xff] = runs[0][0] = 8; + } + dumparray("bruns", runs[0]); + dumparray("wruns", runs[1]); +} diff --git a/libtiff/mkversion.c b/libtiff/mkversion.c new file mode 100755 index 0000000..ab19ed3 --- /dev/null +++ b/libtiff/mkversion.c @@ -0,0 +1,132 @@ +/* "$Header: /home/cvsroot/libtiff/libtiff/mkversion.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1995-1997 Sam Leffler + * Copyright (c) 1995-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * Generate a library version string for systems that + * do not have a shell (by default this is done with + * awk and echo from the Makefile). + * + * This was written by Peter Greenham for Acorn systems. + * + * Syntax: mkversion [-v version-file] [-a alpha-file] [] + */ +#include +#include +#include + +static void +usage(void) +{ + fprintf(stderr, + "usage: mkversion [-v version-file] [-a alpha-file] [outfile]\n"); + exit(-1); +} + +static FILE* +openFile(char* filename) +{ + FILE* fd = fopen(filename, "r"); + if (fd == NULL) { + fprintf(stderr, "mkversion: %s: Could not open for reading.\n", + filename); + exit(-1); + } + return (fd); +} + +int +main(int argc, char* argv[]) +{ + char* versionFile = "../VERSION"; + char* alphaFile = "../dist/tiff.alpha"; + char version[128]; + char alpha[128]; + FILE* fd; + char* cp; + + argc--, argv++; + while (argc > 0 && argv[0][0] == '-') { + if (strcmp(argv[0], "-v") == 0) { + if (argc < 1) + usage(); + argc--, argv++; + versionFile = argv[0]; + } else if (strcmp(argv[0], "-a") == 0) { + if (argc < 1) + usage(); + argc--, argv++; + alphaFile = argv[0]; + } else + usage(); + argc--, argv++; + } + fd = openFile(versionFile); + if (fgets(version, sizeof (version)-1, fd) == NULL) { + fprintf(stderr, "mkversion: No version information in %s.\n", + versionFile); + exit(-1); + } + cp = strchr(version, '\n'); + if (cp) + *cp = '\0'; + fclose(fd); + fd = openFile(alphaFile); + if (fgets(alpha, sizeof (alpha)-1, fd) == NULL) { + fprintf(stderr, "mkversion: No alpha information in %s.\n", alphaFile); + exit(-1); + } + fclose(fd); + cp = strchr(alpha, ' '); /* skip to 3rd blank-separated field */ + if (cp) + cp = strchr(cp+1, ' '); + if (cp) { /* append alpha to version */ + char* tp; + for (tp = strchr(version, '\0'), cp++; (*tp = *cp) != 0; tp++, cp++) + ; + if (tp[-1] == '\n') + tp[-1] = '\0'; + } else { + fprintf(stderr, "mkversion: Malformed alpha information in %s.\n", + alphaFile); + exit(-1); + } + if (argc > 0) { + fd = fopen(argv[0], "w"); + if (fd == NULL) { + fprintf(stderr, "mkversion: %s: Could not open for writing.\n", + argv[0]); + exit(-1); + } + } else + fd = stdout; + fprintf(fd, "#define VERSION \"LIBTIFF, Version %s\\n", version); + fprintf(fd, "Copyright (c) 1988-1996 Sam Leffler\\n"); + fprintf(fd, "Copyright (c) 1991-1996 Silicon Graphics, Inc.\"\n"); + + if (fd != stdout) + fclose(fd); + return (0); +} diff --git a/libtiff/t4.h b/libtiff/t4.h new file mode 100755 index 0000000..906d1de --- /dev/null +++ b/libtiff/t4.h @@ -0,0 +1,285 @@ +/* $Id: t4.h,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#ifndef _T4_ +#define _T4_ +/* + * CCITT T.4 1D Huffman runlength codes and + * related definitions. Given the small sizes + * of these tables it does not seem + * worthwhile to make code & length 8 bits. + */ +typedef struct tableentry { + unsigned short length; /* bit length of g3 code */ + unsigned short code; /* g3 code */ + short runlen; /* run length in bits */ +} tableentry; + +#define EOL 0x001 /* EOL code value - 0000 0000 0000 1 */ + +/* status values returned instead of a run length */ +#define G3CODE_EOL -1 /* NB: ACT_EOL - ACT_WRUNT */ +#define G3CODE_INVALID -2 /* NB: ACT_INVALID - ACT_WRUNT */ +#define G3CODE_EOF -3 /* end of input data */ +#define G3CODE_INCOMP -4 /* incomplete run code */ + +/* + * Note that these tables are ordered such that the + * index into the table is known to be either the + * run length, or (run length / 64) + a fixed offset. + * + * NB: The G3CODE_INVALID entries are only used + * during state generation (see mkg3states.c). + */ +#ifdef G3CODES +const tableentry TIFFFaxWhiteCodes[] = { + { 8, 0x35, 0 }, /* 0011 0101 */ + { 6, 0x7, 1 }, /* 0001 11 */ + { 4, 0x7, 2 }, /* 0111 */ + { 4, 0x8, 3 }, /* 1000 */ + { 4, 0xB, 4 }, /* 1011 */ + { 4, 0xC, 5 }, /* 1100 */ + { 4, 0xE, 6 }, /* 1110 */ + { 4, 0xF, 7 }, /* 1111 */ + { 5, 0x13, 8 }, /* 1001 1 */ + { 5, 0x14, 9 }, /* 1010 0 */ + { 5, 0x7, 10 }, /* 0011 1 */ + { 5, 0x8, 11 }, /* 0100 0 */ + { 6, 0x8, 12 }, /* 0010 00 */ + { 6, 0x3, 13 }, /* 0000 11 */ + { 6, 0x34, 14 }, /* 1101 00 */ + { 6, 0x35, 15 }, /* 1101 01 */ + { 6, 0x2A, 16 }, /* 1010 10 */ + { 6, 0x2B, 17 }, /* 1010 11 */ + { 7, 0x27, 18 }, /* 0100 111 */ + { 7, 0xC, 19 }, /* 0001 100 */ + { 7, 0x8, 20 }, /* 0001 000 */ + { 7, 0x17, 21 }, /* 0010 111 */ + { 7, 0x3, 22 }, /* 0000 011 */ + { 7, 0x4, 23 }, /* 0000 100 */ + { 7, 0x28, 24 }, /* 0101 000 */ + { 7, 0x2B, 25 }, /* 0101 011 */ + { 7, 0x13, 26 }, /* 0010 011 */ + { 7, 0x24, 27 }, /* 0100 100 */ + { 7, 0x18, 28 }, /* 0011 000 */ + { 8, 0x2, 29 }, /* 0000 0010 */ + { 8, 0x3, 30 }, /* 0000 0011 */ + { 8, 0x1A, 31 }, /* 0001 1010 */ + { 8, 0x1B, 32 }, /* 0001 1011 */ + { 8, 0x12, 33 }, /* 0001 0010 */ + { 8, 0x13, 34 }, /* 0001 0011 */ + { 8, 0x14, 35 }, /* 0001 0100 */ + { 8, 0x15, 36 }, /* 0001 0101 */ + { 8, 0x16, 37 }, /* 0001 0110 */ + { 8, 0x17, 38 }, /* 0001 0111 */ + { 8, 0x28, 39 }, /* 0010 1000 */ + { 8, 0x29, 40 }, /* 0010 1001 */ + { 8, 0x2A, 41 }, /* 0010 1010 */ + { 8, 0x2B, 42 }, /* 0010 1011 */ + { 8, 0x2C, 43 }, /* 0010 1100 */ + { 8, 0x2D, 44 }, /* 0010 1101 */ + { 8, 0x4, 45 }, /* 0000 0100 */ + { 8, 0x5, 46 }, /* 0000 0101 */ + { 8, 0xA, 47 }, /* 0000 1010 */ + { 8, 0xB, 48 }, /* 0000 1011 */ + { 8, 0x52, 49 }, /* 0101 0010 */ + { 8, 0x53, 50 }, /* 0101 0011 */ + { 8, 0x54, 51 }, /* 0101 0100 */ + { 8, 0x55, 52 }, /* 0101 0101 */ + { 8, 0x24, 53 }, /* 0010 0100 */ + { 8, 0x25, 54 }, /* 0010 0101 */ + { 8, 0x58, 55 }, /* 0101 1000 */ + { 8, 0x59, 56 }, /* 0101 1001 */ + { 8, 0x5A, 57 }, /* 0101 1010 */ + { 8, 0x5B, 58 }, /* 0101 1011 */ + { 8, 0x4A, 59 }, /* 0100 1010 */ + { 8, 0x4B, 60 }, /* 0100 1011 */ + { 8, 0x32, 61 }, /* 0011 0010 */ + { 8, 0x33, 62 }, /* 0011 0011 */ + { 8, 0x34, 63 }, /* 0011 0100 */ + { 5, 0x1B, 64 }, /* 1101 1 */ + { 5, 0x12, 128 }, /* 1001 0 */ + { 6, 0x17, 192 }, /* 0101 11 */ + { 7, 0x37, 256 }, /* 0110 111 */ + { 8, 0x36, 320 }, /* 0011 0110 */ + { 8, 0x37, 384 }, /* 0011 0111 */ + { 8, 0x64, 448 }, /* 0110 0100 */ + { 8, 0x65, 512 }, /* 0110 0101 */ + { 8, 0x68, 576 }, /* 0110 1000 */ + { 8, 0x67, 640 }, /* 0110 0111 */ + { 9, 0xCC, 704 }, /* 0110 0110 0 */ + { 9, 0xCD, 768 }, /* 0110 0110 1 */ + { 9, 0xD2, 832 }, /* 0110 1001 0 */ + { 9, 0xD3, 896 }, /* 0110 1001 1 */ + { 9, 0xD4, 960 }, /* 0110 1010 0 */ + { 9, 0xD5, 1024 }, /* 0110 1010 1 */ + { 9, 0xD6, 1088 }, /* 0110 1011 0 */ + { 9, 0xD7, 1152 }, /* 0110 1011 1 */ + { 9, 0xD8, 1216 }, /* 0110 1100 0 */ + { 9, 0xD9, 1280 }, /* 0110 1100 1 */ + { 9, 0xDA, 1344 }, /* 0110 1101 0 */ + { 9, 0xDB, 1408 }, /* 0110 1101 1 */ + { 9, 0x98, 1472 }, /* 0100 1100 0 */ + { 9, 0x99, 1536 }, /* 0100 1100 1 */ + { 9, 0x9A, 1600 }, /* 0100 1101 0 */ + { 6, 0x18, 1664 }, /* 0110 00 */ + { 9, 0x9B, 1728 }, /* 0100 1101 1 */ + { 11, 0x8, 1792 }, /* 0000 0001 000 */ + { 11, 0xC, 1856 }, /* 0000 0001 100 */ + { 11, 0xD, 1920 }, /* 0000 0001 101 */ + { 12, 0x12, 1984 }, /* 0000 0001 0010 */ + { 12, 0x13, 2048 }, /* 0000 0001 0011 */ + { 12, 0x14, 2112 }, /* 0000 0001 0100 */ + { 12, 0x15, 2176 }, /* 0000 0001 0101 */ + { 12, 0x16, 2240 }, /* 0000 0001 0110 */ + { 12, 0x17, 2304 }, /* 0000 0001 0111 */ + { 12, 0x1C, 2368 }, /* 0000 0001 1100 */ + { 12, 0x1D, 2432 }, /* 0000 0001 1101 */ + { 12, 0x1E, 2496 }, /* 0000 0001 1110 */ + { 12, 0x1F, 2560 }, /* 0000 0001 1111 */ + { 12, 0x1, G3CODE_EOL }, /* 0000 0000 0001 */ + { 9, 0x1, G3CODE_INVALID }, /* 0000 0000 1 */ + { 10, 0x1, G3CODE_INVALID }, /* 0000 0000 01 */ + { 11, 0x1, G3CODE_INVALID }, /* 0000 0000 001 */ + { 12, 0x0, G3CODE_INVALID }, /* 0000 0000 0000 */ +}; + +const tableentry TIFFFaxBlackCodes[] = { + { 10, 0x37, 0 }, /* 0000 1101 11 */ + { 3, 0x2, 1 }, /* 010 */ + { 2, 0x3, 2 }, /* 11 */ + { 2, 0x2, 3 }, /* 10 */ + { 3, 0x3, 4 }, /* 011 */ + { 4, 0x3, 5 }, /* 0011 */ + { 4, 0x2, 6 }, /* 0010 */ + { 5, 0x3, 7 }, /* 0001 1 */ + { 6, 0x5, 8 }, /* 0001 01 */ + { 6, 0x4, 9 }, /* 0001 00 */ + { 7, 0x4, 10 }, /* 0000 100 */ + { 7, 0x5, 11 }, /* 0000 101 */ + { 7, 0x7, 12 }, /* 0000 111 */ + { 8, 0x4, 13 }, /* 0000 0100 */ + { 8, 0x7, 14 }, /* 0000 0111 */ + { 9, 0x18, 15 }, /* 0000 1100 0 */ + { 10, 0x17, 16 }, /* 0000 0101 11 */ + { 10, 0x18, 17 }, /* 0000 0110 00 */ + { 10, 0x8, 18 }, /* 0000 0010 00 */ + { 11, 0x67, 19 }, /* 0000 1100 111 */ + { 11, 0x68, 20 }, /* 0000 1101 000 */ + { 11, 0x6C, 21 }, /* 0000 1101 100 */ + { 11, 0x37, 22 }, /* 0000 0110 111 */ + { 11, 0x28, 23 }, /* 0000 0101 000 */ + { 11, 0x17, 24 }, /* 0000 0010 111 */ + { 11, 0x18, 25 }, /* 0000 0011 000 */ + { 12, 0xCA, 26 }, /* 0000 1100 1010 */ + { 12, 0xCB, 27 }, /* 0000 1100 1011 */ + { 12, 0xCC, 28 }, /* 0000 1100 1100 */ + { 12, 0xCD, 29 }, /* 0000 1100 1101 */ + { 12, 0x68, 30 }, /* 0000 0110 1000 */ + { 12, 0x69, 31 }, /* 0000 0110 1001 */ + { 12, 0x6A, 32 }, /* 0000 0110 1010 */ + { 12, 0x6B, 33 }, /* 0000 0110 1011 */ + { 12, 0xD2, 34 }, /* 0000 1101 0010 */ + { 12, 0xD3, 35 }, /* 0000 1101 0011 */ + { 12, 0xD4, 36 }, /* 0000 1101 0100 */ + { 12, 0xD5, 37 }, /* 0000 1101 0101 */ + { 12, 0xD6, 38 }, /* 0000 1101 0110 */ + { 12, 0xD7, 39 }, /* 0000 1101 0111 */ + { 12, 0x6C, 40 }, /* 0000 0110 1100 */ + { 12, 0x6D, 41 }, /* 0000 0110 1101 */ + { 12, 0xDA, 42 }, /* 0000 1101 1010 */ + { 12, 0xDB, 43 }, /* 0000 1101 1011 */ + { 12, 0x54, 44 }, /* 0000 0101 0100 */ + { 12, 0x55, 45 }, /* 0000 0101 0101 */ + { 12, 0x56, 46 }, /* 0000 0101 0110 */ + { 12, 0x57, 47 }, /* 0000 0101 0111 */ + { 12, 0x64, 48 }, /* 0000 0110 0100 */ + { 12, 0x65, 49 }, /* 0000 0110 0101 */ + { 12, 0x52, 50 }, /* 0000 0101 0010 */ + { 12, 0x53, 51 }, /* 0000 0101 0011 */ + { 12, 0x24, 52 }, /* 0000 0010 0100 */ + { 12, 0x37, 53 }, /* 0000 0011 0111 */ + { 12, 0x38, 54 }, /* 0000 0011 1000 */ + { 12, 0x27, 55 }, /* 0000 0010 0111 */ + { 12, 0x28, 56 }, /* 0000 0010 1000 */ + { 12, 0x58, 57 }, /* 0000 0101 1000 */ + { 12, 0x59, 58 }, /* 0000 0101 1001 */ + { 12, 0x2B, 59 }, /* 0000 0010 1011 */ + { 12, 0x2C, 60 }, /* 0000 0010 1100 */ + { 12, 0x5A, 61 }, /* 0000 0101 1010 */ + { 12, 0x66, 62 }, /* 0000 0110 0110 */ + { 12, 0x67, 63 }, /* 0000 0110 0111 */ + { 10, 0xF, 64 }, /* 0000 0011 11 */ + { 12, 0xC8, 128 }, /* 0000 1100 1000 */ + { 12, 0xC9, 192 }, /* 0000 1100 1001 */ + { 12, 0x5B, 256 }, /* 0000 0101 1011 */ + { 12, 0x33, 320 }, /* 0000 0011 0011 */ + { 12, 0x34, 384 }, /* 0000 0011 0100 */ + { 12, 0x35, 448 }, /* 0000 0011 0101 */ + { 13, 0x6C, 512 }, /* 0000 0011 0110 0 */ + { 13, 0x6D, 576 }, /* 0000 0011 0110 1 */ + { 13, 0x4A, 640 }, /* 0000 0010 0101 0 */ + { 13, 0x4B, 704 }, /* 0000 0010 0101 1 */ + { 13, 0x4C, 768 }, /* 0000 0010 0110 0 */ + { 13, 0x4D, 832 }, /* 0000 0010 0110 1 */ + { 13, 0x72, 896 }, /* 0000 0011 1001 0 */ + { 13, 0x73, 960 }, /* 0000 0011 1001 1 */ + { 13, 0x74, 1024 }, /* 0000 0011 1010 0 */ + { 13, 0x75, 1088 }, /* 0000 0011 1010 1 */ + { 13, 0x76, 1152 }, /* 0000 0011 1011 0 */ + { 13, 0x77, 1216 }, /* 0000 0011 1011 1 */ + { 13, 0x52, 1280 }, /* 0000 0010 1001 0 */ + { 13, 0x53, 1344 }, /* 0000 0010 1001 1 */ + { 13, 0x54, 1408 }, /* 0000 0010 1010 0 */ + { 13, 0x55, 1472 }, /* 0000 0010 1010 1 */ + { 13, 0x5A, 1536 }, /* 0000 0010 1101 0 */ + { 13, 0x5B, 1600 }, /* 0000 0010 1101 1 */ + { 13, 0x64, 1664 }, /* 0000 0011 0010 0 */ + { 13, 0x65, 1728 }, /* 0000 0011 0010 1 */ + { 11, 0x8, 1792 }, /* 0000 0001 000 */ + { 11, 0xC, 1856 }, /* 0000 0001 100 */ + { 11, 0xD, 1920 }, /* 0000 0001 101 */ + { 12, 0x12, 1984 }, /* 0000 0001 0010 */ + { 12, 0x13, 2048 }, /* 0000 0001 0011 */ + { 12, 0x14, 2112 }, /* 0000 0001 0100 */ + { 12, 0x15, 2176 }, /* 0000 0001 0101 */ + { 12, 0x16, 2240 }, /* 0000 0001 0110 */ + { 12, 0x17, 2304 }, /* 0000 0001 0111 */ + { 12, 0x1C, 2368 }, /* 0000 0001 1100 */ + { 12, 0x1D, 2432 }, /* 0000 0001 1101 */ + { 12, 0x1E, 2496 }, /* 0000 0001 1110 */ + { 12, 0x1F, 2560 }, /* 0000 0001 1111 */ + { 12, 0x1, G3CODE_EOL }, /* 0000 0000 0001 */ + { 9, 0x1, G3CODE_INVALID }, /* 0000 0000 1 */ + { 10, 0x1, G3CODE_INVALID }, /* 0000 0000 01 */ + { 11, 0x1, G3CODE_INVALID }, /* 0000 0000 001 */ + { 12, 0x0, G3CODE_INVALID }, /* 0000 0000 0000 */ +}; +#else +extern const tableentry TIFFFaxWhiteCodes[]; +extern const tableentry TIFFFaxBlackCodes[]; +#endif +#endif /* _T4_ */ diff --git a/libtiff/tif_acorn.c b/libtiff/tif_acorn.c new file mode 100755 index 0000000..66c6e87 --- /dev/null +++ b/libtiff/tif_acorn.c @@ -0,0 +1,519 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_acorn.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library RISC OS specific Routines. + * Developed out of the Unix version. + * Peter Greenham, May 1995 + */ +#include "tiffiop.h" +#include +#include + +/* +Low-level file handling +~~~~~~~~~~~~~~~~~~~~~~~ +The functions in osfcn.h are unavailable when compiling under C, as it's a +C++ header. Therefore they have been implemented here. + +Now, why have I done it this way? + +The definitive API library for RISC OS is Jonathan Coxhead's OSLib, which +uses heavily optimised ARM assembler or even plain inline SWI calls for +maximum performance and minimum runtime size. However, I don't want to make +LIBTIFF need that to survive. Therefore I have also emulated the functions +using macros to _swi() and _swix() defined in the swis.h header, and +borrowing types from kernel.h, which is less efficient but doesn't need any +third-party libraries. + */ + +#ifdef INCLUDE_OSLIB + +#include "osfile.h" +#include "osgbpb.h" +#include "osargs.h" +#include "osfind.h" + +#else + +/* OSLIB EMULATION STARTS */ + +#include "kernel.h" +#include "swis.h" + +/* From oslib:types.h */ +typedef unsigned int bits; +typedef unsigned char byte; +#ifndef TRUE +#define TRUE 1 +#endif +#ifndef FALSE +#define FALSE 0 +#endif +#ifndef NULL +#define NULL 0 +#endif +#ifndef SKIP +#define SKIP 0 +#endif + +/* From oslib:os.h */ +typedef _kernel_oserror os_error; +typedef byte os_f; + +/* From oslib:osfile.h */ +#undef OS_File +#define OS_File 0x8 + +/* From oslib:osgbpb.h */ +#undef OS_GBPB +#define OS_GBPB 0xC +#undef OSGBPB_Write +#define OSGBPB_Write 0x2 +#undef OSGBPB_Read +#define OSGBPB_Read 0x4 + +extern os_error *xosgbpb_write (os_f file, + byte *data, + int size, + int *unwritten); +extern int osgbpb_write (os_f file, + byte *data, + int size); + +#define xosgbpb_write(file, data, size, unwritten) \ + (os_error*) _swix(OS_GBPB, _IN(0)|_IN(1)|_IN(2)|_IN(3)|_IN(4)|_OUT(3), \ + OSGBPB_WriteAt, \ + file, \ + data, \ + size, \ + unwritten) + +#define osgbpb_write(file, data, size) \ + _swi(OS_GBPB, _IN(0)|_IN(1)|_IN(2)|_IN(3)|_RETURN(3), \ + OSGBPB_Write, \ + file, \ + data, \ + size) + +extern os_error *xosgbpb_read (os_f file, + byte *buffer, + int size, + int *unread); +extern int osgbpb_read (os_f file, + byte *buffer, + int size); + +#define xosgbpb_read(file, buffer, size, unread) \ + (os_error*) _swix(OS_GBPB, _IN(0)|_IN(1)|_IN(2)|_IN(3)|_OUT(3), \ + OSGBPB_Read, \ + file, \ + buffer, \ + size, \ + unread) + +#define osgbpb_read(file, buffer, size) \ + _swi(OS_GBPB, _IN(0)|_IN(1)|_IN(2)|_IN(3)|_RETURN(3), \ + OSGBPB_Read, \ + file, \ + buffer, \ + size) + +/* From oslib:osfind.h */ +#undef OS_Find +#define OS_Find 0xD +#undef OSFind_Openin +#define OSFind_Openin 0x40 +#undef OSFind_Openout +#define OSFind_Openout 0x80 +#undef OSFind_Openup +#define OSFind_Openup 0xC0 +#undef OSFind_Close +#define OSFind_Close 0x0 + +#define xosfind_open(reason, file_name, path, file) \ + (os_error*) _swix(OS_Find, _IN(0)|_IN(1)|_IN(2)|_OUT(0), \ + reason, file_name, path, file) + +#define osfind_open(reason, file_name, path) \ + (os_f) _swi(OS_Find, _IN(0)|_IN(1)|_IN(2)|_RETURN(0), \ + reason, file_name, path) + +extern os_error *xosfind_openin (bits flags, + char *file_name, + char *path, + os_f *file); +extern os_f osfind_openin (bits flags, + char *file_name, + char *path); + +#define xosfind_openin(flags, file_name, path, file) \ + xosfind_open(flags | OSFind_Openin, file_name, path, file) + +#define osfind_openin(flags, file_name, path) \ + osfind_open(flags | OSFind_Openin, file_name, path) + +extern os_error *xosfind_openout (bits flags, + char *file_name, + char *path, + os_f *file); +extern os_f osfind_openout (bits flags, + char *file_name, + char *path); + +#define xosfind_openout(flags, file_name, path, file) \ + xosfind_open(flags | OSFind_Openout, file_name, path, file) + +#define osfind_openout(flags, file_name, path) \ + osfind_open(flags | OSFind_Openout, file_name, path) + +extern os_error *xosfind_openup (bits flags, + char *file_name, + char *path, + os_f *file); +extern os_f osfind_openup (bits flags, + char *file_name, + char *path); + +#define xosfind_openup(flags, file_name, path, file) \ + xosfind_open(flags | OSFind_Openup, file_name, path, file) + +#define osfind_openup(flags, file_name, path) \ + osfind_open(flags | OSFind_Openup, file_name, path) + +extern os_error *xosfind_close (os_f file); +extern void osfind_close (os_f file); + +#define xosfind_close(file) \ + (os_error*) _swix(OS_Find, _IN(0)|_IN(1), \ + OSFind_Close, \ + file) + +#define osfind_close(file) \ + (void) _swi(OS_Find, _IN(0)|_IN(1), \ + OSFind_Close, \ + file) + +/* From oslib:osargs.h */ +#undef OS_Args +#define OS_Args 0x9 +#undef OSArgs_ReadPtr +#define OSArgs_ReadPtr 0x0 +#undef OSArgs_SetPtr +#define OSArgs_SetPtr 0x1 +#undef OSArgs_ReadExt +#define OSArgs_ReadExt 0x2 + +extern os_error *xosargs_read_ptr (os_f file, + int *ptr); +extern int osargs_read_ptr (os_f file); + +#define xosargs_read_ptr(file, ptr) \ + (os_error*) _swix(OS_Args, _IN(0)|_IN(1)|_OUT(2), \ + OSArgs_ReadPtr, \ + file, \ + ptr) + +#define osargs_read_ptr(file) \ + _swi(OS_Args, _IN(0)|_IN(1)|_RETURN(2), \ + OSArgs_ReadPtr, \ + file) + +extern os_error *xosargs_set_ptr (os_f file, + int ptr); +extern void osargs_set_ptr (os_f file, + int ptr); + +#define xosargs_set_ptr(file, ptr) \ + (os_error*) _swix(OS_Args, _IN(0)|_IN(1)|_IN(2), \ + OSArgs_SetPtr, \ + file, \ + ptr) + +#define osargs_set_ptr(file, ptr) \ + (void) _swi(OS_Args, _IN(0)|_IN(1)|_IN(2), \ + OSArgs_SetPtr, \ + file, \ + ptr) + +extern os_error *xosargs_read_ext (os_f file, + int *ext); +extern int osargs_read_ext (os_f file); + +#define xosargs_read_ext(file, ext) \ + (os_error*) _swix(OS_Args, _IN(0)|_IN(1)|_OUT(2), \ + OSArgs_ReadExt, \ + file, \ + ext) + +#define osargs_read_ext(file) \ + _swi(OS_Args, _IN(0)|_IN(1)|_RETURN(2), \ + OSArgs_ReadExt, \ + file) + +/* OSLIB EMULATION ENDS */ + +#endif + +#ifndef __osfcn_h +/* Will be set or not during tiffcomp.h */ +/* You get this to compile under C++? Please say how! */ + +extern int open(const char* name, int flags, int mode) +{ + /* From what I can tell, should return <0 for failure */ + os_error* e = (os_error*) 1; /* Cheeky way to use a pointer eh? :-) */ + os_f file = (os_f) -1; + + flags = flags; + + switch(mode) + { + case O_RDONLY: + { + e = xosfind_openin(SKIP, name, SKIP, &file); + break; + } + case O_WRONLY: + case O_RDWR|O_CREAT: + case O_RDWR|O_CREAT|O_TRUNC: + { + e = xosfind_openout(SKIP, name, SKIP, &file); + break; + } + case O_RDWR: + { + e = xosfind_openup(SKIP, name, SKIP, &file); + break; + } + } + if (e) + { + file = (os_f) -1; + } + return (file); +} + +extern int close(int fd) +{ + return ((int) xosfind_close((os_f) fd)); +} + +extern int write(int fd, const char *buf, int nbytes) +{ + /* Returns number of bytes written */ + return (nbytes - osgbpb_write((os_f) fd, (const byte*) buf, nbytes)); +} + +extern int read(int fd, char *buf, int nbytes) +{ + /* Returns number of bytes read */ + return (nbytes - osgbpb_read((os_f) fd, (byte*) buf, nbytes)); +} + +extern off_t lseek(int fd, off_t offset, int whence) +{ + int absolute = 0; + + switch (whence) + { + case SEEK_SET: + { + absolute = (int) offset; + break; + } + case SEEK_CUR: + { + absolute = osargs_read_ptr((os_f) fd) + (int) offset; + break; + } + case SEEK_END: + { + absolute = osargs_read_ext((os_f) fd) + (int) offset; + break; + } + } + + osargs_set_ptr((os_f) fd, absolute); + + return ((off_t) osargs_read_ptr((os_f) fd)); +} +#endif + +static tsize_t +_tiffReadProc(thandle_t fd, tdata_t buf, tsize_t size) +{ + return ((tsize_t) read((int) fd, buf, (size_t) size)); +} + +static tsize_t +_tiffWriteProc(thandle_t fd, tdata_t buf, tsize_t size) +{ + return ((tsize_t) write((int) fd, buf, (size_t) size)); +} + +static toff_t +_tiffSeekProc(thandle_t fd, toff_t off, int whence) +{ + return ((toff_t) lseek((int) fd, (off_t) off, whence)); +} + +static int +_tiffCloseProc(thandle_t fd) +{ + return (close((int) fd)); +} + +static toff_t +_tiffSizeProc(thandle_t fd) +{ + return (lseek((int) fd, SEEK_END, SEEK_SET)); +} + +#ifdef HAVE_MMAP +#error "I didn't know Acorn had that!" +#endif + +/* !HAVE_MMAP */ +static int +_tiffMapProc(thandle_t fd, tdata_t* pbase, toff_t* psize) +{ + (void) fd; (void) pbase; (void) psize; + return (0); +} + +static void +_tiffUnmapProc(thandle_t fd, tdata_t base, toff_t size) +{ + (void) fd; (void) base; (void) size; +} + +/* + * Open a TIFF file descriptor for read/writing. + */ +TIFF* +TIFFFdOpen(int fd, const char* name, const char* mode) +{ + TIFF* tif; + + tif = TIFFClientOpen(name, mode, + (thandle_t) fd, + _tiffReadProc, _tiffWriteProc, + _tiffSeekProc, _tiffCloseProc, _tiffSizeProc, + _tiffMapProc, _tiffUnmapProc); + if (tif) + { + tif->tif_fd = fd; + } + return (tif); +} + +/* + * Open a TIFF file for read/writing. + */ +TIFF* +TIFFOpen(const char* name, const char* mode) +{ + static const char module[] = "TIFFOpen"; + int m, fd; + + m = _TIFFgetMode(mode, module); + + if (m == -1) + { + return ((TIFF*) 0); + } + + fd = open(name, 0, m); + + if (fd < 0) + { + TIFFError(module, "%s: Cannot open", name); + return ((TIFF *)0); + } + return (TIFFFdOpen(fd, name, mode)); +} + +void* +_TIFFmalloc(tsize_t s) +{ + return (malloc((size_t) s)); +} + +void +_TIFFfree(tdata_t p) +{ + free(p); +} + +void* +_TIFFrealloc(tdata_t p, tsize_t s) +{ + return (realloc(p, (size_t) s)); +} + +void +_TIFFmemset(tdata_t p, int v, tsize_t c) +{ + memset(p, v, (size_t) c); +} + +void +_TIFFmemcpy(tdata_t d, const tdata_t s, tsize_t c) +{ + memcpy(d, s, (size_t) c); +} + +int +_TIFFmemcmp(const tdata_t p1, const tdata_t p2, tsize_t c) +{ + return (memcmp(p1, p2, (size_t) c)); +} + +static void +acornWarningHandler(const char* module, const char* fmt, va_list ap) +{ + if (module != NULL) + { + fprintf(stderr, "%s: ", module); + } + fprintf(stderr, "Warning, "); + vfprintf(stderr, fmt, ap); + fprintf(stderr, ".\n"); +} +TIFFErrorHandler _TIFFwarningHandler = acornWarningHandler; + +static void +acornErrorHandler(const char* module, const char* fmt, va_list ap) +{ + if (module != NULL) + { + fprintf(stderr, "%s: ", module); + } + vfprintf(stderr, fmt, ap); + fprintf(stderr, ".\n"); +} +TIFFErrorHandler _TIFFerrorHandler = acornErrorHandler; diff --git a/libtiff/tif_apple.c b/libtiff/tif_apple.c new file mode 100755 index 0000000..73a19a9 --- /dev/null +++ b/libtiff/tif_apple.c @@ -0,0 +1,256 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_apple.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library Macintosh-specific routines. + * + * These routines use only Toolbox and high-level File Manager traps. + * They make no calls to the THINK C "unix" compatibility library. Also, + * malloc is not used directly but it is still referenced internally by + * the ANSI library in rare cases. Heap fragmentation by the malloc ring + * buffer is therefore minimized. + * + * O_RDONLY and O_RDWR are treated identically here. The tif_mode flag is + * checked in TIFFWriteCheck(). + * + * Create below fills in a blank creator signature and sets the file type + * to 'TIFF'. It is much better for the application to do this by Create'ing + * the file first and TIFFOpen'ing it later. + */ + +#include "tiffiop.h" +#include +#include +#include + +#if defined(__PPCC__) || defined(__SC__) || defined(__MRC__) || defined(applec) +#define CtoPstr c2pstr +#endif + +static tsize_t +_tiffReadProc(thandle_t fd, tdata_t buf, tsize_t size) +{ + return (FSRead((short) fd, (long*) &size, (char*) buf) == noErr ? + size : (tsize_t) -1); +} + +static tsize_t +_tiffWriteProc(thandle_t fd, tdata_t buf, tsize_t size) +{ + return (FSWrite((short) fd, (long*) &size, (char*) buf) == noErr ? + size : (tsize_t) -1); +} + +static toff_t +_tiffSeekProc(thandle_t fd, toff_t off, int whence) +{ + long fpos, size; + + if (GetEOF((short) fd, &size) != noErr) + return EOF; + (void) GetFPos((short) fd, &fpos); + + switch (whence) { + case SEEK_CUR: + if (off + fpos > size) + SetEOF((short) fd, off + fpos); + if (SetFPos((short) fd, fsFromMark, off) != noErr) + return EOF; + break; + case SEEK_END: + if (off > 0) + SetEOF((short) fd, off + size); + if (SetFPos((short) fd, fsFromStart, off + size) != noErr) + return EOF; + break; + case SEEK_SET: + if (off > size) + SetEOF((short) fd, off); + if (SetFPos((short) fd, fsFromStart, off) != noErr) + return EOF; + break; + } + + return (toff_t)(GetFPos((short) fd, &fpos) == noErr ? fpos : EOF); +} + +static int +_tiffMapProc(thandle_t fd, tdata_t* pbase, toff_t* psize) +{ + return (0); +} + +static void +_tiffUnmapProc(thandle_t fd, tdata_t base, toff_t size) +{ +} + +static int +_tiffCloseProc(thandle_t fd) +{ + return (FSClose((short) fd)); +} + +static toff_t +_tiffSizeProc(thandle_t fd) +{ + long size; + + if (GetEOF((short) fd, &size) != noErr) { + TIFFError("_tiffSizeProc", "%s: Cannot get file size"); + return (-1L); + } + return ((toff_t) size); +} + +/* + * Open a TIFF file descriptor for read/writing. + */ +TIFF* +TIFFFdOpen(int fd, const char* name, const char* mode) +{ + TIFF* tif; + + tif = TIFFClientOpen(name, mode, (thandle_t) fd, + _tiffReadProc, _tiffWriteProc, _tiffSeekProc, _tiffCloseProc, + _tiffSizeProc, _tiffMapProc, _tiffUnmapProc); + if (tif) + tif->tif_fd = fd; + return (tif); +} + +/* + * Open a TIFF file for read/writing. + */ +TIFF* +TIFFOpen(const char* name, const char* mode) +{ + static const char module[] = "TIFFOpen"; + Str255 pname; + FInfo finfo; + short fref; + OSErr err; + + strcpy((char*) pname, name); + CtoPstr((char*) pname); + + switch (_TIFFgetMode(mode, module)) { + default: + return ((TIFF*) 0); + case O_RDWR | O_CREAT | O_TRUNC: + if (GetFInfo(pname, 0, &finfo) == noErr) + FSDelete(pname, 0); + /* fall through */ + case O_RDWR | O_CREAT: + if ((err = GetFInfo(pname, 0, &finfo)) == fnfErr) { + if (Create(pname, 0, ' ', 'TIFF') != noErr) + goto badCreate; + if (FSOpen(pname, 0, &fref) != noErr) + goto badOpen; + } else if (err == noErr) { + if (FSOpen(pname, 0, &fref) != noErr) + goto badOpen; + } else + goto badOpen; + break; + case O_RDONLY: + case O_RDWR: + if (FSOpen(pname, 0, &fref) != noErr) + goto badOpen; + break; + } + return (TIFFFdOpen((int) fref, name, mode)); +badCreate: + TIFFError(module, "%s: Cannot create", name); + return ((TIFF*) 0); +badOpen: + TIFFError(module, "%s: Cannot open", name); + return ((TIFF*) 0); +} + +void +_TIFFmemset(tdata_t p, int v, tsize_t c) +{ + memset(p, v, (size_t) c); +} + +void +_TIFFmemcpy(tdata_t d, const tdata_t s, tsize_t c) +{ + memcpy(d, s, (size_t) c); +} + +int +_TIFFmemcmp(const tdata_t p1, const tdata_t p2, tsize_t c) +{ + return (memcmp(p1, p2, (size_t) c)); +} + +tdata_t +_TIFFmalloc(tsize_t s) +{ + return (NewPtr((size_t) s)); +} + +void +_TIFFfree(tdata_t p) +{ + DisposePtr(p); +} + +tdata_t +_TIFFrealloc(tdata_t p, tsize_t s) +{ + Ptr n = p; + + SetPtrSize(p, (size_t) s); + if (MemError() && (n = NewPtr((size_t) s)) != NULL) { + BlockMove(p, n, GetPtrSize(p)); + DisposePtr(p); + } + return ((tdata_t) n); +} + +static void +appleWarningHandler(const char* module, const char* fmt, va_list ap) +{ + if (module != NULL) + fprintf(stderr, "%s: ", module); + fprintf(stderr, "Warning, "); + vfprintf(stderr, fmt, ap); + fprintf(stderr, ".\n"); +} +TIFFErrorHandler _TIFFwarningHandler = appleWarningHandler; + +static void +appleErrorHandler(const char* module, const char* fmt, va_list ap) +{ + if (module != NULL) + fprintf(stderr, "%s: ", module); + vfprintf(stderr, fmt, ap); + fprintf(stderr, ".\n"); +} +TIFFErrorHandler _TIFFerrorHandler = appleErrorHandler; diff --git a/libtiff/tif_atari.c b/libtiff/tif_atari.c new file mode 100755 index 0000000..25fd3b1 --- /dev/null +++ b/libtiff/tif_atari.c @@ -0,0 +1,243 @@ +/* "$Header: /home/cvsroot/libtiff/libtiff/tif_atari.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $" */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library ATARI-specific Routines. + */ +#include "tiffiop.h" +#if defined(__TURBOC__) +#include +#include +#else +#include +#include +#endif + +#ifndef O_ACCMODE +#define O_ACCMODE 3 +#endif + +#include + +#define AEFILNF -33 + +static tsize_t +_tiffReadProc(thandle_t fd, tdata_t buf, tsize_t size) +{ + long r; + + r = Fread((int) fd, size, buf); + if (r < 0) { + errno = (int)-r; + r = -1; + } + return r; +} + +static tsize_t +_tiffWriteProc(thandle_t fd, tdata_t buf, tsize_t size) +{ + long r; + + r = Fwrite((int) fd, size, buf); + if (r < 0) { + errno = (int)-r; + r = -1; + } + return r; +} + +static toff_t +_tiffSeekProc(thandle_t fd, off_t off, int whence) +{ + char buf[256]; + long current_off, expected_off, new_off; + + if (whence == SEEK_END || off <= 0) + return Fseek(off, (int) fd, whence); + current_off = Fseek(0, (int) fd, SEEK_CUR); /* find out where we are */ + if (whence == SEEK_SET) + expected_off = off; + else + expected_off = off + current_off; + new_off = Fseek(off, (int) fd, whence); + if (new_off == expected_off) + return new_off; + /* otherwise extend file -- zero filling the hole */ + if (new_off < 0) /* error? */ + new_off = Fseek(0, (int) fd, SEEK_END); /* go to eof */ + _TIFFmemset(buf, 0, sizeof(buf)); + while (expected_off > new_off) { + off = expected_off - new_off; + if (off > sizeof(buf)) + off = sizeof(buf); + if ((current_off = Fwrite((int) fd, off, buf)) != off) + return (current_off > 0) ? + new_off + current_off : new_off; + new_off += off; + } + return new_off; +} + +static int +_tiffCloseProc(thandle_t fd) +{ + long r; + + r = Fclose((int) fd); + if (r < 0) { + errno = (int)-r; + r = -1; + } + return (int)r; +} + +static toff_t +_tiffSizeProc(thandle_t fd) +{ + long pos, eof; + + pos = Fseek(0, (int) fd, SEEK_CUR); + eof = Fseek(0, (int) fd, SEEK_END); + Fseek(pos, (int) fd, SEEK_SET); + return eof; +} + +static int +_tiffMapProc(thandle_t fd, tdata_t* pbase, toff_t* psize) +{ + return (0); +} + +static void +_tiffUnmapProc(thandle_t fd, tdata_t base, toff_t size) +{ +} + +/* +* Open a TIFF file descriptor for read/writing. +*/ +TIFF* +TIFFFdOpen(int fd, const char* name, const char* mode) +{ + TIFF* tif; + + tif = TIFFClientOpen(name, mode, + (thandle_t) fd, + _tiffReadProc, _tiffWriteProc, _tiffSeekProc, _tiffCloseProc, + _tiffSizeProc, _tiffMapProc, _tiffUnmapProc); + if (tif) + tif->tif_fd = fd; + return (tif); +} + +/* +* Open a TIFF file for read/writing. +*/ +TIFF* +TIFFOpen(const char* name, const char* mode) +{ + static const char module[] = "TIFFOpen"; + int m; + long fd; + + m = _TIFFgetMode(mode, module); + if (m == -1) + return ((TIFF*)0); + if (m & O_TRUNC) { + fd = Fcreate(name, 0); + } else { + fd = Fopen(name, m & O_ACCMODE); + if (fd == AEFILNF && m & O_CREAT) + fd = Fcreate(name, 0); + } + if (fd < 0) + errno = (int)fd; + if (fd < 0) { + TIFFError(module, "%s: Cannot open", name); + return ((TIFF*)0); + } + return (TIFFFdOpen(fd, name, mode)); +} + +#include + +tdata_t +_TIFFmalloc(tsize_t s) +{ + return (malloc((size_t) s)); +} + +void +_TIFFfree(tdata_t p) +{ + free(p); +} + +tdata_t +_TIFFrealloc(tdata_t p, tsize_t s) +{ + return (realloc(p, (size_t) s)); +} + +void +_TIFFmemset(tdata_t p, int v, size_t c) +{ + memset(p, v, (size_t) c); +} + +void +_TIFFmemcpy(tdata_t d, const tdata_t s, size_t c) +{ + memcpy(d, s, (size_t) c); +} + +int +_TIFFmemcmp(const tdata_t p1, const tdata_t p2, tsize_t c) +{ + return (memcmp(p1, p2, (size_t) c)); +} + +static void +atariWarningHandler(const char* module, const char* fmt, va_list ap) +{ + if (module != NULL) + fprintf(stderr, "%s: ", module); + fprintf(stderr, "Warning, "); + vfprintf(stderr, fmt, ap); + fprintf(stderr, ".\n"); +} +TIFFErrorHandler _TIFFwarningHandler = atariWarningHandler; + +static void +atariErrorHandler(const char* module, const char* fmt, va_list ap) +{ + if (module != NULL) + fprintf(stderr, "%s: ", module); + vfprintf(stderr, fmt, ap); + fprintf(stderr, ".\n"); +} +TIFFErrorHandler _TIFFerrorHandler = atariErrorHandler; diff --git a/libtiff/tif_aux.c b/libtiff/tif_aux.c new file mode 100755 index 0000000..811aebb --- /dev/null +++ b/libtiff/tif_aux.c @@ -0,0 +1,206 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_aux.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1991-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library. + * + * Auxiliary Support Routines. + */ +#include "tiffiop.h" + +#ifdef COLORIMETRY_SUPPORT +#include + +static void +TIFFDefaultTransferFunction(TIFFDirectory* td) +{ + uint16 **tf = td->td_transferfunction; + long i, n = 1<td_bitspersample; + + tf[0] = (uint16 *)_TIFFmalloc(n * sizeof (uint16)); + tf[0][0] = 0; + for (i = 1; i < n; i++) { + double t = (double)i/((double) n-1.); + tf[0][i] = (uint16)floor(65535.*pow(t, 2.2) + .5); + } + if (td->td_samplesperpixel - td->td_extrasamples > 1) { + tf[1] = (uint16 *)_TIFFmalloc(n * sizeof (uint16)); + _TIFFmemcpy(tf[1], tf[0], n * sizeof (uint16)); + tf[2] = (uint16 *)_TIFFmalloc(n * sizeof (uint16)); + _TIFFmemcpy(tf[2], tf[0], n * sizeof (uint16)); + } +} + +static void +TIFFDefaultRefBlackWhite(TIFFDirectory* td) +{ + int i; + + td->td_refblackwhite = (float *)_TIFFmalloc(6*sizeof (float)); + for (i = 0; i < 3; i++) { + td->td_refblackwhite[2*i+0] = 0; + td->td_refblackwhite[2*i+1] = (float)((1L<td_bitspersample)-1L); + } +} +#endif + +/* + * Like TIFFGetField, but return any default + * value if the tag is not present in the directory. + * + * NB: We use the value in the directory, rather than + * explcit values so that defaults exist only one + * place in the library -- in TIFFDefaultDirectory. + */ +int +TIFFVGetFieldDefaulted(TIFF* tif, ttag_t tag, va_list ap) +{ + TIFFDirectory *td = &tif->tif_dir; + + if (TIFFVGetField(tif, tag, ap)) + return (1); + switch (tag) { + case TIFFTAG_SUBFILETYPE: + *va_arg(ap, uint32 *) = td->td_subfiletype; + return (1); + case TIFFTAG_BITSPERSAMPLE: + *va_arg(ap, uint16 *) = td->td_bitspersample; + return (1); + case TIFFTAG_THRESHHOLDING: + *va_arg(ap, uint16 *) = td->td_threshholding; + return (1); + case TIFFTAG_FILLORDER: + *va_arg(ap, uint16 *) = td->td_fillorder; + return (1); + case TIFFTAG_ORIENTATION: + *va_arg(ap, uint16 *) = td->td_orientation; + return (1); + case TIFFTAG_SAMPLESPERPIXEL: + *va_arg(ap, uint16 *) = td->td_samplesperpixel; + return (1); + case TIFFTAG_ROWSPERSTRIP: + *va_arg(ap, uint32 *) = td->td_rowsperstrip; + return (1); + case TIFFTAG_MINSAMPLEVALUE: + *va_arg(ap, uint16 *) = td->td_minsamplevalue; + return (1); + case TIFFTAG_MAXSAMPLEVALUE: + *va_arg(ap, uint16 *) = td->td_maxsamplevalue; + return (1); + case TIFFTAG_PLANARCONFIG: + *va_arg(ap, uint16 *) = td->td_planarconfig; + return (1); + case TIFFTAG_RESOLUTIONUNIT: + *va_arg(ap, uint16 *) = td->td_resolutionunit; + return (1); +#ifdef CMYK_SUPPORT + case TIFFTAG_DOTRANGE: + *va_arg(ap, uint16 *) = 0; + *va_arg(ap, uint16 *) = (1<td_bitspersample)-1; + return (1); + case TIFFTAG_INKSET: + *va_arg(ap, uint16 *) = td->td_inkset; + return (1); + case TIFFTAG_NUMBEROFINKS: + *va_arg(ap, uint16 *) = td->td_ninks; + return (1); +#endif + case TIFFTAG_EXTRASAMPLES: + *va_arg(ap, uint16 *) = td->td_extrasamples; + *va_arg(ap, uint16 **) = td->td_sampleinfo; + return (1); + case TIFFTAG_MATTEING: + *va_arg(ap, uint16 *) = + (td->td_extrasamples == 1 && + td->td_sampleinfo[0] == EXTRASAMPLE_ASSOCALPHA); + return (1); + case TIFFTAG_TILEDEPTH: + *va_arg(ap, uint32 *) = td->td_tiledepth; + return (1); + case TIFFTAG_DATATYPE: + *va_arg(ap, uint16 *) = td->td_sampleformat-1; + return (1); + case TIFFTAG_SAMPLEFORMAT: + *va_arg(ap, uint16 *) = td->td_sampleformat; + return(1); + case TIFFTAG_IMAGEDEPTH: + *va_arg(ap, uint32 *) = td->td_imagedepth; + return (1); +#ifdef YCBCR_SUPPORT + case TIFFTAG_YCBCRCOEFFICIENTS: + if (!td->td_ycbcrcoeffs) { + td->td_ycbcrcoeffs = (float *) + _TIFFmalloc(3*sizeof (float)); + /* defaults are from CCIR Recommendation 601-1 */ + td->td_ycbcrcoeffs[0] = 0.299f; + td->td_ycbcrcoeffs[1] = 0.587f; + td->td_ycbcrcoeffs[2] = 0.114f; + } + *va_arg(ap, float **) = td->td_ycbcrcoeffs; + return (1); + case TIFFTAG_YCBCRSUBSAMPLING: + *va_arg(ap, uint16 *) = td->td_ycbcrsubsampling[0]; + *va_arg(ap, uint16 *) = td->td_ycbcrsubsampling[1]; + return (1); + case TIFFTAG_YCBCRPOSITIONING: + *va_arg(ap, uint16 *) = td->td_ycbcrpositioning; + return (1); +#endif +#ifdef COLORIMETRY_SUPPORT + case TIFFTAG_TRANSFERFUNCTION: + if (!td->td_transferfunction[0]) + TIFFDefaultTransferFunction(td); + *va_arg(ap, uint16 **) = td->td_transferfunction[0]; + if (td->td_samplesperpixel - td->td_extrasamples > 1) { + *va_arg(ap, uint16 **) = td->td_transferfunction[1]; + *va_arg(ap, uint16 **) = td->td_transferfunction[2]; + } + return (1); + case TIFFTAG_REFERENCEBLACKWHITE: + if (!td->td_refblackwhite) + TIFFDefaultRefBlackWhite(td); + *va_arg(ap, float **) = td->td_refblackwhite; + return (1); +#endif + } + return (0); +} + +/* + * Like TIFFGetField, but return any default + * value if the tag is not present in the directory. + */ +int +TIFFGetFieldDefaulted(TIFF* tif, ttag_t tag, ...) +{ + int ok; + va_list ap; + + va_start(ap, tag); + ok = TIFFVGetFieldDefaulted(tif, tag, ap); + va_end(ap); + return (ok); +} diff --git a/libtiff/tif_close.c b/libtiff/tif_close.c new file mode 100755 index 0000000..e60f16a --- /dev/null +++ b/libtiff/tif_close.c @@ -0,0 +1,50 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_close.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library. + */ +#include "tiffiop.h" + +void +TIFFClose(TIFF* tif) +{ + if (tif->tif_mode != O_RDONLY) + /* + * Flush buffered data and directory (if dirty). + */ + TIFFFlush(tif); + (*tif->tif_cleanup)(tif); + TIFFFreeDirectory(tif); + if (tif->tif_rawdata && (tif->tif_flags&TIFF_MYBUFFER)) + _TIFFfree(tif->tif_rawdata); + if (isMapped(tif)) + TIFFUnmapFileContents(tif, tif->tif_base, tif->tif_size); + (void) TIFFCloseFile(tif); + if (tif->tif_fieldinfo) + _TIFFfree(tif->tif_fieldinfo); + _TIFFfree(tif); +} diff --git a/libtiff/tif_codec.c b/libtiff/tif_codec.c new file mode 100755 index 0000000..6ea84f5 --- /dev/null +++ b/libtiff/tif_codec.c @@ -0,0 +1,117 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_codec.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library + * + * Builtin Compression Scheme Configuration Support. + */ +#include "tiffiop.h" + +static int NotConfigured(TIFF*, int); + +#ifndef LZW_SUPPORT +#define TIFFInitLZW NotConfigured +#endif +#ifndef PACKBITS_SUPPORT +#define TIFFInitPackbits NotConfigured +#endif +#ifndef THUNDER_SUPPORT +#define TIFFInitThunderScan NotConfigured +#endif +#ifndef NEXT_SUPPORT +#define TIFFInitNeXT NotConfigured +#endif +#ifndef JPEG_SUPPORT +#define TIFFInitJPEG NotConfigured +#endif +#ifndef OJPEG_SUPPORT +#define TIFFInitOJPEG NotConfigured +#endif +#ifndef CCITT_SUPPORT +#define TIFFInitCCITTRLE NotConfigured +#define TIFFInitCCITTRLEW NotConfigured +#define TIFFInitCCITTFax3 NotConfigured +#define TIFFInitCCITTFax4 NotConfigured +#endif +#ifndef JBIG_SUPPORT +#define TIFFInitJBIG NotConfigured +#endif +#ifndef ZIP_SUPPORT +#define TIFFInitZIP NotConfigured +#endif +#ifndef PIXARLOG_SUPPORT +#define TIFFInitPixarLog NotConfigured +#endif +#ifndef LOGLUV_SUPPORT +#define TIFFInitSGILog NotConfigured +#endif + +/* + * Compression schemes statically built into the library. + */ +#ifdef VMS +const TIFFCodec _TIFFBuiltinCODECS[] = { +#else +TIFFCodec _TIFFBuiltinCODECS[] = { +#endif + { "None", COMPRESSION_NONE, TIFFInitDumpMode }, + { "LZW", COMPRESSION_LZW, TIFFInitLZW }, + { "PackBits", COMPRESSION_PACKBITS, TIFFInitPackBits }, + { "ThunderScan", COMPRESSION_THUNDERSCAN,TIFFInitThunderScan }, + { "NeXT", COMPRESSION_NEXT, TIFFInitNeXT }, + { "JPEG", COMPRESSION_JPEG, TIFFInitJPEG }, + { "Old-style JPEG", COMPRESSION_OJPEG, TIFFInitOJPEG }, + { "CCITT RLE", COMPRESSION_CCITTRLE, TIFFInitCCITTRLE }, + { "CCITT RLE/W", COMPRESSION_CCITTRLEW, TIFFInitCCITTRLEW }, + { "CCITT Group 3", COMPRESSION_CCITTFAX3, TIFFInitCCITTFax3 }, + { "CCITT Group 4", COMPRESSION_CCITTFAX4, TIFFInitCCITTFax4 }, + { "ISO JBIG", COMPRESSION_JBIG, TIFFInitJBIG }, + { "Deflate", COMPRESSION_DEFLATE, TIFFInitZIP }, + { "AdobeDeflate", COMPRESSION_ADOBE_DEFLATE , TIFFInitZIP }, + { "PixarLog", COMPRESSION_PIXARLOG, TIFFInitPixarLog }, + { "SGILog", COMPRESSION_SGILOG, TIFFInitSGILog }, + { "SGILog24", COMPRESSION_SGILOG24, TIFFInitSGILog }, + { NULL } +}; + +static int +_notConfigured(TIFF* tif) +{ + const TIFFCodec* c = TIFFFindCODEC(tif->tif_dir.td_compression); + + TIFFError(tif->tif_name, + "%s compression support is not configured", c->name); + return (0); +} + +static int +NotConfigured(TIFF* tif, int scheme) +{ + tif->tif_setupdecode = _notConfigured; + tif->tif_setupencode = _notConfigured; + return (1); +} diff --git a/libtiff/tif_compress.c b/libtiff/tif_compress.c new file mode 100755 index 0000000..57a2b52 --- /dev/null +++ b/libtiff/tif_compress.c @@ -0,0 +1,231 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_compress.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library + * + * Compression Scheme Configuration Support. + */ +#include "tiffiop.h" + +static int +TIFFNoEncode(TIFF* tif, char* method) +{ + const TIFFCodec* c = TIFFFindCODEC(tif->tif_dir.td_compression); + + if (c) { + if (! strncmp(c->name, "LZW", 3) ){ + TIFFError(tif->tif_name, + "%s %s encoding is no longer implemented due to Unisys patent enforcement", + c->name, method); + } else { + TIFFError(tif->tif_name, "%s %s encoding is not implemented", + c->name, method); + } + } + else { + TIFFError(tif->tif_name, + "Compression scheme %u %s encoding is not implemented", + tif->tif_dir.td_compression, method); + } + return (-1); +} + +int +_TIFFNoRowEncode(TIFF* tif, tidata_t pp, tsize_t cc, tsample_t s) +{ + (void) pp; (void) cc; (void) s; + return (TIFFNoEncode(tif, "scanline")); +} + +int +_TIFFNoStripEncode(TIFF* tif, tidata_t pp, tsize_t cc, tsample_t s) +{ + (void) pp; (void) cc; (void) s; + return (TIFFNoEncode(tif, "strip")); +} + +int +_TIFFNoTileEncode(TIFF* tif, tidata_t pp, tsize_t cc, tsample_t s) +{ + (void) pp; (void) cc; (void) s; + return (TIFFNoEncode(tif, "tile")); +} + +static int +TIFFNoDecode(TIFF* tif, char* method) +{ + const TIFFCodec* c = TIFFFindCODEC(tif->tif_dir.td_compression); + + if (c) + TIFFError(tif->tif_name, "%s %s decoding is not implemented", + c->name, method); + else + TIFFError(tif->tif_name, + "Compression scheme %u %s decoding is not implemented", + tif->tif_dir.td_compression, method); + return (-1); +} + +int +_TIFFNoRowDecode(TIFF* tif, tidata_t pp, tsize_t cc, tsample_t s) +{ + (void) pp; (void) cc; (void) s; + return (TIFFNoDecode(tif, "scanline")); +} + +int +_TIFFNoStripDecode(TIFF* tif, tidata_t pp, tsize_t cc, tsample_t s) +{ + (void) pp; (void) cc; (void) s; + return (TIFFNoDecode(tif, "strip")); +} + +int +_TIFFNoTileDecode(TIFF* tif, tidata_t pp, tsize_t cc, tsample_t s) +{ + (void) pp; (void) cc; (void) s; + return (TIFFNoDecode(tif, "tile")); +} + +int +_TIFFNoSeek(TIFF* tif, uint32 off) +{ + (void) off; + TIFFError(tif->tif_name, + "Compression algorithm does not support random access"); + return (0); +} + +int +_TIFFNoPreCode(TIFF* tif, tsample_t s) +{ + (void) tif; (void) s; + return (1); +} + +static int _TIFFtrue(TIFF* tif) { (void) tif; return (1); } +static void _TIFFvoid(TIFF* tif) { (void) tif; } + +void +_TIFFSetDefaultCompressionState(TIFF* tif) +{ + tif->tif_setupdecode = _TIFFtrue; + tif->tif_predecode = _TIFFNoPreCode; + tif->tif_decoderow = _TIFFNoRowDecode; + tif->tif_decodestrip = _TIFFNoStripDecode; + tif->tif_decodetile = _TIFFNoTileDecode; + tif->tif_setupencode = _TIFFtrue; + tif->tif_preencode = _TIFFNoPreCode; + tif->tif_postencode = _TIFFtrue; + tif->tif_encoderow = _TIFFNoRowEncode; + tif->tif_encodestrip = _TIFFNoStripEncode; + tif->tif_encodetile = _TIFFNoTileEncode; + tif->tif_close = _TIFFvoid; + tif->tif_seek = _TIFFNoSeek; + tif->tif_cleanup = _TIFFvoid; + tif->tif_defstripsize = _TIFFDefaultStripSize; + tif->tif_deftilesize = _TIFFDefaultTileSize; + tif->tif_flags &= ~TIFF_NOBITREV; +} + +int +TIFFSetCompressionScheme(TIFF* tif, int scheme) +{ + const TIFFCodec *c = TIFFFindCODEC((uint16) scheme); + + _TIFFSetDefaultCompressionState(tif); + /* + * Don't treat an unknown compression scheme as an error. + * This permits applications to open files with data that + * the library does not have builtin support for, but which + * may still be meaningful. + */ + return (c ? (*c->init)(tif, scheme) : 1); +} + +/* + * Other compression schemes may be registered. Registered + * schemes can also override the builtin versions provided + * by this library. + */ +typedef struct _codec { + struct _codec* next; + TIFFCodec* info; +} codec_t; +static codec_t* registeredCODECS = NULL; + +const TIFFCodec* +TIFFFindCODEC(uint16 scheme) +{ + const TIFFCodec* c; + codec_t* cd; + + for (cd = registeredCODECS; cd; cd = cd->next) + if (cd->info->scheme == scheme) + return ((const TIFFCodec*) cd->info); + for (c = _TIFFBuiltinCODECS; c->name; c++) + if (c->scheme == scheme) + return (c); + return ((const TIFFCodec*) 0); +} + +TIFFCodec* +TIFFRegisterCODEC(uint16 scheme, const char* name, TIFFInitMethod init) +{ + codec_t* cd = (codec_t*) + _TIFFmalloc(sizeof (codec_t) + sizeof (TIFFCodec) + strlen(name)+1); + + if (cd != NULL) { + cd->info = (TIFFCodec*) ((tidata_t) cd + sizeof (codec_t)); + cd->info->name = (char*) + ((tidata_t) cd->info + sizeof (TIFFCodec)); + strcpy(cd->info->name, name); + cd->info->scheme = scheme; + cd->info->init = init; + cd->next = registeredCODECS; + registeredCODECS = cd; + } else + TIFFError("TIFFRegisterCODEC", + "No space to register compression scheme %s", name); + return (cd->info); +} + +void +TIFFUnRegisterCODEC(TIFFCodec* c) +{ + codec_t* cd; + codec_t** pcd; + + for (pcd = ®isteredCODECS; (cd = *pcd); pcd = &cd->next) + if (cd->info == c) { + *pcd = cd->next; + _TIFFfree(cd); + return; + } + TIFFError("TIFFUnRegisterCODEC", + "Cannot remove compression scheme %s; not registered", c->name); +} diff --git a/libtiff/tif_dir.c b/libtiff/tif_dir.c new file mode 100755 index 0000000..f276457 --- /dev/null +++ b/libtiff/tif_dir.c @@ -0,0 +1,1295 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_dir.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library. + * + * Directory Tag Get & Set Routines. + * (and also some miscellaneous stuff) + */ +#include "tiffiop.h" + +/* + * These are used in the backwards compatibility code... + */ +#define DATATYPE_VOID 0 /* !untyped data */ +#define DATATYPE_INT 1 /* !signed integer data */ +#define DATATYPE_UINT 2 /* !unsigned integer data */ +#define DATATYPE_IEEEFP 3 /* !IEEE floating point data */ + +void +_TIFFsetByteArray(void** vpp, void* vp, long n) +{ + if (*vpp) + _TIFFfree(*vpp), *vpp = 0; + if (vp && (*vpp = (void*) _TIFFmalloc(n))) + _TIFFmemcpy(*vpp, vp, n); +} +void _TIFFsetString(char** cpp, char* cp) + { _TIFFsetByteArray((void**) cpp, (void*) cp, (long) (strlen(cp)+1)); } +void _TIFFsetNString(char** cpp, char* cp, long n) + { _TIFFsetByteArray((void**) cpp, (void*) cp, n); } +void _TIFFsetShortArray(uint16** wpp, uint16* wp, long n) + { _TIFFsetByteArray((void**) wpp, (void*) wp, n*sizeof (uint16)); } +void _TIFFsetLongArray(uint32** lpp, uint32* lp, long n) + { _TIFFsetByteArray((void**) lpp, (void*) lp, n*sizeof (uint32)); } +void _TIFFsetFloatArray(float** fpp, float* fp, long n) + { _TIFFsetByteArray((void**) fpp, (void*) fp, n*sizeof (float)); } +void _TIFFsetDoubleArray(double** dpp, double* dp, long n) + { _TIFFsetByteArray((void**) dpp, (void*) dp, n*sizeof (double)); } + +/* + * Install extra samples information. + */ +static int +setExtraSamples(TIFFDirectory* td, va_list ap, int* v) +{ + uint16* va; + int i; + + *v = va_arg(ap, int); + if ((uint16) *v > td->td_samplesperpixel) + return (0); + va = va_arg(ap, uint16*); + if (*v > 0 && va == NULL) /* typically missing param */ + return (0); + for (i = 0; i < *v; i++) + if (va[i] > EXTRASAMPLE_UNASSALPHA) + return (0); + td->td_extrasamples = (uint16) *v; + _TIFFsetShortArray(&td->td_sampleinfo, va, td->td_extrasamples); + return (1); +} + +#ifdef CMYK_SUPPORT +static int +checkInkNamesString(TIFF* tif, int slen, const char* s) +{ + TIFFDirectory* td = &tif->tif_dir; + int i = td->td_samplesperpixel; + + if (slen > 0) { + const char* ep = s+slen; + const char* cp = s; + for (; i > 0; i--) { + for (; *cp != '\0'; cp++) + if (cp >= ep) + goto bad; + cp++; /* skip \0 */ + } + return (cp-s); + } +bad: + TIFFError("TIFFSetField", + "%s: Invalid InkNames value; expecting %d names, found %d", + tif->tif_name, + td->td_samplesperpixel, + td->td_samplesperpixel-i); + return (0); +} +#endif + +static int +_TIFFVSetField(TIFF* tif, ttag_t tag, va_list ap) +{ + TIFFDirectory* td = &tif->tif_dir; + int status = 1; + uint32 v32; + int i, v; + double d; + char* s; + + switch (tag) { + case TIFFTAG_SUBFILETYPE: + td->td_subfiletype = va_arg(ap, uint32); + break; + case TIFFTAG_IMAGEWIDTH: + td->td_imagewidth = va_arg(ap, uint32); + break; + case TIFFTAG_IMAGELENGTH: + td->td_imagelength = va_arg(ap, uint32); + break; + case TIFFTAG_BITSPERSAMPLE: + td->td_bitspersample = (uint16) va_arg(ap, int); + /* + * If the data require post-decoding processing + * to byte-swap samples, set it up here. Note + * that since tags are required to be ordered, + * compression code can override this behaviour + * in the setup method if it wants to roll the + * post decoding work in with its normal work. + */ + if (tif->tif_flags & TIFF_SWAB) { + if (td->td_bitspersample == 16) + tif->tif_postdecode = _TIFFSwab16BitData; + else if (td->td_bitspersample == 32) + tif->tif_postdecode = _TIFFSwab32BitData; + else if (td->td_bitspersample == 64) + tif->tif_postdecode = _TIFFSwab64BitData; + } + break; + case TIFFTAG_COMPRESSION: + v = va_arg(ap, int) & 0xffff; + /* + * If we're changing the compression scheme, + * the notify the previous module so that it + * can cleanup any state it's setup. + */ + if (TIFFFieldSet(tif, FIELD_COMPRESSION)) { + if (td->td_compression == v) + break; + (*tif->tif_cleanup)(tif); + tif->tif_flags &= ~TIFF_CODERSETUP; + } + /* + * Setup new compression routine state. + */ + if ( ! tif->tif_mode == O_RDONLY ) { + /* Handle removal of LZW compression */ + if ( v == COMPRESSION_LZW ) { + TIFFError(tif->tif_name, + "LZW compression no longer supported due to Unisys patent enforcement"); + v=COMPRESSION_NONE; + } + } + if( (status = TIFFSetCompressionScheme(tif, v)) != 0 ) + td->td_compression = v; + break; + case TIFFTAG_PHOTOMETRIC: + td->td_photometric = (uint16) va_arg(ap, int); + break; + case TIFFTAG_THRESHHOLDING: + td->td_threshholding = (uint16) va_arg(ap, int); + break; + case TIFFTAG_FILLORDER: + v = va_arg(ap, int); + if (v != FILLORDER_LSB2MSB && v != FILLORDER_MSB2LSB) + goto badvalue; + td->td_fillorder = (uint16) v; + break; + case TIFFTAG_DOCUMENTNAME: + _TIFFsetString(&td->td_documentname, va_arg(ap, char*)); + break; + case TIFFTAG_ARTIST: + _TIFFsetString(&td->td_artist, va_arg(ap, char*)); + break; + case TIFFTAG_DATETIME: + _TIFFsetString(&td->td_datetime, va_arg(ap, char*)); + break; + case TIFFTAG_HOSTCOMPUTER: + _TIFFsetString(&td->td_hostcomputer, va_arg(ap, char*)); + break; + case TIFFTAG_IMAGEDESCRIPTION: + _TIFFsetString(&td->td_imagedescription, va_arg(ap, char*)); + break; + case TIFFTAG_MAKE: + _TIFFsetString(&td->td_make, va_arg(ap, char*)); + break; + case TIFFTAG_MODEL: + _TIFFsetString(&td->td_model, va_arg(ap, char*)); + break; + case TIFFTAG_SOFTWARE: + _TIFFsetString(&td->td_software, va_arg(ap, char*)); + break; + case TIFFTAG_ORIENTATION: + v = va_arg(ap, int); + if (v < ORIENTATION_TOPLEFT || ORIENTATION_LEFTBOT < v) { + TIFFWarning(tif->tif_name, + "Bad value %ld for \"%s\" tag ignored", + v, _TIFFFieldWithTag(tif, tag)->field_name); + } else + td->td_orientation = (uint16) v; + break; + case TIFFTAG_SAMPLESPERPIXEL: + /* XXX should cross check -- e.g. if pallette, then 1 */ + v = va_arg(ap, int); + if (v == 0) + goto badvalue; + td->td_samplesperpixel = (uint16) v; + break; + case TIFFTAG_ROWSPERSTRIP: + v32 = va_arg(ap, uint32); + if (v32 == 0) + goto badvalue32; + td->td_rowsperstrip = v32; + if (!TIFFFieldSet(tif, FIELD_TILEDIMENSIONS)) { + td->td_tilelength = v32; + td->td_tilewidth = td->td_imagewidth; + } + break; + case TIFFTAG_MINSAMPLEVALUE: + td->td_minsamplevalue = (uint16) va_arg(ap, int); + break; + case TIFFTAG_MAXSAMPLEVALUE: + td->td_maxsamplevalue = (uint16) va_arg(ap, int); + break; + case TIFFTAG_SMINSAMPLEVALUE: + td->td_sminsamplevalue = (double) va_arg(ap, dblparam_t); + break; + case TIFFTAG_SMAXSAMPLEVALUE: + td->td_smaxsamplevalue = (double) va_arg(ap, dblparam_t); + break; + case TIFFTAG_XRESOLUTION: + td->td_xresolution = (float) va_arg(ap, dblparam_t); + break; + case TIFFTAG_YRESOLUTION: + td->td_yresolution = (float) va_arg(ap, dblparam_t); + break; + case TIFFTAG_PLANARCONFIG: + v = va_arg(ap, int); + if (v != PLANARCONFIG_CONTIG && v != PLANARCONFIG_SEPARATE) + goto badvalue; + td->td_planarconfig = (uint16) v; + break; + case TIFFTAG_PAGENAME: + _TIFFsetString(&td->td_pagename, va_arg(ap, char*)); + break; + case TIFFTAG_XPOSITION: + td->td_xposition = (float) va_arg(ap, dblparam_t); + break; + case TIFFTAG_YPOSITION: + td->td_yposition = (float) va_arg(ap, dblparam_t); + break; + case TIFFTAG_RESOLUTIONUNIT: + v = va_arg(ap, int); + if (v < RESUNIT_NONE || RESUNIT_CENTIMETER < v) + goto badvalue; + td->td_resolutionunit = (uint16) v; + break; + case TIFFTAG_PAGENUMBER: + td->td_pagenumber[0] = (uint16) va_arg(ap, int); + td->td_pagenumber[1] = (uint16) va_arg(ap, int); + break; + case TIFFTAG_HALFTONEHINTS: + td->td_halftonehints[0] = (uint16) va_arg(ap, int); + td->td_halftonehints[1] = (uint16) va_arg(ap, int); + break; + case TIFFTAG_COLORMAP: + v32 = (uint32)(1L<td_bitspersample); + _TIFFsetShortArray(&td->td_colormap[0], va_arg(ap, uint16*), v32); + _TIFFsetShortArray(&td->td_colormap[1], va_arg(ap, uint16*), v32); + _TIFFsetShortArray(&td->td_colormap[2], va_arg(ap, uint16*), v32); + break; + case TIFFTAG_EXTRASAMPLES: + if (!setExtraSamples(td, ap, &v)) + goto badvalue; + break; + case TIFFTAG_MATTEING: + td->td_extrasamples = (uint16) (va_arg(ap, int) != 0); + if (td->td_extrasamples) { + uint16 sv = EXTRASAMPLE_ASSOCALPHA; + _TIFFsetShortArray(&td->td_sampleinfo, &sv, 1); + } + break; + case TIFFTAG_TILEWIDTH: + v32 = va_arg(ap, uint32); + if (v32 % 16) { + if (tif->tif_mode != O_RDONLY) + goto badvalue32; + TIFFWarning(tif->tif_name, + "Nonstandard tile width %d, convert file", v32); + } + td->td_tilewidth = v32; + tif->tif_flags |= TIFF_ISTILED; + break; + case TIFFTAG_TILELENGTH: + v32 = va_arg(ap, uint32); + if (v32 % 16) { + if (tif->tif_mode != O_RDONLY) + goto badvalue32; + TIFFWarning(tif->tif_name, + "Nonstandard tile length %d, convert file", v32); + } + td->td_tilelength = v32; + tif->tif_flags |= TIFF_ISTILED; + break; + case TIFFTAG_TILEDEPTH: + v32 = va_arg(ap, uint32); + if (v32 == 0) + goto badvalue32; + td->td_tiledepth = v32; + break; + case TIFFTAG_DATATYPE: + v = va_arg(ap, int); + switch (v) { + case DATATYPE_VOID: v = SAMPLEFORMAT_VOID; break; + case DATATYPE_INT: v = SAMPLEFORMAT_INT; break; + case DATATYPE_UINT: v = SAMPLEFORMAT_UINT; break; + case DATATYPE_IEEEFP: v = SAMPLEFORMAT_IEEEFP;break; + default: goto badvalue; + } + td->td_sampleformat = (uint16) v; + break; + case TIFFTAG_SAMPLEFORMAT: + v = va_arg(ap, int); + if (v < SAMPLEFORMAT_UINT || SAMPLEFORMAT_VOID < v) + goto badvalue; + td->td_sampleformat = (uint16) v; + break; + case TIFFTAG_IMAGEDEPTH: + td->td_imagedepth = va_arg(ap, uint32); + break; + case TIFFTAG_STONITS: + d = va_arg(ap, dblparam_t); + if (d <= 0.) + goto badvaluedbl; + td->td_stonits = d; + break; + + /* Begin Pixar Tags */ + case TIFFTAG_PIXAR_IMAGEFULLWIDTH: + td->td_imagefullwidth = va_arg(ap, uint32); + break; + case TIFFTAG_PIXAR_IMAGEFULLLENGTH: + td->td_imagefulllength = va_arg(ap, uint32); + break; + case TIFFTAG_PIXAR_TEXTUREFORMAT: + _TIFFsetString(&td->td_textureformat, va_arg(ap, char*)); + break; + case TIFFTAG_PIXAR_WRAPMODES: + _TIFFsetString(&td->td_wrapmodes, va_arg(ap, char*)); + break; + case TIFFTAG_PIXAR_FOVCOT: + td->td_fovcot = (float) va_arg(ap, dblparam_t); + break; + case TIFFTAG_PIXAR_MATRIX_WORLDTOSCREEN: + _TIFFsetFloatArray(&td->td_matrixWorldToScreen, + va_arg(ap, float*), 16); + break; + case TIFFTAG_PIXAR_MATRIX_WORLDTOCAMERA: + _TIFFsetFloatArray(&td->td_matrixWorldToCamera, + va_arg(ap, float*), 16); + break; + /* End Pixar Tags */ + +#if SUBIFD_SUPPORT + case TIFFTAG_SUBIFD: + if ((tif->tif_flags & TIFF_INSUBIFD) == 0) { + td->td_nsubifd = (uint16) va_arg(ap, int); + _TIFFsetLongArray(&td->td_subifd, va_arg(ap, uint32*), + (long) td->td_nsubifd); + } else { + TIFFError(tif->tif_name, "Sorry, cannot nest SubIFDs"); + status = 0; + } + break; +#endif +#ifdef YCBCR_SUPPORT + case TIFFTAG_YCBCRCOEFFICIENTS: + _TIFFsetFloatArray(&td->td_ycbcrcoeffs, va_arg(ap, float*), 3); + break; + case TIFFTAG_YCBCRPOSITIONING: + td->td_ycbcrpositioning = (uint16) va_arg(ap, int); + break; + case TIFFTAG_YCBCRSUBSAMPLING: + td->td_ycbcrsubsampling[0] = (uint16) va_arg(ap, int); + td->td_ycbcrsubsampling[1] = (uint16) va_arg(ap, int); + break; +#endif +#ifdef COLORIMETRY_SUPPORT + case TIFFTAG_WHITEPOINT: + _TIFFsetFloatArray(&td->td_whitepoint, va_arg(ap, float*), 2); + break; + case TIFFTAG_PRIMARYCHROMATICITIES: + _TIFFsetFloatArray(&td->td_primarychromas, va_arg(ap, float*), 6); + break; + case TIFFTAG_TRANSFERFUNCTION: + v = (td->td_samplesperpixel - td->td_extrasamples) > 1 ? 3 : 1; + for (i = 0; i < v; i++) + _TIFFsetShortArray(&td->td_transferfunction[i], + va_arg(ap, uint16*), 1L<td_bitspersample); + break; + case TIFFTAG_REFERENCEBLACKWHITE: + /* XXX should check for null range */ + _TIFFsetFloatArray(&td->td_refblackwhite, va_arg(ap, float*), 6); + break; +#endif +#ifdef CMYK_SUPPORT + case TIFFTAG_INKSET: + td->td_inkset = (uint16) va_arg(ap, int); + break; + case TIFFTAG_DOTRANGE: + /* XXX should check for null range */ + td->td_dotrange[0] = (uint16) va_arg(ap, int); + td->td_dotrange[1] = (uint16) va_arg(ap, int); + break; + case TIFFTAG_INKNAMES: + i = va_arg(ap, int); + s = va_arg(ap, char*); + i = checkInkNamesString(tif, i, s); + status = i > 0; + if( i > 0 ) { + _TIFFsetNString(&td->td_inknames, s, i); + td->td_inknameslen = i; + } + break; + case TIFFTAG_NUMBEROFINKS: + td->td_ninks = (uint16) va_arg(ap, int); + break; + case TIFFTAG_TARGETPRINTER: + _TIFFsetString(&td->td_targetprinter, va_arg(ap, char*)); + break; +#endif +#ifdef ICC_SUPPORT + case TIFFTAG_ICCPROFILE: + td->td_profileLength = (uint32) va_arg(ap, uint32); + _TIFFsetByteArray(&td->td_profileData, va_arg(ap, void*), + td->td_profileLength); + break; +#endif +#ifdef PHOTOSHOP_SUPPORT + case TIFFTAG_PHOTOSHOP: + td->td_photoshopLength = (uint32) va_arg(ap, uint32); + _TIFFsetByteArray (&td->td_photoshopData, va_arg(ap, void*), + td->td_photoshopLength); + break; +#endif +#ifdef IPTC_SUPPORT + case TIFFTAG_RICHTIFFIPTC: + td->td_richtiffiptcLength = (uint32) va_arg(ap, uint32); +#ifdef PHOTOSHOP_SUPPORT + _TIFFsetLongArray ((uint32**)&td->td_richtiffiptcData, va_arg(ap, uint32*), + td->td_richtiffiptcLength); +#else + _TIFFsetByteArray (&td->td_photoshopData, va_arg(ap, void*), + td->td_photoshopLength); +#endif + break; +#endif + default: + /* + * This can happen if multiple images are open with + * different codecs which have private tags. The + * global tag information table may then have tags + * that are valid for one file but not the other. + * If the client tries to set a tag that is not valid + * for the image's codec then we'll arrive here. This + * happens, for example, when tiffcp is used to convert + * between compression schemes and codec-specific tags + * are blindly copied. + */ + TIFFError("TIFFSetField", + "%s: Invalid %stag \"%s\" (not supported by codec)", + tif->tif_name, isPseudoTag(tag) ? "pseduo-" : "", + _TIFFFieldWithTag(tif, tag)->field_name); + status = 0; + break; + } + if (status) { + TIFFSetFieldBit(tif, _TIFFFieldWithTag(tif, tag)->field_bit); + tif->tif_flags |= TIFF_DIRTYDIRECT; + } + va_end(ap); + return (status); +badvalue: + TIFFError(tif->tif_name, "%d: Bad value for \"%s\"", v, + _TIFFFieldWithTag(tif, tag)->field_name); + va_end(ap); + return (0); +badvalue32: + TIFFError(tif->tif_name, "%ld: Bad value for \"%s\"", v32, + _TIFFFieldWithTag(tif, tag)->field_name); + va_end(ap); + return (0); +badvaluedbl: + TIFFError(tif->tif_name, "%f: Bad value for \"%s\"", d, + _TIFFFieldWithTag(tif, tag)->field_name); + va_end(ap); + return (0); +} + +/* + * Return 1/0 according to whether or not + * it is permissible to set the tag's value. + * Note that we allow ImageLength to be changed + * so that we can append and extend to images. + * Any other tag may not be altered once writing + * has commenced, unless its value has no effect + * on the format of the data that is written. + */ +static int +OkToChangeTag(TIFF* tif, ttag_t tag) +{ + const TIFFFieldInfo* fip = _TIFFFindFieldInfo(tif, tag, TIFF_ANY); + if (!fip) { /* unknown tag */ + TIFFError("TIFFSetField", "%s: Unknown %stag %u", + tif->tif_name, isPseudoTag(tag) ? "pseudo-" : "", tag); + return (0); + } + if (tag != TIFFTAG_IMAGELENGTH && (tif->tif_flags & TIFF_BEENWRITING) && + !fip->field_oktochange) { + /* + * Consult info table to see if tag can be changed + * after we've started writing. We only allow changes + * to those tags that don't/shouldn't affect the + * compression and/or format of the data. + */ + TIFFError("TIFFSetField", + "%s: Cannot modify tag \"%s\" while writing", + tif->tif_name, fip->field_name); + return (0); + } + return (1); +} + +/* + * Record the value of a field in the + * internal directory structure. The + * field will be written to the file + * when/if the directory structure is + * updated. + */ +int +TIFFSetField(TIFF* tif, ttag_t tag, ...) +{ + va_list ap; + int status; + + va_start(ap, tag); + status = TIFFVSetField(tif, tag, ap); + va_end(ap); + return (status); +} + +/* + * Like TIFFSetField, but taking a varargs + * parameter list. This routine is useful + * for building higher-level interfaces on + * top of the library. + */ +int +TIFFVSetField(TIFF* tif, ttag_t tag, va_list ap) +{ + return OkToChangeTag(tif, tag) ? + (*tif->tif_vsetfield)(tif, tag, ap) : 0; +} + +static int +_TIFFVGetField(TIFF* tif, ttag_t tag, va_list ap) +{ + TIFFDirectory* td = &tif->tif_dir; + + switch (tag) { + case TIFFTAG_SUBFILETYPE: + *va_arg(ap, uint32*) = td->td_subfiletype; + break; + case TIFFTAG_IMAGEWIDTH: + *va_arg(ap, uint32*) = td->td_imagewidth; + break; + case TIFFTAG_IMAGELENGTH: + *va_arg(ap, uint32*) = td->td_imagelength; + break; + case TIFFTAG_BITSPERSAMPLE: + *va_arg(ap, uint16*) = td->td_bitspersample; + break; + case TIFFTAG_COMPRESSION: + *va_arg(ap, uint16*) = td->td_compression; + break; + case TIFFTAG_PHOTOMETRIC: + *va_arg(ap, uint16*) = td->td_photometric; + break; + case TIFFTAG_THRESHHOLDING: + *va_arg(ap, uint16*) = td->td_threshholding; + break; + case TIFFTAG_FILLORDER: + *va_arg(ap, uint16*) = td->td_fillorder; + break; + case TIFFTAG_DOCUMENTNAME: + *va_arg(ap, char**) = td->td_documentname; + break; + case TIFFTAG_ARTIST: + *va_arg(ap, char**) = td->td_artist; + break; + case TIFFTAG_DATETIME: + *va_arg(ap, char**) = td->td_datetime; + break; + case TIFFTAG_HOSTCOMPUTER: + *va_arg(ap, char**) = td->td_hostcomputer; + break; + case TIFFTAG_IMAGEDESCRIPTION: + *va_arg(ap, char**) = td->td_imagedescription; + break; + case TIFFTAG_MAKE: + *va_arg(ap, char**) = td->td_make; + break; + case TIFFTAG_MODEL: + *va_arg(ap, char**) = td->td_model; + break; + case TIFFTAG_SOFTWARE: + *va_arg(ap, char**) = td->td_software; + break; + case TIFFTAG_ORIENTATION: + *va_arg(ap, uint16*) = td->td_orientation; + break; + case TIFFTAG_SAMPLESPERPIXEL: + *va_arg(ap, uint16*) = td->td_samplesperpixel; + break; + case TIFFTAG_ROWSPERSTRIP: + *va_arg(ap, uint32*) = td->td_rowsperstrip; + break; + case TIFFTAG_MINSAMPLEVALUE: + *va_arg(ap, uint16*) = td->td_minsamplevalue; + break; + case TIFFTAG_MAXSAMPLEVALUE: + *va_arg(ap, uint16*) = td->td_maxsamplevalue; + break; + case TIFFTAG_SMINSAMPLEVALUE: + *va_arg(ap, double*) = td->td_sminsamplevalue; + break; + case TIFFTAG_SMAXSAMPLEVALUE: + *va_arg(ap, double*) = td->td_smaxsamplevalue; + break; + case TIFFTAG_XRESOLUTION: + *va_arg(ap, float*) = td->td_xresolution; + break; + case TIFFTAG_YRESOLUTION: + *va_arg(ap, float*) = td->td_yresolution; + break; + case TIFFTAG_PLANARCONFIG: + *va_arg(ap, uint16*) = td->td_planarconfig; + break; + case TIFFTAG_XPOSITION: + *va_arg(ap, float*) = td->td_xposition; + break; + case TIFFTAG_YPOSITION: + *va_arg(ap, float*) = td->td_yposition; + break; + case TIFFTAG_PAGENAME: + *va_arg(ap, char**) = td->td_pagename; + break; + case TIFFTAG_RESOLUTIONUNIT: + *va_arg(ap, uint16*) = td->td_resolutionunit; + break; + case TIFFTAG_PAGENUMBER: + *va_arg(ap, uint16*) = td->td_pagenumber[0]; + *va_arg(ap, uint16*) = td->td_pagenumber[1]; + break; + case TIFFTAG_HALFTONEHINTS: + *va_arg(ap, uint16*) = td->td_halftonehints[0]; + *va_arg(ap, uint16*) = td->td_halftonehints[1]; + break; + case TIFFTAG_COLORMAP: + *va_arg(ap, uint16**) = td->td_colormap[0]; + *va_arg(ap, uint16**) = td->td_colormap[1]; + *va_arg(ap, uint16**) = td->td_colormap[2]; + break; + case TIFFTAG_STRIPOFFSETS: + case TIFFTAG_TILEOFFSETS: + *va_arg(ap, uint32**) = td->td_stripoffset; + break; + case TIFFTAG_STRIPBYTECOUNTS: + case TIFFTAG_TILEBYTECOUNTS: + *va_arg(ap, uint32**) = td->td_stripbytecount; + break; + case TIFFTAG_MATTEING: + *va_arg(ap, uint16*) = + (td->td_extrasamples == 1 && + td->td_sampleinfo[0] == EXTRASAMPLE_ASSOCALPHA); + break; + case TIFFTAG_EXTRASAMPLES: + *va_arg(ap, uint16*) = td->td_extrasamples; + *va_arg(ap, uint16**) = td->td_sampleinfo; + break; + case TIFFTAG_TILEWIDTH: + *va_arg(ap, uint32*) = td->td_tilewidth; + break; + case TIFFTAG_TILELENGTH: + *va_arg(ap, uint32*) = td->td_tilelength; + break; + case TIFFTAG_TILEDEPTH: + *va_arg(ap, uint32*) = td->td_tiledepth; + break; + case TIFFTAG_DATATYPE: + switch (td->td_sampleformat) { + case SAMPLEFORMAT_UINT: + *va_arg(ap, uint16*) = DATATYPE_UINT; + break; + case SAMPLEFORMAT_INT: + *va_arg(ap, uint16*) = DATATYPE_INT; + break; + case SAMPLEFORMAT_IEEEFP: + *va_arg(ap, uint16*) = DATATYPE_IEEEFP; + break; + case SAMPLEFORMAT_VOID: + *va_arg(ap, uint16*) = DATATYPE_VOID; + break; + } + break; + case TIFFTAG_SAMPLEFORMAT: + *va_arg(ap, uint16*) = td->td_sampleformat; + break; + case TIFFTAG_IMAGEDEPTH: + *va_arg(ap, uint32*) = td->td_imagedepth; + break; + case TIFFTAG_STONITS: + *va_arg(ap, double*) = td->td_stonits; + break; +#if SUBIFD_SUPPORT + case TIFFTAG_SUBIFD: + *va_arg(ap, uint16*) = td->td_nsubifd; + *va_arg(ap, uint32**) = td->td_subifd; + break; +#endif +#ifdef YCBCR_SUPPORT + case TIFFTAG_YCBCRCOEFFICIENTS: + *va_arg(ap, float**) = td->td_ycbcrcoeffs; + break; + case TIFFTAG_YCBCRPOSITIONING: + *va_arg(ap, uint16*) = td->td_ycbcrpositioning; + break; + case TIFFTAG_YCBCRSUBSAMPLING: + *va_arg(ap, uint16*) = td->td_ycbcrsubsampling[0]; + *va_arg(ap, uint16*) = td->td_ycbcrsubsampling[1]; + break; +#endif +#ifdef COLORIMETRY_SUPPORT + case TIFFTAG_WHITEPOINT: + *va_arg(ap, float**) = td->td_whitepoint; + break; + case TIFFTAG_PRIMARYCHROMATICITIES: + *va_arg(ap, float**) = td->td_primarychromas; + break; + case TIFFTAG_TRANSFERFUNCTION: + *va_arg(ap, uint16**) = td->td_transferfunction[0]; + if (td->td_samplesperpixel - td->td_extrasamples > 1) { + *va_arg(ap, uint16**) = td->td_transferfunction[1]; + *va_arg(ap, uint16**) = td->td_transferfunction[2]; + } + break; + case TIFFTAG_REFERENCEBLACKWHITE: + *va_arg(ap, float**) = td->td_refblackwhite; + break; +#endif +#ifdef CMYK_SUPPORT + case TIFFTAG_INKSET: + *va_arg(ap, uint16*) = td->td_inkset; + break; + case TIFFTAG_DOTRANGE: + *va_arg(ap, uint16*) = td->td_dotrange[0]; + *va_arg(ap, uint16*) = td->td_dotrange[1]; + break; + case TIFFTAG_INKNAMES: + *va_arg(ap, char**) = td->td_inknames; + break; + case TIFFTAG_NUMBEROFINKS: + *va_arg(ap, uint16*) = td->td_ninks; + break; + case TIFFTAG_TARGETPRINTER: + *va_arg(ap, char**) = td->td_targetprinter; + break; +#endif +#ifdef ICC_SUPPORT + case TIFFTAG_ICCPROFILE: + *va_arg(ap, uint32*) = td->td_profileLength; + *va_arg(ap, void**) = td->td_profileData; + break; +#endif +#ifdef PHOTOSHOP_SUPPORT + case TIFFTAG_PHOTOSHOP: + *va_arg(ap, uint32*) = td->td_photoshopLength; + *va_arg(ap, void**) = td->td_photoshopData; + break; +#endif +#ifdef IPTC_SUPPORT + case TIFFTAG_RICHTIFFIPTC: + *va_arg(ap, uint32*) = td->td_richtiffiptcLength; + *va_arg(ap, void**) = td->td_richtiffiptcData; + break; +#endif + /* Begin Pixar Tags */ + case TIFFTAG_PIXAR_IMAGEFULLWIDTH: + *va_arg(ap, uint32*) = td->td_imagefullwidth; + break; + case TIFFTAG_PIXAR_IMAGEFULLLENGTH: + *va_arg(ap, uint32*) = td->td_imagefulllength; + break; + case TIFFTAG_PIXAR_TEXTUREFORMAT: + *va_arg(ap, char**) = td->td_textureformat; + break; + case TIFFTAG_PIXAR_WRAPMODES: + *va_arg(ap, char**) = td->td_wrapmodes; + break; + case TIFFTAG_PIXAR_FOVCOT: + *va_arg(ap, float*) = td->td_fovcot; + break; + case TIFFTAG_PIXAR_MATRIX_WORLDTOSCREEN: + *va_arg(ap, float**) = td->td_matrixWorldToScreen; + break; + case TIFFTAG_PIXAR_MATRIX_WORLDTOCAMERA: + *va_arg(ap, float**) = td->td_matrixWorldToCamera; + break; + /* End Pixar Tags */ + + default: + /* + * This can happen if multiple images are open with + * different codecs which have private tags. The + * global tag information table may then have tags + * that are valid for one file but not the other. + * If the client tries to get a tag that is not valid + * for the image's codec then we'll arrive here. + */ + TIFFError("TIFFGetField", + "%s: Invalid %stag \"%s\" (not supported by codec)", + tif->tif_name, isPseudoTag(tag) ? "pseudo-" : "", + _TIFFFieldWithTag(tif, tag)->field_name); + break; + } + return (1); +} + +/* + * Return the value of a field in the + * internal directory structure. + */ +int +TIFFGetField(TIFF* tif, ttag_t tag, ...) +{ + int status; + va_list ap; + + va_start(ap, tag); + status = TIFFVGetField(tif, tag, ap); + va_end(ap); + return (status); +} + +/* + * Like TIFFGetField, but taking a varargs + * parameter list. This routine is useful + * for building higher-level interfaces on + * top of the library. + */ +int +TIFFVGetField(TIFF* tif, ttag_t tag, va_list ap) +{ + const TIFFFieldInfo* fip = _TIFFFindFieldInfo(tif, tag, TIFF_ANY); + return (fip && (isPseudoTag(tag) || TIFFFieldSet(tif, fip->field_bit)) ? + (*tif->tif_vgetfield)(tif, tag, ap) : 0); +} + +#define CleanupField(member) { \ + if (td->member) { \ + _TIFFfree(td->member); \ + td->member = 0; \ + } \ +} + +/* + * Release storage associated with a directory. + */ +void +TIFFFreeDirectory(TIFF* tif) +{ + register TIFFDirectory *td = &tif->tif_dir; + + CleanupField(td_colormap[0]); + CleanupField(td_colormap[1]); + CleanupField(td_colormap[2]); + CleanupField(td_documentname); + CleanupField(td_artist); + CleanupField(td_datetime); + CleanupField(td_hostcomputer); + CleanupField(td_imagedescription); + CleanupField(td_make); + CleanupField(td_model); + CleanupField(td_software); + CleanupField(td_pagename); + CleanupField(td_sampleinfo); +#if SUBIFD_SUPPORT + CleanupField(td_subifd); +#endif +#ifdef YCBCR_SUPPORT + CleanupField(td_ycbcrcoeffs); +#endif +#ifdef CMYK_SUPPORT + CleanupField(td_inknames); + CleanupField(td_targetprinter); +#endif +#ifdef COLORIMETRY_SUPPORT + CleanupField(td_whitepoint); + CleanupField(td_primarychromas); + CleanupField(td_refblackwhite); + CleanupField(td_transferfunction[0]); + CleanupField(td_transferfunction[1]); + CleanupField(td_transferfunction[2]); +#endif +#ifdef ICC_SUPPORT + CleanupField(td_profileData); +#endif +#ifdef PHOTOSHOP_SUPPORT + CleanupField(td_photoshopData); +#endif +#ifdef IPTC_SUPPORT + CleanupField(td_richtiffiptcData); +#endif + CleanupField(td_stripoffset); + CleanupField(td_stripbytecount); + /* Begin Pixar Tags */ + CleanupField(td_textureformat); + CleanupField(td_wrapmodes); + CleanupField(td_matrixWorldToScreen); + CleanupField(td_matrixWorldToCamera); + /* End Pixar Tags */ +} +#undef CleanupField + +/* + * Client Tag extension support (from Niles Ritter). + */ +static TIFFExtendProc _TIFFextender = (TIFFExtendProc) NULL; + +TIFFExtendProc +TIFFSetTagExtender(TIFFExtendProc extender) +{ + TIFFExtendProc prev = _TIFFextender; + _TIFFextender = extender; + return (prev); +} + +/* + * Setup for a new directory. Should we automatically call + * TIFFWriteDirectory() if the current one is dirty? + * + * The newly created directory will not exist on the file till + * TIFFWriteDirectory(), TIFFFlush() or TIFFClose() is called. + */ +int +TIFFCreateDirectory(TIFF* tif) +{ + TIFFDefaultDirectory(tif); + tif->tif_diroff = 0; + tif->tif_nextdiroff = 0; + tif->tif_curoff = 0; + tif->tif_row = (uint32) -1; + tif->tif_curstrip = (tstrip_t) -1; + + return 0; +} + +/* + * Setup a default directory structure. + */ +int +TIFFDefaultDirectory(TIFF* tif) +{ + register TIFFDirectory* td = &tif->tif_dir; + + _TIFFSetupFieldInfo(tif); + _TIFFmemset(td, 0, sizeof (*td)); + td->td_fillorder = FILLORDER_MSB2LSB; + td->td_bitspersample = 1; + td->td_threshholding = THRESHHOLD_BILEVEL; + td->td_orientation = ORIENTATION_TOPLEFT; + td->td_samplesperpixel = 1; + td->td_rowsperstrip = (uint32) -1; + td->td_tilewidth = (uint32) -1; + td->td_tilelength = (uint32) -1; + td->td_tiledepth = 1; + td->td_resolutionunit = RESUNIT_INCH; + td->td_sampleformat = SAMPLEFORMAT_UINT; + td->td_imagedepth = 1; +#ifdef YCBCR_SUPPORT + td->td_ycbcrsubsampling[0] = 2; + td->td_ycbcrsubsampling[1] = 2; + td->td_ycbcrpositioning = YCBCRPOSITION_CENTERED; +#endif +#ifdef CMYK_SUPPORT + td->td_inkset = INKSET_CMYK; + td->td_ninks = 4; +#endif + tif->tif_postdecode = _TIFFNoPostDecode; + tif->tif_vsetfield = _TIFFVSetField; + tif->tif_vgetfield = _TIFFVGetField; + tif->tif_printdir = NULL; + /* + * Give client code a chance to install their own + * tag extensions & methods, prior to compression overloads. + */ + if (_TIFFextender) + (*_TIFFextender)(tif); + (void) TIFFSetField(tif, TIFFTAG_COMPRESSION, COMPRESSION_NONE); + /* + * NB: The directory is marked dirty as a result of setting + * up the default compression scheme. However, this really + * isn't correct -- we want TIFF_DIRTYDIRECT to be set only + * if the user does something. We could just do the setup + * by hand, but it seems better to use the normal mechanism + * (i.e. TIFFSetField). + */ + tif->tif_flags &= ~TIFF_DIRTYDIRECT; + return (1); +} + +static int +TIFFAdvanceDirectory(TIFF* tif, uint32* nextdir, toff_t* off) +{ + static const char module[] = "TIFFAdvanceDirectory"; + uint16 dircount; + if (isMapped(tif)) + { + toff_t poff=*nextdir; + if (poff+sizeof(uint16) > tif->tif_size) + { + TIFFError(module, "%s: Error fetching directory count", + tif->tif_name); + return (0); + } + _TIFFmemcpy(&dircount, tif->tif_base+poff, sizeof (uint16)); + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabShort(&dircount); + poff+=sizeof (uint16)+dircount*sizeof (TIFFDirEntry); + if (off != NULL) + *off = poff; + if (((toff_t) (poff+sizeof (uint32))) > tif->tif_size) + { + TIFFError(module, "%s: Error fetching directory link", + tif->tif_name); + return (0); + } + _TIFFmemcpy(nextdir, tif->tif_base+poff, sizeof (uint32)); + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabLong(nextdir); + return (1); + } + else + { + if (!SeekOK(tif, *nextdir) || + !ReadOK(tif, &dircount, sizeof (uint16))) { + TIFFError(module, "%s: Error fetching directory count", + tif->tif_name); + return (0); + } + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabShort(&dircount); + if (off != NULL) + *off = TIFFSeekFile(tif, + dircount*sizeof (TIFFDirEntry), SEEK_CUR); + else + (void) TIFFSeekFile(tif, + dircount*sizeof (TIFFDirEntry), SEEK_CUR); + if (!ReadOK(tif, nextdir, sizeof (uint32))) { + TIFFError(module, "%s: Error fetching directory link", + tif->tif_name); + return (0); + } + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabLong(nextdir); + return (1); + } +} + +/* + * Count the number of directories in a file. + */ +tdir_t +TIFFNumberOfDirectories(TIFF* tif) +{ + toff_t nextdir = tif->tif_header.tiff_diroff; + tdir_t n = 0; + + while (nextdir != 0 && TIFFAdvanceDirectory(tif, &nextdir, NULL)) + n++; + return (n); +} + +/* + * Set the n-th directory as the current directory. + * NB: Directories are numbered starting at 0. + */ +int +TIFFSetDirectory(TIFF* tif, tdir_t dirn) +{ + toff_t nextdir; + tdir_t n; + + nextdir = tif->tif_header.tiff_diroff; + for (n = dirn; n > 0 && nextdir != 0; n--) + if (!TIFFAdvanceDirectory(tif, &nextdir, NULL)) + return (0); + tif->tif_nextdiroff = nextdir; + /* + * Set curdir to the actual directory index. The + * -1 is because TIFFReadDirectory will increment + * tif_curdir after successfully reading the directory. + */ + tif->tif_curdir = (dirn - n) - 1; + return (TIFFReadDirectory(tif)); +} + +/* + * Set the current directory to be the directory + * located at the specified file offset. This interface + * is used mainly to access directories linked with + * the SubIFD tag (e.g. thumbnail images). + */ +int +TIFFSetSubDirectory(TIFF* tif, uint32 diroff) +{ + tif->tif_nextdiroff = diroff; + return (TIFFReadDirectory(tif)); +} + +/* + * Return file offset of the current directory. + */ +uint32 +TIFFCurrentDirOffset(TIFF* tif) +{ + return (tif->tif_diroff); +} + +/* + * Return an indication of whether or not we are + * at the last directory in the file. + */ +int +TIFFLastDirectory(TIFF* tif) +{ + return (tif->tif_nextdiroff == 0); +} + +/* + * Unlink the specified directory from the directory chain. + */ +int +TIFFUnlinkDirectory(TIFF* tif, tdir_t dirn) +{ + static const char module[] = "TIFFUnlinkDirectory"; + toff_t nextdir; + toff_t off; + tdir_t n; + + if (tif->tif_mode == O_RDONLY) { + TIFFError(module, "Can not unlink directory in read-only file"); + return (0); + } + /* + * Go to the directory before the one we want + * to unlink and nab the offset of the link + * field we'll need to patch. + */ + nextdir = tif->tif_header.tiff_diroff; + off = sizeof (uint16) + sizeof (uint16); + for (n = dirn-1; n > 0; n--) { + if (nextdir == 0) { + TIFFError(module, "Directory %d does not exist", dirn); + return (0); + } + if (!TIFFAdvanceDirectory(tif, &nextdir, &off)) + return (0); + } + /* + * Advance to the directory to be unlinked and fetch + * the offset of the directory that follows. + */ + if (!TIFFAdvanceDirectory(tif, &nextdir, NULL)) + return (0); + /* + * Go back and patch the link field of the preceding + * directory to point to the offset of the directory + * that follows. + */ + (void) TIFFSeekFile(tif, off, SEEK_SET); + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabLong(&nextdir); + if (!WriteOK(tif, &nextdir, sizeof (uint32))) { + TIFFError(module, "Error writing directory link"); + return (0); + } + /* + * Leave directory state setup safely. We don't have + * facilities for doing inserting and removing directories, + * so it's safest to just invalidate everything. This + * means that the caller can only append to the directory + * chain. + */ + (*tif->tif_cleanup)(tif); + if ((tif->tif_flags & TIFF_MYBUFFER) && tif->tif_rawdata) { + _TIFFfree(tif->tif_rawdata); + tif->tif_rawdata = NULL; + tif->tif_rawcc = 0; + } + tif->tif_flags &= ~(TIFF_BEENWRITING|TIFF_BUFFERSETUP|TIFF_POSTENCODE); + TIFFFreeDirectory(tif); + TIFFDefaultDirectory(tif); + tif->tif_diroff = 0; /* force link on next write */ + tif->tif_nextdiroff = 0; /* next write must be at end */ + tif->tif_curoff = 0; + tif->tif_row = (uint32) -1; + tif->tif_curstrip = (tstrip_t) -1; + return (1); +} + +/* [BFC] + * + * Author: Bruce Cameron + * + * Set a table of tags that are to be replaced during directory process by the + * 'IGNORE' state - or return TRUE/FALSE for the requested tag such that + * 'ReadDirectory' can use the stored information. + */ +int +TIFFReassignTagToIgnore (enum TIFFIgnoreSense task, int TIFFtagID) +{ + static int TIFFignoretags [FIELD_LAST]; + static int tagcount = 0 ; + int i; /* Loop index */ + int j; /* Loop index */ + + switch (task) + { + case TIS_STORE: + if ( tagcount < (FIELD_LAST - 1) ) + { + for ( j = 0 ; j < tagcount ; ++j ) + { /* Do not add duplicate tag */ + if ( TIFFignoretags [j] == TIFFtagID ) + return (TRUE) ; + } + TIFFignoretags [tagcount++] = TIFFtagID ; + return (TRUE) ; + } + break ; + + case TIS_EXTRACT: + for ( i = 0 ; i < tagcount ; ++i ) + { + if ( TIFFignoretags [i] == TIFFtagID ) + return (TRUE) ; + } + break; + + case TIS_EMPTY: + tagcount = 0 ; /* Clear the list */ + return (TRUE) ; + + default: + break; + } + + return (FALSE); +} diff --git a/libtiff/tif_dir.h b/libtiff/tif_dir.h new file mode 100755 index 0000000..4dee09a --- /dev/null +++ b/libtiff/tif_dir.h @@ -0,0 +1,268 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_dir.h,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#ifndef _TIFFDIR_ +#define _TIFFDIR_ +/* + * ``Library-private'' Directory-related Definitions. + */ + +/* + * Internal format of a TIFF directory entry. + */ +typedef struct { +#define FIELD_SETLONGS 3 + /* bit vector of fields that are set */ + u_long td_fieldsset[FIELD_SETLONGS]; + + uint32 td_imagewidth, td_imagelength, td_imagedepth; + uint32 td_tilewidth, td_tilelength, td_tiledepth; + uint32 td_subfiletype; + uint16 td_bitspersample; + uint16 td_sampleformat; + uint16 td_compression; + uint16 td_photometric; + uint16 td_threshholding; + uint16 td_fillorder; + uint16 td_orientation; + uint16 td_samplesperpixel; + uint32 td_rowsperstrip; + uint16 td_minsamplevalue, td_maxsamplevalue; + double td_sminsamplevalue, td_smaxsamplevalue; + float td_xresolution, td_yresolution; + uint16 td_resolutionunit; + uint16 td_planarconfig; + float td_xposition, td_yposition; + uint16 td_pagenumber[2]; + uint16* td_colormap[3]; + uint16 td_halftonehints[2]; + uint16 td_extrasamples; + uint16* td_sampleinfo; + double td_stonits; + char* td_documentname; + char* td_artist; + char* td_datetime; + char* td_hostcomputer; + char* td_imagedescription; + char* td_make; + char* td_model; + char* td_software; + char* td_pagename; + tstrip_t td_stripsperimage; + tstrip_t td_nstrips; /* size of offset & bytecount arrays */ + uint32* td_stripoffset; + uint32* td_stripbytecount; +#if SUBIFD_SUPPORT + uint16 td_nsubifd; + uint32* td_subifd; +#endif +#ifdef YCBCR_SUPPORT + float* td_ycbcrcoeffs; + uint16 td_ycbcrsubsampling[2]; + uint16 td_ycbcrpositioning; +#endif +#ifdef COLORIMETRY_SUPPORT + float* td_whitepoint; + float* td_primarychromas; + float* td_refblackwhite; + uint16* td_transferfunction[3]; +#endif +#ifdef CMYK_SUPPORT + uint16 td_inkset; + uint16 td_ninks; + uint16 td_dotrange[2]; + int td_inknameslen; + char* td_inknames; + char* td_targetprinter; +#endif +#ifdef ICC_SUPPORT + uint32 td_profileLength; + void *td_profileData; +#endif +#ifdef PHOTOSHOP_SUPPORT + uint32 td_photoshopLength; + void *td_photoshopData; +#endif +#ifdef IPTC_SUPPORT + uint32 td_richtiffiptcLength; + void *td_richtiffiptcData; +#endif + /* Begin Pixar Tag values. */ + uint32 td_imagefullwidth, td_imagefulllength; + char* td_textureformat; + char* td_wrapmodes; + float td_fovcot; + float* td_matrixWorldToScreen; + float* td_matrixWorldToCamera; + /* End Pixar Tag Values. */ +} TIFFDirectory; + +/* + * Field flags used to indicate fields that have + * been set in a directory, and to reference fields + * when manipulating a directory. + */ + +/* + * FIELD_IGNORE is used to signify tags that are to + * be processed but otherwise ignored. This permits + * antiquated tags to be quietly read and discarded. + * Note that a bit *is* allocated for ignored tags; + * this is understood by the directory reading logic + * which uses this fact to avoid special-case handling + */ +#define FIELD_IGNORE 0 + +/* multi-item fields */ +#define FIELD_IMAGEDIMENSIONS 1 +#define FIELD_TILEDIMENSIONS 2 +#define FIELD_RESOLUTION 3 +#define FIELD_POSITION 4 + +/* single-item fields */ +#define FIELD_SUBFILETYPE 5 +#define FIELD_BITSPERSAMPLE 6 +#define FIELD_COMPRESSION 7 +#define FIELD_PHOTOMETRIC 8 +#define FIELD_THRESHHOLDING 9 +#define FIELD_FILLORDER 10 +#define FIELD_DOCUMENTNAME 11 +#define FIELD_IMAGEDESCRIPTION 12 +#define FIELD_MAKE 13 +#define FIELD_MODEL 14 +#define FIELD_ORIENTATION 15 +#define FIELD_SAMPLESPERPIXEL 16 +#define FIELD_ROWSPERSTRIP 17 +#define FIELD_MINSAMPLEVALUE 18 +#define FIELD_MAXSAMPLEVALUE 19 +#define FIELD_PLANARCONFIG 20 +#define FIELD_PAGENAME 21 +#define FIELD_RESOLUTIONUNIT 22 +#define FIELD_PAGENUMBER 23 +#define FIELD_STRIPBYTECOUNTS 24 +#define FIELD_STRIPOFFSETS 25 +#define FIELD_COLORMAP 26 +#define FIELD_ARTIST 27 +#define FIELD_DATETIME 28 +#define FIELD_HOSTCOMPUTER 29 +#define FIELD_SOFTWARE 30 +#define FIELD_EXTRASAMPLES 31 +#define FIELD_SAMPLEFORMAT 32 +#define FIELD_SMINSAMPLEVALUE 33 +#define FIELD_SMAXSAMPLEVALUE 34 +#define FIELD_IMAGEDEPTH 35 +#define FIELD_TILEDEPTH 36 +#define FIELD_HALFTONEHINTS 37 +#define FIELD_YCBCRCOEFFICIENTS 38 +#define FIELD_YCBCRSUBSAMPLING 39 +#define FIELD_YCBCRPOSITIONING 40 +#define FIELD_REFBLACKWHITE 41 +#define FIELD_WHITEPOINT 42 +#define FIELD_PRIMARYCHROMAS 43 +#define FIELD_TRANSFERFUNCTION 44 +#define FIELD_INKSET 45 +#define FIELD_INKNAMES 46 +#define FIELD_DOTRANGE 47 +#define FIELD_TARGETPRINTER 48 +#define FIELD_SUBIFD 49 +#define FIELD_NUMBEROFINKS 50 +#define FIELD_ICCPROFILE 51 +#define FIELD_PHOTOSHOP 52 +#define FIELD_RICHTIFFIPTC 53 +#define FIELD_STONITS 54 +/* Begin PIXAR */ +#define FIELD_IMAGEFULLWIDTH 55 +#define FIELD_IMAGEFULLLENGTH 56 +#define FIELD_TEXTUREFORMAT 57 +#define FIELD_WRAPMODES 58 +#define FIELD_FOVCOT 59 +#define FIELD_MATRIX_WORLDTOSCREEN 60 +#define FIELD_MATRIX_WORLDTOCAMERA 61 +/* end of support for well-known tags; codec-private tags follow */ +#define FIELD_CODEC 62 /* base of codec-private tags */ +/* + * Pseudo-tags don't normally need field bits since they + * are not written to an output file (by definition). + * The library also has express logic to always query a + * codec for a pseudo-tag so allocating a field bit for + * one is a waste. If codec wants to promote the notion + * of a pseudo-tag being ``set'' or ``unset'' then it can + * do using internal state flags without polluting the + * field bit space defined for real tags. + */ +#define FIELD_PSEUDO 0 + +#define FIELD_LAST (32*FIELD_SETLONGS-1) + +#define TIFFExtractData(tif, type, v) \ + ((uint32) ((tif)->tif_header.tiff_magic == TIFF_BIGENDIAN ? \ + ((v) >> (tif)->tif_typeshift[type]) & (tif)->tif_typemask[type] : \ + (v) & (tif)->tif_typemask[type])) +#define TIFFInsertData(tif, type, v) \ + ((uint32) ((tif)->tif_header.tiff_magic == TIFF_BIGENDIAN ? \ + ((v) & (tif)->tif_typemask[type]) << (tif)->tif_typeshift[type] : \ + (v) & (tif)->tif_typemask[type])) + +typedef struct { + ttag_t field_tag; /* field's tag */ + short field_readcount; /* read count/TIFF_VARIABLE/TIFF_SPP */ + short field_writecount; /* write count/TIFF_VARIABLE */ + TIFFDataType field_type; /* type of associated data */ + u_short field_bit; /* bit in fieldsset bit vector */ + u_char field_oktochange; /* if true, can change while writing */ + u_char field_passcount; /* if true, pass dir count on set */ + char *field_name; /* ASCII name */ +} TIFFFieldInfo; + +#define TIFF_ANY TIFF_NOTYPE /* for field descriptor searching */ +#define TIFF_VARIABLE -1 /* marker for variable length tags */ +#define TIFF_SPP -2 /* marker for SamplesPerPixel tags */ +#define TIFF_VARIABLE2 -3 /* marker for uint32 var-length tags */ + +extern const int tiffDataWidth[]; /* table of tag datatype widths */ + +#define BITn(n) (((u_long)1L)<<((n)&0x1f)) +#define BITFIELDn(tif, n) ((tif)->tif_dir.td_fieldsset[(n)/32]) +#define TIFFFieldSet(tif, field) (BITFIELDn(tif, field) & BITn(field)) +#define TIFFSetFieldBit(tif, field) (BITFIELDn(tif, field) |= BITn(field)) +#define TIFFClrFieldBit(tif, field) (BITFIELDn(tif, field) &= ~BITn(field)) + +#define FieldSet(fields, f) (fields[(f)/32] & BITn(f)) +#define ResetFieldBit(fields, f) (fields[(f)/32] &= ~BITn(f)) + +#if defined(__cplusplus) +extern "C" { +#endif +extern void _TIFFSetupFieldInfo(TIFF*); +extern void _TIFFMergeFieldInfo(TIFF*, const TIFFFieldInfo[], int); +extern void _TIFFPrintFieldInfo(TIFF*, FILE*); +extern const TIFFFieldInfo* _TIFFFindFieldInfo(TIFF*, ttag_t, TIFFDataType); +extern const TIFFFieldInfo* _TIFFFieldWithTag(TIFF*, ttag_t); +extern TIFFDataType _TIFFSampleToTagType(TIFF*); +#if defined(__cplusplus) +} +#endif +#endif /* _TIFFDIR_ */ diff --git a/libtiff/tif_dirinfo.c b/libtiff/tif_dirinfo.c new file mode 100755 index 0000000..82091bd --- /dev/null +++ b/libtiff/tif_dirinfo.c @@ -0,0 +1,402 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_dirinfo.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library. + * + * Core Directory Tag Support. + */ +#include "tiffiop.h" +#include + +/* + * NB: NB: THIS ARRAY IS ASSUMED TO BE SORTED BY TAG. + * If a tag can have both LONG and SHORT types + * then the LONG must be placed before the SHORT for + * writing to work properly. + */ +static const TIFFFieldInfo tiffFieldInfo[] = { + { TIFFTAG_SUBFILETYPE, 1, 1, TIFF_LONG, FIELD_SUBFILETYPE, + TRUE, FALSE, "SubfileType" }, +/* XXX SHORT for compatibility w/ old versions of the library */ + { TIFFTAG_SUBFILETYPE, 1, 1, TIFF_SHORT, FIELD_SUBFILETYPE, + TRUE, FALSE, "SubfileType" }, + { TIFFTAG_OSUBFILETYPE, 1, 1, TIFF_SHORT, FIELD_SUBFILETYPE, + TRUE, FALSE, "OldSubfileType" }, + { TIFFTAG_IMAGEWIDTH, 1, 1, TIFF_LONG, FIELD_IMAGEDIMENSIONS, + FALSE, FALSE, "ImageWidth" }, + { TIFFTAG_IMAGEWIDTH, 1, 1, TIFF_SHORT, FIELD_IMAGEDIMENSIONS, + FALSE, FALSE, "ImageWidth" }, + { TIFFTAG_IMAGELENGTH, 1, 1, TIFF_LONG, FIELD_IMAGEDIMENSIONS, + TRUE, FALSE, "ImageLength" }, + { TIFFTAG_IMAGELENGTH, 1, 1, TIFF_SHORT, FIELD_IMAGEDIMENSIONS, + TRUE, FALSE, "ImageLength" }, + { TIFFTAG_BITSPERSAMPLE, -1,-1, TIFF_SHORT, FIELD_BITSPERSAMPLE, + FALSE, FALSE, "BitsPerSample" }, + { TIFFTAG_COMPRESSION, -1, 1, TIFF_SHORT, FIELD_COMPRESSION, + FALSE, FALSE, "Compression" }, + { TIFFTAG_PHOTOMETRIC, 1, 1, TIFF_SHORT, FIELD_PHOTOMETRIC, + FALSE, FALSE, "PhotometricInterpretation" }, + { TIFFTAG_THRESHHOLDING, 1, 1, TIFF_SHORT, FIELD_THRESHHOLDING, + TRUE, FALSE, "Threshholding" }, + { TIFFTAG_CELLWIDTH, 1, 1, TIFF_SHORT, FIELD_IGNORE, + TRUE, FALSE, "CellWidth" }, + { TIFFTAG_CELLLENGTH, 1, 1, TIFF_SHORT, FIELD_IGNORE, + TRUE, FALSE, "CellLength" }, + { TIFFTAG_FILLORDER, 1, 1, TIFF_SHORT, FIELD_FILLORDER, + FALSE, FALSE, "FillOrder" }, + { TIFFTAG_DOCUMENTNAME, -1,-1, TIFF_ASCII, FIELD_DOCUMENTNAME, + TRUE, FALSE, "DocumentName" }, + { TIFFTAG_IMAGEDESCRIPTION, -1,-1, TIFF_ASCII, FIELD_IMAGEDESCRIPTION, + TRUE, FALSE, "ImageDescription" }, + { TIFFTAG_MAKE, -1,-1, TIFF_ASCII, FIELD_MAKE, + TRUE, FALSE, "Make" }, + { TIFFTAG_MODEL, -1,-1, TIFF_ASCII, FIELD_MODEL, + TRUE, FALSE, "Model" }, + { TIFFTAG_STRIPOFFSETS, -1,-1, TIFF_LONG, FIELD_STRIPOFFSETS, + FALSE, FALSE, "StripOffsets" }, + { TIFFTAG_STRIPOFFSETS, -1,-1, TIFF_SHORT, FIELD_STRIPOFFSETS, + FALSE, FALSE, "StripOffsets" }, + { TIFFTAG_ORIENTATION, 1, 1, TIFF_SHORT, FIELD_ORIENTATION, + FALSE, FALSE, "Orientation" }, + { TIFFTAG_SAMPLESPERPIXEL, 1, 1, TIFF_SHORT, FIELD_SAMPLESPERPIXEL, + FALSE, FALSE, "SamplesPerPixel" }, + { TIFFTAG_ROWSPERSTRIP, 1, 1, TIFF_LONG, FIELD_ROWSPERSTRIP, + FALSE, FALSE, "RowsPerStrip" }, + { TIFFTAG_ROWSPERSTRIP, 1, 1, TIFF_SHORT, FIELD_ROWSPERSTRIP, + FALSE, FALSE, "RowsPerStrip" }, + { TIFFTAG_STRIPBYTECOUNTS, -1,-1, TIFF_LONG, FIELD_STRIPBYTECOUNTS, + FALSE, FALSE, "StripByteCounts" }, + { TIFFTAG_STRIPBYTECOUNTS, -1,-1, TIFF_SHORT, FIELD_STRIPBYTECOUNTS, + FALSE, FALSE, "StripByteCounts" }, + { TIFFTAG_MINSAMPLEVALUE, -2,-1, TIFF_SHORT, FIELD_MINSAMPLEVALUE, + TRUE, FALSE, "MinSampleValue" }, + { TIFFTAG_MAXSAMPLEVALUE, -2,-1, TIFF_SHORT, FIELD_MAXSAMPLEVALUE, + TRUE, FALSE, "MaxSampleValue" }, + { TIFFTAG_XRESOLUTION, 1, 1, TIFF_RATIONAL, FIELD_RESOLUTION, + FALSE, FALSE, "XResolution" }, + { TIFFTAG_YRESOLUTION, 1, 1, TIFF_RATIONAL, FIELD_RESOLUTION, + FALSE, FALSE, "YResolution" }, + { TIFFTAG_PLANARCONFIG, 1, 1, TIFF_SHORT, FIELD_PLANARCONFIG, + FALSE, FALSE, "PlanarConfiguration" }, + { TIFFTAG_PAGENAME, -1,-1, TIFF_ASCII, FIELD_PAGENAME, + TRUE, FALSE, "PageName" }, + { TIFFTAG_XPOSITION, 1, 1, TIFF_RATIONAL, FIELD_POSITION, + TRUE, FALSE, "XPosition" }, + { TIFFTAG_YPOSITION, 1, 1, TIFF_RATIONAL, FIELD_POSITION, + TRUE, FALSE, "YPosition" }, + { TIFFTAG_FREEOFFSETS, -1,-1, TIFF_LONG, FIELD_IGNORE, + FALSE, FALSE, "FreeOffsets" }, + { TIFFTAG_FREEBYTECOUNTS, -1,-1, TIFF_LONG, FIELD_IGNORE, + FALSE, FALSE, "FreeByteCounts" }, + { TIFFTAG_GRAYRESPONSEUNIT, 1, 1, TIFF_SHORT, FIELD_IGNORE, + TRUE, FALSE, "GrayResponseUnit" }, + { TIFFTAG_GRAYRESPONSECURVE,-1,-1, TIFF_SHORT, FIELD_IGNORE, + TRUE, FALSE, "GrayResponseCurve" }, + { TIFFTAG_RESOLUTIONUNIT, 1, 1, TIFF_SHORT, FIELD_RESOLUTIONUNIT, + FALSE, FALSE, "ResolutionUnit" }, + { TIFFTAG_PAGENUMBER, 2, 2, TIFF_SHORT, FIELD_PAGENUMBER, + TRUE, FALSE, "PageNumber" }, + { TIFFTAG_COLORRESPONSEUNIT, 1, 1, TIFF_SHORT, FIELD_IGNORE, + TRUE, FALSE, "ColorResponseUnit" }, +#ifdef COLORIMETRY_SUPPORT + { TIFFTAG_TRANSFERFUNCTION, -1,-1, TIFF_SHORT, FIELD_TRANSFERFUNCTION, + TRUE, FALSE, "TransferFunction" }, +#endif + { TIFFTAG_SOFTWARE, -1,-1, TIFF_ASCII, FIELD_SOFTWARE, + TRUE, FALSE, "Software" }, + { TIFFTAG_DATETIME, 20,20, TIFF_ASCII, FIELD_DATETIME, + TRUE, FALSE, "DateTime" }, + { TIFFTAG_ARTIST, -1,-1, TIFF_ASCII, FIELD_ARTIST, + TRUE, FALSE, "Artist" }, + { TIFFTAG_HOSTCOMPUTER, -1,-1, TIFF_ASCII, FIELD_HOSTCOMPUTER, + TRUE, FALSE, "HostComputer" }, +#ifdef COLORIMETRY_SUPPORT + { TIFFTAG_WHITEPOINT, 2, 2, TIFF_RATIONAL,FIELD_WHITEPOINT, + TRUE, FALSE, "WhitePoint" }, + { TIFFTAG_PRIMARYCHROMATICITIES,6,6,TIFF_RATIONAL,FIELD_PRIMARYCHROMAS, + TRUE, FALSE, "PrimaryChromaticities" }, +#endif + { TIFFTAG_COLORMAP, -1,-1, TIFF_SHORT, FIELD_COLORMAP, + TRUE, FALSE, "ColorMap" }, + { TIFFTAG_HALFTONEHINTS, 2, 2, TIFF_SHORT, FIELD_HALFTONEHINTS, + TRUE, FALSE, "HalftoneHints" }, + { TIFFTAG_TILEWIDTH, 1, 1, TIFF_LONG, FIELD_TILEDIMENSIONS, + FALSE, FALSE, "TileWidth" }, + { TIFFTAG_TILEWIDTH, 1, 1, TIFF_SHORT, FIELD_TILEDIMENSIONS, + FALSE, FALSE, "TileWidth" }, + { TIFFTAG_TILELENGTH, 1, 1, TIFF_LONG, FIELD_TILEDIMENSIONS, + FALSE, FALSE, "TileLength" }, + { TIFFTAG_TILELENGTH, 1, 1, TIFF_SHORT, FIELD_TILEDIMENSIONS, + FALSE, FALSE, "TileLength" }, + { TIFFTAG_TILEOFFSETS, -1, 1, TIFF_LONG, FIELD_STRIPOFFSETS, + FALSE, FALSE, "TileOffsets" }, + { TIFFTAG_TILEBYTECOUNTS, -1, 1, TIFF_LONG, FIELD_STRIPBYTECOUNTS, + FALSE, FALSE, "TileByteCounts" }, + { TIFFTAG_TILEBYTECOUNTS, -1, 1, TIFF_SHORT, FIELD_STRIPBYTECOUNTS, + FALSE, FALSE, "TileByteCounts" }, +#ifdef TIFFTAG_SUBIFD + { TIFFTAG_SUBIFD, -1,-1, TIFF_LONG, FIELD_SUBIFD, + TRUE, TRUE, "SubIFD" }, +#endif +#ifdef CMYK_SUPPORT /* 6.0 CMYK tags */ + { TIFFTAG_INKSET, 1, 1, TIFF_SHORT, FIELD_INKSET, + FALSE, FALSE, "InkSet" }, + { TIFFTAG_INKNAMES, -1,-1, TIFF_ASCII, FIELD_INKNAMES, + TRUE, TRUE, "InkNames" }, + { TIFFTAG_NUMBEROFINKS, 1, 1, TIFF_SHORT, FIELD_NUMBEROFINKS, + TRUE, FALSE, "NumberOfInks" }, + { TIFFTAG_DOTRANGE, 2, 2, TIFF_SHORT, FIELD_DOTRANGE, + FALSE, FALSE, "DotRange" }, + { TIFFTAG_DOTRANGE, 2, 2, TIFF_BYTE, FIELD_DOTRANGE, + FALSE, FALSE, "DotRange" }, + { TIFFTAG_TARGETPRINTER, -1,-1, TIFF_ASCII, FIELD_TARGETPRINTER, + TRUE, FALSE, "TargetPrinter" }, +#endif + { TIFFTAG_EXTRASAMPLES, -1,-1, TIFF_SHORT, FIELD_EXTRASAMPLES, + FALSE, FALSE, "ExtraSamples" }, +/* XXX for bogus Adobe Photoshop v2.5 files */ + { TIFFTAG_EXTRASAMPLES, -1,-1, TIFF_BYTE, FIELD_EXTRASAMPLES, + FALSE, FALSE, "ExtraSamples" }, + { TIFFTAG_SAMPLEFORMAT, -1,-1, TIFF_SHORT, FIELD_SAMPLEFORMAT, + FALSE, FALSE, "SampleFormat" }, + { TIFFTAG_SMINSAMPLEVALUE, -2,-1, TIFF_ANY, FIELD_SMINSAMPLEVALUE, + TRUE, FALSE, "SMinSampleValue" }, + { TIFFTAG_SMAXSAMPLEVALUE, -2,-1, TIFF_ANY, FIELD_SMAXSAMPLEVALUE, + TRUE, FALSE, "SMaxSampleValue" }, +#ifdef YCBCR_SUPPORT /* 6.0 YCbCr tags */ + { TIFFTAG_YCBCRCOEFFICIENTS, 3, 3, TIFF_RATIONAL, FIELD_YCBCRCOEFFICIENTS, + FALSE, FALSE, "YCbCrCoefficients" }, + { TIFFTAG_YCBCRSUBSAMPLING, 2, 2, TIFF_SHORT, FIELD_YCBCRSUBSAMPLING, + FALSE, FALSE, "YCbCrSubsampling" }, + { TIFFTAG_YCBCRPOSITIONING, 1, 1, TIFF_SHORT, FIELD_YCBCRPOSITIONING, + FALSE, FALSE, "YCbCrPositioning" }, +#endif +#ifdef COLORIMETRY_SUPPORT + { TIFFTAG_REFERENCEBLACKWHITE,6,6,TIFF_RATIONAL, FIELD_REFBLACKWHITE, + TRUE, FALSE, "ReferenceBlackWhite" }, +/* XXX temporarily accept LONG for backwards compatibility */ + { TIFFTAG_REFERENCEBLACKWHITE,6,6,TIFF_LONG, FIELD_REFBLACKWHITE, + TRUE, FALSE, "ReferenceBlackWhite" }, +#endif +/* begin SGI tags */ + { TIFFTAG_MATTEING, 1, 1, TIFF_SHORT, FIELD_EXTRASAMPLES, + FALSE, FALSE, "Matteing" }, + { TIFFTAG_DATATYPE, -2,-1, TIFF_SHORT, FIELD_SAMPLEFORMAT, + FALSE, FALSE, "DataType" }, + { TIFFTAG_IMAGEDEPTH, 1, 1, TIFF_LONG, FIELD_IMAGEDEPTH, + FALSE, FALSE, "ImageDepth" }, + { TIFFTAG_IMAGEDEPTH, 1, 1, TIFF_SHORT, FIELD_IMAGEDEPTH, + FALSE, FALSE, "ImageDepth" }, + { TIFFTAG_TILEDEPTH, 1, 1, TIFF_LONG, FIELD_TILEDEPTH, + FALSE, FALSE, "TileDepth" }, + { TIFFTAG_TILEDEPTH, 1, 1, TIFF_SHORT, FIELD_TILEDEPTH, + FALSE, FALSE, "TileDepth" }, +/* end SGI tags */ +#ifdef IPTC_SUPPORT +#ifdef PHOTOSHOP_SUPPORT + { TIFFTAG_RICHTIFFIPTC, -1,-1, TIFF_LONG, FIELD_RICHTIFFIPTC, + FALSE, TRUE, "RichTIFFIPTC" }, +#else + { TIFFTAG_RICHTIFFIPTC, -1,-3, TIFF_UNDEFINED, FIELD_RICHTIFFIPTC, + FALSE, TRUE, "RichTIFFIPTC" }, +#endif +#endif +#ifdef PHOTOSHOP_SUPPORT + { TIFFTAG_PHOTOSHOP, -1,-3, TIFF_UNDEFINED, FIELD_PHOTOSHOP, + FALSE, TRUE, "Photoshop" }, + { TIFFTAG_PHOTOSHOP, -1,-1, TIFF_BYTE, FIELD_PHOTOSHOP, + FALSE, TRUE, "Photoshop" }, +#endif +#ifdef ICC_SUPPORT + { TIFFTAG_ICCPROFILE, -1,-3, TIFF_UNDEFINED, FIELD_ICCPROFILE, + FALSE, TRUE, "ICC Profile" }, +#endif + { TIFFTAG_STONITS, 1, 1, TIFF_DOUBLE, FIELD_STONITS, + FALSE, FALSE, "StoNits" }, +/* begin Pixar tags */ + { TIFFTAG_PIXAR_IMAGEFULLWIDTH, 1, 1, TIFF_LONG, FIELD_IMAGEFULLWIDTH, + TRUE, FALSE, "ImageFullWidth" }, + { TIFFTAG_PIXAR_IMAGEFULLLENGTH, 1, 1, TIFF_LONG, FIELD_IMAGEFULLLENGTH, + TRUE, FALSE, "ImageFullLength" }, + { TIFFTAG_PIXAR_TEXTUREFORMAT, -1,-1, TIFF_ASCII, FIELD_TEXTUREFORMAT, + TRUE, FALSE, "TextureFormat" }, + { TIFFTAG_PIXAR_WRAPMODES, -1,-1, TIFF_ASCII, FIELD_WRAPMODES, + TRUE, FALSE, "TextureWrapModes" }, + { TIFFTAG_PIXAR_FOVCOT, 1, 1, TIFF_FLOAT, FIELD_FOVCOT, + TRUE, FALSE, "FieldOfViewCotan" }, + { TIFFTAG_PIXAR_MATRIX_WORLDTOSCREEN, 16,16, TIFF_FLOAT, + FIELD_MATRIX_WORLDTOSCREEN, TRUE, FALSE, "MatrixWorldToScreen" }, + { TIFFTAG_PIXAR_MATRIX_WORLDTOCAMERA, 16,16, TIFF_FLOAT, + FIELD_MATRIX_WORLDTOCAMERA, TRUE, FALSE, "MatrixWorldToCamera" }, +/* end Pixar tags */ +}; +#define N(a) (sizeof (a) / sizeof (a[0])) + +void +_TIFFSetupFieldInfo(TIFF* tif) +{ + if (tif->tif_fieldinfo) { + _TIFFfree(tif->tif_fieldinfo); + tif->tif_nfields = 0; + } + _TIFFMergeFieldInfo(tif, tiffFieldInfo, N(tiffFieldInfo)); +} + +static int +tagCompare(const void* a, const void* b) +{ + const TIFFFieldInfo* ta = *(const TIFFFieldInfo**) a; + const TIFFFieldInfo* tb = *(const TIFFFieldInfo**) b; + /* NB: be careful of return values for 16-bit platforms */ + if (ta->field_tag != tb->field_tag) + return (ta->field_tag < tb->field_tag ? -1 : 1); + else + return (tb->field_type < ta->field_type ? -1 : 1); +} + +void +_TIFFMergeFieldInfo(TIFF* tif, const TIFFFieldInfo info[], int n) +{ + TIFFFieldInfo** tp; + int i; + + if (tif->tif_nfields > 0) { + tif->tif_fieldinfo = (TIFFFieldInfo**) + _TIFFrealloc(tif->tif_fieldinfo, + (tif->tif_nfields+n) * sizeof (TIFFFieldInfo*)); + } else { + tif->tif_fieldinfo = (TIFFFieldInfo**) + _TIFFmalloc(n * sizeof (TIFFFieldInfo*)); + } + tp = &tif->tif_fieldinfo[tif->tif_nfields]; + for (i = 0; i < n; i++) + tp[i] = (TIFFFieldInfo*) &info[i]; /* XXX */ + /* + * NB: the core tags are presumed sorted correctly. + */ + if (tif->tif_nfields > 0) + qsort(tif->tif_fieldinfo, (size_t) (tif->tif_nfields += n), + sizeof (TIFFFieldInfo*), tagCompare); + else + tif->tif_nfields += n; +} + +void +_TIFFPrintFieldInfo(TIFF* tif, FILE* fd) +{ + int i; + + fprintf(fd, "%s: \n", tif->tif_name); + for (i = 0; i < tif->tif_nfields; i++) { + const TIFFFieldInfo* fip = tif->tif_fieldinfo[i]; + fprintf(fd, "field[%2d] %5lu, %2d, %2d, %d, %2d, %5s, %5s, %s\n" + , i + , (unsigned long) fip->field_tag + , fip->field_readcount, fip->field_writecount + , fip->field_type + , fip->field_bit + , fip->field_oktochange ? "TRUE" : "FALSE" + , fip->field_passcount ? "TRUE" : "FALSE" + , fip->field_name + ); + } +} + +const int tiffDataWidth[] = { + 1, /* nothing */ + 1, /* TIFF_BYTE */ + 1, /* TIFF_ASCII */ + 2, /* TIFF_SHORT */ + 4, /* TIFF_LONG */ + 8, /* TIFF_RATIONAL */ + 1, /* TIFF_SBYTE */ + 1, /* TIFF_UNDEFINED */ + 2, /* TIFF_SSHORT */ + 4, /* TIFF_SLONG */ + 8, /* TIFF_SRATIONAL */ + 4, /* TIFF_FLOAT */ + 8, /* TIFF_DOUBLE */ +}; + +/* + * Return nearest TIFFDataType to the sample type of an image. + */ +TIFFDataType +_TIFFSampleToTagType(TIFF* tif) +{ + int bps = (int) TIFFhowmany(tif->tif_dir.td_bitspersample, 8); + + switch (tif->tif_dir.td_sampleformat) { + case SAMPLEFORMAT_IEEEFP: + return (bps == 4 ? TIFF_FLOAT : TIFF_DOUBLE); + case SAMPLEFORMAT_INT: + return (bps <= 1 ? TIFF_SBYTE : + bps <= 2 ? TIFF_SSHORT : TIFF_SLONG); + case SAMPLEFORMAT_UINT: + return (bps <= 1 ? TIFF_BYTE : + bps <= 2 ? TIFF_SHORT : TIFF_LONG); + case SAMPLEFORMAT_VOID: + return (TIFF_UNDEFINED); + } + /*NOTREACHED*/ + return (TIFF_UNDEFINED); +} + +const TIFFFieldInfo* +_TIFFFindFieldInfo(TIFF* tif, ttag_t tag, TIFFDataType dt) +{ + static const TIFFFieldInfo *last = NULL; + int i, n; + + if (last && last->field_tag == tag && + (dt == TIFF_ANY || dt == last->field_type)) + return (last); + /* NB: if table gets big, use sorted search (e.g. binary search) */ + for (i = 0, n = tif->tif_nfields; i < n; i++) { + const TIFFFieldInfo* fip = tif->tif_fieldinfo[i]; + if (fip->field_tag == tag && + (dt == TIFF_ANY || fip->field_type == dt)) + return (last = fip); + } + return ((const TIFFFieldInfo *)0); +} + +#include +#include + +const TIFFFieldInfo* +_TIFFFieldWithTag(TIFF* tif, ttag_t tag) +{ + const TIFFFieldInfo* fip = _TIFFFindFieldInfo(tif, tag, TIFF_ANY); + if (!fip) { + TIFFError("TIFFFieldWithTag", + "Internal error, unknown tag 0x%x", (u_int) tag); + assert(fip != NULL); + /*NOTREACHED*/ + } + return (fip); +} diff --git a/libtiff/tif_dirread.c b/libtiff/tif_dirread.c new file mode 100755 index 0000000..aa73cc1 --- /dev/null +++ b/libtiff/tif_dirread.c @@ -0,0 +1,1375 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_dirread.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library. + * + * Directory Read Support Routines. + */ +#include "tiffiop.h" + +#define IGNORE 0 /* tag placeholder used below */ + +#if HAVE_IEEEFP +#define TIFFCvtIEEEFloatToNative(tif, n, fp) +#define TIFFCvtIEEEDoubleToNative(tif, n, dp) +#else +extern void TIFFCvtIEEEFloatToNative(TIFF*, uint32, float*); +extern void TIFFCvtIEEEDoubleToNative(TIFF*, uint32, double*); +#endif + +static void EstimateStripByteCounts(TIFF*, TIFFDirEntry*, uint16); +static void MissingRequired(TIFF*, const char*); +static int CheckDirCount(TIFF*, TIFFDirEntry*, uint32); +static tsize_t TIFFFetchData(TIFF*, TIFFDirEntry*, char*); +static tsize_t TIFFFetchString(TIFF*, TIFFDirEntry*, char*); +static float TIFFFetchRational(TIFF*, TIFFDirEntry*); +static int TIFFFetchNormalTag(TIFF*, TIFFDirEntry*); +static int TIFFFetchPerSampleShorts(TIFF*, TIFFDirEntry*, int*); +static int TIFFFetchPerSampleAnys(TIFF*, TIFFDirEntry*, double*); +static int TIFFFetchShortArray(TIFF*, TIFFDirEntry*, uint16*); +static int TIFFFetchStripThing(TIFF*, TIFFDirEntry*, long, uint32**); +static int TIFFFetchExtraSamples(TIFF*, TIFFDirEntry*); +static int TIFFFetchRefBlackWhite(TIFF*, TIFFDirEntry*); +static float TIFFFetchFloat(TIFF*, TIFFDirEntry*); +static int TIFFFetchFloatArray(TIFF*, TIFFDirEntry*, float*); +static int TIFFFetchDoubleArray(TIFF*, TIFFDirEntry*, double*); +static int TIFFFetchAnyArray(TIFF*, TIFFDirEntry*, double*); +static int TIFFFetchShortPair(TIFF*, TIFFDirEntry*); +static void ChopUpSingleUncompressedStrip(TIFF*); + +static char * +CheckMalloc(TIFF* tif, tsize_t n, const char* what) +{ + char *cp = (char*)_TIFFmalloc(n); + if (cp == NULL) + TIFFError(tif->tif_name, "No space %s", what); + return (cp); +} + +/* + * Read the next TIFF directory from a file + * and convert it to the internal format. + * We read directories sequentially. + */ +int +TIFFReadDirectory(TIFF* tif) +{ + register TIFFDirEntry* dp; + register int n; + register TIFFDirectory* td; + TIFFDirEntry* dir; + int iv; + long v; + double dv; + const TIFFFieldInfo* fip; + int fix; + uint16 dircount; + toff_t nextdiroff; + char* cp; + int diroutoforderwarning = 0; + + tif->tif_diroff = tif->tif_nextdiroff; + if (tif->tif_diroff == 0) /* no more directories */ + return (0); + /* + * Cleanup any previous compression state. + */ + (*tif->tif_cleanup)(tif); + tif->tif_curdir++; + nextdiroff = 0; + if (!isMapped(tif)) { + if (!SeekOK(tif, tif->tif_diroff)) { + TIFFError(tif->tif_name, + "Seek error accessing TIFF directory"); + return (0); + } + if (!ReadOK(tif, &dircount, sizeof (uint16))) { + TIFFError(tif->tif_name, + "Can not read TIFF directory count"); + return (0); + } + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabShort(&dircount); + dir = (TIFFDirEntry *)CheckMalloc(tif, + dircount * sizeof (TIFFDirEntry), "to read TIFF directory"); + if (dir == NULL) + return (0); + if (!ReadOK(tif, dir, dircount*sizeof (TIFFDirEntry))) { + TIFFError(tif->tif_name, "Can not read TIFF directory"); + goto bad; + } + /* + * Read offset to next directory for sequential scans. + */ + (void) ReadOK(tif, &nextdiroff, sizeof (uint32)); + } else { + toff_t off = tif->tif_diroff; + + if (off + sizeof (uint16) > tif->tif_size) { + TIFFError(tif->tif_name, + "Can not read TIFF directory count"); + return (0); + } else + _TIFFmemcpy(&dircount, tif->tif_base + off, sizeof (uint16)); + off += sizeof (uint16); + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabShort(&dircount); + dir = (TIFFDirEntry *)CheckMalloc(tif, + dircount * sizeof (TIFFDirEntry), "to read TIFF directory"); + if (dir == NULL) + return (0); + if (off + dircount*sizeof (TIFFDirEntry) > tif->tif_size) { + TIFFError(tif->tif_name, "Can not read TIFF directory"); + goto bad; + } else + _TIFFmemcpy(dir, tif->tif_base + off, + dircount*sizeof (TIFFDirEntry)); + off += dircount* sizeof (TIFFDirEntry); + if (off + sizeof (uint32) <= tif->tif_size) + _TIFFmemcpy(&nextdiroff, tif->tif_base+off, sizeof (uint32)); + } + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabLong(&nextdiroff); + tif->tif_nextdiroff = nextdiroff; + + tif->tif_flags &= ~TIFF_BEENWRITING; /* reset before new dir */ + /* + * Setup default value and then make a pass over + * the fields to check type and tag information, + * and to extract info required to size data + * structures. A second pass is made afterwards + * to read in everthing not taken in the first pass. + */ + td = &tif->tif_dir; + /* free any old stuff and reinit */ + TIFFFreeDirectory(tif); + TIFFDefaultDirectory(tif); + /* + * Electronic Arts writes gray-scale TIFF files + * without a PlanarConfiguration directory entry. + * Thus we setup a default value here, even though + * the TIFF spec says there is no default value. + */ + TIFFSetField(tif, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); + + /* + * Sigh, we must make a separate pass through the + * directory for the following reason: + * + * We must process the Compression tag in the first pass + * in order to merge in codec-private tag definitions (otherwise + * we may get complaints about unknown tags). However, the + * Compression tag may be dependent on the SamplesPerPixel + * tag value because older TIFF specs permited Compression + * to be written as a SamplesPerPixel-count tag entry. + * Thus if we don't first figure out the correct SamplesPerPixel + * tag value then we may end up ignoring the Compression tag + * value because it has an incorrect count value (if the + * true value of SamplesPerPixel is not 1). + * + * It sure would have been nice if Aldus had really thought + * this stuff through carefully. + */ + for (dp = dir, n = dircount; n > 0; n--, dp++) { + if (tif->tif_flags & TIFF_SWAB) { + TIFFSwabArrayOfShort(&dp->tdir_tag, 2); + TIFFSwabArrayOfLong(&dp->tdir_count, 2); + } + if (dp->tdir_tag == TIFFTAG_SAMPLESPERPIXEL) { + if (!TIFFFetchNormalTag(tif, dp)) + goto bad; + dp->tdir_tag = IGNORE; + } + } + /* + * First real pass over the directory. + */ + fix = 0; + for (dp = dir, n = dircount; n > 0; n--, dp++) { + + /* + * Find the field information entry for this tag. + * Added check for tags to ignore ... [BFC] + */ + if( TIFFReassignTagToIgnore(TIS_EXTRACT, dp->tdir_tag) ) + dp->tdir_tag = IGNORE; + + if (dp->tdir_tag == IGNORE) + continue; + + /* + * Silicon Beach (at least) writes unordered + * directory tags (violating the spec). Handle + * it here, but be obnoxious (maybe they'll fix it?). + */ + if (dp->tdir_tag < tif->tif_fieldinfo[fix]->field_tag) { + if (!diroutoforderwarning) { + TIFFWarning(tif->tif_name, + "invalid TIFF directory; tags are not sorted in ascending order"); + diroutoforderwarning = 1; + } + fix = 0; /* O(n^2) */ + } + while (fix < tif->tif_nfields && + tif->tif_fieldinfo[fix]->field_tag < dp->tdir_tag) + fix++; + if (fix == tif->tif_nfields || + tif->tif_fieldinfo[fix]->field_tag != dp->tdir_tag) { + TIFFWarning(tif->tif_name, + "unknown field with tag %d (0x%x) ignored", + dp->tdir_tag, dp->tdir_tag); + dp->tdir_tag = IGNORE; + fix = 0; /* restart search */ + continue; + } + /* + * Null out old tags that we ignore. + */ + if (tif->tif_fieldinfo[fix]->field_bit == FIELD_IGNORE) { + ignore: + dp->tdir_tag = IGNORE; + continue; + } + /* + * Check data type. + */ + fip = tif->tif_fieldinfo[fix]; + while (dp->tdir_type != (u_short) fip->field_type) { + if (fip->field_type == TIFF_ANY) /* wildcard */ + break; + fip++, fix++; + if (fix == tif->tif_nfields || + fip->field_tag != dp->tdir_tag) { + TIFFWarning(tif->tif_name, + "wrong data type %d for \"%s\"; tag ignored", + dp->tdir_type, fip[-1].field_name); + goto ignore; + } + } + /* + * Check count if known in advance. + */ + if (fip->field_readcount != TIFF_VARIABLE) { + uint32 expected = (fip->field_readcount == TIFF_SPP) ? + (uint32) td->td_samplesperpixel : + (uint32) fip->field_readcount; + if (!CheckDirCount(tif, dp, expected)) + goto ignore; + } + + switch (dp->tdir_tag) { + case TIFFTAG_COMPRESSION: + /* + * The 5.0 spec says the Compression tag has + * one value, while earlier specs say it has + * one value per sample. Because of this, we + * accept the tag if one value is supplied. + */ + if (dp->tdir_count == 1) { + v = TIFFExtractData(tif, + dp->tdir_type, dp->tdir_offset); + if (!TIFFSetField(tif, dp->tdir_tag, (int)v)) + goto bad; + break; + } + if (!TIFFFetchPerSampleShorts(tif, dp, &iv) || + !TIFFSetField(tif, dp->tdir_tag, iv)) + goto bad; + dp->tdir_tag = IGNORE; + break; + case TIFFTAG_STRIPOFFSETS: + case TIFFTAG_STRIPBYTECOUNTS: + case TIFFTAG_TILEOFFSETS: + case TIFFTAG_TILEBYTECOUNTS: + TIFFSetFieldBit(tif, fip->field_bit); + break; + case TIFFTAG_IMAGEWIDTH: + case TIFFTAG_IMAGELENGTH: + case TIFFTAG_IMAGEDEPTH: + case TIFFTAG_TILELENGTH: + case TIFFTAG_TILEWIDTH: + case TIFFTAG_TILEDEPTH: + case TIFFTAG_PLANARCONFIG: + case TIFFTAG_ROWSPERSTRIP: + if (!TIFFFetchNormalTag(tif, dp)) + goto bad; + dp->tdir_tag = IGNORE; + break; + case TIFFTAG_EXTRASAMPLES: + (void) TIFFFetchExtraSamples(tif, dp); + dp->tdir_tag = IGNORE; + break; + } + } + + /* + * Allocate directory structure and setup defaults. + */ + if (!TIFFFieldSet(tif, FIELD_IMAGEDIMENSIONS)) { + MissingRequired(tif, "ImageLength"); + goto bad; + } + if (!TIFFFieldSet(tif, FIELD_PLANARCONFIG)) { + MissingRequired(tif, "PlanarConfiguration"); + goto bad; + } + /* + * Setup appropriate structures (by strip or by tile) + */ + if (!TIFFFieldSet(tif, FIELD_TILEDIMENSIONS)) { + td->td_nstrips = TIFFNumberOfStrips(tif); + td->td_tilewidth = td->td_imagewidth; + td->td_tilelength = td->td_rowsperstrip; + td->td_tiledepth = td->td_imagedepth; + tif->tif_flags &= ~TIFF_ISTILED; + } else { + td->td_nstrips = TIFFNumberOfTiles(tif); + tif->tif_flags |= TIFF_ISTILED; + } + td->td_stripsperimage = td->td_nstrips; + if (td->td_planarconfig == PLANARCONFIG_SEPARATE) + td->td_stripsperimage /= td->td_samplesperpixel; + if (!TIFFFieldSet(tif, FIELD_STRIPOFFSETS)) { + MissingRequired(tif, + isTiled(tif) ? "TileOffsets" : "StripOffsets"); + goto bad; + } + + /* + * Second pass: extract other information. + */ + for (dp = dir, n = dircount; n > 0; n--, dp++) { + if (dp->tdir_tag == IGNORE) + continue; + switch (dp->tdir_tag) { + case TIFFTAG_MINSAMPLEVALUE: + case TIFFTAG_MAXSAMPLEVALUE: + case TIFFTAG_BITSPERSAMPLE: + /* + * The 5.0 spec says the Compression tag has + * one value, while earlier specs say it has + * one value per sample. Because of this, we + * accept the tag if one value is supplied. + * + * The MinSampleValue, MaxSampleValue and + * BitsPerSample tags are supposed to be written + * as one value/sample, but some vendors incorrectly + * write one value only -- so we accept that + * as well (yech). + */ + if (dp->tdir_count == 1) { + v = TIFFExtractData(tif, + dp->tdir_type, dp->tdir_offset); + if (!TIFFSetField(tif, dp->tdir_tag, (int)v)) + goto bad; + break; + } + /* fall thru... */ + case TIFFTAG_DATATYPE: + case TIFFTAG_SAMPLEFORMAT: + if (!TIFFFetchPerSampleShorts(tif, dp, &iv) || + !TIFFSetField(tif, dp->tdir_tag, iv)) + goto bad; + break; + case TIFFTAG_SMINSAMPLEVALUE: + case TIFFTAG_SMAXSAMPLEVALUE: + if (!TIFFFetchPerSampleAnys(tif, dp, &dv) || + !TIFFSetField(tif, dp->tdir_tag, dv)) + goto bad; + break; + case TIFFTAG_STRIPOFFSETS: + case TIFFTAG_TILEOFFSETS: + if (!TIFFFetchStripThing(tif, dp, + td->td_nstrips, &td->td_stripoffset)) + goto bad; + break; + case TIFFTAG_STRIPBYTECOUNTS: + case TIFFTAG_TILEBYTECOUNTS: + if (!TIFFFetchStripThing(tif, dp, + td->td_nstrips, &td->td_stripbytecount)) + goto bad; + break; + case TIFFTAG_COLORMAP: + case TIFFTAG_TRANSFERFUNCTION: + /* + * TransferFunction can have either 1x or 3x data + * values; Colormap can have only 3x items. + */ + v = 1L<td_bitspersample; + if (dp->tdir_tag == TIFFTAG_COLORMAP || + dp->tdir_count != (uint32) v) { + if (!CheckDirCount(tif, dp, (uint32)(3*v))) + break; + } + v *= sizeof (uint16); + cp = CheckMalloc(tif, dp->tdir_count * sizeof (uint16), + "to read \"TransferFunction\" tag"); + if (cp != NULL) { + if (TIFFFetchData(tif, dp, cp)) { + /* + * This deals with there being only + * one array to apply to all samples. + */ + uint32 c = + (uint32)1 << td->td_bitspersample; + if (dp->tdir_count == c) + v = 0; + TIFFSetField(tif, dp->tdir_tag, + cp, cp+v, cp+2*v); + } + _TIFFfree(cp); + } + break; + case TIFFTAG_PAGENUMBER: + case TIFFTAG_HALFTONEHINTS: + case TIFFTAG_YCBCRSUBSAMPLING: + case TIFFTAG_DOTRANGE: + (void) TIFFFetchShortPair(tif, dp); + break; +#ifdef COLORIMETRY_SUPPORT + case TIFFTAG_REFERENCEBLACKWHITE: + (void) TIFFFetchRefBlackWhite(tif, dp); + break; +#endif +/* BEGIN REV 4.0 COMPATIBILITY */ + case TIFFTAG_OSUBFILETYPE: + v = 0; + switch (TIFFExtractData(tif, dp->tdir_type, + dp->tdir_offset)) { + case OFILETYPE_REDUCEDIMAGE: + v = FILETYPE_REDUCEDIMAGE; + break; + case OFILETYPE_PAGE: + v = FILETYPE_PAGE; + break; + } + if (v) + (void) TIFFSetField(tif, + TIFFTAG_SUBFILETYPE, (int)v); + break; +/* END REV 4.0 COMPATIBILITY */ + default: + (void) TIFFFetchNormalTag(tif, dp); + break; + } + } + /* + * Verify Palette image has a Colormap. + */ + if (td->td_photometric == PHOTOMETRIC_PALETTE && + !TIFFFieldSet(tif, FIELD_COLORMAP)) { + MissingRequired(tif, "Colormap"); + goto bad; + } + /* + * Attempt to deal with a missing StripByteCounts tag. + */ + if (!TIFFFieldSet(tif, FIELD_STRIPBYTECOUNTS)) { + /* + * Some manufacturers violate the spec by not giving + * the size of the strips. In this case, assume there + * is one uncompressed strip of data. + */ + if ((td->td_planarconfig == PLANARCONFIG_CONTIG && + td->td_nstrips > 1) || + (td->td_planarconfig == PLANARCONFIG_SEPARATE && + td->td_nstrips != td->td_samplesperpixel)) { + MissingRequired(tif, "StripByteCounts"); + goto bad; + } + TIFFWarning(tif->tif_name, +"TIFF directory is missing required \"%s\" field, calculating from imagelength", + _TIFFFieldWithTag(tif,TIFFTAG_STRIPBYTECOUNTS)->field_name); + EstimateStripByteCounts(tif, dir, dircount); +#define BYTECOUNTLOOKSBAD \ + (td->td_stripbytecount[0] == 0 || \ + (td->td_compression == COMPRESSION_NONE && \ + td->td_stripbytecount[0] > TIFFGetFileSize(tif) - td->td_stripoffset[0])) + } else if (td->td_nstrips == 1 && BYTECOUNTLOOKSBAD) { + /* + * Plexus (and others) sometimes give a value + * of zero for a tag when they don't know what + * the correct value is! Try and handle the + * simple case of estimating the size of a one + * strip image. + */ + TIFFWarning(tif->tif_name, + "Bogus \"%s\" field, ignoring and calculating from imagelength", + _TIFFFieldWithTag(tif,TIFFTAG_STRIPBYTECOUNTS)->field_name); + EstimateStripByteCounts(tif, dir, dircount); + } + if (dir) + _TIFFfree((char *)dir); + if (!TIFFFieldSet(tif, FIELD_MAXSAMPLEVALUE)) + td->td_maxsamplevalue = (uint16)((1L<td_bitspersample)-1); + /* + * Setup default compression scheme. + */ + if (!TIFFFieldSet(tif, FIELD_COMPRESSION)) + TIFFSetField(tif, TIFFTAG_COMPRESSION, COMPRESSION_NONE); + /* + * Some manufacturers make life difficult by writing + * large amounts of uncompressed data as a single strip. + * This is contrary to the recommendations of the spec. + * The following makes an attempt at breaking such images + * into strips closer to the recommended 8k bytes. A + * side effect, however, is that the RowsPerStrip tag + * value may be changed. + */ + if (td->td_nstrips == 1 && td->td_compression == COMPRESSION_NONE && + (tif->tif_flags & (TIFF_STRIPCHOP|TIFF_ISTILED)) == TIFF_STRIPCHOP) + ChopUpSingleUncompressedStrip(tif); + /* + * Reinitialize i/o since we are starting on a new directory. + */ + tif->tif_row = (uint32) -1; + tif->tif_curstrip = (tstrip_t) -1; + tif->tif_col = (uint32) -1; + tif->tif_curtile = (ttile_t) -1; + tif->tif_tilesize = TIFFTileSize(tif); + tif->tif_scanlinesize = TIFFScanlineSize(tif); + return (1); +bad: + if (dir) + _TIFFfree(dir); + return (0); +} + +static void +EstimateStripByteCounts(TIFF* tif, TIFFDirEntry* dir, uint16 dircount) +{ + register TIFFDirEntry *dp; + register TIFFDirectory *td = &tif->tif_dir; + uint16 i; + + if (td->td_stripbytecount) + _TIFFfree(td->td_stripbytecount); + td->td_stripbytecount = (uint32*) + CheckMalloc(tif, td->td_nstrips * sizeof (uint32), + "for \"StripByteCounts\" array"); + if (td->td_compression != COMPRESSION_NONE) { + uint32 space = (uint32)(sizeof (TIFFHeader) + + sizeof (uint16) + + (dircount * sizeof (TIFFDirEntry)) + + sizeof (uint32)); + toff_t filesize = TIFFGetFileSize(tif); + uint16 n; + + /* calculate amount of space used by indirect values */ + for (dp = dir, n = dircount; n > 0; n--, dp++) { + uint32 cc = dp->tdir_count*tiffDataWidth[dp->tdir_type]; + if (cc > sizeof (uint32)) + space += cc; + } + space = filesize - space; + if (td->td_planarconfig == PLANARCONFIG_SEPARATE) + space /= td->td_samplesperpixel; + for (i = 0; i < td->td_nstrips; i++) + td->td_stripbytecount[i] = space; + /* + * This gross hack handles the case were the offset to + * the last strip is past the place where we think the strip + * should begin. Since a strip of data must be contiguous, + * it's safe to assume that we've overestimated the amount + * of data in the strip and trim this number back accordingly. + */ + i--; + if (((toff_t)(td->td_stripoffset[i]+td->td_stripbytecount[i])) + > filesize) + td->td_stripbytecount[i] = + filesize - td->td_stripoffset[i]; + } else { + uint32 rowbytes = TIFFScanlineSize(tif); + uint32 rowsperstrip = td->td_imagelength/td->td_stripsperimage; + for (i = 0; i < td->td_nstrips; i++) + td->td_stripbytecount[i] = rowbytes*rowsperstrip; + } + TIFFSetFieldBit(tif, FIELD_STRIPBYTECOUNTS); + if (!TIFFFieldSet(tif, FIELD_ROWSPERSTRIP)) + td->td_rowsperstrip = td->td_imagelength; +} + +static void +MissingRequired(TIFF* tif, const char* tagname) +{ + TIFFError(tif->tif_name, + "TIFF directory is missing required \"%s\" field", tagname); +} + +/* + * Check the count field of a directory + * entry against a known value. The caller + * is expected to skip/ignore the tag if + * there is a mismatch. + */ +static int +CheckDirCount(TIFF* tif, TIFFDirEntry* dir, uint32 count) +{ + if (count != dir->tdir_count) { + TIFFWarning(tif->tif_name, + "incorrect count for field \"%s\" (%lu, expecting %lu); tag ignored", + _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name, + dir->tdir_count, count); + return (0); + } + return (1); +} + +/* + * Fetch a contiguous directory item. + */ +static tsize_t +TIFFFetchData(TIFF* tif, TIFFDirEntry* dir, char* cp) +{ + int w = tiffDataWidth[dir->tdir_type]; + tsize_t cc = dir->tdir_count * w; + + if (!isMapped(tif)) { + if (!SeekOK(tif, dir->tdir_offset)) + goto bad; + if (!ReadOK(tif, cp, cc)) + goto bad; + } else { + if (dir->tdir_offset + cc > tif->tif_size) + goto bad; + _TIFFmemcpy(cp, tif->tif_base + dir->tdir_offset, cc); + } + if (tif->tif_flags & TIFF_SWAB) { + switch (dir->tdir_type) { + case TIFF_SHORT: + case TIFF_SSHORT: + TIFFSwabArrayOfShort((uint16*) cp, dir->tdir_count); + break; + case TIFF_LONG: + case TIFF_SLONG: + case TIFF_FLOAT: + TIFFSwabArrayOfLong((uint32*) cp, dir->tdir_count); + break; + case TIFF_RATIONAL: + case TIFF_SRATIONAL: + TIFFSwabArrayOfLong((uint32*) cp, 2*dir->tdir_count); + break; + case TIFF_DOUBLE: + TIFFSwabArrayOfDouble((double*) cp, dir->tdir_count); + break; + } + } + return (cc); +bad: + TIFFError(tif->tif_name, "Error fetching data for field \"%s\"", + _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name); + return ((tsize_t) 0); +} + +/* + * Fetch an ASCII item from the file. + */ +static tsize_t +TIFFFetchString(TIFF* tif, TIFFDirEntry* dir, char* cp) +{ + if (dir->tdir_count <= 4) { + uint32 l = dir->tdir_offset; + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabLong(&l); + _TIFFmemcpy(cp, &l, dir->tdir_count); + return (1); + } + return (TIFFFetchData(tif, dir, cp)); +} + +/* + * Convert numerator+denominator to float. + */ +static int +cvtRational(TIFF* tif, TIFFDirEntry* dir, uint32 num, uint32 denom, float* rv) +{ + if (denom == 0) { + TIFFError(tif->tif_name, + "%s: Rational with zero denominator (num = %lu)", + _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name, num); + return (0); + } else { + if (dir->tdir_type == TIFF_RATIONAL) + *rv = ((float)num / (float)denom); + else + *rv = ((float)(int32)num / (float)(int32)denom); + return (1); + } +} + +/* + * Fetch a rational item from the file + * at offset off and return the value + * as a floating point number. + */ +static float +TIFFFetchRational(TIFF* tif, TIFFDirEntry* dir) +{ + uint32 l[2]; + float v; + + return (!TIFFFetchData(tif, dir, (char *)l) || + !cvtRational(tif, dir, l[0], l[1], &v) ? 1.0f : v); +} + +/* + * Fetch a single floating point value + * from the offset field and return it + * as a native float. + */ +static float +TIFFFetchFloat(TIFF* tif, TIFFDirEntry* dir) +{ + long l = TIFFExtractData(tif, dir->tdir_type, dir->tdir_offset); + float v = *(float*) &l; + TIFFCvtIEEEFloatToNative(tif, 1, &v); + return (v); +} + +/* + * Fetch an array of BYTE or SBYTE values. + */ +static int +TIFFFetchByteArray(TIFF* tif, TIFFDirEntry* dir, uint16* v) +{ + if (dir->tdir_count <= 4) { + /* + * Extract data from offset field. + */ + if (tif->tif_header.tiff_magic == TIFF_BIGENDIAN) { + switch (dir->tdir_count) { + case 4: v[3] = (uint16)(dir->tdir_offset & 0xff); + case 3: v[2] = (uint16)((dir->tdir_offset >> 8) & 0xff); + case 2: v[1] = (uint16)((dir->tdir_offset >> 16) & 0xff); + case 1: v[0] = (uint16)(dir->tdir_offset >> 24); + } + } else { + switch (dir->tdir_count) { + case 4: v[3] = (uint16)(dir->tdir_offset >> 24); + case 3: v[2] = (uint16)((dir->tdir_offset >> 16) & 0xff); + case 2: v[1] = (uint16)((dir->tdir_offset >> 8) & 0xff); + case 1: v[0] = (uint16)(dir->tdir_offset & 0xff); + } + } + return (1); + } else + return (TIFFFetchData(tif, dir, (char*) v) != 0); /* XXX */ +} + +/* + * Fetch an array of SHORT or SSHORT values. + */ +static int +TIFFFetchShortArray(TIFF* tif, TIFFDirEntry* dir, uint16* v) +{ + if (dir->tdir_count <= 2) { + if (tif->tif_header.tiff_magic == TIFF_BIGENDIAN) { + switch (dir->tdir_count) { + case 2: v[1] = (uint16) (dir->tdir_offset & 0xffff); + case 1: v[0] = (uint16) (dir->tdir_offset >> 16); + } + } else { + switch (dir->tdir_count) { + case 2: v[1] = (uint16) (dir->tdir_offset >> 16); + case 1: v[0] = (uint16) (dir->tdir_offset & 0xffff); + } + } + return (1); + } else + return (TIFFFetchData(tif, dir, (char *)v) != 0); +} + +/* + * Fetch a pair of SHORT or BYTE values. + */ +static int +TIFFFetchShortPair(TIFF* tif, TIFFDirEntry* dir) +{ + uint16 v[2]; + int ok = 0; + + switch (dir->tdir_type) { + case TIFF_SHORT: + case TIFF_SSHORT: + ok = TIFFFetchShortArray(tif, dir, v); + break; + case TIFF_BYTE: + case TIFF_SBYTE: + ok = TIFFFetchByteArray(tif, dir, v); + break; + } + if (ok) + TIFFSetField(tif, dir->tdir_tag, v[0], v[1]); + return (ok); +} + +/* + * Fetch an array of LONG or SLONG values. + */ +static int +TIFFFetchLongArray(TIFF* tif, TIFFDirEntry* dir, uint32* v) +{ + if (dir->tdir_count == 1) { + v[0] = dir->tdir_offset; + return (1); + } else + return (TIFFFetchData(tif, dir, (char*) v) != 0); +} + +/* + * Fetch an array of RATIONAL or SRATIONAL values. + */ +static int +TIFFFetchRationalArray(TIFF* tif, TIFFDirEntry* dir, float* v) +{ + int ok = 0; + uint32* l; + + l = (uint32*)CheckMalloc(tif, + dir->tdir_count*tiffDataWidth[dir->tdir_type], + "to fetch array of rationals"); + if (l) { + if (TIFFFetchData(tif, dir, (char *)l)) { + uint32 i; + for (i = 0; i < dir->tdir_count; i++) { + ok = cvtRational(tif, dir, + l[2*i+0], l[2*i+1], &v[i]); + if (!ok) + break; + } + } + _TIFFfree((char *)l); + } + return (ok); +} + +/* + * Fetch an array of FLOAT values. + */ +static int +TIFFFetchFloatArray(TIFF* tif, TIFFDirEntry* dir, float* v) +{ + + if (dir->tdir_count == 1) { + v[0] = *(float*) &dir->tdir_offset; + TIFFCvtIEEEFloatToNative(tif, dir->tdir_count, v); + return (1); + } else if (TIFFFetchData(tif, dir, (char*) v)) { + TIFFCvtIEEEFloatToNative(tif, dir->tdir_count, v); + return (1); + } else + return (0); +} + +/* + * Fetch an array of DOUBLE values. + */ +static int +TIFFFetchDoubleArray(TIFF* tif, TIFFDirEntry* dir, double* v) +{ + if (TIFFFetchData(tif, dir, (char*) v)) { + TIFFCvtIEEEDoubleToNative(tif, dir->tdir_count, v); + return (1); + } else + return (0); +} + +/* + * Fetch an array of ANY values. The actual values are + * returned as doubles which should be able hold all the + * types. Yes, there really should be an tany_t to avoid + * this potential non-portability ... Note in particular + * that we assume that the double return value vector is + * large enough to read in any fundamental type. We use + * that vector as a buffer to read in the base type vector + * and then convert it in place to double (from end + * to front of course). + */ +static int +TIFFFetchAnyArray(TIFF* tif, TIFFDirEntry* dir, double* v) +{ + int i; + + switch (dir->tdir_type) { + case TIFF_BYTE: + case TIFF_SBYTE: + if (!TIFFFetchByteArray(tif, dir, (uint16*) v)) + return (0); + if (dir->tdir_type == TIFF_BYTE) { + uint16* vp = (uint16*) v; + for (i = dir->tdir_count-1; i >= 0; i--) + v[i] = vp[i]; + } else { + int16* vp = (int16*) v; + for (i = dir->tdir_count-1; i >= 0; i--) + v[i] = vp[i]; + } + break; + case TIFF_SHORT: + case TIFF_SSHORT: + if (!TIFFFetchShortArray(tif, dir, (uint16*) v)) + return (0); + if (dir->tdir_type == TIFF_SHORT) { + uint16* vp = (uint16*) v; + for (i = dir->tdir_count-1; i >= 0; i--) + v[i] = vp[i]; + } else { + int16* vp = (int16*) v; + for (i = dir->tdir_count-1; i >= 0; i--) + v[i] = vp[i]; + } + break; + case TIFF_LONG: + case TIFF_SLONG: + if (!TIFFFetchLongArray(tif, dir, (uint32*) v)) + return (0); + if (dir->tdir_type == TIFF_LONG) { + uint32* vp = (uint32*) v; + for (i = dir->tdir_count-1; i >= 0; i--) + v[i] = vp[i]; + } else { + int32* vp = (int32*) v; + for (i = dir->tdir_count-1; i >= 0; i--) + v[i] = vp[i]; + } + break; + case TIFF_RATIONAL: + case TIFF_SRATIONAL: + if (!TIFFFetchRationalArray(tif, dir, (float*) v)) + return (0); + { float* vp = (float*) v; + for (i = dir->tdir_count-1; i >= 0; i--) + v[i] = vp[i]; + } + break; + case TIFF_FLOAT: + if (!TIFFFetchFloatArray(tif, dir, (float*) v)) + return (0); + { float* vp = (float*) v; + for (i = dir->tdir_count-1; i >= 0; i--) + v[i] = vp[i]; + } + break; + case TIFF_DOUBLE: + return (TIFFFetchDoubleArray(tif, dir, (double*) v)); + default: + /* TIFF_NOTYPE */ + /* TIFF_ASCII */ + /* TIFF_UNDEFINED */ + TIFFError(tif->tif_name, + "Cannot read TIFF_ANY type %d for field \"%s\"", + _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name); + return (0); + } + return (1); +} + +/* + * Fetch a tag that is not handled by special case code. + */ +static int +TIFFFetchNormalTag(TIFF* tif, TIFFDirEntry* dp) +{ + static const char mesg[] = "to fetch tag value"; + int ok = 0; + const TIFFFieldInfo* fip = _TIFFFieldWithTag(tif, dp->tdir_tag); + + if (dp->tdir_count > 1) { /* array of values */ + char* cp = NULL; + + switch (dp->tdir_type) { + case TIFF_BYTE: + case TIFF_SBYTE: + /* NB: always expand BYTE values to shorts */ + cp = CheckMalloc(tif, + dp->tdir_count * sizeof (uint16), mesg); + ok = cp && TIFFFetchByteArray(tif, dp, (uint16*) cp); + break; + case TIFF_SHORT: + case TIFF_SSHORT: + cp = CheckMalloc(tif, + dp->tdir_count * sizeof (uint16), mesg); + ok = cp && TIFFFetchShortArray(tif, dp, (uint16*) cp); + break; + case TIFF_LONG: + case TIFF_SLONG: + cp = CheckMalloc(tif, + dp->tdir_count * sizeof (uint32), mesg); + ok = cp && TIFFFetchLongArray(tif, dp, (uint32*) cp); + break; + case TIFF_RATIONAL: + case TIFF_SRATIONAL: + cp = CheckMalloc(tif, + dp->tdir_count * sizeof (float), mesg); + ok = cp && TIFFFetchRationalArray(tif, dp, (float*) cp); + break; + case TIFF_FLOAT: + cp = CheckMalloc(tif, + dp->tdir_count * sizeof (float), mesg); + ok = cp && TIFFFetchFloatArray(tif, dp, (float*) cp); + break; + case TIFF_DOUBLE: + cp = CheckMalloc(tif, + dp->tdir_count * sizeof (double), mesg); + ok = cp && TIFFFetchDoubleArray(tif, dp, (double*) cp); + break; + case TIFF_ASCII: + case TIFF_UNDEFINED: /* bit of a cheat... */ + /* + * Some vendors write strings w/o the trailing + * NULL byte, so always append one just in case. + */ + cp = CheckMalloc(tif, dp->tdir_count+1, mesg); + if( (ok = (cp && TIFFFetchString(tif, dp, cp))) != 0 ) + cp[dp->tdir_count] = '\0'; /* XXX */ + break; + } + if (ok) { + ok = (fip->field_passcount ? + TIFFSetField(tif, dp->tdir_tag, dp->tdir_count, cp) + : TIFFSetField(tif, dp->tdir_tag, cp)); + } + if (cp != NULL) + _TIFFfree(cp); + } else if (CheckDirCount(tif, dp, 1)) { /* singleton value */ + switch (dp->tdir_type) { + case TIFF_BYTE: + case TIFF_SBYTE: + case TIFF_SHORT: + case TIFF_SSHORT: + /* + * If the tag is also acceptable as a LONG or SLONG + * then TIFFSetField will expect an uint32 parameter + * passed to it (through varargs). Thus, for machines + * where sizeof (int) != sizeof (uint32) we must do + * a careful check here. It's hard to say if this + * is worth optimizing. + * + * NB: We use TIFFFieldWithTag here knowing that + * it returns us the first entry in the table + * for the tag and that that entry is for the + * widest potential data type the tag may have. + */ + { TIFFDataType type = fip->field_type; + if (type != TIFF_LONG && type != TIFF_SLONG) { + uint16 v = (uint16) + TIFFExtractData(tif, dp->tdir_type, dp->tdir_offset); + ok = (fip->field_passcount ? + TIFFSetField(tif, dp->tdir_tag, 1, &v) + : TIFFSetField(tif, dp->tdir_tag, v)); + break; + } + } + /* fall thru... */ + case TIFF_LONG: + case TIFF_SLONG: + { uint32 v32 = + TIFFExtractData(tif, dp->tdir_type, dp->tdir_offset); + ok = (fip->field_passcount ? + TIFFSetField(tif, dp->tdir_tag, 1, &v32) + : TIFFSetField(tif, dp->tdir_tag, v32)); + } + break; + case TIFF_RATIONAL: + case TIFF_SRATIONAL: + case TIFF_FLOAT: + { float v = (dp->tdir_type == TIFF_FLOAT ? + TIFFFetchFloat(tif, dp) + : TIFFFetchRational(tif, dp)); + ok = (fip->field_passcount ? + TIFFSetField(tif, dp->tdir_tag, 1, &v) + : TIFFSetField(tif, dp->tdir_tag, v)); + } + break; + case TIFF_DOUBLE: + { double v; + ok = (TIFFFetchDoubleArray(tif, dp, &v) && + (fip->field_passcount ? + TIFFSetField(tif, dp->tdir_tag, 1, &v) + : TIFFSetField(tif, dp->tdir_tag, v)) + ); + } + break; + case TIFF_ASCII: + case TIFF_UNDEFINED: /* bit of a cheat... */ + { char c[2]; + if( (ok = (TIFFFetchString(tif, dp, c) != 0)) != 0 ){ + c[1] = '\0'; /* XXX paranoid */ + ok = TIFFSetField(tif, dp->tdir_tag, c); + } + } + break; + } + } + return (ok); +} + +#define NITEMS(x) (sizeof (x) / sizeof (x[0])) +/* + * Fetch samples/pixel short values for + * the specified tag and verify that + * all values are the same. + */ +static int +TIFFFetchPerSampleShorts(TIFF* tif, TIFFDirEntry* dir, int* pl) +{ + int samples = tif->tif_dir.td_samplesperpixel; + int status = 0; + + if (CheckDirCount(tif, dir, (uint32) samples)) { + uint16 buf[10]; + uint16* v = buf; + + if (samples > NITEMS(buf)) + v = (uint16*) _TIFFmalloc(samples * sizeof (uint16)); + if (TIFFFetchShortArray(tif, dir, v)) { + int i; + for (i = 1; i < samples; i++) + if (v[i] != v[0]) { + TIFFError(tif->tif_name, + "Cannot handle different per-sample values for field \"%s\"", + _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name); + goto bad; + } + *pl = v[0]; + status = 1; + } + bad: + if (v != buf) + _TIFFfree((char*) v); + } + return (status); +} + +/* + * Fetch samples/pixel ANY values for + * the specified tag and verify that + * all values are the same. + */ +static int +TIFFFetchPerSampleAnys(TIFF* tif, TIFFDirEntry* dir, double* pl) +{ + int samples = (int) tif->tif_dir.td_samplesperpixel; + int status = 0; + + if (CheckDirCount(tif, dir, (uint32) samples)) { + double buf[10]; + double* v = buf; + + if (samples > NITEMS(buf)) + v = (double*) _TIFFmalloc(samples * sizeof (double)); + if (TIFFFetchAnyArray(tif, dir, v)) { + int i; + for (i = 1; i < samples; i++) + if (v[i] != v[0]) { + TIFFError(tif->tif_name, + "Cannot handle different per-sample values for field \"%s\"", + _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name); + goto bad; + } + *pl = v[0]; + status = 1; + } + bad: + if (v != buf) + _TIFFfree(v); + } + return (status); +} +#undef NITEMS + +/* + * Fetch a set of offsets or lengths. + * While this routine says "strips", + * in fact it's also used for tiles. + */ +static int +TIFFFetchStripThing(TIFF* tif, TIFFDirEntry* dir, long nstrips, uint32** lpp) +{ + register uint32* lp; + int status; + + if (!CheckDirCount(tif, dir, (uint32) nstrips)) + return (0); + /* + * Allocate space for strip information. + */ + if (*lpp == NULL && + (*lpp = (uint32 *)CheckMalloc(tif, + nstrips * sizeof (uint32), "for strip array")) == NULL) + return (0); + lp = *lpp; + if (dir->tdir_type == (int)TIFF_SHORT) { + /* + * Handle uint16->uint32 expansion. + */ + uint16* dp = (uint16*) CheckMalloc(tif, + dir->tdir_count* sizeof (uint16), "to fetch strip tag"); + if (dp == NULL) + return (0); + if( (status = TIFFFetchShortArray(tif, dir, dp)) != 0 ) { + register uint16* wp = dp; + while (nstrips-- > 0) + *lp++ = *wp++; + } + _TIFFfree((char*) dp); + } else + status = TIFFFetchLongArray(tif, dir, lp); + return (status); +} + +#define NITEMS(x) (sizeof (x) / sizeof (x[0])) +/* + * Fetch and set the ExtraSamples tag. + */ +static int +TIFFFetchExtraSamples(TIFF* tif, TIFFDirEntry* dir) +{ + uint16 buf[10]; + uint16* v = buf; + int status; + + if (dir->tdir_count > NITEMS(buf)) + v = (uint16*) _TIFFmalloc(dir->tdir_count * sizeof (uint16)); + if (dir->tdir_type == TIFF_BYTE) + status = TIFFFetchByteArray(tif, dir, v); + else + status = TIFFFetchShortArray(tif, dir, v); + if (status) + status = TIFFSetField(tif, dir->tdir_tag, dir->tdir_count, v); + if (v != buf) + _TIFFfree((char*) v); + return (status); +} +#undef NITEMS + +#ifdef COLORIMETRY_SUPPORT +/* + * Fetch and set the RefBlackWhite tag. + */ +static int +TIFFFetchRefBlackWhite(TIFF* tif, TIFFDirEntry* dir) +{ + static const char mesg[] = "for \"ReferenceBlackWhite\" array"; + char* cp; + int ok; + + if (dir->tdir_type == TIFF_RATIONAL) + return (TIFFFetchNormalTag(tif, dir)); + /* + * Handle LONG's for backward compatibility. + */ + cp = CheckMalloc(tif, dir->tdir_count * sizeof (uint32), mesg); + if( (ok = (cp && TIFFFetchLongArray(tif, dir, (uint32*) cp))) != 0) { + float* fp = (float*) + CheckMalloc(tif, dir->tdir_count * sizeof (float), mesg); + if( (ok = (fp != NULL)) != 0 ) { + uint32 i; + for (i = 0; i < dir->tdir_count; i++) + fp[i] = (float)((uint32*) cp)[i]; + ok = TIFFSetField(tif, dir->tdir_tag, fp); + _TIFFfree((char*) fp); + } + } + if (cp) + _TIFFfree(cp); + return (ok); +} +#endif + +/* + * Replace a single strip (tile) of uncompressed data by + * multiple strips (tiles), each approximately 8Kbytes. + * This is useful for dealing with large images or + * for dealing with machines with a limited amount + * memory. + */ +static void +ChopUpSingleUncompressedStrip(TIFF* tif) +{ + register TIFFDirectory *td = &tif->tif_dir; + uint32 bytecount = td->td_stripbytecount[0]; + uint32 offset = td->td_stripoffset[0]; + tsize_t rowbytes = TIFFVTileSize(tif, 1), stripbytes; + tstrip_t strip, nstrips, rowsperstrip; + uint32* newcounts; + uint32* newoffsets; + + /* + * Make the rows hold at least one + * scanline, but fill 8k if possible. + */ + if (rowbytes > 8192) { + stripbytes = rowbytes; + rowsperstrip = 1; + } else { + rowsperstrip = 8192 / rowbytes; + stripbytes = rowbytes * rowsperstrip; + } + /* never increase the number of strips in an image */ + if (rowsperstrip >= td->td_rowsperstrip) + return; + nstrips = (tstrip_t) TIFFhowmany(bytecount, stripbytes); + newcounts = (uint32*) CheckMalloc(tif, nstrips * sizeof (uint32), + "for chopped \"StripByteCounts\" array"); + newoffsets = (uint32*) CheckMalloc(tif, nstrips * sizeof (uint32), + "for chopped \"StripOffsets\" array"); + if (newcounts == NULL || newoffsets == NULL) { + /* + * Unable to allocate new strip information, give + * up and use the original one strip information. + */ + if (newcounts != NULL) + _TIFFfree(newcounts); + if (newoffsets != NULL) + _TIFFfree(newoffsets); + return; + } + /* + * Fill the strip information arrays with + * new bytecounts and offsets that reflect + * the broken-up format. + */ + for (strip = 0; strip < nstrips; strip++) { + if (stripbytes > (tsize_t) bytecount) + stripbytes = bytecount; + newcounts[strip] = stripbytes; + newoffsets[strip] = offset; + offset += stripbytes; + bytecount -= stripbytes; + } + /* + * Replace old single strip info with multi-strip info. + */ + td->td_stripsperimage = td->td_nstrips = nstrips; + TIFFSetField(tif, TIFFTAG_ROWSPERSTRIP, rowsperstrip); + + _TIFFfree(td->td_stripbytecount); + _TIFFfree(td->td_stripoffset); + td->td_stripbytecount = newcounts; + td->td_stripoffset = newoffsets; +} diff --git a/libtiff/tif_dirwrite.c b/libtiff/tif_dirwrite.c new file mode 100755 index 0000000..f422a46 --- /dev/null +++ b/libtiff/tif_dirwrite.c @@ -0,0 +1,1021 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_dirwrite.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library. + * + * Directory Write Support Routines. + */ +#include "tiffiop.h" + +#if HAVE_IEEEFP +#define TIFFCvtNativeToIEEEFloat(tif, n, fp) +#define TIFFCvtNativeToIEEEDouble(tif, n, dp) +#else +extern void TIFFCvtNativeToIEEEFloat(TIFF*, uint32, float*); +extern void TIFFCvtNativeToIEEEDouble(TIFF*, uint32, double*); +#endif + +static int TIFFWriteNormalTag(TIFF*, TIFFDirEntry*, const TIFFFieldInfo*); +static void TIFFSetupShortLong(TIFF*, ttag_t, TIFFDirEntry*, uint32); +static int TIFFSetupShortPair(TIFF*, ttag_t, TIFFDirEntry*); +static int TIFFWritePerSampleShorts(TIFF*, ttag_t, TIFFDirEntry*); +static int TIFFWritePerSampleAnys(TIFF*, TIFFDataType, ttag_t, TIFFDirEntry*); +static int TIFFWriteShortTable(TIFF*, ttag_t, TIFFDirEntry*, uint32, uint16**); +static int TIFFWriteShortArray(TIFF*, + TIFFDataType, ttag_t, TIFFDirEntry*, uint32, uint16*); +static int TIFFWriteLongArray(TIFF *, + TIFFDataType, ttag_t, TIFFDirEntry*, uint32, uint32*); +static int TIFFWriteRationalArray(TIFF *, + TIFFDataType, ttag_t, TIFFDirEntry*, uint32, float*); +static int TIFFWriteFloatArray(TIFF *, + TIFFDataType, ttag_t, TIFFDirEntry*, uint32, float*); +static int TIFFWriteDoubleArray(TIFF *, + TIFFDataType, ttag_t, TIFFDirEntry*, uint32, double*); +static int TIFFWriteByteArray(TIFF*, TIFFDirEntry*, char*); +static int TIFFWriteAnyArray(TIFF*, + TIFFDataType, ttag_t, TIFFDirEntry*, uint32, double*); +#ifdef COLORIMETRY_SUPPORT +static int TIFFWriteTransferFunction(TIFF*, TIFFDirEntry*); +#endif +#ifdef CMYK_SUPPORT +static int TIFFWriteInkNames(TIFF*, TIFFDirEntry*); +#endif +static int TIFFWriteData(TIFF*, TIFFDirEntry*, char*); +static int TIFFLinkDirectory(TIFF*); + +#define WriteRationalPair(type, tag1, v1, tag2, v2) { \ + if (!TIFFWriteRational(tif, type, tag1, dir, v1)) \ + goto bad; \ + if (!TIFFWriteRational(tif, type, tag2, dir+1, v2)) \ + goto bad; \ + dir++; \ +} +#define TIFFWriteRational(tif, type, tag, dir, v) \ + TIFFWriteRationalArray((tif), (type), (tag), (dir), 1, &(v)) +#ifndef TIFFWriteRational +static int TIFFWriteRational(TIFF*, + TIFFDataType, ttag_t, TIFFDirEntry*, float); +#endif + +/* + * Write the contents of the current directory + * to the specified file. This routine doesn't + * handle overwriting a directory with auxiliary + * storage that's been changed. + */ +int +TIFFWriteDirectory(TIFF* tif) +{ + uint16 dircount; + toff_t diroff; + ttag_t tag; + uint32 nfields; + tsize_t dirsize; + char* data; + TIFFDirEntry* dir; + TIFFDirectory* td; + u_long b, fields[FIELD_SETLONGS]; + int fi, nfi; + + if (tif->tif_mode == O_RDONLY) + return (1); + /* + * Clear write state so that subsequent images with + * different characteristics get the right buffers + * setup for them. + */ + if (tif->tif_flags & TIFF_POSTENCODE) { + tif->tif_flags &= ~TIFF_POSTENCODE; + if (!(*tif->tif_postencode)(tif)) { + TIFFError(tif->tif_name, + "Error post-encoding before directory write"); + return (0); + } + } + (*tif->tif_close)(tif); /* shutdown encoder */ + /* + * Flush any data that might have been written + * by the compression close+cleanup routines. + */ + if (tif->tif_rawcc > 0 && !TIFFFlushData1(tif)) { + TIFFError(tif->tif_name, + "Error flushing data before directory write"); + return (0); + } + if ((tif->tif_flags & TIFF_MYBUFFER) && tif->tif_rawdata) { + _TIFFfree(tif->tif_rawdata); + tif->tif_rawdata = NULL; + tif->tif_rawcc = 0; + tif->tif_rawdatasize = 0; + } + tif->tif_flags &= ~(TIFF_BEENWRITING|TIFF_BUFFERSETUP); + + td = &tif->tif_dir; + /* + * Size the directory so that we can calculate + * offsets for the data items that aren't kept + * in-place in each field. + */ + nfields = 0; + for (b = 0; b <= FIELD_LAST; b++) + if (TIFFFieldSet(tif, b)) + nfields += (b < FIELD_SUBFILETYPE ? 2 : 1); + dirsize = nfields * sizeof (TIFFDirEntry); + data = (char*) _TIFFmalloc(dirsize); + if (data == NULL) { + TIFFError(tif->tif_name, + "Cannot write directory, out of space"); + return (0); + } + /* + * Directory hasn't been placed yet, put + * it at the end of the file and link it + * into the existing directory structure. + */ + if (tif->tif_diroff == 0 && !TIFFLinkDirectory(tif)) + goto bad; + tif->tif_dataoff = (toff_t)( + tif->tif_diroff + sizeof (uint16) + dirsize + sizeof (toff_t)); + if (tif->tif_dataoff & 1) + tif->tif_dataoff++; + (void) TIFFSeekFile(tif, tif->tif_dataoff, SEEK_SET); + tif->tif_curdir++; + dir = (TIFFDirEntry*) data; + /* + * Setup external form of directory + * entries and write data items. + */ + _TIFFmemcpy(fields, td->td_fieldsset, sizeof (fields)); + /* + * Write out ExtraSamples tag only if + * extra samples are present in the data. + */ + if (FieldSet(fields, FIELD_EXTRASAMPLES) && !td->td_extrasamples) { + ResetFieldBit(fields, FIELD_EXTRASAMPLES); + nfields--; + dirsize -= sizeof (TIFFDirEntry); + } /*XXX*/ + for (fi = 0, nfi = tif->tif_nfields; nfi > 0; nfi--, fi++) { + const TIFFFieldInfo* fip = tif->tif_fieldinfo[fi]; + if (!FieldSet(fields, fip->field_bit)) + continue; + switch (fip->field_bit) { + case FIELD_STRIPOFFSETS: + /* + * We use one field bit for both strip and tile + * offsets, and so must be careful in selecting + * the appropriate field descriptor (so that tags + * are written in sorted order). + */ + tag = isTiled(tif) ? + TIFFTAG_TILEOFFSETS : TIFFTAG_STRIPOFFSETS; + if (tag != fip->field_tag) + continue; + if (!TIFFWriteLongArray(tif, TIFF_LONG, tag, dir, + (uint32) td->td_nstrips, td->td_stripoffset)) + goto bad; + break; + case FIELD_STRIPBYTECOUNTS: + /* + * We use one field bit for both strip and tile + * byte counts, and so must be careful in selecting + * the appropriate field descriptor (so that tags + * are written in sorted order). + */ + tag = isTiled(tif) ? + TIFFTAG_TILEBYTECOUNTS : TIFFTAG_STRIPBYTECOUNTS; + if (tag != fip->field_tag) + continue; + if (!TIFFWriteLongArray(tif, TIFF_LONG, tag, dir, + (uint32) td->td_nstrips, td->td_stripbytecount)) + goto bad; + break; + case FIELD_ROWSPERSTRIP: + TIFFSetupShortLong(tif, TIFFTAG_ROWSPERSTRIP, + dir, td->td_rowsperstrip); + break; + case FIELD_COLORMAP: + if (!TIFFWriteShortTable(tif, TIFFTAG_COLORMAP, dir, + 3, td->td_colormap)) + goto bad; + break; + case FIELD_IMAGEDIMENSIONS: + TIFFSetupShortLong(tif, TIFFTAG_IMAGEWIDTH, + dir++, td->td_imagewidth); + TIFFSetupShortLong(tif, TIFFTAG_IMAGELENGTH, + dir, td->td_imagelength); + break; + case FIELD_TILEDIMENSIONS: + TIFFSetupShortLong(tif, TIFFTAG_TILEWIDTH, + dir++, td->td_tilewidth); + TIFFSetupShortLong(tif, TIFFTAG_TILELENGTH, + dir, td->td_tilelength); + break; + case FIELD_POSITION: + WriteRationalPair(TIFF_RATIONAL, + TIFFTAG_XPOSITION, td->td_xposition, + TIFFTAG_YPOSITION, td->td_yposition); + break; + case FIELD_RESOLUTION: + WriteRationalPair(TIFF_RATIONAL, + TIFFTAG_XRESOLUTION, td->td_xresolution, + TIFFTAG_YRESOLUTION, td->td_yresolution); + break; + case FIELD_BITSPERSAMPLE: + case FIELD_MINSAMPLEVALUE: + case FIELD_MAXSAMPLEVALUE: + case FIELD_SAMPLEFORMAT: + if (!TIFFWritePerSampleShorts(tif, fip->field_tag, dir)) + goto bad; + break; + case FIELD_SMINSAMPLEVALUE: + case FIELD_SMAXSAMPLEVALUE: + if (!TIFFWritePerSampleAnys(tif, + _TIFFSampleToTagType(tif), fip->field_tag, dir)) + goto bad; + break; + case FIELD_PAGENUMBER: + case FIELD_HALFTONEHINTS: +#ifdef YCBCR_SUPPORT + case FIELD_YCBCRSUBSAMPLING: +#endif +#ifdef CMYK_SUPPORT + case FIELD_DOTRANGE: +#endif + if (!TIFFSetupShortPair(tif, fip->field_tag, dir)) + goto bad; + break; +#ifdef CMYK_SUPPORT + case FIELD_INKNAMES: + if (!TIFFWriteInkNames(tif, dir)) + goto bad; + break; +#endif +#ifdef COLORIMETRY_SUPPORT + case FIELD_TRANSFERFUNCTION: + if (!TIFFWriteTransferFunction(tif, dir)) + goto bad; + break; +#endif +#if SUBIFD_SUPPORT + case FIELD_SUBIFD: + if (!TIFFWriteNormalTag(tif, dir, fip)) + goto bad; + /* + * Total hack: if this directory includes a SubIFD + * tag then force the next directories to be + * written as ``sub directories'' of this one. This + * is used to write things like thumbnails and + * image masks that one wants to keep out of the + * normal directory linkage access mechanism. + */ + if (dir->tdir_count > 0) { + tif->tif_flags |= TIFF_INSUBIFD; + tif->tif_nsubifd = (uint16) dir->tdir_count; + if (dir->tdir_count > 1) + tif->tif_subifdoff = dir->tdir_offset; + else + tif->tif_subifdoff = (uint32)( + tif->tif_diroff + + sizeof (uint16) + + ((char*)&dir->tdir_offset-data)); + } + break; +#endif + default: + if (!TIFFWriteNormalTag(tif, dir, fip)) + goto bad; + break; + } + dir++; + ResetFieldBit(fields, fip->field_bit); + } + /* + * Write directory. + */ + dircount = (uint16) nfields; + diroff = (uint32) tif->tif_nextdiroff; + if (tif->tif_flags & TIFF_SWAB) { + /* + * The file's byte order is opposite to the + * native machine architecture. We overwrite + * the directory information with impunity + * because it'll be released below after we + * write it to the file. Note that all the + * other tag construction routines assume that + * we do this byte-swapping; i.e. they only + * byte-swap indirect data. + */ + for (dir = (TIFFDirEntry*) data; dircount; dir++, dircount--) { + TIFFSwabArrayOfShort(&dir->tdir_tag, 2); + TIFFSwabArrayOfLong(&dir->tdir_count, 2); + } + dircount = (uint16) nfields; + TIFFSwabShort(&dircount); + TIFFSwabLong(&diroff); + } + (void) TIFFSeekFile(tif, tif->tif_diroff, SEEK_SET); + if (!WriteOK(tif, &dircount, sizeof (dircount))) { + TIFFError(tif->tif_name, "Error writing directory count"); + goto bad; + } + if (!WriteOK(tif, data, dirsize)) { + TIFFError(tif->tif_name, "Error writing directory contents"); + goto bad; + } + if (!WriteOK(tif, &diroff, sizeof (diroff))) { + TIFFError(tif->tif_name, "Error writing directory link"); + goto bad; + } + TIFFFreeDirectory(tif); + _TIFFfree(data); + tif->tif_flags &= ~TIFF_DIRTYDIRECT; + (*tif->tif_cleanup)(tif); + + /* + * Reset directory-related state for subsequent + * directories. + */ + TIFFCreateDirectory(tif); + return (1); +bad: + _TIFFfree(data); + return (0); +} +#undef WriteRationalPair + +/* + * Process tags that are not special cased. + */ +static int +TIFFWriteNormalTag(TIFF* tif, TIFFDirEntry* dir, const TIFFFieldInfo* fip) +{ + u_short wc = (u_short) fip->field_writecount; + uint32 wc2; + + dir->tdir_tag = (uint16) fip->field_tag; + dir->tdir_type = (u_short) fip->field_type; + dir->tdir_count = wc; +#define WRITEF(x,y) x(tif, fip->field_type, fip->field_tag, dir, wc, y) + switch (fip->field_type) { + case TIFF_SHORT: + case TIFF_SSHORT: + if (wc > 1) { + uint16* wp; + if (wc == (u_short) TIFF_VARIABLE) + TIFFGetField(tif, fip->field_tag, &wc, &wp); + else + TIFFGetField(tif, fip->field_tag, &wp); + if (!WRITEF(TIFFWriteShortArray, wp)) + return (0); + } else { + uint16 sv; + TIFFGetField(tif, fip->field_tag, &sv); + dir->tdir_offset = + TIFFInsertData(tif, dir->tdir_type, sv); + } + break; + case TIFF_LONG: + case TIFF_SLONG: + if (wc > 1) { + uint32* lp; + if (wc == (u_short) TIFF_VARIABLE) + TIFFGetField(tif, fip->field_tag, &wc, &lp); + else + TIFFGetField(tif, fip->field_tag, &lp); + if (!WRITEF(TIFFWriteLongArray, lp)) + return (0); + } else { + /* XXX handle LONG->SHORT conversion */ + TIFFGetField(tif, fip->field_tag, &dir->tdir_offset); + } + break; + case TIFF_RATIONAL: + case TIFF_SRATIONAL: + if (wc > 1) { + float* fp; + if (wc == (u_short) TIFF_VARIABLE) + TIFFGetField(tif, fip->field_tag, &wc, &fp); + else + TIFFGetField(tif, fip->field_tag, &fp); + if (!WRITEF(TIFFWriteRationalArray, fp)) + return (0); + } else { + float fv; + TIFFGetField(tif, fip->field_tag, &fv); + if (!WRITEF(TIFFWriteRationalArray, &fv)) + return (0); + } + break; + case TIFF_FLOAT: + if (wc > 1) { + float* fp; + if (wc == (u_short) TIFF_VARIABLE) + TIFFGetField(tif, fip->field_tag, &wc, &fp); + else + TIFFGetField(tif, fip->field_tag, &fp); + if (!WRITEF(TIFFWriteFloatArray, fp)) + return (0); + } else { + float fv; + TIFFGetField(tif, fip->field_tag, &fv); + if (!WRITEF(TIFFWriteFloatArray, &fv)) + return (0); + } + break; + case TIFF_DOUBLE: + if (wc > 1) { + double* dp; + if (wc == (u_short) TIFF_VARIABLE) + TIFFGetField(tif, fip->field_tag, &wc, &dp); + else + TIFFGetField(tif, fip->field_tag, &dp); + if (!WRITEF(TIFFWriteDoubleArray, dp)) + return (0); + } else { + double dv; + TIFFGetField(tif, fip->field_tag, &dv); + if (!WRITEF(TIFFWriteDoubleArray, &dv)) + return (0); + } + break; + case TIFF_ASCII: + { char* cp; + TIFFGetField(tif, fip->field_tag, &cp); + dir->tdir_count = (uint32) (strlen(cp) + 1); + if (!TIFFWriteByteArray(tif, dir, cp)) + return (0); + } + break; + + /* added based on patch request from MARTIN.MCBRIDE.MM@agfa.co.uk, + correctness not verified (FW, 99/08) */ + case TIFF_BYTE: + case TIFF_SBYTE: + if (wc > 1) { + char* cp; + if (wc == (u_short) TIFF_VARIABLE) { + TIFFGetField(tif, fip->field_tag, &wc, &cp); + dir->tdir_count = wc; + } else + TIFFGetField(tif, fip->field_tag, &cp); + if (!TIFFWriteByteArray(tif, dir, cp)) + return (0); + } else { + char cv; + TIFFGetField(tif, fip->field_tag, &cv); + if (!TIFFWriteByteArray(tif, dir, &cv)) + return (0); + } + break; + + case TIFF_UNDEFINED: + { char* cp; + if (wc == (u_short) TIFF_VARIABLE) { + TIFFGetField(tif, fip->field_tag, &wc, &cp); + dir->tdir_count = wc; + } else if (wc == (u_short) TIFF_VARIABLE2) { + TIFFGetField(tif, fip->field_tag, &wc2, &cp); + dir->tdir_count = wc2; + } else + TIFFGetField(tif, fip->field_tag, &cp); + if (!TIFFWriteByteArray(tif, dir, cp)) + return (0); + } + break; + + case TIFF_NOTYPE: + break; + } + return (1); +} +#undef WRITEF + +/* + * Setup a directory entry with either a SHORT + * or LONG type according to the value. + */ +static void +TIFFSetupShortLong(TIFF* tif, ttag_t tag, TIFFDirEntry* dir, uint32 v) +{ + dir->tdir_tag = (uint16) tag; + dir->tdir_count = 1; + if (v > 0xffffL) { + dir->tdir_type = (short) TIFF_LONG; + dir->tdir_offset = v; + } else { + dir->tdir_type = (short) TIFF_SHORT; + dir->tdir_offset = TIFFInsertData(tif, (int) TIFF_SHORT, v); + } +} +#undef MakeShortDirent + +#ifndef TIFFWriteRational +/* + * Setup a RATIONAL directory entry and + * write the associated indirect value. + */ +static int +TIFFWriteRational(TIFF* tif, + TIFFDataType type, ttag_t tag, TIFFDirEntry* dir, float v) +{ + return (TIFFWriteRationalArray(tif, type, tag, dir, 1, &v)); +} +#endif + +#define NITEMS(x) (sizeof (x) / sizeof (x[0])) +/* + * Setup a directory entry that references a + * samples/pixel array of SHORT values and + * (potentially) write the associated indirect + * values. + */ +static int +TIFFWritePerSampleShorts(TIFF* tif, ttag_t tag, TIFFDirEntry* dir) +{ + uint16 buf[10], v; + uint16* w = buf; + int i, status, samples = tif->tif_dir.td_samplesperpixel; + + if (samples > NITEMS(buf)) + w = (uint16*) _TIFFmalloc(samples * sizeof (uint16)); + TIFFGetField(tif, tag, &v); + for (i = 0; i < samples; i++) + w[i] = v; + status = TIFFWriteShortArray(tif, TIFF_SHORT, tag, dir, samples, w); + if (w != buf) + _TIFFfree((char*) w); + return (status); +} + +/* + * Setup a directory entry that references a samples/pixel array of ``type'' + * values and (potentially) write the associated indirect values. The source + * data from TIFFGetField() for the specified tag must be returned as double. + */ +static int +TIFFWritePerSampleAnys(TIFF* tif, + TIFFDataType type, ttag_t tag, TIFFDirEntry* dir) +{ + double buf[10], v; + double* w = buf; + int i, status; + int samples = (int) tif->tif_dir.td_samplesperpixel; + + if (samples > NITEMS(buf)) + w = (double*) _TIFFmalloc(samples * sizeof (double)); + TIFFGetField(tif, tag, &v); + for (i = 0; i < samples; i++) + w[i] = v; + status = TIFFWriteAnyArray(tif, type, tag, dir, samples, w); + if (w != buf) + _TIFFfree(w); + return (status); +} +#undef NITEMS + +/* + * Setup a pair of shorts that are returned by + * value, rather than as a reference to an array. + */ +static int +TIFFSetupShortPair(TIFF* tif, ttag_t tag, TIFFDirEntry* dir) +{ + uint16 v[2]; + + TIFFGetField(tif, tag, &v[0], &v[1]); + return (TIFFWriteShortArray(tif, TIFF_SHORT, tag, dir, 2, v)); +} + +/* + * Setup a directory entry for an NxM table of shorts, + * where M is known to be 2**bitspersample, and write + * the associated indirect data. + */ +static int +TIFFWriteShortTable(TIFF* tif, + ttag_t tag, TIFFDirEntry* dir, uint32 n, uint16** table) +{ + uint32 i, off; + + dir->tdir_tag = (uint16) tag; + dir->tdir_type = (short) TIFF_SHORT; + /* XXX -- yech, fool TIFFWriteData */ + dir->tdir_count = (uint32) (1L<tif_dir.td_bitspersample); + off = tif->tif_dataoff; + for (i = 0; i < n; i++) + if (!TIFFWriteData(tif, dir, (char *)table[i])) + return (0); + dir->tdir_count *= n; + dir->tdir_offset = off; + return (1); +} + +/* + * Write/copy data associated with an ASCII or opaque tag value. + */ +static int +TIFFWriteByteArray(TIFF* tif, TIFFDirEntry* dir, char* cp) +{ + if (dir->tdir_count > 4) { + if (!TIFFWriteData(tif, dir, cp)) + return (0); + } else + _TIFFmemcpy(&dir->tdir_offset, cp, dir->tdir_count); + return (1); +} + +/* + * Setup a directory entry of an array of SHORT + * or SSHORT and write the associated indirect values. + */ +static int +TIFFWriteShortArray(TIFF* tif, + TIFFDataType type, ttag_t tag, TIFFDirEntry* dir, uint32 n, uint16* v) +{ + dir->tdir_tag = (uint16) tag; + dir->tdir_type = (short) type; + dir->tdir_count = n; + if (n <= 2) { + if (tif->tif_header.tiff_magic == TIFF_BIGENDIAN) { + dir->tdir_offset = (uint32) ((long) v[0] << 16); + if (n == 2) + dir->tdir_offset |= v[1] & 0xffff; + } else { + dir->tdir_offset = v[0] & 0xffff; + if (n == 2) + dir->tdir_offset |= (long) v[1] << 16; + } + return (1); + } else + return (TIFFWriteData(tif, dir, (char*) v)); +} + +/* + * Setup a directory entry of an array of LONG + * or SLONG and write the associated indirect values. + */ +static int +TIFFWriteLongArray(TIFF* tif, + TIFFDataType type, ttag_t tag, TIFFDirEntry* dir, uint32 n, uint32* v) +{ + dir->tdir_tag = (uint16) tag; + dir->tdir_type = (short) type; + dir->tdir_count = n; + if (n == 1) { + dir->tdir_offset = v[0]; + return (1); + } else + return (TIFFWriteData(tif, dir, (char*) v)); +} + +/* + * Setup a directory entry of an array of RATIONAL + * or SRATIONAL and write the associated indirect values. + */ +static int +TIFFWriteRationalArray(TIFF* tif, + TIFFDataType type, ttag_t tag, TIFFDirEntry* dir, uint32 n, float* v) +{ + uint32 i; + uint32* t; + int status; + + dir->tdir_tag = (uint16) tag; + dir->tdir_type = (short) type; + dir->tdir_count = n; + t = (uint32*) _TIFFmalloc(2*n * sizeof (uint32)); + for (i = 0; i < n; i++) { + float fv = v[i]; + int sign = 1; + uint32 den; + + if (fv < 0) { + if (type == TIFF_RATIONAL) { + TIFFWarning(tif->tif_name, + "\"%s\": Information lost writing value (%g) as (unsigned) RATIONAL", + _TIFFFieldWithTag(tif,tag)->field_name, fv); + fv = 0; + } else + fv = -fv, sign = -1; + } + den = 1L; + if (fv > 0) { + while (fv < 1L<<(31-3) && den < 1L<<(31-3)) + fv *= 1<<3, den *= 1L<<3; + } + t[2*i+0] = (uint32) (sign * (fv + 0.5)); + t[2*i+1] = den; + } + status = TIFFWriteData(tif, dir, (char *)t); + _TIFFfree((char*) t); + return (status); +} + +static int +TIFFWriteFloatArray(TIFF* tif, + TIFFDataType type, ttag_t tag, TIFFDirEntry* dir, uint32 n, float* v) +{ + dir->tdir_tag = (uint16) tag; + dir->tdir_type = (short) type; + dir->tdir_count = n; + TIFFCvtNativeToIEEEFloat(tif, n, v); + if (n == 1) { + dir->tdir_offset = *(uint32*) &v[0]; + return (1); + } else + return (TIFFWriteData(tif, dir, (char*) v)); +} + +static int +TIFFWriteDoubleArray(TIFF* tif, + TIFFDataType type, ttag_t tag, TIFFDirEntry* dir, uint32 n, double* v) +{ + dir->tdir_tag = (uint16) tag; + dir->tdir_type = (short) type; + dir->tdir_count = n; + TIFFCvtNativeToIEEEDouble(tif, n, v); + return (TIFFWriteData(tif, dir, (char*) v)); +} + +/* + * Write an array of ``type'' values for a specified tag (i.e. this is a tag + * which is allowed to have different types, e.g. SMaxSampleType). + * Internally the data values are represented as double since a double can + * hold any of the TIFF tag types (yes, this should really be an abstract + * type tany_t for portability). The data is converted into the specified + * type in a temporary buffer and then handed off to the appropriate array + * writer. + */ +static int +TIFFWriteAnyArray(TIFF* tif, + TIFFDataType type, ttag_t tag, TIFFDirEntry* dir, uint32 n, double* v) +{ + char buf[10 * sizeof(double)]; + char* w = buf; + int i, status = 0; + + if (n * tiffDataWidth[type] > sizeof buf) + w = (char*) _TIFFmalloc(n * tiffDataWidth[type]); + switch (type) { + case TIFF_BYTE: + { uint8* bp = (uint8*) w; + for (i = 0; i < (int) n; i++) + bp[i] = (uint8) v[i]; + dir->tdir_tag = (uint16) tag; + dir->tdir_type = (short) type; + dir->tdir_count = n; + if (!TIFFWriteByteArray(tif, dir, (char*) bp)) + goto out; + } + break; + case TIFF_SBYTE: + { int8* bp = (int8*) w; + for (i = 0; i < (int) n; i++) + bp[i] = (int8) v[i]; + dir->tdir_tag = (uint16) tag; + dir->tdir_type = (short) type; + dir->tdir_count = n; + if (!TIFFWriteByteArray(tif, dir, (char*) bp)) + goto out; + } + break; + case TIFF_SHORT: + { uint16* bp = (uint16*) w; + for (i = 0; i < (int) n; i++) + bp[i] = (uint16) v[i]; + if (!TIFFWriteShortArray(tif, type, tag, dir, n, (uint16*)bp)) + goto out; + } + break; + case TIFF_SSHORT: + { int16* bp = (int16*) w; + for (i = 0; i < (int) n; i++) + bp[i] = (int16) v[i]; + if (!TIFFWriteShortArray(tif, type, tag, dir, n, (uint16*)bp)) + goto out; + } + break; + case TIFF_LONG: + { uint32* bp = (uint32*) w; + for (i = 0; i < (int) n; i++) + bp[i] = (uint32) v[i]; + if (!TIFFWriteLongArray(tif, type, tag, dir, n, bp)) + goto out; + } + break; + case TIFF_SLONG: + { int32* bp = (int32*) w; + for (i = 0; i < (int) n; i++) + bp[i] = (int32) v[i]; + if (!TIFFWriteLongArray(tif, type, tag, dir, n, (uint32*) bp)) + goto out; + } + break; + case TIFF_FLOAT: + { float* bp = (float*) w; + for (i = 0; i < (int) n; i++) + bp[i] = (float) v[i]; + if (!TIFFWriteFloatArray(tif, type, tag, dir, n, bp)) + goto out; + } + break; + case TIFF_DOUBLE: + return (TIFFWriteDoubleArray(tif, type, tag, dir, n, v)); + default: + /* TIFF_NOTYPE */ + /* TIFF_ASCII */ + /* TIFF_UNDEFINED */ + /* TIFF_RATIONAL */ + /* TIFF_SRATIONAL */ + goto out; + } + status = 1; + out: + if (w != buf) + _TIFFfree(w); + return (status); +} + +#ifdef COLORIMETRY_SUPPORT +static int +TIFFWriteTransferFunction(TIFF* tif, TIFFDirEntry* dir) +{ + TIFFDirectory* td = &tif->tif_dir; + tsize_t n = (1L<td_bitspersample) * sizeof (uint16); + uint16** tf = td->td_transferfunction; + int ncols; + + /* + * Check if the table can be written as a single column, + * or if it must be written as 3 columns. Note that we + * write a 3-column tag if there are 2 samples/pixel and + * a single column of data won't suffice--hmm. + */ + switch (td->td_samplesperpixel - td->td_extrasamples) { + default: if (_TIFFmemcmp(tf[0], tf[2], n)) { ncols = 3; break; } + case 2: if (_TIFFmemcmp(tf[0], tf[1], n)) { ncols = 3; break; } + case 1: case 0: ncols = 1; + } + return (TIFFWriteShortTable(tif, + TIFFTAG_TRANSFERFUNCTION, dir, ncols, tf)); +} +#endif + +#ifdef CMYK_SUPPORT +static int +TIFFWriteInkNames(TIFF* tif, TIFFDirEntry* dir) +{ + TIFFDirectory* td = &tif->tif_dir; + + dir->tdir_tag = TIFFTAG_INKNAMES; + dir->tdir_type = (short) TIFF_ASCII; + dir->tdir_count = td->td_inknameslen; + return (TIFFWriteByteArray(tif, dir, td->td_inknames)); +} +#endif + +/* + * Write a contiguous directory item. + */ +static int +TIFFWriteData(TIFF* tif, TIFFDirEntry* dir, char* cp) +{ + tsize_t cc; + + if (tif->tif_flags & TIFF_SWAB) { + switch (dir->tdir_type) { + case TIFF_SHORT: + case TIFF_SSHORT: + TIFFSwabArrayOfShort((uint16*) cp, dir->tdir_count); + break; + case TIFF_LONG: + case TIFF_SLONG: + case TIFF_FLOAT: + TIFFSwabArrayOfLong((uint32*) cp, dir->tdir_count); + break; + case TIFF_RATIONAL: + case TIFF_SRATIONAL: + TIFFSwabArrayOfLong((uint32*) cp, 2*dir->tdir_count); + break; + case TIFF_DOUBLE: + TIFFSwabArrayOfDouble((double*) cp, dir->tdir_count); + break; + } + } + dir->tdir_offset = tif->tif_dataoff; + cc = dir->tdir_count * tiffDataWidth[dir->tdir_type]; + if (SeekOK(tif, dir->tdir_offset) && + WriteOK(tif, cp, cc)) { + tif->tif_dataoff += (cc + 1) & ~1; + return (1); + } + TIFFError(tif->tif_name, "Error writing data for field \"%s\"", + _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name); + return (0); +} + +/* + * Link the current directory into the + * directory chain for the file. + */ +static int +TIFFLinkDirectory(TIFF* tif) +{ + static const char module[] = "TIFFLinkDirectory"; + toff_t nextdir; + toff_t diroff, off; + + tif->tif_diroff = (TIFFSeekFile(tif, (toff_t) 0, SEEK_END)+1) &~ 1; + diroff = tif->tif_diroff; + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabLong(&diroff); +#if SUBIFD_SUPPORT + if (tif->tif_flags & TIFF_INSUBIFD) { + (void) TIFFSeekFile(tif, tif->tif_subifdoff, SEEK_SET); + if (!WriteOK(tif, &diroff, sizeof (diroff))) { + TIFFError(module, + "%s: Error writing SubIFD directory link", + tif->tif_name); + return (0); + } + /* + * Advance to the next SubIFD or, if this is + * the last one configured, revert back to the + * normal directory linkage. + */ + if (--tif->tif_nsubifd) + tif->tif_subifdoff += sizeof (diroff); + else + tif->tif_flags &= ~TIFF_INSUBIFD; + return (1); + } +#endif + if (tif->tif_header.tiff_diroff == 0) { + /* + * First directory, overwrite offset in header. + */ + tif->tif_header.tiff_diroff = tif->tif_diroff; +#define HDROFF(f) ((toff_t) &(((TIFFHeader*) 0)->f)) + (void) TIFFSeekFile(tif, HDROFF(tiff_diroff), SEEK_SET); + if (!WriteOK(tif, &diroff, sizeof (diroff))) { + TIFFError(tif->tif_name, "Error writing TIFF header"); + return (0); + } + return (1); + } + /* + * Not the first directory, search to the last and append. + */ + nextdir = tif->tif_header.tiff_diroff; + do { + uint16 dircount; + + if (!SeekOK(tif, nextdir) || + !ReadOK(tif, &dircount, sizeof (dircount))) { + TIFFError(module, "Error fetching directory count"); + return (0); + } + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabShort(&dircount); + (void) TIFFSeekFile(tif, + dircount * sizeof (TIFFDirEntry), SEEK_CUR); + if (!ReadOK(tif, &nextdir, sizeof (nextdir))) { + TIFFError(module, "Error fetching directory link"); + return (0); + } + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabLong(&nextdir); + } while (nextdir != 0); + off = TIFFSeekFile(tif, 0, SEEK_CUR); /* get current offset */ + (void) TIFFSeekFile(tif, off - (toff_t)sizeof(nextdir), SEEK_SET); + if (!WriteOK(tif, &diroff, sizeof (diroff))) { + TIFFError(module, "Error writing directory link"); + return (0); + } + return (1); +} diff --git a/libtiff/tif_dumpmode.c b/libtiff/tif_dumpmode.c new file mode 100755 index 0000000..21aff33 --- /dev/null +++ b/libtiff/tif_dumpmode.c @@ -0,0 +1,118 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_dumpmode.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library. + * + * "Null" Compression Algorithm Support. + */ +#include "tiffiop.h" +#include + +/* + * Encode a hunk of pixels. + */ +static int +DumpModeEncode(TIFF* tif, tidata_t pp, tsize_t cc, tsample_t s) +{ + (void) s; + while (cc > 0) { + tsize_t n; + + n = cc; + if (tif->tif_rawcc + n > tif->tif_rawdatasize) + n = tif->tif_rawdatasize - tif->tif_rawcc; + + assert( n > 0 ); + + /* + * Avoid copy if client has setup raw + * data buffer to avoid extra copy. + */ + if (tif->tif_rawcp != pp) + _TIFFmemcpy(tif->tif_rawcp, pp, n); + tif->tif_rawcp += n; + tif->tif_rawcc += n; + pp += n; + cc -= n; + if (tif->tif_rawcc >= tif->tif_rawdatasize && + !TIFFFlushData1(tif)) + return (-1); + } + return (1); +} + +/* + * Decode a hunk of pixels. + */ +static int +DumpModeDecode(TIFF* tif, tidata_t buf, tsize_t cc, tsample_t s) +{ + (void) s; + if (tif->tif_rawcc < cc) { + TIFFError(tif->tif_name, + "DumpModeDecode: Not enough data for scanline %d", + tif->tif_row); + return (0); + } + /* + * Avoid copy if client has setup raw + * data buffer to avoid extra copy. + */ + if (tif->tif_rawcp != buf) + _TIFFmemcpy(buf, tif->tif_rawcp, cc); + tif->tif_rawcp += cc; + tif->tif_rawcc -= cc; + return (1); +} + +/* + * Seek forwards nrows in the current strip. + */ +static int +DumpModeSeek(TIFF* tif, uint32 nrows) +{ + tif->tif_rawcp += nrows * tif->tif_scanlinesize; + tif->tif_rawcc -= nrows * tif->tif_scanlinesize; + return (1); +} + +/* + * Initialize dump mode. + */ +int +TIFFInitDumpMode(TIFF* tif, int scheme) +{ + (void) scheme; + tif->tif_decoderow = DumpModeDecode; + tif->tif_decodestrip = DumpModeDecode; + tif->tif_decodetile = DumpModeDecode; + tif->tif_encoderow = DumpModeEncode; + tif->tif_encodestrip = DumpModeEncode; + tif->tif_encodetile = DumpModeEncode; + tif->tif_seek = DumpModeSeek; + return (1); +} diff --git a/libtiff/tif_error.c b/libtiff/tif_error.c new file mode 100755 index 0000000..0690f41 --- /dev/null +++ b/libtiff/tif_error.c @@ -0,0 +1,49 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_error.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library. + */ +#include "tiffiop.h" + +TIFFErrorHandler +TIFFSetErrorHandler(TIFFErrorHandler handler) +{ + TIFFErrorHandler prev = _TIFFerrorHandler; + _TIFFerrorHandler = handler; + return (prev); +} + +void +TIFFError(const char* module, const char* fmt, ...) +{ + if (_TIFFerrorHandler) { + va_list ap; + va_start(ap, fmt); + (*_TIFFerrorHandler)(module, fmt, ap); + va_end(ap); + } +} diff --git a/libtiff/tif_fax3.c b/libtiff/tif_fax3.c new file mode 100755 index 0000000..d4f143e --- /dev/null +++ b/libtiff/tif_fax3.c @@ -0,0 +1,1562 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_fax3.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1990-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include "tiffiop.h" +#ifdef CCITT_SUPPORT +/* + * TIFF Library. + * + * CCITT Group 3 (T.4) and Group 4 (T.6) Compression Support. + * + * This file contains support for decoding and encoding TIFF + * compression algorithms 2, 3, 4, and 32771. + * + * Decoder support is derived, with permission, from the code + * in Frank Cringle's viewfax program; + * Copyright (C) 1990, 1995 Frank D. Cringle. + */ +#include "tif_fax3.h" +#define G3CODES +#include "t4.h" +#include +#include + +/* + * NB: define PURIFY if you're using purify and you want + * to avoid some harmless array bounds complaints that + * can happen in the _TIFFFax3fillruns routine. + */ + +/* + * Compression+decompression state blocks are + * derived from this ``base state'' block. + */ +typedef struct { + int mode; /* operating mode */ + uint32 rowbytes; /* bytes in a decoded scanline */ + uint32 rowpixels; /* pixels in a scanline */ + + uint16 cleanfaxdata; /* CleanFaxData tag */ + uint32 badfaxrun; /* BadFaxRun tag */ + uint32 badfaxlines; /* BadFaxLines tag */ + uint32 groupoptions; /* Group 3/4 options tag */ + uint32 recvparams; /* encoded Class 2 session params */ + char* subaddress; /* subaddress string */ + uint32 recvtime; /* time spent receiving (secs) */ + TIFFVGetMethod vgetparent; /* super-class method */ + TIFFVSetMethod vsetparent; /* super-class method */ +} Fax3BaseState; +#define Fax3State(tif) ((Fax3BaseState*) (tif)->tif_data) + +typedef struct { + Fax3BaseState b; + const u_char* bitmap; /* bit reversal table */ + uint32 data; /* current i/o byte/word */ + int bit; /* current i/o bit in byte */ + int EOLcnt; /* count of EOL codes recognized */ + TIFFFaxFillFunc fill; /* fill routine */ + uint32* runs; /* b&w runs for current/previous row */ + uint32* refruns; /* runs for reference line */ + uint32* curruns; /* runs for current line */ +} Fax3DecodeState; +#define DecoderState(tif) ((Fax3DecodeState*) Fax3State(tif)) + +typedef enum { G3_1D, G3_2D } Ttag; +typedef struct { + Fax3BaseState b; + int data; /* current i/o byte */ + int bit; /* current i/o bit in byte */ + Ttag tag; /* encoding state */ + u_char* refline; /* reference line for 2d decoding */ + int k; /* #rows left that can be 2d encoded */ + int maxk; /* max #rows that can be 2d encoded */ +} Fax3EncodeState; +#define EncoderState(tif) ((Fax3EncodeState*) Fax3State(tif)) + +#define is2DEncoding(sp) \ + (sp->b.groupoptions & GROUP3OPT_2DENCODING) +#define isAligned(p,t) ((((u_long)(p)) & (sizeof (t)-1)) == 0) + +/* + * Group 3 and Group 4 Decoding. + */ + +/* + * These macros glue the TIFF library state to + * the state expected by Frank's decoder. + */ +#define DECLARE_STATE(tif, sp, mod) \ + static const char module[] = mod; \ + Fax3DecodeState* sp = DecoderState(tif); \ + int a0; /* reference element */ \ + int lastx = sp->b.rowpixels; /* last element in row */ \ + uint32 BitAcc; /* bit accumulator */ \ + int BitsAvail; /* # valid bits in BitAcc */ \ + int RunLength; /* length of current run */ \ + u_char* cp; /* next byte of input data */ \ + u_char* ep; /* end of input data */ \ + uint32* pa; /* place to stuff next run */ \ + uint32* thisrun; /* current row's run array */ \ + int EOLcnt; /* # EOL codes recognized */ \ + const u_char* bitmap = sp->bitmap; /* input data bit reverser */ \ + const TIFFFaxTabEnt* TabEnt +#define DECLARE_STATE_2D(tif, sp, mod) \ + DECLARE_STATE(tif, sp, mod); \ + int b1; /* next change on prev line */ \ + uint32* pb /* next run in reference line */\ +/* + * Load any state that may be changed during decoding. + */ +#define CACHE_STATE(tif, sp) do { \ + BitAcc = sp->data; \ + BitsAvail = sp->bit; \ + EOLcnt = sp->EOLcnt; \ + cp = (unsigned char*) tif->tif_rawcp; \ + ep = cp + tif->tif_rawcc; \ +} while (0) +/* + * Save state possibly changed during decoding. + */ +#define UNCACHE_STATE(tif, sp) do { \ + sp->bit = BitsAvail; \ + sp->data = BitAcc; \ + sp->EOLcnt = EOLcnt; \ + tif->tif_rawcc -= (tidata_t) cp - tif->tif_rawcp; \ + tif->tif_rawcp = (tidata_t) cp; \ +} while (0) + +/* + * Setup state for decoding a strip. + */ +static int +Fax3PreDecode(TIFF* tif, tsample_t s) +{ + Fax3DecodeState* sp = DecoderState(tif); + + (void) s; + assert(sp != NULL); + sp->bit = 0; /* force initial read */ + sp->data = 0; + sp->EOLcnt = 0; /* force initial scan for EOL */ + /* + * Decoder assumes lsb-to-msb bit order. Note that we select + * this here rather than in Fax3SetupState so that viewers can + * hold the image open, fiddle with the FillOrder tag value, + * and then re-decode the image. Otherwise they'd need to close + * and open the image to get the state reset. + */ + sp->bitmap = + TIFFGetBitRevTable(tif->tif_dir.td_fillorder != FILLORDER_LSB2MSB); + if (sp->refruns) { /* init reference line to white */ + sp->refruns[0] = (uint16) sp->b.rowpixels; + sp->refruns[1] = 0; + } + return (1); +} + +/* + * Routine for handling various errors/conditions. + * Note how they are "glued into the decoder" by + * overriding the definitions used by the decoder. + */ + +static void +Fax3Unexpected(const char* module, TIFF* tif, uint32 a0) +{ + TIFFError(module, "%s: Bad code word at scanline %d (x %lu)", + tif->tif_name, tif->tif_row, (u_long) a0); +} +#define unexpected(table, a0) Fax3Unexpected(module, tif, a0) + +static void +Fax3Extension(const char* module, TIFF* tif, uint32 a0) +{ + TIFFError(module, + "%s: Uncompressed data (not supported) at scanline %d (x %lu)", + tif->tif_name, tif->tif_row, (u_long) a0); +} +#define extension(a0) Fax3Extension(module, tif, a0) + +static void +Fax3BadLength(const char* module, TIFF* tif, uint32 a0, uint32 lastx) +{ + TIFFWarning(module, "%s: %s at scanline %d (got %lu, expected %lu)", + tif->tif_name, + a0 < lastx ? "Premature EOL" : "Line length mismatch", + tif->tif_row, (u_long) a0, (u_long) lastx); +} +#define badlength(a0,lastx) Fax3BadLength(module, tif, a0, lastx) + +static void +Fax3PrematureEOF(const char* module, TIFF* tif, uint32 a0) +{ + TIFFWarning(module, "%s: Premature EOF at scanline %d (x %lu)", + tif->tif_name, tif->tif_row, (u_long) a0); +} +#define prematureEOF(a0) Fax3PrematureEOF(module, tif, a0) + +#define Nop + +/* + * Decode the requested amount of G3 1D-encoded data. + */ +static int +Fax3Decode1D(TIFF* tif, tidata_t buf, tsize_t occ, tsample_t s) +{ + DECLARE_STATE(tif, sp, "Fax3Decode1D"); + + (void) s; + CACHE_STATE(tif, sp); + thisrun = sp->curruns; + while ((long)occ > 0) { + a0 = 0; + RunLength = 0; + pa = thisrun; +#ifdef FAX3_DEBUG + printf("\nBitAcc=%08X, BitsAvail = %d\n", BitAcc, BitsAvail); + printf("-------------------- %d\n", tif->tif_row); + fflush(stdout); +#endif + SYNC_EOL(EOF1D); + EXPAND1D(EOF1Da); + (*sp->fill)(buf, thisrun, pa, lastx); + buf += sp->b.rowbytes; + occ -= sp->b.rowbytes; + if (occ != 0) + tif->tif_row++; + continue; + EOF1D: /* premature EOF */ + CLEANUP_RUNS(); + EOF1Da: /* premature EOF */ + (*sp->fill)(buf, thisrun, pa, lastx); + UNCACHE_STATE(tif, sp); + return (-1); + } + UNCACHE_STATE(tif, sp); + return (1); +} + +#define SWAP(t,a,b) { t x; x = (a); (a) = (b); (b) = x; } +/* + * Decode the requested amount of G3 2D-encoded data. + */ +static int +Fax3Decode2D(TIFF* tif, tidata_t buf, tsize_t occ, tsample_t s) +{ + DECLARE_STATE_2D(tif, sp, "Fax3Decode2D"); + int is1D; /* current line is 1d/2d-encoded */ + + (void) s; + CACHE_STATE(tif, sp); + while ((long)occ > 0) { + a0 = 0; + RunLength = 0; + pa = thisrun = sp->curruns; +#ifdef FAX3_DEBUG + printf("\nBitAcc=%08X, BitsAvail = %d EOLcnt = %d", + BitAcc, BitsAvail, EOLcnt); +#endif + SYNC_EOL(EOF2D); + NeedBits8(1, EOF2D); + is1D = GetBits(1); /* 1D/2D-encoding tag bit */ + ClrBits(1); +#ifdef FAX3_DEBUG + printf(" %s\n-------------------- %d\n", + is1D ? "1D" : "2D", tif->tif_row); + fflush(stdout); +#endif + pb = sp->refruns; + b1 = *pb++; + if (is1D) + EXPAND1D(EOF2Da); + else + EXPAND2D(EOF2Da); + (*sp->fill)(buf, thisrun, pa, lastx); + SETVAL(0); /* imaginary change for reference */ + SWAP(uint32*, sp->curruns, sp->refruns); + buf += sp->b.rowbytes; + occ -= sp->b.rowbytes; + if (occ != 0) + tif->tif_row++; + continue; + EOF2D: /* premature EOF */ + CLEANUP_RUNS(); + EOF2Da: /* premature EOF */ + (*sp->fill)(buf, thisrun, pa, lastx); + UNCACHE_STATE(tif, sp); + return (-1); + } + UNCACHE_STATE(tif, sp); + return (1); +} +#undef SWAP + +/* + * The ZERO & FILL macros must handle spans < 2*sizeof(long) bytes. + * For machines with 64-bit longs this is <16 bytes; otherwise + * this is <8 bytes. We optimize the code here to reflect the + * machine characteristics. + */ +#if defined(__alpha) || _MIPS_SZLONG == 64 +#define FILL(n, cp) \ + switch (n) { \ + case 15:(cp)[14] = 0xff; case 14:(cp)[13] = 0xff; case 13: (cp)[12] = 0xff;\ + case 12:(cp)[11] = 0xff; case 11:(cp)[10] = 0xff; case 10: (cp)[9] = 0xff;\ + case 9: (cp)[8] = 0xff; case 8: (cp)[7] = 0xff; case 7: (cp)[6] = 0xff;\ + case 6: (cp)[5] = 0xff; case 5: (cp)[4] = 0xff; case 4: (cp)[3] = 0xff;\ + case 3: (cp)[2] = 0xff; case 2: (cp)[1] = 0xff; \ + case 1: (cp)[0] = 0xff; (cp) += (n); case 0: ; \ + } +#define ZERO(n, cp) \ + switch (n) { \ + case 15:(cp)[14] = 0; case 14:(cp)[13] = 0; case 13: (cp)[12] = 0; \ + case 12:(cp)[11] = 0; case 11:(cp)[10] = 0; case 10: (cp)[9] = 0; \ + case 9: (cp)[8] = 0; case 8: (cp)[7] = 0; case 7: (cp)[6] = 0; \ + case 6: (cp)[5] = 0; case 5: (cp)[4] = 0; case 4: (cp)[3] = 0; \ + case 3: (cp)[2] = 0; case 2: (cp)[1] = 0; \ + case 1: (cp)[0] = 0; (cp) += (n); case 0: ; \ + } +#else +#define FILL(n, cp) \ + switch (n) { \ + case 7: (cp)[6] = 0xff; case 6: (cp)[5] = 0xff; case 5: (cp)[4] = 0xff; \ + case 4: (cp)[3] = 0xff; case 3: (cp)[2] = 0xff; case 2: (cp)[1] = 0xff; \ + case 1: (cp)[0] = 0xff; (cp) += (n); case 0: ; \ + } +#define ZERO(n, cp) \ + switch (n) { \ + case 7: (cp)[6] = 0; case 6: (cp)[5] = 0; case 5: (cp)[4] = 0; \ + case 4: (cp)[3] = 0; case 3: (cp)[2] = 0; case 2: (cp)[1] = 0; \ + case 1: (cp)[0] = 0; (cp) += (n); case 0: ; \ + } +#endif + +/* + * Bit-fill a row according to the white/black + * runs generated during G3/G4 decoding. + */ +void +_TIFFFax3fillruns(u_char* buf, uint32* runs, uint32* erun, uint32 lastx) +{ + static const unsigned char _fillmasks[] = + { 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff }; + u_char* cp; + uint32 x, bx, run; + int32 n, nw; + long* lp; + + if ((erun-runs)&1) + *erun++ = 0; + x = 0; + for (; runs < erun; runs += 2) { + run = runs[0]; + if (x+run > lastx || run > lastx ) + run = runs[0] = (uint16) (lastx - x); + if (run) { + cp = buf + (x>>3); + bx = x&7; + if (run > 8-bx) { + if (bx) { /* align to byte boundary */ + *cp++ &= 0xff << (8-bx); + run -= 8-bx; + } + if( (n = run >> 3) != 0 ) { /* multiple bytes to fill */ + if ((n/sizeof (long)) > 1) { + /* + * Align to longword boundary and fill. + */ + for (; n && !isAligned(cp, long); n--) + *cp++ = 0x00; + lp = (long*) cp; + nw = (int32)(n / sizeof (long)); + n -= nw * sizeof (long); + do { + *lp++ = 0L; + } while (--nw); + cp = (u_char*) lp; + } + ZERO(n, cp); + run &= 7; + } +#ifdef PURIFY + if (run) + cp[0] &= 0xff >> run; +#else + cp[0] &= 0xff >> run; +#endif + } else + cp[0] &= ~(_fillmasks[run]>>bx); + x += runs[0]; + } + run = runs[1]; + if (x+run > lastx || run > lastx ) + run = runs[1] = lastx - x; + if (run) { + cp = buf + (x>>3); + bx = x&7; + if (run > 8-bx) { + if (bx) { /* align to byte boundary */ + *cp++ |= 0xff >> bx; + run -= 8-bx; + } + if( (n = run>>3) != 0 ) { /* multiple bytes to fill */ + if ((n/sizeof (long)) > 1) { + /* + * Align to longword boundary and fill. + */ + for (; n && !isAligned(cp, long); n--) + *cp++ = 0xff; + lp = (long*) cp; + nw = (int32)(n / sizeof (long)); + n -= nw * sizeof (long); + do { + *lp++ = -1L; + } while (--nw); + cp = (u_char*) lp; + } + FILL(n, cp); + run &= 7; + } +#ifdef PURIFY + if (run) + cp[0] |= 0xff00 >> run; +#else + cp[0] |= 0xff00 >> run; +#endif + } else + cp[0] |= _fillmasks[run]>>bx; + x += runs[1]; + } + } + assert(x == lastx); +} +#undef ZERO +#undef FILL + +/* + * Setup G3/G4-related compression/decompression state + * before data is processed. This routine is called once + * per image -- it sets up different state based on whether + * or not decoding or encoding is being done and whether + * 1D- or 2D-encoded data is involved. + */ +static int +Fax3SetupState(TIFF* tif) +{ + TIFFDirectory* td = &tif->tif_dir; + Fax3BaseState* sp = Fax3State(tif); + long rowbytes, rowpixels; + int needsRefLine; + + if (td->td_bitspersample != 1) { + TIFFError(tif->tif_name, + "Bits/sample must be 1 for Group 3/4 encoding/decoding"); + return (0); + } + /* + * Calculate the scanline/tile widths. + */ + if (isTiled(tif)) { + rowbytes = TIFFTileRowSize(tif); + rowpixels = td->td_tilewidth; + } else { + rowbytes = TIFFScanlineSize(tif); + rowpixels = td->td_imagewidth; + } + sp->rowbytes = (uint32) rowbytes; + sp->rowpixels = (uint32) rowpixels; + /* + * Allocate any additional space required for decoding/encoding. + */ + needsRefLine = ( + (sp->groupoptions & GROUP3OPT_2DENCODING) || + td->td_compression == COMPRESSION_CCITTFAX4 + ); + if (tif->tif_mode == O_RDONLY) { /* 1d/2d decoding */ + Fax3DecodeState* dsp = DecoderState(tif); + uint32 nruns = needsRefLine ? + 2*TIFFroundup(rowpixels,32) : rowpixels; + + /* +Problem +------- + +Decoding the file frle_bug.tif causes a crash (such as with tiff2rgba). + +In particular the array dsp->runs allocated in Fax3SetupState() is overrun +by 4-8 bytes. This occurs when Fax3DecodeRLE() processes the first +scanline. The EXPAND1D() macro advances "pa" to be thisrun+512 (an +alias for dsp->runs), pointing just beyond the end of the array. Then +the call to _TIFFFax3fillruns() does an "*erun++ = 0;" which writes beyond +the end of the array. + +In the short term I have modified the dsp->runs allocation to add eight +extra bytes to the runs buffer; however, I am only doing this because I +don't understand the algorithm well enough to change it without risking +more adverse side effects. + +Frank Warmerdam (warmerda@home.com) + + */ + + dsp->runs = (uint32*) _TIFFmalloc(8+nruns*sizeof (uint32)); + if (dsp->runs == NULL) { + TIFFError("Fax3SetupState", + "%s: No space for Group 3/4 run arrays", + tif->tif_name); + return (0); + } + dsp->curruns = dsp->runs; + if (needsRefLine) + dsp->refruns = dsp->runs + (nruns>>1); + else + dsp->refruns = NULL; + if (is2DEncoding(dsp)) { /* NB: default is 1D routine */ + tif->tif_decoderow = Fax3Decode2D; + tif->tif_decodestrip = Fax3Decode2D; + tif->tif_decodetile = Fax3Decode2D; + } + } else if (needsRefLine) { /* 2d encoding */ + Fax3EncodeState* esp = EncoderState(tif); + /* + * 2d encoding requires a scanline + * buffer for the ``reference line''; the + * scanline against which delta encoding + * is referenced. The reference line must + * be initialized to be ``white'' (done elsewhere). + */ + esp->refline = (u_char*) _TIFFmalloc(rowbytes); + if (esp->refline == NULL) { + TIFFError("Fax3SetupState", + "%s: No space for Group 3/4 reference line", + tif->tif_name); + return (0); + } + } else /* 1d encoding */ + EncoderState(tif)->refline = NULL; + return (1); +} + +/* + * CCITT Group 3 FAX Encoding. + */ + +#define Fax3FlushBits(tif, sp) { \ + if ((tif)->tif_rawcc >= (tif)->tif_rawdatasize) \ + (void) TIFFFlushData1(tif); \ + *(tif)->tif_rawcp++ = (sp)->data; \ + (tif)->tif_rawcc++; \ + (sp)->data = 0, (sp)->bit = 8; \ +} +#define _FlushBits(tif) { \ + if ((tif)->tif_rawcc >= (tif)->tif_rawdatasize) \ + (void) TIFFFlushData1(tif); \ + *(tif)->tif_rawcp++ = data; \ + (tif)->tif_rawcc++; \ + data = 0, bit = 8; \ +} +static const int _msbmask[9] = + { 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff }; +#define _PutBits(tif, bits, length) { \ + while (length > bit) { \ + data |= bits >> (length - bit); \ + length -= bit; \ + _FlushBits(tif); \ + } \ + data |= (bits & _msbmask[length]) << (bit - length); \ + bit -= length; \ + if (bit == 0) \ + _FlushBits(tif); \ +} + +/* + * Write a variable-length bit-value to + * the output stream. Values are + * assumed to be at most 16 bits. + */ +static void +Fax3PutBits(TIFF* tif, u_int bits, u_int length) +{ + Fax3EncodeState* sp = EncoderState(tif); + u_int bit = sp->bit; + int data = sp->data; + + _PutBits(tif, bits, length); + + sp->data = data; + sp->bit = bit; +} + +/* + * Write a code to the output stream. + */ +#define putcode(tif, te) Fax3PutBits(tif, (te)->code, (te)->length) + +#ifdef FAX3_DEBUG +#define DEBUG_COLOR(w) (tab == TIFFFaxWhiteCodes ? w "W" : w "B") +#define DEBUG_PRINT(what,len) { \ + int t; \ + printf("%08X/%-2d: %s%5d\t", data, bit, DEBUG_COLOR(what), len); \ + for (t = length-1; t >= 0; t--) \ + putchar(code & (1<bit; + int data = sp->data; + u_int code, length; + + while (span >= 2624) { + const tableentry* te = &tab[63 + (2560>>6)]; + code = te->code, length = te->length; +#ifdef FAX3_DEBUG + DEBUG_PRINT("MakeUp", te->runlen); +#endif + _PutBits(tif, code, length); + span -= te->runlen; + } + if (span >= 64) { + const tableentry* te = &tab[63 + (span>>6)]; + assert(te->runlen == 64*(span>>6)); + code = te->code, length = te->length; +#ifdef FAX3_DEBUG + DEBUG_PRINT("MakeUp", te->runlen); +#endif + _PutBits(tif, code, length); + span -= te->runlen; + } + code = tab[span].code, length = tab[span].length; +#ifdef FAX3_DEBUG + DEBUG_PRINT(" Term", tab[span].runlen); +#endif + _PutBits(tif, code, length); + + sp->data = data; + sp->bit = bit; +} + +/* + * Write an EOL code to the output stream. The zero-fill + * logic for byte-aligning encoded scanlines is handled + * here. We also handle writing the tag bit for the next + * scanline when doing 2d encoding. + */ +static void +Fax3PutEOL(TIFF* tif) +{ + Fax3EncodeState* sp = EncoderState(tif); + u_int bit = sp->bit; + int data = sp->data; + u_int code, length, tparm; + + if (sp->b.groupoptions & GROUP3OPT_FILLBITS) { + /* + * Force bit alignment so EOL will terminate on + * a byte boundary. That is, force the bit alignment + * to 16-12 = 4 before putting out the EOL code. + */ + int align = 8 - 4; + if (align != sp->bit) { + if (align > sp->bit) + align = sp->bit + (8 - align); + else + align = sp->bit - align; + code = 0; + tparm=align; + _PutBits(tif, 0, tparm); + } + } + code = EOL, length = 12; + if (is2DEncoding(sp)) + code = (code<<1) | (sp->tag == G3_1D), length++; + _PutBits(tif, code, length); + + sp->data = data; + sp->bit = bit; +} + +/* + * Reset encoding state at the start of a strip. + */ +static int +Fax3PreEncode(TIFF* tif, tsample_t s) +{ + Fax3EncodeState* sp = EncoderState(tif); + + (void) s; + assert(sp != NULL); + sp->bit = 8; + sp->data = 0; + sp->tag = G3_1D; + /* + * This is necessary for Group 4; otherwise it isn't + * needed because the first scanline of each strip ends + * up being copied into the refline. + */ + if (sp->refline) + _TIFFmemset(sp->refline, 0x00, sp->b.rowbytes); + if (is2DEncoding(sp)) { + float res = tif->tif_dir.td_yresolution; + /* + * The CCITT spec says that when doing 2d encoding, you + * should only do it on K consecutive scanlines, where K + * depends on the resolution of the image being encoded + * (2 for <= 200 lpi, 4 for > 200 lpi). Since the directory + * code initializes td_yresolution to 0, this code will + * select a K of 2 unless the YResolution tag is set + * appropriately. (Note also that we fudge a little here + * and use 150 lpi to avoid problems with units conversion.) + */ + if (tif->tif_dir.td_resolutionunit == RESUNIT_CENTIMETER) + res *= 2.54f; /* convert to inches */ + sp->maxk = (res > 150 ? 4 : 2); + sp->k = sp->maxk-1; + } else + sp->k = sp->maxk = 0; + return (1); +} + +static const u_char zeroruns[256] = { + 8, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, /* 0x00 - 0x0f */ + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, /* 0x10 - 0x1f */ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, /* 0x20 - 0x2f */ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, /* 0x30 - 0x3f */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x40 - 0x4f */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x50 - 0x5f */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x60 - 0x6f */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x70 - 0x7f */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 - 0x8f */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 - 0x9f */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0xa0 - 0xaf */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0xb0 - 0xbf */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0xc0 - 0xcf */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0xd0 - 0xdf */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0xe0 - 0xef */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0xf0 - 0xff */ +}; +static const u_char oneruns[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 - 0x0f */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 - 0x1f */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 - 0x2f */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x30 - 0x3f */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x40 - 0x4f */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 - 0x5f */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60 - 0x6f */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 - 0x7f */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x80 - 0x8f */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x90 - 0x9f */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0xa0 - 0xaf */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0xb0 - 0xbf */ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, /* 0xc0 - 0xcf */ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, /* 0xd0 - 0xdf */ + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, /* 0xe0 - 0xef */ + 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 7, 8, /* 0xf0 - 0xff */ +}; + +/* + * On certain systems it pays to inline + * the routines that find pixel spans. + */ +#ifdef VAXC +static int32 find0span(u_char*, int32, int32); +static int32 find1span(u_char*, int32, int32); +#pragma inline(find0span,find1span) +#endif + +/* + * Find a span of ones or zeros using the supplied + * table. The ``base'' of the bit string is supplied + * along with the start+end bit indices. + */ +INLINE static int32 +find0span(u_char* bp, int32 bs, int32 be) +{ + int32 bits = be - bs; + int32 n, span; + + bp += bs>>3; + /* + * Check partial byte on lhs. + */ + if (bits > 0 && (n = (bs & 7))) { + span = zeroruns[(*bp << n) & 0xff]; + if (span > 8-n) /* table value too generous */ + span = 8-n; + if (span > bits) /* constrain span to bit range */ + span = bits; + if (n+span < 8) /* doesn't extend to edge of byte */ + return (span); + bits -= span; + bp++; + } else + span = 0; + if (bits >= 2*8*sizeof (long)) { + long* lp; + /* + * Align to longword boundary and check longwords. + */ + while (!isAligned(bp, long)) { + if (*bp != 0x00) + return (span + zeroruns[*bp]); + span += 8, bits -= 8; + bp++; + } + lp = (long*) bp; + while (bits >= 8*sizeof (long) && *lp == 0) { + span += 8*sizeof (long), bits -= 8*sizeof (long); + lp++; + } + bp = (u_char*) lp; + } + /* + * Scan full bytes for all 0's. + */ + while (bits >= 8) { + if (*bp != 0x00) /* end of run */ + return (span + zeroruns[*bp]); + span += 8, bits -= 8; + bp++; + } + /* + * Check partial byte on rhs. + */ + if (bits > 0) { + n = zeroruns[*bp]; + span += (n > bits ? bits : n); + } + return (span); +} + +INLINE static int32 +find1span(u_char* bp, int32 bs, int32 be) +{ + int32 bits = be - bs; + int32 n, span; + + bp += bs>>3; + /* + * Check partial byte on lhs. + */ + if (bits > 0 && (n = (bs & 7))) { + span = oneruns[(*bp << n) & 0xff]; + if (span > 8-n) /* table value too generous */ + span = 8-n; + if (span > bits) /* constrain span to bit range */ + span = bits; + if (n+span < 8) /* doesn't extend to edge of byte */ + return (span); + bits -= span; + bp++; + } else + span = 0; + if (bits >= 2*8*sizeof (long)) { + long* lp; + /* + * Align to longword boundary and check longwords. + */ + while (!isAligned(bp, long)) { + if (*bp != 0xff) + return (span + oneruns[*bp]); + span += 8, bits -= 8; + bp++; + } + lp = (long*) bp; + while (bits >= 8*sizeof (long) && *lp == ~0) { + span += 8*sizeof (long), bits -= 8*sizeof (long); + lp++; + } + bp = (u_char*) lp; + } + /* + * Scan full bytes for all 1's. + */ + while (bits >= 8) { + if (*bp != 0xff) /* end of run */ + return (span + oneruns[*bp]); + span += 8, bits -= 8; + bp++; + } + /* + * Check partial byte on rhs. + */ + if (bits > 0) { + n = oneruns[*bp]; + span += (n > bits ? bits : n); + } + return (span); +} + +/* + * Return the offset of the next bit in the range + * [bs..be] that is different from the specified + * color. The end, be, is returned if no such bit + * exists. + */ +#define finddiff(_cp, _bs, _be, _color) \ + (_bs + (_color ? find1span(_cp,_bs,_be) : find0span(_cp,_bs,_be))) +/* + * Like finddiff, but also check the starting bit + * against the end in case start > end. + */ +#define finddiff2(_cp, _bs, _be, _color) \ + (_bs < _be ? finddiff(_cp,_bs,_be,_color) : _be) + +/* + * 1d-encode a row of pixels. The encoding is + * a sequence of all-white or all-black spans + * of pixels encoded with Huffman codes. + */ +static int +Fax3Encode1DRow(TIFF* tif, u_char* bp, uint32 bits) +{ + Fax3EncodeState* sp = EncoderState(tif); + int32 span; + uint32 bs = 0; + + for (;;) { + span = find0span(bp, bs, bits); /* white span */ + putspan(tif, span, TIFFFaxWhiteCodes); + bs += span; + if (bs >= bits) + break; + span = find1span(bp, bs, bits); /* black span */ + putspan(tif, span, TIFFFaxBlackCodes); + bs += span; + if (bs >= bits) + break; + } + if (sp->b.mode & (FAXMODE_BYTEALIGN|FAXMODE_WORDALIGN)) { + if (sp->bit != 8) /* byte-align */ + Fax3FlushBits(tif, sp); + if ((sp->b.mode&FAXMODE_WORDALIGN) && + !isAligned(tif->tif_rawcp, uint16)) + Fax3FlushBits(tif, sp); + } + return (1); +} + +static const tableentry horizcode = + { 3, 0x1 }; /* 001 */ +static const tableentry passcode = + { 4, 0x1 }; /* 0001 */ +static const tableentry vcodes[7] = { + { 7, 0x03 }, /* 0000 011 */ + { 6, 0x03 }, /* 0000 11 */ + { 3, 0x03 }, /* 011 */ + { 1, 0x1 }, /* 1 */ + { 3, 0x2 }, /* 010 */ + { 6, 0x02 }, /* 0000 10 */ + { 7, 0x02 } /* 0000 010 */ +}; + +/* + * 2d-encode a row of pixels. Consult the CCITT + * documentation for the algorithm. + */ +static int +Fax3Encode2DRow(TIFF* tif, u_char* bp, u_char* rp, uint32 bits) +{ +#define PIXEL(buf,ix) ((((buf)[(ix)>>3]) >> (7-((ix)&7))) & 1) + uint32 a0 = 0; + uint32 a1 = (PIXEL(bp, 0) != 0 ? 0 : finddiff(bp, 0, bits, 0)); + uint32 b1 = (PIXEL(rp, 0) != 0 ? 0 : finddiff(rp, 0, bits, 0)); + uint32 a2, b2; + + for (;;) { + b2 = finddiff2(rp, b1, bits, PIXEL(rp,b1)); + if (b2 >= a1) { + int32 d = b1 - a1; + if (!(-3 <= d && d <= 3)) { /* horizontal mode */ + a2 = finddiff2(bp, a1, bits, PIXEL(bp,a1)); + putcode(tif, &horizcode); + if (a0+a1 == 0 || PIXEL(bp, a0) == 0) { + putspan(tif, a1-a0, TIFFFaxWhiteCodes); + putspan(tif, a2-a1, TIFFFaxBlackCodes); + } else { + putspan(tif, a1-a0, TIFFFaxBlackCodes); + putspan(tif, a2-a1, TIFFFaxWhiteCodes); + } + a0 = a2; + } else { /* vertical mode */ + putcode(tif, &vcodes[d+3]); + a0 = a1; + } + } else { /* pass mode */ + putcode(tif, &passcode); + a0 = b2; + } + if (a0 >= bits) + break; + a1 = finddiff(bp, a0, bits, PIXEL(bp,a0)); + b1 = finddiff(rp, a0, bits, !PIXEL(bp,a0)); + b1 = finddiff(rp, b1, bits, PIXEL(bp,a0)); + } + return (1); +#undef PIXEL +} + +/* + * Encode a buffer of pixels. + */ +static int +Fax3Encode(TIFF* tif, tidata_t bp, tsize_t cc, tsample_t s) +{ + Fax3EncodeState* sp = EncoderState(tif); + + (void) s; + while ((long)cc > 0) { + if ((sp->b.mode & FAXMODE_NOEOL) == 0) + Fax3PutEOL(tif); + if (is2DEncoding(sp)) { + if (sp->tag == G3_1D) { + if (!Fax3Encode1DRow(tif, bp, sp->b.rowpixels)) + return (0); + sp->tag = G3_2D; + } else { + if (!Fax3Encode2DRow(tif, bp, sp->refline, sp->b.rowpixels)) + return (0); + sp->k--; + } + if (sp->k == 0) { + sp->tag = G3_1D; + sp->k = sp->maxk-1; + } else + _TIFFmemcpy(sp->refline, bp, sp->b.rowbytes); + } else { + if (!Fax3Encode1DRow(tif, bp, sp->b.rowpixels)) + return (0); + } + bp += sp->b.rowbytes; + cc -= sp->b.rowbytes; + if (cc != 0) + tif->tif_row++; + } + return (1); +} + +static int +Fax3PostEncode(TIFF* tif) +{ + Fax3EncodeState* sp = EncoderState(tif); + + if (sp->bit != 8) + Fax3FlushBits(tif, sp); + return (1); +} + +static void +Fax3Close(TIFF* tif) +{ + if ((Fax3State(tif)->mode & FAXMODE_NORTC) == 0) { + Fax3EncodeState* sp = EncoderState(tif); + u_int code = EOL; + u_int length = 12; + int i; + + if (is2DEncoding(sp)) + code = (code<<1) | (sp->tag == G3_1D), length++; + for (i = 0; i < 6; i++) + Fax3PutBits(tif, code, length); + Fax3FlushBits(tif, sp); + } +} + +static void +Fax3Cleanup(TIFF* tif) +{ + if (tif->tif_data) { + if (tif->tif_mode == O_RDONLY) { + Fax3DecodeState* sp = DecoderState(tif); + if (sp->runs) + _TIFFfree(sp->runs); + } else { + Fax3EncodeState* sp = EncoderState(tif); + if (sp->refline) + _TIFFfree(sp->refline); + } + if (Fax3State(tif)->subaddress) + _TIFFfree(Fax3State(tif)->subaddress); + _TIFFfree(tif->tif_data); + tif->tif_data = NULL; + } +} + +#define FIELD_BADFAXLINES (FIELD_CODEC+0) +#define FIELD_CLEANFAXDATA (FIELD_CODEC+1) +#define FIELD_BADFAXRUN (FIELD_CODEC+2) +#define FIELD_RECVPARAMS (FIELD_CODEC+3) +#define FIELD_SUBADDRESS (FIELD_CODEC+4) +#define FIELD_RECVTIME (FIELD_CODEC+5) + +#define FIELD_OPTIONS (FIELD_CODEC+6) + +static const TIFFFieldInfo faxFieldInfo[] = { + { TIFFTAG_FAXMODE, 0, 0, TIFF_ANY, FIELD_PSEUDO, + FALSE, FALSE, "FaxMode" }, + { TIFFTAG_FAXFILLFUNC, 0, 0, TIFF_ANY, FIELD_PSEUDO, + FALSE, FALSE, "FaxFillFunc" }, + { TIFFTAG_BADFAXLINES, 1, 1, TIFF_LONG, FIELD_BADFAXLINES, + TRUE, FALSE, "BadFaxLines" }, + { TIFFTAG_BADFAXLINES, 1, 1, TIFF_SHORT, FIELD_BADFAXLINES, + TRUE, FALSE, "BadFaxLines" }, + { TIFFTAG_CLEANFAXDATA, 1, 1, TIFF_SHORT, FIELD_CLEANFAXDATA, + TRUE, FALSE, "CleanFaxData" }, + { TIFFTAG_CONSECUTIVEBADFAXLINES,1,1, TIFF_LONG, FIELD_BADFAXRUN, + TRUE, FALSE, "ConsecutiveBadFaxLines" }, + { TIFFTAG_CONSECUTIVEBADFAXLINES,1,1, TIFF_SHORT, FIELD_BADFAXRUN, + TRUE, FALSE, "ConsecutiveBadFaxLines" }, + { TIFFTAG_FAXRECVPARAMS, 1, 1, TIFF_LONG, FIELD_RECVPARAMS, + TRUE, FALSE, "FaxRecvParams" }, + { TIFFTAG_FAXSUBADDRESS, -1,-1, TIFF_ASCII, FIELD_SUBADDRESS, + TRUE, FALSE, "FaxSubAddress" }, + { TIFFTAG_FAXRECVTIME, 1, 1, TIFF_LONG, FIELD_RECVTIME, + TRUE, FALSE, "FaxRecvTime" }, +}; +static const TIFFFieldInfo fax3FieldInfo[] = { + { TIFFTAG_GROUP3OPTIONS, 1, 1, TIFF_LONG, FIELD_OPTIONS, + FALSE, FALSE, "Group3Options" }, +}; +static const TIFFFieldInfo fax4FieldInfo[] = { + { TIFFTAG_GROUP4OPTIONS, 1, 1, TIFF_LONG, FIELD_OPTIONS, + FALSE, FALSE, "Group4Options" }, +}; +#define N(a) (sizeof (a) / sizeof (a[0])) + +static int +Fax3VSetField(TIFF* tif, ttag_t tag, va_list ap) +{ + Fax3BaseState* sp = Fax3State(tif); + + switch (tag) { + case TIFFTAG_FAXMODE: + sp->mode = va_arg(ap, int); + return (1); /* NB: pseudo tag */ + case TIFFTAG_FAXFILLFUNC: + if (tif->tif_mode == O_RDONLY) + DecoderState(tif)->fill = va_arg(ap, TIFFFaxFillFunc); + return (1); /* NB: pseudo tag */ + case TIFFTAG_GROUP3OPTIONS: + case TIFFTAG_GROUP4OPTIONS: + sp->groupoptions = va_arg(ap, uint32); + break; + case TIFFTAG_BADFAXLINES: + sp->badfaxlines = va_arg(ap, uint32); + break; + case TIFFTAG_CLEANFAXDATA: + sp->cleanfaxdata = (uint16) va_arg(ap, int); + break; + case TIFFTAG_CONSECUTIVEBADFAXLINES: + sp->badfaxrun = va_arg(ap, uint32); + break; + case TIFFTAG_FAXRECVPARAMS: + sp->recvparams = va_arg(ap, uint32); + break; + case TIFFTAG_FAXSUBADDRESS: + _TIFFsetString(&sp->subaddress, va_arg(ap, char*)); + break; + case TIFFTAG_FAXRECVTIME: + sp->recvtime = va_arg(ap, uint32); + break; + default: + return (*sp->vsetparent)(tif, tag, ap); + } + TIFFSetFieldBit(tif, _TIFFFieldWithTag(tif, tag)->field_bit); + tif->tif_flags |= TIFF_DIRTYDIRECT; + return (1); +} + +static int +Fax3VGetField(TIFF* tif, ttag_t tag, va_list ap) +{ + Fax3BaseState* sp = Fax3State(tif); + + switch (tag) { + case TIFFTAG_FAXMODE: + *va_arg(ap, int*) = sp->mode; + break; + case TIFFTAG_FAXFILLFUNC: + if (tif->tif_mode == O_RDONLY) + *va_arg(ap, TIFFFaxFillFunc*) = DecoderState(tif)->fill; + break; + case TIFFTAG_GROUP3OPTIONS: + case TIFFTAG_GROUP4OPTIONS: + *va_arg(ap, uint32*) = sp->groupoptions; + break; + case TIFFTAG_BADFAXLINES: + *va_arg(ap, uint32*) = sp->badfaxlines; + break; + case TIFFTAG_CLEANFAXDATA: + *va_arg(ap, uint16*) = sp->cleanfaxdata; + break; + case TIFFTAG_CONSECUTIVEBADFAXLINES: + *va_arg(ap, uint32*) = sp->badfaxrun; + break; + case TIFFTAG_FAXRECVPARAMS: + *va_arg(ap, uint32*) = sp->recvparams; + break; + case TIFFTAG_FAXSUBADDRESS: + *va_arg(ap, char**) = sp->subaddress; + break; + case TIFFTAG_FAXRECVTIME: + *va_arg(ap, uint32*) = sp->recvtime; + break; + default: + return (*sp->vgetparent)(tif, tag, ap); + } + return (1); +} + +static void +Fax3PrintDir(TIFF* tif, FILE* fd, long flags) +{ + Fax3BaseState* sp = Fax3State(tif); + + (void) flags; + if (TIFFFieldSet(tif,FIELD_OPTIONS)) { + const char* sep = " "; + if (tif->tif_dir.td_compression == COMPRESSION_CCITTFAX4) { + fprintf(fd, " Group 4 Options:"); + if (sp->groupoptions & GROUP4OPT_UNCOMPRESSED) + fprintf(fd, "%suncompressed data", sep); + } else { + + fprintf(fd, " Group 3 Options:"); + if (sp->groupoptions & GROUP3OPT_2DENCODING) + fprintf(fd, "%s2-d encoding", sep), sep = "+"; + if (sp->groupoptions & GROUP3OPT_FILLBITS) + fprintf(fd, "%sEOL padding", sep), sep = "+"; + if (sp->groupoptions & GROUP3OPT_UNCOMPRESSED) + fprintf(fd, "%suncompressed data", sep); + } + fprintf(fd, " (%lu = 0x%lx)\n", + (u_long) sp->groupoptions, (u_long) sp->groupoptions); + } + if (TIFFFieldSet(tif,FIELD_CLEANFAXDATA)) { + fprintf(fd, " Fax Data:"); + switch (sp->cleanfaxdata) { + case CLEANFAXDATA_CLEAN: + fprintf(fd, " clean"); + break; + case CLEANFAXDATA_REGENERATED: + fprintf(fd, " receiver regenerated"); + break; + case CLEANFAXDATA_UNCLEAN: + fprintf(fd, " uncorrected errors"); + break; + } + fprintf(fd, " (%u = 0x%x)\n", + sp->cleanfaxdata, sp->cleanfaxdata); + } + if (TIFFFieldSet(tif,FIELD_BADFAXLINES)) + fprintf(fd, " Bad Fax Lines: %lu\n", (u_long) sp->badfaxlines); + if (TIFFFieldSet(tif,FIELD_BADFAXRUN)) + fprintf(fd, " Consecutive Bad Fax Lines: %lu\n", + (u_long) sp->badfaxrun); + if (TIFFFieldSet(tif,FIELD_RECVPARAMS)) + fprintf(fd, " Fax Receive Parameters: %08lx\n", + (u_long) sp->recvparams); + if (TIFFFieldSet(tif,FIELD_SUBADDRESS)) + fprintf(fd, " Fax SubAddress: %s\n", sp->subaddress); + if (TIFFFieldSet(tif,FIELD_RECVTIME)) + fprintf(fd, " Fax Receive Time: %lu secs\n", + (u_long) sp->recvtime); +} + +static int +InitCCITTFax3(TIFF* tif) +{ + Fax3BaseState* sp; + + /* + * Allocate state block so tag methods have storage to record values. + */ + if (tif->tif_mode == O_RDONLY) + tif->tif_data = (tidata_t) + _TIFFmalloc(sizeof (Fax3DecodeState)); + else + tif->tif_data = (tidata_t) + _TIFFmalloc(sizeof (Fax3EncodeState)); + + if (tif->tif_data == NULL) { + TIFFError("TIFFInitCCITTFax3", + "%s: No space for state block", tif->tif_name); + return (0); + } + sp = Fax3State(tif); + + /* + * Merge codec-specific tag information and + * override parent get/set field methods. + */ + _TIFFMergeFieldInfo(tif, faxFieldInfo, N(faxFieldInfo)); + sp->vgetparent = tif->tif_vgetfield; + tif->tif_vgetfield = Fax3VGetField; /* hook for codec tags */ + sp->vsetparent = tif->tif_vsetfield; + tif->tif_vsetfield = Fax3VSetField; /* hook for codec tags */ + tif->tif_printdir = Fax3PrintDir; /* hook for codec tags */ + sp->groupoptions = 0; + sp->recvparams = 0; + sp->subaddress = NULL; + + if (tif->tif_mode == O_RDONLY) { + tif->tif_flags |= TIFF_NOBITREV;/* decoder does bit reversal */ + DecoderState(tif)->runs = NULL; + TIFFSetField(tif, TIFFTAG_FAXFILLFUNC, _TIFFFax3fillruns); + } else + EncoderState(tif)->refline = NULL; + + /* + * Install codec methods. + */ + tif->tif_setupdecode = Fax3SetupState; + tif->tif_predecode = Fax3PreDecode; + tif->tif_decoderow = Fax3Decode1D; + tif->tif_decodestrip = Fax3Decode1D; + tif->tif_decodetile = Fax3Decode1D; + tif->tif_setupencode = Fax3SetupState; + tif->tif_preencode = Fax3PreEncode; + tif->tif_postencode = Fax3PostEncode; + tif->tif_encoderow = Fax3Encode; + tif->tif_encodestrip = Fax3Encode; + tif->tif_encodetile = Fax3Encode; + tif->tif_close = Fax3Close; + tif->tif_cleanup = Fax3Cleanup; + + return (1); +} + +int +TIFFInitCCITTFax3(TIFF* tif, int scheme) +{ + if (InitCCITTFax3(tif)) { + _TIFFMergeFieldInfo(tif, fax3FieldInfo, N(fax3FieldInfo)); + + /* + * The default format is Class/F-style w/o RTC. + */ + return TIFFSetField(tif, TIFFTAG_FAXMODE, FAXMODE_CLASSF); + } else + return (0); +} + +/* + * CCITT Group 4 (T.6) Facsimile-compatible + * Compression Scheme Support. + */ + +#define SWAP(t,a,b) { t x; x = (a); (a) = (b); (b) = x; } +/* + * Decode the requested amount of G4-encoded data. + */ +static int +Fax4Decode(TIFF* tif, tidata_t buf, tsize_t occ, tsample_t s) +{ + DECLARE_STATE_2D(tif, sp, "Fax4Decode"); + + (void) s; + CACHE_STATE(tif, sp); + while ((long)occ > 0) { + a0 = 0; + RunLength = 0; + pa = thisrun = sp->curruns; + pb = sp->refruns; + b1 = *pb++; +#ifdef FAX3_DEBUG + printf("\nBitAcc=%08X, BitsAvail = %d\n", BitAcc, BitsAvail); + printf("-------------------- %d\n", tif->tif_row); + fflush(stdout); +#endif + EXPAND2D(EOFG4); + (*sp->fill)(buf, thisrun, pa, lastx); + SETVAL(0); /* imaginary change for reference */ + SWAP(uint32*, sp->curruns, sp->refruns); + buf += sp->b.rowbytes; + occ -= sp->b.rowbytes; + if (occ != 0) + tif->tif_row++; + continue; + EOFG4: + (*sp->fill)(buf, thisrun, pa, lastx); + UNCACHE_STATE(tif, sp); + return (-1); + } + UNCACHE_STATE(tif, sp); + return (1); +} +#undef SWAP + +/* + * Encode the requested amount of data. + */ +static int +Fax4Encode(TIFF* tif, tidata_t bp, tsize_t cc, tsample_t s) +{ + Fax3EncodeState *sp = EncoderState(tif); + + (void) s; + while ((long)cc > 0) { + if (!Fax3Encode2DRow(tif, bp, sp->refline, sp->b.rowpixels)) + return (0); + _TIFFmemcpy(sp->refline, bp, sp->b.rowbytes); + bp += sp->b.rowbytes; + cc -= sp->b.rowbytes; + if (cc != 0) + tif->tif_row++; + } + return (1); +} + +static int +Fax4PostEncode(TIFF* tif) +{ + Fax3EncodeState *sp = EncoderState(tif); + + /* terminate strip w/ EOFB */ + Fax3PutBits(tif, EOL, 12); + Fax3PutBits(tif, EOL, 12); + if (sp->bit != 8) + Fax3FlushBits(tif, sp); + return (1); +} + +int +TIFFInitCCITTFax4(TIFF* tif, int scheme) +{ + if (InitCCITTFax3(tif)) { /* reuse G3 support */ + _TIFFMergeFieldInfo(tif, fax4FieldInfo, N(fax4FieldInfo)); + + tif->tif_decoderow = Fax4Decode; + tif->tif_decodestrip = Fax4Decode; + tif->tif_decodetile = Fax4Decode; + tif->tif_encoderow = Fax4Encode; + tif->tif_encodestrip = Fax4Encode; + tif->tif_encodetile = Fax4Encode; + tif->tif_postencode = Fax4PostEncode; + /* + * Suppress RTC at the end of each strip. + */ + return TIFFSetField(tif, TIFFTAG_FAXMODE, FAXMODE_NORTC); + } else + return (0); +} + +/* + * CCITT Group 3 1-D Modified Huffman RLE Compression Support. + * (Compression algorithms 2 and 32771) + */ + +/* + * Decode the requested amount of RLE-encoded data. + */ +static int +Fax3DecodeRLE(TIFF* tif, tidata_t buf, tsize_t occ, tsample_t s) +{ + DECLARE_STATE(tif, sp, "Fax3DecodeRLE"); + int mode = sp->b.mode; + + (void) s; + CACHE_STATE(tif, sp); + thisrun = sp->curruns; + while ((long)occ > 0) { + a0 = 0; + RunLength = 0; + pa = thisrun; +#ifdef FAX3_DEBUG + printf("\nBitAcc=%08X, BitsAvail = %d\n", BitAcc, BitsAvail); + printf("-------------------- %d\n", tif->tif_row); + fflush(stdout); +#endif + EXPAND1D(EOFRLE); + (*sp->fill)(buf, thisrun, pa, lastx); + /* + * Cleanup at the end of the row. + */ + if (mode & FAXMODE_BYTEALIGN) { + int n = BitsAvail - (BitsAvail &~ 7); + ClrBits(n); + } else if (mode & FAXMODE_WORDALIGN) { + int n = BitsAvail - (BitsAvail &~ 15); + ClrBits(n); + if (BitsAvail == 0 && !isAligned(cp, uint16)) + cp++; + } + buf += sp->b.rowbytes; + occ -= sp->b.rowbytes; + if (occ != 0) + tif->tif_row++; + continue; + EOFRLE: /* premature EOF */ + (*sp->fill)(buf, thisrun, pa, lastx); + UNCACHE_STATE(tif, sp); + return (-1); + } + UNCACHE_STATE(tif, sp); + return (1); +} + +int +TIFFInitCCITTRLE(TIFF* tif, int scheme) +{ + if (InitCCITTFax3(tif)) { /* reuse G3 support */ + tif->tif_decoderow = Fax3DecodeRLE; + tif->tif_decodestrip = Fax3DecodeRLE; + tif->tif_decodetile = Fax3DecodeRLE; + /* + * Suppress RTC+EOLs when encoding and byte-align data. + */ + return TIFFSetField(tif, TIFFTAG_FAXMODE, + FAXMODE_NORTC|FAXMODE_NOEOL|FAXMODE_BYTEALIGN); + } else + return (0); +} + +int +TIFFInitCCITTRLEW(TIFF* tif, int scheme) +{ + if (InitCCITTFax3(tif)) { /* reuse G3 support */ + tif->tif_decoderow = Fax3DecodeRLE; + tif->tif_decodestrip = Fax3DecodeRLE; + tif->tif_decodetile = Fax3DecodeRLE; + /* + * Suppress RTC+EOLs when encoding and word-align data. + */ + return TIFFSetField(tif, TIFFTAG_FAXMODE, + FAXMODE_NORTC|FAXMODE_NOEOL|FAXMODE_WORDALIGN); + } else + return (0); +} +#endif /* CCITT_SUPPORT */ diff --git a/libtiff/tif_fax3.h b/libtiff/tif_fax3.h new file mode 100755 index 0000000..0fd75f1 --- /dev/null +++ b/libtiff/tif_fax3.h @@ -0,0 +1,522 @@ +/* $Id: tif_fax3.h,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1990-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#ifndef _FAX3_ +#define _FAX3_ +/* + * TIFF Library. + * + * CCITT Group 3 (T.4) and Group 4 (T.6) Decompression Support. + * + * Decoder support is derived, with permission, from the code + * in Frank Cringle's viewfax program; + * Copyright (C) 1990, 1995 Frank D. Cringle. + */ +#include "tiff.h" + +/* + * To override the default routine used to image decoded + * spans one can use the pseduo tag TIFFTAG_FAXFILLFUNC. + * The routine must have the type signature given below; + * for example: + * + * fillruns(unsigned char* buf, uint32* runs, uint32* erun, uint32 lastx) + * + * where buf is place to set the bits, runs is the array of b&w run + * lengths (white then black), erun is the last run in the array, and + * lastx is the width of the row in pixels. Fill routines can assume + * the run array has room for at least lastx runs and can overwrite + * data in the run array as needed (e.g. to append zero runs to bring + * the count up to a nice multiple). + */ +typedef void (*TIFFFaxFillFunc)(unsigned char*, uint32*, uint32*, uint32); + +/* + * The default run filler; made external for other decoders. + */ +#if defined(__cplusplus) +extern "C" { +#endif +extern void _TIFFFax3fillruns(unsigned char*, uint32*, uint32*, uint32); +#if defined(__cplusplus) +} +#endif + + +/* finite state machine codes */ +#define S_Null 0 +#define S_Pass 1 +#define S_Horiz 2 +#define S_V0 3 +#define S_VR 4 +#define S_VL 5 +#define S_Ext 6 +#define S_TermW 7 +#define S_TermB 8 +#define S_MakeUpW 9 +#define S_MakeUpB 10 +#define S_MakeUp 11 +#define S_EOL 12 + +typedef struct { /* state table entry */ + unsigned char State; /* see above */ + unsigned char Width; /* width of code in bits */ + uint32 Param; /* unsigned 32-bit run length in bits */ +} TIFFFaxTabEnt; + +extern const TIFFFaxTabEnt TIFFFaxMainTable[]; +extern const TIFFFaxTabEnt TIFFFaxWhiteTable[]; +extern const TIFFFaxTabEnt TIFFFaxBlackTable[]; + +/* + * The following macros define the majority of the G3/G4 decoder + * algorithm using the state tables defined elsewhere. To build + * a decoder you need some setup code and some glue code. Note + * that you may also need/want to change the way the NeedBits* + * macros get input data if, for example, you know the data to be + * decoded is properly aligned and oriented (doing so before running + * the decoder can be a big performance win). + * + * Consult the decoder in the TIFF library for an idea of what you + * need to define and setup to make use of these definitions. + * + * NB: to enable a debugging version of these macros define FAX3_DEBUG + * before including this file. Trace output goes to stdout. + */ + +#ifndef EndOfData +#define EndOfData() (cp >= ep) +#endif +/* + * Need <=8 or <=16 bits of input data. Unlike viewfax we + * cannot use/assume a word-aligned, properly bit swizzled + * input data set because data may come from an arbitrarily + * aligned, read-only source such as a memory-mapped file. + * Note also that the viewfax decoder does not check for + * running off the end of the input data buffer. This is + * possible for G3-encoded data because it prescans the input + * data to count EOL markers, but can cause problems for G4 + * data. In any event, we don't prescan and must watch for + * running out of data since we can't permit the library to + * scan past the end of the input data buffer. + * + * Finally, note that we must handle remaindered data at the end + * of a strip specially. The coder asks for a fixed number of + * bits when scanning for the next code. This may be more bits + * than are actually present in the data stream. If we appear + * to run out of data but still have some number of valid bits + * remaining then we makeup the requested amount with zeros and + * return successfully. If the returned data is incorrect then + * we should be called again and get a premature EOF error; + * otherwise we should get the right answer. + */ +#ifndef NeedBits8 +#define NeedBits8(n,eoflab) do { \ + if (BitsAvail < (n)) { \ + if (EndOfData()) { \ + if (BitsAvail == 0) /* no valid bits */ \ + goto eoflab; \ + BitsAvail = (n); /* pad with zeros */ \ + } else { \ + BitAcc |= ((uint32) bitmap[*cp++])<>= (n); \ +} while (0) + +#ifdef FAX3_DEBUG +static const char* StateNames[] = { + "Null ", + "Pass ", + "Horiz ", + "V0 ", + "VR ", + "VL ", + "Ext ", + "TermW ", + "TermB ", + "MakeUpW", + "MakeUpB", + "MakeUp ", + "EOL ", +}; +#define DEBUG_SHOW putchar(BitAcc & (1 << t) ? '1' : '0') +#define LOOKUP8(wid,tab,eoflab) do { \ + int t; \ + NeedBits8(wid,eoflab); \ + TabEnt = tab + GetBits(wid); \ + printf("%08lX/%d: %s%5d\t", (long) BitAcc, BitsAvail, \ + StateNames[TabEnt->State], TabEnt->Param); \ + for (t = 0; t < TabEnt->Width; t++) \ + DEBUG_SHOW; \ + putchar('\n'); \ + fflush(stdout); \ + ClrBits(TabEnt->Width); \ +} while (0) +#define LOOKUP16(wid,tab,eoflab) do { \ + int t; \ + NeedBits16(wid,eoflab); \ + TabEnt = tab + GetBits(wid); \ + printf("%08lX/%d: %s%5d\t", (long) BitAcc, BitsAvail, \ + StateNames[TabEnt->State], TabEnt->Param); \ + for (t = 0; t < TabEnt->Width; t++) \ + DEBUG_SHOW; \ + putchar('\n'); \ + fflush(stdout); \ + ClrBits(TabEnt->Width); \ +} while (0) + +#define SETVAL(x) do { \ + *pa++ = RunLength + (x); \ + printf("SETVAL: %d\t%d\n", RunLength + (x), a0); \ + a0 += x; \ + RunLength = 0; \ +} while (0) +#else +#define LOOKUP8(wid,tab,eoflab) do { \ + NeedBits8(wid,eoflab); \ + TabEnt = tab + GetBits(wid); \ + ClrBits(TabEnt->Width); \ +} while (0) +#define LOOKUP16(wid,tab,eoflab) do { \ + NeedBits16(wid,eoflab); \ + TabEnt = tab + GetBits(wid); \ + ClrBits(TabEnt->Width); \ +} while (0) + +/* + * Append a run to the run length array for the + * current row and reset decoding state. + */ +#define SETVAL(x) do { \ + *pa++ = RunLength + (x); \ + a0 += (x); \ + RunLength = 0; \ +} while (0) +#endif + +/* + * Synchronize input decoding at the start of each + * row by scanning for an EOL (if appropriate) and + * skipping any trash data that might be present + * after a decoding error. Note that the decoding + * done elsewhere that recognizes an EOL only consumes + * 11 consecutive zero bits. This means that if EOLcnt + * is non-zero then we still need to scan for the final flag + * bit that is part of the EOL code. + */ +#define SYNC_EOL(eoflab) do { \ + if (EOLcnt == 0) { \ + for (;;) { \ + NeedBits16(11,eoflab); \ + if (GetBits(11) == 0) \ + break; \ + ClrBits(1); \ + } \ + } \ + for (;;) { \ + NeedBits8(8,eoflab); \ + if (GetBits(8)) \ + break; \ + ClrBits(8); \ + } \ + while (GetBits(1) == 0) \ + ClrBits(1); \ + ClrBits(1); /* EOL bit */ \ + EOLcnt = 0; /* reset EOL counter/flag */ \ +} while (0) + +/* + * Cleanup the array of runs after decoding a row. + * We adjust final runs to insure the user buffer is not + * overwritten and/or undecoded area is white filled. + */ +#define CLEANUP_RUNS() do { \ + if (RunLength) \ + SETVAL(0); \ + if (a0 != lastx) { \ + badlength(a0, lastx); \ + while (a0 > lastx && pa > thisrun) \ + a0 -= *--pa; \ + if (a0 < lastx) { \ + if (a0 < 0) \ + a0 = 0; \ + if ((pa-thisrun)&1) \ + SETVAL(0); \ + SETVAL(lastx - a0); \ + } else if (a0 > lastx) { \ + SETVAL(lastx); \ + SETVAL(0); \ + } \ + } \ +} while (0) + +/* + * Decode a line of 1D-encoded data. + * + * The line expanders are written as macros so that they can be reused + * but still have direct access to the local variables of the "calling" + * function. + * + * Note that unlike the original version we have to explicitly test for + * a0 >= lastx after each black/white run is decoded. This is because + * the original code depended on the input data being zero-padded to + * insure the decoder recognized an EOL before running out of data. + */ +#define EXPAND1D(eoflab) do { \ + for (;;) { \ + for (;;) { \ + LOOKUP16(12, TIFFFaxWhiteTable, eof1d); \ + switch (TabEnt->State) { \ + case S_EOL: \ + EOLcnt = 1; \ + goto done1d; \ + case S_TermW: \ + SETVAL(TabEnt->Param); \ + goto doneWhite1d; \ + case S_MakeUpW: \ + case S_MakeUp: \ + a0 += TabEnt->Param; \ + RunLength += TabEnt->Param; \ + break; \ + default: \ + unexpected("WhiteTable", a0); \ + goto done1d; \ + } \ + } \ + doneWhite1d: \ + if (a0 >= lastx) \ + goto done1d; \ + for (;;) { \ + LOOKUP16(13, TIFFFaxBlackTable, eof1d); \ + switch (TabEnt->State) { \ + case S_EOL: \ + EOLcnt = 1; \ + goto done1d; \ + case S_TermB: \ + SETVAL(TabEnt->Param); \ + goto doneBlack1d; \ + case S_MakeUpB: \ + case S_MakeUp: \ + a0 += TabEnt->Param; \ + RunLength += TabEnt->Param; \ + break; \ + default: \ + unexpected("BlackTable", a0); \ + goto done1d; \ + } \ + } \ + doneBlack1d: \ + if (a0 >= lastx) \ + goto done1d; \ + } \ +eof1d: \ + prematureEOF(a0); \ + CLEANUP_RUNS(); \ + goto eoflab; \ +done1d: \ + CLEANUP_RUNS(); \ +} while (0) + +/* + * Update the value of b1 using the array + * of runs for the reference line. + */ +#define CHECK_b1 do { \ + if (pa != thisrun) while (b1 <= a0 && b1 < lastx) { \ + b1 += pb[0] + pb[1]; \ + pb += 2; \ + } \ +} while (0) + +/* + * Expand a row of 2D-encoded data. + */ +#define EXPAND2D(eoflab) do { \ + while (a0 < lastx) { \ + LOOKUP8(7, TIFFFaxMainTable, eof2d); \ + switch (TabEnt->State) { \ + case S_Pass: \ + CHECK_b1; \ + b1 += *pb++; \ + RunLength += b1 - a0; \ + a0 = b1; \ + b1 += *pb++; \ + break; \ + case S_Horiz: \ + if ((pa-thisrun)&1) { \ + for (;;) { /* black first */ \ + LOOKUP16(13, TIFFFaxBlackTable, eof2d); \ + switch (TabEnt->State) { \ + case S_TermB: \ + SETVAL(TabEnt->Param); \ + goto doneWhite2da; \ + case S_MakeUpB: \ + case S_MakeUp: \ + a0 += TabEnt->Param; \ + RunLength += TabEnt->Param; \ + break; \ + default: \ + goto badBlack2d; \ + } \ + } \ + doneWhite2da:; \ + for (;;) { /* then white */ \ + LOOKUP16(12, TIFFFaxWhiteTable, eof2d); \ + switch (TabEnt->State) { \ + case S_TermW: \ + SETVAL(TabEnt->Param); \ + goto doneBlack2da; \ + case S_MakeUpW: \ + case S_MakeUp: \ + a0 += TabEnt->Param; \ + RunLength += TabEnt->Param; \ + break; \ + default: \ + goto badWhite2d; \ + } \ + } \ + doneBlack2da:; \ + } else { \ + for (;;) { /* white first */ \ + LOOKUP16(12, TIFFFaxWhiteTable, eof2d); \ + switch (TabEnt->State) { \ + case S_TermW: \ + SETVAL(TabEnt->Param); \ + goto doneWhite2db; \ + case S_MakeUpW: \ + case S_MakeUp: \ + a0 += TabEnt->Param; \ + RunLength += TabEnt->Param; \ + break; \ + default: \ + goto badWhite2d; \ + } \ + } \ + doneWhite2db:; \ + for (;;) { /* then black */ \ + LOOKUP16(13, TIFFFaxBlackTable, eof2d); \ + switch (TabEnt->State) { \ + case S_TermB: \ + SETVAL(TabEnt->Param); \ + goto doneBlack2db; \ + case S_MakeUpB: \ + case S_MakeUp: \ + a0 += TabEnt->Param; \ + RunLength += TabEnt->Param; \ + break; \ + default: \ + goto badBlack2d; \ + } \ + } \ + doneBlack2db:; \ + } \ + CHECK_b1; \ + break; \ + case S_V0: \ + CHECK_b1; \ + SETVAL(b1 - a0); \ + b1 += *pb++; \ + break; \ + case S_VR: \ + CHECK_b1; \ + SETVAL(b1 - a0 + TabEnt->Param); \ + b1 += *pb++; \ + break; \ + case S_VL: \ + CHECK_b1; \ + SETVAL(b1 - a0 - TabEnt->Param); \ + b1 -= *--pb; \ + break; \ + case S_Ext: \ + *pa++ = lastx - a0; \ + extension(a0); \ + goto eol2d; \ + case S_EOL: \ + *pa++ = lastx - a0; \ + NeedBits8(5,eof2d); \ + if (GetBits(5)) \ + unexpected("EOL", a0); \ + EOLcnt = 1; \ + goto eol2d; \ + default: \ + badMain2d: \ + unexpected("MainTable", a0); \ + goto eol2d; \ + badBlack2d: \ + unexpected("BlackTable", a0); \ + goto eol2d; \ + badWhite2d: \ + unexpected("WhiteTable", a0); \ + goto eol2d; \ + eof2d: \ + prematureEOF(a0); \ + CLEANUP_RUNS(); \ + goto eoflab; \ + } \ + } \ + if (RunLength) { \ + if (RunLength + a0 < lastx) { \ + /* expect a final V0 */ \ + NeedBits8(1,eof2d); \ + if (!GetBits(1)) \ + goto badMain2d; \ + ClrBits(1); \ + } \ + SETVAL(0); \ + } \ +eol2d: \ + CLEANUP_RUNS(); \ +} while (0) +#endif /* _FAX3_ */ diff --git a/libtiff/tif_flush.c b/libtiff/tif_flush.c new file mode 100755 index 0000000..821c631 --- /dev/null +++ b/libtiff/tif_flush.c @@ -0,0 +1,60 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_flush.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library. + */ +#include "tiffiop.h" + +int +TIFFFlush(TIFF* tif) +{ + + if (tif->tif_mode != O_RDONLY) { + if (!TIFFFlushData(tif)) + return (0); + if ((tif->tif_flags & TIFF_DIRTYDIRECT) && + !TIFFWriteDirectory(tif)) + return (0); + } + return (1); +} + +/* + * Flush buffered data to the file. + */ +int +TIFFFlushData(TIFF* tif) +{ + if ((tif->tif_flags & TIFF_BEENWRITING) == 0) + return (0); + if (tif->tif_flags & TIFF_POSTENCODE) { + tif->tif_flags &= ~TIFF_POSTENCODE; + if (!(*tif->tif_postencode)(tif)) + return (0); + } + return (TIFFFlushData1(tif)); +} diff --git a/libtiff/tif_getimage.c b/libtiff/tif_getimage.c new file mode 100755 index 0000000..3244365 --- /dev/null +++ b/libtiff/tif_getimage.c @@ -0,0 +1,2046 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_getimage.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1991-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library + * + * Read and return a packed RGBA image. + */ +#include "tiffiop.h" +#include +#include + +static int gtTileContig(TIFFRGBAImage*, uint32*, uint32, uint32); +static int gtTileSeparate(TIFFRGBAImage*, uint32*, uint32, uint32); +static int gtStripContig(TIFFRGBAImage*, uint32*, uint32, uint32); +static int gtStripSeparate(TIFFRGBAImage*, uint32*, uint32, uint32); +static int pickTileContigCase(TIFFRGBAImage*); +static int pickTileSeparateCase(TIFFRGBAImage*); + +static const char photoTag[] = "PhotometricInterpretation"; + +/* + * Check the image to see if TIFFReadRGBAImage can deal with it. + * 1/0 is returned according to whether or not the image can + * be handled. If 0 is returned, emsg contains the reason + * why it is being rejected. + */ +int +TIFFRGBAImageOK(TIFF* tif, char emsg[1024]) +{ + TIFFDirectory* td = &tif->tif_dir; + uint16 photometric; + int colorchannels; + + switch (td->td_bitspersample) { + case 1: case 2: case 4: + case 8: case 16: + break; + default: + sprintf(emsg, "Sorry, can not handle images with %d-bit samples", + td->td_bitspersample); + return (0); + } + colorchannels = td->td_samplesperpixel - td->td_extrasamples; + if (!TIFFGetField(tif, TIFFTAG_PHOTOMETRIC, &photometric)) { + switch (colorchannels) { + case 1: + photometric = PHOTOMETRIC_MINISBLACK; + break; + case 3: + photometric = PHOTOMETRIC_RGB; + break; + default: + sprintf(emsg, "Missing needed %s tag", photoTag); + return (0); + } + } + switch (photometric) { + case PHOTOMETRIC_MINISWHITE: + case PHOTOMETRIC_MINISBLACK: + case PHOTOMETRIC_PALETTE: + if (td->td_planarconfig == PLANARCONFIG_CONTIG && td->td_samplesperpixel != 1) { + sprintf(emsg, + "Sorry, can not handle contiguous data with %s=%d, and %s=%d", + photoTag, photometric, + "Samples/pixel", td->td_samplesperpixel); + return (0); + } + break; + case PHOTOMETRIC_YCBCR: + if (td->td_planarconfig != PLANARCONFIG_CONTIG) { + sprintf(emsg, "Sorry, can not handle YCbCr images with %s=%d", + "Planarconfiguration", td->td_planarconfig); + return (0); + } + break; + case PHOTOMETRIC_RGB: + if (colorchannels < 3) { + sprintf(emsg, "Sorry, can not handle RGB image with %s=%d", + "Color channels", colorchannels); + return (0); + } + break; +#ifdef CMYK_SUPPORT + case PHOTOMETRIC_SEPARATED: + if (td->td_inkset != INKSET_CMYK) { + sprintf(emsg, "Sorry, can not handle separated image with %s=%d", + "InkSet", td->td_inkset); + return (0); + } + if (td->td_samplesperpixel != 4) { + sprintf(emsg, "Sorry, can not handle separated image with %s=%d", + "Samples/pixel", td->td_samplesperpixel); + return (0); + } + break; +#endif + case PHOTOMETRIC_LOGL: + if (td->td_compression != COMPRESSION_SGILOG) { + sprintf(emsg, "Sorry, LogL data must have %s=%d", + "Compression", COMPRESSION_SGILOG); + return (0); + } + break; + case PHOTOMETRIC_LOGLUV: + if (td->td_compression != COMPRESSION_SGILOG && + td->td_compression != COMPRESSION_SGILOG24) { + sprintf(emsg, "Sorry, LogLuv data must have %s=%d or %d", + "Compression", COMPRESSION_SGILOG, COMPRESSION_SGILOG24); + return (0); + } + if (td->td_planarconfig != PLANARCONFIG_CONTIG) { + sprintf(emsg, "Sorry, can not handle LogLuv images with %s=%d", + "Planarconfiguration", td->td_planarconfig); + return (0); + } + break; + default: + sprintf(emsg, "Sorry, can not handle image with %s=%d", + photoTag, photometric); + return (0); + } + return (1); +} + +void +TIFFRGBAImageEnd(TIFFRGBAImage* img) +{ + if (img->Map) + _TIFFfree(img->Map), img->Map = NULL; + if (img->BWmap) + _TIFFfree(img->BWmap), img->BWmap = NULL; + if (img->PALmap) + _TIFFfree(img->PALmap), img->PALmap = NULL; + if (img->ycbcr) + _TIFFfree(img->ycbcr), img->ycbcr = NULL; + + if( img->redcmap ) { + _TIFFfree( img->redcmap ); + _TIFFfree( img->greencmap ); + _TIFFfree( img->bluecmap ); + } +} + +static int +isCCITTCompression(TIFF* tif) +{ + uint16 compress; + TIFFGetField(tif, TIFFTAG_COMPRESSION, &compress); + return (compress == COMPRESSION_CCITTFAX3 || + compress == COMPRESSION_CCITTFAX4 || + compress == COMPRESSION_CCITTRLE || + compress == COMPRESSION_CCITTRLEW); +} + +int +TIFFRGBAImageBegin(TIFFRGBAImage* img, TIFF* tif, int stop, char emsg[1024]) +{ + uint16* sampleinfo; + uint16 extrasamples; + uint16 planarconfig; + uint16 compress; + int colorchannels; + uint16 *red_orig, *green_orig, *blue_orig; + int n_color; + + /* Initialize to normal values */ + img->row_offset = 0; + img->col_offset = 0; + img->redcmap = NULL; + img->greencmap = NULL; + img->bluecmap = NULL; + + img->tif = tif; + img->stoponerr = stop; + TIFFGetFieldDefaulted(tif, TIFFTAG_BITSPERSAMPLE, &img->bitspersample); + switch (img->bitspersample) { + case 1: case 2: case 4: + case 8: case 16: + break; + default: + sprintf(emsg, "Sorry, can not image with %d-bit samples", + img->bitspersample); + return (0); + } + img->alpha = 0; + TIFFGetFieldDefaulted(tif, TIFFTAG_SAMPLESPERPIXEL, &img->samplesperpixel); + TIFFGetFieldDefaulted(tif, TIFFTAG_EXTRASAMPLES, + &extrasamples, &sampleinfo); + if (extrasamples == 1) + switch (sampleinfo[0]) { + case EXTRASAMPLE_ASSOCALPHA: /* data is pre-multiplied */ + case EXTRASAMPLE_UNASSALPHA: /* data is not pre-multiplied */ + img->alpha = sampleinfo[0]; + break; + } + colorchannels = img->samplesperpixel - extrasamples; + TIFFGetFieldDefaulted(tif, TIFFTAG_COMPRESSION, &compress); + TIFFGetFieldDefaulted(tif, TIFFTAG_PLANARCONFIG, &planarconfig); + if (!TIFFGetField(tif, TIFFTAG_PHOTOMETRIC, &img->photometric)) { + switch (colorchannels) { + case 1: + if (isCCITTCompression(tif)) + img->photometric = PHOTOMETRIC_MINISWHITE; + else + img->photometric = PHOTOMETRIC_MINISBLACK; + break; + case 3: + img->photometric = PHOTOMETRIC_RGB; + break; + default: + sprintf(emsg, "Missing needed %s tag", photoTag); + return (0); + } + } + switch (img->photometric) { + case PHOTOMETRIC_PALETTE: + if (!TIFFGetField(tif, TIFFTAG_COLORMAP, + &red_orig, &green_orig, &blue_orig)) { + TIFFError(TIFFFileName(tif), "Missing required \"Colormap\" tag"); + return (0); + } + + /* copy the colormaps so we can modify them */ + n_color = (1L << img->bitspersample); + img->redcmap = (uint16 *) _TIFFmalloc(sizeof(uint16)*n_color); + img->greencmap = (uint16 *) _TIFFmalloc(sizeof(uint16)*n_color); + img->bluecmap = (uint16 *) _TIFFmalloc(sizeof(uint16)*n_color); + if( !img->redcmap || !img->greencmap || !img->bluecmap ) { + TIFFError(TIFFFileName(tif), "Out of memory for colormap copy"); + return (0); + } + + memcpy( img->redcmap, red_orig, n_color * 2 ); + memcpy( img->greencmap, green_orig, n_color * 2 ); + memcpy( img->bluecmap, blue_orig, n_color * 2 ); + + /* fall thru... */ + case PHOTOMETRIC_MINISWHITE: + case PHOTOMETRIC_MINISBLACK: + if (planarconfig == PLANARCONFIG_CONTIG && img->samplesperpixel != 1) { + sprintf(emsg, + "Sorry, can not handle contiguous data with %s=%d, and %s=%d", + photoTag, img->photometric, + "Samples/pixel", img->samplesperpixel); + return (0); + } + break; + case PHOTOMETRIC_YCBCR: + if (planarconfig != PLANARCONFIG_CONTIG) { + sprintf(emsg, "Sorry, can not handle YCbCr images with %s=%d", + "Planarconfiguration", planarconfig); + return (0); + } + /* It would probably be nice to have a reality check here. */ + if (compress == COMPRESSION_JPEG && planarconfig == PLANARCONFIG_CONTIG) { + /* can rely on libjpeg to convert to RGB */ + /* XXX should restore current state on exit */ + TIFFSetField(tif, TIFFTAG_JPEGCOLORMODE, JPEGCOLORMODE_RGB); + img->photometric = PHOTOMETRIC_RGB; + } + break; + case PHOTOMETRIC_RGB: + if (colorchannels < 3) { + sprintf(emsg, "Sorry, can not handle RGB image with %s=%d", + "Color channels", colorchannels); + return (0); + } + break; + case PHOTOMETRIC_SEPARATED: { + uint16 inkset; + TIFFGetFieldDefaulted(tif, TIFFTAG_INKSET, &inkset); + if (inkset != INKSET_CMYK) { + sprintf(emsg, "Sorry, can not handle separated image with %s=%d", + "InkSet", inkset); + return (0); + } + if (img->samplesperpixel != 4) { + sprintf(emsg, "Sorry, can not handle separated image with %s=%d", + "Samples/pixel", img->samplesperpixel); + return (0); + } + break; + } + case PHOTOMETRIC_LOGL: + if (compress != COMPRESSION_SGILOG) { + sprintf(emsg, "Sorry, LogL data must have %s=%d", + "Compression", COMPRESSION_SGILOG); + return (0); + } + TIFFSetField(tif, TIFFTAG_SGILOGDATAFMT, SGILOGDATAFMT_8BIT); + img->photometric = PHOTOMETRIC_MINISBLACK; /* little white lie */ + img->bitspersample = 8; + break; + case PHOTOMETRIC_LOGLUV: + if (compress != COMPRESSION_SGILOG && compress != COMPRESSION_SGILOG24) { + sprintf(emsg, "Sorry, LogLuv data must have %s=%d or %d", + "Compression", COMPRESSION_SGILOG, COMPRESSION_SGILOG24); + return (0); + } + if (planarconfig != PLANARCONFIG_CONTIG) { + sprintf(emsg, "Sorry, can not handle LogLuv images with %s=%d", + "Planarconfiguration", planarconfig); + return (0); + } + TIFFSetField(tif, TIFFTAG_SGILOGDATAFMT, SGILOGDATAFMT_8BIT); + img->photometric = PHOTOMETRIC_RGB; /* little white lie */ + img->bitspersample = 8; + break; + default: + sprintf(emsg, "Sorry, can not handle image with %s=%d", + photoTag, img->photometric); + return (0); + } + img->Map = NULL; + img->BWmap = NULL; + img->PALmap = NULL; + img->ycbcr = NULL; + TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &img->width); + TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &img->height); + TIFFGetFieldDefaulted(tif, TIFFTAG_ORIENTATION, &img->orientation); + img->isContig = + !(planarconfig == PLANARCONFIG_SEPARATE && colorchannels > 1); + if (img->isContig) { + img->get = TIFFIsTiled(tif) ? gtTileContig : gtStripContig; + (void) pickTileContigCase(img); + } else { + img->get = TIFFIsTiled(tif) ? gtTileSeparate : gtStripSeparate; + (void) pickTileSeparateCase(img); + } + return (1); +} + +int +TIFFRGBAImageGet(TIFFRGBAImage* img, uint32* raster, uint32 w, uint32 h) +{ + if (img->get == NULL) { + TIFFError(TIFFFileName(img->tif), "No \"get\" routine setup"); + return (0); + } + if (img->put.any == NULL) { + TIFFError(TIFFFileName(img->tif), + "No \"put\" routine setupl; probably can not handle image format"); + return (0); + } + return (*img->get)(img, raster, w, h); +} + +/* + * Read the specified image into an ABGR-format raster. + */ +int +TIFFReadRGBAImage(TIFF* tif, + uint32 rwidth, uint32 rheight, uint32* raster, int stop) +{ + char emsg[1024]; + TIFFRGBAImage img; + int ok; + + if (TIFFRGBAImageBegin(&img, tif, stop, emsg)) { + /* XXX verify rwidth and rheight against width and height */ + ok = TIFFRGBAImageGet(&img, raster+(rheight-img.height)*rwidth, + rwidth, img.height); + TIFFRGBAImageEnd(&img); + } else { + TIFFError(TIFFFileName(tif), emsg); + ok = 0; + } + return (ok); +} + +static uint32 +setorientation(TIFFRGBAImage* img, uint32 h) +{ + TIFF* tif = img->tif; + uint32 y; + + switch (img->orientation) { + case ORIENTATION_BOTRIGHT: + case ORIENTATION_RIGHTBOT: /* XXX */ + case ORIENTATION_LEFTBOT: /* XXX */ + TIFFWarning(TIFFFileName(tif), "using bottom-left orientation"); + img->orientation = ORIENTATION_BOTLEFT; + /* fall thru... */ + case ORIENTATION_BOTLEFT: + y = 0; + break; + case ORIENTATION_TOPRIGHT: + case ORIENTATION_RIGHTTOP: /* XXX */ + case ORIENTATION_LEFTTOP: /* XXX */ + default: + TIFFWarning(TIFFFileName(tif), "using top-left orientation"); + img->orientation = ORIENTATION_TOPLEFT; + /* fall thru... */ + case ORIENTATION_TOPLEFT: + y = h-1; + break; + } + return (y); +} + +/* + * Get an tile-organized image that has + * PlanarConfiguration contiguous if SamplesPerPixel > 1 + * or + * SamplesPerPixel == 1 + */ +static int +gtTileContig(TIFFRGBAImage* img, uint32* raster, uint32 w, uint32 h) +{ + TIFF* tif = img->tif; + tileContigRoutine put = img->put.contig; + uint16 orientation; + uint32 col, row, y; + uint32 tw, th; + u_char* buf; + int32 fromskew, toskew; + uint32 nrow; + + buf = (u_char*) _TIFFmalloc(TIFFTileSize(tif)); + if (buf == 0) { + TIFFError(TIFFFileName(tif), "No space for tile buffer"); + return (0); + } + TIFFGetField(tif, TIFFTAG_TILEWIDTH, &tw); + TIFFGetField(tif, TIFFTAG_TILELENGTH, &th); + y = setorientation(img, h); + orientation = img->orientation; + toskew = -(int32) (orientation == ORIENTATION_TOPLEFT ? tw+w : tw-w); + for (row = 0; row < h; row += th) { + nrow = (row + th > h ? h - row : th); + for (col = 0; col < w; col += tw) { + if (TIFFReadTile(tif, buf, col+img->col_offset, + row+img->row_offset, 0, 0) < 0 && img->stoponerr) + break; + if (col + tw > w) { + /* + * Tile is clipped horizontally. Calculate + * visible portion and skewing factors. + */ + uint32 npix = w - col; + fromskew = tw - npix; + (*put)(img, raster+y*w+col, col, y, + npix, nrow, fromskew, toskew + fromskew, buf); + } else { + (*put)(img, raster+y*w+col, col, y, tw, nrow, 0, toskew, buf); + } + } + y += (orientation == ORIENTATION_TOPLEFT ? + -(int32) nrow : (int32) nrow); + } + _TIFFfree(buf); + return (1); +} + +/* + * Get an tile-organized image that has + * SamplesPerPixel > 1 + * PlanarConfiguration separated + * We assume that all such images are RGB. + */ +static int +gtTileSeparate(TIFFRGBAImage* img, uint32* raster, uint32 w, uint32 h) +{ + TIFF* tif = img->tif; + tileSeparateRoutine put = img->put.separate; + uint16 orientation; + uint32 col, row, y; + uint32 tw, th; + u_char* buf; + u_char* r; + u_char* g; + u_char* b; + u_char* a; + tsize_t tilesize; + int32 fromskew, toskew; + int alpha = img->alpha; + uint32 nrow; + + tilesize = TIFFTileSize(tif); + buf = (u_char*) _TIFFmalloc(4*tilesize); + if (buf == 0) { + TIFFError(TIFFFileName(tif), "No space for tile buffer"); + return (0); + } + r = buf; + g = r + tilesize; + b = g + tilesize; + a = b + tilesize; + if (!alpha) + memset(a, 0xff, tilesize); + TIFFGetField(tif, TIFFTAG_TILEWIDTH, &tw); + TIFFGetField(tif, TIFFTAG_TILELENGTH, &th); + y = setorientation(img, h); + orientation = img->orientation; + toskew = -(int32) (orientation == ORIENTATION_TOPLEFT ? tw+w : tw-w); + for (row = 0; row < h; row += th) { + nrow = (row + th > h ? h - row : th); + for (col = 0; col < w; col += tw) { + if (TIFFReadTile(tif, r, col+img->col_offset, + row+img->row_offset,0,0) < 0 && img->stoponerr) + break; + if (TIFFReadTile(tif, g, col+img->col_offset, + row+img->row_offset,0,1) < 0 && img->stoponerr) + break; + if (TIFFReadTile(tif, b, col+img->col_offset, + row+img->row_offset,0,2) < 0 && img->stoponerr) + break; + if (alpha && TIFFReadTile(tif,a,col+img->col_offset, + row+img->row_offset,0,3) < 0 && img->stoponerr) + break; + if (col + tw > w) { + /* + * Tile is clipped horizontally. Calculate + * visible portion and skewing factors. + */ + uint32 npix = w - col; + fromskew = tw - npix; + (*put)(img, raster+y*w+col, col, y, + npix, nrow, fromskew, toskew + fromskew, r, g, b, a); + } else { + (*put)(img, raster+y*w+col, col, y, + tw, nrow, 0, toskew, r, g, b, a); + } + } + y += (orientation == ORIENTATION_TOPLEFT ? + -(int32) nrow : (int32) nrow); + } + _TIFFfree(buf); + return (1); +} + +/* + * Get a strip-organized image that has + * PlanarConfiguration contiguous if SamplesPerPixel > 1 + * or + * SamplesPerPixel == 1 + */ +static int +gtStripContig(TIFFRGBAImage* img, uint32* raster, uint32 w, uint32 h) +{ + TIFF* tif = img->tif; + tileContigRoutine put = img->put.contig; + uint16 orientation; + uint32 row, y, nrow; + u_char* buf; + uint32 rowsperstrip; + uint32 imagewidth = img->width; + tsize_t scanline; + int32 fromskew, toskew; + + buf = (u_char*) _TIFFmalloc(TIFFStripSize(tif)); + if (buf == 0) { + TIFFError(TIFFFileName(tif), "No space for strip buffer"); + return (0); + } + y = setorientation(img, h); + orientation = img->orientation; + toskew = -(int32) (orientation == ORIENTATION_TOPLEFT ? w+w : w-w); + TIFFGetFieldDefaulted(tif, TIFFTAG_ROWSPERSTRIP, &rowsperstrip); + scanline = TIFFScanlineSize(tif); + fromskew = (w < imagewidth ? imagewidth - w : 0); + for (row = 0; row < h; row += rowsperstrip) { + nrow = (row + rowsperstrip > h ? h - row : rowsperstrip); + if (TIFFReadEncodedStrip(tif, + TIFFComputeStrip(tif,row+img->row_offset, 0), + buf, nrow*scanline) < 0 + && img->stoponerr) + break; + (*put)(img, raster+y*w, 0, y, w, nrow, fromskew, toskew, buf); + y += (orientation == ORIENTATION_TOPLEFT ? + -(int32) nrow : (int32) nrow); + } + _TIFFfree(buf); + return (1); +} + +/* + * Get a strip-organized image with + * SamplesPerPixel > 1 + * PlanarConfiguration separated + * We assume that all such images are RGB. + */ +static int +gtStripSeparate(TIFFRGBAImage* img, uint32* raster, uint32 w, uint32 h) +{ + TIFF* tif = img->tif; + tileSeparateRoutine put = img->put.separate; + uint16 orientation; + u_char *buf; + u_char *r, *g, *b, *a; + uint32 row, y, nrow; + tsize_t scanline; + uint32 rowsperstrip, offset_row; + uint32 imagewidth = img->width; + tsize_t stripsize; + int32 fromskew, toskew; + int alpha = img->alpha; + + stripsize = TIFFStripSize(tif); + r = buf = (u_char *)_TIFFmalloc(4*stripsize); + if (buf == 0) { + TIFFError(TIFFFileName(tif), "No space for tile buffer"); + return (0); + } + g = r + stripsize; + b = g + stripsize; + a = b + stripsize; + if (!alpha) + memset(a, 0xff, stripsize); + y = setorientation(img, h); + orientation = img->orientation; + toskew = -(int32) (orientation == ORIENTATION_TOPLEFT ? w+w : w-w); + TIFFGetFieldDefaulted(tif, TIFFTAG_ROWSPERSTRIP, &rowsperstrip); + scanline = TIFFScanlineSize(tif); + fromskew = (w < imagewidth ? imagewidth - w : 0); + for (row = 0; row < h; row += rowsperstrip) { + nrow = (row + rowsperstrip > h ? h - row : rowsperstrip); + offset_row = row + img->row_offset; + if (TIFFReadEncodedStrip(tif, TIFFComputeStrip(tif, offset_row, 0), + r, nrow*scanline) < 0 && img->stoponerr) + break; + if (TIFFReadEncodedStrip(tif, TIFFComputeStrip(tif, offset_row, 1), + g, nrow*scanline) < 0 && img->stoponerr) + break; + if (TIFFReadEncodedStrip(tif, TIFFComputeStrip(tif, offset_row, 2), + b, nrow*scanline) < 0 && img->stoponerr) + break; + if (alpha && + (TIFFReadEncodedStrip(tif, TIFFComputeStrip(tif, offset_row, 3), + a, nrow*scanline) < 0 && img->stoponerr)) + break; + (*put)(img, raster+y*w, 0, y, w, nrow, fromskew, toskew, r, g, b, a); + y += (orientation == ORIENTATION_TOPLEFT ? + -(int32) nrow : (int32) nrow); + } + _TIFFfree(buf); + return (1); +} + +/* + * The following routines move decoded data returned + * from the TIFF library into rasters filled with packed + * ABGR pixels (i.e. suitable for passing to lrecwrite.) + * + * The routines have been created according to the most + * important cases and optimized. pickTileContigCase and + * pickTileSeparateCase analyze the parameters and select + * the appropriate "put" routine to use. + */ +#define REPEAT8(op) REPEAT4(op); REPEAT4(op) +#define REPEAT4(op) REPEAT2(op); REPEAT2(op) +#define REPEAT2(op) op; op +#define CASE8(x,op) \ + switch (x) { \ + case 7: op; case 6: op; case 5: op; \ + case 4: op; case 3: op; case 2: op; \ + case 1: op; \ + } +#define CASE4(x,op) switch (x) { case 3: op; case 2: op; case 1: op; } +#define NOP + +#define UNROLL8(w, op1, op2) { \ + uint32 _x; \ + for (_x = w; _x >= 8; _x -= 8) { \ + op1; \ + REPEAT8(op2); \ + } \ + if (_x > 0) { \ + op1; \ + CASE8(_x,op2); \ + } \ +} +#define UNROLL4(w, op1, op2) { \ + uint32 _x; \ + for (_x = w; _x >= 4; _x -= 4) { \ + op1; \ + REPEAT4(op2); \ + } \ + if (_x > 0) { \ + op1; \ + CASE4(_x,op2); \ + } \ +} +#define UNROLL2(w, op1, op2) { \ + uint32 _x; \ + for (_x = w; _x >= 2; _x -= 2) { \ + op1; \ + REPEAT2(op2); \ + } \ + if (_x) { \ + op1; \ + op2; \ + } \ +} + +#define SKEW(r,g,b,skew) { r += skew; g += skew; b += skew; } +#define SKEW4(r,g,b,a,skew) { r += skew; g += skew; b += skew; a+= skew; } + +#define A1 ((uint32)(0xffL<<24)) +#define PACK(r,g,b) \ + ((uint32)(r)|((uint32)(g)<<8)|((uint32)(b)<<16)|A1) +#define PACK4(r,g,b,a) \ + ((uint32)(r)|((uint32)(g)<<8)|((uint32)(b)<<16)|((uint32)(a)<<24)) +#define W2B(v) (((v)>>8)&0xff) +#define PACKW(r,g,b) \ + ((uint32)W2B(r)|((uint32)W2B(g)<<8)|((uint32)W2B(b)<<16)|A1) +#define PACKW4(r,g,b,a) \ + ((uint32)W2B(r)|((uint32)W2B(g)<<8)|((uint32)W2B(b)<<16)|((uint32)W2B(a)<<24)) + +#define DECLAREContigPutFunc(name) \ +static void name(\ + TIFFRGBAImage* img, \ + uint32* cp, \ + uint32 x, uint32 y, \ + uint32 w, uint32 h, \ + int32 fromskew, int32 toskew, \ + u_char* pp \ +) + +/* + * 8-bit palette => colormap/RGB + */ +DECLAREContigPutFunc(put8bitcmaptile) +{ + uint32** PALmap = img->PALmap; + + (void) x; (void) y; + while (h-- > 0) { + UNROLL8(w, NOP, *cp++ = PALmap[*pp++][0]); + cp += toskew; + pp += fromskew; + } +} + +/* + * 4-bit palette => colormap/RGB + */ +DECLAREContigPutFunc(put4bitcmaptile) +{ + uint32** PALmap = img->PALmap; + + (void) x; (void) y; + fromskew /= 2; + while (h-- > 0) { + uint32* bw; + UNROLL2(w, bw = PALmap[*pp++], *cp++ = *bw++); + cp += toskew; + pp += fromskew; + } +} + +/* + * 2-bit palette => colormap/RGB + */ +DECLAREContigPutFunc(put2bitcmaptile) +{ + uint32** PALmap = img->PALmap; + + (void) x; (void) y; + fromskew /= 4; + while (h-- > 0) { + uint32* bw; + UNROLL4(w, bw = PALmap[*pp++], *cp++ = *bw++); + cp += toskew; + pp += fromskew; + } +} + +/* + * 1-bit palette => colormap/RGB + */ +DECLAREContigPutFunc(put1bitcmaptile) +{ + uint32** PALmap = img->PALmap; + + (void) x; (void) y; + fromskew /= 8; + while (h-- > 0) { + uint32* bw; + UNROLL8(w, bw = PALmap[*pp++], *cp++ = *bw++); + cp += toskew; + pp += fromskew; + } +} + +/* + * 8-bit greyscale => colormap/RGB + */ +DECLAREContigPutFunc(putgreytile) +{ + uint32** BWmap = img->BWmap; + + (void) y; + while (h-- > 0) { + for (x = w; x-- > 0;) + *cp++ = BWmap[*pp++][0]; + cp += toskew; + pp += fromskew; + } +} + +/* + * 1-bit bilevel => colormap/RGB + */ +DECLAREContigPutFunc(put1bitbwtile) +{ + uint32** BWmap = img->BWmap; + + (void) x; (void) y; + fromskew /= 8; + while (h-- > 0) { + uint32* bw; + UNROLL8(w, bw = BWmap[*pp++], *cp++ = *bw++); + cp += toskew; + pp += fromskew; + } +} + +/* + * 2-bit greyscale => colormap/RGB + */ +DECLAREContigPutFunc(put2bitbwtile) +{ + uint32** BWmap = img->BWmap; + + (void) x; (void) y; + fromskew /= 4; + while (h-- > 0) { + uint32* bw; + UNROLL4(w, bw = BWmap[*pp++], *cp++ = *bw++); + cp += toskew; + pp += fromskew; + } +} + +/* + * 4-bit greyscale => colormap/RGB + */ +DECLAREContigPutFunc(put4bitbwtile) +{ + uint32** BWmap = img->BWmap; + + (void) x; (void) y; + fromskew /= 2; + while (h-- > 0) { + uint32* bw; + UNROLL2(w, bw = BWmap[*pp++], *cp++ = *bw++); + cp += toskew; + pp += fromskew; + } +} + +/* + * 8-bit packed samples, no Map => RGB + */ +DECLAREContigPutFunc(putRGBcontig8bittile) +{ + int samplesperpixel = img->samplesperpixel; + + (void) x; (void) y; + fromskew *= samplesperpixel; + while (h-- > 0) { + UNROLL8(w, NOP, + *cp++ = PACK(pp[0], pp[1], pp[2]); + pp += samplesperpixel); + cp += toskew; + pp += fromskew; + } +} + +/* + * 8-bit packed samples, w/ Map => RGB + */ +DECLAREContigPutFunc(putRGBcontig8bitMaptile) +{ + TIFFRGBValue* Map = img->Map; + int samplesperpixel = img->samplesperpixel; + + (void) y; + fromskew *= samplesperpixel; + while (h-- > 0) { + for (x = w; x-- > 0;) { + *cp++ = PACK(Map[pp[0]], Map[pp[1]], Map[pp[2]]); + pp += samplesperpixel; + } + pp += fromskew; + cp += toskew; + } +} + +/* + * 8-bit packed samples => RGBA w/ associated alpha + * (known to have Map == NULL) + */ +DECLAREContigPutFunc(putRGBAAcontig8bittile) +{ + int samplesperpixel = img->samplesperpixel; + + (void) x; (void) y; + fromskew *= samplesperpixel; + while (h-- > 0) { + UNROLL8(w, NOP, + *cp++ = PACK4(pp[0], pp[1], pp[2], pp[3]); + pp += samplesperpixel); + cp += toskew; + pp += fromskew; + } +} + +/* + * 8-bit packed samples => RGBA w/ unassociated alpha + * (known to have Map == NULL) + */ +DECLAREContigPutFunc(putRGBUAcontig8bittile) +{ + int samplesperpixel = img->samplesperpixel; + + (void) y; + fromskew *= samplesperpixel; + while (h-- > 0) { + uint32 r, g, b, a; + for (x = w; x-- > 0;) { + a = pp[3]; + r = (pp[0] * a) / 255; + g = (pp[1] * a) / 255; + b = (pp[2] * a) / 255; + *cp++ = PACK4(r,g,b,a); + pp += samplesperpixel; + } + cp += toskew; + pp += fromskew; + } +} + +/* + * 16-bit packed samples => RGB + */ +DECLAREContigPutFunc(putRGBcontig16bittile) +{ + int samplesperpixel = img->samplesperpixel; + uint16 *wp = (uint16 *)pp; + + (void) y; + fromskew *= samplesperpixel; + while (h-- > 0) { + for (x = w; x-- > 0;) { + *cp++ = PACKW(wp[0], wp[1], wp[2]); + wp += samplesperpixel; + } + cp += toskew; + wp += fromskew; + } +} + +/* + * 16-bit packed samples => RGBA w/ associated alpha + * (known to have Map == NULL) + */ +DECLAREContigPutFunc(putRGBAAcontig16bittile) +{ + int samplesperpixel = img->samplesperpixel; + uint16 *wp = (uint16 *)pp; + + (void) y; + fromskew *= samplesperpixel; + while (h-- > 0) { + for (x = w; x-- > 0;) { + *cp++ = PACKW4(wp[0], wp[1], wp[2], wp[3]); + wp += samplesperpixel; + } + cp += toskew; + wp += fromskew; + } +} + +/* + * 16-bit packed samples => RGBA w/ unassociated alpha + * (known to have Map == NULL) + */ +DECLAREContigPutFunc(putRGBUAcontig16bittile) +{ + int samplesperpixel = img->samplesperpixel; + uint16 *wp = (uint16 *)pp; + + (void) y; + fromskew *= samplesperpixel; + while (h-- > 0) { + uint32 r,g,b,a; + /* + * We shift alpha down four bits just in case unsigned + * arithmetic doesn't handle the full range. + * We still have plenty of accuracy, since the output is 8 bits. + * So we have (r * 0xffff) * (a * 0xfff)) = r*a * (0xffff*0xfff) + * Since we want r*a * 0xff for eight bit output, + * we divide by (0xffff * 0xfff) / 0xff == 0x10eff. + */ + for (x = w; x-- > 0;) { + a = wp[3] >> 4; + r = (wp[0] * a) / 0x10eff; + g = (wp[1] * a) / 0x10eff; + b = (wp[2] * a) / 0x10eff; + *cp++ = PACK4(r,g,b,a); + wp += samplesperpixel; + } + cp += toskew; + wp += fromskew; + } +} + +/* + * 8-bit packed CMYK samples w/o Map => RGB + * + * NB: The conversion of CMYK->RGB is *very* crude. + */ +DECLAREContigPutFunc(putRGBcontig8bitCMYKtile) +{ + int samplesperpixel = img->samplesperpixel; + uint16 r, g, b, k; + + (void) x; (void) y; + fromskew *= samplesperpixel; + while (h-- > 0) { + UNROLL8(w, NOP, + k = 255 - pp[3]; + r = (k*(255-pp[0]))/255; + g = (k*(255-pp[1]))/255; + b = (k*(255-pp[2]))/255; + *cp++ = PACK(r, g, b); + pp += samplesperpixel); + cp += toskew; + pp += fromskew; + } +} + +/* + * 8-bit packed CMYK samples w/Map => RGB + * + * NB: The conversion of CMYK->RGB is *very* crude. + */ +DECLAREContigPutFunc(putRGBcontig8bitCMYKMaptile) +{ + int samplesperpixel = img->samplesperpixel; + TIFFRGBValue* Map = img->Map; + uint16 r, g, b, k; + + (void) y; + fromskew *= samplesperpixel; + while (h-- > 0) { + for (x = w; x-- > 0;) { + k = 255 - pp[3]; + r = (k*(255-pp[0]))/255; + g = (k*(255-pp[1]))/255; + b = (k*(255-pp[2]))/255; + *cp++ = PACK(Map[r], Map[g], Map[b]); + pp += samplesperpixel; + } + pp += fromskew; + cp += toskew; + } +} + +#define DECLARESepPutFunc(name) \ +static void name(\ + TIFFRGBAImage* img,\ + uint32* cp,\ + uint32 x, uint32 y, \ + uint32 w, uint32 h,\ + int32 fromskew, int32 toskew,\ + u_char* r, u_char* g, u_char* b, u_char* a\ +) + +/* + * 8-bit unpacked samples => RGB + */ +DECLARESepPutFunc(putRGBseparate8bittile) +{ + (void) img; (void) x; (void) y; (void) a; + while (h-- > 0) { + UNROLL8(w, NOP, *cp++ = PACK(*r++, *g++, *b++)); + SKEW(r, g, b, fromskew); + cp += toskew; + } +} + +/* + * 8-bit unpacked samples => RGB + */ +DECLARESepPutFunc(putRGBseparate8bitMaptile) +{ + TIFFRGBValue* Map = img->Map; + + (void) y; (void) a; + while (h-- > 0) { + for (x = w; x > 0; x--) + *cp++ = PACK(Map[*r++], Map[*g++], Map[*b++]); + SKEW(r, g, b, fromskew); + cp += toskew; + } +} + +/* + * 8-bit unpacked samples => RGBA w/ associated alpha + */ +DECLARESepPutFunc(putRGBAAseparate8bittile) +{ + (void) img; (void) x; (void) y; + while (h-- > 0) { + UNROLL8(w, NOP, *cp++ = PACK4(*r++, *g++, *b++, *a++)); + SKEW4(r, g, b, a, fromskew); + cp += toskew; + } +} + +/* + * 8-bit unpacked samples => RGBA w/ unassociated alpha + */ +DECLARESepPutFunc(putRGBUAseparate8bittile) +{ + (void) img; (void) y; + while (h-- > 0) { + uint32 rv, gv, bv, av; + for (x = w; x-- > 0;) { + av = *a++; + rv = (*r++ * av) / 255; + gv = (*g++ * av) / 255; + bv = (*b++ * av) / 255; + *cp++ = PACK4(rv,gv,bv,av); + } + SKEW4(r, g, b, a, fromskew); + cp += toskew; + } +} + +/* + * 16-bit unpacked samples => RGB + */ +DECLARESepPutFunc(putRGBseparate16bittile) +{ + uint16 *wr = (uint16*) r; + uint16 *wg = (uint16*) g; + uint16 *wb = (uint16*) b; + + (void) img; (void) y; (void) a; + while (h-- > 0) { + for (x = 0; x < w; x++) + *cp++ = PACKW(*wr++, *wg++, *wb++); + SKEW(wr, wg, wb, fromskew); + cp += toskew; + } +} + +/* + * 16-bit unpacked samples => RGBA w/ associated alpha + */ +DECLARESepPutFunc(putRGBAAseparate16bittile) +{ + uint16 *wr = (uint16*) r; + uint16 *wg = (uint16*) g; + uint16 *wb = (uint16*) b; + uint16 *wa = (uint16*) a; + + (void) img; (void) y; + while (h-- > 0) { + for (x = 0; x < w; x++) + *cp++ = PACKW4(*wr++, *wg++, *wb++, *wa++); + SKEW4(wr, wg, wb, wa, fromskew); + cp += toskew; + } +} + +/* + * 16-bit unpacked samples => RGBA w/ unassociated alpha + */ +DECLARESepPutFunc(putRGBUAseparate16bittile) +{ + uint16 *wr = (uint16*) r; + uint16 *wg = (uint16*) g; + uint16 *wb = (uint16*) b; + uint16 *wa = (uint16*) a; + + (void) img; (void) y; + while (h-- > 0) { + uint32 r,g,b,a; + /* + * We shift alpha down four bits just in case unsigned + * arithmetic doesn't handle the full range. + * We still have plenty of accuracy, since the output is 8 bits. + * So we have (r * 0xffff) * (a * 0xfff)) = r*a * (0xffff*0xfff) + * Since we want r*a * 0xff for eight bit output, + * we divide by (0xffff * 0xfff) / 0xff == 0x10eff. + */ + for (x = w; x-- > 0;) { + a = *wa++ >> 4; + r = (*wr++ * a) / 0x10eff; + g = (*wg++ * a) / 0x10eff; + b = (*wb++ * a) / 0x10eff; + *cp++ = PACK4(r,g,b,a); + } + SKEW4(wr, wg, wb, wa, fromskew); + cp += toskew; + } +} + +/* + * YCbCr -> RGB conversion and packing routines. The colorspace + * conversion algorithm comes from the IJG v5a code; see below + * for more information on how it works. + */ + +#define YCbCrtoRGB(dst, yc) { \ + int Y = (yc); \ + dst = PACK( \ + clamptab[Y+Crrtab[Cr]], \ + clamptab[Y + (int)((Cbgtab[Cb]+Crgtab[Cr])>>16)], \ + clamptab[Y+Cbbtab[Cb]]); \ +} +#define YCbCrSetup \ + TIFFYCbCrToRGB* ycbcr = img->ycbcr; \ + int* Crrtab = ycbcr->Cr_r_tab; \ + int* Cbbtab = ycbcr->Cb_b_tab; \ + int32* Crgtab = ycbcr->Cr_g_tab; \ + int32* Cbgtab = ycbcr->Cb_g_tab; \ + TIFFRGBValue* clamptab = ycbcr->clamptab + +/* + * 8-bit packed YCbCr samples w/ 4,4 subsampling => RGB + */ +DECLAREContigPutFunc(putcontig8bitYCbCr44tile) +{ + YCbCrSetup; + uint32* cp1 = cp+w+toskew; + uint32* cp2 = cp1+w+toskew; + uint32* cp3 = cp2+w+toskew; + int32 incr = 3*w+4*toskew; + + (void) y; + /* XXX adjust fromskew */ + for (; h >= 4; h -= 4) { + x = w>>2; + do { + int Cb = pp[16]; + int Cr = pp[17]; + + YCbCrtoRGB(cp [0], pp[ 0]); + YCbCrtoRGB(cp [1], pp[ 1]); + YCbCrtoRGB(cp [2], pp[ 2]); + YCbCrtoRGB(cp [3], pp[ 3]); + YCbCrtoRGB(cp1[0], pp[ 4]); + YCbCrtoRGB(cp1[1], pp[ 5]); + YCbCrtoRGB(cp1[2], pp[ 6]); + YCbCrtoRGB(cp1[3], pp[ 7]); + YCbCrtoRGB(cp2[0], pp[ 8]); + YCbCrtoRGB(cp2[1], pp[ 9]); + YCbCrtoRGB(cp2[2], pp[10]); + YCbCrtoRGB(cp2[3], pp[11]); + YCbCrtoRGB(cp3[0], pp[12]); + YCbCrtoRGB(cp3[1], pp[13]); + YCbCrtoRGB(cp3[2], pp[14]); + YCbCrtoRGB(cp3[3], pp[15]); + + cp += 4, cp1 += 4, cp2 += 4, cp3 += 4; + pp += 18; + } while (--x); + cp += incr, cp1 += incr, cp2 += incr, cp3 += incr; + pp += fromskew; + } +} + +/* + * 8-bit packed YCbCr samples w/ 4,2 subsampling => RGB + */ +DECLAREContigPutFunc(putcontig8bitYCbCr42tile) +{ + YCbCrSetup; + uint32* cp1 = cp+w+toskew; + int32 incr = 2*toskew+w; + + (void) y; + /* XXX adjust fromskew */ + for (; h >= 2; h -= 2) { + x = w>>2; + do { + int Cb = pp[8]; + int Cr = pp[9]; + + YCbCrtoRGB(cp [0], pp[0]); + YCbCrtoRGB(cp [1], pp[1]); + YCbCrtoRGB(cp [2], pp[2]); + YCbCrtoRGB(cp [3], pp[3]); + YCbCrtoRGB(cp1[0], pp[4]); + YCbCrtoRGB(cp1[1], pp[5]); + YCbCrtoRGB(cp1[2], pp[6]); + YCbCrtoRGB(cp1[3], pp[7]); + + cp += 4, cp1 += 4; + pp += 10; + } while (--x); + cp += incr, cp1 += incr; + pp += fromskew; + } +} + +/* + * 8-bit packed YCbCr samples w/ 4,1 subsampling => RGB + */ +DECLAREContigPutFunc(putcontig8bitYCbCr41tile) +{ + YCbCrSetup; + + (void) y; + /* XXX adjust fromskew */ + do { + x = w>>2; + do { + int Cb = pp[4]; + int Cr = pp[5]; + + YCbCrtoRGB(cp [0], pp[0]); + YCbCrtoRGB(cp [1], pp[1]); + YCbCrtoRGB(cp [2], pp[2]); + YCbCrtoRGB(cp [3], pp[3]); + + cp += 4; + pp += 6; + } while (--x); + cp += toskew; + pp += fromskew; + } while (--h); +} + +/* + * 8-bit packed YCbCr samples w/ 2,2 subsampling => RGB + */ +DECLAREContigPutFunc(putcontig8bitYCbCr22tile) +{ + YCbCrSetup; + uint32* cp1 = cp+w+toskew; + int32 incr = 2*toskew+w; + + (void) y; + /* XXX adjust fromskew */ + for (; h >= 2; h -= 2) { + x = w>>1; + do { + int Cb = pp[4]; + int Cr = pp[5]; + + YCbCrtoRGB(cp [0], pp[0]); + YCbCrtoRGB(cp [1], pp[1]); + YCbCrtoRGB(cp1[0], pp[2]); + YCbCrtoRGB(cp1[1], pp[3]); + + cp += 2, cp1 += 2; + pp += 6; + } while (--x); + cp += incr, cp1 += incr; + pp += fromskew; + } +} + +/* + * 8-bit packed YCbCr samples w/ 2,1 subsampling => RGB + */ +DECLAREContigPutFunc(putcontig8bitYCbCr21tile) +{ + YCbCrSetup; + + (void) y; + /* XXX adjust fromskew */ + do { + x = w>>1; + do { + int Cb = pp[2]; + int Cr = pp[3]; + + YCbCrtoRGB(cp[0], pp[0]); + YCbCrtoRGB(cp[1], pp[1]); + + cp += 2; + pp += 4; + } while (--x); + cp += toskew; + pp += fromskew; + } while (--h); +} + +/* + * 8-bit packed YCbCr samples w/ no subsampling => RGB + */ +DECLAREContigPutFunc(putcontig8bitYCbCr11tile) +{ + YCbCrSetup; + + (void) y; + /* XXX adjust fromskew */ + do { + x = w>>1; + do { + int Cb = pp[1]; + int Cr = pp[2]; + + YCbCrtoRGB(*cp++, pp[0]); + + pp += 3; + } while (--x); + cp += toskew; + pp += fromskew; + } while (--h); +} +#undef YCbCrSetup +#undef YCbCrtoRGB + +#define LumaRed coeffs[0] +#define LumaGreen coeffs[1] +#define LumaBlue coeffs[2] +#define SHIFT 16 +#define FIX(x) ((int32)((x) * (1L<RGB conversion tables. The conversion + * is done according to the 6.0 spec: + * + * R = Y + Cr*(2 - 2*LumaRed) + * B = Y + Cb*(2 - 2*LumaBlue) + * G = Y + * - LumaBlue*Cb*(2-2*LumaBlue)/LumaGreen + * - LumaRed*Cr*(2-2*LumaRed)/LumaGreen + * + * To avoid floating point arithmetic the fractional constants that + * come out of the equations are represented as fixed point values + * in the range 0...2^16. We also eliminate multiplications by + * pre-calculating possible values indexed by Cb and Cr (this code + * assumes conversion is being done for 8-bit samples). + */ +static void +TIFFYCbCrToRGBInit(TIFFYCbCrToRGB* ycbcr, TIFF* tif) +{ + TIFFRGBValue* clamptab; + float* coeffs; + int i; + + clamptab = (TIFFRGBValue*)( + (tidata_t) ycbcr+TIFFroundup(sizeof (TIFFYCbCrToRGB), sizeof (long))); + _TIFFmemset(clamptab, 0, 256); /* v < 0 => 0 */ + ycbcr->clamptab = (clamptab += 256); + for (i = 0; i < 256; i++) + clamptab[i] = i; + _TIFFmemset(clamptab+256, 255, 2*256); /* v > 255 => 255 */ + TIFFGetFieldDefaulted(tif, TIFFTAG_YCBCRCOEFFICIENTS, &coeffs); + _TIFFmemcpy(ycbcr->coeffs, coeffs, 3*sizeof (float)); + { float f1 = 2-2*LumaRed; int32 D1 = FIX(f1); + float f2 = LumaRed*f1/LumaGreen; int32 D2 = -FIX(f2); + float f3 = 2-2*LumaBlue; int32 D3 = FIX(f3); + float f4 = LumaBlue*f3/LumaGreen; int32 D4 = -FIX(f4); + int x; + + ycbcr->Cr_r_tab = (int*) (clamptab + 3*256); + ycbcr->Cb_b_tab = ycbcr->Cr_r_tab + 256; + ycbcr->Cr_g_tab = (int32*) (ycbcr->Cb_b_tab + 256); + ycbcr->Cb_g_tab = ycbcr->Cr_g_tab + 256; + /* + * i is the actual input pixel value in the range 0..255 + * Cb and Cr values are in the range -128..127 (actually + * they are in a range defined by the ReferenceBlackWhite + * tag) so there is some range shifting to do here when + * constructing tables indexed by the raw pixel data. + * + * XXX handle ReferenceBlackWhite correctly to calculate + * Cb/Cr values to use in constructing the tables. + */ + for (i = 0, x = -128; i < 256; i++, x++) { + ycbcr->Cr_r_tab[i] = (int)((D1*x + ONE_HALF)>>SHIFT); + ycbcr->Cb_b_tab[i] = (int)((D3*x + ONE_HALF)>>SHIFT); + ycbcr->Cr_g_tab[i] = D2*x; + ycbcr->Cb_g_tab[i] = D4*x + ONE_HALF; + } + } +} +#undef SHIFT +#undef ONE_HALF +#undef FIX +#undef LumaBlue +#undef LumaGreen +#undef LumaRed + +static tileContigRoutine +initYCbCrConversion(TIFFRGBAImage* img) +{ + uint16 hs, vs; + + if (img->ycbcr == NULL) { + img->ycbcr = (TIFFYCbCrToRGB*) _TIFFmalloc( + TIFFroundup(sizeof (TIFFYCbCrToRGB), sizeof (long)) + + 4*256*sizeof (TIFFRGBValue) + + 2*256*sizeof (int) + + 2*256*sizeof (int32) + ); + if (img->ycbcr == NULL) { + TIFFError(TIFFFileName(img->tif), + "No space for YCbCr->RGB conversion state"); + return (NULL); + } + TIFFYCbCrToRGBInit(img->ycbcr, img->tif); + } else { + float* coeffs; + + TIFFGetFieldDefaulted(img->tif, TIFFTAG_YCBCRCOEFFICIENTS, &coeffs); + if (_TIFFmemcmp(coeffs, img->ycbcr->coeffs, 3*sizeof (float)) != 0) + TIFFYCbCrToRGBInit(img->ycbcr, img->tif); + } + /* + * The 6.0 spec says that subsampling must be + * one of 1, 2, or 4, and that vertical subsampling + * must always be <= horizontal subsampling; so + * there are only a few possibilities and we just + * enumerate the cases. + */ + TIFFGetFieldDefaulted(img->tif, TIFFTAG_YCBCRSUBSAMPLING, &hs, &vs); + switch ((hs<<4)|vs) { + case 0x44: return (putcontig8bitYCbCr44tile); + case 0x42: return (putcontig8bitYCbCr42tile); + case 0x41: return (putcontig8bitYCbCr41tile); + case 0x22: return (putcontig8bitYCbCr22tile); + case 0x21: return (putcontig8bitYCbCr21tile); + case 0x11: return (putcontig8bitYCbCr11tile); + } + return (NULL); +} + +/* + * Greyscale images with less than 8 bits/sample are handled + * with a table to avoid lots of shifts and masks. The table + * is setup so that put*bwtile (below) can retrieve 8/bitspersample + * pixel values simply by indexing into the table with one + * number. + */ +static int +makebwmap(TIFFRGBAImage* img) +{ + TIFFRGBValue* Map = img->Map; + int bitspersample = img->bitspersample; + int nsamples = 8 / bitspersample; + int i; + uint32* p; + + img->BWmap = (uint32**) _TIFFmalloc( + 256*sizeof (uint32 *)+(256*nsamples*sizeof(uint32))); + if (img->BWmap == NULL) { + TIFFError(TIFFFileName(img->tif), "No space for B&W mapping table"); + return (0); + } + p = (uint32*)(img->BWmap + 256); + for (i = 0; i < 256; i++) { + TIFFRGBValue c; + img->BWmap[i] = p; + switch (bitspersample) { +#define GREY(x) c = Map[x]; *p++ = PACK(c,c,c); + case 1: + GREY(i>>7); + GREY((i>>6)&1); + GREY((i>>5)&1); + GREY((i>>4)&1); + GREY((i>>3)&1); + GREY((i>>2)&1); + GREY((i>>1)&1); + GREY(i&1); + break; + case 2: + GREY(i>>6); + GREY((i>>4)&3); + GREY((i>>2)&3); + GREY(i&3); + break; + case 4: + GREY(i>>4); + GREY(i&0xf); + break; + case 8: + GREY(i); + break; + } +#undef GREY + } + return (1); +} + +/* + * Construct a mapping table to convert from the range + * of the data samples to [0,255] --for display. This + * process also handles inverting B&W images when needed. + */ +static int +setupMap(TIFFRGBAImage* img) +{ + int32 x, range; + + range = (int32)((1L<bitspersample)-1); + img->Map = (TIFFRGBValue*) _TIFFmalloc((range+1) * sizeof (TIFFRGBValue)); + if (img->Map == NULL) { + TIFFError(TIFFFileName(img->tif), + "No space for photometric conversion table"); + return (0); + } + if (img->photometric == PHOTOMETRIC_MINISWHITE) { + for (x = 0; x <= range; x++) + img->Map[x] = (TIFFRGBValue) (((range - x) * 255) / range); + } else { + for (x = 0; x <= range; x++) + img->Map[x] = (TIFFRGBValue) ((x * 255) / range); + } + if (img->bitspersample <= 8 && + (img->photometric == PHOTOMETRIC_MINISBLACK || + img->photometric == PHOTOMETRIC_MINISWHITE)) { + /* + * Use photometric mapping table to construct + * unpacking tables for samples <= 8 bits. + */ + if (!makebwmap(img)) + return (0); + /* no longer need Map, free it */ + _TIFFfree(img->Map), img->Map = NULL; + } + return (1); +} + +static int +checkcmap(TIFFRGBAImage* img) +{ + uint16* r = img->redcmap; + uint16* g = img->greencmap; + uint16* b = img->bluecmap; + long n = 1L<bitspersample; + + while (n-- > 0) + if (*r++ >= 256 || *g++ >= 256 || *b++ >= 256) + return (16); + return (8); +} + +static void +cvtcmap(TIFFRGBAImage* img) +{ + uint16* r = img->redcmap; + uint16* g = img->greencmap; + uint16* b = img->bluecmap; + long i; + + for (i = (1L<bitspersample)-1; i >= 0; i--) { +#define CVT(x) ((uint16)((x)>>8)) + r[i] = CVT(r[i]); + g[i] = CVT(g[i]); + b[i] = CVT(b[i]); +#undef CVT + } +} + +/* + * Palette images with <= 8 bits/sample are handled + * with a table to avoid lots of shifts and masks. The table + * is setup so that put*cmaptile (below) can retrieve 8/bitspersample + * pixel values simply by indexing into the table with one + * number. + */ +static int +makecmap(TIFFRGBAImage* img) +{ + int bitspersample = img->bitspersample; + int nsamples = 8 / bitspersample; + uint16* r = img->redcmap; + uint16* g = img->greencmap; + uint16* b = img->bluecmap; + uint32 *p; + int i; + + img->PALmap = (uint32**) _TIFFmalloc( + 256*sizeof (uint32 *)+(256*nsamples*sizeof(uint32))); + if (img->PALmap == NULL) { + TIFFError(TIFFFileName(img->tif), "No space for Palette mapping table"); + return (0); + } + p = (uint32*)(img->PALmap + 256); + for (i = 0; i < 256; i++) { + TIFFRGBValue c; + img->PALmap[i] = p; +#define CMAP(x) c = x; *p++ = PACK(r[c]&0xff, g[c]&0xff, b[c]&0xff); + switch (bitspersample) { + case 1: + CMAP(i>>7); + CMAP((i>>6)&1); + CMAP((i>>5)&1); + CMAP((i>>4)&1); + CMAP((i>>3)&1); + CMAP((i>>2)&1); + CMAP((i>>1)&1); + CMAP(i&1); + break; + case 2: + CMAP(i>>6); + CMAP((i>>4)&3); + CMAP((i>>2)&3); + CMAP(i&3); + break; + case 4: + CMAP(i>>4); + CMAP(i&0xf); + break; + case 8: + CMAP(i); + break; + } +#undef CMAP + } + return (1); +} + +/* + * Construct any mapping table used + * by the associated put routine. + */ +static int +buildMap(TIFFRGBAImage* img) +{ + switch (img->photometric) { + case PHOTOMETRIC_RGB: + case PHOTOMETRIC_YCBCR: + case PHOTOMETRIC_SEPARATED: + if (img->bitspersample == 8) + break; + /* fall thru... */ + case PHOTOMETRIC_MINISBLACK: + case PHOTOMETRIC_MINISWHITE: + if (!setupMap(img)) + return (0); + break; + case PHOTOMETRIC_PALETTE: + /* + * Convert 16-bit colormap to 8-bit (unless it looks + * like an old-style 8-bit colormap). + */ + if (checkcmap(img) == 16) + cvtcmap(img); + else + TIFFWarning(TIFFFileName(img->tif), "Assuming 8-bit colormap"); + /* + * Use mapping table and colormap to construct + * unpacking tables for samples < 8 bits. + */ + if (img->bitspersample <= 8 && !makecmap(img)) + return (0); + break; + } + return (1); +} + +/* + * Select the appropriate conversion routine for packed data. + */ +static int +pickTileContigCase(TIFFRGBAImage* img) +{ + tileContigRoutine put = 0; + + if (buildMap(img)) { + switch (img->photometric) { + case PHOTOMETRIC_RGB: + switch (img->bitspersample) { + case 8: + if (!img->Map) { + if (img->alpha == EXTRASAMPLE_ASSOCALPHA) + put = putRGBAAcontig8bittile; + else if (img->alpha == EXTRASAMPLE_UNASSALPHA) + put = putRGBUAcontig8bittile; + else + put = putRGBcontig8bittile; + } else + put = putRGBcontig8bitMaptile; + break; + case 16: + put = putRGBcontig16bittile; + if (!img->Map) { + if (img->alpha == EXTRASAMPLE_ASSOCALPHA) + put = putRGBAAcontig16bittile; + else if (img->alpha == EXTRASAMPLE_UNASSALPHA) + put = putRGBUAcontig16bittile; + } + break; + } + break; + case PHOTOMETRIC_SEPARATED: + if (img->bitspersample == 8) { + if (!img->Map) + put = putRGBcontig8bitCMYKtile; + else + put = putRGBcontig8bitCMYKMaptile; + } + break; + case PHOTOMETRIC_PALETTE: + switch (img->bitspersample) { + case 8: put = put8bitcmaptile; break; + case 4: put = put4bitcmaptile; break; + case 2: put = put2bitcmaptile; break; + case 1: put = put1bitcmaptile; break; + } + break; + case PHOTOMETRIC_MINISWHITE: + case PHOTOMETRIC_MINISBLACK: + switch (img->bitspersample) { + case 8: put = putgreytile; break; + case 4: put = put4bitbwtile; break; + case 2: put = put2bitbwtile; break; + case 1: put = put1bitbwtile; break; + } + break; + case PHOTOMETRIC_YCBCR: + if (img->bitspersample == 8) + put = initYCbCrConversion(img); + break; + } + } + return ((img->put.contig = put) != 0); +} + +/* + * Select the appropriate conversion routine for unpacked data. + * + * NB: we assume that unpacked single channel data is directed + * to the "packed routines. + */ +static int +pickTileSeparateCase(TIFFRGBAImage* img) +{ + tileSeparateRoutine put = 0; + + if (buildMap(img)) { + switch (img->photometric) { + case PHOTOMETRIC_RGB: + switch (img->bitspersample) { + case 8: + if (!img->Map) { + if (img->alpha == EXTRASAMPLE_ASSOCALPHA) + put = putRGBAAseparate8bittile; + else if (img->alpha == EXTRASAMPLE_UNASSALPHA) + put = putRGBUAseparate8bittile; + else + put = putRGBseparate8bittile; + } else + put = putRGBseparate8bitMaptile; + break; + case 16: + put = putRGBseparate16bittile; + if (!img->Map) { + if (img->alpha == EXTRASAMPLE_ASSOCALPHA) + put = putRGBAAseparate16bittile; + else if (img->alpha == EXTRASAMPLE_UNASSALPHA) + put = putRGBUAseparate16bittile; + } + break; + } + break; + } + } + return ((img->put.separate = put) != 0); +} + +/* + * Read a whole strip off data from the file, and convert to RGBA form. + * If this is the last strip, then it will only contain the portion of + * the strip that is actually within the image space. The result is + * organized in bottom to top form. + */ + + +int +TIFFReadRGBAStrip(TIFF* tif, uint32 row, uint32 * raster ) + +{ + char emsg[1024]; + TIFFRGBAImage img; + int ok; + uint32 rowsperstrip, rows_to_read; + + if( TIFFIsTiled( tif ) ) + { + TIFFError(TIFFFileName(tif), + "Can't use TIFFReadRGBAStrip() with tiled file."); + return (0); + } + + TIFFGetFieldDefaulted(tif, TIFFTAG_ROWSPERSTRIP, &rowsperstrip); + if( (row % rowsperstrip) != 0 ) + { + TIFFError(TIFFFileName(tif), + "Row passed to TIFFReadRGBAStrip() must be first in a strip."); + return (0); + } + + if (TIFFRGBAImageBegin(&img, tif, 0, emsg)) { + + img.row_offset = row; + img.col_offset = 0; + + if( row + rowsperstrip > img.height ) + rows_to_read = img.height - row; + else + rows_to_read = rowsperstrip; + + ok = TIFFRGBAImageGet(&img, raster, img.width, rows_to_read ); + + TIFFRGBAImageEnd(&img); + } else { + TIFFError(TIFFFileName(tif), emsg); + ok = 0; + } + + return (ok); +} + +/* + * Read a whole tile off data from the file, and convert to RGBA form. + * The returned RGBA data is organized from bottom to top of tile, + * and may include zeroed areas if the tile extends off the image. + */ + +int +TIFFReadRGBATile(TIFF* tif, uint32 col, uint32 row, uint32 * raster) + +{ + char emsg[1024]; + TIFFRGBAImage img; + int ok; + uint32 tile_xsize, tile_ysize; + uint32 read_xsize, read_ysize; + uint32 i_row; + + /* + * Verify that our request is legal - on a tile file, and on a + * tile boundary. + */ + + if( !TIFFIsTiled( tif ) ) + { + TIFFError(TIFFFileName(tif), + "Can't use TIFFReadRGBATile() with stripped file."); + return (0); + } + + TIFFGetFieldDefaulted(tif, TIFFTAG_TILEWIDTH, &tile_xsize); + TIFFGetFieldDefaulted(tif, TIFFTAG_TILELENGTH, &tile_ysize); + if( (col % tile_xsize) != 0 || (row % tile_ysize) != 0 ) + { + TIFFError(TIFFFileName(tif), + "Row/col passed to TIFFReadRGBATile() must be top" + "left corner of a tile."); + return (0); + } + + /* + * Setup the RGBA reader. + */ + + if ( !TIFFRGBAImageBegin(&img, tif, 0, emsg)) { + TIFFError(TIFFFileName(tif), emsg); + return( 0 ); + } + + /* + * The TIFFRGBAImageGet() function doesn't allow us to get off the + * edge of the image, even to fill an otherwise valid tile. So we + * figure out how much we can read, and fix up the tile buffer to + * a full tile configuration afterwards. + */ + + if( row + tile_ysize > img.height ) + read_ysize = img.height - row; + else + read_ysize = tile_ysize; + + if( col + tile_xsize > img.width ) + read_xsize = img.width - col; + else + read_xsize = tile_xsize; + + /* + * Read the chunk of imagery. + */ + + img.row_offset = row; + img.col_offset = col; + + ok = TIFFRGBAImageGet(&img, raster, read_xsize, read_ysize ); + + TIFFRGBAImageEnd(&img); + + /* + * If our read was incomplete we will need to fix up the tile by + * shifting the data around as if a full tile of data is being returned. + * + * This is all the more complicated because the image is organized in + * bottom to top format. + */ + + if( read_xsize == tile_xsize && read_ysize == tile_ysize ) + return( ok ); + + for( i_row = 0; i_row < read_ysize; i_row++ ) + { + _TIFFmemcpy( raster + (tile_ysize - i_row - 1) * tile_xsize, + raster + (read_ysize - i_row - 1) * read_xsize, + read_xsize * sizeof(uint32) ); + _TIFFmemset( raster + (tile_ysize - i_row - 1) * tile_xsize+read_xsize, + 0, sizeof(uint32) * (tile_xsize - read_xsize) ); + } + + for( i_row = read_ysize; i_row < tile_ysize; i_row++ ) + { + _TIFFmemset( raster + (tile_ysize - i_row - 1) * tile_xsize, + 0, sizeof(uint32) * tile_xsize ); + } + + return (ok); +} diff --git a/libtiff/tif_jpeg.c b/libtiff/tif_jpeg.c new file mode 100755 index 0000000..0b7bf59 --- /dev/null +++ b/libtiff/tif_jpeg.c @@ -0,0 +1,1484 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_jpeg.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1994-1997 Sam Leffler + * Copyright (c) 1994-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include "tiffiop.h" +#ifdef JPEG_SUPPORT +/* + * TIFF Library + * + * JPEG Compression support per TIFF Technical Note #2 + * (*not* per the original TIFF 6.0 spec). + * + * This file is simply an interface to the libjpeg library written by + * the Independent JPEG Group. You need release 5 or later of the IJG + * code, which you can find on the Internet at ftp.uu.net:/graphics/jpeg/. + * + * Contributed by Tom Lane . + */ +#include +#include +#include + +/* We undefine FAR to avoid conflict with JPEG definition */ + +#ifdef FAR +#undef FAR +#endif + +#include "jpeglib.h" +#include "jerror.h" + +/* + * On some machines it may be worthwhile to use _setjmp or sigsetjmp + * in place of plain setjmp. These macros will make it easier. + */ +#define SETJMP(jbuf) setjmp(jbuf) +#define LONGJMP(jbuf,code) longjmp(jbuf,code) +#define JMP_BUF jmp_buf + +typedef struct jpeg_destination_mgr jpeg_destination_mgr; +typedef struct jpeg_source_mgr jpeg_source_mgr; +typedef struct jpeg_error_mgr jpeg_error_mgr; + +/* + * State block for each open TIFF file using + * libjpeg to do JPEG compression/decompression. + * + * libjpeg's visible state is either a jpeg_compress_struct + * or jpeg_decompress_struct depending on which way we + * are going. comm can be used to refer to the fields + * which are common to both. + * + * NB: cinfo is required to be the first member of JPEGState, + * so we can safely cast JPEGState* -> jpeg_xxx_struct* + * and vice versa! + */ +typedef struct { + union { + struct jpeg_compress_struct c; + struct jpeg_decompress_struct d; + struct jpeg_common_struct comm; + } cinfo; /* NB: must be first */ + jpeg_error_mgr err; /* libjpeg error manager */ + JMP_BUF exit_jmpbuf; /* for catching libjpeg failures */ + /* + * The following two members could be a union, but + * they're small enough that it's not worth the effort. + */ + jpeg_destination_mgr dest; /* data dest for compression */ + jpeg_source_mgr src; /* data source for decompression */ + /* private state */ + TIFF* tif; /* back link needed by some code */ + uint16 photometric; /* copy of PhotometricInterpretation */ + uint16 h_sampling; /* luminance sampling factors */ + uint16 v_sampling; + tsize_t bytesperline; /* decompressed bytes per scanline */ + /* pointers to intermediate buffers when processing downsampled data */ + JSAMPARRAY ds_buffer[MAX_COMPONENTS]; + int scancount; /* number of "scanlines" accumulated */ + int samplesperclump; + + TIFFVGetMethod vgetparent; /* super-class method */ + TIFFVSetMethod vsetparent; /* super-class method */ + TIFFStripMethod defsparent; /* super-class method */ + TIFFTileMethod deftparent; /* super-class method */ + /* pseudo-tag fields */ + void* jpegtables; /* JPEGTables tag value, or NULL */ + uint32 jpegtables_length; /* number of bytes in same */ + int jpegquality; /* Compression quality level */ + int jpegcolormode; /* Auto RGB<=>YCbCr convert? */ + int jpegtablesmode; /* What to put in JPEGTables */ +} JPEGState; + +#define JState(tif) ((JPEGState*)(tif)->tif_data) + +static int JPEGDecode(TIFF*, tidata_t, tsize_t, tsample_t); +static int JPEGDecodeRaw(TIFF*, tidata_t, tsize_t, tsample_t); +static int JPEGEncode(TIFF*, tidata_t, tsize_t, tsample_t); +static int JPEGEncodeRaw(TIFF*, tidata_t, tsize_t, tsample_t); + +#define FIELD_JPEGTABLES (FIELD_CODEC+0) + +static const TIFFFieldInfo jpegFieldInfo[] = { + { TIFFTAG_JPEGTABLES, -1,-1, TIFF_UNDEFINED, FIELD_JPEGTABLES, + FALSE, TRUE, "JPEGTables" }, + { TIFFTAG_JPEGQUALITY, 0, 0, TIFF_ANY, FIELD_PSEUDO, + TRUE, FALSE, "" }, + { TIFFTAG_JPEGCOLORMODE, 0, 0, TIFF_ANY, FIELD_PSEUDO, + FALSE, FALSE, "" }, + { TIFFTAG_JPEGTABLESMODE, 0, 0, TIFF_ANY, FIELD_PSEUDO, + FALSE, FALSE, "" }, +}; +#define N(a) (sizeof (a) / sizeof (a[0])) + +/* + * libjpeg interface layer. + * + * We use setjmp/longjmp to return control to libtiff + * when a fatal error is encountered within the JPEG + * library. We also direct libjpeg error and warning + * messages through the appropriate libtiff handlers. + */ + +/* + * Error handling routines (these replace corresponding + * IJG routines from jerror.c). These are used for both + * compression and decompression. + */ +static void +TIFFjpeg_error_exit(j_common_ptr cinfo) +{ + JPEGState *sp = (JPEGState *) cinfo; /* NB: cinfo assumed first */ + char buffer[JMSG_LENGTH_MAX]; + + (*cinfo->err->format_message) (cinfo, buffer); + TIFFError("JPEGLib", buffer); /* display the error message */ + jpeg_abort(cinfo); /* clean up libjpeg state */ + LONGJMP(sp->exit_jmpbuf, 1); /* return to libtiff caller */ +} + +/* + * This routine is invoked only for warning messages, + * since error_exit does its own thing and trace_level + * is never set > 0. + */ +static void +TIFFjpeg_output_message(j_common_ptr cinfo) +{ + char buffer[JMSG_LENGTH_MAX]; + + (*cinfo->err->format_message) (cinfo, buffer); + TIFFWarning("JPEGLib", buffer); +} + +/* + * Interface routines. This layer of routines exists + * primarily to limit side-effects from using setjmp. + * Also, normal/error returns are converted into return + * values per libtiff practice. + */ +#define CALLJPEG(sp, fail, op) (SETJMP((sp)->exit_jmpbuf) ? (fail) : (op)) +#define CALLVJPEG(sp, op) CALLJPEG(sp, 0, ((op),1)) + +static int +TIFFjpeg_create_compress(JPEGState* sp) +{ + /* initialize JPEG error handling */ + sp->cinfo.c.err = jpeg_std_error(&sp->err); + sp->err.error_exit = TIFFjpeg_error_exit; + sp->err.output_message = TIFFjpeg_output_message; + + return CALLVJPEG(sp, jpeg_create_compress(&sp->cinfo.c)); +} + +static int +TIFFjpeg_create_decompress(JPEGState* sp) +{ + /* initialize JPEG error handling */ + sp->cinfo.d.err = jpeg_std_error(&sp->err); + sp->err.error_exit = TIFFjpeg_error_exit; + sp->err.output_message = TIFFjpeg_output_message; + + return CALLVJPEG(sp, jpeg_create_decompress(&sp->cinfo.d)); +} + +static int +TIFFjpeg_set_defaults(JPEGState* sp) +{ + return CALLVJPEG(sp, jpeg_set_defaults(&sp->cinfo.c)); +} + +static int +TIFFjpeg_set_colorspace(JPEGState* sp, J_COLOR_SPACE colorspace) +{ + return CALLVJPEG(sp, jpeg_set_colorspace(&sp->cinfo.c, colorspace)); +} + +static int +TIFFjpeg_set_quality(JPEGState* sp, int quality, boolean force_baseline) +{ + return CALLVJPEG(sp, + jpeg_set_quality(&sp->cinfo.c, quality, force_baseline)); +} + +static int +TIFFjpeg_suppress_tables(JPEGState* sp, boolean suppress) +{ + return CALLVJPEG(sp, jpeg_suppress_tables(&sp->cinfo.c, suppress)); +} + +static int +TIFFjpeg_start_compress(JPEGState* sp, boolean write_all_tables) +{ + return CALLVJPEG(sp, + jpeg_start_compress(&sp->cinfo.c, write_all_tables)); +} + +static int +TIFFjpeg_write_scanlines(JPEGState* sp, JSAMPARRAY scanlines, int num_lines) +{ + return CALLJPEG(sp, -1, (int) jpeg_write_scanlines(&sp->cinfo.c, + scanlines, (JDIMENSION) num_lines)); +} + +static int +TIFFjpeg_write_raw_data(JPEGState* sp, JSAMPIMAGE data, int num_lines) +{ + return CALLJPEG(sp, -1, (int) jpeg_write_raw_data(&sp->cinfo.c, + data, (JDIMENSION) num_lines)); +} + +static int +TIFFjpeg_finish_compress(JPEGState* sp) +{ + return CALLVJPEG(sp, jpeg_finish_compress(&sp->cinfo.c)); +} + +static int +TIFFjpeg_write_tables(JPEGState* sp) +{ + return CALLVJPEG(sp, jpeg_write_tables(&sp->cinfo.c)); +} + +static int +TIFFjpeg_read_header(JPEGState* sp, boolean require_image) +{ + return CALLJPEG(sp, -1, jpeg_read_header(&sp->cinfo.d, require_image)); +} + +static int +TIFFjpeg_start_decompress(JPEGState* sp) +{ + return CALLVJPEG(sp, jpeg_start_decompress(&sp->cinfo.d)); +} + +static int +TIFFjpeg_read_scanlines(JPEGState* sp, JSAMPARRAY scanlines, int max_lines) +{ + return CALLJPEG(sp, -1, (int) jpeg_read_scanlines(&sp->cinfo.d, + scanlines, (JDIMENSION) max_lines)); +} + +static int +TIFFjpeg_read_raw_data(JPEGState* sp, JSAMPIMAGE data, int max_lines) +{ + return CALLJPEG(sp, -1, (int) jpeg_read_raw_data(&sp->cinfo.d, + data, (JDIMENSION) max_lines)); +} + +static int +TIFFjpeg_finish_decompress(JPEGState* sp) +{ + return CALLJPEG(sp, -1, (int) jpeg_finish_decompress(&sp->cinfo.d)); +} + +static int +TIFFjpeg_abort(JPEGState* sp) +{ + return CALLVJPEG(sp, jpeg_abort(&sp->cinfo.comm)); +} + +static int +TIFFjpeg_destroy(JPEGState* sp) +{ + return CALLVJPEG(sp, jpeg_destroy(&sp->cinfo.comm)); +} + +static JSAMPARRAY +TIFFjpeg_alloc_sarray(JPEGState* sp, int pool_id, + JDIMENSION samplesperrow, JDIMENSION numrows) +{ + return CALLJPEG(sp, (JSAMPARRAY) NULL, + (*sp->cinfo.comm.mem->alloc_sarray) + (&sp->cinfo.comm, pool_id, samplesperrow, numrows)); +} + +/* + * JPEG library destination data manager. + * These routines direct compressed data from libjpeg into the + * libtiff output buffer. + */ + +static void +std_init_destination(j_compress_ptr cinfo) +{ + JPEGState* sp = (JPEGState*) cinfo; + TIFF* tif = sp->tif; + + sp->dest.next_output_byte = (JOCTET*) tif->tif_rawdata; + sp->dest.free_in_buffer = (size_t) tif->tif_rawdatasize; +} + +static boolean +std_empty_output_buffer(j_compress_ptr cinfo) +{ + JPEGState* sp = (JPEGState*) cinfo; + TIFF* tif = sp->tif; + + /* the entire buffer has been filled */ + tif->tif_rawcc = tif->tif_rawdatasize; + TIFFFlushData1(tif); + sp->dest.next_output_byte = (JOCTET*) tif->tif_rawdata; + sp->dest.free_in_buffer = (size_t) tif->tif_rawdatasize; + + return (TRUE); +} + +static void +std_term_destination(j_compress_ptr cinfo) +{ + JPEGState* sp = (JPEGState*) cinfo; + TIFF* tif = sp->tif; + + tif->tif_rawcp = (tidata_t) sp->dest.next_output_byte; + tif->tif_rawcc = + tif->tif_rawdatasize - (tsize_t) sp->dest.free_in_buffer; + /* NB: libtiff does the final buffer flush */ +} + +static void +TIFFjpeg_data_dest(JPEGState* sp, TIFF* tif) +{ + (void) tif; + sp->cinfo.c.dest = &sp->dest; + sp->dest.init_destination = std_init_destination; + sp->dest.empty_output_buffer = std_empty_output_buffer; + sp->dest.term_destination = std_term_destination; +} + +/* + * Alternate destination manager for outputting to JPEGTables field. + */ + +static void +tables_init_destination(j_compress_ptr cinfo) +{ + JPEGState* sp = (JPEGState*) cinfo; + + /* while building, jpegtables_length is allocated buffer size */ + sp->dest.next_output_byte = (JOCTET*) sp->jpegtables; + sp->dest.free_in_buffer = (size_t) sp->jpegtables_length; +} + +static boolean +tables_empty_output_buffer(j_compress_ptr cinfo) +{ + JPEGState* sp = (JPEGState*) cinfo; + void* newbuf; + + /* the entire buffer has been filled; enlarge it by 1000 bytes */ + newbuf = _TIFFrealloc((tdata_t) sp->jpegtables, + (tsize_t) (sp->jpegtables_length + 1000)); + if (newbuf == NULL) + ERREXIT1(cinfo, JERR_OUT_OF_MEMORY, 100); + sp->dest.next_output_byte = (JOCTET*) newbuf + sp->jpegtables_length; + sp->dest.free_in_buffer = (size_t) 1000; + sp->jpegtables = newbuf; + sp->jpegtables_length += 1000; + return (TRUE); +} + +static void +tables_term_destination(j_compress_ptr cinfo) +{ + JPEGState* sp = (JPEGState*) cinfo; + + /* set tables length to number of bytes actually emitted */ + sp->jpegtables_length -= sp->dest.free_in_buffer; +} + +static int +TIFFjpeg_tables_dest(JPEGState* sp, TIFF* tif) +{ + (void) tif; + /* + * Allocate a working buffer for building tables. + * Initial size is 1000 bytes, which is usually adequate. + */ + if (sp->jpegtables) + _TIFFfree(sp->jpegtables); + sp->jpegtables_length = 1000; + sp->jpegtables = (void*) _TIFFmalloc((tsize_t) sp->jpegtables_length); + if (sp->jpegtables == NULL) { + sp->jpegtables_length = 0; + TIFFError("TIFFjpeg_tables_dest", "No space for JPEGTables"); + return (0); + } + sp->cinfo.c.dest = &sp->dest; + sp->dest.init_destination = tables_init_destination; + sp->dest.empty_output_buffer = tables_empty_output_buffer; + sp->dest.term_destination = tables_term_destination; + return (1); +} + +/* + * JPEG library source data manager. + * These routines supply compressed data to libjpeg. + */ + +static void +std_init_source(j_decompress_ptr cinfo) +{ + JPEGState* sp = (JPEGState*) cinfo; + TIFF* tif = sp->tif; + + sp->src.next_input_byte = (const JOCTET*) tif->tif_rawdata; + sp->src.bytes_in_buffer = (size_t) tif->tif_rawcc; +} + +static boolean +std_fill_input_buffer(j_decompress_ptr cinfo) +{ + JPEGState* sp = (JPEGState* ) cinfo; + static const JOCTET dummy_EOI[2] = { 0xFF, JPEG_EOI }; + + /* + * Should never get here since entire strip/tile is + * read into memory before the decompressor is called, + * and thus was supplied by init_source. + */ + WARNMS(cinfo, JWRN_JPEG_EOF); + /* insert a fake EOI marker */ + sp->src.next_input_byte = dummy_EOI; + sp->src.bytes_in_buffer = 2; + return (TRUE); +} + +static void +std_skip_input_data(j_decompress_ptr cinfo, long num_bytes) +{ + JPEGState* sp = (JPEGState*) cinfo; + + if (num_bytes > 0) { + if (num_bytes > (long) sp->src.bytes_in_buffer) { + /* oops, buffer overrun */ + (void) std_fill_input_buffer(cinfo); + } else { + sp->src.next_input_byte += (size_t) num_bytes; + sp->src.bytes_in_buffer -= (size_t) num_bytes; + } + } +} + +static void +std_term_source(j_decompress_ptr cinfo) +{ + /* No work necessary here */ + /* Or must we update tif->tif_rawcp, tif->tif_rawcc ??? */ + /* (if so, need empty tables_term_source!) */ + (void) cinfo; +} + +static void +TIFFjpeg_data_src(JPEGState* sp, TIFF* tif) +{ + (void) tif; + sp->cinfo.d.src = &sp->src; + sp->src.init_source = std_init_source; + sp->src.fill_input_buffer = std_fill_input_buffer; + sp->src.skip_input_data = std_skip_input_data; + sp->src.resync_to_restart = jpeg_resync_to_restart; + sp->src.term_source = std_term_source; + sp->src.bytes_in_buffer = 0; /* for safety */ + sp->src.next_input_byte = NULL; +} + +/* + * Alternate source manager for reading from JPEGTables. + * We can share all the code except for the init routine. + */ + +static void +tables_init_source(j_decompress_ptr cinfo) +{ + JPEGState* sp = (JPEGState*) cinfo; + + sp->src.next_input_byte = (const JOCTET*) sp->jpegtables; + sp->src.bytes_in_buffer = (size_t) sp->jpegtables_length; +} + +static void +TIFFjpeg_tables_src(JPEGState* sp, TIFF* tif) +{ + TIFFjpeg_data_src(sp, tif); + sp->src.init_source = tables_init_source; +} + +/* + * Allocate downsampled-data buffers needed for downsampled I/O. + * We use values computed in jpeg_start_compress or jpeg_start_decompress. + * We use libjpeg's allocator so that buffers will be released automatically + * when done with strip/tile. + * This is also a handy place to compute samplesperclump, bytesperline. + */ +static int +alloc_downsampled_buffers(TIFF* tif, jpeg_component_info* comp_info, + int num_components) +{ + JPEGState* sp = JState(tif); + int ci; + jpeg_component_info* compptr; + JSAMPARRAY buf; + int samples_per_clump = 0; + + for (ci = 0, compptr = comp_info; ci < num_components; + ci++, compptr++) { + samples_per_clump += compptr->h_samp_factor * + compptr->v_samp_factor; + buf = TIFFjpeg_alloc_sarray(sp, JPOOL_IMAGE, + compptr->width_in_blocks * DCTSIZE, + (JDIMENSION) (compptr->v_samp_factor*DCTSIZE)); + if (buf == NULL) + return (0); + sp->ds_buffer[ci] = buf; + } + sp->samplesperclump = samples_per_clump; + /* Cb,Cr both have sampling factors 1 */ + /* so downsampled width of Cb is # of clumps per line */ + sp->bytesperline = sizeof(JSAMPLE) * samples_per_clump * + comp_info[1].downsampled_width; + return (1); +} + + +/* + * JPEG Decoding. + */ + +static int +JPEGSetupDecode(TIFF* tif) +{ + JPEGState* sp = JState(tif); + TIFFDirectory *td = &tif->tif_dir; + + assert(sp != NULL); + assert(sp->cinfo.comm.is_decompressor); + + /* Read JPEGTables if it is present */ + if (TIFFFieldSet(tif,FIELD_JPEGTABLES)) { + TIFFjpeg_tables_src(sp, tif); + if(TIFFjpeg_read_header(sp,FALSE) != JPEG_HEADER_TABLES_ONLY) { + TIFFError("JPEGSetupDecode", "Bogus JPEGTables field"); + return (0); + } + } + + /* Grab parameters that are same for all strips/tiles */ + sp->photometric = td->td_photometric; + switch (sp->photometric) { + case PHOTOMETRIC_YCBCR: + sp->h_sampling = td->td_ycbcrsubsampling[0]; + sp->v_sampling = td->td_ycbcrsubsampling[1]; + break; + default: + /* TIFF 6.0 forbids subsampling of all other color spaces */ + sp->h_sampling = 1; + sp->v_sampling = 1; + break; + } + + /* Set up for reading normal data */ + TIFFjpeg_data_src(sp, tif); + tif->tif_postdecode = _TIFFNoPostDecode; /* override byte swapping */ + return (1); +} + +/* + * Set up for decoding a strip or tile. + */ +static int +JPEGPreDecode(TIFF* tif, tsample_t s) +{ + JPEGState *sp = JState(tif); + TIFFDirectory *td = &tif->tif_dir; + static const char module[] = "JPEGPreDecode"; + uint32 segment_width, segment_height; + int downsampled_output; + int ci; + + assert(sp != NULL); + assert(sp->cinfo.comm.is_decompressor); + /* + * Reset decoder state from any previous strip/tile, + * in case application didn't read the whole strip. + */ + if (!TIFFjpeg_abort(sp)) + return (0); + /* + * Read the header for this strip/tile. + */ + if (TIFFjpeg_read_header(sp, TRUE) != JPEG_HEADER_OK) + return (0); + /* + * Check image parameters and set decompression parameters. + */ + if (isTiled(tif)) { + segment_width = td->td_tilewidth; + segment_height = td->td_tilelength; + sp->bytesperline = TIFFTileRowSize(tif); + } else { + segment_width = td->td_imagewidth; + segment_height = td->td_imagelength - tif->tif_row; + if (segment_height > td->td_rowsperstrip) + segment_height = td->td_rowsperstrip; + sp->bytesperline = TIFFScanlineSize(tif); + } + if (td->td_planarconfig == PLANARCONFIG_SEPARATE && s > 0) { + /* + * For PC 2, scale down the expected strip/tile size + * to match a downsampled component + */ + segment_width = TIFFhowmany(segment_width, sp->h_sampling); + segment_height = TIFFhowmany(segment_height, sp->v_sampling); + } + if (sp->cinfo.d.image_width != segment_width || + sp->cinfo.d.image_height != segment_height) { + TIFFError(module, "Improper JPEG strip/tile size"); + return (0); + } + if (sp->cinfo.d.num_components != + (td->td_planarconfig == PLANARCONFIG_CONTIG ? + td->td_samplesperpixel : 1)) { + TIFFError(module, "Improper JPEG component count"); + return (0); + } + if (sp->cinfo.d.data_precision != td->td_bitspersample) { + TIFFError(module, "Improper JPEG data precision"); + return (0); + } + if (td->td_planarconfig == PLANARCONFIG_CONTIG) { + /* Component 0 should have expected sampling factors */ + if (sp->cinfo.d.comp_info[0].h_samp_factor != sp->h_sampling || + sp->cinfo.d.comp_info[0].v_samp_factor != sp->v_sampling) { + TIFFError(module, "Improper JPEG sampling factors"); + return (0); + } + /* Rest should have sampling factors 1,1 */ + for (ci = 1; ci < sp->cinfo.d.num_components; ci++) { + if (sp->cinfo.d.comp_info[ci].h_samp_factor != 1 || + sp->cinfo.d.comp_info[ci].v_samp_factor != 1) { + TIFFError(module, "Improper JPEG sampling factors"); + return (0); + } + } + } else { + /* PC 2's single component should have sampling factors 1,1 */ + if (sp->cinfo.d.comp_info[0].h_samp_factor != 1 || + sp->cinfo.d.comp_info[0].v_samp_factor != 1) { + TIFFError(module, "Improper JPEG sampling factors"); + return (0); + } + } + downsampled_output = FALSE; + if (td->td_planarconfig == PLANARCONFIG_CONTIG && + sp->photometric == PHOTOMETRIC_YCBCR && + sp->jpegcolormode == JPEGCOLORMODE_RGB) { + /* Convert YCbCr to RGB */ + sp->cinfo.d.jpeg_color_space = JCS_YCbCr; + sp->cinfo.d.out_color_space = JCS_RGB; + } else { + /* Suppress colorspace handling */ + sp->cinfo.d.jpeg_color_space = JCS_UNKNOWN; + sp->cinfo.d.out_color_space = JCS_UNKNOWN; + if (td->td_planarconfig == PLANARCONFIG_CONTIG && + (sp->h_sampling != 1 || sp->v_sampling != 1)) + downsampled_output = TRUE; + /* XXX what about up-sampling? */ + } + if (downsampled_output) { + /* Need to use raw-data interface to libjpeg */ + sp->cinfo.d.raw_data_out = TRUE; + tif->tif_decoderow = JPEGDecodeRaw; + tif->tif_decodestrip = JPEGDecodeRaw; + tif->tif_decodetile = JPEGDecodeRaw; + } else { + /* Use normal interface to libjpeg */ + sp->cinfo.d.raw_data_out = FALSE; + tif->tif_decoderow = JPEGDecode; + tif->tif_decodestrip = JPEGDecode; + tif->tif_decodetile = JPEGDecode; + } + /* Start JPEG decompressor */ + if (!TIFFjpeg_start_decompress(sp)) + return (0); + /* Allocate downsampled-data buffers if needed */ + if (downsampled_output) { + if (!alloc_downsampled_buffers(tif, sp->cinfo.d.comp_info, + sp->cinfo.d.num_components)) + return (0); + sp->scancount = DCTSIZE; /* mark buffer empty */ + } + return (1); +} + +/* + * Decode a chunk of pixels. + * "Standard" case: returned data is not downsampled. + */ +static int +JPEGDecode(TIFF* tif, tidata_t buf, tsize_t cc, tsample_t s) +{ + JPEGState *sp = JState(tif); + tsize_t nrows; + JSAMPROW bufptr[1]; + + (void) s; + assert(sp != NULL); + /* data is expected to be read in multiples of a scanline */ + nrows = cc / sp->bytesperline; + if (cc % sp->bytesperline) + TIFFWarning(tif->tif_name, "fractional scanline not read"); + + while (nrows-- > 0) { + bufptr[0] = (JSAMPROW) buf; + if (TIFFjpeg_read_scanlines(sp, bufptr, 1) != 1) + return (0); + if (nrows > 0) + tif->tif_row++; + buf += sp->bytesperline; + } + /* Close down the decompressor if we've finished the strip or tile. */ + if (sp->cinfo.d.output_scanline == sp->cinfo.d.output_height) { + if (TIFFjpeg_finish_decompress(sp) != TRUE) + return (0); + } + return (1); +} + +/* + * Decode a chunk of pixels. + * Returned data is downsampled per sampling factors. + */ +static int +JPEGDecodeRaw(TIFF* tif, tidata_t buf, tsize_t cc, tsample_t s) +{ + JPEGState *sp = JState(tif); + JSAMPLE* inptr; + JSAMPLE* outptr; + tsize_t nrows; + JDIMENSION clumps_per_line, nclump; + int clumpoffset, ci, xpos, ypos; + jpeg_component_info* compptr; + int samples_per_clump = sp->samplesperclump; + + (void) s; + assert(sp != NULL); + /* data is expected to be read in multiples of a scanline */ + nrows = cc / sp->bytesperline; + if (cc % sp->bytesperline) + TIFFWarning(tif->tif_name, "fractional scanline not read"); + + /* Cb,Cr both have sampling factors 1, so this is correct */ + clumps_per_line = sp->cinfo.d.comp_info[1].downsampled_width; + + while (nrows-- > 0) { + /* Reload downsampled-data buffer if needed */ + if (sp->scancount >= DCTSIZE) { + int n = sp->cinfo.d.max_v_samp_factor * DCTSIZE; + if (TIFFjpeg_read_raw_data(sp, sp->ds_buffer, n) != n) + return (0); + sp->scancount = 0; + /* Close down the decompressor if done. */ + if (sp->cinfo.d.output_scanline >= + sp->cinfo.d.output_height) { + if (TIFFjpeg_finish_decompress(sp) != TRUE) + return (0); + } + } + /* + * Fastest way to unseparate the data is to make one pass + * over the scanline for each row of each component. + */ + clumpoffset = 0; /* first sample in clump */ + for (ci = 0, compptr = sp->cinfo.d.comp_info; + ci < sp->cinfo.d.num_components; + ci++, compptr++) { + int hsamp = compptr->h_samp_factor; + int vsamp = compptr->v_samp_factor; + for (ypos = 0; ypos < vsamp; ypos++) { + inptr = sp->ds_buffer[ci][sp->scancount*vsamp + ypos]; + outptr = ((JSAMPLE*) buf) + clumpoffset; + if (hsamp == 1) { + /* fast path for at least Cb and Cr */ + for (nclump = clumps_per_line; nclump-- > 0; ) { + outptr[0] = *inptr++; + outptr += samples_per_clump; + } + } else { + /* general case */ + for (nclump = clumps_per_line; nclump-- > 0; ) { + for (xpos = 0; xpos < hsamp; xpos++) + outptr[xpos] = *inptr++; + outptr += samples_per_clump; + } + } + clumpoffset += hsamp; + } + } + sp->scancount++; + if (nrows > 0) + tif->tif_row++; + buf += sp->bytesperline; + } + return (1); +} + + +/* + * JPEG Encoding. + */ + +static void +unsuppress_quant_table (JPEGState* sp, int tblno) +{ + JQUANT_TBL* qtbl; + + if ((qtbl = sp->cinfo.c.quant_tbl_ptrs[tblno]) != NULL) + qtbl->sent_table = FALSE; +} + +static void +unsuppress_huff_table (JPEGState* sp, int tblno) +{ + JHUFF_TBL* htbl; + + if ((htbl = sp->cinfo.c.dc_huff_tbl_ptrs[tblno]) != NULL) + htbl->sent_table = FALSE; + if ((htbl = sp->cinfo.c.ac_huff_tbl_ptrs[tblno]) != NULL) + htbl->sent_table = FALSE; +} + +static int +prepare_JPEGTables(TIFF* tif) +{ + JPEGState* sp = JState(tif); + + /* Initialize quant tables for current quality setting */ + if (!TIFFjpeg_set_quality(sp, sp->jpegquality, FALSE)) + return (0); + /* Mark only the tables we want for output */ + /* NB: chrominance tables are currently used only with YCbCr */ + if (!TIFFjpeg_suppress_tables(sp, TRUE)) + return (0); + if (sp->jpegtablesmode & JPEGTABLESMODE_QUANT) { + unsuppress_quant_table(sp, 0); + if (sp->photometric == PHOTOMETRIC_YCBCR) + unsuppress_quant_table(sp, 1); + } + if (sp->jpegtablesmode & JPEGTABLESMODE_HUFF) { + unsuppress_huff_table(sp, 0); + if (sp->photometric == PHOTOMETRIC_YCBCR) + unsuppress_huff_table(sp, 1); + } + /* Direct libjpeg output into jpegtables */ + if (!TIFFjpeg_tables_dest(sp, tif)) + return (0); + /* Emit tables-only datastream */ + if (!TIFFjpeg_write_tables(sp)) + return (0); + + return (1); +} + +static int +JPEGSetupEncode(TIFF* tif) +{ + JPEGState* sp = JState(tif); + TIFFDirectory *td = &tif->tif_dir; + static const char module[] = "JPEGSetupEncode"; + + assert(sp != NULL); + assert(!sp->cinfo.comm.is_decompressor); + + /* + * Initialize all JPEG parameters to default values. + * Note that jpeg_set_defaults needs legal values for + * in_color_space and input_components. + */ + sp->cinfo.c.in_color_space = JCS_UNKNOWN; + sp->cinfo.c.input_components = 1; + if (!TIFFjpeg_set_defaults(sp)) + return (0); + /* Set per-file parameters */ + sp->photometric = td->td_photometric; + switch (sp->photometric) { + case PHOTOMETRIC_YCBCR: + sp->h_sampling = td->td_ycbcrsubsampling[0]; + sp->v_sampling = td->td_ycbcrsubsampling[1]; + /* + * A ReferenceBlackWhite field *must* be present since the + * default value is inappropriate for YCbCr. Fill in the + * proper value if application didn't set it. + */ +#ifdef COLORIMETRY_SUPPORT + if (!TIFFFieldSet(tif, FIELD_REFBLACKWHITE)) { + float refbw[6]; + long top = 1L << td->td_bitspersample; + refbw[0] = 0; + refbw[1] = (float)(top-1L); + refbw[2] = (float)(top>>1); + refbw[3] = refbw[1]; + refbw[4] = refbw[2]; + refbw[5] = refbw[1]; + TIFFSetField(tif, TIFFTAG_REFERENCEBLACKWHITE, refbw); + } +#endif + break; + case PHOTOMETRIC_PALETTE: /* disallowed by Tech Note */ + case PHOTOMETRIC_MASK: + TIFFError(module, + "PhotometricInterpretation %d not allowed for JPEG", + (int) sp->photometric); + return (0); + default: + /* TIFF 6.0 forbids subsampling of all other color spaces */ + sp->h_sampling = 1; + sp->v_sampling = 1; + break; + } + + /* Verify miscellaneous parameters */ + + /* + * This would need work if libtiff ever supports different + * depths for different components, or if libjpeg ever supports + * run-time selection of depth. Neither is imminent. + */ + if (td->td_bitspersample != BITS_IN_JSAMPLE) { + TIFFError(module, "BitsPerSample %d not allowed for JPEG", + (int) td->td_bitspersample); + return (0); + } + sp->cinfo.c.data_precision = td->td_bitspersample; + if (isTiled(tif)) { + if ((td->td_tilelength % (sp->v_sampling * DCTSIZE)) != 0) { + TIFFError(module, + "JPEG tile height must be multiple of %d", + sp->v_sampling * DCTSIZE); + return (0); + } + if ((td->td_tilewidth % (sp->h_sampling * DCTSIZE)) != 0) { + TIFFError(module, + "JPEG tile width must be multiple of %d", + sp->h_sampling * DCTSIZE); + return (0); + } + } else { + if (td->td_rowsperstrip < td->td_imagelength && + (td->td_rowsperstrip % (sp->v_sampling * DCTSIZE)) != 0) { + TIFFError(module, + "RowsPerStrip must be multiple of %d for JPEG", + sp->v_sampling * DCTSIZE); + return (0); + } + } + + /* Create a JPEGTables field if appropriate */ + if (sp->jpegtablesmode & (JPEGTABLESMODE_QUANT|JPEGTABLESMODE_HUFF)) { + if (!prepare_JPEGTables(tif)) + return (0); + /* Mark the field present */ + /* Can't use TIFFSetField since BEENWRITING is already set! */ + TIFFSetFieldBit(tif, FIELD_JPEGTABLES); + tif->tif_flags |= TIFF_DIRTYDIRECT; + } else { + /* We do not support application-supplied JPEGTables, */ + /* so mark the field not present */ + TIFFClrFieldBit(tif, FIELD_JPEGTABLES); + } + + /* Direct libjpeg output to libtiff's output buffer */ + TIFFjpeg_data_dest(sp, tif); + + return (1); +} + +/* + * Set encoding state at the start of a strip or tile. + */ +static int +JPEGPreEncode(TIFF* tif, tsample_t s) +{ + JPEGState *sp = JState(tif); + TIFFDirectory *td = &tif->tif_dir; + static const char module[] = "JPEGPreEncode"; + uint32 segment_width, segment_height; + int downsampled_input; + + assert(sp != NULL); + assert(!sp->cinfo.comm.is_decompressor); + /* + * Set encoding parameters for this strip/tile. + */ + if (isTiled(tif)) { + segment_width = td->td_tilewidth; + segment_height = td->td_tilelength; + sp->bytesperline = TIFFTileRowSize(tif); + } else { + segment_width = td->td_imagewidth; + segment_height = td->td_imagelength - tif->tif_row; + if (segment_height > td->td_rowsperstrip) + segment_height = td->td_rowsperstrip; + sp->bytesperline = TIFFScanlineSize(tif); + } + if (td->td_planarconfig == PLANARCONFIG_SEPARATE && s > 0) { + /* for PC 2, scale down the strip/tile size + * to match a downsampled component + */ + segment_width = TIFFhowmany(segment_width, sp->h_sampling); + segment_height = TIFFhowmany(segment_height, sp->v_sampling); + } + if (segment_width > 65535 || segment_height > 65535) { + TIFFError(module, "Strip/tile too large for JPEG"); + return (0); + } + sp->cinfo.c.image_width = segment_width; + sp->cinfo.c.image_height = segment_height; + downsampled_input = FALSE; + if (td->td_planarconfig == PLANARCONFIG_CONTIG) { + sp->cinfo.c.input_components = td->td_samplesperpixel; + if (sp->photometric == PHOTOMETRIC_YCBCR) { + if (sp->jpegcolormode == JPEGCOLORMODE_RGB) { + sp->cinfo.c.in_color_space = JCS_RGB; + } else { + sp->cinfo.c.in_color_space = JCS_YCbCr; + if (sp->h_sampling != 1 || sp->v_sampling != 1) + downsampled_input = TRUE; + } + if (!TIFFjpeg_set_colorspace(sp, JCS_YCbCr)) + return (0); + /* + * Set Y sampling factors; + * we assume jpeg_set_colorspace() set the rest to 1 + */ + sp->cinfo.c.comp_info[0].h_samp_factor = sp->h_sampling; + sp->cinfo.c.comp_info[0].v_samp_factor = sp->v_sampling; + } else { + sp->cinfo.c.in_color_space = JCS_UNKNOWN; + if (!TIFFjpeg_set_colorspace(sp, JCS_UNKNOWN)) + return (0); + /* jpeg_set_colorspace set all sampling factors to 1 */ + } + } else { + sp->cinfo.c.input_components = 1; + sp->cinfo.c.in_color_space = JCS_UNKNOWN; + if (!TIFFjpeg_set_colorspace(sp, JCS_UNKNOWN)) + return (0); + sp->cinfo.c.comp_info[0].component_id = s; + /* jpeg_set_colorspace() set sampling factors to 1 */ + if (sp->photometric == PHOTOMETRIC_YCBCR && s > 0) { + sp->cinfo.c.comp_info[0].quant_tbl_no = 1; + sp->cinfo.c.comp_info[0].dc_tbl_no = 1; + sp->cinfo.c.comp_info[0].ac_tbl_no = 1; + } + } + /* ensure libjpeg won't write any extraneous markers */ + sp->cinfo.c.write_JFIF_header = FALSE; + sp->cinfo.c.write_Adobe_marker = FALSE; + /* set up table handling correctly */ + if (! (sp->jpegtablesmode & JPEGTABLESMODE_QUANT)) { + if (!TIFFjpeg_set_quality(sp, sp->jpegquality, FALSE)) + return (0); + unsuppress_quant_table(sp, 0); + unsuppress_quant_table(sp, 1); + } + if (sp->jpegtablesmode & JPEGTABLESMODE_HUFF) + sp->cinfo.c.optimize_coding = FALSE; + else + sp->cinfo.c.optimize_coding = TRUE; + if (downsampled_input) { + /* Need to use raw-data interface to libjpeg */ + sp->cinfo.c.raw_data_in = TRUE; + tif->tif_encoderow = JPEGEncodeRaw; + tif->tif_encodestrip = JPEGEncodeRaw; + tif->tif_encodetile = JPEGEncodeRaw; + } else { + /* Use normal interface to libjpeg */ + sp->cinfo.c.raw_data_in = FALSE; + tif->tif_encoderow = JPEGEncode; + tif->tif_encodestrip = JPEGEncode; + tif->tif_encodetile = JPEGEncode; + } + /* Start JPEG compressor */ + if (!TIFFjpeg_start_compress(sp, FALSE)) + return (0); + /* Allocate downsampled-data buffers if needed */ + if (downsampled_input) { + if (!alloc_downsampled_buffers(tif, sp->cinfo.c.comp_info, + sp->cinfo.c.num_components)) + return (0); + } + sp->scancount = 0; + + return (1); +} + +/* + * Encode a chunk of pixels. + * "Standard" case: incoming data is not downsampled. + */ +static int +JPEGEncode(TIFF* tif, tidata_t buf, tsize_t cc, tsample_t s) +{ + JPEGState *sp = JState(tif); + tsize_t nrows; + JSAMPROW bufptr[1]; + + (void) s; + assert(sp != NULL); + /* data is expected to be supplied in multiples of a scanline */ + nrows = cc / sp->bytesperline; + if (cc % sp->bytesperline) + TIFFWarning(tif->tif_name, "fractional scanline discarded"); + + while (nrows-- > 0) { + bufptr[0] = (JSAMPROW) buf; + if (TIFFjpeg_write_scanlines(sp, bufptr, 1) != 1) + return (0); + if (nrows > 0) + tif->tif_row++; + buf += sp->bytesperline; + } + return (1); +} + +/* + * Encode a chunk of pixels. + * Incoming data is expected to be downsampled per sampling factors. + */ +static int +JPEGEncodeRaw(TIFF* tif, tidata_t buf, tsize_t cc, tsample_t s) +{ + JPEGState *sp = JState(tif); + JSAMPLE* inptr; + JSAMPLE* outptr; + tsize_t nrows; + JDIMENSION clumps_per_line, nclump; + int clumpoffset, ci, xpos, ypos; + jpeg_component_info* compptr; + int samples_per_clump = sp->samplesperclump; + + (void) s; + assert(sp != NULL); + /* data is expected to be supplied in multiples of a scanline */ + nrows = cc / sp->bytesperline; + if (cc % sp->bytesperline) + TIFFWarning(tif->tif_name, "fractional scanline discarded"); + + /* Cb,Cr both have sampling factors 1, so this is correct */ + clumps_per_line = sp->cinfo.c.comp_info[1].downsampled_width; + + while (nrows-- > 0) { + /* + * Fastest way to separate the data is to make one pass + * over the scanline for each row of each component. + */ + clumpoffset = 0; /* first sample in clump */ + for (ci = 0, compptr = sp->cinfo.c.comp_info; + ci < sp->cinfo.c.num_components; + ci++, compptr++) { + int hsamp = compptr->h_samp_factor; + int vsamp = compptr->v_samp_factor; + int padding = (int) (compptr->width_in_blocks * DCTSIZE - + clumps_per_line * hsamp); + for (ypos = 0; ypos < vsamp; ypos++) { + inptr = ((JSAMPLE*) buf) + clumpoffset; + outptr = sp->ds_buffer[ci][sp->scancount*vsamp + ypos]; + if (hsamp == 1) { + /* fast path for at least Cb and Cr */ + for (nclump = clumps_per_line; nclump-- > 0; ) { + *outptr++ = inptr[0]; + inptr += samples_per_clump; + } + } else { + /* general case */ + for (nclump = clumps_per_line; nclump-- > 0; ) { + for (xpos = 0; xpos < hsamp; xpos++) + *outptr++ = inptr[xpos]; + inptr += samples_per_clump; + } + } + /* pad each scanline as needed */ + for (xpos = 0; xpos < padding; xpos++) { + *outptr = outptr[-1]; + outptr++; + } + clumpoffset += hsamp; + } + } + sp->scancount++; + if (sp->scancount >= DCTSIZE) { + int n = sp->cinfo.c.max_v_samp_factor * DCTSIZE; + if (TIFFjpeg_write_raw_data(sp, sp->ds_buffer, n) != n) + return (0); + sp->scancount = 0; + } + if (nrows > 0) + tif->tif_row++; + buf += sp->bytesperline; + } + return (1); +} + +/* + * Finish up at the end of a strip or tile. + */ +static int +JPEGPostEncode(TIFF* tif) +{ + JPEGState *sp = JState(tif); + + if (sp->scancount > 0) { + /* + * Need to emit a partial bufferload of downsampled data. + * Pad the data vertically. + */ + int ci, ypos, n; + jpeg_component_info* compptr; + + for (ci = 0, compptr = sp->cinfo.c.comp_info; + ci < sp->cinfo.c.num_components; + ci++, compptr++) { + int vsamp = compptr->v_samp_factor; + tsize_t row_width = compptr->width_in_blocks * DCTSIZE + * sizeof(JSAMPLE); + for (ypos = sp->scancount * vsamp; + ypos < DCTSIZE * vsamp; ypos++) { + _TIFFmemcpy((tdata_t)sp->ds_buffer[ci][ypos], + (tdata_t)sp->ds_buffer[ci][ypos-1], + row_width); + + } + } + n = sp->cinfo.c.max_v_samp_factor * DCTSIZE; + if (TIFFjpeg_write_raw_data(sp, sp->ds_buffer, n) != n) + return (0); + } + + return (TIFFjpeg_finish_compress(JState(tif))); +} + +static void +JPEGCleanup(TIFF* tif) +{ + if (tif->tif_data) { + JPEGState *sp = JState(tif); + TIFFjpeg_destroy(sp); /* release libjpeg resources */ + if (sp->jpegtables) /* tag value */ + _TIFFfree(sp->jpegtables); + _TIFFfree(tif->tif_data); /* release local state */ + tif->tif_data = NULL; + } +} + +static int +JPEGVSetField(TIFF* tif, ttag_t tag, va_list ap) +{ + JPEGState* sp = JState(tif); + TIFFDirectory* td = &tif->tif_dir; + uint32 v32; + + switch (tag) { + case TIFFTAG_JPEGTABLES: + v32 = va_arg(ap, uint32); + if (v32 == 0) { + /* XXX */ + return (0); + } + _TIFFsetByteArray(&sp->jpegtables, va_arg(ap, void*), + (long) v32); + sp->jpegtables_length = v32; + TIFFSetFieldBit(tif, FIELD_JPEGTABLES); + break; + case TIFFTAG_JPEGQUALITY: + sp->jpegquality = va_arg(ap, int); + return (1); /* pseudo tag */ + case TIFFTAG_JPEGCOLORMODE: + sp->jpegcolormode = va_arg(ap, int); + /* + * Mark whether returned data is up-sampled or not + * so TIFFStripSize and TIFFTileSize return values + * that reflect the true amount of data. + */ + tif->tif_flags &= ~TIFF_UPSAMPLED; + if (td->td_planarconfig == PLANARCONFIG_CONTIG) { + if (td->td_photometric == PHOTOMETRIC_YCBCR && + sp->jpegcolormode == JPEGCOLORMODE_RGB) { + tif->tif_flags |= TIFF_UPSAMPLED; + } else { + if (td->td_ycbcrsubsampling[0] != 1 || + td->td_ycbcrsubsampling[1] != 1) + ; /* XXX what about up-sampling? */ + } + } + /* + * Must recalculate cached tile size + * in case sampling state changed. + */ + tif->tif_tilesize = TIFFTileSize(tif); + return (1); /* pseudo tag */ + case TIFFTAG_JPEGTABLESMODE: + sp->jpegtablesmode = va_arg(ap, int); + return (1); /* pseudo tag */ + default: + return (*sp->vsetparent)(tif, tag, ap); + } + tif->tif_flags |= TIFF_DIRTYDIRECT; + return (1); +} + +static int +JPEGVGetField(TIFF* tif, ttag_t tag, va_list ap) +{ + JPEGState* sp = JState(tif); + + switch (tag) { + case TIFFTAG_JPEGTABLES: + /* u_short is bogus --- should be uint32 ??? */ + /* TIFFWriteNormalTag needs fixed XXX */ + *va_arg(ap, u_short*) = (u_short) sp->jpegtables_length; + *va_arg(ap, void**) = sp->jpegtables; + break; + case TIFFTAG_JPEGQUALITY: + *va_arg(ap, int*) = sp->jpegquality; + break; + case TIFFTAG_JPEGCOLORMODE: + *va_arg(ap, int*) = sp->jpegcolormode; + break; + case TIFFTAG_JPEGTABLESMODE: + *va_arg(ap, int*) = sp->jpegtablesmode; + break; + default: + return (*sp->vgetparent)(tif, tag, ap); + } + return (1); +} + +static void +JPEGPrintDir(TIFF* tif, FILE* fd, long flags) +{ + JPEGState* sp = JState(tif); + + (void) flags; + if (TIFFFieldSet(tif,FIELD_JPEGTABLES)) + fprintf(fd, " JPEG Tables: (%lu bytes)\n", + (u_long) sp->jpegtables_length); +} + +static uint32 +JPEGDefaultStripSize(TIFF* tif, uint32 s) +{ + JPEGState* sp = JState(tif); + TIFFDirectory *td = &tif->tif_dir; + + s = (*sp->defsparent)(tif, s); + if (s < td->td_imagelength) + s = TIFFroundup(s, td->td_ycbcrsubsampling[1] * DCTSIZE); + return (s); +} + +static void +JPEGDefaultTileSize(TIFF* tif, uint32* tw, uint32* th) +{ + JPEGState* sp = JState(tif); + TIFFDirectory *td = &tif->tif_dir; + + (*sp->deftparent)(tif, tw, th); + *tw = TIFFroundup(*tw, td->td_ycbcrsubsampling[0] * DCTSIZE); + *th = TIFFroundup(*th, td->td_ycbcrsubsampling[1] * DCTSIZE); +} + +int +TIFFInitJPEG(TIFF* tif, int scheme) +{ + JPEGState* sp; + + assert(scheme == COMPRESSION_JPEG); + + /* + * Allocate state block so tag methods have storage to record values. + */ + tif->tif_data = (tidata_t) _TIFFmalloc(sizeof (JPEGState)); + if (tif->tif_data == NULL) { + TIFFError("TIFFInitJPEG", "No space for JPEG state block"); + return (0); + } + sp = JState(tif); + sp->tif = tif; /* back link */ + + /* + * Merge codec-specific tag information and + * override parent get/set field methods. + */ + _TIFFMergeFieldInfo(tif, jpegFieldInfo, N(jpegFieldInfo)); + sp->vgetparent = tif->tif_vgetfield; + tif->tif_vgetfield = JPEGVGetField; /* hook for codec tags */ + sp->vsetparent = tif->tif_vsetfield; + tif->tif_vsetfield = JPEGVSetField; /* hook for codec tags */ + tif->tif_printdir = JPEGPrintDir; /* hook for codec tags */ + + /* Default values for codec-specific fields */ + sp->jpegtables = NULL; + sp->jpegtables_length = 0; + sp->jpegquality = 75; /* Default IJG quality */ + sp->jpegcolormode = JPEGCOLORMODE_RAW; + sp->jpegtablesmode = JPEGTABLESMODE_QUANT | JPEGTABLESMODE_HUFF; + + /* + * Install codec methods. + */ + tif->tif_setupdecode = JPEGSetupDecode; + tif->tif_predecode = JPEGPreDecode; + tif->tif_decoderow = JPEGDecode; + tif->tif_decodestrip = JPEGDecode; + tif->tif_decodetile = JPEGDecode; + tif->tif_setupencode = JPEGSetupEncode; + tif->tif_preencode = JPEGPreEncode; + tif->tif_postencode = JPEGPostEncode; + tif->tif_encoderow = JPEGEncode; + tif->tif_encodestrip = JPEGEncode; + tif->tif_encodetile = JPEGEncode; + tif->tif_cleanup = JPEGCleanup; + sp->defsparent = tif->tif_defstripsize; + tif->tif_defstripsize = JPEGDefaultStripSize; + sp->deftparent = tif->tif_deftilesize; + tif->tif_deftilesize = JPEGDefaultTileSize; + tif->tif_flags |= TIFF_NOBITREV; /* no bit reversal, please */ + + /* + * Initialize libjpeg. + */ + if (tif->tif_mode == O_RDONLY) { + if (!TIFFjpeg_create_decompress(sp)) + return (0); + } else { + if (!TIFFjpeg_create_compress(sp)) + return (0); + } + + return (1); +} +#endif /* JPEG_SUPPORT */ diff --git a/libtiff/tif_luv.c b/libtiff/tif_luv.c new file mode 100755 index 0000000..35d9e50 --- /dev/null +++ b/libtiff/tif_luv.c @@ -0,0 +1,1425 @@ +/* + * Copyright (c) 1997 Greg Ward Larson + * Copyright (c) 1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler, Greg Larson and Silicon Graphics may not be used in any + * advertising or publicity relating to the software without the specific, + * prior written permission of Sam Leffler, Greg Larson and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER, GREG LARSON OR SILICON GRAPHICS BE LIABLE + * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include "tiffiop.h" +#ifdef LOGLUV_SUPPORT + +/* + * TIFF Library. + * LogLuv compression support for high dynamic range images. + * + * Contributed by Greg Larson. + * + * LogLuv image support uses the TIFF library to store 16 or 10-bit + * log luminance values with 8 bits each of u and v or a 14-bit index. + * + * The codec can take as input and produce as output 32-bit IEEE float values + * as well as 16-bit integer values. A 16-bit luminance is interpreted + * as a sign bit followed by a 15-bit integer that is converted + * to and from a linear magnitude using the transformation: + * + * L = 2^( (Le+.5)/256 - 64 ) # real from 15-bit + * + * Le = floor( 256*(log2(L) + 64) ) # 15-bit from real + * + * The actual conversion to world luminance units in candelas per sq. meter + * requires an additional multiplier, which is stored in the TIFFTAG_STONITS. + * This value is usually set such that a reasonable exposure comes from + * clamping decoded luminances above 1 to 1 in the displayed image. + * + * The 16-bit values for u and v may be converted to real values by dividing + * each by 32768. (This allows for negative values, which aren't useful as + * far as we know, but are left in case of future improvements in human + * color vision.) + * + * Conversion from (u,v), which is actually the CIE (u',v') system for + * you color scientists, is accomplished by the following transformation: + * + * u = 4*x / (-2*x + 12*y + 3) + * v = 9*y / (-2*x + 12*y + 3) + * + * x = 9*u / (6*u - 16*v + 12) + * y = 4*v / (6*u - 16*v + 12) + * + * This process is greatly simplified by passing 32-bit IEEE floats + * for each of three CIE XYZ coordinates. The codec then takes care + * of conversion to and from LogLuv, though the application is still + * responsible for interpreting the TIFFTAG_STONITS calibration factor. + * + * The information is compressed into one of two basic encodings, depending on + * the setting of the compression tag, which is one of COMPRESSION_SGILOG + * or COMPRESSION_SGILOG24. For COMPRESSION_SGILOG, greyscale data is + * stored as: + * + * 1 15 + * |-+---------------| + * + * COMPRESSION_SGILOG color data is stored as: + * + * 1 15 8 8 + * |-+---------------|--------+--------| + * S Le ue ve + * + * For the 24-bit COMPRESSION_SGILOG24 color format, the data is stored as: + * + * 10 14 + * |----------|--------------| + * Le' Ce + * + * There is no sign bit in the 24-bit case, and the (u,v) chromaticity is + * encoded as an index for optimal color resolution. The 10 log bits are + * defined by the following conversions: + * + * L = 2^((Le'+.5)/64 - 12) # real from 10-bit + * + * Le' = floor( 64*(log2(L) + 12) ) # 10-bit from real + * + * The 10 bits of the smaller format may be converted into the 15 bits of + * the larger format by multiplying by 4 and adding 13314. Obviously, + * a smaller range of magnitudes is covered (about 5 orders of magnitude + * instead of 38), and the lack of a sign bit means that negative luminances + * are not allowed. (Well, they aren't allowed in the real world, either, + * but they are useful for certain types of image processing.) + * + * The desired user format is controlled by the setting the internal + * pseudo tag TIFFTAG_SGILOGDATAFMT to one of: + * SGILOGDATAFMT_FLOAT = IEEE 32-bit float XYZ values + * SGILOGDATAFMT_16BIT = 16-bit integer encodings of logL, u and v + * Raw data i/o is also possible using: + * SGILOGDATAFMT_RAW = 32-bit unsigned integer with encoded pixel + * In addition, the following decoding is provided for ease of display: + * SGILOGDATAFMT_8BIT = 8-bit default RGB gamma-corrected values + * + * For grayscale images, we provide the following data formats: + * SGILOGDATAFMT_FLOAT = IEEE 32-bit float Y values + * SGILOGDATAFMT_16BIT = 16-bit integer w/ encoded luminance + * SGILOGDATAFMT_8BIT = 8-bit gray monitor values + * + * Note that the COMPRESSION_SGILOG applies a simple run-length encoding + * scheme by separating the logL, u and v bytes for each row and applying + * a PackBits type of compression. Since the 24-bit encoding is not + * adaptive, the 32-bit color format takes less space in many cases. + */ + +#include +#include +#include +#include + +/* + * State block for each open TIFF + * file using LogLuv compression/decompression. + */ +typedef struct logLuvState LogLuvState; + +struct logLuvState { + int user_datafmt; /* user data format */ + int pixel_size; /* bytes per pixel */ + + tidata_t* tbuf; /* translation buffer */ + short tbuflen; /* buffer length */ + void (*tfunc)(LogLuvState*, tidata_t, int); + + TIFFVSetMethod vgetparent; /* super-class method */ + TIFFVSetMethod vsetparent; /* super-class method */ +}; + +#define DecoderState(tif) ((LogLuvState*) (tif)->tif_data) +#define EncoderState(tif) ((LogLuvState*) (tif)->tif_data) + +#define N(a) (sizeof(a)/sizeof(a[0])) +#define SGILOGDATAFMT_UNKNOWN -1 + +#define MINRUN 4 /* minimum run length */ + +/* + * Decode a string of 16-bit gray pixels. + */ +static int +LogL16Decode(TIFF* tif, tidata_t op, tsize_t occ, tsample_t s) +{ + LogLuvState* sp = DecoderState(tif); + int shft, i, npixels; + u_char* bp; + int16* tp; + int16 b; + int cc, rc; + + assert(s == 0); + assert(sp != NULL); + + npixels = occ / sp->pixel_size; + + if (sp->user_datafmt == SGILOGDATAFMT_16BIT) + tp = (int16*) op; + else { + assert(sp->tbuflen >= npixels); + tp = (int16*) sp->tbuf; + } + _TIFFmemset((tdata_t) tp, 0, npixels*sizeof (tp[0])); + + bp = (u_char*) tif->tif_rawcp; + cc = tif->tif_rawcc; + /* get each byte string */ + for (shft = 2*8; (shft -= 8) >= 0; ) { + for (i = 0; i < npixels && cc > 0; ) + if (*bp >= 128) { /* run */ + rc = *bp++ + (2-128); + b = (int16)*bp++ << shft; + cc -= 2; + while (rc--) + tp[i++] |= b; + } else { /* non-run */ + rc = *bp++; /* nul is noop */ + while (--cc && rc--) + tp[i++] |= (int16)*bp++ << shft; + } + if (i != npixels) { + TIFFError(tif->tif_name, + "LogL16Decode: Not enough data at row %d (short %d pixels)", + tif->tif_row, npixels - i); + tif->tif_rawcp = (tidata_t) bp; + tif->tif_rawcc = cc; + return (0); + } + } + (*sp->tfunc)(sp, op, npixels); + tif->tif_rawcp = (tidata_t) bp; + tif->tif_rawcc = cc; + return (1); +} + +/* + * Decode a string of 24-bit pixels. + */ +static int +LogLuvDecode24(TIFF* tif, tidata_t op, tsize_t occ, tsample_t s) +{ + LogLuvState* sp = DecoderState(tif); + int cc, i, npixels; + u_char* bp; + uint32* tp; + + assert(s == 0); + assert(sp != NULL); + + npixels = occ / sp->pixel_size; + + if (sp->user_datafmt == SGILOGDATAFMT_RAW) + tp = (uint32 *)op; + else { + assert(sp->tbuflen >= npixels); + tp = (uint32 *) sp->tbuf; + } + _TIFFmemset((tdata_t) tp, 0, npixels*sizeof (tp[0])); + /* copy to array of uint32 */ + bp = (u_char*) tif->tif_rawcp; + cc = tif->tif_rawcc; + for (i = 0; i < npixels && cc > 0; i++) { + tp[i] = bp[0] << 16 | bp[1] << 8 | bp[2]; + bp += 3; + cc -= 3; + } + tif->tif_rawcp = (tidata_t) bp; + tif->tif_rawcc = cc; + if (i != npixels) { + TIFFError(tif->tif_name, + "LogLuvDecode24: Not enough data at row %d (short %d pixels)", + tif->tif_row, npixels - i); + return (0); + } + (*sp->tfunc)(sp, op, npixels); + return (1); +} + +/* + * Decode a string of 32-bit pixels. + */ +static int +LogLuvDecode32(TIFF* tif, tidata_t op, tsize_t occ, tsample_t s) +{ + LogLuvState* sp; + int shft, i, npixels; + u_char* bp; + uint32* tp; + uint32 b; + int cc, rc; + + assert(s == 0); + sp = DecoderState(tif); + assert(sp != NULL); + + npixels = occ / sp->pixel_size; + + if (sp->user_datafmt == SGILOGDATAFMT_RAW) + tp = (uint32*) op; + else { + assert(sp->tbuflen >= npixels); + tp = (uint32*) sp->tbuf; + } + _TIFFmemset((tdata_t) tp, 0, npixels*sizeof (tp[0])); + + bp = (u_char*) tif->tif_rawcp; + cc = tif->tif_rawcc; + /* get each byte string */ + for (shft = 4*8; (shft -= 8) >= 0; ) { + for (i = 0; i < npixels && cc > 0; ) + if (*bp >= 128) { /* run */ + rc = *bp++ + (2-128); + b = (uint32)*bp++ << shft; + cc -= 2; + while (rc--) + tp[i++] |= b; + } else { /* non-run */ + rc = *bp++; /* nul is noop */ + while (--cc && rc--) + tp[i++] |= (uint32)*bp++ << shft; + } + if (i != npixels) { + TIFFError(tif->tif_name, + "LogLuvDecode32: Not enough data at row %d (short %d pixels)", + tif->tif_row, npixels - i); + tif->tif_rawcp = (tidata_t) bp; + tif->tif_rawcc = cc; + return (0); + } + } + (*sp->tfunc)(sp, op, npixels); + tif->tif_rawcp = (tidata_t) bp; + tif->tif_rawcc = cc; + return (1); +} + +/* + * Decode a strip of pixels. We break it into rows to + * maintain synchrony with the encode algorithm, which + * is row by row. + */ +static int +LogLuvDecodeStrip(TIFF* tif, tidata_t bp, tsize_t cc, tsample_t s) +{ + tsize_t rowlen = TIFFScanlineSize(tif); + + assert(cc%rowlen == 0); + while (cc && (*tif->tif_decoderow)(tif, bp, rowlen, s)) + bp += rowlen, cc -= rowlen; + return (cc == 0); +} + +/* + * Decode a tile of pixels. We break it into rows to + * maintain synchrony with the encode algorithm, which + * is row by row. + */ +static int +LogLuvDecodeTile(TIFF* tif, tidata_t bp, tsize_t cc, tsample_t s) +{ + tsize_t rowlen = TIFFTileRowSize(tif); + + assert(cc%rowlen == 0); + while (cc && (*tif->tif_decoderow)(tif, bp, rowlen, s)) + bp += rowlen, cc -= rowlen; + return (cc == 0); +} + +/* + * Encode a row of 16-bit pixels. + */ +static int +LogL16Encode(TIFF* tif, tidata_t bp, tsize_t cc, tsample_t s) +{ + LogLuvState* sp = EncoderState(tif); + int shft, i, j, npixels; + tidata_t op; + int16* tp; + int16 b; + int occ, rc=0, mask, beg; + + assert(s == 0); + assert(sp != NULL); + npixels = cc / sp->pixel_size; + + if (sp->user_datafmt == SGILOGDATAFMT_16BIT) + tp = (int16*) bp; + else { + tp = (int16*) sp->tbuf; + assert(sp->tbuflen >= npixels); + (*sp->tfunc)(sp, bp, npixels); + } + /* compress each byte string */ + op = tif->tif_rawcp; + occ = tif->tif_rawdatasize - tif->tif_rawcc; + for (shft = 2*8; (shft -= 8) >= 0; ) + for (i = 0; i < npixels; i += rc) { + if (occ < 4) { + tif->tif_rawcp = op; + tif->tif_rawcc = tif->tif_rawdatasize - occ; + if (!TIFFFlushData1(tif)) + return (-1); + op = tif->tif_rawcp; + occ = tif->tif_rawdatasize - tif->tif_rawcc; + } + mask = 0xff << shft; /* find next run */ + for (beg = i; beg < npixels; beg += rc) { + b = tp[beg] & mask; + rc = 1; + while (rc < 127+2 && beg+rc < npixels && + (tp[beg+rc] & mask) == b) + rc++; + if (rc >= MINRUN) + break; /* long enough */ + } + if (beg-i > 1 && beg-i < MINRUN) { + b = tp[i] & mask; /* check short run */ + j = i+1; + while ((tp[j++] & mask) == b) + if (j == beg) { + *op++ = 128-2+j-i; + *op++ = b >> shft; + occ -= 2; + i = beg; + break; + } + } + while (i < beg) { /* write out non-run */ + if ((j = beg-i) > 127) j = 127; + if (occ < j+3) { + tif->tif_rawcp = op; + tif->tif_rawcc = tif->tif_rawdatasize - occ; + if (!TIFFFlushData1(tif)) + return (-1); + op = tif->tif_rawcp; + occ = tif->tif_rawdatasize - tif->tif_rawcc; + } + *op++ = j; occ--; + while (j--) { + *op++ = tp[i++] >> shft & 0xff; + occ--; + } + } + if (rc >= MINRUN) { /* write out run */ + *op++ = 128-2+rc; + *op++ = tp[beg] >> shft & 0xff; + occ -= 2; + } else + rc = 0; + } + tif->tif_rawcp = op; + tif->tif_rawcc = tif->tif_rawdatasize - occ; + + return (0); +} + +/* + * Encode a row of 24-bit pixels. + */ +static int +LogLuvEncode24(TIFF* tif, tidata_t bp, tsize_t cc, tsample_t s) +{ + LogLuvState* sp = EncoderState(tif); + int i, npixels, occ; + tidata_t op; + uint32* tp; + + assert(s == 0); + assert(sp != NULL); + npixels = cc / sp->pixel_size; + + if (sp->user_datafmt == SGILOGDATAFMT_RAW) + tp = (uint32*) bp; + else { + tp = (uint32*) sp->tbuf; + assert(sp->tbuflen >= npixels); + (*sp->tfunc)(sp, bp, npixels); + } + /* write out encoded pixels */ + op = tif->tif_rawcp; + occ = tif->tif_rawdatasize - tif->tif_rawcc; + for (i = npixels; i--; ) { + if (occ < 3) { + tif->tif_rawcp = op; + tif->tif_rawcc = tif->tif_rawdatasize - occ; + if (!TIFFFlushData1(tif)) + return (-1); + op = tif->tif_rawcp; + occ = tif->tif_rawdatasize - tif->tif_rawcc; + } + *op++ = (tidataval_t)(*tp >> 16); + *op++ = (tidataval_t)(*tp >> 8 & 0xff); + *op++ = (tidataval_t)(*tp++ & 0xff); + occ -= 3; + } + tif->tif_rawcp = op; + tif->tif_rawcc = tif->tif_rawdatasize - occ; + + return (0); +} + +/* + * Encode a row of 32-bit pixels. + */ +static int +LogLuvEncode32(TIFF* tif, tidata_t bp, tsize_t cc, tsample_t s) +{ + LogLuvState* sp = EncoderState(tif); + int shft, i, j, npixels; + tidata_t op; + uint32* tp; + uint32 b; + int occ, rc=0, mask, beg; + + assert(s == 0); + assert(sp != NULL); + + npixels = cc / sp->pixel_size; + + if (sp->user_datafmt == SGILOGDATAFMT_RAW) + tp = (uint32*) bp; + else { + tp = (uint32*) sp->tbuf; + assert(sp->tbuflen >= npixels); + (*sp->tfunc)(sp, bp, npixels); + } + /* compress each byte string */ + op = tif->tif_rawcp; + occ = tif->tif_rawdatasize - tif->tif_rawcc; + for (shft = 4*8; (shft -= 8) >= 0; ) + for (i = 0; i < npixels; i += rc) { + if (occ < 4) { + tif->tif_rawcp = op; + tif->tif_rawcc = tif->tif_rawdatasize - occ; + if (!TIFFFlushData1(tif)) + return (-1); + op = tif->tif_rawcp; + occ = tif->tif_rawdatasize - tif->tif_rawcc; + } + mask = 0xff << shft; /* find next run */ + for (beg = i; beg < npixels; beg += rc) { + b = tp[beg] & mask; + rc = 1; + while (rc < 127+2 && beg+rc < npixels && + (tp[beg+rc] & mask) == b) + rc++; + if (rc >= MINRUN) + break; /* long enough */ + } + if (beg-i > 1 && beg-i < MINRUN) { + b = tp[i] & mask; /* check short run */ + j = i+1; + while ((tp[j++] & mask) == b) + if (j == beg) { + *op++ = (tidataval_t)(128-2+j-i); + *op++ = (tidataval_t)(b >> shft); + occ -= 2; + i = beg; + break; + } + } + while (i < beg) { /* write out non-run */ + if ((j = beg-i) > 127) j = 127; + if (occ < j+3) { + tif->tif_rawcp = op; + tif->tif_rawcc = tif->tif_rawdatasize - occ; + if (!TIFFFlushData1(tif)) + return (-1); + op = tif->tif_rawcp; + occ = tif->tif_rawdatasize - tif->tif_rawcc; + } + *op++ = j; occ--; + while (j--) { + *op++ = (tidataval_t)(tp[i++] >> shft & 0xff); + occ--; + } + } + if (rc >= MINRUN) { /* write out run */ + *op++ = 128-2+rc; + *op++ = (tidataval_t)(tp[beg] >> shft & 0xff); + occ -= 2; + } else + rc = 0; + } + tif->tif_rawcp = op; + tif->tif_rawcc = tif->tif_rawdatasize - occ; + + return (0); +} + +/* + * Encode a strip of pixels. We break it into rows to + * avoid encoding runs across row boundaries. + */ +static int +LogLuvEncodeStrip(TIFF* tif, tidata_t bp, tsize_t cc, tsample_t s) +{ + tsize_t rowlen = TIFFScanlineSize(tif); + + assert(cc%rowlen == 0); + while (cc && (*tif->tif_encoderow)(tif, bp, rowlen, s) == 0) + bp += rowlen, cc -= rowlen; + return (cc == 0); +} + +/* + * Encode a tile of pixels. We break it into rows to + * avoid encoding runs across row boundaries. + */ +static int +LogLuvEncodeTile(TIFF* tif, tidata_t bp, tsize_t cc, tsample_t s) +{ + tsize_t rowlen = TIFFTileRowSize(tif); + + assert(cc%rowlen == 0); + while (cc && (*tif->tif_encoderow)(tif, bp, rowlen, s) == 0) + bp += rowlen, cc -= rowlen; + return (cc == 0); +} + +/* + * Encode/Decode functions for converting to and from user formats. + */ +#include "uvcode.h" + +#define U_NEU 0.210526316 +#define V_NEU 0.473684211 + +#ifdef M_LN2 +#define LOGOF2 M_LN2 +#else +#define LOGOF2 0.69314718055994530942 +#endif +#define log2(x) ((1./LOGOF2)*log(x)) +#define exp2(x) exp(LOGOF2*(x)) + +#define UVSCALE 410. + +static double +pix16toY(int p16) +{ + int Le = p16 & 0x7fff; + double Y; + + if (!Le) + return (0.); + Y = exp(LOGOF2/256.*(Le+.5) - LOGOF2*64.); + if (p16 & 0x8000) + return (-Y); + return (Y); +} + +static int +pix16fromY(double Y) +{ + if (Y >= 1.84467e19) + return (0x7fff); + if (Y <= -1.84467e19) + return (0xffff); + if (Y > 5.43571e-20) + return (int)(256.*(log2(Y) + 64.)); + if (Y < -5.43571e-20) + return (~0x7fff | (int)(256.*(log2(-Y) + 64.))); + return (0); +} + +static void +L16toY(LogLuvState* sp, tidata_t op, int n) +{ + int16* l16 = (int16*) sp->tbuf; + float* yp = (float*) op; + + while (n-- > 0) + *yp++ = (float)pix16toY(*l16++); +} + +static void +L16toGry(LogLuvState* sp, tidata_t op, int n) +{ + int16* l16 = (int16*) sp->tbuf; + uint8* gp = (uint8*) op; + + while (n-- > 0) { + double Y = pix16toY(*l16++); + *gp++ = (Y <= 0.) ? 0 : (Y >= 1.) ? 255 : (int)(256.*sqrt(Y)); + } +} + +static void +L16fromY(LogLuvState* sp, tidata_t op, int n) +{ + int16* l16 = (int16*) sp->tbuf; + float* yp = (float*) op; + + while (n-- > 0) + *l16++ = pix16fromY(*yp++); +} + +static void +XYZtoRGB24(float xyz[3], uint8 rgb[3]) +{ + double r, g, b; + /* assume CCIR-709 primaries */ + r = 2.690*xyz[0] + -1.276*xyz[1] + -0.414*xyz[2]; + g = -1.022*xyz[0] + 1.978*xyz[1] + 0.044*xyz[2]; + b = 0.061*xyz[0] + -0.224*xyz[1] + 1.163*xyz[2]; + /* assume 2.0 gamma for speed */ + /* could use integer sqrt approx., but this is probably faster */ + rgb[0] = (r <= 0.) ? 0 : (r >= 1.) ? 255 : (int)(256.*sqrt(r)); + rgb[1] = (g <= 0.) ? 0 : (g >= 1.) ? 255 : (int)(256.*sqrt(g)); + rgb[2] = (b <= 0.) ? 0 : (b >= 1.) ? 255 : (int)(256.*sqrt(b)); +} + +static int +uv_encode(double u, double v) /* encode (u',v') coordinates */ +{ + register int vi, ui; + + if (v < UV_VSTART) + return(-1); + vi = (int)((v - UV_VSTART)*(1./UV_SQSIZ)); + if (vi >= UV_NVS) + return(-1); + if (u < uv_row[vi].ustart) + return(-1); + ui = (int)((u - uv_row[vi].ustart)*(1./UV_SQSIZ)); + if (ui >= uv_row[vi].nus) + return(-1); + return(uv_row[vi].ncum + ui); +} + +static int +uv_decode(double *up, double *vp, int c) /* decode (u',v') index */ +{ + int upper, lower; + register int ui, vi; + + if (c < 0 || c >= UV_NDIVS) + return(-1); + lower = 0; /* binary search */ + upper = UV_NVS; + do { + vi = (lower + upper) >> 1; + ui = c - uv_row[vi].ncum; + if (ui > 0) + lower = vi; + else if (ui < 0) + upper = vi; + else + break; + } while (upper - lower > 1); + vi = lower; + ui = c - uv_row[vi].ncum; + *up = uv_row[vi].ustart + (ui+.5)*UV_SQSIZ; + *vp = UV_VSTART + (vi+.5)*UV_SQSIZ; + return(0); +} + +static void +pix24toXYZ(uint32 p, float XYZ[3]) +{ + int Le, Ce; + double L, u, v, s, x, y; + /* decode luminance */ + Le = p >> 14 & 0x3ff; + if (Le == 0) { + XYZ[0] = XYZ[1] = XYZ[2] = 0.; + return; + } + L = exp(LOGOF2/64.*(Le+.5) - LOGOF2*12.); + /* decode color */ + Ce = p & 0x3fff; + if (uv_decode(&u, &v, Ce) < 0) { + u = U_NEU; v = V_NEU; + } + s = 1./(6.*u - 16.*v + 12.); + x = 9.*u * s; + y = 4.*v * s; + /* convert to XYZ */ + XYZ[0] = (float)(x/y * L); + XYZ[1] = (float)L; + XYZ[2] = (float)((1.-x-y)/y * L); +} + +static uint32 +pix24fromXYZ(float XYZ[3]) +{ + int Le, Ce; + double L, u, v, s; + /* encode luminance */ + L = XYZ[1]; + if (L >= 16.) + Le = 0x3ff; + else if (L <= 1./4096.) + Le = 0; + else + Le = (int)(64.*(log2(L) + 12.)); + /* encode color */ + s = XYZ[0] + 15.*XYZ[1] + 3.*XYZ[2]; + if (s == 0.) { + u = U_NEU; + v = V_NEU; + } else { + u = 4.*XYZ[0] / s; + v = 9.*XYZ[1] / s; + } + Ce = uv_encode(u, v); + if (Ce < 0) + Ce = uv_encode(U_NEU, V_NEU); + /* combine encodings */ + return (Le << 14 | Ce); +} + +static void +Luv24toXYZ(LogLuvState* sp, tidata_t op, int n) +{ + uint32* luv = (uint32*) sp->tbuf; + float* xyz = (float*) op; + + while (n-- > 0) { + pix24toXYZ(*luv, xyz); + xyz += 3; + luv++; + } +} + +static void +Luv24toLuv48(LogLuvState* sp, tidata_t op, int n) +{ + uint32* luv = (uint32*) sp->tbuf; + int16* luv3 = (int16*) op; + + while (n-- > 0) { + double u, v; + + *luv3++ = (int16)((*luv >> 12 & 0xffd) + 13314); + if (uv_decode(&u, &v, *luv&0x3fff) < 0) { + u = U_NEU; + v = V_NEU; + } + *luv3++ = (int16)(u * (1L<<15)); + *luv3++ = (int16)(v * (1L<<15)); + luv++; + } +} + +static void +Luv24toRGB(LogLuvState* sp, tidata_t op, int n) +{ + uint32* luv = (uint32*) sp->tbuf; + uint8* rgb = (uint8*) op; + + while (n-- > 0) { + float xyz[3]; + + pix24toXYZ(*luv++, xyz); + XYZtoRGB24(xyz, rgb); + rgb += 3; + } +} + +static void +Luv24fromXYZ(LogLuvState* sp, tidata_t op, int n) +{ + uint32* luv = (uint32*) sp->tbuf; + float* xyz = (float*) op; + + while (n-- > 0) { + *luv++ = pix24fromXYZ(xyz); + xyz += 3; + } +} + +static void +Luv24fromLuv48(LogLuvState* sp, tidata_t op, int n) +{ + uint32* luv = (uint32*) sp->tbuf; + int16* luv3 = (int16*) op; + + while (n-- > 0) { + int Le, Ce; + + if (luv3[0] <= 0) + Le = 0; + else if (luv3[0] >= (1<<12)+3314) + Le = (1<<10) - 1; + else + Le = (luv3[0]-3314) >> 2; + Ce = uv_encode((luv[1]+.5)/(1<<15), (luv[2]+.5)/(1<<15)); + if (Ce < 0) + Ce = uv_encode(U_NEU, V_NEU); + *luv++ = (uint32)Le << 14 | Ce; + luv3 += 3; + } +} + +static void +pix32toXYZ(uint32 p, float XYZ[3]) +{ + double L, u, v, s, x, y; + /* decode luminance */ + L = pix16toY((int)p >> 16); + if (L == 0.) { + XYZ[0] = XYZ[1] = XYZ[2] = 0.; + return; + } + /* decode color */ + u = 1./UVSCALE * ((p>>8 & 0xff) + .5); + v = 1./UVSCALE * ((p & 0xff) + .5); + s = 1./(6.*u - 16.*v + 12.); + x = 9.*u * s; + y = 4.*v * s; + /* convert to XYZ */ + XYZ[0] = (float)(x/y * L); + XYZ[1] = (float)L; + XYZ[2] = (float)((1.-x-y)/y * L); +} + +static uint32 +pix32fromXYZ(float XYZ[3]) +{ + unsigned int Le, ue, ve; + double u, v, s; + /* encode luminance */ + Le = (unsigned int)pix16fromY(XYZ[1]); + /* encode color */ + s = XYZ[0] + 15.*XYZ[1] + 3.*XYZ[2]; + if (s == 0.) { + u = U_NEU; + v = V_NEU; + } else { + u = 4.*XYZ[0] / s; + v = 9.*XYZ[1] / s; + } + if (u <= 0.) ue = 0; + else ue = (unsigned int)(UVSCALE * u); + if (ue > 255) ue = 255; + if (v <= 0.) ve = 0; + else ve = (unsigned int)(UVSCALE * v); + if (ve > 255) ve = 255; + /* combine encodings */ + return (Le << 16 | ue << 8 | ve); +} + +static void +Luv32toXYZ(LogLuvState* sp, tidata_t op, int n) +{ + uint32* luv = (uint32*) sp->tbuf; + float* xyz = (float*) op; + + while (n-- > 0) { + pix32toXYZ(*luv++, xyz); + xyz += 3; + } +} + +static void +Luv32toLuv48(LogLuvState* sp, tidata_t op, int n) +{ + uint32* luv = (uint32*) sp->tbuf; + int16* luv3 = (int16*) op; + + while (n-- > 0) { + double u, v; + + *luv3++ = (int16)(*luv >> 16); + u = 1./UVSCALE * ((*luv>>8 & 0xff) + .5); + v = 1./UVSCALE * ((*luv & 0xff) + .5); + *luv3++ = (int16)(u * (1L<<15)); + *luv3++ = (int16)(v * (1L<<15)); + luv++; + } +} + +static void +Luv32toRGB(LogLuvState* sp, tidata_t op, int n) +{ + uint32* luv = (uint32*) sp->tbuf; + uint8* rgb = (uint8*) op; + + while (n-- > 0) { + float xyz[3]; + + pix32toXYZ(*luv++, xyz); + XYZtoRGB24(xyz, rgb); + rgb += 3; + } +} + +static void +Luv32fromXYZ(LogLuvState* sp, tidata_t op, int n) +{ + uint32* luv = (uint32*) sp->tbuf; + float* xyz = (float*) op; + + while (n-- > 0) { + *luv++ = pix32fromXYZ(xyz); + xyz += 3; + } +} + +static void +Luv32fromLuv48(LogLuvState* sp, tidata_t op, int n) +{ + uint32* luv = (uint32*) sp->tbuf; + int16* luv3 = (int16*) op; + + while (n-- > 0) { + *luv++ = (uint32)luv3[0] << 16 | + (luv3[1]*(uint32)(UVSCALE+.5) >> 7 & 0xff00) | + (luv3[2]*(uint32)(UVSCALE+.5) >> 15 & 0xff); + luv3 += 3; + } +} + +static void +_logLuvNop(LogLuvState* sp, tidata_t op, int n) +{ + (void) sp; (void) op; (void) n; +} + +static int +LogL16GuessDataFmt(TIFFDirectory *td) +{ +#define PACK(s,b,f) (((b)<<6)|((s)<<3)|(f)) + switch (PACK(td->td_samplesperpixel, td->td_bitspersample, td->td_sampleformat)) { + case PACK(1, 32, SAMPLEFORMAT_IEEEFP): + return (SGILOGDATAFMT_FLOAT); + case PACK(1, 16, SAMPLEFORMAT_VOID): + case PACK(1, 16, SAMPLEFORMAT_INT): + case PACK(1, 16, SAMPLEFORMAT_UINT): + return (SGILOGDATAFMT_16BIT); + case PACK(1, 8, SAMPLEFORMAT_VOID): + case PACK(1, 8, SAMPLEFORMAT_UINT): + return (SGILOGDATAFMT_8BIT); + } +#undef PACK + return (SGILOGDATAFMT_UNKNOWN); +} + +static int +LogL16InitState(TIFF* tif) +{ + TIFFDirectory *td = &tif->tif_dir; + LogLuvState* sp = DecoderState(tif); + static const char module[] = "LogL16InitState"; + + assert(sp != NULL); + assert(td->td_photometric == PHOTOMETRIC_LOGL); + + /* for some reason, we can't do this in TIFFInitLogL16 */ + if (sp->user_datafmt == SGILOGDATAFMT_UNKNOWN) + sp->user_datafmt = LogL16GuessDataFmt(td); + switch (sp->user_datafmt) { + case SGILOGDATAFMT_FLOAT: + sp->pixel_size = sizeof (float); + break; + case SGILOGDATAFMT_16BIT: + sp->pixel_size = sizeof (int16); + break; + case SGILOGDATAFMT_8BIT: + sp->pixel_size = sizeof (uint8); + break; + default: + TIFFError(tif->tif_name, + "No support for converting user data format to LogL"); + return (0); + } + sp->tbuflen = (short)(td->td_imagewidth * td->td_rowsperstrip); + sp->tbuf = (tidata_t*) _TIFFmalloc(sp->tbuflen * sizeof (int16)); + if (sp->tbuf == NULL) { + TIFFError(module, "%s: No space for SGILog translation buffer", + tif->tif_name); + return (0); + } + return (1); +} + +static int +LogLuvGuessDataFmt(TIFFDirectory *td) +{ + int guess; + + /* + * If the user didn't tell us their datafmt, + * take our best guess from the bitspersample. + */ +#define PACK(a,b) (((a)<<3)|(b)) + switch (PACK(td->td_bitspersample, td->td_sampleformat)) { + case PACK(32, SAMPLEFORMAT_IEEEFP): + guess = SGILOGDATAFMT_FLOAT; + break; + case PACK(32, SAMPLEFORMAT_VOID): + case PACK(32, SAMPLEFORMAT_UINT): + case PACK(32, SAMPLEFORMAT_INT): + guess = SGILOGDATAFMT_RAW; + break; + case PACK(16, SAMPLEFORMAT_VOID): + case PACK(16, SAMPLEFORMAT_INT): + case PACK(16, SAMPLEFORMAT_UINT): + guess = SGILOGDATAFMT_16BIT; + break; + case PACK( 8, SAMPLEFORMAT_VOID): + case PACK( 8, SAMPLEFORMAT_UINT): + guess = SGILOGDATAFMT_8BIT; + break; + default: + guess = SGILOGDATAFMT_UNKNOWN; + break; +#undef PACK + } + /* + * Double-check samples per pixel. + */ + switch (td->td_samplesperpixel) { + case 1: + if (guess != SGILOGDATAFMT_RAW) + guess = SGILOGDATAFMT_UNKNOWN; + break; + case 3: + if (guess == SGILOGDATAFMT_RAW) + guess = SGILOGDATAFMT_UNKNOWN; + break; + default: + guess = SGILOGDATAFMT_UNKNOWN; + break; + } + return (guess); +} + +static int +LogLuvInitState(TIFF* tif) +{ + TIFFDirectory* td = &tif->tif_dir; + LogLuvState* sp = DecoderState(tif); + static const char module[] = "LogLuvInitState"; + + assert(sp != NULL); + assert(td->td_photometric == PHOTOMETRIC_LOGLUV); + + /* for some reason, we can't do this in TIFFInitLogLuv */ + if (td->td_planarconfig != PLANARCONFIG_CONTIG) { + TIFFError(module, + "SGILog compression cannot handle non-contiguous data"); + return (0); + } + if (sp->user_datafmt == SGILOGDATAFMT_UNKNOWN) + sp->user_datafmt = LogLuvGuessDataFmt(td); + switch (sp->user_datafmt) { + case SGILOGDATAFMT_FLOAT: + sp->pixel_size = 3*sizeof (float); + break; + case SGILOGDATAFMT_16BIT: + sp->pixel_size = 3*sizeof (int16); + break; + case SGILOGDATAFMT_RAW: + sp->pixel_size = sizeof (uint32); + break; + case SGILOGDATAFMT_8BIT: + sp->pixel_size = 3*sizeof (uint8); + break; + default: + TIFFError(tif->tif_name, + "No support for converting user data format to LogLuv"); + return (0); + } + sp->tbuflen = (short)(td->td_imagewidth * td->td_rowsperstrip); + sp->tbuf = (tidata_t*) _TIFFmalloc(sp->tbuflen * sizeof (uint32)); + if (sp->tbuf == NULL) { + TIFFError(module, "%s: No space for SGILog translation buffer", + tif->tif_name); + return (0); + } + return (1); +} + +static int +LogLuvSetupDecode(TIFF* tif) +{ + LogLuvState* sp = DecoderState(tif); + TIFFDirectory* td = &tif->tif_dir; + + tif->tif_postdecode = _TIFFNoPostDecode; + switch (td->td_photometric) { + case PHOTOMETRIC_LOGLUV: + if (!LogLuvInitState(tif)) + break; + if (td->td_compression == COMPRESSION_SGILOG24) { + tif->tif_decoderow = LogLuvDecode24; + switch (sp->user_datafmt) { + case SGILOGDATAFMT_FLOAT: + sp->tfunc = Luv24toXYZ; + break; + case SGILOGDATAFMT_16BIT: + sp->tfunc = Luv24toLuv48; + break; + case SGILOGDATAFMT_8BIT: + sp->tfunc = Luv24toRGB; + break; + } + } else { + tif->tif_decoderow = LogLuvDecode32; + switch (sp->user_datafmt) { + case SGILOGDATAFMT_FLOAT: + sp->tfunc = Luv32toXYZ; + break; + case SGILOGDATAFMT_16BIT: + sp->tfunc = Luv32toLuv48; + break; + case SGILOGDATAFMT_8BIT: + sp->tfunc = Luv32toRGB; + break; + } + } + return (1); + case PHOTOMETRIC_LOGL: + if (!LogL16InitState(tif)) + break; + tif->tif_decoderow = LogL16Decode; + switch (sp->user_datafmt) { + case SGILOGDATAFMT_FLOAT: + sp->tfunc = L16toY; + break; + case SGILOGDATAFMT_8BIT: + sp->tfunc = L16toGry; + break; + } + return (1); + default: + TIFFError(tif->tif_name, + "Inappropriate photometric interpretation %d for SGILog compression; %s", + td->td_photometric, "must be either LogLUV or LogL"); + break; + } + return (0); +} + +static int +LogLuvSetupEncode(TIFF* tif) +{ + LogLuvState* sp = EncoderState(tif); + TIFFDirectory* td = &tif->tif_dir; + + switch (td->td_photometric) { + case PHOTOMETRIC_LOGLUV: + if (!LogLuvInitState(tif)) + break; + if (td->td_compression == COMPRESSION_SGILOG24) { + tif->tif_encoderow = LogLuvEncode24; + switch (sp->user_datafmt) { + case SGILOGDATAFMT_FLOAT: + sp->tfunc = Luv24fromXYZ; + break; + case SGILOGDATAFMT_16BIT: + sp->tfunc = Luv24fromLuv48; + break; + case SGILOGDATAFMT_RAW: + break; + default: + goto notsupported; + } + } else { + tif->tif_encoderow = LogLuvEncode32; + switch (sp->user_datafmt) { + case SGILOGDATAFMT_FLOAT: + sp->tfunc = Luv32fromXYZ; + break; + case SGILOGDATAFMT_16BIT: + sp->tfunc = Luv32fromLuv48; + break; + case SGILOGDATAFMT_RAW: + break; + default: + goto notsupported; + } + } + break; + case PHOTOMETRIC_LOGL: + if (!LogL16InitState(tif)) + break; + tif->tif_encoderow = LogL16Encode; + switch (sp->user_datafmt) { + case SGILOGDATAFMT_FLOAT: + sp->tfunc = L16fromY; + break; + case SGILOGDATAFMT_16BIT: + break; + default: + goto notsupported; + } + break; + default: + TIFFError(tif->tif_name, + "Inappropriate photometric interpretation %d for SGILog compression; %s", + td->td_photometric, "must be either LogLUV or LogL"); + break; + } + return (1); +notsupported: + TIFFError(tif->tif_name, + "SGILog compression supported only for %s, or raw data", + td->td_photometric == PHOTOMETRIC_LOGL ? "Y, L" : "XYZ, Luv"); + return (0); +} + +static void +LogLuvClose(TIFF* tif) +{ + TIFFDirectory *td = &tif->tif_dir; + + /* + * For consistency, we always want to write out the same + * bitspersample and sampleformat for our TIFF file, + * regardless of the data format being used by the application. + * Since this routine is called after tags have been set but + * before they have been recorded in the file, we reset them here. + */ + td->td_samplesperpixel = + (td->td_photometric == PHOTOMETRIC_LOGL) ? 1 : 3; + td->td_bitspersample = 16; + td->td_sampleformat = SAMPLEFORMAT_INT; +} + +static void +LogLuvCleanup(TIFF* tif) +{ + LogLuvState* sp = (LogLuvState *)tif->tif_data; + + if (sp) { + if (sp->tbuf) + _TIFFfree(sp->tbuf); + _TIFFfree(sp); + tif->tif_data = NULL; + } +} + +static int +LogLuvVSetField(TIFF* tif, ttag_t tag, va_list ap) +{ + LogLuvState* sp = DecoderState(tif); + int bps, fmt; + + switch (tag) { + case TIFFTAG_SGILOGDATAFMT: + sp->user_datafmt = va_arg(ap, int); + /* + * Tweak the TIFF header so that the rest of libtiff knows what + * size of data will be passed between app and library, and + * assume that the app knows what it is doing and is not + * confused by these header manipulations... + */ + switch (sp->user_datafmt) { + case SGILOGDATAFMT_FLOAT: + bps = 32, fmt = SAMPLEFORMAT_IEEEFP; + break; + case SGILOGDATAFMT_16BIT: + bps = 16, fmt = SAMPLEFORMAT_INT; + break; + case SGILOGDATAFMT_RAW: + bps = 32, fmt = SAMPLEFORMAT_UINT; + break; + case SGILOGDATAFMT_8BIT: + bps = 8, fmt = SAMPLEFORMAT_UINT; + break; + default: + TIFFError(tif->tif_name, + "Unknown data format %d for LogLuv compression", + sp->user_datafmt); + return (0); + } + TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, bps); + TIFFSetField(tif, TIFFTAG_SAMPLEFORMAT, fmt); + /* + * Must recalculate sizes should bits/sample change. + */ + tif->tif_tilesize = TIFFTileSize(tif); + tif->tif_scanlinesize = TIFFScanlineSize(tif); + return (1); + default: + return (*sp->vsetparent)(tif, tag, ap); + } +} + +static int +LogLuvVGetField(TIFF* tif, ttag_t tag, va_list ap) +{ + LogLuvState *sp = (LogLuvState *)tif->tif_data; + + switch (tag) { + case TIFFTAG_SGILOGDATAFMT: + *va_arg(ap, int*) = sp->user_datafmt; + return (1); + default: + return (*sp->vgetparent)(tif, tag, ap); + } +} + +static const TIFFFieldInfo LogLuvFieldInfo[] = { + { TIFFTAG_SGILOGDATAFMT, 0, 0, TIFF_SHORT, FIELD_PSEUDO, + TRUE, FALSE, "SGILogDataFmt"} +}; + +int +TIFFInitSGILog(TIFF* tif, int scheme) +{ + static const char module[] = "TIFFInitSGILog"; + LogLuvState* sp; + + assert(scheme == COMPRESSION_SGILOG24 || scheme == COMPRESSION_SGILOG); + + /* + * Allocate state block so tag methods have storage to record values. + */ + tif->tif_data = (tidata_t) _TIFFmalloc(sizeof (LogLuvState)); + if (tif->tif_data == NULL) + goto bad; + sp = (LogLuvState*) tif->tif_data; + memset(sp, 0, sizeof (*sp)); + sp->user_datafmt = SGILOGDATAFMT_UNKNOWN; + sp->tfunc = _logLuvNop; + + /* + * Install codec methods. + * NB: tif_decoderow & tif_encoderow are filled + * in at setup time. + */ + tif->tif_setupdecode = LogLuvSetupDecode; + tif->tif_decodestrip = LogLuvDecodeStrip; + tif->tif_decodetile = LogLuvDecodeTile; + tif->tif_setupencode = LogLuvSetupEncode; + tif->tif_encodestrip = LogLuvEncodeStrip; + tif->tif_encodetile = LogLuvEncodeTile; + tif->tif_close = LogLuvClose; + tif->tif_cleanup = LogLuvCleanup; + + /* override SetField so we can handle our private pseudo-tag */ + _TIFFMergeFieldInfo(tif, LogLuvFieldInfo, N(LogLuvFieldInfo)); + sp->vgetparent = tif->tif_vgetfield; + tif->tif_vgetfield = LogLuvVGetField; /* hook for codec tags */ + sp->vsetparent = tif->tif_vsetfield; + tif->tif_vsetfield = LogLuvVSetField; /* hook for codec tags */ + + return (1); +bad: + TIFFError(module, "%s: No space for LogLuv state block", tif->tif_name); + return (0); +} +#endif /* LOGLUV_SUPPORT */ diff --git a/libtiff/tif_lzw.c b/libtiff/tif_lzw.c new file mode 100755 index 0000000..1d01130 --- /dev/null +++ b/libtiff/tif_lzw.c @@ -0,0 +1,1013 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_lzw.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include "tiffiop.h" +#ifdef LZW_SUPPORT +/* + * TIFF Library. + * Rev 5.0 Lempel-Ziv & Welch Compression Support + * + * This code is derived from the compress program whose code is + * derived from software contributed to Berkeley by James A. Woods, + * derived from original work by Spencer Thomas and Joseph Orost. + * + * The original Berkeley copyright notice appears below in its entirety. + */ +#include "tif_predict.h" + +#include +#include + +/* + * NB: The 5.0 spec describes a different algorithm than Aldus + * implements. Specifically, Aldus does code length transitions + * one code earlier than should be done (for real LZW). + * Earlier versions of this library implemented the correct + * LZW algorithm, but emitted codes in a bit order opposite + * to the TIFF spec. Thus, to maintain compatibility w/ Aldus + * we interpret MSB-LSB ordered codes to be images written w/ + * old versions of this library, but otherwise adhere to the + * Aldus "off by one" algorithm. + * + * Future revisions to the TIFF spec are expected to "clarify this issue". + */ +#define LZW_COMPAT /* include backwards compatibility code */ +/* + * Each strip of data is supposed to be terminated by a CODE_EOI. + * If the following #define is included, the decoder will also + * check for end-of-strip w/o seeing this code. This makes the + * library more robust, but also slower. + */ +#define LZW_CHECKEOS /* include checks for strips w/o EOI code */ + +#define MAXCODE(n) ((1L<<(n))-1) +/* + * The TIFF spec specifies that encoded bit + * strings range from 9 to 12 bits. + */ +#define BITS_MIN 9 /* start with 9 bits */ +#define BITS_MAX 12 /* max of 12 bit strings */ +/* predefined codes */ +#define CODE_CLEAR 256 /* code to clear string table */ +#define CODE_EOI 257 /* end-of-information code */ +#define CODE_FIRST 258 /* first free code entry */ +#define CODE_MAX MAXCODE(BITS_MAX) +#define HSIZE 9001L /* 91% occupancy */ +#define HSHIFT (13-8) +#ifdef LZW_COMPAT +/* NB: +1024 is for compatibility with old files */ +#define CSIZE (MAXCODE(BITS_MAX)+1024L) +#else +#define CSIZE (MAXCODE(BITS_MAX)+1L) +#endif + +/* + * State block for each open TIFF file using LZW + * compression/decompression. Note that the predictor + * state block must be first in this data structure. + */ +typedef struct { + TIFFPredictorState predict; /* predictor super class */ + + u_short nbits; /* # of bits/code */ + u_short maxcode; /* maximum code for lzw_nbits */ + u_short free_ent; /* next free entry in hash table */ + long nextdata; /* next bits of i/o */ + long nextbits; /* # of valid bits in lzw_nextdata */ +} LZWBaseState; + +#define lzw_nbits base.nbits +#define lzw_maxcode base.maxcode +#define lzw_free_ent base.free_ent +#define lzw_nextdata base.nextdata +#define lzw_nextbits base.nextbits + +/* + * Decoding-specific state. + */ +typedef struct code_ent { + struct code_ent *next; + u_short length; /* string len, including this token */ + u_char value; /* data value */ + u_char firstchar; /* first token of string */ +} code_t; + +typedef int (*decodeFunc)(TIFF*, tidata_t, tsize_t, tsample_t); + +typedef struct { + LZWBaseState base; + long dec_nbitsmask; /* lzw_nbits 1 bits, right adjusted */ + long dec_restart; /* restart count */ +#ifdef LZW_CHECKEOS + long dec_bitsleft; /* available bits in raw data */ +#endif + decodeFunc dec_decode; /* regular or backwards compatible */ + code_t* dec_codep; /* current recognized code */ + code_t* dec_oldcodep; /* previously recognized code */ + code_t* dec_free_entp; /* next free entry */ + code_t* dec_maxcodep; /* max available entry */ + code_t* dec_codetab; /* kept separate for small machines */ +} LZWDecodeState; + +/* + * Encoding-specific state. + */ +typedef uint16 hcode_t; /* codes fit in 16 bits */ +typedef struct { + long hash; + hcode_t code; +} hash_t; + +typedef struct { + LZWBaseState base; + int enc_oldcode; /* last code encountered */ + long enc_checkpoint; /* point at which to clear table */ +#define CHECK_GAP 10000 /* enc_ratio check interval */ + long enc_ratio; /* current compression ratio */ + long enc_incount; /* (input) data bytes encoded */ + long enc_outcount; /* encoded (output) bytes */ + tidata_t enc_rawlimit; /* bound on tif_rawdata buffer */ + hash_t* enc_hashtab; /* kept separate for small machines */ +} LZWEncodeState; + +#define LZWState(tif) ((LZWBaseState*) (tif)->tif_data) +#define DecoderState(tif) ((LZWDecodeState*) LZWState(tif)) +#define EncoderState(tif) ((LZWEncodeState*) LZWState(tif)) + +static int LZWDecode(TIFF*, tidata_t, tsize_t, tsample_t); +#ifdef LZW_COMPAT +static int LZWDecodeCompat(TIFF*, tidata_t, tsize_t, tsample_t); +#endif +static void cl_hash(LZWEncodeState*); + +/* + * LZW Decoder. + */ + +#ifdef LZW_CHECKEOS +/* + * This check shouldn't be necessary because each + * strip is suppose to be terminated with CODE_EOI. + */ +#define NextCode(_tif, _sp, _bp, _code, _get) { \ + if ((_sp)->dec_bitsleft < nbits) { \ + TIFFWarning(_tif->tif_name, \ + "LZWDecode: Strip %d not terminated with EOI code", \ + _tif->tif_curstrip); \ + _code = CODE_EOI; \ + } else { \ + _get(_sp,_bp,_code); \ + (_sp)->dec_bitsleft -= nbits; \ + } \ +} +#else +#define NextCode(tif, sp, bp, code, get) get(sp, bp, code) +#endif + +static int +LZWSetupDecode(TIFF* tif) +{ + LZWDecodeState* sp = DecoderState(tif); + static const char module[] = " LZWSetupDecode"; + int code; + + assert(sp != NULL); + if (sp->dec_codetab == NULL) { + sp->dec_codetab = (code_t*)_TIFFmalloc(CSIZE*sizeof (code_t)); + if (sp->dec_codetab == NULL) { + TIFFError(module, "No space for LZW code table"); + return (0); + } + /* + * Pre-load the table. + */ + for (code = 255; code >= 0; code--) { + sp->dec_codetab[code].value = code; + sp->dec_codetab[code].firstchar = code; + sp->dec_codetab[code].length = 1; + sp->dec_codetab[code].next = NULL; + } + } + return (1); +} + +/* + * Setup state for decoding a strip. + */ +static int +LZWPreDecode(TIFF* tif, tsample_t s) +{ + LZWDecodeState *sp = DecoderState(tif); + + (void) s; + assert(sp != NULL); + /* + * Check for old bit-reversed codes. + */ + if (tif->tif_rawdata[0] == 0 && (tif->tif_rawdata[1] & 0x1)) { +#ifdef LZW_COMPAT + if (!sp->dec_decode) { + TIFFWarning(tif->tif_name, + "Old-style LZW codes, convert file"); + /* + * Override default decoding methods with + * ones that deal with the old coding. + * Otherwise the predictor versions set + * above will call the compatibility routines + * through the dec_decode method. + */ + tif->tif_decoderow = LZWDecodeCompat; + tif->tif_decodestrip = LZWDecodeCompat; + tif->tif_decodetile = LZWDecodeCompat; + /* + * If doing horizontal differencing, must + * re-setup the predictor logic since we + * switched the basic decoder methods... + */ + (*tif->tif_setupdecode)(tif); + sp->dec_decode = LZWDecodeCompat; + } + sp->lzw_maxcode = MAXCODE(BITS_MIN); +#else /* !LZW_COMPAT */ + if (!sp->dec_decode) { + TIFFError(tif->tif_name, + "Old-style LZW codes not supported"); + sp->dec_decode = LZWDecode; + } + return (0); +#endif/* !LZW_COMPAT */ + } else { + sp->lzw_maxcode = MAXCODE(BITS_MIN)-1; + sp->dec_decode = LZWDecode; + } + sp->lzw_nbits = BITS_MIN; + sp->lzw_nextbits = 0; + sp->lzw_nextdata = 0; + + sp->dec_restart = 0; + sp->dec_nbitsmask = MAXCODE(BITS_MIN); +#ifdef LZW_CHECKEOS + sp->dec_bitsleft = tif->tif_rawcc << 3; +#endif + sp->dec_free_entp = sp->dec_codetab + CODE_FIRST; + /* + * Zero entries that are not yet filled in. We do + * this to guard against bogus input data that causes + * us to index into undefined entries. If you can + * come up with a way to safely bounds-check input codes + * while decoding then you can remove this operation. + */ + _TIFFmemset(sp->dec_free_entp, 0, (CSIZE-CODE_FIRST)*sizeof (code_t)); + sp->dec_oldcodep = &sp->dec_codetab[-1]; + sp->dec_maxcodep = &sp->dec_codetab[sp->dec_nbitsmask-1]; + return (1); +} + +/* + * Decode a "hunk of data". + */ +#define GetNextCode(sp, bp, code) { \ + nextdata = (nextdata<<8) | *(bp)++; \ + nextbits += 8; \ + if (nextbits < nbits) { \ + nextdata = (nextdata<<8) | *(bp)++; \ + nextbits += 8; \ + } \ + code = (hcode_t)((nextdata >> (nextbits-nbits)) & nbitsmask); \ + nextbits -= nbits; \ +} + +static void +codeLoop(TIFF* tif) +{ + TIFFError(tif->tif_name, + "LZWDecode: Bogus encoding, loop in the code table; scanline %d", + tif->tif_row); +} + +static int +LZWDecode(TIFF* tif, tidata_t op0, tsize_t occ0, tsample_t s) +{ + LZWDecodeState *sp = DecoderState(tif); + char *op = (char*) op0; + long occ = (long) occ0; + char *tp; + u_char *bp; + hcode_t code; + int len; + long nbits, nextbits, nextdata, nbitsmask; + code_t *codep, *free_entp, *maxcodep, *oldcodep; + + (void) s; + assert(sp != NULL); + /* + * Restart interrupted output operation. + */ + if (sp->dec_restart) { + long residue; + + codep = sp->dec_codep; + residue = codep->length - sp->dec_restart; + if (residue > occ) { + /* + * Residue from previous decode is sufficient + * to satisfy decode request. Skip to the + * start of the decoded string, place decoded + * values in the output buffer, and return. + */ + sp->dec_restart += occ; + do { + codep = codep->next; + } while (--residue > occ && codep); + if (codep) { + tp = op + occ; + do { + *--tp = codep->value; + codep = codep->next; + } while (--occ && codep); + } + return (1); + } + /* + * Residue satisfies only part of the decode request. + */ + op += residue, occ -= residue; + tp = op; + do { + int t; + --tp; + t = codep->value; + codep = codep->next; + *tp = t; + } while (--residue && codep); + sp->dec_restart = 0; + } + + bp = (u_char *)tif->tif_rawcp; + nbits = sp->lzw_nbits; + nextdata = sp->lzw_nextdata; + nextbits = sp->lzw_nextbits; + nbitsmask = sp->dec_nbitsmask; + oldcodep = sp->dec_oldcodep; + free_entp = sp->dec_free_entp; + maxcodep = sp->dec_maxcodep; + + while (occ > 0) { + NextCode(tif, sp, bp, code, GetNextCode); + if (code == CODE_EOI) + break; + if (code == CODE_CLEAR) { + free_entp = sp->dec_codetab + CODE_FIRST; + nbits = BITS_MIN; + nbitsmask = MAXCODE(BITS_MIN); + maxcodep = sp->dec_codetab + nbitsmask-1; + NextCode(tif, sp, bp, code, GetNextCode); + if (code == CODE_EOI) + break; + *op++ = code, occ--; + oldcodep = sp->dec_codetab + code; + continue; + } + codep = sp->dec_codetab + code; + + /* + * Add the new entry to the code table. + */ + assert(&sp->dec_codetab[0] <= free_entp && free_entp < &sp->dec_codetab[CSIZE]); + free_entp->next = oldcodep; + free_entp->firstchar = free_entp->next->firstchar; + free_entp->length = free_entp->next->length+1; + free_entp->value = (codep < free_entp) ? + codep->firstchar : free_entp->firstchar; + if (++free_entp > maxcodep) { + if (++nbits > BITS_MAX) /* should not happen */ + nbits = BITS_MAX; + nbitsmask = MAXCODE(nbits); + maxcodep = sp->dec_codetab + nbitsmask-1; + } + oldcodep = codep; + if (code >= 256) { + /* + * Code maps to a string, copy string + * value to output (written in reverse). + */ + if (codep->length > occ) { + /* + * String is too long for decode buffer, + * locate portion that will fit, copy to + * the decode buffer, and setup restart + * logic for the next decoding call. + */ + sp->dec_codep = codep; + do { + codep = codep->next; + } while (codep && codep->length > occ); + if (codep) { + sp->dec_restart = occ; + tp = op + occ; + do { + *--tp = codep->value; + codep = codep->next; + } while (--occ && codep); + if (codep) + codeLoop(tif); + } + break; + } + len = codep->length; + tp = op + len; + do { + int t; + --tp; + t = codep->value; + codep = codep->next; + *tp = t; + } while (codep && tp > op); + if (codep) { + codeLoop(tif); + break; + } + op += len, occ -= len; + } else + *op++ = code, occ--; + } + + tif->tif_rawcp = (tidata_t) bp; + sp->lzw_nbits = (u_short) nbits; + sp->lzw_nextdata = nextdata; + sp->lzw_nextbits = nextbits; + sp->dec_nbitsmask = nbitsmask; + sp->dec_oldcodep = oldcodep; + sp->dec_free_entp = free_entp; + sp->dec_maxcodep = maxcodep; + + if (occ > 0) { + TIFFError(tif->tif_name, + "LZWDecode: Not enough data at scanline %d (short %d bytes)", + tif->tif_row, occ); + return (0); + } + return (1); +} + +#ifdef LZW_COMPAT +/* + * Decode a "hunk of data" for old images. + */ +#define GetNextCodeCompat(sp, bp, code) { \ + nextdata |= (u_long) *(bp)++ << nextbits; \ + nextbits += 8; \ + if (nextbits < nbits) { \ + nextdata |= (u_long) *(bp)++ << nextbits; \ + nextbits += 8; \ + } \ + code = (hcode_t)(nextdata & nbitsmask); \ + nextdata >>= nbits; \ + nextbits -= nbits; \ +} + +static int +LZWDecodeCompat(TIFF* tif, tidata_t op0, tsize_t occ0, tsample_t s) +{ + LZWDecodeState *sp = DecoderState(tif); + char *op = (char*) op0; + long occ = (long) occ0; + char *tp; + u_char *bp; + int code, nbits; + long nextbits, nextdata, nbitsmask; + code_t *codep, *free_entp, *maxcodep, *oldcodep; + + (void) s; + assert(sp != NULL); + /* + * Restart interrupted output operation. + */ + if (sp->dec_restart) { + long residue; + + codep = sp->dec_codep; + residue = codep->length - sp->dec_restart; + if (residue > occ) { + /* + * Residue from previous decode is sufficient + * to satisfy decode request. Skip to the + * start of the decoded string, place decoded + * values in the output buffer, and return. + */ + sp->dec_restart += occ; + do { + codep = codep->next; + } while (--residue > occ); + tp = op + occ; + do { + *--tp = codep->value; + codep = codep->next; + } while (--occ); + return (1); + } + /* + * Residue satisfies only part of the decode request. + */ + op += residue, occ -= residue; + tp = op; + do { + *--tp = codep->value; + codep = codep->next; + } while (--residue); + sp->dec_restart = 0; + } + + bp = (u_char *)tif->tif_rawcp; + nbits = sp->lzw_nbits; + nextdata = sp->lzw_nextdata; + nextbits = sp->lzw_nextbits; + nbitsmask = sp->dec_nbitsmask; + oldcodep = sp->dec_oldcodep; + free_entp = sp->dec_free_entp; + maxcodep = sp->dec_maxcodep; + + while (occ > 0) { + NextCode(tif, sp, bp, code, GetNextCodeCompat); + if (code == CODE_EOI) + break; + if (code == CODE_CLEAR) { + free_entp = sp->dec_codetab + CODE_FIRST; + nbits = BITS_MIN; + nbitsmask = MAXCODE(BITS_MIN); + maxcodep = sp->dec_codetab + nbitsmask; + NextCode(tif, sp, bp, code, GetNextCodeCompat); + if (code == CODE_EOI) + break; + *op++ = code, occ--; + oldcodep = sp->dec_codetab + code; + continue; + } + codep = sp->dec_codetab + code; + + /* + * Add the new entry to the code table. + */ + assert(&sp->dec_codetab[0] <= free_entp && free_entp < &sp->dec_codetab[CSIZE]); + free_entp->next = oldcodep; + free_entp->firstchar = free_entp->next->firstchar; + free_entp->length = free_entp->next->length+1; + free_entp->value = (codep < free_entp) ? + codep->firstchar : free_entp->firstchar; + if (++free_entp > maxcodep) { + if (++nbits > BITS_MAX) /* should not happen */ + nbits = BITS_MAX; + nbitsmask = MAXCODE(nbits); + maxcodep = sp->dec_codetab + nbitsmask; + } + oldcodep = codep; + if (code >= 256) { + /* + * Code maps to a string, copy string + * value to output (written in reverse). + */ + if (codep->length > occ) { + /* + * String is too long for decode buffer, + * locate portion that will fit, copy to + * the decode buffer, and setup restart + * logic for the next decoding call. + */ + sp->dec_codep = codep; + do { + codep = codep->next; + } while (codep->length > occ); + sp->dec_restart = occ; + tp = op + occ; + do { + *--tp = codep->value; + codep = codep->next; + } while (--occ); + break; + } + op += codep->length, occ -= codep->length; + tp = op; + do { + *--tp = codep->value; + } while( (codep = codep->next) != NULL); + } else + *op++ = code, occ--; + } + + tif->tif_rawcp = (tidata_t) bp; + sp->lzw_nbits = nbits; + sp->lzw_nextdata = nextdata; + sp->lzw_nextbits = nextbits; + sp->dec_nbitsmask = nbitsmask; + sp->dec_oldcodep = oldcodep; + sp->dec_free_entp = free_entp; + sp->dec_maxcodep = maxcodep; + + if (occ > 0) { + TIFFError(tif->tif_name, + "LZWDecodeCompat: Not enough data at scanline %d (short %d bytes)", + tif->tif_row, occ); + return (0); + } + return (1); +} +#endif /* LZW_COMPAT */ + +/* + * LZW Encoding. + */ + +static int +LZWSetupEncode(TIFF* tif) +{ + LZWEncodeState* sp = EncoderState(tif); + static const char module[] = "LZWSetupEncode"; + + assert(sp != NULL); + sp->enc_hashtab = (hash_t*) _TIFFmalloc(HSIZE*sizeof (hash_t)); + if (sp->enc_hashtab == NULL) { + TIFFError(module, "No space for LZW hash table"); + return (0); + } + return (1); +} + +/* + * Reset encoding state at the start of a strip. + */ +static int +LZWPreEncode(TIFF* tif, tsample_t s) +{ + LZWEncodeState *sp = EncoderState(tif); + + (void) s; + assert(sp != NULL); + sp->lzw_nbits = BITS_MIN; + sp->lzw_maxcode = MAXCODE(BITS_MIN); + sp->lzw_free_ent = CODE_FIRST; + sp->lzw_nextbits = 0; + sp->lzw_nextdata = 0; + sp->enc_checkpoint = CHECK_GAP; + sp->enc_ratio = 0; + sp->enc_incount = 0; + sp->enc_outcount = 0; + /* + * The 4 here insures there is space for 2 max-sized + * codes in LZWEncode and LZWPostDecode. + */ + sp->enc_rawlimit = tif->tif_rawdata + tif->tif_rawdatasize-1 - 4; + cl_hash(sp); /* clear hash table */ + sp->enc_oldcode = (hcode_t) -1; /* generates CODE_CLEAR in LZWEncode */ + return (1); +} + +#define CALCRATIO(sp, rat) { \ + if (incount > 0x007fffff) { /* NB: shift will overflow */\ + rat = outcount >> 8; \ + rat = (rat == 0 ? 0x7fffffff : incount/rat); \ + } else \ + rat = (incount<<8) / outcount; \ +} +#define PutNextCode(op, c) { \ + nextdata = (nextdata << nbits) | c; \ + nextbits += nbits; \ + *op++ = (u_char)(nextdata >> (nextbits-8)); \ + nextbits -= 8; \ + if (nextbits >= 8) { \ + *op++ = (u_char)(nextdata >> (nextbits-8)); \ + nextbits -= 8; \ + } \ + outcount += nbits; \ +} + +/* + * Encode a chunk of pixels. + * + * Uses an open addressing double hashing (no chaining) on the + * prefix code/next character combination. We do a variant of + * Knuth's algorithm D (vol. 3, sec. 6.4) along with G. Knott's + * relatively-prime secondary probe. Here, the modular division + * first probe is gives way to a faster exclusive-or manipulation. + * Also do block compression with an adaptive reset, whereby the + * code table is cleared when the compression ratio decreases, + * but after the table fills. The variable-length output codes + * are re-sized at this point, and a CODE_CLEAR is generated + * for the decoder. + */ +static int +LZWEncode(TIFF* tif, tidata_t bp, tsize_t cc, tsample_t s) +{ + register LZWEncodeState *sp = EncoderState(tif); + register long fcode; + register hash_t *hp; + register int h, c; + hcode_t ent; + long disp; + long incount, outcount, checkpoint; + long nextdata, nextbits; + int free_ent, maxcode, nbits; + tidata_t op, limit; + + (void) s; + if (sp == NULL) + return (0); + /* + * Load local state. + */ + incount = sp->enc_incount; + outcount = sp->enc_outcount; + checkpoint = sp->enc_checkpoint; + nextdata = sp->lzw_nextdata; + nextbits = sp->lzw_nextbits; + free_ent = sp->lzw_free_ent; + maxcode = sp->lzw_maxcode; + nbits = sp->lzw_nbits; + op = tif->tif_rawcp; + limit = sp->enc_rawlimit; + ent = sp->enc_oldcode; + + if (ent == (hcode_t) -1 && cc > 0) { + /* + * NB: This is safe because it can only happen + * at the start of a strip where we know there + * is space in the data buffer. + */ + PutNextCode(op, CODE_CLEAR); + ent = *bp++; cc--; incount++; + } + while (cc > 0) { + c = *bp++; cc--; incount++; + fcode = ((long)c << BITS_MAX) + ent; + h = (c << HSHIFT) ^ ent; /* xor hashing */ +#ifdef _WINDOWS + /* + * Check hash index for an overflow. + */ + if (h >= HSIZE) + h -= HSIZE; +#endif + hp = &sp->enc_hashtab[h]; + if (hp->hash == fcode) { + ent = hp->code; + continue; + } + if (hp->hash >= 0) { + /* + * Primary hash failed, check secondary hash. + */ + disp = HSIZE - h; + if (h == 0) + disp = 1; + do { + /* + * Avoid pointer arithmetic 'cuz of + * wraparound problems with segments. + */ + if ((h -= disp) < 0) + h += HSIZE; + hp = &sp->enc_hashtab[h]; + if (hp->hash == fcode) { + ent = hp->code; + goto hit; + } + } while (hp->hash >= 0); + } + /* + * New entry, emit code and add to table. + */ + /* + * Verify there is space in the buffer for the code + * and any potential Clear code that might be emitted + * below. The value of limit is setup so that there + * are at least 4 bytes free--room for 2 codes. + */ + if (op > limit) { + tif->tif_rawcc = (tsize_t)(op - tif->tif_rawdata); + TIFFFlushData1(tif); + op = tif->tif_rawdata; + } + PutNextCode(op, ent); + ent = c; + hp->code = free_ent++; + hp->hash = fcode; + if (free_ent == CODE_MAX-1) { + /* table is full, emit clear code and reset */ + cl_hash(sp); + sp->enc_ratio = 0; + incount = 0; + outcount = 0; + free_ent = CODE_FIRST; + PutNextCode(op, CODE_CLEAR); + nbits = BITS_MIN; + maxcode = MAXCODE(BITS_MIN); + } else { + /* + * If the next entry is going to be too big for + * the code size, then increase it, if possible. + */ + if (free_ent > maxcode) { + nbits++; + assert(nbits <= BITS_MAX); + maxcode = (int) MAXCODE(nbits); + } else if (incount >= checkpoint) { + long rat; + /* + * Check compression ratio and, if things seem + * to be slipping, clear the hash table and + * reset state. The compression ratio is a + * 24+8-bit fractional number. + */ + checkpoint = incount+CHECK_GAP; + CALCRATIO(sp, rat); + if (rat <= sp->enc_ratio) { + cl_hash(sp); + sp->enc_ratio = 0; + incount = 0; + outcount = 0; + free_ent = CODE_FIRST; + PutNextCode(op, CODE_CLEAR); + nbits = BITS_MIN; + maxcode = MAXCODE(BITS_MIN); + } else + sp->enc_ratio = rat; + } + } + hit: + ; + } + + /* + * Restore global state. + */ + sp->enc_incount = incount; + sp->enc_outcount = outcount; + sp->enc_checkpoint = checkpoint; + sp->enc_oldcode = ent; + sp->lzw_nextdata = nextdata; + sp->lzw_nextbits = nextbits; + sp->lzw_free_ent = free_ent; + sp->lzw_maxcode = maxcode; + sp->lzw_nbits = nbits; + tif->tif_rawcp = op; + return (1); +} + +/* + * Finish off an encoded strip by flushing the last + * string and tacking on an End Of Information code. + */ +static int +LZWPostEncode(TIFF* tif) +{ + register LZWEncodeState *sp = EncoderState(tif); + tidata_t op = tif->tif_rawcp; + long nextbits = sp->lzw_nextbits; + long nextdata = sp->lzw_nextdata; + long outcount = sp->enc_outcount; + int nbits = sp->lzw_nbits; + + if (op > sp->enc_rawlimit) { + tif->tif_rawcc = (tsize_t)(op - tif->tif_rawdata); + TIFFFlushData1(tif); + op = tif->tif_rawdata; + } + if (sp->enc_oldcode != (hcode_t) -1) { + PutNextCode(op, sp->enc_oldcode); + sp->enc_oldcode = (hcode_t) -1; + } + PutNextCode(op, CODE_EOI); + if (nextbits > 0) + *op++ = (u_char)(nextdata << (8-nextbits)); + tif->tif_rawcc = (tsize_t)(op - tif->tif_rawdata); + return (1); +} + +/* + * Reset encoding hash table. + */ +static void +cl_hash(LZWEncodeState* sp) +{ + register hash_t *hp = &sp->enc_hashtab[HSIZE-1]; + register long i = HSIZE-8; + + do { + i -= 8; + hp[-7].hash = -1; + hp[-6].hash = -1; + hp[-5].hash = -1; + hp[-4].hash = -1; + hp[-3].hash = -1; + hp[-2].hash = -1; + hp[-1].hash = -1; + hp[ 0].hash = -1; + hp -= 8; + } while (i >= 0); + for (i += 8; i > 0; i--, hp--) + hp->hash = -1; +} + +static void +LZWCleanup(TIFF* tif) +{ + if (tif->tif_data) { + if (tif->tif_mode == O_RDONLY) { + if (DecoderState(tif)->dec_codetab) + _TIFFfree(DecoderState(tif)->dec_codetab); + } else { + if (EncoderState(tif)->enc_hashtab) + _TIFFfree(EncoderState(tif)->enc_hashtab); + } + _TIFFfree(tif->tif_data); + tif->tif_data = NULL; + } +} + +int +TIFFInitLZW(TIFF* tif, int scheme) +{ + assert(scheme == COMPRESSION_LZW); + /* + * Allocate state block so tag methods have storage to record values. + */ + if (tif->tif_mode == O_RDONLY) { + tif->tif_data = (tidata_t) _TIFFmalloc(sizeof (LZWDecodeState)); + if (tif->tif_data == NULL) + goto bad; + DecoderState(tif)->dec_codetab = NULL; + DecoderState(tif)->dec_decode = NULL; + } else { + tif->tif_data = (tidata_t) _TIFFmalloc(sizeof (LZWEncodeState)); + if (tif->tif_data == NULL) + goto bad; + EncoderState(tif)->enc_hashtab = NULL; + } + /* + * Install codec methods. + */ + tif->tif_setupdecode = LZWSetupDecode; + tif->tif_predecode = LZWPreDecode; + tif->tif_decoderow = LZWDecode; + tif->tif_decodestrip = LZWDecode; + tif->tif_decodetile = LZWDecode; + tif->tif_setupencode = LZWSetupEncode; + tif->tif_preencode = LZWPreEncode; + tif->tif_postencode = LZWPostEncode; + tif->tif_encoderow = LZWEncode; + tif->tif_encodestrip = LZWEncode; + tif->tif_encodetile = LZWEncode; + tif->tif_cleanup = LZWCleanup; + /* + * Setup predictor setup. + */ + (void) TIFFPredictorInit(tif); + return (1); +bad: + TIFFError("TIFFInitLZW", "No space for LZW state block"); + return (0); +} + +/* + * Copyright (c) 1985, 1986 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * James A. Woods, derived from original work by Spencer Thomas + * and Joseph Orost. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ +#endif /* LZW_SUPPORT */ diff --git a/libtiff/tif_msdos.c b/libtiff/tif_msdos.c new file mode 100755 index 0000000..6135b77 --- /dev/null +++ b/libtiff/tif_msdos.c @@ -0,0 +1,179 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_msdos.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library MSDOS-specific Routines. + */ +#if defined(__WATCOMC__) || defined(__BORLANDC__) || defined(_MSC_VER) +#include /* for open, close, etc. function prototypes */ +#include +#endif +#include "tiffiop.h" + +static tsize_t +_tiffReadProc(thandle_t fd, tdata_t buf, tsize_t size) +{ + return (read((int) fd, buf, size)); +} + +static tsize_t +_tiffWriteProc(thandle_t fd, tdata_t buf, tsize_t size) +{ + return (write((int) fd, buf, size)); +} + +static toff_t +_tiffSeekProc(thandle_t fd, toff_t off, int whence) +{ + return (lseek((int) fd, (off_t) off, whence)); +} + +static int +_tiffCloseProc(thandle_t fd) +{ + return (close((int) fd)); +} + +#include + +static toff_t +_tiffSizeProc(thandle_t fd) +{ + struct stat sb; + return (fstat((int) fd, &sb) < 0 ? 0 : sb.st_size); +} + +static int +_tiffMapProc(thandle_t fd, tdata_t* pbase, toff_t* psize) +{ + return (0); +} + +static void +_tiffUnmapProc(thandle_t fd, tdata_t base, toff_t size) +{ +} + +/* + * Open a TIFF file descriptor for read/writing. + */ +TIFF* +TIFFFdOpen(int fd, const char* name, const char* mode) +{ + TIFF* tif; + + tif = TIFFClientOpen(name, mode, + (void*) fd, + _tiffReadProc, _tiffWriteProc, _tiffSeekProc, _tiffCloseProc, + _tiffSizeProc, _tiffMapProc, _tiffUnmapProc); + if (tif) + tif->tif_fd = fd; + return (tif); +} + +/* + * Open a TIFF file for read/writing. + */ +TIFF* +TIFFOpen(const char* name, const char* mode) +{ + static const char module[] = "TIFFOpen"; + int m, fd; + + m = _TIFFgetMode(mode, module); + if (m == -1) + return ((TIFF*)0); + fd = open(name, m|O_BINARY, 0666); + if (fd < 0) { + TIFFError(module, "%s: Cannot open", name); + return ((TIFF*)0); + } + return (TIFFFdOpen(fd, name, mode)); +} + +#ifdef __GNUC__ +extern char* malloc(); +extern char* realloc(); +#else +#include +#endif + +tdata_t +_TIFFmalloc(tsize_t s) +{ + return (malloc((size_t) s)); +} + +void +_TIFFfree(tdata_t p) +{ + free(p); +} + +tdata_t +_TIFFrealloc(tdata_t p, tsize_t s) +{ + return (realloc(p, (size_t) s)); +} + +void +_TIFFmemset(tdata_t p, int v, tsize_t c) +{ + memset(p, v, (size_t) c); +} + +void +_TIFFmemcpy(tdata_t d, const tdata_t s, tsize_t c) +{ + memcpy(d, s, (size_t) c); +} + +int +_TIFFmemcmp(const tdata_t p1, const tdata_t p2, tsize_t c) +{ + return (memcmp(p1, p2, (size_t) c)); +} + +static void +msdosWarningHandler(const char* module, const char* fmt, va_list ap) +{ + if (module != NULL) + fprintf(stderr, "%s: ", module); + fprintf(stderr, "Warning, "); + vfprintf(stderr, fmt, ap); + fprintf(stderr, ".\n"); +} +TIFFErrorHandler _TIFFwarningHandler = msdosWarningHandler; + +static void +msdosErrorHandler(const char* module, const char* fmt, va_list ap) +{ + if (module != NULL) + fprintf(stderr, "%s: ", module); + vfprintf(stderr, fmt, ap); + fprintf(stderr, ".\n"); +} +TIFFErrorHandler _TIFFerrorHandler = msdosErrorHandler; diff --git a/libtiff/tif_next.c b/libtiff/tif_next.c new file mode 100755 index 0000000..1063c73 --- /dev/null +++ b/libtiff/tif_next.c @@ -0,0 +1,142 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_next.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include "tiffiop.h" +#ifdef NEXT_SUPPORT +/* + * TIFF Library. + * + * NeXT 2-bit Grey Scale Compression Algorithm Support + */ + +#define SETPIXEL(op, v) { \ + switch (npixels++ & 3) { \ + case 0: op[0] = (v) << 6; break; \ + case 1: op[0] |= (v) << 4; break; \ + case 2: op[0] |= (v) << 2; break; \ + case 3: *op++ |= (v); break; \ + } \ +} + +#define LITERALROW 0x00 +#define LITERALSPAN 0x40 +#define WHITE ((1<<2)-1) + +static int +NeXTDecode(TIFF* tif, tidata_t buf, tsize_t occ, tsample_t s) +{ + register u_char *bp, *op; + register tsize_t cc; + register int n; + tidata_t row; + tsize_t scanline; + + (void) s; + /* + * Each scanline is assumed to start off as all + * white (we assume a PhotometricInterpretation + * of ``min-is-black''). + */ + for (op = buf, cc = occ; cc-- > 0;) + *op++ = 0xff; + + bp = (u_char *)tif->tif_rawcp; + cc = tif->tif_rawcc; + scanline = tif->tif_scanlinesize; + for (row = buf; (long)occ > 0; occ -= scanline, row += scanline) { + n = *bp++, cc--; + switch (n) { + case LITERALROW: + /* + * The entire scanline is given as literal values. + */ + if (cc < scanline) + goto bad; + _TIFFmemcpy(row, bp, scanline); + bp += scanline; + cc -= scanline; + break; + case LITERALSPAN: { + int off; + /* + * The scanline has a literal span + * that begins at some offset. + */ + off = (bp[0] * 256) + bp[1]; + n = (bp[2] * 256) + bp[3]; + if (cc < 4+n) + goto bad; + _TIFFmemcpy(row+off, bp+4, n); + bp += 4+n; + cc -= 4+n; + break; + } + default: { + register int npixels = 0, grey; + u_long imagewidth = tif->tif_dir.td_imagewidth; + + /* + * The scanline is composed of a sequence + * of constant color ``runs''. We shift + * into ``run mode'' and interpret bytes + * as codes of the form + * until we've filled the scanline. + */ + op = row; + for (;;) { + grey = (n>>6) & 0x3; + n &= 0x3f; + while (n-- > 0) + SETPIXEL(op, grey); + if (npixels >= (int) imagewidth) + break; + if (cc == 0) + goto bad; + n = *bp++, cc--; + } + break; + } + } + } + tif->tif_rawcp = (tidata_t) bp; + tif->tif_rawcc = cc; + return (1); +bad: + TIFFError(tif->tif_name, "NeXTDecode: Not enough data for scanline %ld", + (long) tif->tif_row); + return (0); +} + +int +TIFFInitNeXT(TIFF* tif, int scheme) +{ + (void) scheme; + tif->tif_decoderow = NeXTDecode; + tif->tif_decodestrip = NeXTDecode; + tif->tif_decodetile = NeXTDecode; + return (1); +} +#endif /* NEXT_SUPPORT */ diff --git a/libtiff/tif_open.c b/libtiff/tif_open.c new file mode 100755 index 0000000..9ebd69a --- /dev/null +++ b/libtiff/tif_open.c @@ -0,0 +1,477 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_open.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library. + */ +#include "tiffiop.h" + +void _TIFFSetDefaultCompressionState(TIFF* tif); + +static const long typemask[13] = { + 0L, /* TIFF_NOTYPE */ + 0x000000ffL, /* TIFF_BYTE */ + 0xffffffffL, /* TIFF_ASCII */ + 0x0000ffffL, /* TIFF_SHORT */ + 0xffffffffL, /* TIFF_LONG */ + 0xffffffffL, /* TIFF_RATIONAL */ + 0x000000ffL, /* TIFF_SBYTE */ + 0x000000ffL, /* TIFF_UNDEFINED */ + 0x0000ffffL, /* TIFF_SSHORT */ + 0xffffffffL, /* TIFF_SLONG */ + 0xffffffffL, /* TIFF_SRATIONAL */ + 0xffffffffL, /* TIFF_FLOAT */ + 0xffffffffL, /* TIFF_DOUBLE */ +}; +static const int bigTypeshift[13] = { + 0, /* TIFF_NOTYPE */ + 24, /* TIFF_BYTE */ + 0, /* TIFF_ASCII */ + 16, /* TIFF_SHORT */ + 0, /* TIFF_LONG */ + 0, /* TIFF_RATIONAL */ + 24, /* TIFF_SBYTE */ + 24, /* TIFF_UNDEFINED */ + 16, /* TIFF_SSHORT */ + 0, /* TIFF_SLONG */ + 0, /* TIFF_SRATIONAL */ + 0, /* TIFF_FLOAT */ + 0, /* TIFF_DOUBLE */ +}; +static const int litTypeshift[13] = { + 0, /* TIFF_NOTYPE */ + 0, /* TIFF_BYTE */ + 0, /* TIFF_ASCII */ + 0, /* TIFF_SHORT */ + 0, /* TIFF_LONG */ + 0, /* TIFF_RATIONAL */ + 0, /* TIFF_SBYTE */ + 0, /* TIFF_UNDEFINED */ + 0, /* TIFF_SSHORT */ + 0, /* TIFF_SLONG */ + 0, /* TIFF_SRATIONAL */ + 0, /* TIFF_FLOAT */ + 0, /* TIFF_DOUBLE */ +}; + +/* + * Initialize the shift & mask tables, and the + * byte swapping state according to the file + * contents and the machine architecture. + */ +static void +TIFFInitOrder(TIFF* tif, int magic, int bigendian) +{ + tif->tif_typemask = typemask; + if (magic == TIFF_BIGENDIAN) { + tif->tif_typeshift = bigTypeshift; + if (!bigendian) + tif->tif_flags |= TIFF_SWAB; + } else { + tif->tif_typeshift = litTypeshift; + if (bigendian) + tif->tif_flags |= TIFF_SWAB; + } +} + +int +_TIFFgetMode(const char* mode, const char* module) +{ + int m = -1; + + switch (mode[0]) { + case 'r': + m = O_RDONLY; + if (mode[1] == '+') + m = O_RDWR; + break; + case 'w': + case 'a': + m = O_RDWR|O_CREAT; + if (mode[0] == 'w') + m |= O_TRUNC; + break; + default: + TIFFError(module, "\"%s\": Bad mode", mode); + break; + } + return (m); +} + +TIFF* +TIFFClientOpen( + const char* name, const char* mode, + thandle_t clientdata, + TIFFReadWriteProc readproc, + TIFFReadWriteProc writeproc, + TIFFSeekProc seekproc, + TIFFCloseProc closeproc, + TIFFSizeProc sizeproc, + TIFFMapFileProc mapproc, + TIFFUnmapFileProc unmapproc +) +{ + static const char module[] = "TIFFClientOpen"; + TIFF *tif; + int m, bigendian; + const char* cp; + + m = _TIFFgetMode(mode, module); + if (m == -1) + goto bad2; + tif = (TIFF *)_TIFFmalloc(sizeof (TIFF) + strlen(name) + 1); + if (tif == NULL) { + TIFFError(module, "%s: Out of memory (TIFF structure)", name); + goto bad2; + } + _TIFFmemset(tif, 0, sizeof (*tif)); + tif->tif_name = (char *)tif + sizeof (TIFF); + strcpy(tif->tif_name, name); + tif->tif_mode = m &~ (O_CREAT|O_TRUNC); + tif->tif_curdir = (tdir_t) -1; /* non-existent directory */ + tif->tif_curoff = 0; + tif->tif_curstrip = (tstrip_t) -1; /* invalid strip */ + tif->tif_row = (uint32) -1; /* read/write pre-increment */ + tif->tif_clientdata = clientdata; + tif->tif_readproc = readproc; + tif->tif_writeproc = writeproc; + tif->tif_seekproc = seekproc; + tif->tif_closeproc = closeproc; + tif->tif_sizeproc = sizeproc; + tif->tif_mapproc = mapproc; + tif->tif_unmapproc = unmapproc; + _TIFFSetDefaultCompressionState(tif); /* setup default state */ + /* + * Default is to return data MSB2LSB and enable the + * use of memory-mapped files and strip chopping when + * a file is opened read-only. + */ + tif->tif_flags = FILLORDER_MSB2LSB; + if (m == O_RDONLY) +#ifdef STRIPCHOP_DEFAULT + tif->tif_flags |= TIFF_MAPPED|STRIPCHOP_DEFAULT; +#else + tif->tif_flags |= TIFF_MAPPED; +#endif + + { union { int32 i; char c[4]; } u; u.i = 1; bigendian = u.c[0] == 0; } + /* + * Process library-specific flags in the open mode string. + * The following flags may be used to control intrinsic library + * behaviour that may or may not be desirable (usually for + * compatibility with some application that claims to support + * TIFF but only supports some braindead idea of what the + * vendor thinks TIFF is): + * + * 'l' use little-endian byte order for creating a file + * 'b' use big-endian byte order for creating a file + * 'L' read/write information using LSB2MSB bit order + * 'B' read/write information using MSB2LSB bit order + * 'H' read/write information using host bit order + * 'M' enable use of memory-mapped files when supported + * 'm' disable use of memory-mapped files + * 'C' enable strip chopping support when reading + * 'c' disable strip chopping support + * + * The use of the 'l' and 'b' flags is strongly discouraged. + * These flags are provided solely because numerous vendors, + * typically on the PC, do not correctly support TIFF; they + * only support the Intel little-endian byte order. This + * support is not configured by default because it supports + * the violation of the TIFF spec that says that readers *MUST* + * support both byte orders. It is strongly recommended that + * you not use this feature except to deal with busted apps + * that write invalid TIFF. And even in those cases you should + * bang on the vendors to fix their software. + * + * The 'L', 'B', and 'H' flags are intended for applications + * that can optimize operations on data by using a particular + * bit order. By default the library returns data in MSB2LSB + * bit order for compatibiltiy with older versions of this + * library. Returning data in the bit order of the native cpu + * makes the most sense but also requires applications to check + * the value of the FillOrder tag; something they probabyl do + * not do right now. + * + * The 'M' and 'm' flags are provided because some virtual memory + * systems exhibit poor behaviour when large images are mapped. + * These options permit clients to control the use of memory-mapped + * files on a per-file basis. + * + * The 'C' and 'c' flags are provided because the library support + * for chopping up large strips into multiple smaller strips is not + * application-transparent and as such can cause problems. The 'c' + * option permits applications that only want to look at the tags, + * for example, to get the unadulterated TIFF tag information. + */ + for (cp = mode; *cp; cp++) + switch (*cp) { + case 'b': + if ((m&O_CREAT) && !bigendian) + tif->tif_flags |= TIFF_SWAB; + break; + case 'l': + if ((m&O_CREAT) && bigendian) + tif->tif_flags |= TIFF_SWAB; + break; + case 'B': + tif->tif_flags = (tif->tif_flags &~ TIFF_FILLORDER) | + FILLORDER_MSB2LSB; + break; + case 'L': + tif->tif_flags = (tif->tif_flags &~ TIFF_FILLORDER) | + FILLORDER_LSB2MSB; + break; + case 'H': + tif->tif_flags = (tif->tif_flags &~ TIFF_FILLORDER) | + HOST_FILLORDER; + break; + case 'M': + if (m == O_RDONLY) + tif->tif_flags |= TIFF_MAPPED; + break; + case 'm': + if (m == O_RDONLY) + tif->tif_flags &= ~TIFF_MAPPED; + break; + case 'C': + if (m == O_RDONLY) + tif->tif_flags |= TIFF_STRIPCHOP; + break; + case 'c': + if (m == O_RDONLY) + tif->tif_flags &= ~TIFF_STRIPCHOP; + break; + } + /* + * Read in TIFF header. + */ + if (!ReadOK(tif, &tif->tif_header, sizeof (TIFFHeader))) { + if (tif->tif_mode == O_RDONLY) { + TIFFError(name, "Cannot read TIFF header"); + goto bad; + } + /* + * Setup header and write. + */ + tif->tif_header.tiff_magic = tif->tif_flags & TIFF_SWAB + ? (bigendian ? TIFF_LITTLEENDIAN : TIFF_BIGENDIAN) + : (bigendian ? TIFF_BIGENDIAN : TIFF_LITTLEENDIAN); + tif->tif_header.tiff_version = TIFF_VERSION; + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabShort(&tif->tif_header.tiff_version); + tif->tif_header.tiff_diroff = 0; /* filled in later */ + if (!WriteOK(tif, &tif->tif_header, sizeof (TIFFHeader))) { + TIFFError(name, "Error writing TIFF header"); + goto bad; + } + /* + * Setup the byte order handling. + */ + TIFFInitOrder(tif, tif->tif_header.tiff_magic, bigendian); + /* + * Setup default directory. + */ + if (!TIFFDefaultDirectory(tif)) + goto bad; + tif->tif_diroff = 0; + return (tif); + } + /* + * Setup the byte order handling. + */ + if (tif->tif_header.tiff_magic != TIFF_BIGENDIAN && + tif->tif_header.tiff_magic != TIFF_LITTLEENDIAN) { + TIFFError(name, "Not a TIFF file, bad magic number %d (0x%x)", + tif->tif_header.tiff_magic, + tif->tif_header.tiff_magic); + goto bad; + } + TIFFInitOrder(tif, tif->tif_header.tiff_magic, bigendian); + /* + * Swap header if required. + */ + if (tif->tif_flags & TIFF_SWAB) { + TIFFSwabShort(&tif->tif_header.tiff_version); + TIFFSwabLong(&tif->tif_header.tiff_diroff); + } + /* + * Now check version (if needed, it's been byte-swapped). + * Note that this isn't actually a version number, it's a + * magic number that doesn't change (stupid). + */ + if (tif->tif_header.tiff_version != TIFF_VERSION) { + TIFFError(name, + "Not a TIFF file, bad version number %d (0x%x)", + tif->tif_header.tiff_version, + tif->tif_header.tiff_version); + goto bad; + } + tif->tif_flags |= TIFF_MYBUFFER; + tif->tif_rawcp = tif->tif_rawdata = 0; + tif->tif_rawdatasize = 0; + /* + * Setup initial directory. + */ + switch (mode[0]) { + case 'r': + tif->tif_nextdiroff = tif->tif_header.tiff_diroff; + /* + * Try to use a memory-mapped file if the client + * has not explicitly suppressed usage with the + * 'm' flag in the open mode (see above). + */ + if ((tif->tif_flags & TIFF_MAPPED) && + !TIFFMapFileContents(tif, (tdata_t*) &tif->tif_base, &tif->tif_size)) + tif->tif_flags &= ~TIFF_MAPPED; + if (TIFFReadDirectory(tif)) { + tif->tif_rawcc = -1; + tif->tif_flags |= TIFF_BUFFERSETUP; + return (tif); + } + break; + case 'a': + /* + * New directories are automatically append + * to the end of the directory chain when they + * are written out (see TIFFWriteDirectory). + */ + if (!TIFFDefaultDirectory(tif)) + goto bad; + return (tif); + } +bad: + tif->tif_mode = O_RDONLY; /* XXX avoid flush */ + TIFFClose(tif); + return ((TIFF*)0); +bad2: + (void) (*closeproc)(clientdata); + return ((TIFF*)0); +} + +/* + * Query functions to access private data. + */ + +/* + * Return open file's name. + */ +const char * +TIFFFileName(TIFF* tif) +{ + return (tif->tif_name); +} + +/* + * Return open file's I/O descriptor. + */ +int +TIFFFileno(TIFF* tif) +{ + return (tif->tif_fd); +} + +/* + * Return read/write mode. + */ +int +TIFFGetMode(TIFF* tif) +{ + return (tif->tif_mode); +} + +/* + * Return nonzero if file is organized in + * tiles; zero if organized as strips. + */ +int +TIFFIsTiled(TIFF* tif) +{ + return (isTiled(tif)); +} + +/* + * Return current row being read/written. + */ +uint32 +TIFFCurrentRow(TIFF* tif) +{ + return (tif->tif_row); +} + +/* + * Return index of the current directory. + */ +tdir_t +TIFFCurrentDirectory(TIFF* tif) +{ + return (tif->tif_curdir); +} + +/* + * Return current strip. + */ +tstrip_t +TIFFCurrentStrip(TIFF* tif) +{ + return (tif->tif_curstrip); +} + +/* + * Return current tile. + */ +ttile_t +TIFFCurrentTile(TIFF* tif) +{ + return (tif->tif_curtile); +} + +/* + * Return nonzero if the file has byte-swapped data. + */ +int +TIFFIsByteSwapped(TIFF* tif) +{ + return ((tif->tif_flags & TIFF_SWAB) != 0); +} + +/* + * Return nonzero if the data is returned up-sampled. + */ +int +TIFFIsUpSampled(TIFF* tif) +{ + return (isUpSampled(tif)); +} + +/* + * Return nonzero if the data is returned in MSB-to-LSB bit order. + */ +int +TIFFIsMSB2LSB(TIFF* tif) +{ + return (isFillOrder(tif, FILLORDER_MSB2LSB)); +} diff --git a/libtiff/tif_packbits.c b/libtiff/tif_packbits.c new file mode 100755 index 0000000..de21bb0 --- /dev/null +++ b/libtiff/tif_packbits.c @@ -0,0 +1,261 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_packbits.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include "tiffiop.h" +#ifdef PACKBITS_SUPPORT +/* + * TIFF Library. + * + * PackBits Compression Algorithm Support + */ +#include +#include + +static int +PackBitsPreEncode(TIFF* tif, tsample_t s) +{ + (void) s; + /* + * Calculate the scanline/tile-width size in bytes. + */ + if (isTiled(tif)) + tif->tif_data = (tidata_t) TIFFTileRowSize(tif); + else + tif->tif_data = (tidata_t) TIFFScanlineSize(tif); + return (1); +} + +/* + * NB: tidata is the type representing *(tidata_t); + * if tidata_t is made signed then this type must + * be adjusted accordingly. + */ +typedef unsigned char tidata; + +/* + * Encode a run of pixels. + */ +static int +PackBitsEncode(TIFF* tif, tidata_t buf, tsize_t cc, tsample_t s) +{ + u_char* bp = (u_char*) buf; + tidata_t op, ep, lastliteral; + long n, slop; + int b; + enum { BASE, LITERAL, RUN, LITERAL_RUN } state; + + (void) s; + op = tif->tif_rawcp; + ep = tif->tif_rawdata + tif->tif_rawdatasize; + state = BASE; + lastliteral = 0; + while (cc > 0) { + /* + * Find the longest string of identical bytes. + */ + b = *bp++, cc--, n = 1; + for (; cc > 0 && b == *bp; cc--, bp++) + n++; + again: + if (op + 2 >= ep) { /* insure space for new data */ + /* + * Be careful about writing the last + * literal. Must write up to that point + * and then copy the remainder to the + * front of the buffer. + */ + if (state == LITERAL || state == LITERAL_RUN) { + slop = op - lastliteral; + tif->tif_rawcc += lastliteral - tif->tif_rawcp; + if (!TIFFFlushData1(tif)) + return (-1); + op = tif->tif_rawcp; + while (slop-- > 0) + *op++ = *lastliteral++; + lastliteral = tif->tif_rawcp; + } else { + tif->tif_rawcc += op - tif->tif_rawcp; + if (!TIFFFlushData1(tif)) + return (-1); + op = tif->tif_rawcp; + } + } + switch (state) { + case BASE: /* initial state, set run/literal */ + if (n > 1) { + state = RUN; + if (n > 128) { + *op++ = (tidata) -127; + *op++ = b; + n -= 128; + goto again; + } + *op++ = (tidataval_t)(-(n-1)); + *op++ = b; + } else { + lastliteral = op; + *op++ = 0; + *op++ = b; + state = LITERAL; + } + break; + case LITERAL: /* last object was literal string */ + if (n > 1) { + state = LITERAL_RUN; + if (n > 128) { + *op++ = (tidata) -127; + *op++ = b; + n -= 128; + goto again; + } + *op++ = (tidataval_t)(-(n-1)); /* encode run */ + *op++ = b; + } else { /* extend literal */ + if (++(*lastliteral) == 127) + state = BASE; + *op++ = b; + } + break; + case RUN: /* last object was run */ + if (n > 1) { + if (n > 128) { + *op++ = (tidata) -127; + *op++ = b; + n -= 128; + goto again; + } + *op++ = (tidataval_t)(-(n-1)); + *op++ = b; + } else { + lastliteral = op; + *op++ = 0; + *op++ = b; + state = LITERAL; + } + break; + case LITERAL_RUN: /* literal followed by a run */ + /* + * Check to see if previous run should + * be converted to a literal, in which + * case we convert literal-run-literal + * to a single literal. + */ + if (n == 1 && op[-2] == (tidata) -1 && + *lastliteral < 126) { + state = (((*lastliteral) += 2) == 127 ? + BASE : LITERAL); + op[-2] = op[-1]; /* replicate */ + } else + state = RUN; + goto again; + } + } + tif->tif_rawcc += op - tif->tif_rawcp; + tif->tif_rawcp = op; + return (1); +} + +/* + * Encode a rectangular chunk of pixels. We break it up + * into row-sized pieces to insure that encoded runs do + * not span rows. Otherwise, there can be problems with + * the decoder if data is read, for example, by scanlines + * when it was encoded by strips. + */ +static int +PackBitsEncodeChunk(TIFF* tif, tidata_t bp, tsize_t cc, tsample_t s) +{ + tsize_t rowsize = (tsize_t) tif->tif_data; + + assert(rowsize > 0); + while ((long)cc > 0) { + if (PackBitsEncode(tif, bp, rowsize, s) < 0) + return (-1); + bp += rowsize; + cc -= rowsize; + } + return (1); +} + +static int +PackBitsDecode(TIFF* tif, tidata_t op, tsize_t occ, tsample_t s) +{ + char *bp; + tsize_t cc; + long n; + int b; + + (void) s; + bp = (char*) tif->tif_rawcp; + cc = tif->tif_rawcc; + while (cc > 0 && (long)occ > 0) { + n = (long) *bp++, cc--; + /* + * Watch out for compilers that + * don't sign extend chars... + */ + if (n >= 128) + n -= 256; + if (n < 0) { /* replicate next byte -n+1 times */ + if (n == -128) /* nop */ + continue; + n = -n + 1; + occ -= n; + b = *bp++, cc--; + while (n-- > 0) + *op++ = b; + } else { /* copy next n+1 bytes literally */ + _TIFFmemcpy(op, bp, ++n); + op += n; occ -= n; + bp += n; cc -= n; + } + } + tif->tif_rawcp = (tidata_t) bp; + tif->tif_rawcc = cc; + if (occ > 0) { + TIFFError(tif->tif_name, + "PackBitsDecode: Not enough data for scanline %ld", + (long) tif->tif_row); + return (0); + } + /* check for buffer overruns? */ + return (1); +} + +int +TIFFInitPackBits(TIFF* tif, int scheme) +{ + (void) scheme; + tif->tif_decoderow = PackBitsDecode; + tif->tif_decodestrip = PackBitsDecode; + tif->tif_decodetile = PackBitsDecode; + tif->tif_preencode = PackBitsPreEncode; + tif->tif_encoderow = PackBitsEncode; + tif->tif_encodestrip = PackBitsEncodeChunk; + tif->tif_encodetile = PackBitsEncodeChunk; + return (1); +} +#endif /* PACKBITS_SUPPORT */ diff --git a/libtiff/tif_pixarlog.c b/libtiff/tif_pixarlog.c new file mode 100755 index 0000000..3bc0a28 --- /dev/null +++ b/libtiff/tif_pixarlog.c @@ -0,0 +1,1309 @@ +/* + * Copyright (c) 1996-1997 Sam Leffler + * Copyright (c) 1996 Pixar + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Pixar, Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Pixar, Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL PIXAR, SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include "tiffiop.h" +#ifdef PIXARLOG_SUPPORT + +/* + * TIFF Library. + * PixarLog Compression Support + * + * Contributed by Dan McCoy. + * + * PixarLog film support uses the TIFF library to store companded + * 11 bit values into a tiff file, which are compressed using the + * zip compressor. + * + * The codec can take as input and produce as output 32-bit IEEE float values + * as well as 16-bit or 8-bit unsigned integer values. + * + * On writing any of the above are converted into the internal + * 11-bit log format. In the case of 8 and 16 bit values, the + * input is assumed to be unsigned linear color values that represent + * the range 0-1. In the case of IEEE values, the 0-1 range is assumed to + * be the normal linear color range, in addition over 1 values are + * accepted up to a value of about 25.0 to encode "hot" hightlights and such. + * The encoding is lossless for 8-bit values, slightly lossy for the + * other bit depths. The actual color precision should be better + * than the human eye can perceive with extra room to allow for + * error introduced by further image computation. As with any quantized + * color format, it is possible to perform image calculations which + * expose the quantization error. This format should certainly be less + * susceptable to such errors than standard 8-bit encodings, but more + * susceptable than straight 16-bit or 32-bit encodings. + * + * On reading the internal format is converted to the desired output format. + * The program can request which format it desires by setting the internal + * pseudo tag TIFFTAG_PIXARLOGDATAFMT to one of these possible values: + * PIXARLOGDATAFMT_FLOAT = provide IEEE float values. + * PIXARLOGDATAFMT_16BIT = provide unsigned 16-bit integer values + * PIXARLOGDATAFMT_8BIT = provide unsigned 8-bit integer values + * + * alternately PIXARLOGDATAFMT_8BITABGR provides unsigned 8-bit integer + * values with the difference that if there are exactly three or four channels + * (rgb or rgba) it swaps the channel order (bgr or abgr). + * + * PIXARLOGDATAFMT_11BITLOG provides the internal encoding directly + * packed in 16-bit values. However no tools are supplied for interpreting + * these values. + * + * "hot" (over 1.0) areas written in floating point get clamped to + * 1.0 in the integer data types. + * + * When the file is closed after writing, the bit depth and sample format + * are set always to appear as if 8-bit data has been written into it. + * That way a naive program unaware of the particulars of the encoding + * gets the format it is most likely able to handle. + * + * The codec does it's own horizontal differencing step on the coded + * values so the libraries predictor stuff should be turned off. + * The codec also handle byte swapping the encoded values as necessary + * since the library does not have the information necessary + * to know the bit depth of the raw unencoded buffer. + * + */ + +#include "tif_predict.h" +#include "zlib.h" +#include "zutil.h" + +#include +#include +#include +#include + +/* Tables for converting to/from 11 bit coded values */ + +#define TSIZE 2048 /* decode table size (11-bit tokens) */ +#define TSIZEP1 2049 /* Plus one for slop */ +#define ONE 1250 /* token value of 1.0 exactly */ +#define RATIO 1.004 /* nominal ratio for log part */ + +#define CODE_MASK 0x7ff /* 11 bits. */ + +static float Fltsize; +static float LogK1, LogK2; + +#define REPEAT(n, op) { int i; i=n; do { i--; op; } while (i>0); } + +static void +horizontalAccumulateF(uint16 *wp, int n, int stride, float *op, + float *ToLinearF) +{ + register unsigned int cr, cg, cb, ca, mask; + register float t0, t1, t2, t3; + + if (n >= stride) { + mask = CODE_MASK; + if (stride == 3) { + t0 = ToLinearF[cr = wp[0]]; + t1 = ToLinearF[cg = wp[1]]; + t2 = ToLinearF[cb = wp[2]]; + op[0] = t0; + op[1] = t1; + op[2] = t2; + n -= 3; + while (n > 0) { + wp += 3; + op += 3; + n -= 3; + t0 = ToLinearF[(cr += wp[0]) & mask]; + t1 = ToLinearF[(cg += wp[1]) & mask]; + t2 = ToLinearF[(cb += wp[2]) & mask]; + op[0] = t0; + op[1] = t1; + op[2] = t2; + } + } else if (stride == 4) { + t0 = ToLinearF[cr = wp[0]]; + t1 = ToLinearF[cg = wp[1]]; + t2 = ToLinearF[cb = wp[2]]; + t3 = ToLinearF[ca = wp[3]]; + op[0] = t0; + op[1] = t1; + op[2] = t2; + op[3] = t3; + n -= 4; + while (n > 0) { + wp += 4; + op += 4; + n -= 4; + t0 = ToLinearF[(cr += wp[0]) & mask]; + t1 = ToLinearF[(cg += wp[1]) & mask]; + t2 = ToLinearF[(cb += wp[2]) & mask]; + t3 = ToLinearF[(ca += wp[3]) & mask]; + op[0] = t0; + op[1] = t1; + op[2] = t2; + op[3] = t3; + } + } else { + REPEAT(stride, *op = ToLinearF[*wp&mask]; wp++; op++) + n -= stride; + while (n > 0) { + REPEAT(stride, + wp[stride] += *wp; *op = ToLinearF[*wp&mask]; wp++; op++) + n -= stride; + } + } + } +} + +static void +horizontalAccumulate12(uint16 *wp, int n, int stride, int16 *op, + float *ToLinearF) +{ + register unsigned int cr, cg, cb, ca, mask; + register float t0, t1, t2, t3; + +#define SCALE12 2048.0 +#define CLAMP12(t) (((t) < 3071) ? (uint16) (t) : 3071) + + if (n >= stride) { + mask = CODE_MASK; + if (stride == 3) { + t0 = ToLinearF[cr = wp[0]] * SCALE12; + t1 = ToLinearF[cg = wp[1]] * SCALE12; + t2 = ToLinearF[cb = wp[2]] * SCALE12; + op[0] = CLAMP12(t0); + op[1] = CLAMP12(t1); + op[2] = CLAMP12(t2); + n -= 3; + while (n > 0) { + wp += 3; + op += 3; + n -= 3; + t0 = ToLinearF[(cr += wp[0]) & mask] * SCALE12; + t1 = ToLinearF[(cg += wp[1]) & mask] * SCALE12; + t2 = ToLinearF[(cb += wp[2]) & mask] * SCALE12; + op[0] = CLAMP12(t0); + op[1] = CLAMP12(t1); + op[2] = CLAMP12(t2); + } + } else if (stride == 4) { + t0 = ToLinearF[cr = wp[0]] * SCALE12; + t1 = ToLinearF[cg = wp[1]] * SCALE12; + t2 = ToLinearF[cb = wp[2]] * SCALE12; + t3 = ToLinearF[ca = wp[3]] * SCALE12; + op[0] = CLAMP12(t0); + op[1] = CLAMP12(t1); + op[2] = CLAMP12(t2); + op[3] = CLAMP12(t3); + n -= 4; + while (n > 0) { + wp += 4; + op += 4; + n -= 4; + t0 = ToLinearF[(cr += wp[0]) & mask] * SCALE12; + t1 = ToLinearF[(cg += wp[1]) & mask] * SCALE12; + t2 = ToLinearF[(cb += wp[2]) & mask] * SCALE12; + t3 = ToLinearF[(ca += wp[3]) & mask] * SCALE12; + op[0] = CLAMP12(t0); + op[1] = CLAMP12(t1); + op[2] = CLAMP12(t2); + op[3] = CLAMP12(t3); + } + } else { + REPEAT(stride, t0 = ToLinearF[*wp&mask] * SCALE12; + *op = CLAMP12(t0); wp++; op++) + n -= stride; + while (n > 0) { + REPEAT(stride, + wp[stride] += *wp; t0 = ToLinearF[wp[stride]&mask]*SCALE12; + *op = CLAMP12(t0); wp++; op++) + n -= stride; + } + } + } +} + +static void +horizontalAccumulate16(uint16 *wp, int n, int stride, uint16 *op, + uint16 *ToLinear16) +{ + register unsigned int cr, cg, cb, ca, mask; + + if (n >= stride) { + mask = CODE_MASK; + if (stride == 3) { + op[0] = ToLinear16[cr = wp[0]]; + op[1] = ToLinear16[cg = wp[1]]; + op[2] = ToLinear16[cb = wp[2]]; + n -= 3; + while (n > 0) { + wp += 3; + op += 3; + n -= 3; + op[0] = ToLinear16[(cr += wp[0]) & mask]; + op[1] = ToLinear16[(cg += wp[1]) & mask]; + op[2] = ToLinear16[(cb += wp[2]) & mask]; + } + } else if (stride == 4) { + op[0] = ToLinear16[cr = wp[0]]; + op[1] = ToLinear16[cg = wp[1]]; + op[2] = ToLinear16[cb = wp[2]]; + op[3] = ToLinear16[ca = wp[3]]; + n -= 4; + while (n > 0) { + wp += 4; + op += 4; + n -= 4; + op[0] = ToLinear16[(cr += wp[0]) & mask]; + op[1] = ToLinear16[(cg += wp[1]) & mask]; + op[2] = ToLinear16[(cb += wp[2]) & mask]; + op[3] = ToLinear16[(ca += wp[3]) & mask]; + } + } else { + REPEAT(stride, *op = ToLinear16[*wp&mask]; wp++; op++) + n -= stride; + while (n > 0) { + REPEAT(stride, + wp[stride] += *wp; *op = ToLinear16[*wp&mask]; wp++; op++) + n -= stride; + } + } + } +} + +/* + * Returns the log encoded 11-bit values with the horizontal + * differencing undone. + */ +static void +horizontalAccumulate11(uint16 *wp, int n, int stride, uint16 *op) +{ + register unsigned int cr, cg, cb, ca, mask; + + if (n >= stride) { + mask = CODE_MASK; + if (stride == 3) { + op[0] = cr = wp[0]; op[1] = cg = wp[1]; op[2] = cb = wp[2]; + n -= 3; + while (n > 0) { + wp += 3; + op += 3; + n -= 3; + op[0] = (cr += wp[0]) & mask; + op[1] = (cg += wp[1]) & mask; + op[2] = (cb += wp[2]) & mask; + } + } else if (stride == 4) { + op[0] = cr = wp[0]; op[1] = cg = wp[1]; + op[2] = cb = wp[2]; op[3] = ca = wp[3]; + n -= 4; + while (n > 0) { + wp += 4; + op += 4; + n -= 4; + op[0] = (cr += wp[0]) & mask; + op[1] = (cg += wp[1]) & mask; + op[2] = (cb += wp[2]) & mask; + op[3] = (ca += wp[3]) & mask; + } + } else { + REPEAT(stride, *op = *wp&mask; wp++; op++) + n -= stride; + while (n > 0) { + REPEAT(stride, + wp[stride] += *wp; *op = *wp&mask; wp++; op++) + n -= stride; + } + } + } +} + +static void +horizontalAccumulate8(uint16 *wp, int n, int stride, unsigned char *op, + unsigned char *ToLinear8) +{ + register unsigned int cr, cg, cb, ca, mask; + + if (n >= stride) { + mask = CODE_MASK; + if (stride == 3) { + op[0] = ToLinear8[cr = wp[0]]; + op[1] = ToLinear8[cg = wp[1]]; + op[2] = ToLinear8[cb = wp[2]]; + n -= 3; + while (n > 0) { + n -= 3; + wp += 3; + op += 3; + op[0] = ToLinear8[(cr += wp[0]) & mask]; + op[1] = ToLinear8[(cg += wp[1]) & mask]; + op[2] = ToLinear8[(cb += wp[2]) & mask]; + } + } else if (stride == 4) { + op[0] = ToLinear8[cr = wp[0]]; + op[1] = ToLinear8[cg = wp[1]]; + op[2] = ToLinear8[cb = wp[2]]; + op[3] = ToLinear8[ca = wp[3]]; + n -= 4; + while (n > 0) { + n -= 4; + wp += 4; + op += 4; + op[0] = ToLinear8[(cr += wp[0]) & mask]; + op[1] = ToLinear8[(cg += wp[1]) & mask]; + op[2] = ToLinear8[(cb += wp[2]) & mask]; + op[3] = ToLinear8[(ca += wp[3]) & mask]; + } + } else { + REPEAT(stride, *op = ToLinear8[*wp&mask]; wp++; op++) + n -= stride; + while (n > 0) { + REPEAT(stride, + wp[stride] += *wp; *op = ToLinear8[*wp&mask]; wp++; op++) + n -= stride; + } + } + } +} + + +static void +horizontalAccumulate8abgr(uint16 *wp, int n, int stride, unsigned char *op, + unsigned char *ToLinear8) +{ + register unsigned int cr, cg, cb, ca, mask; + register unsigned char t0, t1, t2, t3; + + if (n >= stride) { + mask = CODE_MASK; + if (stride == 3) { + op[0] = 0; + t1 = ToLinear8[cb = wp[2]]; + t2 = ToLinear8[cg = wp[1]]; + t3 = ToLinear8[cr = wp[0]]; + op[1] = t1; + op[2] = t2; + op[3] = t3; + n -= 3; + while (n > 0) { + n -= 3; + wp += 3; + op += 4; + op[0] = 0; + t1 = ToLinear8[(cb += wp[2]) & mask]; + t2 = ToLinear8[(cg += wp[1]) & mask]; + t3 = ToLinear8[(cr += wp[0]) & mask]; + op[1] = t1; + op[2] = t2; + op[3] = t3; + } + } else if (stride == 4) { + t0 = ToLinear8[ca = wp[3]]; + t1 = ToLinear8[cb = wp[2]]; + t2 = ToLinear8[cg = wp[1]]; + t3 = ToLinear8[cr = wp[0]]; + op[0] = t0; + op[1] = t1; + op[2] = t2; + op[3] = t3; + n -= 4; + while (n > 0) { + n -= 4; + wp += 4; + op += 4; + t0 = ToLinear8[(ca += wp[3]) & mask]; + t1 = ToLinear8[(cb += wp[2]) & mask]; + t2 = ToLinear8[(cg += wp[1]) & mask]; + t3 = ToLinear8[(cr += wp[0]) & mask]; + op[0] = t0; + op[1] = t1; + op[2] = t2; + op[3] = t3; + } + } else { + REPEAT(stride, *op = ToLinear8[*wp&mask]; wp++; op++) + n -= stride; + while (n > 0) { + REPEAT(stride, + wp[stride] += *wp; *op = ToLinear8[*wp&mask]; wp++; op++) + n -= stride; + } + } + } +} + +/* + * State block for each open TIFF + * file using PixarLog compression/decompression. + */ +typedef struct { + TIFFPredictorState predict; + z_stream stream; + uint16 *tbuf; + uint16 stride; + int state; + int user_datafmt; + int quality; +#define PLSTATE_INIT 1 + + TIFFVSetMethod vgetparent; /* super-class method */ + TIFFVSetMethod vsetparent; /* super-class method */ + + float *ToLinearF; + uint16 *ToLinear16; + unsigned char *ToLinear8; + uint16 *FromLT2; + uint16 *From14; /* Really for 16-bit data, but we shift down 2 */ + uint16 *From8; + +} PixarLogState; + +static int +PixarLogMakeTables(PixarLogState *sp) +{ + +/* + * We make several tables here to convert between various external + * representations (float, 16-bit, and 8-bit) and the internal + * 11-bit companded representation. The 11-bit representation has two + * distinct regions. A linear bottom end up through .018316 in steps + * of about .000073, and a region of constant ratio up to about 25. + * These floating point numbers are stored in the main table ToLinearF. + * All other tables are derived from this one. The tables (and the + * ratios) are continuous at the internal seam. + */ + + int nlin, lt2size; + int i, j; + double b, c, linstep, max; + double k, v, dv, r, lr2, r2; + float *ToLinearF; + uint16 *ToLinear16; + unsigned char *ToLinear8; + uint16 *FromLT2; + uint16 *From14; /* Really for 16-bit data, but we shift down 2 */ + uint16 *From8; + + c = log(RATIO); + nlin = 1./c; /* nlin must be an integer */ + c = 1./nlin; + b = exp(-c*ONE); /* multiplicative scale factor [b*exp(c*ONE) = 1] */ + linstep = b*c*exp(1.); + + LogK1 = 1./c; /* if (v >= 2) token = k1*log(v*k2) */ + LogK2 = 1./b; + lt2size = (2./linstep)+1; + FromLT2 = (uint16 *)_TIFFmalloc(lt2size*sizeof(uint16)); + From14 = (uint16 *)_TIFFmalloc(16384*sizeof(uint16)); + From8 = (uint16 *)_TIFFmalloc(256*sizeof(uint16)); + ToLinearF = (float *)_TIFFmalloc(TSIZEP1 * sizeof(float)); + ToLinear16 = (uint16 *)_TIFFmalloc(TSIZEP1 * sizeof(uint16)); + ToLinear8 = (unsigned char *)_TIFFmalloc(TSIZEP1 * sizeof(unsigned char)); + if (FromLT2 == NULL || From14 == NULL || From8 == NULL || + ToLinearF == NULL || ToLinear16 == NULL || ToLinear8 == NULL) { + if (FromLT2) _TIFFfree(FromLT2); + if (From14) _TIFFfree(From14); + if (From8) _TIFFfree(From8); + if (ToLinearF) _TIFFfree(ToLinearF); + if (ToLinear16) _TIFFfree(ToLinear16); + if (ToLinear8) _TIFFfree(ToLinear8); + sp->FromLT2 = NULL; + sp->From14 = NULL; + sp->From8 = NULL; + sp->ToLinearF = NULL; + sp->ToLinear16 = NULL; + sp->ToLinear8 = NULL; + return 0; + } + + j = 0; + + for (i = 0; i < nlin; i++) { + v = i * linstep; + ToLinearF[j++] = v; + } + + for (i = nlin; i < TSIZE; i++) + ToLinearF[j++] = b*exp(c*i); + + ToLinearF[2048] = ToLinearF[2047]; + + for (i = 0; i < TSIZEP1; i++) { + v = ToLinearF[i]*65535.0 + 0.5; + ToLinear16[i] = (v > 65535.0) ? 65535 : v; + v = ToLinearF[i]*255.0 + 0.5; + ToLinear8[i] = (v > 255.0) ? 255 : v; + } + + j = 0; + for (i = 0; i < lt2size; i++) { + if ((i*linstep)*(i*linstep) > ToLinearF[j]*ToLinearF[j+1]) + j++; + FromLT2[i] = j; + } + + /* + * Since we lose info anyway on 16-bit data, we set up a 14-bit + * table and shift 16-bit values down two bits on input. + * saves a little table space. + */ + j = 0; + for (i = 0; i < 16384; i++) { + while ((i/16383.)*(i/16383.) > ToLinearF[j]*ToLinearF[j+1]) + j++; + From14[i] = j; + } + + j = 0; + for (i = 0; i < 256; i++) { + while ((i/255.)*(i/255.) > ToLinearF[j]*ToLinearF[j+1]) + j++; + From8[i] = j; + } + + Fltsize = lt2size/2; + + sp->ToLinearF = ToLinearF; + sp->ToLinear16 = ToLinear16; + sp->ToLinear8 = ToLinear8; + sp->FromLT2 = FromLT2; + sp->From14 = From14; + sp->From8 = From8; + + return 1; +} + +#define DecoderState(tif) ((PixarLogState*) (tif)->tif_data) +#define EncoderState(tif) ((PixarLogState*) (tif)->tif_data) + +static int PixarLogEncode(TIFF*, tidata_t, tsize_t, tsample_t); +static int PixarLogDecode(TIFF*, tidata_t, tsize_t, tsample_t); + +#define N(a) (sizeof(a)/sizeof(a[0])) +#define PIXARLOGDATAFMT_UNKNOWN -1 + +static int +PixarLogGuessDataFmt(TIFFDirectory *td) +{ + int guess = PIXARLOGDATAFMT_UNKNOWN; + int format = td->td_sampleformat; + + /* If the user didn't tell us his datafmt, + * take our best guess from the bitspersample. + */ + switch (td->td_bitspersample) { + case 32: + if (format == SAMPLEFORMAT_IEEEFP) + guess = PIXARLOGDATAFMT_FLOAT; + break; + case 16: + if (format == SAMPLEFORMAT_VOID || format == SAMPLEFORMAT_UINT) + guess = PIXARLOGDATAFMT_16BIT; + break; + case 12: + if (format == SAMPLEFORMAT_VOID || format == SAMPLEFORMAT_INT) + guess = PIXARLOGDATAFMT_12BITPICIO; + break; + case 11: + if (format == SAMPLEFORMAT_VOID || format == SAMPLEFORMAT_UINT) + guess = PIXARLOGDATAFMT_11BITLOG; + break; + case 8: + if (format == SAMPLEFORMAT_VOID || format == SAMPLEFORMAT_UINT) + guess = PIXARLOGDATAFMT_8BIT; + break; + } + + return guess; +} + +static int +PixarLogSetupDecode(TIFF* tif) +{ + TIFFDirectory *td = &tif->tif_dir; + PixarLogState* sp = DecoderState(tif); + static const char module[] = "PixarLogSetupDecode"; + + assert(sp != NULL); + + /* Make sure no byte swapping happens on the data + * after decompression. */ + tif->tif_postdecode = _TIFFNoPostDecode; + + /* for some reason, we can't do this in TIFFInitPixarLog */ + + sp->stride = (td->td_planarconfig == PLANARCONFIG_CONTIG ? + td->td_samplesperpixel : 1); + sp->tbuf = (uint16 *) _TIFFmalloc(sp->stride * + td->td_imagewidth * td->td_rowsperstrip * sizeof(uint16)); + if (sp->user_datafmt == PIXARLOGDATAFMT_UNKNOWN) + sp->user_datafmt = PixarLogGuessDataFmt(td); + if (sp->user_datafmt == PIXARLOGDATAFMT_UNKNOWN) { + TIFFError(module, + "PixarLog compression can't handle bits depth/data format combination (depth: %d)", + td->td_bitspersample); + return (0); + } + + if (inflateInit(&sp->stream) != Z_OK) { + TIFFError(module, "%s: %s", tif->tif_name, sp->stream.msg); + return (0); + } else { + sp->state |= PLSTATE_INIT; + return (1); + } +} + +/* + * Setup state for decoding a strip. + */ +static int +PixarLogPreDecode(TIFF* tif, tsample_t s) +{ + TIFFDirectory *td = &tif->tif_dir; + PixarLogState* sp = DecoderState(tif); + + (void) s; + assert(sp != NULL); + sp->stream.next_in = tif->tif_rawdata; + sp->stream.avail_in = tif->tif_rawcc; + return (inflateReset(&sp->stream) == Z_OK); +} + +static int +PixarLogDecode(TIFF* tif, tidata_t op, tsize_t occ, tsample_t s) +{ + TIFFDirectory *td = &tif->tif_dir; + PixarLogState* sp = DecoderState(tif); + static const char module[] = "PixarLogDecode"; + int i, nsamples, llen; + uint16 *up; + + switch (sp->user_datafmt) { + case PIXARLOGDATAFMT_FLOAT: + nsamples = occ / sizeof(float); /* XXX float == 32 bits */ + break; + case PIXARLOGDATAFMT_16BIT: + case PIXARLOGDATAFMT_12BITPICIO: + case PIXARLOGDATAFMT_11BITLOG: + nsamples = occ / sizeof(uint16); /* XXX uint16 == 16 bits */ + break; + case PIXARLOGDATAFMT_8BIT: + case PIXARLOGDATAFMT_8BITABGR: + nsamples = occ; + break; + default: + TIFFError(tif->tif_name, + "%d bit input not supported in PixarLog", + td->td_bitspersample); + return 0; + } + + llen = sp->stride * td->td_imagewidth; + + (void) s; + assert(sp != NULL); + sp->stream.next_out = (unsigned char *) sp->tbuf; + sp->stream.avail_out = nsamples * sizeof(uint16); + do { + int state = inflate(&sp->stream, Z_PARTIAL_FLUSH); + if (state == Z_STREAM_END) { + break; /* XXX */ + } + if (state == Z_DATA_ERROR) { + TIFFError(module, + "%s: Decoding error at scanline %d, %s", + tif->tif_name, tif->tif_row, sp->stream.msg); + if (inflateSync(&sp->stream) != Z_OK) + return (0); + continue; + } + if (state != Z_OK) { + TIFFError(module, "%s: zlib error: %s", + tif->tif_name, sp->stream.msg); + return (0); + } + } while (sp->stream.avail_out > 0); + + /* hopefully, we got all the bytes we needed */ + if (sp->stream.avail_out != 0) { + TIFFError(module, + "%s: Not enough data at scanline %d (short %d bytes)", + tif->tif_name, tif->tif_row, sp->stream.avail_out); + return (0); + } + + up = sp->tbuf; + /* Swap bytes in the data if from a different endian machine. */ + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabArrayOfShort(up, nsamples); + + for (i = 0; i < nsamples; i += llen, up += llen) { + switch (sp->user_datafmt) { + case PIXARLOGDATAFMT_FLOAT: + horizontalAccumulateF(up, llen, sp->stride, + (float *)op, sp->ToLinearF); + op += llen * sizeof(float); + break; + case PIXARLOGDATAFMT_16BIT: + horizontalAccumulate16(up, llen, sp->stride, + (uint16 *)op, sp->ToLinear16); + op += llen * sizeof(uint16); + break; + case PIXARLOGDATAFMT_12BITPICIO: + horizontalAccumulate12(up, llen, sp->stride, + (int16 *)op, sp->ToLinearF); + op += llen * sizeof(int16); + break; + case PIXARLOGDATAFMT_11BITLOG: + horizontalAccumulate11(up, llen, sp->stride, + (uint16 *)op); + op += llen * sizeof(uint16); + break; + case PIXARLOGDATAFMT_8BIT: + horizontalAccumulate8(up, llen, sp->stride, + (unsigned char *)op, sp->ToLinear8); + op += llen * sizeof(unsigned char); + break; + case PIXARLOGDATAFMT_8BITABGR: + horizontalAccumulate8abgr(up, llen, sp->stride, + (unsigned char *)op, sp->ToLinear8); + op += llen * sizeof(unsigned char); + break; + default: + TIFFError(tif->tif_name, + "PixarLogDecode: unsupported bits/sample: %d", + td->td_bitspersample); + return (0); + } + } + + return (1); +} + +static int +PixarLogSetupEncode(TIFF* tif) +{ + TIFFDirectory *td = &tif->tif_dir; + PixarLogState* sp = EncoderState(tif); + static const char module[] = "PixarLogSetupEncode"; + + assert(sp != NULL); + + /* for some reason, we can't do this in TIFFInitPixarLog */ + + sp->stride = (td->td_planarconfig == PLANARCONFIG_CONTIG ? + td->td_samplesperpixel : 1); + sp->tbuf = (uint16 *) _TIFFmalloc(sp->stride * + td->td_imagewidth * td->td_rowsperstrip * sizeof(uint16)); + if (sp->user_datafmt == PIXARLOGDATAFMT_UNKNOWN) + sp->user_datafmt = PixarLogGuessDataFmt(td); + if (sp->user_datafmt == PIXARLOGDATAFMT_UNKNOWN) { + TIFFError(module, "PixarLog compression can't handle %d bit linear encodings", td->td_bitspersample); + return (0); + } + + if (deflateInit(&sp->stream, sp->quality) != Z_OK) { + TIFFError(module, "%s: %s", tif->tif_name, sp->stream.msg); + return (0); + } else { + sp->state |= PLSTATE_INIT; + return (1); + } +} + +/* + * Reset encoding state at the start of a strip. + */ +static int +PixarLogPreEncode(TIFF* tif, tsample_t s) +{ + TIFFDirectory *td = &tif->tif_dir; + PixarLogState *sp = EncoderState(tif); + + (void) s; + assert(sp != NULL); + sp->stream.next_out = tif->tif_rawdata; + sp->stream.avail_out = tif->tif_rawdatasize; + return (deflateReset(&sp->stream) == Z_OK); +} + +static void +horizontalDifferenceF(float *ip, int n, int stride, uint16 *wp, uint16 *FromLT2) +{ + + register int r1, g1, b1, a1, r2, g2, b2, a2, mask; + register float fltsize = Fltsize; + +#define CLAMP(v) ( (v<(float)0.) ? 0 \ + : (v<(float)2.) ? FromLT2[(int)(v*fltsize)] \ + : (v>(float)24.2) ? 2047 \ + : LogK1*log(v*LogK2) + 0.5 ) + + mask = CODE_MASK; + if (n >= stride) { + if (stride == 3) { + r2 = wp[0] = CLAMP(ip[0]); g2 = wp[1] = CLAMP(ip[1]); + b2 = wp[2] = CLAMP(ip[2]); + n -= 3; + while (n > 0) { + n -= 3; + wp += 3; + ip += 3; + r1 = CLAMP(ip[0]); wp[0] = (r1-r2) & mask; r2 = r1; + g1 = CLAMP(ip[1]); wp[1] = (g1-g2) & mask; g2 = g1; + b1 = CLAMP(ip[2]); wp[2] = (b1-b2) & mask; b2 = b1; + } + } else if (stride == 4) { + r2 = wp[0] = CLAMP(ip[0]); g2 = wp[1] = CLAMP(ip[1]); + b2 = wp[2] = CLAMP(ip[2]); a2 = wp[3] = CLAMP(ip[3]); + n -= 4; + while (n > 0) { + n -= 4; + wp += 4; + ip += 4; + r1 = CLAMP(ip[0]); wp[0] = (r1-r2) & mask; r2 = r1; + g1 = CLAMP(ip[1]); wp[1] = (g1-g2) & mask; g2 = g1; + b1 = CLAMP(ip[2]); wp[2] = (b1-b2) & mask; b2 = b1; + a1 = CLAMP(ip[3]); wp[3] = (a1-a2) & mask; a2 = a1; + } + } else { + ip += n - 1; /* point to last one */ + wp += n - 1; /* point to last one */ + n -= stride; + while (n > 0) { + REPEAT(stride, wp[0] = CLAMP(ip[0]); + wp[stride] -= wp[0]; + wp[stride] &= mask; + wp--; ip--) + n -= stride; + } + REPEAT(stride, wp[0] = CLAMP(ip[0]); wp--; ip--) + } + } +} + +static void +horizontalDifference16(unsigned short *ip, int n, int stride, + unsigned short *wp, uint16 *From14) +{ + register int r1, g1, b1, a1, r2, g2, b2, a2, mask; + +/* assumption is unsigned pixel values */ +#undef CLAMP +#define CLAMP(v) From14[(v) >> 2] + + mask = CODE_MASK; + if (n >= stride) { + if (stride == 3) { + r2 = wp[0] = CLAMP(ip[0]); g2 = wp[1] = CLAMP(ip[1]); + b2 = wp[2] = CLAMP(ip[2]); + n -= 3; + while (n > 0) { + n -= 3; + wp += 3; + ip += 3; + r1 = CLAMP(ip[0]); wp[0] = (r1-r2) & mask; r2 = r1; + g1 = CLAMP(ip[1]); wp[1] = (g1-g2) & mask; g2 = g1; + b1 = CLAMP(ip[2]); wp[2] = (b1-b2) & mask; b2 = b1; + } + } else if (stride == 4) { + r2 = wp[0] = CLAMP(ip[0]); g2 = wp[1] = CLAMP(ip[1]); + b2 = wp[2] = CLAMP(ip[2]); a2 = wp[3] = CLAMP(ip[3]); + n -= 4; + while (n > 0) { + n -= 4; + wp += 4; + ip += 4; + r1 = CLAMP(ip[0]); wp[0] = (r1-r2) & mask; r2 = r1; + g1 = CLAMP(ip[1]); wp[1] = (g1-g2) & mask; g2 = g1; + b1 = CLAMP(ip[2]); wp[2] = (b1-b2) & mask; b2 = b1; + a1 = CLAMP(ip[3]); wp[3] = (a1-a2) & mask; a2 = a1; + } + } else { + ip += n - 1; /* point to last one */ + wp += n - 1; /* point to last one */ + n -= stride; + while (n > 0) { + REPEAT(stride, wp[0] = CLAMP(ip[0]); + wp[stride] -= wp[0]; + wp[stride] &= mask; + wp--; ip--) + n -= stride; + } + REPEAT(stride, wp[0] = CLAMP(ip[0]); wp--; ip--) + } + } +} + + +static void +horizontalDifference8(unsigned char *ip, int n, int stride, + unsigned short *wp, uint16 *From8) +{ + register int r1, g1, b1, a1, r2, g2, b2, a2, mask; + +#undef CLAMP +#define CLAMP(v) (From8[(v)]) + + mask = CODE_MASK; + if (n >= stride) { + if (stride == 3) { + r2 = wp[0] = CLAMP(ip[0]); g2 = wp[1] = CLAMP(ip[1]); + b2 = wp[2] = CLAMP(ip[2]); + n -= 3; + while (n > 0) { + n -= 3; + r1 = CLAMP(ip[3]); wp[3] = (r1-r2) & mask; r2 = r1; + g1 = CLAMP(ip[4]); wp[4] = (g1-g2) & mask; g2 = g1; + b1 = CLAMP(ip[5]); wp[5] = (b1-b2) & mask; b2 = b1; + wp += 3; + ip += 3; + } + } else if (stride == 4) { + r2 = wp[0] = CLAMP(ip[0]); g2 = wp[1] = CLAMP(ip[1]); + b2 = wp[2] = CLAMP(ip[2]); a2 = wp[3] = CLAMP(ip[3]); + n -= 4; + while (n > 0) { + n -= 4; + r1 = CLAMP(ip[4]); wp[4] = (r1-r2) & mask; r2 = r1; + g1 = CLAMP(ip[5]); wp[5] = (g1-g2) & mask; g2 = g1; + b1 = CLAMP(ip[6]); wp[6] = (b1-b2) & mask; b2 = b1; + a1 = CLAMP(ip[7]); wp[7] = (a1-a2) & mask; a2 = a1; + wp += 4; + ip += 4; + } + } else { + wp += n + stride - 1; /* point to last one */ + ip += n + stride - 1; /* point to last one */ + n -= stride; + while (n > 0) { + REPEAT(stride, wp[0] = CLAMP(ip[0]); + wp[stride] -= wp[0]; + wp[stride] &= mask; + wp--; ip--) + n -= stride; + } + REPEAT(stride, wp[0] = CLAMP(ip[0]); wp--; ip--) + } + } +} + +/* + * Encode a chunk of pixels. + */ +static int +PixarLogEncode(TIFF* tif, tidata_t bp, tsize_t cc, tsample_t s) +{ + TIFFDirectory *td = &tif->tif_dir; + PixarLogState *sp = EncoderState(tif); + static const char module[] = "PixarLogEncode"; + int i, n, llen; + unsigned short * up; + + (void) s; + + switch (sp->user_datafmt) { + case PIXARLOGDATAFMT_FLOAT: + n = cc / sizeof(float); /* XXX float == 32 bits */ + break; + case PIXARLOGDATAFMT_16BIT: + case PIXARLOGDATAFMT_12BITPICIO: + case PIXARLOGDATAFMT_11BITLOG: + n = cc / sizeof(uint16); /* XXX uint16 == 16 bits */ + break; + case PIXARLOGDATAFMT_8BIT: + case PIXARLOGDATAFMT_8BITABGR: + n = cc; + break; + default: + TIFFError(tif->tif_name, + "%d bit input not supported in PixarLog", + td->td_bitspersample); + return 0; + } + + llen = sp->stride * td->td_imagewidth; + + for (i = 0, up = sp->tbuf; i < n; i += llen, up += llen) { + switch (sp->user_datafmt) { + case PIXARLOGDATAFMT_FLOAT: + horizontalDifferenceF((float *)bp, llen, + sp->stride, up, sp->FromLT2); + bp += llen * sizeof(float); + break; + case PIXARLOGDATAFMT_16BIT: + horizontalDifference16((uint16 *)bp, llen, + sp->stride, up, sp->From14); + bp += llen * sizeof(uint16); + break; + case PIXARLOGDATAFMT_8BIT: + horizontalDifference8((unsigned char *)bp, llen, + sp->stride, up, sp->From8); + bp += llen * sizeof(unsigned char); + break; + default: + TIFFError(tif->tif_name, + "%d bit input not supported in PixarLog", + td->td_bitspersample); + return 0; + } + } + + sp->stream.next_in = (unsigned char *) sp->tbuf; + sp->stream.avail_in = n * sizeof(uint16); + + do { + if (deflate(&sp->stream, Z_NO_FLUSH) != Z_OK) { + TIFFError(module, "%s: Encoder error: %s", + tif->tif_name, sp->stream.msg); + return (0); + } + if (sp->stream.avail_out == 0) { + tif->tif_rawcc = tif->tif_rawdatasize; + TIFFFlushData1(tif); + sp->stream.next_out = tif->tif_rawdata; + sp->stream.avail_out = tif->tif_rawdatasize; + } + } while (sp->stream.avail_in > 0); + return (1); +} + +/* + * Finish off an encoded strip by flushing the last + * string and tacking on an End Of Information code. + */ + +static int +PixarLogPostEncode(TIFF* tif) +{ + PixarLogState *sp = EncoderState(tif); + static const char module[] = "PixarLogPostEncode"; + int state; + + sp->stream.avail_in = 0; + + do { + state = deflate(&sp->stream, Z_FINISH); + switch (state) { + case Z_STREAM_END: + case Z_OK: + if (sp->stream.avail_out != tif->tif_rawdatasize) { + tif->tif_rawcc = + tif->tif_rawdatasize - sp->stream.avail_out; + TIFFFlushData1(tif); + sp->stream.next_out = tif->tif_rawdata; + sp->stream.avail_out = tif->tif_rawdatasize; + } + break; + default: + TIFFError(module, "%s: zlib error: %s", + tif->tif_name, sp->stream.msg); + return (0); + } + } while (state != Z_STREAM_END); + return (1); +} + +static void +PixarLogClose(TIFF* tif) +{ + TIFFDirectory *td = &tif->tif_dir; + + /* In a really sneaky maneuver, on close, we covertly modify both + * bitspersample and sampleformat in the directory to indicate + * 8-bit linear. This way, the decode "just works" even for + * readers that don't know about PixarLog, or how to set + * the PIXARLOGDATFMT pseudo-tag. + */ + td->td_bitspersample = 8; + td->td_sampleformat = SAMPLEFORMAT_UINT; +} + +static void +PixarLogCleanup(TIFF* tif) +{ + PixarLogState* sp = (PixarLogState*) tif->tif_data; + + if (sp) { + if (sp->FromLT2) _TIFFfree(sp->FromLT2); + if (sp->From14) _TIFFfree(sp->From14); + if (sp->From8) _TIFFfree(sp->From8); + if (sp->ToLinearF) _TIFFfree(sp->ToLinearF); + if (sp->ToLinear16) _TIFFfree(sp->ToLinear16); + if (sp->ToLinear8) _TIFFfree(sp->ToLinear8); + if (sp->state&PLSTATE_INIT) { + if (tif->tif_mode == O_RDONLY) + inflateEnd(&sp->stream); + else + deflateEnd(&sp->stream); + } + if (sp->tbuf) + _TIFFfree(sp->tbuf); + _TIFFfree(sp); + tif->tif_data = NULL; + } +} + +static int +PixarLogVSetField(TIFF* tif, ttag_t tag, va_list ap) +{ + PixarLogState *sp = (PixarLogState *)tif->tif_data; + int result; + static const char module[] = "PixarLogVSetField"; + + switch (tag) { + case TIFFTAG_PIXARLOGQUALITY: + sp->quality = va_arg(ap, int); + if (tif->tif_mode != O_RDONLY && (sp->state&PLSTATE_INIT)) { + if (deflateParams(&sp->stream, + sp->quality, Z_DEFAULT_STRATEGY) != Z_OK) { + TIFFError(module, "%s: zlib error: %s", + tif->tif_name, sp->stream.msg); + return (0); + } + } + return (1); + case TIFFTAG_PIXARLOGDATAFMT: + sp->user_datafmt = va_arg(ap, int); + /* Tweak the TIFF header so that the rest of libtiff knows what + * size of data will be passed between app and library, and + * assume that the app knows what it is doing and is not + * confused by these header manipulations... + */ + switch (sp->user_datafmt) { + case PIXARLOGDATAFMT_8BIT: + case PIXARLOGDATAFMT_8BITABGR: + TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, 8); + TIFFSetField(tif, TIFFTAG_SAMPLEFORMAT, SAMPLEFORMAT_UINT); + break; + case PIXARLOGDATAFMT_11BITLOG: + TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, 16); + TIFFSetField(tif, TIFFTAG_SAMPLEFORMAT, SAMPLEFORMAT_UINT); + break; + case PIXARLOGDATAFMT_12BITPICIO: + TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, 16); + TIFFSetField(tif, TIFFTAG_SAMPLEFORMAT, SAMPLEFORMAT_INT); + break; + case PIXARLOGDATAFMT_16BIT: + TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, 16); + TIFFSetField(tif, TIFFTAG_SAMPLEFORMAT, SAMPLEFORMAT_UINT); + break; + case PIXARLOGDATAFMT_FLOAT: + TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, 32); + TIFFSetField(tif, TIFFTAG_SAMPLEFORMAT, SAMPLEFORMAT_IEEEFP); + break; + } + /* + * Must recalculate sizes should bits/sample change. + */ + tif->tif_tilesize = TIFFTileSize(tif); + tif->tif_scanlinesize = TIFFScanlineSize(tif); + result = 1; /* NB: pseudo tag */ + break; + default: + result = (*sp->vsetparent)(tif, tag, ap); + } + return (result); +} + +static int +PixarLogVGetField(TIFF* tif, ttag_t tag, va_list ap) +{ + PixarLogState *sp = (PixarLogState *)tif->tif_data; + + switch (tag) { + case TIFFTAG_PIXARLOGQUALITY: + *va_arg(ap, int*) = sp->quality; + break; + case TIFFTAG_PIXARLOGDATAFMT: + *va_arg(ap, int*) = sp->user_datafmt; + break; + default: + return (*sp->vgetparent)(tif, tag, ap); + } + return (1); +} + +static const TIFFFieldInfo pixarlogFieldInfo[] = { + {TIFFTAG_PIXARLOGDATAFMT,0,0,TIFF_ANY, FIELD_PSEUDO,FALSE,FALSE,""}, + {TIFFTAG_PIXARLOGQUALITY,0,0,TIFF_ANY, FIELD_PSEUDO,FALSE,FALSE,""} +}; + +int +TIFFInitPixarLog(TIFF* tif, int scheme) +{ + PixarLogState* sp; + + assert(scheme == COMPRESSION_PIXARLOG); + + /* + * Allocate state block so tag methods have storage to record values. + */ + tif->tif_data = (tidata_t) _TIFFmalloc(sizeof (PixarLogState)); + if (tif->tif_data == NULL) + goto bad; + sp = (PixarLogState*) tif->tif_data; + memset(sp, 0, sizeof (*sp)); + sp->stream.data_type = Z_BINARY; + sp->user_datafmt = PIXARLOGDATAFMT_UNKNOWN; + + /* + * Install codec methods. + */ + tif->tif_setupdecode = PixarLogSetupDecode; + tif->tif_predecode = PixarLogPreDecode; + tif->tif_decoderow = PixarLogDecode; + tif->tif_decodestrip = PixarLogDecode; + tif->tif_decodetile = PixarLogDecode; + tif->tif_setupencode = PixarLogSetupEncode; + tif->tif_preencode = PixarLogPreEncode; + tif->tif_postencode = PixarLogPostEncode; + tif->tif_encoderow = PixarLogEncode; + tif->tif_encodestrip = PixarLogEncode; + tif->tif_encodetile = PixarLogEncode; + tif->tif_close = PixarLogClose; + tif->tif_cleanup = PixarLogCleanup; + + /* Override SetField so we can handle our private pseudo-tag */ + _TIFFMergeFieldInfo(tif, pixarlogFieldInfo, N(pixarlogFieldInfo)); + sp->vgetparent = tif->tif_vgetfield; + tif->tif_vgetfield = PixarLogVGetField; /* hook for codec tags */ + sp->vsetparent = tif->tif_vsetfield; + tif->tif_vsetfield = PixarLogVSetField; /* hook for codec tags */ + + /* Default values for codec-specific fields */ + sp->quality = Z_DEFAULT_COMPRESSION; /* default comp. level */ + sp->state = 0; + + /* we don't wish to use the predictor, + * the default is none, which predictor value 1 + */ + (void) TIFFPredictorInit(tif); + + /* + * build the companding tables + */ + PixarLogMakeTables(sp); + + return (1); +bad: + TIFFError("TIFFInitPixarLog", "No space for PixarLog state block"); + return (0); +} +#endif /* PIXARLOG_SUPPORT */ diff --git a/libtiff/tif_predict.c b/libtiff/tif_predict.c new file mode 100755 index 0000000..4e6a335 --- /dev/null +++ b/libtiff/tif_predict.c @@ -0,0 +1,461 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_predict.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library. + * + * Predictor Tag Support (used by multiple codecs). + */ +#include "tiffiop.h" +#include "tif_predict.h" + +#include + +#define PredictorState(tif) ((TIFFPredictorState*) (tif)->tif_data) + +static void horAcc8(TIFF*, tidata_t, tsize_t); +static void horAcc16(TIFF*, tidata_t, tsize_t); +static void swabHorAcc16(TIFF*, tidata_t, tsize_t); +static void horDiff8(TIFF*, tidata_t, tsize_t); +static void horDiff16(TIFF*, tidata_t, tsize_t); +static int PredictorDecodeRow(TIFF*, tidata_t, tsize_t, tsample_t); +static int PredictorDecodeTile(TIFF*, tidata_t, tsize_t, tsample_t); +static int PredictorEncodeRow(TIFF*, tidata_t, tsize_t, tsample_t); +static int PredictorEncodeTile(TIFF*, tidata_t, tsize_t, tsample_t); + +static int +PredictorSetup(TIFF* tif) +{ + TIFFPredictorState* sp = PredictorState(tif); + TIFFDirectory* td = &tif->tif_dir; + + if (sp->predictor == 1) /* no differencing */ + return (1); + if (sp->predictor != 2) { + TIFFError(tif->tif_name, "\"Predictor\" value %d not supported", + sp->predictor); + return (0); + } + if (td->td_bitspersample != 8 && td->td_bitspersample != 16) { + TIFFError(tif->tif_name, + "Horizontal differencing \"Predictor\" not supported with %d-bit samples", + td->td_bitspersample); + return (0); + } + sp->stride = (td->td_planarconfig == PLANARCONFIG_CONTIG ? + td->td_samplesperpixel : 1); + /* + * Calculate the scanline/tile-width size in bytes. + */ + if (isTiled(tif)) + sp->rowsize = TIFFTileRowSize(tif); + else + sp->rowsize = TIFFScanlineSize(tif); + return (1); +} + +static int +PredictorSetupDecode(TIFF* tif) +{ + TIFFPredictorState* sp = PredictorState(tif); + TIFFDirectory* td = &tif->tif_dir; + + if (!(*sp->setupdecode)(tif) || !PredictorSetup(tif)) + return (0); + if (sp->predictor == 2) { + switch (td->td_bitspersample) { + case 8: sp->pfunc = horAcc8; break; + case 16: sp->pfunc = horAcc16; break; + } + /* + * Override default decoding method with + * one that does the predictor stuff. + */ + sp->coderow = tif->tif_decoderow; + tif->tif_decoderow = PredictorDecodeRow; + sp->codestrip = tif->tif_decodestrip; + tif->tif_decodestrip = PredictorDecodeTile; + sp->codetile = tif->tif_decodetile; + tif->tif_decodetile = PredictorDecodeTile; + /* + * If the data is horizontally differenced + * 16-bit data that requires byte-swapping, + * then it must be byte swapped before the + * accumulation step. We do this with a + * special-purpose routine and override the + * normal post decoding logic that the library + * setup when the directory was read. + */ + if (tif->tif_flags&TIFF_SWAB) { + if (sp->pfunc == horAcc16) { + sp->pfunc = swabHorAcc16; + tif->tif_postdecode = _TIFFNoPostDecode; + } /* else handle 32-bit case... */ + } + } + return (1); +} + +static int +PredictorSetupEncode(TIFF* tif) +{ + TIFFPredictorState* sp = PredictorState(tif); + TIFFDirectory* td = &tif->tif_dir; + + if (!(*sp->setupencode)(tif) || !PredictorSetup(tif)) + return (0); + if (sp->predictor == 2) { + switch (td->td_bitspersample) { + case 8: sp->pfunc = horDiff8; break; + case 16: sp->pfunc = horDiff16; break; + } + /* + * Override default encoding method with + * one that does the predictor stuff. + */ + sp->coderow = tif->tif_encoderow; + tif->tif_encoderow = PredictorEncodeRow; + sp->codestrip = tif->tif_encodestrip; + tif->tif_encodestrip = PredictorEncodeTile; + sp->codetile = tif->tif_encodetile; + tif->tif_encodetile = PredictorEncodeTile; + } + return (1); +} + +#define REPEAT4(n, op) \ + switch (n) { \ + default: { int i; for (i = n-4; i > 0; i--) { op; } } \ + case 4: op; \ + case 3: op; \ + case 2: op; \ + case 1: op; \ + case 0: ; \ + } + +static void +horAcc8(TIFF* tif, tidata_t cp0, tsize_t cc) +{ + TIFFPredictorState* sp = PredictorState(tif); + tsize_t stride = sp->stride; + + char* cp = (char*) cp0; + if (cc > stride) { + cc -= stride; + /* + * Pipeline the most common cases. + */ + if (stride == 3) { + u_int cr = cp[0]; + u_int cg = cp[1]; + u_int cb = cp[2]; + do { + cc -= 3, cp += 3; + cp[0] = (cr += cp[0]); + cp[1] = (cg += cp[1]); + cp[2] = (cb += cp[2]); + } while ((int32) cc > 0); + } else if (stride == 4) { + u_int cr = cp[0]; + u_int cg = cp[1]; + u_int cb = cp[2]; + u_int ca = cp[3]; + do { + cc -= 4, cp += 4; + cp[0] = (cr += cp[0]); + cp[1] = (cg += cp[1]); + cp[2] = (cb += cp[2]); + cp[3] = (ca += cp[3]); + } while ((int32) cc > 0); + } else { + do { + REPEAT4(stride, cp[stride] += *cp; cp++) + cc -= stride; + } while ((int32) cc > 0); + } + } +} + +static void +swabHorAcc16(TIFF* tif, tidata_t cp0, tsize_t cc) +{ + TIFFPredictorState* sp = PredictorState(tif); + tsize_t stride = sp->stride; + uint16* wp = (uint16*) cp0; + tsize_t wc = cc / 2; + + if (wc > stride) { + TIFFSwabArrayOfShort(wp, wc); + wc -= stride; + do { + REPEAT4(stride, wp[stride] += wp[0]; wp++) + wc -= stride; + } while ((int32) wc > 0); + } +} + +static void +horAcc16(TIFF* tif, tidata_t cp0, tsize_t cc) +{ + tsize_t stride = PredictorState(tif)->stride; + uint16* wp = (uint16*) cp0; + tsize_t wc = cc / 2; + + if (wc > stride) { + wc -= stride; + do { + REPEAT4(stride, wp[stride] += wp[0]; wp++) + wc -= stride; + } while ((int32) wc > 0); + } +} + +/* + * Decode a scanline and apply the predictor routine. + */ +static int +PredictorDecodeRow(TIFF* tif, tidata_t op0, tsize_t occ0, tsample_t s) +{ + TIFFPredictorState *sp = PredictorState(tif); + + assert(sp != NULL); + assert(sp->coderow != NULL); + assert(sp->pfunc != NULL); + if ((*sp->coderow)(tif, op0, occ0, s)) { + (*sp->pfunc)(tif, op0, occ0); + return (1); + } else + return (0); +} + +/* + * Decode a tile/strip and apply the predictor routine. + * Note that horizontal differencing must be done on a + * row-by-row basis. The width of a "row" has already + * been calculated at pre-decode time according to the + * strip/tile dimensions. + */ +static int +PredictorDecodeTile(TIFF* tif, tidata_t op0, tsize_t occ0, tsample_t s) +{ + TIFFPredictorState *sp = PredictorState(tif); + + assert(sp != NULL); + assert(sp->codetile != NULL); + if ((*sp->codetile)(tif, op0, occ0, s)) { + tsize_t rowsize = sp->rowsize; + assert(rowsize > 0); + assert(sp->pfunc != NULL); + while ((long)occ0 > 0) { + (*sp->pfunc)(tif, op0, (tsize_t) rowsize); + occ0 -= rowsize; + op0 += rowsize; + } + return (1); + } else + return (0); +} + +static void +horDiff8(TIFF* tif, tidata_t cp0, tsize_t cc) +{ + TIFFPredictorState* sp = PredictorState(tif); + tsize_t stride = sp->stride; + char* cp = (char*) cp0; + + if (cc > stride) { + cc -= stride; + /* + * Pipeline the most common cases. + */ + if (stride == 3) { + int r1, g1, b1; + int r2 = cp[0]; + int g2 = cp[1]; + int b2 = cp[2]; + do { + r1 = cp[3]; cp[3] = r1-r2; r2 = r1; + g1 = cp[4]; cp[4] = g1-g2; g2 = g1; + b1 = cp[5]; cp[5] = b1-b2; b2 = b1; + cp += 3; + } while ((int32)(cc -= 3) > 0); + } else if (stride == 4) { + int r1, g1, b1, a1; + int r2 = cp[0]; + int g2 = cp[1]; + int b2 = cp[2]; + int a2 = cp[3]; + do { + r1 = cp[4]; cp[4] = r1-r2; r2 = r1; + g1 = cp[5]; cp[5] = g1-g2; g2 = g1; + b1 = cp[6]; cp[6] = b1-b2; b2 = b1; + a1 = cp[7]; cp[7] = a1-a2; a2 = a1; + cp += 4; + } while ((int32)(cc -= 4) > 0); + } else { + cp += cc - 1; + do { + REPEAT4(stride, cp[stride] -= cp[0]; cp--) + } while ((int32)(cc -= stride) > 0); + } + } +} + +static void +horDiff16(TIFF* tif, tidata_t cp0, tsize_t cc) +{ + TIFFPredictorState* sp = PredictorState(tif); + tsize_t stride = sp->stride; + int16 *wp = (int16*) cp0; + tsize_t wc = cc/2; + + if (wc > stride) { + wc -= stride; + wp += wc - 1; + do { + REPEAT4(stride, wp[stride] -= wp[0]; wp--) + wc -= stride; + } while ((int32) wc > 0); + } +} + +static int +PredictorEncodeRow(TIFF* tif, tidata_t bp, tsize_t cc, tsample_t s) +{ + TIFFPredictorState *sp = PredictorState(tif); + + assert(sp != NULL); + assert(sp->pfunc != NULL); + assert(sp->coderow != NULL); +/* XXX horizontal differencing alters user's data XXX */ + (*sp->pfunc)(tif, bp, cc); + return ((*sp->coderow)(tif, bp, cc, s)); +} + +static int +PredictorEncodeTile(TIFF* tif, tidata_t bp0, tsize_t cc0, tsample_t s) +{ + TIFFPredictorState *sp = PredictorState(tif); + tsize_t cc = cc0, rowsize; + u_char* bp = bp0; + + assert(sp != NULL); + assert(sp->pfunc != NULL); + assert(sp->codetile != NULL); + rowsize = sp->rowsize; + assert(rowsize > 0); + while ((long)cc > 0) { + (*sp->pfunc)(tif, bp, (tsize_t) rowsize); + cc -= rowsize; + bp += rowsize; + } + return ((*sp->codetile)(tif, bp0, cc0, s)); +} + +#define FIELD_PREDICTOR (FIELD_CODEC+0) /* XXX */ + +static const TIFFFieldInfo predictFieldInfo[] = { + { TIFFTAG_PREDICTOR, 1, 1, TIFF_SHORT, FIELD_PREDICTOR, + FALSE, FALSE, "Predictor" }, +}; +#define N(a) (sizeof (a) / sizeof (a[0])) + +static int +PredictorVSetField(TIFF* tif, ttag_t tag, va_list ap) +{ + TIFFPredictorState *sp = PredictorState(tif); + + switch (tag) { + case TIFFTAG_PREDICTOR: + sp->predictor = (uint16) va_arg(ap, int); + TIFFSetFieldBit(tif, FIELD_PREDICTOR); + break; + default: + return (*sp->vsetparent)(tif, tag, ap); + } + tif->tif_flags |= TIFF_DIRTYDIRECT; + return (1); +} + +static int +PredictorVGetField(TIFF* tif, ttag_t tag, va_list ap) +{ + TIFFPredictorState *sp = PredictorState(tif); + + switch (tag) { + case TIFFTAG_PREDICTOR: + *va_arg(ap, uint16*) = sp->predictor; + break; + default: + return (*sp->vgetparent)(tif, tag, ap); + } + return (1); +} + +static void +PredictorPrintDir(TIFF* tif, FILE* fd, long flags) +{ + TIFFPredictorState* sp = PredictorState(tif); + + (void) flags; + if (TIFFFieldSet(tif,FIELD_PREDICTOR)) { + fprintf(fd, " Predictor: "); + switch (sp->predictor) { + case 1: fprintf(fd, "none "); break; + case 2: fprintf(fd, "horizontal differencing "); break; + } + fprintf(fd, "%u (0x%x)\n", sp->predictor, sp->predictor); + } + if (sp->printdir) + (*sp->printdir)(tif, fd, flags); +} + +int +TIFFPredictorInit(TIFF* tif) +{ + TIFFPredictorState* sp = PredictorState(tif); + + /* + * Merge codec-specific tag information and + * override parent get/set field methods. + */ + _TIFFMergeFieldInfo(tif, predictFieldInfo, N(predictFieldInfo)); + sp->vgetparent = tif->tif_vgetfield; + tif->tif_vgetfield = PredictorVGetField;/* hook for predictor tag */ + sp->vsetparent = tif->tif_vsetfield; + tif->tif_vsetfield = PredictorVSetField;/* hook for predictor tag */ + sp->printdir = tif->tif_printdir; + tif->tif_printdir = PredictorPrintDir; /* hook for predictor tag */ + + sp->setupdecode = tif->tif_setupdecode; + tif->tif_setupdecode = PredictorSetupDecode; + sp->setupencode = tif->tif_setupencode; + tif->tif_setupencode = PredictorSetupEncode; + + sp->predictor = 1; /* default value */ + sp->pfunc = NULL; /* no predictor routine */ + return (1); +} diff --git a/libtiff/tif_predict.h b/libtiff/tif_predict.h new file mode 100755 index 0000000..ea6b4e7 --- /dev/null +++ b/libtiff/tif_predict.h @@ -0,0 +1,61 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_predict.h,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1995-1997 Sam Leffler + * Copyright (c) 1995-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#ifndef _TIFFPREDICT_ +#define _TIFFPREDICT_ +/* + * ``Library-private'' Support for the Predictor Tag + */ + +/* + * Codecs that want to support the Predictor tag must place + * this structure first in their private state block so that + * the predictor code can cast tif_data to find its state. + */ +typedef struct { + int predictor; /* predictor tag value */ + int stride; /* sample stride over data */ + tsize_t rowsize; /* tile/strip row size */ + + TIFFPostMethod pfunc; /* horizontal differencer/accumulator */ + TIFFCodeMethod coderow; /* parent codec encode/decode row */ + TIFFCodeMethod codestrip; /* parent codec encode/decode strip */ + TIFFCodeMethod codetile; /* parent codec encode/decode tile */ + TIFFVGetMethod vgetparent; /* super-class method */ + TIFFVSetMethod vsetparent; /* super-class method */ + TIFFPrintMethod printdir; /* super-class method */ + TIFFBoolMethod setupdecode; /* super-class method */ + TIFFBoolMethod setupencode; /* super-class method */ +} TIFFPredictorState; + +#if defined(__cplusplus) +extern "C" { +#endif +extern int TIFFPredictorInit(TIFF*); +#if defined(__cplusplus) +} +#endif +#endif /* _TIFFPREDICT_ */ diff --git a/libtiff/tif_print.c b/libtiff/tif_print.c new file mode 100755 index 0000000..c9cc1a0 --- /dev/null +++ b/libtiff/tif_print.c @@ -0,0 +1,519 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_print.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library. + * + * Directory Printing Support + */ +#include "tiffiop.h" +#include + +#include + +static const char *photoNames[] = { + "min-is-white", /* PHOTOMETRIC_MINISWHITE */ + "min-is-black", /* PHOTOMETRIC_MINISBLACK */ + "RGB color", /* PHOTOMETRIC_RGB */ + "palette color (RGB from colormap)", /* PHOTOMETRIC_PALETTE */ + "transparency mask", /* PHOTOMETRIC_MASK */ + "separated", /* PHOTOMETRIC_SEPARATED */ + "YCbCr", /* PHOTOMETRIC_YCBCR */ + "7 (0x7)", + "CIE L*a*b*", /* PHOTOMETRIC_CIELAB */ +}; +#define NPHOTONAMES (sizeof (photoNames) / sizeof (photoNames[0])) + +static const char *orientNames[] = { + "0 (0x0)", + "row 0 top, col 0 lhs", /* ORIENTATION_TOPLEFT */ + "row 0 top, col 0 rhs", /* ORIENTATION_TOPRIGHT */ + "row 0 bottom, col 0 rhs", /* ORIENTATION_BOTRIGHT */ + "row 0 bottom, col 0 lhs", /* ORIENTATION_BOTLEFT */ + "row 0 lhs, col 0 top", /* ORIENTATION_LEFTTOP */ + "row 0 rhs, col 0 top", /* ORIENTATION_RIGHTTOP */ + "row 0 rhs, col 0 bottom", /* ORIENTATION_RIGHTBOT */ + "row 0 lhs, col 0 bottom", /* ORIENTATION_LEFTBOT */ +}; +#define NORIENTNAMES (sizeof (orientNames) / sizeof (orientNames[0])) + +/* + * Print the contents of the current directory + * to the specified stdio file stream. + */ +void +TIFFPrintDirectory(TIFF* tif, FILE* fd, long flags) +{ + register TIFFDirectory *td; + char *sep; + uint16 i; + long l, n; + + fprintf(fd, "TIFF Directory at offset 0x%lx\n", tif->tif_diroff); + td = &tif->tif_dir; + if (TIFFFieldSet(tif,FIELD_SUBFILETYPE)) { + fprintf(fd, " Subfile Type:"); + sep = " "; + if (td->td_subfiletype & FILETYPE_REDUCEDIMAGE) { + fprintf(fd, "%sreduced-resolution image", sep); + sep = "/"; + } + if (td->td_subfiletype & FILETYPE_PAGE) { + fprintf(fd, "%smulti-page document", sep); + sep = "/"; + } + if (td->td_subfiletype & FILETYPE_MASK) + fprintf(fd, "%stransparency mask", sep); + fprintf(fd, " (%lu = 0x%lx)\n", + (long) td->td_subfiletype, (long) td->td_subfiletype); + } + if (TIFFFieldSet(tif,FIELD_IMAGEDIMENSIONS)) { + fprintf(fd, " Image Width: %lu Image Length: %lu", + (u_long) td->td_imagewidth, (u_long) td->td_imagelength); + if (TIFFFieldSet(tif,FIELD_IMAGEDEPTH)) + fprintf(fd, " Image Depth: %lu", + (u_long) td->td_imagedepth); + fprintf(fd, "\n"); + } + + /* Begin Pixar */ + if (TIFFFieldSet(tif,FIELD_IMAGEFULLWIDTH) || + TIFFFieldSet(tif,FIELD_IMAGEFULLLENGTH)) { + fprintf(fd, " Pixar Full Image Width: %lu Full Image Length: %lu\n", + (u_long) td->td_imagefullwidth, + (u_long) td->td_imagefulllength); + } + if (TIFFFieldSet(tif,FIELD_TEXTUREFORMAT)) + _TIFFprintAsciiTag(fd, "Texture Format", td->td_textureformat); + if (TIFFFieldSet(tif,FIELD_WRAPMODES)) + _TIFFprintAsciiTag(fd, "Texture Wrap Modes", td->td_wrapmodes); + if (TIFFFieldSet(tif,FIELD_FOVCOT)) + fprintf(fd, " Field of View Cotangent: %g\n", td->td_fovcot); + if (TIFFFieldSet(tif,FIELD_MATRIX_WORLDTOSCREEN)) { + typedef float Matrix[4][4]; + Matrix* m = (Matrix*)td->td_matrixWorldToScreen; + + fprintf(fd, " Matrix NP:\n\t%g %g %g %g\n\t%g %g %g %g\n\t%g %g %g %g\n\t%g %g %g %g\n", + (*m)[0][0], (*m)[0][1], (*m)[0][2], (*m)[0][3], + (*m)[1][0], (*m)[1][1], (*m)[1][2], (*m)[1][3], + (*m)[2][0], (*m)[2][1], (*m)[2][2], (*m)[2][3], + (*m)[3][0], (*m)[3][1], (*m)[3][2], (*m)[3][3]); + } + if (TIFFFieldSet(tif,FIELD_MATRIX_WORLDTOCAMERA)) { + typedef float Matrix[4][4]; + Matrix* m = (Matrix*)td->td_matrixWorldToCamera; + + fprintf(fd, " Matrix Nl:\n\t%g %g %g %g\n\t%g %g %g %g\n\t%g %g %g %g\n\t%g %g %g %g\n", + (*m)[0][0], (*m)[0][1], (*m)[0][2], (*m)[0][3], + (*m)[1][0], (*m)[1][1], (*m)[1][2], (*m)[1][3], + (*m)[2][0], (*m)[2][1], (*m)[2][2], (*m)[2][3], + (*m)[3][0], (*m)[3][1], (*m)[3][2], (*m)[3][3]); + } + /* End Pixar */ + + if (TIFFFieldSet(tif,FIELD_TILEDIMENSIONS)) { + fprintf(fd, " Tile Width: %lu Tile Length: %lu", + (u_long) td->td_tilewidth, (u_long) td->td_tilelength); + if (TIFFFieldSet(tif,FIELD_TILEDEPTH)) + fprintf(fd, " Tile Depth: %lu", + (u_long) td->td_tiledepth); + fprintf(fd, "\n"); + } + if (TIFFFieldSet(tif,FIELD_RESOLUTION)) { + fprintf(fd, " Resolution: %g, %g", + td->td_xresolution, td->td_yresolution); + if (TIFFFieldSet(tif,FIELD_RESOLUTIONUNIT)) { + switch (td->td_resolutionunit) { + case RESUNIT_NONE: + fprintf(fd, " (unitless)"); + break; + case RESUNIT_INCH: + fprintf(fd, " pixels/inch"); + break; + case RESUNIT_CENTIMETER: + fprintf(fd, " pixels/cm"); + break; + default: + fprintf(fd, " (unit %u = 0x%x)", + td->td_resolutionunit, + td->td_resolutionunit); + break; + } + } + fprintf(fd, "\n"); + } + if (TIFFFieldSet(tif,FIELD_POSITION)) + fprintf(fd, " Position: %g, %g\n", + td->td_xposition, td->td_yposition); + if (TIFFFieldSet(tif,FIELD_BITSPERSAMPLE)) + fprintf(fd, " Bits/Sample: %u\n", td->td_bitspersample); + if (TIFFFieldSet(tif,FIELD_SAMPLEFORMAT)) { + fprintf(fd, " Sample Format: "); + switch (td->td_sampleformat) { + case SAMPLEFORMAT_VOID: + fprintf(fd, "void\n"); + break; + case SAMPLEFORMAT_INT: + fprintf(fd, "signed integer\n"); + break; + case SAMPLEFORMAT_UINT: + fprintf(fd, "unsigned integer\n"); + break; + case SAMPLEFORMAT_IEEEFP: + fprintf(fd, "IEEE floating point\n"); + break; + default: + fprintf(fd, "%u (0x%x)\n", + td->td_sampleformat, td->td_sampleformat); + break; + } + } + if (TIFFFieldSet(tif,FIELD_COMPRESSION)) { + const TIFFCodec* c = TIFFFindCODEC(td->td_compression); + fprintf(fd, " Compression Scheme: "); + if (c) + fprintf(fd, "%s\n", c->name); + else + fprintf(fd, "%u (0x%x)\n", + td->td_compression, td->td_compression); + } + if (TIFFFieldSet(tif,FIELD_PHOTOMETRIC)) { + fprintf(fd, " Photometric Interpretation: "); + if (td->td_photometric < NPHOTONAMES) + fprintf(fd, "%s\n", photoNames[td->td_photometric]); + else { + switch (td->td_photometric) { + case PHOTOMETRIC_LOGL: + fprintf(fd, "CIE Log2(L)\n"); + break; + case PHOTOMETRIC_LOGLUV: + fprintf(fd, "CIE Log2(L) (u',v')\n"); + break; + default: + fprintf(fd, "%u (0x%x)\n", + td->td_photometric, td->td_photometric); + break; + } + } + } + if (TIFFFieldSet(tif,FIELD_EXTRASAMPLES) && td->td_extrasamples) { + fprintf(fd, " Extra Samples: %u<", td->td_extrasamples); + sep = ""; + for (i = 0; i < td->td_extrasamples; i++) { + switch (td->td_sampleinfo[i]) { + case EXTRASAMPLE_UNSPECIFIED: + fprintf(fd, "%sunspecified", sep); + break; + case EXTRASAMPLE_ASSOCALPHA: + fprintf(fd, "%sassoc-alpha", sep); + break; + case EXTRASAMPLE_UNASSALPHA: + fprintf(fd, "%sunassoc-alpha", sep); + break; + default: + fprintf(fd, "%s%u (0x%x)", sep, + td->td_sampleinfo[i], td->td_sampleinfo[i]); + break; + } + sep = ", "; + } + fprintf(fd, ">\n"); + } + if (TIFFFieldSet(tif,FIELD_STONITS)) { + fprintf(fd, " Sample to Nits conversion factor: %.4e\n", + td->td_stonits); + } +#ifdef CMYK_SUPPORT + if (TIFFFieldSet(tif,FIELD_INKSET)) { + fprintf(fd, " Ink Set: "); + switch (td->td_inkset) { + case INKSET_CMYK: + fprintf(fd, "CMYK\n"); + break; + default: + fprintf(fd, "%u (0x%x)\n", + td->td_inkset, td->td_inkset); + break; + } + } + if (TIFFFieldSet(tif,FIELD_INKNAMES)) { + char* cp; + fprintf(fd, " Ink Names: "); + i = td->td_samplesperpixel; + sep = ""; + for (cp = td->td_inknames; i > 0; cp = strchr(cp,'\0')+1, i--) { + fprintf(fd, "%s", sep); + _TIFFprintAscii(fd, cp); + sep = ", "; + } + } + if (TIFFFieldSet(tif,FIELD_NUMBEROFINKS)) + fprintf(fd, " Number of Inks: %u\n", td->td_ninks); + if (TIFFFieldSet(tif,FIELD_DOTRANGE)) + fprintf(fd, " Dot Range: %u-%u\n", + td->td_dotrange[0], td->td_dotrange[1]); + if (TIFFFieldSet(tif,FIELD_TARGETPRINTER)) + _TIFFprintAsciiTag(fd, "Target Printer", td->td_targetprinter); +#endif + if (TIFFFieldSet(tif,FIELD_THRESHHOLDING)) { + fprintf(fd, " Thresholding: "); + switch (td->td_threshholding) { + case THRESHHOLD_BILEVEL: + fprintf(fd, "bilevel art scan\n"); + break; + case THRESHHOLD_HALFTONE: + fprintf(fd, "halftone or dithered scan\n"); + break; + case THRESHHOLD_ERRORDIFFUSE: + fprintf(fd, "error diffused\n"); + break; + default: + fprintf(fd, "%u (0x%x)\n", + td->td_threshholding, td->td_threshholding); + break; + } + } + if (TIFFFieldSet(tif,FIELD_FILLORDER)) { + fprintf(fd, " FillOrder: "); + switch (td->td_fillorder) { + case FILLORDER_MSB2LSB: + fprintf(fd, "msb-to-lsb\n"); + break; + case FILLORDER_LSB2MSB: + fprintf(fd, "lsb-to-msb\n"); + break; + default: + fprintf(fd, "%u (0x%x)\n", + td->td_fillorder, td->td_fillorder); + break; + } + } +#ifdef YCBCR_SUPPORT + if (TIFFFieldSet(tif,FIELD_YCBCRSUBSAMPLING)) + fprintf(fd, " YCbCr Subsampling: %u, %u\n", + td->td_ycbcrsubsampling[0], td->td_ycbcrsubsampling[1]); + if (TIFFFieldSet(tif,FIELD_YCBCRPOSITIONING)) { + fprintf(fd, " YCbCr Positioning: "); + switch (td->td_ycbcrpositioning) { + case YCBCRPOSITION_CENTERED: + fprintf(fd, "centered\n"); + break; + case YCBCRPOSITION_COSITED: + fprintf(fd, "cosited\n"); + break; + default: + fprintf(fd, "%u (0x%x)\n", + td->td_ycbcrpositioning, td->td_ycbcrpositioning); + break; + } + } + if (TIFFFieldSet(tif,FIELD_YCBCRCOEFFICIENTS)) + fprintf(fd, " YCbCr Coefficients: %g, %g, %g\n", + td->td_ycbcrcoeffs[0], + td->td_ycbcrcoeffs[1], + td->td_ycbcrcoeffs[2]); +#endif + if (TIFFFieldSet(tif,FIELD_HALFTONEHINTS)) + fprintf(fd, " Halftone Hints: light %u dark %u\n", + td->td_halftonehints[0], td->td_halftonehints[1]); + if (TIFFFieldSet(tif,FIELD_ARTIST)) + _TIFFprintAsciiTag(fd, "Artist", td->td_artist); + if (TIFFFieldSet(tif,FIELD_DATETIME)) + _TIFFprintAsciiTag(fd, "Date & Time", td->td_datetime); + if (TIFFFieldSet(tif,FIELD_HOSTCOMPUTER)) + _TIFFprintAsciiTag(fd, "Host Computer", td->td_hostcomputer); + if (TIFFFieldSet(tif,FIELD_SOFTWARE)) + _TIFFprintAsciiTag(fd, "Software", td->td_software); + if (TIFFFieldSet(tif,FIELD_DOCUMENTNAME)) + _TIFFprintAsciiTag(fd, "Document Name", td->td_documentname); + if (TIFFFieldSet(tif,FIELD_IMAGEDESCRIPTION)) + _TIFFprintAsciiTag(fd, "Image Description", td->td_imagedescription); + if (TIFFFieldSet(tif,FIELD_MAKE)) + _TIFFprintAsciiTag(fd, "Make", td->td_make); + if (TIFFFieldSet(tif,FIELD_MODEL)) + _TIFFprintAsciiTag(fd, "Model", td->td_model); + if (TIFFFieldSet(tif,FIELD_ORIENTATION)) { + fprintf(fd, " Orientation: "); + if (td->td_orientation < NORIENTNAMES) + fprintf(fd, "%s\n", orientNames[td->td_orientation]); + else + fprintf(fd, "%u (0x%x)\n", + td->td_orientation, td->td_orientation); + } + if (TIFFFieldSet(tif,FIELD_SAMPLESPERPIXEL)) + fprintf(fd, " Samples/Pixel: %u\n", td->td_samplesperpixel); + if (TIFFFieldSet(tif,FIELD_ROWSPERSTRIP)) { + fprintf(fd, " Rows/Strip: "); + if (td->td_rowsperstrip == (uint32) -1) + fprintf(fd, "(infinite)\n"); + else + fprintf(fd, "%lu\n", (u_long) td->td_rowsperstrip); + } + if (TIFFFieldSet(tif,FIELD_MINSAMPLEVALUE)) + fprintf(fd, " Min Sample Value: %u\n", td->td_minsamplevalue); + if (TIFFFieldSet(tif,FIELD_MAXSAMPLEVALUE)) + fprintf(fd, " Max Sample Value: %u\n", td->td_maxsamplevalue); + if (TIFFFieldSet(tif,FIELD_SMINSAMPLEVALUE)) + fprintf(fd, " SMin Sample Value: %g\n", + td->td_sminsamplevalue); + if (TIFFFieldSet(tif,FIELD_SMAXSAMPLEVALUE)) + fprintf(fd, " SMax Sample Value: %g\n", + td->td_smaxsamplevalue); + if (TIFFFieldSet(tif,FIELD_PLANARCONFIG)) { + fprintf(fd, " Planar Configuration: "); + switch (td->td_planarconfig) { + case PLANARCONFIG_CONTIG: + fprintf(fd, "single image plane\n"); + break; + case PLANARCONFIG_SEPARATE: + fprintf(fd, "separate image planes\n"); + break; + default: + fprintf(fd, "%u (0x%x)\n", + td->td_planarconfig, td->td_planarconfig); + break; + } + } + if (TIFFFieldSet(tif,FIELD_PAGENAME)) + _TIFFprintAsciiTag(fd, "Page Name", td->td_pagename); + if (TIFFFieldSet(tif,FIELD_PAGENUMBER)) + fprintf(fd, " Page Number: %u-%u\n", + td->td_pagenumber[0], td->td_pagenumber[1]); + if (TIFFFieldSet(tif,FIELD_COLORMAP)) { + fprintf(fd, " Color Map: "); + if (flags & TIFFPRINT_COLORMAP) { + fprintf(fd, "\n"); + n = 1L<td_bitspersample; + for (l = 0; l < n; l++) + fprintf(fd, " %5lu: %5u %5u %5u\n", + l, + td->td_colormap[0][l], + td->td_colormap[1][l], + td->td_colormap[2][l]); + } else + fprintf(fd, "(present)\n"); + } +#ifdef COLORIMETRY_SUPPORT + if (TIFFFieldSet(tif,FIELD_WHITEPOINT)) + fprintf(fd, " White Point: %g-%g\n", + td->td_whitepoint[0], td->td_whitepoint[1]); + if (TIFFFieldSet(tif,FIELD_PRIMARYCHROMAS)) + fprintf(fd, " Primary Chromaticities: %g,%g %g,%g %g,%g\n", + td->td_primarychromas[0], td->td_primarychromas[1], + td->td_primarychromas[2], td->td_primarychromas[3], + td->td_primarychromas[4], td->td_primarychromas[5]); + if (TIFFFieldSet(tif,FIELD_REFBLACKWHITE)) { + fprintf(fd, " Reference Black/White:\n"); + for (i = 0; i < td->td_samplesperpixel; i++) + fprintf(fd, " %2d: %5g %5g\n", + i, + td->td_refblackwhite[2*i+0], + td->td_refblackwhite[2*i+1]); + } + if (TIFFFieldSet(tif,FIELD_TRANSFERFUNCTION)) { + fprintf(fd, " Transfer Function: "); + if (flags & TIFFPRINT_CURVES) { + fprintf(fd, "\n"); + n = 1L<td_bitspersample; + for (l = 0; l < n; l++) { + fprintf(fd, " %2lu: %5u", + l, td->td_transferfunction[0][l]); + for (i = 1; i < td->td_samplesperpixel; i++) + fprintf(fd, " %5u", + td->td_transferfunction[i][l]); + fputc('\n', fd); + } + } else + fprintf(fd, "(present)\n"); + } +#endif +#ifdef ICC_SUPPORT + if (TIFFFieldSet(tif,FIELD_ICCPROFILE)) + fprintf(fd, " ICC Profile: , %lu bytes\n", + (u_long) td->td_profileLength); +#endif +#ifdef PHOTOSHOP_SUPPORT + if (TIFFFieldSet(tif,FIELD_PHOTOSHOP)) + fprintf(fd, " Photoshop Data: , %lu bytes\n", + (u_long) td->td_photoshopLength); +#endif +#ifdef IPTC_SUPPORT + if (TIFFFieldSet(tif,FIELD_RICHTIFFIPTC)) + fprintf(fd, " RichTIFFIPTC Data: , %lu bytes\n", + (u_long) td->td_richtiffiptcLength); +#endif +#if SUBIFD_SUPPORT + if (TIFFFieldSet(tif, FIELD_SUBIFD)) { + fprintf(fd, " SubIFD Offsets:"); + for (i = 0; i < td->td_nsubifd; i++) + fprintf(fd, " %5lu", (long) td->td_subifd[i]); + fputc('\n', fd); + } +#endif + if (tif->tif_printdir) + (*tif->tif_printdir)(tif, fd, flags); + if ((flags & TIFFPRINT_STRIPS) && + TIFFFieldSet(tif,FIELD_STRIPOFFSETS)) { + tstrip_t s; + + fprintf(fd, " %lu %s:\n", + (long) td->td_nstrips, + isTiled(tif) ? "Tiles" : "Strips"); + for (s = 0; s < td->td_nstrips; s++) + fprintf(fd, " %3lu: [%8lu, %8lu]\n", + (u_long) s, + (u_long) td->td_stripoffset[s], + (u_long) td->td_stripbytecount[s]); + } +} + +void +_TIFFprintAscii(FILE* fd, const char* cp) +{ + for (; *cp != '\0'; cp++) { + const char* tp; + + if (isprint(*cp)) { + fputc(*cp, fd); + continue; + } + for (tp = "\tt\bb\rr\nn\vv"; *tp; tp++) + if (*tp++ == *cp) + break; + if (*tp) + fprintf(fd, "\\%c", *tp); + else + fprintf(fd, "\\%03o", *cp & 0xff); + } +} + +void +_TIFFprintAsciiTag(FILE* fd, const char* name, const char* value) +{ + fprintf(fd, " %s: \"", name); + _TIFFprintAscii(fd, value); + fprintf(fd, "\"\n"); +} diff --git a/libtiff/tif_read.c b/libtiff/tif_read.c new file mode 100755 index 0000000..da336fc --- /dev/null +++ b/libtiff/tif_read.c @@ -0,0 +1,622 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_read.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library. + * Scanline-oriented Read Support + */ +#include "tiffiop.h" +#include +#include + +static int TIFFFillStrip(TIFF*, tstrip_t); +static int TIFFFillTile(TIFF*, ttile_t); +static int TIFFStartStrip(TIFF*, tstrip_t); +static int TIFFStartTile(TIFF*, ttile_t); +static int TIFFCheckRead(TIFF*, int); + +#define NOSTRIP ((tstrip_t) -1) /* undefined state */ +#define NOTILE ((ttile_t) -1) /* undefined state */ + +/* + * Seek to a random row+sample in a file. + */ +static int +TIFFSeek(TIFF* tif, uint32 row, tsample_t sample) +{ + register TIFFDirectory *td = &tif->tif_dir; + tstrip_t strip; + + if (row >= td->td_imagelength) { /* out of range */ + TIFFError(tif->tif_name, "%lu: Row out of range, max %lu", + (u_long) row, (u_long) td->td_imagelength); + return (0); + } + if (td->td_planarconfig == PLANARCONFIG_SEPARATE) { + if (sample >= td->td_samplesperpixel) { + TIFFError(tif->tif_name, + "%lu: Sample out of range, max %lu", + (u_long) sample, (u_long) td->td_samplesperpixel); + return (0); + } + strip = sample*td->td_stripsperimage + row/td->td_rowsperstrip; + } else + strip = row / td->td_rowsperstrip; + if (strip != tif->tif_curstrip) { /* different strip, refill */ + if (!TIFFFillStrip(tif, strip)) + return (0); + } else if (row < tif->tif_row) { + /* + * Moving backwards within the same strip: backup + * to the start and then decode forward (below). + * + * NB: If you're planning on lots of random access within a + * strip, it's better to just read and decode the entire + * strip, and then access the decoded data in a random fashion. + */ + if (!TIFFStartStrip(tif, strip)) + return (0); + } + if (row != tif->tif_row) { + /* + * Seek forward to the desired row. + */ + if (!(*tif->tif_seek)(tif, row - tif->tif_row)) + return (0); + tif->tif_row = row; + } + return (1); +} + +int +TIFFReadScanline(TIFF* tif, tdata_t buf, uint32 row, tsample_t sample) +{ + int e; + + if (!TIFFCheckRead(tif, 0)) + return (-1); + if( (e = TIFFSeek(tif, row, sample)) != 0) { + /* + * Decompress desired row into user buffer. + */ + e = (*tif->tif_decoderow) + (tif, (tidata_t) buf, tif->tif_scanlinesize, sample); + tif->tif_row++; + if (e) + (*tif->tif_postdecode)(tif, (tidata_t) buf, + tif->tif_scanlinesize); + } + return (e > 0 ? 1 : -1); +} + +/* + * Read a strip of data and decompress the specified + * amount into the user-supplied buffer. + */ +tsize_t +TIFFReadEncodedStrip(TIFF* tif, tstrip_t strip, tdata_t buf, tsize_t size) +{ + TIFFDirectory *td = &tif->tif_dir; + uint32 nrows; + tsize_t stripsize; + + if (!TIFFCheckRead(tif, 0)) + return (-1); + if (strip >= td->td_nstrips) { + TIFFError(tif->tif_name, "%ld: Strip out of range, max %ld", + (long) strip, (long) td->td_nstrips); + return (-1); + } + /* + * Calculate the strip size according to the number of + * rows in the strip (check for truncated last strip). + */ + if (strip != td->td_nstrips-1 || + (nrows = td->td_imagelength % td->td_rowsperstrip) == 0) + nrows = td->td_rowsperstrip; + stripsize = TIFFVStripSize(tif, nrows); + if (size == (tsize_t) -1) + size = stripsize; + else if (size > stripsize) + size = stripsize; + if (TIFFFillStrip(tif, strip) && (*tif->tif_decodestrip)(tif, + (tidata_t) buf, size, (tsample_t)(strip / td->td_stripsperimage))) { + (*tif->tif_postdecode)(tif, (tidata_t) buf, size); + return (size); + } else + return ((tsize_t) -1); +} + +static tsize_t +TIFFReadRawStrip1(TIFF* tif, + tstrip_t strip, tdata_t buf, tsize_t size, const char* module) +{ + TIFFDirectory *td = &tif->tif_dir; + + if (!isMapped(tif)) { + tsize_t cc; + + if (!SeekOK(tif, td->td_stripoffset[strip])) { + TIFFError(module, + "%s: Seek error at scanline %lu, strip %lu", + tif->tif_name, + (u_long) tif->tif_row, (u_long) strip); + return (-1); + } + cc = TIFFReadFile(tif, buf, size); + if (cc != size) { + TIFFError(module, + "%s: Read error at scanline %lu; got %lu bytes, expected %lu", + tif->tif_name, + (u_long) tif->tif_row, + (u_long) cc, + (u_long) size); + return (-1); + } + } else { + if (td->td_stripoffset[strip] + size > tif->tif_size) { + TIFFError(module, + "%s: Read error at scanline %lu, strip %lu; got %lu bytes, expected %lu", + tif->tif_name, + (u_long) tif->tif_row, + (u_long) strip, + (u_long) tif->tif_size - td->td_stripoffset[strip], + (u_long) size); + return (-1); + } + _TIFFmemcpy(buf, tif->tif_base + td->td_stripoffset[strip], size); + } + return (size); +} + +/* + * Read a strip of data from the file. + */ +tsize_t +TIFFReadRawStrip(TIFF* tif, tstrip_t strip, tdata_t buf, tsize_t size) +{ + static const char module[] = "TIFFReadRawStrip"; + TIFFDirectory *td = &tif->tif_dir; + tsize_t bytecount; + + if (!TIFFCheckRead(tif, 0)) + return ((tsize_t) -1); + if (strip >= td->td_nstrips) { + TIFFError(tif->tif_name, "%lu: Strip out of range, max %lu", + (u_long) strip, (u_long) td->td_nstrips); + return ((tsize_t) -1); + } + bytecount = td->td_stripbytecount[strip]; + if (bytecount <= 0) { + TIFFError(tif->tif_name, + "%lu: Invalid strip byte count, strip %lu", + (u_long) bytecount, (u_long) strip); + return ((tsize_t) -1); + } + if (size != (tsize_t)-1 && size < bytecount) + bytecount = size; + return (TIFFReadRawStrip1(tif, strip, buf, bytecount, module)); +} + +/* + * Read the specified strip and setup for decoding. + * The data buffer is expanded, as necessary, to + * hold the strip's data. + */ +static int +TIFFFillStrip(TIFF* tif, tstrip_t strip) +{ + static const char module[] = "TIFFFillStrip"; + TIFFDirectory *td = &tif->tif_dir; + tsize_t bytecount; + + bytecount = td->td_stripbytecount[strip]; + if (bytecount <= 0) { + TIFFError(tif->tif_name, + "%lu: Invalid strip byte count, strip %lu", + (u_long) bytecount, (u_long) strip); + return (0); + } + if (isMapped(tif) && + (isFillOrder(tif, td->td_fillorder) || (tif->tif_flags & TIFF_NOBITREV))) { + /* + * The image is mapped into memory and we either don't + * need to flip bits or the compression routine is going + * to handle this operation itself. In this case, avoid + * copying the raw data and instead just reference the + * data from the memory mapped file image. This assumes + * that the decompression routines do not modify the + * contents of the raw data buffer (if they try to, + * the application will get a fault since the file is + * mapped read-only). + */ + if ((tif->tif_flags & TIFF_MYBUFFER) && tif->tif_rawdata) + _TIFFfree(tif->tif_rawdata); + tif->tif_flags &= ~TIFF_MYBUFFER; + if ( td->td_stripoffset[strip] + bytecount > tif->tif_size) { + /* + * This error message might seem strange, but it's + * what would happen if a read were done instead. + */ + TIFFError(module, + "%s: Read error on strip %lu; got %lu bytes, expected %lu", + tif->tif_name, + (u_long) strip, + (u_long) tif->tif_size - td->td_stripoffset[strip], + (u_long) bytecount); + tif->tif_curstrip = NOSTRIP; + return (0); + } + tif->tif_rawdatasize = bytecount; + tif->tif_rawdata = tif->tif_base + td->td_stripoffset[strip]; + } else { + /* + * Expand raw data buffer, if needed, to + * hold data strip coming from file + * (perhaps should set upper bound on + * the size of a buffer we'll use?). + */ + if (bytecount > tif->tif_rawdatasize) { + tif->tif_curstrip = NOSTRIP; + if ((tif->tif_flags & TIFF_MYBUFFER) == 0) { + TIFFError(module, + "%s: Data buffer too small to hold strip %lu", + tif->tif_name, (u_long) strip); + return (0); + } + if (!TIFFReadBufferSetup(tif, 0, + TIFFroundup(bytecount, 1024))) + return (0); + } + if (TIFFReadRawStrip1(tif, strip, (u_char *)tif->tif_rawdata, + bytecount, module) != bytecount) + return (0); + if (!isFillOrder(tif, td->td_fillorder) && + (tif->tif_flags & TIFF_NOBITREV) == 0) + TIFFReverseBits(tif->tif_rawdata, bytecount); + } + return (TIFFStartStrip(tif, strip)); +} + +/* + * Tile-oriented Read Support + * Contributed by Nancy Cam (Silicon Graphics). + */ + +/* + * Read and decompress a tile of data. The + * tile is selected by the (x,y,z,s) coordinates. + */ +tsize_t +TIFFReadTile(TIFF* tif, + tdata_t buf, uint32 x, uint32 y, uint32 z, tsample_t s) +{ + if (!TIFFCheckRead(tif, 1) || !TIFFCheckTile(tif, x, y, z, s)) + return (-1); + return (TIFFReadEncodedTile(tif, + TIFFComputeTile(tif, x, y, z, s), buf, (tsize_t) -1)); +} + +/* + * Read a tile of data and decompress the specified + * amount into the user-supplied buffer. + */ +tsize_t +TIFFReadEncodedTile(TIFF* tif, ttile_t tile, tdata_t buf, tsize_t size) +{ + TIFFDirectory *td = &tif->tif_dir; + tsize_t tilesize = tif->tif_tilesize; + + if (!TIFFCheckRead(tif, 1)) + return (-1); + if (tile >= td->td_nstrips) { + TIFFError(tif->tif_name, "%ld: Tile out of range, max %ld", + (long) tile, (u_long) td->td_nstrips); + return (-1); + } + if (size == (tsize_t) -1) + size = tilesize; + else if (size > tilesize) + size = tilesize; + if (TIFFFillTile(tif, tile) && (*tif->tif_decodetile)(tif, + (tidata_t) buf, size, (tsample_t)(tile/td->td_stripsperimage))) { + (*tif->tif_postdecode)(tif, (tidata_t) buf, size); + return (size); + } else + return (-1); +} + +static tsize_t +TIFFReadRawTile1(TIFF* tif, + ttile_t tile, tdata_t buf, tsize_t size, const char* module) +{ + TIFFDirectory *td = &tif->tif_dir; + + if (!isMapped(tif)) { + tsize_t cc; + + if (!SeekOK(tif, td->td_stripoffset[tile])) { + TIFFError(module, + "%s: Seek error at row %ld, col %ld, tile %ld", + tif->tif_name, + (long) tif->tif_row, + (long) tif->tif_col, + (long) tile); + return ((tsize_t) -1); + } + cc = TIFFReadFile(tif, buf, size); + if (cc != size) { + TIFFError(module, + "%s: Read error at row %ld, col %ld; got %lu bytes, expected %lu", + tif->tif_name, + (long) tif->tif_row, + (long) tif->tif_col, + (u_long) cc, + (u_long) size); + return ((tsize_t) -1); + } + } else { + if (td->td_stripoffset[tile] + size > tif->tif_size) { + TIFFError(module, + "%s: Read error at row %ld, col %ld, tile %ld; got %lu bytes, expected %lu", + tif->tif_name, + (long) tif->tif_row, + (long) tif->tif_col, + (long) tile, + (u_long) tif->tif_size - td->td_stripoffset[tile], + (u_long) size); + return ((tsize_t) -1); + } + _TIFFmemcpy(buf, tif->tif_base + td->td_stripoffset[tile], size); + } + return (size); +} + +/* + * Read a tile of data from the file. + */ +tsize_t +TIFFReadRawTile(TIFF* tif, ttile_t tile, tdata_t buf, tsize_t size) +{ + static const char module[] = "TIFFReadRawTile"; + TIFFDirectory *td = &tif->tif_dir; + tsize_t bytecount; + + if (!TIFFCheckRead(tif, 1)) + return ((tsize_t) -1); + if (tile >= td->td_nstrips) { + TIFFError(tif->tif_name, "%lu: Tile out of range, max %lu", + (u_long) tile, (u_long) td->td_nstrips); + return ((tsize_t) -1); + } + bytecount = td->td_stripbytecount[tile]; + if (size != (tsize_t) -1 && size < bytecount) + bytecount = size; + return (TIFFReadRawTile1(tif, tile, buf, bytecount, module)); +} + +/* + * Read the specified tile and setup for decoding. + * The data buffer is expanded, as necessary, to + * hold the tile's data. + */ +static int +TIFFFillTile(TIFF* tif, ttile_t tile) +{ + static const char module[] = "TIFFFillTile"; + TIFFDirectory *td = &tif->tif_dir; + tsize_t bytecount; + + bytecount = td->td_stripbytecount[tile]; + if (bytecount <= 0) { + TIFFError(tif->tif_name, + "%lu: Invalid tile byte count, tile %lu", + (u_long) bytecount, (u_long) tile); + return (0); + } + if (isMapped(tif) && + (isFillOrder(tif, td->td_fillorder) || (tif->tif_flags & TIFF_NOBITREV))) { + /* + * The image is mapped into memory and we either don't + * need to flip bits or the compression routine is going + * to handle this operation itself. In this case, avoid + * copying the raw data and instead just reference the + * data from the memory mapped file image. This assumes + * that the decompression routines do not modify the + * contents of the raw data buffer (if they try to, + * the application will get a fault since the file is + * mapped read-only). + */ + if ((tif->tif_flags & TIFF_MYBUFFER) && tif->tif_rawdata) + _TIFFfree(tif->tif_rawdata); + tif->tif_flags &= ~TIFF_MYBUFFER; + if ( td->td_stripoffset[tile] + bytecount > tif->tif_size) { + tif->tif_curtile = NOTILE; + return (0); + } + tif->tif_rawdatasize = bytecount; + tif->tif_rawdata = tif->tif_base + td->td_stripoffset[tile]; + } else { + /* + * Expand raw data buffer, if needed, to + * hold data tile coming from file + * (perhaps should set upper bound on + * the size of a buffer we'll use?). + */ + if (bytecount > tif->tif_rawdatasize) { + tif->tif_curtile = NOTILE; + if ((tif->tif_flags & TIFF_MYBUFFER) == 0) { + TIFFError(module, + "%s: Data buffer too small to hold tile %ld", + tif->tif_name, (long) tile); + return (0); + } + if (!TIFFReadBufferSetup(tif, 0, + TIFFroundup(bytecount, 1024))) + return (0); + } + if (TIFFReadRawTile1(tif, tile, (u_char *)tif->tif_rawdata, + bytecount, module) != bytecount) + return (0); + if (!isFillOrder(tif, td->td_fillorder) && + (tif->tif_flags & TIFF_NOBITREV) == 0) + TIFFReverseBits(tif->tif_rawdata, bytecount); + } + return (TIFFStartTile(tif, tile)); +} + +/* + * Setup the raw data buffer in preparation for + * reading a strip of raw data. If the buffer + * is specified as zero, then a buffer of appropriate + * size is allocated by the library. Otherwise, + * the client must guarantee that the buffer is + * large enough to hold any individual strip of + * raw data. + */ +int +TIFFReadBufferSetup(TIFF* tif, tdata_t bp, tsize_t size) +{ + static const char module[] = "TIFFReadBufferSetup"; + + if (tif->tif_rawdata) { + if (tif->tif_flags & TIFF_MYBUFFER) + _TIFFfree(tif->tif_rawdata); + tif->tif_rawdata = NULL; + } + if (bp) { + tif->tif_rawdatasize = size; + tif->tif_rawdata = (tidata_t) bp; + tif->tif_flags &= ~TIFF_MYBUFFER; + } else { + tif->tif_rawdatasize = TIFFroundup(size, 1024); + tif->tif_rawdata = (tidata_t) _TIFFmalloc(tif->tif_rawdatasize); + tif->tif_flags |= TIFF_MYBUFFER; + } + if (tif->tif_rawdata == NULL) { + TIFFError(module, + "%s: No space for data buffer at scanline %ld", + tif->tif_name, (long) tif->tif_row); + tif->tif_rawdatasize = 0; + return (0); + } + return (1); +} + +/* + * Set state to appear as if a + * strip has just been read in. + */ +static int +TIFFStartStrip(TIFF* tif, tstrip_t strip) +{ + TIFFDirectory *td = &tif->tif_dir; + + if ((tif->tif_flags & TIFF_CODERSETUP) == 0) { + if (!(*tif->tif_setupdecode)(tif)) + return (0); + tif->tif_flags |= TIFF_CODERSETUP; + } + tif->tif_curstrip = strip; + tif->tif_row = (strip % td->td_stripsperimage) * td->td_rowsperstrip; + tif->tif_rawcp = tif->tif_rawdata; + tif->tif_rawcc = td->td_stripbytecount[strip]; + return ((*tif->tif_predecode)(tif, + (tsample_t)(strip / td->td_stripsperimage))); +} + +/* + * Set state to appear as if a + * tile has just been read in. + */ +static int +TIFFStartTile(TIFF* tif, ttile_t tile) +{ + TIFFDirectory *td = &tif->tif_dir; + + if ((tif->tif_flags & TIFF_CODERSETUP) == 0) { + if (!(*tif->tif_setupdecode)(tif)) + return (0); + tif->tif_flags |= TIFF_CODERSETUP; + } + tif->tif_curtile = tile; + tif->tif_row = + (tile % TIFFhowmany(td->td_imagewidth, td->td_tilewidth)) * + td->td_tilelength; + tif->tif_col = + (tile % TIFFhowmany(td->td_imagelength, td->td_tilelength)) * + td->td_tilewidth; + tif->tif_rawcp = tif->tif_rawdata; + tif->tif_rawcc = td->td_stripbytecount[tile]; + return ((*tif->tif_predecode)(tif, + (tsample_t)(tile/td->td_stripsperimage))); +} + +static int +TIFFCheckRead(TIFF* tif, int tiles) +{ + if (tif->tif_mode == O_WRONLY) { + TIFFError(tif->tif_name, "File not open for reading"); + return (0); + } + if (tiles ^ isTiled(tif)) { + TIFFError(tif->tif_name, tiles ? + "Can not read tiles from a stripped image" : + "Can not read scanlines from a tiled image"); + return (0); + } + return (1); +} + +void +_TIFFNoPostDecode(TIFF* tif, tidata_t buf, tsize_t cc) +{ + (void) tif; (void) buf; (void) cc; +} + +void +_TIFFSwab16BitData(TIFF* tif, tidata_t buf, tsize_t cc) +{ + (void) tif; + assert((cc & 1) == 0); + TIFFSwabArrayOfShort((uint16*) buf, cc/2); +} + +void +_TIFFSwab32BitData(TIFF* tif, tidata_t buf, tsize_t cc) +{ + (void) tif; + assert((cc & 3) == 0); + TIFFSwabArrayOfLong((uint32*) buf, cc/4); +} + +void +_TIFFSwab64BitData(TIFF* tif, tidata_t buf, tsize_t cc) +{ + (void) tif; + assert((cc & 7) == 0); + TIFFSwabArrayOfDouble((double*) buf, cc/8); +} diff --git a/libtiff/tif_strip.c b/libtiff/tif_strip.c new file mode 100755 index 0000000..0090e80 --- /dev/null +++ b/libtiff/tif_strip.c @@ -0,0 +1,192 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_strip.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1991-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library. + * + * Strip-organized Image Support Routines. + */ +#include "tiffiop.h" + +/* + * Compute which strip a (row,sample) value is in. + */ +tstrip_t +TIFFComputeStrip(TIFF* tif, uint32 row, tsample_t sample) +{ + TIFFDirectory *td = &tif->tif_dir; + tstrip_t strip; + + strip = row / td->td_rowsperstrip; + if (td->td_planarconfig == PLANARCONFIG_SEPARATE) { + if (sample >= td->td_samplesperpixel) { + TIFFError(tif->tif_name, + "%u: Sample out of range, max %u", + sample, td->td_samplesperpixel); + return ((tstrip_t) 0); + } + strip += sample*td->td_stripsperimage; + } + return (strip); +} + +/* + * Compute how many strips are in an image. + */ +tstrip_t +TIFFNumberOfStrips(TIFF* tif) +{ + TIFFDirectory *td = &tif->tif_dir; + tstrip_t nstrips; + + nstrips = (td->td_rowsperstrip == (uint32) -1 ? + (td->td_imagelength != 0 ? 1 : 0) : + TIFFhowmany(td->td_imagelength, td->td_rowsperstrip)); + if (td->td_planarconfig == PLANARCONFIG_SEPARATE) + nstrips *= td->td_samplesperpixel; + return (nstrips); +} + +/* + * Compute the # bytes in a variable height, row-aligned strip. + */ +tsize_t +TIFFVStripSize(TIFF* tif, uint32 nrows) +{ + TIFFDirectory *td = &tif->tif_dir; + + if (nrows == (uint32) -1) + nrows = td->td_imagelength; +#ifdef YCBCR_SUPPORT + if (td->td_planarconfig == PLANARCONFIG_CONTIG && + td->td_photometric == PHOTOMETRIC_YCBCR && + !isUpSampled(tif)) { + /* + * Packed YCbCr data contain one Cb+Cr for every + * HorizontalSampling*VerticalSampling Y values. + * Must also roundup width and height when calculating + * since images that are not a multiple of the + * horizontal/vertical subsampling area include + * YCbCr data for the extended image. + */ + tsize_t w = + TIFFroundup(td->td_imagewidth, td->td_ycbcrsubsampling[0]); + tsize_t scanline = TIFFhowmany(w*td->td_bitspersample, 8); + tsize_t samplingarea = + td->td_ycbcrsubsampling[0]*td->td_ycbcrsubsampling[1]; + nrows = TIFFroundup(nrows, td->td_ycbcrsubsampling[1]); + /* NB: don't need TIFFhowmany here 'cuz everything is rounded */ + return ((tsize_t) + (nrows*scanline + 2*(nrows*scanline / samplingarea))); + } else +#endif + return ((tsize_t)(nrows * TIFFScanlineSize(tif))); +} + +/* + * Compute the # bytes in a (row-aligned) strip. + * + * Note that if RowsPerStrip is larger than the + * recorded ImageLength, then the strip size is + * truncated to reflect the actual space required + * to hold the strip. + */ +tsize_t +TIFFStripSize(TIFF* tif) +{ + TIFFDirectory* td = &tif->tif_dir; + uint32 rps = td->td_rowsperstrip; + if (rps > td->td_imagelength) + rps = td->td_imagelength; + return (TIFFVStripSize(tif, rps)); +} + +/* + * Compute a default strip size based on the image + * characteristics and a requested value. If the + * request is <1 then we choose a strip size according + * to certain heuristics. + */ +uint32 +TIFFDefaultStripSize(TIFF* tif, uint32 request) +{ + return (*tif->tif_defstripsize)(tif, request); +} + +uint32 +_TIFFDefaultStripSize(TIFF* tif, uint32 s) +{ + if ((int32) s < 1) { + /* + * If RowsPerStrip is unspecified, try to break the + * image up into strips that are approximately 8Kbytes. + */ + tsize_t scanline = TIFFScanlineSize(tif); + s = (uint32)(8*1024) / (scanline == 0 ? 1 : scanline); + if (s == 0) /* very wide images */ + s = 1; + } + return (s); +} + +/* + * Return the number of bytes to read/write in a call to + * one of the scanline-oriented i/o routines. Note that + * this number may be 1/samples-per-pixel if data is + * stored as separate planes. + */ +tsize_t +TIFFScanlineSize(TIFF* tif) +{ + TIFFDirectory *td = &tif->tif_dir; + tsize_t scanline; + + scanline = td->td_bitspersample * td->td_imagewidth; + if (td->td_planarconfig == PLANARCONFIG_CONTIG) + scanline *= td->td_samplesperpixel; + return ((tsize_t) TIFFhowmany(scanline, 8)); +} + +/* + * Return the number of bytes required to store a complete + * decoded and packed raster scanline (as opposed to the + * I/O size returned by TIFFScanlineSize which may be less + * if data is store as separate planes). + */ +tsize_t +TIFFRasterScanlineSize(TIFF* tif) +{ + TIFFDirectory *td = &tif->tif_dir; + tsize_t scanline; + + scanline = td->td_bitspersample * td->td_imagewidth; + if (td->td_planarconfig == PLANARCONFIG_CONTIG) { + scanline *= td->td_samplesperpixel; + return ((tsize_t) TIFFhowmany(scanline, 8)); + } else + return ((tsize_t) + TIFFhowmany(scanline, 8)*td->td_samplesperpixel); +} diff --git a/libtiff/tif_swab.c b/libtiff/tif_swab.c new file mode 100755 index 0000000..fd72568 --- /dev/null +++ b/libtiff/tif_swab.c @@ -0,0 +1,217 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_swab.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library Bit & Byte Swapping Support. + * + * XXX We assume short = 16-bits and long = 32-bits XXX + */ +#include "tiffiop.h" + +#ifndef TIFFSwabShort +void +TIFFSwabShort(uint16* wp) +{ + register u_char* cp = (u_char*) wp; + int t; + + t = cp[1]; cp[1] = cp[0]; cp[0] = t; +} +#endif + +#ifndef TIFFSwabLong +void +TIFFSwabLong(uint32* lp) +{ + register u_char* cp = (u_char*) lp; + int t; + + t = cp[3]; cp[3] = cp[0]; cp[0] = t; + t = cp[2]; cp[2] = cp[1]; cp[1] = t; +} +#endif + +#ifndef TIFFSwabArrayOfShort +void +TIFFSwabArrayOfShort(uint16* wp, register u_long n) +{ + register u_char* cp; + register int t; + + /* XXX unroll loop some */ + while (n-- > 0) { + cp = (u_char*) wp; + t = cp[1]; cp[1] = cp[0]; cp[0] = t; + wp++; + } +} +#endif + +#ifndef TIFFSwabArrayOfLong +void +TIFFSwabArrayOfLong(register uint32* lp, register u_long n) +{ + register unsigned char *cp; + register int t; + + /* XXX unroll loop some */ + while (n-- > 0) { + cp = (unsigned char *)lp; + t = cp[3]; cp[3] = cp[0]; cp[0] = t; + t = cp[2]; cp[2] = cp[1]; cp[1] = t; + lp++; + } +} +#endif + +#ifndef TIFFSwabDouble +void +TIFFSwabDouble(double *dp) +{ + register uint32* lp = (uint32*) dp; + uint32 t; + + TIFFSwabArrayOfLong(lp, 2); + t = lp[0]; lp[0] = lp[1]; lp[1] = t; +} +#endif + +#ifndef TIFFSwabArrayOfDouble +void +TIFFSwabArrayOfDouble(double* dp, register u_long n) +{ + register uint32* lp = (uint32*) dp; + register uint32 t; + + TIFFSwabArrayOfLong(lp, n + n); + while (n-- > 0) { + t = lp[0]; lp[0] = lp[1]; lp[1] = t; + lp += 2; + } +} +#endif + +/* + * Bit reversal tables. TIFFBitRevTable[] gives + * the bit reversed value of . Used in various + * places in the library when the FillOrder requires + * bit reversal of byte values (e.g. CCITT Fax 3 + * encoding/decoding). TIFFNoBitRevTable is provided + * for algorithms that want an equivalent table that + * do not reverse bit values. + */ +static const unsigned char TIFFBitRevTable[256] = { + 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0, + 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0, + 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8, + 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8, + 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4, + 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4, + 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec, + 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc, + 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2, + 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2, + 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea, + 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa, + 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6, + 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6, + 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee, + 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe, + 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1, + 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1, + 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9, + 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9, + 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5, + 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5, + 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed, + 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd, + 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3, + 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3, + 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb, + 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb, + 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7, + 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7, + 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef, + 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff +}; +static const unsigned char TIFFNoBitRevTable[256] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, +}; + +const unsigned char* +TIFFGetBitRevTable(int reversed) +{ + return (reversed ? TIFFBitRevTable : TIFFNoBitRevTable); +} + +void +TIFFReverseBits(register u_char* cp, register u_long n) +{ + for (; n > 8; n -= 8) { + cp[0] = TIFFBitRevTable[cp[0]]; + cp[1] = TIFFBitRevTable[cp[1]]; + cp[2] = TIFFBitRevTable[cp[2]]; + cp[3] = TIFFBitRevTable[cp[3]]; + cp[4] = TIFFBitRevTable[cp[4]]; + cp[5] = TIFFBitRevTable[cp[5]]; + cp[6] = TIFFBitRevTable[cp[6]]; + cp[7] = TIFFBitRevTable[cp[7]]; + cp += 8; + } + while (n-- > 0) + *cp = TIFFBitRevTable[*cp], cp++; +} diff --git a/libtiff/tif_thunder.c b/libtiff/tif_thunder.c new file mode 100755 index 0000000..d7a2b90 --- /dev/null +++ b/libtiff/tif_thunder.c @@ -0,0 +1,154 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_thunder.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include "tiffiop.h" +#ifdef THUNDER_SUPPORT +/* + * TIFF Library. + * + * ThunderScan 4-bit Compression Algorithm Support + */ + +/* + * ThunderScan uses an encoding scheme designed for + * 4-bit pixel values. Data is encoded in bytes, with + * each byte split into a 2-bit code word and a 6-bit + * data value. The encoding gives raw data, runs of + * pixels, or pixel values encoded as a delta from the + * previous pixel value. For the latter, either 2-bit + * or 3-bit delta values are used, with the deltas packed + * into a single byte. + */ +#define THUNDER_DATA 0x3f /* mask for 6-bit data */ +#define THUNDER_CODE 0xc0 /* mask for 2-bit code word */ +/* code values */ +#define THUNDER_RUN 0x00 /* run of pixels w/ encoded count */ +#define THUNDER_2BITDELTAS 0x40 /* 3 pixels w/ encoded 2-bit deltas */ +#define DELTA2_SKIP 2 /* skip code for 2-bit deltas */ +#define THUNDER_3BITDELTAS 0x80 /* 2 pixels w/ encoded 3-bit deltas */ +#define DELTA3_SKIP 4 /* skip code for 3-bit deltas */ +#define THUNDER_RAW 0xc0 /* raw data encoded */ + +static const int twobitdeltas[4] = { 0, 1, 0, -1 }; +static const int threebitdeltas[8] = { 0, 1, 2, 3, 0, -3, -2, -1 }; + +#define SETPIXEL(op, v) { \ + lastpixel = (v) & 0xf; \ + if (npixels++ & 1) \ + *op++ |= lastpixel; \ + else \ + op[0] = lastpixel << 4; \ +} + +static int +ThunderDecode(TIFF* tif, tidata_t op, tsize_t maxpixels) +{ + register u_char *bp; + register tsize_t cc; + u_int lastpixel; + tsize_t npixels; + + bp = (u_char *)tif->tif_rawcp; + cc = tif->tif_rawcc; + lastpixel = 0; + npixels = 0; + while (cc > 0 && npixels < maxpixels) { + int n, delta; + + n = *bp++, cc--; + switch (n & THUNDER_CODE) { + case THUNDER_RUN: /* pixel run */ + /* + * Replicate the last pixel n times, + * where n is the lower-order 6 bits. + */ + if (npixels & 1) { + op[0] |= lastpixel; + lastpixel = *op++; npixels++; n--; + } else + lastpixel |= lastpixel << 4; + npixels += n; + for (; n > 0; n -= 2) + *op++ = lastpixel; + if (n == -1) + *--op &= 0xf0; + lastpixel &= 0xf; + break; + case THUNDER_2BITDELTAS: /* 2-bit deltas */ + if ((delta = ((n >> 4) & 3)) != DELTA2_SKIP) + SETPIXEL(op, lastpixel + twobitdeltas[delta]); + if ((delta = ((n >> 2) & 3)) != DELTA2_SKIP) + SETPIXEL(op, lastpixel + twobitdeltas[delta]); + if ((delta = (n & 3)) != DELTA2_SKIP) + SETPIXEL(op, lastpixel + twobitdeltas[delta]); + break; + case THUNDER_3BITDELTAS: /* 3-bit deltas */ + if ((delta = ((n >> 3) & 7)) != DELTA3_SKIP) + SETPIXEL(op, lastpixel + threebitdeltas[delta]); + if ((delta = (n & 7)) != DELTA3_SKIP) + SETPIXEL(op, lastpixel + threebitdeltas[delta]); + break; + case THUNDER_RAW: /* raw data */ + SETPIXEL(op, n); + break; + } + } + tif->tif_rawcp = (tidata_t) bp; + tif->tif_rawcc = cc; + if (npixels != maxpixels) { + TIFFError(tif->tif_name, + "ThunderDecode: %s data at scanline %ld (%lu != %lu)", + npixels < maxpixels ? "Not enough" : "Too much", + (long) tif->tif_row, (long) npixels, (long) maxpixels); + return (0); + } + return (1); +} + +static int +ThunderDecodeRow(TIFF* tif, tidata_t buf, tsize_t occ, tsample_t s) +{ + tidata_t row = buf; + + (void) s; + while ((long)occ > 0) { + if (!ThunderDecode(tif, row, tif->tif_dir.td_imagewidth)) + return (0); + occ -= tif->tif_scanlinesize; + row += tif->tif_scanlinesize; + } + return (1); +} + +int +TIFFInitThunderScan(TIFF* tif, int scheme) +{ + (void) scheme; + tif->tif_decoderow = ThunderDecodeRow; + tif->tif_decodestrip = ThunderDecodeRow; + return (1); +} +#endif /* THUNDER_SUPPORT */ diff --git a/libtiff/tif_tile.c b/libtiff/tif_tile.c new file mode 100755 index 0000000..713744e --- /dev/null +++ b/libtiff/tif_tile.c @@ -0,0 +1,219 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_tile.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1991-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library. + * + * Tiled Image Support Routines. + */ +#include "tiffiop.h" + +/* + * Compute which tile an (x,y,z,s) value is in. + */ +ttile_t +TIFFComputeTile(TIFF* tif, uint32 x, uint32 y, uint32 z, tsample_t s) +{ + TIFFDirectory *td = &tif->tif_dir; + uint32 dx = td->td_tilewidth; + uint32 dy = td->td_tilelength; + uint32 dz = td->td_tiledepth; + ttile_t tile = 1; + + if (td->td_imagedepth == 1) + z = 0; + if (dx == (uint32) -1) + dx = td->td_imagewidth; + if (dy == (uint32) -1) + dy = td->td_imagelength; + if (dz == (uint32) -1) + dz = td->td_imagedepth; + if (dx != 0 && dy != 0 && dz != 0) { + uint32 xpt = TIFFhowmany(td->td_imagewidth, dx); + uint32 ypt = TIFFhowmany(td->td_imagelength, dy); + uint32 zpt = TIFFhowmany(td->td_imagedepth, dz); + + if (td->td_planarconfig == PLANARCONFIG_SEPARATE) + tile = (xpt*ypt*zpt)*s + + (xpt*ypt)*(z/dz) + + xpt*(y/dy) + + x/dx; + else + tile = (xpt*ypt)*(z/dz) + xpt*(y/dy) + x/dx + s; + } + return (tile); +} + +/* + * Check an (x,y,z,s) coordinate + * against the image bounds. + */ +int +TIFFCheckTile(TIFF* tif, uint32 x, uint32 y, uint32 z, tsample_t s) +{ + TIFFDirectory *td = &tif->tif_dir; + + if (x >= td->td_imagewidth) { + TIFFError(tif->tif_name, "Col %ld out of range, max %lu", + (long) x, (u_long) td->td_imagewidth); + return (0); + } + if (y >= td->td_imagelength) { + TIFFError(tif->tif_name, "Row %ld out of range, max %lu", + (long) y, (u_long) td->td_imagelength); + return (0); + } + if (z >= td->td_imagedepth) { + TIFFError(tif->tif_name, "Depth %ld out of range, max %lu", + (long) z, (u_long) td->td_imagedepth); + return (0); + } + if (td->td_planarconfig == PLANARCONFIG_SEPARATE && + s >= td->td_samplesperpixel) { + TIFFError(tif->tif_name, "Sample %d out of range, max %u", + (int) s, td->td_samplesperpixel); + return (0); + } + return (1); +} + +/* + * Compute how many tiles are in an image. + */ +ttile_t +TIFFNumberOfTiles(TIFF* tif) +{ + TIFFDirectory *td = &tif->tif_dir; + uint32 dx = td->td_tilewidth; + uint32 dy = td->td_tilelength; + uint32 dz = td->td_tiledepth; + ttile_t ntiles; + + if (dx == (uint32) -1) + dx = td->td_imagewidth; + if (dy == (uint32) -1) + dy = td->td_imagelength; + if (dz == (uint32) -1) + dz = td->td_imagedepth; + ntiles = (dx == 0 || dy == 0 || dz == 0) ? 0 : + (TIFFhowmany(td->td_imagewidth, dx) * + TIFFhowmany(td->td_imagelength, dy) * + TIFFhowmany(td->td_imagedepth, dz)); + if (td->td_planarconfig == PLANARCONFIG_SEPARATE) + ntiles *= td->td_samplesperpixel; + return (ntiles); +} + +/* + * Compute the # bytes in each row of a tile. + */ +tsize_t +TIFFTileRowSize(TIFF* tif) +{ + TIFFDirectory *td = &tif->tif_dir; + tsize_t rowsize; + + if (td->td_tilelength == 0 || td->td_tilewidth == 0) + return ((tsize_t) 0); + rowsize = td->td_bitspersample * td->td_tilewidth; + if (td->td_planarconfig == PLANARCONFIG_CONTIG) + rowsize *= td->td_samplesperpixel; + return ((tsize_t) TIFFhowmany(rowsize, 8)); +} + +/* + * Compute the # bytes in a variable length, row-aligned tile. + */ +tsize_t +TIFFVTileSize(TIFF* tif, uint32 nrows) +{ + TIFFDirectory *td = &tif->tif_dir; + tsize_t tilesize; + + if (td->td_tilelength == 0 || td->td_tilewidth == 0 || + td->td_tiledepth == 0) + return ((tsize_t) 0); +#ifdef YCBCR_SUPPORT + if (td->td_planarconfig == PLANARCONFIG_CONTIG && + td->td_photometric == PHOTOMETRIC_YCBCR && + !isUpSampled(tif)) { + /* + * Packed YCbCr data contain one Cb+Cr for every + * HorizontalSampling*VerticalSampling Y values. + * Must also roundup width and height when calculating + * since images that are not a multiple of the + * horizontal/vertical subsampling area include + * YCbCr data for the extended image. + */ + tsize_t w = + TIFFroundup(td->td_tilewidth, td->td_ycbcrsubsampling[0]); + tsize_t rowsize = TIFFhowmany(w*td->td_bitspersample, 8); + tsize_t samplingarea = + td->td_ycbcrsubsampling[0]*td->td_ycbcrsubsampling[1]; + nrows = TIFFroundup(nrows, td->td_ycbcrsubsampling[1]); + /* NB: don't need TIFFhowmany here 'cuz everything is rounded */ + tilesize = nrows*rowsize + 2*(nrows*rowsize / samplingarea); + } else +#endif + tilesize = nrows * TIFFTileRowSize(tif); + return ((tsize_t)(tilesize * td->td_tiledepth)); +} + +/* + * Compute the # bytes in a row-aligned tile. + */ +tsize_t +TIFFTileSize(TIFF* tif) +{ + return (TIFFVTileSize(tif, tif->tif_dir.td_tilelength)); +} + +/* + * Compute a default tile size based on the image + * characteristics and a requested value. If a + * request is <1 then we choose a size according + * to certain heuristics. + */ +void +TIFFDefaultTileSize(TIFF* tif, uint32* tw, uint32* th) +{ + (*tif->tif_deftilesize)(tif, tw, th); +} + +void +_TIFFDefaultTileSize(TIFF* tif, uint32* tw, uint32* th) +{ + (void) tif; + if (*(int32*) tw < 1) + *tw = 256; + if (*(int32*) th < 1) + *th = 256; + /* roundup to a multiple of 16 per the spec */ + if (*tw & 0xf) + *tw = TIFFroundup(*tw, 16); + if (*th & 0xf) + *th = TIFFroundup(*th, 16); +} diff --git a/libtiff/tif_unix.c b/libtiff/tif_unix.c new file mode 100755 index 0000000..e38994b --- /dev/null +++ b/libtiff/tif_unix.c @@ -0,0 +1,224 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_unix.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library UNIX-specific Routines. + */ +#include "tiffiop.h" +#include +#include +#include + +static tsize_t +_tiffReadProc(thandle_t fd, tdata_t buf, tsize_t size) +{ + return ((tsize_t) read((int) fd, buf, (size_t) size)); +} + +static tsize_t +_tiffWriteProc(thandle_t fd, tdata_t buf, tsize_t size) +{ + return ((tsize_t) write((int) fd, buf, (size_t) size)); +} + +static toff_t +_tiffSeekProc(thandle_t fd, toff_t off, int whence) +{ +#if USE_64BIT_API == 1 + return ((toff_t) lseek64((int) fd, (off64_t) off, whence)); +#else + return ((toff_t) lseek((int) fd, (off_t) off, whence)); +#endif +} + +static int +_tiffCloseProc(thandle_t fd) +{ + return (close((int) fd)); +} + +#include + +static toff_t +_tiffSizeProc(thandle_t fd) +{ +#ifdef _AM29K + long fsize; + return ((fsize = lseek((int) fd, 0, SEEK_END)) < 0 ? 0 : fsize); +#else +#if USE_64BIT_API == 1 + struct stat64 sb; + return (toff_t) (fstat64((int) fd, &sb) < 0 ? 0 : sb.st_size); +#else + struct stat sb; + return (toff_t) (fstat((int) fd, &sb) < 0 ? 0 : sb.st_size); +#endif +#endif +} + +#ifdef HAVE_MMAP +#include + +static int +_tiffMapProc(thandle_t fd, tdata_t* pbase, toff_t* psize) +{ + toff_t size = _tiffSizeProc(fd); + if (size != (toff_t) -1) { + *pbase = (tdata_t) + mmap(0, size, PROT_READ, MAP_SHARED, (int) fd, 0); + if (*pbase != (tdata_t) -1) { + *psize = size; + return (1); + } + } + return (0); +} + +static void +_tiffUnmapProc(thandle_t fd, tdata_t base, toff_t size) +{ + (void) fd; + (void) munmap(base, (off_t) size); +} +#else /* !HAVE_MMAP */ +static int +_tiffMapProc(thandle_t fd, tdata_t* pbase, toff_t* psize) +{ + (void) fd; (void) pbase; (void) psize; + return (0); +} + +static void +_tiffUnmapProc(thandle_t fd, tdata_t base, toff_t size) +{ + (void) fd; (void) base; (void) size; +} +#endif /* !HAVE_MMAP */ + +/* + * Open a TIFF file descriptor for read/writing. + */ +TIFF* +TIFFFdOpen(int fd, const char* name, const char* mode) +{ + TIFF* tif; + + tif = TIFFClientOpen(name, mode, + (thandle_t) fd, + _tiffReadProc, _tiffWriteProc, + _tiffSeekProc, _tiffCloseProc, _tiffSizeProc, + _tiffMapProc, _tiffUnmapProc); + if (tif) + tif->tif_fd = fd; + return (tif); +} + +/* + * Open a TIFF file for read/writing. + */ +TIFF* +TIFFOpen(const char* name, const char* mode) +{ + static const char module[] = "TIFFOpen"; + int m, fd; + + m = _TIFFgetMode(mode, module); + if (m == -1) + return ((TIFF*)0); + +/* for cygwin */ +#ifdef O_BINARY + m |= O_BINARY; +#endif + +#ifdef _AM29K + fd = open(name, m); +#else + fd = open(name, m, 0666); +#endif + if (fd < 0) { + TIFFError(module, "%s: Cannot open", name); + return ((TIFF *)0); + } + return (TIFFFdOpen(fd, name, mode)); +} + +void* +_TIFFmalloc(tsize_t s) +{ + return (malloc((size_t) s)); +} + +void +_TIFFfree(tdata_t p) +{ + free(p); +} + +void* +_TIFFrealloc(tdata_t p, tsize_t s) +{ + return (realloc(p, (size_t) s)); +} + +void +_TIFFmemset(tdata_t p, int v, tsize_t c) +{ + memset(p, v, (size_t) c); +} + +void +_TIFFmemcpy(tdata_t d, const tdata_t s, tsize_t c) +{ + memcpy(d, s, (size_t) c); +} + +int +_TIFFmemcmp(const tdata_t p1, const tdata_t p2, tsize_t c) +{ + return (memcmp(p1, p2, (size_t) c)); +} + +static void +unixWarningHandler(const char* module, const char* fmt, va_list ap) +{ + if (module != NULL) + fprintf(stderr, "%s: ", module); + fprintf(stderr, "Warning, "); + vfprintf(stderr, fmt, ap); + fprintf(stderr, ".\n"); +} +TIFFErrorHandler _TIFFwarningHandler = unixWarningHandler; + +static void +unixErrorHandler(const char* module, const char* fmt, va_list ap) +{ + if (module != NULL) + fprintf(stderr, "%s: ", module); + vfprintf(stderr, fmt, ap); + fprintf(stderr, ".\n"); +} +TIFFErrorHandler _TIFFerrorHandler = unixErrorHandler; diff --git a/libtiff/tif_version.c b/libtiff/tif_version.c new file mode 100755 index 0000000..1f2ec77 --- /dev/null +++ b/libtiff/tif_version.c @@ -0,0 +1,34 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_version.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ +/* + * Copyright (c) 1992-1997 Sam Leffler + * Copyright (c) 1992-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ +#include "tiffiop.h" +#include "version.h" + +static const char TIFFVersion[] = VERSION; + +const char* +TIFFGetVersion(void) +{ + return (TIFFVersion); +} diff --git a/libtiff/tif_vms.c b/libtiff/tif_vms.c new file mode 100755 index 0000000..ca0da56 --- /dev/null +++ b/libtiff/tif_vms.c @@ -0,0 +1,588 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_vms.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library VMS-specific Routines. + */ + +#include +#include +#include "tiffiop.h" +#if !HAVE_IEEEFP +#include +#endif + +#ifdef VAXC +#define NOSHARE noshare +#else +#define NOSHARE +#endif + +#ifdef __alpha +/* Dummy entry point for backwards compatibility */ +void TIFFModeCCITTFax3(void){} +#endif + +static tsize_t +_tiffReadProc(thandle_t fd, tdata_t buf, tsize_t size) +{ + return (read((int) fd, buf, size)); +} + +static tsize_t +_tiffWriteProc(thandle_t fd, tdata_t buf, tsize_t size) +{ + return (write((int) fd, buf, size)); +} + +static toff_t +_tiffSeekProc(thandle_t fd, toff_t off, int whence) +{ + return ((toff_t) lseek((int) fd, (off_t) off, whence)); +} + +static int +_tiffCloseProc(thandle_t fd) +{ + return (close((int) fd)); +} + +#include + +static toff_t +_tiffSizeProc(thandle_t fd) +{ + struct stat sb; + return (toff_t) (fstat((int) fd, &sb) < 0 ? 0 : sb.st_size); +} + +#ifdef HAVE_MMAP +#include +#include +#include + +/* + * Table for storing information on current open sections. + * (Should really be a linked list) + */ +#define MAX_MAPPED 100 +static int no_mapped = 0; +static struct { + char *base; + char *top; + unsigned short channel; +} map_table[MAX_MAPPED]; + +/* + * This routine maps a file into a private section. Note that this + * method of accessing a file is by far the fastest under VMS. + * The routine may fail (i.e. return 0) for several reasons, for + * example: + * - There is no more room for storing the info on sections. + * - The process is out of open file quota, channels, ... + * - fd does not describe an opened file. + * - The file is already opened for write access by this process + * or another process + * - There is no free "hole" in virtual memory that fits the + * size of the file + */ +static int +_tiffMapProc(thandle_t fd, tdata_t* pbase, toff_t* psize) +{ + char name[256]; + struct FAB fab; + unsigned short channel; + char *inadr[2], *retadr[2]; + unsigned long status; + long size; + + if (no_mapped >= MAX_MAPPED) + return(0); + /* + * We cannot use a file descriptor, we + * must open the file once more. + */ + if (getname((int)fd, name, 1) == NULL) + return(0); + /* prepare the FAB for a user file open */ + fab = cc$rms_fab; + fab.fab$l_fop |= FAB$V_UFO; + fab.fab$b_fac = FAB$M_GET; + fab.fab$b_shr = FAB$M_SHRGET; + fab.fab$l_fna = name; + fab.fab$b_fns = strlen(name); + status = sys$open(&fab); /* open file & get channel number */ + if ((status&1) == 0) + return(0); + channel = (unsigned short)fab.fab$l_stv; + inadr[0] = inadr[1] = (char *)0; /* just an address in P0 space */ + /* + * Map the blocks of the file up to + * the EOF block into virtual memory. + */ + size = _tiffSizeProc(fd); + status = sys$crmpsc(inadr, retadr, 0, SEC$M_EXPREG, 0,0,0, channel, + TIFFhowmany(size,512), 0,0,0); + if ((status&1) == 0){ + sys$dassgn(channel); + return(0); + } + *pbase = (tdata_t) retadr[0]; /* starting virtual address */ + /* + * Use the size of the file up to the + * EOF mark for UNIX compatibility. + */ + *psize = (toff_t) size; + /* Record the section in the table */ + map_table[no_mapped].base = retadr[0]; + map_table[no_mapped].top = retadr[1]; + map_table[no_mapped].channel = channel; + no_mapped++; + + return(1); +} + +/* + * This routine unmaps a section from the virtual address space of + * the process, but only if the base was the one returned from a + * call to TIFFMapFileContents. + */ +static void +_tiffUnmapProc(thandle_t fd, tdata_t base, toff_t size) +{ + char *inadr[2]; + int i, j; + + /* Find the section in the table */ + for (i = 0;i < no_mapped; i++) { + if (map_table[i].base == (char *) base) { + /* Unmap the section */ + inadr[0] = (char *) base; + inadr[1] = map_table[i].top; + sys$deltva(inadr, 0, 0); + sys$dassgn(map_table[i].channel); + /* Remove this section from the list */ + for (j = i+1; j < no_mapped; j++) + map_table[j-1] = map_table[j]; + no_mapped--; + return; + } + } +} +#else /* !HAVE_MMAP */ +static int +_tiffMapProc(thandle_t fd, tdata_t* pbase, toff_t* psize) +{ + return (0); +} + +static void +_tiffUnmapProc(thandle_t fd, tdata_t base, toff_t size) +{ +} +#endif /* !HAVE_MMAP */ + +/* + * Open a TIFF file descriptor for read/writing. + */ +TIFF* +TIFFFdOpen(int fd, const char* name, const char* mode) +{ + TIFF* tif; + + tif = TIFFClientOpen(name, mode, + (thandle_t) fd, + _tiffReadProc, _tiffWriteProc, _tiffSeekProc, _tiffCloseProc, + _tiffSizeProc, _tiffMapProc, _tiffUnmapProc); + if (tif) + tif->tif_fd = fd; + return (tif); +} + +/* + * Open a TIFF file for read/writing. + */ +TIFF* +TIFFOpen(const char* name, const char* mode) +{ + static const char module[] = "TIFFOpen"; + int m, fd; + + m = _TIFFgetMode(mode, module); + if (m == -1) + return ((TIFF*)0); + if (m&O_TRUNC){ + /* + * There is a bug in open in VAXC. If you use + * open w/ m=O_RDWR|O_CREAT|O_TRUNC the + * wrong thing happens. On the other hand + * creat does the right thing. + */ + fd = creat((char *) /* bug in stdio.h */ name, 0666, + "alq = 128", "deq = 64", "mbc = 32", + "fop = tef"); + } else if (m&O_RDWR) { + fd = open(name, m, 0666, + "deq = 64", "mbc = 32", "fop = tef", "ctx = stm"); + } else + fd = open(name, m, 0666, "mbc = 32", "ctx = stm"); + if (fd < 0) { + TIFFError(module, "%s: Cannot open", name); + return ((TIFF*)0); + } + return (TIFFFdOpen(fd, name, mode)); +} + +tdata_t +_TIFFmalloc(tsize_t s) +{ + return (malloc((size_t) s)); +} + +void +_TIFFfree(tdata_t p) +{ + free(p); +} + +tdata_t +_TIFFrealloc(tdata_t p, tsize_t s) +{ + return (realloc(p, (size_t) s)); +} + +void +_TIFFmemset(tdata_t p, int v, tsize_t c) +{ + memset(p, v, (size_t) c); +} + +void +_TIFFmemcpy(tdata_t d, const tdata_t s, tsize_t c) +{ + memcpy(d, s, (size_t) c); +} + +int +_TIFFmemcmp(const tdata_t p1, const tdata_t p2, tsize_t c) +{ + return (memcmp(p1, p2, (size_t) c)); +} + +/* + * On the VAX, we need to make those global, writable pointers + * non-shareable, otherwise they would be made shareable by default. + * On the AXP, this brain damage has been corrected. + * + * I (Karsten Spang, krs@kampsax.dk) have dug around in the GCC + * manual and the GAS code and have come up with the following + * construct, but I don't have GCC on my VAX, so it is untested. + * Please tell me if it does not work. + */ + +static void +vmsWarningHandler(const char* module, const char* fmt, va_list ap) +{ + if (module != NULL) + fprintf(stderr, "%s: ", module); + fprintf(stderr, "Warning, "); + vfprintf(stderr, fmt, ap); + fprintf(stderr, ".\n"); +} + +NOSHARE TIFFErrorHandler _TIFFwarningHandler = vmsWarningHandler +#if defined(VAX) && defined(__GNUC__) +asm("_$$PsectAttributes_NOSHR$$_TIFFwarningHandler") +#endif +; + +static void +vmsErrorHandler(const char* module, const char* fmt, va_list ap) +{ + if (module != NULL) + fprintf(stderr, "%s: ", module); + vfprintf(stderr, fmt, ap); + fprintf(stderr, ".\n"); +} + +NOSHARE TIFFErrorHandler _TIFFerrorHandler = vmsErrorHandler +#if defined(VAX) && defined(__GNUC__) +asm("_$$PsectAttributes_NOSHR$$_TIFFerrorHandler") +#endif +; + + +#if !HAVE_IEEEFP +/* IEEE floting point handling */ + +typedef struct ieeedouble { + u_long mant2; /* fix NDR: full 8-byte swap */ + u_long mant : 20, + exp : 11, + sign : 1; +} ieeedouble; +typedef struct ieeefloat { + u_long mant : 23, + exp : 8, + sign : 1; +} ieeefloat; + +/* + * NB: These are D_FLOAT's, not G_FLOAT's. A G_FLOAT is + * simply a reverse-IEEE float/double. + */ + +typedef struct { + u_long mant1 : 7, + exp : 8, + sign : 1, + mant2 : 16, + mant3 : 16, + mant4 : 16; +} nativedouble; +typedef struct { + u_long mant1 : 7, + exp : 8, + sign : 1, + mant2 : 16; +} nativefloat; + +typedef union { + ieeedouble ieee; + nativedouble native; + char b[8]; + uint32 l[2]; + double d; +} double_t; + +typedef union { + ieeefloat ieee; + nativefloat native; + char b[4]; + uint32 l; + float f; +} float_t; + +#if defined(VAXC) || defined(DECC) +#pragma inline(ieeetod,dtoieee) +#endif + +/* + * Convert an IEEE double precision number to native double precision. + * The source is contained in two longwords, the second holding the sign, + * exponent and the higher order bits of the mantissa, and the first + * holding the rest of the mantissa as follows: + * (Note: It is assumed that the number has been eight-byte swapped to + * LSB first.) + * + * First longword: + * 32 least significant bits of mantissa + * Second longword: + * 0-19: 20 most significant bits of mantissa + * 20-30: exponent + * 31: sign + * The exponent is stored as excess 1023. + * The most significant bit of the mantissa is implied 1, and not stored. + * If the exponent and mantissa are zero, the number is zero. + * If the exponent is 0 (i.e. -1023) and the mantissa is non-zero, it is an + * unnormalized number with the most significant bit NOT implied. + * If the exponent is 2047, the number is invalid, in case the mantissa is zero, + * this means overflow (+/- depending of the sign bit), otherwise + * it simply means invalid number. + * + * If the number is too large for the machine or was specified as overflow, + * +/-HUGE_VAL is returned. + */ +INLINE static void +ieeetod(double *dp) +{ + double_t source; + long sign,exp,mant; + double dmant; + + source.ieee = ((double_t*)dp)->ieee; + sign = source.ieee.sign; + exp = source.ieee.exp; + mant = source.ieee.mant; + + if (exp == 2047) { + if (mant) /* Not a Number (NAN) */ + *dp = HUGE_VAL; + else /* +/- infinity */ + *dp = (sign ? -HUGE_VAL : HUGE_VAL); + return; + } + if (!exp) { + if (!(mant || source.ieee.mant2)) { /* zero */ + *dp=0; + return; + } else { /* Unnormalized number */ + /* NB: not -1023, the 1 bit is not implied */ + exp= -1022; + } + } else { + mant |= 1<<20; + exp -= 1023; + } + dmant = (((double) mant) + + ((double) source.ieee.mant2) / (((double) (1<<16)) * + ((double) (1<<16)))) / (double) (1<<20); + dmant = ldexp(dmant, exp); + if (sign) + dmant= -dmant; + *dp = dmant; +} + +INLINE static void +dtoieee(double *dp) +{ + double_t num; + double x; + int exp; + + num.d = *dp; + if (!num.d) { /* Zero is just binary all zeros */ + num.l[0] = num.l[1] = 0; + return; + } + + if (num.d < 0) { /* Sign is encoded separately */ + num.d = -num.d; + num.ieee.sign = 1; + } else { + num.ieee.sign = 0; + } + + /* Now separate the absolute value into mantissa and exponent */ + x = frexp(num.d, &exp); + + /* + * Handle cases where the value is outside the + * range for IEEE floating point numbers. + * (Overflow cannot happen on a VAX, but underflow + * can happen for G float.) + */ + if (exp < -1022) { /* Unnormalized number */ + x = ldexp(x, -1023-exp); + exp = 0; + } else if (exp > 1023) { /* +/- infinity */ + x = 0; + exp = 2047; + } else { /* Get rid of most significant bit */ + x *= 2; + x -= 1; + exp += 1022; /* fix NDR: 1.0 -> x=0.5, exp=1 -> ieee.exp = 1023 */ + } + num.ieee.exp = exp; + + x *= (double) (1<<20); + num.ieee.mant = (long) x; + x -= (double) num.ieee.mant; + num.ieee.mant2 = (long) (x*((double) (1<<16)*(double) (1<<16))); + + if (!(num.ieee.mant || num.ieee.exp || num.ieee.mant2)) { + /* Avoid negative zero */ + num.ieee.sign = 0; + } + ((double_t*)dp)->ieee = num.ieee; +} + +/* + * Beware, these do not handle over/under-flow + * during conversion from ieee to native format. + */ +#define NATIVE2IEEEFLOAT(fp) { \ + float_t t; \ + if (t.ieee.exp = (fp)->native.exp) \ + t.ieee.exp += -129 + 127; \ + t.ieee.sign = (fp)->native.sign; \ + t.ieee.mant = ((fp)->native.mant1<<16)|(fp)->native.mant2; \ + *(fp) = t; \ +} +#define IEEEFLOAT2NATIVE(fp) { \ + float_t t; int v = (fp)->ieee.exp; \ + if (v) v += -127 + 129; /* alter bias of exponent */\ + t.native.exp = v; /* implicit truncation of exponent */\ + t.native.sign = (fp)->ieee.sign; \ + v = (fp)->ieee.mant; \ + t.native.mant1 = v >> 16; \ + t.native.mant2 = v;\ + *(fp) = t; \ +} + +#define IEEEDOUBLE2NATIVE(dp) ieeetod(dp) + +#define NATIVE2IEEEDOUBLE(dp) dtoieee(dp) + + +/* + * These unions are used during floating point + * conversions. The above macros define the + * conversion operations. + */ +void +TIFFCvtIEEEFloatToNative(TIFF* tif, u_int n, float* f) +{ + float_t* fp = (float_t*) f; + + while (n-- > 0) { + IEEEFLOAT2NATIVE(fp); + fp++; + } +} + +void +TIFFCvtNativeToIEEEFloat(TIFF* tif, u_int n, float* f) +{ + float_t* fp = (float_t*) f; + + while (n-- > 0) { + NATIVE2IEEEFLOAT(fp); + fp++; + } +} +void +TIFFCvtIEEEDoubleToNative(TIFF* tif, u_int n, double* f) +{ + double_t* fp = (double_t*) f; + + while (n-- > 0) { + IEEEDOUBLE2NATIVE(fp); + fp++; + } +} + +void +TIFFCvtNativeToIEEEDouble(TIFF* tif, u_int n, double* f) +{ + double_t* fp = (double_t*) f; + + while (n-- > 0) { + NATIVE2IEEEDOUBLE(fp); + fp++; + } +} +#endif diff --git a/libtiff/tif_warning.c b/libtiff/tif_warning.c new file mode 100755 index 0000000..7df1a0c --- /dev/null +++ b/libtiff/tif_warning.c @@ -0,0 +1,49 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_warning.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library. + */ +#include "tiffiop.h" + +TIFFErrorHandler +TIFFSetWarningHandler(TIFFErrorHandler handler) +{ + TIFFErrorHandler prev = _TIFFwarningHandler; + _TIFFwarningHandler = handler; + return (prev); +} + +void +TIFFWarning(const char* module, const char* fmt, ...) +{ + if (_TIFFwarningHandler) { + va_list ap; + va_start(ap, fmt); + (*_TIFFwarningHandler)(module, fmt, ap); + va_end(ap); + } +} diff --git a/libtiff/tif_win3.c b/libtiff/tif_win3.c new file mode 100755 index 0000000..f7ca154 --- /dev/null +++ b/libtiff/tif_win3.c @@ -0,0 +1,225 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_win3.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library Windows 3.x-specific Routines. + */ +#include "tiffiop.h" +#if defined(__WATCOMC__) || defined(__BORLANDC__) || defined(_MSC_VER) +#include /* for open, close, etc. function prototypes */ +#endif + +#include +#include +#include + +static tsize_t +_tiffReadProc(thandle_t fd, tdata_t buf, tsize_t size) +{ + return (_hread(fd, buf, size)); +} + +static tsize_t +_tiffWriteProc(thandle_t fd, tdata_t buf, tsize_t size) +{ + return (_hwrite(fd, buf, size)); +} + +static toff_t +_tiffSeekProc(thandle_t fd, toff_t off, int whence) +{ + return (_llseek(fd, (off_t) off, whence)); +} + +static int +_tiffCloseProc(thandle_t fd) +{ + return (_lclose(fd)); +} + +#include + +static toff_t +_tiffSizeProc(thandle_t fd) +{ + struct stat sb; + return (fstat((int) fd, &sb) < 0 ? 0 : sb.st_size); +} + +static int +_tiffMapProc(thandle_t fd, tdata_t* pbase, toff_t* psize) +{ + return (0); +} + +static void +_tiffUnmapProc(thandle_t fd, tdata_t base, toff_t size) +{ +} + +/* + * Open a TIFF file descriptor for read/writing. + */ +TIFF* +TIFFFdOpen(int fd, const char* name, const char* mode) +{ + TIFF* tif; + + tif = TIFFClientOpen(name, mode, + (thandle_t) fd, + _tiffReadProc, _tiffWriteProc, _tiffSeekProc, _tiffCloseProc, + _tiffSizeProc, _tiffMapProc, _tiffUnmapProc); + if (tif) + tif->tif_fd = fd; + return (tif); +} + +/* + * Open a TIFF file for read/writing. + */ +TIFF* +TIFFOpen(const char* name, const char* mode) +{ + static const char module[] = "TIFFOpen"; + int m, fd; + OFSTRUCT of; + int mm = 0; + + m = _TIFFgetMode(mode, module); + if (m == -1) + return ((TIFF*)0); + if (m & O_CREAT) { + if ((m & O_TRUNC) || OpenFile(name, &of, OF_EXIST) != HFILE_ERROR) + mm |= OF_CREATE; + } + if (m & O_WRONLY) + mm |= OF_WRITE; + if (m & O_RDWR) + mm |= OF_READWRITE; + fd = OpenFile(name, &of, mm); + if (fd < 0) { + TIFFError(module, "%s: Cannot open", name); + return ((TIFF*)0); + } + return (TIFFFdOpen(fd, name, mode)); +} + +tdata_t +_TIFFmalloc(tsize_t s) +{ + return (tdata_t) GlobalAllocPtr(GHND, (DWORD) s); +} + +void +_TIFFfree(tdata_t p) +{ + GlobalFreePtr(p); +} + +tdata_t +_TIFFrealloc(tdata_t p, tsize_t s) +{ + return (tdata_t) GlobalReAllocPtr(p, (DWORD) s, GHND); +} + +void +_TIFFmemset(tdata_t p, int v, tsize_t c) +{ + char* pp = (char*) p; + + while (c > 0) { + tsize_t chunk = 0x10000 - ((uint32) pp & 0xffff);/* What's left in segment */ + if (chunk > 0xff00) /* No more than 0xff00 */ + chunk = 0xff00; + if (chunk > c) /* No more than needed */ + chunk = c; + memset(pp, v, chunk); + pp = (char*) (chunk + (char huge*) pp); + c -= chunk; + } +} + +void +_TIFFmemcpy(tdata_t d, const tdata_t s, tsize_t c) +{ + if (c > 0xFFFF) + hmemcpy((void _huge*) d, (void _huge*) s, c); + else + (void) memcpy(d, s, (size_t) c); +} + +int +_TIFFmemcmp(const tdata_t d, const tdata_t s, tsize_t c) +{ + char* dd = (char*) d; + char* ss = (char*) s; + tsize_t chunks, chunkd, chunk; + int result; + + while (c > 0) { + chunks = 0x10000 - ((uint32) ss & 0xffff); /* What's left in segment */ + chunkd = 0x10000 - ((uint32) dd & 0xffff); /* What's left in segment */ + chunk = c; /* Get the largest of */ + if (chunk > chunks) /* c, chunks, chunkd, */ + chunk = chunks; /* 0xff00 */ + if (chunk > chunkd) + chunk = chunkd; + if (chunk > 0xff00) + chunk = 0xff00; + result = memcmp(dd, ss, chunk); + if (result != 0) + return (result); + dd = (char*) (chunk + (char huge*) dd); + ss = (char*) (chunk + (char huge*) ss); + c -= chunk; + } + return (0); +} + +static void +win3WarningHandler(const char* module, const char* fmt, va_list ap) +{ + char e[512] = { '\0' }; + if (module != NULL) + strcat(strcpy(e, module), ":"); + vsprintf(e+strlen(e), fmt, ap); + strcat(e, "."); + MessageBox(GetActiveWindow(), e, "LibTIFF Warning", + MB_OK|MB_ICONEXCLAMATION); +} +TIFFErrorHandler _TIFFwarningHandler = win3WarningHandler; + +static void +win3ErrorHandler(const char* module, const char* fmt, va_list ap) +{ + char e[512] = { '\0' }; + if (module != NULL) + strcat(strcpy(e, module), ":"); + vsprintf(e+strlen(e), fmt, ap); + strcat(e, "."); + MessageBox(GetActiveWindow(), e, "LibTIFF Error", MB_OK|MB_ICONSTOP); +} +TIFFErrorHandler _TIFFerrorHandler = win3ErrorHandler; diff --git a/libtiff/tif_win32.c b/libtiff/tif_win32.c new file mode 100755 index 0000000..9f58ebe --- /dev/null +++ b/libtiff/tif_win32.c @@ -0,0 +1,314 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_win32.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library Win32-specific Routines. Adapted from tif_unix.c 4/5/95 by + * Scott Wagner (wagner@itek.com), Itek Graphix, Rochester, NY USA + */ +#include +#include "tiffiop.h" + +static tsize_t +_tiffReadProc(thandle_t fd, tdata_t buf, tsize_t size) +{ + DWORD dwSizeRead; + if (!ReadFile(fd, buf, size, &dwSizeRead, NULL)) + return(0); + return ((tsize_t) dwSizeRead); +} + +static tsize_t +_tiffWriteProc(thandle_t fd, tdata_t buf, tsize_t size) +{ + DWORD dwSizeWritten; + if (!WriteFile(fd, buf, size, &dwSizeWritten, NULL)) + return(0); + return ((tsize_t) dwSizeWritten); +} + +static toff_t +_tiffSeekProc(thandle_t fd, toff_t off, int whence) +{ + DWORD dwMoveMethod, dwMoveHigh; + + /* we use this as a special code, so avoid accepting it */ + if( off == 0xFFFFFFFF ) + return 0xFFFFFFFF; + + switch(whence) + { + case SEEK_SET: + dwMoveMethod = FILE_BEGIN; + break; + case SEEK_CUR: + dwMoveMethod = FILE_CURRENT; + break; + case SEEK_END: + dwMoveMethod = FILE_END; + break; + default: + dwMoveMethod = FILE_BEGIN; + break; + } + dwMoveHigh = 0; + return ((toff_t)SetFilePointer(fd, (LONG) off, (PLONG)&dwMoveHigh, + dwMoveMethod)); +} + +static int +_tiffCloseProc(thandle_t fd) +{ + return (CloseHandle(fd) ? 0 : -1); +} + +static toff_t +_tiffSizeProc(thandle_t fd) +{ + return ((toff_t)GetFileSize(fd, NULL)); +} + +#ifdef __BORLANDC__ +#pragma argsused +#endif +static int +_tiffDummyMapProc(thandle_t fd, tdata_t* pbase, toff_t* psize) +{ + return (0); +} + +/* + * From "Hermann Josef Hill" : + * + * Windows uses both a handle and a pointer for file mapping, + * but according to the SDK documentation and Richter's book + * "Advanced Windows Programming" it is safe to free the handle + * after obtaining the file mapping pointer + * + * This removes a nasty OS dependency and cures a problem + * with Visual C++ 5.0 + */ +static int +_tiffMapProc(thandle_t fd, tdata_t* pbase, toff_t* psize) +{ + toff_t size; + HANDLE hMapFile; + + if ((size = _tiffSizeProc(fd)) == 0xFFFFFFFF) + return (0); + hMapFile = CreateFileMapping(fd, NULL, PAGE_READONLY, 0, size, NULL); + if (hMapFile == NULL) + return (0); + *pbase = MapViewOfFile(hMapFile, FILE_MAP_READ, 0, 0, 0); + CloseHandle(hMapFile); + if (*pbase == NULL) + return (0); + *psize = size; + return(1); +} + +#ifdef __BORLANDC__ +#pragma argsused +#endif +static void +_tiffDummyUnmapProc(thandle_t fd, tdata_t base, toff_t size) +{ +} + +static void +_tiffUnmapProc(thandle_t fd, tdata_t base, toff_t size) +{ + UnmapViewOfFile(base); +} + +/* + * Open a TIFF file descriptor for read/writing. + * Note that TIFFFdOpen and TIFFOpen recognise the character 'u' in the mode + * string, which forces the file to be opened unmapped. + */ +TIFF* +TIFFFdOpen(int ifd, const char* name, const char* mode) +{ + TIFF* tif; + BOOL fSuppressMap = (mode[1] == 'u' || mode[2] == 'u'); + + tif = TIFFClientOpen(name, mode, + (thandle_t)ifd, + _tiffReadProc, _tiffWriteProc, + _tiffSeekProc, _tiffCloseProc, _tiffSizeProc, + fSuppressMap ? _tiffDummyMapProc : _tiffMapProc, + fSuppressMap ? _tiffDummyUnmapProc : _tiffUnmapProc); + if (tif) + tif->tif_fd = ifd; + return (tif); +} + +/* + * Open a TIFF file for read/writing. + */ +TIFF* +TIFFOpen(const char* name, const char* mode) +{ + static const char module[] = "TIFFOpen"; + thandle_t fd; + int m; + DWORD dwMode; + + m = _TIFFgetMode(mode, module); + + switch(m) + { + case O_RDONLY: + dwMode = OPEN_EXISTING; + break; + case O_RDWR: + dwMode = OPEN_ALWAYS; + break; + case O_RDWR|O_CREAT: + dwMode = OPEN_ALWAYS; + break; + case O_RDWR|O_TRUNC: + dwMode = CREATE_ALWAYS; + break; + case O_RDWR|O_CREAT|O_TRUNC: + dwMode = CREATE_ALWAYS; + break; + default: + return ((TIFF*)0); + } + fd = (thandle_t)CreateFile(name, (m == O_RDONLY) ? GENERIC_READ : + (GENERIC_READ | GENERIC_WRITE), FILE_SHARE_READ, NULL, dwMode, + (m == O_RDONLY) ? FILE_ATTRIBUTE_READONLY : FILE_ATTRIBUTE_NORMAL, NULL); + if (fd == INVALID_HANDLE_VALUE) { + TIFFError(module, "%s: Cannot open", name); + return ((TIFF *)0); + } + return (TIFFFdOpen((int)fd, name, mode)); +} + +tdata_t +_TIFFmalloc(tsize_t s) +{ + return ((tdata_t)GlobalAlloc(GMEM_FIXED, s)); +} + +void +_TIFFfree(tdata_t p) +{ + GlobalFree(p); + return; +} + +tdata_t +_TIFFrealloc(tdata_t p, tsize_t s) +{ + void* pvTmp; + if ((pvTmp = GlobalReAlloc(p, s, 0)) == NULL) { + if ((pvTmp = GlobalAlloc(GMEM_FIXED, s)) != NULL) { + CopyMemory(pvTmp, p, GlobalSize(p)); + GlobalFree(p); + } + } + return ((tdata_t)pvTmp); +} + +void +_TIFFmemset(void* p, int v, tsize_t c) +{ + FillMemory(p, c, (BYTE)v); +} + +void +_TIFFmemcpy(void* d, const tdata_t s, tsize_t c) +{ + CopyMemory(d, s, c); +} + +int +_TIFFmemcmp(const tdata_t p1, const tdata_t p2, tsize_t c) +{ + register const BYTE *pb1 = (const BYTE *) p1; + register const BYTE *pb2 = (const BYTE *) p2; + register DWORD dwTmp = c; + register int iTmp; + for (iTmp = 0; dwTmp-- && !iTmp; iTmp = (int)*pb1++ - (int)*pb2++) + ; + return (iTmp); +} + +static void +Win32WarningHandler(const char* module, const char* fmt, va_list ap) +{ +#ifndef TIF_PLATFORM_CONSOLE + LPTSTR szTitle; + LPTSTR szTmp; + LPCTSTR szTitleText = "%s Warning"; + LPCTSTR szDefaultModule = "TIFFLIB"; + szTmp = (module == NULL) ? (LPTSTR)szDefaultModule : (LPTSTR)module; + if ((szTitle = (LPTSTR)LocalAlloc(LMEM_FIXED, (lstrlen(szTmp) + + lstrlen(szTitleText) + lstrlen(fmt) + 128)*sizeof(TCHAR))) == NULL) + return; + wsprintf(szTitle, szTitleText, szTmp); + szTmp = szTitle + (lstrlen(szTitle)+2)*sizeof(TCHAR); + wvsprintf(szTmp, fmt, ap); + MessageBox(GetFocus(), szTmp, szTitle, MB_OK | MB_ICONINFORMATION); + LocalFree(szTitle); + return; +#else + if (module != NULL) + fprintf(stderr, "%s: ", module); + fprintf(stderr, "Warning, "); + vfprintf(stderr, fmt, ap); + fprintf(stderr, ".\n"); +#endif +} +TIFFErrorHandler _TIFFwarningHandler = Win32WarningHandler; + +static void +Win32ErrorHandler(const char* module, const char* fmt, va_list ap) +{ +#ifndef TIF_PLATFORM_CONSOLE + LPTSTR szTitle; + LPTSTR szTmp; + LPCTSTR szTitleText = "%s Error"; + LPCTSTR szDefaultModule = "TIFFLIB"; + szTmp = (module == NULL) ? (LPTSTR)szDefaultModule : (LPTSTR)module; + if ((szTitle = (LPTSTR)LocalAlloc(LMEM_FIXED, (lstrlen(szTmp) + + lstrlen(szTitleText) + lstrlen(fmt) + 128)*sizeof(TCHAR))) == NULL) + return; + wsprintf(szTitle, szTitleText, szTmp); + szTmp = szTitle + (lstrlen(szTitle)+2)*sizeof(TCHAR); + wvsprintf(szTmp, fmt, ap); + MessageBox(GetFocus(), szTmp, szTitle, MB_OK | MB_ICONEXCLAMATION); + LocalFree(szTitle); + return; +#else + if (module != NULL) + fprintf(stderr, "%s: ", module); + vfprintf(stderr, fmt, ap); + fprintf(stderr, ".\n"); +#endif +} +TIFFErrorHandler _TIFFerrorHandler = Win32ErrorHandler; diff --git a/libtiff/tif_write.c b/libtiff/tif_write.c new file mode 100755 index 0000000..33f4aeb --- /dev/null +++ b/libtiff/tif_write.c @@ -0,0 +1,659 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_write.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * TIFF Library. + * + * Scanline-oriented Write Support + */ +#include "tiffiop.h" +#include +#include + +#define REWRITE_HACK + +#define STRIPINCR 20 /* expansion factor on strip array */ + +#define WRITECHECKSTRIPS(tif, module) \ + (((tif)->tif_flags&TIFF_BEENWRITING) || TIFFWriteCheck((tif),0,module)) +#define WRITECHECKTILES(tif, module) \ + (((tif)->tif_flags&TIFF_BEENWRITING) || TIFFWriteCheck((tif),1,module)) +#define BUFFERCHECK(tif) \ + ((((tif)->tif_flags & TIFF_BUFFERSETUP) && tif->tif_rawdata) || \ + TIFFWriteBufferSetup((tif), NULL, (tsize_t) -1)) + +static int TIFFGrowStrips(TIFF*, int, const char*); +static int TIFFAppendToStrip(TIFF*, tstrip_t, tidata_t, tsize_t); +static int TIFFSetupStrips(TIFF*); + +int +TIFFWriteScanline(TIFF* tif, tdata_t buf, uint32 row, tsample_t sample) +{ + static const char module[] = "TIFFWriteScanline"; + register TIFFDirectory *td; + int status, imagegrew = 0; + tstrip_t strip; + + if (!WRITECHECKSTRIPS(tif, module)) + return (-1); + /* + * Handle delayed allocation of data buffer. This + * permits it to be sized more intelligently (using + * directory information). + */ + if (!BUFFERCHECK(tif)) + return (-1); + td = &tif->tif_dir; + /* + * Extend image length if needed + * (but only for PlanarConfig=1). + */ + if (row >= td->td_imagelength) { /* extend image */ + if (td->td_planarconfig == PLANARCONFIG_SEPARATE) { + TIFFError(tif->tif_name, + "Can not change \"ImageLength\" when using separate planes"); + return (-1); + } + td->td_imagelength = row+1; + imagegrew = 1; + } + /* + * Calculate strip and check for crossings. + */ + if (td->td_planarconfig == PLANARCONFIG_SEPARATE) { + if (sample >= td->td_samplesperpixel) { + TIFFError(tif->tif_name, + "%d: Sample out of range, max %d", + sample, td->td_samplesperpixel); + return (-1); + } + strip = sample*td->td_stripsperimage + row/td->td_rowsperstrip; + } else + strip = row / td->td_rowsperstrip; + if (strip != tif->tif_curstrip) { + /* + * Changing strips -- flush any data present. + */ + if (!TIFFFlushData(tif)) + return (-1); + tif->tif_curstrip = strip; + /* + * Watch out for a growing image. The value of + * strips/image will initially be 1 (since it + * can't be deduced until the imagelength is known). + */ + if (strip >= td->td_stripsperimage && imagegrew) + td->td_stripsperimage = + TIFFhowmany(td->td_imagelength,td->td_rowsperstrip); + tif->tif_row = + (strip % td->td_stripsperimage) * td->td_rowsperstrip; + if ((tif->tif_flags & TIFF_CODERSETUP) == 0) { + if (!(*tif->tif_setupencode)(tif)) + return (-1); + tif->tif_flags |= TIFF_CODERSETUP; + } + if (!(*tif->tif_preencode)(tif, sample)) + return (-1); + tif->tif_flags |= TIFF_POSTENCODE; + } + /* + * Check strip array to make sure there's space. + * We don't support dynamically growing files that + * have data organized in separate bitplanes because + * it's too painful. In that case we require that + * the imagelength be set properly before the first + * write (so that the strips array will be fully + * allocated above). + */ + if (strip >= td->td_nstrips && !TIFFGrowStrips(tif, 1, module)) + return (-1); + /* + * Ensure the write is either sequential or at the + * beginning of a strip (or that we can randomly + * access the data -- i.e. no encoding). + */ + if (row != tif->tif_row) { + if (row < tif->tif_row) { + /* + * Moving backwards within the same strip: + * backup to the start and then decode + * forward (below). + */ + tif->tif_row = (strip % td->td_stripsperimage) * + td->td_rowsperstrip; + tif->tif_rawcp = tif->tif_rawdata; + } + /* + * Seek forward to the desired row. + */ + if (!(*tif->tif_seek)(tif, row - tif->tif_row)) + return (-1); + tif->tif_row = row; + } + status = (*tif->tif_encoderow)(tif, (tidata_t) buf, + tif->tif_scanlinesize, sample); + tif->tif_row++; + return (status); +} + +/* + * Encode the supplied data and write it to the + * specified strip. There must be space for the + * data; we don't check if strips overlap! + * + * NB: Image length must be setup before writing. + */ +tsize_t +TIFFWriteEncodedStrip(TIFF* tif, tstrip_t strip, tdata_t data, tsize_t cc) +{ + static const char module[] = "TIFFWriteEncodedStrip"; + TIFFDirectory *td = &tif->tif_dir; + tsample_t sample; + + if (!WRITECHECKSTRIPS(tif, module)) + return ((tsize_t) -1); + /* + * Check strip array to make sure there's space. + * We don't support dynamically growing files that + * have data organized in separate bitplanes because + * it's too painful. In that case we require that + * the imagelength be set properly before the first + * write (so that the strips array will be fully + * allocated above). + */ + if (strip >= td->td_nstrips) { + if (td->td_planarconfig == PLANARCONFIG_SEPARATE) { + TIFFError(tif->tif_name, + "Can not grow image by strips when using separate planes"); + return ((tsize_t) -1); + } + if (!TIFFGrowStrips(tif, 1, module)) + return ((tsize_t) -1); + td->td_stripsperimage = + TIFFhowmany(td->td_imagelength, td->td_rowsperstrip); + } + /* + * Handle delayed allocation of data buffer. This + * permits it to be sized according to the directory + * info. + */ + if (!BUFFERCHECK(tif)) + return ((tsize_t) -1); + tif->tif_curstrip = strip; + tif->tif_row = (strip % td->td_stripsperimage) * td->td_rowsperstrip; + if ((tif->tif_flags & TIFF_CODERSETUP) == 0) { + if (!(*tif->tif_setupencode)(tif)) + return ((tsize_t) -1); + tif->tif_flags |= TIFF_CODERSETUP; + } + +#ifdef REWRITE_HACK + tif->tif_rawcc = 0; + tif->tif_rawcp = tif->tif_rawdata; + + if( td->td_stripbytecount[strip] > 0 ) + { + /* if we are writing over existing tiles, zero length. */ + td->td_stripbytecount[strip] = 0; + + /* this forces TIFFAppendToStrip() to do a seek */ + tif->tif_curoff = 0; + } +#endif + + tif->tif_flags &= ~TIFF_POSTENCODE; + sample = (tsample_t)(strip / td->td_stripsperimage); + if (!(*tif->tif_preencode)(tif, sample)) + return ((tsize_t) -1); + if (!(*tif->tif_encodestrip)(tif, (tidata_t) data, cc, sample)) + return ((tsize_t) 0); + if (!(*tif->tif_postencode)(tif)) + return ((tsize_t) -1); + if (!isFillOrder(tif, td->td_fillorder) && + (tif->tif_flags & TIFF_NOBITREV) == 0) + TIFFReverseBits(tif->tif_rawdata, tif->tif_rawcc); + if (tif->tif_rawcc > 0 && + !TIFFAppendToStrip(tif, strip, tif->tif_rawdata, tif->tif_rawcc)) + return ((tsize_t) -1); + tif->tif_rawcc = 0; + tif->tif_rawcp = tif->tif_rawdata; + return (cc); +} + +/* + * Write the supplied data to the specified strip. + * There must be space for the data; we don't check + * if strips overlap! + * + * NB: Image length must be setup before writing. + */ +tsize_t +TIFFWriteRawStrip(TIFF* tif, tstrip_t strip, tdata_t data, tsize_t cc) +{ + static const char module[] = "TIFFWriteRawStrip"; + TIFFDirectory *td = &tif->tif_dir; + + if (!WRITECHECKSTRIPS(tif, module)) + return ((tsize_t) -1); + /* + * Check strip array to make sure there's space. + * We don't support dynamically growing files that + * have data organized in separate bitplanes because + * it's too painful. In that case we require that + * the imagelength be set properly before the first + * write (so that the strips array will be fully + * allocated above). + */ + if (strip >= td->td_nstrips) { + if (td->td_planarconfig == PLANARCONFIG_SEPARATE) { + TIFFError(tif->tif_name, + "Can not grow image by strips when using separate planes"); + return ((tsize_t) -1); + } + /* + * Watch out for a growing image. The value of + * strips/image will initially be 1 (since it + * can't be deduced until the imagelength is known). + */ + if (strip >= td->td_stripsperimage) + td->td_stripsperimage = + TIFFhowmany(td->td_imagelength,td->td_rowsperstrip); + if (!TIFFGrowStrips(tif, 1, module)) + return ((tsize_t) -1); + } + tif->tif_curstrip = strip; + tif->tif_row = (strip % td->td_stripsperimage) * td->td_rowsperstrip; + return (TIFFAppendToStrip(tif, strip, (tidata_t) data, cc) ? + cc : (tsize_t) -1); +} + +/* + * Write and compress a tile of data. The + * tile is selected by the (x,y,z,s) coordinates. + */ +tsize_t +TIFFWriteTile(TIFF* tif, + tdata_t buf, uint32 x, uint32 y, uint32 z, tsample_t s) +{ + if (!TIFFCheckTile(tif, x, y, z, s)) + return (-1); + /* + * NB: A tile size of -1 is used instead of tif_tilesize knowing + * that TIFFWriteEncodedTile will clamp this to the tile size. + * This is done because the tile size may not be defined until + * after the output buffer is setup in TIFFWriteBufferSetup. + */ + return (TIFFWriteEncodedTile(tif, + TIFFComputeTile(tif, x, y, z, s), buf, (tsize_t) -1)); +} + +/* + * Encode the supplied data and write it to the + * specified tile. There must be space for the + * data. The function clamps individual writes + * to a tile to the tile size, but does not (and + * can not) check that multiple writes to the same + * tile do not write more than tile size data. + * + * NB: Image length must be setup before writing; this + * interface does not support automatically growing + * the image on each write (as TIFFWriteScanline does). + */ +tsize_t +TIFFWriteEncodedTile(TIFF* tif, ttile_t tile, tdata_t data, tsize_t cc) +{ + static const char module[] = "TIFFWriteEncodedTile"; + TIFFDirectory *td; + tsample_t sample; + + if (!WRITECHECKTILES(tif, module)) + return ((tsize_t) -1); + td = &tif->tif_dir; + if (tile >= td->td_nstrips) { + TIFFError(module, "%s: Tile %lu out of range, max %lu", + tif->tif_name, (u_long) tile, (u_long) td->td_nstrips); + return ((tsize_t) -1); + } + /* + * Handle delayed allocation of data buffer. This + * permits it to be sized more intelligently (using + * directory information). + */ + if (!BUFFERCHECK(tif)) + return ((tsize_t) -1); + tif->tif_curtile = tile; + +#ifdef REWRITE_HACK + tif->tif_rawcc = 0; + tif->tif_rawcp = tif->tif_rawdata; + + if( td->td_stripbytecount[tile] > 0 ) + { + /* if we are writing over existing tiles, zero length. */ + td->td_stripbytecount[tile] = 0; + + /* this forces TIFFAppendToStrip() to do a seek */ + tif->tif_curoff = 0; + } +#endif + + /* + * Compute tiles per row & per column to compute + * current row and column + */ + tif->tif_row = (tile % TIFFhowmany(td->td_imagelength, td->td_tilelength)) + * td->td_tilelength; + tif->tif_col = (tile % TIFFhowmany(td->td_imagewidth, td->td_tilewidth)) + * td->td_tilewidth; + + if ((tif->tif_flags & TIFF_CODERSETUP) == 0) { + if (!(*tif->tif_setupencode)(tif)) + return ((tsize_t) -1); + tif->tif_flags |= TIFF_CODERSETUP; + } + tif->tif_flags &= ~TIFF_POSTENCODE; + sample = (tsample_t)(tile/td->td_stripsperimage); + if (!(*tif->tif_preencode)(tif, sample)) + return ((tsize_t) -1); + /* + * Clamp write amount to the tile size. This is mostly + * done so that callers can pass in some large number + * (e.g. -1) and have the tile size used instead. + */ + if ( cc < 1 || cc > tif->tif_tilesize) + cc = tif->tif_tilesize; + if (!(*tif->tif_encodetile)(tif, (tidata_t) data, cc, sample)) + return ((tsize_t) 0); + if (!(*tif->tif_postencode)(tif)) + return ((tsize_t) -1); + if (!isFillOrder(tif, td->td_fillorder) && + (tif->tif_flags & TIFF_NOBITREV) == 0) + TIFFReverseBits((u_char *)tif->tif_rawdata, tif->tif_rawcc); + if (tif->tif_rawcc > 0 && !TIFFAppendToStrip(tif, tile, + tif->tif_rawdata, tif->tif_rawcc)) + return ((tsize_t) -1); + tif->tif_rawcc = 0; + tif->tif_rawcp = tif->tif_rawdata; + return (cc); +} + +/* + * Write the supplied data to the specified strip. + * There must be space for the data; we don't check + * if strips overlap! + * + * NB: Image length must be setup before writing; this + * interface does not support automatically growing + * the image on each write (as TIFFWriteScanline does). + */ +tsize_t +TIFFWriteRawTile(TIFF* tif, ttile_t tile, tdata_t data, tsize_t cc) +{ + static const char module[] = "TIFFWriteRawTile"; + + if (!WRITECHECKTILES(tif, module)) + return ((tsize_t) -1); + if (tile >= tif->tif_dir.td_nstrips) { + TIFFError(module, "%s: Tile %lu out of range, max %lu", + tif->tif_name, (u_long) tile, + (u_long) tif->tif_dir.td_nstrips); + return ((tsize_t) -1); + } + return (TIFFAppendToStrip(tif, tile, (tidata_t) data, cc) ? + cc : (tsize_t) -1); +} + +#define isUnspecified(tif, f) \ + (TIFFFieldSet(tif,f) && (tif)->tif_dir.td_imagelength == 0) + +static int +TIFFSetupStrips(TIFF* tif) +{ + TIFFDirectory* td = &tif->tif_dir; + + if (isTiled(tif)) + td->td_stripsperimage = + isUnspecified(tif, FIELD_TILEDIMENSIONS) ? + td->td_samplesperpixel : TIFFNumberOfTiles(tif); + else + td->td_stripsperimage = + isUnspecified(tif, FIELD_ROWSPERSTRIP) ? + td->td_samplesperpixel : TIFFNumberOfStrips(tif); + td->td_nstrips = td->td_stripsperimage; + if (td->td_planarconfig == PLANARCONFIG_SEPARATE) + td->td_stripsperimage /= td->td_samplesperpixel; + td->td_stripoffset = (uint32 *) + _TIFFmalloc(td->td_nstrips * sizeof (uint32)); + td->td_stripbytecount = (uint32 *) + _TIFFmalloc(td->td_nstrips * sizeof (uint32)); + if (td->td_stripoffset == NULL || td->td_stripbytecount == NULL) + return (0); + /* + * Place data at the end-of-file + * (by setting offsets to zero). + */ + _TIFFmemset(td->td_stripoffset, 0, td->td_nstrips*sizeof (uint32)); + _TIFFmemset(td->td_stripbytecount, 0, td->td_nstrips*sizeof (uint32)); + TIFFSetFieldBit(tif, FIELD_STRIPOFFSETS); + TIFFSetFieldBit(tif, FIELD_STRIPBYTECOUNTS); + return (1); +} +#undef isUnspecified + +/* + * Verify file is writable and that the directory + * information is setup properly. In doing the latter + * we also "freeze" the state of the directory so + * that important information is not changed. + */ +int +TIFFWriteCheck(TIFF* tif, int tiles, const char* module) +{ + if (tif->tif_mode == O_RDONLY) { + TIFFError(module, "%s: File not open for writing", + tif->tif_name); + return (0); + } + if (tiles ^ isTiled(tif)) { + TIFFError(tif->tif_name, tiles ? + "Can not write tiles to a stripped image" : + "Can not write scanlines to a tiled image"); + return (0); + } + /* + * On the first write verify all the required information + * has been setup and initialize any data structures that + * had to wait until directory information was set. + * Note that a lot of our work is assumed to remain valid + * because we disallow any of the important parameters + * from changing after we start writing (i.e. once + * TIFF_BEENWRITING is set, TIFFSetField will only allow + * the image's length to be changed). + */ + if (!TIFFFieldSet(tif, FIELD_IMAGEDIMENSIONS)) { + TIFFError(module, + "%s: Must set \"ImageWidth\" before writing data", + tif->tif_name); + return (0); + } + if (!TIFFFieldSet(tif, FIELD_PLANARCONFIG)) { + TIFFError(module, + "%s: Must set \"PlanarConfiguration\" before writing data", + tif->tif_name); + return (0); + } + if (tif->tif_dir.td_stripoffset == NULL && !TIFFSetupStrips(tif)) { + tif->tif_dir.td_nstrips = 0; + TIFFError(module, "%s: No space for %s arrays", + tif->tif_name, isTiled(tif) ? "tile" : "strip"); + return (0); + } + tif->tif_tilesize = TIFFTileSize(tif); + tif->tif_scanlinesize = TIFFScanlineSize(tif); + tif->tif_flags |= TIFF_BEENWRITING; + return (1); +} + +/* + * Setup the raw data buffer used for encoding. + */ +int +TIFFWriteBufferSetup(TIFF* tif, tdata_t bp, tsize_t size) +{ + static const char module[] = "TIFFWriteBufferSetup"; + + if (tif->tif_rawdata) { + if (tif->tif_flags & TIFF_MYBUFFER) { + _TIFFfree(tif->tif_rawdata); + tif->tif_flags &= ~TIFF_MYBUFFER; + } + tif->tif_rawdata = NULL; + } + if (size == (tsize_t) -1) { + size = (isTiled(tif) ? + tif->tif_tilesize : tif->tif_scanlinesize); + /* + * Make raw data buffer at least 8K + */ + if (size < 8*1024) + size = 8*1024; + bp = NULL; /* NB: force malloc */ + } + if (bp == NULL) { + bp = _TIFFmalloc(size); + if (bp == NULL) { + TIFFError(module, "%s: No space for output buffer", + tif->tif_name); + return (0); + } + tif->tif_flags |= TIFF_MYBUFFER; + } else + tif->tif_flags &= ~TIFF_MYBUFFER; + tif->tif_rawdata = (tidata_t) bp; + tif->tif_rawdatasize = size; + tif->tif_rawcc = 0; + tif->tif_rawcp = tif->tif_rawdata; + tif->tif_flags |= TIFF_BUFFERSETUP; + return (1); +} + +/* + * Grow the strip data structures by delta strips. + */ +static int +TIFFGrowStrips(TIFF* tif, int delta, const char* module) +{ + TIFFDirectory *td = &tif->tif_dir; + + assert(td->td_planarconfig == PLANARCONFIG_CONTIG); + td->td_stripoffset = (uint32*)_TIFFrealloc(td->td_stripoffset, + (td->td_nstrips + delta) * sizeof (uint32)); + td->td_stripbytecount = (uint32*)_TIFFrealloc(td->td_stripbytecount, + (td->td_nstrips + delta) * sizeof (uint32)); + if (td->td_stripoffset == NULL || td->td_stripbytecount == NULL) { + td->td_nstrips = 0; + TIFFError(module, "%s: No space to expand strip arrays", + tif->tif_name); + return (0); + } + _TIFFmemset(td->td_stripoffset+td->td_nstrips, 0, delta*sizeof (uint32)); + _TIFFmemset(td->td_stripbytecount+td->td_nstrips, 0, delta*sizeof (uint32)); + td->td_nstrips += delta; + return (1); +} + +/* + * Append the data to the specified strip. + * + * NB: We don't check that there's space in the + * file (i.e. that strips do not overlap). + */ +static int +TIFFAppendToStrip(TIFF* tif, tstrip_t strip, tidata_t data, tsize_t cc) +{ + TIFFDirectory *td = &tif->tif_dir; + static const char module[] = "TIFFAppendToStrip"; + + if (td->td_stripoffset[strip] == 0 || tif->tif_curoff == 0) { + /* + * No current offset, set the current strip. + */ + if (td->td_stripoffset[strip] != 0) { + if (!SeekOK(tif, td->td_stripoffset[strip])) { + TIFFError(module, + "%s: Seek error at scanline %lu", + tif->tif_name, (u_long) tif->tif_row); + return (0); + } + } else + td->td_stripoffset[strip] = + TIFFSeekFile(tif, (toff_t) 0, SEEK_END); + tif->tif_curoff = td->td_stripoffset[strip]; + } + if (!WriteOK(tif, data, cc)) { + TIFFError(module, "%s: Write error at scanline %lu", + tif->tif_name, (u_long) tif->tif_row); + return (0); + } + tif->tif_curoff += cc; + td->td_stripbytecount[strip] += cc; + return (1); +} + +/* + * Internal version of TIFFFlushData that can be + * called by ``encodestrip routines'' w/o concern + * for infinite recursion. + */ +int +TIFFFlushData1(TIFF* tif) +{ + if (tif->tif_rawcc > 0) { + if (!isFillOrder(tif, tif->tif_dir.td_fillorder) && + (tif->tif_flags & TIFF_NOBITREV) == 0) + TIFFReverseBits((u_char *)tif->tif_rawdata, + tif->tif_rawcc); + if (!TIFFAppendToStrip(tif, + isTiled(tif) ? tif->tif_curtile : tif->tif_curstrip, + tif->tif_rawdata, tif->tif_rawcc)) + return (0); + tif->tif_rawcc = 0; + tif->tif_rawcp = tif->tif_rawdata; + } + return (1); +} + +/* + * Set the current write offset. This should only be + * used to set the offset to a known previous location + * (very carefully), or to 0 so that the next write gets + * appended to the end of the file. + */ +void +TIFFSetWriteOffset(TIFF* tif, toff_t off) +{ + tif->tif_curoff = off; +} diff --git a/libtiff/tif_zip.c b/libtiff/tif_zip.c new file mode 100755 index 0000000..bc3129c --- /dev/null +++ b/libtiff/tif_zip.c @@ -0,0 +1,367 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tif_zip.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1995-1997 Sam Leffler + * Copyright (c) 1995-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include "tiffiop.h" +#ifdef ZIP_SUPPORT +/* + * TIFF Library. + * + * ZIP (aka Deflate) Compression Support + * + * This file is simply an interface to the zlib library written by + * Jean-loup Gailly and Mark Adler. You must use version 1.0 or later + * of the library: this code assumes the 1.0 API and also depends on + * the ability to write the zlib header multiple times (one per strip) + * which was not possible with versions prior to 0.95. Note also that + * older versions of this codec avoided this bug by supressing the header + * entirely. This means that files written with the old library cannot + * be read; they should be converted to a different compression scheme + * and then reconverted. + * + * The data format used by the zlib library is described in the files + * zlib-3.1.doc, deflate-1.1.doc and gzip-4.1.doc, available in the + * directory ftp://ftp.uu.net/pub/archiving/zip/doc. The library was + * last found at ftp://ftp.uu.net/pub/archiving/zip/zlib/zlib-0.99.tar.gz. + */ +#include "tif_predict.h" +#include "zlib.h" + +#include +#include + +/* + * Sigh, ZLIB_VERSION is defined as a string so there's no + * way to do a proper check here. Instead we guess based + * on the presence of #defines that were added between the + * 0.95 and 1.0 distributions. + */ +#if !defined(Z_NO_COMPRESSION) || !defined(Z_DEFLATED) +#error "Antiquated ZLIB software; you must use version 1.0 or later" +#endif + +/* + * State block for each open TIFF + * file using ZIP compression/decompression. + */ +typedef struct { + TIFFPredictorState predict; + z_stream stream; + int zipquality; /* compression level */ + int state; /* state flags */ +#define ZSTATE_INIT 0x1 /* zlib setup successfully */ + + TIFFVGetMethod vgetparent; /* super-class method */ + TIFFVSetMethod vsetparent; /* super-class method */ +} ZIPState; + +#define ZState(tif) ((ZIPState*) (tif)->tif_data) +#define DecoderState(tif) ZState(tif) +#define EncoderState(tif) ZState(tif) + +static int ZIPEncode(TIFF*, tidata_t, tsize_t, tsample_t); +static int ZIPDecode(TIFF*, tidata_t, tsize_t, tsample_t); + +static int +ZIPSetupDecode(TIFF* tif) +{ + ZIPState* sp = DecoderState(tif); + static const char module[] = "ZIPSetupDecode"; + + assert(sp != NULL); + if (inflateInit(&sp->stream) != Z_OK) { + TIFFError(module, "%s: %s", tif->tif_name, sp->stream.msg); + return (0); + } else { + sp->state |= ZSTATE_INIT; + return (1); + } +} + +/* + * Setup state for decoding a strip. + */ +static int +ZIPPreDecode(TIFF* tif, tsample_t s) +{ + ZIPState* sp = DecoderState(tif); + + (void) s; + assert(sp != NULL); + sp->stream.next_in = tif->tif_rawdata; + sp->stream.avail_in = tif->tif_rawcc; + return (inflateReset(&sp->stream) == Z_OK); +} + +static int +ZIPDecode(TIFF* tif, tidata_t op, tsize_t occ, tsample_t s) +{ + ZIPState* sp = DecoderState(tif); + static const char module[] = "ZIPDecode"; + + (void) s; + assert(sp != NULL); + sp->stream.next_out = op; + sp->stream.avail_out = occ; + do { + int state = inflate(&sp->stream, Z_PARTIAL_FLUSH); + if (state == Z_STREAM_END) + break; + if (state == Z_DATA_ERROR) { + TIFFError(module, + "%s: Decoding error at scanline %d, %s", + tif->tif_name, tif->tif_row, sp->stream.msg); + if (inflateSync(&sp->stream) != Z_OK) + return (0); + continue; + } + if (state != Z_OK) { + TIFFError(module, "%s: zlib error: %s", + tif->tif_name, sp->stream.msg); + return (0); + } + } while (sp->stream.avail_out > 0); + if (sp->stream.avail_out != 0) { + TIFFError(module, + "%s: Not enough data at scanline %d (short %d bytes)", + tif->tif_name, tif->tif_row, sp->stream.avail_out); + return (0); + } + return (1); +} + +static int +ZIPSetupEncode(TIFF* tif) +{ + ZIPState* sp = EncoderState(tif); + static const char module[] = "ZIPSetupEncode"; + + assert(sp != NULL); + if (deflateInit(&sp->stream, sp->zipquality) != Z_OK) { + TIFFError(module, "%s: %s", tif->tif_name, sp->stream.msg); + return (0); + } else { + sp->state |= ZSTATE_INIT; + return (1); + } +} + +/* + * Reset encoding state at the start of a strip. + */ +static int +ZIPPreEncode(TIFF* tif, tsample_t s) +{ + ZIPState *sp = EncoderState(tif); + + (void) s; + assert(sp != NULL); + sp->stream.next_out = tif->tif_rawdata; + sp->stream.avail_out = tif->tif_rawdatasize; + return (deflateReset(&sp->stream) == Z_OK); +} + +/* + * Encode a chunk of pixels. + */ +static int +ZIPEncode(TIFF* tif, tidata_t bp, tsize_t cc, tsample_t s) +{ + ZIPState *sp = EncoderState(tif); + static const char module[] = "ZIPEncode"; + + (void) s; + sp->stream.next_in = bp; + sp->stream.avail_in = cc; + do { + if (deflate(&sp->stream, Z_NO_FLUSH) != Z_OK) { + TIFFError(module, "%s: Encoder error: %s", + tif->tif_name, sp->stream.msg); + return (0); + } + if (sp->stream.avail_out == 0) { + tif->tif_rawcc = tif->tif_rawdatasize; + TIFFFlushData1(tif); + sp->stream.next_out = tif->tif_rawdata; + sp->stream.avail_out = tif->tif_rawdatasize; + } + } while (sp->stream.avail_in > 0); + return (1); +} + +/* + * Finish off an encoded strip by flushing the last + * string and tacking on an End Of Information code. + */ +static int +ZIPPostEncode(TIFF* tif) +{ + ZIPState *sp = EncoderState(tif); + static const char module[] = "ZIPPostEncode"; + int state; + + sp->stream.avail_in = 0; + do { + state = deflate(&sp->stream, Z_FINISH); + switch (state) { + case Z_STREAM_END: + case Z_OK: + if (sp->stream.avail_out != tif->tif_rawdatasize) { + tif->tif_rawcc = + tif->tif_rawdatasize - sp->stream.avail_out; + TIFFFlushData1(tif); + sp->stream.next_out = tif->tif_rawdata; + sp->stream.avail_out = tif->tif_rawdatasize; + } + break; + default: + TIFFError(module, "%s: zlib error: %s", + tif->tif_name, sp->stream.msg); + return (0); + } + } while (state != Z_STREAM_END); + return (1); +} + +static void +ZIPCleanup(TIFF* tif) +{ + ZIPState* sp = ZState(tif); + if (sp) { + if (sp->state&ZSTATE_INIT) { + /* NB: avoid problems in the library */ + if (tif->tif_mode == O_RDONLY) + inflateEnd(&sp->stream); + else + deflateEnd(&sp->stream); + } + _TIFFfree(sp); + tif->tif_data = NULL; + } +} + +static int +ZIPVSetField(TIFF* tif, ttag_t tag, va_list ap) +{ + ZIPState* sp = ZState(tif); + static const char module[] = "ZIPVSetField"; + + switch (tag) { + case TIFFTAG_ZIPQUALITY: + sp->zipquality = va_arg(ap, int); + if (tif->tif_mode != O_RDONLY && (sp->state&ZSTATE_INIT)) { + if (deflateParams(&sp->stream, + sp->zipquality, Z_DEFAULT_STRATEGY) != Z_OK) { + TIFFError(module, "%s: zlib error: %s", + tif->tif_name, sp->stream.msg); + return (0); + } + } + return (1); + default: + return (*sp->vsetparent)(tif, tag, ap); + } + /*NOTREACHED*/ +} + +static int +ZIPVGetField(TIFF* tif, ttag_t tag, va_list ap) +{ + ZIPState* sp = ZState(tif); + + switch (tag) { + case TIFFTAG_ZIPQUALITY: + *va_arg(ap, int*) = sp->zipquality; + break; + default: + return (*sp->vgetparent)(tif, tag, ap); + } + return (1); +} + +static const TIFFFieldInfo zipFieldInfo[] = { + { TIFFTAG_ZIPQUALITY, 0, 0, TIFF_ANY, FIELD_PSEUDO, + TRUE, FALSE, "" }, +}; +#define N(a) (sizeof (a) / sizeof (a[0])) + +int +TIFFInitZIP(TIFF* tif, int scheme) +{ + ZIPState* sp; + + assert( (scheme == COMPRESSION_DEFLATE) || (scheme == COMPRESSION_ADOBE_DEFLATE)); + + /* + * Allocate state block so tag methods have storage to record values. + */ + tif->tif_data = (tidata_t) _TIFFmalloc(sizeof (ZIPState)); + if (tif->tif_data == NULL) + goto bad; + sp = ZState(tif); + sp->stream.zalloc = NULL; + sp->stream.zfree = NULL; + sp->stream.opaque = NULL; + sp->stream.data_type = Z_BINARY; + + /* + * Merge codec-specific tag information and + * override parent get/set field methods. + */ + _TIFFMergeFieldInfo(tif, zipFieldInfo, N(zipFieldInfo)); + sp->vgetparent = tif->tif_vgetfield; + tif->tif_vgetfield = ZIPVGetField; /* hook for codec tags */ + sp->vsetparent = tif->tif_vsetfield; + tif->tif_vsetfield = ZIPVSetField; /* hook for codec tags */ + + /* Default values for codec-specific fields */ + sp->zipquality = Z_DEFAULT_COMPRESSION; /* default comp. level */ + sp->state = 0; + + /* + * Install codec methods. + */ + tif->tif_setupdecode = ZIPSetupDecode; + tif->tif_predecode = ZIPPreDecode; + tif->tif_decoderow = ZIPDecode; + tif->tif_decodestrip = ZIPDecode; + tif->tif_decodetile = ZIPDecode; + tif->tif_setupencode = ZIPSetupEncode; + tif->tif_preencode = ZIPPreEncode; + tif->tif_postencode = ZIPPostEncode; + tif->tif_encoderow = ZIPEncode; + tif->tif_encodestrip = ZIPEncode; + tif->tif_encodetile = ZIPEncode; + tif->tif_cleanup = ZIPCleanup; + /* + * Setup predictor setup. + */ + (void) TIFFPredictorInit(tif); + return (1); +bad: + TIFFError("TIFFInitZIP", "No space for ZIP state block"); + return (0); +} +#endif /* ZIP_SUPORT */ diff --git a/libtiff/tiff.h b/libtiff/tiff.h new file mode 100755 index 0000000..9ae8e93 --- /dev/null +++ b/libtiff/tiff.h @@ -0,0 +1,439 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tiff.h,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#ifndef _TIFF_ +#define _TIFF_ +/* + * Tag Image File Format (TIFF) + * + * Based on Rev 6.0 from: + * Developer's Desk + * Aldus Corporation + * 411 First Ave. South + * Suite 200 + * Seattle, WA 98104 + * 206-622-5500 + */ +#define TIFF_VERSION 42 + +#define TIFF_BIGENDIAN 0x4d4d +#define TIFF_LITTLEENDIAN 0x4949 + +#ifndef _TIFF_DATA_TYPEDEFS_ +#define _TIFF_DATA_TYPEDEFS_ +/* + * Intrinsic data types required by the file format: + * + * 8-bit quantities int8/uint8 + * 16-bit quantities int16/uint16 + * 32-bit quantities int32/uint32 + * strings unsigned char* + */ +#ifdef __STDC__ +typedef signed char int8; /* NB: non-ANSI compilers may not grok */ +#else +typedef char int8; +#endif +typedef unsigned char uint8; +typedef short int16; +typedef unsigned short uint16; /* sizeof (uint16) must == 2 */ +#if defined(__alpha) || (defined(_MIPS_SZLONG) && _MIPS_SZLONG == 64) +typedef int int32; +typedef unsigned int uint32; /* sizeof (uint32) must == 4 */ +#else +typedef long int32; +typedef unsigned long uint32; /* sizeof (uint32) must == 4 */ +#endif +#endif /* _TIFF_DATA_TYPEDEFS_ */ + +/* For TIFFReassignTagToIgnore */ +enum TIFFIgnoreSense /* IGNORE tag table */ +{ + TIS_STORE, + TIS_EXTRACT, + TIS_EMPTY +}; + +typedef struct { + uint16 tiff_magic; /* magic number (defines byte order) */ + uint16 tiff_version; /* TIFF version number */ + uint32 tiff_diroff; /* byte offset to first directory */ +} TIFFHeader; + +/* + * TIFF Image File Directories are comprised of + * a table of field descriptors of the form shown + * below. The table is sorted in ascending order + * by tag. The values associated with each entry + * are disjoint and may appear anywhere in the file + * (so long as they are placed on a word boundary). + * + * If the value is 4 bytes or less, then it is placed + * in the offset field to save space. If the value + * is less than 4 bytes, it is left-justified in the + * offset field. + */ +typedef struct { + uint16 tdir_tag; /* see below */ + uint16 tdir_type; /* data type; see below */ + uint32 tdir_count; /* number of items; length in spec */ + uint32 tdir_offset; /* byte offset to field data */ +} TIFFDirEntry; + +/* + * NB: In the comments below, + * - items marked with a + are obsoleted by revision 5.0, + * - items marked with a ! are introduced in revision 6.0. + * - items marked with a % are introduced post revision 6.0. + * - items marked with a $ are obsoleted by revision 6.0. + */ + +/* + * Tag data type information. + * + * Note: RATIONALs are the ratio of two 32-bit integer values. + */ +typedef enum { + TIFF_NOTYPE = 0, /* placeholder */ + TIFF_BYTE = 1, /* 8-bit unsigned integer */ + TIFF_ASCII = 2, /* 8-bit bytes w/ last byte null */ + TIFF_SHORT = 3, /* 16-bit unsigned integer */ + TIFF_LONG = 4, /* 32-bit unsigned integer */ + TIFF_RATIONAL = 5, /* 64-bit unsigned fraction */ + TIFF_SBYTE = 6, /* !8-bit signed integer */ + TIFF_UNDEFINED = 7, /* !8-bit untyped data */ + TIFF_SSHORT = 8, /* !16-bit signed integer */ + TIFF_SLONG = 9, /* !32-bit signed integer */ + TIFF_SRATIONAL = 10, /* !64-bit signed fraction */ + TIFF_FLOAT = 11, /* !32-bit IEEE floating point */ + TIFF_DOUBLE = 12 /* !64-bit IEEE floating point */ +} TIFFDataType; + +/* + * TIFF Tag Definitions. + */ +#define TIFFTAG_SUBFILETYPE 254 /* subfile data descriptor */ +#define FILETYPE_REDUCEDIMAGE 0x1 /* reduced resolution version */ +#define FILETYPE_PAGE 0x2 /* one page of many */ +#define FILETYPE_MASK 0x4 /* transparency mask */ +#define TIFFTAG_OSUBFILETYPE 255 /* +kind of data in subfile */ +#define OFILETYPE_IMAGE 1 /* full resolution image data */ +#define OFILETYPE_REDUCEDIMAGE 2 /* reduced size image data */ +#define OFILETYPE_PAGE 3 /* one page of many */ +#define TIFFTAG_IMAGEWIDTH 256 /* image width in pixels */ +#define TIFFTAG_IMAGELENGTH 257 /* image height in pixels */ +#define TIFFTAG_BITSPERSAMPLE 258 /* bits per channel (sample) */ +#define TIFFTAG_COMPRESSION 259 /* data compression technique */ +#define COMPRESSION_NONE 1 /* dump mode */ +#define COMPRESSION_CCITTRLE 2 /* CCITT modified Huffman RLE */ +#define COMPRESSION_CCITTFAX3 3 /* CCITT Group 3 fax encoding */ +#define COMPRESSION_CCITTFAX4 4 /* CCITT Group 4 fax encoding */ +#define COMPRESSION_LZW 5 /* Lempel-Ziv & Welch */ +#define COMPRESSION_OJPEG 6 /* !6.0 JPEG */ +#define COMPRESSION_JPEG 7 /* %JPEG DCT compression */ +#define COMPRESSION_NEXT 32766 /* NeXT 2-bit RLE */ +#define COMPRESSION_CCITTRLEW 32771 /* #1 w/ word alignment */ +#define COMPRESSION_PACKBITS 32773 /* Macintosh RLE */ +#define COMPRESSION_THUNDERSCAN 32809 /* ThunderScan RLE */ +/* codes 32895-32898 are reserved for ANSI IT8 TIFF/IT */ +#define COMPRESSION_DCS 32947 /* Kodak DCS encoding */ +#define COMPRESSION_JBIG 34661 /* ISO JBIG */ +#define COMPRESSION_SGILOG 34676 /* SGI Log Luminance RLE */ +#define COMPRESSION_SGILOG24 34677 /* SGI Log 24-bit packed */ +#define TIFFTAG_PHOTOMETRIC 262 /* photometric interpretation */ +#define PHOTOMETRIC_MINISWHITE 0 /* min value is white */ +#define PHOTOMETRIC_MINISBLACK 1 /* min value is black */ +#define PHOTOMETRIC_RGB 2 /* RGB color model */ +#define PHOTOMETRIC_PALETTE 3 /* color map indexed */ +#define PHOTOMETRIC_MASK 4 /* $holdout mask */ +#define PHOTOMETRIC_SEPARATED 5 /* !color separations */ +#define PHOTOMETRIC_YCBCR 6 /* !CCIR 601 */ +#define PHOTOMETRIC_CIELAB 8 /* !1976 CIE L*a*b* */ +#define PHOTOMETRIC_LOGL 32844 /* CIE Log2(L) */ +#define PHOTOMETRIC_LOGLUV 32845 /* CIE Log2(L) (u',v') */ +#define TIFFTAG_THRESHHOLDING 263 /* +thresholding used on data */ +#define THRESHHOLD_BILEVEL 1 /* b&w art scan */ +#define THRESHHOLD_HALFTONE 2 /* or dithered scan */ +#define THRESHHOLD_ERRORDIFFUSE 3 /* usually floyd-steinberg */ +#define TIFFTAG_CELLWIDTH 264 /* +dithering matrix width */ +#define TIFFTAG_CELLLENGTH 265 /* +dithering matrix height */ +#define TIFFTAG_FILLORDER 266 /* data order within a byte */ +#define FILLORDER_MSB2LSB 1 /* most significant -> least */ +#define FILLORDER_LSB2MSB 2 /* least significant -> most */ +#define TIFFTAG_DOCUMENTNAME 269 /* name of doc. image is from */ +#define TIFFTAG_IMAGEDESCRIPTION 270 /* info about image */ +#define TIFFTAG_MAKE 271 /* scanner manufacturer name */ +#define TIFFTAG_MODEL 272 /* scanner model name/number */ +#define TIFFTAG_STRIPOFFSETS 273 /* offsets to data strips */ +#define TIFFTAG_ORIENTATION 274 /* +image orientation */ +#define ORIENTATION_TOPLEFT 1 /* row 0 top, col 0 lhs */ +#define ORIENTATION_TOPRIGHT 2 /* row 0 top, col 0 rhs */ +#define ORIENTATION_BOTRIGHT 3 /* row 0 bottom, col 0 rhs */ +#define ORIENTATION_BOTLEFT 4 /* row 0 bottom, col 0 lhs */ +#define ORIENTATION_LEFTTOP 5 /* row 0 lhs, col 0 top */ +#define ORIENTATION_RIGHTTOP 6 /* row 0 rhs, col 0 top */ +#define ORIENTATION_RIGHTBOT 7 /* row 0 rhs, col 0 bottom */ +#define ORIENTATION_LEFTBOT 8 /* row 0 lhs, col 0 bottom */ +#define TIFFTAG_SAMPLESPERPIXEL 277 /* samples per pixel */ +#define TIFFTAG_ROWSPERSTRIP 278 /* rows per strip of data */ +#define TIFFTAG_STRIPBYTECOUNTS 279 /* bytes counts for strips */ +#define TIFFTAG_MINSAMPLEVALUE 280 /* +minimum sample value */ +#define TIFFTAG_MAXSAMPLEVALUE 281 /* +maximum sample value */ +#define TIFFTAG_XRESOLUTION 282 /* pixels/resolution in x */ +#define TIFFTAG_YRESOLUTION 283 /* pixels/resolution in y */ +#define TIFFTAG_PLANARCONFIG 284 /* storage organization */ +#define PLANARCONFIG_CONTIG 1 /* single image plane */ +#define PLANARCONFIG_SEPARATE 2 /* separate planes of data */ +#define TIFFTAG_PAGENAME 285 /* page name image is from */ +#define TIFFTAG_XPOSITION 286 /* x page offset of image lhs */ +#define TIFFTAG_YPOSITION 287 /* y page offset of image lhs */ +#define TIFFTAG_FREEOFFSETS 288 /* +byte offset to free block */ +#define TIFFTAG_FREEBYTECOUNTS 289 /* +sizes of free blocks */ +#define TIFFTAG_GRAYRESPONSEUNIT 290 /* $gray scale curve accuracy */ +#define GRAYRESPONSEUNIT_10S 1 /* tenths of a unit */ +#define GRAYRESPONSEUNIT_100S 2 /* hundredths of a unit */ +#define GRAYRESPONSEUNIT_1000S 3 /* thousandths of a unit */ +#define GRAYRESPONSEUNIT_10000S 4 /* ten-thousandths of a unit */ +#define GRAYRESPONSEUNIT_100000S 5 /* hundred-thousandths */ +#define TIFFTAG_GRAYRESPONSECURVE 291 /* $gray scale response curve */ +#define TIFFTAG_GROUP3OPTIONS 292 /* 32 flag bits */ +#define GROUP3OPT_2DENCODING 0x1 /* 2-dimensional coding */ +#define GROUP3OPT_UNCOMPRESSED 0x2 /* data not compressed */ +#define GROUP3OPT_FILLBITS 0x4 /* fill to byte boundary */ +#define TIFFTAG_GROUP4OPTIONS 293 /* 32 flag bits */ +#define GROUP4OPT_UNCOMPRESSED 0x2 /* data not compressed */ +#define TIFFTAG_RESOLUTIONUNIT 296 /* units of resolutions */ +#define RESUNIT_NONE 1 /* no meaningful units */ +#define RESUNIT_INCH 2 /* english */ +#define RESUNIT_CENTIMETER 3 /* metric */ +#define TIFFTAG_PAGENUMBER 297 /* page numbers of multi-page */ +#define TIFFTAG_COLORRESPONSEUNIT 300 /* $color curve accuracy */ +#define COLORRESPONSEUNIT_10S 1 /* tenths of a unit */ +#define COLORRESPONSEUNIT_100S 2 /* hundredths of a unit */ +#define COLORRESPONSEUNIT_1000S 3 /* thousandths of a unit */ +#define COLORRESPONSEUNIT_10000S 4 /* ten-thousandths of a unit */ +#define COLORRESPONSEUNIT_100000S 5 /* hundred-thousandths */ +#define TIFFTAG_TRANSFERFUNCTION 301 /* !colorimetry info */ +#define TIFFTAG_SOFTWARE 305 /* name & release */ +#define TIFFTAG_DATETIME 306 /* creation date and time */ +#define TIFFTAG_ARTIST 315 /* creator of image */ +#define TIFFTAG_HOSTCOMPUTER 316 /* machine where created */ +#define TIFFTAG_PREDICTOR 317 /* prediction scheme w/ LZW */ +#define TIFFTAG_WHITEPOINT 318 /* image white point */ +#define TIFFTAG_PRIMARYCHROMATICITIES 319 /* !primary chromaticities */ +#define TIFFTAG_COLORMAP 320 /* RGB map for pallette image */ +#define TIFFTAG_HALFTONEHINTS 321 /* !highlight+shadow info */ +#define TIFFTAG_TILEWIDTH 322 /* !rows/data tile */ +#define TIFFTAG_TILELENGTH 323 /* !cols/data tile */ +#define TIFFTAG_TILEOFFSETS 324 /* !offsets to data tiles */ +#define TIFFTAG_TILEBYTECOUNTS 325 /* !byte counts for tiles */ +#define TIFFTAG_BADFAXLINES 326 /* lines w/ wrong pixel count */ +#define TIFFTAG_CLEANFAXDATA 327 /* regenerated line info */ +#define CLEANFAXDATA_CLEAN 0 /* no errors detected */ +#define CLEANFAXDATA_REGENERATED 1 /* receiver regenerated lines */ +#define CLEANFAXDATA_UNCLEAN 2 /* uncorrected errors exist */ +#define TIFFTAG_CONSECUTIVEBADFAXLINES 328 /* max consecutive bad lines */ +#define TIFFTAG_SUBIFD 330 /* subimage descriptors */ +#define TIFFTAG_INKSET 332 /* !inks in separated image */ +#define INKSET_CMYK 1 /* !cyan-magenta-yellow-black */ +#define TIFFTAG_INKNAMES 333 /* !ascii names of inks */ +#define TIFFTAG_NUMBEROFINKS 334 /* !number of inks */ +#define TIFFTAG_DOTRANGE 336 /* !0% and 100% dot codes */ +#define TIFFTAG_TARGETPRINTER 337 /* !separation target */ +#define TIFFTAG_EXTRASAMPLES 338 /* !info about extra samples */ +#define EXTRASAMPLE_UNSPECIFIED 0 /* !unspecified data */ +#define EXTRASAMPLE_ASSOCALPHA 1 /* !associated alpha data */ +#define EXTRASAMPLE_UNASSALPHA 2 /* !unassociated alpha data */ +#define TIFFTAG_SAMPLEFORMAT 339 /* !data sample format */ +#define SAMPLEFORMAT_UINT 1 /* !unsigned integer data */ +#define SAMPLEFORMAT_INT 2 /* !signed integer data */ +#define SAMPLEFORMAT_IEEEFP 3 /* !IEEE floating point data */ +#define SAMPLEFORMAT_VOID 4 /* !untyped data */ +#define TIFFTAG_SMINSAMPLEVALUE 340 /* !variable MinSampleValue */ +#define TIFFTAG_SMAXSAMPLEVALUE 341 /* !variable MaxSampleValue */ +#define TIFFTAG_JPEGTABLES 347 /* %JPEG table stream */ +/* + * Tags 512-521 are obsoleted by Technical Note #2 + * which specifies a revised JPEG-in-TIFF scheme. + */ +#define TIFFTAG_JPEGPROC 512 /* !JPEG processing algorithm */ +#define JPEGPROC_BASELINE 1 /* !baseline sequential */ +#define JPEGPROC_LOSSLESS 14 /* !Huffman coded lossless */ +#define TIFFTAG_JPEGIFOFFSET 513 /* !pointer to SOI marker */ +#define TIFFTAG_JPEGIFBYTECOUNT 514 /* !JFIF stream length */ +#define TIFFTAG_JPEGRESTARTINTERVAL 515 /* !restart interval length */ +#define TIFFTAG_JPEGLOSSLESSPREDICTORS 517 /* !lossless proc predictor */ +#define TIFFTAG_JPEGPOINTTRANSFORM 518 /* !lossless point transform */ +#define TIFFTAG_JPEGQTABLES 519 /* !Q matrice offsets */ +#define TIFFTAG_JPEGDCTABLES 520 /* !DCT table offsets */ +#define TIFFTAG_JPEGACTABLES 521 /* !AC coefficient offsets */ +#define TIFFTAG_YCBCRCOEFFICIENTS 529 /* !RGB -> YCbCr transform */ +#define TIFFTAG_YCBCRSUBSAMPLING 530 /* !YCbCr subsampling factors */ +#define TIFFTAG_YCBCRPOSITIONING 531 /* !subsample positioning */ +#define YCBCRPOSITION_CENTERED 1 /* !as in PostScript Level 2 */ +#define YCBCRPOSITION_COSITED 2 /* !as in CCIR 601-1 */ +#define TIFFTAG_REFERENCEBLACKWHITE 532 /* !colorimetry info */ +/* tags 32952-32956 are private tags registered to Island Graphics */ +#define TIFFTAG_REFPTS 32953 /* image reference points */ +#define TIFFTAG_REGIONTACKPOINT 32954 /* region-xform tack point */ +#define TIFFTAG_REGIONWARPCORNERS 32955 /* warp quadrilateral */ +#define TIFFTAG_REGIONAFFINE 32956 /* affine transformation mat */ +/* tags 32995-32999 are private tags registered to SGI */ +#define TIFFTAG_MATTEING 32995 /* $use ExtraSamples */ +#define TIFFTAG_DATATYPE 32996 /* $use SampleFormat */ +#define TIFFTAG_IMAGEDEPTH 32997 /* z depth of image */ +#define TIFFTAG_TILEDEPTH 32998 /* z depth/data tile */ +/* tags 33300-33309 are private tags registered to Pixar */ +/* + * TIFFTAG_PIXAR_IMAGEFULLWIDTH and TIFFTAG_PIXAR_IMAGEFULLLENGTH + * are set when an image has been cropped out of a larger image. + * They reflect the size of the original uncropped image. + * The TIFFTAG_XPOSITION and TIFFTAG_YPOSITION can be used + * to determine the position of the smaller image in the larger one. + */ +#define TIFFTAG_PIXAR_IMAGEFULLWIDTH 33300 /* full image size in x */ +#define TIFFTAG_PIXAR_IMAGEFULLLENGTH 33301 /* full image size in y */ + /* Tags 33302-33306 are used to identify special image modes and data + * used by Pixar's texture formats. + */ +#define TIFFTAG_PIXAR_TEXTUREFORMAT 33302 /* texture map format */ +#define TIFFTAG_PIXAR_WRAPMODES 33303 /* s & t wrap modes */ +#define TIFFTAG_PIXAR_FOVCOT 33304 /* cotan(fov) for env. maps */ +#define TIFFTAG_PIXAR_MATRIX_WORLDTOSCREEN 33305 +#define TIFFTAG_PIXAR_MATRIX_WORLDTOCAMERA 33306 +/* tag 33405 is a private tag registered to Eastman Kodak */ +#define TIFFTAG_WRITERSERIALNUMBER 33405 /* device serial number */ +/* tag 33432 is listed in the 6.0 spec w/ unknown ownership */ +#define TIFFTAG_COPYRIGHT 33432 /* copyright string */ +/* IPTC TAG from RichTIFF specifications */ +#define TIFFTAG_RICHTIFFIPTC 33723 +/* 34016-34029 are reserved for ANSI IT8 TIFF/IT */ +#define TIFFTAG_STONITS 37439 /* Sample value to Nits */ +/* tag 34929 is a private tag registered to FedEx */ +#define TIFFTAG_FEDEX_EDR 34929 /* unknown use */ +/* tag 65535 is an undefined tag used by Eastman Kodak */ +#define TIFFTAG_DCSHUESHIFTVALUES 65535 /* hue shift correction data */ + +/* + * The following are ``pseudo tags'' that can be + * used to control codec-specific functionality. + * These tags are not written to file. Note that + * these values start at 0xffff+1 so that they'll + * never collide with Aldus-assigned tags. + * + * If you want your private pseudo tags ``registered'' + * (i.e. added to this file), send mail to sam@sgi.com + * with the appropriate C definitions to add. + */ +#define TIFFTAG_FAXMODE 65536 /* Group 3/4 format control */ +#define FAXMODE_CLASSIC 0x0000 /* default, include RTC */ +#define FAXMODE_NORTC 0x0001 /* no RTC at end of data */ +#define FAXMODE_NOEOL 0x0002 /* no EOL code at end of row */ +#define FAXMODE_BYTEALIGN 0x0004 /* byte align row */ +#define FAXMODE_WORDALIGN 0x0008 /* word align row */ +#define FAXMODE_CLASSF FAXMODE_NORTC /* TIFF Class F */ +#define TIFFTAG_JPEGQUALITY 65537 /* Compression quality level */ +/* Note: quality level is on the IJG 0-100 scale. Default value is 75 */ +#define TIFFTAG_JPEGCOLORMODE 65538 /* Auto RGB<=>YCbCr convert? */ +#define JPEGCOLORMODE_RAW 0x0000 /* no conversion (default) */ +#define JPEGCOLORMODE_RGB 0x0001 /* do auto conversion */ +#define TIFFTAG_JPEGTABLESMODE 65539 /* What to put in JPEGTables */ +#define JPEGTABLESMODE_QUANT 0x0001 /* include quantization tbls */ +#define JPEGTABLESMODE_HUFF 0x0002 /* include Huffman tbls */ +/* Note: default is JPEGTABLESMODE_QUANT | JPEGTABLESMODE_HUFF */ +#define TIFFTAG_FAXFILLFUNC 65540 /* G3/G4 fill function */ +#define TIFFTAG_PIXARLOGDATAFMT 65549 /* PixarLogCodec I/O data sz */ +#define PIXARLOGDATAFMT_8BIT 0 /* regular u_char samples */ +#define PIXARLOGDATAFMT_8BITABGR 1 /* ABGR-order u_chars */ +#define PIXARLOGDATAFMT_11BITLOG 2 /* 11-bit log-encoded (raw) */ +#define PIXARLOGDATAFMT_12BITPICIO 3 /* as per PICIO (1.0==2048) */ +#define PIXARLOGDATAFMT_16BIT 4 /* signed short samples */ +#define PIXARLOGDATAFMT_FLOAT 5 /* IEEE float samples */ +/* 65550-65556 are allocated to Oceana Matrix */ +#define TIFFTAG_DCSIMAGERTYPE 65550 /* imager model & filter */ +#define DCSIMAGERMODEL_M3 0 /* M3 chip (1280 x 1024) */ +#define DCSIMAGERMODEL_M5 1 /* M5 chip (1536 x 1024) */ +#define DCSIMAGERMODEL_M6 2 /* M6 chip (3072 x 2048) */ +#define DCSIMAGERFILTER_IR 0 /* infrared filter */ +#define DCSIMAGERFILTER_MONO 1 /* monochrome filter */ +#define DCSIMAGERFILTER_CFA 2 /* color filter array */ +#define DCSIMAGERFILTER_OTHER 3 /* other filter */ +#define TIFFTAG_DCSINTERPMODE 65551 /* interpolation mode */ +#define DCSINTERPMODE_NORMAL 0x0 /* whole image, default */ +#define DCSINTERPMODE_PREVIEW 0x1 /* preview of image (384x256) */ +#define TIFFTAG_DCSBALANCEARRAY 65552 /* color balance values */ +#define TIFFTAG_DCSCORRECTMATRIX 65553 /* color correction values */ +#define TIFFTAG_DCSGAMMA 65554 /* gamma value */ +#define TIFFTAG_DCSTOESHOULDERPTS 65555 /* toe & shoulder points */ +#define TIFFTAG_DCSCALIBRATIONFD 65556 /* calibration file desc */ +/* Note: quality level is on the ZLIB 1-9 scale. Default value is -1 */ +#define TIFFTAG_ZIPQUALITY 65557 /* compression quality level */ +#define TIFFTAG_PIXARLOGQUALITY 65558 /* PixarLog uses same scale */ +/* 65559 is allocated to Oceana Matrix */ +#define TIFFTAG_DCSCLIPRECTANGLE 65559 /* area of image to acquire */ +#define TIFFTAG_SGILOGDATAFMT 65560 /* SGILog user data format */ +#define SGILOGDATAFMT_FLOAT 0 /* IEEE float samples */ +#define SGILOGDATAFMT_16BIT 1 /* 16-bit samples */ +#define SGILOGDATAFMT_RAW 2 /* uninterpreted data */ +#define SGILOGDATAFMT_8BIT 3 /* 8-bit RGB monitor values */ +#endif /* _TIFF_ */ diff --git a/libtiff/tiffcomp.h b/libtiff/tiffcomp.h new file mode 100755 index 0000000..428e1e1 --- /dev/null +++ b/libtiff/tiffcomp.h @@ -0,0 +1,214 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tiffcomp.h,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1990-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#ifndef _COMPAT_ +#define _COMPAT_ +/* + * This file contains a hodgepodge of definitions and + * declarations that are needed to provide compatibility + * between the native system and the base implementation + * that the library assumes. + * + * NB: This file is a mess. + */ + +/* + * Setup basic type definitions and function declaratations. + */ + +/* + * Simplify Acorn RISC OS identifier (to avoid confusion with Acorn RISC iX + * and with defunct Unix Risc OS) + * No need to specify __arm - hey, Acorn might port the OS, no problem here! + */ +#ifdef __acornriscos +#undef __acornriscos +#endif +#if defined(__acorn) && defined(__riscos) +#define __acornriscos +#endif + +#if defined(__MWERKS__) || defined(THINK_C) +#include +#include +#endif + +#include + +#if defined(__PPCC__) || defined(__SC__) || defined(__MRC__) +#include +#elif !defined(__MWERKS__) && !defined(THINK_C) && !defined(__acornriscos) && !defined(applec) +#include +#endif + +#if defined(VMS) +#include +#include +#elif !defined(__acornriscos) +#include +#endif + +/* + * This maze of checks controls defines or not the + * target system has BSD-style typdedefs declared in + * an include file and/or whether or not to include + * to get the SEEK_* definitions. Some + * additional includes are also done to pull in the + * appropriate definitions we're looking for. + */ +#if defined(__MWERKS__) || defined(THINK_C) || defined(__PPCC__) || defined(__SC__) || defined(__MRC__) +#include +#define BSDTYPES +#define HAVE_UNISTD_H 0 +#elif defined(_WINDOWS) || defined(__WIN32__) || defined(_Windows) +#define BSDTYPES +#elif defined(OS2_16) || defined(OS2_32) +#define BSDTYPES +#elif defined(__acornriscos) +#include +#define BSDTYPES +#define HAVE_UNISTD_H 0 +#elif defined(VMS) +#define HAVE_UNISTD_H 0 +#else +#define HAVE_UNISTD_H 1 +#endif + +/* + * The library uses the ANSI C/POSIX SEEK_* + * definitions that should be defined in unistd.h + * (except on system where they are in stdio.h and + * there is no unistd.h). + */ +#if !defined(SEEK_SET) && HAVE_UNISTD_H +#include +#endif + +/* + * The library uses memset, memcpy, and memcmp. + * ANSI C and System V define these in string.h. + */ +#include + +/* + * The BSD typedefs are used throughout the library. + * If your system doesn't have them in , + * then define BSDTYPES in your Makefile. + */ +#if defined(BSDTYPES) +typedef unsigned char u_char; +typedef unsigned short u_short; +typedef unsigned int u_int; +typedef unsigned long u_long; +#endif + +/* + * dblparam_t is the type that a double precision + * floating point value will have on the parameter + * stack (when coerced by the compiler). + */ +/* Note: on MacPowerPC "extended" is undefined. So only use it for 68K-Macs */ +#if defined(__SC__) || defined(THINK_C) +typedef extended dblparam_t; +#else +typedef double dblparam_t; +#endif + +/* + * If your compiler supports inline functions, then + * set INLINE appropriately to get the known hotspots + * in the library expanded inline. + */ +#if defined(__GNUC__) +#if defined(__STRICT_ANSI__) +#define INLINE __inline__ +#else +#define INLINE inline +#endif +#else /* !__GNUC__ */ +#define INLINE +#endif + +/* + * GLOBALDATA is a macro that is used to define global variables + * private to the library. We use this indirection to hide + * brain-damage in VAXC (and GCC) under VAX/VMS. In these + * environments the macro places the variable in a non-shareable + * program section, which ought to be done by default (sigh!) + * + * Apparently DEC are aware of the problem as this behaviour is the + * default under VMS on AXP. + * + * The GNU C variant is untested. + */ +#if defined(VAX) && defined(VMS) +#if defined(VAXC) +#define GLOBALDATA(TYPE,NAME) extern noshare TYPE NAME +#endif +#if defined(__GNUC__) +#define GLOBALDATA(TYPE,NAME) extern TYPE NAME \ + asm("_$$PsectAttributes_NOSHR$$" #NAME) +#endif +#else /* !VAX/VMS */ +#define GLOBALDATA(TYPE,NAME) extern TYPE NAME +#endif + +#if defined(__acornriscos) +/* + * osfcn.h is part of C++Lib on Acorn C/C++, and as such can't be used + * on C alone. For that reason, the relevant functions are + * implemented in tif_acorn.c, and the elements from the header + * file are included here. + */ +#if defined(__cplusplus) +#include +#else +#define O_RDONLY 0 +#define O_WRONLY 1 +#define O_RDWR 2 +#define O_APPEND 8 +#define O_CREAT 0x200 +#define O_TRUNC 0x400 +typedef long off_t; +extern int open(const char *name, int flags, int mode); +extern int close(int fd); +extern int write(int fd, const char *buf, int nbytes); +extern int read(int fd, char *buf, int nbytes); +extern off_t lseek(int fd, off_t offset, int whence); +extern int creat(const char *path, int mode); +#endif /* __cplusplus */ +#endif /* __acornriscos */ + +/* Bit and byte order, the default is MSB to LSB */ +#ifdef VMS +#undef HOST_FILLORDER +#undef HOST_BIGENDIAN +#define HOST_FILLORDER FILLORDER_LSB2MSB +#define HOST_BIGENDIAN 0 +#endif + + +#endif /* _COMPAT_ */ diff --git a/libtiff/tiffconf.h b/libtiff/tiffconf.h new file mode 100755 index 0000000..1fced65 --- /dev/null +++ b/libtiff/tiffconf.h @@ -0,0 +1,143 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tiffconf.h,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#ifndef _TIFFCONF_ +#define _TIFFCONF_ +/* + * Library Configuration Definitions. + * + * This file defines the default configuration for the library. + * If the target system does not have make or a way to specify + * #defines on the command line, this file can be edited to + * configure the library. Otherwise, one can override portability + * and configuration-related definitions from a Makefile or command + * line by defining FEATURE_SUPPORT and COMPRESSION_SUPPORT (see below). + */ + +/* + * General portability-related defines: + * + * HAVE_IEEEFP define as 0 or 1 according to the floating point + * format suported by the machine + * BSDTYPES define this if your system does NOT define the + * usual 4BSD typedefs u_int et. al. + * HAVE_MMAP enable support for memory mapping read-only files; + * this is typically deduced by the configure script + * HOST_FILLORDER native cpu bit order: one of FILLORDER_MSB2LSB + * or FILLODER_LSB2MSB; this is typically set by the + * configure script + * HOST_BIGENDIAN native cpu byte order: 1 if big-endian (Motorola) + * or 0 if little-endian (Intel); this may be used + * in codecs to optimize code + * USE_64BIT_API set to 1 if tif_unix.c should use lseek64(), + * fstat64() and stat64 allowing 2-4GB files. + */ +#ifndef HAVE_IEEEFP +#define HAVE_IEEEFP 1 +#endif +#ifndef HOST_FILLORDER +#define HOST_FILLORDER FILLORDER_MSB2LSB +#endif +#ifndef HOST_BIGENDIAN +#define HOST_BIGENDIAN 1 +#endif + +#ifndef USE_64BIT_API +# define USE_64BIT_API 0 +#endif + +#ifndef FEATURE_SUPPORT +/* + * Feature support definitions: + * + * COLORIMETRY_SUPPORT enable support for 6.0 colorimetry tags + * YCBCR_SUPPORT enable support for 6.0 YCbCr tags + * CMYK_SUPPORT enable support for 6.0 CMYK tags + * ICC_SUPPORT enable support for ICC profile tag + * PHOTOSHOP_SUPPORT enable support for PHOTOSHOP resource tag + * IPTC_SUPPORT enable support for RichTIFF IPTC tag + */ +#define COLORIMETRY_SUPPORT +#define YCBCR_SUPPORT +#define CMYK_SUPPORT +#define ICC_SUPPORT +#define PHOTOSHOP_SUPPORT +#define IPTC_SUPPORT +#endif /* FEATURE_SUPPORT */ + +#ifndef COMPRESSION_SUPPORT +/* + * Compression support defines: + * + * CCITT_SUPPORT enable support for CCITT Group 3 & 4 algorithms + * PACKBITS_SUPPORT enable support for Macintosh PackBits algorithm + * LZW_SUPPORT enable support for LZW algorithm + * THUNDER_SUPPORT enable support for ThunderScan 4-bit RLE algorithm + * NEXT_SUPPORT enable support for NeXT 2-bit RLE algorithm + * OJPEG_SUPPORT enable support for 6.0-style JPEG DCT algorithms + * (no builtin support, only a codec hook) + * JPEG_SUPPORT enable support for post-6.0-style JPEG DCT algorithms + * (requires freely available IJG software, see tif_jpeg.c) + * ZIP_SUPPORT enable support for Deflate algorithm + * (requires freely available zlib software, see tif_zip.c) + * PIXARLOG_SUPPORT enable support for Pixar log-format algorithm + * LOGLUV_SUPPORT enable support for LogLuv high dynamic range encoding + */ +#define CCITT_SUPPORT +#define PACKBITS_SUPPORT +#define LZW_SUPPORT +#define THUNDER_SUPPORT +#define NEXT_SUPPORT +#define LOGLUV_SUPPORT +#endif /* COMPRESSION_SUPPORT */ + +/* + * If JPEG compression is enabled then we must also include + * support for the colorimetry and YCbCr-related tags. + */ +#ifdef JPEG_SUPPORT +#ifndef YCBCR_SUPPORT +#define YCBCR_SUPPORT +#endif +#ifndef COLORIMETRY_SUPPORT +#define COLORIMETRY_SUPPORT +#endif +#endif /* JPEG_SUPPORT */ + +/* + * ``Orthogonal Features'' + * + * STRIPCHOP_DEFAULT default handling of strip chopping support (whether + * or not to convert single-strip uncompressed images + * to mutiple strips of ~8Kb--to reduce memory use) + * SUBIFD_SUPPORT enable support for SubIFD tag (thumbnails and such) + */ +#ifndef STRIPCHOP_DEFAULT +#define STRIPCHOP_DEFAULT TIFF_STRIPCHOP /* default is to enable */ +#endif +#ifndef SUBIFD_SUPPORT +#define SUBIFD_SUPPORT 1 /* enable SubIFD tag (330) support */ +#endif +#endif /* _TIFFCONF_ */ diff --git a/libtiff/tiffio.h b/libtiff/tiffio.h new file mode 100755 index 0000000..4b404b2 --- /dev/null +++ b/libtiff/tiffio.h @@ -0,0 +1,327 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tiffio.h,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#ifndef _TIFFIO_ +#define _TIFFIO_ + +/* + * TIFF I/O Library Definitions. + */ +#include "tiff.h" + +/* + * This define can be used in code that requires + * compilation-related definitions specific to a + * version or versions of the library. Runtime + * version checking should be done based on the + * string returned by TIFFGetVersion. + */ +#define TIFFLIB_VERSION 19970127 /* January 27, 1997 */ + +/* + * TIFF is defined as an incomplete type to hide the + * library's internal data structures from clients. + */ +typedef struct tiff TIFF; + +/* + * The following typedefs define the intrinsic size of + * data types used in the *exported* interfaces. These + * definitions depend on the proper definition of types + * in tiff.h. Note also that the varargs interface used + * to pass tag types and values uses the types defined in + * tiff.h directly. + * + * NB: ttag_t is unsigned int and not unsigned short because + * ANSI C requires that the type before the ellipsis be a + * promoted type (i.e. one of int, unsigned int, pointer, + * or double) and because we defined pseudo-tags that are + * outside the range of legal Aldus-assigned tags. + * NB: tsize_t is int32 and not uint32 because some functions + * return -1. + * NB: toff_t is not off_t for many reasons; TIFFs max out at + * 32-bit file offsets being the most important, and to ensure + * that it is unsigned, rather than signed. + */ +typedef uint32 ttag_t; /* directory tag */ +typedef uint16 tdir_t; /* directory index */ +typedef uint16 tsample_t; /* sample number */ +typedef uint32 tstrip_t; /* strip number */ +typedef uint32 ttile_t; /* tile number */ +typedef int32 tsize_t; /* i/o size in bytes */ +typedef void* tdata_t; /* image data ref */ +typedef uint32 toff_t; /* file offset */ + +#if !defined(__WIN32__) && (defined(_WIN32) || defined(WIN32)) +#define __WIN32__ +#endif +#if defined(_WINDOWS) || defined(__WIN32__) || defined(_Windows) +#include +#ifdef __WIN32__ +DECLARE_HANDLE(thandle_t); /* Win32 file handle */ +#else +typedef HFILE thandle_t; /* client data handle */ +#endif +#else +typedef void* thandle_t; /* client data handle */ +#endif + +#ifndef NULL +#define NULL 0 +#endif + +/* + * Flags to pass to TIFFPrintDirectory to control + * printing of data structures that are potentially + * very large. Bit-or these flags to enable printing + * multiple items. + */ +#define TIFFPRINT_NONE 0x0 /* no extra info */ +#define TIFFPRINT_STRIPS 0x1 /* strips/tiles info */ +#define TIFFPRINT_CURVES 0x2 /* color/gray response curves */ +#define TIFFPRINT_COLORMAP 0x4 /* colormap */ +#define TIFFPRINT_JPEGQTABLES 0x100 /* JPEG Q matrices */ +#define TIFFPRINT_JPEGACTABLES 0x200 /* JPEG AC tables */ +#define TIFFPRINT_JPEGDCTABLES 0x200 /* JPEG DC tables */ + +/* + * RGBA-style image support. + */ +typedef unsigned char TIFFRGBValue; /* 8-bit samples */ +typedef struct _TIFFRGBAImage TIFFRGBAImage; +/* + * The image reading and conversion routines invoke + * ``put routines'' to copy/image/whatever tiles of + * raw image data. A default set of routines are + * provided to convert/copy raw image data to 8-bit + * packed ABGR format rasters. Applications can supply + * alternate routines that unpack the data into a + * different format or, for example, unpack the data + * and draw the unpacked raster on the display. + */ +typedef void (*tileContigRoutine) + (TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32, + unsigned char*); +typedef void (*tileSeparateRoutine) + (TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32, + unsigned char*, unsigned char*, unsigned char*, unsigned char*); +/* + * RGBA-reader state. + */ +typedef struct { /* YCbCr->RGB support */ + TIFFRGBValue* clamptab; /* range clamping table */ + int* Cr_r_tab; + int* Cb_b_tab; + int32* Cr_g_tab; + int32* Cb_g_tab; + float coeffs[3]; /* cached for repeated use */ +} TIFFYCbCrToRGB; + +struct _TIFFRGBAImage { + TIFF* tif; /* image handle */ + int stoponerr; /* stop on read error */ + int isContig; /* data is packed/separate */ + int alpha; /* type of alpha data present */ + uint32 width; /* image width */ + uint32 height; /* image height */ + uint16 bitspersample; /* image bits/sample */ + uint16 samplesperpixel; /* image samples/pixel */ + uint16 orientation; /* image orientation */ + uint16 photometric; /* image photometric interp */ + uint16* redcmap; /* colormap pallete */ + uint16* greencmap; + uint16* bluecmap; + /* get image data routine */ + int (*get)(TIFFRGBAImage*, uint32*, uint32, uint32); + union { + void (*any)(TIFFRGBAImage*); + tileContigRoutine contig; + tileSeparateRoutine separate; + } put; /* put decoded strip/tile */ + TIFFRGBValue* Map; /* sample mapping array */ + uint32** BWmap; /* black&white map */ + uint32** PALmap; /* palette image map */ + TIFFYCbCrToRGB* ycbcr; /* YCbCr conversion state */ + + int row_offset; + int col_offset; +}; + +/* + * Macros for extracting components from the + * packed ABGR form returned by TIFFReadRGBAImage. + */ +#define TIFFGetR(abgr) ((abgr) & 0xff) +#define TIFFGetG(abgr) (((abgr) >> 8) & 0xff) +#define TIFFGetB(abgr) (((abgr) >> 16) & 0xff) +#define TIFFGetA(abgr) (((abgr) >> 24) & 0xff) + +/* + * A CODEC is a software package that implements decoding, + * encoding, or decoding+encoding of a compression algorithm. + * The library provides a collection of builtin codecs. + * More codecs may be registered through calls to the library + * and/or the builtin implementations may be overridden. + */ +typedef int (*TIFFInitMethod)(TIFF*, int); +typedef struct { + char* name; + uint16 scheme; + TIFFInitMethod init; +} TIFFCodec; + +#include +#include + +#if defined(__cplusplus) +extern "C" { +#endif +typedef void (*TIFFErrorHandler)(const char*, const char*, va_list); +typedef tsize_t (*TIFFReadWriteProc)(thandle_t, tdata_t, tsize_t); +typedef toff_t (*TIFFSeekProc)(thandle_t, toff_t, int); +typedef int (*TIFFCloseProc)(thandle_t); +typedef toff_t (*TIFFSizeProc)(thandle_t); +typedef int (*TIFFMapFileProc)(thandle_t, tdata_t*, toff_t*); +typedef void (*TIFFUnmapFileProc)(thandle_t, tdata_t, toff_t); +typedef void (*TIFFExtendProc)(TIFF*); + +extern const char* TIFFGetVersion(void); + +extern const TIFFCodec* TIFFFindCODEC(uint16); +extern TIFFCodec* TIFFRegisterCODEC(uint16, const char*, TIFFInitMethod); +extern void TIFFUnRegisterCODEC(TIFFCodec*); + +extern tdata_t _TIFFmalloc(tsize_t); +extern tdata_t _TIFFrealloc(tdata_t, tsize_t); +extern void _TIFFmemset(tdata_t, int, tsize_t); +extern void _TIFFmemcpy(tdata_t, const tdata_t, tsize_t); +extern int _TIFFmemcmp(const tdata_t, const tdata_t, tsize_t); +extern void _TIFFfree(tdata_t); + +extern void TIFFClose(TIFF*); +extern int TIFFFlush(TIFF*); +extern int TIFFFlushData(TIFF*); +extern int TIFFGetField(TIFF*, ttag_t, ...); +extern int TIFFVGetField(TIFF*, ttag_t, va_list); +extern int TIFFGetFieldDefaulted(TIFF*, ttag_t, ...); +extern int TIFFVGetFieldDefaulted(TIFF*, ttag_t, va_list); +extern int TIFFReadDirectory(TIFF*); +extern tsize_t TIFFScanlineSize(TIFF*); +extern tsize_t TIFFRasterScanlineSize(TIFF*); +extern tsize_t TIFFStripSize(TIFF*); +extern tsize_t TIFFVStripSize(TIFF*, uint32); +extern tsize_t TIFFTileRowSize(TIFF*); +extern tsize_t TIFFTileSize(TIFF*); +extern tsize_t TIFFVTileSize(TIFF*, uint32); +extern uint32 TIFFDefaultStripSize(TIFF*, uint32); +extern void TIFFDefaultTileSize(TIFF*, uint32*, uint32*); +extern int TIFFFileno(TIFF*); +extern int TIFFGetMode(TIFF*); +extern int TIFFIsTiled(TIFF*); +extern int TIFFIsByteSwapped(TIFF*); +extern int TIFFIsUpSampled(TIFF*); +extern int TIFFIsMSB2LSB(TIFF*); +extern uint32 TIFFCurrentRow(TIFF*); +extern tdir_t TIFFCurrentDirectory(TIFF*); +extern tdir_t TIFFNumberOfDirectories(TIFF*); +extern uint32 TIFFCurrentDirOffset(TIFF*); +extern tstrip_t TIFFCurrentStrip(TIFF*); +extern ttile_t TIFFCurrentTile(TIFF*); +extern int TIFFReadBufferSetup(TIFF*, tdata_t, tsize_t); +extern int TIFFWriteBufferSetup(TIFF*, tdata_t, tsize_t); +extern int TIFFWriteCheck(TIFF*, int, const char *); +extern int TIFFCreateDirectory(TIFF*); +extern int TIFFLastDirectory(TIFF*); +extern int TIFFSetDirectory(TIFF*, tdir_t); +extern int TIFFSetSubDirectory(TIFF*, uint32); +extern int TIFFUnlinkDirectory(TIFF*, tdir_t); +extern int TIFFSetField(TIFF*, ttag_t, ...); +extern int TIFFVSetField(TIFF*, ttag_t, va_list); +extern int TIFFWriteDirectory(TIFF *); +extern int TIFFReassignTagToIgnore(enum TIFFIgnoreSense, int); + +#if defined(c_plusplus) || defined(__cplusplus) +extern void TIFFPrintDirectory(TIFF*, FILE*, long = 0); +extern int TIFFReadScanline(TIFF*, tdata_t, uint32, tsample_t = 0); +extern int TIFFWriteScanline(TIFF*, tdata_t, uint32, tsample_t = 0); +extern int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int = 0); +#else +extern void TIFFPrintDirectory(TIFF*, FILE*, long); +extern int TIFFReadScanline(TIFF*, tdata_t, uint32, tsample_t); +extern int TIFFWriteScanline(TIFF*, tdata_t, uint32, tsample_t); +extern int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int); +#endif + +extern int TIFFReadRGBAStrip(TIFF*, tstrip_t, uint32 * ); +extern int TIFFReadRGBATile(TIFF*, uint32, uint32, uint32 * ); +extern int TIFFRGBAImageOK(TIFF*, char [1024]); +extern int TIFFRGBAImageBegin(TIFFRGBAImage*, TIFF*, int, char [1024]); +extern int TIFFRGBAImageGet(TIFFRGBAImage*, uint32*, uint32, uint32); +extern void TIFFRGBAImageEnd(TIFFRGBAImage*); +extern TIFF* TIFFOpen(const char*, const char*); +extern TIFF* TIFFFdOpen(int, const char*, const char*); +extern TIFF* TIFFClientOpen(const char*, const char*, + thandle_t, + TIFFReadWriteProc, TIFFReadWriteProc, + TIFFSeekProc, TIFFCloseProc, + TIFFSizeProc, + TIFFMapFileProc, TIFFUnmapFileProc); +extern const char* TIFFFileName(TIFF*); +extern void TIFFError(const char*, const char*, ...); +extern void TIFFWarning(const char*, const char*, ...); +extern TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler); +extern TIFFErrorHandler TIFFSetWarningHandler(TIFFErrorHandler); +extern TIFFExtendProc TIFFSetTagExtender(TIFFExtendProc); +extern ttile_t TIFFComputeTile(TIFF*, uint32, uint32, uint32, tsample_t); +extern int TIFFCheckTile(TIFF*, uint32, uint32, uint32, tsample_t); +extern ttile_t TIFFNumberOfTiles(TIFF*); +extern tsize_t TIFFReadTile(TIFF*, + tdata_t, uint32, uint32, uint32, tsample_t); +extern tsize_t TIFFWriteTile(TIFF*, + tdata_t, uint32, uint32, uint32, tsample_t); +extern tstrip_t TIFFComputeStrip(TIFF*, uint32, tsample_t); +extern tstrip_t TIFFNumberOfStrips(TIFF*); +extern tsize_t TIFFReadEncodedStrip(TIFF*, tstrip_t, tdata_t, tsize_t); +extern tsize_t TIFFReadRawStrip(TIFF*, tstrip_t, tdata_t, tsize_t); +extern tsize_t TIFFReadEncodedTile(TIFF*, ttile_t, tdata_t, tsize_t); +extern tsize_t TIFFReadRawTile(TIFF*, ttile_t, tdata_t, tsize_t); +extern tsize_t TIFFWriteEncodedStrip(TIFF*, tstrip_t, tdata_t, tsize_t); +extern tsize_t TIFFWriteRawStrip(TIFF*, tstrip_t, tdata_t, tsize_t); +extern tsize_t TIFFWriteEncodedTile(TIFF*, ttile_t, tdata_t, tsize_t); +extern tsize_t TIFFWriteRawTile(TIFF*, ttile_t, tdata_t, tsize_t); +extern void TIFFSetWriteOffset(TIFF*, toff_t); +extern void TIFFSwabShort(uint16*); +extern void TIFFSwabLong(uint32*); +extern void TIFFSwabDouble(double*); +extern void TIFFSwabArrayOfShort(uint16*, unsigned long); +extern void TIFFSwabArrayOfLong(uint32*, unsigned long); +extern void TIFFSwabArrayOfDouble(double*, unsigned long); +extern void TIFFReverseBits(unsigned char *, unsigned long); +extern const unsigned char* TIFFGetBitRevTable(int); +#if defined(__cplusplus) +} +#endif +#endif /* _TIFFIO_ */ diff --git a/libtiff/tiffiop.h b/libtiff/tiffiop.h new file mode 100755 index 0000000..68a7e22 --- /dev/null +++ b/libtiff/tiffiop.h @@ -0,0 +1,279 @@ +/* $Header: /home/cvsroot/libtiff/libtiff/tiffiop.h,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#ifndef _TIFFIOP_ +#define _TIFFIOP_ +/* + * ``Library-private'' definitions. + */ +/* + * UNIX systems should run the configure script to generate + * a port.h file that reflects the system capabilities. + * Doing this obviates all the dreck done in tiffcomp.h. + */ +#if defined(unix) || defined(__unix) +#include "port.h" +#include "tiffconf.h" +#else +#include "tiffconf.h" +#include "tiffcomp.h" +#endif +#include "tiffio.h" +#include "tif_dir.h" + +#ifndef TRUE +#define TRUE 1 +#define FALSE 0 +#endif + +/* + * Typedefs for ``method pointers'' used internally. + */ +typedef unsigned char tidataval_t; /* internal image data value type */ +typedef tidataval_t* tidata_t; /* reference to internal image data */ + +typedef void (*TIFFVoidMethod)(TIFF*); +typedef int (*TIFFBoolMethod)(TIFF*); +typedef int (*TIFFPreMethod)(TIFF*, tsample_t); +typedef int (*TIFFCodeMethod)(TIFF*, tidata_t, tsize_t, tsample_t); +typedef int (*TIFFSeekMethod)(TIFF*, uint32); +typedef void (*TIFFPostMethod)(TIFF*, tidata_t, tsize_t); +typedef int (*TIFFVSetMethod)(TIFF*, ttag_t, va_list); +typedef int (*TIFFVGetMethod)(TIFF*, ttag_t, va_list); +typedef void (*TIFFPrintMethod)(TIFF*, FILE*, long); +typedef uint32 (*TIFFStripMethod)(TIFF*, uint32); +typedef void (*TIFFTileMethod)(TIFF*, uint32*, uint32*); + +struct tiff { + char* tif_name; /* name of open file */ + int tif_fd; /* open file descriptor */ + int tif_mode; /* open mode (O_*) */ + uint32 tif_flags; +#define TIFF_FILLORDER 0x0003 /* natural bit fill order for machine */ +#define TIFF_DIRTYHEADER 0x0004 /* header must be written on close */ +#define TIFF_DIRTYDIRECT 0x0008 /* current directory must be written */ +#define TIFF_BUFFERSETUP 0x0010 /* data buffers setup */ +#define TIFF_CODERSETUP 0x0020 /* encoder/decoder setup done */ +#define TIFF_BEENWRITING 0x0040 /* written 1+ scanlines to file */ +#define TIFF_SWAB 0x0080 /* byte swap file information */ +#define TIFF_NOBITREV 0x0100 /* inhibit bit reversal logic */ +#define TIFF_MYBUFFER 0x0200 /* my raw data buffer; free on close */ +#define TIFF_ISTILED 0x0400 /* file is tile, not strip- based */ +#define TIFF_MAPPED 0x0800 /* file is mapped into memory */ +#define TIFF_POSTENCODE 0x1000 /* need call to postencode routine */ +#define TIFF_INSUBIFD 0x2000 /* currently writing a subifd */ +#define TIFF_UPSAMPLED 0x4000 /* library is doing data up-sampling */ +#define TIFF_STRIPCHOP 0x8000 /* enable strip chopping support */ + toff_t tif_diroff; /* file offset of current directory */ + toff_t tif_nextdiroff; /* file offset of following directory */ + TIFFDirectory tif_dir; /* internal rep of current directory */ + TIFFHeader tif_header; /* file's header block */ + tidata_t tif_clientdir; /* client TIFF directory */ + const int* tif_typeshift; /* data type shift counts */ + const long* tif_typemask; /* data type masks */ + uint32 tif_row; /* current scanline */ + tdir_t tif_curdir; /* current directory (index) */ + tstrip_t tif_curstrip; /* current strip for read/write */ + toff_t tif_curoff; /* current offset for read/write */ + toff_t tif_dataoff; /* current offset for writing dir */ +#if SUBIFD_SUPPORT + uint16 tif_nsubifd; /* remaining subifds to write */ + toff_t tif_subifdoff; /* offset for patching SubIFD link */ +#endif +/* tiling support */ + uint32 tif_col; /* current column (offset by row too) */ + ttile_t tif_curtile; /* current tile for read/write */ + tsize_t tif_tilesize; /* # of bytes in a tile */ +/* compression scheme hooks */ + TIFFBoolMethod tif_setupdecode;/* called once before predecode */ + TIFFPreMethod tif_predecode; /* pre- row/strip/tile decoding */ + TIFFBoolMethod tif_setupencode;/* called once before preencode */ + TIFFPreMethod tif_preencode; /* pre- row/strip/tile encoding */ + TIFFBoolMethod tif_postencode; /* post- row/strip/tile encoding */ + TIFFCodeMethod tif_decoderow; /* scanline decoding routine */ + TIFFCodeMethod tif_encoderow; /* scanline encoding routine */ + TIFFCodeMethod tif_decodestrip;/* strip decoding routine */ + TIFFCodeMethod tif_encodestrip;/* strip encoding routine */ + TIFFCodeMethod tif_decodetile; /* tile decoding routine */ + TIFFCodeMethod tif_encodetile; /* tile encoding routine */ + TIFFVoidMethod tif_close; /* cleanup-on-close routine */ + TIFFSeekMethod tif_seek; /* position within a strip routine */ + TIFFVoidMethod tif_cleanup; /* cleanup state routine */ + TIFFStripMethod tif_defstripsize;/* calculate/constrain strip size */ + TIFFTileMethod tif_deftilesize;/* calculate/constrain tile size */ + tidata_t tif_data; /* compression scheme private data */ +/* input/output buffering */ + tsize_t tif_scanlinesize;/* # of bytes in a scanline */ + tsize_t tif_scanlineskew;/* scanline skew for reading strips */ + tidata_t tif_rawdata; /* raw data buffer */ + tsize_t tif_rawdatasize;/* # of bytes in raw data buffer */ + tidata_t tif_rawcp; /* current spot in raw buffer */ + tsize_t tif_rawcc; /* bytes unread from raw buffer */ +/* memory-mapped file support */ + tidata_t tif_base; /* base of mapped file */ + toff_t tif_size; /* size of mapped file region (bytes) */ + TIFFMapFileProc tif_mapproc; /* map file method */ + TIFFUnmapFileProc tif_unmapproc;/* unmap file method */ +/* input/output callback methods */ + thandle_t tif_clientdata; /* callback parameter */ + TIFFReadWriteProc tif_readproc; /* read method */ + TIFFReadWriteProc tif_writeproc;/* write method */ + TIFFSeekProc tif_seekproc; /* lseek method */ + TIFFCloseProc tif_closeproc; /* close method */ + TIFFSizeProc tif_sizeproc; /* filesize method */ +/* post-decoding support */ + TIFFPostMethod tif_postdecode; /* post decoding routine */ +/* tag support */ + TIFFFieldInfo** tif_fieldinfo; /* sorted table of registered tags */ + int tif_nfields; /* # entries in registered tag table */ + TIFFVSetMethod tif_vsetfield; /* tag set routine */ + TIFFVGetMethod tif_vgetfield; /* tag get routine */ + TIFFPrintMethod tif_printdir; /* directory print routine */ +}; + +#define isPseudoTag(t) (t > 0xffff) /* is tag value normal or pseudo */ + +#define isTiled(tif) (((tif)->tif_flags & TIFF_ISTILED) != 0) +#define isMapped(tif) (((tif)->tif_flags & TIFF_MAPPED) != 0) +#define isFillOrder(tif, o) (((tif)->tif_flags & (o)) != 0) +#define isUpSampled(tif) (((tif)->tif_flags & TIFF_UPSAMPLED) != 0) +#define TIFFReadFile(tif, buf, size) \ + ((*(tif)->tif_readproc)((tif)->tif_clientdata,buf,size)) +#define TIFFWriteFile(tif, buf, size) \ + ((*(tif)->tif_writeproc)((tif)->tif_clientdata,buf,size)) +#define TIFFSeekFile(tif, off, whence) \ + ((*(tif)->tif_seekproc)((tif)->tif_clientdata,(toff_t)(off),whence)) +#define TIFFCloseFile(tif) \ + ((*(tif)->tif_closeproc)((tif)->tif_clientdata)) +#define TIFFGetFileSize(tif) \ + ((*(tif)->tif_sizeproc)((tif)->tif_clientdata)) +#define TIFFMapFileContents(tif, paddr, psize) \ + ((*(tif)->tif_mapproc)((tif)->tif_clientdata,paddr,psize)) +#define TIFFUnmapFileContents(tif, addr, size) \ + ((*(tif)->tif_unmapproc)((tif)->tif_clientdata,addr,size)) + +/* + * Default Read/Seek/Write definitions. + */ +#ifndef ReadOK +#define ReadOK(tif, buf, size) \ + (TIFFReadFile(tif, (tdata_t) buf, (tsize_t)(size)) == (tsize_t)(size)) +#endif +#ifndef SeekOK +#define SeekOK(tif, off) \ + (TIFFSeekFile(tif, (toff_t) off, SEEK_SET) == (toff_t) off) +#endif +#ifndef WriteOK +#define WriteOK(tif, buf, size) \ + (TIFFWriteFile(tif, (tdata_t) buf, (tsize_t) size) == (tsize_t) size) +#endif + +/* NB: the uint32 casts are to silence certain ANSI-C compilers */ +#define TIFFhowmany(x, y) ((((uint32)(x))+(((uint32)(y))-1))/((uint32)(y))) +#define TIFFroundup(x, y) (TIFFhowmany(x,y)*((uint32)(y))) + +#if defined(__cplusplus) +extern "C" { +#endif +extern int _TIFFgetMode(const char*, const char*); +extern int _TIFFNoRowEncode(TIFF*, tidata_t, tsize_t, tsample_t); +extern int _TIFFNoStripEncode(TIFF*, tidata_t, tsize_t, tsample_t); +extern int _TIFFNoTileEncode(TIFF*, tidata_t, tsize_t, tsample_t); +extern int _TIFFNoRowDecode(TIFF*, tidata_t, tsize_t, tsample_t); +extern int _TIFFNoStripDecode(TIFF*, tidata_t, tsize_t, tsample_t); +extern int _TIFFNoTileDecode(TIFF*, tidata_t, tsize_t, tsample_t); +extern void _TIFFNoPostDecode(TIFF*, tidata_t, tsize_t); +extern int _TIFFNoPreCode (TIFF*, tsample_t); +extern int _TIFFNoSeek(TIFF*, uint32); +extern void _TIFFSwab16BitData(TIFF*, tidata_t, tsize_t); +extern void _TIFFSwab32BitData(TIFF*, tidata_t, tsize_t); +extern void _TIFFSwab64BitData(TIFF*, tidata_t, tsize_t); +extern int TIFFFlushData1(TIFF*); +extern void TIFFFreeDirectory(TIFF*); +extern int TIFFDefaultDirectory(TIFF*); +extern int TIFFSetCompressionScheme(TIFF*, int); +extern int TIFFSetDefaultCompressionState(TIFF*); +extern uint32 _TIFFDefaultStripSize(TIFF*, uint32); +extern void _TIFFDefaultTileSize(TIFF*, uint32*, uint32*); + +extern void _TIFFsetByteArray(void**, void*, long); +extern void _TIFFsetString(char**, char*); +extern void _TIFFsetShortArray(uint16**, uint16*, long); +extern void _TIFFsetLongArray(uint32**, uint32*, long); +extern void _TIFFsetFloatArray(float**, float*, long); +extern void _TIFFsetDoubleArray(double**, double*, long); + +extern void _TIFFprintAscii(FILE*, const char*); +extern void _TIFFprintAsciiTag(FILE*, const char*, const char*); + +GLOBALDATA(TIFFErrorHandler,_TIFFwarningHandler); +GLOBALDATA(TIFFErrorHandler,_TIFFerrorHandler); + +extern int TIFFInitDumpMode(TIFF*, int); +#ifdef PACKBITS_SUPPORT +extern int TIFFInitPackBits(TIFF*, int); +#endif +#ifdef CCITT_SUPPORT +extern int TIFFInitCCITTRLE(TIFF*, int), TIFFInitCCITTRLEW(TIFF*, int); +extern int TIFFInitCCITTFax3(TIFF*, int), TIFFInitCCITTFax4(TIFF*, int); +#endif +#ifdef THUNDER_SUPPORT +extern int TIFFInitThunderScan(TIFF*, int); +#endif +#ifdef NEXT_SUPPORT +extern int TIFFInitNeXT(TIFF*, int); +#endif +#ifdef LZW_SUPPORT +extern int TIFFInitLZW(TIFF*, int); +#endif +#ifdef OJPEG_SUPPORT +extern int TIFFInitOJPEG(TIFF*, int); +#endif +#ifdef JPEG_SUPPORT +extern int TIFFInitJPEG(TIFF*, int); +#endif +#ifdef JBIG_SUPPORT +extern int TIFFInitJBIG(TIFF*, int); +#endif +#ifdef ZIP_SUPPORT +extern int TIFFInitZIP(TIFF*, int); +#endif +#ifdef PIXARLOG_SUPPORT +extern int TIFFInitPixarLog(TIFF*, int); +#endif +#ifdef LOGLUV_SUPPORT +extern int TIFFInitSGILog(TIFF*, int); +#endif +#ifdef VMS +extern const TIFFCodec _TIFFBuiltinCODECS[]; +#else +extern TIFFCodec _TIFFBuiltinCODECS[]; +#endif + +#if defined(__cplusplus) +} +#endif +#endif /* _TIFFIOP_ */ diff --git a/libtiff/uvcode.h b/libtiff/uvcode.h new file mode 100755 index 0000000..b2900bd --- /dev/null +++ b/libtiff/uvcode.h @@ -0,0 +1,173 @@ +/* Version 1.0 generated April 7, 1997 by Greg Ward Larson, SGI */ +#define UV_SQSIZ (float)0.003500 +#define UV_NDIVS 16289 +#define UV_VSTART (float)0.016940 +#define UV_NVS 163 +static struct { + float ustart; + short nus, ncum; +} uv_row[UV_NVS] = { + (float)0.247663, 4, 0, + (float)0.243779, 6, 4, + (float)0.241684, 7, 10, + (float)0.237874, 9, 17, + (float)0.235906, 10, 26, + (float)0.232153, 12, 36, + (float)0.228352, 14, 48, + (float)0.226259, 15, 62, + (float)0.222371, 17, 77, + (float)0.220410, 18, 94, + (float)0.214710, 21, 112, + (float)0.212714, 22, 133, + (float)0.210721, 23, 155, + (float)0.204976, 26, 178, + (float)0.202986, 27, 204, + (float)0.199245, 29, 231, + (float)0.195525, 31, 260, + (float)0.193560, 32, 291, + (float)0.189878, 34, 323, + (float)0.186216, 36, 357, + (float)0.186216, 36, 393, + (float)0.182592, 38, 429, + (float)0.179003, 40, 467, + (float)0.175466, 42, 507, + (float)0.172001, 44, 549, + (float)0.172001, 44, 593, + (float)0.168612, 46, 637, + (float)0.168612, 46, 683, + (float)0.163575, 49, 729, + (float)0.158642, 52, 778, + (float)0.158642, 52, 830, + (float)0.158642, 52, 882, + (float)0.153815, 55, 934, + (float)0.153815, 55, 989, + (float)0.149097, 58, 1044, + (float)0.149097, 58, 1102, + (float)0.142746, 62, 1160, + (float)0.142746, 62, 1222, + (float)0.142746, 62, 1284, + (float)0.138270, 65, 1346, + (float)0.138270, 65, 1411, + (float)0.138270, 65, 1476, + (float)0.132166, 69, 1541, + (float)0.132166, 69, 1610, + (float)0.126204, 73, 1679, + (float)0.126204, 73, 1752, + (float)0.126204, 73, 1825, + (float)0.120381, 77, 1898, + (float)0.120381, 77, 1975, + (float)0.120381, 77, 2052, + (float)0.120381, 77, 2129, + (float)0.112962, 82, 2206, + (float)0.112962, 82, 2288, + (float)0.112962, 82, 2370, + (float)0.107450, 86, 2452, + (float)0.107450, 86, 2538, + (float)0.107450, 86, 2624, + (float)0.107450, 86, 2710, + (float)0.100343, 91, 2796, + (float)0.100343, 91, 2887, + (float)0.100343, 91, 2978, + (float)0.095126, 95, 3069, + (float)0.095126, 95, 3164, + (float)0.095126, 95, 3259, + (float)0.095126, 95, 3354, + (float)0.088276, 100, 3449, + (float)0.088276, 100, 3549, + (float)0.088276, 100, 3649, + (float)0.088276, 100, 3749, + (float)0.081523, 105, 3849, + (float)0.081523, 105, 3954, + (float)0.081523, 105, 4059, + (float)0.081523, 105, 4164, + (float)0.074861, 110, 4269, + (float)0.074861, 110, 4379, + (float)0.074861, 110, 4489, + (float)0.074861, 110, 4599, + (float)0.068290, 115, 4709, + (float)0.068290, 115, 4824, + (float)0.068290, 115, 4939, + (float)0.068290, 115, 5054, + (float)0.063573, 119, 5169, + (float)0.063573, 119, 5288, + (float)0.063573, 119, 5407, + (float)0.063573, 119, 5526, + (float)0.057219, 124, 5645, + (float)0.057219, 124, 5769, + (float)0.057219, 124, 5893, + (float)0.057219, 124, 6017, + (float)0.050985, 129, 6141, + (float)0.050985, 129, 6270, + (float)0.050985, 129, 6399, + (float)0.050985, 129, 6528, + (float)0.050985, 129, 6657, + (float)0.044859, 134, 6786, + (float)0.044859, 134, 6920, + (float)0.044859, 134, 7054, + (float)0.044859, 134, 7188, + (float)0.040571, 138, 7322, + (float)0.040571, 138, 7460, + (float)0.040571, 138, 7598, + (float)0.040571, 138, 7736, + (float)0.036339, 142, 7874, + (float)0.036339, 142, 8016, + (float)0.036339, 142, 8158, + (float)0.036339, 142, 8300, + (float)0.032139, 146, 8442, + (float)0.032139, 146, 8588, + (float)0.032139, 146, 8734, + (float)0.032139, 146, 8880, + (float)0.027947, 150, 9026, + (float)0.027947, 150, 9176, + (float)0.027947, 150, 9326, + (float)0.023739, 154, 9476, + (float)0.023739, 154, 9630, + (float)0.023739, 154, 9784, + (float)0.023739, 154, 9938, + (float)0.019504, 158, 10092, + (float)0.019504, 158, 10250, + (float)0.019504, 158, 10408, + (float)0.016976, 161, 10566, + (float)0.016976, 161, 10727, + (float)0.016976, 161, 10888, + (float)0.016976, 161, 11049, + (float)0.012639, 165, 11210, + (float)0.012639, 165, 11375, + (float)0.012639, 165, 11540, + (float)0.009991, 168, 11705, + (float)0.009991, 168, 11873, + (float)0.009991, 168, 12041, + (float)0.009016, 170, 12209, + (float)0.009016, 170, 12379, + (float)0.009016, 170, 12549, + (float)0.006217, 173, 12719, + (float)0.006217, 173, 12892, + (float)0.005097, 175, 13065, + (float)0.005097, 175, 13240, + (float)0.005097, 175, 13415, + (float)0.003909, 177, 13590, + (float)0.003909, 177, 13767, + (float)0.002340, 177, 13944, + (float)0.002389, 170, 14121, + (float)0.001068, 164, 14291, + (float)0.001653, 157, 14455, + (float)0.000717, 150, 14612, + (float)0.001614, 143, 14762, + (float)0.000270, 136, 14905, + (float)0.000484, 129, 15041, + (float)0.001103, 123, 15170, + (float)0.001242, 115, 15293, + (float)0.001188, 109, 15408, + (float)0.001011, 103, 15517, + (float)0.000709, 97, 15620, + (float)0.000301, 89, 15717, + (float)0.002416, 82, 15806, + (float)0.003251, 76, 15888, + (float)0.003246, 69, 15964, + (float)0.004141, 62, 16033, + (float)0.005963, 55, 16095, + (float)0.008839, 47, 16150, + (float)0.010490, 40, 16197, + (float)0.016994, 31, 16237, + (float)0.023659, 21, 16268, +}; diff --git a/libtiff/version.h b/libtiff/version.h new file mode 100755 index 0000000..11b9435 --- /dev/null +++ b/libtiff/version.h @@ -0,0 +1 @@ +#define VERSION "LIBTIFF, Version 3.4beta024\nCopyright (c) 1988-1995 Sam Leffler\nCopyright (c) 1991-1995 Silicon Graphics, Inc." diff --git a/man/Makefile.in b/man/Makefile.in new file mode 100755 index 0000000..8485b84 --- /dev/null +++ b/man/Makefile.in @@ -0,0 +1,407 @@ +#! smake +# $Header: /home/cvsroot/libtiff/man/Makefile.in,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +# +# @WARNING@ +# +# Tag Image File Format Library Manual Pages +# +# Copyright (c) 1991-1997 Sam Leffler +# Copyright (c) 1991-1997 Silicon Graphics, Inc. +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Stanford and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# +SRCDIR = @RELSRCDIR@/man + +# +# VERSION: @VERSION@ +# DATE: @DATE@ +# TARGET: @TARGET@ +# CCOMPILER: @CCOMPILER@ +# +SHELL = @SCRIPT_SH@ +NULL = +ECHO = echo +SED = sed +MV = mv +RM = rm -f +INSTALL = @INSTALL@ + +# +# Manual-related controls: +# +# MAN head of manual tree +# MANAPPS subdirectory for application programs +# MANLIB subdirectory for library functions +# +MAN = @DIR_MAN@ +MANAPPS = @MANAPPS@ +MANLIB = @MANLIB@ +# +# MANSEDLOCAL additional sed commands to use during source transformation +# (might want to transform section names here) +# MANCVT command to convert source to installable target (can use +# $? and $@, but not $<) +MANSEDLOCAL = @MANSEDLOCAL@ +MANCVT = @MANCVT@ +# +# The following macros are used during the install step to generate +# the filenames of the target manual pages. They appear inside a +# shell for loop in a command of the form: +# +# f=${MAN*NAME} +# +# where the variable ``i'' contains the filename of the formatted +# manual page (formatted according to the MANCVT macro). +# +# MANAPPNAME generate installed app man page filename +# MANLIBNAME generate installed library man page filename +# +# +MANAPPNAME = @MANAPPNAME@ +MANLIBNAME = @MANLIBNAME@ + +# +# Set this up if your manual system requires a +# pathname prefix in the .so commands when setting +# up alternate files for multi-function manual pages. +# +#MANDIR = man3/ + +MANTOOLS=\ + apps/fax2tiff.1 \ + apps/fax2ps.1 \ + apps/gif2tiff.1 \ + apps/pal2rgb.1 \ + apps/ppm2tiff.1 \ + apps/ras2tiff.1 \ + apps/rgb2ycbcr.1 \ + apps/sgi2tiff.1 \ + apps/thumbnail.1 \ + apps/tiff2bw.1 \ + apps/tiff2ps.1 \ + apps/tiffcmp.1 \ + apps/tiffcp.1 \ + apps/tiffdither.1 \ + apps/tiffdump.1 \ + apps/tiffgt.1 \ + apps/tiffinfo.1 \ + apps/tiffmedian.1 \ + apps/tiffsplit.1 \ + apps/tiffsv.1 \ + ${NULL} +MANDEV=\ + lib/libtiff.3t \ + \ + lib/TIFFClose.3t \ + lib/TIFFError.3t \ + lib/TIFFFlush.3t \ + lib/TIFFGetField.3t \ + lib/TIFFOpen.3t \ + lib/TIFFPrintDirectory.3t \ + lib/TIFFReadDirectory.3t \ + lib/TIFFReadEncodedStrip.3t \ + lib/TIFFReadEncodedTile.3t \ + lib/TIFFReadRGBAImage.3t \ + lib/TIFFReadRGBAStrip.3t \ + lib/TIFFReadRGBATile.3t \ + lib/TIFFReadRawStrip.3t \ + lib/TIFFReadRawTile.3t \ + lib/TIFFReadScanline.3t \ + lib/TIFFReadTile.3t \ + lib/TIFFRGBAImage.3t \ + lib/TIFFSetDirectory.3t \ + lib/TIFFSetField.3t \ + lib/TIFFWarning.3t \ + lib/TIFFWriteDirectory.3t \ + lib/TIFFWriteEncodedStrip.3t \ + lib/TIFFWriteEncodedTile.3t \ + lib/TIFFWriteTile.3t \ + lib/TIFFWriteRawStrip.3t \ + lib/TIFFWriteRawTile.3t \ + lib/TIFFWriteScanline.3t \ + \ + lib/TIFFbuffer.3t \ + lib/TIFFcodec.3t \ + lib/TIFFmemory.3t \ + lib/TIFFquery.3t \ + lib/TIFFsize.3t \ + lib/TIFFstrip.3t \ + lib/TIFFswab.3t \ + lib/TIFFtile.3t \ + ${NULL} +MANDEVLINKS=\ + lib/TIFFmalloc.3t \ + lib/TIFFrealloc.3t \ + lib/TIFFfree.3t \ + lib/TIFFmemset.3t \ + lib/TIFFmemcpy.3t \ + lib/TIFFmemcmp.3t \ + lib/TIFFComputeTile.3t \ + lib/TIFFCheckTile.3t \ + lib/TIFFNumberOfTiles.3t \ + lib/TIFFComputeStrip.3t \ + lib/TIFFNumberOfStrips.3t \ + lib/TIFFCurrentDirectory.3t \ + lib/TIFFCurrentRow.3t \ + lib/TIFFCurrentStrip.3t \ + lib/TIFFCurrentTile.3t \ + lib/TIFFFdOpen.3t \ + lib/TIFFFileName.3t \ + lib/TIFFFileno.3t \ + lib/TIFFFindCODEC.3t \ + lib/TIFFFlushData.3t \ + lib/TIFFGetMode.3t \ + lib/TIFFIsTiled.3t \ + lib/TIFFIsByteSwapped.3t \ + lib/TIFFIsUpSampled.3t \ + lib/TIFFIsMSB2LSB.3t \ + lib/TIFFLastDirectory.3t \ + lib/TIFFRegisterCODEC.3t \ + lib/TIFFReverseBits.3t \ + lib/TIFFRGBAImageOK.3t \ + lib/TIFFRGBAImageBegin.3t \ + lib/TIFFRGBAImageGet.3t \ + lib/TIFFRGBAImageEnd.3t \ + lib/TIFFSetErrorHandler.3t \ + lib/TIFFSetSubDirectory.3t \ + lib/TIFFSetWarningHandler.3t \ + lib/TIFFSwabArrayOfLong.3t \ + lib/TIFFSwabArrayOfShort.3t \ + lib/TIFFSwabLong.3t \ + lib/TIFFSwabShort.3t \ + lib/TIFFScanlineSize.3t \ + lib/TIFFDefaultStripSize.3t \ + lib/TIFFVStripSize.3t \ + lib/TIFFStripSize.3t \ + lib/TIFFDefaultTileSize.3t \ + lib/TIFFVTileSize.3t \ + lib/TIFFTileSize.3t \ + lib/TIFFTileRowSize.3t \ + lib/TIFFUnRegisterCODEC.3t \ + lib/TIFFVGetField.3t \ + lib/TIFFVSetField.3t \ + lib/TIFFReadBufferSetup.3t \ + lib/TIFFWriteBufferSetup.3t \ + ${NULL} +TARGETS=apps/Makefile lib/Makefile + +# +# System-specific manual page formatting commands should +# apply this sed command to the manual page source before +# handing it to the formatter. This sets any pathnames +# in the man pages to reflect local conventions. +# +MANSED=${SED}\ + -e 's;\$${DIR_BIN};@DIR_BIN@;g' \ + -e 's;\$${DIR_LIB};@DIR_LIB@;g' \ + -e 's;\$${DIR_INC};@DIR_INC@;g' \ + ${MANSEDLOCAL} + +all: ${TARGETS} + +apps/fax2tiff.1:: ${SRCDIR}/fax2tiff.1; ${MANCVT} +apps/fax2ps.1:: ${SRCDIR}/fax2ps.1; ${MANCVT} +apps/gif2tiff.1:: ${SRCDIR}/gif2tiff.1; ${MANCVT} +apps/pal2rgb.1:: ${SRCDIR}/pal2rgb.1; ${MANCVT} +apps/ppm2tiff.1:: ${SRCDIR}/ppm2tiff.1; ${MANCVT} +apps/ras2tiff.1:: ${SRCDIR}/ras2tiff.1; ${MANCVT} +apps/rgb2ycbcr.1:: ${SRCDIR}/rgb2ycbcr.1; ${MANCVT} +apps/sgi2tiff.1:: ${SRCDIR}/sgi2tiff.1; ${MANCVT} +apps/thumbnail.1:: ${SRCDIR}/thumbnail.1; ${MANCVT} +apps/tiff2bw.1:: ${SRCDIR}/tiff2bw.1; ${MANCVT} +apps/tiff2ps.1:: ${SRCDIR}/tiff2ps.1; ${MANCVT} +apps/tiffcmp.1:: ${SRCDIR}/tiffcmp.1; ${MANCVT} +apps/tiffcp.1:: ${SRCDIR}/tiffcp.1; ${MANCVT} +apps/tiffdither.1:: ${SRCDIR}/tiffdither.1; ${MANCVT} +apps/tiffdump.1:: ${SRCDIR}/tiffdump.1; ${MANCVT} +apps/tiffgt.1:: ${SRCDIR}/tiffgt.1; ${MANCVT} +apps/tiffinfo.1:: ${SRCDIR}/tiffinfo.1; ${MANCVT} +apps/tiffmedian.1:: ${SRCDIR}/tiffmedian.1; ${MANCVT} +apps/tiffsplit.1:: ${SRCDIR}/tiffsplit.1; ${MANCVT} +apps/tiffsv.1:: ${SRCDIR}/tiffsv.1; ${MANCVT} + +lib/libtiff.3t:: ${SRCDIR}/libtiff.3t; ${MANCVT} +lib/TIFFClose.3t:: ${SRCDIR}/TIFFClose.3t; ${MANCVT} +lib/TIFFError.3t:: ${SRCDIR}/TIFFError.3t; ${MANCVT} +lib/TIFFFlush.3t:: ${SRCDIR}/TIFFFlush.3t; ${MANCVT} +lib/TIFFGetField.3t:: ${SRCDIR}/TIFFGetField.3t; ${MANCVT} +lib/TIFFOpen.3t:: ${SRCDIR}/TIFFOpen.3t; ${MANCVT} +lib/TIFFPrintDirectory.3t:: ${SRCDIR}/TIFFPrintDirectory.3t; ${MANCVT} +lib/TIFFReadDirectory.3t:: ${SRCDIR}/TIFFReadDirectory.3t; ${MANCVT} +lib/TIFFReadEncodedStrip.3t:: ${SRCDIR}/TIFFReadEncodedStrip.3t;${MANCVT} +lib/TIFFReadEncodedTile.3t:: ${SRCDIR}/TIFFReadEncodedTile.3t; ${MANCVT} +lib/TIFFReadRGBAImage.3t:: ${SRCDIR}/TIFFReadRGBAImage.3t; ${MANCVT} +lib/TIFFReadRGBATile.3t:: ${SRCDIR}/TIFFReadRGBATile.3t; ${MANCVT} +lib/TIFFReadRGBAStrip.3t:: ${SRCDIR}/TIFFReadRGBAStrip.3t; ${MANCVT} +lib/TIFFReadRawStrip.3t:: ${SRCDIR}/TIFFReadRawStrip.3t; ${MANCVT} +lib/TIFFReadRawTile.3t:: ${SRCDIR}/TIFFReadRawTile.3t; ${MANCVT} +lib/TIFFReadScanline.3t:: ${SRCDIR}/TIFFReadScanline.3t; ${MANCVT} +lib/TIFFReadTile.3t:: ${SRCDIR}/TIFFReadTile.3t; ${MANCVT} +lib/TIFFRGBAImage.3t:: ${SRCDIR}/TIFFRGBAImage.3t; ${MANCVT} +lib/TIFFSetDirectory.3t:: ${SRCDIR}/TIFFSetDirectory.3t; ${MANCVT} +lib/TIFFSetField.3t:: ${SRCDIR}/TIFFSetField.3t; ${MANCVT} +lib/TIFFWarning.3t:: ${SRCDIR}/TIFFWarning.3t; ${MANCVT} +lib/TIFFWriteDirectory.3t:: ${SRCDIR}/TIFFWriteDirectory.3t; ${MANCVT} +lib/TIFFWriteEncodedStrip.3t:: ${SRCDIR}/TIFFWriteEncodedStrip.3t; ${MANCVT} +lib/TIFFWriteEncodedTile.3t:: ${SRCDIR}/TIFFWriteEncodedTile.3t; ${MANCVT} +lib/TIFFWriteTile.3t:: ${SRCDIR}/TIFFWriteTile.3t; ${MANCVT} +lib/TIFFWriteRawStrip.3t:: ${SRCDIR}/TIFFWriteRawStrip.3t; ${MANCVT} +lib/TIFFWriteRawTile.3t:: ${SRCDIR}/TIFFWriteRawTile.3t; ${MANCVT} +lib/TIFFWriteScanline.3t:: ${SRCDIR}/TIFFWriteScanline.3t; ${MANCVT} +lib/TIFFbuffer.3t:: ${SRCDIR}/TIFFbuffer.3t; ${MANCVT} +lib/TIFFcodec.3t:: ${SRCDIR}/TIFFcodec.3t; ${MANCVT} +lib/TIFFmemory.3t:: ${SRCDIR}/TIFFmemory.3t; ${MANCVT} +lib/TIFFquery.3t:: ${SRCDIR}/TIFFquery.3t; ${MANCVT} +lib/TIFFsize.3t:: ${SRCDIR}/TIFFsize.3t; ${MANCVT} +lib/TIFFstrip.3t:: ${SRCDIR}/TIFFstrip.3t; ${MANCVT} +lib/TIFFswab.3t:: ${SRCDIR}/TIFFswab.3t; ${MANCVT} +lib/TIFFtile.3t:: ${SRCDIR}/TIFFtile.3t; ${MANCVT} + +lib/TIFFComputeTile.3t:; ${ECHO} ".so ${MANDIR}TIFFtile.3t" > $@ +lib/TIFFCheckTile.3t:; ${ECHO} ".so ${MANDIR}TIFFtile.3t" > $@ +lib/TIFFNumberOfTiles.3t:; ${ECHO} ".so ${MANDIR}TIFFtile.3t" > $@ +lib/TIFFComputeStrip.3t:; ${ECHO} ".so ${MANDIR}TIFFstrip.3t" > $@ +lib/TIFFNumberOfStrips.3t:; ${ECHO} ".so ${MANDIR}TIFFstrip.3t" > $@ +lib/TIFFCurrentDirectory.3t:; ${ECHO} ".so ${MANDIR}TIFFquery.3t" > $@ +lib/TIFFCurrentRow.3t:; ${ECHO} ".so ${MANDIR}TIFFquery.3t" > $@ +lib/TIFFCurrentStrip.3t:; ${ECHO} ".so ${MANDIR}TIFFquery.3t" > $@ +lib/TIFFCurrentTile.3t:; ${ECHO} ".so ${MANDIR}TIFFquery.3t" > $@ +lib/TIFFFdOpen.3t:; ${ECHO} ".so ${MANDIR}TIFFOpen.3t" > $@ +lib/TIFFFileName.3t:; ${ECHO} ".so ${MANDIR}TIFFquery.3t" > $@ +lib/TIFFFileno.3t:; ${ECHO} ".so ${MANDIR}TIFFquery.3t" > $@ +lib/TIFFFlushData.3t:; ${ECHO} ".so ${MANDIR}TIFFFlush.3t" > $@ +lib/TIFFGetMode.3t:; ${ECHO} ".so ${MANDIR}TIFFquery.3t" > $@ +lib/TIFFIsTiled.3t:; ${ECHO} ".so ${MANDIR}TIFFquery.3t" > $@ +lib/TIFFIsByteSwapped.3t:; ${ECHO} ".so ${MANDIR}TIFFquery.3t" > $@ +lib/TIFFIsUpSampled.3t:; ${ECHO} ".so ${MANDIR}TIFFquery.3t" > $@ +lib/TIFFIsMSB2LSB.3t:; ${ECHO} ".so ${MANDIR}TIFFquery.3t" > $@ +lib/TIFFLastDirectory.3t:; ${ECHO} ".so ${MANDIR}TIFFquery.3t" > $@ +lib/TIFFReverseBits.3t:; ${ECHO} ".so ${MANDIR}TIFFswab.3t" > $@ +lib/TIFFRGBAImageOK.3t:; ${ECHO} ".so ${MANDIR}TIFFRGBAImage.3t" > $@ +lib/TIFFRGBAImageBegin.3t:; ${ECHO} ".so ${MANDIR}TIFFRGBAImage.3t" > $@ +lib/TIFFRGBAImageGet.3t:; ${ECHO} ".so ${MANDIR}TIFFRGBAImage.3t" > $@ +lib/TIFFRGBAImageEnd.3t:; ${ECHO} ".so ${MANDIR}TIFFRGBAImage.3t" > $@ +lib/TIFFSetErrorHandler.3t:; ${ECHO} ".so ${MANDIR}TIFFError.3t" > $@ +lib/TIFFSetSubDirectory.3t:; ${ECHO} ".so ${MANDIR}TIFFSetDirectory.3t" > $@ +lib/TIFFSetWarningHandler.3t:; ${ECHO} ".so ${MANDIR}TIFFWarning.3t" > $@ +lib/TIFFSwabArrayOfLong.3t:; ${ECHO} ".so ${MANDIR}TIFFswab.3t" > $@ +lib/TIFFSwabArrayOfShort.3t:; ${ECHO} ".so ${MANDIR}TIFFswab.3t" > $@ +lib/TIFFSwabLong.3t:; ${ECHO} ".so ${MANDIR}TIFFswab.3t" > $@ +lib/TIFFSwabShort.3t:; ${ECHO} ".so ${MANDIR}TIFFswab.3t" > $@ +lib/TIFFScanlineSize.3t:; ${ECHO} ".so ${MANDIR}TIFFsize.3t" > $@ +lib/TIFFRasterScanlineSize.3t:; ${ECHO} ".so ${MANDIR}TIFFsize.3t" > $@ +lib/TIFFDefaultStripSize.3t:; ${ECHO} ".so ${MANDIR}TIFFstrip.3t" > $@ +lib/TIFFStripSize.3t:; ${ECHO} ".so ${MANDIR}TIFFstrip.3t" > $@ +lib/TIFFVStripSize.3t:; ${ECHO} ".so ${MANDIR}TIFFstrip.3t" > $@ +lib/TIFFTileSize.3t:; ${ECHO} ".so ${MANDIR}TIFFtile.3t" > $@ +lib/TIFFVTileSize.3t:; ${ECHO} ".so ${MANDIR}TIFFtile.3t" > $@ +lib/TIFFDefaultTileSize.3t:; ${ECHO} ".so ${MANDIR}TIFFtile.3t" > $@ +lib/TIFFTileRowSize.3t:; ${ECHO} ".so ${MANDIR}TIFFtile.3t" > $@ +lib/TIFFVGetField.3t:; ${ECHO} ".so ${MANDIR}TIFFGetField.3t" > $@ +lib/TIFFVSetField.3t:; ${ECHO} ".so ${MANDIR}TIFFSetField.3t" > $@ +lib/TIFFFindCODEC.3t:; ${ECHO} ".so ${MANDIR}TIFFcodec.3t" > $@ +lib/TIFFRegisterCODEC.3t:; ${ECHO} ".so ${MANDIR}TIFFcodec.3t" > $@ +lib/TIFFUnRegisterCODEC.3t:; ${ECHO} ".so ${MANDIR}TIFFcodec.3t" > $@ +lib/TIFFmalloc.3t:; ${ECHO} ".so ${MANDIR}TIFFmemory.3t" > $@ +lib/TIFFrealloc.3t:; ${ECHO} ".so ${MANDIR}TIFFmemory.3t" > $@ +lib/TIFFfree.3t:; ${ECHO} ".so ${MANDIR}TIFFmemory.3t" > $@ +lib/TIFFmemset.3t:; ${ECHO} ".so ${MANDIR}TIFFmemory.3t" > $@ +lib/TIFFmemcpy.3t:; ${ECHO} ".so ${MANDIR}TIFFmemory.3t" > $@ +lib/TIFFmemcmp.3t:; ${ECHO} ".so ${MANDIR}TIFFmemory.3t" > $@ +lib/TIFFReadBufferSetup.3t:; ${ECHO} ".so ${MANDIR}TIFFbuffer.3t" > $@ +lib/TIFFWriteBufferSetup.3t:; ${ECHO} ".so ${MANDIR}TIFFbuffer.3t" > $@ + +apps/Makefile: + test -d apps || mkdir apps + ${MAKE} ${MANTOOLS} + ${RM} apps/Makefile + (cd apps; \ + ${ECHO} 'install:'; \ + for i in *.1; do \ + f=${MANAPPNAME}; \ + ${ECHO} ' cd ..; ${INSTALL} -m 444 -F ${MAN}/${MANAPPS} \ + -idb tiff.man.tools -src' apps/"$$i" '-O' "$$f"; \ + done \ + )>apps/Makefile +lib/Makefile: + test -d lib || mkdir lib + ${MAKE} ${MANDEV} ${MANDEVLINKS} + ${RM} lib/Makefile + (cd lib; \ + ${ECHO} 'install:'; \ + for i in *.3t; do \ + f=${MANLIBNAME}; \ + ${ECHO} ' cd ..; ${INSTALL} -m 444 -F ${MAN}/${MANLIB} \ + -idb tiff.man.dev -src' lib/"$$i" '-O' "$$f"; \ + done \ + )>lib/Makefile + +install: all + ${INSTALL} -m 755 -dir -idb tiff.man.tools ${MAN} + ${INSTALL} -m 755 -dir -idb tiff.man.tools ${MAN}/${MANAPPS} + cd apps; ${MAKE} install + ${INSTALL} -m 755 -dir -idb tiff.man.dev ${MAN}/${MANLIB} + cd lib; ${MAKE} install + +clean: + rm -rf apps lib + +# +# Miscellaneous junk left over... +# + +links: ${MANDEVLINKS} + +short: + ${MV} TIFFClose.3t close.3t + ${MV} TIFFError.3t error.3t + ${MV} TIFFFlush.3t flush.3t + ${MV} TIFFGetField.3t getfield.3t + ${MV} TIFFOpen.3t open.3t + ${MV} TIFFPrintDirectory.3t print.3t + ${MV} TIFFReadEncodedStrip.3t rdestrip.3t + ${MV} TIFFReadencodedTile.3t rdetile.3t + ${MV} TIFFReadRawStrip.3t rdrstrip.3t + ${MV} TIFFReadRawTile.3t rdrtile.3t + ${MV} TIFFReadDirectory.3t readdir.3t + ${MV} TIFFReadRGBAImage.3t rdimage.3t + ${MV} TIFFReadRGBAStrip.3t rdsimage.3t + ${MV} TIFFReadRGBATile.3t rdtimage.3t + ${MV} TIFFReadScanline.3t readline.3t + ${MV} TIFFReadTile.3t readtile.3t + ${MV} TIFFRGBAImage.3t rgbaimage.3t + ${MV} TIFFSetDirectory.3t setdir.3t + ${MV} TIFFSetField.3t setfield.3t + ${MV} TIFFWarning.3t warning.3t + ${MV} TIFFWriteEncodedStrip.3t wrestrip.3t + ${MV} TIFFWriteEncodedTile.3t wretile.3t + ${MV} TIFFWriteTile.3t wrttile.3t + ${MV} TIFFWriteDirectory.3t writedir.3t + ${MV} TIFFWriteRawStrip.3t wrrstrip.3t + ${MV} TIFFWriteRawTile.3t wrrtile.3t + ${MV} TIFFWriteScanline.3t writeline.3t + ${MV} TIFFtile.3t tile.3t + ${MV} TIFFstrip.3t strip.3t + ${MV} TIFFquery.3t query.3t + ${MV} TIFFswab.3t swab.3t + ${MV} TIFFsize.3t size.3t + ${MV} TIFFcodec.3t codec.3t + ${MV} TIFFmemory.3t memory.3t + ${MV} TIFFbuffer.3t buffer.3t diff --git a/man/TIFFClose.3t b/man/TIFFClose.3t new file mode 100755 index 0000000..c082d49 --- /dev/null +++ b/man/TIFFClose.3t @@ -0,0 +1,51 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFClose.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFClose 3T "May 2, 1990" +.SH NAME +TIFFClose \- close a previously opened +.SM TIFF +file +.SH SYNOPSIS +.B "#include " +.br +.B "void TIFFClose(TIFF* tif)" +.SH DESCRIPTION +.IR TIFFClose +closes a file that was previously opened with +.IR TIFFOpen (3T). +Any buffered data are flushed to the file, including the contents of +the current directory (if modified); and all resources +are reclaimed. +.SH DIAGNOSTICS +All error messages are directed to the +.IR TIFFError (3T) +routine. +Likewise, warning messages are directed to the +.IR TIFFWarning (3T) +routine. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFOpen (3T) diff --git a/man/TIFFError.3t b/man/TIFFError.3t new file mode 100755 index 0000000..6e816df --- /dev/null +++ b/man/TIFFError.3t @@ -0,0 +1,69 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFError.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFError 3T "October 15, 1995" +.SH NAME +TIFFError, TIFFSetErrorHandler \- library error handling interface +.SH SYNOPSIS +.B "#include " +.br +.B "void TIFFError(const char* module, const char* fmt, ...)" +.sp .5 +.B "#include " +.br +.B "typedef void (*TIFFErrorHandler)(const char* module, const char* fmt, va_list ap);" +.br +.B "TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler handler);" +.SH DESCRIPTION +.I TIFFError +invokes the library-wide error handling function +to (normally) write an error message to the +.BR stderr . +The +.I fmt +parameter is a +.IR printf (3S) +format string, and any number arguments can be supplied. +The +.I module +parameter, if non-zero, is printed before the message; it typically +is used to identify the software module in which an error +is detected. +.PP +Applications that desire to capture control in the event of an error +should use +.IR TIFFSetErrorHandler +to override the default error handler. +A +.SM NULL +(0) error handling function may be installed to +suppress error messages. +.SH "RETURN VALUES" +.IR TIFFSetErrorHandler +returns a reference to the previous error handling function. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFWarning (3T), +.IR printf (3S) diff --git a/man/TIFFFlush.3t b/man/TIFFFlush.3t new file mode 100755 index 0000000..071ab24 --- /dev/null +++ b/man/TIFFFlush.3t @@ -0,0 +1,64 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFFlush.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFFlush 3T "December 16, 1991" +.SH NAME +TIFFFlush, TIFFFlushData \- flush pending writes to an open +.SM TIFF +file +.SH SYNOPSIS +.B "#include " +.br +.B "int TIFFFlush(TIFF* tif)" +.br +.B "int TIFFFlushData(TIFF* tif)" +.SH DESCRIPTION +.IR TIFFFlush +causes any pending writes for the specified file (including writes +for the current directory) +to be done. +In normal operation this call is never needed\- the library +automatically does any flushing required. +.PP +.IR TIFFFlushData +flushes any pending image data for the specified file to be written out; +directory-related data are not flushed. +In normal operation this call is never needed\- the library +automatically does any flushing required. +.SH "RETURN VALUES" +0 is returned if an error is encountered, otherwise 1 is returned. +.SH DIAGNOSTICS +All error messages are directed to the +.IR TIFFError (3T) +routine. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFOpen (3T), +.IR TIFFWriteEncodedStrip (3T), +.IR TIFFWriteEncodedTile (3T), +.IR TIFFWriteRawStrip (3T), +.IR TIFFWriteRawTile (3T), +.IR TIFFWriteScanline (3T), +.IR TIFFWriteTile (3T) diff --git a/man/TIFFGetField.3t b/man/TIFFGetField.3t new file mode 100755 index 0000000..7ec16ba --- /dev/null +++ b/man/TIFFGetField.3t @@ -0,0 +1,210 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFGetField.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFGetField 3T "August 22, 1997" +.SH NAME +TIFFGetField, TIFFVGetField \- get the value(s) of a tag in an open +.SM TIFF +file +.SH SYNOPSIS +.B "#include " +.br +.B "int TIFFGetField(TIFF* tif, ttag_t tag, ...)" +.sp 5p +.B "#include " +.br +.B "int TIFFVGetField(TIFF* tif, ttag_t tag, va_list ap)" +.sp 5p +.B "int TIFFGetFieldDefaulted(TIFF* tif, ttag_t tag, ...)" +.br +.B "int TIFFVGetFieldDefaulted(TIFF* tif, ttag_t tag, va_list ap)" +.SH DESCRIPTION +.IR TIFFGetField +returns the value of a tag or pseudo-tag associated with the +the current directory of the open +.SM TIFF +file +.IR tif . +(A +.I pseudo-tag +is a parameter that is used to control the operation of the +.SM TIFF +library but whose value is not read or written to the underlying file.) +The file must have been previously opened with +.IR TIFFOpen (3T). +The tag is identified by +.IR tag , +one of the values defined in the include file +.B tiff.h +(see also the table below). +The type and number of values returned is dependent +on the tag being requested. +The programming interface uses a variable argument list +as prescribed by the +.IR stdarg (3) +interface. +The returned values should only be interpreted if +.IR TIFFGetField +returns 1. +.PP +.IR TIFFVGetField +is functionally equivalent to +.IR TIFFGetField +except that it takes a pointer to a variable +argument list. +.I TIFFVGetField +is useful for layering interfaces on top of +the functionality provided by +.IR TIFFGetField . +.PP +.IR TIFFGetFieldDefaulted +and +.IR TIFFVGetFieldDefaulted +are identical to +.IR TIFFGetField +and +.IR TIFFVGetField , +except that if a tag is not defined in the current directory +and it has a default value, then the default value is returned. +.PP +The tags understood by +.IR libtiff , +the number of parameter values, and the +types for the returned values are shown below. +The data types are specified as in C and correspond +to the types used to specify tag values to +.IR TIFFSetField (3T). +Remember that +.IR TIFFGetField +returns parameter values, so all the listed +data types are pointers to storage where values +should be returned. +Consult the +.SM TIFF +specification for information on the meaning of +each tag and their possible values. +.PP +.nf +.ta \w'TIFFTAG_CONSECUTIVEBADFAXLINES'u+2n +\w'Count'u+2n +\w'TIFFFaxFillFunc*'u+2n +\fITag Name\fP \fICount\fP \fITypes\fP \fINotes\fP +.sp 5p +TIFFTAG_ARTIST 1 char** +TIFFTAG_BADFAXLINES 1 uint32* +TIFFTAG_BITSPERSAMPLE 1 uint16* +TIFFTAG_CLEANFAXDATA 1 uint16* +TIFFTAG_COLORMAP 3 uint16** 1<" +.B "TIFF* TIFFOpen(const char* filename, const char* mode)" +.sp 5p +.B "TIFF* TIFFFdOpen(const int fd, const char* filename, const char* mode)" +.sp 5p +.B "typedef tsize_t (*TIFFReadWriteProc)(thandle_t, tdata_t, tsize_t);" +.B "typedef toff_t (*TIFFSeekProc)(thandle_t, toff_t, int);" +.B "typedef int (*TIFFCloseProc)(thandle_t);" +.B "typedef toff_t (*TIFFSizeProc)(thandle_t);" +.B "typedef int (*TIFFMapFileProc)(thandle_t, tdata_t*, toff_t*);" +.B "typedef void (*TIFFUnmapFileProc)(thandle_t, tdata_t, toff_t);" +.sp 5p +.B "TIFF* TIFFClientOpen(const char* filename, const char* mode, thandle_t clientdata," +.B " TIFFReadWriteProc readproc, TIFFReadWriteProc writeproc, TIFFSeekProc seekproc," +.B " TIFFCloseProc closeproc, TIFFSizeProc sizeproc, TIFFMapFileProc mapproc," +.B " TIFFUnmapFileProc unmapproc)" +.fi +.SH DESCRIPTION +.IR TIFFOpen +opens a +.SM TIFF +file whose name is +.I filename +and returns a handle to be used in subsequent calls to routines in +.IR libtiff . +If the open operation fails, then zero is returned. +The +.I mode +parameter specifies if the file is to be opened for reading (``r''), +writing (``w''), or appending (``a'') and, optionally, whether +to override certain default aspects of library operation (see below). +When a file is opened for appending, existing data will not +be touched; instead new data will be written as additional subfiles. +If an existing file is opened for writing, all previous data is +overwritten. +.PP +If a file is opened for reading, the first +.SM TIFF +directory in the file is automatically read +(also see +.IR TIFFSetDirectory (3T) +for reading directories other than the first). +If a file is opened for writing or appending, a default directory +is automatically created for writing subsequent data. +This directory has all the default values specified in +.SM TIFF +Revision 6.0: +.IR BitsPerSample =1, +.IR ThreshHolding "=bilevel art scan," +.IR FillOrder =1 +(most significant bit of each data byte is filled first), +.IR Orientation =1 +(the 0th row represents the visual top of the image, and the 0th +column represents the visual left hand side), +.IR SamplesPerPixel =1, +.IR RowsPerStrip =infinity, +.IR ResolutionUnit =2 +(inches), and +.IR Compression =1 +(no compression). +To alter these values, or to define values for additional fields, +.IR TIFFSetField (3T) +must be used. +.PP +.IR TIFFFdOpen +is like +.IR TIFFOpen +except that it opens a +.SM TIFF +file given an open file descriptor +.IR fd . +The file's name and mode must reflect that of the open descriptor. +The object associated with the file descriptor +.BR "must support random access" . +.PP +.IR TIFFClientOpen +is like +.IR TIFFOpen +except that the caller supplies a collection of functions that the +library will use to do \s-1UNIX\s+1-like I/O operations. +The +.I readproc +and +.I writeproc +are called to read and write data at the current file position. +.I seekproc +is called to change the current file position a la +.IR lseek (2). +.I closeproc +is invoked to release any resources associated with an open file. +.I sizeproc +is invoked to obtain the size in bytes of a file. +.I mapproc +and +.I unmapproc +are called to map and unmap a file's contents in memory; c.f. +.IR mmap (2) +and +.IR munmap (2). +The +.I clientdata +parameter is an opaque ``handle'' passed to the client-specified +routines passed as parameters to +.IR TIFFClientOpen . +.SH OPTIONS +The open mode parameter can include the following flags in +addition to the ``r'', ``w'', and ``a'' flags. +Note however that option flags must follow the read-write-append +specification. +.TP +.B l +When creating a new file force information be written with +Little-Endian byte order (but see below). +By default the library will create new files using the native +.SM CPU +byte order. +.TP +.B b +When creating a new file force information be written with +Big-Endian byte order (but see below). +By default the library will create new files using the native +.SM CPU +byte order. +.TP +.B L +Force image data that is read or written to be treated with +bits filled from Least Significant Bit (\s-1LSB\s+1) to +Most Significant Bit (\s-1MSB\s+1). +Note that this is the opposite to the way the library has +worked from its inception. +.TP +.B B +Force image data that is read or written to be treated with +bits filled from Most Significant Bit (\s-1MSB\s+1) to +Least Significant Bit (\s-1LSB\s+1); this is the default. +.TP +.B H +Force image data that is read or written to be treated with +bits filled in the same order as the native +.SM CPU. +.TP +.B M +Enable the use of memory-mapped files for images opened read-only. +If the underlying system does not support memory-mapped files +or if the specific image being opened cannot be memory-mapped +then the library will fallback to using the normal system interface +for reading information. +By default the library will attempt to use memory-mapped files. +.TP +.B m +Disable the use of memory-mapped files. +.TP +.B C +Enable the use of ``strip chopping'' when reading images +that are comprised of a single strip or tile of uncompressed data. +Strip chopping is a mechanism by which the library will automatically +convert the single-strip image to multiple strips, +each of which has about 8 Kilobytes of data. +This facility can be useful in reducing the amount of memory used +to read an image because the library normally reads each strip +in its entirety. +Strip chopping does however alter the apparent contents of the +image because when an image is divided into multiple strips it +looks as though the underlying file contains multiple separate +strips. +Finally, note that default handling of strip chopping is a compile-time +configuration parameter. +The default behaviour, for backwards compatibility, is to enable +strip chopping. +.TP +.B c +Disable the use of strip chopping when reading images. +.SH "BYTE ORDER" +The +.SM TIFF +specification (\fBall versions\fP) states that compliant readers +.IR "must be capable of reading images written in either byte order" . +Nonetheless some software that claims to support the reading of +.SM TIFF +images is incapable of reading images in anything but the native +.SM CPU +byte order on which the software was written. +(Especially notorious +are applications written to run on Intel-based machines.) +By default the library will create new files with the native +byte-order of the +.SM CPU +on which the application is run. +This ensures optimal performance and is portable to any application +that conforms to the TIFF specification. +To force the library to use a specific byte-order when creating +a new file the ``b'' and ``l'' option flags may be included in +the call to open a file; for example, ``wb'' or ``wl''. +.SH "RETURN VALUES" +Upon successful completion +.IR TIFFOpen , +.IR TIFFFdOpen , +and +.IR TIFFClientOpen +return a +.SM TIFF +pointer. +Otherwise, NULL is returned. +.SH DIAGNOSTICS +All error messages are directed to the +.IR TIFFError (3T) +routine. +Likewise, warning messages are directed to the +.IR TIFFWarning (3T) +routine. +.PP +\fB"%s": Bad mode\fP. +The specified +.I mode +parameter was not one of ``r'' (read), ``w'' (write), or ``a'' (append). +.PP +.BR "%s: Cannot open" . +.IR TIFFOpen () +was unable to open the specified filename for read/writing. +.PP +.BR "Cannot read TIFF header" . +An error occurred while attempting to read the header information. +.PP +.BR "Error writing TIFF header" . +An error occurred while writing the default header information +for a new file. +.PP +.BR "Not a TIFF file, bad magic number %d (0x%x)" . +The magic number in the header was not (hex) +0x4d4d or (hex) 0x4949. +.PP +.BR "Not a TIFF file, bad version number %d (0x%x)" . +The version field in the header was not 42 (decimal). +.PP +.BR "Cannot append to file that has opposite byte ordering" . +A file with a byte ordering opposite to the native byte +ordering of the current machine was opened for appending (``a''). +This is a limitation of the library. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFClose (3T) diff --git a/man/TIFFPrintDirectory.3t b/man/TIFFPrintDirectory.3t new file mode 100755 index 0000000..5ccd9e6 --- /dev/null +++ b/man/TIFFPrintDirectory.3t @@ -0,0 +1,71 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFPrintDirectory.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1991-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFPrintDirectory 3T "December 12, 1991" +.SH NAME +TIFFPrintDirectory \- print a description of a +.SM TIFF +directory +.SH SYNOPSIS +.B "#include " +.br +.B "void TIFFPrintDirectory(TIFF* tif, FILE* fd, long flags)" +.SH DESCRIPTION +.I TIFFPrintDirectory +prints a description of the current directory in the specified +.SM TIFF +file to the standard I/O output stream +.IR fd . +The +.I flags +parameter is used to control the +.I "level of detail" +of the printed information; it is a bit-or of the flags +defined in +.BR tiffio.h : +.sp .5 +.nf +.ta \w'#define 'u +\w'TIFFPRINT_JPEGDCTABLES 'u +\w'0x200 'u +#define TIFFPRINT_NONE 0x0 /* no extra info */ +#define TIFFPRINT_STRIPS 0x1 /* strips/tiles info */ +#define TIFFPRINT_CURVES 0x2 /* color/gray response curves */ +#define TIFFPRINT_COLORMAP 0x4 /* colormap */ +#define TIFFPRINT_JPEGQTABLES 0x100 /* JPEG Q matrices */ +#define TIFFPRINT_JPEGACTABLES 0x200 /* JPEG AC tables */ +#define TIFFPRINT_JPEGDCTABLES 0x200 /* JPEG DC tables */ +.fi +.SH NOTES +In C++ the +.I flags +parameter defaults to 0. +.SH "RETURN VALUES" +None. +.SH DIAGNOSTICS +None. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFOpen (3T), +.IR TIFFReadDirectory (3T), +.IR TIFFSetDirectory (3T) diff --git a/man/TIFFRGBAImage.3t b/man/TIFFRGBAImage.3t new file mode 100755 index 0000000..b184aad --- /dev/null +++ b/man/TIFFRGBAImage.3t @@ -0,0 +1,277 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFRGBAImage.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1991-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFRGBAImage 3T "October 15, 1995" +.SH NAME +TIFFRGBAImage \- read and decode an image into a raster +.SH SYNOPSIS +.nf +.B "#include " +.B "typedef unsigned char TIFFRGBValue;" +.B "typedef struct _TIFFRGBAImage TIFFRGBAImage;" +.B "int TIFFRGBAImageOK(TIFF* tif, char emsg[1024]);" +.B "int TIFFRGBAImageBegin(TIFFRGBAImage* img, TIFF* tif, int stopOnError, char emsg[1024]);" +.B "int TIFFRGBAImageGet(TIFFRGBAImage* img, uint32* raster, uint32 width, uint32 height);" +.B "void TIFFRGBAImageEnd(TIFFRGBAImage* img);" +.SH DESCRIPTION +The routines described here provide a high-level interface +through which +.SM TIFF +images may be read into memory. +Images may be strip- or tile-based and have a variety of different +characteristics: bits/sample, samples/pixel, photometric, etc. +Decoding state is encapsulated in a +.I TIFFRGBAImage +structure making it possible to capture state for multiple images +and quickly switch between them. +The target raster format can be customized to a particular application's +needs by installing custom routines that manipulate image data +according to application requirements. +.PP +The default usage for these routines is: check if an image can +be processed using +.IR TIFFRGBAImageOK , +construct a decoder state block using +.IR TIFFRGBAImageBegin , +read and decode an image into a target raster using +.IR TIFFRGBAImageGet , +and then +release resources using +.IR TIFFRGBAImageEnd . +.I TIFFRGBAImageGet +can be called multiple times to decode an image using different +state parameters. +If multiple images are to be displayed and there is not enough +space for each of the decoded rasters, multiple state blocks can +be managed and then calls can be made to +.I TIFFRGBAImageGet +as needed to display an image. +.PP +The generated raster is assumed to be an array of +.I width +times +.I height +32-bit entries, where +.I width +must be less than or equal to the width of the image (\c +.I height +may be any non-zero size). +If the raster dimensions are smaller than the image, the image data +is cropped to the raster bounds. +If the raster height is greater than that of the image, then the +image data are placed in the lower part of the raster. +(Note that the raster is assume to be organized such that the pixel +at location (\fIx\fP,\fIy\fP) is \fIraster\fP[\fIy\fP*\fIwidth\fP+\fIx\fP]; +with the raster origin in the lower-left hand corner.) +.PP +Raster pixels are 8-bit packed red, green, blue, alpha samples. +The macros +.IR TIFFGetR , +.IR TIFFGetG , +.IR TIFFGetB , +and +.I TIFFGetA +should be used to access individual samples. +Images without Associated Alpha matting information have a constant +Alpha of 1.0 (255). +.PP +.I TIFFRGBAImageGet +converts non-8-bit images by scaling sample values. +Palette, grayscale, bilevel, +.SM CMYK\c +, and YCbCr images are converted to +.SM RGB +transparently. +Raster pixels are returned uncorrected by any colorimetry information +present in the directory. +.PP +The paramater +.I stopOnError +specifies how to act if an error is encountered while reading +the image. +If +.I stopOnError +is non-zero, then an error will terminate the operation; otherwise +.I TIFFRGBAImageGet +will continue processing data until all the possible data in the +image have been requested. +.SH "ALTERNATE RASTER FORMATS" +To use the core support for reading and processing +.SM TIFF +images, but write the resulting raster data in a different format +one need only override the ``\fIput methods\fP'' used to store raster data. +These methods are are defined in the +.I TIFFRGBAImage +structure and initially setup by +.I TIFFRGBAImageBegin +to point to routines that pack raster data in the default +.SM ABGR +pixel format. +Two different routines are used according to the physical organization +of the image data in the file: +.IR PlanarConfiguration =1 +(packed samples), +and +.IR PlanarConfiguration =2 +(separated samples). +Note that this mechanism can be used to transform the data before +storing it in the raster. +For example one can convert data +to colormap indices for display on a colormap display. +.SH "SIMULTANEOUS RASTER STORE AND DISPLAY" +It is simple to display an image as it is being read into memory +by overriding the put methods as described above for supporting +alternate raster formats. +Simply keep a reference to the default put methods setup by +.I TIFFRGBAImageBegin +and then invoke them before or after each display operation. +For example, the +.IR tiffgt (1) +utility uses the following put method to update the display as +the raster is being filled: +.sp +.nf +.ft C +static void +putContigAndDraw(TIFFRGBAImage* img, uint32* raster, + uint32 x, uint32 y, uint32 w, uint32 h, + int32 fromskew, int32 toskew, + unsigned char* cp) +{ + (*putContig)(img, raster, x, y, w, h, fromskew, toskew, cp); + if (x+w == width) { + w = width; + if (img->orientation == ORIENTATION_TOPLEFT) + lrectwrite(0, y-(h-1), w-1, y, raster-x-(h-1)*w); + else + lrectwrite(0, y, w-1, y+h-1, raster); + } +} +.ft R +.fi +.sp +(the original routine provided by the library is saved in the +variable +.IR putContig .) +.SH "SUPPORTING ADDITIONAL TIFF FORMATS" +The +.I TIFFRGBAImage +routines support the most commonly encountered flavors of +.SM TIFF. +It is possible to extend this support by overriding the ``\fIget method\fP'' +invoked by +.I TIFFRGBAImageGet +to read +.SM TIFF +image data. +Details of doing this are a bit involved, it is best to make a copy +of an existing get method and modify it to suit the needs of an +application. +.SH NOTES +Samples must be either 1, 2, 4, 8, or 16 bits. +Colorimetric samples/pixel must be either 1, 3, or 4 (i.e. +.I SamplesPerPixel +minus +.IR ExtraSamples ). +.PP +Palettte image colormaps that appear to be incorrectly written +as 8-bit values are automatically scaled to 16-bits. +.SH "RETURN VALUES" +All routines return +1 if the operation was successful. +Otherwise, 0 is returned if an error was encountered and +.I stopOnError +is zero. +.SH DIAGNOSTICS +All error messages are directed to the +.IR TIFFError (3T) +routine. +.PP +.BR "Sorry, can not handle %d-bit pictures" . +The image had +.I BitsPerSample +other than 1, 2, 4, 8, or 16. +.PP +.BR "Sorry, can not handle %d-channel images" . +The image had +.I SamplesPerPixel +other than 1, 3, or 4. +.PP +\fBMissing needed "PhotometricInterpretation" tag\fP. +The image did not have a tag that describes how to display +the data. +.PP +\fBNo "PhotometricInterpretation" tag, assuming RGB\fP. +The image was missing a tag that describes how to display it, +but because it has 3 or 4 samples/pixel, it is assumed to be +.SM RGB. +.PP +\fBNo "PhotometricInterpretation" tag, assuming min-is-black\fP. +The image was missing a tag that describes how to display it, +but because it has 1 sample/pixel, it is assumed to be a grayscale +or bilevel image. +.PP +.BR "No space for photometric conversion table" . +There was insufficient memory for a table used to convert +image samples to 8-bit +.SM RGB. +.PP +\fBMissing required "Colormap" tag\fP. +A Palette image did not have a required +.I Colormap +tag. +.PP +.BR "No space for tile buffer" . +There was insufficient memory to allocate an i/o buffer. +.PP +.BR "No space for strip buffer" . +There was insufficient memory to allocate an i/o buffer. +.PP +.BR "Can not handle format" . +The image has a format (combination of +.IR BitsPerSample , +.IR SamplesPerPixel , +and +.IR PhotometricInterpretation ) +that can not be handled. +.PP +.BR "No space for B&W mapping table" . +There was insufficient memory to allocate a table used to map +grayscale data to +.SM RGB. +.PP +.BR "No space for Palette mapping table" . +There was insufficient memory to allocate a table used to map +data to 8-bit +.SM RGB. +.SH BUGS +Orientations other than bottom-left, or top-left are +not handled correctly. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFOpen (3T), +.IR TIFFReadRGBAImage (3T), +.IR TIFFReadRGBAStrip (3T), +.IR TIFFReadRGBATile (3T) diff --git a/man/TIFFReadDirectory.3t b/man/TIFFReadDirectory.3t new file mode 100755 index 0000000..a6a5368 --- /dev/null +++ b/man/TIFFReadDirectory.3t @@ -0,0 +1,164 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFReadDirectory.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFReadDirectory 3T "October 15, 1995" +.SH NAME +TIFFReadDirectory \- get the contents of the next directory in an open +.SM TIFF +file +.SH SYNOPSIS +.B "#include " +.br +.B "int TIFFReadDirectory(TIFF* tif)" +.SH DESCRIPTION +Read the next directory in the specified file and make it the +current directory. +Applications only need to call +.I TIFFReadDirectory +to read multiple subfiles in a single +.SM TIFF +file\(em +the first directory in a file is automatically read when +.IR TIFFOpen +is called. +.SH NOTES +If the library is compiled with +.SM STRIPCHOP_SUPPORT +enabled, then images that have a single uncompressed strip or +tile of data are automatically treated as if they were made +up of multiple strips or tiles of approximately 8 kilobytes each. +This operation is done only in-memory; it does not alter the +contents of the file. +However, the construction of the ``chopped strips'' is visible +to the application through the number of strips [tiles] +returned by +.I TIFFNumberOfStrips +[\c +.IR TIFFNumberOfTiles ]. +.SH "RETURN VALUES" +If the next directory was successfully read, 1 is returned. +Otherwise, 0 is returned if an error was encountered, +or if there are no more directories to be read. +.SH DIAGNOSTICS +All error messages are directed to the +.IR TIFFError (3T) +routine. +All warning messages are directed to the +.IR TIFFWarning (3T) +routine. +.PP +\fBSeek error accessing TIFF directory\fP. +An error occurred while positioning to the location of the +directory. +.PP +\fBWrong data type %d for field "%s"\fP. +The tag entry in the directory had an incorrect data type. +For example, an +.I ImageDescription +tag with a +.SM SHORT +data type. +.PP +\fBTIFF directory is missing required "%s" field\fP. +The specified tag is required to be present by the +.SM TIFF +5.0 specification, but is missing. +The directory is (usually) unusable. +.PP +\fB%s: Rational with zero denominator\fP. +A directory tag has a +.SM RATIONAL +value whose denominator is zero. +.PP +\fBIncorrect count %d for field "%s" (%lu, expecting %lu); tag ignored\fP. +The specified tag's count field is bad. +For example, a count other than 1 for a +.I SubFileType +tag. +.PP +\fBCannot handle different per-sample values for field "%s"\fP. +The tag has +.I SamplesPerPixel +values and they are not all the same; e.g. +.IR BitsPerSample . +The library is unable to handle images of this sort. +.PP +\fBCount mismatch for field "%s"; expecting %d, got %d\fP. +The count field in a +tag does not agree with the number expected by the library. +This should never happen, so if it does, the library refuses to +read the directory. +.PP +\fBInvalid TIFF directory; tags are not sorted in ascending order\fP. +The directory tags are not properly sorted as specified +in the +.SM TIFF +5.0 specification. +This error is not fatal. +.PP +\fBIgnoring unknown field with tag %d (0x%x)\fP. +An unknown tag was encountered in the directory; +the library ignores all such tags. +.PP +\fBTIFF directory is missing requred "ImageLength" field\fP. +The image violates the specification by not having a necessary field. +There is no way for the library to recover from this error. +.PP +\fBTIFF directory is missing requred "PlanarConfig" field\fP. +The image violates the specification by not having a necessary field. +There is no way for the library to recover from this error. +.PP +\fBTIFF directory is missing requred "StripOffsets" field\fP. +The image has multiple strips, but is missing the tag that +specifies the file offset to each strip of data. +There is no way for the library to recover from this error. +.PP +\fBTIFF directory is missing requred "TileOffsets" field\fP. +The image has multiple tiles, but is missing the tag that +specifies the file offset to each tile of data. +There is no way for the library to recover from this error. +.PP +\fBTIFF directory is missing required "StripByteCounts" field\fP. +The image has multiple strips, but is missing the tag that +specifies the size of each strip of data. +There is no way for the library to recover from this error. +.PP +\fBTIFF directory is missing required "StripByteCounts" field, calculating from imagelength\fP. +The image violates the specification by not having a necessary field. +However, when the image is comprised of only one strip or tile, the +library will estimate the missing value based on the file size. +.PP +\fBBogus "StripByteCounts" field, ignoring and calculating from imagelength\fP. +Certain vendors violate the specification by writing zero for +the StripByteCounts tag when they want to leave the value +unspecified. +If the image has a single strip, the library will estimate +the missing value based on the file size. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFOpen (3T), +.IR TIFFWriteDirectory (3T), +.IR TIFFSetDirectory (3T), +.IR TIFFSetSubDirectory (3T) diff --git a/man/TIFFReadEncodedStrip.3t b/man/TIFFReadEncodedStrip.3t new file mode 100755 index 0000000..214860c --- /dev/null +++ b/man/TIFFReadEncodedStrip.3t @@ -0,0 +1,73 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFReadEncodedStrip.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFReadEncodedStrip 3T "October 15, 1995" +.SH NAME +TIFFReadEncodedStrip \- read and decode a strip of data from an open +.SM TIFF +file +.SH SYNOPSIS +.B "#include " +.br +.B "tsize_t TIFFReadEncodedStrip(TIFF* tif, tstrip_t strip, tdata_t buf, tsize_t size)" +.SH DESCRIPTION +Read the specified strip of data and place up to +.I size +bytes of decompressed information in the (user supplied) data buffer. +.SH NOTES +The value of +.I strip +is a ``raw strip number.'' +That is, the caller must take into account whether or not the +data are organized in separate planes (\c +.IR PlanarConfiguration =2). +To read a full strip of data the data buffer should typically be +at least as large as the number returned by +.IR TIFFStripSize (3T). +.PP +The library attempts to hide bit- and byte-ordering differences +between the image and the native machine by converting data +to the native machine order. +Bit reversal is done if the +.I FillOrder +tag is opposite to the native machine bit order. +16- and 32-bit samples are automatically byte-swapped if the +file was written with a byte order opposite to the native +machine byte order, +.SH "RETURN VALUES" +The actual number of bytes of data that were placed in +.I buf +is returned; +.IR TIFFReadEncodedStrip +returns \-1 if an error was encountered. +.SH DIAGNOSTICS +All error messages are directed to the +.IR TIFFError (3T) +routine. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFOpen (3T), +.IR TIFFReadRawStrip (3T), +.IR TIFFReadScanline (3T) diff --git a/man/TIFFReadEncodedTile.3t b/man/TIFFReadEncodedTile.3t new file mode 100755 index 0000000..f5aacf8 --- /dev/null +++ b/man/TIFFReadEncodedTile.3t @@ -0,0 +1,76 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFReadEncodedTile.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFReadEncodedTile 3T "October 15, 1995" +.SH NAME +TIFFReadEncodedTile \- read and decode a tile of data from an open +.SM TIFF +file +.SH SYNOPSIS +.B "#include " +.br +.B "int TIFFReadEncodedTile(TIFF* tif, u_long tile, u_char* buf, u_long size)" +.SH DESCRIPTION +Read the specified tile of data and place up to +.I size +bytes of decompressed information in the (user supplied) data buffer. +.SH NOTES +The value of +.I tile +is a ``raw tile number.'' +That is, the caller must take into account whether or not the +data are organized in separate planes (\c +.IR PlanarConfiguration =2). +.IR TIFFComputeTile +automatically does this when converting an (x,y,z,sample) +coordinate quadruple to a tile number. +To read a full tile of data the data buffer should be +at least as large as the value returned by +.IR TIFFTileSize . +.PP +The library attempts to hide bit- and byte-ordering differences +between the image and the native machine by converting data +to the native machine order. +Bit reversal is done if the +.I FillOrder +tag is opposite to the native machine bit order. +16- and 32-bit samples are automatically byte-swapped if the +file was written with a byte order opposite to the native +machine byte order, +.SH "RETURN VALUES" +The actual number of bytes of data that were placed in +.I buf +is returned; +.IR TIFFReadEncodedTile +returns \-1 if an error was encountered. +.SH DIAGNOSTICS +All error messages are directed to the +.IR TIFFError (3T) +routine. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFOpen (3T), +.IR TIFFReadRawTile (3T), +.IR TIFFReadTile (3T) diff --git a/man/TIFFReadRGBAImage.3t b/man/TIFFReadRGBAImage.3t new file mode 100755 index 0000000..792ba5c --- /dev/null +++ b/man/TIFFReadRGBAImage.3t @@ -0,0 +1,187 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFReadRGBAImage.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1991-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFReadRGBAImage 3T "February 14, 1992" +.SH NAME +TIFFReadRGBAImage \- read and decode an image into a fixed-format raster +.SH SYNOPSIS +.nf +.B "#include " +.ta \w'\fB#define \fP'u +\w'\fBTIFFGetR(abgr) \fP'u +.B "#define TIFFGetR(abgr) ((abgr) & 0xff)" +.B "#define TIFFGetG(abgr) (((abgr) >> 8) & 0xff)" +.B "#define TIFFGetB(abgr) (((abgr) >> 16) & 0xff)" +.B "#define TIFFGetA(abgr) (((abgr) >> 24) & 0xff)" +.sp 5p +.B "int TIFFReadRGBAImage(TIFF* tif, u_long width, u_long height, u_long* raster, int stopOnError)" +.SH DESCRIPTION +.IR TIFFReadRGBAImage +reads a strip- or tile-based image into memory, storing the +result in the user supplied +.IR raster . +The raster is assumed to be an array of +.I width +times +.I height +32-bit entries, where +.I width +must be less than or equal to the width of the image (\c +.I height +may be any non-zero size). +If the raster dimensions are smaller than the image, the image data +is cropped to the raster bounds. +If the raster height is greater than that of the image, then the +image data are placed in the lower part of the raster. +(Note that the raster is assume to be organized such that the pixel +at location (\fIx\fP,\fIy\fP) is \fIraster\fP[\fIy\fP*\fIwidth\fP+\fIx\fP]; +with the raster origin in the lower-left hand corner.) +.PP +Raster pixels are 8-bit packed red, green, blue, alpha samples. +The macros +.IR TIFFGetR , +.IR TIFFGetG , +.IR TIFFGetB , +and +.I TIFFGetA +should be used to access individual samples. +Images without Associated Alpha matting information have a constant +Alpha of 1.0 (255). +.PP +.I TIFFReadRGBAImage +converts non-8-bit images by scaling sample values. +Palette, grayscale, bilevel, +.SM CMYK\c +, and YCbCr images are converted to +.SM RGB +transparently. +Raster pixels are returned uncorrected by any colorimetry information +present in the directory. +.PP +The paramater +.I stopOnError +specifies how to act if an error is encountered while reading +the image. +If +.I stopOnError +is non-zero, then an error will terminate the operation; otherwise +.I TIFFReadRGBAImage +will continue processing data until all the possible data in the +image have been requested. +.SH NOTES +In C++ the +.I stopOnError +parameter defaults to 0. +.PP +Samples must be either 1, 2, 4, 8, or 16 bits. +Colorimetric samples/pixel must be either 1, 3, or 4 (i.e. +.I SamplesPerPixel +minus +.IR ExtraSamples ). +.PP +Palettte image colormaps that appear to be incorrectly written +as 8-bit values are automatically scaled to 16-bits. +.PP +.I TIFFReadRGBAImage +is just a wrapper around the more general +.IR TIFFRGBAImage (3T) +facilities. +.SH "RETURN VALUES" +1 is returned if the image was successfully read and converted. +Otherwise, 0 is returned if an error was encountered and +.I stopOnError +is zero. +.SH DIAGNOSTICS +All error messages are directed to the +.IR TIFFError (3T) +routine. +.PP +.BR "Sorry, can not handle %d-bit pictures" . +The image had +.I BitsPerSample +other than 1, 2, 4, 8, or 16. +.PP +.BR "Sorry, can not handle %d-channel images" . +The image had +.I SamplesPerPixel +other than 1, 3, or 4. +.PP +\fBMissing needed "PhotometricInterpretation" tag\fP. +The image did not have a tag that describes how to display +the data. +.PP +\fBNo "PhotometricInterpretation" tag, assuming RGB\fP. +The image was missing a tag that describes how to display it, +but because it has 3 or 4 samples/pixel, it is assumed to be +.SM RGB. +.PP +\fBNo "PhotometricInterpretation" tag, assuming min-is-black\fP. +The image was missing a tag that describes how to display it, +but because it has 1 sample/pixel, it is assumed to be a grayscale +or bilevel image. +.PP +.BR "No space for photometric conversion table" . +There was insufficient memory for a table used to convert +image samples to 8-bit +.SM RGB. +.PP +\fBMissing required "Colormap" tag\fP. +A Palette image did not have a required +.I Colormap +tag. +.PP +.BR "No space for tile buffer" . +There was insufficient memory to allocate an i/o buffer. +.PP +.BR "No space for strip buffer" . +There was insufficient memory to allocate an i/o buffer. +.PP +.BR "Can not handle format" . +The image has a format (combination of +.IR BitsPerSample , +.IR SamplesPerPixel , +and +.IR PhotometricInterpretation ) +that +.I TIFFReadRGBAImage +can not handle. +.PP +.BR "No space for B&W mapping table" . +There was insufficient memory to allocate a table used to map +grayscale data to +.SM RGB. +.PP +.BR "No space for Palette mapping table" . +There was insufficient memory to allocate a table used to map +data to 8-bit +.SM RGB. +.SH BUGS +Orientations other than bottom-left, or top-left are +not handled correctly. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFOpen (3T), +.IR TIFFRGBAImage (3T), +.IR TIFFReadRGBAStrip (3T), +.IR TIFFReadRGBATile (3T) diff --git a/man/TIFFReadRGBAStrip.3t b/man/TIFFReadRGBAStrip.3t new file mode 100755 index 0000000..67ebc23 --- /dev/null +++ b/man/TIFFReadRGBAStrip.3t @@ -0,0 +1,176 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFReadRGBAStrip.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1991-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFReadRGBAStrip 3T "December 10, 1998" +.SH NAME +TIFFReadRGBAStrip \- read and decode an image strip into a fixed-format raster +.SH SYNOPSIS +.nf +.B "#include " +.ta \w'\fB#define \fP'u +\w'\fBTIFFGetR(abgr) \fP'u +.B "#define TIFFGetR(abgr) ((abgr) & 0xff)" +.B "#define TIFFGetG(abgr) (((abgr) >> 8) & 0xff)" +.B "#define TIFFGetB(abgr) (((abgr) >> 16) & 0xff)" +.B "#define TIFFGetA(abgr) (((abgr) >> 24) & 0xff)" +.sp 5p +.B "int TIFFReadRGBAStrip(TIFF* tif, tstrip_t strip, uint32 * raster )" +.SH DESCRIPTION +.IR TIFFReadRGBAStrip +reads a single strip of a strip-based image into memory, +storing the result in the user supplied RGBA +.IR raster . +The raster is assumed to be an array of +width times rowsperstrip 32-bit entries, where width +is the width of the image (TIFFTAG_IMAGEWIDTH) and +rowsperstrip is the maximum lines in a strip (TIFFTAG_ROWSPERSTRIP). + +.PP +The +.IR strip +value should be the strip number (strip zero is the first) as returned by the +.I TIFFComputeStrip +function, but always for sample 0. + +.PP +Note that the raster is assume to be organized such that the pixel +at location (\fIx\fP,\fIy\fP) is \fIraster\fP[\fIy\fP*\fIwidth\fP+\fIx\fP]; +with the raster origin in the +.I lower-left hand corner +of the strip. That is bottom to top organization. When reading a partial +last strip in the file the last line of the image will begin at the +beginning of the buffer. + +.PP +Raster pixels are 8-bit packed red, green, blue, alpha samples. +The macros +.IR TIFFGetR , +.IR TIFFGetG , +.IR TIFFGetB , +and +.I TIFFGetA +should be used to access individual samples. +Images without Associated Alpha matting information have a constant +Alpha of 1.0 (255). +.PP +See the +.IR TIFFRGBAImage (3T) +page for more details on how various image types are converted to RGBA +values. +.SH NOTES +Samples must be either 1, 2, 4, 8, or 16 bits. +Colorimetric samples/pixel must be either 1, 3, or 4 (i.e. +.I SamplesPerPixel +minus +.IR ExtraSamples ). +.PP +Palette image colormaps that appear to be incorrectly written +as 8-bit values are automatically scaled to 16-bits. +.PP +.I TIFFReadRGBAStrip +is just a wrapper around the more general +.IR TIFFRGBAImage (3T) +facilities. It's main advantage over the similar +.IR TIFFReadRGBAImage() +function is that for large images a single +buffer capable of holding the whole image doesn't need to be allocated, +only enough for one strip. The +.IR TIFFReadRGBATile() +function does a similar operation for tiled images. +.SH "RETURN VALUES" +1 is returned if the image was successfully read and converted. +Otherwise, 0 is returned if an error was encountered. +.SH DIAGNOSTICS +All error messages are directed to the +.IR TIFFError (3T) +routine. +.PP +.BR "Sorry, can not handle %d-bit pictures" . +The image had +.I BitsPerSample +other than 1, 2, 4, 8, or 16. +.PP +.BR "Sorry, can not handle %d-channel images" . +The image had +.I SamplesPerPixel +other than 1, 3, or 4. +.PP +\fBMissing needed "PhotometricInterpretation" tag\fP. +The image did not have a tag that describes how to display +the data. +.PP +\fBNo "PhotometricInterpretation" tag, assuming RGB\fP. +The image was missing a tag that describes how to display it, +but because it has 3 or 4 samples/pixel, it is assumed to be +.SM RGB. +.PP +\fBNo "PhotometricInterpretation" tag, assuming min-is-black\fP. +The image was missing a tag that describes how to display it, +but because it has 1 sample/pixel, it is assumed to be a grayscale +or bilevel image. +.PP +.BR "No space for photometric conversion table" . +There was insufficient memory for a table used to convert +image samples to 8-bit +.SM RGB. +.PP +\fBMissing required "Colormap" tag\fP. +A Palette image did not have a required +.I Colormap +tag. +.PP +.BR "No space for tile buffer" . +There was insufficient memory to allocate an i/o buffer. +.PP +.BR "No space for strip buffer" . +There was insufficient memory to allocate an i/o buffer. +.PP +.BR "Can not handle format" . +The image has a format (combination of +.IR BitsPerSample , +.IR SamplesPerPixel , +and +.IR PhotometricInterpretation ) +that +.I TIFFReadRGBAImage +can not handle. +.PP +.BR "No space for B&W mapping table" . +There was insufficient memory to allocate a table used to map +grayscale data to +.SM RGB. +.PP +.BR "No space for Palette mapping table" . +There was insufficient memory to allocate a table used to map +data to 8-bit +.SM RGB. +.SH BUGS +Orientations other than bottom-left, or top-left are +not handled correctly. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFOpen (3T), +.IR TIFFRGBAImage (3T), +.IR TIFFReadRGBAImage (3T), +.IR TIFFReadRGBATile (3T) diff --git a/man/TIFFReadRGBATile.3t b/man/TIFFReadRGBATile.3t new file mode 100755 index 0000000..5d0776f --- /dev/null +++ b/man/TIFFReadRGBATile.3t @@ -0,0 +1,178 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFReadRGBATile.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1991-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFReadRGBATile 3T "December 10, 1998" +.SH NAME +TIFFReadRGBATile \- read and decode an image tile into a fixed-format raster +.SH SYNOPSIS +.nf +.B "#include " +.ta \w'\fB#define \fP'u +\w'\fBTIFFGetR(abgr) \fP'u +.B "#define TIFFGetR(abgr) ((abgr) & 0xff)" +.B "#define TIFFGetG(abgr) (((abgr) >> 8) & 0xff)" +.B "#define TIFFGetB(abgr) (((abgr) >> 16) & 0xff)" +.B "#define TIFFGetA(abgr) (((abgr) >> 24) & 0xff)" +.sp 5p +.B "int TIFFReadRGBATile(TIFF* tif, uint32 x, uint32 y, uint32 * raster )" +.SH DESCRIPTION +.IR TIFFReadRGBATile +reads a single tile of a tile-based image into memory, +storing the result in the user supplied RGBA +.IR raster . +The raster is assumed to be an array of +width times length 32-bit entries, where width +is the width of a tile (TIFFTAG_TILEWIDTH) and +length is the height of a tile (TIFFTAG_TILELENGTH). + +.PP +The +.IR x +and +.IR y +values are the offsets from the top left corner to the top left corner +of the tile to be read. They must be an exact multiple of the tile +width and length. + +.PP +Note that the raster is assume to be organized such that the pixel +at location (\fIx\fP,\fIy\fP) is \fIraster\fP[\fIy\fP*\fIwidth\fP+\fIx\fP]; +with the raster origin in the +.I lower-left hand corner +of the tile. That is bottom to top organization. Edge tiles which +partly fall off the image will be filled out with appropriate zeroed +areas. + +.PP +Raster pixels are 8-bit packed red, green, blue, alpha samples. +The macros +.IR TIFFGetR , +.IR TIFFGetG , +.IR TIFFGetB , +and +.I TIFFGetA +should be used to access individual samples. +Images without Associated Alpha matting information have a constant +Alpha of 1.0 (255). +.PP +See the +.IR TIFFRGBAImage (3T) +page for more details on how various image types are converted to RGBA +values. +.SH NOTES +Samples must be either 1, 2, 4, 8, or 16 bits. +Colorimetric samples/pixel must be either 1, 3, or 4 (i.e. +.I SamplesPerPixel +minus +.IR ExtraSamples ). +.PP +Palette image colormaps that appear to be incorrectly written +as 8-bit values are automatically scaled to 16-bits. +.PP +.I TIFFReadRGBATile +is just a wrapper around the more general +.IR TIFFRGBAImage (3T) +facilities. It's main advantage over the similar +.IR TIFFReadRGBAImage() +function is that for large images a single +buffer capable of holding the whole image doesn't need to be allocated, +only enough for one tile. The +.IR TIFFReadRGBAStrip() +function does a similar operation for stripped images. +.SH "RETURN VALUES" +1 is returned if the image was successfully read and converted. +Otherwise, 0 is returned if an error was encountered. +.SH DIAGNOSTICS +All error messages are directed to the +.IR TIFFError (3T) +routine. +.PP +.BR "Sorry, can not handle %d-bit pictures" . +The image had +.I BitsPerSample +other than 1, 2, 4, 8, or 16. +.PP +.BR "Sorry, can not handle %d-channel images" . +The image had +.I SamplesPerPixel +other than 1, 3, or 4. +.PP +\fBMissing needed "PhotometricInterpretation" tag\fP. +The image did not have a tag that describes how to display +the data. +.PP +\fBNo "PhotometricInterpretation" tag, assuming RGB\fP. +The image was missing a tag that describes how to display it, +but because it has 3 or 4 samples/pixel, it is assumed to be +.SM RGB. +.PP +\fBNo "PhotometricInterpretation" tag, assuming min-is-black\fP. +The image was missing a tag that describes how to display it, +but because it has 1 sample/pixel, it is assumed to be a grayscale +or bilevel image. +.PP +.BR "No space for photometric conversion table" . +There was insufficient memory for a table used to convert +image samples to 8-bit +.SM RGB. +.PP +\fBMissing required "Colormap" tag\fP. +A Palette image did not have a required +.I Colormap +tag. +.PP +.BR "No space for tile buffer" . +There was insufficient memory to allocate an i/o buffer. +.PP +.BR "No space for strip buffer" . +There was insufficient memory to allocate an i/o buffer. +.PP +.BR "Can not handle format" . +The image has a format (combination of +.IR BitsPerSample , +.IR SamplesPerPixel , +and +.IR PhotometricInterpretation ) +that +.I TIFFReadRGBAImage +can not handle. +.PP +.BR "No space for B&W mapping table" . +There was insufficient memory to allocate a table used to map +grayscale data to +.SM RGB. +.PP +.BR "No space for Palette mapping table" . +There was insufficient memory to allocate a table used to map +data to 8-bit +.SM RGB. +.SH BUGS +Orientations other than bottom-left, or top-left are +not handled correctly. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFOpen (3T), +.IR TIFFRGBAImage (3T), +.IR TIFFReadRGBAImage (3T), +.IR TIFFReadRGBAStrip (3T) diff --git a/man/TIFFReadRawStrip.3t b/man/TIFFReadRawStrip.3t new file mode 100755 index 0000000..a727cc5 --- /dev/null +++ b/man/TIFFReadRawStrip.3t @@ -0,0 +1,63 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFReadRawStrip.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFReadRawStrip 3T "October 15, 1995" +.SH NAME +TIFFReadRawStrip \- return the undecoded contents +of a strip of data from an open +.SM TIFF +file +.SH SYNOPSIS +.B "#include " +.br +.B "tsize_t TIFFReadRawStrip(TIFF* tif, tstrip_t strip, tdata_t buf, tsize_t size)" +.SH DESCRIPTION +Read the contents of the specified strip into the +(user supplied) data buffer. +Note that the value of +.I strip +is a ``raw strip number.'' +That is, the caller must take into account whether or not the +data is organized in separate planes (\c +.IR PlanarConfiguration =2). +To read a full strip of data the data buffer should typically be +at least as large as the number returned by +.IR TIFFStripSize . +.SH "RETURN VALUES" +The actual number of bytes of data that were placed in +.I buf +is returned; +.IR TIFFReadEncodedStrip +returns \-1 if an error was encountered. +.SH DIAGNOSTICS +All error messages are directed to the +.IR TIFFError (3T) +routine. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFOpen (3T), +.IR TIFFReadEncodedStrip (3T), +.IR TIFFReadScanline (3T), +.IR TIFFStripSize (3T) diff --git a/man/TIFFReadRawTile.3t b/man/TIFFReadRawTile.3t new file mode 100755 index 0000000..23b876f --- /dev/null +++ b/man/TIFFReadRawTile.3t @@ -0,0 +1,65 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFReadRawTile.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFReadRawTile 3T "October 15, 1995" +.SH NAME +TIFFReadRawTile \- return an undecoded tile of data from an open +.SM TIFF +file +.SH SYNOPSIS +.B "#include " +.br +.B "tsize_t TIFFReadRawTile(TIFF* tif, ttile_t tile, tdata_t buf, tsize_t size)" +.SH DESCRIPTION +Read the contents of the specified tile into the +(user supplied) data buffer. +Note that the value of +.I tile +is a ``raw tile number.'' +That is, the caller must take into account whether or not the +data is organized in separate planes (\c +.IR PlanarConfiguration =2). +.I TIFFComputeTile +automatically does this when converting an (x,y,z,sample) +coordinate quadruple to a tile number. +To read a full tile of data the data buffer should typically be +at least as large as the value returned by +.IR TIFFTileSize . +.SH "RETURN VALUES" +The actual number of bytes of data that were placed in +.I buf +is returned; +.IR TIFFReadEncodedTile +returns \-1 if an error was encountered. +.SH DIAGNOSTICS +All error messages are directed to the +.IR TIFFError (3T) +routine. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFOpen (3T), +.IR TIFFReadEncodedTile (3T), +.IR TIFFReadTile (3T), +.IR TIFFTileSize (3T) diff --git a/man/TIFFReadScanline.3t b/man/TIFFReadScanline.3t new file mode 100755 index 0000000..fa11f46 --- /dev/null +++ b/man/TIFFReadScanline.3t @@ -0,0 +1,99 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFReadScanline.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFReadScanline 3T "October 15, 1995" +.SH NAME +TIFFReadScanline \- read and decode a scanline of data from an open +.SM TIFF +file +.SH SYNOPSIS +.B "#include " +.br +.B "int TIFFReadScanline(TIFF* tif, tdata_t buf, uint32 row, tsample_t sample)" +.SH DESCRIPTION +Read the data for the specified row into the (user supplied) +data buffer +.IR buf . +The data are returned decompressed and, in the native byte- +and bit-ordering, but are otherwise packed (see further below). +The buffer must be large enough to hold an entire scanline of data. +Applications should call the routine +.IR TIFFScanlineSize +to find out the size (in bytes) of a scanline buffer. +The +.I row +parameter is always used by +.IR TIFFReadScanline ; +the +.I sample +parameter is used only if data are organized in separate planes (\c +.IR PlanarConfiguration =2). +.SH NOTES +The library attempts to hide bit- and byte-ordering differences +between the image and the native machine by converting data +to the native machine order. +Bit reversal is done if the +.I FillOrder +tag is opposite to the native machine bit order. +16- and 32-bit samples are automatically byte-swapped if the +file was written with a byte order opposite to the native +machine byte order, +.PP +In C++ the +.I sample +parameter defaults to 0. +.SH "RETURN VALUES" +.IR TIFFReadScanline +returns \-1 if it detects an error; otherwise 1 is returned. +.SH DIAGNOSTICS +All error messages are directed to the +.IR TIFFError (3T) +routine. +.PP +.BR "Compression algorithm does not support random access" . +Data was requested in a non-sequential order from a file that +uses a compression algorithm and that has +.I RowsPerStrip +greater than one. +That is, data in the image is stored in a compressed form, +and with multiple rows packed into a strip. +In this case, the library does not support random access to the data. +The data should either be accessed sequentially, or the file +should be converted so that each strip is made up of one row +of data. +.SH BUGS +Reading subsampled YCbCR data does not work correctly +because, for +.IR PlanarConfiguration =2 +the size of a scanline is not calculated on a per-sample basis, +and for +.IR PlanarConfiguration =1 +the library does not unpack the block-interleaved samples; use +the strip- and tile-based interfaces to read these formats. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFOpen (3T), +.IR TIFFReadEncodedStrip (3T), +.IR TIFFReadRawStrip (3T) diff --git a/man/TIFFReadTile.3t b/man/TIFFReadTile.3t new file mode 100755 index 0000000..8db6a08 --- /dev/null +++ b/man/TIFFReadTile.3t @@ -0,0 +1,85 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFReadTile.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFReadTile 3T "December 16, 1991" +.SH NAME +TIFFReadTile \- read and decode a tile of data from an open +.SM TIFF +file +.SH SYNOPSIS +.B "#include " +.br +.B "tsize_t TIFFReadTile(TIFF* tif, tdata_t buf, uint32 x, uint32 y, uint32 z, tsample_t sample)" +.SH DESCRIPTION +Return the data for the tile +.I containing +the specified coordinates. +The data placed in +.I buf +are returned decompressed and, typically, in the native byte- +and bit-ordering, but are otherwise packed (see further below). +The buffer must be large enough to hold an entire tile of data. +Applications should call the routine +.IR TIFFTileSize +to find out the size (in bytes) of a tile buffer. +The +.I x +and +.I y +parameters are always used by +.IR TIFFReadTile . +The +.I z +parameter is used if the image is deeper than 1 slice (\c +.IR ImageDepth >1). +The +.I sample +parameter is used only if data are organized in separate planes (\c +.IR PlanarConfiguration =2). +.SH NOTES +The library attempts to hide bit- and byte-ordering differences +between the image and the native machine by converting data +to the native machine order. +Bit reversal is done if the +.I FillOrder +tag is opposite to the native machine bit order. +16- and 32-bit samples are automatically byte-swapped if the +file was written with a byte order opposite to the native +machine byte order, +.SH "RETURN VALUES" +.IR TIFFReadTile +returns \-1 if it detects an error; otherwise the number of +bytes in the decoded tile is returned. +.SH DIAGNOSTICS +All error messages are directed to the +.IR TIFFError (3T) +routine. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFCheckTile (3T), +.IR TIFFComputeTile (3T), +.IR TIFFOpen (3T), +.IR TIFFReadEncodedTile (3T), +.IR TIFFReadRawTile (3T) diff --git a/man/TIFFSetDirectory.3t b/man/TIFFSetDirectory.3t new file mode 100755 index 0000000..5e3e2c1 --- /dev/null +++ b/man/TIFFSetDirectory.3t @@ -0,0 +1,78 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFSetDirectory.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFSetDirectory 3T "October 15, 1995" +.SH NAME +TIFFSetDirectory, TIFFSetSubDirectory \- set the current directory for an open +.SM TIFF +file +.SH SYNOPSIS +.B "#include " +.br +.B "int TIFFSetDirectory(TIFF* tif, tdir_t dirnum)" +.br +.B "int TIFFSetSubDirectory(TIFF* tif, uint32 diroff)" +.SH DESCRIPTION +.I TIFFSetDirectory +changes the current directory and reads its contents with +.IR TIFFReadDirectory . +The parameter +.I dirnum +specifies the subfile/directory as an integer number, with +the first directory numbered zero. +.PP +.I TIFFSetSubDirectory +acts like +.IR TIFFSetDirectory , +except the directory is specified as a +file offset instead of an index; this is required for accessing +subdirectories linked through a +.I SubIFD +tag. +.SH "RETURN VALUES" +On successful return 1 is returned. +Otherwise, 0 is returned if +.I dirnum +or +.I diroff +specifies a non-existent directory, or if an error was +encountered while reading the directory's contents. +.SH DIAGNOSTICS +All error messages are directed to the +.IR TIFFError (3T) +routine. +.PP +.BR "%s: Error fetching directory count" . +An error was encountered while reading the ``directory count'' field. +.PP +.BR "%s: Error fetching directory link" . +An error was encountered while reading the ``link value'' that +points to the next directory in a file. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFCurrentDirectory (3T), +.IR TIFFOpen (3T), +.IR TIFFReadDirectory (3T), +.IR TIFFWriteDirectory (3T) diff --git a/man/TIFFSetField.3t b/man/TIFFSetField.3t new file mode 100755 index 0000000..2e56820 --- /dev/null +++ b/man/TIFFSetField.3t @@ -0,0 +1,213 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFSetField.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFSetField 3T "August 28, 1997" +.SH NAME +TIFFSetField \- set the value(s) of a tag in a +.SM TIFF +file open for writing +.SH SYNOPSIS +.B "#include " +.br +.B "int TIFFSetField(TIFF* tif, ttag_t tag, ...)" +.br +.B "#include " +.br +.B "int TIFFVSetField(TIFF* tif, ttag_t tag, va_list ap)" +.SH DESCRIPTION +.IR TIFFSetField +sets the value of a field +or pseudo-tag in the current directory associated with +the open +.SM TIFF +file +.IR tif . +(A +.I pseudo-tag +is a parameter that is used to control the operation of the +.SM TIFF +library but whose value is not read or written to the underlying file.) +To set the value of a field +the file must have been previously opened for writing with +.IR TIFFOpen (3T); +pseudo-tags can be set whether the file was opened for reading +or writing. +The field is identified by +.IR tag , +one of the values defined in the include file +.B tiff.h +(see also the table below). +The actual value is specified using a variable argument list, +as prescribed by the +.IR stdarg (3) +interface (\c +or, on some machines, the +.IR varargs (3) +interface.) +.PP +.IR TIFFVSetField +is functionally equivalent to +.IR TIFFSetField +except that it takes a pointer to a variable +argument list. +.I TIFFVSetField +is useful for writing routines that are layered +on top of the functionality provided by +.IR TIFFSetField . +.PP +The tags understood by +.IR libtiff , +the number of parameter values, and the +expected types for the parameter values are shown below. +The data types are: +.I char* +is null-terminated string and corresponds to the +.SM ASCII +data type; +.I uint16 +is an unsigned 16-bit value; +.I uint32 +is an unsigned 32-bit value; +.I uint16* +is an array of unsigned 16-bit values. +.I void* +is an array of data values of unspecified type. + +Consult the +.SM TIFF +specification for information on the meaning of each tag. +.PP +.nf +.ta \w'TIFFTAG_CONSECUTIVEBADFAXLINES'u+2n +\w'Count'u+2n +\w'TIFFFaxFillFunc \(dg'u+2n +\fITag Name\fP \fICount\fP \fITypes\fP \fINotes\fP +.sp 5p +TIFFTAG_ARTIST 1 char* +TIFFTAG_BADFAXLINES 1 uint32 +TIFFTAG_BITSPERSAMPLE 1 uint16 \(dg +TIFFTAG_CLEANFAXDATA 1 uint16 +TIFFTAG_COLORMAP 3 uint16* 1< 0 +TIFFTAG_SAMPLEFORMAT 1 uint16 \(dg +TIFFTAG_SAMPLESPERPIXEL 1 uint16 \(dg value must be <= 4 +TIFFTAG_SMAXSAMPLEVALUE 1 double +TIFFTAG_SMINSAMPLEVALUE 1 double +TIFFTAG_SOFTWARE 1 char* +TIFFTAG_STONITS 1 double \(dg +TIFFTAG_SUBFILETYPE 1 uint32 +TIFFTAG_SUBIFD 2 uint16,uint32* count & offsets array +TIFFTAG_TARGETPRINTER 1 char* +TIFFTAG_THRESHHOLDING 1 uint16 +TIFFTAG_TILEDEPTH 1 uint32 \(dg +TIFFTAG_TILELENGTH 1 uint32 \(dg must be a multiple of 8 +TIFFTAG_TILEWIDTH 1 uint32 \(dg must be a multiple of 8 +TIFFTAG_TRANSFERFUNCTION 1 or 3 \(dd uint16* 1<" +.br +.B "void TIFFWarning(const char* module, const char* fmt, ...)" +.sp .5 +.B "#include " +.br +.B "typedef void (*TIFFWarningHandler)(const char* module, const char* fmt, va_list ap);" +.br +.B "TIFFWarningHandler TIFFSetWarningHandler(TIFFWarningHandler handler);" +.SH DESCRIPTION +.I TIFFWarning +invokes the library-wide warning handler function +to (normally) write a warning message to the +.BR stderr . +The +.I fmt +parameter is a +.IR printf (3S) +format string, and any number arguments can be supplied. +The +.I module +parameter is interpreted as a string that, if non-zero, +should be printed before the message; it typically +is used to identify the software module in which a warning +is detected. +.PP +Applications that desire to capture control in the event of a warning +should use +.IR TIFFSetWarningHandler +to override the default warning handler. +A +.SM NULL +(0) warning handler function may be installed to +suppress error messages. +.SH "RETURN VALUES" +.IR TIFFSetWarningHandler +returns a reference to the previous error handling function. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFError (3T), +.IR printf (3S) diff --git a/man/TIFFWriteDirectory.3t b/man/TIFFWriteDirectory.3t new file mode 100755 index 0000000..8736f68 --- /dev/null +++ b/man/TIFFWriteDirectory.3t @@ -0,0 +1,104 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFWriteDirectory.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFWriteDirectory 3T "December 16, 1991" +.SH NAME +TIFFWriteDirectory \- write the current directory in an open +.SM TIFF +file +.SH SYNOPSIS +.B "#include " +.br +.B "int TIFFWriteDirectory(TIFF* tif)" +.SH DESCRIPTION +Write the contents of the current directory to the file and setup +to create a new subfile in the same file. +Applications only need to call +.IR TIFFWriteDirectory +when writing multiple subfiles to a single +.SM TIFF +file. +.IR TIFFWriteDirectory +is automatically called by +.IR TIFFClose +and +.IR TIFFFlush +to write a modified directory if the file is open for writing. +.SH "RETURN VALUES" +1 is returned when the contents are successfully +written to the file. +Otherwise, 0 is returned if an error was encountered when writing +the directory contents. +.SH DIAGNOSTICS +All error messages are directed to the +.IR TIFFError (3T) +routine. +.PP +.BR "Error post-encoding before directory write" . +Before writing the contents of the current directory, any pending +data are flushed. +This message indicates that an error occurred while doing this. +.PP +.BR "Error flushing data before directory write" . +Before writing the contents of the current directory, any pending +data are flushed. +This message indicates that an error occurred while doing this. +.PP +.BR "Cannot write directory, out of space" . +There was not enough space to allocate a temporary area for +the directory that was to be written. +.PP +.BR "Error writing directory count" . +A write error occurred when writing the count of fields in the directory. +.PP +.BR "Error writing directory contents" . +A write error occurred when writing the directory fields. +.PP +.BR "Error writing directory link" . +A write error occurred when writing the link to the next directory. +.PP +\fBError writing data for field "%s"\fP. +A write error occurred when writing indirect data for the specified field. +.PP +.BR "Error writing TIFF header" . +A write error occurred when re-writing header at the front of the file. +.PP +.BR "Error fetching directory count" . +A read error occurred when fetching the directory count field for +a previous directory. +This can occur when setting up a link to the directory that is being +written. +.PP +.BR "Error fetching directory link" . +A read error occurred when fetching the directory link field for +a previous directory. +This can occur when setting up a link to the directory that is being +written. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFOpen (3T), +.IR TIFFError (3T), +.IR TIFFReadDirectory (3T), +.IR TIFFSetDirectory (3T) diff --git a/man/TIFFWriteEncodedStrip.3t b/man/TIFFWriteEncodedStrip.3t new file mode 100755 index 0000000..98eca5d --- /dev/null +++ b/man/TIFFWriteEncodedStrip.3t @@ -0,0 +1,105 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFWriteEncodedStrip.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFWriteEncodedStrip 3T "October 15, 1995" +.SH NAME +TIFFWritedEncodedStrip \- compress and write a strip of data to an open +.SM TIFF +file +.SH SYNOPSIS +.B "#include " +.br +.B "tsize_t TIFFWriteEncodedStrip(TIFF* tif, tstrip_t strip, tdata_t buf, tsize_t size)" +.SH DESCRIPTION +Compress +.I size +bytes of raw data from +.I buf +and write the result to the specified strip; replacing +any previously written data. +Note that the value of +.I strip +is a ``raw strip number.'' +That is, the caller must take into account whether or not the +data are organized in separate places (\c +.IR PlanarConfiguration =2). +.SH NOTES +The library writes encoded data using the native machine byte order. +Correctly implemented +.SM TIFF +readers are expected to do any necessary byte-swapping to +correctly process image data with BitsPerSample greater than 8. +.PP +The strip number must be valid according to the current settings +of the +.I ImageLength +and +.I RowsPerStrip +tags. +An image may be dynamically grown by increasing the value of +.I ImageLength +prior to each call to +.IR TIFFWriteEncodedStrip . +.SH "RETURN VALUES" +\-1 is returned if an error was encountered. +Otherwise, the value of +.IR size +is returned. +.SH DIAGNOSTICS +All error messages are directed to the +.IR TIFFError (3T) +routine. +.PP +\fB%s: File not open for writing\fP. +The file was opened for reading, not writing. +.PP +\fBCan not write scanlines to a tiled image\fP. +The image is assumed to be organized in tiles because the +.I TileWidth +and +.I TileLength +tags have been set with +.IR TIFFSetField (3T). +.PP +\fB%s: Must set "ImageWidth" before writing data\fP. +The image's width has not be set before the first write. +See +.IR TIFFSetField (3T) +for information on how to do this. +.PP +\fB%s: Must set "PlanarConfiguration" before writing data\fP. +The organization of data has not be defined before the first write. +See +.IR TIFFSetField (3T) +for information on how to do this. +.PP +\fB%s: No space for strip arrays"\fP. +There was not enough space for the arrays that hold strip +offsets and byte counts. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFOpen (3T), +.IR TIFFWriteScanline (3T), +.IR TIFFWriteRawStrip (3T) diff --git a/man/TIFFWriteEncodedTile.3t b/man/TIFFWriteEncodedTile.3t new file mode 100755 index 0000000..20bdbc5 --- /dev/null +++ b/man/TIFFWriteEncodedTile.3t @@ -0,0 +1,98 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFWriteEncodedTile.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFWriteEncodedTile 3T "December 16, 1991" +.SH NAME +TIFFWritedEncodedTile \- compress and write a tile of data to an open +.SM TIFF +file +.SH SYNOPSIS +.B "#include " +.br +.B "tsize_t TIFFWriteEncodedTile(TIFF* tif, ttile_t tile, tdata_t buf, tsize_t size)" +.SH DESCRIPTION +Compress +.I size +bytes of raw data from +.I buf +and +.B append +the result to the end of the specified tile. +Note that the value of +.I tile +is a ``raw tile number.'' +That is, the caller must take into account whether or not the +data are organized in separate places (\c +.IR PlanarConfiguration =2). +.IR TIFFComputeTile +automatically does this when converting an (x,y,z,sample) +coordinate quadruple to a tile number. +.SH NOTES +The library writes encoded data using the native machine byte order. +Correctly implemented +.SM TIFF +readers are expected to do any necessary byte-swapping to +correctly process image data with BitsPerSample greater than 8. +.SH "RETURN VALUES" +\-1 is returned if an error was encountered. +Otherwise, the value of +.IR size +is returned. +.SH DIAGNOSTICS +All error messages are directed to the +.IR TIFFError (3T) +routine. +.PP +\fB%s: File not open for writing\fP. +The file was opened for reading, not writing. +.PP +\fBCan not write tiles to a stripped image\fP. +The image is assumed to be organized in strips because neither of the +.I TileWidth +or +.I TileLength +tags have been set with +.IR TIFFSetField (3T). +.PP +\fB%s: Must set "ImageWidth" before writing data\fP. +The image's width has not be set before the first write. +See +.IR TIFFSetField (3T) +for information on how to do this. +.PP +\fB%s: Must set "PlanarConfiguration" before writing data\fP. +The organization of data has not be defined before the first write. +See +.IR TIFFSetField (3T) +for information on how to do this. +.PP +\fB%s: No space for tile arrays"\fP. +There was not enough space for the arrays that hold tile +offsets and byte counts. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFOpen (3T), +.IR TIFFWriteTile (3T), +.IR TIFFWriteRawTile (3T) diff --git a/man/TIFFWriteRawStrip.3t b/man/TIFFWriteRawStrip.3t new file mode 100755 index 0000000..4e497ea --- /dev/null +++ b/man/TIFFWriteRawStrip.3t @@ -0,0 +1,94 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFWriteRawStrip.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFWriteRawstrip 3T "October 15, 1995" +.SH NAME +TIFFWriteRawStrip \- write a strip of raw data to an open +.SM TIFF +file +.SH SYNOPSIS +.B "#include " +.br +.B "tsize_t TIFFWriteRawStrip(TIFF* tif, tstrip_t strip, tdata_t buf, tsize_t size)" +.SH DESCRIPTION +Append +.I size +bytes of raw data to the specified strip. +.SH NOTES +The strip number must be valid according to the current settings +of the +.I ImageLength +and +.I RowsPerStrip +tags. +An image may be dynamically grown by increasing the value of +.I ImageLength +prior to each call to +.IR TIFFWriteRawStrip . +.SH "RETURN VALUES" +\-1 is returned if an error occurred. +Otherwise, the value of +.IR size +is returned. +.SH DIAGNOSTICS +All error messages are directed to the +.IR TIFFError (3T) +routine. +.PP +\fB%s: File not open for writing\fP. +The file was opened for reading, not writing. +.PP +\fBCan not write scanlines to a tiled image\fP. +The image is assumed to be organized in tiles because the +.I TileWidth +and +.I TileLength +tags have been set with +.IR TIFFSetField (3T). +.PP +\fB%s: Must set "ImageWidth" before writing data\fP. +The image's width has not be set before the first write. +See +.IR TIFFSetField (3T) +for information on how to do this. +.PP +\fB%s: Must set "PlanarConfiguration" before writing data\fP. +The organization of data has not be defined before the first write. +See +.IR TIFFSetField (3T) +for information on how to do this. +.PP +\fB%s: No space for strip arrays"\fP. +There was not enough space for the arrays that hold strip +offsets and byte counts. +.PP +\fB%s: Strip %d out of range, max %d\fP. +The specified strip is not a valid strip according to the +currently specified image dimensions. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFOpen (3T), +.IR TIFFWriteEncodedStrip (3T), +.IR TIFFWriteScanline (3T) diff --git a/man/TIFFWriteRawTile.3t b/man/TIFFWriteRawTile.3t new file mode 100755 index 0000000..127a40a --- /dev/null +++ b/man/TIFFWriteRawTile.3t @@ -0,0 +1,83 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFWriteRawTile.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFWriteRawtile 3T "December 16, 1991" +.SH NAME +TIFFWriteRawTile \- write a tile of raw data to an open +.SM TIFF +file +.SH SYNOPSIS +.B "#include " +.br +.B "tsize_t TIFFWriteRawTile(TIFF* tif, ttile_t tile, tdata_t buf, tsize_t size)" +.SH DESCRIPTION +Append +.I size +bytes of raw data to the specified tile. +.SH "RETURN VALUES" +\-1 is returned if an error occurred. +Otherwise, the value of +.IR size +is returned. +.SH DIAGNOSTICS +All error messages are directed to the +.IR TIFFError (3T) +routine. +.PP +\fB%s: File not open for writing\fP. +The file was opened for reading, not writing. +.PP +\fBCan not write tiles to a stripped image\fP. +The image is assumed to be organized in strips because neither of the +.I TileWidth +or +.I TileLength +tags have been set with +.IR TIFFSetField (3T). +.PP +\fB%s: Must set "ImageWidth" before writing data\fP. +The image's width has not be set before the first write. +See +.IR TIFFSetField (3T) +for information on how to do this. +.PP +\fB%s: Must set "PlanarConfiguration" before writing data\fP. +The organization of data has not be defined before the first write. +See +.IR TIFFSetField (3T) +for information on how to do this. +.PP +\fB%s: No space for tile arrays"\fP. +There was not enough space for the arrays that hold tile +offsets and byte counts. +.PP +\fB%s: Specified tile %d out of range, max %d\fP. +The specified tile is not valid according to the currently +specified image dimensions. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFOpen (3T), +.IR TIFFWriteEncodedTile (3T), +.IR TIFFWriteScanline (3T) diff --git a/man/TIFFWriteScanline.3t b/man/TIFFWriteScanline.3t new file mode 100755 index 0000000..f3c4cfb --- /dev/null +++ b/man/TIFFWriteScanline.3t @@ -0,0 +1,162 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFWriteScanline.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFWriteScanline 3T "December 16, 1991" +.SH NAME +TIFFWriteScanline \- write a scanline to an open +.SM TIFF +file +.SH SYNOPSIS +.B "#include " +.br +.B "int TIFFWriteScanline(TIFF* tif, tdata_t buf, uint32 row, tsample_t sample)" +.SH DESCRIPTION +Write data to a file at the specified row. +The +.I sample +parameter is used only if data are organized in separate planes (\c +.IR PlanarConfiguration =2). +The data are assumed to be uncompressed and in the native +bit- and byte-order of the host machine. +The data written to the file is +compressed according to the compression scheme +of the current +.SM TIFF +directory (see further below). +If the current scanline is past the end of the current subfile, the +.I ImageLength +field is automatically increased to include the scanline (except +for +.IR PlanarConfiguration =2, +where the +.I ImageLength +cannot be changed once the first data are written). +If the +.I ImageLength +is increased, the +.I StripOffsets +and +.I StripByteCounts +fields are similarly enlarged to reflect data written past the +previous end of image. +.SH NOTES +The library writes encoded data using the native machine byte order. +Correctly implemented +.SM TIFF +readers are expected to do any necessary byte-swapping to +correctly process image data with BitsPerSample greater than 8. +The library attempts to hide bit-ordering differences +between the image and the native machine by converting data +from the native machine order. +.PP +In C++ the +.I sample +parameter defaults to 0. +.PP +Once data are written to a file for the current directory, +the values of certain tags may not be altered; see +.IR TIFFSetField (3T) +for more information. +.PP +It is not possible to write scanlines to a file that +uses a tiled organization. The routine +.IR TIFFIsTiled +can be used to determine if the file is organized +as tiles or strips. +.SH "RETURN VALUES" +.IR TIFFWriteScanline +returns \-1 if it immediately detects an error +and 1 for a successful write. +.SH DIAGNOSTICS +All error messages are directed to the +.IR TIFFError (3T) +routine. +.PP +.BR "%s: File not open for writing . +The file was opened for reading, not writing. +.PP +.BR "Can not write scanlines to a tiled image" . +An attempt was made to write a scanline to a tiled image. +The image is assumed to be organized in tiles because the +.I TileWidth +and +.I TileLength +tags have been set with +.IR TIFFSetField (3T). +.PP +.BR "Compression algorithm does not support random access" . +Data was written in a non-sequential order to a file that +uses a compression algorithm and that has +.I RowsPerStrip +greater than one. +That is, data in the image is to be stored in a compressed form, +and with multiple rows packed into a strip. +In this case, the library does not support random access to the data. +The data should either be written as entire strips, +sequentially by rows, or the value of +.I RowsPerStrip +should be set to one. +.PP +\fB%s: Must set "ImageWidth" before writing data\fP. +The image's width has not be set before the first write. +See +.IR TIFFSetField (3T) +for information on how to do this. +.PP +\fB%s: Must set "PlanarConfiguration" before writing data\fP. +The organization of data has not be defined before the first write. +See +.IR TIFFSetField (3T) +for information on how to do this. +.PP +\fBCan not change "ImageLength" when using separate planes\fP. +Separate image planes are being used (\c +.IR PlanarConfiguration =2), +but the number of rows has not been specified before the first write. +The library supports the dynamic growth of an image only when data +are organized in a contiguous manner (\c +.IR PlanarConfiguration =1). +.PP +.BR "%d: Sample out of range, max %d" . +The +.I sample +parameter was greater than the value of the SamplesPerPixel tag. +.PP +.BR "%s: No space for strip arrays . +There was not enough space for the arrays that hold strip +offsets and byte counts. +.SH BUGS +Writing subsampled YCbCR data does not work correctly +because, for +.IR PlanarConfiguration =2 +the size of a scanline is not calculated on a per-sample basis, +and for +.IR PlanarConfiguration =1 +the library does not pack the block-interleaved samples. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFOpen (3T), +.IR TIFFWriteEncodedStrip (3T), +.IR TIFFWriteRawStrip (3T) diff --git a/man/TIFFWriteTile.3t b/man/TIFFWriteTile.3t new file mode 100755 index 0000000..4b5dbba --- /dev/null +++ b/man/TIFFWriteTile.3t @@ -0,0 +1,77 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFWriteTile.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFWriteTile 3T "November 29, 1999" +.SH NAME +TIFFWriteTile \- encode and write a tile of data to an open +.SM TIFF +file +.SH SYNOPSIS +.B "#include " +.br +.B "tsize_t TIFFWriteTile(TIFF* tif, tdata_t buf, uint32 x, uint32 y, uint32 z, tsample_t sample)" +.SH DESCRIPTION +Write the data for the tile +.I containing +the specified coordinates. +The data in +.I buf +are is (potentially) compressed, and written to the indicated file, normally +being appended to the end of the file. +The buffer must be contain an entire tile of data. +Applications should call the routine +.IR TIFFTileSize +to find out the size (in bytes) of a tile buffer. +The +.I x +and +.I y +parameters are always used by +.IR TIFFWriteTile . +The +.I z +parameter is used if the image is deeper than 1 slice (\c +.IR ImageDepth >1). +The +.I sample +parameter is used only if data are organized in separate planes (\c +.IR PlanarConfiguration =2). +.SH "RETURN VALUES" +.IR TIFFWriteTile +returns \-1 if it detects an error; otherwise the number of +bytes in the tile is returned. +.SH DIAGNOSTICS +All error messages are directed to the +.IR TIFFError (3T) +routine. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFCheckTile (3T), +.IR TIFFComputeTile (3T), +.IR TIFFOpen (3T), +.IR TIFFReadTile (3T), +.IR TIFFWriteScanline (3T), +.IR TIFFWriteEncodedTile (3T), +.IR TIFFWriteRawTile (3T) diff --git a/man/TIFFbuffer.3t b/man/TIFFbuffer.3t new file mode 100755 index 0000000..fe19c08 --- /dev/null +++ b/man/TIFFbuffer.3t @@ -0,0 +1,77 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFbuffer.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1995 Sam Leffler +.\" Copyright (c) 1995 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFBUFFER 3T "October 15, 1995" +.SH NAME +TIFFReadBufferSetup, +TIFFWriteBufferSetup +\- I/O buffering control routines +.SH SYNOPSIS +.nf +.B "#include " +.B "int TIFFReadBufferSetup(TIFF*, tdata_t buffer, tsize_t size);" +.B "int TIFFWriteBufferSetup(TIFF*, tdata_t buffer, tsize_t size);" +.fi +.SH DESCRIPTION +The following routines are provided for client-control of the +I/O buffers used by the library. +Applications need never use these routines; they are provided only +for ``intelligent clients'' that wish to optimize memory usage and/or +eliminate potential copy operations that can occur when working with +images that have data stored without compression. +.PP +.I TIFFReadBufferSetup +sets up the data buffer used to read raw (encoded) data from a file. +If the specified pointer is +.SM NULL +(zero), then a buffer of the appropriate size is allocated. +Otherwise the caller must guarantee that the buffer is large +enough to hold any individual strip of raw data. +.I TIFFReadBufferSetup +returns a non-zero value if the setup was successful and zero otherwise. +.PP +.I TIFFWriteBufferSetup +sets up the data buffer used to write raw (encoded) data to a file. +If the specified +.I size +is \-1 then the buffer size is selected to hold a complete +tile or strip, or at least 8 kilobytes, whichever is greater. +If the specified +.I buffer +is +.SM NULL +(zero), then a buffer of the appropriate size is dynamically allocated. +.I TIFFWriteBufferSetup +returns a non-zero value if the setup was successful and zero otherwise. +.SH DIAGNOSTICS +.BR "%s: No space for data buffer at scanline %ld" . +.I TIFFReadBufferSetup +was unable to dynamically allocate space for a data buffer. +.PP +.BR "%s: No space for output buffer" . +.I TIFFWriteBufferSetup +was unable to dynamically allocate space for a data buffer. +.SH "SEE ALSO" +.IR libtiff (3T) diff --git a/man/TIFFcodec.3t b/man/TIFFcodec.3t new file mode 100755 index 0000000..a0c5d54 --- /dev/null +++ b/man/TIFFcodec.3t @@ -0,0 +1,73 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFcodec.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1995 Sam Leffler +.\" Copyright (c) 1995 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH CODEC 3T "October 15, 1995" +.SH NAME +TIFFFindCODEC, TIFFRegisterCODEC, TIFFUnRegisterCODEC \- codec-related utility routines +.SH SYNOPSIS +.B "#include " +.br +.B "const TIFFCodec* TIFFFindCODEC(uint16 scheme);" +.br +.B "TIFFCodec* TIFFRegisterCODEC(uint16 scheme, const char* method, TIFFInitMethod init);" +.br +.B "void TIFFUnRegisterCODEC(TIFFCodec* codec);" +.SH DESCRIPTION +.I libtiff +supports a variety of compression schemes implemented by software +.IR codecs . +Each codec adheres to a modular interface that provides for +the decoding and encoding of image data; as well as some other +methods for initialization, setup, cleanup, and the control +of default strip and tile sizes. +Codecs are identified by the associated value of the +.SM TIFF +.I Compression +tag; e.g. 5 for +.SM LZW +compression. +.PP +The +.I TIFFRegisterCODEC +routine can be used to +augment or override the set of codecs available to an application. +If the specified +.I scheme +already has a registered codec then it is +.I overridden +and any images with data encoded with this +compression scheme will be decoded using the supplied coded. +.SH DIAGNOSTICS +.BR "No space to register compression scheme %s" . +.I TIFFRegisterCODEC +was unable to allocate memory for the data structures needed +to register a codec. +.PP +.BR "Cannot remove compression scheme %s; not registered" . +.I TIFFUnRegisterCODEC +did not locate the specified codec in the table of registered +compression schemes. +.SH "SEE ALSO" +.IR libtiff (3T) diff --git a/man/TIFFmemory.3t b/man/TIFFmemory.3t new file mode 100755 index 0000000..0588e1c --- /dev/null +++ b/man/TIFFmemory.3t @@ -0,0 +1,84 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFmemory.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1995 Sam Leffler +.\" Copyright (c) 1995 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH MEMORY 3T "October 15, 1995" +.SH NAME +_TIFFmalloc, \c +_TIFFrealloc, \c +_TIFFfree, \c +_TIFFmemset, \c +_TIFFmemcpy, \c +_TIFFmemcmp, \c +\- memory management-related functions for use with +.SM TIFF +files +.SH SYNOPSIS +.nf +.B "#include " +.B "tdata_t _TIFFmalloc(tsize_t);" +.B "tdata_t _TIFFrealloc(tdata_t, tsize_t);" +.B "void _TIFFfree(tdata_t);" +.B "void _TIFFmemset(tdata_t, int, tsize_t);" +.B "void _TIFFmemcpy(tdata_t, const tdata_t, tsize_t);" +.B "int _TIFFmemcmp(const tdata_t, const tdata_t, tsize_t);" +.fi +.SH DESCRIPTION +These routines are provided for writing portable software that uses +.IR libtiff ; +they hide any memory-management related issues, such as dealing with +segmented architectures found on 16-bit machines. +.PP +.I _TIFFmalloc +and +.I _TIFFrealloc +are used to dynamically allocate and reallocate memory used by +.IR libtiff ; +such as memory passed into the I/O routines. +Memory allocated through these interfaces is released back to the +system using the +.I _TIFFfree +routine. +.PP +Memory allocated through one of the above interfaces can be set to +a known value using +.IR _TIFFmemset , +copied to another memory location using +.IR _TIFFmemcpy , +or compared for equality using +.IR _TIFFmemcmp . +These routines conform to the equivalent +.SM ANSI +C routines: +.IR memset , +.IR memcpy , +and +.IR memcmp , +repsectively. +.SH DIAGNOSTICS +None. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR malloc (3C), +.IR memory (3C) diff --git a/man/TIFFquery.3t b/man/TIFFquery.3t new file mode 100755 index 0000000..3c186c7 --- /dev/null +++ b/man/TIFFquery.3t @@ -0,0 +1,137 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFquery.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH QUERY 3T "October 15, 1995" +.SH NAME +TIFFCurrentRow, +TIFFCurrentStrip, +TIFFCurrentTile, +TIFFCurrentDirectory, +TIFFLastDirectory, +TIFFFileno, +TIFFFileName, +TIFFGetMode, +TIFFIsTiled, +TIFFIsByteSwapped, +TIFFIsUpSampled, +TIFFIsMSB2LSB +\- query routines +.SH SYNOPSIS +.nf +.B "#include " +.B "uint32 TIFFCurrentRow(TIFF* tif)" +.B "tstrip_t TIFFCurrentStrip(TIFF* tif)" +.B "ttile_t TIFFCurrentTile(TIFF* tif)" +.B "tdir_t TIFFCurrentDirectory(TIFF* tif)" +.B "int TIFFLastDirectory(TIFF* tif)" +.B "int TIFFFileno(TIFF* tif)" +.B "char* TIFFFileName(TIFF* tif)" +.B "int TIFFGetMode(TIFF* tif)" +.B "int TIFFIsTiled(TIFF* tif)" +.B "int TIFFIsByteSwapped(TIFF* tif)" +.B "int TIFFIsUpSampled(TIFF* tif)" +.B "int TIFFIsMSB2LSB(TIFF* tif)" +.B "const char* TIFFGetVersion(void)" +.fi +.SH DESCRIPTION +The following routines return status information about an open +.SM TIFF +file. +.PP +.IR TIFFCurrentDirectory +returns the index of the current directory (directories +are numbered starting at 0). +This number is suitable for use with the +.IR TIFFSetDirectory +routine. +.PP +.IR TIFFLastDirectory +returns a non-zero value if the current directory is the +last directory in the file; +otherwise zero is returned. +.PP +.IR TIFFCurrentRow , +.IR TIFFCurrentStrip , +and +.IR TIFFCurrentTile , +return the current row, strip, and tile, respectively, +that is being read or written. +These values are updated each time a read or write is done. +.PP +.IR TIFFFileno +returns the underlying file descriptor used to access the +.SM TIFF +image in the filesystem. +.PP +.IR TIFFFileName +returns the pathname argument passed to +.IR TIFFOpen +or +.IR TIFFFdOpen . +.PP +.IR TIFFGetMode +returns the mode with which the underlying file was opened. +On +.SM UNIX +systems, this is the value passed to the +.IR open (2) +system call. +.PP +.IR TIFFIsTiled +returns a non-zero value if the image data has +a tiled organization. +Zero is returned if the image data is organized in strips. +.PP +.IR TIFFIsByteSwapped +returns a non-zero value if the image data was in a different +byte-order than the host machine. +Zero is returned if the TIFF file and local host byte-orders +are the same. Note that TIFFReadTile(), TIFFReadStrip() and +TIFFReadScanline() functions already normally perform byte +swapping to local host order if needed. +.PP +.I TIFFIsUpSampled +returns a non-zero value if image data returned through the +read interface routines is being up-sampled. +This can be useful to applications that want to calculate +I/O buffer sizes to reflect this usage (though the usual +strip and tile size routines already do this). +.PP +.I TIFFIsMSB2LSB +returns a non-zero value if the image data is being returned with +bit 0 as the most significant bit. +.PP +.IR TIFFGetVersion +returns an +.SM ASCII +string that has a version stamp for the +.SM TIFF +library software. +.SH DIAGNOSTICS +None. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFOpen (3T), +.IR TIFFFdOpen (3T) diff --git a/man/TIFFsize.3t b/man/TIFFsize.3t new file mode 100755 index 0000000..efc395a --- /dev/null +++ b/man/TIFFsize.3t @@ -0,0 +1,57 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFsize.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFSIZE 3T "October 15, 1995" +.SH NAME +TIFFScanlineSize, +TIFFRasterScanlineSize, +\- return the size of various items associated with an open +.SM TIFF +file +.SH SYNOPSIS +.nf +.B "#include " +.B "tsize_t TIFFRasterScanlineSize(TIFF* tif)" +.B "tsize_t TIFFScanlineSize(TIFF* tif)" +.SH DESCRIPTION +.I TIFFScanlineSize +returns the size in bytes of a row of data as it would be +returned in a call to +.IR TIFFReadScanline , +or as it would be expected in a call to +.IR TIFFWriteScanline . +.PP +.I TIFFRasterScanlineSize +returns the size in bytes of a complete decoded and packed +raster scanline. +Note that this value may be different from the value returned by +.I TIFFScanlineSize +if data is stored as separate planes. +.SH DIAGNOSTICS +None. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFOpen (3T), +.IR TIFFReadScanline (3T) diff --git a/man/TIFFstrip.3t b/man/TIFFstrip.3t new file mode 100755 index 0000000..5ddb1e1 --- /dev/null +++ b/man/TIFFstrip.3t @@ -0,0 +1,96 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFstrip.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1992-1997 Sam Leffler +.\" Copyright (c) 1992-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFSTRIP 3T "October 15, 1995" +.SH NAME +TIFFDefaultStripSize, +TIFFStripSize, +TIFFVStripSize, +TIFFComputeStrip, +TIFFNumberOfStrips +\- strip-related utility routines +.SH SYNOPSIS +.nf +.B "#include " +.B "uint32 TIFFDefaultStripSize(TIFF* tif, uint32 estimate)" +.B "tsize_t TIFFStripSize(TIFF* tif)" +.B "tsize_t TIFFVStripSize(TIFF* tif, uint32 nrows)" +.B "tstrip_t TIFFComputeStrip(TIFF* tif, uint32 row, tsample_t sample)" +.B "tstrip_t TIFFNumberOfStrips(TIFF* tif)" +.fi +.SH DESCRIPTION +.I TIFFDefaultStripSize +returns the number of rows for a reasonable-sized strip according +to the current settings of the +.IR ImageWidth , +.IR BitsPerSample , +.IR SamplesPerPixel , +tags and any compression-specific requirements. +If the +.I estimate +parameter, if non-zero, then it is taken as an estimate of the desired +strip size and adjusted according to any compression-specific requirements. +The value returned by this function is typically used to define the +.I RowsPerStrip +tag. +In lieu of any unusual requirements +.I TIFFDefaultStripSize +tries to create strips that have approximately +8 kilobytes of uncompressed data. +.PP +.IR TIFFStripSize +returns the equivalent size for a strip of data as it would +be returned in a call to +.IR TIFFReadEncodedStrip +or as it would be expected in a call to +.IR TIFFWriteEncodedStrip . +.PP +.I TIFFVStripSize +returns the number of bytes in a strip with +.I nrows +rows of data. +.PP +.IR TIFFComputeStrip +returns the strip that contains the specified coordinates. +A valid strip is always returned; +out-of-range coordinate values are clamped to the bounds of the image. +The +.I row +parameter is always used in calculating a strip. +The +.I sample +parameter is used only if data are organized in separate planes (\c +.IR PlanarConfiguration =2). +.PP +.IR TIFFNumberOfStrips +returns the number of strips in the image. +.SH DIAGNOSTICS +None. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFReadEncodedStrip (3T), +.IR TIFFReadRawStrip (3T), +.IR TIFFWriteEncodedStrip (3T), +.IR TIFFWriteRawStrip (3T) diff --git a/man/TIFFswab.3t b/man/TIFFswab.3t new file mode 100755 index 0000000..0942836 --- /dev/null +++ b/man/TIFFswab.3t @@ -0,0 +1,73 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFswab.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH SWAB 3T "December 16, 1991" +.SH NAME +TIFFReverseBits, TIFFSwabShort, TIFFSwabLong, TIFFSwabArrayOfShort, TIFFSwabArrayOfLong \- byte- and bit-swapping routines +.SH SYNOPSIS +.B "#include " +.br +.B "const unsigned char* TIFFGetBitRevTable(int reversed);" +.br +.B "void TIFFReverseBits(u_char* data, unsigned long nbytes)" +.br +.B "void TIFFSwabShort(uint16* data)" +.br +.B "void TIFFSwabLong(uint32* data)" +.br +.B "void TIFFSwabArrayOfShort(uint16* data, unsigned long nshorts)" +.br +.B "void TIFFSwabArrayOfLong(uint32* data, unsigned long nlongs)" +.SH DESCRIPTION +The following routines are used by the library to swap +16- and 32-bit data and to reverse the order of bits in bytes. +.PP +.IR TIFFSwabShort +and +.IR TIFFSwabLong +swap the bytes in a single 16-bit and 32-bit item, respectively. +.IR TIFFSwabArrayOfShort +and +.IR TIFFSwabArrayOfLong +swap the bytes in an array of 16-bit and 32-bit items, respectively. +.PP +.IR TIFFReverseBits +replaces each byte in +.I data +with the equivalent bit-reversed value. +This operation is done with a lookup table, +.I TIFFBitRevTable +which is declared public. +A second table, +.I TIFFNoBitRevTable +is also declared public; it is a lookup table that +can be used as an +.IR "identity function" ; +i.e. +.IR "TIFFNoBitRevTable[n] == n" . +.SH DIAGNOSTICS +None. +.SH "SEE ALSO" +.IR libtiff (3T), diff --git a/man/TIFFtile.3t b/man/TIFFtile.3t new file mode 100755 index 0000000..fa0dd8f --- /dev/null +++ b/man/TIFFtile.3t @@ -0,0 +1,134 @@ +.\" $Header: /home/cvsroot/libtiff/man/TIFFtile.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFTILE 3T "February 14, 1992" +.SH NAME +TIFFTileSize, +TIFFTileRowSize, +TIFFVTileSize, +TIFFDefaultTileSize, +TIFFComputeTile, +TIFFCheckTile, +TIFFNumberOfTiles +\- tile-related utility routines +.SH SYNOPSIS +.nf +.B "#include " +.B "void TIFFDefaultTileSize(TIFF* tif, uint32* tw, uint32* th)" +.B "tsize_t TIFFTileSize(TIFF* tif)" +.B "tsize_t TIFFTileRowSize(TIFF* tif)" +.B "tsize_t TIFFVTileSize(TIFF* tif, uint32 nrows)" +.B "ttile_t TIFFComputeTile(TIFF* tif, uint32 x, uint32 y, uint32 z, tsample_t sample)" +.B "int TIFFCheckTile(TIFF* tif, uint32 x, uint32 y, uint32 z, tsample_t sample)" +.B "ttile_t TIFFNumberOfTiles(TIFF* tif)" +.fi +.SH DESCRIPTION +.I TIFFDefaultTileSize +returns the pixel width and height of a reasonable-sized tile; +suitable for setting up the +.I TileWidth +and +.I TileLength +tags. +If the +.I tw +and +.I th +values passed in are non-zero, then they are adjusted to reflect +any compression-specific requirements. +The returned width and height are constrained to be a multiple +of 16 pixels to conform with the +.SM TIFF +specification. +.PP +.I TIFFTileSize +returns the equivalent size for a tile of data as it would +be returned in a call to +.I TIFFReadTile +or as it would be expected in a call to +.IR TIFFWriteTile . +.PP +.I TIFFVTileSize +returns the number of bytes in a row-aligned tile with +.I nrows +of data. +.PP +.I TIFFTileRowSize +returns the number of bytes of a row of data in a tile. +.PP +.IR TIFFComputeTile +returns the tile that contains the specified coordinates. +A valid tile is always returned; +out-of-range coordinate values are clamped to the bounds of the image. +The +.I x +and +.I y +parameters are always used in calculating a tile. +The +.I z +parameter is used if the image is deeper than 1 slice (\c +.IR ImageDepth >1). +The +.I sample +parameter is used only if data are organized in separate planes (\c +.IR PlanarConfiguration =2). +.PP +.IR TIFFCheckTile +returns a non-zero value if the supplied coordinates are +within the bounds of the image and zero otherwise. +The +.I x +parameter is checked against the value of the +.I ImageWidth +tag. +The +.I y +parameter is checked against the value of the +.I ImageLength +tag. +The +.I z +parameter is checked against the value of the +.I ImageDepth +tag (if defined). +The +.I sample +parameter is checked against the value of the +.I SamplesPerPixel +parameter if the data are organized in separate planes. +.PP +.IR TIFFNumberOfTiles +returns the number of tiles in the image. +.SH DIAGNOSTICS +None. +.SH "SEE ALSO" +.IR libtiff (3T), +.IR TIFFReadEncodedTile (3T), +.IR TIFFReadRawTile (3T), +.IR TIFFReadTile (3T), +.IR TIFFWriteEncodedTile (3T), +.IR TIFFWriteRawTile (3T), +.IR TIFFWriteTile (3T) diff --git a/man/fax2ps.1 b/man/fax2ps.1 new file mode 100755 index 0000000..512fb93 --- /dev/null +++ b/man/fax2ps.1 @@ -0,0 +1,158 @@ +.\" $Header: /home/cvsroot/libtiff/man/fax2ps.1,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1991-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.ds Ps P\s-2OST\s+2S\s-2CRIPT\s+2 +.TH FAX2PS 1 "March 16, 1995" +.SH NAME +fax2ps \- convert a +.SM TIFF +facsimile to compressed \*(Ps\(tm +.SH SYNOPSIS +.B fax2ps +[ +.I options +] [ +.IR file ... +] +.SH DESCRIPTION +.I fax2ps +reads one or more +.SM TIFF +facsimile image files and prints a compressed form of +\*(Ps on the standard output that is suitable for printing. +.PP +By default, each page is scaled to reflect the +image dimensions and resolutions stored in the file. +The +.B \-x +and +.B \-y +options can be used to specify the horizontal and vertical +image resolutions (lines/inch), respectively. +If the +.B \-S +option is specified, each page is scaled to fill an output page. +The default output page is 8.5 by 11 inches. +Alternate page dimensions can be specified in inches with the +.B \-W +and +.B \-H +options. +.PP +By default +.I fax2ps +generates \*(Ps for all pages in the file. +The +.B \-p +option can be used to select one or more pages from +a multi-page document. +.PP +.I fax2ps +generates a compressed form of \*(Ps that is +optimized for sending pages of text to a \*(Ps +printer attached to a host through a low-speed link (such +as a serial line). +Each output page is filled with white and then only +the black areas are drawn. +The \*(Ps specification of the black drawing operations +is optimized by using a special font that encodes the +move-draw operations required to fill +the black regions on the page. +This compression scheme typically results in a substantially +reduced \*(Ps description, relative to the straightforward +imaging of the page with a \*(Ps +.I image +operator. +This algorithm can, however, be ineffective +for continuous-tone and white-on-black images. +For these images, it sometimes is more efficient to send +the raster bitmap image directly; see +.IR tiff2ps (1). +.SH OPTIONS +.TP 10 +.BI \-p " number" +Print only the indicated page. +Multiple pages may be printed by specifying +this option more than once. +.TP 10 +.BI \-x " resolution" +Use +.I resolution +as the horizontal resolution, in dots/inch, of the image data. +By default this value is taken from the file. +.TP 10 +.BI \-y " resolution" +Use +.I resolution +as the vertical resolution, in lines/inch, of the image data. +By default this value is taken from the file. +.TP 10 +.B \-S +Scale each page of image data to fill the output page dimensions. +By default images are presented according to the dimension +information recorded in the +.SM TIFF +file. +.TP 10 +.BI \-W " width" +Use +.I width +as the width, in inches, of the output page. +The default page width is 8.5 inches. +.TP 10 +.BI \-H " height" +Use +.I height +as the height, in inches, of the output page. +The default page height is 11 inches. +.SH DIAGNOSTICS +Some messages about malformed +.SM TIFF +images come from the +.SM TIFF +library. +.PP +Various messages about badly formatted facsimile images +may be generated due to transmission errors in received +facsimile. +.I fax2ps +attempts to recover from such data errors by resynchronizing +decoding at the end of the current scanline. +This can result in long horizontal black lines in the resultant +\*(Ps image. +.SH NOTES +If the destination printer supports \*(Ps Level II then +it is always faster to just send the encoded bitmap generated +by the +.IR tiff2ps (1) +program. +.SH BUGS +.I fax2ps +should probably figure out when it is doing a poor +job of compressing the output and just generate +\*(Ps to image the bitmap raster instead. +.SH "SEE ALSO" +.IR tiff2ps (1), +.IR libtiff (3) diff --git a/man/fax2tiff.1 b/man/fax2tiff.1 new file mode 100755 index 0000000..c7a8d51 --- /dev/null +++ b/man/fax2tiff.1 @@ -0,0 +1,205 @@ +.\" $Header: /home/cvsroot/libtiff/man/fax2tiff.1,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1990-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH FAX2TIFF 1 "September 24, 1994" +.SH NAME +fax2tiff \- create a +.SM TIFF +Class F fax file from raw fax data +.SH SYNOPSIS +.B fax2tiff +[ +.I options +] [ +.B \-o +.I output.tif +] +.I input.g3 +.SH DESCRIPTION +.I Fax2tiff +creates a +.SM TIFF +file containing +.SM CCITT +Group 3 or Group 4 encoded data from one or more files containing ``raw'' +Group 3 encoded data (typically obtained directly from a fax modem). +By default, each row of data in the resultant +.SM TIFF +file is 2-dimensionally encoded and +padded or truncated to 1728 pixels, as needed. +The resultant image is a set of low resolution (98 lines/inch) +or medium resolution (196 lines/inch) +pages, each of which is a single strip of data. +The generated file conforms to the +.SM TIFF +Class F (\c +.SM FAX\c +) specification for storing facsimile data. +This means, in particular, that each page of the data does +.B not +include the trailing +.I "return to control" +(\c +.SM RTC\c +) code; as required +for transmission by the +.SM CCITT +Group 3 specifications. +The old, ``classic'', format is created if the +.B \-c +option is used. +(The Class F format can also be requested with the +.B \-f +option.) +.PP +The default name of the output image is +.IR fax.tif ; +this can be changed with the +.B \-o +option. +Each input file is assumed to be a separate page of facsimile data +from the same document. +The order in which input files are specified on the command +line is the order in which the resultant pages appear in the +output file. +.SH OPTIONS +Options that affect the interpretation of input data are: +.TP +.B \-2 +Assume input data is 2-d Huffman encoded. +.TP +.B \-B +Assume input data was encoded with +black as 0 and white as 1. +.TP +.B \-L +Treat input data as having bits filled from least +significant bit (\c +.SM LSB\c +) to most significant bit (\c +.SM MSB\c +). +(This is the default.) +.TP +.B \-M +Treat input data as having bits filled from most +significant bit (\c +.SM MSB\c +) to most least bit (\c +.SM LSB\c +). +.TP +.B \-R +Specify the vertical resolution, in lines/inch, of the +input images. +By default input are assumed to have a vertical +resolution of 196 lines/inch. +If images are low resolution facsimile, a value of +98 lines/inch should be specified. +.TP +.B \-W +Assume input data was encoded with +black as 1 and white as 0. +(This is the default.) +.PP +Options that affect the output file format are: +.TP +.B \-1 +Force output to be compressed with the 1-dimensional +version of the +.SM CCITT +Group 3 Huffman encoding algorithm. +.TP +.B \-4 +Force output to be compressed with the +.SM CCITT +Group 4 Huffman encoding. +.TP +.B \-o +Specify the name of the output file. +.TP +.B \-p +Force the last bit of each +.I "End Of Line" +(\c +.SM EOL\c +) code to land on a byte boundary. +This ``zero padding'' will be reflected in the contents of the +.I Group3Options +tag of the resultant +.SM TIFF +file. +.TP +.B \-s +Stretch the input image vertically by writing each input row of +data twice to the output file. +.TP +.B \-v +Force +.I fax2tiff +to print the number of rows of data it retrieved from the input file. +.SH DIAGNOSTICS +The following warnings and errors come from the decoding +routines in the library. +.PP +.BR "Warning, %s: Premature EOL at scanline %d (x %d).\en" . +The input data had a row that was shorter than the expected value of 1728. +The row is padded with white. +.PP +.BR "%s: Premature EOF at scanline %d (x %d).\en" . +The decoder ran out of data in the middle of a scanline. +The resultant row is padded with white. +.PP +.BR "%s: Bad code word at row %d, x %d\en" . +An invalid Group 3 +.I code +was encountered while decoding the input file. +The row number and horizontal position is given. +The remainder of the input row is discarded, while +the corresponding output row is padded with white. +.PP +.BR "%s: Bad 2D code word at scanline %d.\en" . +An invalid Group 4 or 2D Group 3 +.I code +was encountered while decoding the input file. +The row number and horizontal position is given. +The remainder of the input row is discarded, while +the corresponding output row is padded with white. +.SH BUGS +Should not have the constant width 1728 built into it. +Input data are assumed to have a a ``top left'' orientation; +it should be possible to override this assumption +from the command line. +.SH "SEE ALSO" +.I "\s-1CCITT\s+1 Recommendation T.4" +(Standardization of Group 3 Facsimile Apparatus for Document Transmission). +.PP +.IR "The Spirit of TIFF Class F" , +an appendix to the TIFF 5.0 specification prepared by Cygnet Technologies. +.PP +.IR tiffinfo (1), +.IR tiffdither (1), +.IR tiffgt (1), +.IR libtiff (3). diff --git a/man/gif2tiff.1 b/man/gif2tiff.1 new file mode 100755 index 0000000..55729fe --- /dev/null +++ b/man/gif2tiff.1 @@ -0,0 +1,78 @@ +.\" $Header: /home/cvsroot/libtiff/man/gif2tiff.1,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1991-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH GIF2TIFF 1 "October 15, 1995" +.SH NAME +gif2tiff \- create a +.SM TIFF +file from a GIF87 format image file +.SH SYNOPSIS +.B gif2tiff +[ +.I options +] +.I input.gif +.I output.tif +.SH DESCRIPTION +.I Gif2tiff +converts a file in the GIF87 format to +.SM TIFF. +The +.SM TIFF +image is created as a palette image, with samples +compressed with the Lempel-Ziv & Welch algorithm (\c +.IR Compression =5). +These characteristics can overriden, or explicitly specified +with the options described below. +.SH OPTIONS +.TP +.B \-c +Specify a compression scheme to use when writing image data: +.B "\-c none" +for no compression, +.B "-c packbits" +for the PackBits compression algorithm, +.B "-c zip" +for the Deflate compression algorithm, +and +.B "\-c lzw" +for Lempel-Ziv & Welch (the default). +.TP +.B \-r +Write data with a specified number of rows per strip; +by default the number of rows/strip is selected so that each strip +is approximately 8 kilobytes. +.SH NOTES +The program is based on Paul Haeberli's +.I fromgif +program which, in turn, is based on Marcel J.E. Mol's GIF reader. +.SH BUGS +Should have more options to control output format. +.SH "SEE ALSO" +.IR pal2rgb (1), +.IR tiffinfo (1), +.IR tiffcp (1), +.IR tiffmedian (1), +.IR libtiff (3) diff --git a/man/libtiff.3t b/man/libtiff.3t new file mode 100755 index 0000000..3c4c336 --- /dev/null +++ b/man/libtiff.3t @@ -0,0 +1,519 @@ +.\" $Header: /home/cvsroot/libtiff/man/libtiff.3t,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH INTRO 3T "August 21, 1997" +.SH NAME +libtiff \- introduction to +.IR libtiff , +a library for reading and writing +.SM TIFF +files +.SH SYNOPSIS +.B "#include " +.br +cc file.c +.B -ltiff +.SH DESCRIPTION +.I libtiff +is a library for reading and writing data files encoded with the +.I "Tag Image File" +format, Revision 6.0 (or revision 5.0 or revision 4.0). +This file format is suitable for archiving multi-color and +monochromatic image data. +.PP +The library supports several compression algorithms, as indicated +by the +.I Compression +field, including: +no compression (1), +.SM CCITT +1D Huffman compression (2), +.SM CCITT +Group 3 Facsimile compression (3), +.SM CCITT +Group 4 Facsimile compression (4), +Lempel-Ziv & Welch compression (5), +baseline JPEG compression (7), +word-aligned 1D Huffman compression (32771), +and +PackBits compression (32773). +In addition, several nonstandard compression algorithms are supported: +the 4-bit compression algorithm used +by the +.I ThunderScan +program (32809) (decompression only), +NeXT's 2-bit compression algorithm (32766) (decompression only), +an experimental LZ-style algorithm known as Deflate (32946), and +an experimental CIE LogLuv compression scheme designed for images +with high dynamic range (32845 for LogL and 32845 for LogLuv). +Directory information may be in either little- or big-endian byte +order\-byte swapping is automatically done by the library. +Data bit ordering may be either Most Significant Bit (\c +.SM MSB\c +) to Least Significant Bit (\c +.SM LSB\c +) or +.SM LSB +to +.SM MSB. +Finally, the library does not support files in which the +.IR BitsPerSample , +.IR Compression , +.IR MinSampleValue , +or +.IR MaxSampleValue +fields are defined differently on a per-sample basis +(in Rev. 6.0 the +.I Compression +tag is not defined on a per-sample basis, so this is immaterial). +.SH "DATA TYPES" +The library makes extensive use of C typedefs to promote portability. +Two sets of typedefs are used, one for communication with clients +of the library and one for internal data structures and parsing of the +.SM TIFF +format. +The following typedefs are exposed to users either through +function definitions or through parameters passed through the +varargs interfaces. +.in +.5i +.sp 5p +.ta +\w'typedef unsigned <\fIthing\fP> uint32; 'u +.nf +typedef unsigned short uint16; 16-bit unsigned integer +typedef unsigned <\fIthing\fP> uint32; 32-bit unsigned integer +.sp 5p +typedef unsigned int ttag_t; directory tag +typedef uint16 tdir_t; directory index +typedef uint16 tsample_t; sample number +typedef uint32 tstrip_t; strip number +typedef uint32 ttile_t; tile number +typedef int32 tsize_t; i/o size in bytes +typedef void* tdata_t; image data ref +typedef void* thandle_t; client data handle +typedef int32 toff_t; file offset +.fi +.sp 5p +.in -.5i +Note that +.IR tstrip_t , +.IR ttile_t , +and +.I tsize_t +are constrained to be no more than 32-bit quantities by +32-bit fields they are stored in in the +.SM TIFF +image. +Likewise +.I tsample_t +is limited by the 16-bit field used to store the +.I SamplesPerPixel +tag. +.I tdir_t +constrains the maximum number of +.SM IFDs +that may appear in an image and may be an arbitrary size (w/o penalty). +.I ttag_t +must be either int, unsigned int, pointer, or double because +the library uses a varargs interface and +.SM "ANSI C" +restricts the type of the parameter before an ellipsis to be a +promoted type. +.I toff_t +is defined as int32 because TIFF file offsets are (unsigned) 32-bit +quantities. +A signed value is used because some interfaces return \-1 on error. +Finally, note that user-specified data references are +passed as opaque handles and only cast at the lowest layers where +their type is presumed. +.SH "LIST OF ROUTINES" +The following routines are part of the library. +Consult specific manual pages for details on their operation. +The manual page names listed below are for systems +where the full function names can not be encoded in the filesystem; +on most systems doing ``man function-name'' will work. +.sp 5p +.nf +.ta \w'TIFFWriteEncodedStrip'u+2n +\w'Appears on Page'u+2n +\fIName\fP \fIAppears on Page\fP \fIDescription\fP +.sp 5p +TIFFCheckTile tile.3t very x,y,z,sample is within image +TIFFClientOpen open.3t open a file for reading or writing +TIFFClose close.3t close an open file +TIFFComputeStrip strip.3t return strip containing y,sample +TIFFComputeTile tile.3t return tile containing x,y,z,sample +TIFFCurrentDirectory query.3t return index of current directory +TIFFCurrentRow query.3t return index of current scanline +TIFFCurrentStrip query.3t return index of current strip +TIFFCurrentTile query.3t return index of current tile +TIFFError error.3t library error handler +TIFFFdOpen open.3t open a file for reading or writing +TIFFFileName query.3t return name of open file +TIFFFileno query.3t return open file descriptor +TIFFFlush flush.3t flush all pending writes +TIFFFlushData flush.3t flush pending data writes +TIFFGetBitRevTable swab.3t return bit reversal table +TIFFGetField getfield.3t return tag value in current directory +TIFFGetFieldDefaulted getfield.3t return tag value in current directory +TIFFGetMode query.3t return open file mode +TIFFGetVersion query.3t return library version string +TIFFIsTiled query.3t return true if image data is tiled +TIFFIsByteSwapped query.3t return true if image data is byte-swapped +TIFFNumberOfStrips strip.3t return number of strips in an image +TIFFNumberOfTiles tile.3t return number of tiles in an image +TIFFOpen open.3t open a file for reading or writing +TIFFPrintDirectory print.3t print description of the current directory +TIFFReadBufferSetup rdbuf.3t specify i/o buffer for reading +TIFFReadDirectory readdir.3t read the next directory +TIFFReadEncodedStrip rdestrip.3t read and decode a strip of data +TIFFReadEncodedTile rdetile.3t read and decode a tile of data +TIFFReadRawStrip rdrstrip.3t read a raw strip of data +TIFFReadRawTile rdrtile.3t read a raw tile of data +TIFFReadRGBAImage rdimage.3t read an image into a fixed format raster +TIFFReadScanline readline.3t read and decode a row of data +TIFFReadTile readtile.3t read and decode a tile of data +TIFFReverseBits swab.3t reverse bits in an array of bytes +TIFFRGBAImageBegin rgbaimage.3t setup decoder state for TIFFRGBAImageGet +TIFFRGBAImageEnd rgbaimage.3t release TIFFRGBAImage decoder state +TIFFRGBAImageGet rgbaimage.3t read and decode an image +TIFFRGBAImageOK rgbaimage.3t is image readable by TIFFRGBAImageGet +TIFFScanlineSize size.3t return size of a scanline +TIFFSetDirectory setdir.3t set the current directory +TIFFSetSubDirectory setdir.3t set the current directory +TIFFSetErrorHandler error.3t set error handler function +TIFFSetField setfield.3t set a tag's value in the current directory +TIFFSetWarningHandler error.3t set warning handler function +TIFFStripSize size.3t return size of a strip +TIFFSwabShort swab.3t swap bytes of short +TIFFSwabLong swab.3t swap bytes of long +TIFFSwabArrayOfShort swab.3t swap bytes of an array of shorts +TIFFSwabArrayOfLong swab.3t swap bytes of an array of longs +TIFFTileRowSize size.3t return size of a row in a tile +TIFFTileSize size.3t return size of a tile +TIFFVGetField getfield.3t return tag value in current directory +TIFFVGetFieldDefaulted getfield.3t return tag value in current directory +TIFFVSetField setfield.3t set a tag's value in the current directory +TIFFWarning warning.3t library warning handler +TIFFWriteDirectory writedir.3t write the current directory +TIFFWriteEncodedStrip wrestrip.3t compress and write a strip of data +TIFFWriteEncodedTile wretile.3t compress and write a tile of data +TIFFWriteRawStrip wrrstrip.3t write a raw strip of data +TIFFWriteRawTile wrrtile.3t write a raw tile of data +TIFFWriteScanline writeline.3t write a scanline of data +TIFFWriteTile wrrtile.3t compress and write a tile of data +.fi +.SH "TAG USAGE" +The table below lists the +.SM TIFF +tags that are recognized and handled by the library. +If no use is indicated in the table, then the library +reads and writes the tag, but does not use it internally. +Note that some tags are meaningful only when a particular +compression scheme is being used; e.g. +.I Group3Options +is only useful if +.I Compression +is set to +.SM CCITT +Group 3 encoding. +Tags of this sort are considered +.I codec-specific +tags and the library does not recognize them except when the +.I Compression +tag has been previously set to the relevant compression scheme. +.sp 5p +.nf +.ta \w'TIFFTAG_JPEGTABLESMODE'u+2n +\w'Value'u+2n +\w'R/W'u+2n +\fITag Name\fP \fIValue\fP \fIR/W\fP \fILibrary Use/Notes\fP +.sp 5p +.nf +Artist 315 R/W +BadFaxLines 326 R/W +BitsPerSample 258 R/W lots +CellLength 265 parsed but ignored +CellWidth 264 parsed but ignored +CleanFaxData 327 R/W +ColorMap 320 R/W +ColorResponseUnit 300 parsed but ignored +Compression 259 R/W choosing codec +ConsecutiveBadFaxLines 328 R/W +DataType 32996 R obsoleted by SampleFormat tag +DateTime 306 R/W +DocumentName 269 R/W +DotRange 336 R/W +ExtraSamples 338 R/W lots +FaxRecvParams 34908 R/W +FaxSubAddress 34909 R/W +FaxRecvTime 34910 R/W +FillOrder 266 R/W control bit order +FreeByteCounts 289 parsed but ignored +FreeOffsets 288 parsed but ignored +GrayResponseCurve 291 parsed but ignored +GrayResponseUnit 290 parsed but ignored +Group3Options 292 R/W used by Group 3 codec +Group4Options 293 R/W +HostComputer 316 R/W +ImageDepth 32997 R/W tile/strip calculations +ImageDescription 270 R/W +ImageLength 257 R/W lots +ImageWidth 256 R/W lots +InkNames 333 R/W +InkSet 332 R/W +JPEGTables 347 R/W used by JPEG codec +Make 271 R/W +Matteing 32995 R obsoleted by ExtraSamples tag +MaxSampleValue 281 R/W +MinSampleValue 280 R/W +Model 272 R/W +NewSubFileType 254 R/W called SubFileType in spec +NumberOfInks 334 R/W +Orientation 274 R/W +PageName 285 R/W +PageNumber 297 R/W +PhotometricInterpretation 262 R/W used by Group 3 and JPEG codecs +PlanarConfiguration 284 R/W data i/o +Predictor 317 R/W used by LZW and Deflate codecs +PrimaryChromacities 319 R/W +ReferenceBlackWhite 532 R/W +ResolutionUnit 296 R/W used by Group 3 codec +RowsPerStrip 278 R/W data i/o +SampleFormat 339 R/W +SamplesPerPixel 277 R/W lots +SMinSampleValue 340 R/W +SMaxSampleValue 341 R/W +Software 305 R/W +StoNits 37439 R/W +StripByteCounts 279 R/W data i/o +StripOffsets 273 R/W data i/o +SubFileType 255 R/W called OSubFileType in spec +TargetPrinter 337 R/W +Thresholding 263 R/W +TileByteCounts 324 R/W data i/o +TileDepth 32998 R/W tile/strip calculations +TileLength 323 R/W data i/o +TileOffsets 324 R/W data i/o +TileWidth 322 R/W data i/o +TransferFunction 301 R/W +WhitePoint 318 R/W +XPosition 286 R/W +XResolution 282 R/W +YCbCrCoefficients 529 R/W used by TIFFRGBAImage support +YCbCrPositioning 531 R/W tile/strip size calulcations +YCbCrSubsampling 530 R/W +YPosition 286 R/W +YResolution 283 R/W used by Group 3 codec +.SH "PSEUDO TAGS" +In addition to the normal +.SM TIFF +tags the library supports a collection of +tags whose values lie in a range outside the valid range of +.SM TIFF +tags. +These tags are termed +.I pseud-tags +and are used to control various codec-specific functions within the library. +The table below summarizes the defined pseudo-tags. +.sp 5p +.nf +.ta \w'TIFFTAG_JPEGTABLESMODE'u+2n +\w'Codec'u+2n +\w'R/W'u+2n +\fITag Name\fP \fICodec\fP \fIR/W\fP \fILibrary Use/Notes\fP +.sp 5p +.nf +TIFFTAG_FAXMODE G3 R/W general codec operation +TIFFTAG_FAXFILLFUNC G3/G4 R/W bitmap fill function +TIFFTAG_JPEGQUALITY JPEG R/W compression quality control +TIFFTAG_JPEGCOLORMODE JPEG R/W control colorspace conversions +TIFFTAG_JPEGTABLESMODE JPEG R/W control contents of \fIJPEGTables\fP tag +TIFFTAG_ZIPQUALITY Deflate R/W compression quality level +TIFFTAG_PIXARLOGDATAFMT PixarLog R/W user data format +TIFFTAG_PIXARLOGQUALITY PixarLog R/W compression quality level +TIFFTAG_SGILOGDATAFMT SGILog R/W user data format +.fi +.TP +.B TIFFTAG_FAXMODE +Control the operation of the Group 3 codec. +Possible values (independent bits that can be combined by +or'ing them together) are: +FAXMODE_CLASSIC +(enable old-style format in which the +.SM RTC +is written at the end of the last strip), +FAXMODE_NORTC +(opposite of +FAXMODE_CLASSIC; +also called +FAXMODE_CLASSF), +FAXMODE_NOEOL +(do not write +.SM EOL +codes at the start of each row of data), +FAXMODE_BYTEALIGN +(align each encoded row to an 8-bit boundary), +FAXMODE_WORDALIGN +(align each encoded row to an 16-bit boundary), +The default value is dependent on the compression scheme; this +pseudo-tag is used by the various G3 and G4 codecs to share code. +.TP +.B TIFFTAG_FAXFILLFUNC +Control the function used to convert arrays of black and white +runs to packed bit arrays. +This hook can be used to image decoded scanlines in multi-bit +depth rasters (e.g. for display in colormap mode) +or for other purposes. +The default value is a pointer to a builtin function that images +packed bilevel data. +.TP +.B TIFFTAG_IPTCNEWSPHOTO +Tag contaings image metadata per the IPTC newsphoto spec: Headline, +captioning, credit, etc... Used by most wire services. +.TP +.B TIFFTAG_PHOTOSHOP +Tag contains Photoshop captioning information and metadata. Photoshop +uses in parallel and redundantly alongside IPTCNEWSPHOTO information. +.TP +.B TIFFTAG_JPEGQUALITY +Control the compression quality level used in the baseline algorithm. +Note that quality levels are in the range 0-100 with a default value of 75. +.TP +.B TIFFTAG_JPEGCOLORMODE +Control whether or not conversion is done between +RGB and YCbCr colorspaces. +Possible values are: +JPEGCOLORMODE_RAW +(do not convert), and +JPEGCOLORMODE_RGB +(convert to/from RGB) +The default value is JPEGCOLORMODE_RAW. +.TP +.B TIFFTAG_JPEGTABLESMODE +Control the information written in the +.I JPEGTables +tag. +Possible values (independent bits that can be combined by +or'ing them together) are: +JPEGTABLESMODE_QUANT +(include quantization tables), +and +JPEGTABLESMODE_HUFF +(include Huffman encoding tables). +The default value is JPEGTABLESMODE_QUANT|JPEGTABLESMODE_HUFF. +.TP +.B TIFFTAG_ZIPQUALITY +Control the compression technique used by the Deflate codec. +Quality levels are in the range 1-9 with larger numbers yielding better +compression at the cost of more computation. +The default quality level is 6 which yields a good time-space tradeoff. +.TP +.B TIFFTAG_PIXARLOGDATAFMT +Control the format of user data passed +.I in +to the PixarLog codec when encoding and passed +.I out +from when decoding. +Possible values are: +PIXARLOGDATAFMT_8BIT +for 8-bit unsigned pixels, +PIXARLOGDATAFMT_8BITABGR +for 8-bit unsigned ABGR-ordered pixels, +PIXARLOGDATAFMT_11BITLOG +for 11-bit log-encoded raw data, +PIXARLOGDATAFMT_12BITPICIO +for 12-bit PICIO-compatible data, +PIXARLOGDATAFMT_16BIT +for 16-bit signed samples, +and +PIXARLOGDATAFMT_FLOAT +for 32-bit IEEE floating point samples. +.TP +.B TIFFTAG_PIXARLOGQUALITY +Control the compression technique used by the PixarLog codec. +This value is treated identically to TIFFTAG_ZIPQUALITY; see the +above description. +.TP +.B TIFFTAG_SGILOGDATAFMT +Control the format of client data passed +.I in +to the SGILog codec when encoding and passed +.I out +from when decoding. +Possible values are: +SGILOGDATAFMT_FLTXYZ +for converting between LogLuv and 32-bit IEEE floating valued XYZ pixels, +SGILOGDATAFMT_16BITLUV +for 16-bit encoded Luv pixels, +SGILOGDATAFMT_32BITRAW and SGILOGDATAFMT_24BITRAW +for no conversion of data, +SGILOGDATAFMT_8BITRGB +for returning 8-bit RGB data (valid only when decoding LogLuv-encoded data), +SGILOGDATAFMT_FLTY +for converting between LogL and 32-bit IEEE floating valued Y pixels, +SGILOGDATAFMT_16BITL +for 16-bit encoded L pixels, +and +SGILOGDATAFMT_8BITGRY +for returning 8-bit greyscale data +(valid only when decoding LogL-encoded data). +.SH DIAGNOSTICS +All error messages are directed through the +.IR TIFFError +routine. +By default messages are directed to +.B stderr +in the form: +.IR "module: message\en." +Warning messages are likewise directed through the +.IR TIFFWarning +routine. +.SH "SEE ALSO" +.IR fax2tiff (1), +.IR gif2tiff (1), +.IR pal2rgb (1), +.IR ppm2tiff (1), +.IR rgb2ycbcr (1), +.IR ras2tiff (1), +.IR sgi2tiff (1), +.IR tiff2bw (1), +.IR tiffdither (1), +.IR tiffdump (1), +.IR tiffcp (1), +.IR tiffcmp (1), +.IR tiffgt (1), +.IR tiffinfo (1), +.IR tiffmedian (1), +.IR tiffsplit (1), +.IR tiffsv (1), +.PP +.IR "Tag Image File Format Specification \(em Revision 6.0" , +an Aldus Technical Memorandum. +.PP +.IR "The Spirit of TIFF Class F" , +an appendix to the TIFF 5.0 specification prepared by Cygnet Technologies. +.SH BUGS +The library does not support multi-sample images +where some samples have different bits/sample. +.PP +The library does not support random access to compressed data +that is organized with more than one row per tile or strip. +The library discards unknown tags. +The library should do more validity checking of a directory's contents. diff --git a/man/pal2rgb.1 b/man/pal2rgb.1 new file mode 100755 index 0000000..70fa629 --- /dev/null +++ b/man/pal2rgb.1 @@ -0,0 +1,108 @@ +.\" $Header: /home/cvsroot/libtiff/man/pal2rgb.1,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1990-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH PAL2RGB 1 "October 15, 1995" +.SH NAME +pal2rgb \- convert a palette color +.SM TIFF +image to a full color image +.SH SYNOPSIS +.B pal2rgb +[ +.I options +] +.I input.tif +.I output.tif +.SH DESCRIPTION +.I Pal2rgb +converts a palette color +.SM TIFF +image to a full color image by +applying the colormap of the palette image to each sample +to generate a full color +.SM RGB +image. +.SH OPTIONS +Options that affect the interpretation of input data are: +.TP +.B \-C +This option overrides the default behaviour of +.I pal2rgb +in determining whether or not +colormap entries contain 16-bit or 8-bit values. +By default the colormap is inspected and +if no colormap entry greater than 255 is found, +the colormap is assumed to have only 8-bit values; otherwise +16-bit values (as required by the +.SM TIFF +specification) are assumed. +The +.B \-C +option can be used to explicitly specify the number of +bits for colormap entries: +.B "\-C 8" +for 8-bit values, +.B "\-C 16" +for 16-bit values. +.PP +Options that affect the output file format are: +.TP +.B \-p +Explicitly select the planar configuration used in organizing +data samples in the output image: +.B "\-p contig" +for samples packed contiguously, and +.B "\-p separate" +for samples stored separately. +By default samples are packed. +.TP +.B \-c +Use the specific compression algorithm to encoded image data +in the output file: +.B "\-c packbits" +for Macintosh Packbits, +.B "\-c lzw" +for Lempel-Ziv & Welch, +.B "\-c zip" +for Deflate, +.B "\-c none" +for no compression. +If no compression-related option is specified, the input +file's compression algorithm is used. +.TP +.B \-r +Explicitly specify the number of rows in each strip of the +output file. +If the +.B \-r +option is not specified, a number is selected such that each +output strip has approximately 8 kilobytes of data in it. +.SH BUGS +Only 8-bit images are handled. +.SH "SEE ALSO" +.IR tiffinfo (1), +.IR tiffcp (1), +.IR tiffmedian (1), +.IR libtiff (3) diff --git a/man/ppm2tiff.1 b/man/ppm2tiff.1 new file mode 100755 index 0000000..fcb6135 --- /dev/null +++ b/man/ppm2tiff.1 @@ -0,0 +1,97 @@ +.\" $Header: /home/cvsroot/libtiff/man/ppm2tiff.1,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1991-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH PPM2TIFF 1 "October 15, 1995" +.SH NAME +ppm2tiff \- create a +.SM TIFF +file from a +.SM PPM +image file +.SH SYNOPSIS +.B ppm2tiff +[ +.I options +] [ +.I input.ppm +] +.I output.tif +.SH DESCRIPTION +.I ppm2tiff +converts a file in the +.SM PPM +image format to +.SM TIFF. +By default, the +.SM TIFF +image is created with data samples packed (\c +.IR PlanarConfiguration =1), +compressed with the Lempel-Ziv & Welch algorithm (\c +.IR Compression =5), +and with each strip no more than 8 kilobytes. +These characteristics can be overriden, or explicitly specified +with the options described below +.PP +If the +.SM PPM +file contains greyscale data, then the +.I PhotometricInterpretation +tag is set to 1 (min-is-black), +otherwise it is set to 2 (RGB). +.PP +If no +.SM PPM +file is specified on the command line, +.I ppm2tiff +will read from the standard input. +.SH OPTIONS +.TP +.B \-c +Specify a compression scheme to use when writing image data: +.B "\-c none" +for no compression, +.B "-c packbits" +for the PackBits compression algorithm, +.B "-c jpeg" +for the baseline JPEG compression algorithm, +.B "-c zip +for the Deflate compression algorithm, +and +.B "\-c lzw" +for Lempel-Ziv & Welch compression (the default). +.TP +.B \-r +Write data with a specified number of rows per strip; +by default the number of rows/strip is selected so that each strip +is approximately 8 kilobytes. +.TP +.B \-R +Mark the resultant image to have the specified +X and Y resolution (in dots/inch). +.SH "SEE ALSO" +.IR tiffinfo (1), +.IR tiffcp (1), +.IR tiffmedian (1), +.IR libtiff (3) diff --git a/man/ras2tiff.1 b/man/ras2tiff.1 new file mode 100755 index 0000000..d0b50f0 --- /dev/null +++ b/man/ras2tiff.1 @@ -0,0 +1,92 @@ +.\" $Header: /home/cvsroot/libtiff/man/ras2tiff.1,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1990-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH RAS2TIFF 1 "October 15, 1995" +.SH NAME +ras2tiff \- create a +.SM TIFF +file from a Sun rasterfile +.SH SYNOPSIS +.B ras2tiff +[ +.I options +] +.I input.ras +.I output.tif +.SH DESCRIPTION +.I ras2tiff +converts a file in the Sun rasterfile format to +.SM TIFF. +By default, the +.SM TIFF +image is created with data samples packed (\c +.IR PlanarConfiguration =1), +compressed with the Lempel-Ziv & Welch algorithm (\c +.IR Compression =5), +and with each strip no more than 8 kilobytes. +These characteristics can overriden, or explicitly specified +with the options described below. +.PP +Any colormap information in the rasterfile is carried over to the +.SM TIFF +file by including a +.I Colormap +tag in the output file. +If the rasterfile has a colormap, the +.I PhotometricInterpretation +tag is set to 3 (palette); +otherwise it is set to 2 (RGB) if the depth +is 24 or 1 (min-is-black) if the depth is not 24. +.SH OPTIONS +.TP +.B \-c +Specify a compression scheme to use when writing image data: +.B "\-c none" +for no compression, +.B "-c packbits" +for the PackBits compression algorithm, +.B "-c jpeg" +for the baseline JPEG compression algorithm, +.B "-c zip +for the Deflate compression algorithm, +and +.B "\-c lzw" +for Lempel-Ziv & Welch (the default). +.TP +.B \-r +Write data with a specified number of rows per strip; +by default the number of rows/strip is selected so that each strip +is approximately 8 kilobytes. +.SH BUGS +Does not handle all possible rasterfiles. +In particular, +.I ras2tiff +does not handle run-length encoded images. +.SH "SEE ALSO" +.IR pal2rgb (1), +.IR tiffinfo (1), +.IR tiffcp (1), +.IR tiffmedian (1), +.IR libtiff (3) diff --git a/man/rgb2ycbcr.1 b/man/rgb2ycbcr.1 new file mode 100755 index 0000000..f7551ae --- /dev/null +++ b/man/rgb2ycbcr.1 @@ -0,0 +1,98 @@ +.\" $Header: /home/cvsroot/libtiff/man/rgb2ycbcr.1,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1991-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH RGB2YCBCR 1 "October 15, 1995" +.SH NAME +rgb2ycbcr \- convert non-YCbCr +.SM TIFF +images to a YCbCr +.SM TIFF +image +.SH SYNOPSIS +.B rgb2ycbcr +[ +.I options +] +.I "src1.tif src2.tif ... dst.tif" +.SH DESCRIPTION +.I rgb2ycbcr +converts +.SM RGB +color, greyscale, or bi-level +.SM TIFF +images to YCbCr images by +transforming and sampling pixel data. +If multiple files are specified on the command line +each source file is converted to a separate directory +in the destination file. +.PP +By default, chrominance samples are created by sampling +2 by 2 blocks of luminance values; this can be changed with +the +.B \-h +and +.B \-v +options. +Output data are compressed with the +.SM LZW +compression scheme, by default; an alternate scheme can be +selected with the +.B \-c +option. +By default, output data are compressed in strips with +the number of rows in each strip selected so that the +size of a strip is never more than 8 kilobytes; +the +.B \-r +option can be used to explicitly set the number of +rows per strip. +.SH OPTIONS +.TP +.B \-c +Specify a compression scheme to use when writing image data: +.B "\-c none" +for no compression, +.B "-c packbits" +for the PackBits compression algorithm, +.B "-c jpeg" +for the JPEG compression algorithm, +and +.B "\-c lzw" +for Lempel-Ziv & Welch (the default). +.TP +.B \-h +Set the horizontal sampling dimension to one of: 1, 2 (default), or 4. +.TP +.B \-r +Write data with a specified number of rows per strip; +by default the number of rows/strip is selected so that each strip +is approximately 8 kilobytes. +.TP +.B \-v +Set the vertical sampling dimension to one of: 1, 2 (default), or 4. +.SH "SEE ALSO" +.IR tiffinfo (1), +.IR tiffcp (1), +.IR libtiff (3) diff --git a/man/sgi2tiff.1 b/man/sgi2tiff.1 new file mode 100755 index 0000000..e492eaa --- /dev/null +++ b/man/sgi2tiff.1 @@ -0,0 +1,90 @@ +.\" $Header: /home/cvsroot/libtiff/man/sgi2tiff.1,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1991-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH SGI2TIFF 1 "October 15, 1995" +.SH NAME +sgi2tiff \- create a +.SM TIFF +file from an +.SM SGI +image file +.SH SYNOPSIS +.B sgi2tiff +[ +.I options +] +.I input.rgb +.I output.tif +.SH DESCRIPTION +.I sgi2tiff +converts a file in the +.SM SGI +image format to +.SM TIFF. +By default, the +.SM TIFF +image is created with data samples packed (\c +.IR PlanarConfiguration =1), +compressed with the Lempel-Ziv & Welch algorithm (\c +.IR Compression =5), +and with each strip no more than 8 kilobytes. +These characteristics can overriden, or explicitly specified +with the options described below. +.SH OPTIONS +.TP +.B \-c +Specify a compression scheme to use when writing image data: +.B "\-c none" +for no compression, +.B "-c packbits" +for the PackBits compression algorithm), +.B "-c jpeg" +for the baseline JPEG compression algorithm, +.B "-c zip +for the Deflate compression algorithm, +and +.B "\-c lzw" +for Lempel-Ziv & Welch (the default). +.TP +.B \-p +Explicitly select the planar configuration used in organizing +data samples in the output image: +.B "\-p contig" +for samples packed contiguously, and +.B "\-p separate" +for samples stored separately. +By default samples are packed. +.TP +.B \-r +Write data with a specified number of rows per strip; +by default the number of rows/strip is selected so that each strip +is approximately 8 kilobytes. +.SH BUGS +Does not record colormap information. +.SH "SEE ALSO" +.IR tiffinfo (1), +.IR tiffcp (1), +.IR tiffmedian (1), +.IR libtiff (3) diff --git a/man/thumbnail.1 b/man/thumbnail.1 new file mode 100755 index 0000000..29a1cce --- /dev/null +++ b/man/thumbnail.1 @@ -0,0 +1,87 @@ +.\" $Header: /home/cvsroot/libtiff/man/thumbnail.1,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1994-1997 Sam Leffler +.\" Copyright (c) 1994-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH THUMBNAIL 1 "September 26, 1994" +.SH NAME +thumbnail \- create a +.SM TIFF +file with thumbnail images +.SH SYNOPSIS +.B thumbnail +[ +.I options +] +.I input.tif +.I output.tif +.SH DESCRIPTION +.I thumbnail +is a program written to show how one might use the +SubIFD tag (#330) to store thumbnail images. +.I thumbnail +copies a +.SM TIFF +Class F facsimile file to the output file +and for each image an 8-bit greyscale +.IR "thumbnail sketch" . +The output file contains the thumbnail image with the associated +full-resolution page linked below with the SubIFD tag. +.PP +By default, thumbnail images are 216 pixels wide by 274 pixels high. +Pixels are calculated by sampling and filtering the input image +with each pixel value passed through a contrast curve. +.SH OPTIONS +.TP +.B \-w +Specify the width of thumbnail images in pixels. +.TP +.B \-h +Specify the height of thumbnail images in pixels. +.TP +.B \-c +Specify a contrast curve to apply in generating the thumbnail images. +By default pixels values are passed through a linear contrast curve +that simply maps the pixel value ranges. +Alternative curves are: +.B exp50 +for a 50% exponential curve, +.B exp60 +for a 60% exponential curve, +.B exp70 +for a 70% exponential curve, +.B exp80 +for a 80% exponential curve, +.B exp90 +for a 90% exponential curve, +.B exp +for a pure exponential curve, +.B linear +for a linear curve. +.SH BUGS +There are no options to control the format of the saved thumbnail images. +.SH "SEE ALSO" +.IR tiffdump (1), +.IR tiffgt (1), +.IR tiffinfo (1), +.IR libtiff (3) diff --git a/man/tiff2bw.1 b/man/tiff2bw.1 new file mode 100755 index 0000000..fbd8b01 --- /dev/null +++ b/man/tiff2bw.1 @@ -0,0 +1,91 @@ +.\" $Header: /home/cvsroot/libtiff/man/tiff2bw.1,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFF2BW 1 "October 15, 1995" +.SH NAME +tiff2bw \- convert a color +.SM TIFF +image to greyscale +.SH SYNOPSIS +.B tiff2bw +[ +options +] +.I input.tif +.I output.tif +.SH DESCRIPTION +.I Tiff2bw +converts an +.SM RGB +or Palette color +.SM TIFF +image to a greyscale image by +combining percentages of the red, green, and blue channels. +By default, output samples are created by taking +28% of the red channel, 59% of the green channel, and 11% of +the blue channel. +To alter these percentages, the +.BR \-R , +.BR \-G , +and +.BR \-B +options may be used. +.SH OPTIONS +.TP +.B \-c +Specify a compression scheme to use when writing image data: +.B "\-c none" +for no compression, +.B "-c packbits" +for the PackBits compression algorithm, +.B "-c zip +for the Deflate compression algorithm, +.B "-c g3 +for the CCITT Group 3 compression algorithm, +.B "-c g4 +for the CCITT Group 4 compression algorithm, +and +.B "\-c lzw" +for Lempel-Ziv & Welch (the default). +.TP +.B \-r +Write data with a specified number of rows per strip; +by default the number of rows/strip is selected so that each strip +is approximately 8 kilobytes. +.TP +.B \-R +Specify the percentage of the red channel to use (default 28). +.TP +.B \-G +Specify the percentage of the green channel to use (default 59). +.TP +.B \-B +Specify the percentage of the blue channel to use (default 11). +.SH "SEE ALSO" +.IR pal2rgb (1), +.IR tiffinfo (1), +.IR tiffcp (1), +.IR tiffmedian (1), +.IR libtiff (3) diff --git a/man/tiff2ps.1 b/man/tiff2ps.1 new file mode 100755 index 0000000..0cb4d47 --- /dev/null +++ b/man/tiff2ps.1 @@ -0,0 +1,177 @@ +.\" $Header: /home/cvsroot/libtiff/man/tiff2ps.1,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.ds Ps P\s-2OST\s+2S\s-2CRIPT\s+2 +.TH TIFF2PS 1 "January 27, 1997" +.SH NAME +tiff2ps \- convert a +.SM TIFF +image to \*(Ps\(tm +.SH SYNOPSIS +.B tiff2ps +[ +.I options +] +.I "input.tif ..." +.SH DESCRIPTION +.I tiff2ps +reads +.SM TIFF +images and writes \*(Ps or Encapsulated \*(Ps (EPS) +on the standard output. +By default, +.I tiff2ps +writes Encapsulated \*(Ps for the first image in the specified +.SM TIFF +image file. +.PP +By default, +.I tiff2ps +will generate \*(Ps that fills a printed area specified +by the +.SM TIFF +tags in the input file. +If the file does not contain +.I XResolution +or +.I YResolution +tags, then the printed area is set according to the image dimensions. +The +.B \-w +and +.B \-h +options (see below) +can be used to set the dimensions of the printed area in inches; +overriding any relevant +.SM TIFF +tags. +.PP +The \*(Ps generated for +.SM RGB, +palette, and +.SM CMYK +images uses the +.I colorimage +operator. +The \*(Ps generated for +greyscale and bilevel images +uses the +.I image +operator. +When the +.I colorimage +operator is used, \*(Ps code to emulate this operator +on older \*(Ps printers is also generated. +Note that this emulation code can be very slow. +.PP +Color images with associated alpha data are composited over +a white background. +.SH OPTIONS +.TP +.B \-1 +Generate \*(Ps Level I (the default). +.TP +.B \-2 +Generate \*(Ps Level II. +.TP +.B \-a +Generate output for all IFDs (pages) in the input file. +.TP +.B \-d +Set the initial +.SM TIFF +directory to the specified directory number. +(NB: directories are numbered starting at zero.) +This option is useful for selecting individual pages in a +multi-page (e.g. facsimile) file. +.TP +.B \-e +Force the generation of Encapsulated \*(Ps. +.TP +.B \-h +Specify the vertical size of the printed area (in inches). +.TP +.B \-o +Set the initial +.SM TIFF +directory to the +.SM IFD +at the specified file offset. +This option is useful for selecting thumbnail images and the +like which are hidden using the SubIFD tag. +.TP +.B \-p +Force the generation of (non-Encapsulated) \*(Ps. +.TP +.B \-s +Generate output for a single IFD (page) in the input file. +.TP +.B \-w +Specify the horizontal size of the printed area (in inches). +.TP +.B \-z +When generating \*(Ps Level II, data is scaled so that it does not +image into the +.I deadzone +on a page (the outer margin that the printing device is unable to mark). +This option suppresses this behaviour. +When \*(Ps Level I is generated, data is imaged to the entire printed +page and this option has no affect. +.SH EXAMPLES +The following generates \*(Ps Level II for all pages of a facsimile: +.RS +.nf +tiff2ps -a2 fax.tif | lpr +.fi +.RE +Note also that if you have version 2.6.1 or newer of Ghostscript then you +can efficiently preview facsimile generated with the above command. +.PP +To generate Encapsulated \*(Ps for a the image at directory 2 +of an image use: +.RS +.nf +tiff2ps -d 1 foo.tif +.fi +.RE +(notice that directories are numbered starting at zero.) +.SH BUGS +Because \*(Ps does not support the notion of a colormap, +8-bit palette images produce 24-bit \*(Ps images. +This conversion results in output that is six times +bigger than the original image and which takes a long time +to send to a printer over a serial line. +Matters are even worse for 4-, 2-, and 1-bit palette images. +.SH BUGS +Does not handle tiled images when generating PS Level I output. +.SH "SEE ALSO" +.IR pal2rgb (1), +.IR tiffinfo (1), +.IR tiffcp (1), +.IR tiffgt (1), +.IR tiffmedian (1), +.IR tiff2bw (1), +.IR tiffsv (1), +.IR libtiff (3) diff --git a/man/tiffcmp.1 b/man/tiffcmp.1 new file mode 100755 index 0000000..98b941a --- /dev/null +++ b/man/tiffcmp.1 @@ -0,0 +1,74 @@ +.\" $Header: /home/cvsroot/libtiff/man/tiffcmp.1,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFCMP 1 "September 26, 1994" +.SH NAME +tiffcmp \- compare two +.SM TIFF +files +.SH SYNOPSIS +.B tiffcmp +[ +.I options +] +.I "file1.tif file2.tif" +.SH DESCRIPTION +.I Tiffcmp +compares the tags and data in two files created according +to the Tagged Image File Format, Revision 6.0. +The schemes used for compressing data in each file +are immaterial when data are compared\-data are compared on +a scanline-by-scanline basis after decompression. +Most directory tags are checked; notable exceptions are: +.IR GrayResponseCurve , +.IR ColorResponseCurve , +and +.IR ColorMap +tags. +Data will not be compared if any of the +.IR BitsPerSample , +.IR SamplesPerPixel , +or +.I ImageWidth +values are not equal. +By default, +.I tiffcmp +will terminate if it encounters any difference. +.SH OPTIONS +.TP +.B \-l +List each byte of image data that differs between the files. +.TP +.B \-t +Ignore any differences in directory tags. +.SH BUGS +Tags that are not recognized by the library are not +compared; they may also generate spurious diagnostics. +.SH "SEE ALSO" +.IR pal2rgb (1), +.IR tiffinfo (1), +.IR tiffcp (1), +.IR tiffmedian (1), +.IR libtiff (3) diff --git a/man/tiffcp.1 b/man/tiffcp.1 new file mode 100755 index 0000000..156b680 --- /dev/null +++ b/man/tiffcp.1 @@ -0,0 +1,221 @@ +.\" $Header: /home/cvsroot/libtiff/man/tiffcp.1,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFCP 1 "January 9, 1996" +.SH NAME +tiffcp \- copy (and possibly convert) a +.SM TIFF +file +.SH SYNOPSIS +.B tiffcp +[ +.I options +] +.I "src1.tif ... srcN.tif dst.tif" +.SH DESCRIPTION +.I tiffcp +combines one or more files created according +to the Tag Image File Format, Revision 6.0 +into a single +.SM TIFF +file. +Because the output file may be compressed using a different +algorithm than the input files, +.I tiffcp +is most often used to convert between different compression +schemes. +.PP +By default, +.I tiffcp +will copy all the understood tags in a +.SM TIFF +directory of an input +file to the associated directory in the output file. +.PP +.I tiffcp +can be used to reorganize the storage characteristics of data +in a file, but it is explicitly intended to not alter or convert +the image data content in any way. +.SH OPTIONS +.TP +.B \-B +Force output to be written with Big-Endian byte order. +This option only has an effect when the output file is created or +overwritten and not when it is appended to. +.TP +.B \-C +Suppress the use of ``strip chopping'' when reading images +that have a single strip/tile of uncompressed data. +.TP +.B \-c +Specify the compression to use for data written to the output file: +.B none +for no compression, +.B packbits +for PackBits compression, +.B lzw +for Lempel-Ziv & Welch compression, +.B jpeg +for baseline JPEG compression, +.B zip +for Deflate compression, +.B g3 +for CCITT Group 3 (T.4) compression, +and +.B g4 +for CCITT Group 4 (T.6) compression. +By default +.I tiffcp +will compress data according to the value of the +.I Compression +tag found in the source file. +.IP +The +.SM CCITT +Group 3 and Group 4 compression algorithms can only +be used with bilevel data. +.IP +Group 3 compression can be specified together with several +T.4-specific options: +.B 1d +for 1-dimensional encoding, +.B 2d +for 2-dimensional encoding, +and +.B fill +to force each encoded scanline to be zero-filled so that the +terminating EOL code lies on a byte boundary. +Group 3-specific options are specified by appending a ``:''-separated +list to the ``g3'' option; e.g. +.B "\-c g3:2d:fill" +to get 2D-encoded data with byte-aligned EOL codes. +.IP +.SM LZW +compression can be specified together with a +.I predictor +value. +A predictor value of 2 causes +each scanline of the output image to undergo horizontal +differencing before it is encoded; a value +of 1 forces each scanline to be encoded without differencing. +LZW-specific options are specified by appending a ``:''-separated +list to the ``lzw'' option; e.g. +.B "\-c lzw:2" +for +.SM LZW +compression with horizontal differencing. +.TP +.B \-f +Specify the bit fill order to use in writing output data. +By default, +.I tiffcp +will create a new file with the same fill order as the original. +Specifying +.B "\-f lsb2msb" +will force data to be written with the FillOrder tag set to +.SM LSB2MSB, +while +.B "\-f msb2lsb" +will force data to be written with the FillOrder tag set to +.SM MSB2LSB. +.TP +.B \-l +Specify the length of a tile (in pixels). +.I tiffcp +attempts to set the tile dimensions so +that no more than 8 kilobytes of data appear in a tile. +.TP +.B \-L +Force output to be written with Little-Endian byte order. +This option only has an effect when the output file is created or +overwritten and not when it is appended to. +.TP +.B \-M +Suppress the use of memory-mapped files when reading images. +.TP +.B \-p +Specify the planar configuration to use in writing image data +that has one 8-bit sample per pixel. +By default, +.I tiffcp +will create a new file with the same planar configuration as +the original. +Specifying +.B "\-p contig" +will force data to be written with multi-sample data packed +together, while +.B "\-p separate" +will force samples to be written in separate planes. +.TP +.B \-r +Specify the number of rows (scanlines) in each strip of data +written to the output file. +By default, +.I tiffcp +attempts to set the rows/strip +that no more than 8 kilobytes of data appear in a strip. +.TP +.B \-s +Force the output file to be written with data organized in strips +(rather than tiles). +.TP +.B \-t +Force the output file to be written wtih data organized in tiles +(rather than strips). +options can be used to force the resultant image to be written +as strips or tiles of data, respectively. +.TP +.B \-w +Specify the width of a tile (in pixels). +.I tiffcp +attempts to set the tile dimensions so +that no more than 8 kilobytes of data appear in a tile. +.SH EXAMPLES +The following concatenates two files and writes the result using +.SM LZW +encoding: +.RS +.nf +tiffcp -c lzw a.tif b.tif result.tif +.fi +.RE +.PP +To convert a G3 1d-encoded +.SM TIFF +to a single strip of G4-encoded data the following might be used: +.RS +.nf +tiffcp -c g4 -r 10000 g3.tif g4.tif +.fi +.RE +(1000 is just a number that is larger than the number of rows in +the source file.) +.SH "SEE ALSO" +.IR pal2rgb (1), +.IR tiffinfo (1), +.IR tiffcmp (1), +.IR tiffmedian (1), +.IR tiffsplit (1), +.IR libtiff (3) diff --git a/man/tiffdither.1 b/man/tiffdither.1 new file mode 100755 index 0000000..6b68ae7 --- /dev/null +++ b/man/tiffdither.1 @@ -0,0 +1,125 @@ +.\" $Header: /home/cvsroot/libtiff/man/tiffdither.1,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1990-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFDITHER 1 "October 15, 1995" +.SH NAME +tiffdither \- convert a greyscale image to bilevel using dithering +.SH SYNOPSIS +.B tiffdither +[ +.I options +] +.I input.tif +.I output.tif +.SH DESCRIPTION +.I tiffdither +converts a single channel 8-bit greyscale image to a bilevel image +using Floyd-Steinberg error propagation with threholding. +.SH OPTIONS +.TP +.B \-c +Specify the compression to use for data written to the output file: +.B none +for no compression, +.B packbits +for PackBits compression, +.B lzw +for Lempel-Ziv & Welch compression, +.B zip +for Deflate compression, +.B g3 +for CCITT Group 3 (T.4) compression, +and +.B g4 +for CCITT Group 4 (T.6) compression. +By default +.I tiffdither +will compress data according to the value of the +.I Compression +tag found in the source file. +.IP +The +.SM CCITT +Group 3 and Group 4 compression algorithms can only +be used with bilevel data. +.IP +Group 3 compression can be specified together with several +T.4-specific options: +.B 1d +for 1-dimensional encoding, +.B 2d +for 2-dimensional encoding, +and +.B fill +to force each encoded scanline to be zero-filled so that the +terminating EOL code lies on a byte boundary. +Group 3-specific options are specified by appending a ``:''-separated +list to the ``g3'' option; e.g. +.B "\-c g3:2d:fill" +to get 2D-encoded data with byte-aligned EOL codes. +.IP +.SM LZW +compression can be specified together with a +.I predictor +value. +A predictor value of 2 causes +each scanline of the output image to undergo horizontal +differencing before it is encoded; a value +of 1 forces each scanline to be encoded without differencing. +LZW-specific options are specified by appending a ``:''-separated +list to the ``lzw'' option; e.g. +.B "\-c lzw:2" +for +.SM LZW +compression with horizontal differencing. +.TP +.B \-f +Specify the bit fill order to use in writing output data. +By default, +.I tiffdither +will create a new file with the same fill order as the original. +Specifying +.B "\-f lsb2msb" +will force data to be written with the FillOrder tag set to +.SM LSB2MSB , +while +.B "\-f msb2lsb" +will force data to be written with the FillOrder tag set to +.SM MSB2LSB . +.TP +.B \-t +Set the threshold value for dithering. +By default the threshold value is 128. +.SH NOTES +The dither algorithm is taken from the +.IR tiffmedian (1) +program (written by Paul Heckbert). +.SH "SEE ALSO" +.IR pal2rgb (1), +.IR fax2tiff (1), +.IR tiffinfo (1), +.IR tiffcp (1), +.IR tiff2bw (1), +.IR libtiff (3) diff --git a/man/tiffdump.1 b/man/tiffdump.1 new file mode 100755 index 0000000..d591d9d --- /dev/null +++ b/man/tiffdump.1 @@ -0,0 +1,74 @@ +.\" $Header: /home/cvsroot/libtiff/man/tiffdump.1,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFDUMP 1 "October 15, 1995" +.SH NAME +tiffdump \- print verbatim information about +.SM TIFF +files +.SH SYNOPSIS +.B tiffdump +[ +.I options +] +.I "name \&..." +.SH DESCRIPTION +.I tiffdump +displays directory information from files created according +to the Tag Image File Format, Revision 6.0. +The header of each +.SM TIFF +file (magic number, version, and first directory offset) +is displayed, followed by the tag contents of each directory in the file. +For each tag, the name, datatype, count, and value(s) is displayed. +When the symbolic name for a tag or datatype is known, the symbolic +name is displayed followed by it's numeric (decimal) value. +Tag values are displayed enclosed in ``<>'' characters immediately +preceded by the value of the count field. +For example, an +.I ImageWidth +tag might be displayed as ``ImageWidth (256) SHORT (3) 1<800>''. +.PP +.I tiffdump +is particularly useful for investigating the contents of +.SM TIFF +files that +.I libtiff +does not understand. +.SH OPTIONS +.TP +.B \-h +Force numeric data to be printed in hexadecimal rather than the +default decimal. +.TP +.B \-o +Dump the contents of the +.SM IFD +at the a particular file offset. +The file offset may be specified using the usual C-style syntax; +i.e. a leading ``0x'' for hexadecimal and a leading ``0'' for octal. +.SH "SEE ALSO" +.IR tiffinfo (1), +.IR libtiff (3) diff --git a/man/tiffgt.1 b/man/tiffgt.1 new file mode 100755 index 0000000..cac81d5 --- /dev/null +++ b/man/tiffgt.1 @@ -0,0 +1,242 @@ +.\" $Header: /home/cvsroot/libtiff/man/tiffgt.1,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFGT 1 "October 15, 1995" +.SH NAME +tiffgt \- display an image stored in a +.SM TIFF +file (Silicon Graphics version) +.SH SYNOPSIS +.B tiffgt +[ +.I options +] +.I "input.tif ..." +.SH DESCRIPTION +.I tiffgt +displays one or more images stored using the +Tag Image File Format, Revision 6.0. +Each image is placed in a fixed size window that the +user must position on the display (unless configured +otherwise through X defaults). +If the display has fewer than 24 bitplanes, or if the +image does not warrant full color, then +.SM RGB +color values are mapped to the closest values that exist in +the colormap (this is done using the +.I rgbi +routine found in the graphics utility library +.BR \-lgutil .) +.PP +.I tiffgt +correctly handles files with any of the following characteristics: +.sp .5 +.in +0.5i +.ta \w'\fIPhotometricInterpretation\fP 'u +.nf +BitsPerSample 1, 2, 4, 8, 16 +SamplesPerPixel 1, 3, 4 (the 4th sample is ignored) +PhotometricInterpretation 0 (min-is-white), 1 (min-is-black), 2 (RGB), 3 (palette), 6 (YCbCr) +PlanarConfiguration 1 (contiguous), 2 (separate) +Orientation 1 (top-left), 4 (bottom-left) +.fi +.in -0.5i +.sp .5 +Data may be organized as strips or tiles and may be +compressed with any of the compression algorithms supported +by the +.IR libtiff (3) +library. +.PP +For palette images (\c +.IR PhotomatricInterpretation =3), +.I tiffgt +inspects the colormap values and assumes either 16-bit +or 8-bit values according to the maximum value. +That is, if no colormap entry greater than 255 is found, +.I tiffgt +assumes the colormap has only 8-bit values; otherwise +it assumes 16-bit values. +This inspection is done to handle old images written by +previous (incorrect) versions of +.IR libtiff . +.PP +.I tiffgt +can be used to display multiple images one-at-a-time. +The left mouse button switches the display to the first image in the +.I next +file in the list of files specified on the command line. +The right mouse button switches to the first image in the +.I previous +file in the list. +The middle mouse button causes the first image in the first file +specified on the command line to be displayed. +In addition the following keyboard commands are recognized: +.TP +.B b +Use a +.I PhotometricIntepretation +of MinIsBlack in displaying the current image. +.TP +.B l +Use a +.I FillOrder +of lsb-to-msb in decoding the current image. +.TP +.B m +Use a +.I FillOrder +of msb-tolmsb in decoding the current image. +.TP +.B c +Use a colormap visual to display the current image. +.TP +.B r +Use a true color (24-bit RGB) visual to display the current image. +.TP +.B w +Use a +.I PhotometricIntepretation +of MinIsWhite in displaying the current image. +.TP +.B W +Toggle (enable/disable) display of warning messages from the +.SM TIFF +library when decoding images. +.TP +.B E +Toggle (enable/disable) display of error messages from the +.SM TIFF +library when decoding images. +.TP +.B z +Reset all parameters to their default settings (\c +.IR FillOrder , +.IR PhotometricInterpretation , +handling of warnings and errors). +.TP +.B PageUp +Display the previous image in the current file or the last +image in the previous file. +.TP +.B PageDown +Display the next image in the current file or the first image +in the next file. +.TP +.B Home +Display the first image in the current file. +.TP +.B End +Display the last image in the current file (unimplemented). +.SH OPTIONS +.TP +.B \-c +Force image display in a colormap window. +.TP +.B \-d +Specify an image to display by directory number. +By default the first image in the file is displayed. +Directories are numbered starting at zero. +.TP +.B \-e +Enable reporting of error messages from the +.SM TIFF +library. +By default +.I tiffgt +silently ignores images that cannot be read. +.TP +.B \-f +Force +.I tiffgt +to run as a foreground process. +By default +.I tiffgt +will place itself in the background once it has opened the +requested image file. +.TP +.B \-l +Force the presumed bit ordering to be +.SM LSB +to +.SM MSB. +.TP +.B \-m +Force the presumed bit ordering to be +.SM MSB +to +.SM LSB. +.TP +.B \-o +Specify an image to display by directory offset. +By default the first image in the file is displayed. +Directories offsets may be specified using C-style syntax; +i.e. a leading ``0x'' for hexadecimal and a leading ``0'' for octal. +.TP +.B \-p +Override the value of the +.I PhotometricInterpretation +tag; the parameter may be one of: +.IR miniswhite , +.IR minisblack , +.IR rgb , +.IR palette , +.IR mask , +.IR separated , +.IR ycbcr , +and +.IR cielab . +.TP +.B \-r +Force image display in a full color window. +.TP +.B \-s +Stop on the first read error. +By default all errors in the input data are ignored and +.I tiffgt +does it's best to display as much of an image as possible. +.TP +.B \-w +Enable reporting of warning messages from the +.SM TIFF +library. +By default +.I tiffgt +ignores warning messages generated when reading an image. +.TP +.B \-v +Place information in the title bar describing +what type of window (full color or colormap) is being +used, the name of the input file, and the directory +index of the image (if non-zero). +By default, the window type is not shown in the title bar. +.SH BUGS +Images wider and taller than the display are silently truncated to avoid +crashing old versions of the window manager. +.SH "SEE ALSO" +.IR tiffdump (1), +.IR tiffinfo (1), +.IR tiffcp (1), +.IR libtiff (3) diff --git a/man/tiffinfo.1 b/man/tiffinfo.1 new file mode 100755 index 0000000..9e6dc73 --- /dev/null +++ b/man/tiffinfo.1 @@ -0,0 +1,85 @@ +.\" $Header: /home/cvsroot/libtiff/man/tiffinfo.1,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFINFO 1 "January 27, 1997" +.SH NAME +tiffinfo \- print information about +.SM TIFF +files +.SH SYNOPSIS +.B tiffinfo +[ +.I options +] +.I "input.tif \&..." +.SH DESCRIPTION +.I Tiffinfo +displays information about files created according +to the Tag Image File Format, Revision 6.0. +By default, the contents of each +.SM TIFF +directory in each file +is displayed, with the value of each tag shown symbolically +(where sensible). +.SH OPTIONS +.TP +.B \-c +Display the colormap and color/gray response curves, if present. +.TP +.B \-D +In addition to displaying the directory tags, +read and decompress all the data in each image (but not display it). +.TP +.B \-d +In addition to displaying the directory tags, +print each byte of decompressed data in hexadecimal. +.TP +.B \-j +Display any \s-2JPEG\s0-related tags that are present. +.TP +.B \-o +Set the initial +.SM TIFF +directory according to the specified file offset. +The file offset may be specified using the usual C-style syntax; +i.e. a leading ``0x'' for hexadecimal and a leading ``0'' for octal. +.TP +.B \-s +Display the offsets and byte counts for each data strip in a directory. +.TP +.B \-z +Enable strip chopping when reading image data. +.TP +.B \-# +Set the initial +.SM TIFF +directory to +.IR # . +.SH "SEE ALSO" +.IR pal2rgb (1), +.IR tiffcp (1), +.IR tiffcmp (1), +.IR tiffmedian (1), +.IR libtiff (3) diff --git a/man/tiffmedian.1 b/man/tiffmedian.1 new file mode 100755 index 0000000..9a83e30 --- /dev/null +++ b/man/tiffmedian.1 @@ -0,0 +1,109 @@ +.\" $Header: /home/cvsroot/libtiff/man/tiffmedian.1,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1990-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFMEDIAN 1 "October 15, 1995" +.SH NAME +tiffmedian \- apply the median cut algorithm to data in a +.SM TIFF +file +.SH SYNOPSIS +.B tiffmedian +[ +.I options +] +.I input.tif +.I output.tif +.SH DESCRIPTION +.I tiffmedian +applys the median cut algorithm to an +.SM RGB +image in +.I input.tif +to generate a palette image that is written to +.IR output.tif . +The generated colormap has, by default, 256 entries. +The image data is quantized by mapping each +pixel to the closest color values in the colormap. +.SH OPTIONS +.TP +.B \-c +Specify the compression to use for data written to the output file: +.B none +for no compression, +.B packbits +for PackBits compression, +.B lzw +for Lempel-Ziv & Welch compression, +and +.B zip +for Deflate compression. +By default +.I tiffmedian +will compress data according to the value of the +.I Compression +tag found in the source file. +.IP +.SM LZW +compression can be specified together with a +.I predictor +value. +A predictor value of 2 causes +each scanline of the output image to undergo horizontal +differencing before it is encoded; a value +of 1 forces each scanline to be encoded without differencing. +LZW-specific options are specified by appending a ``:''-separated +list to the ``lzw'' option; e.g. +.B "\-c lzw:2" +for +.SM LZW +compression with horizontal differencing. +.TP +.B \-C +Specify the number of entries to use in the generated colormap. +By default all 256 entries/colors are used. +.TP +.B \-f +Apply Floyd-Steinberg dithering before selecting a colormap entry. +.TP +.B \-r +Specify the number of rows (scanlines) in each strip of data +written to the output file. +By default, +.I tiffmedian +attempts to set the rows/strip +that no more than 8 kilobytes of data appear in a strip. +.SH NOTES +This program is derived from Paul Heckbert's +.I median +program. +.SH "SEE ALSO" +.IR pal2rgb (1), +.IR tiffinfo (1), +.IR tiffcp (1), +.IR tiffcmp (1), +.IR libtiff (3) +.PP +"Color Image Quantization for Frame Buffer Display", Paul +Heckbert, SIGGRAPH proceedings, 1982, pp. 297-307. diff --git a/man/tiffsplit.1 b/man/tiffsplit.1 new file mode 100755 index 0000000..0d7baa5 --- /dev/null +++ b/man/tiffsplit.1 @@ -0,0 +1,66 @@ +.\" $Header: /home/cvsroot/libtiff/man/tiffsplit.1,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1992-1997 Sam Leffler +.\" Copyright (c) 1992-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFCP 1 "September 26, 1994" +.SH NAME +tiffsplit \- split a multi-image +.SM TIFF +into single-image +.SM TIFF +files +.SH SYNOPSIS +.B tiffsplit +.I src.tif +[ +.I prefix +] +.SH DESCRIPTION +.I tiffsplit +takes a multi-directory (page) +.SM TIFF +file and creates one or more single-directory (page) +.SM TIFF +files from it. +The output files are given names created by concatenating +a prefix, a lexically ordered +suffix in the range [\fIaa\fP-\fIzz\fP], the suffix +.I .tif +(e.g. +.IR xaa.tif , +.IR xab.tif , +\... +.IR xzz.tif ). +If a prefix is not specified on the command line, +the default prefix of +.I x +is used. +.SH OPTIONS +None. +.SH BUGS +Only a select set of ``known tags'' is copied when spliting. +.SH "SEE ALSO" +.IR tiffcp (1), +.IR tiffinfo (1), +.IR libtiff (3) diff --git a/man/tiffsv.1 b/man/tiffsv.1 new file mode 100755 index 0000000..b2853b9 --- /dev/null +++ b/man/tiffsv.1 @@ -0,0 +1,139 @@ +.\" $Header: /home/cvsroot/libtiff/man/tiffsv.1,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +.\" +.\" Copyright (c) 1988-1997 Sam Leffler +.\" Copyright (c) 1991-1997 Silicon Graphics, Inc. +.\" +.\" Permission to use, copy, modify, distribute, and sell this software and +.\" its documentation for any purpose is hereby granted without fee, provided +.\" that (i) the above copyright notices and this permission notice appear in +.\" all copies of the software and related documentation, and (ii) the names of +.\" Sam Leffler and Silicon Graphics may not be used in any advertising or +.\" publicity relating to the software without the specific, prior written +.\" permission of Sam Leffler and Silicon Graphics. +.\" +.\" THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +.\" EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +.\" WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +.\" ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +.\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +.\" WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +.\" LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +.\" OF THIS SOFTWARE. +.\" +.if n .po 0 +.TH TIFFSV 1 "October 15, 1995" +.SH NAME +tiffsv \- save an image from the framebuffer in a +.SM TIFF +file (Silicon Graphics version) +.SH SYNOPSIS +.B tiffsv +[ +.I options +] +.I output.tif +[ +.I "x1 x2 y1 y2" +] +.SH DESCRIPTION +.I tiffsv +saves all or part of the framebuffer in a file using the +Tag Image File Format, Revision 6.0. +By default, the image is saved with data samples packed (\c +.IR PlanarConfiguration =1), +compressed with the Lempel-Ziv & Welch algorithm (\c +.IR Compression =5), +and with each strip no more than 8 kilobytes. +These characteristics can be overriden, or explicitly specified +with the options described below. +.SH OPTIONS +.TP +.B \-b +Save the image as a greyscale image +as if it were processed by +.IR tiff2bw (1). +This option is included for compatibility with the standard +.IR scrsave (6D) +program. +.TP +.B \-c +Specify the compression to use for data written to the output file: +.B none +for no compression, +.B packbits +for PackBits compression, +.B jpeg +for baseline JPEG compression, +.B zip +for Deflate compression, +and +.B lzw +for Lempel-Ziv & Welch compression (default). +.IP +.SM LZW +compression can be specified together with a +.I predictor +value. +A predictor value of 2 causes +each scanline of the output image to undergo horizontal +differencing before it is encoded; a value +of 1 forces each scanline to be encoded without differencing. +LZW-specific options are specified by appending a ``:''-separated +list to the ``lzw'' option; e.g. +.B "\-c lzw:2" +for +.SM LZW +compression with horizontal differencing. +.TP +.B \-p +Specify the planar configuration to use in writing image data. +By default, +.I tiffsv +will create a new file with the data samples packed contiguously. +Specifying +.B "\-p contig" +will force data to be written with multi-sample data packed +together, while +.B "\-p separate" +will force samples to be written in separate planes. +.TP +.B \-r +Specify the number of rows (scanlines) in each strip of data +written to the output file. +By default, +.I tiffsv +attempts to set the rows/strip +that no more than 8 kilobytes of data appear in a strip. +.SH NOTE +Except for the use of +.SM TIFF, +this program is equivalent to the standard +.I scrsave +program. +This means, for example, that you can use it in conjunction with +the standard +.IR icut +program simply by creating a link called +.IR scrsave , +or by creating a shell script called +.I scrsave +that invokes +.I tiffgt +with the appropriate options. +.SH BUGS +If data are saved compressed and in separate planes, then the +rows in each strip is silently set to one to avoid limitations +in the +.IR libtiff (3) +library. +.SH "SEE ALSO" +.IR scrsave (6D) +.IR pal2rgb (1), +.IR tiffdump (1), +.IR tiffgt (1), +.IR tiffinfo (1), +.IR tiffcp (1), +.IR tiffmedian (1), +.IR libtiff (3) diff --git a/port/Makefile.in b/port/Makefile.in new file mode 100755 index 0000000..5f5d145 --- /dev/null +++ b/port/Makefile.in @@ -0,0 +1,67 @@ +#! smake +# $Header: /home/cvsroot/libtiff/port/Makefile.in,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +# +# @WARNING@ +# +# Tag Image File Format Library +# +# Copyright (c) 1995-1997 Sam Leffler +# Copyright (c) 1995-1997 Silicon Graphics, Inc. +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Sam Leffler and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# +SRCDIR = @RELSRCDIR@/port +VPATH = @RELSRCDIR@/port + +# +# VERSION: @VERSION@ +# DATE: @DATE@ +# TARGET: @TARGET@ +# CCOMPILER: @CCOMPILER@ +# + +SHELL = @SCRIPT_SH@ +NULL = +CC = @CCOMPILER@ +AR = @AR@ +AROPTS = @AROPTS@ +RANLIB = @RANLIB@ + +IPATH = -I. -I${SRCDIR} +COPTS = @GCOPTS@ +OPTIMIZER=-O +CFLAGS = @ENVOPTS@ ${COPTS} ${OPTIMIZER} ${IPATH} + +CFILES = @PORTFUNCS@ +OBJECTS = ${CFILES:.c=.o} +TARGETS = libport.a + +default all: ${TARGETS} + +libport.a: ${OBJECTS} + @rm -f $@; + ${AR} ${AROPTS} $@ ${OBJECTS} + ${RANLIB} $@ +${PORT}/libport.a: libport.a + +install: default + +clean: + rm -f ${TARGETS} ${OBJS} core a.out diff --git a/port/getopt.c b/port/getopt.c new file mode 100755 index 0000000..230d09b --- /dev/null +++ b/port/getopt.c @@ -0,0 +1,116 @@ +/* + * Copyright (c) 1987 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)getopt.c 4.13 (Berkeley) 2/23/91"; +#endif /* LIBC_SCCS and not lint */ + +#include +#include + +/* + * get option letter from argument vector + */ +int opterr = 1, /* if error message should be printed */ + optind = 1, /* index into parent argv vector */ + optopt; /* character checked for validity */ +char *optarg; /* argument associated with option */ + +#define BADCH (int)'?' +#define EMSG "" + +int +getopt(int nargc, char** nargv, char* ostr) +{ + static char *place = EMSG; /* option letter processing */ + register char *oli; /* option letter list index */ + char *p; + + if (!*place) { /* update scanning pointer */ + if (optind >= nargc || *(place = nargv[optind]) != '-') { + place = EMSG; + return(EOF); + } + if (place[1] && *++place == '-') { /* found "--" */ + ++optind; + place = EMSG; + return(EOF); + } + } /* option letter okay? */ + if ((optopt = (int)*place++) == (int)':' || + !(oli = strchr(ostr, optopt))) { + /* + * if the user didn't specify '-' as an option, + * assume it means EOF. + */ + if (optopt == (int)'-') + return(EOF); + if (!*place) + ++optind; + if (opterr) { + if (!(p = strrchr(*nargv, '/'))) + p = *nargv; + else + ++p; + (void)fprintf(stderr, "%s: illegal option -- %c\n", + p, optopt); + } + return(BADCH); + } + if (*++oli != ':') { /* don't need argument */ + optarg = NULL; + if (!*place) + ++optind; + } + else { /* need an argument */ + if (*place) /* no white space */ + optarg = place; + else if (nargc <= ++optind) { /* no arg */ + place = EMSG; + if (!(p = strrchr(*nargv, '/'))) + p = *nargv; + else + ++p; + if (opterr) + (void)fprintf(stderr, + "%s: option requires an argument -- %c\n", + p, optopt); + return(BADCH); + } + else /* white space */ + optarg = nargv[optind]; + place = EMSG; + ++optind; + } + return(optopt); /* dump back option letter */ +} diff --git a/port/install.sh.in b/port/install.sh.in new file mode 100755 index 0000000..d285356 --- /dev/null +++ b/port/install.sh.in @@ -0,0 +1,246 @@ +#! @SCRIPT_SH@ +# $Header: /home/cvsroot/libtiff/port/install.sh.in,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +# +# @WARNING@ +# +# HylaFAX Facsimile Software +# +# Copyright (c) 1990-1997 Sam Leffler +# Copyright (c) 1991-1997 Silicon Graphics, Inc. +# HylaFAX is a trademark of Silicon Graphics +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Sam Leffler and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# + +# +# Warning, this file was automatically created by the HylaFAX configure script +# +# VERSION: @VERSION@ +# DATE: @DATE@ +# TARGET: @TARGET@ +# + +# +# Shell script to emulate Silicon Graphics install program. +# We emulate the non-standard interface used by install so +# that we can build SGI inst packages on SGI systems. Note +# that we cannot emulate everything because we don't maintain +# a history of installed software; thus we cannot tell when +# configuration files have been modified and save old copies. +# +# NB: we don't do chown/chmod/chgrp by default; it must be +# explicitly set on the command line. +# + +# +# install [options] files ... +# +# Options are: +# +# -o save existing target foo as OLDfoo +# -O remove existing target foo, if it fails save as OLDfoo +# -m mode set mode of installed target +# -u uid set uid of installed target +# -g gid set gid of installed target +# -root path set ROOT directory for target pathnames +# -dir create directories +# -fifo create FIFO special files +# -ln path create hard link +# -lns path create symbolic link +# -src path source pathname different from target +# -f dir install files in the target directory ROOT/dir +# -F dir like -f, but create directories that do not exist +# -v echo actions +# -idb stuff specify package and, optionally, do special work +# +preopts= +postopts= +SaveFirst=no +HasSource=yes +RemoveFirst=no +NoUpdate=no +Suggested=no +Updated=no + +CMD=cp +SRC= +FILES= +DESTDIR= +CHMOD=":" +CHOWN=":" +CHGRP=":" +RM="rm -f" +MV="mv @MV_F@" +ECHO=echo +VERBOSE=":" +STRIP="@STRIP@" +CMP=cmp + +TARGETS= +while [ x"$1" != x ] +do + arg=$1 + case $arg in + -m) shift; CHMOD="@CHMOD@ $1";; + -u) shift; CHOWN="@CHOWN@ $1";; + -g) shift; CHGRP="@CHGRP@ $1";; + -o) SaveFirst=yes;; + -O) RemoveFirst=yes; SaveFirst=yes;; + -root) shift; ROOT=$1;; + -dir) CMD=mkdir; HasSource=no; + RM=":"; STRIP=":" + ;; + -fifo) CMD=@MKFIFO@; HasSource=no; + x=`echo $CMD | @SED@ 's;.*/;;'`; + test $x = mknod && postopts="p"; + STRIP=":" + ;; + -ln) shift; CMD=@LN@; SRC="$1" + STRIP=":" + ;; + -lns) shift; CMD=@LN@; preopts="@LN_S@"; SRC="$1" + STRIP=":" + ;; + -src) shift; SRC="$1";; + -[fF]) shift; DESTDIR="$1";; + -idb) shift; opt="$1" + case "$opt" in + *config\(update\)*) Updated=yes;; + *config\(suggest\)*) Suggested=yes;; + *config\(noupdate\)*) NoUpdate=yes;; + *nostrip*) STRIP=":";; + esac + ;; + # these are skipped/not handled + -new|-rawidb|-blk|-chr) shift;; + -v) VERBOSE=$ECHO;; + -*) ;; + *) TARGETS="$TARGETS $arg";; + esac + shift +done + +# +# Install the specified target. +# +install() +{ + src=$1 target=$2 + if [ $RemoveFirst = yes -a -f $target ]; then + $VERBOSE "$RM $target" + $RM $target + fi + if [ $SaveFirst = yes -a -f $target ]; then + bf=`echo $src | @SED@ 's;.*/;;'` + $VERBOSE "$MV $target $ROOT/$DESTDIR/OLD$bf" + $MV $target $ROOT/$DESTDIR/OLD$bf + fi + if [ -z "$SRC" -a $HasSource = yes ]; then + $VERBOSE "$CMD $preopts $src $target $postopts" + $CMD $preopts $f $target $postopts + else + $VERBOSE "$CMD $preopts $SRC $target $postopts" + $CMD $preopts $SRC $target $postopts + fi + if [ $? -eq 0 ]; then + $VERBOSE "$CHOWN $target" + $CHOWN $target + $VERBOSE "$CHGRP $target" + $CHGRP $target + $VERBOSE "$CHMOD $target" + $CHMOD $target + if [ $STRIP != ":" -a -x $ROOT/$DESTDIR/$f ]; then + $STRIP $target >/dev/null 2>&1 || true + $VERBOSE "$STRIP $target" + fi + fi +} + +if [ $Suggested = yes ]; then + # + # A suggested file. If an existing target does + # not exist, then install it. Otherwise, install + # it as target.N if it's different from the current + # installed target. + # + # NB: cannot be used with a special file 'cuz we + # use test -f to see if the file exists. + # + for f in $TARGETS; do + t=$ROOT/$DESTDIR/$f + if [ -f $t ]; then + if [ -z "$SRC" -a $HasSource = yes ]; then + $CMP -s $f $t || { + $ECHO "*** Warning, target has local changes, installing $f as $t.N" + install $f $t.N; + } + else + $CMP -s $SRC $t || { + $ECHO "*** Warning, target has local changes, installing $f as $t.N" + install $f $t.N + } + fi + else + install $f $t + fi + done +elif [ $Updated = yes ]; then + # + # A file to be updated. If an existing target does + # not exist, then install it. Otherwise, install + # it as target and save the old version as target.O + # if the old version is different from the current + # installed target. + # + # NB: cannot be used with a special file 'cuz we + # use test -f to see if the file exists. + # + for f in $TARGETS; do + t=$ROOT/$DESTDIR/$f + if [ -f $t ]; then + if [ -z "$SRC" -a $HasSource = yes ]; then + $CMP -s $f $t || $MV $t $t.O + else + $CMP -s $SRC $t || $MV $t $t.O + fi + fi + install $f $t + done +elif [ $NoUpdate = yes ]; then + # + # A file that is never to be updated; the target + # is created only if it does not exist. + # + # NB: cannot be used with a special file 'cuz we + # use test -f to see if the file exists. + # + for f in $TARGETS; do + t=$ROOT/$DESTDIR/$f + test -f $t || install $f $t + done +else + # + # Normal case, a target that should be installed + # with the existing copy, optionally, saved first. + # + for f in $TARGETS; do + install $f $ROOT/$DESTDIR/$f + done +fi diff --git a/port/irix/so_locations b/port/irix/so_locations new file mode 100755 index 0000000..0f4f454 --- /dev/null +++ b/port/irix/so_locations @@ -0,0 +1,4 @@ +libtiff.so \ + :st = .text 0x5ff70000, 0x00030000:\ + :st = .data 0x5ffd0000, 0x00030000:\ + diff --git a/port/strcasecmp.c b/port/strcasecmp.c new file mode 100755 index 0000000..78163f9 --- /dev/null +++ b/port/strcasecmp.c @@ -0,0 +1,98 @@ +/* + * Copyright (c) 1987 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that: (1) source distributions retain this entire copyright + * notice and comment, and (2) distributions including binaries display + * the following acknowledgement: ``This product includes software + * developed by the University of California, Berkeley and its contributors'' + * in the documentation or other materials provided with the distribution + * and in all advertising materials mentioning features or use of this + * software. Neither the name of the University nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ +#include +#include + +#if defined(LIBC_SCCS) && !defined(lint) +static const char sccsid[] = "@(#)strcasecmp.c 5.9 (Berkeley) 6/1/90"; +#endif /* LIBC_SCCS and not lint */ + +/* + * This array is designed for mapping upper and lower case letter + * together for a case independent comparison. The mappings are + * based upon ascii character sequences. + */ +static const unsigned char charmap[] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247', + '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257', + '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267', + '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277', + '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307', + '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317', + '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327', + '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377', +}; + +int +strcasecmp(s1, s2) + const char *s1, *s2; +{ + register const unsigned char *cm = charmap, + *us1 = (const unsigned char *)s1, + *us2 = (const unsigned char *)s2; + + while (cm[*us1] == cm[*us2++]) + if (*us1++ == '\0') + return (0); + return (cm[*us1] - cm[*--us2]); +} + +int +strncasecmp(s1, s2, n) + const char *s1, *s2; + register size_t n; +{ + if (n != 0) { + register const unsigned char *cm = charmap, + *us1 = (const unsigned char *)s1, + *us2 = (const unsigned char *)s2; + + do { + if (cm[*us1] != cm[*us2++]) + return (cm[*us1] - cm[*--us2]); + if (*us1++ == '\0') + break; + } while (--n != 0); + } + return (0); +} diff --git a/port/strtoul.c b/port/strtoul.c new file mode 100755 index 0000000..32762fd --- /dev/null +++ b/port/strtoul.c @@ -0,0 +1,107 @@ +/* + * Copyright (c) 1990 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)strtoul.c 5.3 (Berkeley) 2/23/91"; +#endif /* LIBC_SCCS and not lint */ + +#include +#include +#include +#include + +/* + * Convert a string to an unsigned long integer. + * + * Ignores `locale' stuff. Assumes that the upper and lower case + * alphabets and digits are each contiguous. + */ +unsigned long +strtoul(nptr, endptr, base) + const char *nptr; + char **endptr; + register int base; +{ + register const char *s = nptr; + register unsigned long acc; + register int c; + register unsigned long cutoff; + register int neg = 0, any, cutlim; + + /* + * See strtol for comments as to the logic used. + */ + do { + c = *s++; + } while (isspace(c)); + if (c == '-') { + neg = 1; + c = *s++; + } else if (c == '+') + c = *s++; + if ((base == 0 || base == 16) && + c == '0' && (*s == 'x' || *s == 'X')) { + c = s[1]; + s += 2; + base = 16; + } + if (base == 0) + base = c == '0' ? 8 : 10; + cutoff = (unsigned long)ULONG_MAX / (unsigned long)base; + cutlim = (unsigned long)ULONG_MAX % (unsigned long)base; + for (acc = 0, any = 0;; c = *s++) { + if (isdigit(c)) + c -= '0'; + else if (isalpha(c)) + c -= isupper(c) ? 'A' - 10 : 'a' - 10; + else + break; + if (c >= base) + break; + if (any < 0 || acc > cutoff || acc == cutoff && c > cutlim) + any = -1; + else { + any = 1; + acc *= base; + acc += c; + } + } + if (any < 0) { + acc = ULONG_MAX; + errno = ERANGE; + } else if (neg) + acc = -acc; + if (endptr != 0) + *endptr = any ? s - 1 : (char *)nptr; + return (acc); +} diff --git a/readme b/readme new file mode 100755 index 0000000..18f06e9 --- /dev/null +++ b/readme @@ -0,0 +1,61 @@ +$Header: /home/cvsroot/libtiff/README,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ + + +TIFF Software Distribution +-------------------------- +This file is just a placeholder; all the documentation is now in +HTML in the html directory. To view the documentation point your +favorite WWW viewer at html/index.html; e.g. + + netscape html/index.html + +If you don't have an HTML viewer then you can read the HTML source +or fetch a PostScript version of this documentation from the directory + + ftp://ftp.sgi.com/graphics/tiff/doc + +If you can't hack either of these options then basically what you +want to do is: + + % ./configure + % make + % su + # make install + +If that doesn't do what you want, or something isn't clear then +sorry, but you're SOL. + + Sam Leffler (sam@engr.sgi.com) + + +Use and Copyright +----------------- +Silicon Graphics has seen fit to allow me to give this work away. It +is free. There is no support or guarantee of any sort as to its +operations, correctness, or whatever. If you do anything useful with +all or parts of it you need to honor the copyright notices. I would +also be interested in knowing about it and, hopefully, be acknowledged. + +The legal way of saying that is: + +Copyright (c) 1988-1997 Sam Leffler +Copyright (c) 1991-1997 Silicon Graphics, Inc. + +Permission to use, copy, modify, distribute, and sell this software and +its documentation for any purpose is hereby granted without fee, provided +that (i) the above copyright notices and this permission notice appear in +all copies of the software and related documentation, and (ii) the names of +Sam Leffler and Silicon Graphics may not be used in any advertising or +publicity relating to the software without the specific, prior written +permission of Sam Leffler and Silicon Graphics. + +THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +OF THIS SOFTWARE. diff --git a/test_pics.sh b/test_pics.sh new file mode 100755 index 0000000..02da476 --- /dev/null +++ b/test_pics.sh @@ -0,0 +1,28 @@ +#!/bin/sh +# +# The -f force flag will force new logs to overwrite existing ones. +# +FORCE=0 +if test "$1" = "-f" ; then + FORCE=1 + shift +fi + +# +# Loop over all passed TIFF files +# +for a in $* ; do + BASE=`dirname $a`/`basename $a .tif` + tools/tiffdump $a > ${BASE}.rpt.new + + if test $FORCE = 1 ; then + mv ${BASE}.rpt.new ${BASE}.rpt + continue; + fi + + if diff ${BASE}.rpt ${BASE}.rpt.new ; then + rm ${BASE}.rpt.new + else + echo Differences between ${BASE}.rpt and ${BASE}.rpt.new + fi +done diff --git a/todo b/todo new file mode 100755 index 0000000..e13a33b --- /dev/null +++ b/todo @@ -0,0 +1,9 @@ +# $Header: /home/cvsroot/libtiff/TODO,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ + +o remove lzw compression flags from tools, update man pages +o gif2tiff segaulting on selected images +o tiffcmp read data by strip/tile instead of scanline +o YCbCr sampling support +o extracate colorspace conversion support +o look at isolating all codecs from TIFF library +o JPEG colormode order dependency problem diff --git a/tools/Makefile.in b/tools/Makefile.in new file mode 100755 index 0000000..55cc9da --- /dev/null +++ b/tools/Makefile.in @@ -0,0 +1,259 @@ +# $Header: /home/cvsroot/libtiff/tools/Makefile.in,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +# +# @WARNING@ +# +# TIFF Library Tools +# +# Copyright (c) 1988-1997 Sam Leffler +# Copyright (c) 1991-1997 Silicon Graphics, Inc. +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Stanford and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# +DEPTH = .. + +SRCDIR = @RELSRCDIR@/tools +LIBDIR = @RELSRCDIR@/libtiff + +# +# VERSION: @VERSION@ +# DATE: @DATE@ +# TARGET: @TARGET@ +# CCOMPILER: @CCOMPILER@ +# +SHELL = @SCRIPT_SH@ +NULL = +CC = @CCOMPILER@ +INSTALL = @INSTALL@ +# +COPTS = @GCOPTS@ +OPTIMIZER=-O +IPATH = -I. -I${SRCDIR} -I${LIBDIR} +CFLAGS = @ENVOPTS@ ${COPTS} ${OPTIMIZER} ${IPATH} +# +TIFFLIB = ${DEPTH}/libtiff/libtiff.@DSOSUF@ +LIBJPEG = @LIBJPEG@ +LIBGZ = @LIBGZ@ +LIBTIFF = @TIFFLIBREF@ +LIBPORT = @LIBPORT@ +MACHLIBS= @MACHDEPLIBS@ +LIBS = ${LIBTIFF} ${LIBJPEG} ${LIBGZ} ${LIBPORT} ${MACHLIBS} +# +OBJS= \ + fax2tiff.o \ + fax2ps.o \ + gif2tiff.o \ + pal2rgb.o \ + ppm2tiff.o \ + rgb2ycbcr.o \ + ras2tiff.o \ + thumbnail.o \ + tiff2bw.o \ + tiff2rgba.o \ + tiff2ps.o \ + tiffcmp.o \ + tiffcp.o \ + tiffdither.o \ + tiffdump.o \ + tiffinfo.o \ + tiffmedian.o \ + tiffsplit.o \ + ${NULL} +TARGETS =\ + fax2tiff \ + fax2ps \ + gif2tiff \ + pal2rgb \ + ppm2tiff \ + rgb2ycbcr \ + thumbnail \ + ras2tiff \ + tiff2bw \ + tiff2rgba \ + tiff2ps \ + tiffcmp \ + tiffcp \ + tiffdither \ + tiffdump \ + tiffinfo \ + tiffmedian \ + tiffsplit \ + ${NULL} + +all: ${TARGETS} + @if [ "@LIBIMAGE@" = yes ]; then \ + ${MAKE} sgi2tiff; \ + else \ + true; \ + fi + @if [ "@LIBGL@" = yes ]; then \ + ${MAKE} tiffgt tiffsv; \ + else \ + true; \ + fi +install: all + ${INSTALL} -idb nostrip tiff.sw.tools -m 755 -dir @DIR_BIN@ + ${INSTALL} -idb nostrip tiff.sw.tools -m 755 -F @DIR_BIN@ -O ${TARGETS} + @if [ "@LIBIMAGE@" = yes ]; then \ + ${INSTALL} -idb tiff.sw.tools -m 755 -F @DIR_BIN@ -O sgi2tiff; \ + else \ + true; \ + fi + @if [ "@LIBGL@" = yes ]; then \ + ${INSTALL} -idb tiff.sw.tools -m 755 -F @DIR_BIN@ -O tiffgt tiffsv;\ + else \ + true; \ + fi +clean: + rm -f ${TARGETS} ${OBJS} sgigt.o tiffgt sgisv.o tiffsv \ + sgi2tiff.o sgi2tiff core a.out ycbcr + +# +# System-independent tools +# + +tiffinfo: tiffinfo.o ${TIFFLIB} + ${CC} -o tiffinfo ${CFLAGS} tiffinfo.o ${LIBS} +tiffinfo.o: ${SRCDIR}/tiffinfo.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tiffinfo.c + +tiffcmp:tiffcmp.o ${TIFFLIB} + ${CC} -o tiffcmp ${CFLAGS} tiffcmp.o ${LIBS} +tiffcmp.o: ${SRCDIR}/tiffcmp.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tiffcmp.c + +tiffcp: tiffcp.o ${TIFFLIB} + ${CC} -o tiffcp ${CFLAGS} tiffcp.o ${LIBS} +tiffcp.o: ${SRCDIR}/tiffcp.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tiffcp.c + +tiffdump: tiffdump.o + ${CC} -o tiffdump ${CFLAGS} tiffdump.o ${LIBS} +tiffdump.o: ${SRCDIR}/tiffdump.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tiffdump.c + +tiffmedian: tiffmedian.o ${TIFFLIB} + ${CC} -o tiffmedian ${CFLAGS} tiffmedian.o ${LIBS} +tiffmedian.o: ${SRCDIR}/tiffmedian.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tiffmedian.c + +tiffsplit: tiffsplit.o ${TIFFLIB} + ${CC} -o tiffsplit ${CFLAGS} tiffsplit.o ${LIBS} +tiffsplit.o: ${SRCDIR}/tiffsplit.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tiffsplit.c + +tiff2ps: tiff2ps.o ${TIFFLIB} + ${CC} -o tiff2ps ${CFLAGS} tiff2ps.o ${LIBS} +tiff2ps.o: ${SRCDIR}/tiff2ps.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tiff2ps.c + +# +# Junky stuff... programs that are more examples of how +# to use the library than full-blown useful tools. +# + +# convert RGB image to B&W +tiff2bw: tiff2bw.o ${TIFFLIB} + ${CC} -o tiff2bw ${CFLAGS} tiff2bw.o ${LIBS} +tiff2bw.o: ${SRCDIR}/tiff2bw.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tiff2bw.c + +# convert anything to RGBA. +tiff2rgba: tiff2rgba.o ${TIFFLIB} + ${CC} -o tiff2rgba ${CFLAGS} tiff2rgba.o ${LIBS} +tiff2rgba.o: ${SRCDIR}/tiff2rgba.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tiff2rgba.c + +# convert B&W image to bilevel w/ FS dithering +tiffdither: tiffdither.o ${TIFFLIB} + ${CC} -o tiffdither ${CFLAGS} tiffdither.o ${LIBS} +tiffdither.o: ${SRCDIR}/tiffdither.c + ${CC} -c ${CFLAGS} ${SRCDIR}/tiffdither.c + +# simple Sun rasterfile converter +ras2tiff: ras2tiff.o ${TIFFLIB} + ${CC} -o ras2tiff ${CFLAGS} ras2tiff.o ${LIBS} +ras2tiff.o: ${SRCDIR}/ras2tiff.c + ${CC} -c ${CFLAGS} ${SRCDIR}/ras2tiff.c + +# simple GIF converter +gif2tiff: gif2tiff.o ${TIFFLIB} + ${CC} -o gif2tiff ${CFLAGS} gif2tiff.o ${LIBS} +gif2tiff.o: ${SRCDIR}/gif2tiff.c + ${CC} -c ${CFLAGS} ${SRCDIR}/gif2tiff.c + +# very limited PBM converter +ppm2tiff: ppm2tiff.o ${TIFFLIB} + ${CC} -o ppm2tiff ${CFLAGS} ppm2tiff.o ${LIBS} +ppm2tiff.o: ${SRCDIR}/ppm2tiff.c + ${CC} -c ${CFLAGS} ${SRCDIR}/ppm2tiff.c + +# Group 3/4 FAX file converter +fax2tiff: fax2tiff.o ${TIFFLIB} + ${CC} -o fax2tiff ${CFLAGS} fax2tiff.o ${LIBS} +fax2tiff.o: ${SRCDIR}/fax2tiff.c + ${CC} -c -I${LIBDIR} -I${DEPTH}/libtiff ${CFLAGS} ${SRCDIR}/fax2tiff.c + +# Group 3/4 FAX to encoded PS converter +fax2ps: fax2ps.o ${TIFFLIB} + ${CC} -o fax2ps ${CFLAGS} fax2ps.o ${LIBS} +fax2ps.o: ${SRCDIR}/fax2ps.c + ${CC} -c ${CFLAGS} ${SRCDIR}/fax2ps.c + +# convert Palette image to RGB +pal2rgb: pal2rgb.o ${TIFFLIB} + ${CC} -o pal2rgb ${CFLAGS} pal2rgb.o ${LIBS} +pal2rgb.o: ${SRCDIR}/pal2rgb.c + ${CC} -c ${CFLAGS} ${SRCDIR}/pal2rgb.c + +# convert RGB image to YCbCr +rgb2ycbcr: rgb2ycbcr.o ${TIFFLIB} + ${CC} -o rgb2ycbcr ${CFLAGS} rgb2ycbcr.o ${LIBS} +rgb2ycbcr.o: ${SRCDIR}/rgb2ycbcr.c + ${CC} -c ${CFLAGS} ${SRCDIR}/rgb2ycbcr.c + +# generate thumbnail images from fax (example of SubIFD usage) +thumbnail: thumbnail.o ${TIFFLIB} + ${CC} -o thumbnail ${CFLAGS} thumbnail.o ${LIBS} +thumbnail.o: ${SRCDIR}/thumbnail.c + ${CC} -c ${CFLAGS} ${SRCDIR}/thumbnail.c + +# +# System-specific tools. +# + +# +# sgi2tiff converts SGI RGB images to TIFF; it requires +# the SGI image library -limage. +# +sgi2tiff: sgi2tiff.o ${TIFFLIB} + ${CC} -o sgi2tiff ${CFLAGS} sgi2tiff.o -limage ${LIBS} +sgi2tiff.o: ${SRCDIR}/sgi2tiff.c + ${CC} -c ${CFLAGS} ${SRCDIR}/sgi2tiff.c + +# SGI versions of tiffgt & tiffsv that require -lgl +tiffgt: sgigt.o ${TIFFLIB} + ${CC} -o tiffgt ${CFLAGS} sgigt.o -lgutil -lgl ${LIBS} +sgigt.o: ${SRCDIR}/sgigt.c + ${CC} -c ${CFLAGS} ${SRCDIR}/sgigt.c + +tiffsv: sgisv.o ${TIFFLIB} + ${CC} -o tiffsv ${CFLAGS} sgisv.o -lgutil -lgl ${LIBS} +sgisv.o: ${SRCDIR}/sgisv.c + ${CC} -c ${CFLAGS} ${SRCDIR}/sgisv.c diff --git a/tools/Makefile.lcc b/tools/Makefile.lcc new file mode 100755 index 0000000..ad21791 --- /dev/null +++ b/tools/Makefile.lcc @@ -0,0 +1,137 @@ +# $Header: /home/cvsroot/libtiff/tools/Makefile.lcc,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ +# +# TIFF Library Tools +# +# Copyright (c) 1988-1997 Sam Leffler +# Copyright (c) 1991-1997 Silicon Graphics, Inc. +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Stanford and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# +NULL= +IPATH= -I..\libtiff +# +# If you don't want the public domain getopt code, then +# simply null this out and you'll get whatever is in your +# libc (or similar). +# +GETOPT= getopt.o +# +# Library-wide configuration defines: +# Note that if you change the library-wide configuration, you'll +# need to manual force a full rebuild. +# +CONF_LIBRARY=\ + ${NULL} +COPTS= -Oloop -cwagshf -d1 -b0 -v -DNDEBUG -rr -j135i +CFLAGS= ${COPTS} ${IPATH} -DBINMODE='"b"' +# +LIBTIFF=..\libtiff\tiffrnb.lib +LIBS= -l${LIBTIFF} -lm +MACHALL=ras2tiff.ttp +OBJS=\ + fax2tiff.o \ + gif2tiff.o \ + pal2rgb.o \ + ppm2tiff.o \ + rgb2ycbcr.o \ + tiff2bw.o \ + tiff2rgba.o \ + tiff2ps.o \ + tiffcmp.o \ + tiffcp.o \ + tiffdither.o \ + tiffdump.o \ + tiffinfo.o \ + tiffmedian.o \ + tiffsplit.o \ + ras2tiff.o \ + ${GETOPT} \ + ${NULL} +ALL=\ + fax2tiff.ttp \ + gif2tiff.ttp \ + pal2rgb.ttp \ + ppm2tiff.ttp \ + rgb2ycbcr.ttp \ + tiff2bw.ttp \ + tiff2rgba.ttp \ + tiff2ps.ttp \ + tiffcmp.ttp \ + tiffcp.ttp \ + tiffdither.ttp \ + tiffdump.ttp \ + tiffinfo.ttp \ + tiffmedian.ttp \ + tiffsplit.ttp \ + ${MACHALL} \ + ${NULL} + +all: ${ALL} + +tiffinfo.ttp: tiffinfo.c ${GETOPT} ${LIBTIFF} + ${CC} -o tiffinfo.ttp ${CFLAGS} tiffinfo.c ${GETOPT} ${LIBS} +tiffcmp.ttp: tiffcmp.c ${GETOPT} ${LIBTIFF} + ${CC} -o tiffcmp.ttp ${CFLAGS} tiffcmp.c ${GETOPT} ${LIBS} +tiffcp.ttp: tiffcp.c ${LIBTIFF} + ${CC} -o tiffcp.ttp ${CFLAGS} tiffcp.c ${LIBS} +tiffdump.ttp: tiffdump.c + ${CC} -o tiffdump.ttp ${CFLAGS} tiffdump.c -lm ${LIBS} +tiffmedian.ttp: tiffmedian.c ${LIBTIFF} + ${CC} -o tiffmedian.ttp ${CFLAGS} tiffmedian.c ${LIBS} +tiffsplit.ttp: tiffsplit.c ${LIBTIFF} + ${CC} -o tiffsplit.ttp ${CFLAGS} tiffsplit.c ${LIBS} +tiff2ps.ttp: tiff2ps.c ${LIBTIFF} + ${CC} -o tiff2ps.ttp ${CFLAGS} tiff2ps.c ${LIBS} +# junky stuff... +# convert RGB image to B&W +tiff2bw.ttp: tiff2bw.c ${GETOPT} ${LIBTIFF} + ${CC} -o tiff2bw.ttp ${CFLAGS} tiff2bw.c ${GETOPT} ${LIBS} +# convert anything to RGBA +tiff2rgba.ttp: tiff2rgba.c ${GETOPT} ${LIBTIFF} + ${CC} -o tiff2rgba.ttp ${CFLAGS} tiff2rgba.c ${GETOPT} ${LIBS} +# convert B&W image to bilevel w/ FS dithering +tiffdither.ttp: tiffdither.c ${LIBTIFF} + ${CC} -o tiffdither.ttp ${CFLAGS} tiffdither.c ${LIBS} +# Group 3 FAX file converter +fax2tiff.ttp: fax2tiff.c ${GETOPT} ${LIBTIFF} + ${CC} -o fax2tiff.ttp ${CFLAGS} ${CONF_LIBRARY} fax2tiff.c ${GETOPT} ${LIBS} +# convert Palette image to RGB +pal2rgb.ttp: pal2rgb.c ${LIBTIFF} + ${CC} -o pal2rgb.ttp ${CFLAGS} pal2rgb.c ${LIBS} +# convert RGB image to YCbCr +rgb2ycbcr.ttp: rgb2ycbcr.c ${GETOPT} ${LIBTIFF} + ${CC} -o rgb2ycbcr.ttp ${CFLAGS} rgb2ycbcr.c ${GETOPT} ${LIBS} +# GIF converter +gif2tiff.ttp: gif2tiff.c ${LIBTIFF} + ${CC} -o gif2tiff.ttp ${CFLAGS} gif2tiff.c ${LIBS} +# PBM converter +ppm2tiff.ttp: ppm2tiff.c ${LIBTIFF} + ${CC} -o ppm2tiff.ttp ${CFLAGS} ppm2tiff.c ${LIBS} +# Sun rasterfile converter +ras2tiff.ttp: ras2tiff.c ${LIBTIFF} + ${CC} -o ras2tiff.ttp ${CFLAGS} ras2tiff.c ${LIBS} +# generate thumbnail images from fax +thumbnail: thumbnail.c ${LIBTIFF} + ${CC} -o thumbnail ${CFLAGS} thumbnail.c ${LIBS} -lm + +install: all + +clean: + rm -f ${ALL} ${OBJS} ycbcr.ttp diff --git a/tools/Makefile.vc b/tools/Makefile.vc new file mode 100755 index 0000000..6f3d5e1 --- /dev/null +++ b/tools/Makefile.vc @@ -0,0 +1,31 @@ +# +# Simple MS VC++ Makefile +# +# To build: +# C:\libtiff\tools> nmake /f makefile.vc +# +TARGETS = tiffcp.exe tiffinfo.exe tiffdump.exe fax2tiff.exe \ + fax2ps.exe gif2tiff.exe pal2rgb.exe ppm2tiff.exe \ + rgb2ycbcr.exe thumbnail.exe ras2tiff.exe tiff2bw.exe \ + tiff2rgba.exe tiff2ps.exe tiffcmp.exe tiffdither.exe \ + tiffmedian.exe tiffsplit.exe + +EXTRA_OBJ = strcasecmp.obj getopt.obj + +LIBS = ..\libtiff\libtiff.lib + +CFLAGS = /nologo -I..\libtiff /D_WINDOWS + +default: $(EXTRA_OBJ) $(TARGETS) + +.c.exe: + $(CC) $(CFLAGS) $*.c $(EXTRA_OBJ) $(LIBS) + +getopt.obj: ..\port\getopt.c + $(CC) /c $(CFLAGS) ..\port\getopt.c + +strcasecmp.obj: ..\port\strcasecmp.c + $(CC) /c $(CFLAGS) ..\port\strcasecmp.c + +clean: + del *.obj *.exe diff --git a/tools/fax2ps.c b/tools/fax2ps.c new file mode 100755 index 0000000..3a89330 --- /dev/null +++ b/tools/fax2ps.c @@ -0,0 +1,437 @@ +/* $Header: /home/cvsroot/libtiff/tools/fax2ps.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $" */ + +/* + * Copyright (c) 1991-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ +#include +#include +#include +#include +#include + +#if defined(VMS) +#include +#elif defined(_WINDOWS) +#include +#define off_t toff_t +#else +#include +#endif + +#include "tiffio.h" + +float defxres = 204.; /* default x resolution (pixels/inch) */ +float defyres = 98.; /* default y resolution (lines/inch) */ +const float basePageWidth = 8.5; +const float basePageHeight = 11.0; +const float half = 0.5; +const float points = 72.0; +float pageWidth = 8.5; /* image page width (inches) */ +float pageHeight = 11.0; /* image page length (inches) */ +int scaleToPage = 0; /* if true, scale raster to page dimensions */ +int totalPages = 0; /* total # pages printed */ +int row; /* current output row */ +int maxline = 512; /* max output line of PostScript */ + +/* + * Turn a bit-mapped scanline into the appropriate sequence + * of PostScript characters to be rendered. + * + * Original version written by Bret D. Whissel, + * Florida State University Meteorology Department + * March 13-15, 1995. + */ +static void +printruns(unsigned char* buf, uint32* runs, uint32* erun, uint32 lastx) +{ + static struct { + char white, black; + short width; + } WBarr[] = { + { 'd', 'n', 512 }, { 'e', 'o', 256 }, { 'f', 'p', 128 }, + { 'g', 'q', 64 }, { 'h', 'r', 32 }, { 'i', 's', 16 }, + { 'j', 't', 8 }, { 'k', 'u', 4 }, { 'l', 'v', 2 }, + { 'm', 'w', 1 } + }; + static char* svalue = + " !\"#$&'*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abc"; + int colormode = 1; /* 0 for white, 1 for black */ + int runlength = 0; + int n = maxline; + int x = 0; + int l; + + (void) buf; + printf("%d m(", row++); + while (runs < erun) { + if (!runlength) { + colormode ^= 1; + runlength = *runs++; + if (x+runlength > lastx) + runlength = runs[-1] = lastx-x; + x += runlength; + if (!colormode && runs == erun) + break; /* don't bother printing the final white run */ + } + /* + * If a runlength is greater than 6 pixels, then spit out + * black or white characters until the runlength drops to + * 6 or less. Once a runlength is <= 6, then combine black + * and white runlengths until a 6-pixel pattern is obtained. + * Then write out the special character. Six-pixel patterns + * were selected since 64 patterns is the largest power of + * two less than the 92 "easily printable" PostScript + * characters (i.e., no escape codes or octal chars). + */ + l = 0; + while (runlength > 6) { /* Run is greater than six... */ + if (runlength >= WBarr[l].width) { + if (n == 0) { + putchar('\n'); + n = maxline; + } + putchar(colormode ? WBarr[l].black : WBarr[l].white), n--; + runlength -= WBarr[l].width; + } else + l++; + } + while (runlength > 0 && runlength <= 6) { + int bitsleft = 6; + int t = 0; + while (bitsleft) { + if (runlength <= bitsleft) { + if (colormode) + t |= ((1 << runlength)-1) << (bitsleft-runlength); + bitsleft -= runlength; + runlength = 0; + if (bitsleft) { + if (runs >= erun) + break; + colormode ^= 1; + runlength = *runs++; + if (x+runlength > lastx) + runlength = runs[-1] = lastx-x; + x += runlength; + } + } else { /* runlength exceeds bits left */ + if (colormode) + t |= ((1 << bitsleft)-1); + runlength -= bitsleft; + bitsleft = 0; + } + } + if (n == 0) { + putchar('\n'); + n = maxline; + } + putchar(svalue[t]), n--; + } + } + printf(")s\n"); +} + +void +printTIF(TIFF* tif, int pageNumber) +{ + uint32 w, h; + uint16 unit; + float xres, yres; + tstrip_t s, ns; + + TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &h); + TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &w); + if (!TIFFGetField(tif, TIFFTAG_XRESOLUTION, &xres)) { + TIFFWarning(TIFFFileName(tif), + "No x-resolution, assuming %g dpi", defxres); + xres = defxres; + } + if (!TIFFGetField(tif, TIFFTAG_YRESOLUTION, &yres)) { + TIFFWarning(TIFFFileName(tif), + "No y-resolution, assuming %g lpi", defyres); + yres = defyres; /* XXX */ + } + if (TIFFGetField(tif, TIFFTAG_RESOLUTIONUNIT, &unit) && + unit == RESUNIT_CENTIMETER) { + xres *= 25.4; + yres *= 25.4; + } + + printf("%%%%Page: \"%d\" %d\n", pageNumber, pageNumber); + printf("/$pageTop save def gsave\n"); + if (scaleToPage) { + float yscale = pageHeight / (h/yres); + float xscale = pageWidth / (w/xres); + printf("%d %d translate\n", + (int) (((basePageWidth - pageWidth) * points) * half), + (int)((yscale*(h/yres)*points) + + (basePageHeight - pageHeight) * points * half) ); + printf("%g %g scale\n", (72.*xscale)/xres, -(72.*yscale)/yres); + } else { + printf("%d %d translate\n", + (int) ((basePageWidth - pageWidth) * points * half), + (int)((72.*h/yres) + + (basePageHeight - pageHeight) * points * half) ); + printf("%g %g scale\n", 72./xres, -72./yres); + } + printf("0 setgray\n"); + TIFFSetField(tif, TIFFTAG_FAXFILLFUNC, printruns); + ns = TIFFNumberOfStrips(tif); + row = 0; + for (s = 0; s < ns; s++) + (void) TIFFReadEncodedStrip(tif, s, (tdata_t) NULL, (tsize_t) -1); + printf("p\n"); + printf("grestore $pageTop restore\n"); + totalPages++; +} + +#define GetPageNumber(tif) \ +TIFFGetField(tif, TIFFTAG_PAGENUMBER, &pn, &ptotal) + +int +findPage(TIFF* tif, int pageNumber) +{ + uint16 pn = (uint16) -1; + uint16 ptotal = (uint16) -1; + if (GetPageNumber(tif)) { + while (pn != pageNumber && TIFFReadDirectory(tif) && GetPageNumber(tif)) + ; + return (pn == pageNumber); + } else + return (TIFFSetDirectory(tif, pageNumber-1)); +} + +void +fax2ps(TIFF* tif, int npages, int* pages, char* filename) +{ + if (npages > 0) { + uint16 pn, ptotal; + int i; + + if (!GetPageNumber(tif)) + fprintf(stderr, "%s: No page numbers, counting directories.\n", + filename); + for (i = 0; i < npages; i++) { + if (findPage(tif, pages[i])) + printTIF(tif, pages[i]); + else + fprintf(stderr, "%s: No page number %d\n", filename, pages[i]); + } + } else { + int pageNumber = 1; + do + printTIF(tif, pageNumber++); + while (TIFFReadDirectory(tif)); + } +} + +#undef GetPageNumber + +/* + * Create a special PostScript font for printing FAX documents. By taking + * advantage of the font-cacheing mechanism, a substantial speed-up in + * rendering time is realized. + */ +static void +emitFont(FILE* fd) +{ + static const char* fontPrologue[] = { + "/newfont 10 dict def newfont begin /FontType 3 def /FontMatrix [1", + "0 0 1 0 0] def /FontBBox [0 0 512 1] def /Encoding 256 array def", + "0 1 31{Encoding exch /255 put}for 120 1 255{Encoding exch /255", + "put}for Encoding 37 /255 put Encoding 40 /255 put Encoding 41 /255", + "put Encoding 92 /255 put /count 0 def /ls{Encoding exch count 3", + "string cvs cvn put /count count 1 add def}def 32 1 36{ls}for", + "38 1 39{ls}for 42 1 91{ls}for 93 1 99{ls}for /count 100", + "def 100 1 119{ls}for /CharDict 5 dict def CharDict begin /white", + "{dup 255 eq{pop}{1 dict begin 100 sub neg 512 exch bitshift", + "/cw exch def cw 0 0 0 cw 1 setcachedevice end}ifelse}def /black", + "{dup 255 eq{pop}{1 dict begin 110 sub neg 512 exch bitshift", + "/cw exch def cw 0 0 0 cw 1 setcachedevice 0 0 moveto cw 0 rlineto", + "0 1 rlineto cw neg 0 rlineto closepath fill end}ifelse}def /numbuild", + "{dup 255 eq{pop}{6 0 0 0 6 1 setcachedevice 0 1 5{0 moveto", + "dup 32 and 32 eq{1 0 rlineto 0 1 rlineto -1 0 rlineto closepath", + "fill newpath}if 1 bitshift}for pop}ifelse}def /.notdef {}", + "def /255 {}def end /BuildChar{exch begin dup 110 ge{Encoding", + "exch get 3 string cvs cvi CharDict /black get}{dup 100 ge {Encoding", + "exch get 3 string cvs cvi CharDict /white get}{Encoding exch get", + "3 string cvs cvi CharDict /numbuild get}ifelse}ifelse exec end", + "}def end /Bitfont newfont definefont 1 scalefont setfont", + NULL + }; + int i; + for (i = 0; fontPrologue[i] != NULL; i++) + fprintf(fd, "%s\n", fontPrologue[i]); +} + +static int +pcompar(const void* va, const void* vb) +{ + const int* pa = (const int*) va; + const int* pb = (const int*) vb; + return (*pa - *pb); +} + +static void usage(int code); + +int +main(int argc, char** argv) +{ + extern int optind; + extern char* optarg; + int c, pageNumber; + int* pages = 0, npages = 0; + int dowarnings = 0; /* if 1, enable library warnings */ + time_t t; + TIFF* tif; + + while ((c = getopt(argc, argv, "l:p:x:y:W:H:wS")) != -1) + switch (c) { + case 'H': /* page height */ + pageHeight = atof(optarg); + break; + case 'S': /* scale to page */ + scaleToPage = 1; + break; + case 'W': /* page width */ + pageWidth = atof(optarg); + break; + case 'p': /* print specific page */ + pageNumber = atoi(optarg); + if (pageNumber < 1) { + fprintf(stderr, "%s: Invalid page number (must be > 0).\n", + optarg); + usage(-1); + } + if (pages) + pages = (int*) realloc((char*) pages, (npages+1)*sizeof (int)); + else + pages = (int*) malloc(sizeof (int)); + pages[npages++] = pageNumber; + break; + case 'w': + dowarnings = 1; + break; + case 'x': + defxres = atof(optarg); + break; + case 'y': + defyres = atof(optarg); + break; + case 'l': + maxline = atoi(optarg); + break; + case '?': + usage(-1); + } + if (npages > 0) + qsort(pages, npages, sizeof (int), pcompar); + if (!dowarnings) + TIFFSetWarningHandler(0); + printf("%%!PS-Adobe-3.0\n"); + printf("%%%%Creator: fax2ps\n"); +#ifdef notdef + printf("%%%%Title: %s\n", file); +#endif + t = time(0); + printf("%%%%CreationDate: %s", ctime(&t)); + printf("%%%%Origin: 0 0\n"); + printf("%%%%BoundingBox: 0 0 %u %u\n", + (int)(pageWidth*72), (int)(pageHeight*72)); /* XXX */ + printf("%%%%Pages: (atend)\n"); + printf("%%%%EndComments\n"); + printf("%%%%BeginProlog\n"); + emitFont(stdout); + printf("/d{bind def}def\n"); /* bind and def proc */ + printf("/m{0 exch moveto}d\n"); + printf("/s{show}d\n"); + printf("/p{showpage}d \n"); /* end page */ + printf("%%%%EndProlog\n"); + if (optind < argc) { + do { + tif = TIFFOpen(argv[optind], "r"); + if (tif) { + fax2ps(tif, npages, pages, argv[optind]); + TIFFClose(tif); + } else + fprintf(stderr, "%s: Can not open, or not a TIFF file.\n", + argv[optind]); + } while (++optind < argc); + } else { + int n; + FILE* fd; + char temp[1024], buf[16*1024]; + + strcpy(temp, "/tmp/fax2psXXXXXX"); + (void) mktemp(temp); + fd = fopen(temp, "w"); + if (fd == NULL) { + fprintf(stderr, "Could not create temp file \"%s\"\n", temp); + exit(-2); + } + while ((n = read(fileno(stdin), buf, sizeof (buf))) > 0) + write(fileno(fd), buf, n); + tif = TIFFOpen(temp, "r"); +#ifndef VMS + unlink(temp); +#else + remove(temp); +#endif + if (tif) { + fax2ps(tif, npages, pages, ""); + TIFFClose(tif); + } else + fprintf(stderr, "%s: Can not open, or not a TIFF file.\n", temp); + fclose(fd); + } + printf("%%%%Trailer\n"); + printf("%%%%Pages: %u\n", totalPages); + printf("%%%%EOF\n"); + + return (0); +} + +char* stuff[] = { +"usage: fax2ps [options] [input.tif ...]", +"where options are:", +" -w suppress warning messages", +" -l chars set maximum output line length for generated PostScript", +" -p page# select page to print (can use multiple times)", +" -x xres set default horizontal resolution of input data (dpi)", +" -y yres set default vertical resolution of input data (lpi)", +" -S scale output to page size", +" -W width set output page width (inches), default is 8.5", +" -H height set output page height (inchest), default is 11", +NULL +}; + +static void +usage(int code) +{ + char buf[BUFSIZ]; + int i; + + setbuf(stderr, buf); + for (i = 0; stuff[i] != NULL; i++) + fprintf(stderr, "%s\n", stuff[i]); + exit(code); +} diff --git a/tools/fax2tiff.c b/tools/fax2tiff.c new file mode 100755 index 0000000..eb4cbb8 --- /dev/null +++ b/tools/fax2tiff.c @@ -0,0 +1,359 @@ +/* $Header: /home/cvsroot/libtiff/tools/fax2tiff.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1990-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * Convert a CCITT Group 3 FAX file to TIFF Group 3 format. + */ +#include +#include /* should have atof & getopt */ +#include "tiffiop.h" + +#ifndef BINMODE +#define BINMODE +#endif + +#ifndef EXIT_SUCCESS +#define EXIT_SUCCESS 0 +#endif +#ifndef EXIT_FAILURE +#define EXIT_FAILURE 1 +#endif + +TIFF *faxTIFF; +#define XSIZE 1728 +char rowbuf[TIFFhowmany(XSIZE,8)]; +char refbuf[TIFFhowmany(XSIZE,8)]; + +int verbose; +int stretch; +uint16 badfaxrun; +uint32 badfaxlines; + +int copyFaxFile(TIFF* tifin, TIFF* tifout); +static void usage(void); + +static tsize_t +DummyReadProc(thandle_t fd, tdata_t buf, tsize_t size) +{ + (void) fd; (void) buf; (void) size; + return (0); +} + +static tsize_t +DummyWriteProc(thandle_t fd, tdata_t buf, tsize_t size) +{ + (void) fd; (void) buf; (void) size; + return (size); +} + +int +main(int argc, char* argv[]) +{ + FILE *in; + TIFF *out = NULL; + TIFFErrorHandler whandler; + int compression = COMPRESSION_CCITTFAX3; + int fillorder = FILLORDER_LSB2MSB; + uint32 group3options = GROUP3OPT_FILLBITS|GROUP3OPT_2DENCODING; + int photometric = PHOTOMETRIC_MINISWHITE; + int mode = FAXMODE_CLASSF; + int rows; + int c; + int pn, npages; + extern int optind; + extern char* optarg; + + /* smuggle a descriptor out of the library */ + faxTIFF = TIFFClientOpen("(FakeInput)", "w", (thandle_t) -1, + DummyReadProc, DummyWriteProc, + NULL, NULL, NULL, NULL, NULL); + if (faxTIFF == NULL) + return (EXIT_FAILURE); + faxTIFF->tif_mode = O_RDONLY; + + TIFFSetField(faxTIFF, TIFFTAG_IMAGEWIDTH, XSIZE); + TIFFSetField(faxTIFF, TIFFTAG_SAMPLESPERPIXEL, 1); + TIFFSetField(faxTIFF, TIFFTAG_BITSPERSAMPLE, 1); + TIFFSetField(faxTIFF, TIFFTAG_FILLORDER, FILLORDER_LSB2MSB); + TIFFSetField(faxTIFF, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); + TIFFSetField(faxTIFF, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISWHITE); + TIFFSetField(faxTIFF, TIFFTAG_YRESOLUTION, 196.); + TIFFSetField(faxTIFF, TIFFTAG_RESOLUTIONUNIT, RESUNIT_INCH); + /* NB: this is normally setup when a directory is read */ + faxTIFF->tif_scanlinesize = TIFFScanlineSize(faxTIFF); + + while ((c = getopt(argc, argv, "R:o:2BLMW14cflmpsvwz")) != -1) + switch (c) { + /* input-related options */ + case '2': /* input is 2d-encoded */ + TIFFSetField(faxTIFF, + TIFFTAG_GROUP3OPTIONS, GROUP3OPT_2DENCODING); + break; + case 'B': /* input has 0 mean black */ + TIFFSetField(faxTIFF, + TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK); + break; + case 'L': /* input has lsb-to-msb fillorder */ + TIFFSetField(faxTIFF, + TIFFTAG_FILLORDER, FILLORDER_LSB2MSB); + break; + case 'M': /* input has msb-to-lsb fillorder */ + TIFFSetField(faxTIFF, + TIFFTAG_FILLORDER, FILLORDER_MSB2LSB); + break; + case 'R': /* input resolution */ + TIFFSetField(faxTIFF, + TIFFTAG_YRESOLUTION, atof(optarg)); + break; + case 'W': /* input has 0 mean white */ + TIFFSetField(faxTIFF, + TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISWHITE); + break; + + /* output-related options */ + case '1': /* generate 1d-encoded output */ + group3options &= ~GROUP3OPT_2DENCODING; + break; + case '4': /* generate g4-encoded output */ + compression = COMPRESSION_CCITTFAX4; + break; + case 'c': /* generate "classic" g3 format */ + mode = FAXMODE_CLASSIC; + break; + case 'f': /* generate Class F format */ + mode = FAXMODE_CLASSF; + break; + case 'm': /* output's fillorder is msb-to-lsb */ + fillorder = FILLORDER_MSB2LSB; + break; + case 'o': + out = TIFFOpen(optarg, "w"); + if (out == NULL) + return EXIT_FAILURE; + break; + case 'p': /* zero pad output scanline EOLs */ + group3options &= ~GROUP3OPT_FILLBITS; + break; + case 's': /* stretch image by dup'ng scanlines */ + stretch = 1; + break; + case 'w': /* undocumented -- for testing */ + photometric = PHOTOMETRIC_MINISBLACK; + break; + + case 'z': /* undocumented -- for testing */ + compression = COMPRESSION_LZW; + break; + + case 'v': /* -v for info */ + verbose++; + break; + case '?': + usage(); + /*NOTREACHED*/ + } + if (out == NULL) { + out = TIFFOpen("fax.tif", "w"); + if (out == NULL) + return (EXIT_FAILURE); + } + faxTIFF->tif_readproc = out->tif_readproc; /* XXX */ + faxTIFF->tif_writeproc = out->tif_writeproc; /* XXX */ + faxTIFF->tif_seekproc = out->tif_seekproc; /* XXX */ + faxTIFF->tif_closeproc = out->tif_closeproc; /* XXX */ + faxTIFF->tif_sizeproc = out->tif_sizeproc; /* XXX */ + faxTIFF->tif_mapproc = out->tif_mapproc; /* XXX */ + faxTIFF->tif_unmapproc = out->tif_unmapproc; /* XXX */ + + npages = argc - optind; + if (npages < 1) + usage(); + + /* NB: this must be done after directory info is setup */ + TIFFSetField(faxTIFF, TIFFTAG_COMPRESSION, COMPRESSION_CCITTFAX3); + for (pn = 0; optind < argc; pn++, optind++) { + in = fopen(argv[optind], "r" BINMODE); + if (in == NULL) { + fprintf(stderr, + "%s: %s: Can not open\n", argv[0], argv[optind]); + continue; + } + faxTIFF->tif_fd = fileno(in); + faxTIFF->tif_clientdata = (thandle_t) faxTIFF->tif_fd; + faxTIFF->tif_name = argv[optind]; + TIFFSetField(out, TIFFTAG_IMAGEWIDTH, XSIZE); + TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, 1); + TIFFSetField(out, TIFFTAG_COMPRESSION, compression); + TIFFSetField(out, TIFFTAG_PHOTOMETRIC, photometric); + TIFFSetField(out, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT); + TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, 1); + if (compression == COMPRESSION_CCITTFAX3) { + TIFFSetField(out, TIFFTAG_GROUP3OPTIONS, group3options); + TIFFSetField(out, TIFFTAG_FAXMODE, mode); + } + if (compression == COMPRESSION_CCITTFAX3 || + compression == COMPRESSION_CCITTFAX4) + TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, -1L); + else + TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, + TIFFDefaultStripSize(out, 0)); + TIFFSetField(out, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); + TIFFSetField(out, TIFFTAG_FILLORDER, fillorder); + TIFFSetField(out, TIFFTAG_SOFTWARE, "fax2tiff"); + TIFFSetField(out, TIFFTAG_XRESOLUTION, 204.0); + if (!stretch) { + float yres; + TIFFGetField(faxTIFF, TIFFTAG_YRESOLUTION, &yres); + TIFFSetField(out, TIFFTAG_YRESOLUTION, yres); + } else + TIFFSetField(out, TIFFTAG_YRESOLUTION, 196.); + TIFFSetField(out, TIFFTAG_RESOLUTIONUNIT, RESUNIT_INCH); + TIFFSetField(out, TIFFTAG_PAGENUMBER, pn+1, npages); + + if (!verbose) + whandler = TIFFSetWarningHandler(NULL); + rows = copyFaxFile(faxTIFF, out); + fclose(in); + if (!verbose) + (void) TIFFSetWarningHandler(whandler); + + TIFFSetField(out, TIFFTAG_IMAGELENGTH, rows); + + if (verbose) { + fprintf(stderr, "%s:\n", argv[optind]); + fprintf(stderr, "%d rows in input\n", rows); + fprintf(stderr, "%ld total bad rows\n", + (long) badfaxlines); + fprintf(stderr, "%d max consecutive bad rows\n", badfaxrun); + } + if (compression == COMPRESSION_CCITTFAX3 && + mode == FAXMODE_CLASSF) { + TIFFSetField(out, TIFFTAG_BADFAXLINES, badfaxlines); + TIFFSetField(out, TIFFTAG_CLEANFAXDATA, badfaxlines ? + CLEANFAXDATA_REGENERATED : CLEANFAXDATA_CLEAN); + TIFFSetField(out, TIFFTAG_CONSECUTIVEBADFAXLINES, badfaxrun); + } + TIFFWriteDirectory(out); + } + TIFFClose(out); + return (EXIT_SUCCESS); +} + +int +copyFaxFile(TIFF* tifin, TIFF* tifout) +{ + uint32 row; + uint16 badrun; + int ok; + + tifin->tif_rawdatasize = TIFFGetFileSize(tifin); + tifin->tif_rawdata = _TIFFmalloc(tifin->tif_rawdatasize); + if (!ReadOK(tifin, tifin->tif_rawdata, tifin->tif_rawdatasize)) { + TIFFError(tifin->tif_name, "%s: Read error at scanline 0"); + return (0); + } + tifin->tif_rawcp = tifin->tif_rawdata; + tifin->tif_rawcc = tifin->tif_rawdatasize; + + (*tifin->tif_setupdecode)(tifin); + (*tifin->tif_predecode)(tifin, (tsample_t) 0); + tifin->tif_row = 0; + badfaxlines = 0; + badfaxrun = 0; + + _TIFFmemset(refbuf, 0, sizeof (refbuf)); + row = 0; + badrun = 0; /* current run of bad lines */ + while (tifin->tif_rawcc > 0) { + ok = (*tifin->tif_decoderow)(tifin, (tdata_t) rowbuf, + sizeof (rowbuf), 0); + if (!ok) { + badfaxlines++; + badrun++; + /* regenerate line from previous good line */ + _TIFFmemcpy(rowbuf, refbuf, sizeof (rowbuf)); + } else { + if (badrun > badfaxrun) + badfaxrun = badrun; + badrun = 0; + _TIFFmemcpy(refbuf, rowbuf, sizeof (rowbuf)); + } + tifin->tif_row++; + + if (TIFFWriteScanline(tifout, rowbuf, row, 0) < 0) { + fprintf(stderr, "%s: Write error at row %ld.\n", + tifout->tif_name, (long) row); + break; + } + row++; + if (stretch) { + if (TIFFWriteScanline(tifout, rowbuf, row, 0) < 0) { + fprintf(stderr, "%s: Write error at row %ld.\n", + tifout->tif_name, (long) row); + break; + } + row++; + } + } + if (badrun > badfaxrun) + badfaxrun = badrun; + _TIFFfree(tifin->tif_rawdata); + return (row); +} + +char* stuff[] = { +"usage: fax2tiff [options] input.g3...", +"where options are:", +" -2 input data is 2d encoded", +" -B input data has min 0 means black", +" -L input data has LSB2MSB bit order (default)", +" -M input data has MSB2LSB bit order", +" -W input data has min 0 means white (default)", +" -R # input data has # resolution (lines/inch) (default is 196)", +"", +" -o out.tif write output to out.tif", +" -1 generate 1d-encoded output (default is G3 2d)", +" -4 generate G4-encoded output (default is G3 2D)", +" -c generate \"classic\" TIFF format (default is TIFF/F)", +" -f generate TIFF Class F (TIFF/F) format (default)", +" -m output fill order is MSB2LSB (default is LSB2MSB)", +" -p do not byte-align EOL codes in output (default is byte-align)", +" -s stretch image by duplicating scanlines", +" -v print information about conversion work", +NULL +}; + +static void +usage(void) +{ + char buf[BUFSIZ]; + int i; + + setbuf(stderr, buf); + for (i = 0; stuff[i] != NULL; i++) + fprintf(stderr, "%s\n", stuff[i]); + exit(EXIT_FAILURE); +} diff --git a/tools/gif2tiff.c b/tools/gif2tiff.c new file mode 100755 index 0000000..dd1f282 --- /dev/null +++ b/tools/gif2tiff.c @@ -0,0 +1,513 @@ +/* $Header: /home/cvsroot/libtiff/tools/gif2tiff.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1990-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * convert a GIF file into a TIFF file. + * based on Paul Haeberli's fromgif program which in turn is + * based on a GIF file reader by Marcel J.E. Mol March 23 1989 + * + * if input is 320 by 200 pixel aspect is probably 1.2 + * if input is 640 350 pixel aspect is probably 1.37 + * + */ +#include +#include +#include +#include + +#include "tiffio.h" + +#if defined(_WINDOWS) || defined(MSDOS) +#define BINMODE "b" +#else +#define BINMODE +#endif + +#define GIFGAMMA (1.5) /* smaller makes output img brighter */ +#define IMAX 0xffff /* max intensity value */ +#define EXTRAFUDGE 128 /* some people write BAD .gif files */ + +#define streq(a,b) (strcmp(a,b) == 0) +#define strneq(a,b,n) (strncmp(a,b,n) == 0) + +unsigned short gamtab[256]; + +void +makegamtab(float gam) +{ + int i; + + for(i=0; i<256; i++) + gamtab[i] = IMAX*pow(i/255.0,gam)+0.5; +} + +char* stuff[] = { +"usage: gif2tiff [options] input.gif output.tif", +"where options are:", +" -r # make each strip have no more than # rows", +"", +" -c lzw[:opts] compress output with Lempel-Ziv & Welch encoding", +" (no longer supported by default due to Unisys patent enforcement)", +" -c zip[:opts] compress output with deflate encoding", +" -c packbits compress output with packbits encoding", +" -c none use no compression algorithm on output", +"", +"LZW and deflate options:", +" # set predictor value", +"For example, -c lzw:2 to get LZW-encoded data with horizontal differencing", +NULL +}; + +static void +usage(void) +{ + char buf[BUFSIZ]; + int i; + + setbuf(stderr, buf); + for (i = 0; stuff[i] != NULL; i++) + fprintf(stderr, "%s\n", stuff[i]); + exit(-1); +} + +#define COLSIZE 256 + +unsigned char *stackp; +unsigned int prefix[4096]; +unsigned char suffix[4096]; +unsigned char stack[4096]; +int datasize,codesize,codemask; /* Decoder working variables */ +int clear,eoi; /* Special code values */ +int avail, oldcode; + +FILE *infile; +int global; /* Is there a global color map? */ +int globalbits; /* Number of bits of global colors */ +unsigned char globalmap[COLSIZE][3];/* RGB values for global color map */ +unsigned char *raster; /* Decoded image data */ +unsigned long width, height; +unsigned short red[COLSIZE]; +unsigned short green[COLSIZE]; +unsigned short blue[COLSIZE]; +char *filename, *imagename; + +static uint16 compression = COMPRESSION_PACKBITS; +static uint16 predictor = 0; +static uint32 rowsperstrip = (uint32) -1; +static int processCompressOptions(char*); + +int convert(void); +int checksignature(void); +void readscreen(void); +int readgifimage(char*); +void readextension(void); +int readraster(void); +int process(int, unsigned char**); +void initcolors(unsigned char [COLSIZE][3], int); +void rasterize(int, char*); + +int +main(int argc, char* argv[]) +{ + extern int optind; + extern char *optarg; + int c, status; + + while ((c = getopt(argc, argv, "c:r:")) != -1) + switch (c) { + case 'c': /* compression scheme */ + if (!processCompressOptions(optarg)) + usage(); + break; + case 'r': /* rows/strip */ + rowsperstrip = atoi(optarg); + break; + case '?': + usage(); + /*NOTREACHED*/ + } + if (argc - optind != 2) + usage(); + + makegamtab(GIFGAMMA); + filename = argv[optind]; + imagename = argv[optind+1]; + if ((infile = fopen(imagename, "r" BINMODE)) != NULL) { + int c; + fclose(infile); + printf("overwrite %s? ", imagename); fflush(stdout); + c = getc(stdin); + if (c != 'y' && c != 'Y') + return (1); + } + if ((infile = fopen(filename, "r" BINMODE)) == NULL) { + perror(filename); + return (1); + } + status = convert(); + fclose(infile); + return (status); +} + +static int +processCompressOptions(char* opt) +{ + if (streq(opt, "none")) + compression = COMPRESSION_NONE; + else if (streq(opt, "packbits")) + compression = COMPRESSION_PACKBITS; + else if (strneq(opt, "lzw", 3)) { + char* cp = strchr(opt, ':'); + if (cp) + predictor = atoi(cp+1); + compression = COMPRESSION_LZW; + } else if (strneq(opt, "zip", 3)) { + char* cp = strchr(opt, ':'); + if (cp) + predictor = atoi(cp+1); + compression = COMPRESSION_DEFLATE; + } else + return (0); + return (1); +} + +int +convert(void) +{ + int ch; + char* mode = "w"; + + if (!checksignature()) + return (-1); + readscreen(); + while ((ch = getc(infile)) != ';' && ch != EOF) { + switch (ch) { + case '\0': break; /* this kludge for non-standard files */ + case ',': if (!readgifimage(mode)) + return (-1); + mode = "a"; /* subsequent images append */ + break; + case '!': readextension(); + break; + default: fprintf(stderr, "illegal GIF block type\n"); + return (-1); + } + } + return (0); +} + +int +checksignature(void) +{ + char buf[6]; + + fread(buf,1,6,infile); + if (strncmp(buf,"GIF",3)) { + fprintf(stderr, "file is not a GIF file\n"); + return 0; + } + if (strncmp(&buf[3],"87a",3)) { + fprintf(stderr, "unknown GIF version number\n"); + return 0; + } + return 1; +} + +/* + * readscreen - + * Get information which is global to all the images stored + * in the file + */ +void +readscreen(void) +{ + unsigned char buf[7]; + + fread(buf,1,7,infile); + global = buf[4] & 0x80; + if (global) { + globalbits = (buf[4] & 0x07) + 1; + fread(globalmap,3,1< 0; count = getc(infile)) { + fread(buf,1,count,infile); + for (ch=buf; count-- > 0; ch++) { + datum += (unsigned long) *ch << bits; + bits += 8; + while (bits >= codesize) { + code = datum & codemask; + datum >>= codesize; + bits -= codesize; + if (code == eoi) { /* This kludge put in */ + goto exitloop; /* because some GIF files*/ + } /* aren't standard */ + if (!process(code, &fill)) { + status = 0; + goto exitloop; + } + } + } + if (fill >= raster + width*height) { + fprintf(stderr, "raster full before eoi code\n"); + break; + } + } +exitloop: + if (fill != raster + width*height) { + fprintf(stderr, "warning: wrong rastersize: %ld bytes\n", + (long) (fill-raster)); + fprintf(stderr, " instead of %ld bytes\n", + (long) width*height); + } + return status; +} + +/* + * process - + * Process a compression code. "clear" resets the code table. + * Otherwise make a new code table entry, and output the bytes + * associated with the code. + */ +int +process(register int code, unsigned char** fill) +{ + int incode; + static unsigned char firstchar; + + if (code == clear) { + codesize = datasize + 1; + codemask = (1 << codesize) - 1; + avail = clear + 2; + oldcode = -1; + return 1; + } + + if (oldcode == -1) { + *(*fill)++ = suffix[code]; + firstchar = oldcode = code; + return 1; + } + if (code > avail) { + fprintf(stderr, "code %d too large for %d\n", code, avail); + return 0; + } + + incode = code; + if (code == avail) { /* the first code is always < avail */ + *stackp++ = firstchar; + code = oldcode; + } + while (code > clear) { + *stackp++ = suffix[code]; + code = prefix[code]; + } + + *stackp++ = firstchar = suffix[code]; + prefix[avail] = oldcode; + suffix[avail] = firstchar; + avail++; + + if (((avail & codemask) == 0) && (avail < 4096)) { + codesize++; + codemask += avail; + } + oldcode = incode; + do { + *(*fill)++ = *--stackp; + } while (stackp > stack); + return 1; +} + +/* + * initcolors - + * Convert a color map (local or global) to arrays with R, G and B + * values. + * + */ +void +initcolors(unsigned char colormap[COLSIZE][3], int ncolors) +{ + register int i; + + for (i = 0; i < ncolors; i++) { + red[i] = gamtab[colormap[i][0]]; + green[i] = gamtab[colormap[i][1]]; + blue[i] = gamtab[colormap[i][2]]; + } +} + +void +rasterize(int interleaved, char* mode) +{ + register long row; + unsigned char *newras; + unsigned char *ras; + TIFF *tif; + tstrip_t strip; + tsize_t stripsize; + + if ((newras = (unsigned char*) _TIFFmalloc(width*height+EXTRAFUDGE)) == NULL) { + fprintf(stderr, "not enough memory for image\n"); + return; + } +#define DRAWSEGMENT(offset, step) { \ + for (row = offset; row < height; row += step) { \ + _TIFFmemcpy(newras + row*width, ras, width);\ + ras += width; \ + } \ + } + ras = raster; + if (interleaved) { + DRAWSEGMENT(0, 8); + DRAWSEGMENT(4, 8); + DRAWSEGMENT(2, 4); + DRAWSEGMENT(1, 2); + } else + DRAWSEGMENT(0, 1); +#undef DRAWSEGMENT + + tif = TIFFOpen(imagename, mode); + if (!tif) { + TIFFError(imagename,"Can not open output image"); + exit(-1); + } + TIFFSetField(tif, TIFFTAG_IMAGEWIDTH, (uint32) width); + TIFFSetField(tif, TIFFTAG_IMAGELENGTH, (uint32) height); + TIFFSetField(tif, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_PALETTE); + TIFFSetField(tif, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); + TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, 1); + TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, 8); + TIFFSetField(tif, TIFFTAG_ROWSPERSTRIP, + rowsperstrip = TIFFDefaultStripSize(tif, rowsperstrip)); + TIFFSetField(tif, TIFFTAG_COMPRESSION, compression); + switch (compression) { + case COMPRESSION_LZW: + case COMPRESSION_DEFLATE: + if (predictor != 0) + TIFFSetField(tif, TIFFTAG_PREDICTOR, predictor); + break; + } + TIFFSetField(tif, TIFFTAG_COLORMAP, red, green, blue); + TIFFSetField(tif, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT); + strip = 0; + stripsize = TIFFStripSize(tif); + for (row=0; row +#include +#include +#include + +#include "tiffio.h" + +#define streq(a,b) (strcmp(a,b) == 0) +#define strneq(a,b,n) (strncmp(a,b,n) == 0) + +static void usage(void); +static void cpTags(TIFF* in, TIFF* out); + +static int +checkcmap(int n, uint16* r, uint16* g, uint16* b) +{ + while (n-- > 0) + if (*r++ >= 256 || *g++ >= 256 || *b++ >= 256) + return (16); + fprintf(stderr, "Warning, assuming 8-bit colormap.\n"); + return (8); +} + +#define CopyField(tag, v) \ + if (TIFFGetField(in, tag, &v)) TIFFSetField(out, tag, v) +#define CopyField3(tag, v1, v2, v3) \ + if (TIFFGetField(in, tag, &v1, &v2, &v3)) TIFFSetField(out, tag, v1, v2, v3) + +static uint16 compression = (uint16) -1; +static uint16 predictor = 0; +static int quality = 75; /* JPEG quality */ +static int jpegcolormode = JPEGCOLORMODE_RGB; +static int processCompressOptions(char*); + +int +main(int argc, char* argv[]) +{ + uint16 bitspersample, shortv; + uint32 imagewidth, imagelength; + uint16 config = PLANARCONFIG_CONTIG; + uint32 rowsperstrip = (uint32) -1; + uint16 photometric = PHOTOMETRIC_RGB; + uint16 *rmap, *gmap, *bmap; + uint32 row; + int cmap = -1; + TIFF *in, *out; + int c; + extern int optind; + extern char* optarg; + + while ((c = getopt(argc, argv, "C:c:p:r:")) != -1) + switch (c) { + case 'C': /* force colormap interpretation */ + cmap = atoi(optarg); + break; + case 'c': /* compression scheme */ + if (!processCompressOptions(optarg)) + usage(); + break; + case 'p': /* planar configuration */ + if (streq(optarg, "separate")) + config = PLANARCONFIG_SEPARATE; + else if (streq(optarg, "contig")) + config = PLANARCONFIG_CONTIG; + else + usage(); + break; + case 'r': /* rows/strip */ + rowsperstrip = atoi(optarg); + break; + case '?': + usage(); + /*NOTREACHED*/ + } + if (argc - optind != 2) + usage(); + in = TIFFOpen(argv[optind], "r"); + if (in == NULL) + return (-1); + if (!TIFFGetField(in, TIFFTAG_PHOTOMETRIC, &shortv) || + shortv != PHOTOMETRIC_PALETTE) { + fprintf(stderr, "%s: Expecting a palette image.\n", + argv[optind]); + return (-1); + } + if (!TIFFGetField(in, TIFFTAG_COLORMAP, &rmap, &gmap, &bmap)) { + fprintf(stderr, + "%s: No colormap (not a valid palette image).\n", + argv[optind]); + return (-1); + } + bitspersample = 0; + TIFFGetField(in, TIFFTAG_BITSPERSAMPLE, &bitspersample); + if (bitspersample != 8) { + fprintf(stderr, "%s: Sorry, can only handle 8-bit images.\n", + argv[optind]); + return (-1); + } + out = TIFFOpen(argv[optind+1], "w"); + if (out == NULL) + return (-2); + cpTags(in, out); + TIFFGetField(in, TIFFTAG_IMAGEWIDTH, &imagewidth); + TIFFGetField(in, TIFFTAG_IMAGELENGTH, &imagelength); + if (compression != (uint16)-1) + TIFFSetField(out, TIFFTAG_COMPRESSION, compression); + else + TIFFGetField(in, TIFFTAG_COMPRESSION, &compression); + switch (compression) { + case COMPRESSION_JPEG: + if (jpegcolormode == JPEGCOLORMODE_RGB) + photometric = PHOTOMETRIC_YCBCR; + else + photometric = PHOTOMETRIC_RGB; + TIFFSetField(out, TIFFTAG_JPEGQUALITY, quality); + TIFFSetField(out, TIFFTAG_JPEGCOLORMODE, jpegcolormode); + break; + case COMPRESSION_LZW: + case COMPRESSION_DEFLATE: + if (predictor != 0) + TIFFSetField(out, TIFFTAG_PREDICTOR, predictor); + break; + } + TIFFSetField(out, TIFFTAG_PHOTOMETRIC, photometric); + TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, 3); + TIFFSetField(out, TIFFTAG_PLANARCONFIG, config); + TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, + rowsperstrip = TIFFDefaultStripSize(out, rowsperstrip)); + (void) TIFFGetField(in, TIFFTAG_PLANARCONFIG, &shortv); + if (cmap == -1) + cmap = checkcmap(1<= 0; i--) { +#define CVT(x) (((x) * 255) / ((1L<<16)-1)) + rmap[i] = CVT(rmap[i]); + gmap[i] = CVT(gmap[i]); + bmap[i] = CVT(bmap[i]); + } + } + { unsigned char *ibuf, *obuf; + register unsigned char* pp; + register uint32 x; + ibuf = (unsigned char*)_TIFFmalloc(TIFFScanlineSize(in)); + obuf = (unsigned char*)_TIFFmalloc(TIFFScanlineSize(out)); + switch (config) { + case PLANARCONFIG_CONTIG: + for (row = 0; row < imagelength; row++) { + if (!TIFFReadScanline(in, ibuf, row, 0)) + goto done; + pp = obuf; + for (x = 0; x < imagewidth; x++) { + *pp++ = rmap[ibuf[x]]; + *pp++ = gmap[ibuf[x]]; + *pp++ = bmap[ibuf[x]]; + } + if (!TIFFWriteScanline(out, obuf, row, 0)) + goto done; + } + break; + case PLANARCONFIG_SEPARATE: + for (row = 0; row < imagelength; row++) { + if (!TIFFReadScanline(in, ibuf, row, 0)) + goto done; + for (pp = obuf, x = 0; x < imagewidth; x++) + *pp++ = rmap[ibuf[x]]; + if (!TIFFWriteScanline(out, obuf, row, 0)) + goto done; + for (pp = obuf, x = 0; x < imagewidth; x++) + *pp++ = gmap[ibuf[x]]; + if (!TIFFWriteScanline(out, obuf, row, 0)) + goto done; + for (pp = obuf, x = 0; x < imagewidth; x++) + *pp++ = bmap[ibuf[x]]; + if (!TIFFWriteScanline(out, obuf, row, 0)) + goto done; + } + break; + } + _TIFFfree(ibuf); + _TIFFfree(obuf); + } +done: + (void) TIFFClose(in); + (void) TIFFClose(out); + return (0); +} + +static int +processCompressOptions(char* opt) +{ + if (streq(opt, "none")) + compression = COMPRESSION_NONE; + else if (streq(opt, "packbits")) + compression = COMPRESSION_PACKBITS; + else if (strneq(opt, "jpeg", 4)) { + char* cp = strchr(opt, ':'); + if (cp && isdigit(cp[1])) + quality = atoi(cp+1); + if (cp && strchr(cp, 'r')) + jpegcolormode = JPEGCOLORMODE_RAW; + compression = COMPRESSION_JPEG; + } else if (strneq(opt, "lzw", 3)) { + char* cp = strchr(opt, ':'); + if (cp) + predictor = atoi(cp+1); + compression = COMPRESSION_LZW; + } else if (strneq(opt, "zip", 3)) { + char* cp = strchr(opt, ':'); + if (cp) + predictor = atoi(cp+1); + compression = COMPRESSION_DEFLATE; + } else + return (0); + return (1); +} + +#define CopyField1(tag, v) \ + if (TIFFGetField(in, tag, &v)) TIFFSetField(out, tag, v) +#define CopyField2(tag, v1, v2) \ + if (TIFFGetField(in, tag, &v1, &v2)) TIFFSetField(out, tag, v1, v2) +#define CopyField3(tag, v1, v2, v3) \ + if (TIFFGetField(in, tag, &v1, &v2, &v3)) TIFFSetField(out, tag, v1, v2, v3) +#define CopyField4(tag, v1, v2, v3, v4) \ + if (TIFFGetField(in, tag, &v1, &v2, &v3, &v4)) TIFFSetField(out, tag, v1, v2, v3, v4) + +static void +cpTag(TIFF* in, TIFF* out, uint16 tag, uint16 count, TIFFDataType type) +{ + uint16 shortv, shortv2, *shortav; + float floatv, *floatav; + char *stringv; + uint32 longv; + + switch (type) { + case TIFF_SHORT: + if (count == 1) { + CopyField1(tag, shortv); + } else if (count == 2) { + CopyField2(tag, shortv, shortv2); + } else if (count == (uint16) -1) { + CopyField2(tag, shortv, shortav); + } + break; + case TIFF_LONG: + CopyField1(tag, longv); + break; + case TIFF_RATIONAL: + if (count == 1) { + CopyField1(tag, floatv); + } else if (count == (uint16) -1) { + CopyField1(tag, floatav); + } + break; + case TIFF_ASCII: + CopyField1(tag, stringv); + break; + } +} +#undef CopyField4 +#undef CopyField3 +#undef CopyField2 +#undef CopyField1 + +static struct cpTag { + uint16 tag; + uint16 count; + TIFFDataType type; +} tags[] = { + { TIFFTAG_IMAGEWIDTH, 1, TIFF_LONG }, + { TIFFTAG_IMAGELENGTH, 1, TIFF_LONG }, + { TIFFTAG_BITSPERSAMPLE, 1, TIFF_SHORT }, + { TIFFTAG_COMPRESSION, 1, TIFF_SHORT }, + { TIFFTAG_FILLORDER, 1, TIFF_SHORT }, + { TIFFTAG_ROWSPERSTRIP, 1, TIFF_LONG }, + { TIFFTAG_GROUP3OPTIONS, 1, TIFF_LONG }, + { TIFFTAG_SUBFILETYPE, 1, TIFF_LONG }, + { TIFFTAG_THRESHHOLDING, 1, TIFF_SHORT }, + { TIFFTAG_DOCUMENTNAME, 1, TIFF_ASCII }, + { TIFFTAG_IMAGEDESCRIPTION, 1, TIFF_ASCII }, + { TIFFTAG_MAKE, 1, TIFF_ASCII }, + { TIFFTAG_MODEL, 1, TIFF_ASCII }, + { TIFFTAG_ORIENTATION, 1, TIFF_SHORT }, + { TIFFTAG_MINSAMPLEVALUE, 1, TIFF_SHORT }, + { TIFFTAG_MAXSAMPLEVALUE, 1, TIFF_SHORT }, + { TIFFTAG_XRESOLUTION, 1, TIFF_RATIONAL }, + { TIFFTAG_YRESOLUTION, 1, TIFF_RATIONAL }, + { TIFFTAG_PAGENAME, 1, TIFF_ASCII }, + { TIFFTAG_XPOSITION, 1, TIFF_RATIONAL }, + { TIFFTAG_YPOSITION, 1, TIFF_RATIONAL }, + { TIFFTAG_GROUP4OPTIONS, 1, TIFF_LONG }, + { TIFFTAG_RESOLUTIONUNIT, 1, TIFF_SHORT }, + { TIFFTAG_PAGENUMBER, 2, TIFF_SHORT }, + { TIFFTAG_SOFTWARE, 1, TIFF_ASCII }, + { TIFFTAG_DATETIME, 1, TIFF_ASCII }, + { TIFFTAG_ARTIST, 1, TIFF_ASCII }, + { TIFFTAG_HOSTCOMPUTER, 1, TIFF_ASCII }, + { TIFFTAG_WHITEPOINT, 1, TIFF_RATIONAL }, + { TIFFTAG_PRIMARYCHROMATICITIES, (uint16) -1,TIFF_RATIONAL }, + { TIFFTAG_HALFTONEHINTS, 2, TIFF_SHORT }, + { TIFFTAG_BADFAXLINES, 1, TIFF_LONG }, + { TIFFTAG_CLEANFAXDATA, 1, TIFF_SHORT }, + { TIFFTAG_CONSECUTIVEBADFAXLINES, 1, TIFF_LONG }, + { TIFFTAG_INKSET, 1, TIFF_SHORT }, + { TIFFTAG_INKNAMES, 1, TIFF_ASCII }, + { TIFFTAG_DOTRANGE, 2, TIFF_SHORT }, + { TIFFTAG_TARGETPRINTER, 1, TIFF_ASCII }, + { TIFFTAG_SAMPLEFORMAT, 1, TIFF_SHORT }, + { TIFFTAG_YCBCRCOEFFICIENTS, (uint16) -1,TIFF_RATIONAL }, + { TIFFTAG_YCBCRSUBSAMPLING, 2, TIFF_SHORT }, + { TIFFTAG_YCBCRPOSITIONING, 1, TIFF_SHORT }, + { TIFFTAG_REFERENCEBLACKWHITE, (uint16) -1,TIFF_RATIONAL }, +}; +#define NTAGS (sizeof (tags) / sizeof (tags[0])) + +static void +cpTags(TIFF* in, TIFF* out) +{ + struct cpTag *p; + for (p = tags; p < &tags[NTAGS]; p++) + cpTag(in, out, p->tag, p->count, p->type); +} +#undef NTAGS + +char* stuff[] = { +"usage: pal2rgb [options] input.tif output.tif", +"where options are:", +" -p contig pack samples contiguously (e.g. RGBRGB...)", +" -p separate store samples separately (e.g. RRR...GGG...BBB...)", +" -r # make each strip have no more than # rows", +" -C 8 assume 8-bit colormap values (instead of 16-bit)", +" -C 16 assume 16-bit colormap values", +"", +" -c lzw[:opts] compress output with Lempel-Ziv & Welch encoding", +" (no longer supported by default due to Unisys patent enforcement)", +" -c zip[:opts] compress output with deflate encoding", +" -c packbits compress output with packbits encoding", +" -c none use no compression algorithm on output", +"", +"LZW and deflate options:", +" # set predictor value", +"For example, -c lzw:2 to get LZW-encoded data with horizontal differencing", +NULL +}; + +static void +usage(void) +{ + char buf[BUFSIZ]; + int i; + + setbuf(stderr, buf); + for (i = 0; stuff[i] != NULL; i++) + fprintf(stderr, "%s\n", stuff[i]); + exit(-1); +} diff --git a/tools/ppm2tiff.c b/tools/ppm2tiff.c new file mode 100755 index 0000000..69479f0 --- /dev/null +++ b/tools/ppm2tiff.c @@ -0,0 +1,242 @@ +/* $Header: /home/cvsroot/libtiff/tools/ppm2tiff.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1991-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include +#include +#include +#include + +#include "tiffio.h" + +#if defined(_WINDOWS) || defined(MSDOS) +#define BINMODE "b" +#else +#define BINMODE +#endif + +#define streq(a,b) (strcmp(a,b) == 0) +#define strneq(a,b,n) (strncmp(a,b,n) == 0) + +static uint16 compression = COMPRESSION_PACKBITS; +static uint16 predictor = 0; +static int quality = 75; /* JPEG quality */ +static int jpegcolormode = JPEGCOLORMODE_RGB; + +static void usage(void); +static int processCompressOptions(char*); + +static void +BadPPM(char* file) +{ + fprintf(stderr, "%s: Not a PPM file.\n", file); + exit(-2); +} + +int +main(int argc, char* argv[]) +{ + uint16 photometric; + uint32 rowsperstrip = (uint32) -1; + double resolution = -1; + unsigned char *buf = NULL; + uint32 row; + tsize_t linebytes; + uint16 spp; + TIFF *out; + FILE *in; + uint32 w, h; + int prec; + char *infile; + int c; + extern int optind; + extern char* optarg; + + while ((c = getopt(argc, argv, "c:r:R:")) != -1) + switch (c) { + case 'c': /* compression scheme */ + if (!processCompressOptions(optarg)) + usage(); + break; + case 'r': /* rows/strip */ + rowsperstrip = atoi(optarg); + break; + case 'R': /* resolution */ + resolution = atof(optarg); + break; + case '?': + usage(); + /*NOTREACHED*/ + } + + /* + * If only one file is specified, read input from + * stdin; otherwise usage is: ppm2tiff input output. + */ + if (argc - optind > 1) { + infile = argv[optind++]; + in = fopen(infile, "r" BINMODE); + if (in == NULL) { + fprintf(stderr, "%s: Can not open.\n", infile); + return (-1); + } + } else { + infile = ""; + in = stdin; + } + + if (getc(in) != 'P') + BadPPM(infile); + switch (getc(in)) { + case '5': /* it's a PGM file */ + spp = 1; + photometric = PHOTOMETRIC_MINISBLACK; + break; + case '6': /* it's a PPM file */ + spp = 3; + photometric = PHOTOMETRIC_RGB; + if (compression == COMPRESSION_JPEG && + jpegcolormode == JPEGCOLORMODE_RGB) + photometric = PHOTOMETRIC_YCBCR; + break; + default: + BadPPM(infile); + } + if (fscanf(in, " %ld %ld %d", &w, &h, &prec) != 3) + BadPPM(infile); + if (getc(in) != '\n' || w <= 0 || h <= 0 || prec != 255) + BadPPM(infile); + + out = TIFFOpen(argv[optind], "w"); + if (out == NULL) + return (-4); + TIFFSetField(out, TIFFTAG_IMAGEWIDTH, w); + TIFFSetField(out, TIFFTAG_IMAGELENGTH, h); + TIFFSetField(out, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT); + TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, spp); + TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, 8); + TIFFSetField(out, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); + TIFFSetField(out, TIFFTAG_PHOTOMETRIC, photometric); + TIFFSetField(out, TIFFTAG_COMPRESSION, compression); + switch (compression) { + case COMPRESSION_JPEG: + TIFFSetField(out, TIFFTAG_JPEGQUALITY, quality); + TIFFSetField(out, TIFFTAG_JPEGCOLORMODE, jpegcolormode); + break; + case COMPRESSION_LZW: + case COMPRESSION_DEFLATE: + if (predictor != 0) + TIFFSetField(out, TIFFTAG_PREDICTOR, predictor); + break; + } + linebytes = spp * w; + if (TIFFScanlineSize(out) > linebytes) + buf = (unsigned char *)_TIFFmalloc(linebytes); + else + buf = (unsigned char *)_TIFFmalloc(TIFFScanlineSize(out)); + TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, + TIFFDefaultStripSize(out, rowsperstrip)); + if (resolution > 0) { + TIFFSetField(out, TIFFTAG_XRESOLUTION, resolution); + TIFFSetField(out, TIFFTAG_YRESOLUTION, resolution); + TIFFSetField(out, TIFFTAG_RESOLUTIONUNIT, RESUNIT_INCH); + } + for (row = 0; row < h; row++) { + if (fread(buf, linebytes, 1, in) != 1) { + fprintf(stderr, "%s: scanline %lu: Read error.\n", + infile, (unsigned long) row); + break; + } + if (TIFFWriteScanline(out, buf, row, 0) < 0) + break; + } + (void) TIFFClose(out); + if (buf) + _TIFFfree(buf); + return (0); +} + +static int +processCompressOptions(char* opt) +{ + if (streq(opt, "none")) + compression = COMPRESSION_NONE; + else if (streq(opt, "packbits")) + compression = COMPRESSION_PACKBITS; + else if (strneq(opt, "jpeg", 4)) { + char* cp = strchr(opt, ':'); + if (cp && isdigit(cp[1])) + quality = atoi(cp+1); + if (cp && strchr(cp, 'r')) + jpegcolormode = JPEGCOLORMODE_RAW; + compression = COMPRESSION_JPEG; + } else if (strneq(opt, "lzw", 3)) { + char* cp = strchr(opt, ':'); + if (cp) + predictor = atoi(cp+1); + compression = COMPRESSION_LZW; + } else if (strneq(opt, "zip", 3)) { + char* cp = strchr(opt, ':'); + if (cp) + predictor = atoi(cp+1); + compression = COMPRESSION_DEFLATE; + } else + return (0); + return (1); +} + +char* stuff[] = { +"usage: ppm2tiff [options] input.ppm output.tif", +"where options are:", +" -r # make each strip have no more than # rows", +" -R # set x&y resolution (dpi)", +"", +" -c jpeg[:opts] compress output with JPEG encoding", +" -c lzw[:opts] compress output with Lempel-Ziv & Welch encoding", +" (no longer supported by default due to Unisys patent enforcement)", +" -c zip[:opts] compress output with deflate encoding", +" -c packbits compress output with packbits encoding", +" -c none use no compression algorithm on output", +"", +"JPEG options:", +" # set compression quality level (0-100, default 75)", +" r output color image as RGB rather than YCbCr", +"LZW and deflate options:", +" # set predictor value", +"For example, -c lzw:2 to get LZW-encoded data with horizontal differencing", +NULL +}; + +static void +usage(void) +{ + char buf[BUFSIZ]; + int i; + + setbuf(stderr, buf); + for (i = 0; stuff[i] != NULL; i++) + fprintf(stderr, "%s\n", stuff[i]); + exit(-1); +} diff --git a/tools/ras2tiff.c b/tools/ras2tiff.c new file mode 100755 index 0000000..b28cd2c --- /dev/null +++ b/tools/ras2tiff.c @@ -0,0 +1,266 @@ +/* $Header: /home/cvsroot/libtiff/tools/ras2tiff.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include +#include +#include +#include + +#include "rasterfile.h" +#include "tiffio.h" + +#ifndef howmany +#define howmany(x, y) (((x)+((y)-1))/(y)) +#endif +#define streq(a,b) (strcmp(a,b) == 0) +#define strneq(a,b,n) (strncmp(a,b,n) == 0) + +#ifndef BINMODE +#define BINMODE +#endif + +static uint16 compression = (uint16) -1; +static int jpegcolormode = JPEGCOLORMODE_RGB; +static int quality = 75; /* JPEG quality */ +static uint16 predictor = 0; + +static void usage(void); +static int processCompressOptions(char*); + +int +main(int argc, char* argv[]) +{ + unsigned char* buf; + uint32 row; + tsize_t linebytes, scanline; + TIFF *out; + FILE *in; + struct rasterfile h; + uint16 photometric; + uint16 config = PLANARCONFIG_CONTIG; + uint32 rowsperstrip = (uint32) -1; + int c; + extern int optind; + extern char* optarg; + + while ((c = getopt(argc, argv, "c:r:")) != -1) + switch (c) { + case 'c': /* compression scheme */ + if (!processCompressOptions(optarg)) + usage(); + break; + case 'r': /* rows/strip */ + rowsperstrip = atoi(optarg); + break; + case '?': + usage(); + /*NOTREACHED*/ + } + if (argc - optind != 2) + usage(); + in = fopen(argv[optind], "r" BINMODE); + if (in == NULL) { + fprintf(stderr, "%s: Can not open.\n", argv[optind]); + return (-1); + } + if (fread(&h, sizeof (h), 1, in) != 1) { + fprintf(stderr, "%s: Can not read header.\n", argv[optind]); + return (-2); + } + if (h.ras_magic != RAS_MAGIC) { + fprintf(stderr, "%s: Not a rasterfile.\n", argv[optind]); + return (-3); + } + out = TIFFOpen(argv[optind+1], "w"); + if (out == NULL) + return (-4); + TIFFSetField(out, TIFFTAG_IMAGEWIDTH, (uint32) h.ras_width); + TIFFSetField(out, TIFFTAG_IMAGELENGTH, (uint32) h.ras_height); + TIFFSetField(out, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT); + TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, h.ras_depth > 8 ? 3 : 1); + TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, h.ras_depth > 1 ? 8 : 1); + TIFFSetField(out, TIFFTAG_PLANARCONFIG, config); + if (h.ras_maptype != RMT_NONE) { + uint16* red; + register uint16* map; + register int i, j; + int mapsize; + + buf = (unsigned char *)_TIFFmalloc(h.ras_maplength); + if (buf == NULL) { + fprintf(stderr, "No space to read in colormap.\n"); + return (-5); + } + if (fread(buf, h.ras_maplength, 1, in) != 1) { + fprintf(stderr, "%s: Read error on colormap.\n", + argv[optind]); + return (-6); + } + mapsize = 1< mapsize*3) { + fprintf(stderr, + "%s: Huh, %d colormap entries, should be %d?\n", + argv[optind], h.ras_maplength, mapsize*3); + return (-7); + } + red = (uint16*)_TIFFmalloc(mapsize * 3 * sizeof (uint16)); + if (red == NULL) { + fprintf(stderr, "No space for colormap.\n"); + return (-8); + } + map = red; + for (j = 0; j < 3; j++) { +#define SCALE(x) (((x)*((1L<<16)-1))/255) + for (i = h.ras_maplength/3; i-- > 0;) + *map++ = SCALE(*buf++); + if ((i = h.ras_maplength/3) < mapsize) { + i = mapsize - i; + _TIFFmemset(map, 0, i*sizeof (uint16)); + map += i; + } + } + TIFFSetField(out, TIFFTAG_COLORMAP, + red, red + mapsize, red + 2*mapsize); + photometric = PHOTOMETRIC_PALETTE; + if (compression == (uint16) -1) + compression = COMPRESSION_PACKBITS; + TIFFSetField(out, TIFFTAG_COMPRESSION, compression); + } else { + /* XXX this is bogus... */ + photometric = h.ras_depth == 24 ? + PHOTOMETRIC_RGB : PHOTOMETRIC_MINISBLACK; + if (compression == (uint16) -1) + compression = COMPRESSION_LZW; + TIFFSetField(out, TIFFTAG_COMPRESSION, compression); + } + switch (compression) { + case COMPRESSION_JPEG: + if (photometric == PHOTOMETRIC_RGB && jpegcolormode == JPEGCOLORMODE_RGB) + photometric = PHOTOMETRIC_YCBCR; + TIFFSetField(out, TIFFTAG_JPEGQUALITY, quality); + TIFFSetField(out, TIFFTAG_JPEGCOLORMODE, jpegcolormode); + break; + case COMPRESSION_LZW: + case COMPRESSION_DEFLATE: + if (predictor != 0) + TIFFSetField(out, TIFFTAG_PREDICTOR, predictor); + break; + } + TIFFSetField(out, TIFFTAG_PHOTOMETRIC, photometric); + linebytes = ((h.ras_depth*h.ras_width+15) >> 3) &~ 1; + scanline = TIFFScanlineSize(out); + if (scanline > linebytes) { + buf = (unsigned char *)_TIFFmalloc(scanline); + _TIFFmemset(buf+linebytes, 0, scanline-linebytes); + } else + buf = (unsigned char *)_TIFFmalloc(linebytes); + TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, + TIFFDefaultStripSize(out, rowsperstrip)); + for (row = 0; row < h.ras_height; row++) { + if (fread(buf, linebytes, 1, in) != 1) { + fprintf(stderr, "%s: scanline %lu: Read error.\n", + argv[optind], (unsigned long) row); + break; + } + if (h.ras_type == RT_STANDARD && h.ras_depth == 24) { + tsize_t cc = h.ras_width; + unsigned char* cp = buf; +#define SWAP(a,b) { unsigned char t = (a); (a) = (b); (b) = t; } + do { + SWAP(cp[0], cp[2]); + cp += 3; + } while (--cc); + } + if (TIFFWriteScanline(out, buf, row, 0) < 0) + break; + } + (void) TIFFClose(out); + return (0); +} + +static int +processCompressOptions(char* opt) +{ + if (streq(opt, "none")) + compression = COMPRESSION_NONE; + else if (streq(opt, "packbits")) + compression = COMPRESSION_PACKBITS; + else if (strneq(opt, "jpeg", 4)) { + char* cp = strchr(opt, ':'); + if (cp && isdigit(cp[1])) + quality = atoi(cp+1); + if (cp && strchr(cp, 'r')) + jpegcolormode = JPEGCOLORMODE_RAW; + compression = COMPRESSION_JPEG; + } else if (strneq(opt, "lzw", 3)) { + char* cp = strchr(opt, ':'); + if (cp) + predictor = atoi(cp+1); + compression = COMPRESSION_LZW; + } else if (strneq(opt, "zip", 3)) { + char* cp = strchr(opt, ':'); + if (cp) + predictor = atoi(cp+1); + compression = COMPRESSION_DEFLATE; + } else + return (0); + return (1); +} + +char* stuff[] = { +"usage: ras2tiff [options] input.ras output.tif", +"where options are:", +" -r # make each strip have no more than # rows", +"", +" -c lzw[:opts] compress output with Lempel-Ziv & Welch encoding", +" (no longer supported by default due to Unisys patent enforcement)", +" -c zip[:opts] compress output with deflate encoding", +" -c jpeg[:opts]compress output with JPEG encoding", +" -c packbits compress output with packbits encoding", +" -c none use no compression algorithm on output", +"", +"JPEG options:", +" # set compression quality level (0-100, default 75)", +" r output color image as RGB rather than YCbCr", +"For example, -c jpeg:r:50 to get JPEG-encoded RGB data with 50% comp. quality", +"", +"LZW and deflate options:", +" # set predictor value", +"For example, -c lzw:2 to get LZW-encoded data with horizontal differencing", +NULL +}; + +static void +usage(void) +{ + char buf[BUFSIZ]; + int i; + + setbuf(stderr, buf); + for (i = 0; stuff[i] != NULL; i++) + fprintf(stderr, "%s\n", stuff[i]); + exit(-1); +} diff --git a/tools/rasterfile.h b/tools/rasterfile.h new file mode 100755 index 0000000..e22e1ef --- /dev/null +++ b/tools/rasterfile.h @@ -0,0 +1,41 @@ +/* $Header: /home/cvsroot/libtiff/tools/rasterfile.h,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Description of header for files containing raster images + */ +struct rasterfile { + int ras_magic; /* magic number */ + int ras_width; /* width (pixels) of image */ + int ras_height; /* height (pixels) of image */ + int ras_depth; /* depth (1, 8, or 24 bits) of pixel */ + int ras_length; /* length (bytes) of image */ + int ras_type; /* type of file; see RT_* below */ + int ras_maptype; /* type of colormap; see RMT_* below */ + int ras_maplength; /* length (bytes) of following map */ + /* color map follows for ras_maplength bytes, followed by image */ +}; +#define RAS_MAGIC 0x59a66a95 + + /* Sun supported ras_type's */ +#define RT_OLD 0 /* Raw pixrect image in 68000 byte order */ +#define RT_STANDARD 1 /* Raw pixrect image in 68000 byte order */ +#define RT_BYTE_ENCODED 2 /* Run-length compression of bytes */ +#define RT_EXPERIMENTAL 0xffff /* Reserved for testing */ + + /* Sun registered ras_maptype's */ +#define RMT_RAW 2 + /* Sun supported ras_maptype's */ +#define RMT_NONE 0 /* ras_maplength is expected to be 0 */ +#define RMT_EQUAL_RGB 1 /* red[ras_maplength/3],green[],blue[] */ + +/* + * NOTES: + * Each line of the image is rounded out to a multiple of 16 bits. + * This corresponds to the rounding convention used by the memory pixrect + * package (/usr/include/pixrect/memvar.h) of the SunWindows system. + * The ras_encoding field (always set to 0 by Sun's supported software) + * was renamed to ras_length in release 2.0. As a result, rasterfiles + * of type 0 generated by the old software claim to have 0 length; for + * compatibility, code reading rasterfiles must be prepared to compute the + * true length from the width, height, and depth fields. + */ diff --git a/tools/rgb2ycbcr.c b/tools/rgb2ycbcr.c new file mode 100755 index 0000000..62d05ae --- /dev/null +++ b/tools/rgb2ycbcr.c @@ -0,0 +1,341 @@ +/* $Header: /home/cvsroot/libtiff/tools/rgb2ycbcr.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1991-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include +#include +#include + +#include "tiffio.h" + +#define streq(a,b) (strcmp(a,b) == 0) +#define CopyField(tag, v) \ + if (TIFFGetField(in, tag, &v)) TIFFSetField(out, tag, v) + +#ifndef howmany +#define howmany(x, y) (((x)+((y)-1))/(y)) +#endif +#define roundup(x, y) (howmany(x,y)*((uint32)(y))) + +#define LumaRed ycbcrCoeffs[0] +#define LumaGreen ycbcrCoeffs[1] +#define LumaBlue ycbcrCoeffs[2] + +uint16 compression = COMPRESSION_PACKBITS; +uint32 rowsperstrip = (uint32) -1; + +uint16 horizSubSampling = 2; /* YCbCr horizontal subsampling */ +uint16 vertSubSampling = 2; /* YCbCr vertical subsampling */ +float ycbcrCoeffs[3] = { .299, .587, .114 }; +/* default coding range is CCIR Rec 601-1 with no headroom/footroom */ +float refBlackWhite[6] = { 0., 255., 128., 255., 128., 255. }; + +static int tiffcvt(TIFF* in, TIFF* out); +static void usage(void); +static void setupLumaTables(void); + +int +main(int argc, char* argv[]) +{ + TIFF *in, *out; + int c; + extern int optind; + extern char *optarg; + + while ((c = getopt(argc, argv, "c:h:r:v:z")) != -1) + switch (c) { + case 'c': + if (streq(optarg, "none")) + compression = COMPRESSION_NONE; + else if (streq(optarg, "packbits")) + compression = COMPRESSION_PACKBITS; + else if (streq(optarg, "lzw")) + compression = COMPRESSION_LZW; + else if (streq(optarg, "jpeg")) + compression = COMPRESSION_JPEG; + else + usage(); + break; + case 'h': + horizSubSampling = atoi(optarg); + break; + case 'v': + vertSubSampling = atoi(optarg); + break; + case 'r': + rowsperstrip = atoi(optarg); + break; + case 'z': /* CCIR Rec 601-1 w/ headroom/footroom */ + refBlackWhite[0] = 16.; + refBlackWhite[1] = 235.; + refBlackWhite[2] = 128.; + refBlackWhite[3] = 240.; + refBlackWhite[4] = 128.; + refBlackWhite[5] = 240.; + break; + case '?': + usage(); + /*NOTREACHED*/ + } + if (argc - optind < 2) + usage(); + out = TIFFOpen(argv[argc-1], "w"); + if (out == NULL) + return (-2); + setupLumaTables(); + for (; optind < argc-1; optind++) { + in = TIFFOpen(argv[optind], "r"); + if (in != NULL) { + do { + if (!tiffcvt(in, out) || + !TIFFWriteDirectory(out)) { + (void) TIFFClose(out); + return (1); + } + } while (TIFFReadDirectory(in)); + (void) TIFFClose(in); + } + } + (void) TIFFClose(out); + return (0); +} + +float *lumaRed; +float *lumaGreen; +float *lumaBlue; +float D1, D2; +int Yzero; + +static float* +setupLuma(float c) +{ + float *v = (float *)_TIFFmalloc(256 * sizeof (float)); + int i; + for (i = 0; i < 256; i++) + v[i] = c * i; + return (v); +} + +static unsigned +V2Code(float f, float RB, float RW, int CR) +{ + unsigned int c = (unsigned int)((((f)*(RW-RB)/CR)+RB)+.5); + return (c > 255 ? 255 : c); +} + +static void +setupLumaTables(void) +{ + lumaRed = setupLuma(LumaRed); + lumaGreen = setupLuma(LumaGreen); + lumaBlue = setupLuma(LumaBlue); + D1 = 1./(2 - 2*LumaBlue); + D2 = 1./(2 - 2*LumaRed); + Yzero = V2Code(0, refBlackWhite[0], refBlackWhite[1], 255); +} + +static void +cvtClump(unsigned char* op, uint32* raster, uint32 ch, uint32 cw, uint32 w) +{ + float Y, Cb = 0, Cr = 0; + int j, k; + /* + * Convert ch-by-cw block of RGB + * to YCbCr and sample accordingly. + */ + for (k = 0; k < ch; k++) { + for (j = 0; j < cw; j++) { + uint32 RGB = (raster - k*w)[j]; + Y = lumaRed[TIFFGetR(RGB)] + + lumaGreen[TIFFGetG(RGB)] + + lumaBlue[TIFFGetB(RGB)]; + /* accumulate chrominance */ + Cb += (TIFFGetB(RGB) - Y) * D1; + Cr += (TIFFGetR(RGB) - Y) * D2; + /* emit luminence */ + *op++ = V2Code(Y, + refBlackWhite[0], refBlackWhite[1], 255); + } + for (; j < horizSubSampling; j++) + *op++ = Yzero; + } + for (; k < vertSubSampling; k++) { + for (j = 0; j < horizSubSampling; j++) + *op++ = Yzero; + } + /* emit sampled chrominance values */ + *op++ = V2Code(Cb / (ch*cw), refBlackWhite[2], refBlackWhite[3], 127); + *op++ = V2Code(Cr / (ch*cw), refBlackWhite[4], refBlackWhite[5], 127); +} +#undef LumaRed +#undef LumaGreen +#undef LumaBlue +#undef V2Code + +/* + * Convert a strip of RGB data to YCbCr and + * sample to generate the output data. + */ +static void +cvtStrip(unsigned char* op, uint32* raster, uint32 nrows, uint32 width) +{ + uint32 x; + int clumpSize = vertSubSampling * horizSubSampling + 2; + uint32 *tp; + + for (; nrows >= vertSubSampling; nrows -= vertSubSampling) { + tp = raster; + for (x = width; x >= horizSubSampling; x -= horizSubSampling) { + cvtClump(op, tp, + vertSubSampling, horizSubSampling, width); + op += clumpSize; + tp += horizSubSampling; + } + if (x > 0) { + cvtClump(op, tp, vertSubSampling, x, width); + op += clumpSize; + } + raster -= vertSubSampling*width; + } + if (nrows > 0) { + tp = raster; + for (x = width; x >= horizSubSampling; x -= horizSubSampling) { + cvtClump(op, tp, nrows, horizSubSampling, width); + op += clumpSize; + tp += horizSubSampling; + } + if (x > 0) + cvtClump(op, tp, nrows, x, width); + } +} + +static int +cvtRaster(TIFF* tif, uint32* raster, uint32 width, uint32 height) +{ + uint32 y; + tstrip_t strip = 0; + tsize_t cc, acc; + unsigned char* buf; + uint32 rwidth = roundup(width, horizSubSampling); + uint32 rheight = roundup(height, vertSubSampling); + uint32 nrows = (rowsperstrip > rheight ? rheight : rowsperstrip); + + cc = nrows*rwidth + + 2*((nrows*rwidth) / (horizSubSampling*vertSubSampling)); + buf = (unsigned char*)_TIFFmalloc(cc); + for (y = height; (int32) y > 0; y -= nrows) { + uint32 nr = (y > nrows ? nrows : y); + cvtStrip(buf, raster + (y-1)*width, nr, width); + nr = roundup(nr, vertSubSampling); + acc = nr*rwidth + + 2*((nr*rwidth)/(horizSubSampling*vertSubSampling)); + if (!TIFFWriteEncodedStrip(tif, strip++, buf, acc)) { + _TIFFfree(buf); + return (0); + } + } + _TIFFfree(buf); + return (1); +} + +static int +tiffcvt(TIFF* in, TIFF* out) +{ + uint32 width, height; /* image width & height */ + uint32* raster; /* retrieve RGBA image */ + uint16 shortv; + float floatv; + char *stringv; + uint32 longv; + + TIFFGetField(in, TIFFTAG_IMAGEWIDTH, &width); + TIFFGetField(in, TIFFTAG_IMAGELENGTH, &height); + raster = (uint32*)_TIFFmalloc(width * height * sizeof (uint32)); + if (raster == 0) { + TIFFError(TIFFFileName(in), "No space for raster buffer"); + return (0); + } + if (!TIFFReadRGBAImage(in, width, height, raster, 0)) { + _TIFFfree(raster); + return (0); + } + + CopyField(TIFFTAG_SUBFILETYPE, longv); + TIFFSetField(out, TIFFTAG_IMAGEWIDTH, width); + TIFFSetField(out, TIFFTAG_IMAGELENGTH, height); + TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, 8); + TIFFSetField(out, TIFFTAG_COMPRESSION, compression); + TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_YCBCR); + if (compression == COMPRESSION_JPEG) + TIFFSetField(out, TIFFTAG_JPEGCOLORMODE, JPEGCOLORMODE_RAW); + CopyField(TIFFTAG_FILLORDER, shortv); + TIFFSetField(out, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT); + TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, 3); + CopyField(TIFFTAG_XRESOLUTION, floatv); + CopyField(TIFFTAG_YRESOLUTION, floatv); + CopyField(TIFFTAG_RESOLUTIONUNIT, shortv); + TIFFSetField(out, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); + { char buf[2048]; + char *cp = strrchr(TIFFFileName(in), '/'); + sprintf(buf, "YCbCr conversion of %s", cp ? cp+1 : TIFFFileName(in)); + TIFFSetField(out, TIFFTAG_IMAGEDESCRIPTION, buf); + } + TIFFSetField(out, TIFFTAG_SOFTWARE, TIFFGetVersion()); + CopyField(TIFFTAG_DOCUMENTNAME, stringv); + + TIFFSetField(out, TIFFTAG_REFERENCEBLACKWHITE, refBlackWhite); + TIFFSetField(out, TIFFTAG_YCBCRSUBSAMPLING, + horizSubSampling, vertSubSampling); + TIFFSetField(out, TIFFTAG_YCBCRPOSITIONING, YCBCRPOSITION_CENTERED); + TIFFSetField(out, TIFFTAG_YCBCRCOEFFICIENTS, ycbcrCoeffs); + rowsperstrip = TIFFDefaultStripSize(out, rowsperstrip); + TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, rowsperstrip); + + return (cvtRaster(out, raster, width, height)); +} + +static char* usageMsg[] = { + "usage: rgb2ycbcr [-c comp] [-r rows] [-h N] [-v N] input... output\n", + "where comp is one of the following compression algorithms:\n", + " jpeg\t\tJPEG encoding\n", + " lzw\t\tLempel-Ziv & Welch encoding\n", + " (lzw no longer supported by default due to Unisys patent enforcement)", + " packbits\tPackBits encoding\n", + " none\t\tno compression\n", + "and the other options are:\n", + " -r\trows/strip\n", + " -h\thorizontal sampling factor (1,2,4)\n", + " -v\tvertical sampling factor (1,2,4)\n", + NULL +}; + +static void +usage(void) +{ + int i; + for (i = 0; usageMsg[i]; i++) + fprintf(stderr, "%s", usageMsg[i]); + exit(-1); +} diff --git a/tools/sgi2tiff.c b/tools/sgi2tiff.c new file mode 100755 index 0000000..c068fbd --- /dev/null +++ b/tools/sgi2tiff.c @@ -0,0 +1,321 @@ +/* $Header: /home/cvsroot/libtiff/tools/sgi2tiff.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1991-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include +#include +#include +#include +#include + +#include "tiffio.h" + +#define streq(a,b) (strcmp(a,b) == 0) +#define strneq(a,b,n) (strncmp(a,b,n) == 0) + +static short config = PLANARCONFIG_CONTIG; +static uint16 compression = COMPRESSION_PACKBITS; +static uint16 predictor = 0; +static uint16 fillorder = 0; +static uint32 rowsperstrip = (uint32) -1; +static int jpegcolormode = JPEGCOLORMODE_RGB; +static int quality = 75; /* JPEG quality */ +static uint16 photometric; + +static void usage(void); +static int cpContig(IMAGE*, TIFF*); +static int cpSeparate(IMAGE*, TIFF*); +static int processCompressOptions(char*); + +/* XXX image library has no prototypes */ +extern IMAGE* iopen(const char*, const char*); +extern void iclose(IMAGE*); +extern void getrow(IMAGE*, short*, int, int); + +int +main(int argc, char* argv[]) +{ + IMAGE *in; + TIFF *out; + int c; + extern int optind; + extern char* optarg; + + while ((c = getopt(argc, argv, "c:p:r:")) != -1) + switch (c) { + case 'c': /* compression scheme */ + if (!processCompressOptions(optarg)) + usage(); + break; + case 'f': /* fill order */ + if (streq(optarg, "lsb2msb")) + fillorder = FILLORDER_LSB2MSB; + else if (streq(optarg, "msb2lsb")) + fillorder = FILLORDER_MSB2LSB; + else + usage(); + break; + case 'p': /* planar configuration */ + if (streq(optarg, "separate")) + config = PLANARCONFIG_SEPARATE; + else if (streq(optarg, "contig")) + config = PLANARCONFIG_CONTIG; + else + usage(); + break; + case 'r': /* rows/strip */ + rowsperstrip = atoi(optarg); + break; + case '?': + usage(); + /*NOTREACHED*/ + } + if (argc - optind != 2) + usage(); + in = iopen(argv[optind], "r"); + if (in == NULL) + return (-1); + out = TIFFOpen(argv[optind+1], "w"); + if (out == NULL) + return (-2); + TIFFSetField(out, TIFFTAG_IMAGEWIDTH, (uint32) in->xsize); + TIFFSetField(out, TIFFTAG_IMAGELENGTH, (uint32) in->ysize); + TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, 8); + TIFFSetField(out, TIFFTAG_COMPRESSION, compression); + if (in->zsize == 1) + photometric = PHOTOMETRIC_MINISBLACK; + else + photometric = PHOTOMETRIC_RGB; + switch (compression) { + case COMPRESSION_JPEG: + if (photometric == PHOTOMETRIC_RGB && jpegcolormode == JPEGCOLORMODE_RGB) + photometric = PHOTOMETRIC_YCBCR; + TIFFSetField(out, TIFFTAG_JPEGQUALITY, quality); + TIFFSetField(out, TIFFTAG_JPEGCOLORMODE, jpegcolormode); + break; + case COMPRESSION_LZW: + case COMPRESSION_DEFLATE: + if (predictor != 0) + TIFFSetField(out, TIFFTAG_PREDICTOR, predictor); + break; + } + TIFFSetField(out, TIFFTAG_PHOTOMETRIC, photometric); + if (fillorder != 0) + TIFFSetField(out, TIFFTAG_FILLORDER, fillorder); + TIFFSetField(out, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT); + TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, in->zsize); + if (in->zsize > 3) { + uint16 v[1]; + v[0] = EXTRASAMPLE_UNASSALPHA; + TIFFSetField(out, TIFFTAG_EXTRASAMPLES, 1, v); + } + TIFFSetField(out, TIFFTAG_MINSAMPLEVALUE, (uint16) in->min); + TIFFSetField(out, TIFFTAG_MAXSAMPLEVALUE, (uint16) in->max); + TIFFSetField(out, TIFFTAG_PLANARCONFIG, config); + if (config != PLANARCONFIG_SEPARATE) + TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, + TIFFDefaultStripSize(out, rowsperstrip)); + else /* force 1 row/strip for library limitation */ + TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, 1L); + if (in->name[0] != '\0') + TIFFSetField(out, TIFFTAG_IMAGEDESCRIPTION, in->name); + if (config == PLANARCONFIG_CONTIG) + cpContig(in, out); + else + cpSeparate(in, out); + (void) iclose(in); + (void) TIFFClose(out); + return (0); +} + +static int +processCompressOptions(char* opt) +{ + if (streq(opt, "none")) + compression = COMPRESSION_NONE; + else if (streq(opt, "packbits")) + compression = COMPRESSION_PACKBITS; + else if (strneq(opt, "jpeg", 4)) { + char* cp = strchr(opt, ':'); + if (cp && isdigit(cp[1])) + quality = atoi(cp+1); + if (cp && strchr(cp, 'r')) + jpegcolormode = JPEGCOLORMODE_RAW; + compression = COMPRESSION_JPEG; + } else if (strneq(opt, "lzw", 3)) { + char* cp = strchr(opt, ':'); + if (cp) + predictor = atoi(cp+1); + compression = COMPRESSION_LZW; + } else if (strneq(opt, "zip", 3)) { + char* cp = strchr(opt, ':'); + if (cp) + predictor = atoi(cp+1); + compression = COMPRESSION_DEFLATE; + } else + return (0); + return (1); +} + +static int +cpContig(IMAGE* in, TIFF* out) +{ + tdata_t buf = _TIFFmalloc(TIFFScanlineSize(out)); + short *r = NULL; + int x, y; + + if (in->zsize == 3) { + short *g, *b; + + r = (short *)_TIFFmalloc(3 * in->xsize * sizeof (short)); + g = r + in->xsize; + b = g + in->xsize; + for (y = in->ysize-1; y >= 0; y--) { + uint8* pp = (uint8*) buf; + + getrow(in, r, y, 0); + getrow(in, g, y, 1); + getrow(in, b, y, 2); + for (x = 0; x < in->xsize; x++) { + pp[0] = r[x]; + pp[1] = g[x]; + pp[2] = b[x]; + pp += 3; + } + if (TIFFWriteScanline(out, buf, in->ysize-y-1, 0) < 0) + goto bad; + } + } else if (in->zsize == 4) { + short *g, *b, *a; + + r = (short *)_TIFFmalloc(4 * in->xsize * sizeof (short)); + g = r + in->xsize; + b = g + in->xsize; + a = b + in->xsize; + for (y = in->ysize-1; y >= 0; y--) { + uint8* pp = (uint8*) buf; + + getrow(in, r, y, 0); + getrow(in, g, y, 1); + getrow(in, b, y, 2); + getrow(in, a, y, 3); + for (x = 0; x < in->xsize; x++) { + pp[0] = r[x]; + pp[1] = g[x]; + pp[2] = b[x]; + pp[3] = a[x]; + pp += 4; + } + if (TIFFWriteScanline(out, buf, in->ysize-y-1, 0) < 0) + goto bad; + } + } else { + uint8* pp = (uint8*) buf; + + r = (short *)_TIFFmalloc(in->xsize * sizeof (short)); + for (y = in->ysize-1; y >= 0; y--) { + getrow(in, r, y, 0); + for (x = in->xsize-1; x >= 0; x--) + pp[x] = r[x]; + if (TIFFWriteScanline(out, buf, in->ysize-y-1, 0) < 0) + goto bad; + } + } + if (r) + _TIFFfree(r); + _TIFFfree(buf); + return (1); +bad: + if (r) + _TIFFfree(r); + _TIFFfree(buf); + return (0); +} + +static int +cpSeparate(IMAGE* in, TIFF* out) +{ + tdata_t buf = _TIFFmalloc(TIFFScanlineSize(out)); + short *r = (short *)_TIFFmalloc(in->xsize * sizeof (short)); + uint8* pp = (uint8*) buf; + int x, y, z; + + for (z = 0; z < in->zsize; z++) { + for (y = in->ysize-1; y >= 0; y--) { + getrow(in, r, y, z); + for (x = 0; x < in->xsize; x++) + pp[x] = r[x]; + if (TIFFWriteScanline(out, buf, in->ysize-y-1, z) < 0) + goto bad; + } + } + _TIFFfree(r); + _TIFFfree(buf); + return (1); +bad: + _TIFFfree(r); + _TIFFfree(buf); + return (0); +} + +char* stuff[] = { +"usage: sgi2tiff [options] input.rgb output.tif", +"where options are:", +" -r # make each strip have no more than # rows", +"", +" -p contig pack samples contiguously (e.g. RGBRGB...)", +" -p separate store samples separately (e.g. RRR...GGG...BBB...)", +"", +" -f lsb2msb force lsb-to-msb FillOrder for output", +" -f msb2lsb force msb-to-lsb FillOrder for output", +"", +" -c lzw[:opts] compress output with Lempel-Ziv & Welch encoding", +" (no longer supported by default due to Unisys patent enforcement)", +" -c zip[:opts] compress output with deflate encoding", +" -c jpeg[:opts]compress output with JPEG encoding", +" -c packbits compress output with packbits encoding", +" -c none use no compression algorithm on output", +"", +"JPEG options:", +" # set compression quality level (0-100, default 75)", +" r output color image as RGB rather than YCbCr", +"", +"LZW and deflate options:", +" # set predictor value", +"For example, -c lzw:2 to get LZW-encoded data with horizontal differencing", +NULL +}; + +static void +usage(void) +{ + char buf[BUFSIZ]; + int i; + + setbuf(stderr, buf); + for (i = 0; stuff[i] != NULL; i++) + fprintf(stderr, "%s\n", stuff[i]); + exit(-1); +} diff --git a/tools/sgigt.c b/tools/sgigt.c new file mode 100755 index 0000000..24b5ce5 --- /dev/null +++ b/tools/sgigt.c @@ -0,0 +1,984 @@ +/* $Header: /home/cvsroot/libtiff/tools/sgigt.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include +#include +#include +#include + +#include +#include + +#include "tiffio.h" + +#ifndef TRUE +#define TRUE 1 +#define FALSE 0 +#endif + +/* XXX fudge adjustment for window borders */ +#define YFUDGE 20 +#define XFUDGE 20 + +static tileContigRoutine putContig; +static tileSeparateRoutine putSeparate; +static uint32 width, height; /* window width & height */ +static uint32* raster = NULL; /* displayable image */ + +extern Colorindex greyi(int); +static void setupColormapSupport(TIFFRGBAImage*); +static void putContigAndDraw(TIFFRGBAImage*, uint32*, + uint32, uint32, uint32, uint32, int32, int32, unsigned char*); +static void putSeparateAndDraw(TIFFRGBAImage*, uint32*, + uint32, uint32, uint32, uint32, int32, int32, + unsigned char*, unsigned char*, unsigned char*, unsigned char*); + +static int prevImage(char* argv[], int ix, int b, int e, int wrap); +static int nextImage(char* argv[], int ix, int b, int e, int wrap); +static void usage(void); +static uint16 photoArg(const char*); +static void beep(void); + +extern char* optarg; +extern int optind; + +int +main(int argc, char* argv[]) +{ + static Cursor hourglass = { + 0x1ff0, 0x1ff0, 0x0820, 0x0820, + 0x0820, 0x0c60, 0x06c0, 0x0100, + 0x0100, 0x06c0, 0x0c60, 0x0820, + 0x0820, 0x0820, 0x1ff0, 0x1ff0 + }; + int isRGB0 = -1, isRGB; + int verbose = 0; + int stoponerr = 0; /* stop on read error */ + char* filename; + TIFF* tif = NULL; + int fg = 0; + int c; + int dirnum = -1; + int order0 = 0, order; + uint32 diroff = 0; + uint16 photo0 = (uint16) -1, photo; + long x, y, xmax, ymax; + int ix, nix; + TIFFErrorHandler oerror = TIFFSetErrorHandler(NULL); + TIFFErrorHandler owarning = TIFFSetWarningHandler(NULL); + uint32 w, h; + long wid = -1; + + while ((c = getopt(argc, argv, "d:o:p:cerflmsvw")) != -1) + switch (c) { + case 'c': + isRGB0 = 0; + break; + case 'd': + dirnum = atoi(optarg); + break; + case 'e': + oerror = TIFFSetErrorHandler(oerror); + break; + case 'f': + fg = 1; + break; + case 'l': + order0 = FILLORDER_LSB2MSB; + break; + case 'm': + order0 = FILLORDER_MSB2LSB; + break; + case 'o': + diroff = strtoul(optarg, NULL, 0); + break; + case 'p': + photo0 = photoArg(optarg); + break; + case 'r': + isRGB0 = 1; + break; + case 's': + stoponerr = 1; + break; + case 'w': + owarning = TIFFSetWarningHandler(owarning); + break; + case 'v': + verbose = 1; + break; + case '?': + usage(); + /*NOTREACHED*/ + } + if (argc - optind < 1) + usage(); + xmax = getgdesc(GD_XPMAX) - XFUDGE; + ymax = getgdesc(GD_YPMAX) - YFUDGE; + ix = optind; + do { + tif = TIFFOpen(argv[ix], "r"); + } while (tif == NULL && (ix = nextImage(argv, ix, optind, argc, FALSE))); + if (tif == NULL) + exit(0); + if (ix == optind) { + /* + * Set initial directory if user-specified + * file was opened successfully. + */ + if (dirnum != -1 && !TIFFSetDirectory(tif, dirnum)) + TIFFError(argv[ix], "Error, seeking to directory %d", dirnum); + if (diroff != 0 && !TIFFSetSubDirectory(tif, diroff)) + TIFFError(argv[ix], "Error, setting subdirectory at %#x", diroff); + } + isRGB = isRGB0; + order = order0; + photo = photo0; + goto newfile0; + for (;;) { + TIFFRGBAImage img; + char title[1024]; /* window title line */ + const char* cp; + int isrgb; + + if (order) + TIFFSetField(tif, TIFFTAG_FILLORDER, order); + if (photo != (uint16) -1) + TIFFSetField(tif, TIFFTAG_PHOTOMETRIC, photo); + if (!TIFFRGBAImageBegin(&img, tif, stoponerr, title)) { + TIFFError(filename, title); + goto bad2; + } + /* + * Use a full-color window if the image is + * full color or a palette image and the + * hardware support is present. + */ + isrgb = isRGB; + if (isrgb == -1) + isrgb = (img.bitspersample >= 8 && + (img.photometric == PHOTOMETRIC_RGB || + img.photometric == PHOTOMETRIC_YCBCR || + img.photometric == PHOTOMETRIC_SEPARATED || + img.photometric == PHOTOMETRIC_PALETTE || + img.photometric == PHOTOMETRIC_LOGLUV)); + /* + * Check to see if the hardware can display 24-bit RGB. + */ + if (isrgb && getgdesc(GD_BITS_NORM_SNG_RED) < img.bitspersample && + !getgdesc(GD_DITHER)) { + if (verbose) + printf("Warning, display is incapable of full RGB,%s\n", + " using dithered colormap"); + isrgb = 0; + } + /* + * Colormap-based display is done by overriding the put + * routine to install a private method that understands + * how to convert RGBA values to suitable colormap indices. + */ + if (!isrgb) + setupColormapSupport(&img); + /* + * Override default ``put routine'' with private + * routine that also draws the raster on the display. + */ + if (img.put.any == 0) { + TIFFError(filename, + "No \"put\" routine; must not handle image format"); + goto bad3; + } + if (img.isContig) { + putContig = img.put.contig; + img.put.contig = putContigAndDraw; + } else { + putSeparate = img.put.separate; + img.put.separate = putSeparateAndDraw; + } + /* + * Setup the image raster as required. + */ + if ((w = img.width) > xmax) + w = xmax; + if ((h = img.height) > ymax) + h = ymax; + if (w != width || h != height) { + if (raster != NULL) + _TIFFfree(raster), raster = NULL; + raster = (uint32*) _TIFFmalloc(w * h * sizeof (uint32)); + if (raster == NULL) { + width = height = 0; + TIFFError(filename, "No space for raster buffer"); + goto bad3; + } + width = w; + height = h; + } + /* + * Create a new window or reconfigure an existing + * one to suit the image to be displayed. + */ + if (wid < 0) { + x = (xmax+XFUDGE-width)/2; + y = (ymax+YFUDGE-height)/2; + prefposition(x, x+width-1, y, y+height-1); + cp = strrchr(filename, '/'); + sprintf(title, "%s [%u] %s", + cp == NULL ? filename : cp+1, + (unsigned int) TIFFCurrentDirectory(tif), + isrgb ? " rgb" : " cmap"); + if (fg) + foreground(); + wid = winopen(title); + if (wid < 0) { + TIFFError(filename, "Can not create window"); + TIFFRGBAImageEnd(&img); + break; + } + curstype(C16X1); + defcursor(1, hourglass); + qdevice(LEFTMOUSE); + qdevice(MIDDLEMOUSE); + qdevice(RIGHTMOUSE); + qdevice(KEYBD); + qdevice(PAGEUPKEY); + qdevice(PAGEDOWNKEY); + qdevice(HOMEKEY); + qdevice(ENDKEY); + } else { + x = (xmax+XFUDGE-width)/2; + y = (ymax+YFUDGE-height)/2; + winposition(x, x+width-1, y, y+height-1); + viewport(0, width-1, 0, height-1); + cp = strrchr(filename, '/'); + sprintf(title, "%s [%u] %s", + cp == NULL ? filename : cp+1, + (unsigned int) TIFFCurrentDirectory(tif), + isrgb ? " rgb" : " cmap"); + wintitle(title); + } + singlebuffer(); + if (isrgb) { + RGBmode(); + gconfig(); + } else { + cmode(); + gconfig(); + } + /* + * Fetch the image. + */ + setcursor(1, 0, 0); + greyi(225); + clear(); + (void) TIFFRGBAImageGet(&img, raster, width, height); + setcursor(0, 0, 0); + /* + * Process input. + */ + for (;;) { + short val; + switch (qread(&val)) { + case KEYBD: + switch (val) { + case 'b': /* photometric MinIsBlack */ + photo = PHOTOMETRIC_MINISBLACK; + goto newpage; + case 'l': /* lsb-to-msb FillOrder */ + order = FILLORDER_LSB2MSB; + goto newpage; + case 'm': /* msb-to-lsb FillOrder */ + order = FILLORDER_MSB2LSB; + goto newpage; + case 'c': /* colormap visual */ + isRGB = 0; + goto newpage; + case 'r': /* RGB visual */ + isRGB = 1; + goto newpage; + case 'w': /* photometric MinIsWhite */ + photo = PHOTOMETRIC_MINISWHITE; + goto newpage; + case 'W': /* toggle warnings */ + owarning = TIFFSetWarningHandler(owarning); + goto newpage; + case 'E': /* toggle errors */ + oerror = TIFFSetErrorHandler(oerror); + goto newpage; + case 'z': /* reset to defaults */ + case 'Z': + order = order0; + photo = photo0; + isRGB = isRGB0; + if (owarning == NULL) + owarning = TIFFSetWarningHandler(NULL); + if (oerror == NULL) + oerror = TIFFSetErrorHandler(NULL); + goto newpage; + case 'q': /* exit */ + case '\033': + TIFFRGBAImageEnd(&img); + goto done; + } + break; + case PAGEUPKEY: /* previous logical image */ + if (val) { + if (TIFFCurrentDirectory(tif) > 0) { + if (TIFFSetDirectory(tif, TIFFCurrentDirectory(tif)-1)) + goto newpage; + beep(); /* XXX */ + } else { + ix = prevImage(argv, ix, optind, argc, TRUE); + /* XXX set directory to last image in new file */ + goto newfile; + } + } + break; + case PAGEDOWNKEY: /* next logical image */ + if (val) { + if (!TIFFLastDirectory(tif)) { + if (TIFFReadDirectory(tif)) + goto newpage; + beep(); /* XXX */ + } else { + ix = nextImage(argv, ix, optind, argc, TRUE); + goto newfile; + } + } + break; + case HOMEKEY: /* 1st image in current file */ + if (val) { + if (TIFFSetDirectory(tif, 0)) + goto newpage; + beep(); + } + break; + case ENDKEY: /* last image in current file */ + if (val) { + /* XXX */ + beep(); + } + break; + case RIGHTMOUSE: /* previous file */ + if (val) { + if (nix = prevImage(argv, ix, optind, argc, FALSE)) { + ix = nix; + goto newfile; + } + beep(); + } + break; + case LEFTMOUSE: /* next file */ + if (val) { + if (nix = nextImage(argv, ix, optind, argc, FALSE)) { + ix = nix; + goto newfile; + } + beep(); + } + break; + case MIDDLEMOUSE: /* first file */ + if (val) { + if (nix = nextImage(argv, optind-1, optind, argc, FALSE)) { + ix = nix; + goto newfile; + } + beep(); + } + break; + case REDRAW: + lrectwrite(0, 0, width-1, height-1, raster); + break; + } + } + newfile: + TIFFRGBAImageEnd(&img); + if (tif != NULL && argv[ix] != filename) + TIFFClose(tif), tif = NULL; + /* fall thru... */ + newfile0: + if (argv[ix] == NULL) + break; + filename = argv[ix]; + if (tif == NULL) { + tif = TIFFOpen(filename, "r"); + if (tif == NULL) + goto bad1; + isRGB = isRGB0; + order = order0; + photo = photo0; + } + continue; + newpage: + TIFFRGBAImageEnd(&img); + continue; + bad3: + TIFFRGBAImageEnd(&img); + bad2: + TIFFClose(tif), tif = NULL; + bad1: + argv[ix] = NULL; /* don't revisit file */ + ix = nextImage(argv, ix, optind, argc, TRUE); + goto newfile0; + } +done: + if (wid >= 0) + winclose(wid); + if (raster != NULL) + _TIFFfree(raster); + if (tif != NULL) + TIFFClose(tif); + return (0); +} + +static int +prevImage(char* argv[], int ix, int b, int e, int wrap) +{ + int i; + + for (i = ix-1; i >= b && argv[i] == NULL; i--) + ; + if (i < b) { + if (wrap) { + for (i = e-1; i > ix && argv[i] == NULL; i--) + ; + } else + i = 0; + } + return (i); +} + +static int +nextImage(char* argv[], int ix, int b, int e, int wrap) +{ + int i; + + for (i = ix+1; i < e && argv[i] == NULL; i++) + ; + if (i >= e) { + if (wrap) { + for (i = b; i < ix && argv[i] == NULL; i++) + ; + } else + i = 0; + } + return (i); +} + +static void +beep(void) +{ + greyi(0); + clear(); + sginap(5); + lrectwrite(0, 0, width-1, height-1, raster); +} + +char* stuff[] = { +"usage: tiffgt [options] file.tif", +"where options are:", +" -c use colormap visual", +" -d dirnum set initial directory (default is 0)", +" -e enable display of TIFF error messages", +" -f run program in the foreground", +" -l force lsb-to-msb FillOrder", +" -m force msb-to-lsb FillOrder", +" -o offset set initial directory offset", +" -p photo override photometric interpretation", +" -r use fullcolor visual", +" -s stop decoding on first error (default is ignore errors)", +" -v enable verbose mode", +" -w enable display of TIFF warning messages", +NULL +}; + +static void +usage(void) +{ + char buf[BUFSIZ]; + int i; + + setbuf(stderr, buf); + for (i = 0; stuff[i] != NULL; i++) + fprintf(stderr, "%s\n", stuff[i]); + exit(-1); +} + +static uint16 +photoArg(const char* arg) +{ + if (strcmp(arg, "miniswhite") == 0) + return (PHOTOMETRIC_MINISWHITE); + else if (strcmp(arg, "minisblack") == 0) + return (PHOTOMETRIC_MINISBLACK); + else if (strcmp(arg, "rgb") == 0) + return (PHOTOMETRIC_RGB); + else if (strcmp(arg, "palette") == 0) + return (PHOTOMETRIC_PALETTE); + else if (strcmp(arg, "mask") == 0) + return (PHOTOMETRIC_MASK); + else if (strcmp(arg, "separated") == 0) + return (PHOTOMETRIC_SEPARATED); + else if (strcmp(arg, "ycbcr") == 0) + return (PHOTOMETRIC_YCBCR); + else if (strcmp(arg, "cielab") == 0) + return (PHOTOMETRIC_CIELAB); + else if (strcmp(arg, "logl") == 0) + return (PHOTOMETRIC_LOGL); + else if (strcmp(arg, "logluv") == 0) + return (PHOTOMETRIC_LOGLUV); + else + return ((uint16) -1); +} + +static void +putContigAndDraw(TIFFRGBAImage* img, uint32* raster, + uint32 x, uint32 y, uint32 w, uint32 h, + int32 fromskew, int32 toskew, + unsigned char* cp) +{ + (*putContig)(img, raster, x, y, w, h, fromskew, toskew, cp); + if (x+w == width) { + w = width; + if (img->orientation == ORIENTATION_TOPLEFT) + lrectwrite(0, y-(h-1), w-1, y, raster-x-(h-1)*w); + else + lrectwrite(0, y, w-1, y+h-1, raster); + } +} + +static void +putSeparateAndDraw(TIFFRGBAImage* img, uint32* raster, + uint32 x, uint32 y, uint32 w, uint32 h, + int32 fromskew, int32 toskew, + unsigned char* r, unsigned char* g, unsigned char* b, unsigned char* a) +{ + (*putSeparate)(img, raster, x, y, w, h, fromskew, toskew, r, g, b, a); + if (x+w == width) { + w = width; + if (img->orientation == ORIENTATION_TOPLEFT) + lrectwrite(0, y-(h-1), w-1, y, raster-x-(h-1)*w); + else + lrectwrite(0, y, w-1, y+h-1, raster); + } +} + +/* + * {red,green,blue}_inverse are tables in libgutil.a that + * do an inverse map from (r,g,b) to the closest colormap + * index in the "standard" GL colormap. grey_inverse is + * the equivalent map for mapping greyscale values to + * colormap indices. We access these maps directly instead + * of through the rgbi and greyi functions to avoid the + * additional overhead of the color calls that they make. + */ +extern u_char red_inverse[256]; +extern u_char green_inverse[256]; +extern u_char blue_inverse[256]; +extern u_char grey_inverse[256]; +#define greyi(g) grey_inverse[g] + +static u_char +rgbi(u_char r, u_char g, u_char b) +{ + return (r == g && g == b ? grey_inverse[r] : + red_inverse[r] + green_inverse[g] + blue_inverse[b]); +} + +/* + * The following routines move decoded data returned + * from the TIFF library into rasters that are suitable + * for passing to lrecwrite. They do the necessary + * conversions for when a colormap drawing mode is used. + */ +#define REPEAT8(op) REPEAT4(op); REPEAT4(op) +#define REPEAT4(op) REPEAT2(op); REPEAT2(op) +#define REPEAT2(op) op; op +#define CASE8(x,op) \ + switch (x) { \ + case 7: op; case 6: op; case 5: op; \ + case 4: op; case 3: op; case 2: op; \ + case 1: op; \ + } +#define CASE4(x,op) switch (x) { case 3: op; case 2: op; case 1: op; } +#define NOP + +#define UNROLL8(w, op1, op2) { \ + uint32 _x; \ + for (_x = w; _x >= 8; _x -= 8) { \ + op1; \ + REPEAT8(op2); \ + } \ + if (_x > 0) { \ + op1; \ + CASE8(_x,op2); \ + } \ +} +#define UNROLL4(w, op1, op2) { \ + uint32 _x; \ + for (_x = w; _x >= 4; _x -= 4) { \ + op1; \ + REPEAT4(op2); \ + } \ + if (_x > 0) { \ + op1; \ + CASE4(_x,op2); \ + } \ +} +#define UNROLL2(w, op1, op2) { \ + uint32 _x; \ + for (_x = w; _x >= 2; _x -= 2) { \ + op1; \ + REPEAT2(op2); \ + } \ + if (_x) { \ + op1; \ + op2; \ + } \ +} + +#define SKEW(r,g,b,skew) { r += skew; g += skew; b += skew; } + +#define DECLAREContigPutFunc(name) \ +static void name(\ + TIFFRGBAImage* img, \ + uint32* cp, \ + uint32 x, uint32 y, \ + uint32 w, uint32 h, \ + int32 fromskew, int32 toskew, \ + u_char* pp \ +) + +#define DECLARESepPutFunc(name) \ +static void name(\ + TIFFRGBAImage* img,\ + uint32* cp,\ + uint32 x, uint32 y, \ + uint32 w, uint32 h,\ + int32 fromskew, int32 toskew,\ + u_char* r, u_char* g, u_char* b, u_char* a\ +) + +static tileContigRoutine libput; + +/* + * 8-bit packed samples => colormap + */ +DECLAREContigPutFunc(putcontig8bittile) +{ + int samplesperpixel = img->samplesperpixel; + TIFFRGBValue* Map = img->Map; + + (void) y; + fromskew *= samplesperpixel; + if (Map) { + while (h-- > 0) { + for (x = w; x-- > 0;) { + *cp++ = rgbi(Map[pp[0]], Map[pp[1]], Map[pp[2]]); + pp += samplesperpixel; + } + cp += toskew; + pp += fromskew; + } + } else { + while (h-- > 0) { + for (x = w; x-- > 0;) { + *cp++ = rgbi(pp[0], pp[1], pp[2]); + pp += samplesperpixel; + } + cp += toskew; + pp += fromskew; + } + } +} + +/* + * Convert 8-bit packed samples => colormap + */ +DECLAREContigPutFunc(cvtcontig8bittile) +{ + (*libput)(img, cp, x, y, w, h, fromskew, toskew, pp); + while (h-- > 0) { + UNROLL8(w, NOP, + cp[0] = rgbi(TIFFGetR(cp[0]),TIFFGetG(cp[0]),TIFFGetB(cp[0])); cp++ + ); + cp += toskew; + } +} + +/* + * 16-bit packed samples => colormap + */ +DECLAREContigPutFunc(putcontig16bittile) +{ + int samplesperpixel = img->samplesperpixel; + TIFFRGBValue* Map = img->Map; + + (void) y; + fromskew *= samplesperpixel; + if (Map) { + while (h-- > 0) { + for (x = w; x-- > 0;) { + *cp++ = rgbi(Map[pp[0]], Map[pp[1]], Map[pp[2]]); + pp += samplesperpixel; + } + cp += toskew; + pp += fromskew; + } + } else { + while (h-- > 0) { + for (x = w; x-- > 0;) { + *cp++ = rgbi(pp[0], pp[1], pp[2]); + pp += samplesperpixel; + } + cp += toskew; + pp += fromskew; + } + } +} + +/* + * 8-bit unpacked samples => colormap + */ +DECLARESepPutFunc(putseparate8bittile) +{ + TIFFRGBValue* Map = img->Map; + + (void) y; (void) a; + if (Map) { + while (h-- > 0) { + for (x = w; x-- > 0;) + *cp++ = rgbi(Map[*r++], Map[*g++], Map[*b++]); + SKEW(r, g, b, fromskew); + cp += toskew; + } + } else { + while (h-- > 0) { + for (x = w; x-- > 0;) + *cp++ = rgbi(*r++, *g++, *b++); + SKEW(r, g, b, fromskew); + cp += toskew; + } + } +} + +/* + * 16-bit unpacked samples => colormap + */ +DECLARESepPutFunc(putseparate16bittile) +{ + TIFFRGBValue* Map = img->Map; + + (void) y; (void) a; + if (Map) { + while (h-- > 0) { + for (x = 0; x < w; x++) + *cp++ = rgbi(Map[*r++], Map[*g++], Map[*b++]); + SKEW(r, g, b, fromskew); + cp += toskew; + } + } else { + while (h-- > 0) { + for (x = 0; x < w; x++) + *cp++ = rgbi(*r++, *g++, *b++); + SKEW(r, g, b, fromskew); + cp += toskew; + } + } +} + +/* + * 8-bit packed CMYK samples => cmap + * + * NB: The conversion of CMYK->RGB is *very* crude. + */ +DECLAREContigPutFunc(putcontig8bitCMYKtile) +{ + int samplesperpixel = img->samplesperpixel; + TIFFRGBValue* Map = img->Map; + uint16 r, g, b, k; + + (void) y; + fromskew *= samplesperpixel; + if (Map) { + while (h-- > 0) { + for (x = w; x-- > 0;) { + k = 255 - pp[3]; + r = (k*(255-pp[0]))/255; + g = (k*(255-pp[1]))/255; + b = (k*(255-pp[2]))/255; + *cp++ = rgbi(Map[r], Map[g], Map[b]); + pp += samplesperpixel; + } + pp += fromskew; + cp += toskew; + } + } else { + while (h-- > 0) { + UNROLL8(w, NOP, + k = 255 - pp[3]; + r = (k*(255-pp[0]))/255; + g = (k*(255-pp[1]))/255; + b = (k*(255-pp[2]))/255; + *cp++ = rgbi(r, g, b); + pp += samplesperpixel); + cp += toskew; + pp += fromskew; + } + } +} + +#define YCbCrtoRGB(dst, yc) { \ + int Y = (yc); \ + dst = rgbi( \ + clamptab[Y+Crrtab[Cr]], \ + clamptab[Y + (int)((Cbgtab[Cb]+Crgtab[Cr])>>16)], \ + clamptab[Y+Cbbtab[Cb]]); \ +} +#define YCbCrSetup \ + TIFFYCbCrToRGB* ycbcr = img->ycbcr; \ + int* Crrtab = ycbcr->Cr_r_tab; \ + int* Cbbtab = ycbcr->Cb_b_tab; \ + int32* Crgtab = ycbcr->Cr_g_tab; \ + int32* Cbgtab = ycbcr->Cb_g_tab; \ + TIFFRGBValue* clamptab = ycbcr->clamptab + +/* + * 8-bit packed YCbCr samples w/ 2,2 subsampling => RGB + */ +DECLAREContigPutFunc(putcontig8bitYCbCr22tile) +{ + YCbCrSetup; + uint32* cp1 = cp+w+toskew; + int32 incr = 2*toskew+w; + + (void) y; + /* XXX adjust fromskew */ + for (; h >= 2; h -= 2) { + x = w>>1; + do { + int Cb = pp[4]; + int Cr = pp[5]; + + YCbCrtoRGB(cp [0], pp[0]); + YCbCrtoRGB(cp [1], pp[1]); + YCbCrtoRGB(cp1[0], pp[2]); + YCbCrtoRGB(cp1[1], pp[3]); + + cp += 2, cp1 += 2; + pp += 6; + } while (--x); + cp += incr, cp1 += incr; + pp += fromskew; + } +} +#undef YCbCrSetup +#undef YCbCrtoRGB + +/* + * Setup to handle conversion for display in a colormap + * window. Many cases are handled by massaging the mapping + * tables used by the normal library code to convert 32-bit + * packed RGBA samples into colormap indices. Other cases + * are handled with special-case routines that replace the + * normal ``put routine'' installed by the library. + */ +static void +setupColormapSupport(TIFFRGBAImage* img) +{ + int bitspersample = img->bitspersample; + int i; + + if (img->BWmap) { + i = 255; + do { + uint32* p = img->BWmap[i]; + switch (bitspersample) { +#define GREY(x) p[x] = greyi(TIFFGetR(p[x])) + case 1: GREY(7); GREY(6); GREY(5); GREY(4); + case 2: GREY(3); GREY(2); + case 4: GREY(1); + case 8: GREY(0); + } +#undef GREY + } while (i--); + } else if (img->PALmap) { + i = 255; + do { + uint32 rgb; + uint32* p = img->PALmap[i]; +#define CMAP(x) \ + (rgb = p[x], p[x] = rgbi(TIFFGetR(rgb),TIFFGetG(rgb),TIFFGetB(rgb))) + switch (bitspersample) { + case 1: CMAP(7); CMAP(6); CMAP(5); CMAP(4); + case 2: CMAP(3); CMAP(2); + case 4: CMAP(1); + case 8: CMAP(0); + } +#undef CMAP + } while (i--); + } else if (img->isContig) { + switch (img->photometric) { + case PHOTOMETRIC_RGB: + case PHOTOMETRIC_LOGLUV: + switch (bitspersample) { + case 8: img->put.contig = putcontig8bittile; break; + case 16: img->put.contig = putcontig16bittile; break; + } + break; + case PHOTOMETRIC_SEPARATED: + switch (bitspersample) { + case 8: img->put.contig = putcontig8bitCMYKtile; break; + } + break; + case PHOTOMETRIC_YCBCR: + if (img->bitspersample == 8) { + uint16 hs, vs; + TIFFGetFieldDefaulted(img->tif, TIFFTAG_YCBCRSUBSAMPLING, + &hs, &vs); + switch ((hs<<4)|vs) { + case 0x22: /* most common case */ + img->put.contig = putcontig8bitYCbCr22tile; + break; + default: /* all others cost more */ + libput = img->put.contig; + img->put.contig = cvtcontig8bittile; + break; + } + } + break; + } + } else { + switch (img->photometric) { + case PHOTOMETRIC_RGB: + switch (img->bitspersample) { + case 8: img->put.separate = putseparate8bittile; break; + case 16: img->put.separate = putseparate16bittile; break; + } + break; + } + } +} diff --git a/tools/sgisv.c b/tools/sgisv.c new file mode 100755 index 0000000..82bf9ca --- /dev/null +++ b/tools/sgisv.c @@ -0,0 +1,310 @@ +/* $Header: /home/cvsroot/libtiff/tools/sgisv.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1990-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include +#include +#include + +#include +#include + +#include "tiffio.h" + +typedef unsigned char u_char; +typedef unsigned long u_long; + +#define streq(a,b) (strcmp(a,b) == 0) +#define strneq(a,b,n) (strncmp(a,b,n) == 0) + +uint32 rowsperstrip = (uint32) -1; +uint16 compression = COMPRESSION_PACKBITS; +uint16 config = PLANARCONFIG_CONTIG; +uint16 predictor = 0; +int xmaxscreen; +int ymaxscreen; +uint16 photometric = PHOTOMETRIC_RGB; +int jpegcolormode = JPEGCOLORMODE_RGB; +int quality = 75; /* JPEG quality */ + +static void usage(void); +static void tiffsv(char*, int, int, int, int); + +int +main(int argc, char* argv[]) +{ + int c; + extern int optind; + extern char* optarg; + + while ((c = getopt(argc, argv, "c:p:r:")) != -1) + switch (c) { + case 'b': /* save as b&w */ + photometric = PHOTOMETRIC_MINISBLACK; + break; + case 'c': /* compression scheme */ + if (streq(optarg, "none")) + compression = COMPRESSION_NONE; + else if (streq(optarg, "packbits")) + compression = COMPRESSION_PACKBITS; + else if (strneq(optarg, "jpeg", 4)) { + char* cp = strchr(optarg, ':'); + if (cp && isdigit(cp[1])) + quality = atoi(cp+1); + if (cp && strchr(cp, 'r')) + jpegcolormode = JPEGCOLORMODE_RAW; + compression = COMPRESSION_JPEG; + } else if (strneq(optarg, "lzw", 3)) { + char* cp = strchr(optarg, ':'); + if (cp) + predictor = atoi(cp+1); + compression = COMPRESSION_LZW; + } else + usage(); + break; + case 'p': /* planar configuration */ + if (streq(optarg, "separate")) + config = PLANARCONFIG_SEPARATE; + else if (streq(optarg, "contig")) + config = PLANARCONFIG_CONTIG; + else + usage(); + break; + case 'r': /* rows/strip */ + rowsperstrip = atoi(optarg); + break; + case '?': + usage(); + /*NOTREACHED*/ + } + if (argc - optind != 1 && argc - optind != 5) + usage(); + xmaxscreen = getgdesc(GD_XPMAX)-1; + ymaxscreen = getgdesc(GD_YPMAX)-1; + foreground(); + noport(); + winopen("tiffsv"); + if (argc - optind == 5) + tiffsv(argv[optind], + atoi(argv[optind+1]), atoi(argv[optind+2]), + atoi(argv[optind+3]), atoi(argv[optind+4])); + else + tiffsv(argv[optind], 0, xmaxscreen, 0, ymaxscreen); + return (0); +} + +char* stuff[] = { +"usage: tiffsv [options] outimage.tif [x1 x2 y1 y2] [-b]", +"where options are:", +" -p contig pack samples contiguously (e.g. RGBRGB...)", +" -p separate store samples separately (e.g. RRR...GGG...BBB...)", +"", +" -r # make each strip have no more than # rows", +"", +" -c lzw[:opts] compress output with Lempel-Ziv & Welch encoding", +" (no longer supported by default due to Unisys patent enforcement)", +" -c jpeg[:opts]compress output with JPEG encoding", +" -c packbits compress output with packbits encoding", +" -c none use no compression algorithm on output", +"", +"JPEG options:", +" # set compression quality level (0-100, default 75)", +" r output color image as RGB rather than YCbCr", +"", +"LZW options:", +" # set predictor value for Lempel-Ziv & Welch encoding", +"For example, -c lzw:2 to get LZW-encoded data with horizontal differencing", +NULL +}; + +static void +usage(void) +{ + char buf[BUFSIZ]; + int i; + + setbuf(stderr, buf); + for (i = 0; stuff[i] != NULL; i++) + fprintf(stderr, "%s\n", stuff[i]); + exit(-1); +} + +static void +svRGBSeparate(TIFF* tif, u_long* ss, int xsize, int ysize) +{ + tsize_t stripsize = TIFFStripSize(tif); + u_char *rbuf = (u_char *)_TIFFmalloc(3*stripsize); + u_char *gbuf = rbuf + stripsize; + u_char *bbuf = gbuf + stripsize; + register int y; + + for (y = 0; y <= ysize; y += rowsperstrip) { + u_char *rp, *gp, *bp; + register int x; + register uint32 n; + + n = rowsperstrip; + if (n > ysize-y+1) + n = ysize-y+1; + rp = rbuf; gp = gbuf; bp = bbuf; + do { + for (x = 0; x <= xsize; x++) { + u_long v = ss[x]; + rp[x] = v; + gp[x] = v >> 8; + bp[x] = v >> 16; + } + rp += xsize+1, gp += xsize+1, bp += xsize+1; + ss += xsize+1; + } while (--n); + if (TIFFWriteEncodedStrip(tif, TIFFComputeStrip(tif,y,0), + rbuf, stripsize) < 0) + break; + if (TIFFWriteEncodedStrip(tif, TIFFComputeStrip(tif,y,1), + gbuf, stripsize) < 0) + break; + if (TIFFWriteEncodedStrip(tif, TIFFComputeStrip(tif,y,2), + bbuf, stripsize) < 0) + break; + } + _TIFFfree(rbuf); +} + +static void +svRGBContig(TIFF* tif, u_long* ss, int xsize, int ysize) +{ + register int x, y; + tsize_t stripsize = TIFFStripSize(tif); + u_char *strip = (u_char *)_TIFFmalloc(stripsize); + + for (y = 0; y <= ysize; y += rowsperstrip) { + register u_char *pp = strip; + register uint32 n; + + n = rowsperstrip; + if (n > ysize-y+1) + n = ysize-y+1; + do { + for (x = 0; x <= xsize; x++) { + u_long v = ss[x]; + pp[0] = v; + pp[1] = v >> 8; + pp[2] = v >> 16; + pp += 3; + } + ss += xsize+1; + } while (--n); + if (TIFFWriteEncodedStrip(tif, TIFFComputeStrip(tif,y,0), + strip, stripsize) < 0) + break; + } + _TIFFfree(strip); +} + +#undef RED +#undef GREEN +#undef BLUE +#define CVT(x) (((x)*255)/100) +#define RED CVT(28) /* 28% */ +#define GREEN CVT(59) /* 59% */ +#define BLUE CVT(11) /* 11% */ + +static void +svGrey(TIFF* tif, u_long* ss, int xsize, int ysize) +{ + register int x, y; + u_char *buf = (u_char *)_TIFFmalloc(TIFFScanlineSize(tif)); + + for (y = 0; y <= ysize; y++) { + for (x = 0; x <= xsize; x++) { + u_char *cp = (u_char *)&ss[x]; + buf[x] = (RED*cp[3] + GREEN*cp[2] + BLUE*cp[1]) >> 8; + } + if (TIFFWriteScanline(tif, buf, (uint32) y, 0) < 0) + break; + ss += xsize+1; + } + _TIFFfree(buf); +} + +#define MIN(a,b) ((a)<(b)?(a):(b)) +#define ABS(x) ((x)<0?-(x):(x)) + +static void +tiffsv(char* name, int x1, int x2, int y1, int y2) +{ + TIFF *tif; + int xsize, ysize; + int xorg, yorg; + u_long *scrbuf; + + xorg = MIN(x1,x2); + yorg = MIN(y1,y2); + if (xorg<0) + xorg = 0; + if (yorg<0) + yorg = 0; + xsize = ABS(x2-x1); + ysize = ABS(y2-y1); + if (xorg+xsize > xmaxscreen) + xsize = xmaxscreen-xorg; + if (yorg+ysize > ymaxscreen) + ysize = ymaxscreen-yorg; + tif = TIFFOpen(name, "w"); + TIFFSetField(tif, TIFFTAG_IMAGEWIDTH, (uint32) (xsize+1)); + TIFFSetField(tif, TIFFTAG_IMAGELENGTH, (uint32) (ysize+1)); + TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, 8); + TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, + photometric == PHOTOMETRIC_RGB ? 3 : 1); + TIFFSetField(tif, TIFFTAG_PLANARCONFIG, config); + TIFFSetField(tif, TIFFTAG_COMPRESSION, compression); + switch (compression) { + case COMPRESSION_JPEG: + if (photometric == PHOTOMETRIC_RGB && jpegcolormode == JPEGCOLORMODE_RGB) + photometric = PHOTOMETRIC_YCBCR; + TIFFSetField(tif, TIFFTAG_JPEGQUALITY, quality); + TIFFSetField(tif, TIFFTAG_JPEGCOLORMODE, jpegcolormode); + break; + case COMPRESSION_LZW: + if (predictor != 0) + TIFFSetField(tif, TIFFTAG_PREDICTOR, predictor); + break; + } + TIFFSetField(tif, TIFFTAG_PHOTOMETRIC, photometric); + TIFFSetField(tif, TIFFTAG_ORIENTATION, ORIENTATION_BOTLEFT); + rowsperstrip = TIFFDefaultStripSize(tif, rowsperstrip); + TIFFSetField(tif, TIFFTAG_ROWSPERSTRIP, rowsperstrip); + scrbuf = (u_long *)_TIFFmalloc((xsize+1)*(ysize+1)*sizeof (u_long)); + readdisplay(xorg, yorg, xorg+xsize, yorg+ysize, scrbuf, RD_FREEZE); + if (photometric == PHOTOMETRIC_RGB) { + if (config == PLANARCONFIG_SEPARATE) + svRGBSeparate(tif, scrbuf, xsize, ysize); + else + svRGBContig(tif, scrbuf, xsize, ysize); + } else + svGrey(tif, scrbuf, xsize, ysize); + (void) TIFFClose(tif); + _TIFFfree((char *)scrbuf); +} diff --git a/tools/thumbnail.c b/tools/thumbnail.c new file mode 100755 index 0000000..a018047 --- /dev/null +++ b/tools/thumbnail.c @@ -0,0 +1,572 @@ +/* $Header: /home/cvsroot/libtiff/tools/thumbnail.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1994-1997 Sam Leffler + * Copyright (c) 1994-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ +#include +#include +#include +#include + +#include "tiffio.h" + +#define streq(a,b) (strcasecmp(a,b) == 0) + +#ifndef howmany +#define howmany(x, y) (((x)+((y)-1))/(y)) +#endif + +typedef enum { + EXP50, + EXP60, + EXP70, + EXP80, + EXP90, + EXP, + LINEAR +} Contrast; + +static uint32 tnw = 216; /* thumbnail width */ +static uint32 tnh = 274; /* thumbnail height */ +static Contrast contrast = LINEAR; /* current contrast */ +static uint8* thumbnail; + +static int cpIFD(TIFF*, TIFF*); +static int generateThumbnail(TIFF*, TIFF*); +static void initScale(); +static void usage(void); + +extern char* optarg; +extern int optind; + +int +main(int argc, char* argv[]) +{ + TIFF* in; + TIFF* out; + int c; + + while ((c = getopt(argc, argv, "w:h:c:")) != -1) { + switch (c) { + case 'w': tnw = strtoul(optarg, NULL, 0); break; + case 'h': tnh = strtoul(optarg, NULL, 0); break; + case 'c': contrast = streq(optarg, "exp50") ? EXP50 : + streq(optarg, "exp60") ? EXP60 : + streq(optarg, "exp70") ? EXP70 : + streq(optarg, "exp80") ? EXP80 : + streq(optarg, "exp90") ? EXP90 : + streq(optarg, "exp") ? EXP : + streq(optarg, "linear")? LINEAR : + EXP; + break; + default: usage(); + } + } + if (argc-optind != 2) + usage(); + thumbnail = (uint8*) _TIFFmalloc(tnw * tnh); + out = TIFFOpen(argv[optind+1], "w"); + if (out == NULL) + return (-2); + in = TIFFOpen(argv[optind], "r"); + if (in != NULL) { + initScale(); + do { + if (!generateThumbnail(in, out)) + goto bad; + if (!cpIFD(in, out) || !TIFFWriteDirectory(out)) + goto bad; + } while (TIFFReadDirectory(in)); + (void) TIFFClose(in); + } + (void) TIFFClose(out); + return (0); +bad: + (void) TIFFClose(out); + return (1); +} + +#define CopyField1(tag, v) \ + if (TIFFGetField(in, tag, &v)) TIFFSetField(out, tag, v) +#define CopyField2(tag, v1, v2) \ + if (TIFFGetField(in, tag, &v1, &v2)) TIFFSetField(out, tag, v1, v2) +#define CopyField3(tag, v1, v2, v3) \ + if (TIFFGetField(in, tag, &v1, &v2, &v3)) TIFFSetField(out, tag, v1, v2, v3) +#define CopyField4(tag, v1, v2, v3, v4) \ + if (TIFFGetField(in, tag, &v1, &v2, &v3, &v4)) TIFFSetField(out, tag, v1, v2, v3, v4) + +static void +cpTag(TIFF* in, TIFF* out, uint16 tag, uint16 count, TIFFDataType type) +{ + uint16 shortv, shortv2, *shortav; + float floatv, *floatav; + char *stringv; + uint32 longv; + + switch (type) { + case TIFF_SHORT: + if (count == 1) { + CopyField1(tag, shortv); + } else if (count == 2) { + CopyField2(tag, shortv, shortv2); + } else if (count == (uint16) -1) { + CopyField2(tag, shortv, shortav); + } + break; + case TIFF_LONG: + CopyField1(tag, longv); + break; + case TIFF_RATIONAL: + if (count == 1) { + CopyField1(tag, floatv); + } else if (count == (uint16) -1) { + CopyField1(tag, floatav); + } + break; + case TIFF_ASCII: + CopyField1(tag, stringv); + break; + } +} +#undef CopyField4 +#undef CopyField3 +#undef CopyField2 +#undef CopyField1 + +static struct cpTag { + uint16 tag; + uint16 count; + TIFFDataType type; +} tags[] = { + { TIFFTAG_IMAGEWIDTH, 1, TIFF_LONG }, + { TIFFTAG_IMAGELENGTH, 1, TIFF_LONG }, + { TIFFTAG_BITSPERSAMPLE, 1, TIFF_SHORT }, + { TIFFTAG_COMPRESSION, 1, TIFF_SHORT }, + { TIFFTAG_FILLORDER, 1, TIFF_SHORT }, + { TIFFTAG_SAMPLESPERPIXEL, 1, TIFF_SHORT }, + { TIFFTAG_ROWSPERSTRIP, 1, TIFF_LONG }, + { TIFFTAG_PLANARCONFIG, 1, TIFF_SHORT }, + { TIFFTAG_GROUP3OPTIONS, 1, TIFF_LONG }, + { TIFFTAG_SUBFILETYPE, 1, TIFF_LONG }, + { TIFFTAG_PHOTOMETRIC, 1, TIFF_SHORT }, + { TIFFTAG_THRESHHOLDING, 1, TIFF_SHORT }, + { TIFFTAG_DOCUMENTNAME, 1, TIFF_ASCII }, + { TIFFTAG_IMAGEDESCRIPTION, 1, TIFF_ASCII }, + { TIFFTAG_MAKE, 1, TIFF_ASCII }, + { TIFFTAG_MODEL, 1, TIFF_ASCII }, + { TIFFTAG_ORIENTATION, 1, TIFF_SHORT }, + { TIFFTAG_MINSAMPLEVALUE, 1, TIFF_SHORT }, + { TIFFTAG_MAXSAMPLEVALUE, 1, TIFF_SHORT }, + { TIFFTAG_XRESOLUTION, 1, TIFF_RATIONAL }, + { TIFFTAG_YRESOLUTION, 1, TIFF_RATIONAL }, + { TIFFTAG_PAGENAME, 1, TIFF_ASCII }, + { TIFFTAG_XPOSITION, 1, TIFF_RATIONAL }, + { TIFFTAG_YPOSITION, 1, TIFF_RATIONAL }, + { TIFFTAG_GROUP4OPTIONS, 1, TIFF_LONG }, + { TIFFTAG_RESOLUTIONUNIT, 1, TIFF_SHORT }, + { TIFFTAG_PAGENUMBER, 2, TIFF_SHORT }, + { TIFFTAG_SOFTWARE, 1, TIFF_ASCII }, + { TIFFTAG_DATETIME, 1, TIFF_ASCII }, + { TIFFTAG_ARTIST, 1, TIFF_ASCII }, + { TIFFTAG_HOSTCOMPUTER, 1, TIFF_ASCII }, + { TIFFTAG_WHITEPOINT, 1, TIFF_RATIONAL }, + { TIFFTAG_PRIMARYCHROMATICITIES, (uint16) -1,TIFF_RATIONAL }, + { TIFFTAG_HALFTONEHINTS, 2, TIFF_SHORT }, + { TIFFTAG_BADFAXLINES, 1, TIFF_LONG }, + { TIFFTAG_CLEANFAXDATA, 1, TIFF_SHORT }, + { TIFFTAG_CONSECUTIVEBADFAXLINES, 1, TIFF_LONG }, + { TIFFTAG_INKSET, 1, TIFF_SHORT }, + { TIFFTAG_INKNAMES, 1, TIFF_ASCII }, + { TIFFTAG_DOTRANGE, 2, TIFF_SHORT }, + { TIFFTAG_TARGETPRINTER, 1, TIFF_ASCII }, + { TIFFTAG_SAMPLEFORMAT, 1, TIFF_SHORT }, + { TIFFTAG_YCBCRCOEFFICIENTS, (uint16) -1,TIFF_RATIONAL }, + { TIFFTAG_YCBCRSUBSAMPLING, 2, TIFF_SHORT }, + { TIFFTAG_YCBCRPOSITIONING, 1, TIFF_SHORT }, + { TIFFTAG_REFERENCEBLACKWHITE, (uint16) -1,TIFF_RATIONAL }, + { TIFFTAG_EXTRASAMPLES, (uint16) -1, TIFF_SHORT }, +}; +#define NTAGS (sizeof (tags) / sizeof (tags[0])) + +static void +cpTags(TIFF* in, TIFF* out) +{ + struct cpTag *p; + for (p = tags; p < &tags[NTAGS]; p++) + cpTag(in, out, p->tag, p->count, p->type); +} +#undef NTAGS + +static int +cpStrips(TIFF* in, TIFF* out) +{ + tsize_t bufsize = TIFFStripSize(in); + unsigned char *buf = (unsigned char *)_TIFFmalloc(bufsize); + + if (buf) { + tstrip_t s, ns = TIFFNumberOfStrips(in); + uint32 *bytecounts; + + TIFFGetField(in, TIFFTAG_STRIPBYTECOUNTS, &bytecounts); + for (s = 0; s < ns; s++) { + if (bytecounts[s] > bufsize) { + buf = (unsigned char *)_TIFFrealloc(buf, bytecounts[s]); + if (!buf) + return (0); + bufsize = bytecounts[s]; + } + if (TIFFReadRawStrip(in, s, buf, bytecounts[s]) < 0 || + TIFFWriteRawStrip(out, s, buf, bytecounts[s]) < 0) { + _TIFFfree(buf); + return (0); + } + } + _TIFFfree(buf); + return (1); + } + return (0); +} + +static int +cpTiles(TIFF* in, TIFF* out) +{ + tsize_t bufsize = TIFFTileSize(in); + unsigned char *buf = (unsigned char *)_TIFFmalloc(bufsize); + + if (buf) { + ttile_t t, nt = TIFFNumberOfTiles(in); + uint32 *bytecounts; + + TIFFGetField(in, TIFFTAG_TILEBYTECOUNTS, &bytecounts); + for (t = 0; t < nt; t++) { + if (bytecounts[t] > bufsize) { + buf = (unsigned char *)_TIFFrealloc(buf, bytecounts[t]); + if (!buf) + return (0); + bufsize = bytecounts[t]; + } + if (TIFFReadRawTile(in, t, buf, bytecounts[t]) < 0 || + TIFFWriteRawTile(out, t, buf, bytecounts[t]) < 0) { + _TIFFfree(buf); + return (0); + } + } + _TIFFfree(buf); + return (1); + } + return (0); +} + +static int +cpIFD(TIFF* in, TIFF* out) +{ + cpTags(in, out); + if (TIFFIsTiled(in)) { + if (!cpTiles(in, out)) + return (0); + } else { + if (!cpStrips(in, out)) + return (0); + } + return (1); +} + +static uint16 photometric; /* current photometric of raster */ +static uint16 filterWidth; /* filter width in pixels */ +static uint16 stepSrcWidth; /* src image stepping width */ +static uint16 stepDstWidth; /* dest stepping width */ +static uint8* src0; /* horizontal bit stepping (start) */ +static uint8* src1; /* horizontal bit stepping (middle) */ +static uint8* src2; /* horizontal bit stepping (end) */ +static uint16* rowoff; /* row offset for stepping */ +static uint8 cmap[256]; /* colormap indexes */ +static uint8 bits[256]; /* count of bits set */ + +static void +setupBitsTables() +{ + int i; + for (i = 0; i < 256; i++) { + int n = 0; + if (i&0x01) n++; + if (i&0x02) n++; + if (i&0x04) n++; + if (i&0x08) n++; + if (i&0x10) n++; + if (i&0x20) n++; + if (i&0x40) n++; + if (i&0x80) n++; + bits[i] = n; + } +} + +static int clamp(float v, int low, int high) + { return (v < low ? low : v > high ? high : (int)v); } + +#ifndef M_E +#define M_E 2.7182818284590452354 +#endif + +static void +expFill(float pct[], uint32 p, uint32 n) +{ + uint32 i; + uint32 c = (p * n) / 100; + for (i = 1; i < c; i++) + pct[i] = 1-exp(i/((double)(n-1)))/ M_E; + for (; i < n; i++) + pct[i] = 0.; +} + +static void +setupCmap() +{ + float pct[256]; /* known to be large enough */ + uint32 i; + pct[0] = 1; /* force white */ + switch (contrast) { + case EXP50: expFill(pct, 50, 256); break; + case EXP60: expFill(pct, 60, 256); break; + case EXP70: expFill(pct, 70, 256); break; + case EXP80: expFill(pct, 80, 256); break; + case EXP90: expFill(pct, 90, 256); break; + case EXP: expFill(pct, 100, 256); break; + case LINEAR: + for (i = 1; i < 256; i++) + pct[i] = 1-((float)i)/(256-1); + break; + } + switch (photometric) { + case PHOTOMETRIC_MINISWHITE: + for (i = 0; i < 256; i++) + cmap[i] = clamp(255*pct[(256-1)-i], 0, 255); + break; + case PHOTOMETRIC_MINISBLACK: + for (i = 0; i < 256; i++) + cmap[i] = clamp(255*pct[i], 0, 255); + break; + } +} + +static void +initScale() +{ + src0 = (uint8*) _TIFFmalloc(sizeof (uint8) * tnw); + src1 = (uint8*) _TIFFmalloc(sizeof (uint8) * tnw); + src2 = (uint8*) _TIFFmalloc(sizeof (uint8) * tnw); + rowoff = (uint16*) _TIFFmalloc(sizeof (uint16) * tnw); + filterWidth = 0; + stepDstWidth = stepSrcWidth = 0; + setupBitsTables(); +} + +/* + * Calculate the horizontal accumulation parameteres + * according to the widths of the src and dst images. + */ +static void +setupStepTables(uint16 sw) +{ + if (stepSrcWidth != sw || stepDstWidth != tnw) { + int step = sw; + int limit = tnw; + int err = 0; + uint32 sx = 0; + uint32 x; + int fw; + uint8 b; + for (x = 0; x < tnw; x++) { + uint32 sx0 = sx; + err += step; + while (err >= limit) { + err -= limit; + sx++; + } + rowoff[x] = sx0 >> 3; + fw = sx - sx0; /* width */ + b = (fw < 8) ? 0xff<<(8-fw) : 0xff; + src0[x] = b >> (sx0&7); + fw -= 8 - (sx0&7); + if (fw < 0) + fw = 0; + src1[x] = fw >> 3; + fw -= (fw>>3)<<3; + src2[x] = 0xff << (8-fw); + } + stepSrcWidth = sw; + stepDstWidth = tnw; + } +} + +static void +setrow(uint8* row, int nrows, const uint8* rows[]) +{ + uint32 x; + uint32 area = nrows * filterWidth; + for (x = 0; x < tnw; x++) { + uint32 mask0 = src0[x]; + uint32 fw = src1[x]; + uint32 mask1 = src1[x]; + uint32 off = rowoff[x]; + uint32 acc = 0; + uint32 y, i; + for (y = 0; y < nrows; y++) { + const uint8* src = rows[y] + off; + acc += bits[*src++ & mask0]; + switch (fw) { + default: + for (i = fw; i > 8; i--) + acc += bits[*src++]; + /* fall thru... */ + case 8: acc += bits[*src++]; + case 7: acc += bits[*src++]; + case 6: acc += bits[*src++]; + case 5: acc += bits[*src++]; + case 4: acc += bits[*src++]; + case 3: acc += bits[*src++]; + case 2: acc += bits[*src++]; + case 1: acc += bits[*src++]; + case 0: break; + } + acc += bits[*src & mask1]; + } + *row++ = cmap[(255*acc)/area]; + } +} + +/* + * Install the specified image. The + * image is resized to fit the display page using + * a box filter. The resultant pixels are mapped + * with a user-selectable contrast curve. + */ +static void +setImage1(const uint8* br, uint32 rw, uint32 rh) +{ + int step = rh; + int limit = tnh; + int err = 0; + int bpr = howmany(rw,8); + uint32 sy = 0; + uint8* row = thumbnail; + uint32 dy; + for (dy = 0; dy < tnh; dy++) { + const uint8* rows[256]; + int nrows = 1; + rows[0] = br + bpr*sy; + err += step; + while (err >= limit) { + err -= limit; + sy++; + if (err >= limit) + rows[nrows++] = br + bpr*sy; + } + setrow(row, nrows, rows); + row += tnw; + } +} + +static void +setImage(const uint8* br, uint32 rw, uint32 rh) +{ + filterWidth = (uint16) ceil((double) rw / (double) tnw); + setupStepTables(rw); + setImage1(br, rw, rh); +} + +static int +generateThumbnail(TIFF* in, TIFF* out) +{ + unsigned char* raster; + unsigned char* rp; + uint32 sw, sh, rps; + uint16 bps, spp; + tsize_t rowsize, rastersize; + tstrip_t s, ns = TIFFNumberOfStrips(in); + uint32 diroff[1]; + + TIFFGetField(in, TIFFTAG_IMAGEWIDTH, &sw); + TIFFGetField(in, TIFFTAG_IMAGELENGTH, &sh); + TIFFGetFieldDefaulted(in, TIFFTAG_BITSPERSAMPLE, &bps); + TIFFGetFieldDefaulted(in, TIFFTAG_SAMPLESPERPIXEL, &spp); + TIFFGetFieldDefaulted(in, TIFFTAG_ROWSPERSTRIP, &rps); + if (spp != 1 || bps != 1) + return (0); + rowsize = TIFFScanlineSize(in); + rastersize = sh * rowsize; + raster = (unsigned char*)_TIFFmalloc(rastersize); + rp = raster; + for (s = 0; s < ns; s++) { + (void) TIFFReadEncodedStrip(in, s, rp, -1); + rp += rps * rowsize; + } + TIFFGetField(in, TIFFTAG_PHOTOMETRIC, &photometric); + setupCmap(); + setImage(raster, sw, sh); + + TIFFSetField(out, TIFFTAG_SUBFILETYPE, FILETYPE_REDUCEDIMAGE); + TIFFSetField(out, TIFFTAG_IMAGEWIDTH, (uint32) tnw); + TIFFSetField(out, TIFFTAG_IMAGELENGTH, (uint32) tnh); + TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, (uint16) 8); + TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, (uint16) 1); + TIFFSetField(out, TIFFTAG_COMPRESSION, COMPRESSION_LZW); + TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISWHITE); + TIFFSetField(out, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); + TIFFSetField(out, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT); + cpTag(in, out, TIFFTAG_SOFTWARE, (uint16) -1, TIFF_ASCII); + cpTag(in, out, TIFFTAG_IMAGEDESCRIPTION, (uint16) -1, TIFF_ASCII); + cpTag(in, out, TIFFTAG_DATETIME, (uint16) -1, TIFF_ASCII); + cpTag(in, out, TIFFTAG_HOSTCOMPUTER, (uint16) -1, TIFF_ASCII); + diroff[0] = 0; + TIFFSetField(out, TIFFTAG_SUBIFD, 1, diroff); + return (TIFFWriteEncodedStrip(out, 0, thumbnail, tnw*tnh) != -1 && + TIFFWriteDirectory(out) != -1); +} + +char* stuff[] = { +"usage: thumbnail [options] input.tif output.tif", +"where options are:", +" -h # specify thumbnail image height (default is 274)", +" -w # specify thumbnail image width (default is 216)", +"", +" -c linear use linear contrast curve", +" -c exp50 use 50% exponential contrast curve", +" -c exp60 use 60% exponential contrast curve", +" -c exp70 use 70% exponential contrast curve", +" -c exp80 use 80% exponential contrast curve", +" -c exp90 use 90% exponential contrast curve", +" -c exp use pure exponential contrast curve", +NULL +}; + +static void +usage(void) +{ + char buf[BUFSIZ]; + int i; + + setbuf(stderr, buf); + for (i = 0; stuff[i] != NULL; i++) + fprintf(stderr, "%s\n", stuff[i]); + exit(-1); +} diff --git a/tools/tiff2bw.c b/tools/tiff2bw.c new file mode 100755 index 0000000..2e8a580 --- /dev/null +++ b/tools/tiff2bw.c @@ -0,0 +1,401 @@ +/* $Header: /home/cvsroot/libtiff/tools/tiff2bw.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include +#include +#include +#include +#include "tiffio.h" + +#define streq(a,b) (strcmp((a),(b)) == 0) +#define strneq(a,b,n) (strncmp(a,b,n) == 0) + +/* x% weighting -> fraction of full color */ +#define PCT(x) (((x)*255)/100) +int RED = PCT(28); /* 28% */ +int GREEN = PCT(59); /* 59% */ +int BLUE = PCT(11); /* 11% */ + +static void usage(void); +static int processCompressOptions(char*); + +static void +compresscontig(unsigned char* out, unsigned char* rgb, uint32 n) +{ + register int v, red = RED, green = GREEN, blue = BLUE; + + while (n-- > 0) { + v = red*(*rgb++); + v += green*(*rgb++); + v += blue*(*rgb++); + *out++ = v>>8; + } +} + +static void +compresssep(unsigned char* out, + unsigned char* r, unsigned char* g, unsigned char* b, uint32 n) +{ + register uint32 red = RED, green = GREEN, blue = BLUE; + + while (n-- > 0) + *out++ = (red*(*r++) + green*(*g++) + blue*(*b++)) >> 8; +} + +static int +checkcmap(TIFF* tif, int n, uint16* r, uint16* g, uint16* b) +{ + while (n-- > 0) + if (*r++ >= 256 || *g++ >= 256 || *b++ >= 256) + return (16); + TIFFWarning(TIFFFileName(tif), "Assuming 8-bit colormap"); + return (8); +} + +static void +compresspalette(unsigned char* out, unsigned char* data, uint32 n, uint16* rmap, uint16* gmap, uint16* bmap) +{ + register int v, red = RED, green = GREEN, blue = BLUE; + + while (n-- > 0) { + unsigned int ix = *data++; + v = red*rmap[ix]; + v += green*gmap[ix]; + v += blue*bmap[ix]; + *out++ = v>>8; + } +} + +static uint16 compression = (uint16) -1; +static uint16 predictor = 0; +static int jpegcolormode = JPEGCOLORMODE_RGB; +static int quality = 75; /* JPEG quality */ + +static void cpTags(TIFF* in, TIFF* out); + +int +main(int argc, char* argv[]) +{ + uint32 rowsperstrip = (uint32) -1; + TIFF *in, *out; + uint32 w, h; + uint16 samplesperpixel; + uint16 bitspersample; + uint16 config; + uint16 photometric; + uint16* red; + uint16* green; + uint16* blue; + tsize_t rowsize; + register uint32 row; + register tsample_t s; + unsigned char *inbuf, *outbuf; + char thing[1024]; + int c; + extern int optind; + extern char *optarg; + + while ((c = getopt(argc, argv, "c:r:R:G:B:")) != -1) + switch (c) { + case 'c': /* compression scheme */ + if (!processCompressOptions(optarg)) + usage(); + break; + case 'r': /* rows/strip */ + rowsperstrip = atoi(optarg); + break; + case 'R': + RED = PCT(atoi(optarg)); + break; + case 'G': + GREEN = PCT(atoi(optarg)); + break; + case 'B': + BLUE = PCT(atoi(optarg)); + break; + case '?': + usage(); + /*NOTREACHED*/ + } + if (argc - optind < 2) + usage(); + in = TIFFOpen(argv[optind], "r"); + if (in == NULL) + return (-1); + photometric = 0; + TIFFGetField(in, TIFFTAG_PHOTOMETRIC, &photometric); + if (photometric != PHOTOMETRIC_RGB && photometric != PHOTOMETRIC_PALETTE ) { + fprintf(stderr, + "%s: Bad photometric; can only handle RGB and Palette images.\n", + argv[optind]); + return (-1); + } + TIFFGetField(in, TIFFTAG_SAMPLESPERPIXEL, &samplesperpixel); + if (samplesperpixel != 1 && samplesperpixel != 3) { + fprintf(stderr, "%s: Bad samples/pixel %u.\n", + argv[optind], samplesperpixel); + return (-1); + } + TIFFGetField(in, TIFFTAG_BITSPERSAMPLE, &bitspersample); + if (bitspersample != 8) { + fprintf(stderr, + " %s: Sorry, only handle 8-bit samples.\n", argv[optind]); + return (-1); + } + TIFFGetField(in, TIFFTAG_IMAGEWIDTH, &w); + TIFFGetField(in, TIFFTAG_IMAGELENGTH, &h); + TIFFGetField(in, TIFFTAG_PLANARCONFIG, &config); + + out = TIFFOpen(argv[optind+1], "w"); + if (out == NULL) + return (-1); + cpTags(in, out); + TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, 8); + TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, 1); + TIFFSetField(out, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); + if (compression != (uint16) -1) { + TIFFSetField(out, TIFFTAG_COMPRESSION, compression); + switch (compression) { + case COMPRESSION_JPEG: + TIFFSetField(out, TIFFTAG_JPEGQUALITY, quality); + TIFFSetField(out, TIFFTAG_JPEGCOLORMODE, jpegcolormode); + break; + case COMPRESSION_LZW: + case COMPRESSION_DEFLATE: + if (predictor != 0) + TIFFSetField(out, TIFFTAG_PREDICTOR, predictor); + break; + } + } + TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK); + sprintf(thing, "B&W version of %s", argv[optind]); + TIFFSetField(out, TIFFTAG_IMAGEDESCRIPTION, thing); + TIFFSetField(out, TIFFTAG_SOFTWARE, "tiff2bw"); + outbuf = (unsigned char *)_TIFFmalloc(TIFFScanlineSize(out)); + TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, + TIFFDefaultStripSize(out, rowsperstrip)); + +#define pack(a,b) ((a)<<8 | (b)) + switch (pack(photometric, config)) { + case pack(PHOTOMETRIC_PALETTE, PLANARCONFIG_CONTIG): + case pack(PHOTOMETRIC_PALETTE, PLANARCONFIG_SEPARATE): + TIFFGetField(in, TIFFTAG_COLORMAP, &red, &green, &blue); + /* + * Convert 16-bit colormap to 8-bit (unless it looks + * like an old-style 8-bit colormap). + */ + if (checkcmap(in, 1<= 0; i--) { + red[i] = CVT(red[i]); + green[i] = CVT(green[i]); + blue[i] = CVT(blue[i]); + } +#undef CVT + } + inbuf = (unsigned char *)_TIFFmalloc(TIFFScanlineSize(in)); + for (row = 0; row < h; row++) { + if (TIFFReadScanline(in, inbuf, row, 0) < 0) + break; + compresspalette(outbuf, inbuf, w, red, green, blue); + if (TIFFWriteScanline(out, outbuf, row, 0) < 0) + break; + } + break; + case pack(PHOTOMETRIC_RGB, PLANARCONFIG_CONTIG): + inbuf = (unsigned char *)_TIFFmalloc(TIFFScanlineSize(in)); + for (row = 0; row < h; row++) { + if (TIFFReadScanline(in, inbuf, row, 0) < 0) + break; + compresscontig(outbuf, inbuf, w); + if (TIFFWriteScanline(out, outbuf, row, 0) < 0) + break; + } + break; + case pack(PHOTOMETRIC_RGB, PLANARCONFIG_SEPARATE): + rowsize = TIFFScanlineSize(in); + inbuf = (unsigned char *)_TIFFmalloc(3*rowsize); + for (row = 0; row < h; row++) { + for (s = 0; s < 3; s++) + if (TIFFReadScanline(in, + inbuf+s*rowsize, row, s) < 0) + return (-1); + compresssep(outbuf, + inbuf, inbuf+rowsize, inbuf+2*rowsize, w); + if (TIFFWriteScanline(out, outbuf, row, 0) < 0) + break; + } + break; + } +#undef pack + TIFFClose(out); + return (0); +} + +static int +processCompressOptions(char* opt) +{ + if (streq(opt, "none")) + compression = COMPRESSION_NONE; + else if (streq(opt, "packbits")) + compression = COMPRESSION_PACKBITS; + else if (strneq(opt, "jpeg", 4)) { + char* cp = strchr(opt, ':'); + if (cp && isdigit(cp[1])) + quality = atoi(cp+1); + if (cp && strchr(cp, 'r')) + jpegcolormode = JPEGCOLORMODE_RAW; + compression = COMPRESSION_JPEG; + } else if (strneq(opt, "lzw", 3)) { + char* cp = strchr(opt, ':'); + if (cp) + predictor = atoi(cp+1); + compression = COMPRESSION_LZW; + } else if (strneq(opt, "zip", 3)) { + char* cp = strchr(opt, ':'); + if (cp) + predictor = atoi(cp+1); + compression = COMPRESSION_DEFLATE; + } else + return (0); + return (1); +} + +#define CopyField1(tag, v) \ + if (TIFFGetField(in, tag, &v)) TIFFSetField(out, tag, v) +#define CopyField2(tag, v1, v2) \ + if (TIFFGetField(in, tag, &v1, &v2)) TIFFSetField(out, tag, v1, v2) +#define CopyField3(tag, v1, v2, v3) \ + if (TIFFGetField(in, tag, &v1, &v2, &v3)) TIFFSetField(out, tag, v1, v2, v3) +#define CopyField4(tag, v1, v2, v3, v4) \ + if (TIFFGetField(in, tag, &v1, &v2, &v3, &v4)) TIFFSetField(out, tag, v1, v2, v3, v4) + +static void +cpTag(TIFF* in, TIFF* out, uint16 tag, uint16 count, TIFFDataType type) +{ + uint16 shortv, shortv2, *shortav; + float floatv, *floatav; + char *stringv; + uint32 longv; + + switch (type) { + case TIFF_SHORT: + if (count == 1) { + CopyField1(tag, shortv); + } else if (count == 2) { + CopyField2(tag, shortv, shortv2); + } else if (count == (uint16) -1) { + CopyField2(tag, shortv, shortav); + } + break; + case TIFF_LONG: + CopyField1(tag, longv); + break; + case TIFF_RATIONAL: + if (count == 1) { + CopyField1(tag, floatv); + } else if (count == (uint16) -1) { + CopyField1(tag, floatav); + } + break; + case TIFF_ASCII: + CopyField1(tag, stringv); + break; + } +} +#undef CopyField4 +#undef CopyField3 +#undef CopyField2 +#undef CopyField1 + +static struct cpTag { + uint16 tag; + uint16 count; + TIFFDataType type; +} tags[] = { + { TIFFTAG_IMAGEWIDTH, 1, TIFF_LONG }, + { TIFFTAG_IMAGELENGTH, 1, TIFF_LONG }, + { TIFFTAG_FILLORDER, 1, TIFF_SHORT }, + { TIFFTAG_DOCUMENTNAME, 1, TIFF_ASCII }, + { TIFFTAG_MAKE, 1, TIFF_ASCII }, + { TIFFTAG_MODEL, 1, TIFF_ASCII }, + { TIFFTAG_ORIENTATION, 1, TIFF_SHORT }, + { TIFFTAG_XRESOLUTION, 1, TIFF_RATIONAL }, + { TIFFTAG_YRESOLUTION, 1, TIFF_RATIONAL }, + { TIFFTAG_PAGENAME, 1, TIFF_ASCII }, + { TIFFTAG_XPOSITION, 1, TIFF_RATIONAL }, + { TIFFTAG_YPOSITION, 1, TIFF_RATIONAL }, + { TIFFTAG_RESOLUTIONUNIT, 1, TIFF_SHORT }, + { TIFFTAG_PAGENUMBER, 2, TIFF_SHORT }, + { TIFFTAG_ARTIST, 1, TIFF_ASCII }, + { TIFFTAG_HOSTCOMPUTER, 1, TIFF_ASCII }, +}; +#define NTAGS (sizeof (tags) / sizeof (tags[0])) + +static void +cpTags(TIFF* in, TIFF* out) +{ + struct cpTag *p; + for (p = tags; p < &tags[NTAGS]; p++) + cpTag(in, out, p->tag, p->count, p->type); +} +#undef NTAGS + +char* stuff[] = { +"usage: tiff2bw [options] input.tif output.tif", +"where options are:", +" -R % use #% from red channel", +" -G % use #% from green channel", +" -B % use #% from blue channel", +"", +" -r # make each strip have no more than # rows", +"", +" -c lzw[:opts] compress output with Lempel-Ziv & Welch encoding", +" (no longer supported by default due to Unisys patent enforcement)", +" -c zip[:opts] compress output with deflate encoding", +" -c packbits compress output with packbits encoding", +" -c g3[:opts] compress output with CCITT Group 3 encoding", +" -c g4 compress output with CCITT Group 4 encoding", +" -c none use no compression algorithm on output", +"", +"LZW and deflate options:", +" # set predictor value", +"For example, -c lzw:2 to get LZW-encoded data with horizontal differencing", +NULL +}; + +static void +usage(void) +{ + char buf[BUFSIZ]; + int i; + + setbuf(stderr, buf); + for (i = 0; stuff[i] != NULL; i++) + fprintf(stderr, "%s\n", stuff[i]); + exit(-1); +} diff --git a/tools/tiff2ps.c b/tools/tiff2ps.c new file mode 100755 index 0000000..9f77ec1 --- /dev/null +++ b/tools/tiff2ps.c @@ -0,0 +1,1408 @@ +/* $Header: /home/cvsroot/libtiff/tools/tiff2ps.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include +#include /* for atof */ +#include +#include + +#include "tiffio.h" + +/* + * NB: this code assumes uint32 works with printf's %l[ud]. + */ +#ifndef TRUE +#define TRUE 1 +#define FALSE 0 +#endif + +int ascii85 = FALSE; /* use ASCII85 encoding */ +int interpolate = TRUE; /* interpolate level2 image */ +int level2 = FALSE; /* generate PostScript level 2 */ +int printAll = FALSE; /* print all images in file */ +int generateEPSF = TRUE; /* generate Encapsulated PostScript */ +int PSduplex = FALSE; /* enable duplex printing */ +int PStumble = FALSE; /* enable top edge binding */ +int PSavoiddeadzone = TRUE; /* enable avoiding printer deadzone */ +char *filename; /* input filename */ + +/* + * ASCII85 Encoding Support. + */ +unsigned char ascii85buf[10]; +int ascii85count; +int ascii85breaklen; + +int TIFF2PS(FILE*, TIFF*, float, float); +void PSpage(FILE*, TIFF*, uint32, uint32); +void PSColorContigPreamble(FILE*, uint32, uint32, int); +void PSColorSeparatePreamble(FILE*, uint32, uint32, int); +void PSDataColorContig(FILE*, TIFF*, uint32, uint32, int); +void PSDataColorSeparate(FILE*, TIFF*, uint32, uint32, int); +void PSDataPalette(FILE*, TIFF*, uint32, uint32); +void PSDataBW(FILE*, TIFF*, uint32, uint32); +void PSRawDataBW(FILE*, TIFF*, uint32, uint32); +void Ascii85Init(void); +void Ascii85Put(unsigned char code, FILE* fd); +void Ascii85Flush(FILE* fd); +void PSHead(FILE*, TIFF*, uint32, uint32, float, float, float, float); +void PSTail(FILE*, int); + +static void usage(int); + +int +main(int argc, char* argv[]) +{ + int dirnum = -1, c, np = 0; + float pageWidth = 0; + float pageHeight = 0; + uint32 diroff = 0; + extern char *optarg; + extern int optind; + FILE* output = stdout; + + while ((c = getopt(argc, argv, "h:w:d:o:O:aezps128DT")) != -1) + switch (c) { + case 'd': + dirnum = atoi(optarg); + break; + case 'D': + PSduplex = TRUE; + break; + case 'T': + PStumble = TRUE; + break; + case 'e': + generateEPSF = TRUE; + break; + case 'h': + pageHeight = atof(optarg); + break; + case 'o': + diroff = (uint32) strtoul(optarg, NULL, 0); + break; + case 'O': /* XXX too bad -o is already taken */ + output = fopen(optarg, "w"); + if (output == NULL) { + fprintf(stderr, + "%s: %s: Cannot open output file.\n", + argv[0], optarg); + exit(-2); + } + break; + case 'a': + printAll = TRUE; + /* fall thru... */ + case 'p': + generateEPSF = FALSE; + break; + case 's': + printAll = FALSE; + break; + case 'w': + pageWidth = atof(optarg); + break; + case 'z': + PSavoiddeadzone = FALSE; + break; + case '1': + level2 = FALSE; + ascii85 = FALSE; + break; + case '2': + level2 = TRUE; + ascii85 = TRUE; /* default to yes */ + break; + case '8': + ascii85 = FALSE; + break; + case '?': + usage(-1); + } + for (; argc - optind > 0; optind++) { + TIFF* tif = TIFFOpen(filename = argv[optind], "r"); + if (tif != NULL) { + if (dirnum != -1 && !TIFFSetDirectory(tif, dirnum)) + return (-1); + else if (diroff != 0 && + !TIFFSetSubDirectory(tif, diroff)) + return (-1); + np = TIFF2PS(output, tif, pageWidth, pageHeight); + TIFFClose(tif); + } + } + if (np) + PSTail(output, np); + else + usage(-1); + if (output != stdout) + fclose(output); + return (0); +} + +static uint16 samplesperpixel; +static uint16 bitspersample; +static uint16 planarconfiguration; +static uint16 photometric; +static uint16 compression; +static uint16 extrasamples; +static int alpha; + +static int +checkImage(TIFF* tif) +{ + switch (photometric) { + case PHOTOMETRIC_YCBCR: + if (compression == COMPRESSION_JPEG && + planarconfiguration == PLANARCONFIG_CONTIG) { + /* can rely on libjpeg to convert to RGB */ + TIFFSetField(tif, TIFFTAG_JPEGCOLORMODE, + JPEGCOLORMODE_RGB); + photometric = PHOTOMETRIC_RGB; + } else { + if (level2) + break; + TIFFError(filename, "Can not handle image with %s", + "PhotometricInterpretation=YCbCr"); + return (0); + } + /* fall thru... */ + case PHOTOMETRIC_RGB: + if (alpha && bitspersample != 8) { + TIFFError(filename, + "Can not handle %d-bit/sample RGB image with alpha", + bitspersample); + return (0); + } + /* fall thru... */ + case PHOTOMETRIC_SEPARATED: + case PHOTOMETRIC_PALETTE: + case PHOTOMETRIC_MINISBLACK: + case PHOTOMETRIC_MINISWHITE: + break; + case PHOTOMETRIC_LOGL: + case PHOTOMETRIC_LOGLUV: + if (compression != COMPRESSION_SGILOG && + compression != COMPRESSION_SGILOG24) { + TIFFError(filename, + "Can not handle %s data with compression other than SGILog", + (photometric == PHOTOMETRIC_LOGL) ? + "LogL" : "LogLuv" + ); + return (0); + } + /* rely on library to convert to RGB/greyscale */ + TIFFSetField(tif, TIFFTAG_SGILOGDATAFMT, SGILOGDATAFMT_8BIT); + photometric = (photometric == PHOTOMETRIC_LOGL) ? + PHOTOMETRIC_MINISBLACK : PHOTOMETRIC_RGB; + bitspersample = 8; + break; + case PHOTOMETRIC_CIELAB: + /* fall thru... */ + default: + TIFFError(filename, + "Can not handle image with PhotometricInterpretation=%d", + photometric); + return (0); + } + switch (bitspersample) { + case 1: case 2: + case 4: case 8: + break; + default: + TIFFError(filename, "Can not handle %d-bit/sample image", + bitspersample); + return (0); + } + if (planarconfiguration == PLANARCONFIG_SEPARATE && extrasamples > 0) + TIFFWarning(filename, "Ignoring extra samples"); + return (1); +} + +#define PS_UNIT_SIZE 72.0 +#define PSUNITS(npix,res) ((npix) * (PS_UNIT_SIZE / (res))) + +static char RGBcolorimage[] = "\ +/bwproc {\n\ + rgbproc\n\ + dup length 3 idiv string 0 3 0\n\ + 5 -1 roll {\n\ + add 2 1 roll 1 sub dup 0 eq {\n\ + pop 3 idiv\n\ + 3 -1 roll\n\ + dup 4 -1 roll\n\ + dup 3 1 roll\n\ + 5 -1 roll put\n\ + 1 add 3 0\n\ + } { 2 1 roll } ifelse\n\ + } forall\n\ + pop pop pop\n\ +} def\n\ +/colorimage where {pop} {\n\ + /colorimage {pop pop /rgbproc exch def {bwproc} image} bind def\n\ +} ifelse\n\ +"; + +/* + * Adobe Photoshop requires a comment line of the form: + * + * %ImageData:
    + * <1 for binary|2 for hex> "data start" + * + * It is claimed to be part of some future revision of the EPS spec. + */ +static void +PhotoshopBanner(FILE* fd, uint32 w, uint32 h, int bs, int nc, char* startline) +{ + fprintf(fd, "%%ImageData: %ld %ld %d %d 0 %d 2 \"", + (long) w, (long) h, bitspersample, nc, bs); + fprintf(fd, startline, nc); + fprintf(fd, "\"\n"); +} + +static void +setupPageState(TIFF* tif, uint32* pw, uint32* ph, float* pprw, float* pprh) +{ + uint16 res_unit; + float xres, yres; + + TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, pw); + TIFFGetField(tif, TIFFTAG_IMAGELENGTH, ph); + TIFFGetFieldDefaulted(tif, TIFFTAG_RESOLUTIONUNIT, &res_unit); + /* + * Calculate printable area. + */ + if (!TIFFGetField(tif, TIFFTAG_XRESOLUTION, &xres)) + xres = PS_UNIT_SIZE; + if (!TIFFGetField(tif, TIFFTAG_YRESOLUTION, &yres)) + yres = PS_UNIT_SIZE; + switch (res_unit) { + case RESUNIT_CENTIMETER: + xres *= 2.54, yres *= 2.54; + break; + case RESUNIT_NONE: + xres *= PS_UNIT_SIZE, yres *= PS_UNIT_SIZE; + break; + } + *pprh = PSUNITS(*ph, yres); + *pprw = PSUNITS(*pw, xres); +} + +static int +isCCITTCompression(TIFF* tif) +{ + uint16 compress; + TIFFGetField(tif, TIFFTAG_COMPRESSION, &compress); + return (compress == COMPRESSION_CCITTFAX3 || + compress == COMPRESSION_CCITTFAX4 || + compress == COMPRESSION_CCITTRLE || + compress == COMPRESSION_CCITTRLEW); +} + +static tsize_t tf_bytesperrow; +static tsize_t ps_bytesperrow; +static tsize_t tf_rowsperstrip; +static tsize_t tf_numberstrips; +static char *hex = "0123456789abcdef"; + + +/* returns the sequence number of the page processed */ +int +TIFF2PS(FILE* fd, TIFF* tif, float pw, float ph) +{ + uint32 w, h; + float ox, oy, prw, prh; + float scale; + uint32 subfiletype; + uint16* sampleinfo; + static int npages = 0; + + if (!TIFFGetField(tif, TIFFTAG_XPOSITION, &ox)) + ox = 0; + if (!TIFFGetField(tif, TIFFTAG_YPOSITION, &oy)) + oy = 0; + setupPageState(tif, &w, &h, &prw, &prh); + + do { + tf_numberstrips = TIFFNumberOfStrips(tif); + TIFFGetFieldDefaulted(tif, TIFFTAG_ROWSPERSTRIP, + &tf_rowsperstrip); + setupPageState(tif, &w, &h, &prw, &prh); + if (!npages) + PSHead(fd, tif, w, h, prw, prh, ox, oy); + TIFFGetFieldDefaulted(tif, TIFFTAG_BITSPERSAMPLE, + &bitspersample); + TIFFGetFieldDefaulted(tif, TIFFTAG_SAMPLESPERPIXEL, + &samplesperpixel); + TIFFGetFieldDefaulted(tif, TIFFTAG_PLANARCONFIG, + &planarconfiguration); + TIFFGetField(tif, TIFFTAG_COMPRESSION, &compression); + TIFFGetFieldDefaulted(tif, TIFFTAG_EXTRASAMPLES, + &extrasamples, &sampleinfo); + alpha = (extrasamples == 1 && + sampleinfo[0] == EXTRASAMPLE_ASSOCALPHA); + if (!TIFFGetField(tif, TIFFTAG_PHOTOMETRIC, &photometric)) { + switch (samplesperpixel - extrasamples) { + case 1: + if (isCCITTCompression(tif)) + photometric = PHOTOMETRIC_MINISWHITE; + else + photometric = PHOTOMETRIC_MINISBLACK; + break; + case 3: + photometric = PHOTOMETRIC_RGB; + break; + } + } + if (checkImage(tif)) { + tf_bytesperrow = TIFFScanlineSize(tif); + npages++; + fprintf(fd, "%%%%Page: %d %d\n", npages, npages); + fprintf(fd, "gsave\n"); + fprintf(fd, "100 dict begin\n"); + if (pw != 0 && ph != 0) { + /* NB: maintain image aspect ratio */ + scale = (pw*PS_UNIT_SIZE/prw) < (ph*PS_UNIT_SIZE/prh) ? + (pw*PS_UNIT_SIZE/prw) : + (ph*PS_UNIT_SIZE/prh); + if (scale > 1.0) + scale = 1.0; + fprintf(fd, "0 %f translate\n", ph*PS_UNIT_SIZE-prh*scale); + fprintf(fd, "%f %f scale\n", prw*scale, prh*scale); + } else + fprintf(fd, "%f %f scale\n", prw, prh); + PSpage(fd, tif, w, h); + fprintf(fd, "end\n"); + fprintf(fd, "grestore\n"); + fprintf(fd, "showpage\n"); + } + if (generateEPSF) + break; + TIFFGetFieldDefaulted(tif, TIFFTAG_SUBFILETYPE, &subfiletype); + } while (((subfiletype & FILETYPE_PAGE) || printAll) && + TIFFReadDirectory(tif)); + + return(npages); +} + + +static char DuplexPreamble[] = "\ +%%BeginFeature: *Duplex True\n\ +systemdict begin\n\ + /languagelevel where { pop languagelevel } { 1 } ifelse\n\ + 2 ge { 1 dict dup /Duplex true put setpagedevice }\n\ + { statusdict /setduplex known { statusdict begin setduplex true end } if\n\ + } ifelse\n\ +end\n\ +%%EndFeature\n\ +"; + +static char TumblePreamble[] = "\ +%%BeginFeature: *Tumble True\n\ +systemdict begin\n\ + /languagelevel where { pop languagelevel } { 1 } ifelse\n\ + 2 ge { 1 dict dup /Tumble true put setpagedevice }\n\ + { statusdict /settumble known { statusdict begin settumble true end } if\n\ + } ifelse\n\ +end\n\ +%%EndFeature\n\ +"; + +static char AvoidDeadZonePreamble[] = "\ +gsave newpath clippath pathbbox grestore\n\ + 4 2 roll 2 copy translate\n\ + exch 3 1 roll sub 3 1 roll sub exch\n\ + currentpagedevice /PageSize get aload pop\n\ + exch 3 1 roll div 3 1 roll div abs exch abs\n\ + 2 copy gt { exch } if pop\n\ + dup 1 lt { dup scale } { pop } ifelse\n\ +"; + +void +PSHead(FILE *fd, TIFF *tif, uint32 w, uint32 h, float pw, float ph, + float ox, float oy) +{ + time_t t; + + (void) tif; (void) w; (void) h; + t = time(0); + fprintf(fd, "%%!PS-Adobe-3.0%s\n", generateEPSF ? " EPSF-3.0" : ""); + fprintf(fd, "%%%%Creator: tiff2ps\n"); + fprintf(fd, "%%%%Title: %s\n", filename); + fprintf(fd, "%%%%CreationDate: %s", ctime(&t)); + fprintf(fd, "%%%%DocumentData: Clean7Bit\n"); + fprintf(fd, "%%%%Origin: %ld %ld\n", (long) ox, (long) oy); + /* NB: should use PageBoundingBox */ + fprintf(fd, "%%%%BoundingBox: 0 0 %ld %ld\n", + (long) ceil(pw), (long) ceil(ph)); + fprintf(fd, "%%%%LanguageLevel: %d\n", level2 ? 2 : 1); + fprintf(fd, "%%%%Pages: (atend)\n"); + fprintf(fd, "%%%%EndComments\n"); + fprintf(fd, "%%%%BeginSetup\n"); + if (PSduplex) + fprintf(fd, "%s", DuplexPreamble); + if (PStumble) + fprintf(fd, "%s", TumblePreamble); + if (PSavoiddeadzone && level2) + fprintf(fd, "%s", AvoidDeadZonePreamble); + fprintf(fd, "%%%%EndSetup\n"); +} + +void +PSTail(FILE *fd, int npages) +{ + fprintf(fd, "%%%%Trailer\n"); + fprintf(fd, "%%%%Pages: %d\n", npages); + fprintf(fd, "%%%%EOF\n"); +} + +static int +checkcmap(TIFF* tif, int n, uint16* r, uint16* g, uint16* b) +{ + (void) tif; + while (n-- > 0) + if (*r++ >= 256 || *g++ >= 256 || *b++ >= 256) + return (16); + TIFFWarning(filename, "Assuming 8-bit colormap"); + return (8); +} + +static void +PS_Lvl2colorspace(FILE* fd, TIFF* tif) +{ + uint16 *rmap, *gmap, *bmap; + int i, num_colors; + + /* + * Set up PostScript Level 2 colorspace according to + * section 4.8 in the PostScript refenence manual. + */ + fputs("% PostScript Level 2 only.\n", fd); + if (photometric != PHOTOMETRIC_PALETTE) { + if (photometric == PHOTOMETRIC_YCBCR) { + /* MORE CODE HERE */ + } + fprintf(fd, "/Device%s", + samplesperpixel > 2 ? "RGB" : "Gray"); + fputs(" setcolorspace\n", fd); + return; + } + + /* + * Set up an indexed/palette colorspace + */ + num_colors = (1 << bitspersample); + if (!TIFFGetField(tif, TIFFTAG_COLORMAP, &rmap, &gmap, &bmap)) { + TIFFError(filename, + "Palette image w/o \"Colormap\" tag"); + return; + } + if (checkcmap(tif, num_colors, rmap, gmap, bmap) == 16) { + /* + * Convert colormap to 8-bits values. + */ +#define CVT(x) (((x) * 255) / ((1L<<16)-1)) + for (i = 0; i < num_colors; i++) { + rmap[i] = CVT(rmap[i]); + gmap[i] = CVT(gmap[i]); + bmap[i] = CVT(bmap[i]); + } +#undef CVT + } + fprintf(fd, "[ /Indexed /DeviceRGB %d", num_colors - 1); + if (ascii85) { + Ascii85Init(); + fputs("\n<~", fd); + ascii85breaklen -= 2; + } else + fputs(" <", fd); + for (i = 0; i < num_colors; i++) { + if (ascii85) { + Ascii85Put(rmap[i], fd); + Ascii85Put(gmap[i], fd); + Ascii85Put(bmap[i], fd); + } else { + fputs((i % 8) ? " " : "\n ", fd); + fprintf(fd, "%02x%02x%02x", + rmap[i], gmap[i], bmap[i]); + } + } + if (ascii85) + Ascii85Flush(fd); + else + fputs(">\n", fd); + fputs("] setcolorspace\n", fd); +} + +static int +PS_Lvl2ImageDict(FILE* fd, TIFF* tif, uint32 w, uint32 h) +{ + int use_rawdata; + uint32 tile_width, tile_height; + uint16 predictor, minsamplevalue, maxsamplevalue; + int repeat_count; + char im_h[64], im_x[64], im_y[64]; + + (void)strcpy(im_x, "0"); + (void)sprintf(im_y, "%lu", (long) h); + (void)sprintf(im_h, "%lu", (long) h); + tile_width = w; + tile_height = h; + if (TIFFIsTiled(tif)) { + repeat_count = TIFFNumberOfTiles(tif); + TIFFGetField(tif, TIFFTAG_TILEWIDTH, &tile_width); + TIFFGetField(tif, TIFFTAG_TILELENGTH, &tile_height); + if (tile_width > w || tile_height > h || + (w % tile_width) != 0 || (h % tile_height != 0)) { + /* + * The tiles does not fit image width and height. + * Set up a clip rectangle for the image unit square. + */ + fputs("0 0 1 1 rectclip\n", fd); + } + if (tile_width < w) { + fputs("/im_x 0 def\n", fd); + (void)strcpy(im_x, "im_x neg"); + } + if (tile_height < h) { + fputs("/im_y 0 def\n", fd); + (void)sprintf(im_y, "%lu im_y sub", (unsigned long) h); + } + } else { + repeat_count = tf_numberstrips; + tile_height = tf_rowsperstrip; + if (tile_height > h) + tile_height = h; + if (repeat_count > 1) { + fputs("/im_y 0 def\n", fd); + fprintf(fd, "/im_h %lu def\n", + (unsigned long) tile_height); + (void)strcpy(im_h, "im_h"); + (void)sprintf(im_y, "%lu im_y sub", (unsigned long) h); + } + } + + /* + * Output start of exec block + */ + fputs("{ % exec\n", fd); + + if (repeat_count > 1) + fprintf(fd, "%d { %% repeat\n", repeat_count); + + /* + * Output filter options and image dictionary. + */ + if (ascii85) + fputs(" /im_stream currentfile /ASCII85Decode filter def\n", + fd); + fputs(" <<\n", fd); + fputs(" /ImageType 1\n", fd); + fprintf(fd, " /Width %lu\n", (unsigned long) tile_width); + fprintf(fd, " /Height %lu\n", (unsigned long) tile_height); + if (planarconfiguration == PLANARCONFIG_SEPARATE && samplesperpixel > 1) + fputs(" /MultipleDataSources true\n", fd); + fprintf(fd, " /ImageMatrix [ %lu 0 0 %ld %s %s ]\n", + (unsigned long) w, - (long)h, im_x, im_y); + fprintf(fd, " /BitsPerComponent %d\n", bitspersample); + fprintf(fd, " /Interpolate %s\n", interpolate ? "true" : "false"); + + switch (samplesperpixel) { + case 1: + switch (photometric) { + case PHOTOMETRIC_MINISBLACK: + fputs(" /Decode [0 1]\n", fd); + break; + case PHOTOMETRIC_MINISWHITE: + switch (compression) { + case COMPRESSION_CCITTRLE: + case COMPRESSION_CCITTRLEW: + case COMPRESSION_CCITTFAX3: + case COMPRESSION_CCITTFAX4: + /* + * Manage inverting with /Blackis1 flag + * since there migth be uncompressed parts + */ + fputs(" /Decode [0 1]\n", fd); + break; + default: + /* + * ERROR... + */ + fputs(" /Decode [1 0]\n", fd); + break; + } + break; + case PHOTOMETRIC_PALETTE: + TIFFGetFieldDefaulted(tif, TIFFTAG_MINSAMPLEVALUE, + &minsamplevalue); + TIFFGetFieldDefaulted(tif, TIFFTAG_MAXSAMPLEVALUE, + &maxsamplevalue); + fprintf(fd, " /Decode [%u %u]\n", + minsamplevalue, maxsamplevalue); + break; + default: + /* + * ERROR ? + */ + fputs(" /Decode [0 1]\n", fd); + break; + } + break; + case 3: + switch (photometric) { + case PHOTOMETRIC_RGB: + fputs(" /Decode [0 1 0 1 0 1]\n", fd); + break; + case PHOTOMETRIC_MINISWHITE: + case PHOTOMETRIC_MINISBLACK: + default: + /* + * ERROR?? + */ + fputs(" /Decode [0 1 0 1 0 1]\n", fd); + break; + } + break; + case 4: + /* + * ERROR?? + */ + fputs(" /Decode [0 1 0 1 0 1 0 1]\n", fd); + break; + } + fputs(" /DataSource", fd); + if (planarconfiguration == PLANARCONFIG_SEPARATE && + samplesperpixel > 1) + fputs(" [", fd); + if (ascii85) + fputs(" im_stream", fd); + else + fputs(" currentfile /ASCIIHexDecode filter", fd); + + use_rawdata = TRUE; + switch (compression) { + case COMPRESSION_NONE: /* 1: uncompressed */ + break; + case COMPRESSION_CCITTRLE: /* 2: CCITT modified Huffman RLE */ + case COMPRESSION_CCITTRLEW: /* 32771: #1 w/ word alignment */ + case COMPRESSION_CCITTFAX3: /* 3: CCITT Group 3 fax encoding */ + case COMPRESSION_CCITTFAX4: /* 4: CCITT Group 4 fax encoding */ + fputs("\n\t<<\n", fd); + if (compression == COMPRESSION_CCITTFAX3) { + uint32 g3_options; + + fputs("\t /EndOfLine true\n", fd); + fputs("\t /EndOfBlock false\n", fd); + if (!TIFFGetField(tif, TIFFTAG_GROUP3OPTIONS, + &g3_options)) + g3_options = 0; + if (g3_options & GROUP3OPT_2DENCODING) + fprintf(fd, "\t /K %s\n", im_h); + if (g3_options & GROUP3OPT_UNCOMPRESSED) + fputs("\t /Uncompressed true\n", fd); + if (g3_options & GROUP3OPT_FILLBITS) + fputs("\t /EncodedByteAlign true\n", fd); + } + if (compression == COMPRESSION_CCITTFAX4) { + uint32 g4_options; + + fputs("\t /K -1\n", fd); + TIFFGetFieldDefaulted(tif, TIFFTAG_GROUP4OPTIONS, + &g4_options); + if (g4_options & GROUP4OPT_UNCOMPRESSED) + fputs("\t /Uncompressed true\n", fd); + } + if (!(tile_width == w && w == 1728U)) + fprintf(fd, "\t /Columns %lu\n", + (unsigned long) tile_width); + fprintf(fd, "\t /Rows %s\n", im_h); + if (compression == COMPRESSION_CCITTRLE || + compression == COMPRESSION_CCITTRLEW) { + fputs("\t /EncodedByteAlign true\n", fd); + fputs("\t /EndOfBlock false\n", fd); + } + if (photometric == PHOTOMETRIC_MINISBLACK) + fputs("\t /BlackIs1 true\n", fd); + fprintf(fd, "\t>> /CCITTFaxDecode filter"); + break; + case COMPRESSION_LZW: /* 5: Lempel-Ziv & Welch */ + TIFFGetFieldDefaulted(tif, TIFFTAG_PREDICTOR, &predictor); + if (predictor == 2) { + fputs("\n\t<<\n", fd); + fprintf(fd, "\t /Predictor %u\n", predictor); + fprintf(fd, "\t /Columns %lu\n", + (unsigned long) tile_width); + fprintf(fd, "\t /Colors %u\n", samplesperpixel); + fprintf(fd, "\t /BitsPerComponent %u\n", + bitspersample); + fputs("\t>>", fd); + } + fputs(" /LZWDecode filter", fd); + break; + case COMPRESSION_PACKBITS: /* 32773: Macintosh RLE */ + fputs(" /RunLengthDecode filter", fd); + use_rawdata = TRUE; + break; + case COMPRESSION_OJPEG: /* 6: !6.0 JPEG */ + case COMPRESSION_JPEG: /* 7: %JPEG DCT compression */ +#ifdef notdef + /* + * Code not tested yet + */ + fputs(" /DCTDecode filter", fd); + use_rawdata = TRUE; +#else + use_rawdata = FALSE; +#endif + break; + case COMPRESSION_NEXT: /* 32766: NeXT 2-bit RLE */ + case COMPRESSION_THUNDERSCAN: /* 32809: ThunderScan RLE */ + case COMPRESSION_PIXARFILM: /* 32908: Pixar companded 10bit LZW */ + case COMPRESSION_DEFLATE: /* 32946: Deflate compression */ + case COMPRESSION_JBIG: /* 34661: ISO JBIG */ + use_rawdata = FALSE; + break; + case COMPRESSION_SGILOG: /* 34676: SGI LogL or LogLuv */ + case COMPRESSION_SGILOG24: /* 34677: SGI 24-bit LogLuv */ + use_rawdata = FALSE; + break; + default: + /* + * ERROR... + */ + use_rawdata = FALSE; + break; + } + if (planarconfiguration == PLANARCONFIG_SEPARATE && + samplesperpixel > 1) { + uint16 i; + + /* + * NOTE: This code does not work yet... + */ + for (i = 1; i < samplesperpixel; i++) + fputs(" dup", fd); + fputs(" ]", fd); + } + fputs("\n >> image\n", fd); + if (ascii85) + fputs(" im_stream flushfile\n", fd); + if (repeat_count > 1) { + if (tile_width < w) { + fprintf(fd, " /im_x im_x %lu add def\n", + (unsigned long) tile_width); + if (tile_height < h) { + fprintf(fd, " im_x %lu ge {\n", + (unsigned long) w); + fputs(" /im_x 0 def\n", fd); + fprintf(fd, " /im_y im_y %lu add def\n", + (unsigned long) tile_height); + fputs(" } if\n", fd); + } + } + if (tile_height < h) { + if (tile_width >= w) { + fprintf(fd, " /im_y im_y %lu add def\n", + (unsigned long) tile_height); + if (!TIFFIsTiled(tif)) { + fprintf(fd, " /im_h %lu im_y sub", + (unsigned long) h); + fprintf(fd, " dup %lu gt { pop", + (unsigned long) tile_height); + fprintf(fd, " %lu } if def\n", + (unsigned long) tile_height); + } + } + } + fputs("} repeat\n", fd); + } + /* + * End of exec function + */ + fputs("}\n", fd); + + return(use_rawdata); +} + +int +PS_Lvl2page(FILE* fd, TIFF* tif, uint32 w, uint32 h) +{ + uint16 fillorder; + int use_rawdata, tiled_image, breaklen; + uint32 chunk_no, num_chunks, *bc; + unsigned char *buf_data, *cp; + tsize_t chunk_size, byte_count; + + PS_Lvl2colorspace(fd, tif); + use_rawdata = PS_Lvl2ImageDict(fd, tif, w, h); + + fputs("%%BeginData:\n", fd); + fputs("exec\n", fd); + + tiled_image = TIFFIsTiled(tif); + if (tiled_image) { + num_chunks = TIFFNumberOfTiles(tif); + TIFFGetField(tif, TIFFTAG_TILEBYTECOUNTS, &bc); + } else { + num_chunks = TIFFNumberOfStrips(tif); + TIFFGetField(tif, TIFFTAG_STRIPBYTECOUNTS, &bc); + } + + if (use_rawdata) { + chunk_size = bc[0]; + for (chunk_no = 1; chunk_no < num_chunks; chunk_no++) + if (bc[chunk_no] > chunk_size) + chunk_size = bc[chunk_no]; + } else { + if (tiled_image) + chunk_size = TIFFTileSize(tif); + else + chunk_size = TIFFStripSize(tif); + } + buf_data = (unsigned char *)_TIFFmalloc(chunk_size); + if (!buf_data) { + TIFFError(filename, "Can't alloc %u bytes for %s.", + chunk_size, tiled_image ? "tiles" : "strips"); + return(FALSE); + } + + TIFFGetFieldDefaulted(tif, TIFFTAG_FILLORDER, &fillorder); + for (chunk_no = 0; chunk_no < num_chunks; chunk_no++) { + if (ascii85) + Ascii85Init(); + else + breaklen = 36; + if (use_rawdata) { + if (tiled_image) + byte_count = TIFFReadRawTile(tif, chunk_no, + buf_data, chunk_size); + else + byte_count = TIFFReadRawStrip(tif, chunk_no, + buf_data, chunk_size); + if (fillorder == FILLORDER_LSB2MSB) + TIFFReverseBits(buf_data, byte_count); + } else { + if (tiled_image) + byte_count = TIFFReadEncodedTile(tif, + chunk_no, buf_data, + chunk_size); + else + byte_count = TIFFReadEncodedStrip(tif, + chunk_no, buf_data, + chunk_size); + } + if (byte_count < 0) { + TIFFError(filename, "Can't read %s %d.", + tiled_image ? "tile" : "strip", chunk_no); + if (ascii85) + Ascii85Put('\0', fd); + } + for (cp = buf_data; byte_count > 0; byte_count--) { + if (ascii85) + Ascii85Put(*cp++, fd); + else { + if (--breaklen <= 0) { + putc('\n', fd); + breaklen = 36; + } + putc(hex[((*cp)>>4)&0xf], fd); + putc(hex[(*cp)&0xf], fd); + cp++; + } + } + if (ascii85) + Ascii85Flush(fd); + else + putc('\n', fd); + } + _TIFFfree(buf_data); + fputs("%%EndData\n", fd); + return(TRUE); +} + +void +PSpage(FILE* fd, TIFF* tif, uint32 w, uint32 h) +{ + if (level2 && PS_Lvl2page(fd, tif, w, h)) + return; + ps_bytesperrow = tf_bytesperrow; + switch (photometric) { + case PHOTOMETRIC_RGB: + if (planarconfiguration == PLANARCONFIG_CONTIG) { + fprintf(fd, "%s", RGBcolorimage); + PSColorContigPreamble(fd, w, h, 3); + PSDataColorContig(fd, tif, w, h, 3); + } else { + PSColorSeparatePreamble(fd, w, h, 3); + PSDataColorSeparate(fd, tif, w, h, 3); + } + break; + case PHOTOMETRIC_SEPARATED: + /* XXX should emit CMYKcolorimage */ + if (planarconfiguration == PLANARCONFIG_CONTIG) { + PSColorContigPreamble(fd, w, h, 4); + PSDataColorContig(fd, tif, w, h, 4); + } else { + PSColorSeparatePreamble(fd, w, h, 4); + PSDataColorSeparate(fd, tif, w, h, 4); + } + break; + case PHOTOMETRIC_PALETTE: + fprintf(fd, "%s", RGBcolorimage); + PhotoshopBanner(fd, w, h, 1, 3, "false 3 colorimage"); + fprintf(fd, "/scanLine %ld string def\n", + (long) ps_bytesperrow); + fprintf(fd, "%lu %lu 8\n", + (unsigned long) w, (unsigned long) h); + fprintf(fd, "[%lu 0 0 -%lu 0 %lu]\n", + (unsigned long) w, (unsigned long) h, (unsigned long) h); + fprintf(fd, "{currentfile scanLine readhexstring pop} bind\n"); + fprintf(fd, "false 3 colorimage\n"); + PSDataPalette(fd, tif, w, h); + break; + case PHOTOMETRIC_MINISBLACK: + case PHOTOMETRIC_MINISWHITE: + PhotoshopBanner(fd, w, h, 1, 1, "image"); + fprintf(fd, "/scanLine %ld string def\n", + (long) ps_bytesperrow); + fprintf(fd, "%lu %lu %d\n", + (unsigned long) w, (unsigned long) h, bitspersample); + fprintf(fd, "[%lu 0 0 -%lu 0 %lu]\n", + (unsigned long) w, (unsigned long) h, (unsigned long) h); + fprintf(fd, + "{currentfile scanLine readhexstring pop} bind\n"); + fprintf(fd, "image\n"); + PSDataBW(fd, tif, w, h); + break; + } + putc('\n', fd); +} + +void +PSColorContigPreamble(FILE* fd, uint32 w, uint32 h, int nc) +{ + ps_bytesperrow = nc * (tf_bytesperrow / samplesperpixel); + PhotoshopBanner(fd, w, h, 1, nc, "false %d colorimage"); + fprintf(fd, "/line %ld string def\n", (long) ps_bytesperrow); + fprintf(fd, "%lu %lu %d\n", + (unsigned long) w, (unsigned long) h, bitspersample); + fprintf(fd, "[%lu 0 0 -%lu 0 %lu]\n", + (unsigned long) w, (unsigned long) h, (unsigned long) h); + fprintf(fd, "{currentfile line readhexstring pop} bind\n"); + fprintf(fd, "false %d colorimage\n", nc); +} + +void +PSColorSeparatePreamble(FILE* fd, uint32 w, uint32 h, int nc) +{ + int i; + + PhotoshopBanner(fd, w, h, ps_bytesperrow, nc, "true %d colorimage"); + for (i = 0; i < nc; i++) + fprintf(fd, "/line%d %ld string def\n", + i, (long) ps_bytesperrow); + fprintf(fd, "%lu %lu %d\n", + (unsigned long) w, (unsigned long) h, bitspersample); + fprintf(fd, "[%lu 0 0 -%lu 0 %lu] \n", + (unsigned long) w, (unsigned long) h, (unsigned long) h); + for (i = 0; i < nc; i++) + fprintf(fd, "{currentfile line%d readhexstring pop}bind\n", i); + fprintf(fd, "true %d colorimage\n", nc); +} + +#define MAXLINE 36 +#define DOBREAK(len, howmany, fd) \ + if (((len) -= (howmany)) <= 0) { \ + putc('\n', fd); \ + (len) = MAXLINE-(howmany); \ + } +#define PUTHEX(c,fd) putc(hex[((c)>>4)&0xf],fd); putc(hex[(c)&0xf],fd) + +void +PSDataColorContig(FILE* fd, TIFF* tif, uint32 w, uint32 h, int nc) +{ + uint32 row; + int breaklen = MAXLINE, cc, es = samplesperpixel - nc; + unsigned char *tf_buf; + unsigned char *cp, c; + + (void) w; + tf_buf = (unsigned char *) _TIFFmalloc(tf_bytesperrow); + if (tf_buf == NULL) { + TIFFError(filename, "No space for scanline buffer"); + return; + } + for (row = 0; row < h; row++) { + if (TIFFReadScanline(tif, tf_buf, row, 0) < 0) + break; + cp = tf_buf; + if (alpha) { + int adjust; + cc = 0; + for (; cc < tf_bytesperrow; cc += samplesperpixel) { + DOBREAK(breaklen, nc, fd); + /* + * For images with alpha, matte against + * a white background; i.e. + * Cback * (1 - Aimage) + * where Cback = 1. + */ + adjust = 255 - cp[nc]; + switch (nc) { + case 4: c = *cp++ + adjust; PUTHEX(c,fd); + case 3: c = *cp++ + adjust; PUTHEX(c,fd); + case 2: c = *cp++ + adjust; PUTHEX(c,fd); + case 1: c = *cp++ + adjust; PUTHEX(c,fd); + } + cp += es; + } + } else { + cc = 0; + for (; cc < tf_bytesperrow; cc += samplesperpixel) { + DOBREAK(breaklen, nc, fd); + switch (nc) { + case 4: c = *cp++; PUTHEX(c,fd); + case 3: c = *cp++; PUTHEX(c,fd); + case 2: c = *cp++; PUTHEX(c,fd); + case 1: c = *cp++; PUTHEX(c,fd); + } + cp += es; + } + } + } + _TIFFfree((char *) tf_buf); +} + +void +PSDataColorSeparate(FILE* fd, TIFF* tif, uint32 w, uint32 h, int nc) +{ + uint32 row; + int breaklen = MAXLINE, cc, s, maxs; + unsigned char *tf_buf; + unsigned char *cp, c; + + (void) w; + tf_buf = (unsigned char *) _TIFFmalloc(tf_bytesperrow); + if (tf_buf == NULL) { + TIFFError(filename, "No space for scanline buffer"); + return; + } + maxs = (samplesperpixel > nc ? nc : samplesperpixel); + for (row = 0; row < h; row++) { + for (s = 0; s < maxs; s++) { + if (TIFFReadScanline(tif, tf_buf, row, s) < 0) + break; + for (cp = tf_buf, cc = 0; cc < tf_bytesperrow; cc++) { + DOBREAK(breaklen, 1, fd); + c = *cp++; + PUTHEX(c,fd); + } + } + } + _TIFFfree((char *) tf_buf); +} + +#define PUTRGBHEX(c,fd) \ + PUTHEX(rmap[c],fd); PUTHEX(gmap[c],fd); PUTHEX(bmap[c],fd) + +void +PSDataPalette(FILE* fd, TIFF* tif, uint32 w, uint32 h) +{ + uint16 *rmap, *gmap, *bmap; + uint32 row; + int breaklen = MAXLINE, cc, nc; + unsigned char *tf_buf; + unsigned char *cp, c; + + (void) w; + if (!TIFFGetField(tif, TIFFTAG_COLORMAP, &rmap, &gmap, &bmap)) { + TIFFError(filename, "Palette image w/o \"Colormap\" tag"); + return; + } + switch (bitspersample) { + case 8: case 4: case 2: case 1: + break; + default: + TIFFError(filename, "Depth %d not supported", bitspersample); + return; + } + nc = 3 * (8 / bitspersample); + tf_buf = (unsigned char *) _TIFFmalloc(tf_bytesperrow); + if (tf_buf == NULL) { + TIFFError(filename, "No space for scanline buffer"); + return; + } + if (checkcmap(tif, 1<= 0; i--) { + rmap[i] = CVT(rmap[i]); + gmap[i] = CVT(gmap[i]); + bmap[i] = CVT(bmap[i]); + } +#undef CVT + } + for (row = 0; row < h; row++) { + if (TIFFReadScanline(tif, tf_buf, row, 0) < 0) + break; + for (cp = tf_buf, cc = 0; cc < tf_bytesperrow; cc++) { + DOBREAK(breaklen, nc, fd); + switch (bitspersample) { + case 8: + c = *cp++; PUTRGBHEX(c, fd); + break; + case 4: + c = *cp++; PUTRGBHEX(c&0xf, fd); + c >>= 4; PUTRGBHEX(c, fd); + break; + case 2: + c = *cp++; PUTRGBHEX(c&0x3, fd); + c >>= 2; PUTRGBHEX(c&0x3, fd); + c >>= 2; PUTRGBHEX(c&0x3, fd); + c >>= 2; PUTRGBHEX(c, fd); + break; + case 1: + c = *cp++; PUTRGBHEX(c&0x1, fd); + c >>= 1; PUTRGBHEX(c&0x1, fd); + c >>= 1; PUTRGBHEX(c&0x1, fd); + c >>= 1; PUTRGBHEX(c&0x1, fd); + c >>= 1; PUTRGBHEX(c&0x1, fd); + c >>= 1; PUTRGBHEX(c&0x1, fd); + c >>= 1; PUTRGBHEX(c&0x1, fd); + c >>= 1; PUTRGBHEX(c, fd); + break; + } + } + } + _TIFFfree((char *) tf_buf); +} + +void +PSDataBW(FILE* fd, TIFF* tif, uint32 w, uint32 h) +{ + int breaklen = MAXLINE; + unsigned char* tf_buf; + unsigned char* cp; + tsize_t stripsize = TIFFStripSize(tif); + tstrip_t s; + + (void) w; (void) h; + tf_buf = (unsigned char *) _TIFFmalloc(stripsize); + if (tf_buf == NULL) { + TIFFError(filename, "No space for scanline buffer"); + return; + } + if (ascii85) + Ascii85Init(); + for (s = 0; s < TIFFNumberOfStrips(tif); s++) { + int cc = TIFFReadEncodedStrip(tif, s, tf_buf, stripsize); + if (cc < 0) { + TIFFError(filename, "Can't read strip"); + break; + } + cp = tf_buf; + if (photometric == PHOTOMETRIC_MINISWHITE) { + for (cp += cc; --cp >= tf_buf;) + *cp = ~*cp; + cp++; + } + if (ascii85) { + while (cc-- > 0) + Ascii85Put(*cp++, fd); + } else { + while (cc-- > 0) { + unsigned char c = *cp++; + DOBREAK(breaklen, 1, fd); + PUTHEX(c, fd); + } + } + } + if (ascii85) + Ascii85Flush(fd); + else if (level2) + fputs(">\n", fd); + _TIFFfree(tf_buf); +} + +void +PSRawDataBW(FILE* fd, TIFF* tif, uint32 w, uint32 h) +{ + uint32 *bc; + uint32 bufsize; + int breaklen = MAXLINE, cc; + uint16 fillorder; + unsigned char *tf_buf; + unsigned char *cp, c; + tstrip_t s; + + (void) w; (void) h; + TIFFGetFieldDefaulted(tif, TIFFTAG_FILLORDER, &fillorder); + TIFFGetField(tif, TIFFTAG_STRIPBYTECOUNTS, &bc); + bufsize = bc[0]; + tf_buf = (unsigned char*) _TIFFmalloc(bufsize); + if (tf_buf == NULL) { + TIFFError(filename, "No space for strip buffer"); + return; + } + for (s = 0; s < tf_numberstrips; s++) { + if (bc[s] > bufsize) { + tf_buf = (unsigned char *) _TIFFrealloc(tf_buf, bc[s]); + if (tf_buf == NULL) { + TIFFError(filename, + "No space for strip buffer"); + return; + } + bufsize = bc[s]; + } + cc = TIFFReadRawStrip(tif, s, tf_buf, bc[s]); + if (cc < 0) { + TIFFError(filename, "Can't read strip"); + break; + } + if (fillorder == FILLORDER_LSB2MSB) + TIFFReverseBits(tf_buf, cc); + if (!ascii85) { + for (cp = tf_buf; cc > 0; cc--) { + DOBREAK(breaklen, 1, fd); + c = *cp++; + PUTHEX(c, fd); + } + fputs(">\n", fd); + breaklen = MAXLINE; + } else { + Ascii85Init(); + for (cp = tf_buf; cc > 0; cc--) + Ascii85Put(*cp++, fd); + Ascii85Flush(fd); + } + } + _TIFFfree((char *) tf_buf); +} + +void +Ascii85Init(void) +{ + ascii85breaklen = 2*MAXLINE; + ascii85count = 0; +} + +static char* +Ascii85Encode(unsigned char* raw) +{ + static char encoded[6]; + uint32 word; + + word = (((raw[0]<<8)+raw[1])<<16) + (raw[2]<<8) + raw[3]; + if (word != 0L) { + uint32 q; + uint16 w1; + + q = word / (85L*85*85*85); /* actually only a byte */ + encoded[0] = q + '!'; + + word -= q * (85L*85*85*85); q = word / (85L*85*85); + encoded[1] = q + '!'; + + word -= q * (85L*85*85); q = word / (85*85); + encoded[2] = q + '!'; + + w1 = (uint16) (word - q*(85L*85)); + encoded[3] = (w1 / 85) + '!'; + encoded[4] = (w1 % 85) + '!'; + encoded[5] = '\0'; + } else + encoded[0] = 'z', encoded[1] = '\0'; + return (encoded); +} + +void +Ascii85Put(unsigned char code, FILE* fd) +{ + ascii85buf[ascii85count++] = code; + if (ascii85count >= 4) { + unsigned char* p; + int n; + + for (n = ascii85count, p = ascii85buf; n >= 4; n -= 4, p += 4) { + char* cp; + for (cp = Ascii85Encode(p); *cp; cp++) { + putc(*cp, fd); + if (--ascii85breaklen == 0) { + putc('\n', fd); + ascii85breaklen = 2*MAXLINE; + } + } + } + _TIFFmemcpy(ascii85buf, p, n); + ascii85count = n; + } +} + +void +Ascii85Flush(FILE* fd) +{ + if (ascii85count > 0) { + char* res; + _TIFFmemset(&ascii85buf[ascii85count], 0, 3); + res = Ascii85Encode(ascii85buf); + fwrite(res[0] == 'z' ? "!!!!" : res, ascii85count + 1, 1, fd); + } + fputs("~>\n", fd); +} + +char* stuff[] = { +"usage: tiff2ps [options] input.tif ...", +"where options are:", +" -1 generate PostScript Level I (default)", +" -2 generate PostScript Level II", +" -8 disable use of ASCII85 encoding with PostScript Level II", +" -d # convert directory number #", +" -D enable duplex printing (two pages per sheet of paper)", +" -e generate Encapsulated PostScript (EPS)", +" -h # assume printed page height is # inches (default 11)", +" -o # convert directory at file offset #", +" -O file write PostScript to file instead of standard output", +" -a convert all directories in file (default is first)", +" -p generate regular PostScript", +" -s generate PostScript for a single image", +" -T print pages for top edge binding", +" -w # assume printed page width is # inches (default 8.5)", +" -z enable printing in the deadzone (only for PostScript Level II)", +NULL +}; + +static void +usage(int code) +{ + char buf[BUFSIZ]; + int i; + + setbuf(stderr, buf); + for (i = 0; stuff[i] != NULL; i++) + fprintf(stderr, "%s\n", stuff[i]); + exit(code); +} diff --git a/tools/tiff2rgba.c b/tools/tiff2rgba.c new file mode 100755 index 0000000..0895c7e --- /dev/null +++ b/tools/tiff2rgba.c @@ -0,0 +1,453 @@ +/* $Header: /home/cvsroot/libtiff/tools/tiff2rgba.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1991-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include +#include +#include + +#include "tiffio.h" + +#define streq(a,b) (strcmp(a,b) == 0) +#define CopyField(tag, v) \ + if (TIFFGetField(in, tag, &v)) TIFFSetField(out, tag, v) + +#ifndef howmany +#define howmany(x, y) (((x)+((y)-1))/(y)) +#endif +#define roundup(x, y) (howmany(x,y)*((uint32)(y))) + +uint16 compression = COMPRESSION_PACKBITS; +uint32 rowsperstrip = (uint32) -1; +int process_by_block = 0; /* default is whole image at once */ + + +static int tiffcvt(TIFF* in, TIFF* out); +static void usage(void); + +int +main(int argc, char* argv[]) +{ + TIFF *in, *out; + int c; + extern int optind; + extern char *optarg; + + while ((c = getopt(argc, argv, "c:r:t:b")) != -1) + switch (c) { + case 'b': + process_by_block = 1; + break; + + case 'c': + if (streq(optarg, "none")) + compression = COMPRESSION_NONE; + else if (streq(optarg, "packbits")) + compression = COMPRESSION_PACKBITS; + else if (streq(optarg, "lzw")) + compression = COMPRESSION_LZW; + else if (streq(optarg, "jpeg")) + compression = COMPRESSION_JPEG; + else + usage(); + break; + + case 'r': + rowsperstrip = atoi(optarg); + break; + + case 't': + rowsperstrip = atoi(optarg); + break; + + case '?': + usage(); + /*NOTREACHED*/ + } + + if (argc - optind < 2) + usage(); + + out = TIFFOpen(argv[argc-1], "w"); + if (out == NULL) + return (-2); + + for (; optind < argc-1; optind++) { + in = TIFFOpen(argv[optind], "r"); + if (in != NULL) { + do { + if (!tiffcvt(in, out) || + !TIFFWriteDirectory(out)) { + (void) TIFFClose(out); + return (1); + } + } while (TIFFReadDirectory(in)); + (void) TIFFClose(in); + } + } + (void) TIFFClose(out); + return (0); +} + +static int +cvt_by_tile( TIFF *in, TIFF *out ) + +{ + uint32* raster; /* retrieve RGBA image */ + uint32 width, height; /* image width & height */ + uint32 tile_width, tile_height; + uint32 row, col; + uint32 *wrk_line; + int ok = 1; + + TIFFGetField(in, TIFFTAG_IMAGEWIDTH, &width); + TIFFGetField(in, TIFFTAG_IMAGELENGTH, &height); + + if( !TIFFGetField(in, TIFFTAG_TILEWIDTH, &tile_width) + || !TIFFGetField(in, TIFFTAG_TILELENGTH, &tile_height) ) { + TIFFError(TIFFFileName(in), "Source image not tiled"); + return (0); + } + + TIFFSetField(out, TIFFTAG_TILEWIDTH, tile_width ); + TIFFSetField(out, TIFFTAG_TILELENGTH, tile_height ); + + /* + * Allocate tile buffer + */ + raster = (uint32*)_TIFFmalloc(tile_width * tile_height * sizeof (uint32)); + if (raster == 0) { + TIFFError(TIFFFileName(in), "No space for raster buffer"); + return (0); + } + + /* + * Allocate a scanline buffer for swapping during the vertical + * mirroring pass. + */ + wrk_line = (uint32*)_TIFFmalloc(tile_width * sizeof (uint32)); + if (wrk_line == 0) { + TIFFError(TIFFFileName(in), "No space for raster scanline buffer"); + ok = 0; + } + + /* + * Loop over the tiles. + */ + for( row = 0; ok && row < height; row += tile_height ) + { + for( col = 0; ok && col < width; col += tile_width ) + { + int i_row; + + /* Read the tile into an RGBA array */ + if (!TIFFReadRGBATile(in, col, row, raster)) { + ok = 0; + break; + } + + /* + * For some reason the TIFFReadRGBATile() function chooses the + * lower left corner as the origin. Vertically mirror scanlines. + */ + for( i_row = 0; i_row < tile_height / 2; i_row++ ) + { + uint32 *top_line, *bottom_line; + + top_line = raster + tile_width * i_row; + bottom_line = raster + tile_width * (tile_height-i_row-1); + + _TIFFmemcpy(wrk_line, top_line, 4*tile_width); + _TIFFmemcpy(top_line, bottom_line, 4*tile_width); + _TIFFmemcpy(bottom_line, wrk_line, 4*tile_width); + } + + /* + * Write out the result in a tile. + */ + + if( TIFFWriteEncodedTile( out, + TIFFComputeTile( out, col, row, 0, 0), + raster, + 4 * tile_width * tile_height ) == -1 ) + { + ok = 0; + break; + } + } + } + + _TIFFfree( raster ); + _TIFFfree( wrk_line ); + + return ok; +} + +static int +cvt_by_strip( TIFF *in, TIFF *out ) + +{ + uint32* raster; /* retrieve RGBA image */ + uint32 width, height; /* image width & height */ + uint32 row; + uint32 *wrk_line; + int ok = 1; + + TIFFGetField(in, TIFFTAG_IMAGEWIDTH, &width); + TIFFGetField(in, TIFFTAG_IMAGELENGTH, &height); + + if( !TIFFGetField(in, TIFFTAG_ROWSPERSTRIP, &rowsperstrip) ) { + TIFFError(TIFFFileName(in), "Source image not in strips"); + return (0); + } + + TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, rowsperstrip); + + /* + * Allocate strip buffer + */ + raster = (uint32*)_TIFFmalloc(width * rowsperstrip * sizeof (uint32)); + if (raster == 0) { + TIFFError(TIFFFileName(in), "No space for raster buffer"); + return (0); + } + + /* + * Allocate a scanline buffer for swapping during the vertical + * mirroring pass. + */ + wrk_line = (uint32*)_TIFFmalloc(width * sizeof (uint32)); + if (wrk_line == 0) { + TIFFError(TIFFFileName(in), "No space for raster scanline buffer"); + ok = 0; + } + + /* + * Loop over the strips. + */ + for( row = 0; ok && row < height; row += rowsperstrip ) + { + int rows_to_write, i_row; + + /* Read the strip into an RGBA array */ + if (!TIFFReadRGBAStrip(in, row, raster)) { + ok = 0; + break; + } + + /* + * Figure out the number of scanlines actually in this strip. + */ + if( row + rowsperstrip > height ) + rows_to_write = height - row; + else + rows_to_write = rowsperstrip; + + /* + * For some reason the TIFFReadRGBAStrip() function chooses the + * lower left corner as the origin. Vertically mirror scanlines. + */ + + for( i_row = 0; i_row < rows_to_write / 2; i_row++ ) + { + uint32 *top_line, *bottom_line; + + top_line = raster + width * i_row; + bottom_line = raster + width * (rows_to_write-i_row-1); + + _TIFFmemcpy(wrk_line, top_line, 4*width); + _TIFFmemcpy(top_line, bottom_line, 4*width); + _TIFFmemcpy(bottom_line, wrk_line, 4*width); + } + + /* + * Write out the result in a strip + */ + + if( TIFFWriteEncodedStrip( out, row / rowsperstrip, raster, + 4 * rows_to_write * width ) == -1 ) + { + ok = 0; + break; + } + } + + _TIFFfree( raster ); + _TIFFfree( wrk_line ); + + return ok; +} + +/* + * cvt_whole_image() + * + * read the whole image into one big RGBA buffer and then write out + * strips from that. This is using the traditional TIFFReadRGBAImage() + * API that we trust. + */ + +static int +cvt_whole_image( TIFF *in, TIFF *out ) + +{ + uint32* raster; /* retrieve RGBA image */ + uint32 width, height; /* image width & height */ + uint32 row; + uint32 *wrk_line; + + + TIFFGetField(in, TIFFTAG_IMAGEWIDTH, &width); + TIFFGetField(in, TIFFTAG_IMAGELENGTH, &height); + + rowsperstrip = TIFFDefaultStripSize(out, rowsperstrip); + TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, rowsperstrip); + + raster = (uint32*)_TIFFmalloc(width * height * sizeof (uint32)); + if (raster == 0) { + TIFFError(TIFFFileName(in), "No space for raster buffer"); + return (0); + } + + /* Read the image in one chunk into an RGBA array */ + if (!TIFFReadRGBAImage(in, width, height, raster, 0)) { + _TIFFfree(raster); + return (0); + } + + /* For some reason the TIFFReadRGBAImage() function chooses the + lower left corner as the origin. Vertically mirror scanlines. */ + + wrk_line = (uint32*)_TIFFmalloc(width * sizeof (uint32)); + if (wrk_line == 0) { + TIFFError(TIFFFileName(in), "No space for raster scanline buffer"); + return (0); + } + + for( row = 0; row < height / 2; row++ ) + { + uint32 *top_line, *bottom_line; + + top_line = raster + width * row; + bottom_line = raster + width * (height-row-1); + + _TIFFmemcpy(wrk_line, top_line, 4*width); + _TIFFmemcpy(top_line, bottom_line, 4*width); + _TIFFmemcpy(bottom_line, wrk_line, 4*width); + } + + _TIFFfree( wrk_line ); + + + /* Write out the result in strips */ + + for( row = 0; row < height; row += rowsperstrip ) + { + uint32* raster_strip; + int rows_to_write; + + raster_strip = raster + row * width; + + if( row + rowsperstrip > height ) + rows_to_write = height - row; + else + rows_to_write = rowsperstrip; + + if( TIFFWriteEncodedStrip( out, row / rowsperstrip, + raster_strip, + 4 * rows_to_write * width ) == -1 ) + { + _TIFFfree( raster ); + return 0; + } + } + + _TIFFfree( raster ); + + return 1; +} + + +static int +tiffcvt(TIFF* in, TIFF* out) +{ + uint32 width, height; /* image width & height */ + uint16 shortv; + float floatv; + char *stringv; + uint32 longv; + uint16 v[1]; + + TIFFGetField(in, TIFFTAG_IMAGEWIDTH, &width); + TIFFGetField(in, TIFFTAG_IMAGELENGTH, &height); + + CopyField(TIFFTAG_SUBFILETYPE, longv); + TIFFSetField(out, TIFFTAG_IMAGEWIDTH, width); + TIFFSetField(out, TIFFTAG_IMAGELENGTH, height); + TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, 8); + TIFFSetField(out, TIFFTAG_COMPRESSION, compression); + TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB); + + CopyField(TIFFTAG_FILLORDER, shortv); + TIFFSetField(out, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT); + TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, 4); + v[0] = EXTRASAMPLE_ASSOCALPHA; + TIFFSetField(out, TIFFTAG_EXTRASAMPLES, 1, v); + CopyField(TIFFTAG_XRESOLUTION, floatv); + CopyField(TIFFTAG_YRESOLUTION, floatv); + CopyField(TIFFTAG_RESOLUTIONUNIT, shortv); + TIFFSetField(out, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); + TIFFSetField(out, TIFFTAG_SOFTWARE, TIFFGetVersion()); + CopyField(TIFFTAG_DOCUMENTNAME, stringv); + + if( process_by_block && TIFFIsTiled( in ) ) + return( cvt_by_tile( in, out ) ); + else if( process_by_block ) + return( cvt_by_strip( in, out ) ); + else + return( cvt_whole_image( in, out ) ); +} + +static char* usageMsg[] = { + "usage: tiff2rgba [-c comp] [-r rows] [-b] input... output\n", + "where comp is one of the following compression algorithms:\n", + " jpeg\t\tJPEG encoding\n", + " lzw\t\tLempel-Ziv & Welch encoding\n", + " (lzw compression unsupported by default due to Unisys patent enforcement)\n", + " packbits\tPackBits encoding\n", + " none\t\tno compression\n", + "and the other options are:\n", + " -r\trows/strip\n", + " -b (progress by block rather than as a whole image)\n", + NULL +}; + +static void +usage(void) +{ + int i; + for (i = 0; usageMsg[i]; i++) + fprintf(stderr, "%s", usageMsg[i]); + exit(-1); +} diff --git a/tools/tiffcmp.c b/tools/tiffcmp.c new file mode 100755 index 0000000..da8cda7 --- /dev/null +++ b/tools/tiffcmp.c @@ -0,0 +1,483 @@ +/* $Header: /home/cvsroot/libtiff/tools/tiffcmp.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include +#include +#include + +#include "tiffio.h" + +static int stopondiff = 1; +static int stoponfirsttag = 1; +static uint16 bitspersample = 1; +static uint16 samplesperpixel = 1; +static uint32 imagewidth; +static uint32 imagelength; + +static int tiffcmp(TIFF*, TIFF*); +static int cmptags(TIFF*, TIFF*); +static void ContigCompare(int, uint32, unsigned char*, unsigned char*, int); +static void PrintDiff(uint32, int, uint32, int, int); +static void SeparateCompare(int, int, uint32, unsigned char*, unsigned char*); +static void eof(const char*, uint32, int); + +static void +usage(void) +{ + fprintf(stderr, "Usage: tiffcmp [-l] [-t] [-z] file1 file2\n"); + exit(-3); +} + +int +main(int argc, char* argv[]) +{ + TIFF *tif1, *tif2; + int c, dirnum; + extern int optind; + + while ((c = getopt(argc, argv, "ltz")) != -1) + switch (c) { + case 'l': + stopondiff = 0; + break; + case 'z': + stopondiff += 100; + break; + case 't': + stoponfirsttag = 0; + break; + case '?': + usage(); + /*NOTREACHED*/ + } + if (argc - optind < 2) + usage(); + tif1 = TIFFOpen(argv[optind], "r"); + if (tif1 == NULL) + return (-1); + tif2 = TIFFOpen(argv[optind+1], "r"); + if (tif2 == NULL) + return (-2); + dirnum = 0; + while (tiffcmp(tif1, tif2)) { + if (!TIFFReadDirectory(tif1)) { + if (!TIFFReadDirectory(tif2)) + break; + printf("No more directories for %s\n", + TIFFFileName(tif1)); + return (1); + } else if (!TIFFReadDirectory(tif2)) { + printf("No more directories for %s\n", + TIFFFileName(tif2)); + return (1); + } + printf("Directory %d:\n", ++dirnum); + } + return (0); +} + +#define checkEOF(tif, row, sample) { \ + eof(TIFFFileName(tif), row, sample); \ + goto bad; \ +} + +static int CheckShortTag(TIFF*, TIFF*, int, char*); +static int CheckShort2Tag(TIFF*, TIFF*, int, char*); +static int CheckShortArrayTag(TIFF*, TIFF*, int, char*); +static int CheckLongTag(TIFF*, TIFF*, int, char*); +static int CheckFloatTag(TIFF*, TIFF*, int, char*); +static int CheckStringTag(TIFF*, TIFF*, int, char*); + +static int +tiffcmp(TIFF* tif1, TIFF* tif2) +{ + uint16 config1, config2; + tsize_t size1; + uint32 s, row; + unsigned char *buf1, *buf2; + + if (!CheckShortTag(tif1, tif2, TIFFTAG_BITSPERSAMPLE, "BitsPerSample")) + return (0); + if (!CheckShortTag(tif1, tif2, TIFFTAG_SAMPLESPERPIXEL, "SamplesPerPixel")) + return (0); + if (!CheckLongTag(tif1, tif2, TIFFTAG_IMAGEWIDTH, "ImageWidth")) + return (0); + if (!cmptags(tif1, tif2)) + return (1); + (void) TIFFGetField(tif1, TIFFTAG_BITSPERSAMPLE, &bitspersample); + (void) TIFFGetField(tif1, TIFFTAG_SAMPLESPERPIXEL, &samplesperpixel); + (void) TIFFGetField(tif1, TIFFTAG_IMAGEWIDTH, &imagewidth); + (void) TIFFGetField(tif1, TIFFTAG_IMAGELENGTH, &imagelength); + (void) TIFFGetField(tif1, TIFFTAG_PLANARCONFIG, &config1); + (void) TIFFGetField(tif2, TIFFTAG_PLANARCONFIG, &config2); + buf1 = (unsigned char *)_TIFFmalloc(size1 = TIFFScanlineSize(tif1)); + buf2 = (unsigned char *)_TIFFmalloc(TIFFScanlineSize(tif2)); + if (buf1 == NULL || buf2 == NULL) { + fprintf(stderr, "No space for scanline buffers\n"); + exit(-1); + } + if (config1 != config2 && bitspersample != 8 && samplesperpixel > 1) { + fprintf(stderr, +"Can't handle different planar configuration w/ different bits/sample\n"); + goto bad; + } +#define pack(a,b) ((a)<<8)|(b) + switch (pack(config1, config2)) { + case pack(PLANARCONFIG_SEPARATE, PLANARCONFIG_CONTIG): + for (row = 0; row < imagelength; row++) { + if (TIFFReadScanline(tif2, buf2, row, 0) < 0) + checkEOF(tif2, row, -1) + for (s = 0; s < samplesperpixel; s++) { + if (TIFFReadScanline(tif1, buf1, row, s) < 0) + checkEOF(tif1, row, s) + SeparateCompare(1, s, row, buf2, buf1); + } + } + break; + case pack(PLANARCONFIG_CONTIG, PLANARCONFIG_SEPARATE): + for (row = 0; row < imagelength; row++) { + if (TIFFReadScanline(tif1, buf1, row, 0) < 0) + checkEOF(tif1, row, -1) + for (s = 0; s < samplesperpixel; s++) { + if (TIFFReadScanline(tif2, buf2, row, s) < 0) + checkEOF(tif2, row, s) + SeparateCompare(0, s, row, buf1, buf2); + } + } + break; + case pack(PLANARCONFIG_SEPARATE, PLANARCONFIG_SEPARATE): + for (s = 0; s < samplesperpixel; s++) + for (row = 0; row < imagelength; row++) { + if (TIFFReadScanline(tif1, buf1, row, s) < 0) + checkEOF(tif1, row, s) + if (TIFFReadScanline(tif2, buf2, row, s) < 0) + checkEOF(tif2, row, s) + ContigCompare(s, row, buf1, buf2, size1); + } + break; + case pack(PLANARCONFIG_CONTIG, PLANARCONFIG_CONTIG): + for (row = 0; row < imagelength; row++) { + if (TIFFReadScanline(tif1, buf1, row, 0) < 0) + checkEOF(tif1, row, -1) + if (TIFFReadScanline(tif2, buf2, row, 0) < 0) + checkEOF(tif2, row, -1) + ContigCompare(-1, row, buf1, buf2, size1); + } + break; + } + if (buf1) _TIFFfree(buf1); + if (buf2) _TIFFfree(buf2); + return (1); +bad: + if (stopondiff) + exit(1); + if (buf1) _TIFFfree(buf1); + if (buf2) _TIFFfree(buf2); + return (0); +} + +#define CmpShortField(tag, name) \ + if (!CheckShortTag(tif1, tif2, tag, name) && stoponfirsttag) return (0) +#define CmpShortField2(tag, name) \ + if (!CheckShort2Tag(tif1, tif2, tag, name) && stoponfirsttag) return (0) +#define CmpLongField(tag, name) \ + if (!CheckLongTag(tif1, tif2, tag, name) && stoponfirsttag) return (0) +#define CmpFloatField(tag, name) \ + if (!CheckFloatTag(tif1, tif2, tag, name) && stoponfirsttag) return (0) +#define CmpStringField(tag, name) \ + if (!CheckStringTag(tif1, tif2, tag, name) && stoponfirsttag) return (0) +#define CmpShortArrayField(tag, name) \ + if (!CheckShortArrayTag(tif1, tif2, tag, name) && stoponfirsttag) return (0) + +static int +cmptags(TIFF* tif1, TIFF* tif2) +{ + CmpLongField(TIFFTAG_SUBFILETYPE, "SubFileType"); + CmpLongField(TIFFTAG_IMAGEWIDTH, "ImageWidth"); + CmpLongField(TIFFTAG_IMAGELENGTH, "ImageLength"); + CmpShortField(TIFFTAG_BITSPERSAMPLE, "BitsPerSample"); + CmpShortField(TIFFTAG_COMPRESSION, "Compression"); + CmpShortField(TIFFTAG_PREDICTOR, "Predictor"); + CmpShortField(TIFFTAG_PHOTOMETRIC, "PhotometricInterpretation"); + CmpShortField(TIFFTAG_THRESHHOLDING, "Thresholding"); + CmpShortField(TIFFTAG_FILLORDER, "FillOrder"); + CmpShortField(TIFFTAG_ORIENTATION, "Orientation"); + CmpShortField(TIFFTAG_SAMPLESPERPIXEL, "SamplesPerPixel"); + CmpShortField(TIFFTAG_MINSAMPLEVALUE, "MinSampleValue"); + CmpShortField(TIFFTAG_MAXSAMPLEVALUE, "MaxSampleValue"); + CmpFloatField(TIFFTAG_XRESOLUTION, "XResolution"); + CmpFloatField(TIFFTAG_YRESOLUTION, "YResolution"); + CmpLongField(TIFFTAG_GROUP3OPTIONS, "Group3Options"); + CmpLongField(TIFFTAG_GROUP4OPTIONS, "Group4Options"); + CmpShortField(TIFFTAG_RESOLUTIONUNIT, "ResolutionUnit"); + CmpShortField(TIFFTAG_PLANARCONFIG, "PlanarConfiguration"); + CmpLongField(TIFFTAG_ROWSPERSTRIP, "RowsPerStrip"); + CmpFloatField(TIFFTAG_XPOSITION, "XPosition"); + CmpFloatField(TIFFTAG_YPOSITION, "YPosition"); + CmpShortField(TIFFTAG_GRAYRESPONSEUNIT, "GrayResponseUnit"); + CmpShortField(TIFFTAG_COLORRESPONSEUNIT, "ColorResponseUnit"); +#ifdef notdef + { uint16 *graycurve; + CmpField(TIFFTAG_GRAYRESPONSECURVE, graycurve); + } + { uint16 *red, *green, *blue; + CmpField3(TIFFTAG_COLORRESPONSECURVE, red, green, blue); + } + { uint16 *red, *green, *blue; + CmpField3(TIFFTAG_COLORMAP, red, green, blue); + } +#endif + CmpShortField2(TIFFTAG_PAGENUMBER, "PageNumber"); + CmpStringField(TIFFTAG_ARTIST, "Artist"); + CmpStringField(TIFFTAG_IMAGEDESCRIPTION,"ImageDescription"); + CmpStringField(TIFFTAG_MAKE, "Make"); + CmpStringField(TIFFTAG_MODEL, "Model"); + CmpStringField(TIFFTAG_SOFTWARE, "Software"); + CmpStringField(TIFFTAG_DATETIME, "DateTime"); + CmpStringField(TIFFTAG_HOSTCOMPUTER, "HostComputer"); + CmpStringField(TIFFTAG_PAGENAME, "PageName"); + CmpStringField(TIFFTAG_DOCUMENTNAME, "DocumentName"); + CmpShortField(TIFFTAG_MATTEING, "Matteing"); + CmpShortArrayField(TIFFTAG_EXTRASAMPLES,"ExtraSamples"); + return (1); +} + +static void +ContigCompare(int sample, uint32 row, unsigned char* p1, unsigned char* p2, int size) +{ + register uint32 pix; + register int ppb = 8/bitspersample; + + if (memcmp(p1, p2, size) == 0) + return; + switch (bitspersample) { + case 1: case 2: case 4: case 8: { + register unsigned char *pix1 = p1, *pix2 = p2; + + for (pix = 0; pix < imagewidth; pix1++, pix2++, pix += ppb) + if (*pix1 != *pix2) + PrintDiff(row, sample, pix, + *pix1, *pix2); + break; + } + case 16: { + register uint16 *pix1 = (uint16 *)p1, *pix2 = (uint16 *)p2; + + for (pix = 0; pix < imagewidth; pix1++, pix2++, pix++) + if (*pix1 != *pix2) + PrintDiff(row, sample, pix, + *pix1, *pix2); + break; + } + } +} + +static void +PrintDiff(uint32 row, int sample, uint32 pix, int w1, int w2) +{ + register int mask1, mask2, s, bps; + + if (sample < 0) + sample = 0; + bps = bitspersample; + switch (bps) { + case 1: + case 2: + case 4: + mask1 = ~((-1)<>= bps, s -= bps, pix++) { + if ((w1 & mask2) ^ (w2 & mask2)) { + printf( + "Scanline %lu, pixel %lu, sample %d: %01x %01x\n", + (long) row, (long) pix, + sample, (w1 >> s) & mask1, + (w2 >> s) & mask1 ); + if (--stopondiff == 0) + exit(1); + } + } + break; + case 8: + printf("Scanline %lu, pixel %lu, sample %d: %02x %02x\n", + (long) row, (long) pix, sample, w1, w2); + if (--stopondiff == 0) + exit(1); + break; + case 16: + printf("Scanline %lu, pixel %lu, sample %d: %04x %04x\n", + (long) row, (long) pix, sample, w1, w2); + if (--stopondiff == 0) + exit(1); + break; + } +} + +static void +SeparateCompare(int reversed, int sample, uint32 row, unsigned char* cp1, unsigned char* p2) +{ + uint32 npixels = imagewidth; + register int pixel; + + cp1 += sample; + for (pixel = 0; npixels-- > 0; pixel++, cp1 += samplesperpixel, p2++) + if (*cp1 != *p2) { + printf("Scanline %lu, pixel %lu, sample %ld: ", + (long) row, (long) pixel, (long) sample); + if (reversed) + printf("%02x %02x\n", *p2, *cp1); + else + printf("%02x %02x\n", *cp1, *p2); + if (--stopondiff == 0) + exit(1); + } +} + +static int +checkTag(TIFF* tif1, TIFF* tif2, int tag, char* name, void* p1, void* p2) +{ + + if (TIFFGetField(tif1, tag, p1)) { + if (!TIFFGetField(tif2, tag, p2)) { + printf("%s tag appears only in %s\n", + name, TIFFFileName(tif1)); + return (0); + } + return (1); + } else if (TIFFGetField(tif2, tag, p2)) { + printf("%s tag appears only in %s\n", name, TIFFFileName(tif2)); + return (0); + } + return (-1); +} + +#define CHECK(cmp, fmt) { \ + switch (checkTag(tif1,tif2,tag,name,&v1,&v2)) { \ + case 1: if (cmp) \ + case -1: return (1); \ + printf(fmt, name, v1, v2); \ + } \ + return (0); \ +} + +static int +CheckShortTag(TIFF* tif1, TIFF* tif2, int tag, char* name) +{ + uint16 v1, v2; + CHECK(v1 == v2, "%s: %u %u\n"); +} + +static int +CheckShort2Tag(TIFF* tif1, TIFF* tif2, int tag, char* name) +{ + uint16 v11, v12, v21, v22; + + if (TIFFGetField(tif1, tag, &v11, &v12)) { + if (!TIFFGetField(tif2, tag, &v21, &v22)) { + printf("%s tag appears only in %s\n", + name, TIFFFileName(tif1)); + return (0); + } + if (v11 == v21 && v12 == v22) + return (1); + printf("%s: <%u,%u> <%u,%u>\n", name, v11, v12, v21, v22); + } else if (TIFFGetField(tif2, tag, &v21, &v22)) + printf("%s tag appears only in %s\n", name, TIFFFileName(tif2)); + else + return (1); + return (0); +} + +static int +CheckShortArrayTag(TIFF* tif1, TIFF* tif2, int tag, char* name) +{ + uint16 n1, *a1; + uint16 n2, *a2; + + if (TIFFGetField(tif1, tag, &n1, &a1)) { + if (!TIFFGetField(tif2, tag, &n2, &a2)) { + printf("%s tag appears only in %s\n", + name, TIFFFileName(tif1)); + return (0); + } + if (n1 == n2) { + char* sep; + uint16 i; + + if (memcmp(a1, a2, n1) == 0) + return (1); + printf("%s: value mismatch, <%u:", name, n1); + sep = ""; + for (i = 0; i < n1; i++) + printf("%s%u", sep, a1[i]), sep = ","; + printf("> and <%u: ", n2); + sep = ""; + for (i = 0; i < n2; i++) + printf("%s%u", sep, a2[i]), sep = ","; + printf(">\n"); + } else + printf("%s: %u items in %s, %u items in %s", name, + n1, TIFFFileName(tif1), + n2, TIFFFileName(tif2) + ); + } else if (TIFFGetField(tif2, tag, &n2, &a2)) + printf("%s tag appears only in %s\n", name, TIFFFileName(tif2)); + else + return (1); + return (0); +} + +static int +CheckLongTag(TIFF* tif1, TIFF* tif2, int tag, char* name) +{ + uint32 v1, v2; + CHECK(v1 == v2, "%s: %lu %lu\n"); +} + +static int +CheckFloatTag(TIFF* tif1, TIFF* tif2, int tag, char* name) +{ + float v1, v2; + CHECK(v1 == v2, "%s: %g %g\n"); +} + +static int +CheckStringTag(TIFF* tif1, TIFF* tif2, int tag, char* name) +{ + char *v1, *v2; + CHECK(strcmp(v1, v2) == 0, "%s: \"%s\" \"%s\"\n"); +} + +static void +eof(const char* name, uint32 row, int s) +{ + + printf("%s: EOF at scanline %lu", name, row); + if (s >= 0) + printf(", sample %d", s); + printf("\n"); +} diff --git a/tools/tiffcp.c b/tools/tiffcp.c new file mode 100755 index 0000000..c41c3a8 --- /dev/null +++ b/tools/tiffcp.c @@ -0,0 +1,1314 @@ +/* $Header: /home/cvsroot/libtiff/tools/tiffcp.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include +#include +#include + +#include +#include + +#include "tiffio.h" + +#if defined(VMS) +#define unlink delete +#endif + +#define streq(a,b) (strcmp(a,b) == 0) +#define strneq(a,b,n) (strncmp(a,b,n) == 0) + +#define TRUE 1 +#define FALSE 0 + +static int outtiled = -1; +static uint32 tilewidth; +static uint32 tilelength; + +static uint16 config; +static uint16 compression; +static uint16 predictor; +static uint16 fillorder; +static uint32 rowsperstrip; +static uint32 g3opts; +static int ignore = FALSE; /* if true, ignore read errors */ +static uint32 defg3opts = (uint32) -1; +static int quality = 75; /* JPEG quality */ +static int jpegcolormode = JPEGCOLORMODE_RGB; +static uint16 defcompression = (uint16) -1; +static uint16 defpredictor = (uint16) -1; + +static int tiffcp(TIFF*, TIFF*); +static int processCompressOptions(char*); +static void usage(void); + +int +main(int argc, char* argv[]) +{ + uint16 defconfig = (uint16) -1; + uint16 deffillorder = 0; + uint32 deftilewidth = (uint32) -1; + uint32 deftilelength = (uint32) -1; + uint32 defrowsperstrip = (uint32) -1; + uint32 diroff = 0, p_diroff = 0; + TIFF* in; + TIFF* out; + char mode[10]; + char* mp = mode; + int c; + extern int optind; + extern char* optarg; + + *mp++ = 'w'; + *mp = '\0'; + while ((c = getopt(argc, argv, "c:f:l:o:z:p:r:w:aistBLMC")) != -1) + switch (c) { + case 'a': /* append to output */ + mode[0] = 'a'; + break; + case 'c': /* compression scheme */ + if (!processCompressOptions(optarg)) + usage(); + break; + case 'f': /* fill order */ + if (streq(optarg, "lsb2msb")) + deffillorder = FILLORDER_LSB2MSB; + else if (streq(optarg, "msb2lsb")) + deffillorder = FILLORDER_MSB2LSB; + else + usage(); + break; + case 'i': /* ignore errors */ + ignore = TRUE; + break; + case 'l': /* tile length */ + outtiled = TRUE; + deftilelength = atoi(optarg); + break; + case 'o': /* initial directory offset */ + diroff = strtoul(optarg, NULL, 0); + break; + case 'z': /* initial directory offset */ + p_diroff = strtoul(optarg, NULL, 0); + break; + case 'p': /* planar configuration */ + if (streq(optarg, "separate")) + defconfig = PLANARCONFIG_SEPARATE; + else if (streq(optarg, "contig")) + defconfig = PLANARCONFIG_CONTIG; + else + usage(); + break; + case 'r': /* rows/strip */ + defrowsperstrip = atoi(optarg); + break; + case 's': /* generate stripped output */ + outtiled = FALSE; + break; + case 't': /* generate tiled output */ + outtiled = TRUE; + break; + case 'w': /* tile width */ + outtiled = TRUE; + deftilewidth = atoi(optarg); + break; + case 'B': + *mp++ = 'b'; *mp = '\0'; + break; + case 'L': + *mp++ = 'l'; *mp = '\0'; + break; + case 'M': + *mp++ = 'm'; *mp = '\0'; + break; + case 'C': + *mp++ = 'c'; *mp = '\0'; + break; + case '?': + usage(); + /*NOTREACHED*/ + } + if (argc - optind < 2) + usage(); + out = TIFFOpen(argv[argc-1], mode); + if (out == NULL) + return (-2); + mode[0] = 'r'; + for (; optind < argc-1 ; optind++) { + in = TIFFOpen(argv[optind], mode); + if (in == NULL) + return (-3); + if (diroff != 0 && !TIFFSetSubDirectory(in, diroff)) { + TIFFError(TIFFFileName(in), + "Error, setting subdirectory at %#x", diroff); + (void) TIFFClose(out); + return (1); + } + if (p_diroff != 0 && !TIFFSetDirectory(in, p_diroff)) { + TIFFError(TIFFFileName(in), + "Error, setting subdirectory at %#x", diroff); + (void) TIFFClose(out); + return (1); + } + do { + config = defconfig; + compression = defcompression; + predictor = defpredictor; + fillorder = deffillorder; + rowsperstrip = defrowsperstrip; + tilewidth = deftilewidth; + tilelength = deftilelength; + g3opts = defg3opts; + if (!tiffcp(in, out) || !TIFFWriteDirectory(out)) { + (void) TIFFClose(out); + return (1); + } + } while (TIFFReadDirectory(in) && p_diroff == 0 ); + (void) TIFFClose(in); + } + (void) TIFFClose(out); + return (0); +} + +static void +processG3Options(char* cp) +{ + if (cp = strchr(cp, ':')) { + if (defg3opts == (uint32) -1) + defg3opts = 0; + do { + cp++; + if (strneq(cp, "1d", 2)) + defg3opts &= ~GROUP3OPT_2DENCODING; + else if (strneq(cp, "2d", 2)) + defg3opts |= GROUP3OPT_2DENCODING; + else if (strneq(cp, "fill", 4)) + defg3opts |= GROUP3OPT_FILLBITS; + else + usage(); + } while (cp = strchr(cp, ':')); + } +} + +static int +processCompressOptions(char* opt) +{ + if (streq(opt, "none")) { + defcompression = COMPRESSION_NONE; + } else if (streq(opt, "packbits")) { + defcompression = COMPRESSION_PACKBITS; + } else if (strneq(opt, "jpeg", 4)) { + char* cp = strchr(opt, ':'); + if (cp && isdigit(cp[1])) + quality = atoi(cp+1); + if (cp && strchr(cp, 'r')) + jpegcolormode = JPEGCOLORMODE_RAW; + defcompression = COMPRESSION_JPEG; + } else if (strneq(opt, "g3", 2)) { + processG3Options(opt); + defcompression = COMPRESSION_CCITTFAX3; + } else if (streq(opt, "g4")) { + defcompression = COMPRESSION_CCITTFAX4; + } else if (strneq(opt, "lzw", 3)) { + char* cp = strchr(opt, ':'); + if (cp) + defpredictor = atoi(cp+1); + defcompression = COMPRESSION_LZW; + } else if (strneq(opt, "zip", 3)) { + char* cp = strchr(opt, ':'); + if (cp) + defpredictor = atoi(cp+1); + defcompression = COMPRESSION_DEFLATE; + } else + return (0); + return (1); +} + +char* stuff[] = { +"usage: tiffcp [options] input... output", +"where options are:", +" -a append to output instead of overwriting", +" -o offset set initial directory offset", +" -p contig pack samples contiguously (e.g. RGBRGB...)", +" -p separate store samples separately (e.g. RRR...GGG...BBB...)", +" -s write output in strips", +" -t write output in tiles", +" -i ignore read errors", +"", +" -r # make each strip have no more than # rows", +" -w # set output tile width (pixels)", +" -l # set output tile length (pixels)", +"", +" -f lsb2msb force lsb-to-msb FillOrder for output", +" -f msb2lsb force msb-to-lsb FillOrder for output", +"", +" -c lzw[:opts] compress output with Lempel-Ziv & Welch encoding", +" (no longer supported by default due to Unisys patent enforcement)", +" -c zip[:opts] compress output with deflate encoding", +" -c jpeg[:opts]compress output with JPEG encoding", +" -c packbits compress output with packbits encoding", +" -c g3[:opts] compress output with CCITT Group 3 encoding", +" -c g4 compress output with CCITT Group 4 encoding", +" -c none use no compression algorithm on output", +"", +"Group 3 options:", +" 1d use default CCITT Group 3 1D-encoding", +" 2d use optional CCITT Group 3 2D-encoding", +" fill byte-align EOL codes", +"For example, -c g3:2d:fill to get G3-2D-encoded data with byte-aligned EOLs", +"", +"JPEG options:", +" # set compression quality level (0-100, default 75)", +" r output color image as RGB rather than YCbCr", +"For example, -c jpeg:r:50 to get JPEG-encoded RGB data with 50% comp. quality", +"", +"LZW and deflate options:", +" # set predictor value", +"For example, -c lzw:2 to get LZW-encoded data with horizontal differencing", +NULL +}; + +static void +usage(void) +{ + char buf[BUFSIZ]; + int i; + + setbuf(stderr, buf); + for (i = 0; stuff[i] != NULL; i++) + fprintf(stderr, "%s\n", stuff[i]); + exit(-1); +} + +static void +CheckAndCorrectColormap(TIFF* tif, int n, uint16* r, uint16* g, uint16* b) +{ + int i; + + for (i = 0; i < n; i++) + if (r[i] >= 256 || g[i] >= 256 || b[i] >= 256) + return; + TIFFWarning(TIFFFileName(tif), "Scaling 8-bit colormap"); +#define CVT(x) (((x) * ((1L<<16)-1)) / 255) + for (i = 0; i < n; i++) { + r[i] = CVT(r[i]); + g[i] = CVT(g[i]); + b[i] = CVT(b[i]); + } +#undef CVT +} + +#define CopyField(tag, v) \ + if (TIFFGetField(in, tag, &v)) TIFFSetField(out, tag, v) +#define CopyField2(tag, v1, v2) \ + if (TIFFGetField(in, tag, &v1, &v2)) TIFFSetField(out, tag, v1, v2) +#define CopyField3(tag, v1, v2, v3) \ + if (TIFFGetField(in, tag, &v1, &v2, &v3)) TIFFSetField(out, tag, v1, v2, v3) +#define CopyField4(tag, v1, v2, v3, v4) \ + if (TIFFGetField(in, tag, &v1, &v2, &v3, &v4)) TIFFSetField(out, tag, v1, v2, v3, v4) + +static void +cpTag(TIFF* in, TIFF* out, uint16 tag, uint16 count, TIFFDataType type) +{ + switch (type) { + case TIFF_SHORT: + if (count == 1) { + uint16 shortv; + CopyField(tag, shortv); + } else if (count == 2) { + uint16 shortv1, shortv2; + CopyField2(tag, shortv1, shortv2); + } else if (count == 4) { + uint16 *tr, *tg, *tb, *ta; + CopyField4(tag, tr, tg, tb, ta); + } else if (count == (uint16) -1) { + uint16 shortv1; + uint16* shortav; + CopyField2(tag, shortv1, shortav); + } + break; + case TIFF_LONG: + { uint32 longv; + CopyField(tag, longv); + } + break; + case TIFF_RATIONAL: + if (count == 1) { + float floatv; + CopyField(tag, floatv); + } else if (count == (uint16) -1) { + float* floatav; + CopyField(tag, floatav); + } + break; + case TIFF_ASCII: + { char* stringv; + CopyField(tag, stringv); + } + break; + case TIFF_DOUBLE: + if (count == 1) { + double doublev; + CopyField(tag, doublev); + } else if (count == (uint16) -1) { + double* doubleav; + CopyField(tag, doubleav); + } + break; + } +} + +static struct cpTag { + uint16 tag; + uint16 count; + TIFFDataType type; +} tags[] = { + { TIFFTAG_SUBFILETYPE, 1, TIFF_LONG }, + { TIFFTAG_THRESHHOLDING, 1, TIFF_SHORT }, + { TIFFTAG_DOCUMENTNAME, 1, TIFF_ASCII }, + { TIFFTAG_IMAGEDESCRIPTION, 1, TIFF_ASCII }, + { TIFFTAG_MAKE, 1, TIFF_ASCII }, + { TIFFTAG_MODEL, 1, TIFF_ASCII }, + { TIFFTAG_ORIENTATION, 1, TIFF_SHORT }, + { TIFFTAG_MINSAMPLEVALUE, 1, TIFF_SHORT }, + { TIFFTAG_MAXSAMPLEVALUE, 1, TIFF_SHORT }, + { TIFFTAG_XRESOLUTION, 1, TIFF_RATIONAL }, + { TIFFTAG_YRESOLUTION, 1, TIFF_RATIONAL }, + { TIFFTAG_PAGENAME, 1, TIFF_ASCII }, + { TIFFTAG_XPOSITION, 1, TIFF_RATIONAL }, + { TIFFTAG_YPOSITION, 1, TIFF_RATIONAL }, + { TIFFTAG_RESOLUTIONUNIT, 1, TIFF_SHORT }, + { TIFFTAG_PAGENUMBER, 2, TIFF_SHORT }, + { TIFFTAG_SOFTWARE, 1, TIFF_ASCII }, + { TIFFTAG_DATETIME, 1, TIFF_ASCII }, + { TIFFTAG_ARTIST, 1, TIFF_ASCII }, + { TIFFTAG_HOSTCOMPUTER, 1, TIFF_ASCII }, + { TIFFTAG_WHITEPOINT, 1, TIFF_RATIONAL }, + { TIFFTAG_PRIMARYCHROMATICITIES,(uint16) -1,TIFF_RATIONAL }, + { TIFFTAG_HALFTONEHINTS, 2, TIFF_SHORT }, + { TIFFTAG_INKSET, 1, TIFF_SHORT }, + { TIFFTAG_INKNAMES, 1, TIFF_ASCII }, + { TIFFTAG_NUMBEROFINKS, 1, TIFF_SHORT }, + { TIFFTAG_DOTRANGE, 2, TIFF_SHORT }, + { TIFFTAG_TARGETPRINTER, 1, TIFF_ASCII }, + { TIFFTAG_SAMPLEFORMAT, 1, TIFF_SHORT }, + { TIFFTAG_YCBCRCOEFFICIENTS, (uint16) -1,TIFF_RATIONAL }, + { TIFFTAG_YCBCRSUBSAMPLING, 2, TIFF_SHORT }, + { TIFFTAG_YCBCRPOSITIONING, 1, TIFF_SHORT }, + { TIFFTAG_REFERENCEBLACKWHITE, (uint16) -1,TIFF_RATIONAL }, + { TIFFTAG_EXTRASAMPLES, (uint16) -1, TIFF_SHORT }, + { TIFFTAG_SMINSAMPLEVALUE, 1, TIFF_DOUBLE }, + { TIFFTAG_SMAXSAMPLEVALUE, 1, TIFF_DOUBLE }, + { TIFFTAG_STONITS, 1, TIFF_DOUBLE }, +}; +#define NTAGS (sizeof (tags) / sizeof (tags[0])) + +#define CopyTag(tag, count, type) cpTag(in, out, tag, count, type) + +typedef int (*copyFunc) + (TIFF* in, TIFF* out, uint32 l, uint32 w, uint16 samplesperpixel); +static copyFunc pickCopyFunc(TIFF*, TIFF*, uint16, uint16); + +static int +tiffcp(TIFF* in, TIFF* out) +{ + uint16 bitspersample, samplesperpixel; + copyFunc cf; + uint32 w, l; + struct cpTag* p; + + CopyField(TIFFTAG_IMAGEWIDTH, w); + CopyField(TIFFTAG_IMAGELENGTH, l); + CopyField(TIFFTAG_BITSPERSAMPLE, bitspersample); + CopyField(TIFFTAG_SAMPLESPERPIXEL, samplesperpixel); + if (compression != (uint16)-1) + TIFFSetField(out, TIFFTAG_COMPRESSION, compression); + else + CopyField(TIFFTAG_COMPRESSION, compression); + if (compression == COMPRESSION_JPEG && jpegcolormode == JPEGCOLORMODE_RGB) + TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_YCBCR); + else if (compression == COMPRESSION_SGILOG || compression == COMPRESSION_SGILOG24) + TIFFSetField(out, TIFFTAG_PHOTOMETRIC, + samplesperpixel == 1 ? + PHOTOMETRIC_LOGL : PHOTOMETRIC_LOGLUV); + else + CopyTag(TIFFTAG_PHOTOMETRIC, 1, TIFF_SHORT); + if (fillorder != 0) + TIFFSetField(out, TIFFTAG_FILLORDER, fillorder); + else + CopyTag(TIFFTAG_FILLORDER, 1, TIFF_SHORT); + /* + * Choose tiles/strip for the output image according to + * the command line arguments (-tiles, -strips) and the + * structure of the input image. + */ + if (outtiled == -1) + outtiled = TIFFIsTiled(in); + if (outtiled) { + /* + * Setup output file's tile width&height. If either + * is not specified, use either the value from the + * input image or, if nothing is defined, use the + * library default. + */ + if (tilewidth == (uint32) -1) + TIFFGetField(in, TIFFTAG_TILEWIDTH, &tilewidth); + if (tilelength == (uint32) -1) + TIFFGetField(in, TIFFTAG_TILELENGTH, &tilelength); + TIFFDefaultTileSize(out, &tilewidth, &tilelength); + TIFFSetField(out, TIFFTAG_TILEWIDTH, tilewidth); + TIFFSetField(out, TIFFTAG_TILELENGTH, tilelength); + } else { + /* + * RowsPerStrip is left unspecified: use either the + * value from the input image or, if nothing is defined, + * use the library default. + */ + if (rowsperstrip == (uint32) -1) + TIFFGetField(in, TIFFTAG_ROWSPERSTRIP, &rowsperstrip); + rowsperstrip = TIFFDefaultStripSize(out, rowsperstrip); + TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, rowsperstrip); + } + if (config != (uint16) -1) + TIFFSetField(out, TIFFTAG_PLANARCONFIG, config); + else + CopyField(TIFFTAG_PLANARCONFIG, config); + if (samplesperpixel <= 4) + CopyTag(TIFFTAG_TRANSFERFUNCTION, 4, TIFF_SHORT); + CopyTag(TIFFTAG_COLORMAP, 4, TIFF_SHORT); +/* SMinSampleValue & SMaxSampleValue */ + switch (compression) { + case COMPRESSION_JPEG: + TIFFSetField(out, TIFFTAG_JPEGQUALITY, quality); + TIFFSetField(out, TIFFTAG_JPEGCOLORMODE, jpegcolormode); + break; + case COMPRESSION_LZW: + case COMPRESSION_DEFLATE: + if (predictor != (uint16)-1) + TIFFSetField(out, TIFFTAG_PREDICTOR, predictor); + else + CopyField(TIFFTAG_PREDICTOR, predictor); + break; + case COMPRESSION_CCITTFAX3: + case COMPRESSION_CCITTFAX4: + if (compression == COMPRESSION_CCITTFAX3) { + if (g3opts != (uint32) -1) + TIFFSetField(out, TIFFTAG_GROUP3OPTIONS, + g3opts); + else + CopyField(TIFFTAG_GROUP3OPTIONS, g3opts); + } else + CopyTag(TIFFTAG_GROUP4OPTIONS, 1, TIFF_LONG); + CopyTag(TIFFTAG_BADFAXLINES, 1, TIFF_LONG); + CopyTag(TIFFTAG_CLEANFAXDATA, 1, TIFF_LONG); + CopyTag(TIFFTAG_CONSECUTIVEBADFAXLINES, 1, TIFF_LONG); + CopyTag(TIFFTAG_FAXRECVPARAMS, 1, TIFF_LONG); + CopyTag(TIFFTAG_FAXRECVTIME, 1, TIFF_LONG); + CopyTag(TIFFTAG_FAXSUBADDRESS, 1, TIFF_ASCII); + break; + } + { uint32 len32; + void** data; + if (TIFFGetField(in, TIFFTAG_ICCPROFILE, &len32, &data)) + TIFFSetField(out, TIFFTAG_ICCPROFILE, len32, data); + } + for (p = tags; p < &tags[NTAGS]; p++) + CopyTag(p->tag, p->count, p->type); + + cf = pickCopyFunc(in, out, bitspersample, samplesperpixel); + return (cf ? (*cf)(in, out, l, w, samplesperpixel) : FALSE); +} + +/* + * Copy Functions. + */ +#define DECLAREcpFunc(x) \ +static int x(TIFF* in, TIFF* out, \ + uint32 imagelength, uint32 imagewidth, tsample_t spp) + +#define DECLAREreadFunc(x) \ +static void x(TIFF* in, \ + uint8* buf, uint32 imagelength, uint32 imagewidth, tsample_t spp) +typedef void (*readFunc)(TIFF*, uint8*, uint32, uint32, tsample_t); + +#define DECLAREwriteFunc(x) \ +static int x(TIFF* out, \ + uint8* buf, uint32 imagelength, uint32 imagewidth, tsample_t spp) +typedef int (*writeFunc)(TIFF*, uint8*, uint32, uint32, tsample_t); + +/* + * Contig -> contig by scanline for rows/strip change. + */ +DECLAREcpFunc(cpContig2ContigByRow) +{ + tdata_t buf = _TIFFmalloc(TIFFScanlineSize(in)); + uint32 row; + + (void) imagewidth; (void) spp; + for (row = 0; row < imagelength; row++) { + if (TIFFReadScanline(in, buf, row, 0) < 0 && !ignore) + goto done; + if (TIFFWriteScanline(out, buf, row, 0) < 0) + goto bad; + } +done: + _TIFFfree(buf); + return (TRUE); +bad: + _TIFFfree(buf); + return (FALSE); +} + +/* + * Strip -> strip for change in encoding. + */ +DECLAREcpFunc(cpDecodedStrips) +{ + tsize_t stripsize = TIFFStripSize(in); + tdata_t buf = _TIFFmalloc(stripsize); + + (void) imagewidth; (void) spp; + if (buf) { + tstrip_t s, ns = TIFFNumberOfStrips(in); + uint32 row = 0; + for (s = 0; s < ns; s++) { + tsize_t cc = (row + rowsperstrip > imagelength) ? + TIFFVStripSize(in, imagelength - row) : stripsize; + if (TIFFReadEncodedStrip(in, s, buf, cc) < 0 && !ignore) + break; + if (TIFFWriteEncodedStrip(out, s, buf, cc) < 0) { + _TIFFfree(buf); + return (FALSE); + } + row += rowsperstrip; + } + _TIFFfree(buf); + return (TRUE); + } + return (FALSE); +} + +/* + * Separate -> separate by row for rows/strip change. + */ +DECLAREcpFunc(cpSeparate2SeparateByRow) +{ + tdata_t buf = _TIFFmalloc(TIFFScanlineSize(in)); + uint32 row; + tsample_t s; + + (void) imagewidth; + for (s = 0; s < spp; s++) { + for (row = 0; row < imagelength; row++) { + if (TIFFReadScanline(in, buf, row, s) < 0 && !ignore) + goto done; + if (TIFFWriteScanline(out, buf, row, s) < 0) + goto bad; + } + } +done: + _TIFFfree(buf); + return (TRUE); +bad: + _TIFFfree(buf); + return (FALSE); +} + +/* + * Contig -> separate by row. + */ +DECLAREcpFunc(cpContig2SeparateByRow) +{ + tdata_t inbuf = _TIFFmalloc(TIFFScanlineSize(in)); + tdata_t outbuf = _TIFFmalloc(TIFFScanlineSize(out)); + register uint8 *inp, *outp; + register uint32 n; + uint32 row; + tsample_t s; + + /* unpack channels */ + for (s = 0; s < spp; s++) { + for (row = 0; row < imagelength; row++) { + if (TIFFReadScanline(in, inbuf, row, 0) < 0 && !ignore) + goto done; + inp = ((uint8*)inbuf) + s; + outp = (uint8*)outbuf; + for (n = imagewidth; n-- > 0;) { + *outp++ = *inp; + inp += spp; + } + if (TIFFWriteScanline(out, outbuf, row, s) < 0) + goto bad; + } + } +done: + if (inbuf) _TIFFfree(inbuf); + if (outbuf) _TIFFfree(outbuf); + return (TRUE); +bad: + if (inbuf) _TIFFfree(inbuf); + if (outbuf) _TIFFfree(outbuf); + return (FALSE); +} + +/* + * Separate -> contig by row. + */ +DECLAREcpFunc(cpSeparate2ContigByRow) +{ + tdata_t inbuf = _TIFFmalloc(TIFFScanlineSize(in)); + tdata_t outbuf = _TIFFmalloc(TIFFScanlineSize(out)); + register uint8 *inp, *outp; + register uint32 n; + uint32 row; + tsample_t s; + + for (row = 0; row < imagelength; row++) { + /* merge channels */ + for (s = 0; s < spp; s++) { + if (TIFFReadScanline(in, inbuf, row, s) < 0 && !ignore) + goto done; + inp = (uint8*)inbuf; + outp = ((uint8*)outbuf) + s; + for (n = imagewidth; n-- > 0;) { + *outp = *inp++; + outp += spp; + } + } + if (TIFFWriteScanline(out, outbuf, row, 0) < 0) + goto bad; + } +done: + if (inbuf) _TIFFfree(inbuf); + if (outbuf) _TIFFfree(outbuf); + return (TRUE); +bad: + if (inbuf) _TIFFfree(inbuf); + if (outbuf) _TIFFfree(outbuf); + return (FALSE); +} + +static void +cpStripToTile(uint8* out, uint8* in, + uint32 rows, uint32 cols, int outskew, int inskew) +{ + while (rows-- > 0) { + uint32 j = cols; + while (j-- > 0) + *out++ = *in++; + out += outskew; + in += inskew; + } +} + +static void +cpContigBufToSeparateBuf(uint8* out, uint8* in, + uint32 rows, uint32 cols, int outskew, int inskew, tsample_t spp, + int bytes_per_sample ) +{ + while (rows-- > 0) { + uint32 j = cols; + while (j-- > 0) + { + int n = bytes_per_sample; + + while( n-- ) { + *out++ = *in++; + } + in += (spp-1) * bytes_per_sample; + } + out += outskew; + in += inskew; + } +} + +static void +cpSeparateBufToContigBuf(uint8* out, uint8* in, + uint32 rows, uint32 cols, int outskew, int inskew, tsample_t spp, + int bytes_per_sample) +{ + while (rows-- > 0) { + uint32 j = cols; + while (j-- > 0) { + int n = bytes_per_sample; + + while( n-- ) { + *out++ = *in++; + } + out += (spp-1)*bytes_per_sample; + } + out += outskew; + in += inskew; + } +} + +static int +cpImage(TIFF* in, TIFF* out, readFunc fin, writeFunc fout, + uint32 imagelength, uint32 imagewidth, tsample_t spp) +{ + int status = FALSE; + tdata_t buf = _TIFFmalloc(TIFFRasterScanlineSize(in) * imagelength); + + if (buf) { + (*fin)(in, (uint8*)buf, imagelength, imagewidth, spp); + status = (fout)(out, (uint8*)buf, imagelength, imagewidth, spp); + _TIFFfree(buf); + } + return (status); +} + +DECLAREreadFunc(readContigStripsIntoBuffer) +{ + tsize_t scanlinesize = TIFFScanlineSize(in); + uint8* bufp = buf; + uint32 row; + + (void) imagewidth; (void) spp; + for (row = 0; row < imagelength; row++) { + if (TIFFReadScanline(in, (tdata_t) bufp, row, 0) < 0 && !ignore) + break; + bufp += scanlinesize; + } +} + +DECLAREreadFunc(readSeparateStripsIntoBuffer) +{ + tsize_t scanlinesize = TIFFScanlineSize(in); + tdata_t scanline = _TIFFmalloc(scanlinesize); + + (void) imagewidth; + if (scanline) { + uint8* bufp = (uint8*) buf; + uint32 row; + tsample_t s; + + for (row = 0; row < imagelength; row++) { + /* merge channels */ + for (s = 0; s < spp; s++) { + uint8* bp = bufp + s; + tsize_t n = scanlinesize; + uint8* sbuf = scanline; + + if (TIFFReadScanline(in, scanline, row, s) < 0 && !ignore) + goto done; + while (n-- > 0) + *bp = *sbuf++, bp += spp; + } + bufp += scanlinesize * spp; + } + +done: + _TIFFfree(scanline); + } +} + +DECLAREreadFunc(readContigTilesIntoBuffer) +{ + tdata_t tilebuf = _TIFFmalloc(TIFFTileSize(in)); + uint32 imagew = TIFFScanlineSize(in); + uint32 tilew = TIFFTileRowSize(in); + int iskew = imagew - tilew; + uint8* bufp = (uint8*) buf; + uint32 tw, tl; + uint32 row; + + (void) spp; + if (tilebuf == 0) + return; + (void) TIFFGetField(in, TIFFTAG_TILEWIDTH, &tw); + (void) TIFFGetField(in, TIFFTAG_TILELENGTH, &tl); + + for (row = 0; row < imagelength; row += tl) { + uint32 nrow = (row+tl > imagelength) ? imagelength-row : tl; + uint32 colb = 0; + uint32 col; + + for (col = 0; col < imagewidth; col += tw) { + if (TIFFReadTile(in, tilebuf, col, row, 0, 0) < 0 && + !ignore) + goto done; + if (colb + tilew > imagew) { + uint32 width = imagew - colb; + uint32 oskew = tilew - width; + cpStripToTile(bufp + colb, + tilebuf, nrow, width, + oskew + iskew, oskew ); + } else + cpStripToTile(bufp + colb, + tilebuf, nrow, tilew, + iskew, 0); + colb += tilew; + } + bufp += imagew * nrow; + } +done: + _TIFFfree(tilebuf); +} + +DECLAREreadFunc(readSeparateTilesIntoBuffer) +{ + uint32 imagew = TIFFRasterScanlineSize(in); + uint32 tilew = TIFFTileRowSize(in); + int iskew = imagew - tilew*spp; + tdata_t tilebuf = _TIFFmalloc(TIFFTileSize(in)); + uint8* bufp = (uint8*) buf; + uint32 tw, tl; + uint32 row; + uint16 bps, bytes_per_sample; + + if (tilebuf == 0) + return; + (void) TIFFGetField(in, TIFFTAG_TILEWIDTH, &tw); + (void) TIFFGetField(in, TIFFTAG_TILELENGTH, &tl); + (void) TIFFGetField(in, TIFFTAG_BITSPERSAMPLE, &bps); + assert( bps % 8 == 0 ); + bytes_per_sample = bps/8; + + for (row = 0; row < imagelength; row += tl) { + uint32 nrow = (row+tl > imagelength) ? imagelength-row : tl; + uint32 colb = 0; + uint32 col; + + for (col = 0; col < imagewidth; col += tw) { + tsample_t s; + + for (s = 0; s < spp; s++) { + if (TIFFReadTile(in, tilebuf, col, row, 0, s) < 0 && !ignore) + goto done; + /* + * Tile is clipped horizontally. Calculate + * visible portion and skewing factors. + */ + if (colb + tilew*spp > imagew) { + uint32 width = imagew - colb; + int oskew = tilew*spp - width; + cpSeparateBufToContigBuf( + bufp+colb+s*bytes_per_sample, + tilebuf, nrow, + width/(spp*bytes_per_sample), + oskew + iskew, + oskew/spp, spp, + bytes_per_sample); + } else + cpSeparateBufToContigBuf( + bufp+colb+s*bytes_per_sample, + tilebuf, nrow, tw, + iskew, 0, spp, + bytes_per_sample); + } + colb += tilew*spp; + } + bufp += imagew * nrow; + } +done: + _TIFFfree(tilebuf); +} + +DECLAREwriteFunc(writeBufferToContigStrips) +{ + uint32 row, rowsperstrip; + tstrip_t strip = 0; + + (void) imagewidth; (void) spp; + (void) TIFFGetFieldDefaulted(out, TIFFTAG_ROWSPERSTRIP, &rowsperstrip); + for (row = 0; row < imagelength; row += rowsperstrip) { + uint32 nrows = (row+rowsperstrip > imagelength) ? + imagelength-row : rowsperstrip; + tsize_t stripsize = TIFFVStripSize(out, nrows); + if (TIFFWriteEncodedStrip(out, strip++, buf, stripsize) < 0) + return (FALSE); + buf += stripsize; + } + return (TRUE); +} + +DECLAREwriteFunc(writeBufferToSeparateStrips) +{ + uint32 rowsize = imagewidth * spp; + uint32 rowsperstrip; + tdata_t obuf = _TIFFmalloc(TIFFStripSize(out)); + tstrip_t strip = 0; + tsample_t s; + + if (obuf == NULL) + return (0); + (void) TIFFGetFieldDefaulted(out, TIFFTAG_ROWSPERSTRIP, &rowsperstrip); + for (s = 0; s < spp; s++) { + uint32 row; + for (row = 0; row < imagelength; row += rowsperstrip) { + uint32 nrows = (row+rowsperstrip > imagelength) ? + imagelength-row : rowsperstrip; + tsize_t stripsize = TIFFVStripSize(out, nrows); + + cpContigBufToSeparateBuf( + obuf, (uint8*) buf + row*rowsize + s, + nrows, imagewidth, 0, 0, spp, 1); + if (TIFFWriteEncodedStrip(out, strip++, obuf, stripsize) < 0) { + _TIFFfree(obuf); + return (FALSE); + } + } + } + _TIFFfree(obuf); + return (TRUE); + +} + +DECLAREwriteFunc(writeBufferToContigTiles) +{ + uint32 imagew = TIFFScanlineSize(out); + uint32 tilew = TIFFTileRowSize(out); + int iskew = imagew - tilew; + tdata_t obuf = _TIFFmalloc(TIFFTileSize(out)); + uint8* bufp = (uint8*) buf; + uint32 tl, tw; + uint32 row; + + (void) spp; + if (obuf == NULL) + return (FALSE); + (void) TIFFGetField(out, TIFFTAG_TILELENGTH, &tl); + (void) TIFFGetField(out, TIFFTAG_TILEWIDTH, &tw); + for (row = 0; row < imagelength; row += tilelength) { + uint32 nrow = (row+tl > imagelength) ? imagelength-row : tl; + uint32 colb = 0; + uint32 col; + + for (col = 0; col < imagewidth; col += tw) { + /* + * Tile is clipped horizontally. Calculate + * visible portion and skewing factors. + */ + if (colb + tilew > imagew) { + uint32 width = imagew - colb; + int oskew = tilew - width; + cpStripToTile(obuf, bufp + colb, nrow, width, + oskew, oskew + iskew); + } else + cpStripToTile(obuf, bufp + colb, nrow, tilew, + 0, iskew); + if (TIFFWriteTile(out, obuf, col, row, 0, 0) < 0) { + _TIFFfree(obuf); + return (FALSE); + } + colb += tilew; + } + bufp += nrow * imagew; + } + _TIFFfree(obuf); + return (TRUE); +} + +DECLAREwriteFunc(writeBufferToSeparateTiles) +{ + uint32 imagew = TIFFScanlineSize(out); + tsize_t tilew = TIFFTileRowSize(out); + uint32 iimagew = TIFFRasterScanlineSize(out); + int iskew = iimagew - tilew*spp; + tdata_t obuf = _TIFFmalloc(TIFFTileSize(out)); + uint8* bufp = (uint8*) buf; + uint32 tl, tw; + uint32 row; + uint16 bps, bytes_per_sample; + + if (obuf == NULL) + return (FALSE); + (void) TIFFGetField(out, TIFFTAG_TILELENGTH, &tl); + (void) TIFFGetField(out, TIFFTAG_TILEWIDTH, &tw); + (void) TIFFGetField(out, TIFFTAG_BITSPERSAMPLE, &bps); + assert( bps % 8 == 0 ); + bytes_per_sample = bps/8; + + for (row = 0; row < imagelength; row += tl) { + uint32 nrow = (row+tl > imagelength) ? imagelength-row : tl; + uint32 colb = 0; + uint32 col; + + for (col = 0; col < imagewidth; col += tw) { + tsample_t s; + for (s = 0; s < spp; s++) { + /* + * Tile is clipped horizontally. Calculate + * visible portion and skewing factors. + */ + if (colb + tilew > imagew) { + uint32 width = (imagew - colb); + int oskew = tilew - width; + + cpContigBufToSeparateBuf(obuf, + bufp + (colb*spp) + s, + nrow, width/bytes_per_sample, + oskew, (oskew*spp)+iskew, spp, + bytes_per_sample); + } else + cpContigBufToSeparateBuf(obuf, + bufp + (colb*spp) + s, + nrow, tilewidth, + 0, iskew, spp, + bytes_per_sample); + if (TIFFWriteTile(out, obuf, col, row, 0, s) < 0) { + _TIFFfree(obuf); + return (FALSE); + } + } + colb += tilew; + } + bufp += nrow * iimagew; + } + _TIFFfree(obuf); + return (TRUE); +} + +/* + * Contig strips -> contig tiles. + */ +DECLAREcpFunc(cpContigStrips2ContigTiles) +{ + return cpImage(in, out, + readContigStripsIntoBuffer, + writeBufferToContigTiles, + imagelength, imagewidth, spp); +} + +/* + * Contig strips -> separate tiles. + */ +DECLAREcpFunc(cpContigStrips2SeparateTiles) +{ + return cpImage(in, out, + readContigStripsIntoBuffer, + writeBufferToSeparateTiles, + imagelength, imagewidth, spp); +} + +/* + * Separate strips -> contig tiles. + */ +DECLAREcpFunc(cpSeparateStrips2ContigTiles) +{ + return cpImage(in, out, + readSeparateStripsIntoBuffer, + writeBufferToContigTiles, + imagelength, imagewidth, spp); +} + +/* + * Separate strips -> separate tiles. + */ +DECLAREcpFunc(cpSeparateStrips2SeparateTiles) +{ + return cpImage(in, out, + readSeparateStripsIntoBuffer, + writeBufferToSeparateTiles, + imagelength, imagewidth, spp); +} + +/* + * Contig strips -> contig tiles. + */ +DECLAREcpFunc(cpContigTiles2ContigTiles) +{ + return cpImage(in, out, + readContigTilesIntoBuffer, + writeBufferToContigTiles, + imagelength, imagewidth, spp); +} + +/* + * Contig tiles -> separate tiles. + */ +DECLAREcpFunc(cpContigTiles2SeparateTiles) +{ + return cpImage(in, out, + readContigTilesIntoBuffer, + writeBufferToSeparateTiles, + imagelength, imagewidth, spp); +} + +/* + * Separate tiles -> contig tiles. + */ +DECLAREcpFunc(cpSeparateTiles2ContigTiles) +{ + return cpImage(in, out, + readSeparateTilesIntoBuffer, + writeBufferToContigTiles, + imagelength, imagewidth, spp); +} + +/* + * Separate tiles -> separate tiles (tile dimension change). + */ +DECLAREcpFunc(cpSeparateTiles2SeparateTiles) +{ + return cpImage(in, out, + readSeparateTilesIntoBuffer, + writeBufferToSeparateTiles, + imagelength, imagewidth, spp); +} + +/* + * Contig tiles -> contig tiles (tile dimension change). + */ +DECLAREcpFunc(cpContigTiles2ContigStrips) +{ + return cpImage(in, out, + readContigTilesIntoBuffer, + writeBufferToContigStrips, + imagelength, imagewidth, spp); +} + +/* + * Contig tiles -> separate strips. + */ +DECLAREcpFunc(cpContigTiles2SeparateStrips) +{ + return cpImage(in, out, + readContigTilesIntoBuffer, + writeBufferToSeparateStrips, + imagelength, imagewidth, spp); +} + +/* + * Separate tiles -> contig strips. + */ +DECLAREcpFunc(cpSeparateTiles2ContigStrips) +{ + return cpImage(in, out, + readSeparateTilesIntoBuffer, + writeBufferToContigStrips, + imagelength, imagewidth, spp); +} + +/* + * Separate tiles -> separate strips. + */ +DECLAREcpFunc(cpSeparateTiles2SeparateStrips) +{ + return cpImage(in, out, + readSeparateTilesIntoBuffer, + writeBufferToSeparateStrips, + imagelength, imagewidth, spp); +} + +/* + * Select the appropriate copy function to use. + */ +static copyFunc +pickCopyFunc(TIFF* in, TIFF* out, uint16 bitspersample, uint16 samplesperpixel) +{ + uint16 shortv; + uint32 w, l, tw, tl; + int bychunk; + + (void) TIFFGetField(in, TIFFTAG_PLANARCONFIG, &shortv); + if (shortv != config && bitspersample != 8 && samplesperpixel > 1) { + fprintf(stderr, +"%s: Can not handle different planar configuration w/ bits/sample != 8\n", + TIFFFileName(in)); + return (NULL); + } + TIFFGetField(in, TIFFTAG_IMAGEWIDTH, &w); + TIFFGetField(in, TIFFTAG_IMAGELENGTH, &l); + if (TIFFIsTiled(out)) { + if (!TIFFGetField(in, TIFFTAG_TILEWIDTH, &tw)) + tw = w; + if (!TIFFGetField(in, TIFFTAG_TILELENGTH, &tl)) + tl = l; + bychunk = (tw == tilewidth && tl == tilelength); + } else if (TIFFIsTiled(in)) { + TIFFGetField(in, TIFFTAG_TILEWIDTH, &tw); + TIFFGetField(in, TIFFTAG_TILELENGTH, &tl); + bychunk = (tw == w && tl == rowsperstrip); + } else { + uint32 irps = (uint32) -1L; + TIFFGetField(in, TIFFTAG_ROWSPERSTRIP, &irps); + bychunk = (rowsperstrip == irps); + } +#define T 1 +#define F 0 +#define pack(a,b,c,d,e) ((long)(((a)<<11)|((b)<<3)|((c)<<2)|((d)<<1)|(e))) + switch(pack(shortv,config,TIFFIsTiled(in),TIFFIsTiled(out),bychunk)) { +/* Strips -> Tiles */ + case pack(PLANARCONFIG_CONTIG, PLANARCONFIG_CONTIG, F,T,F): + case pack(PLANARCONFIG_CONTIG, PLANARCONFIG_CONTIG, F,T,T): + return cpContigStrips2ContigTiles; + case pack(PLANARCONFIG_CONTIG, PLANARCONFIG_SEPARATE, F,T,F): + case pack(PLANARCONFIG_CONTIG, PLANARCONFIG_SEPARATE, F,T,T): + return cpContigStrips2SeparateTiles; + case pack(PLANARCONFIG_SEPARATE, PLANARCONFIG_CONTIG, F,T,F): + case pack(PLANARCONFIG_SEPARATE, PLANARCONFIG_CONTIG, F,T,T): + return cpSeparateStrips2ContigTiles; + case pack(PLANARCONFIG_SEPARATE, PLANARCONFIG_SEPARATE, F,T,F): + case pack(PLANARCONFIG_SEPARATE, PLANARCONFIG_SEPARATE, F,T,T): + return cpSeparateStrips2SeparateTiles; +/* Tiles -> Tiles */ + case pack(PLANARCONFIG_CONTIG, PLANARCONFIG_CONTIG, T,T,F): + case pack(PLANARCONFIG_CONTIG, PLANARCONFIG_CONTIG, T,T,T): + return cpContigTiles2ContigTiles; + case pack(PLANARCONFIG_CONTIG, PLANARCONFIG_SEPARATE, T,T,F): + case pack(PLANARCONFIG_CONTIG, PLANARCONFIG_SEPARATE, T,T,T): + return cpContigTiles2SeparateTiles; + case pack(PLANARCONFIG_SEPARATE, PLANARCONFIG_CONTIG, T,T,F): + case pack(PLANARCONFIG_SEPARATE, PLANARCONFIG_CONTIG, T,T,T): + return cpSeparateTiles2ContigTiles; + case pack(PLANARCONFIG_SEPARATE, PLANARCONFIG_SEPARATE, T,T,F): + case pack(PLANARCONFIG_SEPARATE, PLANARCONFIG_SEPARATE, T,T,T): + return cpSeparateTiles2SeparateTiles; +/* Tiles -> Strips */ + case pack(PLANARCONFIG_CONTIG, PLANARCONFIG_CONTIG, T,F,F): + case pack(PLANARCONFIG_CONTIG, PLANARCONFIG_CONTIG, T,F,T): + return cpContigTiles2ContigStrips; + case pack(PLANARCONFIG_CONTIG, PLANARCONFIG_SEPARATE, T,F,F): + case pack(PLANARCONFIG_CONTIG, PLANARCONFIG_SEPARATE, T,F,T): + return cpContigTiles2SeparateStrips; + case pack(PLANARCONFIG_SEPARATE, PLANARCONFIG_CONTIG, T,F,F): + case pack(PLANARCONFIG_SEPARATE, PLANARCONFIG_CONTIG, T,F,T): + return cpSeparateTiles2ContigStrips; + case pack(PLANARCONFIG_SEPARATE, PLANARCONFIG_SEPARATE, T,F,F): + case pack(PLANARCONFIG_SEPARATE, PLANARCONFIG_SEPARATE, T,F,T): + return cpSeparateTiles2SeparateStrips; +/* Strips -> Strips */ + case pack(PLANARCONFIG_CONTIG, PLANARCONFIG_CONTIG, F,F,F): + return cpContig2ContigByRow; + case pack(PLANARCONFIG_CONTIG, PLANARCONFIG_CONTIG, F,F,T): + return cpDecodedStrips; + case pack(PLANARCONFIG_CONTIG, PLANARCONFIG_SEPARATE, F,F,F): + case pack(PLANARCONFIG_CONTIG, PLANARCONFIG_SEPARATE, F,F,T): + return cpContig2SeparateByRow; + case pack(PLANARCONFIG_SEPARATE, PLANARCONFIG_CONTIG, F,F,F): + case pack(PLANARCONFIG_SEPARATE, PLANARCONFIG_CONTIG, F,F,T): + return cpSeparate2ContigByRow; + case pack(PLANARCONFIG_SEPARATE, PLANARCONFIG_SEPARATE, F,F,F): + case pack(PLANARCONFIG_SEPARATE, PLANARCONFIG_SEPARATE, F,F,T): + return cpSeparate2SeparateByRow; + } +#undef pack +#undef F +#undef T + fprintf(stderr, "tiffcp: %s: Don't know how to copy/convert image.\n", + TIFFFileName(in)); + return (NULL); +} diff --git a/tools/tiffdither.c b/tools/tiffdither.c new file mode 100755 index 0000000..6f86d79 --- /dev/null +++ b/tools/tiffdither.c @@ -0,0 +1,314 @@ +/* $Header: /home/cvsroot/libtiff/tools/tiffdither.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include +#include +#include + +#include "tiffio.h" + +#define streq(a,b) (strcmp(a,b) == 0) +#define strneq(a,b,n) (strncmp(a,b,n) == 0) + +#define CopyField(tag, v) \ + if (TIFFGetField(in, tag, &v)) TIFFSetField(out, tag, v) + +uint32 imagewidth; +uint32 imagelength; +int threshold = 128; + +static void usage(void); + +/* + * Floyd-Steinberg error propragation with threshold. + * This code is stolen from tiffmedian. + */ +static void +fsdither(TIFF* in, TIFF* out) +{ + unsigned char *outline, *inputline, *inptr; + short *thisline, *nextline, *tmpptr; + register unsigned char *outptr; + register short *thisptr, *nextptr; + register uint32 i, j; + uint32 imax, jmax; + int lastline, lastpixel; + int bit; + tsize_t outlinesize; + + imax = imagelength - 1; + jmax = imagewidth - 1; + inputline = (unsigned char *)_TIFFmalloc(TIFFScanlineSize(in)); + thisline = (short *)_TIFFmalloc(imagewidth * sizeof (short)); + nextline = (short *)_TIFFmalloc(imagewidth * sizeof (short)); + outlinesize = TIFFScanlineSize(out); + outline = (unsigned char *) _TIFFmalloc(outlinesize); + + /* + * Get first line + */ + if (TIFFReadScanline(in, inputline, 0, 0) <= 0) + return; + inptr = inputline; + nextptr = nextline; + for (j = 0; j < imagewidth; ++j) + *nextptr++ = *inptr++; + for (i = 1; i < imagelength; ++i) { + tmpptr = thisline; + thisline = nextline; + nextline = tmpptr; + lastline = (i == imax); + if (TIFFReadScanline(in, inputline, i, 0) <= 0) + break; + inptr = inputline; + nextptr = nextline; + for (j = 0; j < imagewidth; ++j) + *nextptr++ = *inptr++; + thisptr = thisline; + nextptr = nextline; + _TIFFmemset(outptr = outline, 0, outlinesize); + bit = 0x80; + for (j = 0; j < imagewidth; ++j) { + register int v; + + lastpixel = (j == jmax); + v = *thisptr++; + if (v < 0) + v = 0; + else if (v > 255) + v = 255; + if (v > threshold) { + *outptr |= bit; + v -= 255; + } + bit >>= 1; + if (bit == 0) { + outptr++; + bit = 0x80; + } + if (!lastpixel) + thisptr[0] += v * 7 / 16; + if (!lastline) { + if (j != 0) + nextptr[-1] += v * 3 / 16; + *nextptr++ += v * 5 / 16; + if (!lastpixel) + nextptr[0] += v / 16; + } + } + if (TIFFWriteScanline(out, outline, i-1, 0) < 0) + break; + } + _TIFFfree(inputline); + _TIFFfree(thisline); + _TIFFfree(nextline); + _TIFFfree(outline); +} + +static uint16 compression = COMPRESSION_PACKBITS; +static uint16 predictor = 0; +static uint32 group3options = 0; + +static void +processG3Options(char* cp) +{ + if (cp = strchr(cp, ':')) { + do { + cp++; + if (strneq(cp, "1d", 2)) + group3options &= ~GROUP3OPT_2DENCODING; + else if (strneq(cp, "2d", 2)) + group3options |= GROUP3OPT_2DENCODING; + else if (strneq(cp, "fill", 4)) + group3options |= GROUP3OPT_FILLBITS; + else + usage(); + } while (cp = strchr(cp, ':')); + } +} + +static int +processCompressOptions(char* opt) +{ + if (streq(opt, "none")) + compression = COMPRESSION_NONE; + else if (streq(opt, "packbits")) + compression = COMPRESSION_PACKBITS; + else if (strneq(opt, "g3", 2)) { + processG3Options(opt); + compression = COMPRESSION_CCITTFAX3; + } else if (streq(opt, "g4")) + compression = COMPRESSION_CCITTFAX4; + else if (strneq(opt, "lzw", 3)) { + char* cp = strchr(opt, ':'); + if (cp) + predictor = atoi(cp+1); + compression = COMPRESSION_LZW; + } else if (strneq(opt, "zip", 3)) { + char* cp = strchr(opt, ':'); + if (cp) + predictor = atoi(cp+1); + compression = COMPRESSION_DEFLATE; + } else + return (0); + return (1); +} + +int +main(int argc, char* argv[]) +{ + TIFF *in, *out; + uint16 samplesperpixel, bitspersample = 1, shortv; + float floatv; + char thing[1024]; + uint32 rowsperstrip = (uint32) -1; + int onestrip = 0; + uint16 fillorder = 0; + int c; + extern int optind; + extern char *optarg; + + while ((c = getopt(argc, argv, "c:f:r:t:")) != -1) + switch (c) { + case 'c': /* compression scheme */ + if (!processCompressOptions(optarg)) + usage(); + break; + case 'f': /* fill order */ + if (streq(optarg, "lsb2msb")) + fillorder = FILLORDER_LSB2MSB; + else if (streq(optarg, "msb2lsb")) + fillorder = FILLORDER_MSB2LSB; + else + usage(); + break; + case 'r': /* rows/strip */ + rowsperstrip = atoi(optarg); + onestrip = 0; + break; + case 't': + threshold = atoi(optarg); + if (threshold < 0) + threshold = 0; + else if (threshold > 255) + threshold = 255; + break; + case '?': + usage(); + /*NOTREACHED*/ + } + if (argc - optind < 2) + usage(); + in = TIFFOpen(argv[optind], "r"); + if (in == NULL) + return (-1); + TIFFGetField(in, TIFFTAG_SAMPLESPERPIXEL, &samplesperpixel); + if (samplesperpixel != 1) { + fprintf(stderr, "%s: Not a b&w image.\n", argv[0]); + return (-1); + } + TIFFGetField(in, TIFFTAG_BITSPERSAMPLE, &bitspersample); + if (bitspersample != 8) { + fprintf(stderr, + " %s: Sorry, only handle 8-bit samples.\n", argv[0]); + return (-1); + } + out = TIFFOpen(argv[optind+1], "w"); + if (out == NULL) + return (-1); + CopyField(TIFFTAG_IMAGEWIDTH, imagewidth); + TIFFGetField(in, TIFFTAG_IMAGELENGTH, &imagelength); + TIFFSetField(out, TIFFTAG_IMAGELENGTH, imagelength-1); + TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, 1); + TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, 1); + TIFFSetField(out, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); + TIFFSetField(out, TIFFTAG_COMPRESSION, compression); + TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK); + TIFFSetField(out, TIFFTAG_FILLORDER, fillorder); + sprintf(thing, "Dithered B&W version of %s", argv[optind]); + TIFFSetField(out, TIFFTAG_IMAGEDESCRIPTION, thing); + CopyField(TIFFTAG_ORIENTATION, shortv); + CopyField(TIFFTAG_XRESOLUTION, floatv); + CopyField(TIFFTAG_YRESOLUTION, floatv); + CopyField(TIFFTAG_RESOLUTIONUNIT, shortv); + if (onestrip) + rowsperstrip = imagelength-1; + else + rowsperstrip = TIFFDefaultStripSize(out, rowsperstrip); + TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, rowsperstrip); + switch (compression) { + case COMPRESSION_CCITTFAX3: + TIFFSetField(out, TIFFTAG_GROUP3OPTIONS, group3options); + break; + case COMPRESSION_LZW: + case COMPRESSION_DEFLATE: + if (predictor) + TIFFSetField(out, TIFFTAG_PREDICTOR, predictor); + break; + } + fsdither(in, out); + TIFFClose(in); + TIFFClose(out); + return (0); +} + +char* stuff[] = { +"usage: tiffdither [options] input.tif output.tif", +"where options are:", +" -r # make each strip have no more than # rows", +" -f lsb2msb force lsb-to-msb FillOrder for output", +" -f msb2lsb force msb-to-lsb FillOrder for output", +" -c lzw[:opts] compress output with Lempel-Ziv & Welch encoding", +" (no longer supported by default due to Unisys patent enforcement)", +" -c zip[:opts] compress output with deflate encoding", +" -c packbits compress output with packbits encoding", +" -c g3[:opts] compress output with CCITT Group 3 encoding", +" -c g4 compress output with CCITT Group 4 encoding", +" -c none use no compression algorithm on output", +"", +"Group 3 options:", +" 1d use default CCITT Group 3 1D-encoding", +" 2d use optional CCITT Group 3 2D-encoding", +" fill byte-align EOL codes", +"For example, -c g3:2d:fill to get G3-2D-encoded data with byte-aligned EOLs", +"", +"LZW and deflate options:", +" # set predictor value", +"For example, -c lzw:2 to get LZW-encoded data with horizontal differencing", +NULL +}; + +static void +usage(void) +{ + char buf[BUFSIZ]; + int i; + + setbuf(stderr, buf); + for (i = 0; stuff[i] != NULL; i++) + fprintf(stderr, "%s\n", stuff[i]); + exit(-1); +} diff --git a/tools/tiffdump.c b/tools/tiffdump.c new file mode 100755 index 0000000..36106d7 --- /dev/null +++ b/tools/tiffdump.c @@ -0,0 +1,755 @@ +/* $Header: /home/cvsroot/libtiff/tools/tiffdump.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include +#include +#include + +#if defined(VMS) +#include +#include +#elif defined(_WINDOWS) +#include +#define off_t toff_t +#include "tiffio.h" +#include +#elif defined(applec) +#define open _open_ /* to avoid conflicts */ +#include +#undef open +int open(const char*, int, int); +typedef unsigned int off_t; +#else /* !VMS && !_WINDOWS && !applec */ +#ifdef unix +#include +#endif +#include +#include +#endif + +#if defined(MSDOS) +#include +#endif + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +#include "tiffio.h" + +char* appname; +char* curfile; +int swabflag; +int bigendian; +int typeshift[13]; /* data type shift counts */ +long typemask[13]; /* data type masks */ +int maxitems = 24; /* maximum indirect data items to print */ + +char* bytefmt = "%s%#02x"; /* BYTE */ +char* sbytefmt = "%s%d"; /* SBYTE */ +char* shortfmt = "%s%u"; /* SHORT */ +char* sshortfmt = "%s%d"; /* SSHORT */ +char* longfmt = "%s%lu"; /* LONG */ +char* slongfmt = "%s%ld"; /* SLONG */ +char* rationalfmt = "%s%g"; /* RATIONAL */ +char* srationalfmt = "%s%g"; /* SRATIONAL */ +char* floatfmt = "%s%g"; /* FLOAT */ +char* doublefmt = "%s%g"; /* DOUBLE */ + +static void dump(int, uint32); +extern int optind; +extern char* optarg; + +void +usage() +{ + fprintf(stderr, "usage: %s [-h] [-o offset] file.tif ...\n", appname); + exit(-1); +} + +int +main(int argc, char* argv[]) +{ + int one = 1, fd; + int multiplefiles = (argc > 1); + int c; + uint32 diroff = (uint32) 0; + bigendian = (*(char *)&one == 0); + + appname = argv[0]; + while ((c = getopt(argc, argv, "m:o:h")) != -1) { + switch (c) { + case 'h': /* print values in hex */ + shortfmt = "%s%#x"; + sshortfmt = "%s%#x"; + longfmt = "%s%#lx"; + slongfmt = "%s%#lx"; + break; + case 'o': + diroff = (uint32) strtoul(optarg, NULL, 0); + break; + case 'm': + maxitems = strtoul(optarg, NULL, 0); + break; + default: + usage(); + } + } + if (optind >= argc) + usage(); + for (; optind < argc; optind++) { + fd = open(argv[optind], O_RDONLY|O_BINARY, 0); + if (fd < 0) { + perror(argv[0]); + return (-1); + } + if (multiplefiles) + printf("%s:\n", argv[optind]); + curfile = argv[optind]; + swabflag = 0; + dump(fd, diroff); + close(fd); + } + return (0); +} + +static TIFFHeader hdr; + +#define ord(e) ((int)e) + +/* + * Initialize shift & mask tables and byte + * swapping state according to the file + * byte order. + */ +static void +InitByteOrder(int magic) +{ + typemask[0] = 0; + typemask[ord(TIFF_BYTE)] = 0xff; + typemask[ord(TIFF_SBYTE)] = 0xff; + typemask[ord(TIFF_UNDEFINED)] = 0xff; + typemask[ord(TIFF_SHORT)] = 0xffff; + typemask[ord(TIFF_SSHORT)] = 0xffff; + typemask[ord(TIFF_LONG)] = 0xffffffff; + typemask[ord(TIFF_SLONG)] = 0xffffffff; + typemask[ord(TIFF_RATIONAL)] = 0xffffffff; + typemask[ord(TIFF_SRATIONAL)] = 0xffffffff; + typemask[ord(TIFF_FLOAT)] = 0xffffffff; + typemask[ord(TIFF_DOUBLE)] = 0xffffffff; + typeshift[0] = 0; + typeshift[ord(TIFF_LONG)] = 0; + typeshift[ord(TIFF_SLONG)] = 0; + typeshift[ord(TIFF_RATIONAL)] = 0; + typeshift[ord(TIFF_SRATIONAL)] = 0; + typeshift[ord(TIFF_FLOAT)] = 0; + typeshift[ord(TIFF_DOUBLE)] = 0; + if (magic == TIFF_BIGENDIAN) { + typeshift[ord(TIFF_BYTE)] = 24; + typeshift[ord(TIFF_SBYTE)] = 24; + typeshift[ord(TIFF_SHORT)] = 16; + typeshift[ord(TIFF_SSHORT)] = 16; + swabflag = !bigendian; + } else { + typeshift[ord(TIFF_BYTE)] = 0; + typeshift[ord(TIFF_SBYTE)] = 0; + typeshift[ord(TIFF_SHORT)] = 0; + typeshift[ord(TIFF_SSHORT)] = 0; + swabflag = bigendian; + } +} + +static uint32 ReadDirectory(int, unsigned, uint32); +static void ReadError(char*); +static void Error(const char*, ...); +static void Fatal(const char*, ...); + +static void +dump(int fd, uint32 diroff) +{ + unsigned i; + + lseek(fd, (off_t) 0, 0); + if (read(fd, (char*) &hdr, sizeof (hdr)) != sizeof (hdr)) + ReadError("TIFF header"); + /* + * Setup the byte order handling. + */ + if (hdr.tiff_magic != TIFF_BIGENDIAN && hdr.tiff_magic != TIFF_LITTLEENDIAN) + Fatal("Not a TIFF file, bad magic number %u (%#x)", + hdr.tiff_magic, hdr.tiff_magic); + InitByteOrder(hdr.tiff_magic); + /* + * Swap header if required. + */ + if (swabflag) { + TIFFSwabShort(&hdr.tiff_version); + TIFFSwabLong(&hdr.tiff_diroff); + } + /* + * Now check version (if needed, it's been byte-swapped). + * Note that this isn't actually a version number, it's a + * magic number that doesn't change (stupid). + */ + if (hdr.tiff_version != TIFF_VERSION) + Fatal("Not a TIFF file, bad version number %u (%#x)", + hdr.tiff_version, hdr.tiff_version); + printf("Magic: %#x <%s-endian> Version: %#x\n", + hdr.tiff_magic, + hdr.tiff_magic == TIFF_BIGENDIAN ? "big" : "little", + hdr.tiff_version); + if (diroff == 0) + diroff = hdr.tiff_diroff; + for (i = 0; diroff != 0; i++) { + if (i > 0) + putchar('\n'); + diroff = ReadDirectory(fd, i, diroff); + } +} + +static int datawidth[] = { + 0, /* nothing */ + 1, /* TIFF_BYTE */ + 1, /* TIFF_ASCII */ + 2, /* TIFF_SHORT */ + 4, /* TIFF_LONG */ + 8, /* TIFF_RATIONAL */ + 1, /* TIFF_SBYTE */ + 1, /* TIFF_UNDEFINED */ + 2, /* TIFF_SSHORT */ + 4, /* TIFF_SLONG */ + 8, /* TIFF_SRATIONAL */ + 4, /* TIFF_FLOAT */ + 8, /* TIFF_DOUBLE */ +}; +#define NWIDTHS (sizeof (datawidth) / sizeof (datawidth[0])) +static int TIFFFetchData(int, TIFFDirEntry*, void*); +static void PrintTag(FILE*, uint16); +static void PrintType(FILE*, uint16); +static void PrintData(FILE*, uint16, uint32, unsigned char*); +static void PrintByte(FILE*, const char*, TIFFDirEntry*); +static void PrintShort(FILE*, const char*, TIFFDirEntry*); +static void PrintLong(FILE*, const char*, TIFFDirEntry*); + +/* + * Read the next TIFF directory from a file + * and convert it to the internal format. + * We read directories sequentially. + */ +static uint32 +ReadDirectory(int fd, unsigned ix, uint32 off) +{ + register TIFFDirEntry *dp; + register int n; + TIFFDirEntry *dir = 0; + uint16 dircount; + int space; + uint32 nextdiroff = 0; + + if (off == 0) /* no more directories */ + goto done; + if (lseek(fd, (off_t) off, 0) != off) { + Fatal("Seek error accessing TIFF directory"); + goto done; + } + if (read(fd, (char*) &dircount, sizeof (uint16)) != sizeof (uint16)) { + ReadError("directory count"); + goto done; + } + if (swabflag) + TIFFSwabShort(&dircount); + dir = (TIFFDirEntry *)_TIFFmalloc(dircount * sizeof (TIFFDirEntry)); + if (dir == NULL) { + Fatal("No space for TIFF directory"); + goto done; + } + n = read(fd, (char*) dir, dircount*sizeof (*dp)); + if (n != dircount*sizeof (*dp)) { + n /= sizeof (*dp); + Error( + "Could only read %u of %u entries in directory at offset %#lx", + n, dircount, (unsigned long) off); + dircount = n; + } + if (read(fd, (char*) &nextdiroff, sizeof (uint32)) != sizeof (uint32)) + nextdiroff = 0; + if (swabflag) + TIFFSwabLong(&nextdiroff); + printf("Directory %u: offset %lu (%#lx) next %lu (%#lx)\n", ix, + (unsigned long) off, (unsigned long) off, + (unsigned long) nextdiroff, (unsigned long) nextdiroff); + for (dp = dir, n = dircount; n > 0; n--, dp++) { + if (swabflag) { + TIFFSwabArrayOfShort(&dp->tdir_tag, 2); + TIFFSwabArrayOfLong(&dp->tdir_count, 2); + } + PrintTag(stdout, dp->tdir_tag); + putchar(' '); + PrintType(stdout, dp->tdir_type); + putchar(' '); + printf("%lu<", (unsigned long) dp->tdir_count); + if (dp->tdir_type >= NWIDTHS) { + printf(">\n"); + continue; + } + space = dp->tdir_count * datawidth[dp->tdir_type]; + if (space <= 4) { + switch (dp->tdir_type) { + case TIFF_FLOAT: + case TIFF_UNDEFINED: + case TIFF_ASCII: { + unsigned char data[4]; + _TIFFmemcpy(data, &dp->tdir_offset, 4); + if (swabflag) + TIFFSwabLong((uint32*) data); + PrintData(stdout, + dp->tdir_type, dp->tdir_count, data); + break; + } + case TIFF_BYTE: + PrintByte(stdout, bytefmt, dp); + break; + case TIFF_SBYTE: + PrintByte(stdout, sbytefmt, dp); + break; + case TIFF_SHORT: + PrintShort(stdout, shortfmt, dp); + break; + case TIFF_SSHORT: + PrintShort(stdout, sshortfmt, dp); + break; + case TIFF_LONG: + PrintLong(stdout, longfmt, dp); + break; + case TIFF_SLONG: + PrintLong(stdout, slongfmt, dp); + break; + } + } else { + unsigned char *data = (unsigned char *)_TIFFmalloc(space); + if (data) { + if (TIFFFetchData(fd, dp, data)) + if (dp->tdir_count > maxitems) { + PrintData(stdout, dp->tdir_type, + maxitems, data); + printf(" ..."); + } else + PrintData(stdout, dp->tdir_type, + dp->tdir_count, data); + _TIFFfree(data); + } else + Error("No space for data for tag %u", + dp->tdir_tag); + } + printf(">\n"); + } +done: + if (dir) + _TIFFfree((char *)dir); + return (nextdiroff); +} + +static struct tagname { + uint16 tag; + char* name; +} tagnames[] = { + { TIFFTAG_SUBFILETYPE, "SubFileType" }, + { TIFFTAG_OSUBFILETYPE, "OldSubFileType" }, + { TIFFTAG_IMAGEWIDTH, "ImageWidth" }, + { TIFFTAG_IMAGELENGTH, "ImageLength" }, + { TIFFTAG_BITSPERSAMPLE, "BitsPerSample" }, + { TIFFTAG_COMPRESSION, "Compression" }, + { TIFFTAG_PHOTOMETRIC, "Photometric" }, + { TIFFTAG_THRESHHOLDING, "Threshholding" }, + { TIFFTAG_CELLWIDTH, "CellWidth" }, + { TIFFTAG_CELLLENGTH, "CellLength" }, + { TIFFTAG_FILLORDER, "FillOrder" }, + { TIFFTAG_DOCUMENTNAME, "DocumentName" }, + { TIFFTAG_IMAGEDESCRIPTION, "ImageDescription" }, + { TIFFTAG_MAKE, "Make" }, + { TIFFTAG_MODEL, "Model" }, + { TIFFTAG_STRIPOFFSETS, "StripOffsets" }, + { TIFFTAG_ORIENTATION, "Orientation" }, + { TIFFTAG_SAMPLESPERPIXEL, "SamplesPerPixel" }, + { TIFFTAG_ROWSPERSTRIP, "RowsPerStrip" }, + { TIFFTAG_STRIPBYTECOUNTS, "StripByteCounts" }, + { TIFFTAG_MINSAMPLEVALUE, "MinSampleValue" }, + { TIFFTAG_MAXSAMPLEVALUE, "MaxSampleValue" }, + { TIFFTAG_XRESOLUTION, "XResolution" }, + { TIFFTAG_YRESOLUTION, "YResolution" }, + { TIFFTAG_PLANARCONFIG, "PlanarConfig" }, + { TIFFTAG_PAGENAME, "PageName" }, + { TIFFTAG_XPOSITION, "XPosition" }, + { TIFFTAG_YPOSITION, "YPosition" }, + { TIFFTAG_FREEOFFSETS, "FreeOffsets" }, + { TIFFTAG_FREEBYTECOUNTS, "FreeByteCounts" }, + { TIFFTAG_GRAYRESPONSEUNIT, "GrayResponseUnit" }, + { TIFFTAG_GRAYRESPONSECURVE,"GrayResponseCurve" }, + { TIFFTAG_GROUP3OPTIONS, "Group3Options" }, + { TIFFTAG_GROUP4OPTIONS, "Group4Options" }, + { TIFFTAG_RESOLUTIONUNIT, "ResolutionUnit" }, + { TIFFTAG_PAGENUMBER, "PageNumber" }, + { TIFFTAG_COLORRESPONSEUNIT,"ColorResponseUnit" }, + { TIFFTAG_TRANSFERFUNCTION, "TransferFunction" }, + { TIFFTAG_SOFTWARE, "Software" }, + { TIFFTAG_DATETIME, "DateTime" }, + { TIFFTAG_ARTIST, "Artist" }, + { TIFFTAG_HOSTCOMPUTER, "HostComputer" }, + { TIFFTAG_PREDICTOR, "Predictor" }, + { TIFFTAG_WHITEPOINT, "Whitepoint" }, + { TIFFTAG_PRIMARYCHROMATICITIES,"PrimaryChromaticities" }, + { TIFFTAG_COLORMAP, "Colormap" }, + { TIFFTAG_HALFTONEHINTS, "HalftoneHints" }, + { TIFFTAG_TILEWIDTH, "TileWidth" }, + { TIFFTAG_TILELENGTH, "TileLength" }, + { TIFFTAG_TILEOFFSETS, "TileOffsets" }, + { TIFFTAG_TILEBYTECOUNTS, "TileByteCounts" }, + { TIFFTAG_BADFAXLINES, "BadFaxLines" }, + { TIFFTAG_CLEANFAXDATA, "CleanFaxData" }, + { TIFFTAG_CONSECUTIVEBADFAXLINES, "ConsecutiveBadFaxLines" }, + { TIFFTAG_SUBIFD, "SubIFD" }, + { TIFFTAG_INKSET, "InkSet" }, + { TIFFTAG_INKNAMES, "InkNames" }, + { TIFFTAG_NUMBEROFINKS, "NumberOfInks" }, + { TIFFTAG_DOTRANGE, "DotRange" }, + { TIFFTAG_TARGETPRINTER, "TargetPrinter" }, + { TIFFTAG_EXTRASAMPLES, "ExtraSamples" }, + { TIFFTAG_SAMPLEFORMAT, "SampleFormat" }, + { TIFFTAG_SMINSAMPLEVALUE, "SMinSampleValue" }, + { TIFFTAG_SMAXSAMPLEVALUE, "SMaxSampleValue" }, + { TIFFTAG_JPEGPROC, "JPEGProcessingMode" }, + { TIFFTAG_JPEGIFOFFSET, "JPEGInterchangeFormat" }, + { TIFFTAG_JPEGIFBYTECOUNT, "JPEGInterchangeFormatLength" }, + { TIFFTAG_JPEGRESTARTINTERVAL,"JPEGRestartInterval" }, + { TIFFTAG_JPEGLOSSLESSPREDICTORS,"JPEGLosslessPredictors" }, + { TIFFTAG_JPEGPOINTTRANSFORM,"JPEGPointTransform" }, + { TIFFTAG_JPEGQTABLES, "JPEGQTables" }, + { TIFFTAG_JPEGDCTABLES, "JPEGDCTables" }, + { TIFFTAG_JPEGACTABLES, "JPEGACTables" }, + { TIFFTAG_YCBCRCOEFFICIENTS,"YCbCrCoefficients" }, + { TIFFTAG_YCBCRSUBSAMPLING, "YCbCrSubsampling" }, + { TIFFTAG_YCBCRPOSITIONING, "YCbCrPositioning" }, + { TIFFTAG_REFERENCEBLACKWHITE, "ReferenceBlackWhite" }, + { TIFFTAG_REFPTS, "IgReferencePoints (Island Graphics)" }, + { TIFFTAG_REGIONTACKPOINT, "IgRegionTackPoint (Island Graphics)" }, + { TIFFTAG_REGIONWARPCORNERS,"IgRegionWarpCorners (Island Graphics)" }, + { TIFFTAG_REGIONAFFINE, "IgRegionAffine (Island Graphics)" }, + { TIFFTAG_MATTEING, "OBSOLETE Matteing (Silicon Graphics)" }, + { TIFFTAG_DATATYPE, "OBSOLETE DataType (Silicon Graphics)" }, + { TIFFTAG_IMAGEDEPTH, "ImageDepth (Silicon Graphics)" }, + { TIFFTAG_TILEDEPTH, "TileDepth (Silicon Graphics)" }, + { 32768, "OLD BOGUS Matteing tag" }, + { TIFFTAG_COPYRIGHT, "Copyright" }, + { TIFFTAG_ICCPROFILE, "ICC Profile" }, + { TIFFTAG_JBIGOPTIONS, "JBIG Options" }, + { TIFFTAG_STONITS, "StoNits" }, +}; +#define NTAGS (sizeof (tagnames) / sizeof (tagnames[0])) + +static void +PrintTag(FILE* fd, uint16 tag) +{ + register struct tagname *tp; + + for (tp = tagnames; tp < &tagnames[NTAGS]; tp++) + if (tp->tag == tag) { + fprintf(fd, "%s (%u)", tp->name, tag); + return; + } + fprintf(fd, "%u (%#x)", tag, tag); +} + +static void +PrintType(FILE* fd, uint16 type) +{ + static char *typenames[] = { + "0", + "BYTE", + "ASCII", + "SHORT", + "LONG", + "RATIONAL", + "SBYTE", + "UNDEFINED", + "SSHORT", + "SLONG", + "SRATIONAL", + "FLOAT", + "DOUBLE" + }; +#define NTYPES (sizeof (typenames) / sizeof (typenames[0])) + + if (type < NTYPES) + fprintf(fd, "%s (%u)", typenames[type], type); + else + fprintf(fd, "%u (%#x)", type, type); +} +#undef NTYPES + +static void +PrintByte(FILE* fd, const char* fmt, TIFFDirEntry* dp) +{ + char* sep = ""; + + if (hdr.tiff_magic != TIFF_LITTLEENDIAN) { + switch ((int)dp->tdir_count) { + case 4: fprintf(fd, fmt, sep, dp->tdir_offset&0xff); + sep = " "; + case 3: fprintf(fd, fmt, sep, (dp->tdir_offset>>8)&0xff); + sep = " "; + case 2: fprintf(fd, fmt, sep, (dp->tdir_offset>>16)&0xff); + sep = " "; + case 1: fprintf(fd, fmt, sep, dp->tdir_offset>>24); + } + } else { + switch ((int)dp->tdir_count) { + case 4: fprintf(fd, fmt, sep, dp->tdir_offset>>24); + sep = " "; + case 3: fprintf(fd, fmt, sep, (dp->tdir_offset>>16)&0xff); + sep = " "; + case 2: fprintf(fd, fmt, sep, (dp->tdir_offset>>8)&0xff); + sep = " "; + case 1: fprintf(fd, fmt, sep, dp->tdir_offset&0xff); + } + } +} + +static void +PrintShort(FILE* fd, const char* fmt, TIFFDirEntry* dp) +{ + char *sep = ""; + + if (hdr.tiff_magic != TIFF_LITTLEENDIAN) { + switch (dp->tdir_count) { + case 2: fprintf(fd, fmt, sep, dp->tdir_offset&0xffff); + sep = " "; + case 1: fprintf(fd, fmt, sep, dp->tdir_offset>>16); + } + } else { + switch (dp->tdir_count) { + case 2: fprintf(fd, fmt, sep, dp->tdir_offset>>16); + sep = " "; + case 1: fprintf(fd, fmt, sep, dp->tdir_offset&0xffff); + } + } +} + +static void +PrintLong(FILE* fd, const char* fmt, TIFFDirEntry* dp) +{ + fprintf(fd, fmt, "", (long) dp->tdir_offset); +} + +#include + +static void +PrintASCII(FILE* fd, uint32 cc, const unsigned char* cp) +{ + for (; cc > 0; cc--, cp++) { + const char* tp; + + if (isprint(*cp)) { + fputc(*cp, fd); + continue; + } + for (tp = "\tt\bb\rr\nn\vv"; *tp; tp++) + if (*tp++ == *cp) + break; + if (*tp) + fprintf(fd, "\\%c", *tp); + else if (*cp) + fprintf(fd, "\\%03o", *cp); + else + fprintf(fd, "\\0"); + } +} + +static void +PrintData(FILE* fd, uint16 type, uint32 count, unsigned char* data) +{ + char* sep = ""; + + switch (type) { + case TIFF_BYTE: + while (count-- > 0) + fprintf(fd, bytefmt, sep, *data++), sep = " "; + break; + case TIFF_SBYTE: + while (count-- > 0) + fprintf(fd, sbytefmt, sep, *(char *)data++), sep = " "; + break; + case TIFF_UNDEFINED: + while (count-- > 0) + fprintf(fd, bytefmt, sep, *data++), sep = " "; + break; + case TIFF_ASCII: + PrintASCII(fd, count, data); + break; + case TIFF_SHORT: { + register uint16 *wp = (uint16*)data; + while (count-- > 0) + fprintf(fd, shortfmt, sep, *wp++), sep = " "; + break; + } + case TIFF_SSHORT: { + register int16 *wp = (int16*)data; + while (count-- > 0) + fprintf(fd, sshortfmt, sep, *wp++), sep = " "; + break; + } + case TIFF_LONG: { + register uint32 *lp = (uint32*)data; + while (count-- > 0) { + fprintf(fd, longfmt, sep, (unsigned long) *lp++); + sep = " "; + } + break; + } + case TIFF_SLONG: { + register int32 *lp = (int32*)data; + while (count-- > 0) + fprintf(fd, slongfmt, sep, (long) *lp++), sep = " "; + break; + } + case TIFF_RATIONAL: { + register uint32 *lp = (uint32*)data; + while (count-- > 0) { + if (lp[1] == 0) + fprintf(fd, "%sNan (%lu/%lu)", sep, + (unsigned long) lp[0], + (unsigned long) lp[1]); + else + fprintf(fd, rationalfmt, sep, + (double)lp[0] / (double)lp[1]); + sep = " "; + lp += 2; + } + break; + } + case TIFF_SRATIONAL: { + register int32 *lp = (int32*)data; + while (count-- > 0) { + if (lp[1] == 0) + fprintf(fd, "%sNan (%ld/%ld)", sep, + (long) lp[0], (long) lp[1]); + else + fprintf(fd, srationalfmt, sep, + (double)lp[0] / (double)lp[1]); + sep = " "; + lp += 2; + } + break; + } + case TIFF_FLOAT: { + register float *fp = (float *)data; + while (count-- > 0) + fprintf(fd, floatfmt, sep, *fp++), sep = " "; + break; + } + case TIFF_DOUBLE: { + register double *dp = (double *)data; + while (count-- > 0) + fprintf(fd, doublefmt, sep, *dp++), sep = " "; + break; + } + } +} + +/* + * Fetch a contiguous directory item. + */ +static int +TIFFFetchData(int fd, TIFFDirEntry* dir, void* cp) +{ + int cc, w; + + w = (dir->tdir_type < NWIDTHS ? datawidth[dir->tdir_type] : 0); + cc = dir->tdir_count * w; + if (lseek(fd, (off_t) dir->tdir_offset, 0) == dir->tdir_offset && + read(fd, cp, cc) == cc) { + if (swabflag) { + switch (dir->tdir_type) { + case TIFF_SHORT: + case TIFF_SSHORT: + TIFFSwabArrayOfShort((uint16*) cp, + dir->tdir_count); + break; + case TIFF_LONG: + case TIFF_SLONG: + case TIFF_FLOAT: + TIFFSwabArrayOfLong((uint32*) cp, + dir->tdir_count); + break; + case TIFF_RATIONAL: + TIFFSwabArrayOfLong((uint32*) cp, + 2*dir->tdir_count); + break; + case TIFF_DOUBLE: + TIFFSwabArrayOfDouble((double*) cp, + dir->tdir_count); + break; + } + } + return (cc); + } + Error("Error while reading data for tag %u", dir->tdir_tag); + return (0); +} + +static void +ReadError(char* what) +{ + Fatal("Error while reading %s", what); +} + +#include + +static void +vError(FILE* fd, const char* fmt, va_list ap) +{ + fprintf(fd, "%s: ", curfile); + vfprintf(fd, fmt, ap); + fprintf(fd, ".\n"); +} + +static void +Error(const char* fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + vError(stderr, fmt, ap); + va_end(ap); +} + +static void +Fatal(const char* fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + vError(stderr, fmt, ap); + va_end(ap); + exit(-1); +} diff --git a/tools/tiffinfo.c b/tools/tiffinfo.c new file mode 100755 index 0000000..11fd990 --- /dev/null +++ b/tools/tiffinfo.c @@ -0,0 +1,429 @@ +/* $Header: /home/cvsroot/libtiff/tools/tiffinfo.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1988-1997 Sam Leffler + * Copyright (c) 1991-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include +#include +#include + +#include "tiffio.h" + +#define streq(a,b) (strcmp(a,b) == 0) + +int showdata = 0; /* show data */ +int rawdata = 0; /* show raw/decoded data */ +int showwords = 0; /* show data as bytes/words */ +int readdata = 0; /* read data in file */ +int stoponerr = 1; /* stop on first read error */ + +static void usage(void); +static void tiffinfo(TIFF*, uint16, long); + +int +main(int argc, char* argv[]) +{ + int dirnum = -1, multiplefiles, c; + uint16 order = 0; + TIFF* tif; + extern int optind; + extern char* optarg; + long flags = 0; + uint32 diroff = 0; + int chopstrips = 0; /* disable strip chopping */ + + while ((c = getopt(argc, argv, "f:o:cdDSjlmrsvwz0123456789")) != -1) + switch (c) { + case '0': case '1': case '2': case '3': + case '4': case '5': case '6': case '7': + case '8': case '9': + dirnum = atoi(&argv[optind-1][1]); + break; + case 'd': + showdata++; + /* fall thru... */ + case 'D': + readdata++; + break; + case 'c': + flags |= TIFFPRINT_COLORMAP | TIFFPRINT_CURVES; + break; + case 'f': /* fill order */ + if (streq(optarg, "lsb2msb")) + order = FILLORDER_LSB2MSB; + else if (streq(optarg, "msb2lsb")) + order = FILLORDER_MSB2LSB; + else + usage(); + break; + case 'i': + stoponerr = 0; + break; + case 'o': + diroff = strtoul(optarg, NULL, 0); + break; + case 'j': + flags |= TIFFPRINT_JPEGQTABLES | + TIFFPRINT_JPEGACTABLES | + TIFFPRINT_JPEGDCTABLES; + break; + case 'r': + rawdata = 1; + break; + case 's': + flags |= TIFFPRINT_STRIPS; + break; + case 'w': + showwords = 1; + break; + case 'z': + chopstrips = 1; + break; + case '?': + usage(); + /*NOTREACHED*/ + } + if (optind >= argc) + usage(); + multiplefiles = (argc - optind > 1); + for (; optind < argc; optind++) { + if (multiplefiles) + printf("%s:\n", argv[optind]); + tif = TIFFOpen(argv[optind], chopstrips ? "rC" : "rc"); + if (tif != NULL) { + if (dirnum != -1) { + if (TIFFSetDirectory(tif, dirnum)) + tiffinfo(tif, order, flags); + } else if (diroff != 0) { + if (TIFFSetSubDirectory(tif, diroff)) + tiffinfo(tif, order, flags); + } else { + do + tiffinfo(tif, order, flags); + while (TIFFReadDirectory(tif)); + } + TIFFClose(tif); + } + } + return (0); +} + +char* stuff[] = { +"usage: tiffinfo [options] input...", +"where options are:", +" -D read data", +" -i ignore read errors", +" -c display data for grey/color response curve or colormap", +" -d display raw/decoded image data", +" -f lsb2msb force lsb-to-msb FillOrder for input", +" -f msb2lsb force msb-to-lsb FillOrder for input", +" -j show JPEG tables", +" -o offset set initial directory offset", +" -r read/display raw image data instead of decoded data", +" -s display strip offsets and byte counts", +" -w display raw data in words rather than bytes", +" -z enable strip chopping", +" -# set initial directory (first directory is # 0)", +NULL +}; + +static void +usage(void) +{ + char buf[BUFSIZ]; + int i; + + setbuf(stderr, buf); + for (i = 0; stuff[i] != NULL; i++) + fprintf(stderr, "%s\n", stuff[i]); + exit(-1); +} + +static void +ShowStrip(tstrip_t strip, unsigned char* pp, uint32 nrow, tsize_t scanline) +{ + register tsize_t cc; + + printf("Strip %lu:\n", (unsigned long) strip); + while (nrow-- > 0) { + for (cc = 0; cc < scanline; cc++) { + printf(" %02x", *pp++); + if (((cc+1) % 24) == 0) + putchar('\n'); + } + putchar('\n'); + } +} + +void +TIFFReadContigStripData(TIFF* tif) +{ + unsigned char *buf; + tsize_t scanline = TIFFScanlineSize(tif); + + buf = (unsigned char *)_TIFFmalloc(TIFFStripSize(tif)); + if (buf) { + uint32 row, h; + uint32 rowsperstrip = (uint32)-1; + + TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &h); + TIFFGetField(tif, TIFFTAG_ROWSPERSTRIP, &rowsperstrip); + for (row = 0; row < h; row += rowsperstrip) { + uint32 nrow = (row+rowsperstrip > h ? + h-row : rowsperstrip); + tstrip_t strip = TIFFComputeStrip(tif, row, 0); + if (TIFFReadEncodedStrip(tif, strip, buf, nrow*scanline) < 0) { + if (stoponerr) + break; + } else if (showdata) + ShowStrip(strip, buf, nrow, scanline); + } + _TIFFfree(buf); + } +} + +void +TIFFReadSeparateStripData(TIFF* tif) +{ + unsigned char *buf; + tsize_t scanline = TIFFScanlineSize(tif); + + buf = (unsigned char *)_TIFFmalloc(TIFFStripSize(tif)); + if (buf) { + uint32 row, h; + uint32 rowsperstrip = (uint32)-1; + tsample_t s, samplesperpixel; + + TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &h); + TIFFGetField(tif, TIFFTAG_ROWSPERSTRIP, &rowsperstrip); + TIFFGetField(tif, TIFFTAG_SAMPLESPERPIXEL, &samplesperpixel); + for (row = 0; row < h; row += rowsperstrip) { + for (s = 0; s < samplesperpixel; s++) { + uint32 nrow = (row+rowsperstrip > h ? + h-row : rowsperstrip); + tstrip_t strip = TIFFComputeStrip(tif, row, s); + if (TIFFReadEncodedStrip(tif, strip, buf, nrow*scanline) < 0) { + if (stoponerr) + break; + } else if (showdata) + ShowStrip(strip, buf, nrow, scanline); + } + } + _TIFFfree(buf); + } +} + +static void +ShowTile(uint32 row, uint32 col, tsample_t sample, + unsigned char* pp, uint32 nrow, uint32 rowsize) +{ + register tsize_t cc; + + printf("Tile (%lu,%lu", (unsigned long) row, (unsigned long) col); + if (sample != (tsample_t) -1) + printf(",%u", sample); + printf("):\n"); + while (nrow-- > 0) { + for (cc = 0; cc < rowsize; cc++) { + printf(" %02x", *pp++); + if (((cc+1) % 24) == 0) + putchar('\n'); + } + putchar('\n'); + } +} + +void +TIFFReadContigTileData(TIFF* tif) +{ + unsigned char *buf; + tsize_t rowsize = TIFFTileRowSize(tif); + + buf = (unsigned char *)_TIFFmalloc(TIFFTileSize(tif)); + if (buf) { + uint32 tw, th, w, h; + uint32 row, col; + + TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &w); + TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &h); + TIFFGetField(tif, TIFFTAG_TILEWIDTH, &tw); + TIFFGetField(tif, TIFFTAG_TILELENGTH, &th); + for (row = 0; row < h; row += th) { + for (col = 0; col < w; col += tw) { + if (TIFFReadTile(tif, buf, col, row, 0, 0) < 0) { + if (stoponerr) + break; + } else if (showdata) + ShowTile(row, col, (tsample_t) -1, buf, th, rowsize); + } + } + _TIFFfree(buf); + } +} + +void +TIFFReadSeparateTileData(TIFF* tif) +{ + unsigned char *buf; + tsize_t rowsize = TIFFTileRowSize(tif); + + buf = (unsigned char *)_TIFFmalloc(TIFFTileSize(tif)); + if (buf) { + uint32 tw, th, w, h; + uint32 row, col; + tsample_t s, samplesperpixel; + + TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &w); + TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &h); + TIFFGetField(tif, TIFFTAG_TILEWIDTH, &tw); + TIFFGetField(tif, TIFFTAG_TILELENGTH, &th); + TIFFGetField(tif, TIFFTAG_SAMPLESPERPIXEL, &samplesperpixel); + for (row = 0; row < h; row += th) { + for (col = 0; col < w; col += tw) { + for (s = 0; s < samplesperpixel; s++) { + if (TIFFReadTile(tif, buf, col, row, 0, s) < 0) { + if (stoponerr) + break; + } else if (showdata) + ShowTile(row, col, s, buf, th, rowsize); + } + } + } + _TIFFfree(buf); + } +} + +void +TIFFReadData(TIFF* tif) +{ + uint16 config; + + TIFFGetField(tif, TIFFTAG_PLANARCONFIG, &config); + if (TIFFIsTiled(tif)) { + if (config == PLANARCONFIG_CONTIG) + TIFFReadContigTileData(tif); + else + TIFFReadSeparateTileData(tif); + } else { + if (config == PLANARCONFIG_CONTIG) + TIFFReadContigStripData(tif); + else + TIFFReadSeparateStripData(tif); + } +} + +static void +ShowRawBytes(unsigned char* pp, uint32 n) +{ + tsize_t i; + + for (i = 0; i < n; i++) { + printf(" %02x", *pp++); + if (((i+1) % 24) == 0) + printf("\n "); + } + putchar('\n'); +} + +static void +ShowRawWords(uint16* pp, uint32 n) +{ + tsize_t i; + + for (i = 0; i < n; i++) { + printf(" %04x", *pp++); + if (((i+1) % 15) == 0) + printf("\n "); + } + putchar('\n'); +} + +void +TIFFReadRawData(TIFF* tif, int bitrev) +{ + tstrip_t nstrips = TIFFNumberOfStrips(tif); + const char* what = TIFFIsTiled(tif) ? "Tile" : "Strip"; + uint32* stripbc; + + TIFFGetField(tif, TIFFTAG_STRIPBYTECOUNTS, &stripbc); + if (nstrips > 0) { + tsize_t bufsize = stripbc[0]; + tdata_t buf = _TIFFmalloc(bufsize); + tstrip_t s; + + for (s = 0; s < nstrips; s++) { + if (stripbc[s] > bufsize) { + buf = _TIFFrealloc(buf, stripbc[s]); + bufsize = stripbc[s]; + } + if (buf == NULL) { + fprintf(stderr, + "Cannot allocate buffer to read strip %lu\n", + (unsigned long) s); + break; + } + if (TIFFReadRawStrip(tif, s, buf, stripbc[s]) < 0) { + fprintf(stderr, "Error reading strip %lu\n", + (unsigned long) s); + if (stoponerr) + break; + } else if (showdata) { + if (bitrev) { + TIFFReverseBits(buf, stripbc[s]); + printf("%s %lu: (bit reversed)\n ", + what, (unsigned long) s); + } else + printf("%s %lu:\n ", what, + (unsigned long) s); + if (showwords) + ShowRawWords((uint16*) buf, stripbc[s]>>1); + else + ShowRawBytes((unsigned char*) buf, stripbc[s]); + } + } + if (buf != NULL) + _TIFFfree(buf); + } +} + +static void +tiffinfo(TIFF* tif, uint16 order, long flags) +{ + TIFFPrintDirectory(tif, stdout, flags); + if (!readdata) + return; + if (rawdata) { + if (order) { + uint16 o; + TIFFGetFieldDefaulted(tif, + TIFFTAG_FILLORDER, &o); + TIFFReadRawData(tif, o != order); + } else + TIFFReadRawData(tif, 0); + } else { + if (order) + TIFFSetField(tif, TIFFTAG_FILLORDER, order); + TIFFReadData(tif); + } +} diff --git a/tools/tiffmedian.c b/tools/tiffmedian.c new file mode 100755 index 0000000..b6a65c7 --- /dev/null +++ b/tools/tiffmedian.c @@ -0,0 +1,890 @@ +/* $Header: /home/cvsroot/libtiff/tools/tiffmedian.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Apply median cut on an image. + * + * tiffmedian [-c n] [-f] input output + * -C n - set colortable size. Default is 256. + * -f - use Floyd-Steinberg dithering. + * -c lzw - compress output with LZW + * (no longer supported by default due to unisys patent enforcement) + * -c none - use no compression on output + * -c packbits - use packbits compression on output + * -r n - create output with n rows/strip of data + * (by default the compression scheme and rows/strip are taken + * from the input file) + * + * Notes: + * + * [1] Floyd-Steinberg dither: + * I should point out that the actual fractions we used were, assuming + * you are at X, moving left to right: + * + * X 7/16 + * 3/16 5/16 1/16 + * + * Note that the error goes to four neighbors, not three. I think this + * will probably do better (at least for black and white) than the + * 3/8-3/8-1/4 distribution, at the cost of greater processing. I have + * seen the 3/8-3/8-1/4 distribution described as "our" algorithm before, + * but I have no idea who the credit really belongs to. + + * Also, I should add that if you do zig-zag scanning (see my immediately + * previous message), it is sufficient (but not quite as good) to send + * half the error one pixel ahead (e.g. to the right on lines you scan + * left to right), and half one pixel straight down. Again, this is for + * black and white; I've not tried it with color. + * -- + * Lou Steinberg + * + * [2] Color Image Quantization for Frame Buffer Display, Paul Heckbert, + * Siggraph '82 proceedings, pp. 297-307 + */ + +#include +#include +#include + +#include "tiffio.h" + +#define MAX_CMAP_SIZE 256 + +#define streq(a,b) (strcmp(a,b) == 0) +#define strneq(a,b,n) (strncmp(a,b,n) == 0) + +#define COLOR_DEPTH 8 +#define MAX_COLOR 256 + +#define B_DEPTH 5 /* # bits/pixel to use */ +#define B_LEN (1L< MAX_CMAP_SIZE) { + fprintf(stderr, + "-c: colormap too big, max %d\n", + MAX_CMAP_SIZE); + usage(); + } + break; + case 'f': /* dither */ + dither = 1; + break; + case 'r': /* rows/strip */ + rowsperstrip = atoi(optarg); + break; + case '?': + usage(); + /*NOTREACHED*/ + } + if (argc - optind != 2) + usage(); + in = TIFFOpen(argv[optind], "r"); + if (in == NULL) + return (-1); + TIFFGetField(in, TIFFTAG_IMAGEWIDTH, &imagewidth); + TIFFGetField(in, TIFFTAG_IMAGELENGTH, &imagelength); + TIFFGetField(in, TIFFTAG_BITSPERSAMPLE, &bitspersample); + TIFFGetField(in, TIFFTAG_SAMPLESPERPIXEL, &samplesperpixel); + if (bitspersample != 8 && bitspersample != 16) { + fprintf(stderr, "%s: Image must have at least 8-bits/sample\n", + argv[optind]); + return (-3); + } + if (!TIFFGetField(in, TIFFTAG_PHOTOMETRIC, &photometric) || + photometric != PHOTOMETRIC_RGB || samplesperpixel < 3) { + fprintf(stderr, "%s: Image must have RGB data\n", argv[optind]); + return (-4); + } + TIFFGetField(in, TIFFTAG_PLANARCONFIG, &config); + if (config != PLANARCONFIG_CONTIG) { + fprintf(stderr, "%s: Can only handle contiguous data packing\n", + argv[optind]); + return (-5); + } + + /* + * STEP 1: create empty boxes + */ + usedboxes = NULL; + box_list = freeboxes = (Colorbox *)_TIFFmalloc(num_colors*sizeof (Colorbox)); + freeboxes[0].next = &freeboxes[1]; + freeboxes[0].prev = NULL; + for (i = 1; i < num_colors-1; ++i) { + freeboxes[i].next = &freeboxes[i+1]; + freeboxes[i].prev = &freeboxes[i-1]; + } + freeboxes[num_colors-1].next = NULL; + freeboxes[num_colors-1].prev = &freeboxes[num_colors-2]; + + /* + * STEP 2: get histogram, initialize first box + */ + ptr = freeboxes; + freeboxes = ptr->next; + if (freeboxes) + freeboxes->prev = NULL; + ptr->next = usedboxes; + usedboxes = ptr; + if (ptr->next) + ptr->next->prev = ptr; + get_histogram(in, ptr); + + /* + * STEP 3: continually subdivide boxes until no more free + * boxes remain or until all colors assigned. + */ + while (freeboxes != NULL) { + ptr = largest_box(); + if (ptr != NULL) + splitbox(ptr); + else + freeboxes = NULL; + } + + /* + * STEP 4: assign colors to all boxes + */ + for (i = 0, ptr = usedboxes; ptr != NULL; ++i, ptr = ptr->next) { + rm[i] = ((ptr->rmin + ptr->rmax) << COLOR_SHIFT) / 2; + gm[i] = ((ptr->gmin + ptr->gmax) << COLOR_SHIFT) / 2; + bm[i] = ((ptr->bmin + ptr->bmax) << COLOR_SHIFT) / 2; + } + + /* We're done with the boxes now */ + _TIFFfree(box_list); + freeboxes = usedboxes = NULL; + + /* + * STEP 5: scan histogram and map all values to closest color + */ + /* 5a: create cell list as described in Heckbert[2] */ + ColorCells = (C_cell **)_TIFFmalloc(C_LEN*C_LEN*C_LEN*sizeof (C_cell*)); + _TIFFmemset(ColorCells, 0, C_LEN*C_LEN*C_LEN*sizeof (C_cell*)); + /* 5b: create mapping from truncated pixel space to color + table entries */ + map_colortable(); + + /* + * STEP 6: scan image, match input values to table entries + */ + out = TIFFOpen(argv[optind+1], "w"); + if (out == NULL) + return (-2); + + CopyField(TIFFTAG_SUBFILETYPE, longv); + CopyField(TIFFTAG_IMAGEWIDTH, longv); + TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, (short)COLOR_DEPTH); + if (compression != (uint16)-1) { + TIFFSetField(out, TIFFTAG_COMPRESSION, compression); + switch (compression) { + case COMPRESSION_LZW: + case COMPRESSION_DEFLATE: + if (predictor != 0) + TIFFSetField(out, TIFFTAG_PREDICTOR, predictor); + break; + } + } else + CopyField(TIFFTAG_COMPRESSION, compression); + TIFFSetField(out, TIFFTAG_PHOTOMETRIC, (short)PHOTOMETRIC_PALETTE); + CopyField(TIFFTAG_ORIENTATION, shortv); + TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, (short)1); + CopyField(TIFFTAG_PLANARCONFIG, shortv); + TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, + TIFFDefaultStripSize(out, rowsperstrip)); + CopyField(TIFFTAG_MINSAMPLEVALUE, shortv); + CopyField(TIFFTAG_MAXSAMPLEVALUE, shortv); + CopyField(TIFFTAG_RESOLUTIONUNIT, shortv); + CopyField(TIFFTAG_XRESOLUTION, floatv); + CopyField(TIFFTAG_YRESOLUTION, floatv); + CopyField(TIFFTAG_XPOSITION, floatv); + CopyField(TIFFTAG_YPOSITION, floatv); + + if (dither) + quant_fsdither(in, out); + else + quant(in, out); + /* + * Scale colormap to TIFF-required 16-bit values. + */ +#define SCALE(x) (((x)*((1L<<16)-1))/255) + for (i = 0; i < MAX_CMAP_SIZE; ++i) { + rm[i] = SCALE(rm[i]); + gm[i] = SCALE(gm[i]); + bm[i] = SCALE(bm[i]); + } + TIFFSetField(out, TIFFTAG_COLORMAP, rm, gm, bm); + (void) TIFFClose(out); + return (0); +} + +static int +processCompressOptions(char* opt) +{ + if (streq(opt, "none")) + compression = COMPRESSION_NONE; + else if (streq(opt, "packbits")) + compression = COMPRESSION_PACKBITS; + else if (strneq(opt, "lzw", 3)) { + char* cp = strchr(opt, ':'); + if (cp) + predictor = atoi(cp+1); + compression = COMPRESSION_LZW; + } else if (strneq(opt, "zip", 3)) { + char* cp = strchr(opt, ':'); + if (cp) + predictor = atoi(cp+1); + compression = COMPRESSION_DEFLATE; + } else + return (0); + return (1); +} + +char* stuff[] = { +"usage: tiffmedian [options] input.tif output.tif", +"where options are:", +" -r # make each strip have no more than # rows", +" -C # create a colormap with # entries", +" -f use Floyd-Steinberg dithering", +" -c lzw[:opts] compress output with Lempel-Ziv & Welch encoding", +" (no longer supported by default due to Unisys patent enforcement)", +" -c zip[:opts] compress output with deflate encoding", +" -c packbits compress output with packbits encoding", +" -c none use no compression algorithm on output", +"", +"LZW and deflate options:", +" # set predictor value", +"For example, -c lzw:2 to get LZW-encoded data with horizontal differencing", +NULL +}; + +static void +usage(void) +{ + char buf[BUFSIZ]; + int i; + + setbuf(stderr, buf); + for (i = 0; stuff[i] != NULL; i++) + fprintf(stderr, "%s\n", stuff[i]); + exit(-1); +} + +static void +get_histogram(TIFF* in, Colorbox* box) +{ + register unsigned char *inptr; + register int red, green, blue; + register uint32 j, i; + unsigned char *inputline; + + inputline = (unsigned char *)_TIFFmalloc(TIFFScanlineSize(in)); + if (inputline == NULL) { + fprintf(stderr, "No space for scanline buffer\n"); + exit(-1); + } + box->rmin = box->gmin = box->bmin = 999; + box->rmax = box->gmax = box->bmax = -1; + box->total = imagewidth * imagelength; + + { register int *ptr = &histogram[0][0][0]; + for (i = B_LEN*B_LEN*B_LEN; i-- > 0;) + *ptr++ = 0; + } + for (i = 0; i < imagelength; i++) { + if (TIFFReadScanline(in, inputline, i, 0) <= 0) + break; + inptr = inputline; + for (j = imagewidth; j-- > 0;) { + red = *inptr++ >> COLOR_SHIFT; + green = *inptr++ >> COLOR_SHIFT; + blue = *inptr++ >> COLOR_SHIFT; + if (red < box->rmin) + box->rmin = red; + if (red > box->rmax) + box->rmax = red; + if (green < box->gmin) + box->gmin = green; + if (green > box->gmax) + box->gmax = green; + if (blue < box->bmin) + box->bmin = blue; + if (blue > box->bmax) + box->bmax = blue; + histogram[red][green][blue]++; + } + } + _TIFFfree(inputline); +} + +static Colorbox * +largest_box(void) +{ + register Colorbox *p, *b; + register int size; + + b = NULL; + size = -1; + for (p = usedboxes; p != NULL; p = p->next) + if ((p->rmax > p->rmin || p->gmax > p->gmin || + p->bmax > p->bmin) && p->total > size) + size = (b = p)->total; + return (b); +} + +static void +splitbox(Colorbox* ptr) +{ + int hist2[B_LEN]; + int first, last; + register Colorbox *new; + register int *iptr, *histp; + register int i, j; + register int ir,ig,ib; + register int sum, sum1, sum2; + enum { RED, GREEN, BLUE } axis; + + /* + * See which axis is the largest, do a histogram along that + * axis. Split at median point. Contract both new boxes to + * fit points and return + */ + i = ptr->rmax - ptr->rmin; + if (i >= ptr->gmax - ptr->gmin && i >= ptr->bmax - ptr->bmin) + axis = RED; + else if (ptr->gmax - ptr->gmin >= ptr->bmax - ptr->bmin) + axis = GREEN; + else + axis = BLUE; + /* get histogram along longest axis */ + switch (axis) { + case RED: + histp = &hist2[ptr->rmin]; + for (ir = ptr->rmin; ir <= ptr->rmax; ++ir) { + *histp = 0; + for (ig = ptr->gmin; ig <= ptr->gmax; ++ig) { + iptr = &histogram[ir][ig][ptr->bmin]; + for (ib = ptr->bmin; ib <= ptr->bmax; ++ib) + *histp += *iptr++; + } + histp++; + } + first = ptr->rmin; + last = ptr->rmax; + break; + case GREEN: + histp = &hist2[ptr->gmin]; + for (ig = ptr->gmin; ig <= ptr->gmax; ++ig) { + *histp = 0; + for (ir = ptr->rmin; ir <= ptr->rmax; ++ir) { + iptr = &histogram[ir][ig][ptr->bmin]; + for (ib = ptr->bmin; ib <= ptr->bmax; ++ib) + *histp += *iptr++; + } + histp++; + } + first = ptr->gmin; + last = ptr->gmax; + break; + case BLUE: + histp = &hist2[ptr->bmin]; + for (ib = ptr->bmin; ib <= ptr->bmax; ++ib) { + *histp = 0; + for (ir = ptr->rmin; ir <= ptr->rmax; ++ir) { + iptr = &histogram[ir][ptr->gmin][ib]; + for (ig = ptr->gmin; ig <= ptr->gmax; ++ig) { + *histp += *iptr; + iptr += B_LEN; + } + } + histp++; + } + first = ptr->bmin; + last = ptr->bmax; + break; + } + /* find median point */ + sum2 = ptr->total / 2; + histp = &hist2[first]; + sum = 0; + for (i = first; i <= last && (sum += *histp++) < sum2; ++i) + ; + if (i == first) + i++; + + /* Create new box, re-allocate points */ + new = freeboxes; + freeboxes = new->next; + if (freeboxes) + freeboxes->prev = NULL; + if (usedboxes) + usedboxes->prev = new; + new->next = usedboxes; + usedboxes = new; + + histp = &hist2[first]; + for (sum1 = 0, j = first; j < i; j++) + sum1 += *histp++; + for (sum2 = 0, j = i; j <= last; j++) + sum2 += *histp++; + new->total = sum1; + ptr->total = sum2; + + new->rmin = ptr->rmin; + new->rmax = ptr->rmax; + new->gmin = ptr->gmin; + new->gmax = ptr->gmax; + new->bmin = ptr->bmin; + new->bmax = ptr->bmax; + switch (axis) { + case RED: + new->rmax = i-1; + ptr->rmin = i; + break; + case GREEN: + new->gmax = i-1; + ptr->gmin = i; + break; + case BLUE: + new->bmax = i-1; + ptr->bmin = i; + break; + } + shrinkbox(new); + shrinkbox(ptr); +} + +static void +shrinkbox(Colorbox* box) +{ + register int *histp, ir, ig, ib; + + if (box->rmax > box->rmin) { + for (ir = box->rmin; ir <= box->rmax; ++ir) + for (ig = box->gmin; ig <= box->gmax; ++ig) { + histp = &histogram[ir][ig][box->bmin]; + for (ib = box->bmin; ib <= box->bmax; ++ib) + if (*histp++ != 0) { + box->rmin = ir; + goto have_rmin; + } + } + have_rmin: + if (box->rmax > box->rmin) + for (ir = box->rmax; ir >= box->rmin; --ir) + for (ig = box->gmin; ig <= box->gmax; ++ig) { + histp = &histogram[ir][ig][box->bmin]; + ib = box->bmin; + for (; ib <= box->bmax; ++ib) + if (*histp++ != 0) { + box->rmax = ir; + goto have_rmax; + } + } + } +have_rmax: + if (box->gmax > box->gmin) { + for (ig = box->gmin; ig <= box->gmax; ++ig) + for (ir = box->rmin; ir <= box->rmax; ++ir) { + histp = &histogram[ir][ig][box->bmin]; + for (ib = box->bmin; ib <= box->bmax; ++ib) + if (*histp++ != 0) { + box->gmin = ig; + goto have_gmin; + } + } + have_gmin: + if (box->gmax > box->gmin) + for (ig = box->gmax; ig >= box->gmin; --ig) + for (ir = box->rmin; ir <= box->rmax; ++ir) { + histp = &histogram[ir][ig][box->bmin]; + ib = box->bmin; + for (; ib <= box->bmax; ++ib) + if (*histp++ != 0) { + box->gmax = ig; + goto have_gmax; + } + } + } +have_gmax: + if (box->bmax > box->bmin) { + for (ib = box->bmin; ib <= box->bmax; ++ib) + for (ir = box->rmin; ir <= box->rmax; ++ir) { + histp = &histogram[ir][box->gmin][ib]; + for (ig = box->gmin; ig <= box->gmax; ++ig) { + if (*histp != 0) { + box->bmin = ib; + goto have_bmin; + } + histp += B_LEN; + } + } + have_bmin: + if (box->bmax > box->bmin) + for (ib = box->bmax; ib >= box->bmin; --ib) + for (ir = box->rmin; ir <= box->rmax; ++ir) { + histp = &histogram[ir][box->gmin][ib]; + ig = box->gmin; + for (; ig <= box->gmax; ++ig) { + if (*histp != 0) { + box->bmax = ib; + goto have_bmax; + } + histp += B_LEN; + } + } + } +have_bmax: + ; +} + +static C_cell * +create_colorcell(int red, int green, int blue) +{ + register int ir, ig, ib, i; + register C_cell *ptr; + int mindist, next_n; + register int tmp, dist, n; + + ir = red >> (COLOR_DEPTH-C_DEPTH); + ig = green >> (COLOR_DEPTH-C_DEPTH); + ib = blue >> (COLOR_DEPTH-C_DEPTH); + ptr = (C_cell *)_TIFFmalloc(sizeof (C_cell)); + *(ColorCells + ir*C_LEN*C_LEN + ig*C_LEN + ib) = ptr; + ptr->num_ents = 0; + + /* + * Step 1: find all colors inside this cell, while we're at + * it, find distance of centermost point to furthest corner + */ + mindist = 99999999; + for (i = 0; i < num_colors; ++i) { + if (rm[i]>>(COLOR_DEPTH-C_DEPTH) != ir || + gm[i]>>(COLOR_DEPTH-C_DEPTH) != ig || + bm[i]>>(COLOR_DEPTH-C_DEPTH) != ib) + continue; + ptr->entries[ptr->num_ents][0] = i; + ptr->entries[ptr->num_ents][1] = 0; + ++ptr->num_ents; + tmp = rm[i] - red; + if (tmp < (MAX_COLOR/C_LEN/2)) + tmp = MAX_COLOR/C_LEN-1 - tmp; + dist = tmp*tmp; + tmp = gm[i] - green; + if (tmp < (MAX_COLOR/C_LEN/2)) + tmp = MAX_COLOR/C_LEN-1 - tmp; + dist += tmp*tmp; + tmp = bm[i] - blue; + if (tmp < (MAX_COLOR/C_LEN/2)) + tmp = MAX_COLOR/C_LEN-1 - tmp; + dist += tmp*tmp; + if (dist < mindist) + mindist = dist; + } + + /* + * Step 3: find all points within that distance to cell. + */ + for (i = 0; i < num_colors; ++i) { + if (rm[i] >> (COLOR_DEPTH-C_DEPTH) == ir && + gm[i] >> (COLOR_DEPTH-C_DEPTH) == ig && + bm[i] >> (COLOR_DEPTH-C_DEPTH) == ib) + continue; + dist = 0; + if ((tmp = red - rm[i]) > 0 || + (tmp = rm[i] - (red + MAX_COLOR/C_LEN-1)) > 0 ) + dist += tmp*tmp; + if ((tmp = green - gm[i]) > 0 || + (tmp = gm[i] - (green + MAX_COLOR/C_LEN-1)) > 0 ) + dist += tmp*tmp; + if ((tmp = blue - bm[i]) > 0 || + (tmp = bm[i] - (blue + MAX_COLOR/C_LEN-1)) > 0 ) + dist += tmp*tmp; + if (dist < mindist) { + ptr->entries[ptr->num_ents][0] = i; + ptr->entries[ptr->num_ents][1] = dist; + ++ptr->num_ents; + } + } + + /* + * Sort color cells by distance, use cheap exchange sort + */ + for (n = ptr->num_ents - 1; n > 0; n = next_n) { + next_n = 0; + for (i = 0; i < n; ++i) + if (ptr->entries[i][1] > ptr->entries[i+1][1]) { + tmp = ptr->entries[i][0]; + ptr->entries[i][0] = ptr->entries[i+1][0]; + ptr->entries[i+1][0] = tmp; + tmp = ptr->entries[i][1]; + ptr->entries[i][1] = ptr->entries[i+1][1]; + ptr->entries[i+1][1] = tmp; + next_n = i; + } + } + return (ptr); +} + +static void +map_colortable(void) +{ + register int *histp = &histogram[0][0][0]; + register C_cell *cell; + register int j, tmp, d2, dist; + int ir, ig, ib, i; + + for (ir = 0; ir < B_LEN; ++ir) + for (ig = 0; ig < B_LEN; ++ig) + for (ib = 0; ib < B_LEN; ++ib, histp++) { + if (*histp == 0) { + *histp = -1; + continue; + } + cell = *(ColorCells + + (((ir>>(B_DEPTH-C_DEPTH)) << C_DEPTH*2) + + ((ig>>(B_DEPTH-C_DEPTH)) << C_DEPTH) + + (ib>>(B_DEPTH-C_DEPTH)))); + if (cell == NULL ) + cell = create_colorcell( + ir << COLOR_SHIFT, + ig << COLOR_SHIFT, + ib << COLOR_SHIFT); + dist = 9999999; + for (i = 0; i < cell->num_ents && + dist > cell->entries[i][1]; ++i) { + j = cell->entries[i][0]; + d2 = rm[j] - (ir << COLOR_SHIFT); + d2 *= d2; + tmp = gm[j] - (ig << COLOR_SHIFT); + d2 += tmp*tmp; + tmp = bm[j] - (ib << COLOR_SHIFT); + d2 += tmp*tmp; + if (d2 < dist) { + dist = d2; + *histp = j; + } + } + } +} + +/* + * straight quantization. Each pixel is mapped to the colors + * closest to it. Color values are rounded to the nearest color + * table entry. + */ +static void +quant(TIFF* in, TIFF* out) +{ + unsigned char *outline, *inputline; + register unsigned char *outptr, *inptr; + register uint32 i, j; + register int red, green, blue; + + inputline = (unsigned char *)_TIFFmalloc(TIFFScanlineSize(in)); + outline = (unsigned char *)_TIFFmalloc(imagewidth); + for (i = 0; i < imagelength; i++) { + if (TIFFReadScanline(in, inputline, i, 0) <= 0) + break; + inptr = inputline; + outptr = outline; + for (j = 0; j < imagewidth; j++) { + red = *inptr++ >> COLOR_SHIFT; + green = *inptr++ >> COLOR_SHIFT; + blue = *inptr++ >> COLOR_SHIFT; + *outptr++ = histogram[red][green][blue]; + } + if (TIFFWriteScanline(out, outline, i, 0) < 0) + break; + } + _TIFFfree(inputline); + _TIFFfree(outline); +} + +#define SWAP(type,a,b) { type p; p = a; a = b; b = p; } + +#define GetInputLine(tif, row, bad) \ + if (TIFFReadScanline(tif, inputline, row, 0) <= 0) \ + bad; \ + inptr = inputline; \ + nextptr = nextline; \ + for (j = 0; j < imagewidth; ++j) { \ + *nextptr++ = *inptr++; \ + *nextptr++ = *inptr++; \ + *nextptr++ = *inptr++; \ + } +#define GetComponent(raw, cshift, c) \ + cshift = raw; \ + if (cshift < 0) \ + cshift = 0; \ + else if (cshift >= MAX_COLOR) \ + cshift = MAX_COLOR-1; \ + c = cshift; \ + cshift >>= COLOR_SHIFT; + +static void +quant_fsdither(TIFF* in, TIFF* out) +{ + unsigned char *outline, *inputline, *inptr; + short *thisline, *nextline; + register unsigned char *outptr; + register short *thisptr, *nextptr; + register uint32 i, j; + uint32 imax, jmax; + int lastline, lastpixel; + + imax = imagelength - 1; + jmax = imagewidth - 1; + inputline = (unsigned char *)_TIFFmalloc(TIFFScanlineSize(in)); + thisline = (short *)_TIFFmalloc(imagewidth * 3 * sizeof (short)); + nextline = (short *)_TIFFmalloc(imagewidth * 3 * sizeof (short)); + outline = (unsigned char *) _TIFFmalloc(TIFFScanlineSize(out)); + + GetInputLine(in, 0, goto bad); /* get first line */ + for (i = 1; i <= imagelength; ++i) { + SWAP(short *, thisline, nextline); + lastline = (i >= imax); + if (i <= imax) + GetInputLine(in, i, break); + thisptr = thisline; + nextptr = nextline; + outptr = outline; + for (j = 0; j < imagewidth; ++j) { + int red, green, blue; + register int oval, r2, g2, b2; + + lastpixel = (j == jmax); + GetComponent(*thisptr++, r2, red); + GetComponent(*thisptr++, g2, green); + GetComponent(*thisptr++, b2, blue); + oval = histogram[r2][g2][b2]; + if (oval == -1) { + int ci; + register int cj, tmp, d2, dist; + register C_cell *cell; + + cell = *(ColorCells + + (((r2>>(B_DEPTH-C_DEPTH)) << C_DEPTH*2) + + ((g2>>(B_DEPTH-C_DEPTH)) << C_DEPTH ) + + (b2>>(B_DEPTH-C_DEPTH)))); + if (cell == NULL) + cell = create_colorcell(red, + green, blue); + dist = 9999999; + for (ci = 0; ci < cell->num_ents && dist > cell->entries[ci][1]; ++ci) { + cj = cell->entries[ci][0]; + d2 = (rm[cj] >> COLOR_SHIFT) - r2; + d2 *= d2; + tmp = (gm[cj] >> COLOR_SHIFT) - g2; + d2 += tmp*tmp; + tmp = (bm[cj] >> COLOR_SHIFT) - b2; + d2 += tmp*tmp; + if (d2 < dist) { + dist = d2; + oval = cj; + } + } + histogram[r2][g2][b2] = oval; + } + *outptr++ = oval; + red -= rm[oval]; + green -= gm[oval]; + blue -= bm[oval]; + if (!lastpixel) { + thisptr[0] += blue * 7 / 16; + thisptr[1] += green * 7 / 16; + thisptr[2] += red * 7 / 16; + } + if (!lastline) { + if (j != 0) { + nextptr[-3] += blue * 3 / 16; + nextptr[-2] += green * 3 / 16; + nextptr[-1] += red * 3 / 16; + } + nextptr[0] += blue * 5 / 16; + nextptr[1] += green * 5 / 16; + nextptr[2] += red * 5 / 16; + if (!lastpixel) { + nextptr[3] += blue / 16; + nextptr[4] += green / 16; + nextptr[5] += red / 16; + } + nextptr += 3; + } + } + if (TIFFWriteScanline(out, outline, i-1, 0) < 0) + break; + } +bad: + _TIFFfree(inputline); + _TIFFfree(thisline); + _TIFFfree(nextline); + _TIFFfree(outline); +} diff --git a/tools/tiffsplit.c b/tools/tiffsplit.c new file mode 100755 index 0000000..ef261c6 --- /dev/null +++ b/tools/tiffsplit.c @@ -0,0 +1,226 @@ +/* $Header: /home/cvsroot/libtiff/tools/tiffsplit.c,v 1.1.1.1 2000/06/24 19:10:16 tshead Exp $ */ + +/* + * Copyright (c) 1992-1997 Sam Leffler + * Copyright (c) 1992-1997 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the names of + * Sam Leffler and Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Sam Leffler and Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include +#include +#include + +#include "tiffio.h" + +#define streq(a,b) (strcmp(a,b) == 0) +#define CopyField(tag, v) \ + if (TIFFGetField(in, tag, &v)) TIFFSetField(out, tag, v) +#define CopyField2(tag, v1, v2) \ + if (TIFFGetField(in, tag, &v1, &v2)) TIFFSetField(out, tag, v1, v2) +#define CopyField3(tag, v1, v2, v3) \ + if (TIFFGetField(in, tag, &v1, &v2, &v3)) TIFFSetField(out, tag, v1, v2, v3) + +static char fname[1024+1]; + +static int tiffcp(TIFF*, TIFF*); +static void newfilename(void); +static int cpStrips(TIFF*, TIFF*); +static int cpTiles(TIFF*, TIFF*); + +int +main(int argc, char* argv[]) +{ + TIFF *in, *out; + + if (argc < 2) { + fprintf(stderr, "usage: tiffsplit input.tif [prefix]\n"); + return (-3); + } + if (argc > 2) + strcpy(fname, argv[2]); + in = TIFFOpen(argv[1], "r"); + if (in != NULL) { + do { + char path[1024+1]; + newfilename(); + strcpy(path, fname); + strcat(path, ".tif"); + out = TIFFOpen(path, "w"); + if (out == NULL) + return (-2); + if (!tiffcp(in, out)) + return (-1); + TIFFClose(out); + } while (TIFFReadDirectory(in)); + (void) TIFFClose(in); + } + return (0); +} + +static void +newfilename(void) +{ + static int first = 1; + static long fnum; + static short defname; + static char *fpnt; + + if (first) { + if (fname[0]) { + fpnt = fname + strlen(fname); + defname = 0; + } else { + fname[0] = 'x'; + fpnt = fname + 1; + defname = 1; + } + first = 0; + } +#define MAXFILES 676 + if (fnum == MAXFILES) { + if (!defname || fname[0] == 'z') { + fprintf(stderr, "tiffsplit: too many files.\n"); + exit(1); + } + fname[0]++; + fnum = 0; + } + fpnt[0] = fnum / 26 + 'a'; + fpnt[1] = fnum % 26 + 'a'; + fnum++; +} + +static int +tiffcp(TIFF* in, TIFF* out) +{ + short bitspersample, samplesperpixel, shortv, *shortav; + uint32 w, l; + float floatv; + char *stringv; + uint32 longv; + + CopyField(TIFFTAG_SUBFILETYPE, longv); + CopyField(TIFFTAG_TILEWIDTH, w); + CopyField(TIFFTAG_TILELENGTH, l); + CopyField(TIFFTAG_IMAGEWIDTH, w); + CopyField(TIFFTAG_IMAGELENGTH, l); + CopyField(TIFFTAG_BITSPERSAMPLE, bitspersample); + CopyField(TIFFTAG_COMPRESSION, shortv); + CopyField(TIFFTAG_PREDICTOR, shortv); + CopyField(TIFFTAG_PHOTOMETRIC, shortv); + CopyField(TIFFTAG_THRESHHOLDING, shortv); + CopyField(TIFFTAG_FILLORDER, shortv); + CopyField(TIFFTAG_ORIENTATION, shortv); + CopyField(TIFFTAG_SAMPLESPERPIXEL, samplesperpixel); + CopyField(TIFFTAG_MINSAMPLEVALUE, shortv); + CopyField(TIFFTAG_MAXSAMPLEVALUE, shortv); + CopyField(TIFFTAG_XRESOLUTION, floatv); + CopyField(TIFFTAG_YRESOLUTION, floatv); + CopyField(TIFFTAG_GROUP3OPTIONS, longv); + CopyField(TIFFTAG_GROUP4OPTIONS, longv); + CopyField(TIFFTAG_RESOLUTIONUNIT, shortv); + CopyField(TIFFTAG_PLANARCONFIG, shortv); + CopyField(TIFFTAG_ROWSPERSTRIP, longv); + CopyField(TIFFTAG_XPOSITION, floatv); + CopyField(TIFFTAG_YPOSITION, floatv); + CopyField(TIFFTAG_IMAGEDEPTH, longv); + CopyField(TIFFTAG_TILEDEPTH, longv); + CopyField2(TIFFTAG_EXTRASAMPLES, shortv, shortav); + { uint16 *red, *green, *blue; + CopyField3(TIFFTAG_COLORMAP, red, green, blue); + } + { uint16 shortv2; + CopyField2(TIFFTAG_PAGENUMBER, shortv, shortv2); + } + CopyField(TIFFTAG_ARTIST, stringv); + CopyField(TIFFTAG_IMAGEDESCRIPTION, stringv); + CopyField(TIFFTAG_MAKE, stringv); + CopyField(TIFFTAG_MODEL, stringv); + CopyField(TIFFTAG_SOFTWARE, stringv); + CopyField(TIFFTAG_DATETIME, stringv); + CopyField(TIFFTAG_HOSTCOMPUTER, stringv); + CopyField(TIFFTAG_PAGENAME, stringv); + CopyField(TIFFTAG_DOCUMENTNAME, stringv); + if (TIFFIsTiled(in)) + return (cpTiles(in, out)); + else + return (cpStrips(in, out)); +} + +static int +cpStrips(TIFF* in, TIFF* out) +{ + tsize_t bufsize = TIFFStripSize(in); + unsigned char *buf = (unsigned char *)_TIFFmalloc(bufsize); + + if (buf) { + tstrip_t s, ns = TIFFNumberOfStrips(in); + uint32 *bytecounts; + + TIFFGetField(in, TIFFTAG_STRIPBYTECOUNTS, &bytecounts); + for (s = 0; s < ns; s++) { + if (bytecounts[s] > bufsize) { + buf = (unsigned char *)_TIFFrealloc(buf, bytecounts[s]); + if (!buf) + return (0); + bufsize = bytecounts[s]; + } + if (TIFFReadRawStrip(in, s, buf, bytecounts[s]) < 0 || + TIFFWriteRawStrip(out, s, buf, bytecounts[s]) < 0) { + _TIFFfree(buf); + return (0); + } + } + _TIFFfree(buf); + return (1); + } + return (0); +} + +static int +cpTiles(TIFF* in, TIFF* out) +{ + tsize_t bufsize = TIFFTileSize(in); + unsigned char *buf = (unsigned char *)_TIFFmalloc(bufsize); + + if (buf) { + ttile_t t, nt = TIFFNumberOfTiles(in); + uint32 *bytecounts; + + TIFFGetField(in, TIFFTAG_TILEBYTECOUNTS, &bytecounts); + for (t = 0; t < nt; t++) { + if (bytecounts[t] > bufsize) { + buf = (unsigned char *)_TIFFrealloc(buf, bytecounts[t]); + if (!buf) + return (0); + bufsize = bytecounts[t]; + } + if (TIFFReadRawTile(in, t, buf, bytecounts[t]) < 0 || + TIFFWriteRawTile(out, t, buf, bytecounts[t]) < 0) { + _TIFFfree(buf); + return (0); + } + } + _TIFFfree(buf); + return (1); + } + return (0); +} diff --git a/tools/ycbcr.c b/tools/ycbcr.c new file mode 100755 index 0000000..959825a --- /dev/null +++ b/tools/ycbcr.c @@ -0,0 +1,161 @@ +float ycbcrCoeffs[3] = { .299, .587, .114 }; +/* default coding range is CCIR Rec 601-1 with no headroom/footroom */ +unsigned long refBlackWhite[6] = { 0, 255, 128, 255, 128, 255 }; + +#define LumaRed ycbcrCoeffs[0] +#define LumaGreen ycbcrCoeffs[1] +#define LumaBlue ycbcrCoeffs[2] + +long eRtotal = 0; +long eGtotal = 0; +long eBtotal = 0; +long preveRtotal = 0; +long preveGtotal = 0; +long preveBtotal = 0; +unsigned long AbseRtotal = 0; +unsigned long AbseGtotal = 0; +unsigned long AbseBtotal = 0; +unsigned long eCodes = 0; +unsigned long preveCodes = 0; +unsigned long eBits = 0; +unsigned long preveBits = 0; + +static void setupLumaTables(); +static int abs(int v) { return (v < 0 ? -v : v); } +static double pct(int v,double range) { return (v*100. / range); } +static void check(int R, int G, int B); + +float D1, D2; +float D3, D4; +float D5, D6; + +int +main(int argc, char* argv) +{ + int R, G, B; + + if (argc > 1) { + refBlackWhite[0] = 16; + refBlackWhite[1] = 235; + refBlackWhite[2] = 128; + refBlackWhite[3] = 240; + refBlackWhite[4] = 128; + refBlackWhite[5] = 240; + } + D3 = 2 - 2*LumaRed; + D4 = 2 - 2*LumaBlue; + D1 = 1. / D3; + D2 = 1. / D4; + D5 = D3*LumaRed / LumaGreen; + D6 = D4*LumaBlue / LumaGreen; + setupLumaTables(); + for (R = 0; R < 256; R++) { + for (G = 0; G < 256; G++) + for (B = 0; B < 256; B++) + check(R, G, B); + printf("[%3u] c %u/%u b %u/%u (R %u/%d/%u G %u/%d/%u B %u/%d/%u)\n" + , R + , eCodes - preveCodes, eCodes + , eBits - preveBits, eBits + , abs(AbseRtotal - preveRtotal), eRtotal , AbseRtotal + , abs(AbseGtotal - preveGtotal), eGtotal , AbseGtotal + , abs(AbseBtotal - preveBtotal), eBtotal , AbseBtotal + ); + preveRtotal = AbseRtotal; + preveGtotal = AbseGtotal; + preveBtotal = AbseBtotal; + preveCodes = eCodes; + preveBits = eBits; + } + printf("%u total codes\n", 256*256*256); + printf("total error: %u codes %u bits (R %d/%u G %d/%u B %d/%u)\n" + , eCodes + , eBits + , eRtotal , AbseRtotal + , eGtotal , AbseGtotal + , eBtotal , AbseBtotal + ); + return (0); +} + +float *lumaRed; +float *lumaGreen; +float *lumaBlue; + +static float* +setupLuma(float c) +{ + float *v = (float *)_TIFFmalloc(256 * sizeof (float)); + int i; + for (i = 0; i < 256; i++) + v[i] = c * i; + return (v); +} + +static void +setupLumaTables(void) +{ + lumaRed = setupLuma(LumaRed); + lumaGreen = setupLuma(LumaGreen); + lumaBlue = setupLuma(LumaBlue); +} + +static unsigned +V2Code(float f, unsigned long RB, unsigned long RW, int CR) +{ + unsigned int c = (unsigned int)((((f)*(RW-RB)/CR)+RB)+.5); + return (c > 255 ? 255 : c); +} + +#define Code2V(c, RB, RW, CR) ((((c)-(int)RB)*(float)CR)/(float)(RW-RB)) + +#define CLAMP(f,min,max) \ + (int)((f)+.5 < (min) ? (min) : (f)+.5 > (max) ? (max) : (f)+.5) + +static +void +check(int R, int G, int B) +{ + float Y, Cb, Cr; + int iY, iCb, iCr; + float rY, rCb, rCr; + float rR, rG, rB; + int eR, eG, eB; + + Y = lumaRed[R] + lumaGreen[G] + lumaBlue[B]; + Cb = (B - Y)*D2; + Cr = (R - Y)*D1; + iY = V2Code(Y, refBlackWhite[0], refBlackWhite[1], 255); + iCb = V2Code(Cb, refBlackWhite[2], refBlackWhite[3], 127); + iCr = V2Code(Cr, refBlackWhite[4], refBlackWhite[5], 127); + rCb = Code2V(iCb, refBlackWhite[2], refBlackWhite[3], 127); + rCr = Code2V(iCr, refBlackWhite[4], refBlackWhite[5], 127); + rY = Code2V(iY, refBlackWhite[0], refBlackWhite[1], 255); + rR = rY + rCr*D3; + rB = rY + rCb*D4; + rG = rY - rCb*D6 - rCr*D5; + eR = R - CLAMP(rR,0,255); + eG = G - CLAMP(rG,0,255); + eB = B - CLAMP(rB,0,255); + if (abs(eR) > 1 || abs(eG) > 1 || abs(eB) > 1) { + printf("R %u G %u B %u", R, G, B); + printf(" Y %g Cb %g Cr %g", Y, Cb, Cr); + printf(" iY %u iCb %u iCr %u", iY, iCb, iCr); + printf("\n -> Y %g Cb %g Cr %g", rY, rCb, rCr); + printf(" R %g (%u) G %g (%u) B %g (%u) E=[%d %d %d])\n" + , rR, CLAMP(rR,0,255) + , rG, CLAMP(rG,0,255) + , rB, CLAMP(rB,0,255) + , eR, eG, eB + ); + } + eRtotal += eR; + eGtotal += eG; + eBtotal += eB; + AbseRtotal += abs(eR); + AbseGtotal += abs(eG); + AbseBtotal += abs(eB); + if (eR | eG | eB) + eCodes++; + eBits += abs(eR) + abs(eG) + abs(eB); +} diff --git a/version b/version new file mode 100755 index 0000000..47067f5 --- /dev/null +++ b/version @@ -0,0 +1 @@ +3.5.5

    Ne9$bt6!zFKB7v{ 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 Yq>hJtiCT{s&!NyAi8)!zi`)cWN1}B9Pe{RVL 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 VXd^P!Eq=)c@n9&wEFV(H|DGITg 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