diff --git a/evaluation/all.py b/evaluation/all.py index 2cc2038c71807..485a1d7dc0636 100644 --- a/evaluation/all.py +++ b/evaluation/all.py @@ -9,19 +9,20 @@ from benchmarks.mibench.automotive.bitcount.benchmark import benchmark as bitcount from benchmarks.mibench.automotive.qsort.benchmark import benchmark as qsort from benchmarks.mibench.automotive.susan.benchmark import benchmark as susan -from benchmarks.mibench.consumer.jpeg.benchmark import cjpeg as cjpeg -from benchmarks.mibench.consumer.jpeg.benchmark import djpeg as djpeg +from benchmarks.mibench.consumer.jpeg.benchmark import cjpeg, djpeg from benchmarks.mibench.consumer.lame.benchmark import benchmark as lame +from benchmarks.mibench.consumer.tiff.benchmark import tiff2bw, tiff2rgba, tiff2ps, fax2ps, fax2tiff, gif2tiff, pal2rgb, \ + ppm2tiff, ras2tiff, rgb2ycbcr, tiffcmp, tiffcp, tiffdither, tiffdump, tiffinfo, tiffmedian, tiffsplit -LLVM_DIR = Path(os.environ['LLVM_DIR']) +from benchmarks.mibench.consumer.typeset.benchmark import benchmark as typeset def main(): - llvm = LLVM(LLVM_DIR) + llvm_dir = Path(os.environ['LLVM_DIR']) + llvm = LLVM(llvm_dir) benchmarks = [ sqlite, - basicmath, bitcount, qsort, @@ -29,6 +30,24 @@ def main(): cjpeg, djpeg, lame, + tiff2bw, + tiff2rgba, + tiff2ps, + tiffcmp, + tiffcp, + tiffdither, + tiffdump, + tiffinfo, + tiffmedian, + tiffsplit, + fax2ps, + fax2tiff, + gif2tiff, + pal2rgb, + ppm2tiff, + ras2tiff, + rgb2ycbcr, + typeset ] sizes = [] @@ -60,12 +79,18 @@ def run_opt_then_size(benchmark, flags): sizes.append((before_size, after_size)) - # print like a table print(f'{"Benchmark":>15} {"constargs":>10} {"cloning":>10} {"diff(Bytes)":>12} {"diff(%)":>8}') for benchmark, (before_size, after_size) in zip(benchmarks, sizes): diff = -(after_size - before_size) print(f'{benchmark.name:>15} {before_size:>10} {after_size:>10} {diff :>12} {100 * diff / before_size:>8.2f}') + with open('sizes.csv', 'w') as f: + f.write('benchmark,before,after\n') + for benchmark, (before_size, after_size) in zip(benchmarks, sizes): + f.write(f'{benchmark.name},{before_size},{after_size}\n') + + print('Sizes written to sizes.csv') + if __name__ == '__main__': main() diff --git a/evaluation/benchmarks/mibench/consumer/tiff/benchmark.py b/evaluation/benchmarks/mibench/consumer/tiff/benchmark.py new file mode 100644 index 0000000000000..e30add92bb41a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/benchmark.py @@ -0,0 +1,233 @@ +import glob +from pathlib import Path +from benchmarking import Benchmark, Workload + +DIR = Path(__file__).parent + +libs = ['libtiff/tif_aux.c', 'libtiff/tif_close.c', 'libtiff/tif_codec.c', 'libtiff/tif_compress.c', + '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/tif_fax3sm.c', + 'libtiff/tif_getimage.c', 'libtiff/tif_jpeg.c', 'libtiff/tif_flush.c', 'libtiff/tif_luv.c', + 'libtiff/tif_lzw.c', 'libtiff/tif_next.c', 'libtiff/tif_open.c', 'libtiff/tif_packbits.c', + 'libtiff/tif_pixarlog.c', 'libtiff/tif_predict.c', 'libtiff/tif_print.c', 'libtiff/tif_read.c', + 'libtiff/tif_swab.c', 'libtiff/tif_strip.c', 'libtiff/tif_thunder.c', 'libtiff/tif_tile.c', + 'libtiff/tif_unix.c', 'libtiff/tif_version.c', 'libtiff/tif_warning.c', 'libtiff/tif_write.c', + 'libtiff/tif_zip.c'] + +# tiff2bw +tiff2bw = Benchmark( + name='tiff2bw', + path=DIR, + src_files=[DIR / 'tiff-v3.5.4' / f for f in libs + ['tools/tiff2bw.c']], + build_flags=[ + f'-I{str(DIR / "tiff-v3.5.4")}', + f'-I{str(DIR / "tiff-v3.5.4" / "libtiff")}', + ], + workloads=[ + Workload(None, + [ + DIR / 'tiff-data/large.tif', + DIR / 'output_largebw.tif' + ], + None, + None), + ] +) + +# tiff2rgba +tiff2rgba = Benchmark( + name='tiff2rgba', + path=DIR, + src_files=[DIR / 'tiff-v3.5.4' / f for f in libs + ['tools/tiff2rgba.c']], + build_flags=[ + f'-I{str(DIR / "tiff-v3.5.4")}', + f'-I{str(DIR / "tiff-v3.5.4" / "libtiff")}', + ], + workloads=[ + Workload(None, + [ + DIR / 'tiff-data/large.tif', + DIR / 'output_large.tif' + ], + None, + None), + ] +) + +# tiff2ps +tiff2ps = Benchmark( + name='tiff2ps', + path=DIR, + src_files=[DIR / 'tiff-v3.5.4' / f for f in libs + ['tools/tiff2ps.c']], + build_flags=[ + f'-I{str(DIR / "tiff-v3.5.4")}', + f'-I{str(DIR / "tiff-v3.5.4" / "libtiff")}', + ], + workloads=[ + Workload(None, + [ + DIR / 'tiff-data/large.tif', + DIR / 'output_large.ps' + ], + None, + None), + ] +) + +# fax2ps +fax2ps = Benchmark( + name='fax2ps', + path=DIR, + src_files=[DIR / 'tiff-v3.5.4' / f for f in libs + ['tools/fax2ps.c']], + build_flags=[ + f'-I{str(DIR / "tiff-v3.5.4")}', + f'-I{str(DIR / "tiff-v3.5.4" / "libtiff")}', + ], + workloads=[] +) + +# fax2tiff +fax2tiff = Benchmark( + name='fax2tiff', + path=DIR, + src_files=[DIR / 'tiff-v3.5.4' / f for f in libs + ['tools/fax2tiff.c']], + build_flags=[ + f'-I{str(DIR / "tiff-v3.5.4")}', + f'-I{str(DIR / "tiff-v3.5.4" / "libtiff")}', + ], + workloads=[] +) + +# gif2tiff +gif2tiff = Benchmark( + name='gif2tiff', + path=DIR, + src_files=[DIR / 'tiff-v3.5.4' / f for f in libs + ['tools/gif2tiff.c']], + build_flags=[ + f'-I{str(DIR / "tiff-v3.5.4")}', + f'-I{str(DIR / "tiff-v3.5.4" / "libtiff")}', + ], + workloads=[] +) + +# pal2rgb +pal2rgb = Benchmark( + name='pal2rgb', + path=DIR, + src_files=[DIR / 'tiff-v3.5.4' / f for f in libs + ['tools/pal2rgb.c']], + build_flags=[ + f'-I{str(DIR / "tiff-v3.5.4")}', + f'-I{str(DIR / "tiff-v3.5.4" / "libtiff")}', + ], + workloads=[] +) +# ppm2tiff +ppm2tiff = Benchmark( + name='ppm2tiff', + path=DIR, + src_files=[DIR / 'tiff-v3.5.4' / f for f in libs + ['tools/ppm2tiff.c']], + build_flags=[ + f'-I{str(DIR / "tiff-v3.5.4")}', + f'-I{str(DIR / "tiff-v3.5.4" / "libtiff")}', + ], + workloads=[] +) +# ras2tiff +ras2tiff = Benchmark( + name='ras2tiff', + path=DIR, + src_files=[DIR / 'tiff-v3.5.4' / f for f in libs + ['tools/ras2tiff.c']], + build_flags=[ + f'-I{str(DIR / "tiff-v3.5.4")}', + f'-I{str(DIR / "tiff-v3.5.4" / "libtiff")}', + ], + workloads=[] +) +# rgb2ycbcr +rgb2ycbcr = Benchmark( + name='rgb2ycbcr', + path=DIR, + src_files=[DIR / 'tiff-v3.5.4' / f for f in libs + ['tools/rgb2ycbcr.c']], + build_flags=[ + f'-I{str(DIR / "tiff-v3.5.4")}', + f'-I{str(DIR / "tiff-v3.5.4" / "libtiff")}', + ], + workloads=[] +) +# tiffcmp +tiffcmp = Benchmark( + name='tiffcmp', + path=DIR, + src_files=[DIR / 'tiff-v3.5.4' / f for f in libs + ['tools/tiffcmp.c']], + build_flags=[ + f'-I{str(DIR / "tiff-v3.5.4")}', + f'-I{str(DIR / "tiff-v3.5.4" / "libtiff")}', + ], + workloads=[] +) +# tiffcp +tiffcp = Benchmark( + name='tiffcp', + path=DIR, + src_files=[DIR / 'tiff-v3.5.4' / f for f in libs + ['tools/tiffcp.c']], + build_flags=[ + f'-I{str(DIR / "tiff-v3.5.4")}', + f'-I{str(DIR / "tiff-v3.5.4" / "libtiff")}', + ], + workloads=[] +) +# tiffdither +tiffdither = Benchmark( + name='tiffdither', + path=DIR, + src_files=[DIR / 'tiff-v3.5.4' / f for f in libs + ['tools/tiffdither.c']], + build_flags=[ + f'-I{str(DIR / "tiff-v3.5.4")}', + f'-I{str(DIR / "tiff-v3.5.4" / "libtiff")}', + ], + workloads=[] +) +# tiffdump +tiffdump = Benchmark( + name='tiffdump', + path=DIR, + src_files=[DIR / 'tiff-v3.5.4' / f for f in libs + ['tools/tiffdump.c']], + build_flags=[ + f'-I{str(DIR / "tiff-v3.5.4")}', + f'-I{str(DIR / "tiff-v3.5.4" / "libtiff")}', + ], + workloads=[] +) +# tiffinfo +tiffinfo = Benchmark( + name='tiffinfo', + path=DIR, + src_files=[DIR / 'tiff-v3.5.4' / f for f in libs + ['tools/tiffinfo.c']], + build_flags=[ + f'-I{str(DIR / "tiff-v3.5.4")}', + f'-I{str(DIR / "tiff-v3.5.4" / "libtiff")}', + ], + workloads=[] +) +# tiffmedian +tiffmedian = Benchmark( + name='tiffmedian', + path=DIR, + src_files=[DIR / 'tiff-v3.5.4' / f for f in libs + ['tools/tiffmedian.c']], + build_flags=[ + f'-I{str(DIR / "tiff-v3.5.4")}', + f'-I{str(DIR / "tiff-v3.5.4" / "libtiff")}', + ], + workloads=[] +) +# tiffsplit +tiffsplit = Benchmark( + name='tiffsplit', + path=DIR, + src_files=[DIR / 'tiff-v3.5.4' / f for f in libs + ['tools/tiffsplit.c']], + build_flags=[ + f'-I{str(DIR / "tiff-v3.5.4")}', + f'-I{str(DIR / "tiff-v3.5.4" / "libtiff")}', + ], + workloads=[] +) diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-data/large.tif b/evaluation/benchmarks/mibench/consumer/tiff/tiff-data/large.tif new file mode 100755 index 0000000000000..347a4bca51306 Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-data/large.tif differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-data/largebw.tif b/evaluation/benchmarks/mibench/consumer/tiff/tiff-data/largebw.tif new file mode 100755 index 0000000000000..c04f83a151b0f Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-data/largebw.tif differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-data/small.tif b/evaluation/benchmarks/mibench/consumer/tiff/tiff-data/small.tif new file mode 100755 index 0000000000000..91913240f1a3c Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-data/small.tif differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-data/smallbw.tif b/evaluation/benchmarks/mibench/consumer/tiff/tiff-data/smallbw.tif new file mode 100755 index 0000000000000..f5e9379626448 Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-data/smallbw.tif differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/COPYRIGHT b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/COPYRIGHT new file mode 100755 index 0000000000000..8282186151e22 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/Makefile b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/Makefile new file mode 100644 index 0000000000000..7fe051016a1eb --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/Makefile @@ -0,0 +1,550 @@ +#! smake +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/Makefile.in,v 1.1.1.1 2000/11/06 19:52:22 mguthaus Exp $ +# +# Warning, this file was automatically created by the TIFF configure script +# +# 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 = . + +# +# VERSION: v3.5.4 +# DATE: Tue 27 May 15:00:22 UTC 2025 +# TARGET: x86_64-unknown-linux +# CCOMPILER: /usr/bin/gcc +# + +SHELL = /usr/bin/sh +NULL = +ECHO = echo +GENDIST = ${TOOLROOT}/usr/sbin/gendist +INSTALL = ${SHELL} ../port/install.sh + +all default: + @if [ "no" = 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 [ "no" = yes ]; then \ + ${ECHO} "= "html; cd html; ${MAKE} install; \ + else \ + true; \ + fi + +clean: + @if [ "no" = 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 [ lib != /usr/lib ]; then \ + ${INSTALL} -idb tiff.sw.tools -F /usr/lib \ + -lns lib/libtiff.a -O libtiff.a; \ + 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/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/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 \ + ${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 v3.5.4 | 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="v3.5.4"; \ + 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/Makefile.in b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/Makefile.in new file mode 100755 index 0000000000000..11dfacf992a4f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/Makefile.in @@ -0,0 +1,550 @@ +#! smake +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/Makefile.in,v 1.1.1.1 2000/11/06 19:52:22 mguthaus 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/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/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 \ + ${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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/README b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/README new file mode 100755 index 0000000000000..ecfc51b7c4b8a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/README @@ -0,0 +1,61 @@ +$Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/README,v 1.1.1.1 2000/11/06 19:52:22 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/TODO b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/TODO new file mode 100755 index 0000000000000..7645c82535743 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/TODO @@ -0,0 +1,9 @@ +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/TODO,v 1.1.1.1 2000/11/06 19:52:22 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/VERSION b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/VERSION new file mode 100755 index 0000000000000..65afb3b886123 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/VERSION @@ -0,0 +1 @@ +3.5.4 diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/config.guess b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/config.guess new file mode 100755 index 0000000000000..1c1fbc711be93 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/config.site b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/config.site new file mode 100755 index 0000000000000..f1b55af0ba7a7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/config.site @@ -0,0 +1,162 @@ +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/config.site,v 1.1.1.1 2000/11/06 19:52:22 mguthaus 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="no" # 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="bin" # directory for tools +DIR_LIB="lib" # directory for libraries +DIR_INC="include" # directory for include files +DIR_MAN="man" # directory for manual pages +DIR_HTML="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="MSB2LSB" # 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="ssbig-na-sstrix-ar" # pathname of suitable ar program +AR="ar" # pathname of suitable ar program +#AROPTS="rc" # options to ar for creating archive +#CC="ssbig-na-sstrix-gcc" # name/pathname of C compiler +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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/config.sub b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/config.sub new file mode 100755 index 0000000000000..bf932cb9dd790 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/configure b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/configure new file mode 100755 index 0000000000000..f116942770ea1 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/configure @@ -0,0 +1,1833 @@ +#!/bin/sh +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/configure,v 1.1.1.1 2000/11/06 19:52:22 mguthaus 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=./bin # destination for applications +DIR_LIB=./lib # destination for library +DIR_INC=./include # destination for include files +DIR_HTML=./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= # 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 ssbig-na-sstrix-ranlib $PATH` +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" + echo "#define HOST_BIGENDIAN 1" + Note "... using big-endian byte order for your $CPU cpu" + +# 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.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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/acorn/Makefile b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/acorn/Makefile new file mode 100755 index 0000000000000..8f01477841e88 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/acorn/ReadMe b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/acorn/ReadMe new file mode 100755 index 0000000000000..dc16a79d94b3a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/acorn/SetVars b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/acorn/SetVars new file mode 100755 index 0000000000000..ea12d71d87fe7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/acorn/SetVars @@ -0,0 +1,3 @@ +Set LibTIFF$Dir +Set LibTIFF$Path . +Set C$Path ,LibTIFF: diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/acorn/cleanlib b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/acorn/cleanlib new file mode 100755 index 0000000000000..78a2d0342eef8 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/acorn/convert b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/acorn/convert new file mode 100755 index 0000000000000..1f64ed20de937 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/acorn/install b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/acorn/install new file mode 100755 index 0000000000000..fa49d1ba840e8 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/addtiffo/Makefile b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/addtiffo/Makefile new file mode 100755 index 0000000000000..81759b42582f1 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/addtiffo/Makefile @@ -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 = gcc +CXX = gcc +CFLAGS = -O -I$(LIBTIFF_DIR) +LIBS = $(LIBTIFF_DIR)/libtiff.a -lm + +addtiffo: addtiffo.o tif_overview.o rawblockedimage.o + $(CXX) $(CFLAGS) addtiffo.o tif_overview.o rawblockedimage.o \ + $(LIBS) -o addtiffo + + +addtiffo.o: addtiffo.c + $(CC) -c $(CFLAGS) addtiffo.c + +tif_overview.o: tif_overview.cpp + $(CXX) -c $(CFLAGS) tif_overview.cpp + +rawblockedimage.o: rawblockedimage.cpp + $(CXX) -c $(CFLAGS) rawblockedimage.cpp + +clean: + rm *.o addtiffo diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/addtiffo/Makefile.vc b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/addtiffo/Makefile.vc new file mode 100755 index 0000000000000..7cb3ba309d375 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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)\tiff.lib + +addtiffo: addtiffo.obj tif_overview.obj rawblockedimage.obj + $(CC) $(CFLAGS) addtiffo.obj tif_overview.obj rawblockedimage.obj \ + $(LIBS) /Feaddtiffo.exe + + +addtiffo.obj: addtiffo.c + $(CC) -c $(CFLAGS) addtiffo.c + +tif_overview.obj: tif_overview.cpp + $(CPPC) -c $(CFLAGS) tif_overview.cpp + +rawblockedimage.obj: rawblockedimage.cpp + $(CPPC) -c $(CFLAGS) rawblockedimage.cpp + +clean: + del *.obj addtiffo.exe diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/addtiffo/README b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/addtiffo/README new file mode 100755 index 0000000000000..01346573791ee --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/addtiffo/addtiffo.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/addtiffo/addtiffo.c new file mode 100755 index 0000000000000..6d276786d4d26 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/addtiffo/addtiffo.c @@ -0,0 +1,118 @@ +/****************************************************************************** + * $Id: addtiffo.c,v 1.1.1.1 2000/11/06 19:52:22 mguthaus 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/11/06 19:52:22 mguthaus + * Imported sources + * + * 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( const char *, int, int *, int ); + +/************************************************************************/ +/* main() */ +/************************************************************************/ + +int main( int argc, char ** argv ) + +{ + int anOverviews[100]; + int nOverviewCount = 0; + int bUseSubIFD = 0; + +/* -------------------------------------------------------------------- */ +/* 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. */ +/* -------------------------------------------------------------------- */ + TIFFBuildOverviews( argv[1], nOverviewCount, anOverviews, bUseSubIFD ); + +/* -------------------------------------------------------------------- */ +/* Optionally test for memory leaks. */ +/* -------------------------------------------------------------------- */ +#ifdef DBMALLOC + malloc_dump(1); +#endif + + exit( 0 ); +} diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/addtiffo/rawblockedimage.cpp b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/addtiffo/rawblockedimage.cpp new file mode 100755 index 0000000000000..ea7af192eb904 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/addtiffo/rawblockedimage.cpp @@ -0,0 +1,406 @@ +/****************************************************************************** + * $Id: rawblockedimage.cpp,v 1.1.1.1 2000/11/06 19:52:22 mguthaus Exp $ + * + * Project: GeoTIFF Overview Builder + * Purpose: Implement the RawBlockedImage class, for holding ``under + * construction'' overviews in a temporary 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: rawblockedimage.cpp,v $ + * Revision 1.1.1.1 2000/11/06 19:52:22 mguthaus + * Imported sources + * + * Revision 1.1 1999/08/17 01:47:59 warmerda + * New + * + * Revision 1.2 1999/03/12 17:29:34 warmerda + * Use _WIN32 rather than WIN32. + * + */ + +#include +#include + +#include + +#ifndef _WIN32 +# include +#endif + +#include "rawblockedimage.h" + +#ifndef FALSE +# define FALSE 0 +# define TRUE 1 +#endif + +#ifndef MAX +# define MIN(a,b) ((ab) ? a : b) +#endif + +/************************************************************************/ +/* RawBlockedImage() */ +/************************************************************************/ + +RawBlockedImage::RawBlockedImage( int nXSizeIn, int nYSizeIn, + int nBlockXSizeIn, int nBlockYSizeIn, + int nBitsPerPixelIn ) + +{ + static int nTempCounter = 0; + char szFilename[128]; + +/* -------------------------------------------------------------------- */ +/* Initialize stuff. */ +/* -------------------------------------------------------------------- */ + nXSize = nXSizeIn; + nYSize = nYSizeIn; + nBlockXSize = nBlockXSizeIn; + nBlockYSize = nBlockYSizeIn; + nBitsPerPixel = nBitsPerPixelIn; + +/* -------------------------------------------------------------------- */ +/* Create the raw temporary file, trying to verify first that */ +/* it doesn't already exist. */ +/* -------------------------------------------------------------------- */ + fp = NULL; + while( fp == NULL ) + { + sprintf( szFilename, "temp_%d.rbi", nTempCounter++ ); + fp = fopen( szFilename, "r" ); + if( fp != NULL ) + fclose( fp ); + else + fp = fopen( szFilename, "w+b" ); + } + + pszFilename = strdup( szFilename ); + nCurFileSize = 0; + +/* -------------------------------------------------------------------- */ +/* Initialize other stuff. */ +/* -------------------------------------------------------------------- */ + nBlocksPerRow = (nXSize + nBlockXSize - 1) / nBlockXSize; + nBlocksPerColumn = (nYSize + nBlockYSize - 1) / nBlockYSize; + nBytesPerBlock = (nBlockXSize*nBlockYSize*nBitsPerPixel + 7) / 8; + + nBlocks = nBlocksPerRow * nBlocksPerColumn; + nBlocksInCache = 0; + nMaxBlocksInCache = MIN(nBlocks, 2*nBlocksPerRow); + + papoBlocks = (RawBlock **) calloc(sizeof(RawBlock*),nBlocks); + + poLRUHead = NULL; + poLRUTail = NULL; +} + +/************************************************************************/ +/* ~RawBlockedImage() */ +/************************************************************************/ + +RawBlockedImage::~RawBlockedImage() + +{ + int i; + + for( i = 0; i < nBlocks; i++ ) + { + if( papoBlocks[i] != NULL ) + { + if( papoBlocks[i]->pabyData != NULL ) + free( papoBlocks[i]->pabyData ); + + delete papoBlocks[i]; + } + } + + if( papoBlocks != NULL) + free( papoBlocks ); + + fclose( fp ); + + unlink( pszFilename ); /* wrap this? */ + + free( pszFilename ); +} + +/************************************************************************/ +/* InsertInLRUList() */ +/* */ +/* Insert this link at the beginning of the LRU list. First */ +/* removed from it's current position if it is in the list. */ +/************************************************************************/ + +void RawBlockedImage::InsertInLRUList( RawBlock * poBlock ) + +{ +/* -------------------------------------------------------------------- */ +/* Remove from list, if it is currently in it. */ +/* -------------------------------------------------------------------- */ + if( poBlock->poPrevLRU != NULL || poLRUHead == poBlock ) + RemoveFromLRUList( poBlock ); + +/* -------------------------------------------------------------------- */ +/* Add at the head. */ +/* -------------------------------------------------------------------- */ + if( poLRUHead != NULL ) + { + poLRUHead->poPrevLRU = poBlock; + } + + poBlock->poNextLRU = poLRUHead; + poLRUHead = poBlock; + + if( poLRUTail == NULL ) + poLRUTail = poBlock; +} + +/************************************************************************/ +/* RemoveFromLRUList() */ +/* */ +/* Remove this block from the LRU list, if present. */ +/************************************************************************/ + +void RawBlockedImage::RemoveFromLRUList( RawBlock * poBlock ) + +{ +/* -------------------------------------------------------------------- */ +/* Is it even in the list? */ +/* -------------------------------------------------------------------- */ + if( poBlock->poPrevLRU == NULL && poLRUHead != poBlock ) + return; + +/* -------------------------------------------------------------------- */ +/* Fix the link before this in the list (or head pointer). */ +/* -------------------------------------------------------------------- */ + if( poBlock->poPrevLRU == NULL ) + { + poLRUHead = poBlock->poNextLRU; + } + else + { + poBlock->poPrevLRU->poNextLRU = poBlock->poNextLRU; + } + +/* -------------------------------------------------------------------- */ +/* Fix the link after this one, or the tail pointer. */ +/* -------------------------------------------------------------------- */ + if( poBlock->poNextLRU == NULL ) + { + poLRUTail = poBlock->poPrevLRU; + } + else + { + poBlock->poNextLRU->poPrevLRU = poBlock->poPrevLRU; + } + +/* -------------------------------------------------------------------- */ +/* Update this link to indicate it isn't in the list now. */ +/* -------------------------------------------------------------------- */ + poBlock->poPrevLRU = poBlock->poNextLRU = NULL; +} + + +/************************************************************************/ +/* FlushBlock() */ +/************************************************************************/ + +void RawBlockedImage::FlushBlock( RawBlock * poBlock ) + +{ +/* -------------------------------------------------------------------- */ +/* If we aren't given a particular block to flush, then select */ +/* the lest recently used one from the LRU list. */ +/* -------------------------------------------------------------------- */ + if( poBlock == NULL ) + { + if( poLRUTail == NULL ) + return; + + poBlock = poLRUTail; + } + +/* -------------------------------------------------------------------- */ +/* Remove from the LRU list. */ +/* -------------------------------------------------------------------- */ + RemoveFromLRUList( poBlock ); + +/* -------------------------------------------------------------------- */ +/* If the block has no data, then it doesn't really need to be */ +/* flushed. */ +/* -------------------------------------------------------------------- */ + if( poBlock->pabyData == NULL ) + return; + +/* -------------------------------------------------------------------- */ +/* Is this block dirty? If so we will have to try and save it. */ +/* -------------------------------------------------------------------- */ + if( poBlock->nDirty ) + { + if( poBlock->nPositionInFile == -1 ) + poBlock->nPositionInFile = nCurFileSize; + + nCurFileSize += nBytesPerBlock; + if( fseek( fp, poBlock->nPositionInFile, SEEK_SET ) != 0 ) + { + fprintf( stderr, + "Seek to %d in overview spill file %s failed.\n", + poBlock->nPositionInFile, pszFilename ); + exit( 1 ); + } + + if( fwrite( poBlock->pabyData, 1, nBytesPerBlock, fp ) + != (size_t) nBytesPerBlock ) + { + fprintf( stderr, + "Write of %d bytes at %d in overview spill file %s.\n" + "Is the disk full?\n", + nBytesPerBlock, poBlock->nPositionInFile, pszFilename ); + exit( 1 ); + } + + poBlock->nDirty = FALSE; + } + +/* -------------------------------------------------------------------- */ +/* Free the data block, and decrement used count. */ +/* -------------------------------------------------------------------- */ + nBlocksInCache--; + if( poBlock->pabyData != NULL ) + free( poBlock->pabyData ); + poBlock->pabyData = NULL; +} + + +/************************************************************************/ +/* GetRawBlock() */ +/************************************************************************/ + +RawBlock *RawBlockedImage::GetRawBlock( int nXOff, int nYOff ) + +{ + int nBlock = nXOff + nYOff * nBlocksPerRow; + RawBlock *poBlock; + + assert( nBlock >= 0 && nBlock < nBlocks ); + +/* -------------------------------------------------------------------- */ +/* Is this the first request? If so, create the block object, */ +/* initialize the data memory, and return it. */ +/* -------------------------------------------------------------------- */ + poBlock = papoBlocks[nBlock]; + if( poBlock == NULL ) + { + poBlock = papoBlocks[nBlock] = new RawBlock; + poBlock->nDirty = FALSE; + poBlock->poPrevLRU = poBlock->poNextLRU = NULL; + poBlock->nPositionInFile = -1; + poBlock->pabyData = (unsigned char *) calloc(1,nBytesPerBlock); + nBlocksInCache++; + + if( poBlock->pabyData == NULL ) + { + fprintf( stderr, + "RawBlockedImage::GetRawBlock() - out of memory\n" ); + exit( 1 ); + } + } + +/* -------------------------------------------------------------------- */ +/* Does this block need to be read off disk? */ +/* -------------------------------------------------------------------- */ + else if( poBlock->nPositionInFile >= 0 && poBlock->pabyData == NULL ) + { + nBlocksInCache++; + poBlock->pabyData = (unsigned char *) calloc(1,nBytesPerBlock); + fseek( fp, poBlock->nPositionInFile, SEEK_SET ); + fread( poBlock->pabyData, nBytesPerBlock, 1, fp ); + } + +/* -------------------------------------------------------------------- */ +/* Does the data need to be allocated? */ +/* -------------------------------------------------------------------- */ + else if( poBlock->pabyData == NULL ) + { + poBlock->pabyData = (unsigned char *) calloc(1,nBytesPerBlock); + if( poBlock->pabyData == NULL ) + { + fprintf( stderr, + "RawBlockedImage::GetRawBlock() - out of memory\n" ); + exit( 1 ); + } + } + +/* -------------------------------------------------------------------- */ +/* Push on the LRU stack, or pop it back to the top. */ +/* -------------------------------------------------------------------- */ + InsertInLRUList( poBlock ); + +/* -------------------------------------------------------------------- */ +/* If we have exceeded our self imposed caching limit, flush */ +/* one block. */ +/* -------------------------------------------------------------------- */ + if( nBlocksInCache > nMaxBlocksInCache ) + FlushBlock( NULL ); + + return( poBlock ); +} + +/************************************************************************/ +/* GetTile() */ +/************************************************************************/ + +unsigned char *RawBlockedImage::GetTile( int nXOff, int nYOff ) + +{ + RawBlock *poBlock; + + poBlock = GetRawBlock(nXOff,nYOff); + if( poBlock != NULL ) + return poBlock->pabyData; + else + return NULL; +} + +/************************************************************************/ +/* GetTileForUpdate() */ +/************************************************************************/ + +unsigned char *RawBlockedImage::GetTileForUpdate( int nXOff, int nYOff ) + +{ + RawBlock *poBlock; + + poBlock = GetRawBlock(nXOff,nYOff); + if( poBlock != NULL ) + { + poBlock->nDirty = TRUE; + + return poBlock->pabyData; + } + else + return NULL; +} diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/addtiffo/rawblockedimage.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/addtiffo/rawblockedimage.h new file mode 100755 index 0000000000000..0eb566d53ef3b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/addtiffo/rawblockedimage.h @@ -0,0 +1,108 @@ +/****************************************************************************** + * $Id: rawblockedimage.h,v 1.1.1.1 2000/11/06 19:52:22 mguthaus Exp $ + * + * Project: GeoTIFF Overview Builder + * Purpose: Implement the RawBlockedImage class, for holding ``under + * construction'' overviews in a temporary 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: + */ + +#ifndef RAWBLOCKEDIMAGE_H_INCLUDED +#define RAWBLOCKEDIMAGE_H_INCLUDED + +#include + +/************************************************************************/ +/* ==================================================================== */ +/* RawBlockedImage */ +/* */ +/* The RawBlockedImage class is used to maintain a single band */ +/* raster tiled image on disk. */ +/* ==================================================================== */ +/************************************************************************/ + +class RawBlock +{ +public: + RawBlock *poNextLRU; + RawBlock *poPrevLRU; + + int nDirty; + int nPositionInFile; + + unsigned char *pabyData; +}; + +class RawBlockedImage +{ + int nXSize; + int nYSize; + + int nBlockXSize; + int nBlockYSize; + int nBitsPerPixel; + int nBytesPerBlock; + + int nBlocksPerRow; + int nBlocksPerColumn; + + int nBlocks; + RawBlock **papoBlocks; + + int nBlocksInCache; + int nMaxBlocksInCache; + + FILE *fp; + int nCurFileSize; + char *pszFilename; + + RawBlock *GetRawBlock( int, int ); + void FlushBlock( RawBlock * ); + void InsertInLRUList( RawBlock * ); + void RemoveFromLRUList( RawBlock * ); + + RawBlock *poLRUHead; + RawBlock *poLRUTail; + +public: + RawBlockedImage( int nXSize, int nYSize, + int nBlockXSize, int nBlockYSize, + int nBitsPerPixel ); + + ~RawBlockedImage(); + + unsigned char*GetTile( int, int ); + unsigned char*GetTileForUpdate( int, int ); + + int GetBlockXSize() { return nBlockXSize; } + int GetBlockYSize() { return nBlockYSize; } + int GetXSize() { return nXSize; } + int GetYSize() { return nYSize; } + int GetBitsPerPixel() { return nBitsPerPixel; } +}; + +#endif /* ndef RAWBLOCKEDIMAGE_H_INCLUDED */ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/addtiffo/tif_overview.cpp b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/addtiffo/tif_overview.cpp new file mode 100755 index 0000000000000..fba44d4bb50c0 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/addtiffo/tif_overview.cpp @@ -0,0 +1,562 @@ +/****************************************************************************** + * $Id: tif_overview.cpp,v 1.1.1.1 2000/11/06 19:52:22 mguthaus Exp $ + * + * Project: TIFF Overview Builder + * Purpose: Library function for building overviews in a TIFF file. + * Author: Frank Warmerdam, warmerda@home.com + * + * Notes: + * o This module uses the RawBlockedImage class to hold the overviews as + * they are being built since we can't easily be reading from one directory + * in a TIFF file, and writing to a bunch of others. + * + * 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. + * + ****************************************************************************** + * 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: tif_overview.cpp,v $ + * Revision 1.1.1.1 2000/11/06 19:52:22 mguthaus + * Imported sources + * + * Revision 1.1 1999/08/17 01:47:59 warmerda + * New + * + * Revision 1.7 1999/03/12 17:47:26 warmerda + * made independent of CPL + * + * Revision 1.6 1999/02/24 16:24:00 warmerda + * Don't include cpl_string.h + * + * Revision 1.5 1999/02/11 22:27:12 warmerda + * Added multi-sample support + * + * Revision 1.4 1999/02/11 19:23:39 warmerda + * Only fix on multiples of 16 in block size if it is a tiled file. + * + * Revision 1.3 1999/02/11 19:21:14 warmerda + * Limit tile sizes to multiples of 16 + * + * Revision 1.2 1999/02/11 18:37:43 warmerda + * Removed debugging malloc stuff. + * + * Revision 1.1 1999/02/11 18:12:30 warmerda + * New + * + */ + +#include +#include +#include + +#include "tiffio.h" +#include "rawblockedimage.h" + +#ifndef FALSE +# define FALSE 0 +# define TRUE 1 +#endif + +#ifndef MAX +# define MIN(a,b) ((ab) ? a : b) +#endif + +extern "C" { + void TIFFBuildOverviews( const char *, int, int *, int ); +} + +/************************************************************************/ +/* TIFF_WriteOverview() */ +/************************************************************************/ + +static +void TIFF_WriteOverview( TIFF *hTIFF, int nSamples, RawBlockedImage **papoRBI, + int bTiled, int nCompressFlag, int nPhotometric, + unsigned short *panRed, + unsigned short *panGreen, + unsigned short *panBlue, + int bUseSubIFDs ) + +{ + int iSample; + RawBlockedImage *poRBI = papoRBI[0]; + +/* -------------------------------------------------------------------- */ +/* Setup TIFF fields. */ +/* -------------------------------------------------------------------- */ + TIFFSetField( hTIFF, TIFFTAG_IMAGEWIDTH, poRBI->GetXSize() ); + TIFFSetField( hTIFF, TIFFTAG_IMAGELENGTH, poRBI->GetYSize() ); + TIFFSetField( hTIFF, TIFFTAG_PLANARCONFIG, + PLANARCONFIG_SEPARATE ); + + TIFFSetField( hTIFF, TIFFTAG_BITSPERSAMPLE, poRBI->GetBitsPerPixel() ); + TIFFSetField( hTIFF, TIFFTAG_SAMPLESPERPIXEL, nSamples ); + TIFFSetField( hTIFF, TIFFTAG_COMPRESSION, nCompressFlag ); + TIFFSetField( hTIFF, TIFFTAG_PHOTOMETRIC, nPhotometric ); + + if( bTiled ) + { + TIFFSetField( hTIFF, TIFFTAG_TILEWIDTH, poRBI->GetBlockXSize() ); + TIFFSetField( hTIFF, TIFFTAG_TILELENGTH, poRBI->GetBlockYSize() ); + } + else + TIFFSetField( hTIFF, TIFFTAG_ROWSPERSTRIP, poRBI->GetBlockYSize() ); + + TIFFSetField( hTIFF, TIFFTAG_SUBFILETYPE, FILETYPE_REDUCEDIMAGE ); + +/* -------------------------------------------------------------------- */ +/* Write color table if one is present. */ +/* -------------------------------------------------------------------- */ + if( panRed != NULL ) + { + TIFFSetField( hTIFF, TIFFTAG_COLORMAP, panRed, panGreen, panBlue ); + } + +/* -------------------------------------------------------------------- */ +/* Write blocks to TIFF file. */ +/* -------------------------------------------------------------------- */ + for( iSample = 0; iSample < nSamples; iSample++ ) + { + int iTileX, iTileY; + + poRBI = papoRBI[iSample]; + + for( iTileY = 0; + iTileY*poRBI->GetBlockYSize() < poRBI->GetYSize(); + iTileY++ ) + { + for( iTileX = 0; + iTileX*poRBI->GetBlockXSize() < poRBI->GetXSize(); + iTileX++ ) + { + unsigned char *pabyData = poRBI->GetTile( iTileX, iTileY ); + int nTileID; + + if( bTiled ) + { + nTileID = + TIFFComputeTile(hTIFF, + iTileX * poRBI->GetBlockXSize(), + iTileY * poRBI->GetBlockYSize(), + 0, iSample ); + TIFFWriteEncodedTile( hTIFF, nTileID, + pabyData, TIFFTileSize(hTIFF) ); + } + else + { + nTileID = + TIFFComputeStrip(hTIFF, iTileY*poRBI->GetBlockYSize(), + iSample); + + TIFFWriteEncodedStrip( hTIFF, nTileID, + pabyData, TIFFStripSize( hTIFF ) ); + } + } + } + } + + TIFFWriteDirectory( hTIFF ); +} + +/************************************************************************/ +/* TIFF_DownSample() */ +/* */ +/* Down sample a tile of full res data into a window of a tile */ +/* of downsampled data. */ +/************************************************************************/ + +static +void TIFF_DownSample( unsigned char *pabySrcTile, + int nBlockXSize, int nBlockYSize, + int nPixelSkewBits, int nBitsPerPixel, + unsigned char * pabyOTile, + int nOBlockXSize, int nOBlockYSize, + int nTXOff, int nTYOff, int nOMult ) + +{ + int i, j, k, nPixelBytes = (nBitsPerPixel) / 8; + int nPixelGroupBytes = (nBitsPerPixel+nPixelSkewBits)/8; + unsigned char *pabySrc, *pabyDst; + + assert( nBitsPerPixel >= 8 ); + +/* -------------------------------------------------------------------- */ +/* Handle case of one or more whole bytes per sample. */ +/* -------------------------------------------------------------------- */ + for( j = 0; j*nOMult < nBlockYSize; j++ ) + { + if( j + nTYOff >= nOBlockYSize ) + break; + + pabySrc = pabySrcTile + j*nOMult*nBlockXSize * nPixelGroupBytes; + pabyDst = pabyOTile + + ((j+nTYOff)*nOBlockXSize + nTXOff) * nPixelBytes; + + for( i = 0; i*nOMult < nBlockXSize; i++ ) + { + if( i + nTXOff >= nOBlockXSize ) + break; + + /* + * For now use simple subsampling, from the top left corner + * of the source block of pixels. + */ + + for( k = 0; k < nPixelBytes; k++ ) + { + *(pabyDst++) = pabySrc[k]; + } + + pabySrc += nOMult * nPixelGroupBytes; + } + } +} + +/************************************************************************/ +/* TIFF_ProcessFullResBlock() */ +/* */ +/* Process one block of full res data, downsampling into each */ +/* of the overviews. */ +/************************************************************************/ + +void TIFF_ProcessFullResBlock( TIFF *hTIFF, int nPlanarConfig, + int nOverviews, int * panOvList, + int nBitsPerPixel, + int nSamples, RawBlockedImage ** papoRawBIs, + int nSXOff, int nSYOff, + unsigned char *pabySrcTile, + int nBlockXSize, int nBlockYSize ) + +{ + int iOverview, iSample; + + for( iSample = 0; iSample < nSamples; iSample++ ) + { + /* + * We have to read a tile/strip for each sample for + * PLANARCONFIG_SEPARATE. Otherwise, we just read all the samples + * at once when handling the first sample. + */ + if( nPlanarConfig == PLANARCONFIG_SEPARATE || iSample == 0 ) + { + if( TIFFIsTiled(hTIFF) ) + { + TIFFReadEncodedTile( hTIFF, + TIFFComputeTile(hTIFF, nSXOff, nSYOff, + 0, iSample ), + pabySrcTile, + TIFFTileSize(hTIFF)); + } + else + { + TIFFReadEncodedStrip( hTIFF, + TIFFComputeStrip(hTIFF, nSYOff, iSample), + pabySrcTile, + TIFFStripSize(hTIFF) ); + } + } + + /* + * Loop over destination overview layers + */ + for( iOverview = 0; iOverview < nOverviews; iOverview++ ) + { + RawBlockedImage *poRBI = papoRawBIs[iOverview*nSamples + iSample]; + unsigned char *pabyOTile; + int nTXOff, nTYOff, nOXOff, nOYOff, nOMult; + int nOBlockXSize = poRBI->GetBlockXSize(); + int nOBlockYSize = poRBI->GetBlockYSize(); + int nSkewBits, nSampleByteOffset; + + /* + * Fetch the destination overview tile + */ + nOMult = panOvList[iOverview]; + nOXOff = (nSXOff/nOMult) / nOBlockXSize; + nOYOff = (nSYOff/nOMult) / nOBlockYSize; + pabyOTile = poRBI->GetTileForUpdate( nOXOff, nOYOff ); + + /* + * Establish the offset into this tile at which we should + * start placing data. + */ + nTXOff = (nSXOff - nOXOff*nOMult*nOBlockXSize) / nOMult; + nTYOff = (nSYOff - nOYOff*nOMult*nOBlockYSize) / nOMult; + + /* + * Figure out the skew (extra space between ``our samples'') and + * the byte offset to the first sample. + */ + assert( (nBitsPerPixel % 8) == 0 ); + if( nPlanarConfig == PLANARCONFIG_SEPARATE ) + { + nSkewBits = 0; + nSampleByteOffset = 0; + } + else + { + nSkewBits = nBitsPerPixel * (nSamples-1); + nSampleByteOffset = (nBitsPerPixel/8) * iSample; + } + + /* + * Perform the downsampling. + */ +#ifdef DBMALLOC + malloc_chain_check( 1 ); +#endif + TIFF_DownSample( pabySrcTile + nSampleByteOffset, + nBlockXSize, nBlockYSize, + nSkewBits, nBitsPerPixel, pabyOTile, + poRBI->GetBlockXSize(), + poRBI->GetBlockYSize(), + nTXOff, nTYOff, + nOMult ); +#ifdef DBMALLOC + malloc_chain_check( 1 ); +#endif + } + } +} + +/************************************************************************/ +/* TIFF_BuildOverviews() */ +/* */ +/* Build the requested list of overviews. Overviews are */ +/* maintained in a bunch of temporary files and then these are */ +/* written back to the TIFF file. Only one pass through the */ +/* source TIFF file is made for any number of output */ +/* overviews. */ +/************************************************************************/ + +void TIFFBuildOverviews( const char * pszTIFFFilename, + int nOverviews, int * panOvList, + int bUseSubIFDs ) + +{ + RawBlockedImage **papoRawBIs; + uint32 nXSize, nYSize, nBlockXSize, nBlockYSize; + uint16 nBitsPerPixel, nPhotometric, nCompressFlag, nSamples, + nPlanarConfig; + int bTiled, nSXOff, nSYOff, i, iSample; + unsigned char *pabySrcTile; + TIFF *hTIFF; + uint16 *panRedMap, *panGreenMap, *panBlueMap; + +/* -------------------------------------------------------------------- */ +/* Get the base raster size. */ +/* -------------------------------------------------------------------- */ + hTIFF = TIFFOpen( pszTIFFFilename, "r" ); + if( hTIFF == NULL ) + { + fprintf( stderr, "TIFFOpen(%s) failed.\n", pszTIFFFilename ); + exit( 1 ); + } + + TIFFGetField( hTIFF, TIFFTAG_IMAGEWIDTH, &nXSize ); + TIFFGetField( hTIFF, TIFFTAG_IMAGELENGTH, &nYSize ); + + TIFFGetField( hTIFF, TIFFTAG_BITSPERSAMPLE, &nBitsPerPixel ); + TIFFGetField( hTIFF, TIFFTAG_SAMPLESPERPIXEL, &nSamples ); + TIFFGetField( hTIFF, TIFFTAG_PLANARCONFIG, &nPlanarConfig ); + + TIFFGetField( hTIFF, TIFFTAG_PHOTOMETRIC, &nPhotometric ); + TIFFGetField( hTIFF, TIFFTAG_COMPRESSION, &nCompressFlag ); + + if( nBitsPerPixel < 8 ) + { + TIFFError( "TIFFBuildOverviews", + "File `%s' has samples of %d bits per sample. Sample\n" + "sizes of less than 8 bits per sample are not supported.\n", + pszTIFFFilename, nBitsPerPixel ); + return; + } + +/* -------------------------------------------------------------------- */ +/* Get the base raster block size. */ +/* -------------------------------------------------------------------- */ + if( TIFFGetField( hTIFF, TIFFTAG_ROWSPERSTRIP, &(nBlockYSize) ) ) + { + nBlockXSize = nXSize; + bTiled = FALSE; + } + else + { + TIFFGetField( hTIFF, TIFFTAG_TILEWIDTH, &nBlockXSize ); + TIFFGetField( hTIFF, TIFFTAG_TILELENGTH, &nBlockYSize ); + bTiled = TRUE; + } + +/* -------------------------------------------------------------------- */ +/* Capture the pallette if there is one. */ +/* -------------------------------------------------------------------- */ + if( TIFFGetField( hTIFF, TIFFTAG_COLORMAP, + &panRedMap, &panGreenMap, &panBlueMap ) ) + { + uint16 *panRed2, *panGreen2, *panBlue2; + + panRed2 = (uint16 *) calloc(2,256); + panGreen2 = (uint16 *) calloc(2,256); + panBlue2 = (uint16 *) calloc(2,256); + + memcpy( panRed2, panRedMap, 512 ); + memcpy( panGreen2, panGreenMap, 512 ); + memcpy( panBlue2, panBlueMap, 512 ); + + panRedMap = panRed2; + panGreenMap = panGreen2; + panBlueMap = panBlue2; + } + else + { + panRedMap = panGreenMap = panBlueMap = NULL; + } + +/* -------------------------------------------------------------------- */ +/* Initialize the overview raw layers */ +/* -------------------------------------------------------------------- */ + papoRawBIs = (RawBlockedImage **) + calloc(nOverviews*nSamples,sizeof(void*)); + + for( i = 0; i < nOverviews; i++ ) + { + int nOXSize, nOYSize, nOBlockXSize, nOBlockYSize; + + nOXSize = (nXSize + panOvList[i] - 1) / panOvList[i]; + nOYSize = (nYSize + panOvList[i] - 1) / panOvList[i]; + + nOBlockXSize = MIN((int)nBlockXSize,nOXSize); + nOBlockYSize = MIN((int)nBlockYSize,nOYSize); + + if( bTiled ) + { + if( (nOBlockXSize % 16) != 0 ) + nOBlockXSize = nOBlockXSize + 16 - (nOBlockXSize % 16); + + if( (nOBlockYSize % 16) != 0 ) + nOBlockYSize = nOBlockYSize + 16 - (nOBlockYSize % 16); + } + + for( iSample = 0; iSample < nSamples; iSample++ ) + { + papoRawBIs[i*nSamples + iSample] = + new RawBlockedImage( nOXSize, nOYSize, + nOBlockXSize, nOBlockYSize, + nBitsPerPixel ); + } + } + +/* -------------------------------------------------------------------- */ +/* Allocate a buffer to hold a source block. */ +/* -------------------------------------------------------------------- */ + if( bTiled ) + pabySrcTile = (unsigned char *) malloc(TIFFTileSize(hTIFF)); + else + pabySrcTile = (unsigned char *) malloc(TIFFStripSize(hTIFF)); + +/* -------------------------------------------------------------------- */ +/* Loop over the source raster, applying data to the */ +/* destination raster. */ +/* -------------------------------------------------------------------- */ + for( nSYOff = 0; nSYOff < (int) nYSize; nSYOff += nBlockYSize ) + { + for( nSXOff = 0; nSXOff < (int) nXSize; nSXOff += nBlockXSize ) + { + /* + * Read and resample into the various overview images. + */ + + TIFF_ProcessFullResBlock( hTIFF, nPlanarConfig, + nOverviews, panOvList, + nBitsPerPixel, nSamples, papoRawBIs, + nSXOff, nSYOff, pabySrcTile, + nBlockXSize, nBlockYSize ); + } + } + + free( pabySrcTile ); + + TIFFClose( hTIFF ); + +/* ==================================================================== */ +/* We now have the overview rasters built, and held as */ +/* RawBlockedImage's. Now we need to write them to new TIFF */ +/* layers. */ +/* ==================================================================== */ + hTIFF = TIFFOpen( pszTIFFFilename, "a" ); + if( hTIFF == NULL ) + { + fprintf( stderr, + "TIFFOpen(%s,\"a\") failed. No overviews written.\n" + "Do you have write permissions on that file?\n", + pszTIFFFilename ); + } + else + { + for( i = 0; i < nOverviews; i++ ) + { + TIFF_WriteOverview( hTIFF, nSamples, papoRawBIs + i*nSamples, + bTiled, nCompressFlag, nPhotometric, + panRedMap, panGreenMap, panBlueMap, + bUseSubIFDs ); + } + + TIFFClose( hTIFF ); + } + +/* -------------------------------------------------------------------- */ +/* Cleanup the rawblockedimage files. */ +/* -------------------------------------------------------------------- */ + for( i = 0; i < nOverviews*nSamples; i++ ) + { + delete papoRawBIs[i]; + } + + if( papoRawBIs != NULL ) + free( papoRawBIs ); + + if( panRedMap != NULL ) + { + free( panRedMap ); + free( panGreenMap ); + free( panBlueMap ); + } +} diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dbs/Imakefile b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dbs/Imakefile new file mode 100755 index 0000000000000..e9e226675e2c9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dbs/README b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dbs/README new file mode 100755 index 0000000000000..e05d0a95688a7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dbs/tiff-bi.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dbs/tiff-bi.c new file mode 100755 index 0000000000000..584fdfd65990f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dbs/tiff-grayscale.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dbs/tiff-grayscale.c new file mode 100755 index 0000000000000..f3e948422044d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dbs/tiff-rgb.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dbs/tiff-rgb.c new file mode 100755 index 0000000000000..6930e3a6ec489 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dbs/xtiff/Imakefile b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dbs/xtiff/Imakefile new file mode 100755 index 0000000000000..1aad45a4b487d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dbs/xtiff/README b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dbs/xtiff/README new file mode 100755 index 0000000000000..fa151476c3e23 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dbs/xtiff/patchlevel.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dbs/xtiff/patchlevel.h new file mode 100755 index 0000000000000..935ec354b717b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dbs/xtiff/patchlevel.h @@ -0,0 +1 @@ +#define PATCHLEVEL 0 diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dbs/xtiff/xtiff.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dbs/xtiff/xtiff.c new file mode 100755 index 0000000000000..918265ec23ad4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dbs/xtiff/xtifficon.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dbs/xtiff/xtifficon.h new file mode 100755 index 0000000000000..8ee16674c6fdb --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dosdjgpp/Makefile.lib b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dosdjgpp/Makefile.lib new file mode 100755 index 0000000000000..94248a14053bf --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dosdjgpp/Makefile.lib @@ -0,0 +1,249 @@ +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/contrib/dosdjgpp/Makefile.lib,v 1.1.1.1 2000/11/06 19:52:22 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dosdjgpp/Makefile.tools b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dosdjgpp/Makefile.tools new file mode 100755 index 0000000000000..6bca98c2ad374 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dosdjgpp/Makefile.tools @@ -0,0 +1,217 @@ +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/contrib/dosdjgpp/Makefile.tools,v 1.1.1.1 2000/11/06 19:52:22 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dosdjgpp/Makefile.top b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dosdjgpp/Makefile.top new file mode 100755 index 0000000000000..db2184d026a98 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dosdjgpp/Makefile.top @@ -0,0 +1,54 @@ +#! smake +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/contrib/dosdjgpp/Makefile.top,v 1.1.1.1 2000/11/06 19:52:22 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dosdjgpp/README b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dosdjgpp/README new file mode 100755 index 0000000000000..e14d1bfcdfc54 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dosdjgpp/conf.bat b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dosdjgpp/conf.bat new file mode 100755 index 0000000000000..f28e12d3edc60 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dosdjgpp/port.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/dosdjgpp/port.h new file mode 100755 index 0000000000000..4299c5e4aac4f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-cw/Makefile.script b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-cw/Makefile.script new file mode 100755 index 0000000000000..85614c81d845b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-cw/README b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-cw/README new file mode 100755 index 0000000000000..a973469438660 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-cw/mac_main.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-cw/mac_main.c new file mode 100755 index 0000000000000..294655de1eb65 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-cw/mac_main.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-cw/mac_main.h new file mode 100755 index 0000000000000..523300f707a83 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-cw/metrowerks.note b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-cw/metrowerks.note new file mode 100755 index 0000000000000..9917cfd5f37a5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-cw/mkg3_main.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-cw/mkg3_main.c new file mode 100755 index 0000000000000..b31c8d1099ccf --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-cw/version.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-cw/version.h new file mode 100755 index 0000000000000..3c5c56e18a078 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-mpw/BUILD.mpw b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-mpw/BUILD.mpw new file mode 100755 index 0000000000000..7abf83a2ac5f3 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-mpw/README b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-mpw/README new file mode 100755 index 0000000000000..053b0d0ccfc31 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-mpw/libtiff.make b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-mpw/libtiff.make new file mode 100755 index 0000000000000..ee5296e35b1fc --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-mpw/mactrans.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-mpw/mactrans.c new file mode 100755 index 0000000000000..5e321b90ab667 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-mpw/port.make b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-mpw/port.make new file mode 100755 index 0000000000000..492c527e4eedf --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-mpw/tools.make b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-mpw/tools.make new file mode 100755 index 0000000000000..13b14e42eb872 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-mpw/top.make b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mac-mpw/top.make new file mode 100755 index 0000000000000..5a6a29b45c252 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mfs/README b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mfs/README new file mode 100755 index 0000000000000..6f9befbcb2efb --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mfs/mfs_file.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/mfs/mfs_file.c new file mode 100755 index 0000000000000..fa408dab64a93 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/pds/README b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/pds/README new file mode 100755 index 0000000000000..b9abc6b3c56bd --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/pds/tif_imageiter.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/pds/tif_imageiter.c new file mode 100755 index 0000000000000..499595ae33ef3 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/pds/tif_imageiter.c @@ -0,0 +1,518 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/contrib/pds/tif_imageiter.c,v 1.1.1.1 2000/11/06 19:52:23 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/pds/tif_imageiter.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/pds/tif_imageiter.h new file mode 100755 index 0000000000000..5b7ea40ac5dff --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/pds/tif_pdsdirread.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/pds/tif_pdsdirread.c new file mode 100755 index 0000000000000..752745c656772 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/pds/tif_pdsdirread.c @@ -0,0 +1,1124 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/contrib/pds/tif_pdsdirread.c,v 1.1.1.1 2000/11/06 19:52:23 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/pds/tif_pdsdirwrite.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/pds/tif_pdsdirwrite.c new file mode 100755 index 0000000000000..e7c5b32833f1a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/pds/tif_pdsdirwrite.c @@ -0,0 +1,964 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/contrib/pds/tif_pdsdirwrite.c,v 1.1.1.1 2000/11/06 19:52:23 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/ras/README b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/ras/README new file mode 100755 index 0000000000000..f87bfde00c358 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/ras/ras2tif.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/ras/ras2tif.c new file mode 100755 index 0000000000000..b11b879982a56 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/ras/tif2ras.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/ras/tif2ras.c new file mode 100755 index 0000000000000..00d8b12e61bd5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/ras/tif2ras.c @@ -0,0 +1,337 @@ +#ifndef lint +static char id[] = "$Id: tif2ras.c,v 1.1.1.1 2000/11/06 19:52:23 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/vms/libtiff/makevms.com b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/vms/libtiff/makevms.com new file mode 100755 index 0000000000000..90964e8561124 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/vms/libtiff/tiff.opt b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/vms/libtiff/tiff.opt new file mode 100755 index 0000000000000..587bf1108757d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/vms/libtiff/tiff.opt @@ -0,0 +1 @@ +TIFFSHR/SHAREABLE diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/vms/libtiff/tiffshraxp.opt b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/vms/libtiff/tiffshraxp.opt new file mode 100755 index 0000000000000..f80065160f047 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/vms/libtiff/tiffshraxp.opt @@ -0,0 +1,122 @@ +! VMS linker options file for linking the TIFF library into a shareable image +! +IDENTIFICATION="LIBTIFF 3.4-032" +! +! Please update the minor version number below, when adding new routines +GSMATCH=LEQUAL,1,9 +! +! 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. +! +SYMBOL_VECTOR=(- + TIFFCheckTile=PROCEDURE,- + TIFFClose=PROCEDURE,- + TIFFComputeStrip=PROCEDURE,- + TIFFComputeTile=PROCEDURE,- + TIFFCurrentDirectory=PROCEDURE,- + TIFFCurrentRow=PROCEDURE,- + TIFFCurrentStrip=PROCEDURE,- + TIFFCurrentTile=PROCEDURE,- + TIFFError=PROCEDURE,- + TIFFFdOpen=PROCEDURE,- + TIFFFileName=PROCEDURE,- + TIFFFileno=PROCEDURE,- + TIFFFlush=PROCEDURE,- + TIFFFlushData=PROCEDURE,- + TIFFGetField=PROCEDURE,- + TIFFGetFieldDefaulted=PROCEDURE,- + TIFFGetMode=PROCEDURE,- + TIFFIsTiled=PROCEDURE,- + TIFFModeCCITTFax3=PRIVATE_PROCEDURE,- ! gone in 3.3 beta 024 + TIFFNumberOfStrips=PROCEDURE,- + TIFFNumberOfTiles=PROCEDURE,- + TIFFOpen=PROCEDURE,- + TIFFPrintDirectory=PROCEDURE,- + TIFFReadBufferSetup=PROCEDURE,- + TIFFReadDirectory=PROCEDURE,- + TIFFReadEncodedStrip=PROCEDURE,- + TIFFReadEncodedTile=PROCEDURE,- + TIFFReadRawStrip=PROCEDURE,- + TIFFReadRawTile=PROCEDURE,- + TIFFReadRGBAImage=PROCEDURE,- + TIFFReadScanline=PROCEDURE,- + TIFFReadTile=PROCEDURE,- + TIFFReverseBits=PROCEDURE,- + TIFFScanlineSize=PROCEDURE,- + TIFFSetDirectory=PROCEDURE,- + TIFFSetErrorHandler=PROCEDURE,- + TIFFSetField=PROCEDURE,- + TIFFSetWarningHandler=PROCEDURE,- + TIFFStripSize=PROCEDURE,- + TIFFSwabShort=PROCEDURE,- + TIFFSwabLong=PROCEDURE,- + TIFFSwabArrayOfShort=PROCEDURE,- + TIFFSwabArrayOfLong=PROCEDURE,- + TIFFTileRowSize=PROCEDURE,- + TIFFTileSize=PROCEDURE,- + TIFFVGetField=PROCEDURE,- + TIFFVGetFieldDefaulted=PROCEDURE,- + TIFFVSetField=PROCEDURE,- + TIFFWarning=PROCEDURE,- + TIFFWriteDirectory=PROCEDURE,- + TIFFWriteEncodedStrip=PROCEDURE,- + TIFFWriteEncodedTile=PROCEDURE,- + TIFFWriteRawStrip=PROCEDURE,- + TIFFWriteRawTile=PROCEDURE,- + TIFFWriteScanline=PROCEDURE,- + TIFFWriteTile=PROCEDURE,- +! +! New entries in version 3.1 +! + TIFFClientOpen=PROCEDURE,- + TIFFVStripSize=PROCEDURE,- ! For tiffcp +! +! New entries in version 3.2 +! + TIFFGetVersion=PROCEDURE,- + TIFFGetBitRevTable=PROCEDURE,- + _TIFFmalloc=PROCEDURE,- ! For fax2tiff +! +! New entries in version 3.3 +! + TIFFIsByteSwapped=PROCEDURE,- + TIFFSetWriteOffset=PROCEDURE,- +! +! New entries in version 3.3 beta 020 +! + TIFFSetSubDirectory=PROCEDURE,- + TIFFUnlinkDirectory=PROCEDURE,- +! +! These needs to be global on the Alpha (used in fax2tiff) +! + tiffDataWidth=DATA,- + tiffFieldInfo=DATA,- +! +! New entries in version 3.3 beta 026 (for the tools) +! + _TIFFfree=PROCEDURE,- + _TIFFrealloc=PROCEDURE,- + _TIFFmemset=PROCEDURE,- + _TIFFmemcpy=PROCEDURE,- + _TIFFmemcmp=PROCEDURE,- +! +! New entries in version 3.4 beta 002 +! + TIFFRasterScanlineSize=PROCEDURE,- + TIFFDefaultStripSize=PROCEDURE,- + TIFFDefaultTileSize=PROCEDURE,- + TIFFVTileSize=PROCEDURE,- ! not new, but omitted previously + TIFFSwabDouble=PROCEDURE,- + TIFFSwabArrayOfDouble=PROCEDURE,- + TIFFLastDirectory=PROCEDURE,- ! not new either +! +! New entries in version 3.4 beta 007 through 032 +! + TIFFCurrentDirOffset=PROCEDURE,- + TIFFWriteBufferSetup=PROCEDURE) +! +! Then take the object library +! +TIFF/LIBRARY diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/vms/libtiff/tiffshrvax.opt b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/vms/libtiff/tiffshrvax.opt new file mode 100755 index 0000000000000..28b7ea4d3f143 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/vms/libtiff/tiffshrvax.opt @@ -0,0 +1,18 @@ +! VMS linker options file for linking the TIFF library into a shareable image +! +IDENTIFICATION="LIBTIFF 3.4-032" +! +! Please update the minor version number below, when adding new routines +GSMATCH=LEQUAL,1,9 +! +! Place the transfer vector at the beginning of the image +! +CLUSTER=TIFFVEC,,,TIFFVEC +! +! Then take the object library +! +TIFF/LIBRARY/INCLUDE=(TIF_FAX3SM,TIF_CODEC) +! +! The C RTL shareable image +! +SYS$SHARE:VAXCRTL/SHARE diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/vms/libtiff/tiffvec.mar b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/vms/libtiff/tiffvec.mar new file mode 100755 index 0000000000000..f17e5b2b62166 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/vms/tools/makevms.com b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/vms/tools/makevms.com new file mode 100755 index 0000000000000..174b94db1a6b8 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/win32/README b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/win32/README new file mode 100755 index 0000000000000..649f829e20cf8 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/win32/dllshell.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/win32/dllshell.c new file mode 100755 index 0000000000000..839ebdb5f2308 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/win32/libtiff.def b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/win32/libtiff.def new file mode 100755 index 0000000000000..7f41bed31e5d0 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/win95/Makefile.w95 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/win95/Makefile.w95 new file mode 100755 index 0000000000000..3f461ef5a73bc --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/win95/README b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/win95/README new file mode 100755 index 0000000000000..edb05d3318ccb --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/win95/tiff2dib.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/win95/tiff2dib.c new file mode 100755 index 0000000000000..f5d4040f8708f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/winnt/README b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/winnt/README new file mode 100755 index 0000000000000..68c64410e1083 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/winnt/README @@ -0,0 +1,26 @@ +Date: Fri, 10 Nov 1995 13:02:33 -0800 +Message-Id: <199511102102.NAA07993@lido> +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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/winnt/README.console b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/winnt/README.console new file mode 100755 index 0000000000000..05d7dd58623d8 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/winnt/fax3sm.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/winnt/fax3sm.c new file mode 100755 index 0000000000000..564c9aa4d2314 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/winnt/libtiff.def b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/winnt/libtiff.def new file mode 100755 index 0000000000000..69ee4e5dc2ba1 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/winnt/libtiff.mak b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/winnt/libtiff.mak new file mode 100755 index 0000000000000..5dc2aa8dd4f4c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/winnt/libtiff.vcp b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/winnt/libtiff.vcp new file mode 100755 index 0000000000000..4c63936d895a9 Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/winnt/libtiff.vcp differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/winnt/version.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/contrib/winnt/version.h new file mode 100755 index 0000000000000..49f72b0fc5c24 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/dist/newalpha b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/dist/newalpha new file mode 100755 index 0000000000000..70d1ca5997c6e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/dist/newalpha @@ -0,0 +1,8 @@ +#! /bin/sh +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/dist/newalpha,v 1.1.1.1 2000/11/06 19:52:23 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/dist/newversion b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/dist/newversion new file mode 100755 index 0000000000000..fccee59a2e681 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/dist/newversion @@ -0,0 +1,32 @@ +#! /bin/sh +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/dist/newversion,v 1.1.1.1 2000/11/06 19:52:23 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/dist/tiff.alpha b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/dist/tiff.alpha new file mode 100755 index 0000000000000..a78fd0b8c4185 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/dist/tiff.alpha @@ -0,0 +1 @@ +define ALPHA diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/dist/tiff.spec b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/dist/tiff.spec new file mode 100755 index 0000000000000..f22b9b1c49eb5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/dist/tiff.spec @@ -0,0 +1,68 @@ +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/dist/tiff.spec,v 1.1.1.1 2000/11/06 19:52:23 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/dist/tiff.version b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/dist/tiff.version new file mode 100755 index 0000000000000..32ab5866e9908 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/dist/tiff.version @@ -0,0 +1 @@ +define TIFF_VNUM "3.5.4 (release)" diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/Makefile.in b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/Makefile.in new file mode 100755 index 0000000000000..2aaa6fa0d5944 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/Makefile.in @@ -0,0 +1,104 @@ +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/html/Makefile.in,v 1.1.1.1 2000/11/06 19:52:23 mguthaus 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 \ + ${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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/bugs.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/bugs.html new file mode 100755 index 0000000000000..a2c89c1d9cee7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $ + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/build.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/build.html new file mode 100755 index 0000000000000..da90f0696d151 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $ + + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/contrib.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/contrib.html new file mode 100755 index 0000000000000..4e981591c1c69 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $ + + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/document.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/document.html new file mode 100755 index 0000000000000..17017af3edaed --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $ +
+ + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images.html new file mode 100755 index 0000000000000..87f056f1e2f98 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $ + + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/back.gif b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/back.gif new file mode 100755 index 0000000000000..11d0c35f4671f Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/back.gif differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/bali.jpg b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/bali.jpg new file mode 100755 index 0000000000000..1f5c146dd5ed7 Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/bali.jpg differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/cat.gif b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/cat.gif new file mode 100755 index 0000000000000..5bd3fac1e21bc Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/cat.gif differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/cover.jpg b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/cover.jpg new file mode 100755 index 0000000000000..8698cfb064736 Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/cover.jpg differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/cramps.gif b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/cramps.gif new file mode 100755 index 0000000000000..9153f9ae280aa Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/cramps.gif differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/dave.gif b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/dave.gif new file mode 100755 index 0000000000000..c36d447772a63 Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/dave.gif differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/info.gif b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/info.gif new file mode 100755 index 0000000000000..783d63153ec92 Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/info.gif differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/jello.jpg b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/jello.jpg new file mode 100755 index 0000000000000..df99e663ef3b3 Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/jello.jpg differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/jim.gif b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/jim.gif new file mode 100755 index 0000000000000..9a18a031fac72 Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/jim.gif differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/note.gif b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/note.gif new file mode 100755 index 0000000000000..7177d68a19ff6 Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/note.gif differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/oxford.gif b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/oxford.gif new file mode 100755 index 0000000000000..dd4b86e186300 Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/oxford.gif differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/quad.jpg b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/quad.jpg new file mode 100755 index 0000000000000..4b7df170beb5d Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/quad.jpg differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/ring.gif b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/ring.gif new file mode 100755 index 0000000000000..2a614f4929e4c Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/ring.gif differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/smallliz.jpg b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/smallliz.jpg new file mode 100755 index 0000000000000..8eb827f8ad56f Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/smallliz.jpg differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/strike.gif b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/strike.gif new file mode 100755 index 0000000000000..0709d198674d4 Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/strike.gif differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/warning.gif b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/warning.gif new file mode 100755 index 0000000000000..f51eb4b1a7b7f Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/images/warning.gif differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/index.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/index.html new file mode 100755 index 0000000000000..8563c3c44ee0b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/index.html @@ -0,0 +1,95 @@ + + + +TIFF Software + + + + +

+ +TIFF Software +
+

+Home Page: + http://www.libtiff.org
+FAQ Page: forthcoming
+Latest Release: v3.5.4
+Latest Software: v3.5.4
+Master FTP Site: ftp.onshore.com , directory pub/libtiff (Active mode FTP only!)
+HTTP Download: http://www.libtiff.org/tiff-v3.5.3.tar.gz, http://www.libtiff.org/tiff-v3.5.3.zip
+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
+Anon CVS:
+        export CVSROOT=:pserver:anonymous@remotesensing.org:/cvsroot
+        cvs login # use password "anonymous" 
+        cvs checkout libtiff
+
+
+ +

+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/11/06 19:52:23 mguthaus Exp $ + + + + + + + + + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/internals.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/internals.html new file mode 100755 index 0000000000000..0a02f1e9ba47d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $ + + + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/intro.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/intro.html new file mode 100755 index 0000000000000..abede25f9c441 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $ + + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/libtiff.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/libtiff.html new file mode 100755 index 0000000000000..7fba1bbaab86c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $ + + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFClose.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFClose.3t.html new file mode 100755 index 0000000000000..49227d7477a07 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFError.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFError.3t.html new file mode 100755 index 0000000000000..fc2e4557562dd --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFFlush.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFFlush.3t.html new file mode 100755 index 0000000000000..643f94e1e1e01 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFGetField.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFGetField.3t.html new file mode 100755 index 0000000000000..37bf884013708 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFOpen.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFOpen.3t.html new file mode 100755 index 0000000000000..a7bed32b2596b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFPrintDirectory.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFPrintDirectory.3t.html new file mode 100755 index 0000000000000..5cd03b260b452 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFRGBAImage.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFRGBAImage.3t.html new file mode 100755 index 0000000000000..318aaa76da641 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFReadDirectory.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFReadDirectory.3t.html new file mode 100755 index 0000000000000..cd00b6ce9f47f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFReadEncodedStrip.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFReadEncodedStrip.3t.html new file mode 100755 index 0000000000000..043a84a946247 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFReadEncodedTile.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFReadEncodedTile.3t.html new file mode 100755 index 0000000000000..0b172de695d95 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFReadRGBAImage.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFReadRGBAImage.3t.html new file mode 100755 index 0000000000000..3507d203c1a68 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFReadRGBAStrip.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFReadRGBAStrip.3t.html new file mode 100755 index 0000000000000..d9c85ae671b0d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFReadRGBATile.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFReadRGBATile.3t.html new file mode 100755 index 0000000000000..e618c3ff72151 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFReadRawStrip.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFReadRawStrip.3t.html new file mode 100755 index 0000000000000..52c8e1aff4959 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFReadRawTile.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFReadRawTile.3t.html new file mode 100755 index 0000000000000..a7ea9fbba259c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFReadScanline.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFReadScanline.3t.html new file mode 100755 index 0000000000000..8a0e222eaae93 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFReadTile.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFReadTile.3t.html new file mode 100755 index 0000000000000..13a043bfcb954 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFSetDirectory.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFSetDirectory.3t.html new file mode 100755 index 0000000000000..efe6d4c8d98e5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFSetField.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFSetField.3t.html new file mode 100755 index 0000000000000..78bd9adf1790a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFWarning.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFWarning.3t.html new file mode 100755 index 0000000000000..aed9330dcfca8 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFWriteDirectory.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFWriteDirectory.3t.html new file mode 100755 index 0000000000000..a7f16a1846e4c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFWriteEncodedStrip.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFWriteEncodedStrip.3t.html new file mode 100755 index 0000000000000..2c41c9456c983 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFWriteEncodedTile.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFWriteEncodedTile.3t.html new file mode 100755 index 0000000000000..bbd3179564193 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFWriteRawStrip.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFWriteRawStrip.3t.html new file mode 100755 index 0000000000000..ec5423d189147 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFWriteRawTile.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFWriteRawTile.3t.html new file mode 100755 index 0000000000000..cd313cc1f51a5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFWriteScanline.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFWriteScanline.3t.html new file mode 100755 index 0000000000000..8deab5d868b3e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFWriteTile.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFWriteTile.3t.html new file mode 100755 index 0000000000000..150253c41a942 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFbuffer.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFbuffer.3t.html new file mode 100755 index 0000000000000..b20acd86456cb --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFcodec.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFcodec.3t.html new file mode 100755 index 0000000000000..6100101e711e3 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFmemory.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFmemory.3t.html new file mode 100755 index 0000000000000..4656cb55b7968 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFquery.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFquery.3t.html new file mode 100755 index 0000000000000..d0228395dd312 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFsize.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFsize.3t.html new file mode 100755 index 0000000000000..78d7382b5e429 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFstrip.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFstrip.3t.html new file mode 100755 index 0000000000000..a2a73d6dd8007 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFswab.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFswab.3t.html new file mode 100755 index 0000000000000..194e678167fff --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFtile.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/TIFFtile.3t.html new file mode 100755 index 0000000000000..f1dfa2abc7a4f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/fax2ps.1.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/fax2ps.1.html new file mode 100755 index 0000000000000..da1eef92e1f79 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/fax2tiff.1.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/fax2tiff.1.html new file mode 100755 index 0000000000000..50251dcce7673 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/gif2tiff.1.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/gif2tiff.1.html new file mode 100755 index 0000000000000..0dfc5835a8bbb --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/index.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/index.html new file mode 100755 index 0000000000000..002b32c661779 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/index.html @@ -0,0 +1,69 @@ + + +Libtiff HTML manpage index + + + + + + \ No newline at end of file diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/libtiff.3t.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/libtiff.3t.html new file mode 100755 index 0000000000000..5a3e4e1cc83dd --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/pal2rgb.1.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/pal2rgb.1.html new file mode 100755 index 0000000000000..e30bdf4b1bd1b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/ppm2tiff.1.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/ppm2tiff.1.html new file mode 100755 index 0000000000000..3ca324fe933dc --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/ras2tiff.1.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/ras2tiff.1.html new file mode 100755 index 0000000000000..61f03d69cb2f7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/rgb2ycbcr.1.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/rgb2ycbcr.1.html new file mode 100755 index 0000000000000..3c6087fa1d0e5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/sgi2tiff.1.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/sgi2tiff.1.html new file mode 100755 index 0000000000000..8208166653331 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/thumbnail.1.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/thumbnail.1.html new file mode 100755 index 0000000000000..e0e08c5d6228e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/tiff2bw.1.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/tiff2bw.1.html new file mode 100755 index 0000000000000..c423ca1a3e7e7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/tiff2ps.1.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/tiff2ps.1.html new file mode 100755 index 0000000000000..97fa8c9782a21 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/tiffcmp.1.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/tiffcmp.1.html new file mode 100755 index 0000000000000..359c7e622e9da --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/tiffcp.1.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/tiffcp.1.html new file mode 100755 index 0000000000000..0deb83d42291f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/tiffdither.1.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/tiffdither.1.html new file mode 100755 index 0000000000000..e45f1b7b32bb9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/tiffdump.1.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/tiffdump.1.html new file mode 100755 index 0000000000000..e5fd1e3accf7e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/tiffgt.1.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/tiffgt.1.html new file mode 100755 index 0000000000000..bff9f37854d57 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/tiffinfo.1.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/tiffinfo.1.html new file mode 100755 index 0000000000000..7625433d84025 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/tiffmedian.1.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/tiffmedian.1.html new file mode 100755 index 0000000000000..eb42f5172de31 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/tiffsplit.1.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/tiffsplit.1.html new file mode 100755 index 0000000000000..fdb90bc92f54c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/tiffsv.1.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/man/tiffsv.1.html new file mode 100755 index 0000000000000..5d3888202b591 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/misc.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/misc.html new file mode 100755 index 0000000000000..a48b15020b5b0 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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
+
+ +(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/11/06 19:52:23 $ + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/support.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/support.html new file mode 100755 index 0000000000000..f57004e422f29 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $ + + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/tools.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/tools.html new file mode 100755 index 0000000000000..4a2b046325e69 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $ + + + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta007.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta007.html new file mode 100755 index 0000000000000..758a59a1783c2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $. +
+ + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta016.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta016.html new file mode 100755 index 0000000000000..daf077a077a9e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $. +
+ + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta018.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta018.html new file mode 100755 index 0000000000000..8ceafb61b2540 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $. +
+ + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta024.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta024.html new file mode 100755 index 0000000000000..aebdb8a85dc07 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $. +
+ + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta028.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta028.html new file mode 100755 index 0000000000000..f9b19af4a1f42 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $. +
+ + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta029.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta029.html new file mode 100755 index 0000000000000..a971c05eaa71c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $. +
+ + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta031.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta031.html new file mode 100755 index 0000000000000..294976b64294e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $. +
+ + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta032.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta032.html new file mode 100755 index 0000000000000..50577e3d46e63 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $. +
+ + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta033.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta033.html new file mode 100755 index 0000000000000..47d2bd938e1f1 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $. +
+ + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta034.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta034.html new file mode 100755 index 0000000000000..a09644f119636 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $. +
+ + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta035.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta035.html new file mode 100755 index 0000000000000..3a4d2b158e78c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $. +
+ + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta036.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.4beta036.html new file mode 100755 index 0000000000000..8e588870f698a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $. +
+ + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.5.1.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.5.1.html new file mode 100755 index 0000000000000..716ca891a4b0e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $. + + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.5.2.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.5.2.html new file mode 100755 index 0000000000000..a0b15f7d9507c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $. + + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.5.3.html b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/html/v3.5.3.html new file mode 100755 index 0000000000000..19cb51620dc25 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/11/06 19:52:23 $. + + + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/include/tiff.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/include/tiff.h new file mode 100755 index 0000000000000..77392138c963f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/include/tiff.h @@ -0,0 +1,439 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/include/tiff.h,v 1.1.1.1 2000/11/06 19:52:24 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/include/tiffconf.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/include/tiffconf.h new file mode 100755 index 0000000000000..a0f69acc72564 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/include/tiffconf.h @@ -0,0 +1,137 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/include/tiffconf.h,v 1.1.1.1 2000/11/06 19:52:24 mguthaus 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 + */ +#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 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/include/tiffio.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/include/tiffio.h new file mode 100755 index 0000000000000..7b684ce0faa79 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/include/tiffio.h @@ -0,0 +1,324 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/include/tiffio.h,v 1.1.1.1 2000/11/06 19:52:24 mguthaus 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 + */ +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 int32 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 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/Makefile b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/Makefile new file mode 100644 index 0000000000000..75511b9dba640 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/Makefile @@ -0,0 +1,350 @@ +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/Makefile.in,v 1.1.1.1 2000/11/06 19:52:24 mguthaus 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 = ../libtiff + +# +# VERSION: v3.5.4 +# DATE: Tue 27 May 15:00:22 UTC 2025 +# TARGET: x86_64-unknown-linux +# CCOMPILER: /usr/bin/gcc +# +SHELL = /usr/bin/sh +NULL = +CC = /usr/bin/gcc +AR = ar +AROPTS = rc +RANLIB = /usr/bin/ranlib +INSTALL = ${SHELL} ../port/install.sh + +# +# 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} +# +# 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= +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_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 [ nodso != nodso ]; then \ + ${MAKE} nodso; \ + 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 -o libtiff.a -shared -rdata_shared \ + ${OBJS}; \ + else \ + ${CC} -o libtiff.a -shared -rdata_shared \ + -check_registry ${SRCDIR}/../port/irix/so_locations \ + -quickstart_info \ + ${OBJS} ; \ + fi + touch $@ +# special rule for IRIX 5.2 +IRIX52dso: ${OBJS} + ${LD} -elf -o libtiff.a -shared -no_unresolved -all ${OBJS} \ + -lc -lm + touch $@ +# Solaris 2.x +SOLARISdso: ${OBJS} + ${LD} -Llib -G -h libtiff.a -o libtiff.a ${OBJS} + touch $@ +# HP-UX A.09.03 +HPUXdso: ${OBJS} + ${LD} +blib -b -o libtiff.a ${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 -lc -lm -Llib + rm -f libtiff.syms libtiff.a + ${AR} ${AROPTS} libtiff.a 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.a libtiff_pic.a + rm -f libtiff_pic.a + touch $@ +# linux ELF shared lib rule +LINUXdso: ${OBJS} + ${CC} -shared -Wl,-soname,libtiff.a \ + -o libtiff.a ${OBJS} + rm -f libtiff.a + /usr/bin/ln -s libtiff.a libtiff.a + touch $@ +# OSF/1 3.2 shared lib rule +OSFdso: ${OBJS} + ${LD} -o libtiff.a -shared -error_unresolved ${OBJS} -lc -lm + + +${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 +# rm -f version.h; sim-fast ./mkversion -v ${VERSION} -a ${ALPHA} version.h + 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; sim-fast ./mkg3states -c const tif_fax3sm.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 + ${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 + ${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 include + for i in ${INCS}; do \ + f=`basename $$i`; \ + ${INSTALL} -idb tiff.sw.dev -m 444 -F include \ + -src $$i -O $$f; \ + done +installDSO: nodso + if [ a != a ]; then \ + ${INSTALL} -idb tiff.sw.tools -m 555 -F lib \ + -O libtiff.a; \ + ${INSTALL} -idb tiff.sw.tools -F lib \ + -ln libtiff.a -O libtiff.a; \ + else \ + ${INSTALL} -idb tiff.sw.tools -m 555 -F lib \ + -O libtiff.a; \ + fi +install: all installHdrs + ${INSTALL} -idb tiff.sw.dev -m 755 -dir lib + ${INSTALL} -idb tiff.sw.dev -m 444 -F lib -O libtiff.a + if [ nodso != 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.a libtiff.a *dso diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/Makefile.in b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/Makefile.in new file mode 100755 index 0000000000000..a07bb945f29e7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/Makefile.in @@ -0,0 +1,350 @@ +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/Makefile.in,v 1.1.1.1 2000/11/06 19:52:24 mguthaus 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; sim-fast ./mkversion -v ${VERSION} -a ${ALPHA} version.h + 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; sim-fast ./mkg3states -c const tif_fax3sm.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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/Makefile.lcc b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/Makefile.lcc new file mode 100755 index 0000000000000..96c6025938921 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/Makefile.lcc @@ -0,0 +1,129 @@ +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/Makefile.lcc,v 1.1.1.1 2000/11/06 19:52:24 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/include/tiff.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/include/tiff.h new file mode 100755 index 0000000000000..4e480974c59df --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/include/tiff.h @@ -0,0 +1,439 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/include/tiff.h,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/include/tiffconf.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/include/tiffconf.h new file mode 100755 index 0000000000000..784a14b41a071 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/include/tiffconf.h @@ -0,0 +1,137 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/include/tiffconf.h,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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 + */ +#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 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/include/tiffio.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/include/tiffio.h new file mode 100755 index 0000000000000..1a3e98c73a39f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/include/tiffio.h @@ -0,0 +1,324 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/include/tiffio.h,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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 + */ +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 int32 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 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/makefile.vc b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/makefile.vc new file mode 100755 index 0000000000000..e1044fb21e838 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/mkg3states b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/mkg3states new file mode 100755 index 0000000000000..cdb6432e4c8e9 Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/mkg3states differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/mkg3states.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/mkg3states.c new file mode 100755 index 0000000000000..acb34441a5903 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/mkg3states.c @@ -0,0 +1,436 @@ +/* "$Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/mkg3states.c,v 1.1.1.1 2000/11/06 19:52:26 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/mkspans.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/mkspans.c new file mode 100755 index 0000000000000..db8805d47521e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/mkspans.c @@ -0,0 +1,72 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/mkspans.c,v 1.1.1.1 2000/11/06 19:52:26 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/mkversion b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/mkversion new file mode 100755 index 0000000000000..963ba4fef7eae Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/mkversion differ diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/mkversion.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/mkversion.c new file mode 100755 index 0000000000000..639b231a2b87a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/mkversion.c @@ -0,0 +1,132 @@ +/* "$Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/mkversion.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/port.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/port.h new file mode 100644 index 0000000000000..cfd26a832942b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/port.h @@ -0,0 +1,31 @@ +/* + * Warning, this file was automatically created by the TIFF configure script + * VERSION: v3.5.4 + * DATE: Tue 27 May 15:00:22 UTC 2025 + * TARGET: x86_64-unknown-linux + * CCOMPILER: /usr/bin/gcc-11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 11.4.0-1ubuntu1~22.04) + */ +#ifndef _PORT_ +#define _PORT_ 1 +#ifdef __cplusplus +extern "C" { +#endif +#include +#define HOST_FILLORDER FILLORDER_MSB2LSB +#define HOST_BIGENDIAN 1 +#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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/t4.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/t4.h new file mode 100755 index 0000000000000..3c712600b80b4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/t4.h @@ -0,0 +1,285 @@ +/* $Id: t4.h,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_acorn.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_acorn.c new file mode 100755 index 0000000000000..bf4f8b287cd2c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_acorn.c @@ -0,0 +1,519 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_acorn.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_apple.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_apple.c new file mode 100755 index 0000000000000..a2d84c962627d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_apple.c @@ -0,0 +1,256 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_apple.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_atari.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_atari.c new file mode 100755 index 0000000000000..eae2406b0aa24 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_atari.c @@ -0,0 +1,243 @@ +/* "$Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_atari.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_aux.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_aux.c new file mode 100755 index 0000000000000..c28de598e65c9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_aux.c @@ -0,0 +1,203 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_aux.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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_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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_close.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_close.c new file mode 100755 index 0000000000000..6b75e515eba4c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_close.c @@ -0,0 +1,50 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_close.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_codec.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_codec.c new file mode 100755 index 0000000000000..b940eec441fa7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_codec.c @@ -0,0 +1,117 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_codec.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_compress.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_compress.c new file mode 100755 index 0000000000000..3354bbf48b21d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_compress.c @@ -0,0 +1,231 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_compress.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_dir.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_dir.c new file mode 100755 index 0000000000000..238e5dfc1c1b9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_dir.c @@ -0,0 +1,1276 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_dir.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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 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_VOID; + 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)) + { + tsize_t poff=*nextdir; + if (((tsize_t) (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 (((tsize_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) +{ + uint32 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) +{ + uint32 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"; + uint32 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) ; + break; + + default: + break; + } + + return (FALSE); +} diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_dir.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_dir.h new file mode 100755 index 0000000000000..0719ff0b3244e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_dir.h @@ -0,0 +1,268 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_dir.h,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_dirinfo.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_dirinfo.c new file mode 100755 index 0000000000000..da23c965bab03 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_dirinfo.c @@ -0,0 +1,402 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_dirinfo.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_dirread.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_dirread.c new file mode 100755 index 0000000000000..a4f553dcc5b10 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_dirread.c @@ -0,0 +1,1376 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_dirread.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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; + uint32 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 ((tsize_t) (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 (((tsize_t) (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 (((tsize_t)(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 (((tsize_t) (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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_dirwrite.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_dirwrite.c new file mode 100755 index 0000000000000..9350627df1bf4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_dirwrite.c @@ -0,0 +1,1023 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_dirwrite.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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; + uint32 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_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. + */ + TIFFDefaultDirectory(tif); + tif->tif_diroff = 0; + tif->tif_curoff = 0; + tif->tif_row = (uint32) -1; + tif->tif_curstrip = (tstrip_t) -1; + 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"; + 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_dumpmode.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_dumpmode.c new file mode 100755 index 0000000000000..2d618614bc725 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_dumpmode.c @@ -0,0 +1,114 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_dumpmode.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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" + +/* + * 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; + /* + * 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_error.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_error.c new file mode 100755 index 0000000000000..d5f6bfc7afdcc --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_error.c @@ -0,0 +1,49 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_error.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_fax3.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_fax3.c new file mode 100755 index 0000000000000..b3809f81c5c4d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_fax3.c @@ -0,0 +1,1540 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_fax3.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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 = 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 = 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; + + dsp->runs = (uint32*) _TIFFmalloc(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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_fax3.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_fax3.h new file mode 100755 index 0000000000000..fa3c2ddfad663 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_fax3.h @@ -0,0 +1,522 @@ +/* $Id: tif_fax3.h,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_fax3sm.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_fax3sm.c new file mode 100644 index 0000000000000..04de9bbf8b9ff --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_flush.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_flush.c new file mode 100755 index 0000000000000..6efd2f1ddace8 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_flush.c @@ -0,0 +1,60 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_flush.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_getimage.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_getimage.c new file mode 100755 index 0000000000000..579f3600bb743 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_getimage.c @@ -0,0 +1,2046 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_getimage.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_jpeg.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_jpeg.c new file mode 100755 index 0000000000000..4ab51a2819073 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_jpeg.c @@ -0,0 +1,1484 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_jpeg.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_luv.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_luv.c new file mode 100755 index 0000000000000..fc900ec40754d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_lzw.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_lzw.c new file mode 100755 index 0000000000000..630fbe1d3c071 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_lzw.c @@ -0,0 +1,722 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_lzw.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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++ = (char) 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++ = (char) 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); +} +static int _LZWtrue(TIFF* tif) { (void) tif; return (1); } +#endif /* LZW_COMPAT */ + +/* + * LZW Encoding. + * + * LZW Encoding Removed 11/22/99 due to Unisys's control of patent, + * and their demand for payment even from software developers. + * + */ + +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); + } + _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. + */ + tif->tif_data = (tidata_t) _TIFFmalloc(sizeof (LZWDecodeState)); + if (tif->tif_data == NULL) + goto bad; + if (tif->tif_mode == O_RDONLY) { + DecoderState(tif)->dec_codetab = NULL; + DecoderState(tif)->dec_decode = 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 = _LZWtrue; + tif->tif_preencode = _TIFFNoPreCode; + tif->tif_postencode = _LZWtrue; + tif->tif_encoderow = _TIFFNoRowEncode; + tif->tif_encodestrip = _TIFFNoStripEncode; + tif->tif_encodetile = _TIFFNoTileEncode; + 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_msdos.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_msdos.c new file mode 100755 index 0000000000000..f86750235c11c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_msdos.c @@ -0,0 +1,179 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_msdos.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_next.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_next.c new file mode 100755 index 0000000000000..1402237148fdd --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_next.c @@ -0,0 +1,142 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_next.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_open.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_open.c new file mode 100755 index 0000000000000..fc415088d2abf --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_open.c @@ -0,0 +1,477 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_open.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_packbits.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_packbits.c new file mode 100755 index 0000000000000..66e5399eb2d68 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_packbits.c @@ -0,0 +1,261 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_packbits.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_pixarlog.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_pixarlog.c new file mode 100755 index 0000000000000..27f2a9d7758fa --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_predict.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_predict.c new file mode 100755 index 0000000000000..beaa42e3f1d4b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_predict.c @@ -0,0 +1,461 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_predict.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_predict.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_predict.h new file mode 100755 index 0000000000000..2a614a002d019 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_predict.h @@ -0,0 +1,61 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_predict.h,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_print.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_print.c new file mode 100755 index 0000000000000..6646ced106b25 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_print.c @@ -0,0 +1,519 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_print.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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", (long) 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_read.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_read.c new file mode 100755 index 0000000000000..8d4962bf18214 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_read.c @@ -0,0 +1,626 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_read.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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 (((tsize_t) (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 (((tsize_t) 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 (((tsize_t) (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 ( ((tsize_t) (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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_strip.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_strip.c new file mode 100755 index 0000000000000..6d43d94960d79 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_strip.c @@ -0,0 +1,192 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_strip.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_swab.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_swab.c new file mode 100755 index 0000000000000..16a70121be449 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_swab.c @@ -0,0 +1,217 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_swab.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_thunder.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_thunder.c new file mode 100755 index 0000000000000..bb854a8892e84 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_thunder.c @@ -0,0 +1,154 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_thunder.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_tile.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_tile.c new file mode 100755 index 0000000000000..dc062cdd5fb75 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_tile.c @@ -0,0 +1,219 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_tile.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_unix.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_unix.c new file mode 100755 index 0000000000000..20652347501c9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_unix.c @@ -0,0 +1,215 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_unix.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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) +{ + 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) +{ +#ifdef _AM29K + long fsize; + return ((fsize = lseek((int) fd, 0, SEEK_END)) < 0 ? 0 : fsize); +#else + struct stat sb; + return (toff_t) (fstat((int) fd, &sb) < 0 ? 0 : sb.st_size); +#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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_version.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_version.c new file mode 100755 index 0000000000000..effe1c4d785d4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_version.c @@ -0,0 +1,34 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_version.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_vms.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_vms.c new file mode 100755 index 0000000000000..2b9d31530c295 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_vms.c @@ -0,0 +1,588 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_vms.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_warning.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_warning.c new file mode 100755 index 0000000000000..d313437221afd --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_warning.c @@ -0,0 +1,49 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_warning.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_win3.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_win3.c new file mode 100755 index 0000000000000..9b9c66779204a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_win3.c @@ -0,0 +1,225 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_win3.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_win32.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_win32.c new file mode 100755 index 0000000000000..19d116b00695b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_win32.c @@ -0,0 +1,307 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_win32.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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; + switch(whence) + { + case 0: + dwMoveMethod = FILE_BEGIN; + break; + case 1: + dwMoveMethod = FILE_CURRENT; + break; + case 2: + dwMoveMethod = FILE_END; + break; + default: + dwMoveMethod = FILE_BEGIN; + break; + } + return ((toff_t)SetFilePointer(fd, off, NULL, 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)) == (toff_t)-1) + 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_write.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_write.c new file mode 100755 index 0000000000000..3dbe5d11830f4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_write.c @@ -0,0 +1,658 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_write.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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 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) || \ + TIFFWriteBufferSetup((tif), NULL, (tsize_t) -1)) + +static int TIFFWriteCheck(TIFF*, int, const char*); +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 ((uint32) 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. + */ +static 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_zip.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_zip.c new file mode 100755 index 0000000000000..767c470d7a017 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tif_zip.c @@ -0,0 +1,367 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tif_zip.c,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tiff.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tiff.h new file mode 100755 index 0000000000000..670a2000f918e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tiff.h @@ -0,0 +1,439 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tiff.h,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tiffcomp.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tiffcomp.h new file mode 100755 index 0000000000000..28ca6370130cc --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tiffcomp.h @@ -0,0 +1,214 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tiffcomp.h,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tiffconf.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tiffconf.h new file mode 100755 index 0000000000000..bc561260a40ee --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tiffconf.h @@ -0,0 +1,137 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tiffconf.h,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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 + */ +#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 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tiffio.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tiffio.h new file mode 100755 index 0000000000000..1bb7b841c9466 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tiffio.h @@ -0,0 +1,324 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tiffio.h,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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 + */ +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 int32 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 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tiffiop.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tiffiop.h new file mode 100755 index 0000000000000..383175b87ceef --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/tiffiop.h @@ -0,0 +1,279 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/libtiff/tiffiop.h,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/uvcode.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/uvcode.h new file mode 100755 index 0000000000000..8d96e445837c1 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/version.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/version.h new file mode 100644 index 0000000000000..0e03317f1d718 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/libtiff/version.h @@ -0,0 +1 @@ +#define VERSION "LIBTIFF, Version 3.5.4\nCopyright (c) 1988-1996 Sam Leffler\nCopyright (c) 1991-1996 Silicon Graphics, Inc." diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/Makefile b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/Makefile new file mode 100644 index 0000000000000..b1c0dfca3505c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/Makefile @@ -0,0 +1,407 @@ +#! smake +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/Makefile.in,v 1.1.1.1 2000/11/06 19:52:27 mguthaus Exp $ +# +# Warning, this file was automatically created by the TIFF configure script +# +# 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 = ../man + +# +# VERSION: v3.5.4 +# DATE: Tue 27 May 15:00:22 UTC 2025 +# TARGET: x86_64-unknown-linux +# CCOMPILER: /usr/bin/gcc +# +SHELL = /usr/bin/sh +NULL = +ECHO = echo +SED = sed +MV = mv +RM = rm -f +INSTALL = ${SHELL} ../port/install.sh + +# +# Manual-related controls: +# +# MAN head of manual tree +# MANAPPS subdirectory for application programs +# MANLIB subdirectory for library functions +# +MAN = man +MANAPPS = man1 +MANLIB = man3 +# +# 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 = +MANCVT = ${MANSED} $? >$@ +# +# 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 = $$i +MANLIBNAME = $$i + +# +# 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};bin;g' \ + -e 's;\$${DIR_LIB};lib;g' \ + -e 's;\$${DIR_INC};include;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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/Makefile.in b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/Makefile.in new file mode 100755 index 0000000000000..625dd17892e9c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/Makefile.in @@ -0,0 +1,407 @@ +#! smake +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/Makefile.in,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFClose.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFClose.3t new file mode 100755 index 0000000000000..6b5b384f9c9a2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFClose.3t @@ -0,0 +1,51 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFClose.3t,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFError.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFError.3t new file mode 100755 index 0000000000000..46d34f526f7de --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFError.3t @@ -0,0 +1,69 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFError.3t,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFFlush.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFFlush.3t new file mode 100755 index 0000000000000..8e426c2dca32e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFFlush.3t @@ -0,0 +1,64 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFFlush.3t,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFGetField.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFGetField.3t new file mode 100755 index 0000000000000..4703e87f23952 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFGetField.3t @@ -0,0 +1,210 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFGetField.3t,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFPrintDirectory.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFPrintDirectory.3t new file mode 100755 index 0000000000000..09cf4c8fb0031 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFPrintDirectory.3t @@ -0,0 +1,71 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFPrintDirectory.3t,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFRGBAImage.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFRGBAImage.3t new file mode 100755 index 0000000000000..777b9b5061543 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFRGBAImage.3t @@ -0,0 +1,277 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFRGBAImage.3t,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadDirectory.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadDirectory.3t new file mode 100755 index 0000000000000..369f4878a1c0b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadDirectory.3t @@ -0,0 +1,164 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFReadDirectory.3t,v 1.1.1.1 2000/11/06 19:52:27 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadEncodedStrip.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadEncodedStrip.3t new file mode 100755 index 0000000000000..d10bc7dd04040 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadEncodedStrip.3t @@ -0,0 +1,73 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFReadEncodedStrip.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadEncodedTile.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadEncodedTile.3t new file mode 100755 index 0000000000000..c870686434fa7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadEncodedTile.3t @@ -0,0 +1,76 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFReadEncodedTile.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadRGBAImage.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadRGBAImage.3t new file mode 100755 index 0000000000000..24e885fa19c2c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadRGBAImage.3t @@ -0,0 +1,187 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFReadRGBAImage.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadRGBAStrip.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadRGBAStrip.3t new file mode 100755 index 0000000000000..eb41d8d8c617a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadRGBAStrip.3t @@ -0,0 +1,176 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFReadRGBAStrip.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadRGBATile.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadRGBATile.3t new file mode 100755 index 0000000000000..3c1e5cfc4fe15 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadRGBATile.3t @@ -0,0 +1,178 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFReadRGBATile.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadRawStrip.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadRawStrip.3t new file mode 100755 index 0000000000000..148ce44a41ea0 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadRawStrip.3t @@ -0,0 +1,63 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFReadRawStrip.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadRawTile.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadRawTile.3t new file mode 100755 index 0000000000000..39fb5dd2f8d7f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadRawTile.3t @@ -0,0 +1,65 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFReadRawTile.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadScanline.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadScanline.3t new file mode 100755 index 0000000000000..b741981908a9d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadScanline.3t @@ -0,0 +1,99 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFReadScanline.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadTile.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadTile.3t new file mode 100755 index 0000000000000..d7be1b8d3f442 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFReadTile.3t @@ -0,0 +1,85 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFReadTile.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFSetDirectory.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFSetDirectory.3t new file mode 100755 index 0000000000000..89f44777136e5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFSetDirectory.3t @@ -0,0 +1,78 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFSetDirectory.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFSetField.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFSetField.3t new file mode 100755 index 0000000000000..89678b2f961bc --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFSetField.3t @@ -0,0 +1,213 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFSetField.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFWriteDirectory.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFWriteDirectory.3t new file mode 100755 index 0000000000000..24a1d8d61346e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFWriteDirectory.3t @@ -0,0 +1,104 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFWriteDirectory.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFWriteEncodedStrip.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFWriteEncodedStrip.3t new file mode 100755 index 0000000000000..c70aa0df7a31f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFWriteEncodedStrip.3t @@ -0,0 +1,105 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFWriteEncodedStrip.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFWriteEncodedTile.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFWriteEncodedTile.3t new file mode 100755 index 0000000000000..df11f1d26b0d7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFWriteEncodedTile.3t @@ -0,0 +1,98 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFWriteEncodedTile.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFWriteRawStrip.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFWriteRawStrip.3t new file mode 100755 index 0000000000000..1203a583b6589 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFWriteRawStrip.3t @@ -0,0 +1,94 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFWriteRawStrip.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFWriteRawTile.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFWriteRawTile.3t new file mode 100755 index 0000000000000..5271424e769b2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFWriteRawTile.3t @@ -0,0 +1,83 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFWriteRawTile.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFWriteScanline.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFWriteScanline.3t new file mode 100755 index 0000000000000..cf3e818fb4d3b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFWriteScanline.3t @@ -0,0 +1,162 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFWriteScanline.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFWriteTile.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFWriteTile.3t new file mode 100755 index 0000000000000..3edc60c9f0b7e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFWriteTile.3t @@ -0,0 +1,77 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFWriteTile.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFbuffer.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFbuffer.3t new file mode 100755 index 0000000000000..7000b2631123d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFbuffer.3t @@ -0,0 +1,77 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFbuffer.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFcodec.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFcodec.3t new file mode 100755 index 0000000000000..671f428d569fa --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFcodec.3t @@ -0,0 +1,73 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFcodec.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFmemory.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFmemory.3t new file mode 100755 index 0000000000000..2ca0dbc1c6ecf --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFmemory.3t @@ -0,0 +1,84 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFmemory.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFquery.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFquery.3t new file mode 100755 index 0000000000000..3e4ca650186d1 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFquery.3t @@ -0,0 +1,137 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFquery.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFsize.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFsize.3t new file mode 100755 index 0000000000000..8fbd94c008cf8 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFsize.3t @@ -0,0 +1,57 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFsize.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFstrip.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFstrip.3t new file mode 100755 index 0000000000000..80af5efe6ea5f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFstrip.3t @@ -0,0 +1,96 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFstrip.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFswab.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFswab.3t new file mode 100755 index 0000000000000..1c436c9f41df0 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFswab.3t @@ -0,0 +1,73 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFswab.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFtile.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFtile.3t new file mode 100755 index 0000000000000..1a1448792d0c5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/TIFFtile.3t @@ -0,0 +1,134 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/TIFFtile.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/fax2ps.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/fax2ps.1 new file mode 100755 index 0000000000000..4a4661abddc8e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/fax2ps.1 @@ -0,0 +1,158 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/fax2ps.1,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/fax2tiff.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/fax2tiff.1 new file mode 100755 index 0000000000000..1433a849e57d4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/fax2tiff.1 @@ -0,0 +1,205 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/fax2tiff.1,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/gif2tiff.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/gif2tiff.1 new file mode 100755 index 0000000000000..a30db13145357 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/gif2tiff.1 @@ -0,0 +1,78 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/gif2tiff.1,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/libtiff.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/libtiff.3t new file mode 100755 index 0000000000000..8532eb5b17d7a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/libtiff.3t @@ -0,0 +1,519 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/libtiff.3t,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/fax2ps.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/fax2ps.1 new file mode 100755 index 0000000000000..f1c2d08cf7c9b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/fax2ps.1 @@ -0,0 +1,158 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man1/fax2ps.1,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/fax2tiff.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/fax2tiff.1 new file mode 100755 index 0000000000000..7d7f9c0c58296 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/fax2tiff.1 @@ -0,0 +1,205 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man1/fax2tiff.1,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/gif2tiff.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/gif2tiff.1 new file mode 100755 index 0000000000000..0275f9ce53600 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/gif2tiff.1 @@ -0,0 +1,78 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man1/gif2tiff.1,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/pal2rgb.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/pal2rgb.1 new file mode 100755 index 0000000000000..2e190a26cf70f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/pal2rgb.1 @@ -0,0 +1,108 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man1/pal2rgb.1,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/ppm2tiff.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/ppm2tiff.1 new file mode 100755 index 0000000000000..53d20de7cec6b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/ppm2tiff.1 @@ -0,0 +1,97 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man1/ppm2tiff.1,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/ras2tiff.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/ras2tiff.1 new file mode 100755 index 0000000000000..e01924ac81455 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/ras2tiff.1 @@ -0,0 +1,92 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man1/ras2tiff.1,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/rgb2ycbcr.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/rgb2ycbcr.1 new file mode 100755 index 0000000000000..5257b11afe7a9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/rgb2ycbcr.1 @@ -0,0 +1,98 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man1/rgb2ycbcr.1,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/sgi2tiff.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/sgi2tiff.1 new file mode 100755 index 0000000000000..2d7198bba2781 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/sgi2tiff.1 @@ -0,0 +1,90 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man1/sgi2tiff.1,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/thumbnail.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/thumbnail.1 new file mode 100755 index 0000000000000..d613ae67a517b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/thumbnail.1 @@ -0,0 +1,87 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man1/thumbnail.1,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiff2bw.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiff2bw.1 new file mode 100755 index 0000000000000..290261eff56f2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiff2bw.1 @@ -0,0 +1,91 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man1/tiff2bw.1,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiff2ps.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiff2ps.1 new file mode 100755 index 0000000000000..223d0eacdd8fd --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiff2ps.1 @@ -0,0 +1,177 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man1/tiff2ps.1,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffcmp.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffcmp.1 new file mode 100755 index 0000000000000..05c166ba1cafc --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffcmp.1 @@ -0,0 +1,74 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man1/tiffcmp.1,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffcp.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffcp.1 new file mode 100755 index 0000000000000..8fcdd4f057896 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffcp.1 @@ -0,0 +1,221 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man1/tiffcp.1,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffdither.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffdither.1 new file mode 100755 index 0000000000000..e0ccf6bb4acd7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffdither.1 @@ -0,0 +1,125 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man1/tiffdither.1,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffdump.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffdump.1 new file mode 100755 index 0000000000000..6277ef15d02cc --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffdump.1 @@ -0,0 +1,74 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man1/tiffdump.1,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffgt.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffgt.1 new file mode 100755 index 0000000000000..3a705087b6db9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffgt.1 @@ -0,0 +1,242 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man1/tiffgt.1,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffinfo.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffinfo.1 new file mode 100755 index 0000000000000..7697da4684361 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffinfo.1 @@ -0,0 +1,85 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man1/tiffinfo.1,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffmedian.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffmedian.1 new file mode 100755 index 0000000000000..b425cff022ce2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffmedian.1 @@ -0,0 +1,109 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man1/tiffmedian.1,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffsplit.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffsplit.1 new file mode 100755 index 0000000000000..a13967ccbe96e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffsplit.1 @@ -0,0 +1,66 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man1/tiffsplit.1,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffsv.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffsv.1 new file mode 100755 index 0000000000000..bc25716a86984 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man1/tiffsv.1 @@ -0,0 +1,139 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man1/tiffsv.1,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFCheckTile.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFCheckTile.3t new file mode 100755 index 0000000000000..9d4f10ca52358 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFCheckTile.3t @@ -0,0 +1 @@ +.so TIFFtile.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFClose.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFClose.3t new file mode 100755 index 0000000000000..adde65096d143 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFClose.3t @@ -0,0 +1,51 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFClose.3t,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFComputeStrip.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFComputeStrip.3t new file mode 100755 index 0000000000000..82684f13cfc9a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFComputeStrip.3t @@ -0,0 +1 @@ +.so TIFFstrip.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFComputeTile.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFComputeTile.3t new file mode 100755 index 0000000000000..9d4f10ca52358 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFComputeTile.3t @@ -0,0 +1 @@ +.so TIFFtile.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFCurrentDirectory.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFCurrentDirectory.3t new file mode 100755 index 0000000000000..30b10aaa3fff7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFCurrentDirectory.3t @@ -0,0 +1 @@ +.so TIFFquery.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFCurrentRow.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFCurrentRow.3t new file mode 100755 index 0000000000000..30b10aaa3fff7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFCurrentRow.3t @@ -0,0 +1 @@ +.so TIFFquery.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFCurrentStrip.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFCurrentStrip.3t new file mode 100755 index 0000000000000..30b10aaa3fff7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFCurrentStrip.3t @@ -0,0 +1 @@ +.so TIFFquery.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFCurrentTile.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFCurrentTile.3t new file mode 100755 index 0000000000000..30b10aaa3fff7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFCurrentTile.3t @@ -0,0 +1 @@ +.so TIFFquery.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFDefaultStripSize.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFDefaultStripSize.3t new file mode 100755 index 0000000000000..82684f13cfc9a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFDefaultStripSize.3t @@ -0,0 +1 @@ +.so TIFFstrip.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFDefaultTileSize.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFDefaultTileSize.3t new file mode 100755 index 0000000000000..9d4f10ca52358 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFDefaultTileSize.3t @@ -0,0 +1 @@ +.so TIFFtile.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFError.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFError.3t new file mode 100755 index 0000000000000..845204227d20d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFError.3t @@ -0,0 +1,69 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFError.3t,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFFdOpen.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFFdOpen.3t new file mode 100755 index 0000000000000..726cb315f441c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFFdOpen.3t @@ -0,0 +1 @@ +.so TIFFOpen.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFFileName.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFFileName.3t new file mode 100755 index 0000000000000..30b10aaa3fff7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFFileName.3t @@ -0,0 +1 @@ +.so TIFFquery.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFFileno.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFFileno.3t new file mode 100755 index 0000000000000..30b10aaa3fff7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFFileno.3t @@ -0,0 +1 @@ +.so TIFFquery.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFFindCODEC.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFFindCODEC.3t new file mode 100755 index 0000000000000..80dd425d6a334 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFFindCODEC.3t @@ -0,0 +1 @@ +.so TIFFcodec.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFFlush.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFFlush.3t new file mode 100755 index 0000000000000..d56dcb4bf055f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFFlush.3t @@ -0,0 +1,64 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFFlush.3t,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFFlushData.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFFlushData.3t new file mode 100755 index 0000000000000..0570ee963f19a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFFlushData.3t @@ -0,0 +1 @@ +.so TIFFFlush.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFGetField.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFGetField.3t new file mode 100755 index 0000000000000..b8fb3425fc79c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFGetField.3t @@ -0,0 +1,210 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFGetField.3t,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFPrintDirectory.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFPrintDirectory.3t new file mode 100755 index 0000000000000..3cb26c2cad1d7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFPrintDirectory.3t @@ -0,0 +1,71 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFPrintDirectory.3t,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFRGBAImage.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFRGBAImage.3t new file mode 100755 index 0000000000000..b38317cd1ca06 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFRGBAImage.3t @@ -0,0 +1,277 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFRGBAImage.3t,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFRGBAImageBegin.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFRGBAImageBegin.3t new file mode 100755 index 0000000000000..de89a102872b2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFRGBAImageBegin.3t @@ -0,0 +1 @@ +.so TIFFRGBAImage.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFRGBAImageEnd.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFRGBAImageEnd.3t new file mode 100755 index 0000000000000..de89a102872b2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFRGBAImageEnd.3t @@ -0,0 +1 @@ +.so TIFFRGBAImage.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFRGBAImageGet.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFRGBAImageGet.3t new file mode 100755 index 0000000000000..de89a102872b2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFRGBAImageGet.3t @@ -0,0 +1 @@ +.so TIFFRGBAImage.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFRGBAImageOK.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFRGBAImageOK.3t new file mode 100755 index 0000000000000..de89a102872b2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFRGBAImageOK.3t @@ -0,0 +1 @@ +.so TIFFRGBAImage.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadBufferSetup.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadBufferSetup.3t new file mode 100755 index 0000000000000..5ce187261214c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadBufferSetup.3t @@ -0,0 +1 @@ +.so TIFFbuffer.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadDirectory.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadDirectory.3t new file mode 100755 index 0000000000000..f28fac3f62e29 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadDirectory.3t @@ -0,0 +1,164 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFReadDirectory.3t,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadEncodedStrip.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadEncodedStrip.3t new file mode 100755 index 0000000000000..3f4fd02b9c0f2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadEncodedStrip.3t @@ -0,0 +1,73 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFReadEncodedStrip.3t,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadEncodedTile.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadEncodedTile.3t new file mode 100755 index 0000000000000..5195cf6282e23 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadEncodedTile.3t @@ -0,0 +1,76 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFReadEncodedTile.3t,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadRGBAImage.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadRGBAImage.3t new file mode 100755 index 0000000000000..5bf8fb345ca6c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadRGBAImage.3t @@ -0,0 +1,187 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFReadRGBAImage.3t,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadRGBAStrip.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadRGBAStrip.3t new file mode 100755 index 0000000000000..0501ec7e24dd3 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadRGBAStrip.3t @@ -0,0 +1,176 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFReadRGBAStrip.3t,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadRGBATile.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadRGBATile.3t new file mode 100755 index 0000000000000..d659bdec2d7c6 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadRGBATile.3t @@ -0,0 +1,178 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFReadRGBATile.3t,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadRawStrip.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadRawStrip.3t new file mode 100755 index 0000000000000..4ffb47fa269ac --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadRawStrip.3t @@ -0,0 +1,63 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFReadRawStrip.3t,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadRawTile.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadRawTile.3t new file mode 100755 index 0000000000000..93fbbc8967a8d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadRawTile.3t @@ -0,0 +1,65 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFReadRawTile.3t,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadScanline.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadScanline.3t new file mode 100755 index 0000000000000..2fd8f39d7cff0 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadScanline.3t @@ -0,0 +1,99 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFReadScanline.3t,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadTile.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadTile.3t new file mode 100755 index 0000000000000..c47dd7b4971ed --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReadTile.3t @@ -0,0 +1,85 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFReadTile.3t,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFRegisterCODEC.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFRegisterCODEC.3t new file mode 100755 index 0000000000000..80dd425d6a334 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFRegisterCODEC.3t @@ -0,0 +1 @@ +.so TIFFcodec.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReverseBits.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReverseBits.3t new file mode 100755 index 0000000000000..e7ce0ae356416 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFReverseBits.3t @@ -0,0 +1 @@ +.so TIFFswab.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFScanlineSize.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFScanlineSize.3t new file mode 100755 index 0000000000000..7c20fbf0401c5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFScanlineSize.3t @@ -0,0 +1 @@ +.so TIFFsize.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFSetDirectory.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFSetDirectory.3t new file mode 100755 index 0000000000000..ed74caf407503 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFSetDirectory.3t @@ -0,0 +1,78 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFSetDirectory.3t,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFSetErrorHandler.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFSetErrorHandler.3t new file mode 100755 index 0000000000000..b90f8ac1e3f63 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFSetErrorHandler.3t @@ -0,0 +1 @@ +.so TIFFError.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFSetField.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFSetField.3t new file mode 100755 index 0000000000000..ecef1dd9b1cd8 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFSetField.3t @@ -0,0 +1,213 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFSetField.3t,v 1.1.1.1 2000/11/06 19:52:29 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteBufferSetup.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteBufferSetup.3t new file mode 100755 index 0000000000000..5ce187261214c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteBufferSetup.3t @@ -0,0 +1 @@ +.so TIFFbuffer.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteDirectory.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteDirectory.3t new file mode 100755 index 0000000000000..5b087b34f2399 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteDirectory.3t @@ -0,0 +1,104 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFWriteDirectory.3t,v 1.1.1.1 2000/11/06 19:52:30 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteEncodedStrip.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteEncodedStrip.3t new file mode 100755 index 0000000000000..c3127f1633831 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteEncodedStrip.3t @@ -0,0 +1,105 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFWriteEncodedStrip.3t,v 1.1.1.1 2000/11/06 19:52:30 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteEncodedTile.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteEncodedTile.3t new file mode 100755 index 0000000000000..e74cb2d0ce8a3 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteEncodedTile.3t @@ -0,0 +1,98 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFWriteEncodedTile.3t,v 1.1.1.1 2000/11/06 19:52:30 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteRawStrip.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteRawStrip.3t new file mode 100755 index 0000000000000..2b8f9b073f613 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteRawStrip.3t @@ -0,0 +1,94 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFWriteRawStrip.3t,v 1.1.1.1 2000/11/06 19:52:30 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteRawTile.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteRawTile.3t new file mode 100755 index 0000000000000..3e863cabfb4a8 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteRawTile.3t @@ -0,0 +1,83 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFWriteRawTile.3t,v 1.1.1.1 2000/11/06 19:52:30 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteScanline.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteScanline.3t new file mode 100755 index 0000000000000..e43f5aa4423bc --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteScanline.3t @@ -0,0 +1,162 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFWriteScanline.3t,v 1.1.1.1 2000/11/06 19:52:30 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteTile.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteTile.3t new file mode 100755 index 0000000000000..a8b64654c59e1 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFWriteTile.3t @@ -0,0 +1,77 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFWriteTile.3t,v 1.1.1.1 2000/11/06 19:52:30 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFbuffer.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFbuffer.3t new file mode 100755 index 0000000000000..4d56494eb9211 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFbuffer.3t @@ -0,0 +1,77 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFbuffer.3t,v 1.1.1.1 2000/11/06 19:52:30 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFcodec.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFcodec.3t new file mode 100755 index 0000000000000..b038eaa5b8e7f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFcodec.3t @@ -0,0 +1,73 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFcodec.3t,v 1.1.1.1 2000/11/06 19:52:30 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFfree.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFfree.3t new file mode 100755 index 0000000000000..4bdbb50160ab9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFfree.3t @@ -0,0 +1 @@ +.so TIFFmemory.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFmalloc.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFmalloc.3t new file mode 100755 index 0000000000000..4bdbb50160ab9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFmalloc.3t @@ -0,0 +1 @@ +.so TIFFmemory.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFmemcmp.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFmemcmp.3t new file mode 100755 index 0000000000000..4bdbb50160ab9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFmemcmp.3t @@ -0,0 +1 @@ +.so TIFFmemory.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFmemcpy.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFmemcpy.3t new file mode 100755 index 0000000000000..4bdbb50160ab9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFmemcpy.3t @@ -0,0 +1 @@ +.so TIFFmemory.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFmemory.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFmemory.3t new file mode 100755 index 0000000000000..4fb27afd70988 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFmemory.3t @@ -0,0 +1,84 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFmemory.3t,v 1.1.1.1 2000/11/06 19:52:30 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFmemset.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFmemset.3t new file mode 100755 index 0000000000000..4bdbb50160ab9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFmemset.3t @@ -0,0 +1 @@ +.so TIFFmemory.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFquery.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFquery.3t new file mode 100755 index 0000000000000..dfb2bfaced04a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFquery.3t @@ -0,0 +1,137 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFquery.3t,v 1.1.1.1 2000/11/06 19:52:30 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFrealloc.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFrealloc.3t new file mode 100755 index 0000000000000..4bdbb50160ab9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFrealloc.3t @@ -0,0 +1 @@ +.so TIFFmemory.3t diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFsize.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFsize.3t new file mode 100755 index 0000000000000..3f2a1977262f1 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFsize.3t @@ -0,0 +1,57 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFsize.3t,v 1.1.1.1 2000/11/06 19:52:30 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFstrip.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFstrip.3t new file mode 100755 index 0000000000000..14505c0a201be --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFstrip.3t @@ -0,0 +1,96 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFstrip.3t,v 1.1.1.1 2000/11/06 19:52:30 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFswab.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFswab.3t new file mode 100755 index 0000000000000..a5b90034ca7be --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFswab.3t @@ -0,0 +1,73 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFswab.3t,v 1.1.1.1 2000/11/06 19:52:30 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFtile.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFtile.3t new file mode 100755 index 0000000000000..c86cfe9287c54 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/TIFFtile.3t @@ -0,0 +1,134 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/TIFFtile.3t,v 1.1.1.1 2000/11/06 19:52:30 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/libtiff.3t b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/libtiff.3t new file mode 100755 index 0000000000000..5ebb6566ad3c9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/man/man3/libtiff.3t @@ -0,0 +1,519 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/man/man3/libtiff.3t,v 1.1.1.1 2000/11/06 19:52:30 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/pal2rgb.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/pal2rgb.1 new file mode 100755 index 0000000000000..6f11b27b08937 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/pal2rgb.1 @@ -0,0 +1,108 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/pal2rgb.1,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/ppm2tiff.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/ppm2tiff.1 new file mode 100755 index 0000000000000..8ff9828cece91 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/ppm2tiff.1 @@ -0,0 +1,97 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/ppm2tiff.1,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/ras2tiff.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/ras2tiff.1 new file mode 100755 index 0000000000000..2e1fdba70ae14 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/ras2tiff.1 @@ -0,0 +1,92 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/ras2tiff.1,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/rgb2ycbcr.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/rgb2ycbcr.1 new file mode 100755 index 0000000000000..cc09dc58babec --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/rgb2ycbcr.1 @@ -0,0 +1,98 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/rgb2ycbcr.1,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/sgi2tiff.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/sgi2tiff.1 new file mode 100755 index 0000000000000..503264d3833d1 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/sgi2tiff.1 @@ -0,0 +1,90 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/sgi2tiff.1,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/thumbnail.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/thumbnail.1 new file mode 100755 index 0000000000000..35fd10dd477b8 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/thumbnail.1 @@ -0,0 +1,87 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/thumbnail.1,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiff2bw.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiff2bw.1 new file mode 100755 index 0000000000000..d33e19354b592 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiff2bw.1 @@ -0,0 +1,91 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/tiff2bw.1,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiff2ps.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiff2ps.1 new file mode 100755 index 0000000000000..fac592392c63c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiff2ps.1 @@ -0,0 +1,177 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/tiff2ps.1,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffcmp.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffcmp.1 new file mode 100755 index 0000000000000..beb3d1a45a345 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffcmp.1 @@ -0,0 +1,74 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/tiffcmp.1,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffcp.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffcp.1 new file mode 100755 index 0000000000000..12966c42149cd --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffcp.1 @@ -0,0 +1,221 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/tiffcp.1,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffdither.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffdither.1 new file mode 100755 index 0000000000000..e7e2507c5b552 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffdither.1 @@ -0,0 +1,125 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/tiffdither.1,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffdump.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffdump.1 new file mode 100755 index 0000000000000..6351afc7c8e26 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffdump.1 @@ -0,0 +1,74 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/tiffdump.1,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffgt.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffgt.1 new file mode 100755 index 0000000000000..0dc32e215ce80 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffgt.1 @@ -0,0 +1,242 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/tiffgt.1,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffinfo.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffinfo.1 new file mode 100755 index 0000000000000..396d97e57b85a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffinfo.1 @@ -0,0 +1,85 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/tiffinfo.1,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffmedian.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffmedian.1 new file mode 100755 index 0000000000000..fc52ce12d6b38 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffmedian.1 @@ -0,0 +1,109 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/tiffmedian.1,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffsplit.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffsplit.1 new file mode 100755 index 0000000000000..bd88e1c430977 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffsplit.1 @@ -0,0 +1,66 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/tiffsplit.1,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffsv.1 b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffsv.1 new file mode 100755 index 0000000000000..804e761a788c8 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/man/tiffsv.1 @@ -0,0 +1,139 @@ +.\" $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/man/tiffsv.1,v 1.1.1.1 2000/11/06 19:52:28 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/port/Makefile.in b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/port/Makefile.in new file mode 100755 index 0000000000000..bbe6717259059 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/port/Makefile.in @@ -0,0 +1,67 @@ +#! smake +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/port/Makefile.in,v 1.1.1.1 2000/11/06 19:52:31 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/port/getopt.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/port/getopt.c new file mode 100755 index 0000000000000..e25a74d6c5955 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/port/install.sh b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/port/install.sh new file mode 100644 index 0000000000000..1e5c70db3f009 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/port/install.sh @@ -0,0 +1,247 @@ +#! /usr/bin/sh +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/port/install.sh.in,v 1.1.1.1 2000/11/06 19:52:31 mguthaus Exp $ +# +# Warning, this file was automatically created by the TIFF configure script +# +# 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: v3.5.4 +# DATE: Tue 27 May 15:00:22 UTC 2025 +# TARGET: x86_64-unknown-linux +# + +# +# 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="." +ROOT="." +CHMOD=":" +CHOWN=":" +CHGRP=":" +RM="rm -f" +MV="mv -f" +ECHO=echo +VERBOSE=":" +STRIP="/usr/bin/strip" +CMP=cmp + +TARGETS= +while [ x"$1" != x ] +do + arg=$1 + case $arg in + -m) shift; CHMOD="/usr/bin/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 | /usr/bin/sed 's;.*/;;'`; + test $x = mknod && postopts="p"; + STRIP=":" + ;; + -ln) shift; CMD=/usr/bin/ln; SRC="$1" + STRIP=":" + ;; + -lns) shift; CMD=/usr/bin/ln; preopts="-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 | /usr/bin/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/port/install.sh.in b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/port/install.sh.in new file mode 100755 index 0000000000000..b2b5381a4f85f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/port/install.sh.in @@ -0,0 +1,247 @@ +#! @SCRIPT_SH@ +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/port/install.sh.in,v 1.1.1.1 2000/11/06 19:52:31 mguthaus 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="." +ROOT="." +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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/port/irix/so_locations b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/port/irix/so_locations new file mode 100755 index 0000000000000..9226d4fc92106 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/port/irix/so_locations @@ -0,0 +1,4 @@ +libtiff.so \ + :st = .text 0x5ff70000, 0x00030000:\ + :st = .data 0x5ffd0000, 0x00030000:\ + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/port/strcasecmp.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/port/strcasecmp.c new file mode 100755 index 0000000000000..967840299ef9f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/port/strtoul.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/port/strtoul.c new file mode 100755 index 0000000000000..ed8c1080ba6e1 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/test_pics.sh b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/test_pics.sh new file mode 100755 index 0000000000000..8605ead793edd --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/test_pics.sh @@ -0,0 +1,29 @@ +#!/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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/Makefile b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/Makefile new file mode 100644 index 0000000000000..c29414436d279 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/Makefile @@ -0,0 +1,259 @@ +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/Makefile.in,v 1.1.1.1 2000/11/06 19:52:31 mguthaus Exp $ +# +# Warning, this file was automatically created by the TIFF configure script +# +# 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 = ../tools +LIBDIR = ../libtiff + +# +# VERSION: v3.5.4 +# DATE: Tue 27 May 15:00:22 UTC 2025 +# TARGET: x86_64-unknown-linux +# CCOMPILER: /usr/bin/gcc +# +SHELL = /usr/bin/sh +NULL = +CC = /usr/bin/gcc +INSTALL = ${SHELL} ../port/install.sh +# +COPTS = +OPTIMIZER=-O +IPATH = -I. -I${SRCDIR} -I${LIBDIR} +CFLAGS = ${COPTS} ${OPTIMIZER} ${IPATH} +# +TIFFLIB = ${DEPTH}/libtiff/libtiff.a +LIBJPEG = +LIBGZ = +LIBTIFF = ${DEPTH}/libtiff/libtiff.a +LIBPORT = +MACHLIBS= +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 [ "no" = yes ]; then \ + ${MAKE} sgi2tiff; \ + else \ + true; \ + fi + @if [ "no" = yes ]; then \ + ${MAKE} tiffgt tiffsv; \ + else \ + true; \ + fi +install: all + ${INSTALL} -idb nostrip tiff.sw.tools -m 755 -dir bin + ${INSTALL} -idb nostrip tiff.sw.tools -m 755 -F bin -O ${TARGETS} + @if [ "no" = yes ]; then \ + ${INSTALL} -idb tiff.sw.tools -m 755 -F bin -O sgi2tiff; \ + else \ + true; \ + fi + @if [ "no" = yes ]; then \ + ${INSTALL} -idb tiff.sw.tools -m 755 -F 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/Makefile.in b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/Makefile.in new file mode 100755 index 0000000000000..0c709928d9eed --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/Makefile.in @@ -0,0 +1,259 @@ +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/Makefile.in,v 1.1.1.1 2000/11/06 19:52:31 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/Makefile.lcc b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/Makefile.lcc new file mode 100755 index 0000000000000..017d121c7867e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/Makefile.lcc @@ -0,0 +1,137 @@ +# $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/Makefile.lcc,v 1.1.1.1 2000/11/06 19:52:31 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/Makefile.vc b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/Makefile.vc new file mode 100755 index 0000000000000..4f6292aaeda5a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/Makefile.vc @@ -0,0 +1,28 @@ +# +# 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 diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/fax2ps.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/fax2ps.c new file mode 100755 index 0000000000000..e25355ab208de --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/fax2ps.c @@ -0,0 +1,437 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/fax2ps.c,v 1.1.1.1 2000/11/06 19:52:33 mguthaus 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, uint16* runs, uint16* 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)(pageHeight*72), (int)(pageWidth*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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/fax2tiff.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/fax2tiff.c new file mode 100755 index 0000000000000..5a58e833bf1f0 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/fax2tiff.c @@ -0,0 +1,358 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/fax2tiff.c,v 1.1.1.1 2000/11/06 19:52:34 mguthaus 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, 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/gif2tiff.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/gif2tiff.c new file mode 100755 index 0000000000000..836f3e6d129df --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/gif2tiff.c @@ -0,0 +1,513 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/gif2tiff.c,v 1.1.1.1 2000/11/06 19:52:36 mguthaus 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 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 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/ppm2tiff.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/ppm2tiff.c new file mode 100755 index 0000000000000..60cb0b23c2086 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/ppm2tiff.c @@ -0,0 +1,242 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/ppm2tiff.c,v 1.1.1.1 2000/11/06 19:52:39 mguthaus 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 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/ras2tiff.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/ras2tiff.c new file mode 100755 index 0000000000000..52cad5bcc06c4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/ras2tiff.c @@ -0,0 +1,266 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/ras2tiff.c,v 1.1.1.1 2000/11/06 19:52:40 mguthaus 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 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/rasterfile.h b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/rasterfile.h new file mode 100755 index 0000000000000..a2bb57117f566 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/rasterfile.h @@ -0,0 +1,41 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/rasterfile.h,v 1.1.1.1 2000/11/06 19:52:40 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/rgb2ycbcr.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/rgb2ycbcr.c new file mode 100755 index 0000000000000..97ff296c8d5f4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/rgb2ycbcr.c @@ -0,0 +1,341 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/rgb2ycbcr.c,v 1.1.1.1 2000/11/06 19:52:41 mguthaus 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 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/sgi2tiff.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/sgi2tiff.c new file mode 100755 index 0000000000000..dfcb3c9e7ac61 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/sgi2tiff.c @@ -0,0 +1,321 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/sgi2tiff.c,v 1.1.1.1 2000/11/06 19:52:41 mguthaus 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 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/sgigt.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/sgigt.c new file mode 100755 index 0000000000000..d5746136df1e8 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/sgigt.c @@ -0,0 +1,984 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/sgigt.c,v 1.1.1.1 2000/11/06 19:52:41 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/sgisv.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/sgisv.c new file mode 100755 index 0000000000000..0e2c8702acd17 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/sgisv.c @@ -0,0 +1,310 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/sgisv.c,v 1.1.1.1 2000/11/06 19:52:41 mguthaus 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 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/thumbnail.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/thumbnail.c new file mode 100755 index 0000000000000..4206743a657a2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/thumbnail.c @@ -0,0 +1,572 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/thumbnail.c,v 1.1.1.1 2000/11/06 19:52:42 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiff2bw.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiff2bw.c new file mode 100755 index 0000000000000..35f9512e200e4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiff2bw.c @@ -0,0 +1,401 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/tiff2bw.c,v 1.1.1.1 2000/11/06 19:52:43 mguthaus 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 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiff2ps.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiff2ps.c new file mode 100755 index 0000000000000..3c642676794c0 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiff2ps.c @@ -0,0 +1,1408 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/tiff2ps.c,v 1.1.1.1 2000/11/06 19:52:44 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiff2rgba.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiff2rgba.c new file mode 100755 index 0000000000000..db0ed132ea49a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiff2rgba.c @@ -0,0 +1,452 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/tiff2rgba.c,v 1.1.1.1 2000/11/06 19:52:46 mguthaus 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", + " 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiffcmp.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiffcmp.c new file mode 100755 index 0000000000000..1961b273f311f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiffcmp.c @@ -0,0 +1,483 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/tiffcmp.c,v 1.1.1.1 2000/11/06 19:52:47 mguthaus 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) + exit(1); + break; + case 16: + printf("Scanline %lu, pixel %lu, sample %d: %04x %04x\n", + (long) row, (long) pix, sample, w1, w2); + if (--stopondiff) + 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) + 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiffcp.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiffcp.c new file mode 100755 index 0000000000000..df6308c0973a5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiffcp.c @@ -0,0 +1,1314 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/tiffcp.c,v 1.1.1.1 2000/11/06 19:52:49 mguthaus 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 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiffdither.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiffdither.c new file mode 100755 index 0000000000000..3a8490d3861cf --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiffdither.c @@ -0,0 +1,314 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/tiffdither.c,v 1.1.1.1 2000/11/06 19:52:50 mguthaus 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 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiffdump.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiffdump.c new file mode 100755 index 0000000000000..5b8b8f4042185 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiffdump.c @@ -0,0 +1,755 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/tiffdump.c,v 1.1.1.1 2000/11/06 19:52:52 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiffinfo.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiffinfo.c new file mode 100755 index 0000000000000..0a9e8326aa14b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiffinfo.c @@ -0,0 +1,429 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/tiffinfo.c,v 1.1.1.1 2000/11/06 19:52:53 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiffmedian.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiffmedian.c new file mode 100755 index 0000000000000..4b67cbff4e7ad --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiffmedian.c @@ -0,0 +1,890 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/tiffmedian.c,v 1.1.1.1 2000/11/06 19:52:54 mguthaus 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 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 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiffsplit.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiffsplit.c new file mode 100755 index 0000000000000..9ed5f2157f4ac --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/tiffsplit.c @@ -0,0 +1,226 @@ +/* $Header: /home/mguthaus/.cvsroot/mibench/consumer/tiff-v3.5.4/tools/tiffsplit.c,v 1.1.1.1 2000/11/06 19:52:55 mguthaus 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/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/ycbcr.c b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/tools/ycbcr.c new file mode 100755 index 0000000000000..2fdfb0ce9913e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff-v3.5.4/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/evaluation/benchmarks/mibench/consumer/tiff/tiff2bw/COMPILE b/evaluation/benchmarks/mibench/consumer/tiff/tiff2bw/COMPILE new file mode 100755 index 0000000000000..d2b67127e3a5f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff2bw/COMPILE @@ -0,0 +1,19 @@ +Compile Instructions +-------------------- +1) Change directories to ../tiff-v3.5.4. +2) Type "./configure" to configure the Makefile for your system. Select + all default options. +3) Type "make". This will create the executables used by the scripts. If + this doesn't work see the tiff-v3.5.4/README file for more details on + how to fix or modify the install process. + +NOTE: This install process will create the executables that are used by +the four different variants of tiff that are used in the MiBench suite. +In other words, you only need to do this once. + +Clean Instructions +------------------ +1) Change directories to tiff-v3.5.4. +2) Type "make distclean". This will delete post-compile files (i.e. + old executables, output, object files, etc...). + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff2bw/LICENSE b/evaluation/benchmarks/mibench/consumer/tiff/tiff2bw/LICENSE new file mode 100755 index 0000000000000..8282186151e22 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff2bw/LICENSE @@ -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/evaluation/benchmarks/mibench/consumer/tiff/tiff2bw/README b/evaluation/benchmarks/mibench/consumer/tiff/tiff2bw/README new file mode 100755 index 0000000000000..42b1371686058 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff2bw/README @@ -0,0 +1,6 @@ +The makefile is located in ../tiff-v3.5.4 + +The data files are located at ../tiff_data + +The binaries will be located in ../tiff-v3.5.4/tools after the configure +and make have successfully completed diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff2bw/runme_large.sh b/evaluation/benchmarks/mibench/consumer/tiff/tiff2bw/runme_large.sh new file mode 100755 index 0000000000000..416b48818b583 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff2bw/runme_large.sh @@ -0,0 +1,2 @@ +#!/bin/sh +../tiff-v3.5.4/tools/tiff2bw ../tiff-data/large.tif output_largebw.tif diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff2bw/runme_small.sh b/evaluation/benchmarks/mibench/consumer/tiff/tiff2bw/runme_small.sh new file mode 100755 index 0000000000000..fbbbec2c802e0 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff2bw/runme_small.sh @@ -0,0 +1,2 @@ +#!/bin/sh +../tiff-v3.5.4/tools/tiff2bw ../tiff-data/small.tif output_smallbw.tif diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff2rgba/COMPILE b/evaluation/benchmarks/mibench/consumer/tiff/tiff2rgba/COMPILE new file mode 100755 index 0000000000000..d2b67127e3a5f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff2rgba/COMPILE @@ -0,0 +1,19 @@ +Compile Instructions +-------------------- +1) Change directories to ../tiff-v3.5.4. +2) Type "./configure" to configure the Makefile for your system. Select + all default options. +3) Type "make". This will create the executables used by the scripts. If + this doesn't work see the tiff-v3.5.4/README file for more details on + how to fix or modify the install process. + +NOTE: This install process will create the executables that are used by +the four different variants of tiff that are used in the MiBench suite. +In other words, you only need to do this once. + +Clean Instructions +------------------ +1) Change directories to tiff-v3.5.4. +2) Type "make distclean". This will delete post-compile files (i.e. + old executables, output, object files, etc...). + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff2rgba/LICENSE b/evaluation/benchmarks/mibench/consumer/tiff/tiff2rgba/LICENSE new file mode 100755 index 0000000000000..8282186151e22 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff2rgba/LICENSE @@ -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/evaluation/benchmarks/mibench/consumer/tiff/tiff2rgba/README b/evaluation/benchmarks/mibench/consumer/tiff/tiff2rgba/README new file mode 100755 index 0000000000000..42b1371686058 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff2rgba/README @@ -0,0 +1,6 @@ +The makefile is located in ../tiff-v3.5.4 + +The data files are located at ../tiff_data + +The binaries will be located in ../tiff-v3.5.4/tools after the configure +and make have successfully completed diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff2rgba/runme_large.sh b/evaluation/benchmarks/mibench/consumer/tiff/tiff2rgba/runme_large.sh new file mode 100755 index 0000000000000..d0057278a501a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff2rgba/runme_large.sh @@ -0,0 +1,2 @@ +#!/bin/sh +../tiff-v3.5.4/tools/tiff2rgba -c none ../tiff-data/large.tif output_largergba.tif diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiff2rgba/runme_small.sh b/evaluation/benchmarks/mibench/consumer/tiff/tiff2rgba/runme_small.sh new file mode 100755 index 0000000000000..b4b9aa7f007be --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiff2rgba/runme_small.sh @@ -0,0 +1,2 @@ +#!/bin/sh +../tiff-v3.5.4/tools/tiff2rgba -c none ../tiff-data/small.tif output_smallrgba.tif diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiffdither/COMPILE b/evaluation/benchmarks/mibench/consumer/tiff/tiffdither/COMPILE new file mode 100755 index 0000000000000..d2b67127e3a5f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiffdither/COMPILE @@ -0,0 +1,19 @@ +Compile Instructions +-------------------- +1) Change directories to ../tiff-v3.5.4. +2) Type "./configure" to configure the Makefile for your system. Select + all default options. +3) Type "make". This will create the executables used by the scripts. If + this doesn't work see the tiff-v3.5.4/README file for more details on + how to fix or modify the install process. + +NOTE: This install process will create the executables that are used by +the four different variants of tiff that are used in the MiBench suite. +In other words, you only need to do this once. + +Clean Instructions +------------------ +1) Change directories to tiff-v3.5.4. +2) Type "make distclean". This will delete post-compile files (i.e. + old executables, output, object files, etc...). + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiffdither/LICENSE b/evaluation/benchmarks/mibench/consumer/tiff/tiffdither/LICENSE new file mode 100755 index 0000000000000..8282186151e22 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiffdither/LICENSE @@ -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/evaluation/benchmarks/mibench/consumer/tiff/tiffdither/README b/evaluation/benchmarks/mibench/consumer/tiff/tiffdither/README new file mode 100755 index 0000000000000..42b1371686058 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiffdither/README @@ -0,0 +1,6 @@ +The makefile is located in ../tiff-v3.5.4 + +The data files are located at ../tiff_data + +The binaries will be located in ../tiff-v3.5.4/tools after the configure +and make have successfully completed diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiffdither/runme_large.sh b/evaluation/benchmarks/mibench/consumer/tiff/tiffdither/runme_large.sh new file mode 100755 index 0000000000000..2756a75acba43 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiffdither/runme_large.sh @@ -0,0 +1,2 @@ +#!/bin/sh +../tiff-v3.5.4/tools/tiffdither -c g4 ../tiff-data/largebw.tif output_largedither.tif diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiffdither/runme_small.sh b/evaluation/benchmarks/mibench/consumer/tiff/tiffdither/runme_small.sh new file mode 100755 index 0000000000000..511c6f28ecb58 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiffdither/runme_small.sh @@ -0,0 +1,2 @@ +#!/bin/sh +../tiff-v3.5.4/tools/tiffdither -c g4 ../tiff-data/smallbw.tif output_smalldither.tif diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiffmedian/COMPILE b/evaluation/benchmarks/mibench/consumer/tiff/tiffmedian/COMPILE new file mode 100755 index 0000000000000..d2b67127e3a5f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiffmedian/COMPILE @@ -0,0 +1,19 @@ +Compile Instructions +-------------------- +1) Change directories to ../tiff-v3.5.4. +2) Type "./configure" to configure the Makefile for your system. Select + all default options. +3) Type "make". This will create the executables used by the scripts. If + this doesn't work see the tiff-v3.5.4/README file for more details on + how to fix or modify the install process. + +NOTE: This install process will create the executables that are used by +the four different variants of tiff that are used in the MiBench suite. +In other words, you only need to do this once. + +Clean Instructions +------------------ +1) Change directories to tiff-v3.5.4. +2) Type "make distclean". This will delete post-compile files (i.e. + old executables, output, object files, etc...). + diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiffmedian/LICENSE b/evaluation/benchmarks/mibench/consumer/tiff/tiffmedian/LICENSE new file mode 100755 index 0000000000000..8282186151e22 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiffmedian/LICENSE @@ -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/evaluation/benchmarks/mibench/consumer/tiff/tiffmedian/README b/evaluation/benchmarks/mibench/consumer/tiff/tiffmedian/README new file mode 100755 index 0000000000000..42b1371686058 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiffmedian/README @@ -0,0 +1,6 @@ +The makefile is located in ../tiff-v3.5.4 + +The data files are located at ../tiff_data + +The binaries will be located in ../tiff-v3.5.4/tools after the configure +and make have successfully completed diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiffmedian/runme_large.sh b/evaluation/benchmarks/mibench/consumer/tiff/tiffmedian/runme_large.sh new file mode 100755 index 0000000000000..3d066d25b9b42 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiffmedian/runme_large.sh @@ -0,0 +1,2 @@ +#!/bin/sh +../tiff-v3.5.4/tools/tiffmedian ../tiff-data/large.tif output_largemedian.tif diff --git a/evaluation/benchmarks/mibench/consumer/tiff/tiffmedian/runme_small.sh b/evaluation/benchmarks/mibench/consumer/tiff/tiffmedian/runme_small.sh new file mode 100755 index 0000000000000..d068dcde6603e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/tiff/tiffmedian/runme_small.sh @@ -0,0 +1,2 @@ +#!/bin/sh +../tiff-v3.5.4/tools/tiffmedian ../tiff-data/small.tif output_smallmedian.tif diff --git a/evaluation/benchmarks/mibench/consumer/typeset/COMPILE b/evaluation/benchmarks/mibench/consumer/typeset/COMPILE new file mode 100755 index 0000000000000..e9be776b598c9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/COMPILE @@ -0,0 +1,13 @@ +Compile Instructions +-------------------- +1) Change directories to lout-3.24. +2) Type "make". This will create the executables used by the scripts. If + this doesn't work see the lout-3.24/Makefile for details on how + to fix or modify the install process. + +Clean Instructions +------------------ +1) Change directories to lout-3.24. +2) Type "make clean". This will delete post-compile files (i.e. + old executables, output, object files, etc...). + diff --git a/evaluation/benchmarks/mibench/consumer/typeset/LICENSE b/evaluation/benchmarks/mibench/consumer/typeset/LICENSE new file mode 100755 index 0000000000000..00980827e456a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/LICENSE @@ -0,0 +1,56 @@ +THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.24) +BASSER LOUT VERSION 3 COPYRIGHT (C) 1994, 2000 Jeffrey H. Kingston + +Jeffrey H. Kingston +Basser Department of Computer Science +The University of Sydney 2006 +AUSTRALIA + +Telephone (direct): 61 2 692 4216 +Telephone (messages): 61 2 692 3423 +Email: jeff@cs.usyd.edu.au +Fax: 61 2 692 3838 + +This program 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 1, 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 +(file gnu.gpl in this directory); if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +This directory contains everything needed to install the Lout document +formatting system. It contains the following directories: + + data Lout databases (in Lout) + doc Lout documentation (in Lout) + font Adobe Systems font metrics files + hyph Lout hyphenation files (see hyph/README for info) + include Lout packages (in Lout) + locale Locale-specific error messages + man Lout and prg2lout manual entries + maps Lout Character Mapping (LCM) files + setup Lout setup files (in Lout) + software Information about Lout-related software from elsewhere + +and the following files: + + READMEPDF A description of the PDF back end + blurb A news blurb describing Lout + blurb.short A short news blurb describing Lout + prg2lout.c prg2lout source code (all in one file) + externs.h z*.c Lout source code + gnu.gpl A copy of the GNU General Public License + makefile A makefile for installing Lout + maillist Information about a public mailing list about Lout + notes.dsc Notes on the degree of Lout's conformance with the + PostScript Document Structuring Conventions + whatsnew A brief informal update on recent changes + +See the makefile for installation instructions. diff --git a/evaluation/benchmarks/mibench/consumer/typeset/benchmark.py b/evaluation/benchmarks/mibench/consumer/typeset/benchmark.py new file mode 100644 index 0000000000000..09c0c59297ecb --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/benchmark.py @@ -0,0 +1,58 @@ +from pathlib import Path + +from benchmarking import Benchmark, Workload + +DIR = Path(__file__).parent + +benchmark = Benchmark( + name='typeset', + path=DIR, + src_files=[DIR / 'lout-3.24' / f for f in + [ + 'z01.c', 'z02.c', 'z03.c', 'z04.c', 'z05.c', 'z06.c', 'z07.c', 'z08.c', 'z09.c', 'z10.c', 'z11.c', + 'z12.c', 'z13.c', 'z14.c', 'z15.c', 'z16.c', 'z17.c', 'z18.c', 'z19.c', 'z20.c', 'z21.c', 'z22.c', + 'z23.c', 'z24.c', 'z25.c', 'z26.c', 'z27.c', 'z28.c', 'z29.c', 'z30.c', 'z31.c', 'z32.c', 'z33.c', + 'z34.c', 'z35.c', 'z36.c', 'z37.c', 'z38.c', 'z39.c', 'z40.c', 'z41.c', 'z42.c', 'z43.c', 'z44.c', + 'z45.c', 'z46.c', 'z47.c', 'z48.c', 'z49.c', 'z50.c', 'z51.c'] + ], + + build_flags=[ + '-DOS_UNIX=1', + '-DOS_DOS=0', + '-DOS_MAC=0', + '-DDB_FIX=0', + '-DUSE_STAT=1', + '-DSAFE_DFT=0', + '-DCOLLATE=1', + '-DLIB_DIR="/usr/staff/jeff/lout.lib"', + '-DFONT_DIR="font"', + '-DMAPS_DIR="maps"', + '-DINCL_DIR="include"', + '-DDATA_DIR="data"', + '-DHYPH_DIR="hyph"', + '-DLOCALE_DIR="locale"', + '-DCHAR_IN=1', + '-DCHAR_OUT=0', + '-DLOCALE_ON=1', + '-DASSERT_ON=1', + '-ansi', + '-pedantic', + '-Wall', + '-O3', + '-DDEBUG_ON=0', + '-DPDF_COMPRESSION=0' + ], + workloads=[ + Workload(None, + [ + f'-I{DIR / "lout-3.24" / "include"}', + f'-D{DIR / "lout-3.24" / "data"}', + f'-F{DIR / "lout-3.24" / "font"}', + f'-C{DIR / "lout-3.24" / "maps"}', + f'-H{DIR / "lout-3.24" / "hyph"}', + DIR / 'large.lout' + ], + None, + DIR / 'output_large.ps') + ] +) diff --git a/evaluation/benchmarks/mibench/consumer/typeset/large.lout b/evaluation/benchmarks/mibench/consumer/typeset/large.lout new file mode 100755 index 0000000000000..210fd6251da20 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/large.lout @@ -0,0 +1,502 @@ +@SysInclude { tbl } +@SysInclude { doc } +def @HeaderA right x { @CD +8p @Font { x } } +def @HeaderB right x { @CD +6p @Font { x } } +def @HeaderC right x { @CD +4p @Font { x } } +def @HeaderD right x { @CD +2p @Font { x } } +def @HeaderE right x { @CD -1p @Font { x } } +def @HeaderF right x { @CD -2p @Font { x } } +# Created by HTML::LoutParser.pm on 2001/06/28 from SimpleScalar.htm. +@Doc @Text @Begin +#DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" + +# saved from url=(0041)http://www.simplescalar.org/overview.html + +#start html +#start head + +@InitialBreak {adjust 1.2fx hyphen} + +@CentredDisplay { +10p } @Font {#start title +SimpleScalar Tools Overview Page} +#end title + +#unhandled start meta attributes= (content=>text/html; charset=iso-8859-1), (http-equiv=>Content-Type) + +#unhandled start meta attributes= (name=>GENERATOR), (content=>MSHTML 5.50.4616.200) +#end head + +#start body attributes= (background=>SimpleScalar_files/whitevellum.gif) + +{ clines } @Break { +#start center + + +@HeaderB {#start h2 +{ Times Base 10p } @Font {#start font attributes= (color=>#006aff) +Announcements} +#end font +} +#end h2 +} +#end center + + +@BulletList +#start ul + + +@ListItem {#start li + + +@HeaderC {#start h3 +New web pages!} +#end h3 +The new domain and mailing lists are just about up! + +@PP +#start p +@LLP +#end p +#end li +} + +@EndList +#end ul + + +@PP +#start p + +@LLP +#start br + + +@LLP @FullWidthRule @LLP +#start hr + + +@PP +#start p + +{ clines } @Break { +#start center + + +@HeaderB {#start h2 +{ Times Base 10p } @Font {#start font attributes= (color=>#006aff) +SimpleScalar Overview} +#end font +} +#end h2 +} +#end center +{}@B {#start strong +What +is the SimpleScalar tool set? } +#end strong + + +@PP +#start p +This tool set consists of compiler, assembler, linker, simulation, and +visualization tools for the SimpleScalar architecture. With this tool set, +the +user can simulate real programs on a range of modern processors and +systems, +using fast execution-driven simulation. We provide simulators ranging from +a +fast functional simulator to a detailed, out-of-order issue processor that +supports non-blocking caches, speculative execution, and state-of-the-art +branch +prediction. The tool set is partly derived from the GNU software +development +tools. It provides researchers with an easily extensible, portable, +high-performance test bed for systems design. + +@PP +#start p +{}@B {#start strong +Who wrote the SimpleScalar tool set?} +#end strong + + +@PP +#start p +Much of the compiler tools are simply ports of the GNU software development +tools to the SimpleScalar architecture. The ports as well as the simulators +were +written by Todd Austin (while he was a Ph.D. student at the University of +Wisconsin-Madison, working in the Multiscalar Group under {}@Underline {#start a attributes= (href=>http://www.cs.wisc.edu/~sohi) +Guri Sohi} +#end a +; he is now with Intel Corp.). +The tool set is now supported by {}@Underline {#start a attributes= (href=>http://www.cs.utexas.edu/users/dburger) +Doug Burger} +#end a +, who wrote the +documentation for both releases 1.0 and 2.0. Contributions have also been +made +by Manoj Franklin, {}@Underline {#start a attributes= (href=>http://www.cs.wisc.edu/~breach) +Scott Breach} +#end a +, +and Kevin Skadron. + +@PP +#start p +The development of this code was originally supported by grants from the +National Science Foundation (grant CCR-9303030 plus software capitalization +supplement) and the Office of Naval Research (grant N00014-93-1-0465). Many +sources, all appreciated, currently fund development on several fronts. + +@PP +#start p +{}@B {#start strong +On which platforms does it run?} +#end strong + + +@PP +#start p +SimpleScalar should port easily to any 32-bit flavor of UNIX, particularly +those that support POSIX-compliant syscalls. The tools have been installed +(and +should cleanly build) on the following systems: + +@PP +#start p + +{ clines } @Break { +#start center + + +@LLP +@Tbl + rule { yes } + aformat {@Cell A | @Cell B | @Cell C | @Cell D | @Cell E | @Cell F } +{ +#start table + + #unhandled start tbody + + @Rowa +#start tr + + A {#start td attributes= (width=>100) +{}@B {#start b +Architecture} +#end b +} +#end td + + B {#start td +{}@B {#start b +Operating System} +#end b +} +#end td + + C {#start td +{}@B {#start b +Compiler} +#end b +} +#end td + +#end tr + + @Rowa +#start tr + + A {#start td +x86} +#end td + + B {#start td +Free BSD 2.2} +#end td + + C {#start td +gcc} +#end td + +#end tr + + @Rowa +#start tr + + A {#start td +x86} +#end td + + B {#start td +CygWin32"/"Windows NT} +#end td + + C {#start td +gcc} +#end td + +#end tr + + @Rowa +#start tr + + A {#start td +x86} +#end td + + B {#start td +Linux1.3} +#end td + + C {#start td +gcc} +#end td + +#end tr + + @Rowa +#start tr + + A {#start td +x86} +#end td + + B {#start td +Solaris2} +#end td + + C {#start td +gcc} +#end td + +#end tr + + @Rowa +#start tr + + A {#start td +SPARC} +#end td + + B {#start td +SunOS 4.1.3} +#end td + + C {#start td +gcc} +#end td + +#end tr + + @Rowa +#start tr + + A {#start td +SPARC} +#end td + + B {#start td +Solaris 2} +#end td + + C {#start td +gcc} +#end td + +#end tr + + @Rowa +#start tr + + A {#start td +RS6000} +#end td + + B {#start td +AIX 4.1.3} +#end td + + C {#start td +gcc} +#end td + +#end tr + + @Rowa +#start tr + + A {#start td +RS6000} +#end td + + B {#start td +AIX 4.1.3} +#end td + + C {#start td +xlc} +#end td + +#end tr + + @Rowa +#start tr + + A {#start td +PA-RISC} +#end td + + B {#start td +HPUX} +#end td + + C {#start td +gcc} +#end td + +#end tr + + @Rowa +#start tr + + A {#start td +Alpha} +#end td + + B {#start td +DEC Unix 3.2} +#end td + + C {#start td +gcc} +#end td + +#end tr + + @Rowa +#start tr + + A {#start td +Alpha} +#end td + + B {#start td +DEC Unix 3.2} +#end td + + C {#start td +c89} +#end td + +#end tr +#unhandled end tbody +}@LLP +#end table +} +#end center + + +@PP +#start p +{}@B {#start strong +How can I keep informed as to new releases and +announcements?} +#end strong + + +@PP +#start p +We have set up serveral SimpleScalar mailing lists for various topics. To +subscribe, go to the {}@Underline {#start a attributes= (href=>http://www.simplescalar.org/subscribe.html) +mailing list page} +#end a + and +follow the directions. {}@B {#start strong +How do I see old mailing list messages?} +#end strong + + +@PP +#start p +Steve Raasch at Michigan was kind enough to set up an SS mailing list +archive. You should pore through these before sending a question to the +list, +which goes to hundreds of people. Lots of the same questions gets asked +over and +over, and the answers to new users' questions are likely to be in the +archive! + +@PP +#start p +The archive is available at: {}@Underline {#start a attributes= (href=>http://ord.eecs.umich.edu/) +http:"/""/"ord.eecs.umich.edu"/"} +#end a +. + +@PP +#start p +{}@B {#start strong +What's new in version 2.0?} +#end strong + + +@PP +#start p +We have added numerous features and utilities. The code has been cleaned up +and is better documented, plus all known bugs have been fixed. The code now +includes much more sophisticated arguments and statistics packages (that +allow +you to use config files to set simulation parameters), plus cleaner +statistics +reporting. We have provided a source-level debugger called DLite!, which +allows +you to step through the program being simulated. We have also added a +pipeline +tracer, which allows you to track pipeline state in the out-of-order +simulator. +We have removed the simulators' dependence on the BFD utilities, making +binutils' installation optional. There are two new simulators, sim-profile +and +sim-cheetah, that do useful profiling and multiple simultaneous cache +configuration simulations, respectively. Finally, we include pre-built +binaries, +both small test binaries and a complete set of the SPEC95 binaries built +for +SimpleScalar (both big- and little-endian). + +@PP +#start p +@LLP +#end table + +{ clines } @Break { +#start center +} +#end center + + +@PP +#start p + + +@LLP @FullWidthRule @LLP +#start hr + +Last modified: Sun Feb 27 2000 23:29 by {}@Underline {#start a attributes= (href=>mailto:dburger@cs.utexas.edu) +Doug Burger} +#end a + +@LLP +#start br + + +@LLP @FullWidthRule @LLP +#start hr + +#end body +#end html + +@End @Text diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/Makefile b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/Makefile new file mode 100755 index 0000000000000..163623daf2568 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/Makefile @@ -0,0 +1,453 @@ +############################################################################### +# # +# Make file for installing Basser Lout Version 3.24 # +# # +# Jeffrey H. Kingston # +# 24 June 2000 # +# # +# make prg2lout Compile a small auxiliary program called prg2lout # +# make lout Compile the Lout source # +# make install Install the Lout and prg2lout binaries and libraries # +# make installman Install the Lout and prg2lout manual entries # +# make installdoc Install the Lout documentation # +# make installfr Install French error messages (optional) # +# make installde Install German error messages (optional) # +# make clean Remove compilation temporaries # +# make uninstall Undo the effect of make install, installman, # +# installdoc, installfr, and installde # +# make restart Undo everything except changes to this makefile, # +# ready for a fresh start. # +# # +# Most installations of Lout should require only the following steps. If # +# something goes wrong, you can start again with "make restart". Please # +# carry out all the steps, in exactly the order given. Believe me, it # +# will be much faster than doing it any other way. # +# # +# (1) Set exactly one of the following macros defined below to 1 and the # +# others all to 0, to indicate the operating system under which the # +# Lout binary is to run. At present OSUNIX and OSDOS work but OSMAC # +# doesn't work. # +# # +# OSUNIX Unix in all its flavours, including Linux. # +# OSDOS MS-DOS etc. ("rb" and "wb" file access modes where needed) # +# OSMAC Macintosh # +# # +# (2) If you want to install Lout with debugging on for some reason, for # +# example if a guru has asked you to do this in the course of tracking # +# down some problem with Lout, then set these two macros as follows: # +# # +# DEBUGGING = 1 # +# TRACING = -g # +# # +# Lout will run a bit slower and its binary will be a bit larger if # +# you do this. The normal, non-debugging values are # +# # +# DEBUGGING = 0 # +# TRACING = # +# # +# These should appear like this below. # +# # +# (3) This may be the trickiest step of all. On some systems, for example # +# NT under Visual C++, Lout's use of the system ftell() call causes # +# a problem. This problem typically manifests itself on the *second* # +# pass over a large document such as the Lout User's Guide: a message # +# such as "error in database file" is printed and Lout aborts. The # +# precise error may vary but should say something about a problem with # +# a database file. # +# # +# If this problem occurs you can probably fix it by changing the value # +# of DBFIX below to 1. Many thanks to Valeriy E. Ushakov for this fix. # +# # +# Systems requiring DBFIX = 0 Systems requiring DBFIX = 1 # +# ------------------------------------------------------------- # +# Unix NT/Visual C++ # +# Cygnus gnuwin32 gcc djgpp # +# Mingw32 # +# # +# (4) Set the USESTAT macro defined below to 1 if the system you are # +# compiling onto has the stat() file status system call. If you are # +# unsure, or know it doesn't, set USESTAT to 0. The stat() call, # +# if used, will allow Lout to determine the time of last change # +# of database index files and rebuild them automatically if required. # +# # +# (5) Set the SAFEDFT macro defined below to 1 if you want safe execution # +# (i.e. disabling calls to system()) to be the default behaviour. You # +# can always specify safe or unsafe execution by means of the -S and # +# -U options to lout when processing a document; SAFEDFT means that # +# -S rather than -U is the default behaviour. Unsafe execution is # +# required when formatting computer programs, so if in doubt, do not # +# change the value of SAFEDFT. # +# # +# (6) Set the following four macros defined below to appropriate values: # +# # +# BINDIR Directory where Lout's binary goes. This directory is # +# assumed to exist. # +# # +# LIBDIR Directory where Lout's libraries go. This directory will # +# be created (but its parent must exist already). # +# # +# DOCDIR Directory where the documents describing the Lout system # +# (written in Lout) go. This directory will be created (but # +# its parent must exist already). # +# # +# MANDIR Directory where the lout and prg2lout online manual entries # +# (in nroff -man) go. This directory is assumed to exist. # +# # +# (7) Set the following two macros defined below to appropriate values. # +# I strongly recommend CHARIN=1 and CHAROUT=0 for all sites (English # +# and non-English language). This way we get a truly international # +# standard in which everyone has access to accented characters, yet # +# Lout's output is in the strict 7-bit ASCII that is recommended in # +# the PostScript manual. # +# # +# CHARIN This macro determines the assignment of characters in Lout # +# source files to character classes by the lexical analyser. # +# That is, it determines which characters are letters, which # +# is the comment character, etc. Supported values are: # +# # +# 0 For English language only ASCII installations # +# # +# 1 For installations using the ISO-LATIN-1 character set # +# (adds accented letters to the LETTER character class) # +# # +# Lout will accept any 8-bit character except '\0'; CHARIN # +# does not determine the acceptability of any character, just # +# its class. # +# # +# CHAROUT This macro determines the format of strings of literal # +# characters in the PostScript output. Currently supported # +# values are: # +# # +# 0 Every output character will be printable ASCII # +# # +# 1 Every output character will be printable ISO-LATIN-1 # +# # +# The output will be valid PostScript irrespective of the # +# value given to CHAROUT, which may be set independently of # +# CHARIN. It just determines which characters are printed # +# as \ddd escape sequences and which are printed as one-byte # +# literal characters. # +# # +# (8) Set macro USELOC to one of the following values, NOT TO A LOCALE. # +# # +# 0 Lout's error messages will always appear in English, and no # +# source code related to locales will be executed (although # +# file will be read for collation stuff). # +# # +# 1 Lout's error messages may appear in languages other than # +# English, depending on the current locale. The Lout source # +# will be compiled including , , and # +# calls to setlocale(), catopen(), catgets(), and catclose() # +# # +# If you choose to set USELOC to 1, you now need to set one or more of # +# these macros: # +# # +# LOC_FR If you want French language error messages, set this macro # +# to your French locale name, i.e. to the value that you # +# expect setlocale(LC_MESSAGES, "") to return when you want # +# to get French language error messages # +# # +# LOC_DE If you want German language error messages, set this macro # +# to your German locale name, i.e. to the value that you # +# expect setlocale(LC_MESSAGES, "") to return when you want # +# to get German language error messages # +# # +# For error messages in other languages, consult ./locale/README. # +# # +# (9) Set macro COLLATE to either 0 or 1. If you set it to 1, Lout will # +# use the strcoll() routine by default when sorting alphabetically # +# (e.g. when sorting indexes), otherwise Lout will sort by default # +# based on the ISO codes of the characters. This default setting may # +# be changed during individual runs of Lout by the -l and -L flags. # +# # +# (10) Execute "make prg2lout". This will compile the prg2lout program, # +# leaving its binary in this directory. Other directories unchanged. # +# # +# (11) If you want to be able to produce compressed PDF files, as opposed to # +# uncompressed ones, you need to: # +# # +# (a) obtain the zlib compression library from # +# . # +# # +# (b) decompress the zlib source files using gunzip and/or tar and # +# then build the library by issuing the "make zlib.a" command # +# whilst in the zlib directory. If you want to test the library, # +# you should use the "make test" command (which also builds the # +# library). # +# # +# (c) set the PDF_COMPRESSION variable below to 1 # +# # +# (d) set the ZLIB variable to the path of the libz.a file. For example: # +# ZLIB = /usr/cs3/vtan/lout/lout.3.11/zlib-1.1.1/libz.a # +# # +# (e) set the ZLIBPATH variable to the path of the zlib directory with # +# -I in front. For example: # +# ZLIBPATH = -I/usr/cs3/vtan/lout/lout.3.11/zlib-1.1.1/ # +# # +# If you don't want zlib support or cannot obtain it or cannot use it, # +# leave the PDF_COMPRESSION, ZLIB, and ZLIBPATH variables as they are. # +# # +# (12) Execute "make lout". This will compile the Lout source, leaving the # +# binary in this directory. No changes are made in other directories. # +# # +# (13) This makefile assumes that Lout is not installed on your system # +# already. If you do have an earlier version of Lout installed, # +# the simplest way to get rid of it is to type "make uninstall" now. # +# Of course, this is assuming that the old version was installed in the # +# same directories as where you are about to install the new version. # +# # +# (14) Execute "make install". This will do the following things: # +# # +# (a) It will copy the lout and prg2lout binaries into $(BINDIR); # +# # +# (b) It will create $(LIBDIR) and copy all the library files into it; # +# # +# (c) It will perform an initializing "lout -x" run. This run will # +# do the following checks and initializations: # +# # +# (i) It will read all the hyphenation (.lh) files mentioned # +# in file $(LIBDIR)/include/langdefs, check them, and build # +# the packed (.lp) versions; # +# # +# (ii) It will read and check the four standard database # +# (.ld) files in directory $(LIBDIR)/data, and build # +# the corresponding database index (.li) files. # +# # +# (d) It will change the mode of the files created in (c) to be # +# publicly readable, just in case they weren't created that way. # +# # +# It is good to build the various files during installation because # +# later runs will not have write permission in the library directories. # +# # +# (15) Execute "make installman". This installs the manual entries for lout # +# and prg2lout into directory $(MANDIR), which is assumed to exist. # +# These entries are troff files; plain text versions are also available # +# in directory ./man if you need them (install them yourself). # +# # +# (16) Execute "make installdoc". This creates directory $(DOCDIR) and # +# copies the Lout documentation into it. # +# # +# (17) If you want French error messages, execute "make installfr" now. # +# If you want German error messages, execute "make installde" now. # +# These commands compile the error messages files into packed forms # +# using the gencat command, and store them in $(LIBDIR)/locale. # +# # +# (18) Execute "make clean". This cleans up this directory. # +# # +# (19) If the usual size of a piece of paper at your site is not A4, you # +# might like to now change the default value of the @PageType option # +# on line 59 of file $(LIBDIR)/include/dsf: # +# # +# named @PageType { A4 @OrIfPlain Other } # +# # +# This is saying that the page type is to be A4 by default, unless # +# plain text output is in effect (lout -p), in which case the page # +# type is Other, which means that the page dimensions come from the # +# @PageWidth and @PageHeight options. Just change the A4, not the # +# rest. You can find the list of known page types, alternative to A4, # +# in the User's Guide, and also at line 640 in $(LIBDIR)/include/dsf. # +# # +# (20) If the usual language at your site is not English, you might like to # +# now change the default value of the @InitialLanguage option on line # +# 255 of file $(LIBDIR)/include/bsf. This will mean that by default # +# the date and words like Chapter and July will appear in a different # +# language, and hyphenation will be carried out according to patterns # +# designed for that language. You can find the list of known languages # +# in the User's Guide, or in file $(LIBDIR)/include/langdefs; if yours # +# is not on the list, let me know and we can work together to add it. # +# This has nothing to do with locales and USELOC. # +# # +# Mail jeff@cs.usyd.edu.au if you have any problems. # +# # +############################################################################### + +OSUNIX = 1 +OSDOS = 0 +OSMAC = 0 + +DBFIX = 0 + +USESTAT = 1 +SAFEDFT = 0 + +DEBUGGING = 0 +TRACING = + +# DEBUGGING = 1 +# TRACING = -g + +BINDIR = /usr/staff/jeff/bin +LIBDIR = /usr/staff/jeff/lout.lib +DOCDIR = /usr/staff/jeff/lout.doc +MANDIR = /usr/staff/jeff/lout.man + +LIBFONT = font +LIBMAPS = maps +LIBINCL = include +LIBDATA = data +LIBHYPH = hyph +LIBLOCA = locale + +CHARIN = 1 +CHAROUT = 0 + +USELOC = 1 +LOC_FR = fr +LOC_DE = de + +COLLATE = 1 + +PDF_COMPRESSION = 0 +ZLIB = +ZLIBPATH = + +CC = gcc +LD = gcc -static + +RCOPY = cp -r + +COPTS = -ansi -pedantic -Wall -O3 +# COPTS = -ansi -pedantic -Wall + +CFLAGS = -DOS_UNIX=$(OSUNIX) \ + -DOS_DOS=$(OSDOS) \ + -DOS_MAC=$(OSMAC) \ + -DDB_FIX=$(DBFIX) \ + -DUSE_STAT=$(USESTAT) \ + -DSAFE_DFT=$(SAFEDFT) \ + -DCOLLATE=$(COLLATE) \ + -DLIB_DIR=\"$(LIBDIR)\" \ + -DFONT_DIR=\"$(LIBFONT)\" \ + -DMAPS_DIR=\"$(LIBMAPS)\" \ + -DINCL_DIR=\"$(LIBINCL)\" \ + -DDATA_DIR=\"$(LIBDATA)\" \ + -DHYPH_DIR=\"$(LIBHYPH)\" \ + -DLOCALE_DIR=\"$(LIBLOCA)\" \ + -DCHAR_IN=$(CHARIN) \ + -DCHAR_OUT=$(CHAROUT) \ + -DLOCALE_ON=$(USELOC) \ + -DASSERT_ON=1 $(COPTS) \ + -DDEBUG_ON=$(DEBUGGING) \ + $(TRACING) \ + -DPDF_COMPRESSION=$(PDF_COMPRESSION) \ + $(ZLIBPATH) + +OBJS = z01.o z02.o z03.o z04.o z05.o z06.o z07.o z08.o \ + z09.o z10.o z11.o z12.o z13.o z14.o z15.o z16.o \ + z17.o z18.o z19.o z20.o z21.o z22.o z23.o z24.o \ + z25.o z26.o z27.o z28.o z29.o z30.o z31.o z32.o \ + z33.o z34.o z35.o z36.o z37.o z38.o z39.o z40.o \ + z41.o z42.o z43.o z44.o z45.o z46.o z47.o z48.o \ + z49.o z50.o z51.o + +lout: $(OBJS) + $(LD) -o lout $(OBJS) $(ZLIB) -lm + chmod a+x lout + +$(OBJS): externs.h + +externs.h: + +prg2lout: prg2lout.c + $(CC) $(COPTS) -o prg2lout prg2lout.c + chmod a+x prg2lout + +install: lout prg2lout + @echo "" + @echo "(a) Installing lout and prg2lout binaries into BINDIR $(BINDIR)" + cp lout $(BINDIR)/lout + chmod 755 $(BINDIR)/lout + cp prg2lout $(BINDIR)/prg2lout + chmod 755 $(BINDIR)/prg2lout + @echo "" + @echo "(b) Installing library files into LIBDIR $(LIBDIR)" + mkdir $(LIBDIR) + chmod 755 $(LIBDIR) + @echo "" + mkdir $(LIBDIR)/$(LIBINCL) + chmod 755 $(LIBDIR)/$(LIBINCL) + cp include/* $(LIBDIR)/$(LIBINCL) + chmod 644 $(LIBDIR)/$(LIBINCL)/* + @echo "" + mkdir $(LIBDIR)/$(LIBDATA) + chmod 755 $(LIBDIR)/$(LIBDATA) + cp data/* $(LIBDIR)/$(LIBDATA) + chmod 644 $(LIBDIR)/$(LIBDATA)/* + @echo "" + mkdir $(LIBDIR)/$(LIBHYPH) + chmod 755 $(LIBDIR)/$(LIBHYPH) + cp hyph/* $(LIBDIR)/$(LIBHYPH) + chmod 644 $(LIBDIR)/$(LIBHYPH)/* + @echo "" + mkdir $(LIBDIR)/$(LIBFONT) + chmod 755 $(LIBDIR)/$(LIBFONT) + cp font/* $(LIBDIR)/$(LIBFONT) + chmod 644 $(LIBDIR)/$(LIBFONT)/* + @echo "" + mkdir $(LIBDIR)/$(LIBMAPS) + chmod 755 $(LIBDIR)/$(LIBMAPS) + cp maps/* $(LIBDIR)/$(LIBMAPS) + chmod 644 $(LIBDIR)/$(LIBMAPS)/* + @echo "" + mkdir $(LIBDIR)/$(LIBLOCA) + chmod 755 $(LIBDIR)/$(LIBLOCA) + @echo "" + @echo "(c) Initializing run (should be silent, no errors expected)" + $(BINDIR)/lout -x -s $(LIBDIR)/$(LIBINCL)/init + @echo "" + @echo "(d) Changing mode of files just created by initializing run" + chmod 644 $(LIBDIR)/$(LIBDATA)/* + chmod 644 $(LIBDIR)/$(LIBHYPH)/* + +installman: + @echo "" + @echo "Installing manual entries into MANDIR $(MANDIR)" + sed -e "s@@$(BINDIR)@" -e "s@@$(LIBDIR)@" \ + -e "s@@$(DOCDIR)@" -e "s@@$(MANDIR)@" \ + man/lout.1 > $(MANDIR)/lout.1 + chmod 644 $(MANDIR)/lout.1 + cp man/prg2lout.1 $(MANDIR)/prg2lout.1 + chmod 644 $(MANDIR)/prg2lout.1 + +installdoc: + @echo "" + @echo "Creating DOCDIR $(DOCDIR) and copying documentation into it" + $(RCOPY) doc $(DOCDIR) + chmod 755 $(DOCDIR) + chmod 755 $(DOCDIR)/* + chmod 644 $(DOCDIR)/*/* + +installfr: + @echo "" + @echo "Putting French error messages into $(LIBDIR)/$(LIBLOCA)/$(LOC_FR)" + mkdir $(LIBDIR)/$(LIBLOCA)/$(LOC_FR) + chmod 755 $(LIBDIR)/$(LIBLOCA)/$(LOC_FR) + mkdir $(LIBDIR)/$(LIBLOCA)/$(LOC_FR)/LC_MESSAGES + chmod 755 $(LIBDIR)/$(LIBLOCA)/$(LOC_FR)/LC_MESSAGES + cp locale/msgs.fr $(LIBDIR)/$(LIBLOCA)/$(LOC_FR)/LC_MESSAGES/msgs.$(LOC_FR) + gencat $(LIBDIR)/$(LIBLOCA)/$(LOC_FR)/LC_MESSAGES/errors.$(LOC_FR) \ + $(LIBDIR)/$(LIBLOCA)/$(LOC_FR)/LC_MESSAGES/msgs.$(LOC_FR) + chmod 644 $(LIBDIR)/$(LIBLOCA)/$(LOC_FR)/LC_MESSAGES/* + +installde: + @echo "" + @echo "Putting German error messages into $(LIBDIR)/$(LIBLOCA)/$(LOC_DE)" + mkdir $(LIBDIR)/$(LIBLOCA)/$(LOC_DE) + chmod 755 $(LIBDIR)/$(LIBLOCA)/$(LOC_DE) + mkdir $(LIBDIR)/$(LIBLOCA)/$(LOC_DE)/LC_MESSAGES + chmod 755 $(LIBDIR)/$(LIBLOCA)/$(LOC_DE)/LC_MESSAGES + cp locale/msgs.de $(LIBDIR)/$(LIBLOCA)/$(LOC_DE)/LC_MESSAGES/msgs.$(LOC_DE) + gencat $(LIBDIR)/$(LIBLOCA)/$(LOC_DE)/LC_MESSAGES/errors.$(LOC_DE) \ + $(LIBDIR)/$(LIBLOCA)/$(LOC_DE)/LC_MESSAGES/msgs.$(LOC_DE) + chmod 644 $(LIBDIR)/$(LIBLOCA)/$(LOC_DE)/LC_MESSAGES/* + +uninstall: + -rm -f $(BINDIR)/lout $(BINDIR)/prg2lout + -rm -fr $(LIBDIR) + -rm -fr $(DOCDIR) + -rm -f $(MANDIR)/lout.1 $(MANDIR)/prg2lout.1 + +clean: + -rm -f lout prg2lout *.o + +restart: clean uninstall diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/README b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/README new file mode 100755 index 0000000000000..00980827e456a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/README @@ -0,0 +1,56 @@ +THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.24) +BASSER LOUT VERSION 3 COPYRIGHT (C) 1994, 2000 Jeffrey H. Kingston + +Jeffrey H. Kingston +Basser Department of Computer Science +The University of Sydney 2006 +AUSTRALIA + +Telephone (direct): 61 2 692 4216 +Telephone (messages): 61 2 692 3423 +Email: jeff@cs.usyd.edu.au +Fax: 61 2 692 3838 + +This program 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 1, 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 +(file gnu.gpl in this directory); if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +This directory contains everything needed to install the Lout document +formatting system. It contains the following directories: + + data Lout databases (in Lout) + doc Lout documentation (in Lout) + font Adobe Systems font metrics files + hyph Lout hyphenation files (see hyph/README for info) + include Lout packages (in Lout) + locale Locale-specific error messages + man Lout and prg2lout manual entries + maps Lout Character Mapping (LCM) files + setup Lout setup files (in Lout) + software Information about Lout-related software from elsewhere + +and the following files: + + READMEPDF A description of the PDF back end + blurb A news blurb describing Lout + blurb.short A short news blurb describing Lout + prg2lout.c prg2lout source code (all in one file) + externs.h z*.c Lout source code + gnu.gpl A copy of the GNU General Public License + makefile A makefile for installing Lout + maillist Information about a public mailing list about Lout + notes.dsc Notes on the degree of Lout's conformance with the + PostScript Document Structuring Conventions + whatsnew A brief informal update on recent changes + +See the makefile for installation instructions. diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/READMEPDF b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/READMEPDF new file mode 100755 index 0000000000000..df030717b8b30 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/READMEPDF @@ -0,0 +1,420 @@ +to do: manually created links + + +PDF backend instructions and notes +================================== + +By Vincent Tan +vtan@ugrad.cs.usyd.edu.au + +Usage +----- + +To create a PDF file from your Lout files, use the -Z switch. + +Example: + +$ lout -Z < all > outfile.pdf + +[lout -PDF is now an alternative - JeffK] +If the file has previously been processed by Lout, you should first +delete all the ".ld" and ".li" files generated by the previous runs +of Lout. Doing this will avoid spurious error messages from Lout. + + +General notes +------------- + +The PDF backend automatically supports text output and has custom +handlers for graphics via the use of special @Graphic keywords. +All such keywords begin with "__" (double underscore). Anything +else is passed verbatim into the PDF output stream. + +One of the best way of learning how to use the backend is to study +the standard Lout libraries, which have been converted to generate +PDF files as best as possible. Many of the trickier conversions +have comments next to them to help you. + + +Compatibility +============= + + +Standard packages +----------------- + +The PDF backend implements a subset of the Lout packages. The PDF versions +of the standard Lout packages are described below. + +All packages are "safe", in the sense that using them will not produce +any snippets of PostScript in the PDF file, which would otherwise cause +rendering errors. + +Packages marked "complete" or "no change" will work fully and +correctly, with a few small provisos. Packages marked "incomplete" will +have problems when viewed or printed with a PDF rendering program. +The packages that are affected the worst are the figure, diagram and +graph packages. Most or all of the uses of these packages will not +produce any PDF output. In the basic document layout package, only +a few Lout commands are not implemented; they are listed below. + + fig [ incomplete ] + diag [ incomplete ] + dl [ incomplete ] + unimplemented definitions: + @Background/LoutPageSet, + @MargSet/LoutMargSet, + @MargPut/LoutMargShift + doc [ no change ] + eq [ complete ] + graph [ incomplete ] + unimplemented definitions: + @GraphObj, + @GraphSolid, + @GraphDashed, + @GraphDotted, + @Graph + report [ no change ] + slides [ no change ] + tab [ complete ] + tbl [ complete - done by JeffK (not a guarantee of quality!) ] + +Currently, there is no work-around for this lack of functionality. +[ ? add a mechanism to include external graphical files (such as +JPEG compressed images) into the PDF file ? ] + +Minor point: surd characters in the 'eq' package will look slightly +odd when viewed in Adobe Acrobat Reader: the top of the surd +character will be "short" of the top. This seems to be a problem +with the way Acrobat renders surds (Lout typically requests that the +surd be rendered at a slightly larger than normal size but it appears +that Acrobat renders this enlarged surd incorrectly). + + +User-defined +------------ + +If you have used custom snippets of PostScript (usually with a +@Graphic command) then you will to modify it so that it produces a +PDF file that can be rendered. At the very least, you should suppress +the PostScript from appearing in the PDF file using a modification +like this: + +from the original: + +{ "0 0 moveto" xsize ysize "lineto stroke" } @Graphic { obj } + +to the modified version: + +@BackEnd @Case { + PostScript @Yield { + { "0 0 moveto" xsize ysize "lineto stroke" } @Graphic { obj } + } + PDF @Yield { + # PDF version produces no output [ safe but useless ] + } +} + +better yet, translate the PostScript operators into PDF operators: + +@BackEnd @Case { + PostScript @Yield { + { "0 0 moveto" xsize ysize "lineto stroke" } @Graphic { obj } + } + PDF @Yield { + { "0 0 m" __xsize __ysize "l S" } @Graphic { obj } + } +} + +More information about how to do this is given below. + + +Text +==== + +PDF support for text is automatic. Text that would usually produce +marks on a page in PostScript will instead produce marks on a page +in PDF. Lout commands that change text location, size, font, style, +colour, etc. will work fine. + + +Graphic +======= + +If you are using custom pieces of PostScript to generate rendering +marks, you will need to modify them for PDF output. These pieces of +PostScript typically occur within @Graphic commands. At the very +least, you should modify them so that the PostScript is not placed +into the PDF file, since this will produce errors when the PDF file +is rendered. A description of this is described in the Compatibility +section. + +Since PDF is not a programming language whereas PostScript is one, +it will not be possible to translate all PostScript operators into +PDF operators which produce the same functionality. If the +PostScript is straight-forward (eg, move pen to a location, draw a +few lines, stroke and fill the shape) then it will be possible to +write equivalent PDF code. If the PostScript code is more +sophisticated, then it will probably not be possible to write +equivalent PDF. Currently there is no work-around for this +limitation. + +The possible PostScript to PDF changes are now listed: + + PostScript PDF + + xsize __xsize + ysize __ysize + xmark __xmark + ymark __ymark + in __mul(, __in) + cm __mul(, __cm) + pt __mul(, __pt) + em __mul(, __em) + vs __mul(, __loutv) + ft __mul(, __loutf) + sp __mul(, __louts) + + setlinewidth w + stroke S + closepath stroke s + closepath h + moveto m + lineto l + fill f + stroke fill B + gsave q + grestore Q + setgray g [fill] G [stroke] + setrgbcolor rg [fill] RG [stroke] + setcmykcolor k [fill] K [stroke] + setdash d + concat cm + curveto c + +It is also possible to convert arcs to curves but it is not a +straight-forward procedure because you need to calculate +Bezier control points. + +There are also more PDF marking operators. See the PDF v1.2 +specification, available from , for +more information. + + +For expressions, the PDF backend supports a simple prefix +notation expression evaluator. The syntax is: + + = | + = __add(, ) | __sub(, ) | + __mul(, ) | __div(, ) | + __sin() | __cos(, ) + = __in | __cm | __pt | __em | __loutv | __loutf | __louts | + __xsize | __ysize | __xmark | __ymark + = | + | - | + = 0-9.[0-9]* + +Note that expressions must start with an or a . It cannot +start with a (or a ) although negation is simple to do: +use __sub(0, ). + +Of the operators, add, sub, mul, div, sin and cos do as you would expect. The +pick operator picks the nth expression from the list of expressions where n +is the first parameter of the __pick() command: eg, __pick(2, 4, 5, 6) produces +5. The list in the __pick() command can also be whitespace delimited: eg, +__pick(2, 7 8 9) produces 8. + +Example: + + "xmark ymark moveto xmark xsize add ymark ysize 2 mul add lineto stroke" + +becomes: + + "__xmark __ymark m __add(__xmark, __xsize) __add(__ymark, __mul(2, __ysize)) l S" + +For more examples, please look in the Lout library files (in the include +directory). + + +EPS files +========= + +EPS files will not be included into PDF files. Currently, there is +no work-around for this lack of functionality. + + +Hyperlinks +========== + +The PDF backend supports the creation of hyperlinks. Some hyperlinking is +automatic and it is possible to specify your own hyperlinks should you so +desire. + +Hyperlinks can be specified to be either accessible from an external file +(either another PDF file or by external sources such as a hyperlink in an +HTML document) or which can only be accessed from within the same file. + + +Automatic links +--------------- + +Links are automatically generated for the following document layout items: + +@Chapter and any other item that uses the @LargeScaleStructure item +@Index +@IndexA +@IndexB + +The name of the link is the @Title parameter passed to these items. + +Items in @Index entries are kept internal to the document (they cannot +be linked to from external documents) but items that use +@LargeScaleStructure can be externally linked. + +Index entries are coloured blue. Clicking on the page number in Adobe +Acrobat Reader will take you to the page. Items that use the +@LargeScaleStructure item will have no visible indication that they +have been linked to but moving the mouse over them changes the cursor +to a pointing finger. For example, mousing over the Table of Contents +of a document will change the cursor. Clicking on an entry in the Table +takes you to the page that that entry lies on. + + +User-defined links +------------------ + +To create a link, you need to specify a starting (or source) location and +a destination (or target) location. Source locations often appear visually +distinctive - for example, hyperlinks appear as blue underlined text, +like what is seen in web browsers. Clicking on such links often produces +some kind of highlighting. Releasing the mouse button then transports +you to the destination location. For each source location, you can specify +a change in the document's zooming for the target location. Finally, +target locations can be "exported" so that you can link to them from +external documents. + +Here are the possible link keywords available for the PDF backend: + +(1) specifying a source location/link which targets a location internal +to the PDF document: + + syntax: "__link_source=<>" + + example: "__link_source=<>" + example: "__link_source=<>" + +The possible destination link options are: + +__FitNoChange no change to the zoom state of the window +__Fit change zoom to fit the page to the window +__FitH change zoom to fit the width of the page to the window +__FitV change zoom to fit the height of the page to the window +__FitR change zoom to fit the rectangle of the target to the window +__FitB change zoom to fit the page's bounding box to the window +__FitBH change zoom to fit the width of the page's bounding box to the window +__FitBV change zoom to fit the height of the page's bounding box to the window + +The default option is __FitNoChange. + + +(2) specifying a source location/link which targets a location external +to the PDF document: + +for external files: + syntax: "__link_external=<>" + + example: "__link_external=<>" + +for URLs: + syntax: "__link_external=<>>>" + + example: "__link_external=<>>>" + + ** note the special format required for URL links ** + ** note the need to have balanced "<<" and ">>" pairs! ** + + +(3) specifying a source location/link which targets a URI: + + syntax: "__link_URI=<>" + + example: "__link_URI=<>" + + +(4) specifying a target location which cannot be linked to from external +documents: + + syntax: "__link_target=<>" where + name_of_target_link is in the PDF file + + example: "__link_target=<>" + + +(5) specifying a target location which can be linked to from external +documents: + + syntax: "__link_target_for_export=<>" + where name_of_target_link is in the PDF file + + example: "__link_target_for_export=<>" + + +PDF Document Information +======================== + +PDF files can have some pieces of information such as author, keywords +included in them, to facilitate searching. The PDF backend supports +the ability to set these pieces of information, using special keywords: + +__author= + +example: "__author=John Smith" @Graphic "" + + +__title= + +example: "__title=PDF backend for Lout" @Graphic "" + + +__subject= + +example: "__subject=Lout PDF support" @Graphic "" + + +__keywords= + +example: "__keywords=Lout PDF PostScript" @Graphic "" + + +Troubleshooting +=============== + +(1) strange error messages, esp. the PDF backend complaining about + unresolved links. Did you delete the ".ld" and ".li" files from + previous runs of Lout for PostScript output? Lout needs to + create PDF-specific versions of these cross references. Do not + mix the PostScript and PDF versions of these files! + +(2) "left parameter of @Graphic is bad" - usually from @Title statements + which include definitions. For example: "@Title { Using @Tex styles }" + where @Tex is defined as: "def @Tex { @Onecol {TEX} }". When the PDF + backend tries to create a target entry for a hyperlink, this error + message will be generated. The PDF output will still work but the + actual title of the link will be "Usingstyles". + +(3) figures, diagrams and graphs don't appear in the PDF file. This is + currently unimplemented. + +(4) EPS files are ignored. EPS files cannot be included in PDF files. + +(5) when viewing or printing the PDF file, the renderer complains that + it is unable to properly render the page or that there were + rendering errors. Solution: check that you are not accidentally + including snippets of PostScript into the PDF file. See the + Compatilibity section above. + +(6) surd (square root) symbols look strange. This appears to be a + rendering problem in Adobe Acrobat Reader. + + + diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/blurb b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/blurb new file mode 100755 index 0000000000000..d69741a80b672 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/blurb @@ -0,0 +1,50 @@ + + THE LOUT DOCUMENT FORMATTING SYSTEM, VERSION 3.24 + +Version 3.24 of the Lout document formatting system is now available +(free of charge). The system reads a high-level description of a +document similar in style to LaTeX and produces a PostScript, PDF or +plain text output file. + +Lout offers an unprecedented range of advanced features, including +optimal paragraph and page breaking, automatic hyphenation, PostScript +EPS file inclusion and generation, equation formatting, tables, diagrams, +rotation and scaling, sorted indexes, bibliographic databases, running +headers and odd-even pages, automatic cross referencing, multilingual +documents including hyphenation (most European languages are supported, +including Russian), formatting of computer programs, and much more, all +ready to use. Furthermore, Lout is easily extended with definitions +which are very much easier to write than troff of TeX macros because +Lout is a high-level language, the outcome of an eight-year research +project that went back to the beginning. + +Lout is written in highly portable ANSI C. It is distributed under the +GNU public license as follows: + + ftp://ftp.cs.usyd.edu.au/jeff/lout/lout-3.24.tar.gz + +In other words, in a gzipped tar file called "lout-3.24.tar.gz" in the +"jeff/lout" subdirectory of the home directory of "ftp ftp.cs.usyd.edu.au" +with login name "ftp" or "anonymous" using any non-empty password. The +distribution contains + + * Complete C source code + + * Standard library packages of definitions for ordinary documents, + technical reports, books, overhead transparencies, stand-alone + illustrations, plain text documents, equations, tables, diagrams, + graphs, program formatting (C, C++, Eiffel, Blue, Perl, Pod, Pascal, + and Modula - other languages are easy to add) + + * Complete documentation for all these features consisting of a + User's Guide plus an Expert's Guide + + * A makefile and installation instructions + +For those who want to browse first, a PostScript version of the User's +Guide may be found in the same ftp directory: + + ftp://ftp.cs.usyd.edu.au/jeff/lout/lout-3.24.user.ps.gz + +Lout was designed and implemented by Jeffrey H. Kingston (jeff@cs.usyd.edu.au) +of the Basser Department of Computer Science at the University of Sydney. diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/blurb.short b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/blurb.short new file mode 100755 index 0000000000000..ea08e9fb07396 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/blurb.short @@ -0,0 +1,24 @@ + +THE LOUT DOCUMENT FORMATTING SYSTEM + +Lout is a document formatting system similar in style to LaTeX. It +offers a very full range of features, including PostScript, PDF, and +plain text output, optimal paragraph and page breaking, automatic +hyphenation, PostScript EPS file inclusion and generation, equation +formatting, tables, diagrams, rotation and scaling, sorted indexes, +bibliographic databases, running headers and odd-even pages, automatic +cross referencing, multilingual documents including hyphenation (most +European languages are supported, including Russian), formatting of +computer programs, and more. Lout may be extended by writing definitions +which are much simpler than the equivalent troff of TeX macros. + +Lout is written in highly portable ANSI C and runs on most platforms. +It is distributed under the GNU public license. Its primary web site is + + ftp://ftp.cs.usyd.edu.au/jeff/lout/ + +Consult the README file in that directory for information about the +latest version. + +Lout was designed and implemented by Jeffrey H. Kingston (jeff@cs.usyd.edu.au) +of the Basser Department of Computer Science at the University of Sydney. diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/README b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/README new file mode 100755 index 0000000000000..1aa70e244efa3 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/README @@ -0,0 +1,19 @@ +Directory lout/data + +This directory contains Lout database files: + + fontdefs.ld Font database + latin2.ld Latin2 font database + loutrefs.ld References used in the Lout documentation + oldrefs.ld More references used in the Lout documentation + refstyle.ld Standard reference printing styles + standard.ld Roman numerals, months, etc. + +Corresponding .li files will be created during the initializing +"lout -x" run, or else the first time each database is accessed. + +There are also two files, fcvt and fcvt.awk, which are useful for +converting old fontdefs files into new font database files. + +Jeffrey H. Kingston +10 May 2000 diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/fcvt b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/fcvt new file mode 100755 index 0000000000000..10b8b07bafeb5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/fcvt @@ -0,0 +1,2 @@ +( echo NO_EXTRAS; cat ../include/old.fd ) | awk -f fcvt.awk > fontdefs.ld +( echo EXTRAS; cat ../include/latin2.fd ) | awk -f fcvt.awk > latin2.ld diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/fcvt.awk b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/fcvt.awk new file mode 100755 index 0000000000000..bb39390b3d2e6 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/fcvt.awk @@ -0,0 +1,94 @@ +# convert old fontdefs file to new font database +NR==1 { +print "###########################################################################" +print "# #" + + # first line must be either EXTRAS or NO_EXTRAS + if( $0 == "EXTRAS" ) + { +print "# Font definitions database (created by fcvt, with @ExtraMetrics) #" + extra_metrics = 1 + } + else if( $0 == "NO_EXTRAS" ) + { +print "# Font definitions database (created by fcvt, without @ExtraMetrics) #" + extra_metrics = 0 + } + else + { +print "# Font definitions database ERRONEOUS FIRST LINE NEEDS INVESTIGATION #" + } +print "# #" +print "# Each entry defines one font. The fields and their meanings are: #" +print "# #" +print "# Name Compulsory Meaning #" +print "# --------------------------------------------------------------- #" +print "# @Tag Yes Must equal @Family-@Face #" +print "# @Family Yes Font family name #" +print "# @Face Yes Font face name #" +print "# @Name Yes PostScript name as in @Metrics file #" +print "# @Metrics Yes Adobe font metrics file of this font #" +print "# @ExtraMetrics No Extra metrics #" +print "# @Mapping Yes .LCM (Lout Character Mapping) file #" +print "# @Recode No Recode or not (Yes or No, default Yes) #" +print "# #" +print "# Jeffrey H. Kingston #" +print "# 6 May 20000 #" +print "# #" +print "###########################################################################" + } + +$0~/^#/ { + # comment line, skip it + next; + } + + { + # a real line + # can't get split to work, so using this + j = 1 + for(i = 1; i < NF; i++ ) + { + if( $1 != "" ) + { + field[j++] = $i + } + } + + # now print the lot + if( j == 1 ) + { + # empty line, echo it + print "" + } + else if( j != 9 ) + { + print "# error, " j " fields: " $0 + } + else + { + family = field[2] + face = field[3] + name = field[5] + afmfile = field[6] + lcmfile = field[7] + recode = field[8] + if( used[family "-" face] == "" ) + { + used[family "-" face] = "used" + print "{ @FontDef" + print " @Tag { " family "-" face " }" + print " @Family { " family " }" + print " @Face { " face " }" + print " @Name { " name " }" + print " @Metrics { " afmfile " }" + if( extra_metrics == 1 ) + print " @ExtraMetrics { " afmfile "+ }" + print " @Mapping { " lcmfile " }" + if( recode == "NoRecode" ) + print " @Recode { No }" + print "}" + print "" + } + } + } diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/fontdefs.ld b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/fontdefs.ld new file mode 100755 index 0000000000000..415341e9cac39 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/fontdefs.ld @@ -0,0 +1,1040 @@ +########################################################################### +# # +# Font definitions database (created by fcvt, without @ExtraMetrics) # +# # +# Each entry defines one font. The fields and their meanings are: # +# # +# Name Compulsory Meaning # +# --------------------------------------------------------------- # +# @Tag Yes Must equal @Family-@Face # +# @Family Yes Font family name # +# @Face Yes Font face name # +# @Name Yes PostScript name as in @Metrics file # +# @Metrics Yes Adobe font metrics file of this font # +# @ExtraMetrics No Extra metrics # +# @Mapping Yes .LCM (Lout Character Mapping) file # +# @Recode No Recode or not (Yes or No, default Yes) # +# # +# Jeffrey H. Kingston # +# 6 May 20000 # +# # +########################################################################### + + + +{ @FontDef + @Tag { AvantGarde-Base } + @Family { AvantGarde } + @Face { Base } + @Name { AvantGarde-Medium } + @Metrics { AG-Md } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { AvantGarde-Slope } + @Family { AvantGarde } + @Face { Slope } + @Name { AvantGarde-MediumObl } + @Metrics { AG-MdO } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { AvantGarde-Bold } + @Family { AvantGarde } + @Face { Bold } + @Name { AvantGarde-Bold } + @Metrics { AG-Bd } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { AvantGarde-BoldSlope } + @Family { AvantGarde } + @Face { BoldSlope } + @Name { AvantGarde-BoldObl } + @Metrics { AG-BdO } + @Mapping { LtLatin1.LCM } +} + + +{ @FontDef + @Tag { AvantGarde-BoldObl } + @Family { AvantGarde } + @Face { BoldObl } + @Name { AvantGarde-BoldObl } + @Metrics { AG-BdO } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { AvantGarde-Book } + @Family { AvantGarde } + @Face { Book } + @Name { AvantGarde-Book } + @Metrics { AG-Bk } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { AvantGarde-BookOblique } + @Family { AvantGarde } + @Face { BookOblique } + @Name { AvantGarde-BookOblique } + @Metrics { AG-BkO } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { AvantGarde-CondBold } + @Family { AvantGarde } + @Face { CondBold } + @Name { AvantGarde-CondBold } + @Metrics { AG-CnBd } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { AvantGarde-CondBook } + @Family { AvantGarde } + @Face { CondBook } + @Name { AvantGarde-CondBook } + @Metrics { AG-CnBk } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { AvantGarde-CondDemi } + @Family { AvantGarde } + @Face { CondDemi } + @Name { AvantGarde-CondDemi } + @Metrics { AG-CnDm } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { AvantGarde-CondMedium } + @Family { AvantGarde } + @Face { CondMedium } + @Name { AvantGarde-CondMedium } + @Metrics { AG-CnMd } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { AvantGarde-Demi } + @Family { AvantGarde } + @Face { Demi } + @Name { AvantGarde-Demi } + @Metrics { AG-Dm } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { AvantGarde-DemiOblique } + @Family { AvantGarde } + @Face { DemiOblique } + @Name { AvantGarde-DemiOblique } + @Metrics { AG-DmO } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { AvantGarde-ExtraLight } + @Family { AvantGarde } + @Face { ExtraLight } + @Name { AvantGarde-ExtraLight } + @Metrics { AG-ExLt } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { AvantGarde-ExtraLightObl } + @Family { AvantGarde } + @Face { ExtraLightObl } + @Name { AvantGarde-ExtraLightObl } + @Metrics { AG-ExLtO } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { AvantGarde-Medium } + @Family { AvantGarde } + @Face { Medium } + @Name { AvantGarde-Medium } + @Metrics { AG-Md } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { AvantGarde-MediumObl } + @Family { AvantGarde } + @Face { MediumObl } + @Name { AvantGarde-MediumObl } + @Metrics { AG-MdO } + @Mapping { LtLatin1.LCM } +} + + + +{ @FontDef + @Tag { Bookman-Base } + @Family { Bookman } + @Face { Base } + @Name { Bookman-Medium } + @Metrics { Bk-Md } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Bookman-Slope } + @Family { Bookman } + @Face { Slope } + @Name { Bookman-MediumItalic } + @Metrics { Bk-MdIt } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Bookman-Bold } + @Family { Bookman } + @Face { Bold } + @Name { Bookman-Bold } + @Metrics { Bk-Bd } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Bookman-BoldSlope } + @Family { Bookman } + @Face { BoldSlope } + @Name { Bookman-BoldItalic } + @Metrics { Bk-BdIt } + @Mapping { LtLatin1.LCM } +} + + +{ @FontDef + @Tag { Bookman-BoldItalic } + @Family { Bookman } + @Face { BoldItalic } + @Name { Bookman-BoldItalic } + @Metrics { Bk-BdIt } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Bookman-Demi } + @Family { Bookman } + @Face { Demi } + @Name { Bookman-Demi } + @Metrics { Bk-Dm } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Bookman-DemiItalic } + @Family { Bookman } + @Face { DemiItalic } + @Name { Bookman-DemiItalic } + @Metrics { Bk-DmIt } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Bookman-Light } + @Family { Bookman } + @Face { Light } + @Name { Bookman-Light } + @Metrics { Bk-Lt } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Bookman-LightItalic } + @Family { Bookman } + @Face { LightItalic } + @Name { Bookman-LightItalic } + @Metrics { Bk-LtIt } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Bookman-Medium } + @Family { Bookman } + @Face { Medium } + @Name { Bookman-Medium } + @Metrics { Bk-Md } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Bookman-MediumItalic } + @Family { Bookman } + @Face { MediumItalic } + @Name { Bookman-MediumItalic } + @Metrics { Bk-MdIt } + @Mapping { LtLatin1.LCM } +} + + + +{ @FontDef + @Tag { Courier-Base } + @Family { Courier } + @Face { Base } + @Name { Courier } + @Metrics { Cr } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Courier-Slope } + @Family { Courier } + @Face { Slope } + @Name { Courier-Oblique } + @Metrics { Cr-O } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Courier-Bold } + @Family { Courier } + @Face { Bold } + @Name { Courier-Bold } + @Metrics { Cr-Bd } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Courier-BoldSlope } + @Family { Courier } + @Face { BoldSlope } + @Name { Courier-BoldOblique } + @Metrics { Cr-BdO } + @Mapping { LtLatin1.LCM } +} + + +{ @FontDef + @Tag { Courier-BoldOblique } + @Family { Courier } + @Face { BoldOblique } + @Name { Courier-BoldOblique } + @Metrics { Cr-BdO } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Courier-Oblique } + @Family { Courier } + @Face { Oblique } + @Name { Courier-Oblique } + @Metrics { Cr-O } + @Mapping { LtLatin1.LCM } +} + + + +{ @FontDef + @Tag { Helvetica-Base } + @Family { Helvetica } + @Face { Base } + @Name { Helvetica } + @Metrics { He } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-Slope } + @Family { Helvetica } + @Face { Slope } + @Name { Helvetica-Oblique } + @Metrics { He-O } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-Bold } + @Family { Helvetica } + @Face { Bold } + @Name { Helvetica-Bold } + @Metrics { He-Bd } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-BoldSlope } + @Family { Helvetica } + @Face { BoldSlope } + @Name { Helvetica-BoldOblique } + @Metrics { He-BdO } + @Mapping { LtLatin1.LCM } +} + + +{ @FontDef + @Tag { Helvetica-Black } + @Family { Helvetica } + @Face { Black } + @Name { Helvetica-Black } + @Metrics { He-Bl } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-BlackOblique } + @Family { Helvetica } + @Face { BlackOblique } + @Name { Helvetica-BlackOblique } + @Metrics { He-BlO } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-BoldOblique } + @Family { Helvetica } + @Face { BoldOblique } + @Name { Helvetica-BoldOblique } + @Metrics { He-BdO } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-Compressed } + @Family { Helvetica } + @Face { Compressed } + @Name { Helvetica-Compressed } + @Metrics { He-Cm } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-Cond } + @Family { Helvetica } + @Face { Cond } + @Name { Helvetica-Condensed } + @Metrics { He-Cn } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-CondBlack } + @Family { Helvetica } + @Face { CondBlack } + @Name { Helvetica-Condensed-Black } + @Metrics { He-CnBl } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-CondBlackObl } + @Family { Helvetica } + @Face { CondBlackObl } + @Name { Helvetica-Condensed-BlackObl } + @Metrics { He-CnBlO } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-CondBold } + @Family { Helvetica } + @Face { CondBold } + @Name { Helvetica-Condensed-Bold } + @Metrics { He-CnBd } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-CondBoldObl } + @Family { Helvetica } + @Face { CondBoldObl } + @Name { Helvetica-Condensed-BoldObl } + @Metrics { He-CnBdO } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-CondLight } + @Family { Helvetica } + @Face { CondLight } + @Name { Helvetica-Condensed-Light } + @Metrics { He-CnLi } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-CondLightObl } + @Family { Helvetica } + @Face { CondLightObl } + @Name { Helvetica-Condensed-LightObl } + @Metrics { He-CnLiO } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-CondOblique } + @Family { Helvetica } + @Face { CondOblique } + @Name { Helvetica-Condensed-Oblique } + @Metrics { He-CnO } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-ExtraCompressed } + @Family { Helvetica } + @Face { ExtraCompressed } + @Name { Helvetica-ExtraCompressed } + @Metrics { He-ExtC } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-Light } + @Family { Helvetica } + @Face { Light } + @Name { Helvetica-Light } + @Metrics { He-Lt } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-LightOblique } + @Family { Helvetica } + @Face { LightOblique } + @Name { Helvetica-LightOblique } + @Metrics { He-LtO } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-Narrow } + @Family { Helvetica } + @Face { Narrow } + @Name { Helvetica-Narrow } + @Metrics { He-Nr } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-NarrowBold } + @Family { Helvetica } + @Face { NarrowBold } + @Name { Helvetica-Narrow-Bold } + @Metrics { He-NrBd } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-NarrowBoldObl } + @Family { Helvetica } + @Face { NarrowBoldObl } + @Name { Helvetica-Narrow-BoldOblique } + @Metrics { He-NrBdO } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-NarrowObl } + @Family { Helvetica } + @Face { NarrowObl } + @Name { Helvetica-Narrow-Oblique } + @Metrics { He-NrO } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-Oblique } + @Family { Helvetica } + @Face { Oblique } + @Name { Helvetica-Oblique } + @Metrics { He-O } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Helvetica-UltraCompressed } + @Family { Helvetica } + @Face { UltraCompressed } + @Name { Helvetica-UltraCompressed } + @Metrics { He-UlCm } + @Mapping { LtLatin1.LCM } +} + + + +{ @FontDef + @Tag { Schoolbook-Base } + @Family { Schoolbook } + @Face { Base } + @Name { NewCenturySchlbk-Roman } + @Metrics { NCS-Rm } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Schoolbook-Slope } + @Family { Schoolbook } + @Face { Slope } + @Name { NewCenturySchlbk-Italic } + @Metrics { NCS-It } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Schoolbook-Bold } + @Family { Schoolbook } + @Face { Bold } + @Name { NewCenturySchlbk-Bold } + @Metrics { NCS-Bd } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Schoolbook-BoldSlope } + @Family { Schoolbook } + @Face { BoldSlope } + @Name { NewCenturySchlbk-BoldItalic } + @Metrics { NCS-BdIt } + @Mapping { LtLatin1.LCM } +} + + +{ @FontDef + @Tag { Schoolbook-BoldItalic } + @Family { Schoolbook } + @Face { BoldItalic } + @Name { NewCenturySchlbk-BoldItalic } + @Metrics { NCS-BdIt } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Schoolbook-Italic } + @Family { Schoolbook } + @Face { Italic } + @Name { NewCenturySchlbk-Italic } + @Metrics { NCS-It } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Schoolbook-Roman } + @Family { Schoolbook } + @Face { Roman } + @Name { NewCenturySchlbk-Roman } + @Metrics { NCS-Rm } + @Mapping { LtLatin1.LCM } +} + + + +{ @FontDef + @Tag { Palatino-Base } + @Family { Palatino } + @Face { Base } + @Name { Palatino-Roman } + @Metrics { Pa-Rm } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Palatino-Slope } + @Family { Palatino } + @Face { Slope } + @Name { Palatino-Italic } + @Metrics { Pa-It } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Palatino-Bold } + @Family { Palatino } + @Face { Bold } + @Name { Palatino-Bold } + @Metrics { Pa-Bd } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Palatino-BoldSlope } + @Family { Palatino } + @Face { BoldSlope } + @Name { Palatino-BoldItalic } + @Metrics { Pa-BdIt } + @Mapping { LtLatin1.LCM } +} + + +{ @FontDef + @Tag { Palatino-BoldItalic } + @Family { Palatino } + @Face { BoldItalic } + @Name { Palatino-BoldItalic } + @Metrics { Pa-BdIt } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Palatino-BoldItalicOsF } + @Family { Palatino } + @Face { BoldItalicOsF } + @Name { Palatino-BoldItalicOsF } + @Metrics { Pa-BdItF } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Palatino-BoldOsF } + @Family { Palatino } + @Face { BoldOsF } + @Name { Palatino-BoldOsF } + @Metrics { Pa-BdF } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Palatino-Italic } + @Family { Palatino } + @Face { Italic } + @Name { Palatino-Italic } + @Metrics { Pa-It } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Palatino-ItalicOsF } + @Family { Palatino } + @Face { ItalicOsF } + @Name { Palatino-ItalicOsF } + @Metrics { Pa-ItF } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Palatino-Roman } + @Family { Palatino } + @Face { Roman } + @Name { Palatino-Roman } + @Metrics { Pa-Rm } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Palatino-SC } + @Family { Palatino } + @Face { SC } + @Name { Palatino-SC } + @Metrics { Pa-SC } + @Mapping { LtLatin1.LCM } +} + + + +{ @FontDef + @Tag { Symbol-Base } + @Family { Symbol } + @Face { Base } + @Name { Symbol } + @Metrics { Symbol } + @Mapping { Symb.LCM } + @Recode { No } +} + +{ @FontDef + @Tag { Symbol-Slope } + @Family { Symbol } + @Face { Slope } + @Name { Symbol } + @Metrics { Symbol } + @Mapping { Symb.LCM } + @Recode { No } +} + +{ @FontDef + @Tag { Symbol-Bold } + @Family { Symbol } + @Face { Bold } + @Name { Symbol } + @Metrics { Symbol } + @Mapping { Symb.LCM } + @Recode { No } +} + +{ @FontDef + @Tag { Symbol-BoldSlope } + @Family { Symbol } + @Face { BoldSlope } + @Name { Symbol } + @Metrics { Symbol } + @Mapping { Symb.LCM } + @Recode { No } +} + + + +{ @FontDef + @Tag { Times-Base } + @Family { Times } + @Face { Base } + @Name { Times-Roman } + @Metrics { Ti-Rm } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Times-Slope } + @Family { Times } + @Face { Slope } + @Name { Times-Italic } + @Metrics { Ti-It } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Times-Bold } + @Family { Times } + @Face { Bold } + @Name { Times-Bold } + @Metrics { Ti-Bd } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Times-BoldSlope } + @Family { Times } + @Face { BoldSlope } + @Name { Times-BoldItalic } + @Metrics { Ti-BdIt } + @Mapping { LtLatin1.LCM } +} + + +{ @FontDef + @Tag { Times-BoldItalic } + @Family { Times } + @Face { BoldItalic } + @Name { Times-BoldItalic } + @Metrics { Ti-BdIt } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Times-BoldItalicOsF } + @Family { Times } + @Face { BoldItalicOsF } + @Name { Times-BoldItalicOsF } + @Metrics { Ti-BdItF } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Times-BoldSC } + @Family { Times } + @Face { BoldSC } + @Name { Times-BoldSC } + @Metrics { Ti-BdSC } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Times-ExtraBold } + @Family { Times } + @Face { ExtraBold } + @Name { Times-ExtraBold } + @Metrics { Ti-ExBd } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Times-Italic } + @Family { Times } + @Face { Italic } + @Name { Times-Italic } + @Metrics { Ti-It } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Times-ItalicOsF } + @Family { Times } + @Face { ItalicOsF } + @Name { Times-ItalicOsF } + @Metrics { Ti-ItF } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Times-Roman } + @Family { Times } + @Face { Roman } + @Name { Times-Roman } + @Metrics { Ti-Rm } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Times-RomanSC } + @Family { Times } + @Face { RomanSC } + @Name { Times-RomanSC } + @Metrics { Ti-RmSC } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Times-Semibold } + @Family { Times } + @Face { Semibold } + @Name { Times-Semibold } + @Metrics { Ti-Sm } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Times-SemiboldItalic } + @Family { Times } + @Face { SemiboldItalic } + @Name { Times-SemiboldItalic } + @Metrics { Ti-SmIt } + @Mapping { LtLatin1.LCM } +} + + + +{ @FontDef + @Tag { Chancery-Base } + @Family { Chancery } + @Face { Base } + @Name { ZapfChancery-Roman } + @Metrics { ZC-Rm } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Chancery-Slope } + @Family { Chancery } + @Face { Slope } + @Name { ZapfChancery-Italic } + @Metrics { ZC-It } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Chancery-Bold } + @Family { Chancery } + @Face { Bold } + @Name { ZapfChancery-Bold } + @Metrics { ZC-Bd } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Chancery-BoldSlope } + @Family { Chancery } + @Face { BoldSlope } + @Name { ZapfChancery-MediumItalic } + @Metrics { ZC-MdIt } + @Mapping { LtLatin1.LCM } +} + + +{ @FontDef + @Tag { Chancery-Roman } + @Family { Chancery } + @Face { Roman } + @Name { ZapfChancery-Roman } + @Metrics { ZC-Rm } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Chancery-Italic } + @Family { Chancery } + @Face { Italic } + @Name { ZapfChancery-Italic } + @Metrics { ZC-It } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Chancery-Light } + @Family { Chancery } + @Face { Light } + @Name { ZapfChancery-Light } + @Metrics { ZC-Lt } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Chancery-Demi } + @Family { Chancery } + @Face { Demi } + @Name { ZapfChancery-Demi } + @Metrics { ZC-Dm } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Chancery-LightItalic } + @Family { Chancery } + @Face { LightItalic } + @Name { ZapfChancery-LightItalic } + @Metrics { ZC-LtIt } + @Mapping { LtLatin1.LCM } +} + +{ @FontDef + @Tag { Chancery-MediumItalic } + @Family { Chancery } + @Face { MediumItalic } + @Name { ZapfChancery-MediumItalic } + @Metrics { ZC-MdIt } + @Mapping { LtLatin1.LCM } +} + + + +{ @FontDef + @Tag { Dingbats-Base } + @Family { Dingbats } + @Face { Base } + @Name { ZapfDingbats } + @Metrics { ZD } + @Mapping { Ding.LCM } + @Recode { No } +} + +{ @FontDef + @Tag { Dingbats-Slope } + @Family { Dingbats } + @Face { Slope } + @Name { ZapfDingbats } + @Metrics { ZD } + @Mapping { Ding.LCM } + @Recode { No } +} + +{ @FontDef + @Tag { Dingbats-Bold } + @Family { Dingbats } + @Face { Bold } + @Name { ZapfDingbats } + @Metrics { ZD } + @Mapping { Ding.LCM } + @Recode { No } +} + +{ @FontDef + @Tag { Dingbats-BoldSlope } + @Family { Dingbats } + @Face { BoldSlope } + @Name { ZapfDingbats } + @Metrics { ZD } + @Mapping { Ding.LCM } + @Recode { No } +} + + diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/fontdefs.li b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/fontdefs.li new file mode 100755 index 0000000000000..412af820ff8a6 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/fontdefs.li @@ -0,0 +1,111 @@ +00 Basser Lout Version 3.24 (October 2000) database index file +00symbol 1 @FontDef +1&AvantGarde-Base 0 00635 0 25 . +1&AvantGarde-Bold 0 00637 1951 43 . +1&AvantGarde-BoldObl 0 00639 2309 62 . +1&AvantGarde-BoldSlope 0 00638 2123 52 . +1&AvantGarde-Book 0 00640 2492 71 . +1&AvantGarde-BookOblique 0 00641 2664 80 . +1&AvantGarde-CondBold 0 00642 2858 89 . +1&AvantGarde-CondBook 0 00643 3044 98 . +1&AvantGarde-CondDemi 0 00644 3230 107 . +1&AvantGarde-CondMedium 0 00645 3416 116 . +1&AvantGarde-Demi 0 00646 3608 125 . +1&AvantGarde-DemiOblique 0 00647 3780 134 . +1&AvantGarde-ExtraLight 0 00648 3974 143 . +1&AvantGarde-ExtraLightObl 0 00649 4166 152 . +1&AvantGarde-Medium 0 00650 4368 161 . +1&AvantGarde-MediumObl 0 00651 4546 170 . +1&AvantGarde-Slope 0 00636 1771 34 . +1&Bookman-Base 0 00652 4734 181 . +1&Bookman-Bold 0 00654 5076 199 . +1&Bookman-BoldItalic 0 00656 5420 218 . +1&Bookman-BoldSlope 0 00655 5239 208 . +1&Bookman-Demi 0 00657 5604 227 . +1&Bookman-DemiItalic 0 00658 5767 236 . +1&Bookman-Light 0 00659 5950 245 . +1&Bookman-LightItalic 0 00660 6116 254 . +1&Bookman-Medium 0 00661 6302 263 . +1&Bookman-MediumItalic 0 00662 6471 272 . +1&Bookman-Slope 0 00653 4901 190 . +1&Chancery-Base 0 00730 18695 907 . +1&Chancery-Bold 0 00732 19042 925 . +1&Chancery-BoldSlope 0 00733 19212 934 . +1&Chancery-Demi 0 00737 19925 971 . +1&Chancery-Italic 0 00735 19576 953 . +1&Chancery-Light 0 00736 19752 962 . +1&Chancery-LightItalic 0 00738 20095 980 . +1&Chancery-MediumItalic 0 00739 20288 989 . +1&Chancery-Roman 0 00734 19402 944 . +1&Chancery-Slope 0 00731 18868 916 . +1&Courier-Base 0 00663 6660 283 . +1&Courier-Bold 0 00665 6984 301 . +1&Courier-BoldOblique 0 00667 7328 320 . +1&Courier-BoldSlope 0 00666 7147 310 . +1&Courier-Oblique 0 00668 7514 329 . +1&Courier-Slope 0 00664 6817 292 . +1&Dingbats-Base 0 00740 20484 1000 . +1&Dingbats-Bold 0 00742 20842 1020 . +1&Dingbats-BoldSlope 0 00743 21019 1030 . +1&Dingbats-Slope 0 00741 20663 1010 . +1&Helvetica-Base 0 00669 7685 340 . +1&Helvetica-Black 0 00673 8377 377 . +1&Helvetica-BlackOblique 0 00674 8550 386 . +1&Helvetica-Bold 0 00671 8021 358 . +1&Helvetica-BoldOblique 0 00675 8744 395 . +1&Helvetica-BoldSlope 0 00672 8190 367 . +1&Helvetica-Compressed 0 00676 8935 404 . +1&Helvetica-Cond 0 00677 9122 413 . +1&Helvetica-CondBlack 0 00678 9296 422 . +1&Helvetica-CondBlackObl 0 00679 9488 431 . +1&Helvetica-CondBold 0 00680 9690 440 . +1&Helvetica-CondBoldObl 0 00681 9879 449 . +1&Helvetica-CondLight 0 00682 10078 458 . +1&Helvetica-CondLightObl 0 00683 10270 467 . +1&Helvetica-CondOblique 0 00684 10472 476 . +1&Helvetica-ExtraCompressed 0 00685 10669 485 . +1&Helvetica-Light 0 00686 10873 494 . +1&Helvetica-LightOblique 0 00687 11045 503 . +1&Helvetica-Narrow 0 00688 11239 512 . +1&Helvetica-NarrowBold 0 00689 11414 521 . +1&Helvetica-NarrowBoldObl 0 00690 11604 530 . +1&Helvetica-NarrowObl 0 00691 11808 539 . +1&Helvetica-Oblique 0 00692 11998 548 . +1&Helvetica-Slope 0 00670 7848 349 . +1&Helvetica-UltraCompressed 0 00693 12175 557 . +1&Palatino-Base 0 00701 13687 634 . +1&Palatino-Bold 0 00703 14026 652 . +1&Palatino-BoldItalic 0 00705 14376 671 . +1&Palatino-BoldItalicOsF 0 00706 14563 680 . +1&Palatino-BoldOsF 0 00707 14759 689 . +1&Palatino-BoldSlope 0 00704 14192 661 . +1&Palatino-Italic 0 00708 14935 698 . +1&Palatino-ItalicOsF 0 00709 15107 707 . +1&Palatino-Roman 0 00710 15289 716 . +1&Palatino-SC 0 00711 15458 725 . +1&Palatino-Slope 0 00702 13856 643 . +1&Schoolbook-Base 0 00694 12379 568 . +1&Schoolbook-Bold 0 00696 12744 586 . +1&Schoolbook-BoldItalic 0 00698 13120 605 . +1&Schoolbook-BoldSlope 0 00697 12923 595 . +1&Schoolbook-Italic 0 00699 13320 614 . +1&Schoolbook-Roman 0 00700 13505 623 . +1&Schoolbook-Slope 0 00695 12561 577 . +1&Symbol-Base 0 00712 15618 736 . +1&Symbol-Bold 0 00714 15964 756 . +1&Symbol-BoldSlope 0 00715 16135 766 . +1&Symbol-Slope 0 00713 15791 746 . +1&Times-Base 0 00716 16316 778 . +1&Times-Bold 0 00718 16637 796 . +1&Times-BoldItalic 0 00720 16969 815 . +1&Times-BoldItalicOsF 0 00721 17147 824 . +1&Times-BoldSC 0 00722 17334 833 . +1&Times-BoldSlope 0 00719 16794 805 . +1&Times-ExtraBold 0 00723 17499 842 . +1&Times-Italic 0 00724 17673 851 . +1&Times-ItalicOsF 0 00725 17836 860 . +1&Times-Roman 0 00726 18009 869 . +1&Times-RomanSC 0 00727 18169 878 . +1&Times-Semibold 0 00728 18337 887 . +1&Times-SemiboldItalic 0 00729 18506 896 . +1&Times-Slope 0 00717 16476 787 . diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/latin2.ld b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/latin2.ld new file mode 100755 index 0000000000000..7f437d47d0611 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/latin2.ld @@ -0,0 +1,1056 @@ +########################################################################### +# # +# Font definitions database (created by fcvt, with @ExtraMetrics) # +# # +# Each entry defines one font. The fields and their meanings are: # +# # +# Name Compulsory Meaning # +# --------------------------------------------------------------- # +# @Tag Yes Must equal @Family-@Face # +# @Family Yes Font family name # +# @Face Yes Font face name # +# @Name Yes PostScript name as in @Metrics file # +# @Metrics Yes Adobe font metrics file of this font # +# @ExtraMetrics No Extra metrics # +# @Mapping Yes .LCM (Lout Character Mapping) file # +# @Recode No Recode or not (Yes or No, default Yes) # +# # +# Jeffrey H. Kingston # +# 6 May 20000 # +# # +########################################################################### + + + +{ @FontDef + @Tag { AvantGardeCE-Base } + @Family { AvantGardeCE } + @Face { Base } + @Name { AvantGarde-Medium } + @Metrics { AG-Md } + @ExtraMetrics { AG-Md+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { AvantGardeCE-Slope } + @Family { AvantGardeCE } + @Face { Slope } + @Name { AvantGarde-MediumObl } + @Metrics { AG-MdO } + @ExtraMetrics { AG-MdO+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { AvantGardeCE-Bold } + @Family { AvantGardeCE } + @Face { Bold } + @Name { AvantGarde-Bold } + @Metrics { AG-Bd } + @ExtraMetrics { AG-Bd+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { AvantGardeCE-BoldSlope } + @Family { AvantGardeCE } + @Face { BoldSlope } + @Name { AvantGarde-BoldObl } + @Metrics { AG-BdO } + @ExtraMetrics { AG-BdO+ } + @Mapping { LtLatin2.LCM } +} + + +{ @FontDef + @Tag { AvantGardeCE-BoldObl } + @Family { AvantGardeCE } + @Face { BoldObl } + @Name { AvantGarde-BoldObl } + @Metrics { AG-BdO } + @ExtraMetrics { AG-BdO+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { AvantGardeCE-Book } + @Family { AvantGardeCE } + @Face { Book } + @Name { AvantGarde-Book } + @Metrics { AG-Bk } + @ExtraMetrics { AG-Bk+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { AvantGardeCE-BookOblique } + @Family { AvantGardeCE } + @Face { BookOblique } + @Name { AvantGarde-BookOblique } + @Metrics { AG-BkO } + @ExtraMetrics { AG-BkO+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { AvantGardeCE-CondBold } + @Family { AvantGardeCE } + @Face { CondBold } + @Name { AvantGarde-CondBold } + @Metrics { AG-CnBd } + @ExtraMetrics { AG-CnBd+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { AvantGardeCE-CondBook } + @Family { AvantGardeCE } + @Face { CondBook } + @Name { AvantGarde-CondBook } + @Metrics { AG-CnBk } + @ExtraMetrics { AG-CnBk+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { AvantGardeCE-CondDemi } + @Family { AvantGardeCE } + @Face { CondDemi } + @Name { AvantGarde-CondDemi } + @Metrics { AG-CnDm } + @ExtraMetrics { AG-CnDm+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { AvantGardeCE-CondMedium } + @Family { AvantGardeCE } + @Face { CondMedium } + @Name { AvantGarde-CondMedium } + @Metrics { AG-CnMd } + @ExtraMetrics { AG-CnMd+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { AvantGardeCE-Demi } + @Family { AvantGardeCE } + @Face { Demi } + @Name { AvantGarde-Demi } + @Metrics { AG-Dm } + @ExtraMetrics { AG-Dm+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { AvantGardeCE-DemiOblique } + @Family { AvantGardeCE } + @Face { DemiOblique } + @Name { AvantGarde-DemiOblique } + @Metrics { AG-DmO } + @ExtraMetrics { AG-DmO+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { AvantGardeCE-ExtraLight } + @Family { AvantGardeCE } + @Face { ExtraLight } + @Name { AvantGarde-ExtraLight } + @Metrics { AG-ExLt } + @ExtraMetrics { AG-ExLt+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { AvantGardeCE-ExtraLightObl } + @Family { AvantGardeCE } + @Face { ExtraLightObl } + @Name { AvantGarde-ExtraLightObl } + @Metrics { AG-ExLtO } + @ExtraMetrics { AG-ExLtO+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { AvantGardeCE-Medium } + @Family { AvantGardeCE } + @Face { Medium } + @Name { AvantGarde-Medium } + @Metrics { AG-Md } + @ExtraMetrics { AG-Md+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { AvantGardeCE-MediumObl } + @Family { AvantGardeCE } + @Face { MediumObl } + @Name { AvantGarde-MediumObl } + @Metrics { AG-MdO } + @ExtraMetrics { AG-MdO+ } + @Mapping { LtLatin2.LCM } +} + + + +{ @FontDef + @Tag { BookmanCE-Base } + @Family { BookmanCE } + @Face { Base } + @Name { Bookman-Medium } + @Metrics { Bk-Md } + @ExtraMetrics { Bk-Md+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { BookmanCE-Slope } + @Family { BookmanCE } + @Face { Slope } + @Name { Bookman-MediumItalic } + @Metrics { Bk-MdIt } + @ExtraMetrics { Bk-MdIt+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { BookmanCE-Bold } + @Family { BookmanCE } + @Face { Bold } + @Name { Bookman-Bold } + @Metrics { Bk-Bd } + @ExtraMetrics { Bk-Bd+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { BookmanCE-BoldSlope } + @Family { BookmanCE } + @Face { BoldSlope } + @Name { Bookman-BoldItalic } + @Metrics { Bk-BdIt } + @ExtraMetrics { Bk-BdIt+ } + @Mapping { LtLatin2.LCM } +} + + +{ @FontDef + @Tag { BookmanCE-BoldItalic } + @Family { BookmanCE } + @Face { BoldItalic } + @Name { Bookman-BoldItalic } + @Metrics { Bk-BdIt } + @ExtraMetrics { Bk-BdIt+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { BookmanCE-Demi } + @Family { BookmanCE } + @Face { Demi } + @Name { Bookman-Demi } + @Metrics { Bk-Dm } + @ExtraMetrics { Bk-Dm+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { BookmanCE-DemiItalic } + @Family { BookmanCE } + @Face { DemiItalic } + @Name { Bookman-DemiItalic } + @Metrics { Bk-DmIt } + @ExtraMetrics { Bk-DmIt+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { BookmanCE-Light } + @Family { BookmanCE } + @Face { Light } + @Name { Bookman-Light } + @Metrics { Bk-Lt } + @ExtraMetrics { Bk-Lt+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { BookmanCE-LightItalic } + @Family { BookmanCE } + @Face { LightItalic } + @Name { Bookman-LightItalic } + @Metrics { Bk-LtIt } + @ExtraMetrics { Bk-LtIt+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { BookmanCE-Medium } + @Family { BookmanCE } + @Face { Medium } + @Name { Bookman-Medium } + @Metrics { Bk-Md } + @ExtraMetrics { Bk-Md+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { BookmanCE-MediumItalic } + @Family { BookmanCE } + @Face { MediumItalic } + @Name { Bookman-MediumItalic } + @Metrics { Bk-MdIt } + @ExtraMetrics { Bk-MdIt+ } + @Mapping { LtLatin2.LCM } +} + + + +{ @FontDef + @Tag { CourierCE-Base } + @Family { CourierCE } + @Face { Base } + @Name { Courier } + @Metrics { Cr } + @ExtraMetrics { Cr+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { CourierCE-Slope } + @Family { CourierCE } + @Face { Slope } + @Name { Courier-Oblique } + @Metrics { Cr-O } + @ExtraMetrics { Cr-O+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { CourierCE-Bold } + @Family { CourierCE } + @Face { Bold } + @Name { Courier-Bold } + @Metrics { Cr-Bd } + @ExtraMetrics { Cr-Bd+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { CourierCE-BoldSlope } + @Family { CourierCE } + @Face { BoldSlope } + @Name { Courier-BoldOblique } + @Metrics { Cr-BdO } + @ExtraMetrics { Cr-BdO+ } + @Mapping { LtLatin2.LCM } +} + + +{ @FontDef + @Tag { CourierCE-BoldOblique } + @Family { CourierCE } + @Face { BoldOblique } + @Name { Courier-BoldOblique } + @Metrics { Cr-BdO } + @ExtraMetrics { Cr-BdO+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { CourierCE-Oblique } + @Family { CourierCE } + @Face { Oblique } + @Name { Courier-Oblique } + @Metrics { Cr-O } + @ExtraMetrics { Cr-O+ } + @Mapping { LtLatin2.LCM } +} + + + +{ @FontDef + @Tag { HelveticaCE-Base } + @Family { HelveticaCE } + @Face { Base } + @Name { Helvetica } + @Metrics { He } + @ExtraMetrics { He+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-Slope } + @Family { HelveticaCE } + @Face { Slope } + @Name { Helvetica-Oblique } + @Metrics { He-O } + @ExtraMetrics { He-O+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-Bold } + @Family { HelveticaCE } + @Face { Bold } + @Name { Helvetica-Bold } + @Metrics { He-Bd } + @ExtraMetrics { He-Bd+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-BoldSlope } + @Family { HelveticaCE } + @Face { BoldSlope } + @Name { Helvetica-BoldOblique } + @Metrics { He-BdO } + @ExtraMetrics { He-BdO+ } + @Mapping { LtLatin2.LCM } +} + + +{ @FontDef + @Tag { HelveticaCE-Black } + @Family { HelveticaCE } + @Face { Black } + @Name { Helvetica-Black } + @Metrics { He-Bl } + @ExtraMetrics { He-Bl+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-BlackOblique } + @Family { HelveticaCE } + @Face { BlackOblique } + @Name { Helvetica-BlackOblique } + @Metrics { He-BlO } + @ExtraMetrics { He-BlO+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-BoldOblique } + @Family { HelveticaCE } + @Face { BoldOblique } + @Name { Helvetica-BoldOblique } + @Metrics { He-BdO } + @ExtraMetrics { He-BdO+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-Compressed } + @Family { HelveticaCE } + @Face { Compressed } + @Name { Helvetica-Compressed } + @Metrics { He-Cm } + @ExtraMetrics { He-Cm+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-Cond } + @Family { HelveticaCE } + @Face { Cond } + @Name { Helvetica-Condensed } + @Metrics { He-Cn } + @ExtraMetrics { He-Cn+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-CondBlack } + @Family { HelveticaCE } + @Face { CondBlack } + @Name { Helvetica-Condensed-Black } + @Metrics { He-CnBl } + @ExtraMetrics { He-CnBl+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-CondBlackObl } + @Family { HelveticaCE } + @Face { CondBlackObl } + @Name { Helvetica-Condensed-BlackObl } + @Metrics { He-CnBlO } + @ExtraMetrics { He-CnBlO+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-CondBold } + @Family { HelveticaCE } + @Face { CondBold } + @Name { Helvetica-Condensed-Bold } + @Metrics { He-CnBd } + @ExtraMetrics { He-CnBd+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-CondBoldObl } + @Family { HelveticaCE } + @Face { CondBoldObl } + @Name { Helvetica-Condensed-BoldObl } + @Metrics { He-CnBdO } + @ExtraMetrics { He-CnBdO+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-CondLight } + @Family { HelveticaCE } + @Face { CondLight } + @Name { Helvetica-Condensed-Light } + @Metrics { He-CnLi } + @ExtraMetrics { He-CnLi+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-CondLightObl } + @Family { HelveticaCE } + @Face { CondLightObl } + @Name { Helvetica-Condensed-LightObl } + @Metrics { He-CnLiO } + @ExtraMetrics { He-CnLiO+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-CondOblique } + @Family { HelveticaCE } + @Face { CondOblique } + @Name { Helvetica-Condensed-Oblique } + @Metrics { He-CnO } + @ExtraMetrics { He-CnO+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-ExtraCompressed } + @Family { HelveticaCE } + @Face { ExtraCompressed } + @Name { Helvetica-ExtraCompressed } + @Metrics { He-ExtC } + @ExtraMetrics { He-ExtC+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-Light } + @Family { HelveticaCE } + @Face { Light } + @Name { Helvetica-Light } + @Metrics { He-Lt } + @ExtraMetrics { He-Lt+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-LightOblique } + @Family { HelveticaCE } + @Face { LightOblique } + @Name { Helvetica-LightOblique } + @Metrics { He-LtO } + @ExtraMetrics { He-LtO+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-Narrow } + @Family { HelveticaCE } + @Face { Narrow } + @Name { Helvetica-Narrow } + @Metrics { He-Nr } + @ExtraMetrics { He-Nr+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-NarrowBold } + @Family { HelveticaCE } + @Face { NarrowBold } + @Name { Helvetica-Narrow-Bold } + @Metrics { He-NrBd } + @ExtraMetrics { He-NrBd+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-NarrowBoldObl } + @Family { HelveticaCE } + @Face { NarrowBoldObl } + @Name { Helvetica-Narrow-BoldOblique } + @Metrics { He-NrBdO } + @ExtraMetrics { He-NrBdO+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-NarrowObl } + @Family { HelveticaCE } + @Face { NarrowObl } + @Name { Helvetica-Narrow-Oblique } + @Metrics { He-NrO } + @ExtraMetrics { He-NrO+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-Oblique } + @Family { HelveticaCE } + @Face { Oblique } + @Name { Helvetica-Oblique } + @Metrics { He-O } + @ExtraMetrics { He-O+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { HelveticaCE-UltraCompressed } + @Family { HelveticaCE } + @Face { UltraCompressed } + @Name { Helvetica-UltraCompressed } + @Metrics { He-UlCm } + @ExtraMetrics { He-UlCm+ } + @Mapping { LtLatin2.LCM } +} + + + +{ @FontDef + @Tag { SchoolbookCE-Base } + @Family { SchoolbookCE } + @Face { Base } + @Name { NewCenturySchlbk-Roman } + @Metrics { NCS-Rm } + @ExtraMetrics { NCS-Rm+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { SchoolbookCE-Slope } + @Family { SchoolbookCE } + @Face { Slope } + @Name { NewCenturySchlbk-Italic } + @Metrics { NCS-It } + @ExtraMetrics { NCS-It+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { SchoolbookCE-Bold } + @Family { SchoolbookCE } + @Face { Bold } + @Name { NewCenturySchlbk-Bold } + @Metrics { NCS-Bd } + @ExtraMetrics { NCS-Bd+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { SchoolbookCE-BoldSlope } + @Family { SchoolbookCE } + @Face { BoldSlope } + @Name { NewCenturySchlbk-BoldItalic } + @Metrics { NCS-BdIt } + @ExtraMetrics { NCS-BdIt+ } + @Mapping { LtLatin2.LCM } +} + + +{ @FontDef + @Tag { SchoolbookCE-BoldItalic } + @Family { SchoolbookCE } + @Face { BoldItalic } + @Name { NewCenturySchlbk-BoldItalic } + @Metrics { NCS-BdIt } + @ExtraMetrics { NCS-BdIt+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { SchoolbookCE-Italic } + @Family { SchoolbookCE } + @Face { Italic } + @Name { NewCenturySchlbk-Italic } + @Metrics { NCS-It } + @ExtraMetrics { NCS-It+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { SchoolbookCE-Roman } + @Family { SchoolbookCE } + @Face { Roman } + @Name { NewCenturySchlbk-Roman } + @Metrics { NCS-Rm } + @ExtraMetrics { NCS-Rm+ } + @Mapping { LtLatin2.LCM } +} + + + +{ @FontDef + @Tag { PalatinoCE-Base } + @Family { PalatinoCE } + @Face { Base } + @Name { Palatino-Roman } + @Metrics { Pa-Rm } + @ExtraMetrics { Pa-Rm+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { PalatinoCE-Slope } + @Family { PalatinoCE } + @Face { Slope } + @Name { Palatino-Italic } + @Metrics { Pa-It } + @ExtraMetrics { Pa-It+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { PalatinoCE-Bold } + @Family { PalatinoCE } + @Face { Bold } + @Name { Palatino-Bold } + @Metrics { Pa-Bd } + @ExtraMetrics { Pa-Bd+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { PalatinoCE-BoldSlope } + @Family { PalatinoCE } + @Face { BoldSlope } + @Name { Palatino-BoldItalic } + @Metrics { Pa-BdIt } + @ExtraMetrics { Pa-BdIt+ } + @Mapping { LtLatin2.LCM } +} + + +{ @FontDef + @Tag { PalatinoCE-BoldItalic } + @Family { PalatinoCE } + @Face { BoldItalic } + @Name { Palatino-BoldItalic } + @Metrics { Pa-BdIt } + @ExtraMetrics { Pa-BdIt+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { PalatinoCE-BoldItalicOsF } + @Family { PalatinoCE } + @Face { BoldItalicOsF } + @Name { Palatino-BoldItalicOsF } + @Metrics { Pa-BdItF } + @ExtraMetrics { Pa-BdItF+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { PalatinoCE-BoldOsF } + @Family { PalatinoCE } + @Face { BoldOsF } + @Name { Palatino-BoldOsF } + @Metrics { Pa-BdF } + @ExtraMetrics { Pa-BdF+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { PalatinoCE-Italic } + @Family { PalatinoCE } + @Face { Italic } + @Name { Palatino-Italic } + @Metrics { Pa-It } + @ExtraMetrics { Pa-It+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { PalatinoCE-ItalicOsF } + @Family { PalatinoCE } + @Face { ItalicOsF } + @Name { Palatino-ItalicOsF } + @Metrics { Pa-ItF } + @ExtraMetrics { Pa-ItF+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { PalatinoCE-Roman } + @Family { PalatinoCE } + @Face { Roman } + @Name { Palatino-Roman } + @Metrics { Pa-Rm } + @ExtraMetrics { Pa-Rm+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { PalatinoCE-SC } + @Family { PalatinoCE } + @Face { SC } + @Name { Palatino-SC } + @Metrics { Pa-SC } + @ExtraMetrics { Pa-SC+ } + @Mapping { LtLatin2.LCM } +} + + + +{ @FontDef + @Tag { TimesCE-Base } + @Family { TimesCE } + @Face { Base } + @Name { Times-Roman } + @Metrics { Ti-Rm } + @ExtraMetrics { Ti-Rm+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { TimesCE-Slope } + @Family { TimesCE } + @Face { Slope } + @Name { Times-Italic } + @Metrics { Ti-It } + @ExtraMetrics { Ti-It+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { TimesCE-Bold } + @Family { TimesCE } + @Face { Bold } + @Name { Times-Bold } + @Metrics { Ti-Bd } + @ExtraMetrics { Ti-Bd+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { TimesCE-BoldSlope } + @Family { TimesCE } + @Face { BoldSlope } + @Name { Times-BoldItalic } + @Metrics { Ti-BdIt } + @ExtraMetrics { Ti-BdIt+ } + @Mapping { LtLatin2.LCM } +} + + +{ @FontDef + @Tag { TimesCE-BoldItalic } + @Family { TimesCE } + @Face { BoldItalic } + @Name { Times-BoldItalic } + @Metrics { Ti-BdIt } + @ExtraMetrics { Ti-BdIt+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { TimesCE-BoldItalicOsF } + @Family { TimesCE } + @Face { BoldItalicOsF } + @Name { Times-BoldItalicOsF } + @Metrics { Ti-BdItF } + @ExtraMetrics { Ti-BdItF+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { TimesCE-BoldSC } + @Family { TimesCE } + @Face { BoldSC } + @Name { Times-BoldSC } + @Metrics { Ti-BdSC } + @ExtraMetrics { Ti-BdSC+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { TimesCE-ExtraBold } + @Family { TimesCE } + @Face { ExtraBold } + @Name { Times-ExtraBold } + @Metrics { Ti-ExBd } + @ExtraMetrics { Ti-ExBd+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { TimesCE-Italic } + @Family { TimesCE } + @Face { Italic } + @Name { Times-Italic } + @Metrics { Ti-It } + @ExtraMetrics { Ti-It+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { TimesCE-ItalicOsF } + @Family { TimesCE } + @Face { ItalicOsF } + @Name { Times-ItalicOsF } + @Metrics { Ti-ItF } + @ExtraMetrics { Ti-ItF+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { TimesCE-Roman } + @Family { TimesCE } + @Face { Roman } + @Name { Times-Roman } + @Metrics { Ti-Rm } + @ExtraMetrics { Ti-Rm+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { TimesCE-RomanSC } + @Family { TimesCE } + @Face { RomanSC } + @Name { Times-RomanSC } + @Metrics { Ti-RmSC } + @ExtraMetrics { Ti-RmSC+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { TimesCE-Semibold } + @Family { TimesCE } + @Face { Semibold } + @Name { Times-Semibold } + @Metrics { Ti-Sm } + @ExtraMetrics { Ti-Sm+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { TimesCE-SemiboldItalic } + @Family { TimesCE } + @Face { SemiboldItalic } + @Name { Times-SemiboldItalic } + @Metrics { Ti-SmIt } + @ExtraMetrics { Ti-SmIt+ } + @Mapping { LtLatin2.LCM } +} + + + +{ @FontDef + @Tag { ChanceryCE-Base } + @Family { ChanceryCE } + @Face { Base } + @Name { ZapfChancery-Roman } + @Metrics { ZC-Rm } + @ExtraMetrics { ZC-Rm+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { ChanceryCE-Slope } + @Family { ChanceryCE } + @Face { Slope } + @Name { ZapfChancery-Italic } + @Metrics { ZC-It } + @ExtraMetrics { ZC-It+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { ChanceryCE-Bold } + @Family { ChanceryCE } + @Face { Bold } + @Name { ZapfChancery-Bold } + @Metrics { ZC-Bd } + @ExtraMetrics { ZC-Bd+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { ChanceryCE-BoldSlope } + @Family { ChanceryCE } + @Face { BoldSlope } + @Name { ZapfChancery-MediumItalic } + @Metrics { ZC-MdIt } + @ExtraMetrics { ZC-MdIt+ } + @Mapping { LtLatin2.LCM } +} + + +{ @FontDef + @Tag { ChanceryCE-Roman } + @Family { ChanceryCE } + @Face { Roman } + @Name { ZapfChancery-Roman } + @Metrics { ZC-Rm } + @ExtraMetrics { ZC-Rm+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { ChanceryCE-Italic } + @Family { ChanceryCE } + @Face { Italic } + @Name { ZapfChancery-Italic } + @Metrics { ZC-It } + @ExtraMetrics { ZC-It+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { ChanceryCE-Light } + @Family { ChanceryCE } + @Face { Light } + @Name { ZapfChancery-Light } + @Metrics { ZC-Lt } + @ExtraMetrics { ZC-Lt+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { ChanceryCE-Demi } + @Family { ChanceryCE } + @Face { Demi } + @Name { ZapfChancery-Demi } + @Metrics { ZC-Dm } + @ExtraMetrics { ZC-Dm+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { ChanceryCE-LightItalic } + @Family { ChanceryCE } + @Face { LightItalic } + @Name { ZapfChancery-LightItalic } + @Metrics { ZC-LtIt } + @ExtraMetrics { ZC-LtIt+ } + @Mapping { LtLatin2.LCM } +} + +{ @FontDef + @Tag { ChanceryCE-MediumItalic } + @Family { ChanceryCE } + @Face { MediumItalic } + @Name { ZapfChancery-MediumItalic } + @Metrics { ZC-MdIt } + @ExtraMetrics { ZC-MdIt+ } + @Mapping { LtLatin2.LCM } +} + diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/loutrefs.ld b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/loutrefs.ld new file mode 100755 index 0000000000000..bcff3cf864eb2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/loutrefs.ld @@ -0,0 +1,285 @@ +{ @Reference + @Tag { knuth1984tex } + @Type { Book } + @Author { Donald E. Knuth } + @Title { The {@TeX}Book } + @Publisher { Addison-Wesley } + @Year { 1984 } +} + +{ @Reference + @Tag { adobe1990ps } + @Type { Book } + @Author { Adobe Systems, Inc. } + @Title { PostScript Language Reference Manual, Second Edition } + @Publisher { Addison-Wesley } + @Year { 1990 } +} + +{ @Reference + @Tag { jensen1975pascal } + @Type { Book } + @Author { K. Jensen and N. Wirth } + @Title { Pascal User Manual and Report } + @Publisher { Springer-Verlag } + @Year { 1975 } +} + +{ @Reference + @Tag { meyer1992eiffel } + @Type { Book } + @Author { Bertrand Meyer } + @Title { Eiffel: The Language } + @Publisher { Prentice-Hall } + @Year { 1992 } +} + +{ @Reference + @Tag { reid1980scribe } + @Type { InProceedings } + @Author { Brian K. Reid } + @Title { A High-Level Approach to Computer Document Production } + @InTitle { Proceedings of the 7th Symposium on the Principles +of Programming Languages (POPL), Las Vegas NV } + @Pages { 24--31 } + @Year { 1980 } +} + +{ @Reference + @Tag { strunk1979style } + @Type { Book } + @Author { William Strunk and E. B. White } + @Title { The Elements of Style } + @Publisher { Macmillan } + @Edition { Third Edition } + @Year { 1979 } +} + +{ @Reference + @Tag { ossanna1976troff } + @Type { TechReport } + @Author { Joseph F. Ossanna } + @Title { "Nroff/Troff" User's Manual } + @Number { 54 } + @Institution { Bell Laboratories } + @Address { Murray Hill, NJ 07974 } + @Year { 1976 } +} + +{ @Reference + @Tag { kernighan1975eqn } + @Type { Article } + @Author { Brian W. Kernighan and Lorinda L. Cherry } + @Title { A system for typesetting mathematics } + @Journal { Communications of the ACM } + @Volume { 18 } + @Pages { 182--193 } + @Year { 1975 } +} + +{ @Reference + @Tag { lesk1976tbl } + @Type { TechReport } + @Author { M. E. Lesk } + @Title { Tbl -- a program to format tables } + @Number { 49 } + @Institution { AT"&"T Bell Laboratories } + @Address { Murray Hill, NJ 07974 } + @Year { 1976 } +} + +{ @Reference + @Tag { kernighan1982pic } + @Type { Article } + @Author { Brian W. Kernighan } + @Title { PIC -- A language for typesetting graphics } + @Journal { Software Practice and Experience } + @Volume { 12 } + @Pages { 1--21 } + @Year { 1982 } +} + +{ @Reference + @Tag { bentley1984grap } + @Type { TechReport } + @Author { Jon L. Bentley and Brian W. Kernighan } + @Title { GRAP -- a language for typesetting graphs } + @Number { 114 (Computing Science) } + @Institution { AT"&"T Bell Laboratories } + @Address { Murray Hill, NJ 07974 } + @Year { 1984 } +} + +{ @Reference + @Tag { ellis1990cpp } + @Type { Book } + @Author { Margaret A. Ellis and Bjarne Stroustrup } + @Title { The annotated C++ reference manual } + @Publisher { Addison-Wesley } + @Year { 1990 } +} + +{ @Reference + @Tag { kingston1995lout.program } + @Type { Book } + @Author { Jeffrey H. Kingston } + @Title { The Basser Lout Document Formatting System (Version 3) } + @TitleNote { Computer program } + @Year { 1995 } + @Note { Publicly available in the +@I jeff subdirectory of the home directory of @I ftp to host +@I ftp.cs.su.oz.au with login name @I anonymous or @I ftp and any +non-empty password (e.g. {@I none}). Lout distributions are also +available from the @I comp.sources.misc newsgroup, and by electronic +mail from the author. All enquiries to {@I "jeff@cs.su.oz.au" }. } +} + +{ @Reference + @Tag { kingston1995lout.expert } + @Type { Book } + @Author { Jeffrey H. Kingston } + @Title { An Expert's Guide to the Lout Document Formatting +System (Version 3) } + @Institution { Basser Department of Computer Science } + @Address { University of Sydney } + @Year { 1995 } +} + +{ @Reference + @Tag { kingston1995lout.user } + @Type { Book } + @Author { Jeffrey H. Kingston } + @Title { A User's Guide to the Lout Document Formatting +System (Version 3) } + @Institution { Basser Department of Computer Science } + @Address { University of Sydney } + @Year { 1995 } +} + +{ @Reference + @Tag { kingston1994lout.overheads } + @Type { TechReport } + @TRType { Overhead transparencies } + @Author { Jeffrey H. Kingston } + @Title { A Practical Introduction to the Lout Document Formatting +System } + @Institution { Basser Department of Computer Science } + @Address { University of Sydney } + @Year { 1994 } +} + +{ @Reference + @Tag { kingston1993lout.design } + @Type { Article } + @Author { Jeffrey H. Kingston } + @Title { The design and implementation of the Lout document +formatting language } + @Journal { Software---Practice and Experience } + @Volume { 23 } + @Pages { 1001--1041 } + @Year { 1993 } +} + +{ @Reference + @Tag { wirth1971pascal } + @Type { Article } + @Author { N. Wirth } + @Title { The programming language Pascal } + @Journal { Acta Informatica } + @Volume { 1 } + @Year { 1975 } + @Pages { 35--63 } +} + +{ @Reference + @Tag { brooks1991lilac } + @Type { Article } + @Author { Kenneth P. Brooks } + @Title { Lilac: a two-view document editor } + @Journal { IEEE Computer } + @Pages { 7--19 } + @Year { 1991 } +} + +{ @Reference + @Tag { furuta1982survey } + @Type { Article } + @Author { Richard Furuta, Jeffrey Scofield, and Alan Shaw } + @Title { Document formatting systems: survey, +concepts, and issues } + @Journal { Computing Surveys } + @Volume { 14 } + @Pages { 417--472 } + @Year { 1982 } +} + +{ @Reference + @Tag { kernighan1988c } + @Type { Book } + @Author { Brian W. Kernighan and Dennis M. Ritchie } + @Title { The C programming language (second edition) } + @Publisher { Prentice Hall } + @Year { 1988 } +} + +{ @Reference + @Tag { vanleunen1992handbook } + @Type { Book } + @Author { Mary-Claire van Leunen } + @Title { A Handbook for Scholars } + @Publisher { Oxford } + @Edition { Revised Edition } + @Year { 1992 } +} + +{ @Reference + @Tag { homer.odyssey } + @Type { Book } + @Author { Homer } + @Title { The Odyssey } + @TitleNote { Translated by E. V. Rieu } + @Pinpoint { Chapter VI } + @Pages { 102--111 } + @Page { 102 } + @Publisher { Penguin Books } + @Address { Harmondsworth, Middlesex } + @Edition { Penguin Classics Edition } + @Month { August } + @Year { 1942 } + @Note { The date of composition is unknown, but +is thought to be about the tenth century BC. } +} + +{ @Reference + @Tag { rieu1942intro } + @Type { InBook } + @Author { E. V. Rieu } + @Title { Introduction to @I { The Odyssey } } + @InAuthor { Homer } + @InTitle { The Odyssey } + @Publisher { Penguin } + @Year { 1942 } +} + +{ @Reference + @Tag { christofides1976tsp } + @Type { TechReport } + @Author { N. Christofides } + @Title { Worst-case analysis of a new heuristic +for the travelling salesman problem } + @Number { 388 } + @Institution { Graduate School of Industrial +Administration, Carnegie-Mellon University } + @Address { Pittsburgh, PA } + @Year { 1976 } +} + +{ @Reference + @Tag { lamport1986latex } + @Type { Book } + @Author { Leslie Lamport } + @Title { @LaTeX User's Guide and Reference Manual } + @Publisher { Addison-Wesley } + @Year { 1986 } +} + diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/loutrefs.li b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/loutrefs.li new file mode 100755 index 0000000000000..944f3a75ac104 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/loutrefs.li @@ -0,0 +1,28 @@ +00 Basser Lout Version 3.24 (October 2000) database index file +00symbol 1 @Reference +1&adobe1990ps 0 00755 180 10 . +1&bentley1984grap 0 00764 2482 102 . +1&brooks1991lilac 0 00772 5196 194 . +1&christofides1976tsp 0 00778 6951 264 . +1&ellis1990cpp 0 00765 2815 113 . +1&furuta1982survey 0 00773 5425 204 . +1&homer.odyssey 0 00776 6206 235 . +1&jensen1975pascal 0 00756 403 19 . +1&kernighan1975eqn 0 00761 1641 69 . +1&kernighan1982pic 0 00763 2204 91 . +1&kernighan1988c 0 00774 5736 216 . +1&kingston1993lout.design 0 00770 4635 171 . +1&kingston1994lout.overheads 0 00769 4275 159 . +1&kingston1995lout.expert 0 00767 3650 137 . +1&kingston1995lout.program 0 00766 3041 122 . +1&kingston1995lout.user 0 00768 3965 148 . +1&knuth1984tex 0 00754 0 1 . +1&lamport1986latex 0 00779 7320 277 . +1&lesk1976tbl 0 00762 1931 80 . +1&meyer1992eiffel 0 00757 612 28 . +1&ossanna1976troff 0 00760 1369 58 . +1&reid1980scribe 0 00758 802 37 . +1&rieu1942intro 0 00777 6703 253 . +1&strunk1979style 0 00759 1135 48 . +1&vanleunen1992handbook 0 00775 5973 225 . +1&wirth1971pascal 0 00771 4956 183 . diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/oldrefs.ld b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/oldrefs.ld new file mode 100755 index 0000000000000..cda4992069058 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/oldrefs.ld @@ -0,0 +1,209 @@ +{ @Reference + @Tag { knuth84 } + @Type { Book } + @Author { Knuth, Donald E. } + @Title { The T{ /0.2fo E}XBook } + @Publisher { Addison-Wesley } + @Year { 1984 } +} + +{ @Reference + @Tag { adobe85 } + @Type { Book } + @Author { Adobe Systems, Inc. } + @Title { PostScript Language Reference Manual } + @Publisher { Addison-Wesley } + @Year { 1985 } +} + +{ @Reference + @Tag { reid80 } + @Type { InProceedings } + @Author { Reid, Brian K. } + @Title { A High-Level Approach to Computer Document Production } + @InTitle { Proceedings of the 7th Symposium on the Principles +of Programming Languages (POPL), Las Vegas NV } + @Pages { 24--31 } + @Year { 1980 } +} + +{ @Reference + @Tag { strunk79 } + @Type { Book } + @Author { Strunk, William and White, E. B. } + @Title { The Elements of Style } + @Publisher { Macmillan } + @Edition { Third Edition } + @Year { 1979 } +} + +{ @Reference + @Tag { ossanna76 } + @Type { TechReport } + @Author { Joseph F. Ossanna } + @Title { "Nroff/Troff" User's Manual } + @Number { 54 } + @Institution { Bell Laboratories } + @Address { Murray Hill, NJ 07974 } + @Year { 1976 } +} + +{ @Reference + @Tag { kernighan75 } + @Type { Article } + @Author { Kernighan, Brian W. and Cherry, Lorinda L. } + @Title { A system for typesetting mathematics } + @Journal { Communications of the ACM } + @Volume { 18 } + @Pages { 182--193 } + @Year { 1975 } +} + +{ @Reference + @Tag { lesk76 } + @Type { TechReport } + @Author { Lesk, M. E. } + @Title { Tbl -- a program to format tables } + @Number { 49 } + @Institution { Bell Laboratories } + @Address { Murray Hill, NJ 07974 } + @Year { 1976 } +} + +{ @Reference + @Tag { kernighan82 } + @Type { Article } + @Author { Kernighan, Brian W. } + @Title { PIC -- A language for typesetting graphics} + @Journal { Software Practice and Experience } + @Volume { 12 } + @Pages { 1--21 } + @Year { 1982 } +} + +{ @Reference + @Tag { kingston91 } + @Type { TechReport } + @Author { Kingston, Jeffrey H. } + @Title { Document Formatting with Lout } + @Number { 408 } + @Institution { Basser Department of Computer +Science, The University of Sydney, Australia } + @Year { 1991 } +} + +{ @Reference + @Tag { kingston91basser } + @Type { Misc } + @Author { Kingston, Jeffrey H. } + @Title { The Basser Lout Document Formatter } + @Year { 1991 } + @Note { Computer program; Version 2 publicly available +in the @I pub subdirectory +of the home directory of @I ftp to host +@I ftp.cs.su.oz.au with login name +@I anonymous and no password. Distribution +via email is available for non-{@I ftp} sites. All enquiries to "jeff@cs.su.oz.au". } +} + +{ @Reference + @Tag { kingston91begin } + @Type { TechReport } + @Author { Kingston, Jeffrey H. } + @Title { A beginners' guide to Lout } + @Number { 409 } + @Institution { Basser Department of Computer +Science, The University of Sydney, Australia } + @Year { 1991 } +} + +{ @Reference + @Tag { kingston91eq } + @Type { TechReport } + @Author { Kingston, Jeffrey H. } + @Title { Eq -- a Lout package for typesetting mathematics } + @Number { 410 } + @Institution { Basser Department of Computer +Science, The University of Sydney, Australia } + @Year { 1991 } + @Note { (Contains an appendix describing the Pas Pascal formatter.) } +} + +{ @Reference + @Tag { kingston91fig } + @Type { TechReport } + @Author { Kingston, Jeffrey H. } + @Title { Fig -- a Lout package for drawing figures } + @Number { 411 } + @Institution { Basser Department of Computer +Science, The University of Sydney, Australia } + @Year { 1991 } +} + +{ @Reference + @Tag { kingston91over } + @Type { TechReport } + @Author { Kingston, Jeffrey H. } + @Title { A new approach to document formatting } + @Number { 412 } + @Institution { Basser Department of Computer +Science, The University of Sydney, Australia } + @Year { 1991 } +} + +{ @Reference + @Tag { kingston91tab } + @Type { TechReport } + @Author { Kingston, Jeffrey H. } + @Title { Tab -- a Lout package for formatting tables } + @Number { 413 } + @Institution { Basser Department of Computer +Science, The University of Sydney, Australia } + @Year { 1991 } +} + +{ @Reference + @Tag { kingston91design } + @Type { TechReport } + @Author { Kingston, Jeffrey H. } + @Title { The design and implementation of a document formatting language } + @Number { @Null } + @Institution { Basser Department of Computer +Science, The University of Sydney, Australia } + @Year { 1991 } + @Note { @I { In preparation. } } +} + +{ @Reference + @Tag { wirth71 } + @Type { Article } + @Author { Wirth, N. } + @Title { The programming language Pascal } + @Journal { Acta Informatica } + @Volume { 1 } + @Year { 1975 } + @Pages { 35--63 } +} + +{ @Reference + @Tag { brooks91 } + @Type { Article } + @Author { Brooks, Kenneth P. } + @Title { Lilac: a two-view document editor } + @Journal { IEEE Computer } + @Pages { 7--19 } + @Year { 1991 } +} + +{ @Reference + @Tag { furuta82 } + @Type { Article } + @Author { Furuta, Richard, Scofield, Jeffrey, +and Shaw, Alan } + @Title { Document formatting systems: survey, +concepts, and issues } + @Journal { Computing Surveys } + @Volume { 14 } + @Pages { 417--472 } + @Year { 1982 } +} diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/refstyle.ld b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/refstyle.ld new file mode 100755 index 0000000000000..31a92e408ca9a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/refstyle.ld @@ -0,0 +1,306 @@ +########################################################################## +# # +# refstyles.ld # +# # +# Standard reference styles database. # +# Jeffrey H. Kingston # +# August 1994 (@NumSep added in Version 3.13, February 1999). # +# # +########################################################################## + + +########################################################################## +# # +# Large works: Book, Proceedings (identical to Book), PhDThesis. # +# # +########################################################################## + +{ Book @RefStyle @Style + { @Reference&&reftag @Open + { + { @Author. {} } @If @Author + { @I @Title } @If @Title + { @Word&¬itle } @If @Not @Title + { , @Pinpoint } @If @Pinpoint + { , @Word&&pages @NumSep @Pages } @If @Pages + { , @Word&&page @NumSep @Page } @If @Page + { . @TitleNote } @If @TitleNote + { . @HowPublished } @If @HowPublished + { . @Publisher } @If @Publisher + { . @Organization } @If @Organization + { . @Institution } @If @Institution + { , @Address } @If @Address + { . @Edition } @If @Edition + { , @Month @Year } @If @Year @And @Month + { , @Year } @If @Year @And @Not @Month + { . } @If @True + { {} URL @I { @URL }. } @If @URL + { {} @Note } @If @Note + } + } +} + +{ Proceedings @RefStyle @Style + { @Reference&&reftag @Open + { + { @Author. {} } @If @Author + { @I @Title } @If @Title + { @Word&¬itle } @If @Not @Title + { , @Pinpoint } @If @Pinpoint + { , @Word&&pages @NumSep @Pages } @If @Pages + { , @Word&&page @NumSep @Page } @If @Page + { . @TitleNote } @If @TitleNote + { . @HowPublished } @If @HowPublished + { . @Publisher } @If @Publisher + { . @Organization } @If @Organization + { . @Institution } @If @Institution + { , @Address } @If @Address + { . @Edition } @If @Edition + { , @Month @Year } @If @Year @And @Month + { , @Year } @If @Year @And @Not @Month + { . } @If @True + { {} URL @I { @URL }. } @If @URL + { {} @Note } @If @Note + } + } +} + +{ PhDThesis @RefStyle @Style + { @Reference&&reftag @Open + { + { @Author. {} } @If @Author + { @I @Title } @If @Title + { @Word&¬itle } @If @Not @Title + { , @Pinpoint } @If @Pinpoint + { , @Word&&pages @NumSep @Pages } @If @Pages + { , @Word&&page @NumSep @Page } @If @Page + { . @TitleNote } @If @TitleNote + { . @Word&&phdthesis } @If @True + { , @HowPublished } @If @HowPublished + { , @Publisher } @If @Publisher + { , @Organization } @If @Organization + { , @Institution } @If @Institution + { , @Address } @If @Address + { . @Edition } @If @Edition + { , @Month @Year } @If @Year @And @Month + { , @Year } @If @Year @And @Not @Month + { . } @If @True + { {} URL @I { @URL }. } @If @URL + { {} @Note } @If @Note + } + } +} + + +########################################################################## +# # +# Small works not appearing within anything else: TechReport, Manual, # +# MastersThesis, Seminar, Misc # +# # +########################################################################## + +{ TechReport @RefStyle @Style + { @Reference&&reftag @Open + { + { @Author. {} } @If @Author + { @Title } @If @Title + { @Word&¬itle } @If @Not @Title + { , @Pinpoint } @If @Pinpoint + { , @Word&&pages @NumSep @Pages } @If @Pages + { , @Word&&page @NumSep @Page } @If @Page + { . @TitleNote } @If @TitleNote + { . @TRType } @If @TRType + { . @Word&&techrep } @If @Not @TRType + { {} @Number } @If @Number + { {} (@Month @Year) } @If @Year @And @Month + { {} (@Year) } @If @Year @And @Not @Month + { , @HowPublished } @If @HowPublished + { , @Publisher } @If @Publisher + { , @Organization } @If @Organization + { , @Institution } @If @Institution + { , @Address } @If @Address + { . @Edition } @If @Edition + { . } @If @True + { {} URL @I { @URL }. } @If @URL + { {} @Note } @If @Note + } + } +} + +{ MastersThesis @RefStyle @Style + { @Reference&&reftag @Open + { + { @Author. {} } @If @Author + { @Title } @If @Title + { @Word&¬itle } @If @Not @Title + { , @Pinpoint } @If @Pinpoint + { , @Word&&pages @NumSep @Pages } @If @Pages + { , @Word&&page @NumSep @Page } @If @Page + { . @TitleNote } @If @TitleNote + { . @Word&&mastersthesis } @If @True + { {} @Number } @If @Number + { {} (@Month @Year) } @If @Year @And @Month + { {} (@Year) } @If @Year @And @Not @Month + { , @HowPublished } @If @HowPublished + { , @Publisher } @If @Publisher + { , @Organization } @If @Organization + { , @Institution } @If @Institution + { , @Address } @If @Address + { . @Edition } @If @Edition + { . } @If @True + { {} URL @I { @URL }. } @If @URL + { {} @Note } @If @Note + } + } +} + +{ Seminar @RefStyle @Style + { @Reference&&reftag @Open + { + { @Author. {} } @If @Author + { @I @Title } @If @Title + { @Word&¬itle } @If @Not @Title + { , @Pinpoint } @If @Pinpoint + { , @Word&&pages @NumSep @Pages } @If @Pages + { , @Word&&page @NumSep @Page } @If @Page + { . @TitleNote } @If @TitleNote + { . @HowPublished } @If @HowPublished + { . @Publisher } @If @Publisher + { . @Organization } @If @Organization + { . @Institution } @If @Institution + { , @Address } @If @Address + { . @Edition } @If @Edition + { , @Day @Month @Year } @If @Year @And @Month @And @Day + { , @Month @Year } @If @Year @And @Month @And @Not @Day + { , @Year } @If @Year @And @Not @Month + { . } @If @True + { {} URL @I { @URL }. } @If @URL + { {} @Note } @If @Note + } + } +} + +{ Misc @RefStyle @Style + { @Reference&&reftag @Open + { + { @Author. {} } @If @Author + { @Title } @If @Title + { @Word&¬itle } @If @Not @Title + { , @Pinpoint } @If @Pinpoint + { , @Word&&pages @NumSep @Pages } @If @Pages + { , @Word&&page @NumSep @Page } @If @Page + { . @TitleNote } @If @TitleNote + { . @HowPublished } @If @HowPublished + { , @Publisher } @If @Publisher + { , @Organization } @If @Organization + { , @Institution } @If @Institution + { , @Address } @If @Address + { . @Edition } @If @Edition + { , @Month @Year } @If @Year @And @Month + { , @Year } @If @Year @And @Not @Month + { . } @If @True + { {} URL @I { @URL }. } @If @URL + { {} @Note } @If @Note + } + } +} + + +########################################################################## +# # +# Small works appearing within an ongoing forum: Article. # +# # +########################################################################## + +{ Article @RefStyle @Style + { @Reference&&reftag @Open + { + { @Author. {} } @If @Author + { @Title } @If @Title + { @Word&¬itle } @If @Not @Title + { , @Pinpoint } @If @Pinpoint + { . } @If @True + { {} @TitleNote. } @If @TitleNote + { {} @I @Journal } @If @Journal + { {} @Word&&nopublisher } @If @Not @Journal + { {} @B @Volume } @If @Volume + { {} (@Number) } @If @Number @And @Volume + { {} @Number } @If @Number @And @Not @Volume + { , @Pages } @If @Pages + { , @Word&&page @Page } @If @Page + { , @Word&&page @NumSep @Page } @If @Page + { {} (@Day @Month @Year) } @If @Year @And @Month @And @Day + { {} (@Month @Year) } @If @Year @And @Month @And @Not @Day + { {} (@Year) } @If @Year @And @Not @Month + { . } @If @True + { {} URL @I { @URL }. } @If @URL + { {} @Note } @If @Note + } + } +} + + +########################################################################## +# # +# Small works appearing within large works: InBook, InProceedings # +# (identical to InBook). # +# # +########################################################################## + +{ InBook @RefStyle @Style + { @Reference&&reftag @Open + { + { @Author. {} } @If @Author + { @Title } @If @Title + { @Word&¬itle } @If @Not @Title + { . @Word&&in {} } @If @True + { @InAuthor, {} } @If @InAuthor + { @I @InTitle } @If @InTitle + { @Word&¬itle } @If @Not @InTitle + { , @Pinpoint } @If @Pinpoint + { , @Word&&pages @NumSep @Pages } @If @Pages + { , @Word&&page @NumSep @Page } @If @Page + { . @TitleNote } @If @TitleNote + { . @HowPublished } @If @HowPublished + { . @Publisher } @If @Publisher + { . @Organization } @If @Organization + { . @Institution } @If @Institution + { , @Address } @If @Address + { . @Edition } @If @Edition + { , @Month @Year } @If @Year @And @Month + { , @Year } @If @Year @And @Not @Month + { . } @If @True + { {} URL @I { @URL }. } @If @URL + { {} @Note } @If @Note + } + } +} + +{ InProceedings @RefStyle @Style + { @Reference&&reftag @Open + { + { @Author. {} } @If @Author + { @Title } @If @Title + { @Word&¬itle } @If @Not @Title + { . @Word&&in {} } @If @True + { @InAuthor, {} } @If @InAuthor + { @I @InTitle } @If @InTitle + { @Word&¬itle } @If @Not @InTitle + { , @Pinpoint } @If @Pinpoint + { , @Word&&pages @NumSep @Pages } @If @Pages + { , @Word&&page @NumSep @Page } @If @Page + { . @TitleNote } @If @TitleNote + { . @HowPublished } @If @HowPublished + { . @Publisher } @If @Publisher + { . @Organization } @If @Organization + { . @Institution } @If @Institution + { , @Address } @If @Address + { . @Edition } @If @Edition + { , @Month @Year } @If @Year @And @Month + { , @Year } @If @Year @And @Not @Month + { . } @If @True + { {} URL @I { @URL }. } @If @URL + { {} @Note } @If @Note + } + } +} diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/refstyle.li b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/refstyle.li new file mode 100755 index 0000000000000..ac2cee5078b2b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/refstyle.li @@ -0,0 +1,12 @@ +00 Basser Lout Version 3.24 (October 2000) database index file +00symbol 1 @RefStyle +1&Article 0 00751 6830 215 . +1&Book 0 00744 0 18 . +1&InBook 0 00752 8031 250 . +1&InProceedings 0 00753 9339 279 . +1&MastersThesis 0 00748 4528 130 . +1&Misc 0 00750 6118 183 . +1&PhDThesis 0 00746 2496 68 . +1&Proceedings 0 00745 1770 43 . +1&Seminar 0 00749 5323 157 . +1&TechReport 0 00747 3252 102 . diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/standard.ld b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/standard.ld new file mode 100755 index 0000000000000..07fa6e4c0a9db --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/standard.ld @@ -0,0 +1,2276 @@ +###################################################### +# # +# standard.ld Jeffrey H. Kingston # +# February 1995 # +# February 1999 # +# # +# Database of commonly used symbols: # +# # +# @Word language-specific words # +# @Roman lower case Roman numerals # +# @UCRoman upper case Roman numerals # +# @Alpha lower case Roman alphabet # +# @UCAlpha upper case Roman alphabet # +# @Months months of the year # +# @ShortMonths months of the year, abbreviated # +# @WeekDays days of the week # +# @ShortWeekDays days of the week, abbreviated # +# @TwelveHours hours on twelve-hour clock # +# @ShortHours short hours on 24-hour clock # +# @MeriDiem a.m. or p.m. # +# @ShortMeriDiem am or pm # +# @DateTimeFormat format of date and time. # +# # +###################################################### + +{ contents @Word @CurrLang @Case { + Czech @Yield { Obsah } + Danish @Yield { Indhold } + Dutch @Yield { Inhoudsopgave } + English @Yield { Contents } + EnglishUK @Yield { Contents } + Finnish @Yield { Sis{@Char adieresis}lt{@Char odieresis} } + French @Yield { Table des Mati{@Char egrave}res } + German @Yield { Inhalt } + Hungarian @Yield { Tartalom } + Italian @Yield { Contenuto } + Norwegian @Yield { Innhold } + Polish @Yield { Spis tre{@Char sacute}ci } + Portuguese @Yield { Conte{@Char uacute}do } + Russian @Yield { "\363\317\304\305\322\326\301\316\311\305" } + Slovenian @Yield { Vsebina } + Spanish @Yield { Contenidos } + Swedish @Yield { Inneh{@Char aring}ll } + } +} + +{ references @Word @CurrLang @Case { + Czech @Yield { Odkazy na literaturu } + Danish @Yield { Referencer } + Dutch @Yield { Referenties } + English @Yield { References } + EnglishUK @Yield { References } + Finnish @Yield { Viitteet } + French @Yield { R{@Char eacute}f{@Char eacute}rences } + German @Yield { Literaturverzeichnis } + Hungarian @Yield { Hivatkoz{@Char aacute}sok } + Italian @Yield { Riferimenti } + Norwegian @Yield { Referanser } + Polish @Yield { Odno{@Char sacute}niki } + Portuguese @Yield { Refer{@Char ecircumflex}ncias } + Russian @Yield { "\354\311\324\305\322\301\324\325\322\301" } + Slovenian @Yield { Reference } + Spanish @Yield { Referencias } + Swedish @Yield { Referenser } + } +} + +{ bibliography @Word @CurrLang @Case { + Czech @Yield { Seznam literatury } + Danish @Yield { Bibliografi } + Dutch @Yield { Bibliografie } + English @Yield { Bibliography } + EnglishUK @Yield { Bibliography } + Finnish @Yield { Kirjallisuusluettelo } + French @Yield { Bibliographie } + German @Yield { Literaturverzeichnis } + Hungarian @Yield { Irodalomjegyz{@Char eacute}k } + Italian @Yield { Bibliografia } + Norwegian @Yield { Litteratur } + Polish @Yield { Literatura } + Portuguese @Yield { Bibliografia } + Russian @Yield { "\354\311\324\305\322\301\324\325\322\301" } + Slovenian @Yield { Literatura } + Spanish @Yield { Bibliograf{@Char iacute}a } + Swedish @Yield { Bibliografi } + } +} + +{ figure @Word @CurrLang @Case { + Czech @Yield { Obr{@Char aacute}zek } + Danish @Yield { Figur } + Dutch @Yield { Figuur } + English @Yield { Figure } + EnglishUK @Yield { Figure } + Finnish @Yield { Kuva } + French @Yield { Figure } + German @Yield { Abbildung } + Hungarian @Yield { {@Char aacute}bra } + Italian @Yield { Figura } + Norwegian @Yield { Figur } + Polish @Yield { Rysunek } + Portuguese @Yield { Figura } + Russian @Yield { "\362\311\323\325\316\317\313" } + Slovenian @Yield { Slika } + Spanish @Yield { Figura } + Swedish @Yield { Figur } + } +} + +{ figurelist @Word @CurrLang @Case { + Czech @Yield { Seznam obr{@Char aacute}zk{@Char uring} } + Danish @Yield { Figurliste } + Dutch @Yield { ?? } + English @Yield { List of Figures } + EnglishUK @Yield { List of Figures } + Finnish @Yield { ?? } + French @Yield { Liste des figures } + German @Yield { Abbildungsverzeichnis } + Hungarian @Yield { {@Char Aacute}br{@Char aacute}k jegyz{@Char eacute}ke } + Italian @Yield { Elenco delle Figure } + Norwegian @Yield { ?? } + Polish @Yield { Spis rysunk{@Char oacute}w } + Portuguese @Yield { Lista de Figuras } + Russian @Yield { "\363\320\311\323\317\313 \311\314\314\300\323\324\322\301\303\311\312" } + Slovenian @Yield { Seznam slik } + Spanish @Yield { ?? } + Swedish @Yield { ?? } + } +} + +{ table @Word @CurrLang @Case { + Czech @Yield { Tabulka } + Danish @Yield { Tabel } + Dutch @Yield { Tabel } + English @Yield { Table } + EnglishUK @Yield { Table } + Finnish @Yield { Taulukko } + French @Yield { Table } + German @Yield { Tabelle } + Hungarian @Yield { t{@Char aacute}bl{@Char aacute}zat } + Italian @Yield { Tabella } + Norwegian @Yield { Tabell } + Polish @Yield { Tabela } + Portuguese @Yield { Tabela } + Russian @Yield { "\364\301\302\314\311\303\301" } + Slovenian @Yield { Tabela } + Spanish @Yield { Tabla } + Swedish @Yield { Tabell } + } +} + +{ tablelist @Word @CurrLang @Case { + Czech @Yield { Seznam tabulek } + Danish @Yield { Tabelliste } + Dutch @Yield { ?? } + English @Yield { List of Tables } + EnglishUK @Yield { List of Tables } + Finnish @Yield { ?? } + French @Yield { Liste des tables } + German @Yield { Tabellenverzeichnis } + Hungarian @Yield { T{@Char aacute}bl{@Char aacute}zatok jegyz{@Char eacute}ke } + Italian @Yield { Elenco delle Tabelle } + Norwegian @Yield { ?? } + Polish @Yield { Spis tabel } + Portuguese @Yield { Lista de Tabelas } + Russian @Yield { "\363\320\311\323\317\313 \324\301\302\314\311\303" } + Slovenian @Yield { Seznam tabel } + Spanish @Yield { ?? } + Swedish @Yield { ?? } + } +} + +{ definition @Word @CurrLang @Case { + Czech @Yield { Definice } + Danish @Yield { Definition } + Dutch @Yield { ?? } + English @Yield { Definition } + EnglishUK @Yield { Definition } + Finnish @Yield { ?? } + French @Yield { D{@Char eacute}finition } + German @Yield { Definition } + Hungarian @Yield { defin{@Char iacute}ci{@Char oacute} } + Italian @Yield { Definizione } + Norwegian @Yield { ?? } + Polish @Yield { Definicja } + Portuguese @Yield { Defini{@Char ccedila}{@Char atilde}o } + Russian @Yield { "\357\320\322\305\304\305\314\305\316\311\305" } + Slovenian @Yield { Definicija } + Spanish @Yield { ?? } + Swedish @Yield { ?? } + } +} + +{ lemma @Word @CurrLang @Case { + Czech @Yield { Lemma } + Danish @Yield { Lemma } + Dutch @Yield { ?? } + English @Yield { Lemma } + EnglishUK @Yield { Lemma } + Finnish @Yield { ?? } + French @Yield { Lemme } + German @Yield { Lemma } + Hungarian @Yield { lemma } + Italian @Yield { Lemma } + Norwegian @Yield { ?? } + Polish @Yield { Lemat } + Portuguese @Yield { Lema } + Russian @Yield { "\354\305\315\315\301" } + Slovenian @Yield { Lema } + Spanish @Yield { ?? } + Swedish @Yield { ?? } + } +} + +{ theorem @Word @CurrLang @Case { + Czech @Yield { Teor{@Char eacute}m } + Danish @Yield { S{@Char ae}tning } + Dutch @Yield { ?? } + English @Yield { Theorem } + EnglishUK @Yield { Theorem } + Finnish @Yield { ?? } + French @Yield { Th{@Char eacute}or{@Char egrave}me } + German @Yield { Theorem } + Hungarian @Yield { t{@Char eacute}tel } + Italian @Yield { Teorema } + Norwegian @Yield { ?? } + Polish @Yield { Twierdzenie } + Portuguese @Yield { Teorema } + Russian @Yield { "\364\305\317\322\305\315\301" } + Slovenian @Yield { Teorem } + Spanish @Yield { ?? } + Swedish @Yield { ?? } + } +} + +{ proposition @Word @CurrLang @Case { + Czech @Yield { P{@Char rcaron}edpoklad } + Danish @Yield { Proposition } + Dutch @Yield { ?? } + English @Yield { Proposition } + EnglishUK @Yield { Proposition } + Finnish @Yield { ?? } + French @Yield { Proposition } + German @Yield { Satz } + Hungarian @Yield { {@Char aacute}ll{@Char iacute}t{@Char aacute}s } + Italian @Yield { Proposizione } + Norwegian @Yield { ?? } + Polish @Yield { Za{@Char lslash}o{@Char zdotabove}enie } + Portuguese @Yield { Proposi{@Char ccedilla}{@Char atilde}o } + Russian @Yield { "\360\322\305\304\314\317\326\305\316\311\305" } + Slovenian @Yield { Predpostavka } + Spanish @Yield { ?? } + Swedish @Yield { ?? } + } +} + +{ corollary @Word @CurrLang @Case { + Czech @Yield { D{@Char uring}sledek } + Danish @Yield { Korollar } + Dutch @Yield { ?? } + English @Yield { Corollary } + EnglishUK @Yield { Corollary } + Finnish @Yield { ?? } + French @Yield { Corollaire } + German @Yield { Korollar } + Hungarian @Yield { ?? } + Italian @Yield { Corollario } + Norwegian @Yield { ?? } + Polish @Yield { Wniosek } + Portuguese @Yield { Corol{@Char aacute}rio } + Russian @Yield { "\363\314\305\304\323\324\327\311\305" } + Slovenian @Yield { Sklep } + Spanish @Yield { ?? } + Swedish @Yield { ?? } + } +} + +{ example @Word @CurrLang @Case { + Czech @Yield { P{@Char rcaron}{@Char iacute}klad } + Danish @Yield { Eksempel } + Dutch @Yield { ?? } + English @Yield { Example } + EnglishUK @Yield { Example } + Finnish @Yield { ?? } + French @Yield { Exemple } + German @Yield { Beispiel } + Hungarian @Yield { p{@Char eacute}lda } + Italian @Yield { Esempio } + Norwegian @Yield { ?? } + Polish @Yield { Przyk{@Char lslash}ad } + Portuguese @Yield { Exemplo } + Russian @Yield { "\360\322\311\315\305\322" } + Slovenian @Yield { Primer } + Spanish @Yield { ?? } + Swedish @Yield { ?? } + } +} + +{ claim @Word @CurrLang @Case { + Czech @Yield { Tvrzen{@Char iacute} } + Danish @Yield { P{@Char aa}stand } + Dutch @Yield { ?? } + English @Yield { Claim } + EnglishUK @Yield { Claim } + Finnish @Yield { ?? } + French @Yield { Affirmation } + German @Yield { Behauptung } + Hungarian @Yield { kijelent{@Char eacute}s } + Italian @Yield { Affermazione } + Norwegian @Yield { ?? } + Polish @Yield { Stwierdzenie } + Portuguese @Yield { Crédito } + Russian @Yield { "\365\324\327\305\322\326\304\305\316\311\305" } + Slovenian @Yield { Trditev } + Spanish @Yield { ?? } + Swedish @Yield { ?? } + } +} + +{ proof @Word @CurrLang @Case { + Czech @Yield { D{@Char uring}kaz } + Danish @Yield { Bevis } + Dutch @Yield { ?? } + English @Yield { Proof } + EnglishUK @Yield { Proof } + Finnish @Yield { ?? } + French @Yield { Preuve } + German @Yield { Beweis } + Hungarian @Yield { Bizony{@Char iacute}t{@Char aacute}s } + Italian @Yield { Dimostrazione } + Norwegian @Yield { ?? } + Polish @Yield { Dow{@Char oacute}d } + Portuguese @Yield { Prova } + Russian @Yield { "\344\317\313\301\332\301\324\305\314\330\323\324\327\317" } + Slovenian @Yield { Dokaz } + Spanish @Yield { ?? } + Swedish @Yield { ?? } + } +} + +{ abstract @Word @CurrLang @Case { + Czech @Yield { Abstrakt } + Danish @Yield { Synopsis } + Dutch @Yield { Samenvatting } + English @Yield { Abstract } + EnglishUK @Yield { Abstract } + Finnish @Yield { Yleiskatsaus } + French @Yield { R{@Char eacute}sum{@Char eacute} } + German @Yield { Zusammenfassung } + Hungarian @Yield { Kivonat } + Italian @Yield { Riassunto } + Norwegian @Yield { Sammendrag } + Polish @Yield { Abstrakt } + Portuguese @Yield { Resumo } + Russian @Yield { "\341\302\323\324\322\301\313\324" } #correct! + Slovenian @Yield { Povzetek } + Spanish @Yield { Sinopsis } + Swedish @Yield { {@Char Odieresis}versikt } + } +} + +{ preface @Word @CurrLang @Case { + Czech @Yield { P{@Char rcaron}edmluva } + Danish @Yield { Forord } + Dutch @Yield { Voorwoord } # or { Woord vooraf } + English @Yield { Preface } + EnglishUK @Yield { Preface } + Finnish @Yield { Esipuhe } + French @Yield { Pr{@Char eacute}face } + German @Yield { Vorwort } + Hungarian @Yield { El{@Char odblacute}sz{@Char oacute} } + Italian @Yield { Prefazione } + Norwegian @Yield { Forord } + Polish @Yield { Przedmowa } + Portuguese @Yield { Pref{@Char aacute}cio } + Russian @Yield { "\360\322\305\304\311\323\314\317\327\311\305" } + Slovenian @Yield { Predgovor } + Spanish @Yield { Prefacio } + Swedish @Yield { F{@Char odieresis}rord } + } +} + +{ abbreviations @Word @CurrLang @Case { + Czech @Yield { Zkratky } + Danish @Yield { ?? } + Dutch @Yield { ?? } + English @Yield { Abbreviations } + EnglishUK @Yield { Abbreviations } + Finnish @Yield { ?? } + French @Yield { ?? } + German @Yield { ?? } + Hungarian @Yield { ?? } + Italian @Yield { ?? } + Norwegian @Yield { ?? } + Polish @Yield { ?? } + Portuguese @Yield { Abrevia{@Char ccedilla}{@Char otilde}es } + Russian @Yield { ?? } + Slovenian @Yield { ?? } + Spanish @Yield { ?? } + Swedish @Yield { ?? } + } +} + +{ introduction @Word @CurrLang @Case { + Czech @Yield { {@Char Uacute}vod } + Danish @Yield { Indledning } + Dutch @Yield { Inleiding } + English @Yield { Introduction } + EnglishUK @Yield { Introduction } + Finnish @Yield { Johdanto } + French @Yield { Introduction } + German @Yield { Einleitung } + Hungarian @Yield { Bevezet{@Char eacute}s } + Italian @Yield { Introduzione } + Norwegian @Yield { Innledning } + Polish @Yield { Wst{@Char eogonek}p } + Portuguese @Yield { Introdu{@Char ccedilla}{@Char atilde}o } + Russian @Yield { "\367\327\305\304\305\316\311\305" } + Slovenian @Yield { Uvod } + Spanish @Yield { Introducci{@Char oacute}n } + Swedish @Yield { Inledning } + } +} + +{ chapter @Word @CurrLang @Case { + Czech @Yield { Kapitola } + Danish @Yield { Kapitel } + Dutch @Yield { Hoofdstuk } + English @Yield { Chapter } + EnglishUK @Yield { Chapter } + Finnish @Yield { Luku } + French @Yield { Chapitre } + German @Yield { Kapitel } + Hungarian @Yield { fejezet } + Italian @Yield { Capitolo } + Norwegian @Yield { Kapittel } + Polish @Yield { Rozdzia{@Char lslash} } + Portuguese @Yield { Cap{@Char iacute}tolo } + Russian @Yield { "\347\314\301\327\301" } + Slovenian @Yield { Poglavje } + Spanish @Yield { Cap{@Char iacute}tulo } + Swedish @Yield { Kapitel } + } +} + +{ appendix @Word @CurrLang @Case { + Czech @Yield { P{@Char rcaron}{@Char iacute}loha } + Danish @Yield { Appendiks } + Dutch @Yield { Appendix } + English @Yield { Appendix } + EnglishUK @Yield { Appendix } + Finnish @Yield { Liite } + French @Yield { Annexe } + German @Yield { Anhang } + Hungarian @Yield { f{@Char udieresis}ggel{@Char eacute}k } + Italian @Yield { Appendice } + Norwegian @Yield { Tillegg } + Polish @Yield { Dodatek } + Portuguese @Yield { Apêndice } + Russian @Yield { "\360\322\311\314\317\326\305\316\311\305" } + Slovenian @Yield { Dodatek } + Spanish @Yield { Ap{@Char eacute}ndice } + Swedish @Yield { Appendix } + } +} + +{ lecture @Word @CurrLang @Case { + Czech @Yield { P{@Char rcaron}edn{@Char aacute}{@Char scaron}ka } + Danish @Yield { Lecture } + Dutch @Yield { Lecture } + English @Yield { Lecture } + EnglishUK @Yield { Lecture } + Finnish @Yield { Lecture } + French @Yield { Lecture } + German @Yield { Lecture } + Hungarian @Yield { Lecture } + Italian @Yield { Lecture } + Norwegian @Yield { Lecture } + Polish @Yield { Lecture } + Portuguese @Yield { Conferência } + Russian @Yield { Lecture } + Slovenian @Yield { Lecture } + Spanish @Yield { Lecture } + Swedish @Yield { Lecture } + } +} + +{ index @Word @CurrLang @Case { + Czech @Yield { Rejst{@Char rcaron}{@Char iacute}k } + Danish @Yield { Indeks } + Dutch @Yield { Index } + English @Yield { Index } + EnglishUK @Yield { Index } + Finnish @Yield { Hakemisto } + French @Yield { Index } + German @Yield { Index } + Hungarian @Yield { Index } + Italian @Yield { Indice } + Norwegian @Yield { Register } + Polish @Yield { Skorowidz } + Portuguese @Yield { {@Char Iacute}ndice Remissivo } + Russian @Yield { "\351\316\304\305\313\323" } + Slovenian @Yield { Indeks } + Spanish @Yield { Indice } + Swedish @Yield { Index } + } +} + +{ notitle @Word @CurrLang @Case { + Czech @Yield { Bez n{@Char aacute}zvu } + Danish @Yield { Ingen titel } + Dutch @Yield { Zonder titel } + English @Yield { No title } + EnglishUK @Yield { No title } + Finnish @Yield { Ei nime{@Char adieresis} } + French @Yield { Sans titre } + German @Yield { Ohne Titel } + Hungarian @Yield { C{@Char iacute}m n{@Char eacute}lk{@Char udieresis}l } + Polish @Yield { Bez tytu{@Char lslash}u } + Portuguese @Yield { Sem t{@Char iacute}tulo } + Italian @Yield { Senza titolo } + Norwegian @Yield { Utel tittel } + Russian @Yield { "\342\305\332 \316\301\332\327\301\316\311\321" } + Slovenian @Yield { Brez naslova } + Spanish @Yield { Sin t{@Char iacute}tulo } + Swedish @Yield { Ingen titel } + } +} + +{ pages @Word @CurrLang @Case { + Czech @Yield { stranky } + Danish @Yield { sider } + Dutch @Yield { pagina's } # or {bladzijden}, {pag.}, {blz.} + English @Yield { pages } + EnglishUK @Yield { pages } + Finnish @Yield { sivut } + French @Yield { pages } + German @Yield { Seiten } + Hungarian @Yield { oldal } + Italian @Yield { pagine } + Norwegian @Yield { sider } + Polish @Yield { strony } + Portuguese @Yield { p{@Char aacute}ginas } + Russian @Yield { "\323\324\322\301\316\311\303\331" } + Slovenian @Yield { strani } + Spanish @Yield { p{@Char aacute}ginas } + Swedish @Yield { sidor } + } +} + +{ page @Word @CurrLang @Case { + Czech @Yield { strana } + Danish @Yield { side } + Dutch @Yield { pagina } # or {bladzijde}, {pag.}, {blz.} + English @Yield { page } + EnglishUK @Yield { page } + Finnish @Yield { sivu } + French @Yield { page } + German @Yield { Seite } + Hungarian @Yield { oldal } + Italian @Yield { pagina } + Norwegian @Yield { side } + Polish @Yield { strona } + Portuguese @Yield { p{@Char aacute}gina } + Russian @Yield { "\323\324\322\301\316\311\303\301" } + Slovenian @Yield { stran } + Spanish @Yield { p{@Char aacute}gina } + Swedish @Yield { sida } + } +} + +{ nopublisher @Word @CurrLang @Case { + Czech @Yield { Vydavatel neuveden } + Danish @Yield { Intet forlag } + Dutch @Yield { Ongepubliceerd } # or {Zonder uitgever} + English @Yield { No publisher } + EnglishUK @Yield { No publisher } + Finnish @Yield { Ei kustantamo } + French @Yield { Sans {@Char eacute}diteur } + German @Yield { Ohne Verleger } + Hungarian @Yield { Kiad{@Char oacute} n{@Char eacute}lk{@Char udieresis}l } + Italian @Yield { Senza editore } + Norwegian @Yield { Upublisert } + Polish @Yield { Bez wydawcy } + Portuguese @Yield { Sem editora } + Russian @Yield { "\302\305\332 \311\332\304\301\324\305\314\321" } + Slovenian @Yield { Brez zalo{@Char zcaron}nika } + Spanish @Yield { Sin editor } + Swedish @Yield { Inget f{@Char odieresis}rlag } + } +} + +{ techrep @Word @CurrLang @Case { + Czech @Yield { Technick{@Char aacute} zpr{@Char aacute}va } + Danish @Yield { Teknisk rapport } + Dutch @Yield { Technisch rapport } + English @Yield { Tech. Rep. } + EnglishUK @Yield { Tech. Rep. } + Finnish @Yield { Tekn. rap. } + French @Yield { Rapport technique } + German @Yield { Techn. Ber. } + Hungarian @Yield { Techn. jel. } + Italian @Yield { Rapporto tecnico } + Norwegian @Yield { Tekn. Rapp. } + Russian @Yield { "\324\305\310. \304\317\313\314\301\304" } + Polish @Yield { Sprawozdanie techniczne } + Portuguese @Yield { Relat{@Char oacute}rio t{@Char eacute}cnico } + Slovenian @Yield { Tehn. por. } + Spanish @Yield { ?? } + Swedish @Yield { Tekn. rap. } + } +} + +{ phdthesis @Word @CurrLang @Case { + Czech @Yield { Doktorsk{@Char aacute} disertace } + Danish @Yield { Ph.D.-afhandling } + Dutch @Yield { Proefschrift } # or {Dissertatie} + English @Yield { Ph.D. thesis } + EnglishUK @Yield { Ph.D. thesis } + Finnish @Yield { tohtorinv{@Char adieresis}it{@Char odieresis}skirja } + French @Yield { Th{@Char egrave}se de Doctorat } + German @Yield { Doktorarbeit } + Hungarian @Yield { Doktori disszert{@Char aacute}ci{@Char oacute} } + Italian @Yield { Tesi di dottorato } + Norwegian @Yield { Doktorgradsavhandling } + Polish @Yield { Praca doktorska } + Portuguese @Yield { Tese de doutoramento } + Russian @Yield { "\313\301\316\304\311\304\301\324\323\313\301\321" +"\304\311\323\323\305\322\324\301\303\311\321" } + Slovenian @Yield { Doktorska disertacija } + Spanish @Yield { Tesis Doctoral } + Swedish @Yield { doktorsavhandling } + } +} + +{ mastersthesis @Word @CurrLang @Case { + Czech @Yield { Diplomov{@Char aacute} pr{@Char aacute}ce } + Danish @Yield { Specialeafhandling } + Dutch @Yield { Doctoraalscriptie } + English @Yield { Master's thesis } + EnglishUK @Yield { Master's thesis } + Finnish @Yield { diplomity{@Char odieresis} } + French @Yield { M{@Char eacute}moire de Ma{@Char icircumflex}trise } + German @Yield { Magisterarbeit } + Hungarian @Yield { Diplomamunka } + Italian @Yield { Tesi di laurea } + Norwegian @Yield { Diplomoppgave } + Polish @Yield { Praca magisterska } + Portuguese @Yield { Disserta{@Char ccedilla}{@Char atilde}o de mestrado } + Russian @Yield { "\304\311\320\314\317\315\316\301\321" +"\322\301\302\317\324\301" } + Slovenian @Yield { Diploma } + Spanish @Yield { ?? } + Swedish @Yield { diplomarbete } + } +} + +{ in @Word @CurrLang @Case { + Czech @Yield { In } + Danish @Yield { I } + Dutch @Yield { In } + English @Yield { In } + EnglishUK @Yield { In } + Finnish @Yield { teoksessa } + French @Yield { dans } + German @Yield { In } + Hungarian @Yield { ?? } + Italian @Yield { In } + Norwegian @Yield { I } + Polish @Yield { W } + Portuguese @Yield { Em } + Russian @Yield { "\327" } + Slovenian @Yield { V } + Spanish @Yield { En } + Swedish @Yield { I } + } +} + +{ continued @Word @CurrLang @Case { + Czech @Yield { pokra{@Char ccaron}ov{@Char aacute}n{@Char iacute} } + Danish @Yield { ?? } + Dutch @Yield { ?? } + English @Yield { ctd. } + EnglishUK @Yield { ctd. } + Finnish @Yield { ?? } + French @Yield { suite } + German @Yield { Fortsetzung } + Hungarian @Yield { folyt. } + Italian @Yield { cont. } + Norwegian @Yield { ?? } + Polish @Yield { ?? } + Portuguese @Yield { cont. } + Russian @Yield { ?? } + Slovenian @Yield { ?? } + Spanish @Yield { ?? } + Swedish @Yield { ?? } + } +} + +{ am @Word @CurrLang @Case { + Czech @Yield { a.m. } + Danish @Yield { a.m. } + Dutch @Yield { a.m. } + English @Yield { a.m. } + EnglishUK @Yield { a.m. } + Finnish @Yield { a.m. } + French @Yield { a.m. } + German @Yield { a.m. } + Hungarian @Yield { de. } + Italian @Yield { a.m. } + Norwegian @Yield { a.m. } + Polish @Yield { a.m. } + Portuguese @Yield { a.m. } + Russian @Yield { a.m. } + Slovenian @Yield { a.m. } + Spanish @Yield { a.m. } + Swedish @Yield { a.m. } + } +} + +{ pm @Word @CurrLang @Case { + Czech @Yield { p.m. } + Danish @Yield { p.m. } + Dutch @Yield { p.m. } + English @Yield { p.m. } + EnglishUK @Yield { p.m. } + Finnish @Yield { p.m. } + French @Yield { p.m. } + German @Yield { p.m. } + Hungarian @Yield { du. } + Italian @Yield { p.m. } + Norwegian @Yield { p.m. } + Polish @Yield { p.m. } + Portuguese @Yield { p.m. } + Russian @Yield { p.m. } + Slovenian @Yield { p.m. } + Spanish @Yield { p.m. } + Swedish @Yield { p.m. } + } +} + +{ shortam @Word @CurrLang @Case { + Czech @Yield { am } + Danish @Yield { am } + Dutch @Yield { am } + English @Yield { am } + EnglishUK @Yield { am } + Finnish @Yield { am } + French @Yield { am } + German @Yield { am } + Hungarian @Yield { de } + Italian @Yield { am } + Norwegian @Yield { am } + Polish @Yield { am } + Portuguese @Yield { am } + Russian @Yield { am } + Slovenian @Yield { am } + Spanish @Yield { am } + Swedish @Yield { am } + } +} + +{ shortpm @Word @CurrLang @Case { + Czech @Yield { pm } + Danish @Yield { pm } + Dutch @Yield { pm } + English @Yield { pm } + EnglishUK @Yield { pm } + Finnish @Yield { pm } + French @Yield { pm } + German @Yield { pm } + Hungarian @Yield { du } + Italian @Yield { pm } + Norwegian @Yield { pm } + Polish @Yield { pm } + Portuguese @Yield { pm } + Russian @Yield { pm } + Slovenian @Yield { pm } + Spanish @Yield { pm } + Swedish @Yield { pm } + } +} + + +{ ?? @Roman ?? } +{ 1 @Roman i } +{ 2 @Roman ii } +{ 3 @Roman iii } +{ 4 @Roman iv } +{ 5 @Roman v } +{ 6 @Roman vi } +{ 7 @Roman vii } +{ 8 @Roman viii } +{ 9 @Roman ix } +{ 10 @Roman x } +{ 11 @Roman xi } +{ 12 @Roman xii } +{ 13 @Roman xiii } +{ 14 @Roman xiv } +{ 15 @Roman xv } +{ 16 @Roman xvi } +{ 17 @Roman xvii } +{ 18 @Roman xviii } +{ 19 @Roman xix } +{ 20 @Roman xx } +{ 21 @Roman xxi } +{ 22 @Roman xxii } +{ 23 @Roman xxiii } +{ 24 @Roman xxiv } +{ 25 @Roman xxv } +{ 26 @Roman xxvi } +{ 27 @Roman xxvii } +{ 28 @Roman xxviii } +{ 29 @Roman xxix } +{ 30 @Roman xxx } +{ 31 @Roman xxxi } +{ 32 @Roman xxxii } +{ 33 @Roman xxxiii } +{ 34 @Roman xxxiv } +{ 35 @Roman xxxv } +{ 36 @Roman xxxvi } +{ 37 @Roman xxxvii } +{ 38 @Roman xxxviii } +{ 39 @Roman xxxix } +{ 40 @Roman xl } +{ 41 @Roman xli } +{ 42 @Roman xlii } +{ 43 @Roman xliii } +{ 44 @Roman xliv } +{ 45 @Roman xlv } +{ 46 @Roman xlvi } +{ 47 @Roman xlvii } +{ 48 @Roman xlviii } +{ 49 @Roman xlix } +{ 50 @Roman l } +{ 51 @Roman li } +{ 52 @Roman lii } +{ 53 @Roman liii } +{ 54 @Roman liv } +{ 55 @Roman lv } +{ 56 @Roman lvi } +{ 57 @Roman lvii } +{ 58 @Roman lviii } +{ 59 @Roman lix } +{ 60 @Roman lx } +{ 61 @Roman lxi } +{ 62 @Roman lxii } +{ 63 @Roman lxiii } +{ 64 @Roman lxiv } +{ 65 @Roman lxv } +{ 66 @Roman lxvi } +{ 67 @Roman lxvii } +{ 68 @Roman lxviii } +{ 69 @Roman lxix } +{ 70 @Roman lxx } +{ 71 @Roman lxxi } +{ 72 @Roman lxxii } +{ 73 @Roman lxxiii } +{ 74 @Roman lxxiv } +{ 75 @Roman lxxv } +{ 76 @Roman lxxvi } +{ 77 @Roman lxxvii } +{ 78 @Roman lxxviii } +{ 79 @Roman lxxix } +{ 80 @Roman lxxx } +{ 81 @Roman lxxxi } +{ 82 @Roman lxxxii } +{ 83 @Roman lxxxiii } +{ 84 @Roman lxxxiv } +{ 85 @Roman lxxxv } +{ 86 @Roman lxxxvi } +{ 87 @Roman lxxxvii } +{ 88 @Roman lxxxviii } +{ 89 @Roman lxxxix } +{ 90 @Roman xc } +{ 91 @Roman xci } +{ 92 @Roman xcii } +{ 93 @Roman xciii } +{ 94 @Roman xciv } +{ 95 @Roman xcv } +{ 96 @Roman xcvi } +{ 97 @Roman xcvii } +{ 98 @Roman xcviii } +{ 99 @Roman xcix } +{ 100 @Roman cc } +{ 101 @Roman ci } +{ 102 @Roman cii } +{ 103 @Roman ciii } +{ 104 @Roman civ } +{ 105 @Roman cv } +{ 106 @Roman cvi } +{ 107 @Roman cvii } +{ 108 @Roman cviii } +{ 109 @Roman cix } +{ 110 @Roman cx } +{ 111 @Roman cxi } +{ 112 @Roman cxii } +{ 113 @Roman cxiii } +{ 114 @Roman cxiv } +{ 115 @Roman cxv } +{ 116 @Roman cxvi } +{ 117 @Roman cxvii } +{ 118 @Roman cxviii } +{ 119 @Roman cxix } +{ 120 @Roman cxx } +{ 121 @Roman cxxi } +{ 122 @Roman cxxii } +{ 123 @Roman cxxiii } +{ 124 @Roman cxxiv } +{ 125 @Roman cxxv } +{ 126 @Roman cxxvi } +{ 127 @Roman cxxvii } +{ 128 @Roman cxxviii } +{ 129 @Roman cxxix } +{ 130 @Roman cxxx } +{ 131 @Roman cxxxi } +{ 132 @Roman cxxxii } +{ 133 @Roman cxxxiii } +{ 134 @Roman cxxxiv } +{ 135 @Roman cxxxv } +{ 136 @Roman cxxxvi } +{ 137 @Roman cxxxvii } +{ 138 @Roman cxxxviii } +{ 139 @Roman cxxxix } +{ 140 @Roman cxl } +{ 141 @Roman cxli } +{ 142 @Roman cxlii } +{ 143 @Roman cxliii } +{ 144 @Roman cxliv } +{ 145 @Roman cxlv } +{ 146 @Roman cxlvi } +{ 147 @Roman cxlvii } +{ 148 @Roman cxlviii } +{ 149 @Roman cxlix } +{ 150 @Roman cl } +{ 151 @Roman cli } +{ 152 @Roman clii } +{ 153 @Roman cliii } +{ 154 @Roman cliv } +{ 155 @Roman clv } +{ 156 @Roman clvi } +{ 157 @Roman clvii } +{ 158 @Roman clviii } +{ 159 @Roman clix } +{ 160 @Roman clx } +{ 161 @Roman clxi } +{ 162 @Roman clxii } +{ 163 @Roman clxiii } +{ 164 @Roman clxiv } +{ 165 @Roman clxv } +{ 166 @Roman clxvi } +{ 167 @Roman clxvii } +{ 168 @Roman clxviii } +{ 169 @Roman clxix } +{ 170 @Roman clxx } +{ 171 @Roman clxxi } +{ 172 @Roman clxxii } +{ 173 @Roman clxxiii } +{ 174 @Roman clxxiv } +{ 175 @Roman clxxv } +{ 176 @Roman clxxvi } +{ 177 @Roman clxxvii } +{ 178 @Roman clxxviii } +{ 179 @Roman clxxix } +{ 180 @Roman clxxx } +{ 181 @Roman clxxxi } +{ 182 @Roman clxxxii } +{ 183 @Roman clxxxiii } +{ 184 @Roman clxxxiv } +{ 185 @Roman clxxxv } +{ 186 @Roman clxxxvi } +{ 187 @Roman clxxxvii } +{ 188 @Roman clxxxviii } +{ 189 @Roman clxxxix } +{ 190 @Roman cxc } +{ 191 @Roman cxci } +{ 192 @Roman cxcii } +{ 193 @Roman cxciii } +{ 194 @Roman cxciv } +{ 195 @Roman cxcv } +{ 196 @Roman cxcvi } +{ 197 @Roman cxcvii } +{ 198 @Roman cxcviii } +{ 199 @Roman cxcix } +{ 200 @Roman cc } + +{ ?? @UCRoman ?? } +{ 1 @UCRoman I } +{ 2 @UCRoman II } +{ 3 @UCRoman III } +{ 4 @UCRoman IV } +{ 5 @UCRoman V } +{ 6 @UCRoman VI } +{ 7 @UCRoman VII } +{ 8 @UCRoman VIII } +{ 9 @UCRoman IX } +{ 10 @UCRoman X } +{ 11 @UCRoman XI } +{ 12 @UCRoman XII } +{ 13 @UCRoman XIII } +{ 14 @UCRoman XIV } +{ 15 @UCRoman XV } +{ 16 @UCRoman XVI } +{ 17 @UCRoman XVII } +{ 18 @UCRoman XVIII } +{ 19 @UCRoman XIX } +{ 20 @UCRoman XX } +{ 21 @UCRoman XXI } +{ 22 @UCRoman XXII } +{ 23 @UCRoman XXIII } +{ 24 @UCRoman XXIV } +{ 25 @UCRoman XXV } +{ 26 @UCRoman XXVI } +{ 27 @UCRoman XXVII } +{ 28 @UCRoman XXVIII } +{ 29 @UCRoman XXIX } +{ 30 @UCRoman XXX } +{ 31 @UCRoman XXXI } +{ 32 @UCRoman XXXII } +{ 33 @UCRoman XXXIII } +{ 34 @UCRoman XXXIV } +{ 35 @UCRoman XXXV } +{ 36 @UCRoman XXXVI } +{ 37 @UCRoman XXXVII } +{ 38 @UCRoman XXXVIII } +{ 39 @UCRoman XXXIX } +{ 40 @UCRoman XL } +{ 41 @UCRoman XLI } +{ 42 @UCRoman XLII } +{ 43 @UCRoman XLIII } +{ 44 @UCRoman XLIV } +{ 45 @UCRoman XLV } +{ 46 @UCRoman XLVI } +{ 47 @UCRoman XLVII } +{ 48 @UCRoman XLVIII } +{ 49 @UCRoman XLIX } +{ 50 @UCRoman L } +{ 51 @UCRoman LI } +{ 52 @UCRoman LII } +{ 53 @UCRoman LIII } +{ 54 @UCRoman LIV } +{ 55 @UCRoman LV } +{ 56 @UCRoman LVI } +{ 57 @UCRoman LVII } +{ 58 @UCRoman LVIII } +{ 59 @UCRoman LIX } +{ 60 @UCRoman LX } +{ 61 @UCRoman LXI } +{ 62 @UCRoman LXII } +{ 63 @UCRoman LXIII } +{ 64 @UCRoman LXIV } +{ 65 @UCRoman LXV } +{ 66 @UCRoman LXVI } +{ 67 @UCRoman LXVII } +{ 68 @UCRoman LXVIII } +{ 69 @UCRoman LXIX } +{ 70 @UCRoman LXX } +{ 71 @UCRoman LXXI } +{ 72 @UCRoman LXXII } +{ 73 @UCRoman LXXIII } +{ 74 @UCRoman LXXIV } +{ 75 @UCRoman LXXV } +{ 76 @UCRoman LXXVI } +{ 77 @UCRoman LXXVII } +{ 78 @UCRoman LXXVIII } +{ 79 @UCRoman LXXIX } +{ 80 @UCRoman LXXX } +{ 81 @UCRoman LXXXI } +{ 82 @UCRoman LXXXII } +{ 83 @UCRoman LXXXIII } +{ 84 @UCRoman LXXXIV } +{ 85 @UCRoman LXXXV } +{ 86 @UCRoman LXXXVI } +{ 87 @UCRoman LXXXVII } +{ 88 @UCRoman LXXXVIII } +{ 89 @UCRoman LXXXIX } +{ 90 @UCRoman XC } +{ 91 @UCRoman XCI } +{ 92 @UCRoman XCII } +{ 93 @UCRoman XCIII } +{ 94 @UCRoman XCIV } +{ 95 @UCRoman XCV } +{ 96 @UCRoman XCVI } +{ 97 @UCRoman XCVII } +{ 98 @UCRoman XCVIII } +{ 99 @UCRoman XCIX } +{ 100 @UCRoman CC } +{ 101 @UCRoman CI } +{ 102 @UCRoman CII } +{ 103 @UCRoman CIII } +{ 104 @UCRoman CIV } +{ 105 @UCRoman CV } +{ 106 @UCRoman CVI } +{ 107 @UCRoman CVII } +{ 108 @UCRoman CVIII } +{ 109 @UCRoman CIX } +{ 110 @UCRoman CX } +{ 111 @UCRoman CXI } +{ 112 @UCRoman CXII } +{ 113 @UCRoman CXIII } +{ 114 @UCRoman CXIV } +{ 115 @UCRoman CXV } +{ 116 @UCRoman CXVI } +{ 117 @UCRoman CXVII } +{ 118 @UCRoman CXVIII } +{ 119 @UCRoman CXIX } +{ 120 @UCRoman CXX } +{ 121 @UCRoman CXXI } +{ 122 @UCRoman CXXII } +{ 123 @UCRoman CXXIII } +{ 124 @UCRoman CXXIV } +{ 125 @UCRoman CXXV } +{ 126 @UCRoman CXXVI } +{ 127 @UCRoman CXXVII } +{ 128 @UCRoman CXXVIII } +{ 129 @UCRoman CXXIX } +{ 130 @UCRoman CXXX } +{ 131 @UCRoman CXXXI } +{ 132 @UCRoman CXXXII } +{ 133 @UCRoman CXXXIII } +{ 134 @UCRoman CXXXIV } +{ 135 @UCRoman CXXXV } +{ 136 @UCRoman CXXXVI } +{ 137 @UCRoman CXXXVII } +{ 138 @UCRoman CXXXVIII } +{ 139 @UCRoman CXXXIX } +{ 140 @UCRoman CXL } +{ 141 @UCRoman CXLI } +{ 142 @UCRoman CXLII } +{ 143 @UCRoman CXLIII } +{ 144 @UCRoman CXLIV } +{ 145 @UCRoman CXLV } +{ 146 @UCRoman CXLVI } +{ 147 @UCRoman CXLVII } +{ 148 @UCRoman CXLVIII } +{ 149 @UCRoman CXLIX } +{ 150 @UCRoman CL } +{ 151 @UCRoman CLI } +{ 152 @UCRoman CLII } +{ 153 @UCRoman CLIII } +{ 154 @UCRoman CLIV } +{ 155 @UCRoman CLV } +{ 156 @UCRoman CLVI } +{ 157 @UCRoman CLVII } +{ 158 @UCRoman CLVIII } +{ 159 @UCRoman CLIX } +{ 160 @UCRoman CLX } +{ 161 @UCRoman CLXI } +{ 162 @UCRoman CLXII } +{ 163 @UCRoman CLXIII } +{ 164 @UCRoman CLXIV } +{ 165 @UCRoman CLXV } +{ 166 @UCRoman CLXVI } +{ 167 @UCRoman CLXVII } +{ 168 @UCRoman CLXVIII } +{ 169 @UCRoman CLXIX } +{ 170 @UCRoman CLXX } +{ 171 @UCRoman CLXXI } +{ 172 @UCRoman CLXXII } +{ 173 @UCRoman CLXXIII } +{ 174 @UCRoman CLXXIV } +{ 175 @UCRoman CLXXV } +{ 176 @UCRoman CLXXVI } +{ 177 @UCRoman CLXXVII } +{ 178 @UCRoman CLXXVIII } +{ 179 @UCRoman CLXXIX } +{ 180 @UCRoman CLXXX } +{ 181 @UCRoman CLXXXI } +{ 182 @UCRoman CLXXXII } +{ 183 @UCRoman CLXXXIII } +{ 184 @UCRoman CLXXXIV } +{ 185 @UCRoman CLXXXV } +{ 186 @UCRoman CLXXXVI } +{ 187 @UCRoman CLXXXVII } +{ 188 @UCRoman CLXXXVIII} +{ 189 @UCRoman CLXXXIX } +{ 190 @UCRoman CXC } +{ 191 @UCRoman CXCI } +{ 192 @UCRoman CXCII } +{ 193 @UCRoman CXCIII } +{ 194 @UCRoman CXCIV } +{ 195 @UCRoman CXCV } +{ 196 @UCRoman CXCVI } +{ 197 @UCRoman CXCVII } +{ 198 @UCRoman CXCVIII } +{ 199 @UCRoman CXCIX } +{ 200 @UCRoman CC } + + +{ ?? @Alpha ?? } +{ 1 @Alpha a } +{ 2 @Alpha b } +{ 3 @Alpha c } +{ 4 @Alpha d } +{ 5 @Alpha e } +{ 6 @Alpha f } +{ 7 @Alpha g } +{ 8 @Alpha h } +{ 9 @Alpha i } +{ 10 @Alpha j } +{ 11 @Alpha k } +{ 12 @Alpha l } +{ 13 @Alpha m } +{ 14 @Alpha n } +{ 15 @Alpha o } +{ 16 @Alpha p } +{ 17 @Alpha q } +{ 18 @Alpha r } +{ 19 @Alpha s } +{ 20 @Alpha t } +{ 21 @Alpha u } +{ 22 @Alpha v } +{ 23 @Alpha w } +{ 24 @Alpha x } +{ 25 @Alpha y } +{ 26 @Alpha z } + +{ 27 @Alpha @CurrLang @Case { + Czech @Yield { ?? } + Danish @Yield { @Char ae } + English @Yield { ?? } + EnglishUK @Yield { ?? } + Dutch @Yield { ?? } + Finnish @Yield { @Char aring } + French @Yield { @Char ae } + German @Yield { ?? } + Hungarian @Yield { ?? } + Italian @Yield { @Char ae } + Norwegian @Yield { @Char ae } + Polish @Yield { ?? } + Portuguese @Yield { ?? } + Russian @Yield { ?? } + Slovenian @Yield { ?? } + Spanish @Yield { ?? } + Swedish @Yield { @Char aring } +} } + +{ 28 @Alpha @CurrLang @Case { + Czech @Yield { ?? } + Danish @Yield { @Char oslash } + Dutch @Yield { ?? } + English @Yield { ?? } + EnglishUK @Yield { ?? } + Finnish @Yield { @Char adieresis } + French @Yield { ?? } + German @Yield { ?? } + Hungarian @Yield { ?? } + Italian @Yield { ?? } + Norwegian @Yield { @Char oslash } + Polish @Yield { ?? } + Portuguese @Yield { ?? } + Russian @Yield { ?? } + Slovenian @Yield { ?? } + Spanish @Yield { ?? } + Swedish @Yield { @Char adieresis } +} } + +{ 29 @Alpha @CurrLang @Case { + Czech @Yield { ?? } + Danish @Yield { @Char aring } + Dutch @Yield { ?? } + English @Yield { ?? } + EnglishUK @Yield { ?? } + Finnish @Yield { @Char odieresis } + French @Yield { ?? } + German @Yield { ?? } + Hungarian @Yield { ?? } + Italian @Yield { ?? } + Norwegian @Yield { @Char aring } + Polish @Yield { ?? } + Portuguese @Yield { ?? } + Russian @Yield { ?? } + Slovenian @Yield { ?? } + Spanish @Yield { ?? } + Swedish @Yield { @Char odieresis } +} } + +{ ?? @UCAlpha ?? } +{ 1 @UCAlpha A } +{ 2 @UCAlpha B } +{ 3 @UCAlpha C } +{ 4 @UCAlpha D } +{ 5 @UCAlpha E } +{ 6 @UCAlpha F } +{ 7 @UCAlpha G } +{ 8 @UCAlpha H } +{ 9 @UCAlpha I } +{ 10 @UCAlpha J } +{ 11 @UCAlpha K } +{ 12 @UCAlpha L } +{ 13 @UCAlpha M } +{ 14 @UCAlpha N } +{ 15 @UCAlpha O } +{ 16 @UCAlpha P } +{ 17 @UCAlpha Q } +{ 18 @UCAlpha R } +{ 19 @UCAlpha S } +{ 20 @UCAlpha T } +{ 21 @UCAlpha U } +{ 22 @UCAlpha V } +{ 23 @UCAlpha W } +{ 24 @UCAlpha X } +{ 25 @UCAlpha Y } +{ 26 @UCAlpha Z } + +{ 27 @UCAlpha @CurrLang @Case { + Czech @Yield { ?? } + Danish @Yield { @Char AE } + Dutch @Yield { ?? } + English @Yield { ?? } + EnglishUK @Yield { ?? } + Finnish @Yield { @Char Aring } + French @Yield { @Char AE } + German @Yield { ?? } + Hungarian @Yield { ?? } + Italian @Yield { @Char AE } + Norwegian @Yield { @Char AE } + Polish @Yield { ?? } + Portuguese @Yield { ?? } + Russian @Yield { ?? } + Slovenian @Yield { ?? } + Spanish @Yield { ?? } + Swedish @Yield { @Char Aring } +} } + +{ 28 @UCAlpha @CurrLang @Case { + Czech @Yield { ?? } + Danish @Yield { @Char Oslash } + Dutch @Yield { ?? } + English @Yield { ?? } + EnglishUK @Yield { ?? } + Finnish @Yield { @Char Adieresis } + French @Yield { ?? } + German @Yield { ?? } + Hungarian @Yield { ?? } + Italian @Yield { ?? } + Norwegian @Yield { @Char Oslash } + Polish @Yield { ?? } + Portuguese @Yield { ?? } + Russian @Yield { ?? } + Slovenian @Yield { ?? } + Spanish @Yield { ?? } + Swedish @Yield { @Char Adieresis } +} } + +{ 29 @UCAlpha @CurrLang @Case { + Czech @Yield { ?? } + Danish @Yield { @Char Aring } + Dutch @Yield { ?? } + English @Yield { ?? } + EnglishUK @Yield { ?? } + Finnish @Yield { @Char Odieresis } + French @Yield { ?? } + German @Yield { ?? } + Hungarian @Yield { ?? } + Italian @Yield { ?? } + Norwegian @Yield { @Char Aring } + Polish @Yield { ?? } + Portuguese @Yield { ?? } + Russian @Yield { ?? } + Slovenian @Yield { ?? } + Spanish @Yield { ?? } + Swedish @Yield { @Char Odieresis } +} } + + +{ 1 @Months @CurrLang @Case { + Czech @Yield { ledna } + Danish @Yield { januar } + Dutch @Yield { januari } + English @Yield { January } + EnglishUK @Yield { January } + Finnish @Yield { tammikuu } + French @Yield { janvier } + German @Yield { Januar } + Hungarian @Yield { janu{@Char aacute}r } + Italian @Yield { gennaio } + Norwegian @Yield { januar } + Polish @Yield { stycze{@Char nacute} } + Portuguese @Yield { janeiro } + Russian @Yield { "\321\316\327\301\322\321" } + Slovenian @Yield { januar } + Spanish @Yield { Enero } + Swedish @Yield { januari } +} } + +{ 2 @Months @CurrLang @Case { + Czech @Yield { {@Char uacute}nora } + Danish @Yield { februar } + Dutch @Yield { februari } + English @Yield { February } + EnglishUK @Yield { February } + Finnish @Yield { helmikuu } + French @Yield { f{@Char eacute}vrier } + German @Yield { Februar } + Hungarian @Yield { febru{@Char aacute}r } + Italian @Yield { febbraio } + Norwegian @Yield { februar } + Polish @Yield { luty } + Portuguese @Yield { fevereiro } + Russian @Yield { "\306\305\327\322\301\314\321" } + Slovenian @Yield { februar } + Spanish @Yield { Febrero } + Swedish @Yield { februari } +} } + +{ 3 @Months @CurrLang @Case { + Czech @Yield { b{@Char rcaron}ezna } + Danish @Yield { marts } + Dutch @Yield { maart } + English @Yield { March } + EnglishUK @Yield { March } + Finnish @Yield { maaliskuu } + French @Yield { mars } + German @Yield { M{@Char adieresis}rz } + Hungarian @Yield { m{@Char aacute}rcius } + Italian @Yield { marzo } + Norwegian @Yield { mars } + Polish @Yield { marzec } + Portuguese @Yield { mar{@Char ccedilla}o } + Russian @Yield { "\315\301\322\324\301" } + Slovenian @Yield { marec } + Spanish @Yield { Marzo } + Swedish @Yield { mars } +} } + +{ 4 @Months @CurrLang @Case { + Czech @Yield { dubna } + Danish @Yield { april } + Dutch @Yield { april } + English @Yield { April } + EnglishUK @Yield { April } + Finnish @Yield { huhtikuu } + French @Yield { avril } + German @Yield { April } + Hungarian @Yield { {@Char aacute}prilis } + Italian @Yield { aprile } + Norwegian @Yield { april } + Polish @Yield { kwiecie{@Char nacute} } + Portuguese @Yield { abril } + Russian @Yield { "\301\320\322\305\314\321" } + Slovenian @Yield { april } + Spanish @Yield { Abril } + Swedish @Yield { april } +} } + +{ 5 @Months @CurrLang @Case { + Czech @Yield { kv{@Char ecaron}tna } + Danish @Yield { maj } + Dutch @Yield { mei } + English @Yield { May } + EnglishUK @Yield { May } + Finnish @Yield { toukokuu } + French @Yield { mai } + German @Yield { Mai } + Hungarian @Yield { m{@Char aacute}jus } + Italian @Yield { maggio } + Norwegian @Yield { mai } + Polish @Yield { maj } + Portuguese @Yield { maio } + Russian @Yield { "\315\301\321" } + Slovenian @Yield { maj } + Spanish @Yield { Mayo } + Swedish @Yield { maj } +} } + +{ 6 @Months @CurrLang @Case { + Czech @Yield { {@Char ccaron}ervna } + Danish @Yield { juni } + Dutch @Yield { juni } + English @Yield { June } + EnglishUK @Yield { June } + Finnish @Yield { kes{@Char adieresis}kuu } + French @Yield { juin } + German @Yield { Juni } + Hungarian @Yield { j{@Char uacute}nius } + Italian @Yield { giugno } + Norwegian @Yield { juni } + Polish @Yield { czerwiec } + Portuguese @Yield { junho } + Russian @Yield { "\311\300\316\321" } + Slovenian @Yield { junij } + Spanish @Yield { Junio } + Swedish @Yield { juni } +} } + + +{ 7 @Months @CurrLang @Case { + Czech @Yield { {@Char ccaron}ervence } + Danish @Yield { juli } + Dutch @Yield { juli } + English @Yield { July } + EnglishUK @Yield { July } + Finnish @Yield { hein{@Char adieresis}kuu } + French @Yield { juillet } + German @Yield { Juli } + Hungarian @Yield { j{@Char uacute}lius } + Italian @Yield { luglio } + Norwegian @Yield { juli } + Polish @Yield { lipiec } + Portuguese @Yield { julho } + Russian @Yield { "\311\300\314\321" } + Slovenian @Yield { julij } + Spanish @Yield { Julio } + Swedish @Yield { juli } +} } + +{ 8 @Months @CurrLang @Case { + Czech @Yield { srpna } + Danish @Yield { august } + Dutch @Yield { augustus } + English @Yield { August } + EnglishUK @Yield { August } + Finnish @Yield { elokuu } + French @Yield { ao{@Char ucircumflex}t } + German @Yield { August } + Hungarian @Yield { augusztus } + Italian @Yield { agosto } + Norwegian @Yield { august } + Polish @Yield { sierpie{@Char nacute} } + Portuguese @Yield { agosto } + Russian @Yield { "\301\327\307\325\323\324\301" } + Slovenian @Yield { avgust } + Spanish @Yield { Agosto } + Swedish @Yield { augusti } +} } + +{ 9 @Months @CurrLang @Case { + Czech @Yield { z{@Char aacute}{@Char rcaron}{@Char iacute} } + Danish @Yield { september } + Dutch @Yield { september } + English @Yield { September } + EnglishUK @Yield { September } + Finnish @Yield { syyskuu } + French @Yield { septembre } + German @Yield { September } + Hungarian @Yield { szeptember } + Italian @Yield { settembre } + Norwegian @Yield { september } + Polish @Yield { wrzesie{@Char nacute} } + Portuguese @Yield { setembro } + Russian @Yield { "\323\305\316\324\321\302\322\321" } + Slovenian @Yield { september } + Spanish @Yield { Septiembre } + Swedish @Yield { september } +} } + +{ 10 @Months @CurrLang @Case { + Czech @Yield { {@Char rcaron}{@Char iacute}jna } + Danish @Yield { oktober } + Dutch @Yield { oktober } + English @Yield { October } + EnglishUK @Yield { October } + Finnish @Yield { lokakuu } + French @Yield { octobre } + German @Yield { Oktober } + Hungarian @Yield { okt{@Char oacute}ber } + Italian @Yield { ottobre } + Norwegian @Yield { oktober } + Polish @Yield { pa{@Char zacute}dziernik } + Portuguese @Yield { outubro } + Russian @Yield { "\317\313\324\321\302\322\321" } + Slovenian @Yield { oktober } + Spanish @Yield { Octubre } + Swedish @Yield { oktober } +} } + +{ 11 @Months @CurrLang @Case { + Czech @Yield { listopadu } + Danish @Yield { november } + Dutch @Yield { november } + English @Yield { November } + EnglishUK @Yield { November } + Finnish @Yield { marraskuu } + French @Yield { novembre } + German @Yield { November } + Hungarian @Yield { november } + Italian @Yield { novembre } + Norwegian @Yield { november } + Polish @Yield { listopad } + Portuguese @Yield { novembro } + Russian @Yield { "\316\317\321\302\322\321" } + Slovenian @Yield { november } + Spanish @Yield { Noviembre } + Swedish @Yield { november } +} } + +{ 12 @Months @CurrLang @Case { + Czech @Yield { prosince } + Danish @Yield { december } + Dutch @Yield { december } + English @Yield { December } + EnglishUK @Yield { December } + Finnish @Yield { joulukuu } + French @Yield { d{@Char eacute}cembre } + German @Yield { Dezember } + Hungarian @Yield { december } + Italian @Yield { dicembre } + Norwegian @Yield { desember } + Polish @Yield { grudzie{@Char nacute} } + Portuguese @Yield { dezembro } + Russian @Yield { "\304\305\313\301\302\322\321" } + Slovenian @Yield { december } + Spanish @Yield { Diciembre } + Swedish @Yield { december } +} } + + +{ 1 @ShortMonths @CurrLang @Case { + Czech @Yield { ledna } + Danish @Yield { jan } + Dutch @Yield { jan } + English @Yield { Jan } + EnglishUK @Yield { Jan } + Finnish @Yield { tammikuu } + French @Yield { jan } + German @Yield { Jan } + Hungarian @Yield { jan } + Italian @Yield { gen } + Norwegian @Yield { jan } + Polish @Yield { sty } + Portuguese @Yield { jan } + Russian @Yield { "\321\316\327" } + Slovenian @Yield { jan } + Spanish @Yield { Ene } + Swedish @Yield { jan } +} } + +{ 2 @ShortMonths @CurrLang @Case { + Czech @Yield { {@Char uacute}nora } + Danish @Yield { feb } + Dutch @Yield { feb } + English @Yield { Feb } + EnglishUK @Yield { Feb } + Finnish @Yield { helmikuu } + French @Yield { f{@Char eacute}v } + German @Yield { Feb } + Hungarian @Yield { feb } + Italian @Yield { feb } + Norwegian @Yield { feb } + Polish @Yield { luty } + Portuguese @Yield { fev } + Russian @Yield { "\306\305\327" } + Slovenian @Yield { feb } + Spanish @Yield { Feb } + Swedish @Yield { feb } +} } + +{ 3 @ShortMonths @CurrLang @Case { + Czech @Yield { b{@Char rcaron}ezna } + Danish @Yield { mar } + Dutch @Yield { mrt } + English @Yield { Mar } + EnglishUK @Yield { Mar } + Finnish @Yield { maaliskuu } + French @Yield { mar } + German @Yield { M{@Char adieresis}r } + Hungarian @Yield { m{@Char aacute}rc } + Italian @Yield { mar } + Norwegian @Yield { mar } + Polish @Yield { marz } + Portuguese @Yield { mar } + Russian @Yield { "\315\301\322" } + Slovenian @Yield { mar } + Spanish @Yield { Mar } + Swedish @Yield { mar } +} } + +{ 4 @ShortMonths @CurrLang @Case { + Czech @Yield @Yield { dubna } + Danish @Yield { apr } + Dutch @Yield { apr } + English @Yield { Apr } + EnglishUK @Yield { Apr } + Finnish @Yield { huhtikuu } + French @Yield { avr } + German @Yield { Apr } + Hungarian @Yield { {@Char aacute}pr } + Italian @Yield { apr } + Norwegian @Yield { apr } + Polish @Yield { kwie } + Portuguese @Yield { abr } + Russian @Yield { "\301\320\322" } + Slovenian @Yield { apr } + Spanish @Yield { Abr } + Swedish @Yield { apr } +} } + +{ 5 @ShortMonths @CurrLang @Case { + Czech @Yield { kv{@Char ecaron}tna } + Danish @Yield { maj } + Dutch @Yield { mei } + English @Yield { May } + EnglishUK @Yield { May } + Finnish @Yield { toukokuu } + French @Yield { mai } + German @Yield { Mai } + Hungarian @Yield { m{@Char aacute}j } + Italian @Yield { mag } + Norwegian @Yield { mai } + Polish @Yield { maj } + Portuguese @Yield { mai } + Russian @Yield { "\315\301\321" } + Slovenian @Yield { maj } + Spanish @Yield { May } + Swedish @Yield { maj } +} } + +{ 6 @ShortMonths @CurrLang @Case { + Czech @Yield { {@Char ccaron}ervna } + Danish @Yield { jun } + Dutch @Yield { jun } + English @Yield { Jun } + EnglishUK @Yield { Jun } + Finnish @Yield { kes{@Char adieresis}kuu } + French @Yield { juin } + German @Yield { Jun } + Hungarian @Yield { j{@Char uacute}n } + Italian @Yield { giu } + Norwegian @Yield { jun } + Polish @Yield { czer } + Portuguese @Yield { jun } + Russian @Yield { "\311\300\316\321" } + Slovenian @Yield { jun } + Spanish @Yield { Jun } + Swedish @Yield { jun } +} } + +{ 7 @ShortMonths @CurrLang @Case { + Czech @Yield { {@Char ccaron}ervence } + Danish @Yield { jul } + Dutch @Yield { jul } + English @Yield { Jul } + EnglishUK @Yield { Jul } + Finnish @Yield { hein{@Char adieresis}kuu } + French @Yield { juil } + German @Yield { Jul } + Hungarian @Yield { j{@Char uacute}l } + Italian @Yield { lug } + Norwegian @Yield { jul } + Polish @Yield { lip } + Portuguese @Yield { jul } + Russian @Yield { "\311\300\314\321" } + Slovenian @Yield { jul } + Spanish @Yield { Jul } + Swedish @Yield { jul } +} } + +{ 8 @ShortMonths @CurrLang @Case { + Czech @Yield { srpna } + Danish @Yield { aug } + Dutch @Yield { aug } + English @Yield { Aug } + EnglishUK @Yield { Aug } + Finnish @Yield { elokuu } + French @Yield { ao{@Char ucircumflex} } + German @Yield { Aug } + Hungarian @Yield { aug } + Italian @Yield { ago } + Norwegian @Yield { aug } + Polish @Yield { sier } + Portuguese @Yield { ago } + Russian @Yield { "\301\327\307" } + Slovenian @Yield { avg } + Spanish @Yield { Ago } + Swedish @Yield { aug } +} } + +{ 9 @ShortMonths @CurrLang @Case { + Czech @Yield { z{@Char aacute}{@Char rcaron}{@Char iacute} } + Danish @Yield { sep } + Dutch @Yield { sep } + English @Yield { Sep } + EnglishUK @Yield { Sep } + Finnish @Yield { syyskuu } + French @Yield { sep } + German @Yield { Sep } + Hungarian @Yield { szept } + Italian @Yield { set } + Norwegian @Yield { sep } + Polish @Yield { wrze } + Portuguese @Yield { set } + Russian @Yield { "\323\305\316" } + Slovenian @Yield { sep } + Spanish @Yield { Sep } + Swedish @Yield { sep } +} } + +{ 10 @ShortMonths @CurrLang @Case { + Czech @Yield { {@Char rcaron}{@Char iacute}jna } + Danish @Yield { okt } + Dutch @Yield { okt } + English @Yield { Oct } + EnglishUK @Yield { Oct } + Finnish @Yield { lokakuu } + French @Yield { oct } + German @Yield { Okt } + Hungarian @Yield { okt } + Italian @Yield { ott } + Norwegian @Yield { okt } + Polish @Yield { pa{@Char zacute} } + Portuguese @Yield { out } + Russian @Yield { "\317\313\324" } + Slovenian @Yield { okt } + Spanish @Yield { Oct } + Swedish @Yield { okt } +} } + +{ 11 @ShortMonths @CurrLang @Case { + Czech @Yield { listopadu } + Danish @Yield { nov } + Dutch @Yield { nov } + English @Yield { Nov } + EnglishUK @Yield { Nov } + Finnish @Yield { marraskuu } + French @Yield { nov } + German @Yield { Nov } + Hungarian @Yield { nov } + Italian @Yield { nov } + Norwegian @Yield { nov } + Polish @Yield { list } + Portuguese @Yield { nov } + Russian @Yield { "\316\317\321" } + Slovenian @Yield { nov } + Spanish @Yield { Nov } + Swedish @Yield { nov } +} } + +{ 12 @ShortMonths @CurrLang @Case { + Czech @Yield { prosince } + Danish @Yield { dec } + Dutch @Yield { dec } + English @Yield { Dec } + EnglishUK @Yield { Dec } + Finnish @Yield { joulukuu } + French @Yield { d{@Char eacute}c } + German @Yield { Dez } + Hungarian @Yield { dec } + Italian @Yield { dic } + Norwegian @Yield { des } + Polish @Yield { gru } + Portuguese @Yield { dez } + Russian @Yield { "\304\305\313" } + Slovenian @Yield { dec } + Spanish @Yield { Dic } + Swedish @Yield { dec } +} } + + +{ 1 @WeekDays @CurrLang @Case { + Czech @Yield { ned{@Char ecaron}le } + Danish @Yield { s{@Char oslash}ndag } + Dutch @Yield { zondag } + English @Yield { Sunday } + EnglishUK @Yield { Sunday } + Finnish @Yield { sunnuntai } + French @Yield { dimanche } + German @Yield { Sonntag } + Hungarian @Yield { h{@Char eacute}tf{@Char odblacute} } + Italian @Yield { domenica } + Norwegian @Yield { s{@Char oslash}ndag } + Polish @Yield { niedziela } + Portuguese @Yield { Domingo } + Russian @Yield { "\327\317\323\313\322\305\323\305\316\330\305" } + Slovenian @Yield { nedelja } + Spanish @Yield { Domingo } + Swedish @Yield { s{@Char odieresis}ndag } +} } + +{ 2 @WeekDays @CurrLang @Case { + Czech @Yield { pond{@Char ecaron}l{@Char iacute} } + Danish @Yield { mandag } + Dutch @Yield { maandag } + English @Yield { Monday } + EnglishUK @Yield { Monday } + Finnish @Yield { maanantai } + French @Yield { lundi } + German @Yield { Montag } + Hungarian @Yield { kedd } + Italian @Yield { luned{@Char igrave} } + Norwegian @Yield { mandag } + Polish @Yield { poniedzia{@Char lslash}ek } + Portuguese @Yield { Segunda } + Russian @Yield { "\320\317\316\305\304\305\314\330\316\311\313" } + Slovenian @Yield { ponedeljek } + Spanish @Yield { Lunes } + Swedish @Yield { m{@Char aring}ndag } +} } + +{ 3 @WeekDays @CurrLang @Case { + Czech @Yield { {@Char uacute}ter{@Char yacute} } + Danish @Yield { tirsdag } + Dutch @Yield { dinsdag } + English @Yield { Tuesday } + EnglishUK @Yield { Tuesday } + Finnish @Yield { tiistai } + French @Yield { mardi } + German @Yield { Dienstag } + Hungarian @Yield { szerda } + Italian @Yield { marted{@Char igrave} } + Norwegian @Yield { tirsdag } + Polish @Yield { wtorek } + Portuguese @Yield { Ter{@Char ccedilla}a } + Russian @Yield { "\327\324\317\322\316\311\313" } + Slovenian @Yield { torek } + Spanish @Yield { Martes } + Swedish @Yield { tisdag } +} } + +{ 4 @WeekDays @CurrLang @Case { + Czech @Yield { st{@Char rcaron}eda } + Danish @Yield { onsdag } + Dutch @Yield { woensdag } + English @Yield { Wednesday } + EnglishUK @Yield { Wednesday } + Finnish @Yield { keskiviikko } + French @Yield { mercredi } + German @Yield { Mittwoch } + Hungarian @Yield { cs{@Char udieresis}t{@Char odieresis}rt{@Char odieresis} } + Italian @Yield { mercoled{@Char igrave} } + Norwegian @Yield { onsdag } + Polish @Yield { {@Char sacute}roda } + Portuguese @Yield { Quarta } + Russian @Yield { "\323\322\305\304\301" } + Slovenian @Yield { sreda } + Spanish @Yield { Mi{@Char eacute}rcoles } + Swedish @Yield { onsdag } +} } + +{ 5 @WeekDays @CurrLang @Case { + Czech @Yield { {@Char ccaron}tvrtek } + Danish @Yield { torsdag } + Dutch @Yield { donderdag } + English @Yield { Thursday } + EnglishUK @Yield { Thursday } + Finnish @Yield { torstai } + French @Yield { jeudi } + German @Yield { Donnerstag } + Hungarian @Yield { p{@Char eacute}ntek } + Italian @Yield { gioved{@Char igrave} } + Norwegian @Yield { torsdag } + Polish @Yield { czwartek } + Portuguese @Yield { Quinta } + Russian @Yield { "\336\305\324\327\305\322\307" } + Slovenian @Yield { {@Char ccaron}etrtek } + Spanish @Yield { Jueves } + Swedish @Yield { torsdag } +} } + +{ 6 @WeekDays @CurrLang @Case { + Czech @Yield { p{@Char aacute}tek } + Danish @Yield { fredag } + Dutch @Yield { vrijdag } + English @Yield { Friday } + EnglishUK @Yield { Friday } + Finnish @Yield { perjantai } + French @Yield { vendredi } + German @Yield { Freitag } + Hungarian @Yield { szombat } + Italian @Yield { venerd{@Char igrave} } + Norwegian @Yield { fredag } + Polish @Yield { pi{@Char aogonek}tek } + Portuguese @Yield { Sexta } + Russian @Yield { "\320\321\324\316\311\303\301" } + Slovenian @Yield { petek } + Spanish @Yield { Viernes } + Swedish @Yield { fredag } +} } + +{ 7 @WeekDays @CurrLang @Case { + Czech @Yield { sobota } + Danish @Yield { l{@Char oslash}rdag } + Dutch @Yield { zaterdag } + English @Yield { Saturday } + EnglishUK @Yield { Saturday } + Finnish @Yield { lauantai } + French @Yield { samedi } + German @Yield { Samstag } + Hungarian @Yield { vas{@Char aacute}rnap } + Italian @Yield { sabato } + Norwegian @Yield { l{@Char oslash}rdag } + Polish @Yield { sobota } + Portuguese @Yield { S{@Char aacute}bado } + Russian @Yield { "\323\325\302\302\317\324\301" } + Slovenian @Yield { sobota } + Spanish @Yield { S{@Char aacute}bado } + Swedish @Yield { l{@Char odieresis}rdag } +} } + + +{ 1 @ShortWeekDays @CurrLang @Case { + Czech @Yield { ne } + Danish @Yield { s{@Char oslash}n } + Dutch @Yield { zo } + English @Yield { Sun } + EnglishUK @Yield { Sun } + Finnish @Yield { su } + French @Yield { dim } + German @Yield { So } + Hungarian @Yield { H } + Italian @Yield { dom } + Norwegian @Yield { s{@Char oslash}n } + Polish @Yield { niedz } + Portuguese @Yield { Dom } + Russian @Yield { "\327\323" } + Slovenian @Yield { ned } + Spanish @Yield { Dom } + Swedish @Yield { s{@Char odieresis} } +} } + +{ 2 @ShortWeekDays @CurrLang @Case { + Czech @Yield { po } + Danish @Yield { man } + Dutch @Yield { ma } + English @Yield { Mon } + EnglishUK @Yield { Mon } + Finnish @Yield { ma } + French @Yield { lun } + German @Yield { Mo } + Hungarian @Yield { K } + Italian @Yield { lun } + Norwegian @Yield { man } + Polish @Yield { pon } + Portuguese @Yield { Seg } + Russian @Yield { "\320\316" } + Slovenian @Yield { pon } + Spanish @Yield { Lun } + Swedish @Yield { m{@Char aring} } +} } + +{ 3 @ShortWeekDays @CurrLang @Case { + Czech @Yield { {@Char uacute}t } + Danish @Yield { tir } + Dutch @Yield { di } + English @Yield { Tue } + EnglishUK @Yield { Tue } + Finnish @Yield { ti } + French @Yield { mar } + German @Yield { Di } + Hungarian @Yield { Sze } + Italian @Yield { mar } + Norwegian @Yield { tir } + Polish @Yield { wto } + Portuguese @Yield { Ter } + Russian @Yield { "\327\324" } + Slovenian @Yield { tor } + Spanish @Yield { Mar } + Swedish @Yield { ti } +} } + +{ 4 @ShortWeekDays @CurrLang @Case { + Czech @Yield { st } + Danish @Yield { ons } + Dutch @Yield { wo } + English @Yield { Wed } + EnglishUK @Yield { Wed } + Finnish @Yield { ke } + French @Yield { mer } + German @Yield { Mi } + Hungarian @Yield { Cs } + Italian @Yield { mer } + Norwegian @Yield { ons } + Polish @Yield { {@Char sacute}ro } + Portuguese @Yield { Qua } + Russian @Yield { "\323\322" } + Slovenian @Yield { sre } + Spanish @Yield { Mie } + Swedish @Yield { on } +} } + +{ 5 @ShortWeekDays @CurrLang @Case { + Czech @Yield { {@Char ccaron}t } + Danish @Yield { tor } + Dutch @Yield { do } + English @Yield { Thu } + EnglishUK @Yield { Thu } + Finnish @Yield { to } + French @Yield { jeu } + German @Yield { Do } + Hungarian @Yield { P } + Italian @Yield { gio } + Norwegian @Yield { tor } + Polish @Yield { czw } + Portuguese @Yield { Qui } + Russian @Yield { "\336\324" } + Slovenian @Yield { cet } + Spanish @Yield { Jue } + Swedish @Yield { to } +} } + +{ 6 @ShortWeekDays @CurrLang @Case { + Czech @Yield { p{@Char aacute} } + Danish @Yield { fre } + Dutch @Yield { vr } + English @Yield { Fri } + EnglishUK @Yield { Fri } + Finnish @Yield { pe } + French @Yield { ven } + German @Yield { Fr } + Hungarian @Yield { Szo } + Italian @Yield { ven } + Norwegian @Yield { fre } + Polish @Yield { pi{@Char aogonek}t } + Portuguese @Yield { Sex } + Russian @Yield { "\320\324" } + Slovenian @Yield { pet } + Spanish @Yield { Vie } + Swedish @Yield { fr } +} } + +{ 7 @ShortWeekDays @CurrLang @Case { + Czech @Yield { so } + Danish @Yield { l{@Char oslash}r } + Dutch @Yield { za } + English @Yield { Sat } + EnglishUK @Yield { Sat } + Finnish @Yield { la } + French @Yield { sam } + German @Yield { Sa } + Hungarian @Yield { V } + Italian @Yield { sab } + Norwegian @Yield { l{@Char oslash}r } + Polish @Yield { sob } + Portuguese @Yield { S{@Char aacute}b } + Russian @Yield { "\323\302" } + Slovenian @Yield { sob } + Spanish @Yield { Sab } + Swedish @Yield { l{@Char odieresis} } +} } + + +{ 00 @TwelveHours 12 } +{ 01 @TwelveHours 1 } +{ 02 @TwelveHours 2 } +{ 03 @TwelveHours 3 } +{ 04 @TwelveHours 4 } +{ 05 @TwelveHours 5 } +{ 06 @TwelveHours 6 } +{ 07 @TwelveHours 7 } +{ 08 @TwelveHours 8 } +{ 09 @TwelveHours 9 } +{ 10 @TwelveHours 10 } +{ 11 @TwelveHours 11 } +{ 12 @TwelveHours 12 } +{ 13 @TwelveHours 1 } +{ 14 @TwelveHours 2 } +{ 15 @TwelveHours 3 } +{ 16 @TwelveHours 4 } +{ 17 @TwelveHours 5 } +{ 18 @TwelveHours 6 } +{ 19 @TwelveHours 7 } +{ 20 @TwelveHours 8 } +{ 21 @TwelveHours 9 } +{ 22 @TwelveHours 10 } +{ 23 @TwelveHours 11 } + + +{ 00 @ShortHours 0 } +{ 01 @ShortHours 1 } +{ 02 @ShortHours 2 } +{ 03 @ShortHours 3 } +{ 04 @ShortHours 4 } +{ 05 @ShortHours 5 } +{ 06 @ShortHours 6 } +{ 07 @ShortHours 7 } +{ 08 @ShortHours 8 } +{ 09 @ShortHours 9 } +{ 10 @ShortHours 10 } +{ 11 @ShortHours 11 } +{ 12 @ShortHours 12 } +{ 13 @ShortHours 13 } +{ 14 @ShortHours 14 } +{ 15 @ShortHours 15 } +{ 16 @ShortHours 16 } +{ 17 @ShortHours 17 } +{ 18 @ShortHours 18 } +{ 19 @ShortHours 19 } +{ 20 @ShortHours 20 } +{ 21 @ShortHours 21 } +{ 22 @ShortHours 22 } +{ 23 @ShortHours 23 } + + +{ 00 @MeriDiems @Word&&am } +{ 01 @MeriDiems @Word&&am } +{ 02 @MeriDiems @Word&&am } +{ 03 @MeriDiems @Word&&am } +{ 04 @MeriDiems @Word&&am } +{ 05 @MeriDiems @Word&&am } +{ 06 @MeriDiems @Word&&am } +{ 07 @MeriDiems @Word&&am } +{ 08 @MeriDiems @Word&&am } +{ 09 @MeriDiems @Word&&am } +{ 10 @MeriDiems @Word&&am } +{ 11 @MeriDiems @Word&&am } +{ 12 @MeriDiems @Word&&pm } +{ 13 @MeriDiems @Word&&pm } +{ 14 @MeriDiems @Word&&pm } +{ 15 @MeriDiems @Word&&pm } +{ 16 @MeriDiems @Word&&pm } +{ 17 @MeriDiems @Word&&pm } +{ 18 @MeriDiems @Word&&pm } +{ 19 @MeriDiems @Word&&pm } +{ 20 @MeriDiems @Word&&pm } +{ 21 @MeriDiems @Word&&pm } +{ 22 @MeriDiems @Word&&pm } +{ 23 @MeriDiems @Word&&pm } + + +{ 00 @ShortMeriDiems @Word&&shortam } +{ 01 @ShortMeriDiems @Word&&shortam } +{ 02 @ShortMeriDiems @Word&&shortam } +{ 03 @ShortMeriDiems @Word&&shortam } +{ 04 @ShortMeriDiems @Word&&shortam } +{ 05 @ShortMeriDiems @Word&&shortam } +{ 06 @ShortMeriDiems @Word&&shortam } +{ 07 @ShortMeriDiems @Word&&shortam } +{ 08 @ShortMeriDiems @Word&&shortam } +{ 09 @ShortMeriDiems @Word&&shortam } +{ 10 @ShortMeriDiems @Word&&shortam } +{ 11 @ShortMeriDiems @Word&&shortam } +{ 12 @ShortMeriDiems @Word&&shortpm } +{ 13 @ShortMeriDiems @Word&&shortpm } +{ 14 @ShortMeriDiems @Word&&shortpm } +{ 15 @ShortMeriDiems @Word&&shortpm } +{ 16 @ShortMeriDiems @Word&&shortpm } +{ 17 @ShortMeriDiems @Word&&shortpm } +{ 18 @ShortMeriDiems @Word&&shortpm } +{ 19 @ShortMeriDiems @Word&&shortpm } +{ 20 @ShortMeriDiems @Word&&shortpm } +{ 21 @ShortMeriDiems @Word&&shortpm } +{ 22 @ShortMeriDiems @Word&&shortpm } +{ 23 @ShortMeriDiems @Word&&shortpm } + + +{ date @DateTimeFormat @Value { @CurrLang @Case { + Czech @Yield { @DayNum. @Month @Year } + Danish @Yield { @DayNum. @Month, @Year } + Dutch @Yield { @DayNum @Month @Year } + English @Yield { @DayNum @Month, @Year } + EnglishUK @Yield { @DayNum @Month, @Year } + Finnish @Yield { @DayNum. @Month"ta" @Year } + French @Yield { @DayNum @Month @Year } + German @Yield { @DayNum. @Month @Year } + Hungarian @Yield { @Year. @Month @DayNum. } + Italian @Yield { @DayNum @Month @Year } + Norwegian @Yield { @DayNum @Month, @Year } + Polish @Yield { @DayNum @Month @Year } + Portuguese @Yield { @DayNum "de" @Month "de" @Year } + Russian @Yield { @DayNum @Month @Year } + Slovenian @Yield { @DayNum @Month @Year } + Spanish @Yield { @DayNum "de" @Month, @Year } + Swedish @Yield { @DayNum @Month @Year } + } } +} + +{ time @DateTimeFormat @Value { @CurrLang @Case { + Czech @Yield { @ShortHour:@Minute } + Danish @Yield { @ShortHour.@Minute } + Dutch @Yield { @ShortHour.@Minute } + English @Yield { @TwelveHour.@Minute @MeriDiem } + EnglishUK @Yield { @TwelveHour.@Minute @MeriDiem } + Finnish @Yield { @ShortHour.@Minute } + French @Yield { @ShortHour"h"@Minute } + German @Yield { @ShortHour.@Minute } + Hungarian @Yield { @ShortHour {@Char oacute}ra @Minute perc } + Italian @Yield { @ShortHour.@Minute } + Norwegian @Yield { @ShortHour.@Minute } + Polish @Yield { @ShortHour.@Minute } + Portuguese @Yield { @ShortHour:@Minute } + Russian @Yield { @ShortHour.@Minute } + Slovenian @Yield { @ShortHour.@Minute } + Spanish @Yield { @ShortHour:@Minute } + Swedish @Yield { @ShortHour.@Minute } + } } +} diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/standard.li b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/standard.li new file mode 100755 index 0000000000000..a2d9bf5f50882 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/data/standard.li @@ -0,0 +1,649 @@ +00 Basser Lout Version 3.24 (October 2000) database index file +00symbol 1 @Word +00symbol 10 @TwelveHours +00symbol 11 @ShortHours +00symbol 12 @MeriDiems +00symbol 13 @ShortMeriDiems +00symbol 14 @DateTimeFormat +00symbol 2 @Roman +00symbol 3 @UCRoman +00symbol 4 @Alpha +00symbol 5 @UCAlpha +00symbol 6 @Months +00symbol 7 @ShortMonths +00symbol 8 @WeekDays +00symbol 9 @ShortWeekDays +1&abbreviations 0 00018 12894 383 . +1&abstract 0 00016 11467 341 . +1&am 0 00033 23294 700 . +1&appendix 0 00021 14835 446 . +1&bibliography 0 00003 2808 68 . +1&chapter 0 00020 14192 425 . +1&claim 0 00014 10172 299 . +1&contents 0 00001 0 26 . +1&continued 0 00032 22721 679 . +1&corollary 0 00012 8921 257 . +1&definition 0 00008 6299 173 . +1&example 0 00013 9544 278 . +1&figure 0 00004 3554 89 . +1&figurelist 0 00005 4166 110 . +1&in 0 00031 22221 658 . +1&index 0 00023 16155 488 . +1&introduction 0 00019 13461 404 . +1&lecture 0 00022 15528 467 . +1&lemma 0 00009 6993 194 . +1&mastersthesis 0 00030 21362 636 . +1&nopublisher 0 00027 18852 572 . +1¬itle 0 00024 16790 509 . +1&page 0 00026 18220 551 . +1&pages 0 00025 17572 530 . +1&phdthesis 0 00029 20433 614 . +1&pm 0 00034 23820 721 . +1&preface 0 00017 12158 362 . +1&proof 0 00015 10817 320 . +1&proposition 0 00011 8181 236 . +1&references 0 00002 2048 47 . +1&shortam 0 00035 24346 742 . +1&shortpm 0 00036 24843 763 . +1&table 0 00006 4956 131 . +1&tablelist 0 00007 5570 152 . +1&techrep 0 00028 19672 593 . +1&theorem 0 00010 7539 215 . +10&00 0 00537 60734 2132 . +10&01 0 00538 60759 2133 . +10&02 0 00539 60782 2134 . +10&03 0 00540 60805 2135 . +10&04 0 00541 60828 2136 . +10&05 0 00542 60851 2137 . +10&06 0 00543 60874 2138 . +10&07 0 00544 60897 2139 . +10&08 0 00545 60920 2140 . +10&09 0 00546 60943 2141 . +10&10 0 00547 60966 2142 . +10&11 0 00548 60989 2143 . +10&12 0 00549 61012 2144 . +10&13 0 00550 61035 2145 . +10&14 0 00551 61058 2146 . +10&15 0 00552 61081 2147 . +10&16 0 00553 61104 2148 . +10&17 0 00554 61127 2149 . +10&18 0 00555 61150 2150 . +10&19 0 00556 61173 2151 . +10&20 0 00557 61196 2152 . +10&21 0 00558 61219 2153 . +10&22 0 00559 61242 2154 . +10&23 0 00560 61265 2155 . +11&00 0 00561 61288 2158 . +11&01 0 00562 61312 2159 . +11&02 0 00563 61334 2160 . +11&03 0 00564 61356 2161 . +11&04 0 00565 61378 2162 . +11&05 0 00566 61400 2163 . +11&06 0 00567 61422 2164 . +11&07 0 00568 61444 2165 . +11&08 0 00569 61466 2166 . +11&09 0 00570 61488 2167 . +11&10 0 00571 61510 2168 . +11&11 0 00572 61532 2169 . +11&12 0 00573 61554 2170 . +11&13 0 00574 61576 2171 . +11&14 0 00575 61598 2172 . +11&15 0 00576 61620 2173 . +11&16 0 00577 61642 2174 . +11&17 0 00578 61664 2175 . +11&18 0 00579 61686 2176 . +11&19 0 00580 61708 2177 . +11&20 0 00581 61730 2178 . +11&21 0 00582 61752 2179 . +11&22 0 00583 61774 2180 . +11&23 0 00584 61796 2181 . +12&00 0 00585 61818 2184 . +12&01 0 00586 61848 2185 . +12&02 0 00587 61876 2186 . +12&03 0 00588 61904 2187 . +12&04 0 00589 61932 2188 . +12&05 0 00590 61960 2189 . +12&06 0 00591 61988 2190 . +12&07 0 00592 62016 2191 . +12&08 0 00593 62044 2192 . +12&09 0 00594 62072 2193 . +12&10 0 00595 62100 2194 . +12&11 0 00596 62128 2195 . +12&12 0 00597 62156 2196 . +12&13 0 00598 62184 2197 . +12&14 0 00599 62212 2198 . +12&15 0 00600 62240 2199 . +12&16 0 00601 62268 2200 . +12&17 0 00602 62296 2201 . +12&18 0 00603 62324 2202 . +12&19 0 00604 62352 2203 . +12&20 0 00605 62380 2204 . +12&21 0 00606 62408 2205 . +12&22 0 00607 62436 2206 . +12&23 0 00608 62464 2207 . +13&00 0 00609 62492 2210 . +13&01 0 00610 62532 2211 . +13&02 0 00611 62570 2212 . +13&03 0 00612 62608 2213 . +13&04 0 00613 62646 2214 . +13&05 0 00614 62684 2215 . +13&06 0 00615 62722 2216 . +13&07 0 00616 62760 2217 . +13&08 0 00617 62798 2218 . +13&09 0 00618 62836 2219 . +13&10 0 00619 62874 2220 . +13&11 0 00620 62912 2221 . +13&12 0 00621 62950 2222 . +13&13 0 00622 62988 2223 . +13&14 0 00623 63026 2224 . +13&15 0 00624 63064 2225 . +13&16 0 00625 63102 2226 . +13&17 0 00626 63140 2227 . +13&18 0 00627 63178 2228 . +13&19 0 00628 63216 2229 . +13&20 0 00629 63254 2230 . +13&21 0 00630 63292 2231 . +13&22 0 00631 63330 2232 . +13&23 0 00632 63368 2233 . +14&date 0 00633 63406 2236 . +14&time 0 00634 64283 2257 . +2&1 0 00038 25361 786 . +2&10 0 00047 25531 795 . +2&100 0 00137 27361 885 . +2&101 0 00138 27380 886 . +2&102 0 00139 27399 887 . +2&103 0 00140 27418 888 . +2&104 0 00141 27438 889 . +2&105 0 00142 27457 890 . +2&106 0 00143 27476 891 . +2&107 0 00144 27495 892 . +2&108 0 00145 27515 893 . +2&109 0 00146 27536 894 . +2&11 0 00048 25549 796 . +2&110 0 00147 27555 895 . +2&111 0 00148 27574 896 . +2&112 0 00149 27593 897 . +2&113 0 00150 27613 898 . +2&114 0 00151 27634 899 . +2&115 0 00152 27654 900 . +2&116 0 00153 27673 901 . +2&117 0 00154 27693 902 . +2&118 0 00155 27714 903 . +2&119 0 00156 27736 904 . +2&12 0 00049 25568 797 . +2&120 0 00157 27756 905 . +2&121 0 00158 27775 906 . +2&122 0 00159 27795 907 . +2&123 0 00160 27816 908 . +2&124 0 00161 27838 909 . +2&125 0 00162 27859 910 . +2&126 0 00163 27879 911 . +2&127 0 00164 27900 912 . +2&128 0 00165 27922 913 . +2&129 0 00166 27945 914 . +2&13 0 00050 25587 798 . +2&130 0 00167 27966 915 . +2&131 0 00168 27986 916 . +2&132 0 00169 28007 917 . +2&133 0 00170 28029 918 . +2&134 0 00171 28052 919 . +2&135 0 00172 28074 920 . +2&136 0 00173 28095 921 . +2&137 0 00174 28117 922 . +2&138 0 00175 28140 923 . +2&139 0 00176 28164 924 . +2&14 0 00051 25607 799 . +2&140 0 00177 28186 925 . +2&141 0 00178 28205 926 . +2&142 0 00179 28225 927 . +2&143 0 00180 28246 928 . +2&144 0 00181 28268 929 . +2&145 0 00182 28289 930 . +2&146 0 00183 28309 931 . +2&147 0 00184 28330 932 . +2&148 0 00185 28352 933 . +2&149 0 00186 28375 934 . +2&15 0 00052 25626 800 . +2&150 0 00187 28396 935 . +2&151 0 00188 28415 936 . +2&152 0 00189 28434 937 . +2&153 0 00190 28454 938 . +2&154 0 00191 28475 939 . +2&155 0 00192 28495 940 . +2&156 0 00193 28514 941 . +2&157 0 00194 28534 942 . +2&158 0 00195 28555 943 . +2&159 0 00196 28577 944 . +2&16 0 00053 25645 801 . +2&160 0 00197 28597 945 . +2&161 0 00198 28616 946 . +2&162 0 00199 28636 947 . +2&163 0 00200 28657 948 . +2&164 0 00201 28679 949 . +2&165 0 00202 28700 950 . +2&166 0 00203 28720 951 . +2&167 0 00204 28741 952 . +2&168 0 00205 28763 953 . +2&169 0 00206 28786 954 . +2&17 0 00054 25664 802 . +2&170 0 00207 28807 955 . +2&171 0 00208 28827 956 . +2&172 0 00209 28848 957 . +2&173 0 00210 28870 958 . +2&174 0 00211 28893 959 . +2&175 0 00212 28915 960 . +2&176 0 00213 28936 961 . +2&177 0 00214 28958 962 . +2&178 0 00215 28981 963 . +2&179 0 00216 29005 964 . +2&18 0 00055 25684 803 . +2&180 0 00217 29027 965 . +2&181 0 00218 29048 966 . +2&182 0 00219 29070 967 . +2&183 0 00220 29093 968 . +2&184 0 00221 29117 969 . +2&185 0 00222 29140 970 . +2&186 0 00223 29162 971 . +2&187 0 00224 29185 972 . +2&188 0 00225 29209 973 . +2&189 0 00226 29234 974 . +2&19 0 00056 25705 804 . +2&190 0 00227 29257 975 . +2&191 0 00228 29276 976 . +2&192 0 00229 29296 977 . +2&193 0 00230 29317 978 . +2&194 0 00231 29339 979 . +2&195 0 00232 29360 980 . +2&196 0 00233 29380 981 . +2&197 0 00234 29401 982 . +2&198 0 00235 29423 983 . +2&199 0 00236 29446 984 . +2&2 0 00039 25379 787 . +2&20 0 00057 25724 805 . +2&200 0 00237 29467 985 . +2&21 0 00058 25743 806 . +2&22 0 00059 25762 807 . +2&23 0 00060 25782 808 . +2&24 0 00061 25803 809 . +2&25 0 00062 25823 810 . +2&26 0 00063 25842 811 . +2&27 0 00064 25862 812 . +2&28 0 00065 25883 813 . +2&29 0 00066 25905 814 . +2&3 0 00040 25398 788 . +2&30 0 00067 25925 815 . +2&31 0 00068 25944 816 . +2&32 0 00069 25964 817 . +2&33 0 00070 25985 818 . +2&34 0 00071 26007 819 . +2&35 0 00072 26028 820 . +2&36 0 00073 26048 821 . +2&37 0 00074 26069 822 . +2&38 0 00075 26091 823 . +2&39 0 00076 26114 824 . +2&4 0 00041 25417 789 . +2&40 0 00077 26135 825 . +2&41 0 00078 26154 826 . +2&42 0 00079 26173 827 . +2&43 0 00080 26193 828 . +2&44 0 00081 26214 829 . +2&45 0 00082 26234 830 . +2&46 0 00083 26253 831 . +2&47 0 00084 26273 832 . +2&48 0 00085 26294 833 . +2&49 0 00086 26316 834 . +2&5 0 00042 25436 790 . +2&50 0 00087 26336 835 . +2&51 0 00088 26354 836 . +2&52 0 00089 26373 837 . +2&53 0 00090 26392 838 . +2&54 0 00091 26412 839 . +2&55 0 00092 26431 840 . +2&56 0 00093 26450 841 . +2&57 0 00094 26469 842 . +2&58 0 00095 26489 843 . +2&59 0 00096 26510 844 . +2&6 0 00043 25454 791 . +2&60 0 00097 26529 845 . +2&61 0 00098 26548 846 . +2&62 0 00099 26567 847 . +2&63 0 00100 26587 848 . +2&64 0 00101 26608 849 . +2&65 0 00102 26628 850 . +2&66 0 00103 26647 851 . +2&67 0 00104 26667 852 . +2&68 0 00105 26688 853 . +2&69 0 00106 26710 854 . +2&7 0 00044 25473 792 . +2&70 0 00107 26730 855 . +2&71 0 00108 26749 856 . +2&72 0 00109 26769 857 . +2&73 0 00110 26790 858 . +2&74 0 00111 26812 859 . +2&75 0 00112 26833 860 . +2&76 0 00113 26853 861 . +2&77 0 00114 26874 862 . +2&78 0 00115 26896 863 . +2&79 0 00116 26919 864 . +2&8 0 00045 25492 793 . +2&80 0 00117 26940 865 . +2&81 0 00118 26960 866 . +2&82 0 00119 26981 867 . +2&83 0 00120 27003 868 . +2&84 0 00121 27026 869 . +2&85 0 00122 27048 870 . +2&86 0 00123 27069 871 . +2&87 0 00124 27091 872 . +2&88 0 00125 27114 873 . +2&89 0 00126 27138 874 . +2&9 0 00046 25512 794 . +2&90 0 00127 27160 875 . +2&91 0 00128 27179 876 . +2&92 0 00129 27198 877 . +2&93 0 00130 27218 878 . +2&94 0 00131 27239 879 . +2&95 0 00132 27259 880 . +2&96 0 00133 27278 881 . +2&97 0 00134 27298 882 . +2&98 0 00135 27319 883 . +2&99 0 00136 27341 884 . +2&?? 0 00037 25340 785 . +3&1 0 00239 29507 988 . +3&10 0 00248 29689 997 . +3&100 0 00338 31689 1087 . +3&101 0 00339 31709 1088 . +3&102 0 00340 31729 1089 . +3&103 0 00341 31750 1090 . +3&104 0 00342 31772 1091 . +3&105 0 00343 31793 1092 . +3&106 0 00344 31813 1093 . +3&107 0 00345 31834 1094 . +3&108 0 00346 31856 1095 . +3&109 0 00347 31879 1096 . +3&11 0 00249 29708 998 . +3&110 0 00348 31900 1097 . +3&111 0 00349 31920 1098 . +3&112 0 00350 31941 1099 . +3&113 0 00351 31963 1100 . +3&114 0 00352 31986 1101 . +3&115 0 00353 32008 1102 . +3&116 0 00354 32029 1103 . +3&117 0 00355 32051 1104 . +3&118 0 00356 32074 1105 . +3&119 0 00357 32098 1106 . +3&12 0 00250 29728 999 . +3&120 0 00358 32120 1107 . +3&121 0 00359 32141 1108 . +3&122 0 00360 32163 1109 . +3&123 0 00361 32186 1110 . +3&124 0 00362 32210 1111 . +3&125 0 00363 32233 1112 . +3&126 0 00364 32255 1113 . +3&127 0 00365 32278 1114 . +3&128 0 00366 32302 1115 . +3&129 0 00367 32327 1116 . +3&13 0 00251 29749 1000 . +3&130 0 00368 32350 1117 . +3&131 0 00369 32372 1118 . +3&132 0 00370 32395 1119 . +3&133 0 00371 32419 1120 . +3&134 0 00372 32444 1121 . +3&135 0 00373 32468 1122 . +3&136 0 00374 32491 1123 . +3&137 0 00375 32515 1124 . +3&138 0 00376 32540 1125 . +3&139 0 00377 32566 1126 . +3&14 0 00252 29771 1001 . +3&140 0 00378 32590 1127 . +3&141 0 00379 32611 1128 . +3&142 0 00380 32633 1129 . +3&143 0 00381 32656 1130 . +3&144 0 00382 32680 1131 . +3&145 0 00383 32703 1132 . +3&146 0 00384 32725 1133 . +3&147 0 00385 32748 1134 . +3&148 0 00386 32772 1135 . +3&149 0 00387 32797 1136 . +3&15 0 00253 29792 1002 . +3&150 0 00388 32820 1137 . +3&151 0 00389 32840 1138 . +3&152 0 00390 32861 1139 . +3&153 0 00391 32883 1140 . +3&154 0 00392 32906 1141 . +3&155 0 00393 32928 1142 . +3&156 0 00394 32949 1143 . +3&157 0 00395 32971 1144 . +3&158 0 00396 32994 1145 . +3&159 0 00397 33018 1146 . +3&16 0 00254 29812 1003 . +3&160 0 00398 33040 1147 . +3&161 0 00399 33061 1148 . +3&162 0 00400 33083 1149 . +3&163 0 00401 33106 1150 . +3&164 0 00402 33130 1151 . +3&165 0 00403 33153 1152 . +3&166 0 00404 33175 1153 . +3&167 0 00405 33198 1154 . +3&168 0 00406 33222 1155 . +3&169 0 00407 33247 1156 . +3&17 0 00255 29833 1004 . +3&170 0 00408 33270 1157 . +3&171 0 00409 33292 1158 . +3&172 0 00410 33315 1159 . +3&173 0 00411 33339 1160 . +3&174 0 00412 33364 1161 . +3&175 0 00413 33388 1162 . +3&176 0 00414 33411 1163 . +3&177 0 00415 33435 1164 . +3&178 0 00416 33460 1165 . +3&179 0 00417 33486 1166 . +3&18 0 00256 29855 1005 . +3&180 0 00418 33510 1167 . +3&181 0 00419 33533 1168 . +3&182 0 00420 33557 1169 . +3&183 0 00421 33582 1170 . +3&184 0 00422 33608 1171 . +3&185 0 00423 33633 1172 . +3&186 0 00424 33657 1173 . +3&187 0 00425 33682 1174 . +3&188 0 00426 33708 1175 . +3&189 0 00427 33734 1176 . +3&19 0 00257 29878 1006 . +3&190 0 00428 33759 1177 . +3&191 0 00429 33780 1178 . +3&192 0 00430 33802 1179 . +3&193 0 00431 33825 1180 . +3&194 0 00432 33849 1181 . +3&195 0 00433 33872 1182 . +3&196 0 00434 33894 1183 . +3&197 0 00435 33917 1184 . +3&198 0 00436 33941 1185 . +3&199 0 00437 33966 1186 . +3&2 0 00240 29526 989 . +3&20 0 00258 29899 1007 . +3&200 0 00438 33989 1187 . +3&21 0 00259 29919 1008 . +3&22 0 00260 29940 1009 . +3&23 0 00261 29962 1010 . +3&24 0 00262 29985 1011 . +3&25 0 00263 30007 1012 . +3&26 0 00264 30028 1013 . +3&27 0 00265 30050 1014 . +3&28 0 00266 30073 1015 . +3&29 0 00267 30097 1016 . +3&3 0 00241 29546 990 . +3&30 0 00268 30119 1017 . +3&31 0 00269 30140 1018 . +3&32 0 00270 30162 1019 . +3&33 0 00271 30185 1020 . +3&34 0 00272 30209 1021 . +3&35 0 00273 30232 1022 . +3&36 0 00274 30254 1023 . +3&37 0 00275 30277 1024 . +3&38 0 00276 30301 1025 . +3&39 0 00277 30326 1026 . +3&4 0 00242 29567 991 . +3&40 0 00278 30349 1027 . +3&41 0 00279 30369 1028 . +3&42 0 00280 30390 1029 . +3&43 0 00281 30412 1030 . +3&44 0 00282 30435 1031 . +3&45 0 00283 30457 1032 . +3&46 0 00284 30478 1033 . +3&47 0 00285 30500 1034 . +3&48 0 00286 30523 1035 . +3&49 0 00287 30547 1036 . +3&5 0 00243 29587 992 . +3&50 0 00288 30569 1037 . +3&51 0 00289 30588 1038 . +3&52 0 00290 30608 1039 . +3&53 0 00291 30629 1040 . +3&54 0 00292 30651 1041 . +3&55 0 00293 30672 1042 . +3&56 0 00294 30692 1043 . +3&57 0 00295 30713 1044 . +3&58 0 00296 30735 1045 . +3&59 0 00297 30758 1046 . +3&6 0 00244 29606 993 . +3&60 0 00298 30779 1047 . +3&61 0 00299 30799 1048 . +3&62 0 00300 30820 1049 . +3&63 0 00301 30842 1050 . +3&64 0 00302 30865 1051 . +3&65 0 00303 30887 1052 . +3&66 0 00304 30908 1053 . +3&67 0 00305 30930 1054 . +3&68 0 00306 30953 1055 . +3&69 0 00307 30977 1056 . +3&7 0 00245 29626 994 . +3&70 0 00308 30999 1057 . +3&71 0 00309 31020 1058 . +3&72 0 00310 31042 1059 . +3&73 0 00311 31065 1060 . +3&74 0 00312 31089 1061 . +3&75 0 00313 31112 1062 . +3&76 0 00314 31134 1063 . +3&77 0 00315 31157 1064 . +3&78 0 00316 31181 1065 . +3&79 0 00317 31206 1066 . +3&8 0 00246 29647 995 . +3&80 0 00318 31229 1067 . +3&81 0 00319 31251 1068 . +3&82 0 00320 31274 1069 . +3&83 0 00321 31298 1070 . +3&84 0 00322 31323 1071 . +3&85 0 00323 31347 1072 . +3&86 0 00324 31370 1073 . +3&87 0 00325 31394 1074 . +3&88 0 00326 31419 1075 . +3&89 0 00327 31445 1076 . +3&9 0 00247 29669 996 . +3&90 0 00328 31469 1077 . +3&91 0 00329 31489 1078 . +3&92 0 00330 31510 1079 . +3&93 0 00331 31532 1080 . +3&94 0 00332 31555 1081 . +3&95 0 00333 31577 1082 . +3&96 0 00334 31598 1083 . +3&97 0 00335 31620 1084 . +3&98 0 00336 31643 1085 . +3&99 0 00337 31667 1086 . +3&?? 0 00238 29486 987 . +4&1 0 00440 34030 1191 . +4&10 0 00449 34192 1200 . +4&11 0 00450 34210 1201 . +4&12 0 00451 34228 1202 . +4&13 0 00452 34246 1203 . +4&14 0 00453 34264 1204 . +4&15 0 00454 34282 1205 . +4&16 0 00455 34300 1206 . +4&17 0 00456 34318 1207 . +4&18 0 00457 34336 1208 . +4&19 0 00458 34354 1209 . +4&2 0 00441 34048 1192 . +4&20 0 00459 34372 1210 . +4&21 0 00460 34390 1211 . +4&22 0 00461 34408 1212 . +4&23 0 00462 34426 1213 . +4&24 0 00463 34444 1214 . +4&25 0 00464 34462 1215 . +4&26 0 00465 34480 1216 . +4&27 0 00466 34498 1218 . +4&28 0 00467 35023 1238 . +4&29 0 00468 35552 1258 . +4&3 0 00442 34066 1193 . +4&4 0 00443 34084 1194 . +4&5 0 00444 34102 1195 . +4&6 0 00445 34120 1196 . +4&7 0 00446 34138 1197 . +4&8 0 00447 34156 1198 . +4&9 0 00448 34174 1199 . +4&?? 0 00439 34009 1190 . +5&1 0 00470 36100 1279 . +5&10 0 00479 36271 1288 . +5&11 0 00480 36290 1289 . +5&12 0 00481 36309 1290 . +5&13 0 00482 36328 1291 . +5&14 0 00483 36347 1292 . +5&15 0 00484 36366 1293 . +5&16 0 00485 36385 1294 . +5&17 0 00486 36404 1295 . +5&18 0 00487 36423 1296 . +5&19 0 00488 36442 1297 . +5&2 0 00471 36119 1280 . +5&20 0 00489 36461 1298 . +5&21 0 00490 36480 1299 . +5&22 0 00491 36499 1300 . +5&23 0 00492 36518 1301 . +5&24 0 00493 36537 1302 . +5&25 0 00494 36556 1303 . +5&26 0 00495 36575 1304 . +5&27 0 00496 36594 1306 . +5&28 0 00497 37121 1326 . +5&29 0 00498 37652 1346 . +5&3 0 00472 36138 1281 . +5&4 0 00473 36157 1282 . +5&5 0 00474 36176 1283 . +5&6 0 00475 36195 1284 . +5&7 0 00476 36214 1285 . +5&8 0 00477 36233 1286 . +5&9 0 00478 36252 1287 . +5&?? 0 00469 36079 1278 . +6&1 0 00499 38181 1367 . +6&10 0 00508 43694 1548 . +6&11 0 00509 44346 1568 . +6&12 0 00510 44959 1588 . +6&2 0 00500 38793 1387 . +6&3 0 00501 39432 1407 . +6&4 0 00502 40050 1427 . +6&5 0 00503 40646 1447 . +6&6 0 00504 41204 1467 . +6&7 0 00505 41799 1488 . +6&8 0 00506 42399 1508 . +6&9 0 00507 43016 1528 . +7&1 0 00511 45600 1609 . +7&10 0 00520 50638 1789 . +7&11 0 00521 51206 1809 . +7&12 0 00522 51742 1829 . +7&2 0 00512 46130 1629 . +7&3 0 00513 46686 1649 . +7&4 0 00514 47261 1669 . +7&5 0 00515 47811 1689 . +7&6 0 00516 48367 1709 . +7&7 0 00517 48944 1729 . +7&8 0 00518 49523 1749 . +7&9 0 00519 50069 1769 . +8&1 0 00523 52288 1850 . +8&2 0 00524 52985 1870 . +8&3 0 00525 53660 1890 . +8&4 0 00526 54302 1910 . +8&5 0 00527 55000 1930 . +8&6 0 00528 55654 1950 . +8&7 0 00529 56284 1970 . +9&1 0 00530 56959 1991 . +9&2 0 00531 57517 2011 . +9&3 0 00532 58042 2031 . +9&4 0 00533 58570 2051 . +9&5 0 00534 59097 2071 . +9&6 0 00535 59623 2091 . +9&7 0 00536 60166 2111 . diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/README b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/README new file mode 100755 index 0000000000000..525969595f76b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/README @@ -0,0 +1,18 @@ +Directory lout/doc + +This directory contains directories holding the four documents +that describe the Lout document formatting system: + +design `The design and implementation of the Lout document + formatting language,' Software--Practice and Experience, + vol. 23, pp1001-1041 (September 1993) + +expert An Expert's Guide to the Lout Document Formatting System + +slides A Practical Introduction to the Lout Document Formatting + System (overhead transparencies) + +user A User's Guide to the Lout Document Formatting System + +Jeffrey H. Kingston +8 October 2000 diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/README b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/README new file mode 100755 index 0000000000000..7c19943440603 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/README @@ -0,0 +1,25 @@ +Directory lout/doc/design + +This directory contains the Lout source files +for the report entitled `The design and +implementation of the Lout document formatting +language' which appeared in Software--Practice +and Experience, vol 23, pp1001-1041 (September +1993). To produce the report, type the command + + lout all > outfile.ps + +in this directory. This must be done three +times to completely resolve all cross references, +although the PostScript file outfile.ps is +printable after the first run. Auxiliary files +with .li and .ld suffixes will be created in +this directory. A copy of the final outfile.ps +is included. + +The second and third runs should produce no error +messages (although changing the paper size might +produce one or two benign ones). + +Jeffrey H. Kingston +8 October 2000 diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/all b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/all new file mode 100755 index 0000000000000..2755e5b76f658 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/all @@ -0,0 +1,58 @@ +@SysInclude { eq } +@SysInclude { tab } +@SysInclude { fig } +@SysInclude { report } +@SysDatabase @Reference { oldrefs } +@Report + @Title { The Design and Implementation +of the +Lout Document Formatting Language } + @Author { Jeffrey H. Kingston } + @Institution { Basser Department of Computer Science, +The University of Sydney 2006, +Australia } + @DateLine { 27 January, 1993 } + @InitialLanguage { English } + @OptimizePages { Yes } + @AbstractTitle { SUMMARY } + @Abstract +{ +Lout is a high-level language for document formatting, whose ease of use +has permitted an unprecedented number of advanced features to be added +quickly and reliably. This paper charts the evolution of the design and +implementation of Lout from conception in mid-1984 to public release in +October 1991. It includes extensive discussions of remaining problems +and possible solutions. +@DP +{@B Keywords} document formatting typesetting +} + +// + +@Include { s1_0 } +@Include { s2_0 } +@Include { s2_1 } +@Include { s2_2 } +@Include { s2_3 } +@Include { s2_4 } +@Include { s2_5 } +@Include { s2_9 } +@Include { s3_0 } +@Include { s3_1 } +@Include { s3_2 } +@Include { s3_3 } +@Include { s3_4 } +@Include { s3_9 } +@Include { s4_0 } +@Include { s5_0 } +@Include { s5_1 } +@Include { s5_2 } +@Include { s5_3 } +@Include { s5_4 } +@Include { s5_5 } +@Include { s5_9 } +@Include { s6_0 } +@Include { s6_1 } +@Include { s6_2 } +@Include { s6_9 } +@Include { s7_0 } diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/mydefs b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/mydefs new file mode 100755 index 0000000000000..5473fbf3b251b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/mydefs @@ -0,0 +1,591 @@ + +def @TeX { T{ /0.2fo E}X } + +def @Code + right x +{ { Helvetica Base -1p } @Font lines @Break x +} + +###################################################### +# # +# Nodes and trees. # +# # +###################################################### + +import @Fig +def @FBox + named width { 0.6c } + named height { 0.4c } + named margin { 0.1c } + right x +{ + @Box margin { margin } + { width @Wide height @High + { /0.5rt |0.5rt @OneCol @OneRow 0.8f @Font x + } + } +} + +import @Fig +def @FEllipse + named width { 0.6c } + named height { 0.4c } + named margin { 0.1c } + right x +{ + @Ellipse margin { margin } + { height @High + { /0.5rt |0.5rt @OneCol @OneRow 0.8f @Font x + } + } +} + +import @Fig +def @FCircle + named width { 0.4c } + named height { 0.4c } + named margin { 0.1c } + right x +{ + @Circle margin { margin } + { width @Wide height @High + { /0.5rt |0.5rt @OneCol @OneRow 0.8f @Font x + } + } +} + +import @Fig +def @JoinFigures + left A + named linestyle { solid } + named linewidth { 0.5 pt } + named linecap { round } + named dashlength { 0.15 cm } + named arrow { noarrow } + named headstyle { open } + named headwidth { 0.05 cm } + named headlength { 0.15 cm } + right B +{ + @Line + from { {A"@CTR"} ++ {{A"@CTR"} @Angle {B"@CTR"} A"@CIRCUM"} } + to { {B"@CTR"} ++ {{B"@CTR"} @Angle {A"@CTR"} B"@CIRCUM"} } + linestyle { linestyle } + linewidth { linewidth } + linecap { linecap } + dashlength { dashlength } + arrow { arrow } + headstyle { headstyle } + headwidth { headwidth } + headlength { headlength } + {} +} + +import @Fig +export @LeftSub @RightSub @FirstSub @NextSub @StubSub @Node +def @Tree + named hmargin { 0.2c } + named vmargin { 0.3c } + named linestyle { solid } + named linewidth { 0.5 pt } + named linecap { round } + named dashlength { 0.15 cm } + named arrow { noarrow } + named headstyle { open } + named headwidth { 0.05 cm } + named headlength { 0.15 cm } + body x +@Begin + + def @LeftSub + precedence 90 + associativity left + left root + named hmargin { hmargin } + named linestyle { linestyle } + named linewidth { linewidth } + named linecap { linecap } + named dashlength { dashlength } + named arrow { arrow } + named headstyle { headstyle } + named headwidth { headwidth } + named headlength { headlength } + right x + { + { /vmargin {L::x} } |hmargin root | + L@T @JoinFigures + linestyle { linestyle } + linewidth { linewidth } + linecap { linecap } + dashlength { dashlength } + arrow { arrow } + headstyle { headstyle } + headwidth { headwidth } + headlength { headlength } + T + } + + def fixroot + precedence 90 + left root + { + |0.5rt root + } + + def firstsub + precedence 90 + associativity left + named hmargin { hmargin } + named linestyle { linestyle } + named linewidth { linewidth } + named linecap { linecap } + named dashlength { dashlength } + named arrow { arrow } + named headstyle { headstyle } + named headwidth { headwidth } + named headlength { headlength } + right x + { + S::x & + S@T @JoinFigures + linestyle { linestyle } + linewidth { linewidth } + linecap { linecap } + dashlength { dashlength } + arrow { arrow } + headstyle { headstyle } + headwidth { headwidth } + headlength { headlength } + T + } + + macro @FirstSub { fixroot //vmargin |0.5rt firstsub } + + def @NextSub + precedence 90 + associativity left + left others + named hmargin { hmargin } + named linestyle { linestyle } + named linewidth { linewidth } + named linecap { linecap } + named dashlength { dashlength } + named arrow { arrow } + named headstyle { headstyle } + named headwidth { headwidth } + named headlength { headlength } + right x + { + others &hmargin S::x & + S@T @JoinFigures + linestyle { linestyle } + linewidth { linewidth } + linecap { linecap } + dashlength { dashlength } + arrow { arrow } + headstyle { headstyle } + headwidth { headwidth } + headlength { headlength } + T + } + + def @RightSub + precedence 90 + associativity left + left root + named hmargin { hmargin } + named linestyle { linestyle } + named linewidth { linewidth } + named linecap { linecap } + named dashlength { dashlength } + named arrow { arrow } + named headstyle { headstyle } + named headwidth { headwidth } + named headlength { headlength } + right x + { + root |hmargin { /vmargin {R::x} } | + R@T @JoinFigures + linestyle { linestyle } + linewidth { linewidth } + linecap { linecap } + dashlength { dashlength } + arrow { arrow } + headstyle { headstyle } + headwidth { headwidth } + headlength { headlength } + T + } + + def @StubSub + precedence 90 + associativity left + left root + named linestyle { linestyle } + named linewidth { linewidth } + named linecap { linecap } + named dashlength { dashlength } + { + root | + @Figure + shape { T@SW + T@W -- { 0.1 cm 0.7 cm } + T@E -- {-0.1 cm 0.7 cm } + T@SE + } + linestyle { linestyle } + linewidth { linewidth } + linecap { linecap } + dashlength { dashlength } + { @Null } + } + + def @Node + # named mark {} + right root + { + T:: root + # & T@W ++ { -0.2 cm 0.1 cm } @BaseOf mark + } + + @OneCol @OneRow x + +@End @Tree + + +def @ShowMarks + named linewidth { 0.015 cm } + named linestyle { dashed } + named dashlength { 0.15 cm } + named paint { lightgrey } + named marks { both } # none, horizontal, vertical, or both + right x +{ + @Fig + { @Box margin { 0c } linewidth { linewidth } paint { paint } + { @Figure + shape { + marks @Case { + { horizontal both } @Yield + { -0.3 cm ymark {xsize ymark} ++ {0.3 cm 0} } + else @Yield {} + } + marks @Case { + both @Yield [] + else @Yield {} + } + marks @Case { + { vertical both } @Yield + { xmark -0.3 cm {xmark ysize} ++ {0 0.3 cm} } + else @Yield {} + } + } + linewidth { linewidth } + linestyle { linestyle } + dashlength { dashlength } + x + } + } +} + + import @Fig + def @DagBox + named top {} + named mid {} + named base {} + { + @OneRow { + TOP:: @FBox top + // MID:: @FBox mid + // BASE:: @FBox base + } + } + + import @Fig + def @BlackDot + named diameter { 0.07c } + { + @Circle + margin { 0c } + paint { black } + { diameter @Wide diameter @High {} + } + } + + import @Fig + def @TVShape # television shape enclosing points ne, nw, se, sw + named nw {} + named ne {} + named sw {} + named se {} + named delta { 0.5 cm } + { + @Figure + shape { + { {nw @Min sw @Min ne @Min se} -- { delta 0 } } @Label BL + { {nw @Max sw @Max ne @Max se} ++ { delta 0 } } @Label TR + BL ++ { 0 BL @YDistance TR } @Label TL + BL ++ { BL @XDistance TR 0 } @Label BR + BL + BR [ BR ++ {0 delta} ] + BR ++ {delta delta} + TR ++ {delta -delta} [ TR -- {0 delta} ] + TR + TL [ TL -- {0 delta} ] + TL -- {delta delta} + BL ++ {-delta delta} [ BL ++ {0 delta} ] + BL + } + {} + } + + import @Fig + def @FunnyArrow + named from {} + named to {} + named arrow { forward } + { + @Figure + shape {from from ++ {0 from @YDistance to} to} + arrow { arrow } + {} + } + + def "->" { {Symbol Base} @Font "\256" } #174 decimal + def "=>" { {Symbol Base} @Font "\336" } #222 decimal + macro @JP { /0.5v } + + ################################################### + # # + # Lout keywords. # + # # + ################################################### + + def @@Begin { @Code "@Begin" } + def @@Break { @Code "@Break" } + def @@Case { @Code "@Case" } + def @@Database { @Code "@Database" } + def @@End { @Code "@End" } + def @@Font { @Code "@Font" } + def @@Galley { @Code "@Galley" } + def @@Graphic { @Code "@Graphic" } + def @@HExpand { @Code "@HExpand" } + def @@HScale { @Code "@HScale" } + def @@High { @Code "@High" } + def @@Include { @Code "@Include" } + def @@Key { @Code "@Key" } + def @@LClos { @Code "@LClos" } + def @@LEnv { @Code "@LEnv" } + def @@LInput { @Code "@LInput" } + def @@Moment { @Code "@Moment" } + def @@Next { @Code "@Next" } + def @@Null { @Code "@Null" } + def @@OneCol { @Code "@OneCol" } + def @@OneRow { @Code "@OneRow" } + def @@Open { @Code "@Open" } + def @@Prepend { @Code "@Prepend" } + def @@Rotate { @Code "@Rotate" } + def @@Space { @Code "@Space" } + def @@SysDatabase { @Code "@SysDatabase" } + def @@SysInclude { @Code "@SysInclude" } + def @@SysPrepend { @Code "@SysPrepend" } + def @@Tag { @Code "@Tag" } + def @@Tagged { @Code "@Tagged" } + def @@Use { @Code "@Use" } + def @@VExpand { @Code "@VExpand" } + def @@VScale { @Code "@VScale" } + def @@Yield { @Code "@Yield" } + def @@Wide { @Code "@Wide" } + + + ################################################### + # # + # Miscellaneous, mostly graphical definitions. # + # # + ################################################### + + def @Leaders + { .. @Leaders + } + + def @HLine { + @BackEnd @Case { + PostScript @Yield { + { 0 0 moveto xsize 0 lineto stroke } + @Graphic {} + } + PDF @Yield { + { 0 0 m __xsize 0 l S } + @Graphic {} + } + } + } + + def @VDashLine + right length + { + @BackEnd @Case { + PostScript @Yield { + length @High + { 0 0 moveto 0 ysize lineto [ 3 pt ] 0 setdash stroke } + @Graphic {} + } + PDF @Yield { + length @High + { [ __mul(3, __pt) ] 0 d 0 0 m 0 __ysize l stroke } + @Graphic {} + } + } + } + + def @LBox + right offset + { + @BackEnd @Case { + PostScript @Yield { + @OneCol @OneRow + { + { //0.2c + 0.6c @High 1.2c @Wide + { 0 0 moveto xsize 0 lineto + xsize ysize lineto 0 ysize lineto closepath + gsave 0.9 setgray fill grestore stroke } + @Graphic {} + } + ||offset @VDashLine 1c + } + } + PDF @Yield { + @OneCol @OneRow + { + { //0.2c + 0.6c @High 1.2c @Wide + { 0 0 m __xsize 0 l + __xsize __ysize l 0 __ysize l h + q 0.9 g f Q S } + @Graphic {} + } + ||offset @VDashLine 1c + } + } + } + } + + def @Arrow + right length + { @OneCol @OneRow + { + 30d @Rotate {0.12c @Wide @HLine} + // + length @Wide @HLine + // + "-30d" @Rotate {0.12c @Wide @HLine} + } + } + + def @DoubleArrow + right length + { @OneCol @OneRow + { + & 180d @Rotate @Arrow length + |0io @Arrow length + } + } + + def @Put + left coord + right x + { @OneCol @OneRow + { coord / | @OneCol @OneRow x + } + } + + macro @At { //0io } + + + ################################################### + # # + # Interpolated example documents. # + # # + ################################################### + + def @LittleEndRunPlace { @Galley } + def @LittleEndRun + force into { @LittleEndRunPlace&&preceding } + {} + + def @LittleTextPlace { @Galley } + def @LittleText into { @LittleTextPlace&&preceding } + right x + { x + } + + def @LittleFootPlace { @Galley } + def @LittleFootNote into { @LittleFootPlace&&following } + right x + { x + } + + def @LittlePageColumn + right x + { + 9px @Break 8p @Font + 2.8c @Wide x + } + + def @LittlePage + right x + { + @BackEnd @Case { + PostScript @Yield { + @HContract @VContract + { 0 0 moveto xsize 0 lineto xsize ysize lineto + 0 ysize lineto closepath stroke } @Graphic + { //0.3c ||0.3c + 9px @Break 8p @Font + 2.8c @Wide 3.8c @High x + ||0.3c //0.3c + } + } + PDF @Yield { + @HContract @VContract + { 0 0 m __xsize 0 l __xsize __ysize l 0 __ysize l s } @Graphic + { //0.3c ||0.3c + 9px @Break 8p @Font + 2.8c @Wide 3.8c @High x + ||0.3c //0.3c + } + } + } + } + + def @LittleFootSect + { 1c @Wide @HLine + //0.3v @LittleFootPlace ||0.5c + } + + def @LittlePageList + right @PageNum + { + @LittlePage { # |0.5rt @PageNum //0.8v + //0.3v @LittleTextPlace + //1rt @LittleFootSect + } + // + @LittlePageList @Next @PageNum + } + + def @LittleDocument + { @LittlePage + { @LittleTextPlace + //1rt @LittleFootSect + } + // @LittlePageList 2 + // @LittleEndRunPlace + } + + def @Strange + named @Format right @Val { [@Val] } + right x + { @Format x + } diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/outfile.ps b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/outfile.ps new file mode 100755 index 0000000000000..6893867c11700 Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/outfile.ps differ diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s1_0 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s1_0 new file mode 100755 index 0000000000000..ca487ba7277e9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s1_0 @@ -0,0 +1,45 @@ +@Section + @Title { Introduction } +@Begin +@PP +Lout [1, 2] is a high-level language +for document formatting, designed and implemented by the author. The +implementation, known as Basser Lout, is a fully operational production +version written in C for the Unix operating system, +@FootNote { Unix is a trademark of "AT&T" Bell Laboratories. } +which translates Lout source code into PostScript, +@FootNote { PostScript is a trademark of Adobe Systems, Incorporated. } +a device-independent graphics rendering language accepted by many +high-resolution output devices, including most laser printers. Basser +Lout is available free of charge [3]. It includes +installation instructions, C source, seven standard packages, and complete +documentation in the form of six technical reports and a manual page. +@PP +The Lout project arose out of the author's desire to bring to document +formatting languages the elegance of expression found in programming +languages like Algol-60 and Pascal. This emphasis on expressiveness +has produced an order of magnitude reduction in the cost of developing +document formatting applications. For example, an equation formatting +application, which may be difficult or impossible to add to other +systems, can be written in Lout in a few days. +@PP +When expert users can implement such applications quickly, non-experts +benefit. Although Lout itself provides only a small kernel of carefully +chosen primitives, packages written in Lout and distributed with Basser +Lout provide an unprecedented array of advanced features in a form +accessible to non-expert users. The features include rotation and scaling, +fonts, paragraph and page breaking, displays and lists, floating figures +and tables, footnotes, chapters and sections (automatically numbered), +running page headers and footers, odd-even page layouts, automatically +generated tables of contents, sorted indexes and reference lists, +bibliographic and other databases (including databases of formats for +printing references), equations, tables, diagrams, formatting of +Pascal programs, and automatically maintained cross references. +@PP +This paper charts the evolution of Lout from conception in mid-1984 to the +public release of Basser Lout in October 1991. Lout is organized around +four key concepts -- objects, definitions, galleys, and cross references -- +and they were developed in the order listed, so this paper will treat each +in turn, discussing its design, implementation, problems, and +prospects for further improvement. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s2_0 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s2_0 new file mode 100755 index 0000000000000..ef4bea736305d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s2_0 @@ -0,0 +1,14 @@ +@Section + @Title { Objects } +@Begin +@PP +The essence of any move to a higher level is the introduction of some +abstraction which serves to organize the low-level operations, +resulting in a more succinct expression of their +common combinations at the cost of some loss of detailed control. The +early part of the Lout project was spent in the development of such an +abstraction for the building blocks of documents, one which could +explain, not just the simple phenomena of words, lines, and paragraphs, +but also the alignment of columns in tables, and the complex nested +structures of equations. +@BeginSubSections diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s2_1 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s2_1 new file mode 100755 index 0000000000000..4ee4c319a4054 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s2_1 @@ -0,0 +1,87 @@ +@SubSection + @Tag { genesis } + @Title { The genesis of the object abstraction } +@Begin +@PP +When one examines previous document formatting systems [4] +looking for ideas for abstractions, as the author did in 1984, the Eqn +formatting language [5] stands out like a beacon. In +Eqn, a mathematical formula such as +@ID @Eq { { x sup 2 + 1 } over 4 } +is produced by typing +@ID @Code "{ x sup 2 + 1 } over 4" +in the input file; @Code sup and @Code over are binary operators, and +braces are used for grouping. This is document formatting at a very +high level, close to the language of mathematics itself, with all +reference to font changes and spacing suppressed. +@PP +Eqn provides a single data type (let us call it the {@I expression}), +built up recursively in context-free style: where one expression may appear, +any expression may appear. This approach is common in algebra and +programming languages, where its simplicity and expressiveness have long +been appreciated; but Eqn was the first language to demonstrate its +utility in document formatting. +@PP +Each expression is treated by Eqn as a rectangle with a +{@I {horizontal axis}}, used for alignment with adjacent expressions: +@ID @ShowMarks marks { horizontal } @Eq { { x sup 2 + 1 } over 4 } +The size and rendering of the expression on the printed page are +known only to the implementation, never explicitly calculated or +accessed by the user. This prohibition is +crucial to the maintenance of the context-free property in practice. In +Lout, for example, equations, figures, tables, and arbitrary objects may +be mixed together freely. This would be impossible if size information +was hidden from the implementation in user calculations. +@PP +The object abstraction of Lout is a direct descendant of the Eqn +expression. It employs the same context-free recursive style of construction, +and each object is treated by Lout as a rectangle: +@ID @Fig { +@ShowMarks { 1c @Wide ^| 2c @Wide 0.45c @High ^/ 0.35c @High } +} +The horizontal axis, called a @I { row mark } in Lout, has a +vertical analogue called a {@I {column mark}}, creating a valuable +symmetry between horizontal and vertical. Multiple column and row marks +are permitted: +@ID @OneRow @Fig { +A:: @Box margin { 0c } paint { grey } { 1.2c @Wide 0.8c @High } +|1c +B:: @Box margin { 0c } paint { grey } { 1c @Wide 0.8c @High } +/0.5c +C:: @Box margin { 0c } paint { grey } { 0.7c @Wide 0.8c @High } +|1c +D:: @Box margin { 0c } paint { grey } { 1.3c @Wide 0.8c @High } +// @Line linestyle { dashed } + from { A@W -- { 0.3 cm 0 } } + to { B@W ++ { 1.6 cm 0 } } +// @Line linestyle { dashed } + from { C@W -- { 0.3 cm 0 } } + to { D@W ++ { 1.6 cm 0 } } +// @Line linestyle { dashed } + from { A@NW ++ { 0 0.3 cm } } + to { C@SW -- { 0 0.3 cm } } +// @Line linestyle { dashed } + from { B@NW ++ { 0.3 cm 0.3 cm } } + to { D@SW ++ { 0.3 cm -0.3 cm } } +} +so that objects are able to represent tables. +@PP +This abstraction has some limitations, the most obvious being the restriction +of size calculations to rectangular bounding boxes. Non-rectangular and +disconnected shapes arise naturally in figures and in the characters of +fonts; the extension to them is conceptually straightforward and might +help to explain some fine points of layout such as kerning. However, +there are implementation and language design problems, particularly +when filling non-rectangular shapes with text, and so the author chose +to keep to Eqn's rectangles. +@PP +A more fundamental limitation of the object abstraction arises from the +inability of recursive data types to describe cross-linked structures, +which seem to require some means of naming the multiply referenced +parts. Lout is obliged to introduce additional abstractions to cope +with cross linking: galleys for inserting text into pages +(Section {@NumberOf galleys}), cross references (Section {@NumberOf cross}), +and labelled points in figure drawing [6]. An +abstraction closer to hypertext might form a more unified basis for +these features. +@End @SubSection diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s2_2 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s2_2 new file mode 100755 index 0000000000000..f4a381869497d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s2_2 @@ -0,0 +1,79 @@ +@SubSection + @Tag { lexical } + @Title { Grammatical and lexical structure } +@Begin +@PP +If objects are to be constructed like mathematical expressions, the +natural notation is a functional language based on operators, as in +Eqn. The grammar of Lout objects is accordingly +@ID @OneRow @Eq { +matrix { +object +nextcol +--> above --> above --> above --> above --> above --> above --> above --> +nextcol +{ object ``` infixop ``` object } +labove gap { "1fx" } +{ prefixop ``` object } +labove gap { "1fx" } +{ object ``` postfixop } +labove gap { "1fx" } +{ noparsop } +labove gap { "1fx" } +{ literalword } +labove gap { "1fx" } +{ @Code "{" ``` object ``` @Code "}" } +labove gap { "1fx" } +{ object ``` object } +labove gap { "1fx" } +} +} +where {@Eq {infixop}}, {@Eq {prefixop}}, {@Eq {postfixop}}, and +{@Eq {noparsop}} are identifiers naming operators which take 0, 1 +or 2 parameters, as shown, and @Eq {literalword} is a sequence of +non-space characters, or an arbitrary sequence of characters +enclosed in double quotes. Ambiguities are resolved by precedence +and associativity. +@PP +The last production allows a meaning for expressions such as +{@Code "{}"}, in which an object is missing. The value of this +@I {empty object} is a rectangle of size 0 by 0, with one column +mark and one row mark, that prints as nothing. +@PP +The second-last production generates sequences of arbitrary objects +separated by white space, called {@I paragraphs}. Ignoring +paragraph breaking for now, the natural meaning is that the two +objects should appear side by side, and Lout's parser accordingly +interpolates an infix horizontal concatenation operator (see below) +between them. This operator is associative, so the grammatical +ambiguity does no harm. However, the Algol-60 rule that white space +should be significant only as a separator is necessarily broken by +Lout in just this one place. +@PP +Algol-like languages distinguish literal strings from identifiers by +enclosing them in quotes, but literals are far too frequent in document +formatting for this to be viable. The conventional solution is to +begin identifiers with a special character, and Lout follows Scribe +[7] in using "`@'" rather than the "`\\'" of troff +[8] and @TeX [9]. +@PP +However, Lout takes the unusual step of making an initial "`@'" +optional. The designers of Eqn apparently considered such +characters disfiguring in fine-grained input like equations, and +this author agrees. The implementation is straightforward: "`@'" is +classed as just another letter, and every word is searched for in +the symbol table. If it is found, it is an identifier, otherwise it +is a literal. A warning message is printed when a literal beginning +with "`@'" is found, since it is probably a mis-spelt identifier. No +such safety net is possible for identifiers without "`@'". +@PP +Equation formatting also demands symbols made from punctuation +characters, such as @Code "+" and {@Code "<="}. It is traditional to +allow such symbols to be juxtaposed, which means that the input +@ID @Code "<=++" +for example must be interpreted within the lexical analyser by searching +the symbol table for its prefixes in the order {@Code "<=++"}, +{@Code "<=+"}, {@Code "<="}. Although this takes quadratic time, in +practice such sequences are too short to make a more sophisticated +linear method like tries worthwhile. +@End @SubSection diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s2_3 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s2_3 new file mode 100755 index 0000000000000..341ea740ad8a4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s2_3 @@ -0,0 +1,326 @@ +@SubSection + @Tag { objects } + @Title { Basic structural operators } +@Begin +@PP +A programming language may be considered complete when it attains the +power of a Turing machine, but no such criterion seems relevant to +document formatting. Instead, as the language develops and new +applications are attempted, deficiencies are exposed and the operator set is +revised to overcome them. +@PP +Lout has a repertoire of 23 primitive operators +(Figure {@NumberOf primitives}), + +@Figure + @Caption { The 23 primitive operators of Lout, in order of +increasing precedence. } + @Tag { primitives } +@Tab + vmargin { 0.5vx } + @Fmta { @Col @I A ! @Col B } +{ +@Rowa + A { object {@Code "/"}gap object } + B { Vertical concatenation with mark alignment } +@Rowa + A { object {@Code "//"}gap object } + B { Vertical concatenation with left justification } +@Rowa + A { object {@Code "|"}gap object } + B { Horizontal concatenation with mark alignment } +@Rowa + A { object {@Code "||"}gap object } + B { Horizontal concatenation with top-justification } +@Rowa + A { object {@Code "&"}gap object } + B { Horizontal concatenation within paragraphs } +@Rowa + A { {@Code "@OneCol"} object } + B { Hide all but one column mark of @I object } +@Rowa + A { {@Code "@OneRow"} object } + B { Hide all but one row mark of @I object } +@Rowa + A { font @Code "@Font" object } + B { Render @I object in nominated font } +@Rowa + A { breakstyle @Code "@Break" object} + B { Break paragraphs of @I object in nominated style } +@Rowa + A { spacestyle @Code "@Space" object } + B { Render spaces between words in nominated style } +@Rowa + A { length {@Code "@Wide"} object } + B { Render @I object to width @I length } +@Rowa + A { length {@Code "@High"} object } + B { Render @I object to height @I length } +@Rowa + A { {@Code "@HExpand"} object} + B { Expand horizontal gaps to fill available space } +@Rowa + A { {@Code "@VExpand"} object} + B { Expand vertical gaps to fill available space } +@Rowa + A { {@Code "@HScale"} object } + B { Horizontal geometrical scaling to fill available space } +@Rowa + A { {@Code "@VScale"} object } + B { Vertical geometrical scaling to fill available space } +@Rowa + A { angle {@Code "@Rotate"} object } + B { Rotate @I object by @I angle } +@Rowa + A { PostScript {@Code "@Graphic"} object } + B { Escape to graphics language } +@Rowa + A { @Code "@Next" object } + B { Add 1 to an object denoting a number } +@Rowa + A { object @Code "@Case" alternatives } + B { Select from a set of alternative objects } +@Rowa + A { identifier @Code "&&" object } + B { Cross reference } +@Rowa + A { cross-reference @Code "@Open" object } + B { Retrieve value from cross reference } +@Rowa + A { cross-reference @Code "@Tagged" object} + B { Attach cross referencing tag to object } +} + +which has proven adequate for a wide variety of features, including equations, +tables, and page layout, and so seems to be reasonably complete in this +pragmatic sense. In this section we introduce the eight concatenation and +mark-hiding operators. To them falls the basic task of assembling complex +objects from simple ones, and they were the first +to be designed and implemented. +@PP +Many of the operators of Eqn can be viewed as building small tables. A +built-up fraction, for example, has one column and three rows +(numerator, line, and denominator). Numerous investigations of this +kind convinced the author that operators capable of assembling the rows +and columns of tables would suffice for building all kinds of objects. +@PP +The simplest objects are empty objects and literal words like +{@Code metempsychosis}, which have one column mark and one row mark: +@ID { +@ShowMarks metempsychosis +} +To place two arbitrary objects side by side, we use the infix +operator {@Code "|"}, denoting horizontal concatenation. For +example, +@ID { +@Code "USA |0.2i Australia" +} +produces the object +@ID { +@ShowMarks USA |0.2i @ShowMarks Australia +} +The row marks are merged into one, fixing the vertical position of +the objects relative to each other; their horizontal separation is +determined by the @I gap attached to the operator, in this case 0.2 +inches. We think of the gap as part of the operator, although +strictly it is a third parameter. It may be omitted, defaulting to +{@Code "0i"}. +@PP +@I {Vertical concatenation} & , denoted by the infix operator {@Code "/"}, +is the same apart from the change of direction: +@ID { +@Code "Australia /0.1i USA" +} +produces the object +@ID { +@ShowMarks Australia /0.1i +@ShowMarks USA +} +with column marks merged and a 0.1 inch gap. +@PP +Consider now what happens when horizontal and vertical are combined: +@ID @OneRow @Code { + |1m "{" USA |1m "|0.2i" |1m Australia "}" +/1vx "/0.1i" | "{" Washington | "|" | Canberra "}" +} +The two parameters of @Code "/" now have two column marks each, and +they will be merged with the corresponding marks in the other +parameter, yielding the object + +@ID @OneRow { + @BackEnd @Case { + PostScript @Yield { + @ShowMarks USA & + { 0 ymark moveto xsize 10 pt add ymark lineto [ 3 pt ] 0 setdash stroke } + @Graphic {1c @Wide } + |0.2i @ShowMarks Australia +/0.1i @ShowMarks Washington | @ShowMarks Canberra + } + PDF @Yield { + @ShowMarks USA & + { [ __mul(3, __pt) ] 0 d 0 __ymark m __add(__xsize, __mul(10, __pt)) __ymark l S } + @Graphic {1c @Wide } + |0.2i @ShowMarks Australia +/0.1i @ShowMarks Washington | @ShowMarks Canberra + } + } +} +The @Code "0.2i" gap separates columns, not individual items in +columns, so a gap attached to the second @Code "|" would serve no +purpose; any such gap is ignored. If the number of marks to be merged +differs, empty columns are added at the right to equalize the number. The +four marks protruding from the result are all available for merging +with neighbouring marks by other concatenation operators. The precedence +of @Code "|" is higher than the precedence of {@Code "/"}, so the braces +could be omitted. +@PP +When lines of text are concatenated, it is conventional to measure +their separation from baseline to baseline (mark to mark in Lout), +rather than from edge to edge as above. This idea of different +reference points for measurement evolved over the years into a +system of six @I {gap modes} (Figure {@NumberOf gapmodes}), expressed +by appending a letter to the length. For example, @Code "|0.2i" is +an abbreviation for {@Code "|0.2ie"}, meaning 0.2 inches measured +from edge to edge; @Code "|0.3ix" +produces a 0.3 inch gap measured from mark to mark and widened if +necessary to prevent overstriking; and @Code "|2.5it" places its right +parameter 2.5 inches from the current left margin, irrespective of +the position of the left parameter. There is also a choice of +eleven units of measurement (inches, centimetres, multiples of the +current font size, etc.), the most interesting being +the @Code r unit: one @Code r is the column width minus the width of +the following object, so that @Code "|1rt" produces sufficient space +to right justify the following object, and @Code "|0.5rt" to center +it. These features implement spacings needed in practice rather +than suggested by theory. They work with all five concatenation +operators, horizontal and vertical. + +@Figure + @Tag { gapmodes } + @Caption { The six gap modes (@I length is any length). Hyphenation +mode has an extra property not shown here. } +@Fig { +{ /2.5vx Edge-to-edge |0.3i {@Code "|"} &1p {@I length} &1p {@Code e} + /4.2vx Hyphenation |0.3i {@Code "|"} &1p {@I length} &1p {@Code h} + /4.2vx Overstrike |0.3i {@Code "|"} &1p {@I length} &1p {@Code o} + /4.2vx Mark-to-mark |0.3i {@Code "|"} &1p {@I length} &1p {@Code x} + /4.2vx Kerning |0.3i {@Code "|"} &1p {@I length} &1p {@Code k} + /4.2vx Tabulation |0.3i {@Code "|"} &1p {@I length} &1p {@Code t} +} +||0.5i +@Box margin { 0c } 6c @Wide 14.5c @High 9p @Font +{ + @OneRow { + @At { 1c @Wide 0.5c @High } @Put { @LBox 0.2co } + @At { 4c @Wide 0.5c @High } @Put { @LBox 0.5co } + @At { 2.2c @Wide 1.4c @High } @Put { @DoubleArrow 1.8c } + @At { 2.2c @Wide 1.6c @High } @Put { 1.8c @Wide { &0.5rt @I length } } + } + //4vx + @OneRow { + @At { 1c @Wide 0.5c @High } @Put { @LBox 0.2co } + @At { 4c @Wide 0.5c @High } @Put { @LBox 0.5co } + @At { 2.2c @Wide 1.4c @High } @Put { @DoubleArrow 1.8c } + @At { 2.2c @Wide 1.6c @High } @Put { 1.8c @Wide { &0.5rt @I length } } + } + //4vx + @OneRow { + @At { 1c @Wide 0.5c @High } @Put { @LBox 0.2co } + @At { 4c @Wide 0.5c @High } @Put { @LBox 0.5co } + @At { 1.2c @Wide 1.5c @High } @Put { @DoubleArrow 3.3c } + @At { 1.2c @Wide 1.7c @High } @Put { 3.3c @Wide { &0.5rt @I length } } + } + //4vx + @OneRow { + @At { 1c @Wide 0.5c @High } @Put { @LBox 0.2co } + @At { 4c @Wide 0.5c @High } @Put { @LBox 0.5co } + @At { 1.2c @Wide 1.5c @High } @Put { @DoubleArrow 3.3c } + @At { 1.2c @Wide 1.7c @High } + @Put 3.3c @Wide { |0.5rt @Eq { max(length, a+b) } } + @At { 1.2c @Wide 0.4c @High } @Put { @DoubleArrow 1.0c } + @At { 1.2c @Wide 0.2c @High } @Put { 1.0c @Wide { &0.5rt @I a } } + @At { 4c @Wide 0.4c @High } @Put { @DoubleArrow 0.5c } + @At { 4c @Wide 0.2c @High } @Put { 0.5c @Wide { &0.5rt @I b } } + } + //4.5vx + @OneRow { + @At { 1c @Wide 0.5c @High } @Put { @LBox 0.2co } + @At { 4c @Wide 0.5c @High } @Put { @LBox 0.5co } + @At { 1.2c @Wide 1.5c @High } @Put { @DoubleArrow 3.3c } + @At { 1.2c @Wide 1.7c @High } + @Put { 3.3c @Wide { |0.5rt @Eq { max(length, a, b) } } } + @At { 1.2c @Wide 0.4c @High } @Put { @DoubleArrow 1.0c } + @At { 1.2c @Wide 0.2c @High } @Put { 1.0c @Wide { &0.5rt @I a } } + @At { 4c @Wide 0.4c @High } @Put { @DoubleArrow 0.5c } + @At { 4c @Wide 0.2c @High } @Put { 0.5c @Wide { &0.5rt @I b } } + } + //4vx + @OneRow { + @At { 1c @Wide 0.5c @High } @Put { @LBox 0.2co } + @At { 4c @Wide 0.5c @High } @Put { @LBox 0.5co } + @At { 0.0c @Wide 1.6c @High } @Put { @DoubleArrow 4.0c } + @At { 2.8c @Wide 1.8c @High } @Put { @I length } + } + //5vx + @DoubleArrow 6c + //0.1c |0.5rt @I { current bound } +} +} + +@PP +When we construct a built-up fraction, the result has three row marks, but +only the second should be visible outside the object: +@ID @Eq { @ShowMarks { X over Y } } +This is a common problem, and accordingly a @Code "@OneRow" operator was +introduced for hiding all but one of the row marks of its +parameter. Normally, the first mark is the survivor, but a later mark can +be chosen by prefixing @Code "^" to the preceding concatenation operator: +@ID @Code "@OneRow { X ^/2p @HLine /2p Y }" +has the desired result, where {@Code "2p"} is two points and @Code "@HLine" +is an easy combination of Lout's graphics operators. A similar operator, +{@Code "@OneCol"}, hides column marks. +@PP +A variant of @Code "/" called @Code "//" is provided which performs +vertical concatenation but ignores all column marks and simply +left-justifies its two parameters: +@ID @OneRow @Code { +"Heading //0.1i" +"A |0.2i B /0.1i" +"C | D" +} +has result +@ID { Heading //0.1i A |0.2i B /0.1i C | D } +showing that spanning columns in tables motivate the inclusion of this +operator. There is an analogous @Code "||" operator. The author +would have preferred to leave out these operators, since they +complicate the implementation, and it is interesting to examine the +prospects of doing so. +@PP +The @Code "//" operator is formally redundant, because in general +the expression @Code "x // y" can be replaced by +@ID @OneRow @Code { +"@OneCol { | x } /" +"@OneCol { | y }" +} +for any objects {@Code x} and {@Code y}. By concatenating an empty +object at the left of @Code x and hiding all but that empty object's +column mark, we effectively shift {@Code x}'s column mark to its left +edge. The same goes for {@Code y}, so the @Code "/" operator has just +one column mark to merge, at the extreme left, and its effect is +indistinguishable from {@Code "//"}. +@PP +Unfortunately, if @Code y consists of two rows separated by {@Code "/"}, +as in the example above, both rows must be placed inside the +{@Code "@OneCol"}, and the table cannot be entered in the simple +row-by-row manner that non-expert users naturally expect. Another +advantage of @Code "//" is that its left parameter can be printed +before its right parameter is known; this is important when the left +parameter is an entire page. +@PP +The fifth and final concatenation operator, {@Code "&"}, is an explicit +version of the horizontal concatenation operator interpolated when +objects are separated by white space. It is formally identical to +@Code "|" except for taking higher precedence and being subject to +replacement by @Code "//1vx" during paragraph breaking +(Section {@NumberOf style}). +@End @SubSection diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s2_4 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s2_4 new file mode 100755 index 0000000000000..38d25e7db4d47 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s2_4 @@ -0,0 +1,345 @@ +@SubSection + @Tag { objects.impl } + @Title { Implementation of objects and concatenation } +@Begin +@PP +In this section we discuss the implementation of objects and concatenation, +and especially mark alignment. The first step is to use an operator +precedence parser to convert input such as +@ID @Code "a |0.5i b /0.2i c | d" +into parse trees such as +@ID @Eq { +@Fig { +@Tree { +@Node @FCircle fraction +@FirstSub { + @Node @FCircle bar + @FirstSub { @Node @FCircle a } + @NextSub { @Node @FEllipse 0.5i } + @NextSub { @Node @FCircle b } +} +@NextSub { @Node @FEllipse 0.2i } +@NextSub { + @Node @FCircle bar + @FirstSub { @Node @FCircle c } + @NextSub { @Node @FCircle } + @NextSub { @Node @FCircle d } +} +} +} +} +Missing objects are replaced by empty objects, and sequences of +concatenation operators are consolidated: +@ID @Eq { +@Fig { +@Tree { +@Node @FCircle bar +@FirstSub { @Node @FCircle a } +@NextSub { @Node @FEllipse 0.2i } +@NextSub { + @Node @FCircle bar + @FirstSub { @Node @FCircle c } + @NextSub { @Node @FEllipse 0.3i } + @NextSub { @Node @FCircle d } +} +} +} +&2m ==> &2m +@Fig { +@Tree { +@Node @FCircle bar +@FirstSub { @Node @FCircle a } +@NextSub { @Node @FEllipse 0.2i } +@NextSub { @Node @FCircle c } +@NextSub { @Node @FEllipse 0.3i } +@NextSub { @Node @FCircle d } +} +} +} +to make manifest their associativity and reduce the depth of the tree +for efficiency later. +@PP +The required semantic information is the size of each subobject, +consisting of four integers: width to left and right of the +distinguished column mark, and height above and below the distinguished +row mark. These numbers are always non-negative in Basser Lout, but +this restriction is unnecessary and should be dropped. +@PP +For the leaves, which are simple words, the numbers are obtained from +font tables. For the higher levels we apply recursive rules. Suppose +that @Eq { hgap(x, g, y) } returns the desired distance between the +column marks of objects @Eq { x } and @Eq { y } when they are separated by +gap @Eq { g }: @Eq { right(x) + length(g) + left(y) } when the gap mode is +edge-to-edge, the larger of @Eq { length(g) } and +@Eq { right(x) + left(y) } when the mode is mark-to-mark, and so on. Given +an object +@ID @Eq { +X = x sub 1 ````` bar g sub 1 ````` ... ````` { "-2p" @Font "^"}bar g sub i-1 +````` x sub i ````` ... ````` bar g sub n-1 ````` x sub n +} +we may calculate its size as follows: +@ID @Eq { +left(X) ^= left( x sub 1 ) + hgap( x sub 1 , g sub 1 , x sub 2 ) ++ ... + hgap( x sub i-1 , g sub i-1 , x sub i ) +/1.4vx +right(X) ^= hgap( x sub i , g sub i , x sub i+1 ) ++ ... + hgap( x sub n-1 , g sub n-1 , x sub n ) + right( x sub n ) +/1.4vx +"above"(X) ^= "above"(x sub 1 ) up ... up "above"(x sub n ) +/1.4vx +"below"(X) ^= "below"(x sub 1 ) up ... up "below"(x sub n ) +} +where @Eq { non up } returns the larger of its two parameters. Similar +formulas are easily derived for the other operators. +@PP +For purposes of exposition we will now make the simplifying +assumptions that all gaps are {@Code "0i"}, all column marks lie at +the left edge, and all row marks lie at the top edge. Then the size +of each object can be expressed by just two numbers, width and +height, and the four formulas reduce to +@ID @Eq { +width( x sub 1 rel bar ... rel bar x sub n ) ^= +width( x sub 1 ) + ... + width( x sub n ) +/1.4vx +height( x sub 1 rel bar ... rel bar x sub n ) ^= +height( x sub 1 ) up ... up height( x sub n ) +} +The corresponding formulas for vertical concatenation are +@ID @Eq { +width( x sub 1 rel "/" ... rel "/" x sub n ) ^= +width( x sub 1 ) up ... up width( x sub n ) +/1.4vx +height( x sub 1 rel "/" ... rel "/" x sub n ) ^= +height( x sub 1 ) + ... + height( x sub n ) +} +According to these formulas, the height of +@ID @Eq { @Fig { @Tree { +@Node @FCircle fraction +@LeftSub { + @Node @FCircle bar + @LeftSub { @Node @FCircle a } + @RightSub { @Node @FCircle b } +} +@RightSub { + @Node @FCircle bar + @LeftSub { @Node @FCircle c } + @RightSub { @Node @FCircle d } +} +}}} +is +@ID @Eq { +[ height(a) up height(b)] + [ height(c) up height(d)] +} +which is correct, but for width they yield +@ID @Eq { +[ width(a) + width(b)] up [ width(c) + width(d)] +} +which is not, since it does not take the merging of column marks into +account. The asymmetry between horizontal and vertical has come +about because the row entries, such as @Eq {a} and {@Eq {b}}, are +adjacent in the tree, but the column entries, such as @Eq {a} and +{@Eq {c}}, are not. It would be possible to solve this cross-linking +problem by augmenting the size information stored in each node to +record the number of marks and the size of each, but the author has +preferred the following method which makes structural changes to the +tree instead. +@PP +If @Eq { a } and @Eq { c } share a column mark, they each might as well +have width { @Eq {width(a) up width(c) }}, since all width calculations +apply to entire columns. Accordingly, we introduce a new operator, +@Eq {COL}, defined by +@ID @Eq { width( x sub 1 bin COL ... bin COL x sub n ) = +width( x sub 1 ) up ... up width( x sub n ) +} +and replace both @Eq { a } and @Eq { c } by {@Eq { a bin COL c }}. To +prevent @Eq { COL } operators from disturbing height calculations, we +define a binary operator called @Eq { SPLIT } by +@ID @Eq { width( x bin SPLIT y) ^= width(x) +/1.4vx +height( x bin SPLIT y) ^= height(y) } +which switches height and width calculations onto different +subtrees. Then the transformation +@ID @Eq { +@Fig { @Tree { + @Node @FCircle a +}} +&2m ==> &2m +@Fig { @Tree { + @Node @FEllipse SPLIT + @LeftSub { + @Node @FEllipse COL + @LeftSub { @Node @FCircle a } + @RightSub { @Node @FCircle c } + } + @RightSub { @Node @FCircle a } +}} +} +# where @Eq { S } denotes a @Eq { SPLIT } node and @Eq { C } denotes a +# @Eq { COL } node, +widens @Eq { a } to @Eq {width(a) up width(c) } without affecting its height; +it is applied to every object that shares its column mark with at least +one other object. A similar transformation involving a @Eq { ROW } operator +deals with shared row marks. The effect on our little table is to replace +@ID @Eq { @Fig { @Tree { +@Node @FCircle fraction +@LeftSub { + @Node @FCircle bar + @LeftSub { @Node @FCircle a } + @RightSub { @Node @FCircle b } +} +@RightSub { + @Node @FCircle bar + @LeftSub { @Node @FCircle c } + @RightSub { @Node @FCircle d } +} +}}} +by +@ID @Eq { @Fig maxlabels { "70" } { @Tree hmargin { "0.1c" } { +@Node @FCircle fraction +@FirstSub { + @Node @FCircle bar + @FirstSub { + @Node @FEllipse SPLIT + @FirstSub { + @Node @FEllipse COL + @FirstSub { @Node @FCircle a } + @NextSub { @Node @FCircle c } + } + @NextSub { + @Node @FEllipse ROW + @FirstSub { @Node @FCircle a } + @NextSub { @Node @FCircle b } + } + } + @NextSub { + @Node @FEllipse SPLIT + @FirstSub { + @Node @FEllipse COL + @FirstSub { @Node @FCircle b } + @NextSub { @Node @FCircle d } + } + @NextSub { + @Node @FEllipse ROW + @FirstSub { @Node @FCircle a } + @NextSub { @Node @FCircle b } + } + } +} +@NextSub { + @Node @FCircle bar + @FirstSub { + @Node @FEllipse SPLIT + @FirstSub { + @Node @FEllipse COL + @FirstSub { @Node @FCircle a } + @NextSub { @Node @FCircle c } + } + @NextSub { + @Node @FEllipse ROW + @FirstSub { @Node @FCircle c } + @NextSub { @Node @FCircle d } + } + } + @NextSub { + @Node @FEllipse SPLIT + @FirstSub { + @Node @FEllipse COL + @FirstSub { @Node @FCircle b } + @NextSub { @Node @FCircle d } + } + @NextSub { + @Node @FEllipse ROW + @FirstSub { @Node @FCircle c } + @NextSub { @Node @FCircle d } + } + } +} +}}} +In fact, common subexpressions are identified (trivially) and the result +is a directed acyclic graph; each affected leaf has two parents, one for +width and one for height; and each @Eq { COL } or @Eq { ROW } node has +one parent and one child for each object lying on the corresponding +mark. The data structure roughly doubles in size, and this occurs only +rarely in practice. +@PP +This method can cope with any legal input, including +@ID @OneRow @Code { +"{ a // c | d } | { b / e }" +"/ { f / i } | { g | h // j }" +} +which produces overlapping spanning columns: +@ID @I @Fig { + @FBox margin { 0.2c } width { 1.6c } 1.2f @Font a | + @FBox margin { 0.2c } width { 0.6c } 1.2f @Font b | +// @FBox margin { 0.2c } width { 0.6c } 1.2f @Font c | + @FBox margin { 0.2c } width { 0.6c } 1.2f @Font d | + @FBox margin { 0.2c } width { 0.6c } 1.2f @Font e | +// @FBox margin { 0.2c } width { 0.6c } 1.2f @Font f | + @FBox margin { 0.2c } width { 0.6c } 1.2f @Font g | + @FBox margin { 0.2c } width { 0.6c } 1.2f @Font h | +// @FBox margin { 0.2c } width { 0.6c } 1.2f @Font i | + @FBox margin { 0.2c } width { 1.6c } 1.2f @Font j | +} +The boxes have been added to clarify the structure. The width of this +object is formally +@ID @Eq { ((width(a) up (x + y)) + z) up (x + ((y + z) up width(j))) } +where +@IL +@ListItem @Eq { x = width(c) up width(`f`) up width(i) } +@ListItem @Eq { y = width(d`) up width(g) } +@ListItem @Eq { z = width(b) up width(e) up width(h) } +@EL +It seems clear that @Eq { y } at least must appear twice in any +expression for the width of this object made out of simple addition +and maxing operations, showing that an ordinary tree +structure is insufficient for overlapping spanning columns. The Basser +Lout interpreter actually rejects such structures, owing to the author's +doubts about the implementability of @I Constrained and @I AdjustSize +(Section {@NumberOf constraints}) on them; but with hindsight this caution +was unnecessary. +@PP +The directed acyclic graph is ordered in the sense that the order of +the edges entering and leaving each node matters. The structure is +highly dynamic, and traversals both with and against the arrows are +required. After a few ad-hoc attempts to extend the usual tree +representation had failed, the author developed a representation based +on doubly linked lists of records denoting links, whose flexibility more +than compensated for the somewhat excessive memory consumption. For example, +@ID @Eq { @Fig { + A:: @FCircle a |2c |2c B:: @FCircle b +/1.5c C:: @FCircle c | D:: @FCircle d +// A @JoinFigures arrow { forward } C +// A @JoinFigures arrow { forward } D +// B @JoinFigures arrow { forward } D +}} +is represented by +@CD @Eq { @Fig maxlabels { "300" } { +A:: @DagBox mid { @BlackDot } base { a } |2c |2c |2c |2c +B:: @DagBox mid { @BlackDot } base { b } +/1c L:: @DagBox top { @BlackDot } mid { @BlackDot } base { LK } +| M:: @DagBox top { @BlackDot } mid { @BlackDot } base { LK } +| | N:: @DagBox top { @BlackDot } mid { @BlackDot } base { LK } +/1c +C:: @DagBox top { @BlackDot } base { c } | | +D:: @DagBox top { @BlackDot } base { d } +// @TVShape nw { A@MID@CTR } ne { A@MID@CTR } sw {L@MID@CTR } se { M@MID@CTR } +// @TVShape nw { L@TOP@CTR } ne { L@TOP@CTR } sw {C@TOP@CTR } se { C@TOP@CTR } +// @TVShape nw { M@TOP@CTR } ne { N@TOP@CTR } sw {D@TOP@CTR } se { D@TOP@CTR } +// @TVShape nw { B@MID@CTR } ne { B@MID@CTR } sw {N@MID@CTR } se { N@MID@CTR } +}} +where @Eq { LK } tags a record representing a link. The first list +in any node contains all the incoming links, the second contains the +outgoing ones. The node serves as the header for both lists. The +required operations reduce to simple appends, deletes, and traversals +of doubly linked lists, all having small constant cost. There is a +highly tuned memory allocator, and care is taken to dispose of each node +when the last incoming link is deleted, so that there is no need for +garbage collection. +@PP +In normal use the number of nodes at higher levels of the dag is small +in comparison with the leaves and their incoming links, so we may +estimate the space complexity at about 60 bytes per input word (20 bytes +per link, 40 per leaf node). Careful optimization could easily halve +this, but since memory is reclaimed after printing each page there is +little need. +@End @SubSection diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s2_5 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s2_5 new file mode 100755 index 0000000000000..87d826b3c7f2d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s2_5 @@ -0,0 +1,90 @@ +@SubSection + @Tag { style } + @Title { Context-sensitive attributes of objects } +@Begin +@PP +Although we are free to place any object in any context, the context +must influence the appearance of the object, since otherwise +@ID @Code "A short paragraph of text." +could not appear in a variety of fonts, column widths, etc. This +influence cannot take the purely static form that block-structured +languages use to associate values with identifiers, for then an operator +could not influence the appearance of its parameters; and a state +variable solution is not compatible with the overall functional design. +@PP +The information needed from the context seems quite limited, comprising +the font family, face, and size to use, the style of paragraph breaking +required, how much space to substitute between the words of paragraphs, +and how much horizontal and vertical space is available to receive the +object. These four items constitute the so-called `style information' +of Lout. As graphics rendering hardware improves, the style information +will probably grow to include colour and texture information. +@PP +The way to deal with fonts at least is very clear: +@ID @Code "{ Times Slope 12p } @Font { Hello, world }" +should have result +@ID { { Times Slope 12p } @Font { Hello, world } } +Lout also provides @Code "@Break" and @Code "@Space" symbols for +controlling the paragraph breaking and space styles mentioned +above. These work in the same way, returning their right +parameters in the style of their left. The implementation is very +simple: one merely broadcasts the style information down into the parse +tree of the right parameter. A font, for example, is converted to an +8-bit internal name and stored in each leaf, while a breaking style is +stored in the root node of each paragraph. +@PP +The same language design can be used for available width and height, +only here the implementation is much more demanding: +@ID @Code { +"2i @Wide {" +"(1) |0.1i An example" +"containing a small" +"paragraph of filled text." +"}" +} +is guaranteed to be two inches wide: +@ID { +2i @Wide { +(1) |0.1i An example +containing a small +paragraph of filled text. +} +} +One must calculate that 1.9 inches minus the width of @Code "(1)" is +available +to the paragraph, and break it accordingly; Basser Lout does this in two +stages. In the first, upward-moving stage, widths are calculated using the +formulae of Section {@NumberOf objects}, which assume that available +space is infinite. If the upward movement reaches a @Eq { WIDE } +node, corresponding to a @Code "@Wide" operator, and +the calculated width exceeds that allowed, a second, downward-moving stage +is initiated which attempts to reduce the width by finding and breaking +paragraphs. This second stage is quite routine except at @Code "|" nodes, +whose children are the columns of a table. It is necessary to apportion +the available width (minus inter-column gaps) among the columns. Basser +Lout leaves narrow columns unbroken and breaks the remaining columns to +equal width, using up all of the available space. +@PP +The size of an object is not clearly determined when the upward-moving +size is less than the downward-moving available space, and the object +contains constructs that depend on available space (e.g. right +justification). For example, in +@ID @Code "2i @Wide { Heading // a |1rt b }" +it seems natural to assign a width of two inches to the subobject +@Code "a |1rt b" because of the right justification, but it would be +equally plausible if the width of @Code Heading was assigned to the +subobject instead. The author is conscious of having failed to resolve +this matter properly; an extra operator for controlling available space +is probably necessary. +@PP +The actual paragraph breaking is just a simple transformation on the +parse tree; the real issue is how to describe the various styles: ragged +right, adjusted, outdented, and so on. Their diversity suggests that +they should somehow be defined using more basic features; but then there +are algorithms for high-quality paragraph breaking, which presumably +must be built-in. This dilemma was not clearly grasped by the author in +1985, and he included a built-in paragraph breaker, with the @Code +"@Break" operator selecting from a fixed set of styles. A much better +solution based on galleys will be given in Section {@NumberOf horizontal}, +but, regrettably, it is not implemented. +@End @SubSection diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s2_9 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s2_9 new file mode 100755 index 0000000000000..648a1b6c0dfc4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s2_9 @@ -0,0 +1,2 @@ +@EndSubSections +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s3_0 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s3_0 new file mode 100755 index 0000000000000..3f42ff5263c58 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s3_0 @@ -0,0 +1,10 @@ +@Section + @Title { Definitions } +@Begin +@PP +The need to provide a means of packaging useful pieces of code for easy +repeated use was recognised in the very earliest programming +languages. This need is even more acute in document formatting, if that +is possible, because the majority of users are not programmers and do +not understand the code they invoke. +@BeginSubSections diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s3_1 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s3_1 new file mode 100755 index 0000000000000..2fb44c6ba8fd1 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s3_1 @@ -0,0 +1,76 @@ +@SubSection + @Tag { operators } + @Title { Operators } +@Begin +@PP +It is evident from the example of Eqn that user-defined operators are +needed that mimic the primitive ones in taking objects as parameters +and returning objects as results. For example, to define a superscript +operator so that +@ID @Code "2 sup n" +appears as {@Eq {2 sup @R n}}, the following operator definition may +be used: +@ID @OneRow @Code { +"def sup" +" precedence 50" +" associativity right" +" left x" +" right y" +"{" +" @OneRow { | {-2p @Font y} ^/0.5fk x }" +"}" +} +The @Code "sup" operator has precedence 50, is right associative, takes +two objects as parameters passed on the left and right, and returns the +object between braces as result. This object has the structure +@ID @I +2p @Font { +| @ShowMarks @Code y / @ShowMarks @Code x +} +but with the first row mark hidden by the @Code "@OneRow" operator, +and @Code y two points smaller than it would otherwise have been. The +length @Code "0.5f" specifies half the current font size; Figure +{@NumberOf gapmodes} describes the @Code k gap mode. In the Eq equation +formatting package [10] the equation as a whole is +set in italic font, and @Code 2 is an identifier whose body contains +a font change back to Roman. The digits @Code 0 to @Code 9 are classed +as punctuation characters, permitting @Code 234 for example to be +interpreted as a sequence of three identifiers. +@PP +These definitions are easily implemented by a standard symbol table +and an operator precedence parser. Algol block structure with the +usual scope rules was adopted as a matter of course. +@PP +Operators are limited to at most two parameters, left and +right, and the parameters cannot be given default values. @I Named +parameters solve both problems: +@ID @OneRow @Code { +"def @Preface" +" named @Tag {}" +" named @Title { Preface }" +" right @Body" +"{" +" Bold @Font @Title" +" //0.3v @Body" +"}" +} +The default value appears just after the parameter's declaration, +between braces. Invocations have a natural syntax: +@ID @OneRow @Code { +"@Preface" +" @Title { About this book }" +"{" +" Few observers would have supposed in 1984, that ..." +"}" +} +with the actual named parameters following directly after the +operator, before any right parameter. In this example, @Code "@Tag" +will receive its default value, and a less expert user could safely +omit the @Code "@Title" parameter as well. +@PP +Lout permits named parameters to have parameters, a feature with +applications to bibliographic databases, running headers, and other +places where a format has to be supplied before content is +known. One could go further and provide a complete lambda calculus, +with functions as first-class objects, provided care was taken not +to intimidate the non-expert user. +@End @SubSection diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s3_2 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s3_2 new file mode 100755 index 0000000000000..0c5fd70845f54 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s3_2 @@ -0,0 +1,113 @@ +@SubSection + @Tag { recursion } + @Title { Recursion and page layout } +@Begin +@PP +Design and implementation should proceed together in exploratory projects, +since otherwise the design too easily becomes unrealistic. Sometimes the +implementation does more than its designer intended. The author wrote the +following purely as a testing scaffold: +@ID @OneRow @Code { +"def @Page right x" +"{" +" 8i @Wide 11i @High" +" {" +" //1i ||1i x ||1i" +" //1i" +" }" +"}" +} +Only afterwards did he realize its significance: the concept of a page +had been defined outside the implementation, removing the need for +commands for setting page width and height, margins, and so on. +@PP +Defining a sequence of pages is harder, since their number is not known +in advance. A simple version of this same problem is afforded by the +leaders found in tables of contents: +@ID { +4i @Wide { Chapter 7 @Leaders 53 } +} +This seemed to require recursion, specifically the definition +@ID @Code { +"def @Leaders { .. @Leaders }" +} +Note that both @Code ".." and @Code "@Leaders" are objects, so the two +spaces separating them are significant. No base case is given, and indeed +we have no boolean or conditional operators with which to express it; +but we can adopt the implicit base `if space is not sufficient, delete +{@Code "@Leaders"} and any preceding space'. Then the expression +@ID @Code "4i @Wide { Chapter 7 @Leaders 53 }" +will produce the object shown above. It is hard to see how this base +could be made explicit, without violating the general principle of +keeping all size information internal. In the implementation, +@Code "@Leaders" remains unexpanded while sizes are being +calculated; then it is treated similarly to a receptive symbol, with +its body as an incoming galley (Section {@NumberOf flushing}). +@PP +With this settled, it is now clear how to define a document which is a +numbered sequence of pages. Let @Code "@Next" be a prefix operator +which returns its parameter plus one. Then +@ID @OneRow @Code { +"def @PageList" +" right @PageNum" +"{" +" @Page {" +" |0.5rt - @PageNum -" +" //1v @TextPlace" +" //1rt @FootSect" +" }" +" //" +" @PageList @Next @PageNum" +"}" +} +when invoked in the expression {@Code "@PageList 1"}, has for its result +the potentially infinite object +@ID @OneRow { +@LittlePage { +|0.5rt - 1 - +//1.2vx @Code "@TextPlace" +//1rt @Code "@FootSect" +} +// +@LittlePage { +|0.5rt - 2 - +//1.2vx @Code "@TextPlace" +//1rt @Code "@FootSect" +} +//0.2c +8p @Font @Code "@PageList 3" +} +Similarly, we may define @Code "@FootSect" like this: +@ID @OneRow @Code { +"def @FootSect" +"{" +" def @FootList" +" right @Num" +" {" +" @FootPlace" +" //1v" +" @FootList @Next @Num" +" }" +"" +" 1i @Wide @HLine" +" //1v" +" @FootList 1" +"}" +} +so that an invocation of @Code "@FootSect" produces +@ID @OneRow @Code { +1i @Wide @HLine +"@FootPlace" +"@FootPlace" +"@FootPlace" +"..." +} +The expansion process is very similar to a BNF derivation, and would be +attempted only on demand. +@PP +Clearly, deciding which expansions to take and replacing @Code "@TextPlace" +and {@Code "@FootPlace"} by the appropriate actual text will not be easy; +this is the subject of Section {@NumberOf galleys}. The important point +for now is that we have here a very simple and flexible method of specifying +the layout of pages, which requires no specialized language features. +@End @SubSection diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s3_3 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s3_3 new file mode 100755 index 0000000000000..d04a8dbba8385 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s3_3 @@ -0,0 +1,143 @@ +@SubSection + @Tag { modules } + @Title { Modules } +@Begin +@PP +It is well accepted that the visibility of symbols is not adequately +controlled by Algol block structure. The author is aware of several +major problems of this kind in document formatting. +@PP +One problem is that some symbols should be visible only within +restricted parts of a document. For example, we naturally expect +equation formatting to be accomplished like this: +@ID @OneRow @Code { +"surrounding text" +"@Eq { {x sup 2 + 1} over 4 }" +"surrounding text" +} +with the symbols {@Code "sup"}, {@Code "over"}, etc., visible only within +the equation, not in the surrounding text. +@PP +It seems natural to define these symbols within {@Code "@Eq"}, since +they are local to equations. It only remains then to decree that +symbols local to @Code "@Eq" are to be visible within its actual right +parameter, and this is done by replacing the right formal parameter with a +@I body parameter: +@ID @OneRow @Code { +"export sup over" +"def @Eq" +" body @Body" +"{" +" def sup ..." +" def over ..." +"" +" Slope @Font @Body" +"}" +} +The @Code export clause lists the identifiers which are permitted to be +visible outside their usual range, the body of {@Code "@Eq"}; and the +@Code body declaration imports them into (makes them visible within) +the actual right parameter of each invocation of {@Code "@Eq"}. This +arrangement has proven very convenient for defining a variety of +special-purpose packages. +@PP +Another problem arises when global symbols, such as the ones used for +headings and paragraph separators, call on values that the non-expert +user will need to modify, such as the initial font or paragraph +indent. These values are like parameters of the document as a whole, so +it is natural to try this: +@ID @OneRow @Code { +"export @Heading @PP ..." +"def @BookLayout" +" named @InitialFont { Times Base 12p }" +" named @InitialBreak { adjust 14p }" +" named @ColumnWidth { 6i }" +" ..." +"{" +" def @Heading ..." +" def @PP ..." +"}" +} +Now @Code "@Heading" and @Code "@PP" may invoke @Code "@InitialFont" +and the other parameters. To make @Code "@Heading" and @Code "@PP" +visible throughout the document, we need only add a body parameter to +@Code "@BookLayout" and present the entire document as +@ID @OneRow @Code { +"@BookLayout" +" @InitialFont { Helvetica Base 10p }" +" @InitialBreak { adjust 12p }" +"{" +" The document." +"}" +} +but for practical reasons given below we prefer not to enclose the +entire document in braces. Instead, we write +@ID @OneRow @Code { +"@Use { @BookLayout" +" @InitialFont { Helvetica Base 10p }" +" @InitialBreak { adjust 12p }" +"}" +"The document." +} +which has the same effect: @Code "@Use" makes the exported symbols of +@Code "@BookLayout" visible for the remainder of the document, and is +permitted only at the beginning. +@PP +The third feature that affects visibility, and which will prove useful +for cross referencing (Section {@NumberOf cross}), is the @Code "@Open" +symbol. It makes the exported symbols of its left parameter visible +within its right parameter, and is therefore similar to the Pascal @Code +with statement. +@PP +It could be argued that Lout is over-supplied with these visibility modifying +features: the body parameter, @Code "@Use" and @Code "@Open" do not seem +sufficiently different from each another. The @Code "@Open" symbol is +the most general, being capable of replacing the other two. For +example, +@ID @OneRow @Code { +"@Use { x }" +"@Use { y }" +"Body of document" +} +can be replaced by +@ID @OneRow @Code { +"x @Open {" +"y @Open {" +"Body of document" +"}}" +} +and, taking the @Code "@Eq" symbol above as example, we could eliminate +its body parameter, add +@ID @Code "def @Body right x { Slope @Font x }" +to the exported definitions of {@Code "@Eq"}, and replace +@ID @Code "@Eq { object }" +by +@ID @Code "@Eq @Open { @Body { object } }" +If @Code "@Eq" is a galley (Section {@NumberOf galleys}), @Code "@Body" +must take over that function. But one would not want to write these +clumsy expressions in practice, and the enclosure of large quantities +of input in extra braces could cause Basser Lout to run out of memory +(Section {@NumberOf lookahead}). +@PP +A quite separate kind of visibility problem arises when expert +users wish to define an object or operator for repeated use within, say, +equations: +@ID @Code "def isum { sum from i=1 to n }" +As it stands this can only be placed within the @Code "@Eq" package itself, +where @Code "sum" and the other symbols are visible, but it is not desirable +to modify the source code of a standard package. Lout provides an +@Code "import" clause to solve this problem: +@ID @OneRow @Code { +"import @Eq" +"def isum { sum from i=1 to n }" +} +may appear after @Code "@Eq" is defined, and it will make the exported symbols +of @Code "@Eq" visible within the body of {@Code "isum"}. This feature +complicates the treatment of environments (Section {@NumberOf defs.impl}), +and even introduces an insecurity, when @Code isum is invoked outside an +equation. A simpler approach would be to allow only one symbol in an +@Code import clause, and treat the following definition exactly like a +local definition of that symbol; but then it would not be possible +to define symbols using the resources of more than one of the standard +packages. +@End @SubSection diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s3_4 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s3_4 new file mode 100755 index 0000000000000..7b0f5bc581884 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s3_4 @@ -0,0 +1,51 @@ +@SubSection + @Tag { defs.impl } + @Title { Implementation of definitions } +@Begin +@PP +Input is processed by a hybrid parser which employs operator precedence +for objects and simple recursive descent for the headers of +definitions. A symbol table stores the body of each definition as a +parse tree, except for macros which are lists of tokens, and manages the +usual stack of static scopes, accepting @I PushScope and @I PopScope +operations as the parser enters and leaves scope regions, including +actual body parameters and the right parameter of the @Code "@Open" +operator. +@PP +As the parse proceeds, a complete call graph is constructed, recording, +for each symbol, which symbols are invoked within its body. Immediately +after the last definition is read, the transitive closure of the call +graph is computed, and used to determine whether each non-parameter +symbol is recursive or receptive (Section {@NumberOf galleys}), and +whether each parameter is invoked exactly once or not. +@PP +Purely functional systems may evaluate symbol invocations in applicative +order (where parameters are evaluated before substitution into bodies), +or in normal order (substitution before evaluation), and they may also +share the value of a parameter among all uses of it. But in Basser +Lout, the presence of context-sensitive style information (Section +{@NumberOf style}) forces normal order evaluation and prevents sharing +of parameter values. +@PP +To evaluate an unsized object (pure parse tree), its {@I environment}, +the equivalent of the stack frames in Algol-like languages, must be +available, containing the actual values of all formal parameters +that are visible within the unsized object. Environment handling is +a well-known implementation technique, so it will be discussed +only briefly here. +@PP +Environments are extra subtrees hung from the objects they refer +to. This organization makes excellent use of the ordered dag to +permit environments to be shared, and deleted when the last +reference to them is removed. Several optimizations have been +implemented. Actual parameters known to be invoked only once are moved +in from the environment, not copied; copying could lead to quadratic time +complexity. Actual parameters of the form @Code "@Next" @I object +receive an applicative pre-evaluation which prevents long chains of +@Code "@Next" symbols from forming during the generation of large page +numbers. Some environments which provably contribute nothing are +deleted, most notably when a symbol invocation has no symbols within its +actual parameters and no import list, so that only the environment of its +body need be kept; this saves a great deal of space when objects with +environments are written to auxiliary files (Section {@NumberOf cross}). +@End @SubSection diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s3_9 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s3_9 new file mode 100755 index 0000000000000..648a1b6c0dfc4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s3_9 @@ -0,0 +1,2 @@ +@EndSubSections +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s4_0 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s4_0 new file mode 100755 index 0000000000000..5f894266477ec --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s4_0 @@ -0,0 +1,88 @@ +@Section + @Tag { functional } + @Title { Implementation of the functional subset } +@Begin +@PP +The objects and definitions of Lout are very similar to those found in +other functional languages, and they form a natural subset of the +language. So we pause here and present an overview of the Basser Lout +object evaluation algorithm. +@PP +The problem is to take an unsized object (pure parse tree), its +environment (Section {@NumberOf defs.impl}), and its style +(Section {@NumberOf style}), and to produce a PostScript file for +rendering the object on an output device. This file is essentially a +sequence of instructions to print a given string of characters in a +given font at a given point. +@PP +Before the algorithm begins, the parse tree must be obtained, either by +parsing input or by copying from the symbol table. Afterwards the data +structure must be disposed. The algorithm proper consists of five +passes, each a recursive traversal of the structure from the root down +to the leaves and back. +@DP +@I {1. Evaluation of unsized objects.} On the way down, calculate +environments and replace non-recursive, non-receptive symbols by their +bodies (Section {@NumberOf defs.impl}); broadcast fonts to the leaves, +and paragraph breaking and spacing styles to the paragraph nodes. On the +way back up, delete @Eq { FONT }, @Eq { BREAK }, and @Eq { SPACE } nodes, +and insert @Eq { SPLIT }, @Eq { COL }, and @Eq { ROW } nodes +(Section {@NumberOf objects}). +@DP +@I {2. Width calculations and breaking.} Calculate the width of every +subobject from the bottom up. As described in Section {@NumberOf objects}, +@Eq { WIDE } nodes may trigger object breaking sub-traversals during this pass. +@DP +@I {3. Height calculations.} Calculate the height of every subobject, +from the bottom up. +@DP +@I {4. Horizontal coordinates.} Calculate the horizontal coordinate of +each subobject from the top down, and store each leaf's coordinate in +the leaf. +@DP +@I {5. Vertical coordinates and PostScript generation.} Calculate the +vertical coordinate of every subobject from the top down, and at each +leaf, retrieve the character string, font, and horizontal coordinate, +and print the PostScript instruction for rendering that leaf. +@DP +Figure {@NumberOf components} gives the amount of code required for each + +@Figure + @Tag { components } + @Caption { Major components of the Basser Lout interpreter, showing +the approximate number of lines of C code. } +@Begin +@Tab + vmargin { 0.5vx } + @Fmta { @Col @RR A ! @Col B ! @Col @RR C } + @Fmtb { @Col @RR A ! @Col B ! @Col C } +{ + @Rowa A { 1. } B { Initialization } C { 200 } + @Rowa A { 2. } B { Memory allocation, ordered dag operations } C { 400 } + @Rowa A { 3. } B { Lexical analysis, macros, file handling } C { 1,350 } + @Rowa A { 4. } B { Parsing of objects and definitions } C { 1,150 } + @Rowa A { 5. } B { Symbol table and call graph } C { 600 } + @Rowa A { 6. } B { Evaluation of pure parse trees } C { 1,650 } + @Rowa A { 7. } B { Reading, storing, and scaling of fonts } C { 600 } + @Rowa A { 8. } B { Cross references and databases } C { 1,000 } + @Rowa A { 9. } B { Width and height calculations, and breaking } C { 700 } + @Rowa A { 10. } B { @I Constrained and @I AdjustSize } C { 700 } + @Rowa A { 11. } B { Transfer of sized objects into galley tree } C { 450 } + @Rowa A { 12. } B { Galley flushing algorithm } C { 1,500 } + @Rowa A { 13. } B { Coordinate calculations and PostScript output } C { 700 } + @Rowa A { 14. } B { Debugging and error handling } C { 1,200 } + @Rowb vmargin { 0.1c } C { @Line } + @Rowa C { 12,200 } +} +@End @Figure + +pass. Symmetry between horizontal and vertical is exploited throughout +Basser Lout, and passes 2 and 3, as well as 4 and 5, are executed on +shared code. +@PP +The author can see no simple way to reduce the number of passes. The +introduction of horizontal galleys (Section {@NumberOf horizontal}) +would remove the need for the object breaking transformations within this +algorithm that are the principal obstacles in the way of the merging of +passes 2 and 3. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s5_0 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s5_0 new file mode 100755 index 0000000000000..d176f77727763 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s5_0 @@ -0,0 +1,11 @@ +@Section + @Title { Galleys } +@Begin +@PP +With objects and definitions under control, the author faced the problem +of getting body text, footnotes, floating figures and tables, +references, index entries, and entries in the table of contents into +their places. The resulting investigation occupied three months of +full-time design work, and proceeded approximately as described in +Section {@NumberOf galleys}; the implementation occupied the years 1987-89. +@BeginSubSections diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s5_1 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s5_1 new file mode 100755 index 0000000000000..ab65bb93d3206 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s5_1 @@ -0,0 +1,123 @@ +@SubSection + @Tag { galleys } + @Title { The galley abstraction } +@Begin +@PP +Let us take the footnote as a representative example. At some point in +the document, we wish to write +@ID @OneRow @Code { +"preceding text" +"@FootNote { footnote text }" +"following text" +} +and we expect the formatter to remove the footnote from this context and +place it at the bottom of the current page, possibly splitting some or +all of it onto a following page if space is insufficient. +@PP +An object appears in the final document at the point it is invoked, but +this basic property does not hold for footnotes: the point of +invocation and the point of appearance are different. In some way, the +footnote is attached to the document at both points, introducing a cross +linking (Section {@NumberOf genesis}) that cannot be described in purely +functional terms. +@PP +Since the interpretation of any object depends on an environment and +style inherited from the context, the first question must be whether +the footnote inherits them through the invocation point or through +the point(s) of appearance. +@PP +If symbols are to be interpreted statically as heretofore, then environments +must be inherited through the invocation point alone. Dynamic inheritance +through the point of appearance is enticing in some ways: it might +replace the body parameter, and it might help with automatic numbering, +since the number of a footnote is known only at the point of appearance; +but the implementation problems are severe, and static inheritance seems +much simpler and more comprehensible to the user. Style, at least its +available width and height part, must of necessity be inherited through +the point of appearance. For consistency, the entire style should be +inherited in this way. There is a suggestive analogy here with actual +parameters, which have a point of invocation from which they inherit an +environment, and a point of appearance within the body of the enclosing +definition, from which they inherit a style. It may be possible to treat +a footnote as the actual parameter of some symbol, therefore, although +the details seem very obscure. +@PP +But the most profound consequence of having two types of attachment +point is that it leads to two distinctive tree structures. Considering +invocation points only leads to static trees like this one: +@ID @I @Fig margin { 0.3c } { @Tree { +@Node @Ellipse { body text } +@LeftSub { @Node @Ellipse footnote } +@RightSub { + @Node @Ellipse figure + @FirstSub { @Node @Ellipse footnote } +} +}} +which shows that the body text contains a footnote and a figure, the +latter itself containing a footnote. Considering points of appearance +only gives a completely different, dynamic tree: +@ID @I @Fig margin { 0.3c } { @Tree { +@Node @Ellipse { sequence of pages } +@FirstSub { @Node @Ellipse { body text } } +@NextSub { @Node @Ellipse { footnote } } +@NextSub { @Node @Ellipse { figure } } +@NextSub { @Node @Ellipse { footnote } } +}} +The tree can be deeper, for example with sections appearing within +chapters which appear within the body text, which appears within the +final sequence of pages. Document formatting languages generally shirk +the issues raised by this dual tree structure, by making the dynamic +tree built-in, by limiting one or both trees to two levels, and so on, +providing a classic example of the impoverishing effect of failing to +permit language features to attain their natural level of generality. +@PP +We are thus led to propose a second abstraction for document formatting, +which we name the @I galley in recognition of its similarity to the +galleys used in manual typesetting. A galley consists of an object (such +as a footnote) together with a sequence of places where that object may +appear (such as the bottoms of the current and following pages). Splitting +occurs quite naturally when space at any place is insufficient to hold +the entire object. +@PP +In Lout, a footnote galley and its place of appearance are defined +as follows: +@ID @OneRow @Code { +"def @FootPlace { @Galley }" +"" +"def @FootNote into { @FootPlace&&following }" +" right x" +"{ x }" +} +The @Code "@FootPlace" symbol contains the special symbol {@Code "@Galley"}, +indicating that it is a point of appearance for a galley. By placing +invocations of @Code "@FootPlace" at the bottoms of pages, as in Section +{@NumberOf recursion}, we define the desired points of appearance for +footnotes. Symbols whose body contains @Code "@Galley" either directly +or indirectly are called receptive symbols, meaning receptive to +galleys, and they are expanded only on demand. The effect of the +@Code "into" clause is to make each invocation of @Code "@FootNote" a +galley whose object is the result of the invocation in the usual way, +and whose sequence of points of appearance is specified by the @Code "into" +clause; in this example, the sequence of all @Code "@FootPlace" symbols +following the invocation point. +@PP +Lout permits galleys to be invoked within other galleys to arbitrary +depth, so that one may have footnotes within figures within the body +text galley, for example, creating arbitrary static trees. Receptive +symbols like @Code "@FootPlace" may appear within any galley, creating +arbitrary dynamic trees as well. The root of the dynamic tree, which +would normally consist of the sequence of pages of the complete assembled +document, is considered to be a galley whose point of appearance is the +output file. Points of appearance may be @Code preceding or @Code following +the invocation point; entries in tables of contents are the main users +of {@Code preceding}. +@PP +The galley abstraction is adequate for all of the applications listed at +the beginning of this section, except that there is no provision for +sorting index entries and references. Sorting of galleys has been added +to Lout as a built-in feature, invoked by adding a special @Code "@Key" +parameter to the galleys, and using its value as the sort key. The author +was at a loss to find any other way, or any useful generalization of this +feature. Its implementation will be discussed in Section +{@NumberOf cross.impl}. +@End @SubSection diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s5_2 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s5_2 new file mode 100755 index 0000000000000..a81630d4358aa --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s5_2 @@ -0,0 +1,372 @@ +@SubSection + @Tag { flushing } + @Title { The galley flushing algorithm } +@Begin +@PP +Galley components are promoted one by one into the point of appearance in +the dynamic parent galley, then carried along with it, ultimately to the +root galley and the output file. This process is called @I galley +{@I flushing}: the galleys are rivers running together to the sea, and +each component is a drop of water. +@PP +Here is a snapshot of a small dynamic tree, based on the @Code "@PageList" +definitions of Section {@NumberOf recursion}: +@ID @Fig { + +@I 10p @Font { output file } A:: @Box linestyle { noline } margin { 0c } + +||2c + +{ +@I 10p @Font { root galley } +//0.2c +B:: @Box margin { 0c } linestyle { noline } +// +@LittlePage { +|0.5rt - 1 - +//1.2vx &2m A small +//1.2vx @Code "@Galley" * C:: @Box margin { 0.01c } linestyle { noline } +//1rt @Code "@FootSect" +} +// +@Box margin { 0.3c } 2.8c @Wide 8p @Font @Code "@PageList 2" +} + +||2c + +{ +//0.9c @I 10p @Font { body text } +//0.2c D:: @Box margin { 0.3c } 2.8c @Wide 8p @Font paragraph +// @Box margin { 0.3c } 2.8c @Wide 8p @Font { of text. } +// @Box margin { 0.3c } 2.8c @Wide @Code 8p @Font "@Input" +} + +// @Arrow from { B@W } to { A@E } +// @Arrow from { D@W } to { C@E } + +} +The components of the body text galley are lines, except for the special +receptive symbol @Code "@Input" which is a placeholder for as yet unread +input (Section {@NumberOf lookahead}). The components of the root galley are +pages, except for the concluding unexpanded invocation of {@Code "@PageList"}, +which is an inexhaustible source of more pages, expanded on demand. +@PP +The concrete data structure used by Basser Lout permits the galley +flushing algorithm to navigate the dynamic tree and find significant +features quickly: +@ID 10p @Font @Fig maxlabels { 100 } { + +A:: @Ellipse @I { HEAD } + +||1.5c + +@OneCol @OneRow { +B:: @Ellipse @I { RECEIVING * } +// @Arrow from { A@CTR ++ {A@CTR @Angle B@W A@CIRCUM} } to { B@W } +//0.6c +C:: @Ellipse @I { RECEPTIVE } +// @Arrow from { A@CTR ++ {A@CTR @Angle C@W A@CIRCUM} } to { C@W } +//0.6c +D:: @Box margin { 0c } linestyle { noline } +// @Arrow from { A@CTR ++ {A@CTR @Angle D@NW A@CIRCUM} } to { D@NW } +// +@LittlePage { +|0.5rt - 1 - +//1.2vx &2m A small +//1.2vx E:: @Box margin { 0c } linestyle { noline } @Code "@Galley " +//1rt F:: @Box margin { 0c } linestyle { noline } @Code "@FootSect " +} +// @FunnyArrow arrow { forward } from { B@E } to { E@E } +// @FunnyArrow arrow { forward } from { C@E } to { F@E } +//0.6c +C:: @Ellipse @I { GAP } +// @Arrow from { A@CTR ++ {A@CTR @Angle C@W A@CIRCUM} } to { C@W } +//0.6c +C:: @Ellipse @I { RECEPTIVE } +// @Arrow from { A@CTR ++ {A@CTR @Angle C@W A@CIRCUM} } to { C@W } +//0.6c +D:: @Box margin { 0.3c } 2.8c @Wide 8p @Font @Code "@PageList 2" +// @Arrow from { A@CTR ++ {A@CTR @Angle D@NW A@CIRCUM} } to { D@NW } +// @FunnyArrow from { C@E } to { D@W ++ { 1.8 cm 0 } } +} + +||1.0c + +A:: @Ellipse @I { HEAD } +& @Arrow from { B@E } to { A@W } + +||1.5c + +@OneCol @OneRow { +B:: @Box margin { 0.3c } 2.8c @Wide 8p @Font paragraph +// @Arrow from { A@CTR ++ {A@CTR @Angle B@W A@CIRCUM} } to { B@W } +//0.6c +B:: @Ellipse @I { GAP } +// @Arrow from { A@CTR ++ {A@CTR @Angle B@W A@CIRCUM} } to { B@W } +//0.6c +B:: @Box margin { 0.3c } 2.8c @Wide 8p @Font { of text. } +// @Arrow from { A@CTR ++ {A@CTR @Angle B@NW A@CIRCUM} } to { B@NW } +//0.6c +B:: @Ellipse @I { GAP } +// @Arrow from { A@CTR ++ {A@CTR @Angle B@W A@CIRCUM} } to { B@W } +//0.6c +B:: @Ellipse @I { RECEPTIVE } +// @Arrow from { A@CTR ++ {A@CTR @Angle B@W A@CIRCUM} } to { B@W } +//0.6c +C:: @Box margin { 0.3c } 2.8c @Wide 8p @Font @Code "@Input" +// @Arrow from { A@CTR ++ {A@CTR @Angle C@NW A@CIRCUM} } to { C@NW } +// @FunnyArrow from { B@E } to { C@W ++ { 1.2 cm 0 } } +} + +} +Each galley has a @Eq { HEAD } node whose children are its component +objects, separated by @Eq { GAP } nodes recording the inter-component +gaps. +@PP +Each component is preceded by zero or more @I {galley index nodes} of +various types. Every receptive symbol has a @Eq { RECEPTIVE } index pointing +to it, so that it can be found without searching through its +component. If the symbol is currently the target of a galley, it has a +@Eq { RECEIVING } index instead which is also linked to the incoming +galley. Galleys that are currently without a target are linked to the +dynamic tree by @Eq { UNATTACHED } galley indexes, either just after their +most recent target if there has been one, or else at their point of +invocation. +@PP +Each galley should be thought of as a concurrent process, although the +implementation in C uses coroutines implemented by procedures. A galley +may promote its first component only if it has a target, sufficient space +is available at the target to receive the component, and the component +contains no receptive symbols. This last condition seems to be the key +to galley synchronization: it forces a bottom-up promotion regime, +preventing pages from flushing to output before text flushes into them, +for example. +@PP +Each galley contains a number of binary semaphores, shown as asterisks +in our snapshots when set. At any given moment, a galley process is +either running or else is suspended on one of its own semaphores. The +@Eq { HEAD } node contains a semaphore which is set when the galley has tried +to find a target and failed. Each receptive symbol has a semaphore +which is set when that symbol is preventing the first component from +being promoted. +@PP +For example, in the snapshot at the beginning of this section, the root +galley is suspended on the @Code "@Galley" symbol, but the text galley +is running. It will suspend on the @Code "@Input" symbol after the +first two components are promoted. +@PP +Every galley {@I G}, be it a list of pages, body text, a footnote, or +whatever, executes the following algorithm in parallel with every other +galley: +@DP +1. Initially @I G is unattached. Search forwards or backwards from its +@Eq { UNATTACHED } index as required, to find a receptive symbol @I S which +can expand to reveal a target for {@I G}. +@DP +2. If no @I S can be found, suspend on the attachment semaphore. Resume +later from step 1. +@DP +3. Expand @I S to reveal the target of {@I G}. Preserve {@I S}'s +semaphore by moving it to the first receptive symbol within the +expansion of {@I S}. +@DP +4. Calculate the available width and height at the target, and if +@I G is still a pure parse tree, use the environment attached to @I G +and the style information from the target to evaluate @I G as in +Section {@NumberOf functional}. +@DP +5. Examine the components of @I G one by one. For each component there +are three possibilities: +@PP +@I ACCEPT. If the component fits into the available space, and has +no other problems, then promote it into the target. If this is the +first component promoted into this target, and @I G is a forcing +galley (Section {@NumberOf lookahead}), delete every receptive symbol +preceding the target in the parent galley. If @I G is the root galley, +render the component on the output file and dispose it; +@PP +@I REJECT. If the component is too large for the available space, or a +@Eq { FOLLOWS } index (described below) forbids its promotion into this +target, then detach @I G from the target. If this was the first component +at this target, @I S has been a complete failure, so undo step 3 (Basser +Lout is not able to undo step 4); otherwise delete the target. Return to +step 1 and continue immediately; +@PP +@I SUSPEND. If the component contains a receptive symbol, it cannot be +promoted yet. If this symbol is the target of a galley that was written +to an auxiliary file on a previous run, read in that galley and flush +it. Otherwise suspend on the receptive symbol's semaphore; resume later +from step 4. +@DP +6. Terminate when the galley is empty. +@DP +At various points in this algorithm, receptive symbols (and their +semaphores) are deleted in the dynamic parent galley, possibly +permitting it to resume flushing. When this happens, Basser Lout resumes +the parent immediately after @I G suspends or terminates. Also, +whenever a component is promoted, any child galleys connected to +it by @Eq { UNATTACHED } indexes must be resumed, since these +galleys may be able to find a target now. A good example of this +situation occurs when a line of body text with one or more footnotes +is promoted onto a page. Basser Lout gives priority to such children, +suspending @I G while each is given a chance to flush. +@PP +Basser Lout searches for the first target of @I G only in regions of the +dynamic tree that will clearly precede or follow {@I G}'s invocation +point in the final printed document, whichever is specified in the +@Code into clause; subsequent targets are sought later in the same +galley as the first. An exception to this rule, whose necessity will +be made clear later, is that a first @Code following target will be +sought within a dynamic sibling galley preceding {@I G}'s invocation +point: +@ID 10p @Font @Fig { + +{ +@I { dynamic parent } +//0.2c +@Box 2.8c @Wide 4.5c @High +{ + //0.5c A:: @Box margin { 0c } linestyle { noline } @Code "@XTarget" + //1.0c C:: @Box margin { 0c } linestyle { noline } @Eq { UNATTACHED } + //1.3c @Code "@XTarget" +} +} + +||1.5c + +{ +//0.6c +B:: @Box margin {0c} linestyle {noline} @Code "X into { @XTarget&&following }" +//0.2c +@Box 2.8c @Wide 1.5c @High { //0.8c @Code "@GTarget" } +//1.0c +D:: @Box margin {0c} linestyle {noline} @Code "G into { @GTarget&&following }" +//0.2c +@Box 2.8c @Wide 2.5c @High {} +} + +// @Arrow from { A@E ++ {0.2 cm 0} } to { B@W -- {0.2 cm 0} } +// @Arrow from { C@E ++ {0.2 cm 0} } to { D@W -- {0.2 cm 0} } + +} +Here @I G will find the @Code "@GTarget" target within {@I X}. This is +dangerous, since if the first component of @I G is then promoted via +@I X into the first {@Code "@XTarget"} rather than into the second, +{@I G}'s target will not appear later in the final printed document than +its invocation point, as required by the @Code into clause. +@PP +Accordingly, when such a target is chosen, two special galley indexes +are inserted and linked together: a @Eq { PRECEDES } index at {@I G}'s +invocation point, and a @Eq { FOLLOWS } index at the first component of +{@I G}. The algorithm checks before promoting any @Eq { FOLLOWS } index +that its promotion would not place it earlier than the corresponding +@Eq { PRECEDES } index in the same galley, and rejects the component if +it would. Since @Eq { PRECEDES } and @Eq { FOLLOWS } indexes are rarely used, +this check can be implemented by linear search. +@PP +When two components are separated by {@Code "/"}, as opposed to the more +usual {@Code "//"}, each influences the horizontal position of the +other. Because of this, the @I SUSPEND action is in fact taken if a +receptive symbol occurs in any component separated from the first by +{@Code "/"} operators only. Again, linear search forwards to the first +{@Code "//"} suffices for this check. +@PP +A good illustration of these unusual cases is afforded by the +@Code "@Align" symbols from the standard DocumentLayout package. These +are used to produce displayed equations, aligned on their equals signs +despite being separated by arbitrary body text. +@PP +The @Code "@Align" symbols are packaged neatly for the convenience of +the non-expert user, but we will show just the essence of the +implementation here. First, an @Code "@AlignList" galley is created +which contains an infinite supply of @Code "@AlignPlace" receptive +symbols separated by @Code "/" operators: +@ID @Fig { + +{ +@I { body text galley } +//0.2c +@Box 2.8c @Wide 4.0c @High +{ //1.5c + A:: @Box margin { 0c } linestyle { noline } @Code "@Galley" +} +} + +||1.5c + +{ +//2.4c +B:: @Box margin { 0c } linestyle { noline } @Code "@AlignList" +//0.2c +@Box { + @Code "@AlignPlace" +//1vx @Code "@AlignPlace" +//1vx @Code "..." +//1vx @Code "@EndAlignList" +} + +} + +// @Arrow from { A@E ++ {0.2 cm 0} } to { B@W -- {0.2 cm 0} } +} +Then equations like +@ID @ShowMarks @Eq { f(x) ^= g(x) + 2 } +are created and sent to @Code "@AlignPlace&&following" targets. They +collect in the @Code "@AlignList" galley and are aligned there: +@ID @Fig { + +{ +@I { body text galley } +//0.2c +@Box 2.8c @Wide 4.0c @High +{ //1.5c + A:: @Box margin { 0c } linestyle { noline } @Code "@Galley" +} +} + +||1.5c + +{ +//2.4c +B:: @Box margin { 0c } linestyle { noline } @Code "@AlignList" +//0.2c +@Box { + @Line linestyle { dashed } from { xmark ysize } to { xmark 0 } + { + @Eq { f(x) ^= g(x) + 2 } + /1vx @Eq { f(x) - g(x) ^= 2 } + /1vx @Code "..." + /1vx @Code "@EndAlignList" + } +} + +} + +// @Arrow from { A@E ++ {0.2 cm 0} } to { B@W -- {0.2 cm 0} } +} +The @Code "@AlignList" galley does not flush, because its first +component is connected to a receptive symbol by @Code "/" operators. +@PP +After the last equation, an empty forcing galley is sent to +{@Code "@EndAlignList"}, deleting the two remaining receptive symbols from +the @Code "@AlignList" galley and permitting it to flush. @Eq { FOLLOWS } +indexes ensure that each equation finds a target placed in the body text +just after its point of invocation, so the equations return, aligned, to +approximately the points where they were invoked. Notice that the flushing +of body text is suspended until the list of equations is completed, as it +must be, since the horizontal position of the first equation cannot +be known until the last equation is added to the list. +@PP +Layout quality can occasionally be improved by rejecting a component +that could be promoted -- for example, a component of body text that +carries a footnote too large to fit on the current page. Since Lout +does not specify how breaking decisions are made, beyond the basic +constraints imposed by available space and @Code into clauses, in +principle such high quality breaking could be added to the +implementation with no change to the language. However, the +generality of the galley flushing algorithm, and its already +considerable complexity, make this a daunting problem in practice, +although a fascinating one. @TeX [9], with its unnested +set of `floating insertions' clearly identifiable as each page is begun, +has the advantage in this respect. +@End @SubSection diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s5_3 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s5_3 new file mode 100755 index 0000000000000..3ff98813f9479 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s5_3 @@ -0,0 +1,125 @@ +@SubSection + @Tag { constraints } + @Title { Size constraints and size adjustments } +@Begin +@PP +The galley flushing algorithm needs to know the available width and +height at each receptive symbol. These symbols may lie within +arbitrarily complex objects, and they may compete with each other for +available space (as body text and footnote targets do), so this +information must be extracted from the tree structure when required. +@PP +For example, consider the object +@ID @Code "5i @Wide { a / b }" +and suppose that the width of @Code { a } is @Eq { 1i, 2i } (@Eq {1i} to +the left of the mark, @Eq { 2i } to the right). What then is the +available width at {@Code { b }}? If we let the width of @Code b be +@Eq {l,r}, we must have +@ID @Eq { (1i up l) + (2i up r) <= 5i } +with the @Eq {non up } (i.e. max) operations arising from mark +alignment. Eliminating them gives +@ID @OneRow @Eq { +matrix { + { 1i + 2i ^<= 5i } +mabove { l + 2i ^<= 5i } +mabove { 1i + r ^<= 5i } +mabove { l + r ^<= 5i } +} +} +and since we assume that @Code a fits into the available space, the +first inequality may be dropped, leaving +@ID @OneRow @Eq { +matrix { + { l ^<= 3i } +mabove { l + r ^<= 5i } +mabove { r ^<= 4i } +} +} +Object @Code b may have width @Eq {l, r} for any @Eq { l } and +@Eq { r } satisfying these inequalities, and no others. +@PP +Here is another example: +@ID @Code "5i @High { a /2ix b }" +Assuming that @Code a has height @Eq {1i,1i}, the height @Eq {l, r} of +@Code b must satisfy +@ID @Eq { 1i + ((1i + l) up 2i) + r <= 5i } +This time the @Eq { non up } operation arises from the mark-to-mark gap +mode, which will widen the @Eq { 2i } gap if necessary to prevent +@Code a and @Code b from overlapping. This inequality can be rewritten as +@ID @OneRow @Eq { +matrix { + { l ^<= infinity } +mabove { l + r ^<= 3i } +mabove { r ^<= 2i } +} +} +In general, Lout is designed so that the available width or height at +any point can be expressed by three inequalities of the form +@ID @OneRow @Eq { +matrix { + { l ^<= x } +mabove { l + r ^<= y } +mabove { r ^<= z } +} +} +where @Eq {x }, @Eq {y} and @Eq {z} may be @Eq { infinity }. We +abbreviate these three inequalities to @Eq { l, r <= x, y, z }, and we +call @Eq {x, y, z} a {@I{size constraint}}. +@PP +The two examples above showed how to propagate the size constraint +@Eq { infinity, 5i, infinity } for +@Code "a / b" down one level to the child {@Code b}. Basser Lout +contains a complete set of general rules for all node types, too +complicated to give here. Instead, we give just one example of how +these rules are derived, using the object +@ID @OneRow { +@Eq {x sub 1} @Code "/" @Eq {x sub 2} @Code "/" @Eq {ldots} @Code +"/" @Eq {x sub n} +} +where @Eq { x sub j } has width @Eq { l sub j , r sub j } for all @Eq {j}. +@PP +Suppose the whole object has width constraint @OneCol @Eq {X,Y,Z}, and we +require the width constraint of {@Eq { x sub i }}. Let +@Eq { L = max sub j ` l sub j } and @Eq { R = max sub j ` r sub j }, +so that @OneCol @Eq {L, R} is the width of the whole object. We assume +@Eq {L, R <= X,Y,Z}. Then @Eq { x sub i } can be enlarged to any size +@Eq { l sub i ` , r sub i } satisfying +@ID @Eq { ( l sub i up L), ( r sub i up R) <= X, Y, Z } +which expands to eight inequalities: +@ID @OneRow @Eq { +matrix { + { l sub i ^<= X } +mabove { L ^<= X } +mabove { l sub i + r sub i ^<= Y } +mabove { l sub i + R ^<= Y } +mabove { L + r sub i ^<= Y } +mabove { L + R ^<= Y } +mabove { r sub i ^<= Z } +mabove { R ^<= Z } +} +} +Three are already known, and slightly rearranging the others gives +@ID @OneRow @Eq { +matrix { + { l sub i ^<= X } +mabove { l sub i ^<= Y - R } +mabove { l sub i + r sub i ^<= Y } +mabove { r sub i ^<= Z } +mabove { r sub i ^<= Y - L } +} +} +Therefore the width constraint of @Eq { x sub i } is +@ID @Eq { min(X, Y-R), Y, min(Z, Y-L) } +The size constraint of any node can be found by climbing the tree to a +@I WIDE or @I HIGH node where the constraint is trivial, then propagating +it back down to the node, and this is the function of procedure +{@I Constrained} in Basser Lout. +@PP +After some components have been promoted into a target, the sizes stored +in its parent and higher ancestors must be adjusted to reflect the +increased size. This is done by yet another set of recursive rules, +upward-moving this time, which cease as soon as some ancestor's size +does not change. These rules are embodied in procedure @I AdjustSize +of Basser Lout. The adjustment must be done before relinquishing +control to any other galley, but not after every component. +@End @SubSection diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s5_4 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s5_4 new file mode 100755 index 0000000000000..b91d7ceed3758 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s5_4 @@ -0,0 +1,97 @@ +@SubSection + @Tag { lookahead } + @Title { The limited lookahead problem } +@Begin +@PP +Basser Lout assumes that there will be enough internal memory to hold +the symbol table plus a few pages, but not an entire document. This +section describes the consequent problems and how they were solved. +Other interpreters, notably interactive editors running on virtual +memory systems, would not necessarily need this assumption. +@PP +Although Basser Lout can read and format any legal input, its memory +consumption will be optimized when the bulk of the document resides in +galleys whose targets can be identified at the moment they are +encountered. Let us take the typical example of a root galley which +is a list of pages, a @Code "@BodyText" galley targeted into the +pages, @Code "@Chapter" galleys targeted into {@Code "@BodyText"}, +and @Code "@Section" galleys targeted into the @Code "@Chapter" +galleys: +@ID @OneRow @Code { +"@PageList" +"//" +"@BodyText" +"//" +"@Chapter {" +" @Section { ... }" +" @Section { ... }" +" ..." +" @Section { ... }" +"}" +"@Chapter {" +" ..." +"}" +} +Basser Lout is able to read and process such galleys one paragraph at +a time (strictly, from one @Code "//" at the outer level of a galley +to the next), as we now describe. +@PP +When the parser encounters the beginning of a galley, like @Code "@Chapter" +or {@Code "@Section"}, it initiates a new galley process. The special +receptive symbol @Code "@Input" is substituted for the as yet +unread right parameter of the galley. As each paragraph of the right +parameter is read, it is deleted from the parse tree and injected into +the galley's {@Code "@Input"}. The galley is then resumed. The parser +thus acts as an extra +concurrent process; it has low priority, so that input is read only when +there is nothing else to do. Since galleys may be nested, a stack of +@Code "@Input" symbols is needed, each with its own environment and +style. If a galley is encountered for which a target is not immediately +identifiable (a footnote, for example), it is read in its entirety and +hung in pure parse tree form from an @I UNATTACHED index in the usual way, +with an environment but without a style. It will be flushed later +when its component is promoted. +@PP +In addition to producing a steady flow of components from input, we must +also ensure that receptive symbols do not unduly block their +promotion. The @Code "@FootSect" symbol at the foot of each page is a +typical example: until it is deleted the page cannot be printed. +@PP +Receptive symbols are expanded only on demand, so @Code "@FootSect" can +be deleted as soon as we can prove that it is not wanted. The symbol +table can tell us that only @Code "@FootNote" galleys (with +@Code "@FootPlace&&following" targets) want it, so it might be possible +to deduce that @Code "@FootSect" may be deleted as soon as body text +enters the following page. +@PP +The author was unable to make this work, so Basser Lout requires the +user to identify those galleys which will carry the bulk of the document +({@Code "@Chapter"}, {@Code "@Section"}, {@Code "@BodyText"}) as +{@I {forcing galleys}}, by writing @Code "force into" instead of +@Code "into" in their definitions. As described in the previous +section, when a forcing galley attaches to a target, all receptive +symbols preceding the target in its galley are deleted, removing all +impediments to flushing. For example, when a forcing body text galley +enters a new page, the @Code "@FootSect" symbol on the preceding page +will be deleted. It seems likely that a system which could afford to +wait until all input was read before deleting any receptive symbols +would not need forcing galleys. +@PP +Galleys whose targets are a long way from their invocation points can be +a problem. If the direction is {@Code "following"}, such galleys are +held in internal memory for a long time, unless they are to be +sorted. If the direction is +{@Code "preceding"}, then either the entire intervening document must be +held in memory (prevented by the target from flushing), or else some +forcing galley prematurely deletes the target, leaving the galley bereft. +@PP +The typical example of the latter case occurs when the galley is an +entry in the table of contents, launched backwards from the beginning of +a chapter or section. Its target in the table of contents will have +been deleted long before, to permit the rest of the document to print, +so the galley ultimately emerges as an unattached galley promoted out of +the root galley. All such galleys are written to an auxiliary file, +indexed by the missing target. On the next run, just before that target +is deleted, the auxiliary file is checked and any galleys for it are +read in and flushed. +@End @SubSection diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s5_5 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s5_5 new file mode 100755 index 0000000000000..af4d88b465f6f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s5_5 @@ -0,0 +1,109 @@ +@SubSection + @Tag { horizontal } + @Title { Horizontal galleys } +@Begin +@PP +There is a strong analogy between breaking a column of text into +page-sized pieces, and breaking a paragraph into line-sized pieces. In +fact, the two differ only in direction: vertical for body text, +horizontal for paragraphs. In this section we define {@I{horizontal +galleys}}, and show how they provide an unlimited number of paragraph +breaking styles, as well as solve some other problems. Regrettably, +lack of time has prevented their incorporation into the Basser Lout +interpreter. +@PP +Imagine a galley whose components are separated by horizontal +concatenation operators instead of vertical ones, perhaps indicated by a +@Code { horizontally into } clause. Then all object breaking, including +paragraph breaking, could be replaced by galley component promotion like +this: +@ID @OneRow @Code { +"def @Paragraph right x" +"{" +" def @LinePlace { @Galley }" +"" +" def @LineList" +" {" +" @HExpand @LinePlace" +" //1vx @LineList" +" }" +"" +" def @Par horizontally into { @LinePlace&&preceding }" +" right x" +" { x }" +"" +" @LineList // @Par { 0.2i @Wide {} &0i x &1rt }" +"}" +} +The @Code "@HExpand" operator, which is a primitive of Basser Lout, +horizontally expands the gaps in its right parameter until the result +fills the available space, thus implementing line adjustment, except +when the parameter contains tabulation gaps like {@Code "&1rt"}, which +cause the parameter to be already expanded. The result of +@ID @Code "@Paragraph { A short paragraph of text. }" +would then be something like +@ID 1.5i @Wide { +0.2i @Wide {} & A short paragraph of text. +} +depending on the available horizontal space. An unlimited range of +paragraph breaking styles could be defined, including ragged right, ragged +left, break-and-center, and so on. +@PP +In Basser Lout, indented paragraphs are produced by preceding them with +a horizontal concatenation operator, for example {@Code "|0.5i"}. This +has the unfortunate effect of making an indented paragraph into a single +component of the enclosing galley, so that it will always be kept +together on one page. Horizontal galleys solve this problem with a +simple change to {@Code "@LineList"}: +@ID @OneRow @Code { +"def @LineList" +"{" +" |0.5i @HExpand @LinePlace" +" //1vx @LineList" +"}" +} +showing the flexibility that comes from bringing the full power of the +Lout language to bear on paragraph layout. It is easy to make provision +for a tag on the first line. +@PP +Although Basser Lout permits receptive symbols within paragraphs, they +are of little use, because their available width is calculated after +paragraph breaking, and the incoming galley cannot spread over more than +one line. With horizontal galleys, such symbols would have infinite +available width, and we could easily produce a filled paragraph of +footnotes like this: +@ID 3.5i @Wide { +@OneRow { -2p @Font 1 ^/0.3vo } & See Jones and Saunders (1982). &2m +@OneRow { -2p @Font 2 ^/0.3vo } & Or so Jacobsen (1973) asserts. &2m +@OneRow { -2p @Font 3 ^/0.3vo } & {@I ibid}, p. 327. +} +based on an infinite horizontal sequence of @Code "@FootPlace" symbols +inside a horizontal galley. +@PP +When body text is placed on pages, the length of each column varies +depending on the available vertical space. Horizontal galleys could +analogously produce lines of varying length, and so could fill +non-rectangular shapes. +@PP +An important theoretical benefit of horizontal galleys is that they +would permit horizontal and vertical to be treated in a perfectly +symmetrical way, whereas at present paragraph breaking is horizontal +only, and galley breaking is vertical only. This must simplify the +treatment of non-European languages which fill in unusual directions, +although it is not itself sufficient to implement them. +@PP +There are a few minor problems with horizontal galleys. First, the +syntactic overhead of enclosing each paragraph in @Code "@Paragraph { ... }" +or whatever is unacceptable. Permitting user-defined operators to have lower +precedence than the white space between two words might help here. Second, +the built-in paragraph breaker includes hyphenation, and it permits line +breaks in the input to determine line breaks in the output, if +desired. These features must somehow be preserved. Finally, we have +explained how the Basser Lout interpreter assigns equal width to the +wider columns of tables (Section {@NumberOf style}). The equivalent +situation in vertical galleys occurs when two receptive symbols compete +for vertical space (e.g. @Code "@TextPlace" and {@Code "@FootSect"}), +and there it is conventional to grant as much as required to the first +arrival. It is not clear to the author how these different approaches +can be reconciled. +@End @SubSection diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s5_9 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s5_9 new file mode 100755 index 0000000000000..648a1b6c0dfc4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s5_9 @@ -0,0 +1,2 @@ +@EndSubSections +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s6_0 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s6_0 new file mode 100755 index 0000000000000..07fb62ee78934 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s6_0 @@ -0,0 +1,18 @@ +@Section + @Title { Cross references } +@Begin +@PP +Cross references, such as `see page 57' and `see Figure 5,' are a useful +but highly error-prone feature of documents. Scribe [7] +introduced a method of keeping them up to date automatically as the +document changes: the user gives each referenced entity a tag, and +operators are provided that return the page or sequence number of the +entity with a given tag. +@PP +A cross reference takes an object (such as a page number) from one point +in the document and copies it to another, and this generalization +suggests other applications. For example, a running header is copied +from the title of a nearby chapter, and a reference is copied from a +bibliographic database. Making the unity of these applications manifest +is an interesting language design problem. +@BeginSubSections diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s6_1 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s6_1 new file mode 100755 index 0000000000000..0ffc70d498604 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s6_1 @@ -0,0 +1,85 @@ +@SubSection + @Tag { cross } + @Title { The cross reference abstraction } +@Begin +@PP +In developing the cross reference abstraction, it seemed best to begin +with the database application, since it is the simplest. Database +relations are naturally mapped into Lout definitions: +@ID @OneRow @Code { +"def @Reference" +" named @Tag {}" +" named @Author {}" +" named @Title {}" +" named @Journal {}" +"{}" +} +The set of all invocations of @Code "@Reference" is a relation whose +attributes are the parameters, and whose tuples are the invocations. To +complete the correspondence, we need only declare that the @Code "@Tag" +parameter is special, serving as the key attribute. +@PP +Following the database model, we next need a notation for retrieving the +invocation with a given tag: +@ID @Code "@Reference&&kingston91" +This @I {cross reference} is like an arrow pointing to the invocation. To +access its attributes, we write +@ID @Code "@Reference&&kingston91 @Open { @Author, @Title }" +The @Code "@Open" operator evaluates its right parameter in an +environment which includes the exported parameters of its left. +@PP +An invocation is chosen to be a running header because of its proximity +to the place where it is used, rather than by its tag. Such proximity +is naturally expressed by two special tags, {@Code preceding} and +{@Code following}; for example, @Code "@Sym&&following" will point to +the closest following invocation of @Code "@Sym" in the final printed +document. This is much simpler conceptually than reference to the +internal state of the document formatter at a critical moment, the usual +approach to running headers. +@PP +It turns out that the above design solves all the cross referencing +problems encountered in practice except one, which may be typified by +the problem of finding the number of the page on which the chapter whose +tag is @Code "intro" begins. Two cross referencing steps are needed, +first to {@Code "@Chapter&&intro"}, then from there to +{@Code "@Page&&preceding"}, where the page number is known. +@PP +Given our success so far, this last problem proves to be +surprisingly difficult. We first try +@ID @OneRow @Code { +"@Chapter&&intro @Open {" +" @Page&&preceding @Open { @PageNum }" +"}" +} +but this fails because @Code "@Page&&preceding" is evaluated in the +present context, not in the context of @Code "@Chapter&&intro" as +required. So our next attempt is +@ID @OneRow @Code { +"def @Chapter" +" named @PageNum { @Page&&preceding @Open { @PageNum } }" +" ..." +} +with the @Code "@Page&&preceding" cross reference attached to the +chapter; we write +@ID @Code "@Chapter&&intro @Open { @PageNum }" +This also fails, because parameters are evaluated after substitution, so +once again @Code "@Page&&preceding" is evaluated in the wrong context. We +could of course define a new operator specifically for this case: +@ID @Code "@Page&&{ @Preceding @Chapter&&intro }" +or some such. This is free of the annoying context-sensitivity, but it +seems quite complex, and the expected cross reference @Code "@Page&&preceding" +does not appear. +@PP +The author was lost in these obscurities for some time, and ultimately +rescued himself by looking ahead to the implementation of the +@Code preceding and @Code following tags, to see if a simple extension +of it would solve the problem. This led to the @Code "@Tagged" operator: +@ID @Code "@Page&&preceding @Tagged intro" +placed at the beginning of the body of the chapter will attach @Code intro +as an extra tag to the closest preceding invocation of {@Code "@Page"}, +so that +@ID @Code "@Page&&intro @Open { @PageNum }" +yields the desired page number. There is something low-level and ad hoc +about the @Code "@Tagged" operator, but the two cross references do +appear naturally, and it works. +@End @SubSection diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s6_2 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s6_2 new file mode 100755 index 0000000000000..2df5478c2ac18 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s6_2 @@ -0,0 +1,79 @@ +@SubSection + @Tag { cross.impl } + @Title { Implementation of cross references } +@Begin +@PP +Before an object can be sized and printed, the values of any cross +references within it must be known. If they refer to invocations that +have not yet been read, there is a problem. Scribe [7] +solves it by capitalizing on the fact that documents are formatted +repeatedly during the drafting process. All tagged invocations are +copied to an auxiliary file during the first run, and indexed for quick +retrieval on the second. A new auxiliary file is written during the second +run, for retrieval on the third, and so on. Cross references always lag +one run behind the rest of the document; a perfect copy may be produced +by formatting the same version twice, except in a few pathological cases +that fail to converge. +@PP +Cross referencing in Lout is implemented on top of a simple database +system. Each database is either writable or readable but not both at +once, and holds a set of key-value entries: the keys are @S ASCII +strings, and the values are Lout objects, possibly with environments, +written in Lout source. Operations are provided for writing an entry, +converting from writable to readable, retrieval by key, and sequential +retrieval in key order. +@PP +The implementation, which is quite unsophisticated, employs one or more +@S ASCII {@I{ database files}}, containing the values, and one @S ASCII +{@I{ index file}} per database, containing the keys. To write an entry, +the value is first appended to a database file, then a line like +@ID @Code "@Chapter&&intro ch1.ld 57" +is appended to the index file, giving the file and offset where the value +is stored. To convert from writable to readable, the index file is +sorted. Then retrieval by key requires a binary search of the index +file and one seek into a database file, and sequential retrieval by key +is trivial. +@PP +This database system is used in several ways. For an external database, +say of bibliographic references, the user creates the database file of +values (without environments), Lout creates the index file whenever it +cannot find one, and retrievals by key proceed as usual. Cross +references with tags other than @Code preceding and @Code following are +treated as described above, by writing all tagged invocations (with +environments) to a single database, which is converted to readable at +the end of the run for retrievals on the next run. Sorted galleys, such +as index entries, are written out indexed by target and key and retrieved +sequentially on the next run. Unsorted galleys with preceding targets +which pop off the top of the root galley without finding a target, such +as entries in tables of contents, are treated similarly, except that they +are indexed by target and a sequence number that preserves their relative +order during the sort. +@PP +When Lout processes a multi-file document, one cross reference database +file is written for each input file, but they share a common index +file. At end of run, the new index file is sorted and merged with the +old one in such a way as to preserve entries relating to files not read +on the current run. This provides some support for piecemeal +formatting, but eventually the files must all be formatted together. +@PP +When a @Code preceding or @Code following cross reference is found, +it is attached to a galley index of type @Eq { CROSS_PREC } or +{@Eq { CROSS_FOLL }}, together with an automatically generated tag composed +of the current file name and a sequence number. When a tagged +invocation is found, it is attached to a @Eq { CROSS_TARG } index. These +galley indexes are carried along through the dynamic tree, and +eventually pop off the top of the root galley, at which point it is easy +to determine which cross references refer to which invocations, since +the indexes are now in final printed document order. Each referenced +invocation is then written to the cross reference database, multiply indexed +by the generated tags of the associated cross references. On the next +run, when the same @Code preceding and @Code following cross references +are found, chances are good that the same tags will be generated, and +the appropriate values can be retrieved from the database immediately. +@PP +This approach was the genesis of the @Code "@Tagged" operator, whose +implementation is now immediate: for each @Code "@Tagged" operator we +produce one @Eq { CROSS_PREC } or @Eq { CROSS_FOLL } galley index, +replacing the generated tag with the right parameter of the @Code "@Tagged" +operator. Nothing more is required. +@End @SubSection diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s6_9 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s6_9 new file mode 100755 index 0000000000000..648a1b6c0dfc4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s6_9 @@ -0,0 +1,2 @@ +@EndSubSections +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s7_0 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s7_0 new file mode 100755 index 0000000000000..2cb42451dec97 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/design/s7_0 @@ -0,0 +1,84 @@ +@Section + @Title { Conclusion } +@Begin +@PP +Since its public release in October 1991, the Basser Lout interpreter +has been ported without incident to a wide variety of Unix systems and +hardware. It was tested extensively before release on its own +documentation, and the few minor bugs which have emerged since then have +all been fixed in the second release, scheduled to appear in mid-1992. +@PP +Seven substantial packages of definitions are distributed with Basser +Lout. The DocumentLayout package, and its variants ReportLayout and +BookLayout, provide the standard features that all documents +require: pages, columns, paragraphs, headings, footnotes, floating +figures and tables, chapters and sections, displays and lists, access +to bibliographic databases, cross references, and so on +[11]. The BookLayout package has extra features +needed by books, including an automatically generated table of contents, +Roman page numbers for the prefatory material, running page headers, +odd and even page layouts, and a sorted index. The Eq package formats +equations, and Pas formats Pascal programs [10]; Tab +formats tables [12]; and Fig draws figures +[6]. +@PP +The non-expert user who uses these packages perceives a system of a +standard quite similar to other fully developed batch formatters, +although the interface is considerably more coherent than, say, the troff +family's [8]. The expert user perceives a system which +is radically different from previous ones, in which a great deal can be +achieved very quickly. To take an extreme example, Pas was designed, +implemented, tested, and documented in one afternoon. Eq took about +a week, but most of that time was spent in marshalling the vast +repertoire of mathematical symbols, and fine-tuning the spacing. Most +of the effort seems to go into designing a good interface; most symbols +are implemented in just one or a few lines of Lout. +@PP +A group of about 20 satisfied non-expert users has grown up within +the author's department, mainly Honours students with no investment +in older systems to hold them back. Basser Lout has been advertised +on the Internet news as available via anonymous {@I ftp}, so the +extent of its outside user community is hard to gauge. About 50 +people have mailed comments or questions to the author; many +of these people have ported the program, written small definitions, +and modified the standard packages. +@PP +Future work could usefully begin with the improvements suggested in this +paper: overlapping spanning columns, better semantics for available +space, and especially horizontal galleys. Support for non-European +languages is also needed. However, the main task is the development of +an interactive document editor based on Lout. A structure editor similar +to Lilac [13], which already has objects and user-defined +symbols, is envisaged; since cross references are easy when the whole +document is available, the only major new problem is the treatment of +galleys, including the expansion and retraction of receptive symbols. +@LP +@LP +@B { Note. } Since the above was written the author has completed a +revised version of Basser Lout, in which the problem concerning +available space mentioned in Section {@NumberOf style} has been resolved. +@LP +@LP +@B { Acknowledgment. } The author gratefully acknowledges many +valuable discussions with Douglas W. Jones, especially during the +development of the galley abstraction; and also many helpful comments on +presentation by the anonymous referee. +@DP +@DP +@Heading { References } +@NumberedList +@LI @RefPrint kingston91 +@LI @RefPrint kingston91over +@LI @RefPrint kingston91basser +@LI @RefPrint furuta82 +@LI @RefPrint kernighan75 +@LI @RefPrint kingston91fig +@LI @RefPrint reid80 +@LI @RefPrint ossanna76 +@LI @RefPrint knuth84 +@LI @RefPrint kingston91eq +@LI @RefPrint kingston91begin +@LI @RefPrint kingston91tab +@LI @RefPrint brooks91 +@EndList +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/README b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/README new file mode 100755 index 0000000000000..8f552523b570a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/README @@ -0,0 +1,23 @@ +Directory lout/doc/expert + +This directory contains the Lout source files for the Expert's Guide +to the Lout Document Formatting System. To produce the Guide, type +the command + + lout all > outfile.ps + +in this directory. This must be done five times to completely resolve +all cross references, although the PostScript file outfile.ps is +printable after the first run. Auxiliary files with .li and .ld +suffixes will be created in this directory. A copy of the final +outfile.ps is included. There should be no warning messages on +the fifth run, except this one: + +lout file "pre_conc" (from "pre" line 7, from "all" line 25): + 162,1: 13.2c object too high for 8.7c space; will try elsewhere + +which just warns about a figure that is not able to be placed on +the first possible page, and so has to appear on the next page. + +Jeffrey H. Kingston +8 October 2000 diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/all b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/all new file mode 100755 index 0000000000000..3e2421bca49ed --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/all @@ -0,0 +1,26 @@ +@SysInclude { eq } +@SysInclude { tab } +@SysInclude { fig } +@SysInclude { book } +@SysDatabase @Reference { loutrefs } +@Book + @Title { An Expert's Guide to the + +Lout + +Document Formatting System } + @Author { Jeffrey H. Kingston } + @Edition { Version 3.24 +October, 2000 } + @Publisher { @I { @CopyRight Copyright 1991, 2000, Jeffrey +H. Kingston, Basser Department of Computer Science, The University +of Sydney 2006, Australia.} } + @InitialLanguage { English } + @OptimizePages { Yes } +// + +@Include { preface } +@Include { pri } +@Include { det } +@Include { pre } +@Include { exa } diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det new file mode 100755 index 0000000000000..0018d915fcb54 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det @@ -0,0 +1,17 @@ +@Chapter + @Title { Details } + @Tag { details } +@Begin +@BeginSections +@Include { det_lexi } +@Include { det_name } +@Include { det_visi } +@Include { det_filt } +@Include { det_prec } +@Include { det_size } +@Include { det_gall } +@Include { det_sort } +@Include { det_hori } +@Include { det_opti } +@EndSections +@End @Chapter diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_filt b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_filt new file mode 100755 index 0000000000000..0d5405d141f5b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_filt @@ -0,0 +1,109 @@ +@Section + @Title { Filtered right and body parameters } + @Tag { filters } +@Begin +@PP +A right or body parameter may be filtered by some other computer +program before being included by Lout. As an example of such a program +we will use the Unix @Code sort command: +@ID @Code "sort -o outfile infile" +This causes file @Code outfile to contain a sorted copy of file +{@Code infile}. We incorporate this into a Lout definition as follows: +@ID @OneRow @Code { +"def @Sort" +" named @Options {}" +" right x" +"{" +" def @Filter { sort @Options -o @FilterOut @FilterIn }" +"" +" lines @Break x" +"}" +} +The presence within @Code "@Sort" of a definition of a symbol called +@Code "@Filter" tells Lout that the right parameter of @Code "@Sort" +is to be filtered before inclusion. When @Code "@Sort" is invoked, +@Code "@Filter" is evaluated and its value executed as a system +command. In addition to the symbols ordinarily available within the +body of {@Code "@Filter"}, there are three others: +@VeryWideTaggedList +@TI { @Code "@FilterIn" } { +the name of a file which will, at the time the system command is +executed, contain the actual right or body parameter of the +symbol, exactly as it appears in the input file; +} +@TI { @Code "@FilterOut" } { +the name of a file of Lout text whose contents Lout will read after +the system command has finished, as a replacement for what was put +into file {@Code "@FilterIn"}; +} +@TI { @Code "@FilterErr" } { +the name of a file that Lout will attempt to read after the system +command has finished, containing error messages produced by the +command that Lout will pass on to the user as non-fatal errors. Use +of this file is optional. +} +@EndList +It is a fatal error for the system command to return a non-zero status. +@PP +Now the @Code sort command has options @Code -u for deleting duplicate +lines, and @Code -r for reversing the sorting order. So the result of +@ID @OneRow @Code { +"@Sort" +" @Options { -r -u }" +"{" +"Austen, Jane" +"Dickens, Charles" +"Eliot, George" +"Hardy, Thomas" +"Bront{@Char edieresis}, Charlotte" +"}" +} +is +@ID @OneRow lines @Break +{ +Hardy, Thomas +Eliot, George +Dickens, Charles +Bront{@Char edieresis}, Charlotte +Austen, Jane +} +Unlike all the other examples in this manual, this output +is simulated. This was done so that the ability to format this +manual is not dependent on the existence of the Unix {@Code "sort"} +command, and it highlights the fact that filtered actual parameters +are by their nature of uncertain portability. +@PP +There is no need for an actual filtered parameter to obey the lexical +rules of Lout, since it is passed directly to the other program. However, +Lout must be able to work out where the parameter ends, which gives +rise to the following rules. As with a body parameter, a symbol +@Code "@Sym" with a filtered parameter must be invoked in either the +form @Code "@Sym { ... }" or the form {@Code "@Sym @Begin ... @End @Sym"}, +plus options as usual. In the former case, braces within the +actual parameter must match; in the latter case, the actual parameter +may not contain {@Code "@End"}. +@PP +If an actual filtered parameter contains @@Include, this is taken to +begin a Lout @@Include directive in the usual form (Section +{@NumberOf include}): +@ID @OneRow @Code { +"@Sort {" +"Austen, Jane" +"@Include { authors }" +"Hardy, Thomas" +"}" +} +The included file becomes part of {@Code "@FilterIn"}, but any braces, +@@Include, or @@End within it are not noticed by Lout. +@PP +The first character of file @Code "@FilterIn" will be the first +non-white space character following the opening @Code "{" or @@Begin, +or the first character of an included file if @@Include comes first. The +second-last character of file @Code "@FilterIn" will be the last non-white +space character preceding the closing @Code "}" or {@Code "@End @Sym"}, +or the last character of an included file if @@Include comes last. One +newline character is always appended and is the last character of file +{@Code "@FilterIn"}. This effects a compromise between the Lout convention, +that spaces following @Code "{" or preceding @Code "}" are not significant, +with the Unix convention that all text files end with a newline character. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_gall b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_gall new file mode 100755 index 0000000000000..371a6d8c04619 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_gall @@ -0,0 +1,388 @@ +@Section + @Title { Galleys and targets } + @Tag { targets } +@Begin +@PP +The behaviour of galleys and their targets, as described in Section +galley.feature.in.detail @SubIndex { in detail } +targets.in.detail @SubIndex { in detail } +{@NumberOf galleys}, can be summarized in three laws: +@DP +{@I {First Law}}: The first target is the closest invocation of the +target symbol, either preceding or following the invocation point of the +galley as required, which has sufficient space to receive the first +component; +@DP +{@I {Second Law}}: Each subsequent target is the closest invocation of +the target symbol, following the previous target and lying within the same +galley, which has sufficient space to receive the first remaining component; +@DP +{@I {Third Law}}: A receptive symbol that does not receive at least one +component of any galley is replaced by @@Null. +@DP +The terms `closest,' `preceding,' and `following' refer to position in +the final printed document. This section explains the operation of +these laws in Basser Lout. +@PP +When a galley cannot be fitted into just one target, Lout must find +points in the galley where it can be split in two. The object lying +between two neighbouring potential split points is called a @I component +component @Index { Components of a galley } +of the galley. By definition, a component cannot be split. +@PP +To determine the components of a galley, expand all symbols other than +recursive and receptive ones, discard all @@Font, @@Break, @@Space, +@@SetColor, @@SetColour, and @@Language symbols, perform paragraph +breaking as required, and discard all redundant braces. Then view the +galley as a sequence of one or more objects separated by vertical +concatenation symbols; these are the components and split points, +except that concatenation symbols whose gaps are unbreakable +(Section {@NumberOf concatenation}) are not eligible to be split +points. For example, given the definition +@ID @OneRow @Code { +"def @Section into { @SectionPlace&&preceding }" +" named @Title {}" +" right @Body" +"{" +" 15p @Font { @Title //0.7f }" +" //" +" @Body" +"}" +} +the galley +@ID @OneRow @Code { +"@Section" +" @Title { Introduction }" +"{ This is a subject that really" +"needs no introduction. }" +} +becomes +@ID @OneRow @Code { +"Introduction" +"//0.7f" +"{}" +"//" +"This is a subject that really needs" +"//1vx" +"no introduction." +} +with four components. If @Code "@Body" had been preceded by @Code "|1.0c" in +the definition, the result would have been +@ID @OneRow @Code { +"Introduction" +"//0.7f" +"{}" +"//" +"|1.0c { This is a subject that really needs //1vx no introduction. }" +} +with @Code "//1vx" buried within one component and hence not a +potential split point. If @Code "0.7f" had been {@Code "0.7fu"}, +the gap would have been unbreakable and @Code "//0.7fu" would not +have been a potential split point. +@PP +Version 3.03 has liberalized this somewhat in the following way. When +a component consists of a horizontal sequence of two or more objects +@Eq { A sub 1 ,..., A sub n } separated by @Code "|" (not {@Code "||"}, +not {@Code "&"}), Lout will investigate the component to see whether +it can be broken up. It looks at each @Eq { A sub i } to see whether it +is a vertical concatenation of objects @Eq { A sub i1 ,..., A sub im }; if +two or more of the @Eq { A sub i } satisfy this condition, the component +will not be broken up. So now suppose we have just one @Eq { A sub i } +which is a vertical concatenation. Lout will break the component into +one component for each of the @Eq { A sub i1 ,..., A sub im }, provided +that they are separated by @Code "//" symbols (not {@Code "/"}), and +provided this can be done without introducing any apparent change into +the appearance of the component (this second rule will be satisfied if +the other @Eq { A sub j } are not very large). The example above +satisfies all these rules and will be broken up into two components, +so the @Code "//1vx" becomes a potential split point after all. +@PP +The lines of a paragraph become separate components if the paragraph +occupies an entire component before breaking; otherwise they are +enclosed in a @@OneRow symbol within one component. The same is true of +incoming components of other galleys. If a @@Galley symbol occupies an +entire component by the rules above, then the incoming components that +replace it become components of their new home: +@ID @Tab + @Fmta { @Col @Code A ! @Col lines @Break B ! @Col @Code C } +{ +@Rowa + A { +"An example" +"//0.5c" +"@Galley" +"//0.5c" +"@SomethingList" +} + B { +"" +@Eq { ==> } +} + C { +"An example" +"//0.5c" +"Incoming components" +"//0.2c" +"from some other galley" +"//0.5c" +"@SomethingList" +} +} +Otherwise the incoming components are grouped within a @@OneRow symbol +and lie within one component. +@PP +This distinction has a marked effect on the vertical concatenation +b.unit.use @SubIndex { use in @Code "//1.1b" } +symbol {@Code "//1.1b"}, which calls for more space than is available +(Section {@NumberOf concatenation}). There is no room for this symbol +within any component, so it will force a split and be discarded in that +case. But it can be promoted to between two components. +@PP +Components may be separated by @Code "/" as well as by {@Code "//"}, +giving rise to column mark alignment between adjacent components: +@ID @ShowVMark { +@HContract @GreyBox { 1c @Wide ^| 1c @Wide 0.6c @High } +/0.3c +@HContract @GreyBox { 2c @Wide 0.6c @High } +/0.3c +@HContract @GreyBox { 0.5c @Wide ^| 0.8c @Wide 0.6c @High } +} +When aligned components are promoted into different targets, the meaning +of alignment becomes very doubtful. For example, what if the targets +mark.alignment.in.detail @SubIndex { in detail } +are in different columns of one page, or what if one lies within +{@Code "90d @Rotate"}? +@PP +The truth is that @Code "/" causes all the objects that share a mark to +have equal width: +@ID @ShowVMark { +@TightBox @HContract @GreyBox { 1c @Wide ^| 1c @Wide 0.6c @High } +/0.3c +@TightBox @HContract @GreyBox { 2c @Wide 0.6c @High } +/0.3c +@TightBox @HContract @GreyBox { 0.5c @Wide ^| 0.8c @Wide 0.6c @High } +} +This is a consequence of the `as wide as possible' rule (Section +{@NumberOf size}). Mark alignment occurs {@I incidentally}, whenever +the fragments are placed into similar contexts. +@PP +In this connection we must also consider the special case of a @@Galley +symbol which shares its column mark with some other object: +@ID @OneRow @Code { +"@Galley" +"/0.2c" +"@SomethingList" +} +(The @@Galley may or may not occupy an entire component; that doesn't +matter here.) If incoming components are separated by @Code "//" rather +than by {@Code "/"}, the meaning is so doubtful that this is forbidden. In +fact, a galley whose components replace such a @@Galley must have a +single column mark running its full length; that is, its components must +all share a single column mark. This mark will be merged with the +column mark passing through each @@Galley that these components replace; +all the objects on the resulting merged mark will have equal width. +@PP +The root galley, where everything collects immediately prior to output, +root.galley.in.detail @SubIndex { in detail } +is created automatically, not by a definition. Its target is the output +file, and its object is the entire input, which typically looks like this: +@ID @OneRow @Code { +"@PageList" +"//" +"@Text {" +" Body text of the document ..." +"}" +} +where @Code "@PageList" expands to a sequence of pages containing +@Code "@TextPlace" symbols (see Section {@NumberOf definitions}), and +@Code "@Text" is a galley: +@ID @OneRow @Code { +"def @TextPlace { @Galley }" +"" +"def @Text into { @TextPlace&&preceding }" +" right x" +"{" +" x" +"}" +} +The spot vacated by a galley -- its invocation point -- becomes a @@Null +object, so this root galley is effectively @Code "@PageList" alone, as +required. The @Code "@Text" galley will find its first target preceding +its invocation point, within {@Code "@PageList"}. +@PP +Printing {@PageMark rootg} the root galley on the output file is +somewhat problematical, +root.galley.printing @SubIndex { printing of } +because Lout has no way of knowing how large the paper is. Basser Lout +simply prints one root galley component per page (except it skips +components of height zero), and the user is responsible for ensuring +that each component is page-sized. Gaps between root galley +components, even unbreakable ones, have no effect on the result. +@PP +Basser Lout will promote a component only after any receptive symbols +components.promotion @SubIndex { promotion of } +promotion @Index { Promotion of components } +within it have been replaced, either by galleys or by @@Null, since +until then the component is not complete. A component which shares a +mark with following components is held up until they are all complete, +since until then their width is uncertain. +@PP +Consider a page with @Code "@TextPlace" and @Code "@FootSect" receptive +symbols. The rule just given will prevent the page from being printed +until @Code "@TextPlace" is replaced by body text, quite rightly; but +@Code "@FootSect" will also prevent its printing, even when there are no +footnotes. +@PP +Basser Lout is keen to write out pages as soon as possible, to save memory, +and it cannot afford to wait forever for non-existent footnotes. A variant +of the galley concept, called a @I {forcing galley}, +forcing.galley @Index { Forcing galley } {@PageMark forcing} +is introduced to solve this problem. A forcing galley is defined like this: +@ID @OneRow @Code { +"def @Text force into { @TextPlace&&preceding }" +" ..." +} +and so on. When such a galley replaces a @@Galley symbol, Lout replaces +every receptive symbol preceding the @@Galley by @@Null, thus ensuring that +as soon as text enters a page, for example, everything up to and including +the preceding page can be printed. This does not take care of the very last +page, but Basser Lout replaces all receptive symbols by @@Null when it realizes +that its input has all been read, thus allowing the last page to print. +@PP +A forcing galley causes the Third Law to be applied earlier than +expected, and this creates two problems. First, the replacement by +@@Null may be premature: a galley may turn up later wanting one of the +defunct targets. Such galleys (entries in tables of contents are +typical examples) are copied into the cross reference database and read +in during the next run just before their targets are closed, and so they +find their targets in the end. Care must be taken to ensure that +large galleys such as chapters and sections do not have defunct targets, +since the cost of copying them to and from the database is unacceptably high. +@PP +It is actually an over-simplification to say that these replacements +occur when the forcing galley replaces its @@Galley. What really happens +is that from this moment on Lout understands that it has the right to make +these replacements, and it will do each one at the first moment when not +doing it would hold things up. So there is a short period of grace when +galleys, such as the entries in tables of contents just alluded to, +can sneak into these receptive symbols. +@PP +The @Code "into" and @Code "force into" forms are actually just abbreviations +for the true way that galleys are defined, which +is by giving the symbol that is to be a galley a parameter or nested +target.sym @Index { @Code "@Target" symbol } +definition with the special name {@Code "@Target"}: +@ID @Code { +"def @Text" +" right x" +"{" +" def @Target { @TextPlace&&preceding }" +"" +" x" +"}" +} +A forcing galley is obtained by using @Code "&&&" instead of +{@Code "&&"}. @Code "@Target" may be an arbitrary object, +provided that it yields such a cross reference when evaluated. In +this way, different invocations may have different targets. +@PP +The forcing galley effect can be obtained in another way, by replacing +the @Code "@Galley" symbol to which the galley is attached by +{@Code "@ForceGalley"}. The advantage of this form is that the galley +can then be forcing at some places and not at others, using the formula +@ID @OneRow @Code { +"def @SomePlace right x" +"{" +" x @Case {" +" noforce @Yield @Galley" +" force @Yield @ForceGalley" +" }" +"}" +} +Now a galley may have @Code "@SomePlace" for its target, and if it +happens to attach to +@ID @Code "@SomePlace force" +it will have the effect of a forcing galley, while if it happens to +attach to +@ID @Code "@SomePlace noforce" +it will not. +@PP +Although it doesn't matter whether a galley is declared as a forcing +galley or merely arrives at a {@Code "@ForceGalley"} symbol from the +point of view of the effect on nearby targets, there is one way in +which Lout treats the two cases differently. If a forcing galley's +first component does not fit into the available space, that component +will be scaled vertically until it does. The rationale for this is +that forcing galleys are meant to carry the bulk of the document and +cannot afford to be held up because the user has inadvertently included +an over-high component, which for all Lout knows to the contrary may +not fit on any page. If this scaling is not wanted but forcing is, +the galley may be declared not forcing but all its targets may be set +to contain {@Code "@ForceGalley"}. +@PP +Within a galley, a symbol whose name is @@Enclose has a special +enclose.sym @Index @@Enclose +meaning: when components of the galley replace a @@Galley or @@ForceGalley +symbol, that symbol is first replaced by @@Enclose @@Galley or +@@Enclose @@ForceGalley. For example, +@ID @Code @Verbatim { +def @Figure into @FigurePlace&&following + right @Body +{ + def @Enclose + right x + { + @Box x + } + + @Body +} +} +causes each @@Galley or @@ForceGalley symbol that receives components of +galley @Code "@Figure" to be replaced by {@Code "@Box @Galley"} or +{@Code "@Box @ForceGalley"}, assuming an appropriate definition of +@Code "@Box". This is useful, for example, when producing multi-page +boxed displays, figures, and tables. +@PP +An @@Enclose symbol may have only one parameter, which must be a +right parameter. It would not make sense to allow more parameters, +since there is no suitable value to assign to them. However, the +@@Enclose symbol may contain inner definitions, and it may make use +of any symbol that is available at that point, in the usual way. The +@@Enclose symbol may be a named parameter (itself with a right parameter) +of the galley symbol, rather than an inner definition as shown above, +if desired. +@PP +It makes sense for sorted galleys containing a @Code "@Merge" symbol +(Section {@NumberOf sorted}) to also have an @Code "@Enclose" symbol. The +meaning is that after all merging is done, each resulting galley has +an @Code "@Enclose" symbol which is applied in the usual way. The value +of this @Code "@Enclose" symbol will be the value of an @Code "@Enclose" +symbol from one of the contributing galleys, but exactly which one +is not defined. So it is safest if all such @Code "@Enclose" symbols +produce the same result. +@PP +A @Code "following" galley may fail to find a first target lying in a +following component of the same galley as its invocation point. This is +a deficiency of Basser Lout, which occurs if the target has not been +read from input at the time the galley tries to find it. A workaround +is to use a @Code "preceding" galley instead, defined like this: +@ID @OneRow @Code { +"def @AGalley into { @AGalleyPlace&&preceding }" +" right @Body" +"{" +" //1.1b" +" @Body" +"}" +} +and invoked like this: +@ID @OneRow @Code { +"@AGalleyPlace | @AGalley { content of galley }" +"//" +"..." +"@AGalleyPlace" +} +The first @Code "@AGalleyPlace" receives only the initial empty object, +since the @Code "//1.1b" forces a split; and the Second Law puts Basser +Lout on the right track thereafter. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_hori b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_hori new file mode 100755 index 0000000000000..ad81dc4937832 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_hori @@ -0,0 +1,91 @@ +@Section + @Title { Horizontal galleys } + @Tag { horizontal } +@Begin +@PP +All the galleys so far have been @I { vertical galleys }: galleys +whose components are separated by vertical concatenation symbols. There +are also horizontal galleys, whose components are separated by the +horizontal concatenation operator @Code "&" (or equivalently, by +spaces). These work in the same way as vertical galleys, except for +the change of direction. For example, the following defines the +equivalent of an ordinary outdented paragraph, except that an option +is provided for varying the size of the outdent: +@ID @Code { +"def @OutdentPar" +" named outdent { 2f }" +" right x" +"{" +" def @ParPlace { @Galley }" +"" +" def @LineList" +" {" +" outdent @Wide {} | @PAdjust @ParPlace" +" //1vx @LineList" +" }" +"" +" def @ParGalley force horizontally into { @ParPlace&&preceding }" +" right x" +" {" +" x" +" }" +"" +" @PAdjust @ParPlace" +" // @ParGalley { x &1rt }" +" //1vx @LineList" +"}" +} +Notice the use of @Code "&1rt" to cancel the effect of @Code "@PAdjust" +on the last line of the paragraph. This definition has a problem in +that there will be a concluding unexpanded @Code "@LineList" symbol +which will hold up promotion of the enclosing galley; this problem +may be fixed by the same method used to end a list. +@PP +In an ideal world, there would be nothing further to say about horizontal +galleys. However there are a few differences which arise from various +practical considerations and limitations. Perhaps some day a more +perfect symmetry will be implemented. +@PP +Each vertical galley has a fixed finite width, and every component is +broken to that width. This is needed basically to trigger paragraph +breaking. However, there is no equivalent of paragraph breaking in +the vertical direction, so horizontal galleys do not have any particular +fixed height. Instead, each component has its own individual height. +@PP +When two objects are separated by {@Code "/"}, they +are assigned the same width (Section {@NumberOf targets}), and +this holds true even if the two objects are subsequently separated +by being promoted into different targets. For example, two aligned +equations will have the same width, and hence their alignment will be +preserved, even if they appear in different columns or pages. However, +even though @Code "&" aligns the marks of its two parameters, it does +not assign them a common height. This means that the height of any +component of a horizontal galley promoted into one target does not +affect the height consumed by the components promoted into any other +target. The other horizontal concatenation operator, {@Code "|"}, +does assign a common height to its two parameters; but sequences of +objects separated by this operator cannot be the components of a +horizontal galley. +@PP +Lout is able to read vertical galleys one paragraph at a time; in this +way it processes the document in small chunks, never holding more than +a few pages in memory at any time. However, horizontal galleys are +always read in completely, so they should not be extremely long. +@PP +In principle Lout should be able to hyphenate the components of +horizontal galleys when they are simple words, but this is not +implemented at present. +@PP +In an ideal world, every paragraph would be treated as a horizontal +galley. However, to do so in practice would be too slow and would +lead to excessive clumsiness in notation, so at present Lout has +two competing mechanisms in this area: the built-in paragraph +breaker with its limited set of options as given under the @Code +"@Break" operator, and horizontal galleys. As the example above +shows, horizontal galleys are in principle capable of implementing +many more paragraph styles than the built-in paragraph breaker +could ever hope to do. The recommended practical strategy is to use +the built-in paragraph breaker most of the time, and switch to +horizontal galleys only for occasional tricks, such as paragraphs +with drop capitals, circular outlines, etc. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_lexi b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_lexi new file mode 100755 index 0000000000000..b50c14f01a3d0 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_lexi @@ -0,0 +1,262 @@ +@Section + @Tag { lexical } + @Title { Lexical structure (words, spaces, symbols) and macros } +@Begin +@PP +The input to Lout consists of a sequence of @I {textual units}, +textual.unit @Index {Textual unit } +which may be +either {@I{white spaces}}, +@I identifiers, +@I delimiters, +or +@I {literal words}. Each +is a sequence of @I characters chosen from: +letter @Index { Letter character } +other @Index { Other character } +quote @Index { Quote character } +escape @Index { Escape character } +comment.char @Index { Comment character } +underscore.char @Index { Underscore character } +@ID @Tab + vmargin { 0.5vx } + @Fmta { @Col A ! @Col B } +{ +@Rowa A { letter } B { @Code "@ab-zAB-Z_" } +@Rowa A { white space } B { @I { space formfeed tab newline } } +@Rowa A { quote } B { @Code "\"" } +@Rowa A { escape } B { @Code "\\" } +@Rowa A { comment } B { @Code "#" } +@Rowa A { other } B { @Code "!$%&'()*+,-./0123456789:;<=>?[]^`{|}~" } +} +Notice that @Code "@" and @Code "_" are classed as letters. Basser +Lout accepts the accented letters of the ISO-LATIN-1 character set +(depending on how it is installed), and these are also classed as +letters. The ten digits are classed as `other' characters, and in +fact the `other' class contains all 8-bit characters (except octal 0) +not assigned to previous classes. +@PP +A @I {white space} is a sequence of one or more white space characters. +white.space @Index { White space } +formfeed @Index { Formfeed } +space.f @Index { Space } + Lout treats the formfeed character exactly like the space character; +it is useful for getting page breaks when printing Lout source code. +@PP +A @I delimiter is a sequence of one or more `other' characters which +delimiter @Index { Delimiter } +is the name of a symbol. For example, @Code "{" and @Code "//" are +delimiters. When defining a delimiter, the name must be enclosed +in quotes: +@ID @Code { +"def \"^\" { {} ^& {} }" +} +but quotes are not used when the delimiter is invoked. A delimiter may +have delimiters and any other characters adjacent, whereas identifiers +may not be adjacent to letters or other identifiers. The complete list +of predefined delimiters is +@ID @OneRow @Code { +{ + "/" + @JL "//" + @JL "^/" + @JL "^//" +} |2.2cx { + "|" + @JL "||" + @JL "^|" + @JL "^||" +} |2.2cx { + "&" + @JL "^&" +} |2.2cx { + "&&" + @JL "{" + @JL "}" +} +} +A longer delimiter like @Code "<=" will be recognised in +preference to a shorter one like {@Code "<"}. +@PP +An @I identifier is a sequence of one or more letters which is the name of a +identifier @Index { Identifier } +symbol. It is conventional but not essential to begin identifiers with +{@Code "@"}; Basser Lout will print a warning message if it finds an +unquoted literal word (see below) beginning with {@Code "@"}, since such +words are usually misspelt identifiers. The ten digits are not letters +and may not appear in identifiers; and although the underscore character +is a letter and may be used in identifiers, it is not conventional to +do so. The complete list of predefined identifiers is +@ID @OneRow @Code { +{ "@BackEnd" + @JL "@Background" + @JL "@Begin" + @JL "@BeginHeaderComponent" + @JL "@Break" + @JL "@Case" + @JL "@ClearHeaderComponent" + @JL "@Common" + @JL "@Char" + @JL "@CurrFace" + @JL "@CurrFamily" + @JL "@CurrLang" + @JL "@CurrYUnit" + @JL "@CurrZUnit" + @JL "@Database" + @JL "@End" + @JL "@EndHeaderComponent" + @JL "@Enclose" + @JL "@Filter" + @JL "@FilterErr" + @JL "@FilterIn" + @JL "@FilterOut" + @JL "@Font" + @JL "@ForceGalley" + @JL "@Galley" + @JL "@Graphic" + @JL "@HAdjust" + @JL "@HContract" + @JL "@HCover" + @JL "@HExpand" + @JL "@High" + @JL "@HLimited" + @JL "@HScale" +} |4.4cx { + "@HShift" + @JL "@HSpan" + @JL "@Include" + @JL "@IncludeGraphic" + @JL "@Insert" + @JL "@KernShrink" + @JL "@Key" + @JL "@Language" + @JL "@LClos" + @JL "@LEnv" + @JL "@LInput" + @JL "@LVis" + @JL "@LUse" + @JL "@LinkSource" + @JL "@LinkDest" + @JL "@Meld" + @JL "@Merge" + @JL "@Minus" + @JL "@Moment" + @JL "@Next" + @JL "@NotRevealed" + @JL "@Null" + @JL "@OneCol" + @JL "@OneOf" + @JL "@OneRow" + @JL "@Open" + @JL "@Optimize" + @JL "@Outline" + @JL "@PAdjust" + @JL "@PageLabel" + @JL "@PlainGraphic" + @JL "@Plus" + @JL "@PrependGraphic" +} |4.4cx { + "@RawVerbatim" + @JL "@Rotate" + @JL "@Rump" + @JL "@Scale" + @JL "@SetColor" + @JL "@SetColour" + @JL "@SetHeaderComponent" + @JL "@Space" + @JL "@StartHSpan" + @JL "@StartHVSpan" + @JL "@StartVSpan" + @JL "@SysDatabase" + @JL "@SysInclude" + @JL "@SysIncludeGraphic" + @JL "@SysPrependGraphic" + @JL "@Tag" + @JL "@Tagged" + @JL "@Target" + @JL "@Underline" + @JL "@Use" + @JL "@VAdjust" + @JL "@VContract" + @JL "@VCover" + @JL "@Verbatim" + @JL "@VExpand" + @JL "@VLimited" + @JL "@VScale" + @JL "@VShift" + @JL "@VSpan" + @JL "@Wide" + @JL "@Yield" + @JL "@YUnit" + @JL "@ZUnit" +} +} +plus the names of the parameters of @@Moment. The symbols @@LClos, @@LEnv, +lclos @Index { @@LClos symbol } +lenv @Index { @@LEnv symbol } +linput @Index { @@LInput symbol } +lvis @Index { @@LVis symbol } +luse @Index { @@LUse symbol } +@@LInput, @@LVis and @@LUse appear in cross reference databases generated +by Lout and are not for use elsewhere. +@PP +A sequence of characters which is neither a white space, an identifier, nor a +delimiter, is by default a @I {literal word}, which means that it will +word @Index { Word } +literal.word @Index { Literal word } +quoted.word @Index { Quoted word } +pass through Lout unchanged. An arbitrary sequence of characters +enclosed in double quotes, for example @Code "\"{ }\"", is also a +literal word. Space characters may be included, but not tabs or +newlines. There are special character sequences, used only between +quotes, for obtaining otherwise inaccessible characters: +@ID @Tab + vmargin { 0.5vx } + @Fmta { @Col A ! @Col B } +{ +@Rowa A { @Code "\\\"" } B { produces @Code "\"" } +@Rowa A { @Code "\\\\" } B { "\\" } +@Rowa A { @Code "\\ddd" } B { the character whose ASCII code is } +@Rowa A { } B { the up to three digit octal number {@Code ddd} } +} +So, for example, @Code "\"\\\"@PP\\\"\"" produces {@Code "\"@PP\""}. +@PP +When the comment character +comment @Index { Comment } +@Code "#" is encountered, everything from +that point to the end of the line is ignored. This is useful for +including reminders to oneself, like this: +@ID @OneRow @Code { +"# Lout user manual" +"# J. Kingston, June 1989" +} +for temporarily deleting parts of the document, and so on. +@PP +@I Macros +macro @Index { Macro } +provide a means of defining symbols which stand for a +sequence of textual units rather than an object. For example, the macro +definition +@ID @Code { +"macro @PP { //1.3vx 2.0f @Wide &0i }" +} +makes Lout replace the symbol @Code "@PP" by the given textual units +before assembling its input into objects. A similar macro to this +one is used to separate the paragraphs of the present document. The +enclosing braces and any spaces adjacent to them are dropped, which can +be a problem: @Code "@PP2i" has result {@Code "//1.3vx 2.0f @Wide &0i2i"} +which is erroneous. +@PP +The meaning of symbols used within the body of a macro is determined by +where the macro is defined, not by where it is used. Due to implementation +problems, @@Open symbols will not work within macros. Named and body +parameters will work if the symbol that they are parameters of is also +present. There is no way to get a left or right brace into the body of +a macro without the matching brace. +@PP +Macros may be nested within other definitions and exported, but they may +not be parameters. They may not have parameters or nested definitions +of their own, and consequently a preceding @Code export clause (Section +{@NumberOf visibility}) would be pointless; however, an @Code import +clause is permitted. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_name b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_name new file mode 100755 index 0000000000000..ae3dac2386f67 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_name @@ -0,0 +1,90 @@ +@Section + @Tag { named } + @Title { Named parameters } +@Begin +@PP +In addition to left and right (or body) parameters, a symbol may have +any number of {@I {named parameters}}: +parameter.named @SubIndex { @Code named parameter } +named.par @Index { @Code named parameter } +@ID @OneRow @Code { +"def @Chapter" +" named @Tag {}" +" named @Title {}" +" right x" +"{" +" ..." +"}" +} +Their definitions appear in between those of any left and right +parameters, and each is followed by a @I {default value} between +default @Index { Default value of parameter } +braces. When @Code "@Chapter" is invoked, its named parameters are +given values in the following way: +@ID @OneRow @Code { +"@Chapter" +" @Tag { intro }" +" @Title { Introduction }" +"{" +" ..." +"}" +} +That is, a list of named parameters appears immediately following the +symbol, each with its value enclosed in braces. Any right parameter +follows after them. They do not have to appear in the order they were +defined, and they can even be omitted altogether, in which case the +default value from the definition is used instead. +@PP +If the keyword @Code "compulsory" appears after @Code "named" and +before the parameter's name, Lout will print a warning message whenever +this parameter is missing. However it will still use the default value +as just described. +@PP +A named @Code "@Tag" parameter +tag.par @Index { @Code "@Tag" parameter, default value of } +does not take its default value from the definition; instead, if a default +value is needed, Lout invents a simple word which differs from every other +tag. This is important, for example, in the production of numbered +chapters and sections (Section {@NumberOf chapters}). The same thing occurs +if there is a @Code "@Tag" parameter but its value is the empty object: the +value will be replaced by an invented one. +@PP +Named parameters may have parameters, {@PageMark strange} as in the +following definition: +@ID @OneRow @Code { +"def @Strange" +" named @Format right @Val { [@Val] }" +" right x" +"{" +" @Format x" +"}" +} +The named parameter @Code "@Format" has right parameter {@Code "@Val"}, +and the default value of @Code "@Format" is this parameter enclosed in +brackets. When @Code "@Format" is invoked it must be supplied with +a right parameter, which will replace {@Code "@Val"}. Thus, +@ID @Code { +"@Strange 27" +} +equals @Code "@Format 27" and so has result +@ID { +@Strange 27 +} +The @Code "@Format" symbol is like a definition with parameters whose +body can be changed: +@ID @OneRow @Code { +"@Strange" +" @Format { Slope @Font @Val. }" +"27" +} +still equals {@Code "@Format 27"}, but this time the result is +@ID { +@Strange + @Format { Slope @Font @Val. } +27 +} +In practice, examples of named parameters with parameters all have this +flavour of format being separated from content; running headers (Section +{@NumberOf pagelayout}) and printing styles for bibliographies +(Section {@NumberOf biblio}) are two major ones. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_opti b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_opti new file mode 100755 index 0000000000000..981b468b2736e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_opti @@ -0,0 +1,39 @@ +@Section + @Title { Optimal galley breaking } + @Tag { optimal } +@Begin +@PP +As explained in Section {@NumberOf targets}, the components of a galley +optimal.gall @Index { Optimal galley breaking } +are promoted one by one into a target. When space runs out there, the +galley searches for a new target and promotion resumes. +@PP +This process is exactly analogous to placing words onto a line until +space runs out, then moving to another line. But, as we know, that +simple method is inferior to the optimal paragraph breaking used by +Lout (copied from the @TeX system), which examines the entire paragraph +and determines the most even assignment of words to lines. +@PP +Lout offers @I { optimal galley breaking }, the equivalent for galleys +of optimal paragraph breaking. Optimal galley breaking can reduce the +size of ugly blank spaces at the bottom of pages preceding large +unbreakable displays, sometimes quite dramatically. +@PP +Optimal galley breaking is applied to each galley, horizontal or +vertical, that possesses a parameter or nested symbol called +@Code "@Optimize" whose value is {@Code Yes}. Like cross referencing, +optimize.sym @Index { @Code "@Optimize" symbol } +it takes two runs to have effect. On the first run, Lout records the +sizes of the galley's components and gaps, and also the space available +at each of its targets. At end of run this information is used to find +an optimal break, which is written to the cross-reference database. On +the second run, the optimal break is retrieved and used. +@PP +Considering that this process must cope with floating figures, +new page and conditional new page symbols, breaks for new chapters, and +evolving documents, it is surprisingly robust. If it does go badly +wrong, removing file @Code "lout.li" then running Lout twice without +changing the document may solve the problem. However, cases are known +where the optimization never converges. These are usually related to +figures and footnotes whose anchor points fall near page boundaries. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_prec b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_prec new file mode 100755 index 0000000000000..c2dd72d63a201 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_prec @@ -0,0 +1,103 @@ +@Section + @Title { Precedence and associativity of symbols } + @Tag { precedence } +@Begin +@PP +Every symbol in Lout has a {@I precedence}, +preceden @Index { Precedence } +which is a positive whole number. When two symbols compete for an object, +the one with the higher precedence wins it. For example, +@ID @Code { +"a | b / c" +} +is equivalent to @OneCol @Code { "{" a "|" b "}" "/" c } rather than +{@OneCol @Code { a "|" "{" b "/" c "}"} }, because @Code "|" has higher +precedence than @Code "/" and thus wins the {@Code b}. +@PP +When the two competing symbols have equal precedence, Lout applies a +second rule. Each symbol is either @I left-associative or +associativity @Index { Associativity } +{@I right-associative}. The value of @OneCol @Code { a op1 b op2 c} is taken +to be @OneCol @Code { "{" a op1 b "}" op2 c } if the symbols are both +left-associative, and @OneCol @Code "a op1 { b op2 c }" if they are +right-associative. In cases not covered by these two rules, use braces. +@PP +It sometimes happens that the result is the same regardless of how the +expression is grouped. For example, @OneCol @Code { "{" a "|" b "}" "|" c } +and @OneCol @Code { a "|" "{" b "|" c "}" } are always the same, for any +combination of objects, gaps, and variants of {@Code "|"}. In such cases +the symbols are said to be {@I associative}, and we can confidently omit +the braces. +@PP +User-defined symbols may be given a precedence and associativity: +@ID @OneRow @Code { +"def @Super" +" precedence 50" +" associativity right" +" left x" +" right y" +"{" +" @OneRow { | -2p @Font y ^/0.5fk x }" +"}" +} +They come just after any @Code into clause and before any parameter +definitions. The precedence may be +any whole number between 10 and 100, and if omitted is assigned the +value 100. The higher the number, the higher the precedence. The +associativity may be @Code left or {@Code right}, and if omitted +defaults to {@Code right}. Lout's symbols have the following +precedences and associativities: +@ID @Tab + vmargin { 0.5vx } + @Fmta { @Col @CC A ! @Col @CC B ! @Col C } +{ +@Rowa + A { Precedence } + B { Associativity } + C { Symbols } +@Rowa +@Rowa + A { 5 } + B { associative } + C { @Code "/ ^/ // ^//" } +@Rowa + A { 6 } + B { associative } + C { @Code "| ^| || ^||" } +@Rowa + A { 7 } + B { associative } + C { @Code "& ^&" } +@Rowa + A { 7 } + B { associative } + C { @Code "&" in the form of one or more white space characters } +@Rowa + A { 10-100 } + B { @Code left or @Code right } + C { user-defined symbols } +@Rowa + A { 100 } + B { @Code right } + C { @@Wide, @@High, @@Graphic, etc. } +@Rowa + A { 101 } + B { - } + C { @Code "&&" } +@Rowa + A { 102 } + B { associative } + C { @Code "&" in the form of 0 spaces } +@Rowa + A { 103 } + B { - } + C { Body parameters and right parameters of @@Open } +} +Actually the precedence of juxtaposition (two objects separated +by zero spaces) is a little more complicated. If either of the +two objects is enclosed in braces, the precedence is 7 as for +one or more spaces. If neither object is enclosed in braces, +the precedence is 102 as shown above. This complicated rule +seems to accord better with what people expect and need in +practice than a pure precedence rule can do. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_size b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_size new file mode 100755 index 0000000000000..56738aceea49e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_size @@ -0,0 +1,146 @@ +@Section + @Title { The style and size of objects } + @Tag { size } +@Begin +@PP +This section explains how Lout determines the style and size of each +object. Together, these attributes determine the object's final +appearance in the output. +style @Index { Style of an object } +@PP +The style of an object comprises the following: +@BulletList +@ListItem { Which font family, face and size to use (also defining the +@Code f unit); } +@ListItem { Whether small capitals are in effect or not; } +@ListItem { What gap to replace a single space between two objects by (also +defining the @Code s unit); } +@ListItem { The interpretation to place on white space separating +two objects ({@Code lout}, {@Code compress}, {@Code separate}, {@Code troff}, +or {@Code tex} as in Section {@NumberOf space}); } +@ListItem { The current value of the @Code y and @Code z units of +measurement (Section {@NumberOf yunit}); } +@ListItem { The kind of paragraph breaking to employ ({@Code adjust}, +{@Code ragged}, etc.) } +@ListItem { What gap to insert between the lines of paragraphs +(also defining the @Code v unit); } +@ListItem { Whether to permit hyphenation or not; } +@ListItem { What colour the object is to appear in; } +@ListItem { Whether @@Outline is in effect; } +@ListItem { The language of the object; } +@ListItem { Whether @@VAdjust, @@HAdjust and @@PAdjust are in effect. } +@EndList +The style of an object depends on where it appears in the final +document. For example, the style of a parameter depends on where it is +used; the style of a galley is the style of the first target that it +attempts to attach itself to. Of course, the style of any object can be +changed by using the @@Font, @@Break, @@Space, @@SetColour or +@@SetColor, @@Outline, and @@Language symbols. +@PP +There are no standard default values for style, except that small capitals +and outlining are initially off, the interpretation of white space is +initially {@Code lout}, and the values of the @Code y and @Code z units +are zero. Therefore one must ensure that the root galley or each of its +components is enclosed in @@Font, @@Break, @@SetColour or @@SetColor, and +@@Language symbols. From there the style is passed to incoming galleys +and the objects within them. Enclosure in @@Space is not required because +the @Code "s" unit is also set by @@Font (Section {@NumberOf space}). +@PP +width. @Index { Width of an object } +height. @Index { Height of an object } +size. @Index { Size of an object } +The remainder of this section explains how the size of each object (its +width and height on the printed page) is determined. We will treat width +only, since height is determined in exactly the same way, except that the +complications introduced by paragraph breaking are absent. +@PP +With three exceptions (see below), the width of an object is as large as +it possibly could be without violating a @@Wide symbol or intruding into +the space occupied by neighbouring gaps or objects. As an aid to +investigating this rule, we will use the definition +@ID @OneRow @Code { +"def @TightBox right x" +"{" +" \"0 0 moveto xsize 0 lineto xsize ysize lineto 0 ysize lineto closepath stroke\"" +" @Graphic x" +"}" +} +which draws a box around the boundary of its right parameter (Section +{@NumberOf graphic}) with no margin. The result of +@ID @Code { +"5c @Wide @TightBox metempsychosis" +} +is +@ID { +5c @Wide @TightBox metempsychosis +} +The widest that @Code "@TightBox metempsychosis" could possibly be is five +centimetres, and accordingly that is its width. The same applies to +{@Code metempsychosis}, which is five centimetres wide as well. Note +carefully that there is no object in this example whose width is equal +to the sum of the widths of the letters of {@Code metempsychosis}. +@PP +The first of the three exceptions to the `as wide as possible' rule is the +@@HContract symbol, which causes the width of its right parameter to be +reduced to a reasonable minimum (a formal definition will not be attempted): +@ID @OneRow @Code { +"5c @Wide @HContract @TightBox metempsychosis" +} +produces +@ID { +5c @Wide @HContract @TightBox metempsychosis +} +The object @Code "@HContract @TightBox metempsychosis" is still five centimetres +wide, but the object @Code "@TightBox metempsychosis" has been reduced. +@PP +The second of the three exceptions is the horizontal concatenation symbol +@Code "|" (and also {@Code "&"}). Consider this example: +@ID @OneRow @Code { +"5c @Wide @TightBox { A |1c B |1c C }" +} +As usual, the right parameter of @@Wide is five centimetres wide, and +the result looks like this: +@ID { +5c @Wide @TightBox { A |1c B |1c C } +} +Lout has to apportion the size minus inter-column gaps among the three +columns. +@PP +If the columns are wide enough to require paragraph breaking, Lout will +assign sizes to the columns in such a way as to leave narrow columns +unbroken and break wider columns to equal width, occupying the full +size. Otherwise, paragraph breaking is not required, and each column +will be assigned a reasonable minimum size in the manner of @@HContract, +except that the last column receives all the leftover width. For example, +@ID @OneRow @Code { +"5c @Wide { @TightBox A |1c @TightBox B |1c @TightBox C }" +} +has result +@ID { +5c @Wide { @TightBox A |1c @TightBox B |1c @TightBox C } +} +If it is desired that the leftover width remain unused, rather than +going into the last column, an empty column can be appended, or the last +column can be enclosed in @@HContract. Two other ways to apportion the +leftover width are provided by the @@HExpand and @@HAdjust symbols +(Sections {@NumberOf hexpand} and {@NumberOf hadjust}). +@PP +The third and final exception to the `as wide as possible' rule concerns +the components of the root galley. Each is considered to be enclosed +root.galley.size @SubIndex { size of components of } +in @@HContract and @@VContract symbols. +@PP +Up to this point we have treated width as a single quantity, but of +course it has two parts: width to left and right of the mark. The +`as wide as possible' rule applies to both directions: +@ID @Code { +"@HContract { @TightBox 953^.05 /0.5c @TightBox 2^.8286 }" +} +has result +@ID { +@HContract { @TightBox 953^.05 /0.5c @TightBox 2^.8286 } +} +Leftover width usually goes to the right, as we have seen, but here some +width was available only to the left of {@Code "2.8286"} owing to the +column mark alignment. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_sort b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_sort new file mode 100755 index 0000000000000..ab3ebeb496977 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_sort @@ -0,0 +1,83 @@ +@Section + @Title { Sorted galleys } + @Tag { sorted } +@Begin +@PP +When footnotes are placed at the bottom of a page, they appear there in +first come, first served order. To make galleys appear in sorted order, as +sorted.galley @Index { Sorted galleys } +is needed in bibliographies and indexes, a parameter or nested definition +with the special name @@Key +key. @Index { @@Key parameter } +is added to the galley definition, like this: +@ID @OneRow @Code { +"def @IndexEntry into { @IndexPlace&&following }" +" left @Key" +" right x" +"{ x }" +} +@@Key must be set to a simple word, or several words with nothing more +complex than font changes within them, when the galley is invoked: +@ID @Code { +"{ cities compare } @IndexEntry { cities, comparison of, 27 }" +} +and this key is used to sort the galleys. +@PP +If several sorted galleys with the same key are sent to the same place, +the default behaviour is to print only the first of them; the assumption +is that the others are probably unwanted duplicates. This holds good +for sorted reference lists, for example: we don't want two copies of +a reference just because we happen to cite it twice. However, the +other common example of sorted galleys, index entries, requires something +different: @I merged galleys. +@PP +Suppose that at some point of the document we insert the index entry +@ID @Code "aardvarks @IndexEntry { Aardvarks, 23 }" +while at another point we insert +@ID @Code "aardvarks @IndexEntry { Aardvarks, 359 }" +How the page numbers are worked out is not relevant here. Clearly we +would like to merge these two entries into one entry that comes out as +@ID "Aardvarks, 23, 359" +The following definition will merge two objects in this way: +@ID @OneRow @Code { +"def @Merge left x right y" +"{" +" {x @Rump y} @Case" +" {" +" \"\" @Yield x" +" else @Yield { x, x @Rump y }" +" }" +"}" +} +The @@Rump symbol is the subject of Section {@NumberOf rump}; this +says `if the two things to be merged are equal, the result is one +of them; otherwise it is the first followed by a comma and space +and then the rump of the second.' Our only problem is that this +symbol has to be applied to two galleys from widely separated +parts of the document. +@PP +Lout makes this possible by the following special rule: if a +sorted galley contains a nested definition of a symbol whose name +is @@Merge (@@Merge must have just two parameters, left and right), +merge. @Index { @@Merge symbol } +and if that sorted galley is preceded in the list of +sorted galleys destined for some target by another sorted galley +with the same key, then rather than being discarded, the second +galley is merged into the first using the @@Merge symbol. +@PP +The natural thing to do when more than two galleys have the same +key is to merge the first two, then merge the third with the +result of that, then the fourth with the result of that, and +so on. For efficiency reasons beyond our scope here, Lout does +the merging in a different order: it merges @Eq { n } galleys +by merging the first @Eq { lfloor n slash 2 rfloor } together, +then the last @Eq { lceil n slash 2 rceil } together, then +merging the result. Of course, if the @@Merge symbol is +associative this has the same effect. The @@Merge symbol above +is not strictly associative, but it is close enough in practice. The +total time it takes to merge @Eq { n } galleys with equal keys +is @Eq { O ( n sup 2 ) } or somewhat higher (but always polynomial +in @Eq { n }) depending on how many times the parameters occur +within the body of @@Merge; to do it in the natural linear order +would take Lout exponential time. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_visi b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_visi new file mode 100755 index 0000000000000..870f781b5f382 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/det_visi @@ -0,0 +1,181 @@ +@Section + @Tag { visibility } + @Title { Nested definitions, body parameters, extend, import, and export } +@Begin +@PP +A definition may contain +nested.def @Index { Nested definitions } +other definitions at the beginning of its body: +@ID @OneRow @Code { +"def @NineSquare" +" right x" +"{" +" def @Three { x |0.2i x |0.2i x }" +"" +" @Three /0.2i @Three /0.2i @Three" +"}" +} +A parameter like @Code x may be invoked anywhere within the body of the +symbol it is a parameter of, including within nested definitions. A +nested symbol like @Code "@Three" may be invoked anywhere from the +beginning of its own body to the end of the body of the symbol it is +defined within. So, assuming an appropriate definition of +{@Code "@Box"}, +@ID @Code { +"@NineSquare @Box" +} +has result +@ID @Fig { +@NineSquare @Box { 0.2i @Wide 0.2i @High } +} +Nested definitions may themselves contain nested definitions, to +arbitrary depth. +@PP +There are three special features which permit a nested symbol or +parameter to be invoked outside its normal range; that is, outside the +body of the enclosing symbol. The first and simplest of these features +is the {@I {body parameter}}, +parameter.body @SubIndex { @Code body parameter } +body.par @Index { @Code body parameter } +an alternative form of right parameter. The Eq equation formatting +package @Cite { $kingston1995lout.user, Chapter 7 } is a classic example +of the use of a body parameter. In outline, it looks like this: +@ID @OneRow @Code { +"export \"+\" sup over" +"" +"def @Eq" +" body x" +"{" +" def \"+\" ..." +" def sup ..." +" def over ..." +" ..." +"" +" Slope @Font x" +"}" +} +First we list those nested symbols and parameters that we intend to +refer to outside the body of @Code "@Eq" in an @Code export clause, +export @Index { @Code export clause } +preceding the definition as shown. Only exported symbols may be +invoked outside the body of {@Code "@Eq"}. The body parameter is like a +right parameter except that the exported symbols are visible within it: +@ID @Code { +"@Eq { {x sup 2 + y sup 2} over 2 }" +} +calls on the nested definitions of @Code "@Eq" to produce the result +@ID { +@Eq { {x sup 2 + y sup 2} over 2 } +} +The body parameter's value must be enclosed in braces. The term `body +parameter' is a reminder that the value is interpreted as if it was +within the body of the symbol. +@PP +A body parameter may not be exported, and in fact a body parameter may +be invoked only within the body of the enclosing symbol, not within +any nested definitions. For example, @Code "x" above may not be invoked +within {@Code "sup"}. This restriction is needed to avoid the +possibility of recursion, when the actual body parameter invokes an +exported nested definition which invokes the body parameter, etc. +@PP +The second place where exported symbols may be used is in the right +parameter of the @@Open symbol, and following its alternative form, +@@Use (Section {@NumberOf open}). +@PP +Exported nested symbols and parameters may be made visible within +a subsequent definition or macro by preceding it with an @Code import +import @Index { @Code import clause } +clause, like this: +@ID @OneRow @Code { +"import @Eq" +"def pythag { sqrt { x sup 2 + y sup 2 } }" +} +Note however that @Code pythag can only be used with some invocation of +{@Code "@Eq"}: within the body parameter of an invocation of {@Code "@Eq"}, +within the right parameter of an {@Code "@Eq&&tag @Open"}, or following +a {@Code "@Use { @Eq ... }"}. There may be several symbols in the +@Code import clause. +@PP +In a similar way to {@Code "import"}, a definition may be preceded +by {@Code "extend"} followed by a symbol name: +@ID @OneRow @Code { +"extend @Eq" +"def pythag { sqrt { x sup 2 + y sup 2 } }" +} +The effect of this is just as though the definition of @Code "pythag" +had occurred directly after the existing definitions within +{@Code "@Eq"}, with {@Code "pythag"} added to {@Code "@Eq"}'s +export list. This is useful for extending the capabilities of a +package of definitions like @Code "@Eq" without modifying its source +file. The essential differences to @Code "import" are that all the +symbols of @Code "@Eq" become visible within {@Code "pythag"}, not +just the exported ones, and only one symbol may follow the +@Code "extend" keyword. +@PP +Actually, more than one symbol may follow {@Code extend}, but this +usage indicates a `path name' of the symbol. For example, +@ID @OneRow @Code { +"extend @DocumentLayout @ReportLayout" +"def @Keywords ..." +} +causes the definition of @Code "@Keywords" to occur directly after +the existing definitions of {@Code "@ReportLayout"}, which itself +lies within {@Code "@DocumentLayout"}. +@PP +A named parameter may also be preceded by an @Code "import" clause. +As usual, the meaning is that the visible local definitions of +the import symbol(s) are visible within the body (the default +value) of the named parameter. But furthermore, those symbols +will be visible within all invocations of the parameter. For +example, suppose we define +@ID @OneRow @Code { +"def @Diag" +" import @Algebra named linewidth { 1p }" +" import @Algebra named dashlength { 2p }" +" ..." +} +Then, if @Code "@Algebra" exports symbols {@Code "+"}, +{@Code "-"}, and so on, we may write +@ID @OneRow @Code { +"@Diag" +" linewidth { 1f - 2p }" +" dashlength { 1f + 2p }" +} +using the symbols from {@Code "@Algebra"}. There may be several +symbols after the @Code "import" keyword. All these symbols +share an important restriction: they may not have parameters. +This is necessary because Lout would be unable to determine +suitable values for any such parameters, if they did exist. +@PP +As an exception to the rule just given, a named parameter may +import the symbol it is a parameter of: +@ID @OneRow @Code { +"export @Cell" +"def @Tbl" +" import @Tbl named @Format { ... }" +} +In this example the exported definitions of @Code "@Tbl" (i.e. +{@Code "@Cell"}) will be visible within {@Code "@Format"}. However, +they may only be used in actual parameters, not in the default +value of the named parameter. This is owing to implementation +problems: at the time the default value of {@Code "@Format"} is +read, the exported symbols have not been read and are consequently +not known. +@PP +Since @Code "@Cell" is nested within {@Code "@Tbl"}, the +value of an invocation of @Code "@Cell" may depend on the value +of parameters of {@Code "@Tbl"}. If @Code "@Cell" is used within +an actual {@Code "@Format"} parameter, its value depends on the +value of parameters of the invocation of {@Code "@Tbl"} of which +the {@Code "@Format"} parameter is a part. +@PP +A definition, macro, or named parameter may have several alternative +names, like this: +@ID @Code "macro @CD @CentredDisplay @CenteredDisplay { ... }" +This is useful for abbreviated and alternative spellings, as shown. The +names appear together, and they may subsequently be used interchangeably. +@PP +If one name of a symbol appears in an export or import list, its other +names are automaticaly included as well, and should not also appear +in the list. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/exa b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/exa new file mode 100755 index 0000000000000..c4c385cf06bea --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/exa @@ -0,0 +1,21 @@ +@Chapter + @Title { Examples } + @Tag { examples } +@Begin +@LP +This chapter presents some examples taken from the various +packages available with Basser Lout. The reader who masters these +examples will be well prepared to read the packages themselves. The +examples have not been simplified in any way, since an important part of +their purpose is to show Lout in actual practice. +@PP +Although all these examples have been taken from real code, they do +not necessarily represent the current state of the Lout packages. +@BeginSections +@Include { exa_equa } +@Include { exa_para } +@Include { exa_page } +@Include { exa_chap } +@Include { exa_bibl } +@EndSections +@End @Chapter diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/exa_bibl b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/exa_bibl new file mode 100755 index 0000000000000..9de5f26472c66 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/exa_bibl @@ -0,0 +1,238 @@ +@Section + @Title { Bibliographies } + @Tag { biblio } +@Begin +@PP +bibliographies @Index { Bibliographies } +The first step in the production of a bibliography is to create a +database of references based on the definition +reference.example @Index { @Code "@Reference" example } +@ID @Code { + "export @Type @Author @Title @Institution @Number @Publisher" +//1vx " @Year @Proceedings @Journal @Volume @Pages @Comment" +//1vx "" +//1vx "def @Reference" +//1vx " named @Tag" |2f "{ TAG? }" + /1vx " named @Type" | "{ TYPE? }" + /1vx " named @Author" | "{ AUTHOR? }" + /1vx " named @Title" | "{ TITLE? }" + /1vx " named @Institution" | "{ INSTITUTION? }" + /1vx " named @Number" | "{ NUMBER? }" + /1vx " named @Publisher" | "{ PUBLISHER? }" + /1vx " named @Year" | "{ YEAR? }" + /1vx " named @Proceedings" | "{ PROCEEDINGS? }" + /1vx " named @Journal" | "{ JOURNAL? }" + /1vx " named @Volume" | "{ VOLUME? }" + /1vx " named @Pages" | "{ PAGES? }" + /1vx " named @Comment" | "{ @Null }" +//1vx "{ @Null }" +} +For example, the database might contain +@IL +@LI @Code { +"{ @Reference" +" @Tag { strunk1979style }" +" @Type { Book }" +" @Author { Strunk, William and White, E. B. }" +" @Title { The Elements of Style }" +" @Publisher { MacMillan, third edition }" +" @Year { 1979 }" +"}" +} + +@LI @Code { +"{ @Reference" +" @Tag { kingston92 }" +" @Type { TechReport }" +" @Author { Kingston, Jeffrey H. }" +" @Title { Document Formatting with Lout (Second Edition) }" +" @Number { 449 }" +" @Institution { Basser Department of Computer" +"Science F09, University of Sydney 2006, Australia }" +" @Year { 1992 }" +"}" +} +@EL +Since named parameters are optional, we have one for every conceivable +type of attribute, and simply leave out those that do not apply in any +particular reference. We can print a reference by using the @@Open +symbol to get at its attributes: +@ID @Code { +"@Reference&&strunk1979style @Open" +"{ @Author, {Slope @Font @Title}. @Publisher, @Year. }" +} +The right parameter of @@Open may use the exported parameters of the +left, and so the result is +@ID { +@Reference&&strunk1979style @Open +{ @Author, {Slope @Font @Title}. @Publisher, @Year. } |0io +} +Incidentally, we are not limited to just one database of references; +several @@Database symbols can nominate the same symbol, and invocations of +that symbol can appear in the document itself as well if we wish. +@PP +The second step is to create a database of print styles for the various +types of reference (Book, TechReport, etc.), based on the following +definition: +@ID @Code { +"export @Style" +"def @RefStyle" +" left @Tag" +" named @Style right reftag {}" +"{}" +} +Notice that the named parameter @Code "@Style" has a right parameter +{@Code "reftag"}. The style database has one entry for each type of +reference: +@ID @Code { +"{ Book @RefStyle @Style" +" { @Reference&&reftag @Open" +" { @Author, {Slope @Font @Title}. @Publisher, @Year. @Comment }" +" }" +"}" +"" +"{ TechReport @RefStyle @Style" +" { @Reference&&reftag @Open" +" { @Author, {Slope @Font @Title}. Tech. Rep. @Number (@Year)," +"@Institution. @Comment }" +" }" +"}" +} +and so on. The following prints the reference whose tag is +@Code strunk1979style in the Book style: +@ID @Code { +"@RefStyle&&Book @Open { @Style strunk1979style }" +} +It has result +@ID { +@RefStyle&&Book @Open { @Style strunk1979style } |0io +} +Notice how the @Code "@Style" parameter of @Code "@RefStyle" is given the +parameter {@Code strunk1979style}, which it uses to open the appropriate +reference. +@PP +We can consult the @Code "@Type" attribute of a reference to find out +its style, which brings us to the following definition for printing out +a reference in the style appropriate to it: +@ID @Code { +"def @RefPrint" +" right reftag" +"{ @RefStyle&&{ @Reference&&reftag @Open { @Type } }" +" @Open { @Style reftag }" +"}" +} +For example, to evaluate {@Code "@RefPrint strunk1979style"}, Lout first +evaluates +@ID @Code { +"@Reference&&strunk1979style @Open { @Type }" +} +whose result is {@Code { @Reference&&strunk1979style @Open { @Type } }}, +and then evaluates +@ID @Code { +"@RefStyle&&Book @Open { @Style strunk1979style }" +} +as before. Complicated as this is, with its two databases and clever +passing about of tags, the advantages of separating references from +printing styles are considerable: printing styles may be changed +easily, and non-expert users need never see them. +@PP +Finally, we come to the problem of printing out a numbered list of +references, and referring to them by number in the body of the +document. The first step is to create a numbered list of places that +galleys containing references may attach to: +referencesection.example @Index { @Code "@ReferenceSection" example } +@ID @Code { +"def @ReferenceSection" +" named @Tag {}" +" named @Title { References }" +" named @RunningTitle { dft }" +" named style right tag { tag. }" +" named headstyle right @Title { @Heading @Title }" +" named indent { @DispIndent }" +" named gap { @DispGap }" +" named start { 1 }" +"{" +" def @RefList right num" +" {" +" @NumberMarker num & indent @Wide {style num} | @RefPlace" +" //gap @RefList @Next num" +" }" +"" +" @Protect headstyle @Title" +" // @PageMarker&&preceding @Tagged @Tag" +" // @Title @MajorContentsEntry {@PageOf @Tag}" +" // @Runner" +" @FootEven { |0.5rt 0.8f @Font @B @PageNum }" +" @FootOdd { |0.5rt 0.8f @Font @B @PageNum }" +" //@DispGap @RefList start" +" // @Runner" +" @TopEven { @B @PageNum }" +" @TopOdd { @I {@RunningTitle @OrElse @Title} |1rt @B @PageNum }" +"}" +} +We place the expression @Code "@ReferenceSection" at the point where we +want the list of references to appear; its value is something like +@ID @Code { +"1. @RefPlace" +"2. @RefPlace" +"3. @RefPlace" +"..." +} +where @Code "@RefPlace" is @Code "@Galley" as usual. We can scatter +multiple lists of references through the document if we wish (at the end +of each chapter, for example), simply by placing @Code "@ReferenceSection" +at each point. +@PP +Our task is completed by the following definition: +ref.example @Index { @Code "@Ref" example } +@ID @Code { +"def @Ref right x" +"{" +" def sendref into { @RefPlace&&following }" +" right @Key" +" {" +" @NumberMarker&&preceding @Tagged x &" +" @PageMarker&&preceding @Tagged x &" +" @RefPrint x" +" }" +"" +" @NumberMarker&&x @Open { @Tag } sendref x" +"}" +} +Given this definition, the invocation {@Code "@Ref strunk1979style"} has result +@ID @Code "@NumberMarker&&strunk1979style @Open { @Tag }" +plus the galley {@Code "sendref strunk1979style"}. We first +follow what happens to the galley. +@PP +According to its @Code into clause, the galley will replace a +@Code "@RefPlace" in the nearest following {@Code "@ReferenceSection"}. If +every such galley is a sorted galley whose key is the reference's tag, as +this one is, they will appear sorted by tag. The galley's object is +@ID @Code { +"@NumberMarker&&preceding @Tagged strunk1979style &" +"@PageMarker&&preceding @Tagged strunk1979style &" +"@RefPrint strunk1979style" +} +The result of the @@Tagged symbol is always @@Null, so this prints the +@Code strunk1979style reference in the appropriate style at the +{@Code "@RefPlace"}, as desired. +@PP +Now @Code "@NumberMarker&&preceding" is the nearest preceding invocation of +@Code "@NumberMarker" in the final document. This must be the invocation of +@Code "@NumberMarker" just before the @Code "@RefPlace" that received +the galley, and so this invocation of @Code "@NumberMarker" is given @Code +strunk1979style as an additional tag by the @@Tagged symbol. Its original tag +was the number of the reference place, which means that +@ID @Code { +"@NumberMarker&&strunk1979style @Open { @Tag }" +} +has for its result the number of the reference place that received the +@Code strunk1979style galley, and this is the desired result of +{@Code "@Ref strunk1979style"}. +@PP +It might seem that if we refer to the @Code strunk1979style reference twice, +two copies will be sent to the reference list and it will appear +twice. However, when more than one sorted galley with the same key is sent +to the same place, only one of them is printed (Section {@NumberOf galleys}); +so provided that sorted galleys are used there is no problem. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/exa_chap b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/exa_chap new file mode 100755 index 0000000000000..51926c099086f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/exa_chap @@ -0,0 +1,273 @@ +@Section + @Title { Chapters and sections } + @Tag { chapters } +@Begin +@PP +The definitions of chapters and sections from the DocumentSetup package +chapters. @Index { Chapters and sections } +of Version 2 (in Version 3, the BookSetup extension of DocumentSetup) +form the subject of this section. They allow a chapter to be entered +like this: +document.layout.chapters @SubIndex { chapters and sections } +@ID @Code { +"@Chapter" +" @Title { ... }" +" @Tag { ... }" +"@Begin" +" ..." +"@End @Chapter" +} +Within the chapter a sequence of sections may be included by writing +@ID @Code { +"@BeginSections" +"@Section { ... }" +"..." +"@Section { ... }" +"@EndSections" +} +These are numbered automatically, and an entry is made for each in a +table of contents. +@PP +The user of the DocumentSetup package can find the number of the chapter or +section with a given tag by writing @Code "@NumberOf tag" at any point +in the document. This feature is based on the following definitions: +numberof.example @Index { @Code "@NumberOf" example } +@ID @Code { +"export @Tag" +"def @NumberMarker right @Tag { @Null }" +"" +"def @NumberOf right x" +"{ @NumberMarker&&x @Open { @Tag } }" +} +Each chapter and section will contain one invocation of +{@Code "@NumberMarker"}; a full explanation will be given later. +@PP +A sequence of places for receiving chapters is easily defined: +@ID @Code { +"export @Tag" +"def @ChapterList right @Tag" +"{" +" @Galley" +" //@ChapterGap @ChapterList @Next @Tag" +"}" +} +@Code "@ChapterGap" will usually be {@Code "1.1b"}, ensuring that each +chapter begins on a new page. The @Code "@Chapter" galley itself is +defined as follows: +chapter.example @Index { @Code "@Chapter" example } +@IndentedList +@LI @Code { +"export @FootNote @BeginSections @EndSections @Section" +"def @Chapter force into { @ChapterList&&preceding }" +" named @Tag {}" +" named @Title {}" +" named @RunningTitle { dft }" +" body @Body" +"{" +" def @FootNote right x { @ColFootNote x }" +"" +" def @BeginSections ..." +" def @EndSections ..." +" def @Section ..." +} +@LI @Code { +" def @ChapterTitle" +" {" +" @ChapterNumbers @Case {" +" {Yes yes} @Yield { Chapter {@NumberOf @Tag}. |2s @Title }" +" else @Yield @Title" +" }" +" }" +"" +" def @ChapterNum" +" {" +" @ChapterNumbers @Case {" +" {Yes yes} @Yield { Chapter {@NumberOf @Tag} }" +" else @Yield @Null" +" }" +" }" +} +@LI @Code { +" ragged @Break @BookTitleFormat @ChapterTitle" +" // @NumberMarker {" +" @ChapterList&&@Tag @Open { @Tag }" +" }" +" // @ChapterList&&preceding @Tagged @Tag" +" // @NumberMarker&&preceding @Tagged @Tag" +" // @PageMarker&&preceding @Tagged @Tag" +" // { @ChapterTitle } @MajorContentsEntry {@PageOf @Tag}" +" // @Runner" +" @FootEven { |0.5rt 0.8f @Font @B @PageNum }" +" @FootOdd { |0.5rt 0.8f @Font @B @PageNum }" +" // @Body" +" //@SectionGap @ChapRefSection" +" // @Runner" +" @TopEven { @B @PageNum |1rt @I @ChapterNum }" +" @TopOdd { @I {@RunningTitle @OrElse @Title} |1rt @B @PageNum }" +"}" +} +@EndList +We will see the symbols for sections shortly. Notice how their use has +been restricted to within the right parameter of {@Code "@Chapter"}, by +nesting them and using a body parameter. +@PP +The meaning of @Code "@FootNote" within @Code "@Chapter" has been set +to {@Code "@ColFootNote"}, which produces a footnote targeted to +{@Code "@ColFootList"} (see Section {@NumberOf pagelayout}). In other +words, footnotes within chapters go at the foot of the column, not at +the foot of the page. (Of course, in single-column books this +distinction is insignificant.) @Code "@ChapterTitle" and +@Code "@ChapterNum" are trivial definitions which vary depending on +whether the user has requested numbered chapters or not. +@PP +Each invocation of @Code "@Chapter" has its own unique {@Code "@Tag"}, +either supplied by the user or else inserted automatically by Lout. We +now trace the cross referencing of chapter numbers on a hypothetical +third chapter whose tag is {@Code "euclid"}. +@PP +@Code "@ChapterList&&preceding @Tagged euclid" attaches @Code "euclid" +as an extra tag to the first invocation of @Code "@ChapterList" +preceding itself in the final printed document. But this +@Code "@ChapterList" must be the target of the chapter, and so +@ID @Code "@ChapterList&&euclid @Open { @Tag }" +is 3, the number of the chapter ({@Code "@Tag"} refers to the parameter +of {@Code "@ChapterList"}, not the parameter of {@Code "@Chapter"}). + Consequently the invocation of +@Code "@NumberMarker" within the chapter is equal to +{@Code "@NumberMarker 3"}. +@PP +@Code "@NumberMarker&&preceding @Tagged euclid" attaches @Code "euclid" +to {@Code "@NumberMarker 3"} as an extra tag, and so +{@Code "@NumberOf euclid"}, which expands to +@ID @Code "@NumberMarker&&euclid @Open { @Tag }" +must be equal to 3, as required. This scheme could be simplified by +placing the invocation of @Code "@NumberMarker" within +@Code "@ChapterList" rather than within {@Code "@Chapter"}, but it turns +out that that scheme does not generalize well to sections and subsections. +@PP +There is a trap for the unwary in the use of @Code preceding and +{@Code following}. Suppose that the invocation of @Code "@NumberMarker" +within @Code "@Chapter" is replaced by the seemingly equivalent +@ID @Code "@NumberMarker { @ChapterList&&preceding @Open { @Tag } }" +Now suppose that @Code "@NumberOf euclid" appears somewhere within +Chapter 7. It will expand to +@ID @Code "@NumberMarker&&euclid @Open { @Tag }" +which would now be equal to +@ID @Code "@ChapterList&&preceding @Open { @Tag }" +whose value, evaluated as it is within Chapter 7, is 7, not 3. Use of +@Code preceding or @Code following within the parameter +of a symbol, rather than within the body, is likely to be erroneous. +@PP +Much of the remainder of the definition of @Code "@Chapter" is fairly +self-explanatory: there is a heading, a tag sent to mark the page on +which the chapter begins, a @Code "@ContentsEntry" galley sent to the +table of contents, galleys for the figures and tables of the chapter to +collect in, @Code "@Body" where the body of the chapter goes, and +@Code "@ChapRefSection" to hold a concluding list of references. This +leaves only the two invocations of @Code "@Runner" to explain. +@PP +The first @Code "@Runner" is just below the heading. It will be the target +of the @Code "@Runner&&following" cross reference at the beginning of the +first page of the chapter (see Section {@NumberOf pagelayout}), which +consequently will have null running headers and the given footers. +@PP +The second @Code "@Runner" appears at the very end of the chapter, hence +on its last page. Since no invocations of @Code "@Runner" lie between +it and the first {@Code "@Runner"}, it will be the target of +@Code "@Runner&&following" on every page from the second page of the +chapter to the last, inclusive, and will supply the format of their +headers and footers. +@PP +The interested reader might care to predict the outcome in unusual +cases, such as when the heading occupies two pages, or when a chapter +occupies only one, or (assuming a change to the gap between chapters) +when a chapter starts halfway down a page. Such predictions can be made +with great confidence. +@PP +The expression @Code "@RunningTitle @OrElse @Title" appearing in the second +@Code "@Runner" returns the value of the @Code "@RunningTitle" parameter +of @Code "@Chapter" if this is not equal to the default value +{@Code "dft"}, or @Code "@Title" otherwise: +orelse.example @Index { @Code "@OrElse" example } +@ID @Code { +"def @OrElse" +" left x" +" right y" +"{" +" x @Case {" +" dft @Yield y" +" else @Yield x" +" }" +"}" +} +This produces the effect of +@ID @Code { +"named @RunningTitle { @Title }" +} +which unfortunately is not permissible as it stands, because @Code "@Title" +is not visible within the default value of {@Code "@RunningTitle"}. +@PP +Finally, the definitions for sections omitted earlier are as follows: +section.example @Index { @Code "@Section" example } +@IndentedList +@LI @Code { +"def @EndSectionsPlace { @Galley }" +"def @EndSections force into { @EndSectionsPlace&&preceding } {}" +"macro @BeginSections { //@SectionGap @SectionList 1 // @EndSectionsPlace // }" +} +@LI @Code { +"def @Section force into { @SectionList&&preceding }" +" named @Tag {}" +" named @Title {}" +" named @RunningTitle { dft }" +" body @Body" +"{" +" def @SectionTitle" +" {" +" @SectionNumbers @Case {" +" {Yes yes} @Yield { {@NumberOf @Tag}. |2s @Title }" +" else @Yield @Title" +" }" +" }" +"" +" @Heading @Protect @SectionTitle" +" // @NumberMarker {" +" {@ChapterList&&@Tag @Open { @Tag }}.{" +" @SectionList&&@Tag @Open { @Tag }}" +" }" +" // @ChapterList&&preceding @Tagged @Tag" +" // @SectionList&&preceding @Tagged @Tag" +" // @NumberMarker&&preceding @Tagged @Tag" +" // @PageMarker&&preceding @Tagged @Tag" +" // { &3f @SectionTitle } @ContentsEntry {@PageOf @Tag}" +" //0io @Body" +"}" +} +@EndList +The @Code "@BeginSections" macro invokes {@Code "@SectionList"}, +preceded by the appropriate gap and followed by an @Code "@EndSectsPlace" +for closing the list of sections when the @Code "@EndSections" symbol is +found. @Code "@Section" itself is just a copy of @Code "@Chapter" with +slight changes to the format. The parameter of @Code "@NumberMarker" is +a simple generalization of the one within {@Code "@Chapter"}. Notice +that we have taken care that the value of this parameter be +a juxtaposition of simple words: although +@ID @Code { +"{@ChapterList&&@Tag @Open { @Tag }}. &" +"{@SectionList&&@Tag @Open { @Tag }}" +} +is formally equivalent, @Code "&" was not permitted within a +@Code "@Tag" parameter until recently. +@PP +The DocumentSetup package also contains definitions for subsections in the +same style. They raise the question of whether Lout is capable of +producing subsections should the user place {@Code "@BeginSections"}, +{@Code "@Section"}, and {@Code "@EndSections"} within a {@I section}, +and whether such nesting could proceed to arbitrary depth. Arbitrary +nesting of sections within sections is available now, although the +numbering would of course be wrong. The author has worked out +definitions which provide correct numbering to arbitrary depth, with an +arbitrary format for each level. These were not incorporated into +DocumentSetup because the author considers sub-subsections to be poor +style, and he prefers separate names for the symbols at each level. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/exa_equa b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/exa_equa new file mode 100755 index 0000000000000..67852b8a54ced --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/exa_equa @@ -0,0 +1,149 @@ +@Section + @Title { An equation formatting package } + @Tag { eq } +@Begin +@PP +In this section we describe the design and implementation of the Eq +eq. @Index { Eq equation formatting package } +equation formatting package. Equation formatting makes a natural first +example, partly because its requirements have strongly influenced the +design of Lout, and partly because no cross references or galleys are +required. +@PP +To the author's knowledge, Eq is the first equation formatter to be +implemented as a collection of high-level definitions. This approach +has significant advantages: the basics of language and layout are +trivial, so the implementor can concentrate on fine-tuning; and the +definitions, being readily available, can be improved, extended, or even +replaced. +@PP +As described in the User's Guide @Cite { $kingston1995lout.user }, an +equation is entered in a format based on the one introduced by the eqn +language of Kernighan and Cherry @Cite { $kernighan1975eqn }: +kernighan.b @Index { Kernighan, B. } +cherry.l @Index { Cherry, L. } +@ID @Code { +"@Eq { { x sup 2 + y sup 2 } over 2 }" +} +The result is +@ID @Eq { { x sup 2 + y sup 2 } over 2 } +In outline, the definition of the @Code "@Eq" symbol is +eq.example @Index { @Code "@Eq" example } +@ID @Code { +"export sup over \"+\" \"2\" \"<=\"" +"def @Eq" +" body @Body" +"{" +" def sup precedence 60 left x right y { ... }" +" def over precedence 54 left x right y { ... }" +" def \"2\" { Base @Font \"2\" }" +" def \"+\" { {Symbol Base} @Font \"+\" }" +" def \"<=\" { {Symbol Base} @Font \"\\243\" }" +" ..." +"" +" Slope @Font 1.2f @Break 0c @Space @Body" +"}" +} +A body parameter is used to restrict the visibility of the equation +formatting symbols (there are hundreds of them). The equation as a whole +is set in Slope (i.e. Italic) font, and symbols such as @Code "\"2\"" and +@Code "\"+\"" are defined when other fonts are needed. Precedences are +used to resolve ambiguities such as {@Code "a sup b over c"}. Eq takes +all spacing decisions on itself, so to prevent white space +typed by the user from interfering, the equation is enclosed in +{@Code "0c @Space"}. We will discuss the {@Code "1.2f @Break"} later. +@PP +Thus have we disposed of the language design part of the equation +formatting problem; it remains now to define the twenty or so symbols +with parameters, and get the layout right. +@PP +Every equation has an {@I axis}: an imaginary horizontal line through +the centre of variables, through the bar of built-up fractions, and so +on. We can satisfy this requirement by ensuring that the result of each +symbol has a single row mark, on the axis. For example, the +superscripting symbol is defined as follows: +sup.example @Index { @Code "sup" example } +@ID @Code { +"def sup" +" precedence 60" +" associativity left" +" left x" +" named gap { @SupGap }" +" right y" +"{" +" @HContract @VContract {" +" | @Smaller y" +" ^/gap x" +" }" +"}" +} +The @Code "@VContract" and @Code "^/" symbols together ensure that the axis +of the result is the axis of the left parameter. A @Code "gap" +parameter has been provided for varying the height of the superscript, +with default value @Code "@SupGap" defined elsewhere as +{@Code "0.40fk"}. It is important that such gaps be expressed in units +that vary with the font size, so that they remain correct when the size +changes. Collecting the default values into symbols like @Code +"@SupGap" ensures consistency and assists when tuning the values. Here +is another characteristic definition: +over.example @Index { @Code "over" example } +@ID @Code { +"def over" +" precedence 54" +" associativity left" +" left x" +" named gap { 0.2f }" +" right y" +"{" +" @HContract @VContract {" +" |0.5rt @OneCol x" +" ^//gap @HLine" +" //gap |0.5rt @OneCol y" +" }" +"}" +} +Both parameters are centred, since we do not know which will be the +wider; we use @@OneCol to make sure that the entire parameter is +centred, not just its first column, and @@HContract ensures that the +fraction will never expand to fill all the available space, as Lout objects +have a natural tendency to do (Section {@NumberOf size}). @Code "@HLine" +is a horizontal line of the width of the column: +hline.example @Index { @Code "@Hline" example } +@ID @Code { +"def @HLine" +" named line { \"0.05 ft setlinewidth\" }" +"{ " +" { \"0 0 moveto xsize 0 lineto\" line \"stroke\" } @Graphic {}" +"}" +} +Here we are relying on the expanding tendency just mentioned. +@PP +The remaining symbols are quite similar to these ones. We conclude with +a few fine points of mathematical typesetting mentioned by a leading +authority, D. E. Knuth @Cite { $knuth1984tex }. +knuth.d @Index { Knuth, D. } +@PP +Some symbols, such as @Eq {lessequal} and @Eq { notequal }, should have a +thick space on each side; others, such as @Eq {plus} and @Eq {minus}, +have a medium space; others have a thin space on the right only. This +would be easy to do except that these spaces are not wanted in +superscripts and subscripts: +@ID @Eq { r sup n+1 - 1 } +In effect, the definition of such symbols changes depending on the +context; but Lout does not permit such a change. Luckily, the so-called +`style' information set by the @@Font, @@Break, and @@Space symbols can +change in this way. Accordingly, Eq uses the @Code y unit, which is +part of style, for these spaces: +@ID @Code { +"def @MedGap { 0.20y }" +"" +"def \"+\" { &@MedGap plus &@MedGap }" +"" +"def @HSqueeze right x { 0.2f @YUnit x }" +} +In the equation as a whole, the y unit is initially set to +{@Code 1f}, and so @Code "@MedGap" ordinarily supplies 20% of this +amount. But superscripts and subscripts are enclosed in the +@Code "@HSqueeze" symbol, which, by changing the y unit, ensures that +any @Code "@MedGap" within them is much smaller than usual. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/exa_page b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/exa_page new file mode 100755 index 0000000000000..31ab1d7e5a3f2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/exa_page @@ -0,0 +1,267 @@ +@Section + @Title { Page layout } + @Tag { pagelayout } +@Begin +@PP +The page layout +page.layout.inpractice @SubIndex { in practice } +document.layout.page.layout. @SubIndex { page layout } +definitions given in Section {@NumberOf definitions}, +although correct, are very basic. In this section we present the +definitions used by the DocumentLayout package for laying out the pages +of books, including running page headers and footers, different formats +for odd and even pages, and so on. The present document is produced with +these definitions. +@PP +We begin with a few definitions which permit the user to create cross +references of the `see page 27' variety which will be kept up to date +automatically. The user marks the target page by placing +@Code {"@PageMark intro"}, for example, at the point of interest, and +refers to the marked page as @Code "@PageOf intro" elsewhere: +pageof.example @Index { @Code "@PageOf" example } +@IndentedList +@LI @Code { +"export @Tag" +"def @PageMarker right @Tag { @Null }" +} +@LI @Code { +"def @PageMark right x" +"{" +" @PageMarker&&preceding @Tagged x" +"}" +} +@LI @Code { +"def @PageOf right x" +"{" +" @PageMarker&&x @Open { @Tag }" +"}" +} +@EndList +We will see below that an invocation of @Code "@PageMarker" appears before +each page, with @Code "@Tag" parameter equal to the +page number. Suppose that {@Code "@PageMark intro"}, which expands to +@ID @Code "@PageMarker&&preceding @Tagged intro" +happens to fall on page 27 of the final printed document (of course, its +value is @@Null which makes it invisible). Then the effect of @@Tagged +is to attach @Code "intro" as an extra tag to the first invocation of +{@Code "@PageMarker"} preceding that final point, and this must be +{@Code "@PageMarker 27"}. Therefore the expression +@ID @Code "@PageMarker&&intro @Open { @Tag }" +will open the invocation {@Code "@PageMarker 27"} and yield the value of +its @Code "@Tag" parameter, 27. Thus, {@Code "@PageOf intro"} appearing +anywhere in the document yields 27. +@PP +Next we have some little definitions for various parts of the +page. {@Code "@FullPlace"} will be the target of full-width body text: +@ID @Code { +"def @FullPlace { @Galley }" +} +{@Code "@ColPlace"} will be the target of body text within one column: +@ID @Code { +"def @ColPlace { @Galley }" +} +{@Code "@TopList"} will be the target of figures and tables: +@ID @Code { +"export @Tag" +"def @TopList right @Tag" +"{" +" @Galley" +" //@TopGap @TopList @Next @Tag" +"}" +} +We have taken a shortcut here, avoiding an unnecessary @Code "@TopPlace" +symbol. @Code "@FootList" and {@Code "@FootSect"} define a sequence of +full-width targets at the foot of the page for footnotes, +preceded by a short horizontal line: +footsect.example @Index { @Code "@FootSect" example } +@IndentedList +@LI @Code { +"export @Tag" +"def @FootList right @Tag" +"{" +" @Galley" +" //@FootGap @FootList @Next @Tag" +"}" +} +@LI @Code { +"def @FootSect" +"{" +" @FootLen @Wide @HLine" +" //@FootGap @FootList 1 ||@FootLen" +"}" +} +@EndList +Similarly, @Code "@ColFootList" and @Code "@ColFootSect" provide a +sequence of targets for footnotes within one column: +@ID @Code { +"export @Tag" +"def @ColFootList right @Tag" +"{" +" @Galley" +" //@FootGap @ColFootList @Next @Tag" +"}" +"" +"def @ColFootSect" +"{" +" @ColFootLen @Wide @HLine" +" //@FootGap @ColFootList 1 ||@ColFootLen" +"}" +} +The next definition provides a horizontal sequence of one or more columns: +collist.example @Index { @Code "@ColList" example } +@ID @Code { +"def @ColList right col" +"{" +" def @Column" +" { @VExpand { @ColPlace //1rt @OneRow { //@MidGap @ColFootSect } } }" +"" +" col @Case {" +" Single @Yield @Column" +" Double @Yield { @DoubleColWidth @Wide @Column ||@ColGap @ColList col }" +" Multi @Yield { @MultiColWidth @Wide @Column ||@ColGap @ColList col }" +" }" +"}" +} +Each column consists of a @Code "@ColPlace" at the top and a +@Code "@FootSect" at the foot. The @@VExpand symbol ensures that +whenever a column comes into existence, it will expand vertically so +that the bottom-justification @Code "//1rt" has as much space as +possible to work within. The @Code "col" parameter determines whether +the result has a single column, double columns, or multiple columns. +@PP +The {@Code "@Page"} symbol places its parameter in a page of fixed width, +height, and margins: +page.example @Index { @Code "@Page" example } +@ID @Code { +"def @Page right x" +"{" +" @PageWidth @Wide @PageHeight @High {" +" //@PageMargin ||@PageMargin" +" @HExpand @VExpand x" +" ||@PageMargin //@PageMargin" +" }" +"}" +} +@@HExpand and @@VExpand ensure that the right parameter occupies all the +available space; this is important when the right parameter is unusually +small. The @@High symbol gives the page a single row mark, ensuring that +it will be printed on a single sheet of paper (page {@PageOf rootg}). +@PP +Next we have {@Code "@OnePage"}, defining a typical page of a book or +other document: +onepage.example @Index { @Code "@OnePage" example } +@ID @Code { +"def @OnePage" +" named @Columns {}" +" named @PageTop {}" +" named @PageFoot {}" +"{" +" @Page {" +" @PageTop" +" //@MidGap @TopList" +" //@MidGap @FullPlace" +" //@MidGap @ColList @Columns" +" // //1rt @OneRow { //@MidGap @FootSect //@MidGap @PageFoot }" +" }" +"}" +} +The page top and page foot, and the number of columns, are parameters +that will be given later when @Code "@OnePage" is invoked. The body of +the page is a straightforward combination of previous definitions. The +@Code "//" symbol protects the following @Code "//1rt" from deletion in +the unlikely event that all the preceding symbols are replaced by +@@Null. The following object is enclosed in @@OneRow to ensure that +all of it is bottom-justified, not just its first component. +@PP +Before presenting the definition of a sequence of pages, we must detour +to describe how running page headers and footers (like those in the +present document) are produced. These are based on the +@Code "@Runner" symbol: +runner.example @Index { @Code "@Runner" example } +@ID @Code { +"export @TopOdd @TopEven @FootOdd @FootEven" +"def @Runner" +" named @TopOdd right @PageNum { @Null }" +" named @TopEven right @PageNum { @Null }" +" named @FootOdd right @PageNum { @Null }" +" named @FootEven right @PageNum { @Null }" +" named @Tag {}" +"{ @Null }" +} +The four parameters control the format of running headers and footers on +odd and even pages respectively. Invocations of {@Code "@Runner"}, for +example +@ID @Code { +"@Runner" +" @TopEven { @B @PageNum |1rt @I { Chapter 4 } }" +" @TopOdd { @I { Examples } |1rt @B @PageNum }" +} +will be embedded in the body text of the document, and, as we will see +in a moment, are accessed by @Code "@Runner&&following" cross references +on the pages. Notice how the @Code "@PageNum" parameter of each +parameter allows the format of the running header to be specified while +leaving the page number to be substituted later. +@PP +We may now define {@Code "@OddPageList"}, whose result is a sequence of +pages beginning with an odd-numbered page: +oddpagelist.example @Index { @Code "@OddPageList" example } +@ID @Code { +"def @OddPageList" +" named @Columns {}" +" right @PageNum" +"{" +" def @EvenPageList ..." +"" +" @PageMarker @PageNum" +" // @Runner&&following @Open {" +" @OnePage" +" @Columns { @Columns }" +" @PageTop { @TopOdd @PageNum }" +" @PageFoot { @FootOdd @PageNum }" +" }" +" // @EvenPageList" +" @Columns { @Columns }" +" @Next @PageNum" +"}" +} +Ignoring @Code "@EvenPageList" for the moment, notice first that the +invocation of @Code "@OnePage" is enclosed in +{@Code "@Runner&&following @Open"}. Since {@Code "@Runner&&following"} +refers to the first invocation of @Code "@Runner" appearing after itself +in the final printed document, the symbols @Code "@TopOdd" and +@Code "@FootOdd" will take their value from the first invocation of +@Code "@Runner" following the top of the page, even though @Code "@FootOdd" +appears at the foot of the page. Their @Code "@PageNum" parameters are +replaced by {@Code "@PageNum"}, the actual page number parameter of +{@Code "@OddPageList"}. +@PP +After producing the odd-numbered page, @Code "@OddPageList" invokes +{@Code "@EvenPageList"}: +evenpagelist.example @Index { @Code "@EvenPageList" example } +@ID @Code { +"def @EvenPageList" +" named @Columns {}" +" right @PageNum" +"{" +" @PageMarker @PageNum" +" // @Runner&&following @Open {" +" @OnePage" +" @Columns { @Columns }" +" @PageTop { @TopEven @PageNum }" +" @PageFoot { @FootEven @PageNum }" +" }" +" // @OddPageList" +" @Columns { @Columns }" +" @Next @PageNum" +"}" +} +This produces an even-numbered page, then passes the ball back to +@Code "@OddPageList" -- a delightful example of what computer +scientists call mutual recursion. The two page types differ only in +their running headers and footers, but other changes could easily be made. +@PP +It was foreshadowed earlier that an invocation of @Code "@PageMarker" +would precede each page, and this has been done. Although this @Code +"@PageMarker" is a component of the root galley, it will not cause a +page to be printed, because Basser Lout skips components of height zero. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/exa_para b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/exa_para new file mode 100755 index 0000000000000..6b9f60f776846 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/exa_para @@ -0,0 +1,236 @@ +@Section + @Title { Paragraphs, displays, and lists } + @Tag { paras } +@Begin +@PP +The remaining sections of this chapter are all based on Version 2 of +the DocumentLayout package. Version 3, which is similar but more elaborate, +is described from the user's perspective in the +document.layout @Index { DocumentLayout package } +User's Guide @Cite { $kingston1995lout.user }. In 26 pages of Lout, the +DocumentLaytout package defines many features required in the formatting +of simple documents, technical reports, and books, including displays, +lists, page layout, cross references, tables of contents, footnotes, +figures, tables, references, chapters, sections, and sorted indexes. +@PP +The symbols used for separating paragraphs and producing displays and +document.layout.paras @SubIndex { paragraphs } +lists may lack the excitement of more exotic features, but they can +teach some important lessons about robust design. The following macro +for separating paragraphs produces a 0.3 cm vertical space and a 1 cm +indent on the following line, and is clearly on the right track: +@ID @Code "macro @PP { //0.3c &1c }" +Nevertheless it has several major problems. +@PP +The @Code "&" symbol is subject to widening during line adjustment, so +it should be replaced by {@Code "1c @Wide {}"}. But then white space +following the symbol will affect the result, so an extra @Code "&0i" must +be added. If the document is printed double spaced, this paragraph gap +will fail to widen: it should be expressed in terms of the @Code "v" unit, +with mark-to-mark spacing mode. Similarly, the paragraph indent should +probably be made proportional to the font size. +@PP +`Magic numbers' like @Code "0.3c" should not be buried in definitions +where they cannot be changed easily, or kept consistent with similar +definitions during tuning. They are much better placed as symbols, +possibly parameters of the enclosing package: +@ID @Code { +"def @DocumentLayout" pp.example @Index { @Code "@PP" example } +" named @ParaGap { 1.3vx }" +" named @ParaIndent { 2f }" +" ..." +"@Begin" +"" +" macro @PP { //@ParaGap @ParaIndent @Wide &0i }" +" macro @LP { //@ParaGap }" +" ..." +"@End @DocumentLayout" +} +and we have arrived at the definition of @Code "@PP" as it appears in +the DocumentLayout package. +@PP +A display is a table in which the first column is blank: +document.layout.displays @SubIndex { displays } +@ID lines @Break { +@I { preceding text } +@Code "//@DispGap |@DispIndent" @I display +@Code "//@DispGap" +@I { following text } +} +Edge-to-edge is the appropriate spacing mode before and after displays, +since the display could be a table or figure whose mark does not +correspond to a baseline. Thus, @Code "1v" is a reasonable value for +{@Code "@DispGap"}. +@PP +The ordinary user cannot be expected to type the Lout source shown +above; a more appropriate syntax is +indented.display.example @Index { @Code "@IndentedDisplay" example } +@ID lines @Break { +@I { preceding text } +@Code "@IndentedDisplay {" @I display @Code "}" +@I { following text } +} +This presents a problem: if @Code "@IndentedDisplay" is made a definition +with a right parameter, its result will be an object separated from the +surrounding text only by white space, hence part of the paragraph; while +if it is a macro, the final @Code "//@DispGap" cannot be included in it. + The solution adopted in the DocumentLayout package uses a galley and a macro: +@ID @Code { +" def @DispPlace { @Galley }" +" def @Disp into { @DispPlace&&preceding }" +" right x" +" {" +" @OneRow x" +" }" +"" +" macro @IndentedDisplay" +" {" +" //@DispGap |@DispIndent @DispPlace |" +" //@DispGap // @Disp" +" }" +} +@Code "@DispPlace" and @Code "@Disp" are not exported, so there is +no danger of a name clash with some other symbol. The ordinary user's +syntax expands to +@ID lines @Break { +@I { preceding text } +@Code "//@DispGap |@DispIndent @DispPlace |" +@Code "//@DispGap // @Disp {" @I display @Code "}" +@I { following text } +} +and the @Code "@Disp" galley appears at the preceding +{@Code "@DispPlace"}, being itself replaced by @@Null. The @Code "//" +symbol protects the preceding @Code "//@DispGap" from being deleted by +this @@Null when there is no following text. +@PP +An automatically numbered list +document.layout.lists @SubIndex { lists } +numbered @Index { Numbered list } +could have an arbitrarily large number of +items, so, by analogy with sequences of pages, we see immmediately that +recursion must be involved: +@ID @Code { +"def @List right num" +"{" +" @DispIndent @Wide num. | @ItemPlace" +" //@DispGap @List @Next num" +"}" +} +Notice how the @@Next symbol works in conjunction with the recursion to +produce an ascending sequence of numbers; the result of @Code "@List 1" +will be +@ID @Code { +"1. @ItemPlace" +"2. @ItemPlace" +"3. @ItemPlace" +"..." +} +We can follow this with items which are galleys targeted to +{@Code "@ItemPlace&&preceding"}, and @Code "@List" will expand just +enough to accommodate them. +@PP +The usual problem with recursive-receptive symbols now arises: there is +always one unexpanded {@Code "@List"}, and until it can be removed the +galley containing it will appear to be incomplete and will be prevented at +that point from flushing into its parent (see page {@PageOf forcing}). We +adopt the usual solution: a forcing galley into a later target will +replace the last @Code "@List" by @@Null. This brings us to the +definitions as they appear in DocumentLayout: +indented.list.example @Index { @Code "@IndentedList" example } +@IndentedList +@LI @Code { +"def @ItemPlace { @Galley }" +"def @ListItem into { @ItemPlace&&preceding }" +" right x" +"{ x }" +} +@LI @Code { +"def @EndListPlace { @Galley }" +"def @EndList force into { @EndListPlace&&preceding }" +"{}" +} +@LI @Code { +"def @RawIndentedList" +" named style right tag {}" +" named indent { @DispIndent }" +" named gap { @DispGap }" +" named start { 1 }" +"{" +" def @IList right num" +" {" +" indent @Wide {style num} | @ItemPlace" +" //gap @IList @Next num" +" }" +"" +" @IList start // @EndListPlace" +"}" +} +@EndList +Now given the input +@ID @Code { +"@RawIndentedList" +"@ListItem { first item }" +"@ListItem { second item }" +"..." +"@ListItem { last item }" +"@EndList" +} +@Code "@RawIndentedList" will expand to receive the items, and will be +closed off by {@Code "@EndList"}. +@PP +The {@Code indent}, {@Code gap}, and {@Code start} parameters are +straightforward (note that the burden of typing @Code 1 has been lifted +from the ordinary user), but the @Code style parameter has a parameter +of its own (see page {@PageOf strange}). It is used like this: +@ID @Code { +"def @RawNumberedList { @RawIndentedList style { tag. } }" +"def @RawParenNumberedList { @RawIndentedList style { (tag) } }" +} +In {@Code "@RawNumberedList"}, @Code "style" is given the value +{@Code "tag."}, where @Code tag is its own right parameter, so the value +of @Code "{style num}" within @Code "@IList" is {@Code "num."}; while in +{@Code "@RawParenNumberedList"}, @Code "{style num}" is {@Code "(num)"}. In +this way we achieve an unlimited variety of numbering formats without +having to rewrite @Code "@RawIndentedList" over and over. +@PP +These list symbols are objects without surrounding space, so macros +similar to those used for displays are needed: +@ID @Code { +"macro @NumberedList { //@DispGap @RawNumberedList //@DispGap }" +"macro @ParenNumberedList { //@DispGap @RawParenNumberedList //@DispGap }" +} +and so on. +@PP +Lists numbered by Roman numerals +roman @Index { Roman numerals } +present a problem, because @@Next will +not increment Roman numerals. Instead, they must be stored in a +database: +@ID @Code { +"def @Roman" +" left @Tag" +" right @Val" +"{ @Val }" +"" +"@SysDatabase @Roman { standard }" +} +@Code "@SysDatabase" is preferred over @Code "@Database" here because +this database should be kept in a standard place and shared by +everyone. The database itself, a file called @Code "standard.ld" in +Basser Lout, contains invocations of {@Code "@Roman"}, each enclosed in +braces: +@ID @Code { +"{ 1 @Roman i }" +"{ 2 @Roman ii }" +"..." +"{ 100 @Roman c }" +} +Then @Code "@Roman&&12" for example has value {@Roman&&12}, and +@ID @Code { +"def @RawRomanList { @RawIndentedList style { {@Roman&&tag}. } }" +} +produces a list numbered by Roman numerals. The counting still +proceeds in Arabic, but each Arabic numeral is converted to Roman by the +cross reference. Since arbitrary objects may be stored in databases, +arbitrary finite sequences of objects may be `counted' in this way. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/mydefs b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/mydefs new file mode 100755 index 0000000000000..4d17d45049342 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/mydefs @@ -0,0 +1,451 @@ + + def "->" { {Symbol Base} @Font "\256" } #174 decimal + def "=>" { {Symbol Base} @Font "\336" } #222 decimal + macro @JP { /0.5v } + + def @Code right x + { { Helvetica Base -1p } @Font lines @Break x } + + macro @JL { //1vx } + + ################################################### + # # + # Lout keywords. # + # # + ################################################### + + def @@BackEnd { @Code "@BackEnd" } + def @@Background { @Code "@Background" } + def @@Begin { @Code "@Begin" } + def @@BeginHeaderComponent { @Code "@BeginHeaderComponent" } + def @@Break { @Code "@Break" } + def @@Case { @Code "@Case" } + def @@Char { @Code "@Char" } + def @@ClearHeaderComponent { @Code "@ClearHeaderComponent" } + def @@Common { @Code "@Common" } + def @@CurrLang { @Code "@CurrLang" } + def @@CurrFamily { @Code "@CurrFamily" } + def @@CurrFace { @Code "@CurrFace" } + def @@CurrYUnit { @Code "@CurrYUnit" } + def @@CurrZUnit { @Code "@CurrZUnit" } + def @@Database { @Code "@Database" } + def @@End { @Code "@End" } + def @@EndHeaderComponent { @Code "@EndHeaderComponent" } + def @@Enclose { @Code "@Enclose" } + def @@Font { @Code "@Font" } + def @@ForceGalley { @Code "@ForceGalley" } + def @@Galley { @Code "@Galley" } + def @@Graphic { @Code "@Graphic" } + def @@HAdjust { @Code "@HAdjust" } + def @@HCover { @Code "@HCover" } + def @@HContract { @Code "@HContract" } + def @@HExpand { @Code "@HExpand" } + def @@HLimited { @Code "@HLimited" } + def @@High { @Code "@High" } + def @@HScale { @Code "@HScale" } + def @@HShift { @Code "@HShift" } + def @@HSpan { @Code "@HSpan" } + def @@Include { @Code "@Include" } + def @@IncludeGraphic { @Code "@IncludeGraphic" } + def @@KernShrink { @Code "@KernShrink" } + def @@Key { @Code "@Key" } + def @@Language { @Code "@Language" } + def @@LClos { @Code "@LClos" } + def @@LEnv { @Code "@LEnv" } + def @@LInput { @Code "@LInput" } + def @@LUse { @Code "@LUse" } + def @@LVis { @Code "@LVis" } + def @@LinkSource { @Code "@LinkSource" } + def @@LinkDest { @Code "@LinkDest" } + def @@Meld { @Code "@Meld" } + def @@Merge { @Code "@Merge" } + def @@Moment { @Code "@Moment" } + def @@Next { @Code "@Next" } + def @@NotRevealed { @Code "@NotRevealed" } + def @@Null { @Code "@Null" } + def @@OneCol { @Code "@OneCol" } + def @@OneOf { @Code "@OneOf" } + def @@OneRow { @Code "@OneRow" } + def @@Open { @Code "@Open" } + def @@Outline { @Code "@Outline" } + def @@PAdjust { @Code "@PAdjust" } + def @@PageLabel { @Code "@PageLabel" } + def @@PlainGraphic { @Code "@PlainGraphic" } + def @@PrependGraphic { @Code "@PrependGraphic" } + def @@RawVerbatim { @Code "@RawVerbatim" } + def @@Rotate { @Code "@Rotate" } + def @@Rump { @Code "@Rump" } + def @@Insert { @Code "@Insert" } + def @@Scale { @Code "@Scale" } + def @@SetColor { @Code "@SetColor" } + def @@SetColour { @Code "@SetColour" } + def @@SetHeaderComponent { @Code "@SetHeaderComponent" } + def @@Space { @Code "@Space" } + def @@StartHSpan { @Code "@StartHSpan" } + def @@StartVSpan { @Code "@StartVSpan" } + def @@StartHVSpan { @Code "@StartHVSpan" } + def @@SysDatabase { @Code "@SysDatabase" } + def @@SysInclude { @Code "@SysInclude" } + def @@SysIncludeGraphic { @Code "@SysIncludeGraphic" } + def @@SysPrependGraphic { @Code "@SysPrependGraphic" } + def @@Tag { @Code "@Tag" } + def @@Tagged { @Code "@Tagged" } + def @@Underline { @Code "@Underline" } + def @@Use { @Code "@Use" } + def @@VAdjust { @Code "@VAdjust" } + def @@VContract { @Code "@VContract" } + def @@VCover { @Code "@VCover" } + def @@VExpand { @Code "@VExpand" } + def @@Verbatim { @Code "@Verbatim" } + def @@VLimited { @Code "@VLimited" } + def @@VScale { @Code "@VScale" } + def @@VShift { @Code "@VShift" } + def @@VSpan { @Code "@VSpan" } + def @@Wide { @Code "@Wide" } + def @@Yield { @Code "@Yield" } + def @@YUnit { @Code "@YUnit" } + def @@ZUnit { @Code "@ZUnit" } + + + ################################################### + # # + # Miscellaneous, mostly graphical definitions. # + # # + ################################################### + + + def @TeX + { @OneCol { T &0.4fo {-0.2f @VShift E} &0.45fo X } + } + + export sp sb + def @Equation + body x + @Begin + + def sp left x right y { @OneRow { | "-2p" @Font y ^/0.5fk x } } + def sb left x right y { @OneRow { x ^/0.5fk | "-2p" @Font y } } + + Slope @Font x + + @End @Equation + + def @Super + left x + right y + { @OneRow { | -2p @Font y ^/0.5fk x } + } + + def @NineSquare + right x + { + def @Three { x |0.2i x |0.2i x } + + @Three /0.2i @Three /0.2i @Three + } + + def @Leaders + { .. @Leaders + } + + def @HLine + { + @BackEnd @Case { + PostScript @Yield { {0 0 moveto xsize 0 lineto stroke} @Graphic {} } + PDF @Yield { {0 0 m __xsize 0 l s} @Graphic {} } + } +# { 0 0 moveto xsize 0 lineto stroke } @Graphic {} + } + + def @VDashLine + right length + { + length @High { + @BackEnd @Case { + PostScript @Yield { { 0 0 moveto 0 ysize lineto [ 3 pt ] 0 setdash stroke } @Graphic {} } + +# VT: double quotes required: + PDF @Yield { { "__pt 3 0 d 0 0 m 0 __ysize l s" } @Graphic {} } + } +# { 0 0 moveto 0 ysize lineto [ 3 pt ] 0 setdash stroke } @Graphic {} + } + } + + def @LBox + right offset + { @HContract @VContract + { + { //0.2c + 0.6c @High 1.2c @Wide + + @BackEnd @Case { + PostScript @Yield { + { 0 0 moveto xsize 0 lineto + xsize ysize lineto 0 ysize lineto closepath + gsave 0.9 setgray fill grestore stroke } @Graphic {} + } + PDF @Yield { + { 0 0 m __xsize 0 l + __xsize __ysize l 0 __ysize l h + q 0.9 g f Q s } @Graphic {} + } + } + +# { 0 0 moveto xsize 0 lineto +# xsize ysize lineto 0 ysize lineto closepath +# gsave 0.9 setgray fill grestore stroke } +# @Graphic {} + } + ||offset @VDashLine 1c + } + } + + def @Arrow + right length + { @OneCol @OneRow + { + 30d @Rotate {0.12c @Wide @HLine} + // + length @Wide @HLine + // + "-30d" @Rotate {0.12c @Wide @HLine} + } + } + + def @DoubleArrow + right length + { @OneCol @OneRow + { + & 180d @Rotate @Arrow length + |0io @Arrow length + } + } + + def @Put + left coord + right x + { @OneCol @OneRow + { coord / | @OneCol @OneRow x + } + } + + macro @At { //0io } + + + ################################################### + # # + # Interpolated example documents. # + # # + ################################################### + + def @LittleEndRunPlace { @Galley } + def @LittleEndRun + force into { @LittleEndRunPlace&&preceding } + {} + + def @LittleTextPlace { @Galley } + def @LittleText into { @LittleTextPlace&&preceding } + right x + { x + } + + def @LittleFootPlace { @Galley } + def @LittleFootNote into { @LittleFootPlace&&following } + right x + { x + } + + def @LittlePageColumn + right x + { + 9px @Break 8p @Font + 2.8c @Wide x + } + + def @LittlePage + right x + { + @HContract @VContract { + @BackEnd @Case { + PostScript @Yield { + { 0 0 moveto xsize 0 lineto xsize ysize lineto + 0 ysize lineto closepath stroke } @Graphic + { //0.3c ||0.3c + 9px @Break 8p @Font + 2.8c @Wide 3.8c @High x + ||0.3c //0.3c + } + } + PDF @Yield { + { 0 0 m __xsize 0 l __xsize __ysize l + 0 __ysize l h s } @Graphic + { //0.3c ||0.3c + 9px @Break 8p @Font + 2.8c @Wide 3.8c @High x + ||0.3c //0.3c + } + } + } +# { 0 0 moveto xsize 0 lineto xsize ysize lineto +# 0 ysize lineto closepath stroke } @Graphic +# { //0.3c ||0.3c +# 9px @Break 8p @Font +# 2.8c @Wide 3.8c @High x +# ||0.3c //0.3c +# } + } + } + + def @LittleFootSect + { 1c @Wide @HLine + //0.3v @LittleFootPlace ||0.5c + } + + def @LittlePageList + right @PageNum + { + @LittlePage { # |0.5rt @PageNum //0.8v + //0.3v @LittleTextPlace + //1rt @LittleFootSect + } + // + @LittlePageList @Next @PageNum + } + + def @LittleDocument + { @LittlePage + { @LittleTextPlace + //1rt @LittleFootSect + } + // @LittlePageList 2 + // @LittleEndRunPlace + } + + def @ShowMarks + named linewidth { + @BackEnd @Case { + PostScript @Yield { 0.015 cm } + PDF @Yield { __mul(0.015, __cm) } + } + } + named linestyle { dashed } + named dashlength { + @BackEnd @Case { + PostScript @Yield { 0.15 cm } + PDF @Yield { __mul(0.15, __cm) } + } + } + named paint { lightgrey} + right x + { + @HContract @VContract @Fig + { @Box margin { 0c } linewidth { linewidth } paint { paint } + { @Figure + shape { + @BackEnd @Case { + PostScript @Yield { + -0.3 cm ymark + {xsize ymark} ++ {0.3 cm 0} [] + xmark -0.3 cm + {xmark ysize} ++ {0 0.3 cm} + } + PDF @Yield { "" # VT: PDF currently has no output + } + } + } + linewidth { linewidth } + linestyle { linestyle } + dashlength { dashlength } + x + } + + } + } + + def @ShowVMark + named linewidth { 0.015 cm } + named linestyle { dashed } + named dashlength { 0.15 cm } + named paint { light } + right x + { + @Fig + { + @Figure + shape { + @BackEnd @Case { + PostScript @Yield { + xmark -0.3 cm + {xmark ysize} ++ {0 0.3 cm} + } + PDF @Yield { "" # VT: PDF currently has no output + } + } + } + linewidth { linewidth } + linestyle { linestyle } + dashlength { dashlength } + x + } + } + + def @ShowHMark + named linewidth { 0.015 cm } + named linestyle { dashed } + named dashlength { 0.15 cm } + named paint { light } + right x + { + @Fig + { + @Figure + shape { + @BackEnd @Case { + PostScript @Yield { + -0.3 cm ymark + {xsize ymark} ++ {0.3 cm 0} + } + PDF @Yield { "" # VT: PDF currently has no output + } + } + } + linewidth { linewidth } + linestyle { linestyle } + dashlength { dashlength } + x + } + } + + def @Strange + named @Format right @Val { [@Val] } + right x + { @Format x + } + + def @TightBox right x + { + @BackEnd @Case { + PostScript @Yield { + "0 0 moveto xsize 0 lineto xsize ysize lineto 0 ysize lineto closepath stroke" + @Graphic x + } + PDF @Yield { + "0 0 m __xsize 0 l __xsize __ysize l 0 __ysize l h s" + @Graphic x + } + } + } + + def @GreyBox right x + { + @BackEnd @Case { + PostScript @Yield { + "0 0 moveto xsize 0 lineto xsize ysize lineto 0 ysize lineto closepath 0.8 setgray fill" + @Graphic x + } + PDF @Yield { + "0 0 m __xsize 0 l __xsize __ysize l 0 __ysize l h 0.8 g f" + @Graphic x + } + } + } diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/outfile.ps b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/outfile.ps new file mode 100755 index 0000000000000..aa649deec54f5 Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/outfile.ps differ diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre new file mode 100755 index 0000000000000..f0714cb8e13b1 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre @@ -0,0 +1,54 @@ +@Chapter + @Title { Predefined symbols } + @Tag { symbols } +@Begin +@BeginSections +@Include { pre_begi } +@Include { pre_conc } +@Include { pre_font } +@Include { pre_brea } +@Include { pre_spac } +@Include { pre_yuni } +@Include { pre_colo } +@Include { pre_outl } +@Include { pre_lang } +@Include { pre_oner } +@Include { pre_wide } +@Include { pre_hshi } +@Include { pre_hexp } +@Include { pre_hcon } +@Include { pre_hlim } +@Include { pre_hadj } +@Include { pre_hsca } +@Include { pre_cove } +@Include { pre_span } +@Include { pre_scal } +@Include { pre_rota } +@Include { pre_back } +@Include { pre_kshr } +@Include { pre_rump } +@Include { pre_inse } +@Include { pre_oneo } +@Include { pre_next } +@Include { pre_case } +@Include { pre_mome } +@Include { pre_null } +@Include { pre_gall } +@Include { pre_head } +@Include { pre_notr } +@Include { pre_cros } +@Include { pre_tagg } +@Include { pre_open } +@Include { pre_link } +@Include { pre_data } +@Include { pre_grap } +@Include { pre_plai } +@Include { pre_incg } +@Include { pre_prep } +@Include { pre_incl } +@Include { pre_bend } +@Include { pre_verb } +@Include { pre_unde } +@Include { pre_page } +@EndSections +@End @Chapter diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_back b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_back new file mode 100755 index 0000000000000..37de5c537b05b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_back @@ -0,0 +1,12 @@ +@Section + @Title { "@Background" } + @Tag { background } +@Begin +@PP +background.sym @Index { @@Background symbol } +The @@Background symbol will print its left parameter in the +background of its right parameter. That is, the result has +the size of the right parameter, but the left parameter will +be printed first in the same space, with its marks aligned with +the marks of the right parameter. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_begi b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_begi new file mode 100755 index 0000000000000..e9adbb1875467 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_begi @@ -0,0 +1,31 @@ +@Section + @Title { "@Begin" and "@End" } + @Tag { begin } +@Begin +@PP +The body of a symbol @Code "@Sym" may be enclosed in @@Begin and +begin. @Index { @@Begin symbol } +end. @Index { @@End symbol } +@@End @Code "@Sym" instead of the more usual braces: +@ID @Code { +"def @Section" +" named @Title {}" +" right @Body" +"@Begin" +" @Title //2v @Body" +"@End @Section" +} +They may also enclose the right or body parameter of a symbol invocation: +@ID @Code { +"@Chapter" +" @Title { Introduction }" +"@Begin" +"This subject needs no introduction." +"@End @Chapter" +} +Apart from their utility as documentation aids, these forms allow Basser +Lout to pinpoint mismatched braces, which can otherwise create total +havoc. For this reason, they should enclose the major parts of documents, +such as chapters and sections. Note that braces cannot be +replaced by @@Begin and @@End in general. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_bend b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_bend new file mode 100755 index 0000000000000..8f742a948d3e9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_bend @@ -0,0 +1,61 @@ +@Section + @Tag { backend } + @Title { "@BackEnd" and the PlainText and PDF back ends } +@Begin +@PP +backend.sym @Index { @@BackEnd symbol } +The @@BackEnd symbol, which takes no parameters, has for its result a +string naming the back end currently in use. Three back ends are available, +PostScript, PDF and PlainText. The symbol is generally used like this: +@ID @Code { +"@BackEnd @Case {" +" PlainText @Yield { ... }" +" PostScript @Yield { ... }" +" PDF @Yield { ... }" +"}" +} +to obtain different objects depending on the back end. No @Code else +is required since these are the only possible values. +@PP +When a @Code "@Case" symbol has @Code "@BackEnd" for its left parameter +and the left parameter of each @Code "@Yield" symbol within it consists +of a sequence of one or more literal words (including {@Code else}), Lout +will optimize by evaluating the @Code "@Case" symbol at the time it is +read. This optimization ensures that there is only a small once-only +performance penalty for multiple back ends, and it permits these +@Code "@Case" symbols (but no other symbols) to appear within the object +following @Code "@Include" and @Code "@PrependGraphic" symbols. +@PP +The PlainText back end differs from the PostScript one in two main +respects. First, there is effectively just one font: although all +the font commands work exactly as usual, they don't actually change +anything. Each character in this font is taken to be one tenth +of one inch wide and 20 points high. Second, the output is an +ordinary text file, not a PostScript file. +@PP +Clearly, with ordinary text output the possibility of advanced graphics +features such as rotation and scaling is curtailed. Nevertheless, all +symbols have well-defined (possibly null) effects in the PlainText +back end, so there is no additional danger of crashing the system or +obtaining grossly unreasonable output by a change to PlainText. +@PP +The PlainText back end is obtained by the @Code "-p" option to Basser +Lout. The character size can be changed by adding two lengths to +the @Code "-p" option, like this: +@ID @Code "lout -p0.1i12p ..." +which invokes the PlainText back end with each character being 0.1 +inches wide and 12 points high. However, experience suggests that +the best approach is to define all horizontal lengths as multiples of +the @Code "s" unit (the width of a space, hence the width of all +characters) and to define all vertical lengths as multiples of the +@Code "f" unit (the font size, equal to the height of every character), +and not to change the character size in the command line. +@PP +There is a @Code "-P" option which is identical with the @Code "-p" +option except that it inserts a form-feed character between each two +components of the output, but not before the first or after the last. +@PP +The PDF back end is obtained by typing {@Code "lout -Z"}. It is similar +to PostScript but much more limited in functionality. Consult a separate +document distributed with Lout for further information. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_brea b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_brea new file mode 100755 index 0000000000000..b91b2d972248a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_brea @@ -0,0 +1,154 @@ +@Section + @Title { "@Break" } + @Tag { break } +@Begin +@PP +The @@Break symbol influences the appearance of paragraphs (Section +{@NumberOf concatenation}), offering a fixed set of nine styles: +@IL + +@LI { +2i @Wide { |1rt @Code adjust @@Break @I object } +adjust.break @Index { @Code adjust @@Break } +|2m Break the paragraphs of {@I object} into lines, and apply @@PAdjust +(Section {@NumberOf hadjust}) to every line except the last in +each paragraph; +} + +@LI { +2i @Wide { |1rt @Code outdent @@Break @I object } +outdent.break @Index { @Code outdent @@Break } +|2m Like {@Code adjust}, except that @Code "2.0f @Wide {} &0i" is +inserted at the beginning of every line except the first, creating +an outdented paragraph; +} + +@LI { +2i @Wide { |1rt @Code ragged @@Break @I object } +ragged.break @Index { @Code ragged @@Break } +|2m Break the paragraphs of {@I object} into lines, but do not adjust +the lines (`ragged right'); +} + +@LI { +2i @Wide { |1rt @Code cragged @@Break @I object } +cragged.break @Index { @Code cragged @@Break } +|2m Like {@Code ragged}, except that each line will be centred with +respect to the others; +} + +@LI { +2i @Wide { |1rt @Code rragged @@Break @I object } +rragged.break @Index { @Code rragged @@Break } +|2m Like {@Code ragged}, except that each line will be right-justified with +respect to the others (`ragged left'); +} + +@LI { +2i @Wide { |1rt @Code oragged @@Break @I object } +oragged.break @Index { @Code oragged @@Break } +|2m The obvious combination of {@Code ragged} and {@Code outdent}; +} + +@LI { +2i @Wide { |1rt @Code lines @@Break @I object } +lines.break @Index { @Code lines @@Break } +|2m Break the paragraphs of {@I object} into lines at the same points +that they are broken into lines in the input, and also at concatenation +symbols of the form {@Code "&"}{@I k}{@Code "b"} for any {@I k} greater +than 1. Do not adjust the lines. Any spaces at the start of a line +other than the first line will appear in the output; +} + +@LI { +2i @Wide { |1rt @Code clines @@Break @I object } +clines.break @Index { @Code clines @@Break } +|2m Break the paragraphs of {@I object} into lines as for @Code "lines" +@@Break, then centre each line with respect to the others; +} + +@LI { +2i @Wide { |1rt @Code rlines @@Break @I object } +rlines.break @Index { @Code rlines @@Break } +|2m Break the paragraphs of {@I object} into lines as for @Code "lines" +@@Break, then right-justify each line with respect to the others. +} + +@EL +If the paragraph was an entire component of a galley, so will each of +its lines be; otherwise the lines are enclosed in a {@Code "@OneRow"} +symbol after breaking. +@PP +The length of the gap used to separate the lines produced by paragraph +breaking is always {@Code 1v}. However, the @Code v unit itself and the +v.unit.effect @SubIndex { effect on paragraph breaking } +gap mode may be changed: +@IL + +@LI { +2i @Wide { |1rt @I gap @Code "@Break" @I object } +|2m Within {@I object}, take the value of the @Code "v" unit to be the +length of {@I gap}; +} + +@LI { +2i @Wide { |1rt + & @I gap @Code "@Break" @I object } +|2m Within {@I object}, take the value of the @Code "v" unit to be +larger by the length of @I gap than it would otherwise have been; +} + +@LI { +2i @Wide { |1rt -- & @I gap @Code "@Break" @I object } +|2m Within {@I object}, take the value of the @Code "v" unit to be +smaller by the length of @I gap than it would otherwise have been. +} + +@EL +In each case, the mode of @I gap is adopted within {@I object}. +@PP +The @@Break symbol also controls hyphenation: +@IL + +@LI { +2i @Wide { |1rt @Code "hyphen @Break" @I object } +hyphen.break @Index { @Code hyphen @@Break } +|2m Permit hyphenation within the paragraphs of {@I object}; +} + +@LI { +2i @Wide { |1rt @Code "nohyphen @Break" @I object } +nohyphen.break @Index { @Code nohyphen @@Break } +|2m Prohibit hyphenation within the paragraphs of {@I object}; all +hyphenation gaps without exception revert to edge-to-edge mode. +} + +@EL +The @@Break also has options which control widow and orphan lines: +@IL + +@LI { +2i @Wide { |1rt @Code "unbreakablefirst @Break" @I object } +hyphen.break @Index { @Code hyphen @@Break } +|2m Prevent column and page breaks (i.e. prevent a galley from splitting) +between the first and second lines of the paragraphs of {@I object}; +} + +@LI { +2i @Wide { |1rt @Code "unbreakablelast @Break" @I object } +nohyphen.break @Index { @Code nohyphen @@Break } +|2m Prevent column and page breaks between the last and second +last lines of the paragraphs of {@I object}. +} + +@EL +These options work by adding the @Code "u" (unbreakable) suffix to the +appropriate gaps during paragraph breaking, so their precise effect is +as described for this suffix. These options may be countermanded by +@Code "breakablefirst @Break" and @Code "breakablelast @Break". +@PP +Several options may be given to the @@Break symbol simultaneously, in +any order. For example, +@ID @Code "{ adjust 1.2fx hyphen } @Break ..." +is a typical initial value. There may be empty objects and @@Null objects +in the left parameter of @@Break; these are ignored. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_case b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_case new file mode 100755 index 0000000000000..f0f22e179e131 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_case @@ -0,0 +1,51 @@ +@Section + @Title { "@Case" } + @Tag { case } +@Begin +@PP +case.sym @Index { @@Case symbol } +yield.sym @Index { @@Yield symbol } +The @@Case symbol selects its result from a list of alternatives, +depending on a tag: +@ID @Code { +"@Day @Case {" +" { 1 21 31 } @Yield st" +" { 2 22 } @Yield nd" +" { 3 23 } @Yield rd" +" else @Yield th" +"}" +} +In this example the result will be st if @Code "@Day" is 1, 21, or 31, +and nd if @Code "@Day" is 2 or 22, etc. The effect is similar to +accessing a database, though in a more compact form. The right parameter +is a sequence of @@Yield symbols, each with a left parameter whose value is +a sequence of one or more juxtapositions of simple words, and a right +parameter which may be any object. +@PP +We first describe the behaviour when the value of the left parameter of +@@Case is a juxtaposition of one or more simple words. Then the result of +the @@Case is the right parameter of the first @@Yield whose left parameter +contains either the value of the left parameter of the @@Case, or the special +value {@Code else}. If there is no such @@Yield it is an error. +@PP +When the left parameter of @@Case is not a juxtaposition of simple +words, the result is the right parameter of the first @@Yield whose +left parameter is {@Code else}, or an error otherwise. This permits +examples like +@ID @Code { +"@RunningTitle @Case {" +" dft @Yield @Title" +" else @Yield @RunningTitle" +"}" +} +where a running title is returned unless it has the value {@Code dft} +(which presumably means that no running title was supplied), in which +case an ordinary title is returned instead. +@PP +When a receptive symbol is placed within a @@Case, it should be included +in each alternative, since otherwise Basser Lout may become confused when +trying to predict whether the symbol will be a part of the result or +not. Alternatively, if it can be guaranteed that the receptive symbol +will never be searched for when the cases that it does not lie within +are selected, that is all right too. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_colo b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_colo new file mode 100755 index 0000000000000..21ae85bdf600d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_colo @@ -0,0 +1,65 @@ +@Section + @Title { "@SetColour" and "@SetColor" } + @Tag { colour } +@Begin +@PP +The @@SetColour and @@SetColor symbols, +setcolour.sym @Index { @@SetColour symbol } +setcolor.sym @Index { @@SetColor symbol } +which have identical effect, return their right parameter in +the colour specified by their left parameter. The form of +the left parameter is implementation-dependent; in Basser Lout +it must be an object whose value is a sequence of words comprising +a PostScript command for setting colour. For example, +@ID @Code "{ 1.0 0.0 0.0 setrgbcolor } @SetColour { hello, world }" +produces the red result +@ID { + @BackEnd @Case { + PostScript @Yield { + { 1.0 0.0 0.0 setrgbcolor } @SetColour { hello, world } + } + PDF @Yield { + { 1.0 0.0 0.0 rg 1.0 0.0 0.0 RG } @SetColour { hello, world } + } + } +} +Of course, a colour output device is needed to see the effect; on +a monochrome device the result will be some shade of grey. The +@@SetColour command will not accept an empty left parameter +(it refuses to believe that this could cause a change of colour), +but otherwise it trusts the user to supply something sensible. +@PP +The @@SetColour command accepts the special value {@Code "nochange"} +for the left parameter. This value causes the right parameter to have +the colour it would have had without the @@SetColour command. +@PP +There is no default colour, so the user must ensure that the root galley +or each of its components is enclosed in a @@SetColour symbol whose +left parameter is not {@Code "nochange"}. +@PP +Lout makes no attempt to understand colour, it simply prints +the PostScript commands when appropriate. This has the advantage +of permitting access to any of PostScript's colour models (some +require initialization which can be supplied using @@PrependGraphic), +but the disadvantage of offering no way to make relative changes +(`as before only redder,' and so on). +@PP +For those who wish to obtain colour without working very hard, +the @Code setrgbcolor command used above is available in every +version of PostScript, requires no initialization, and is simple +to use. The three numbers, which range from 0.0 to 1.0, determine +the intensity of red, green, and blue respectively. Some useful +values for the left parameter are +@ID @Tab + @Fmta { @Col @Code A ! @Col @I B } +{ +@Rowa A { 1.0 0.0 0.0 setrgbcolor } B { red } +@Rowa A { 0.0 1.0 0.0 setrgbcolor } B { green } +@Rowa A { 0.0 0.0 1.0 setrgbcolor } B { blue } +@Rowa A { 1.0 1.0 1.0 setrgbcolor } B { white } +@Rowa A { 0.5 0.5 0.5 setrgbcolor } B { grey } +@Rowa A { 0.0 0.0 0.0 setrgbcolor } B { black } +} +Colouring an object white is useful for producing an empty space +whose size is that of some object. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_conc b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_conc new file mode 100755 index 0000000000000..4ce6e2bfee47e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_conc @@ -0,0 +1,325 @@ +@Section + @Title { Concatenation symbols and paragraphs } + @Tag { concatenation } +@Begin +@PP +There are ten concatenation symbols, in three families: +concatenation. @Index { Concatenation symbols } +@ID @Tab + vmargin { 0.5vx } + @Fmta { @Col @Code A ! @Col @Code B ! @Col @Code C ! @Col @Code D ! @Col E } +{ +@Rowa A { "/" } B { "^/" } C { "//" } D { "^//" } E { Vertical concatenation } +@Rowa A { "|" } B { "^|" } C { "||" } D { "^||" } E { Horizontal concatenation } +@Rowa A { "&" } B { "^&" } C { } D { } E {In-paragraph concatenation} +} +Each symbol produces an object which combines together the two +parameters. The right parameter must be separated from the symbol by at +least one white space character. +@PP +The vertical concatenation symbol @Code "/" places its left parameter +vertical.concatenation @Index { Vertical concatenation } +above its right parameter with their column marks aligned. If one +parameter has more column marks than the other, empty columns are +inserted at the right to equalize the numbers. The variant @Code "//" +ignores column marks and left-justifies the objects. +@PP +The horizontal concatenation symbols @Code "|" and @Code "||" are horizontal +horizontal.concatenation @Index { Horizontal concatenation } +analogues of @Code "/" and {@Code "//"}: they place their two parameters side +by side, with row mark alignment or top-justification respectively. The +in.paragraph.concatenation @Index { In-paragraph concatenation } +in-paragraph concatenation symbol @Code "&" produces horizontal concatenation +within a paragraph; its special properties are treated in detail at the +end of this section. +@PP +The concatenation symbols in any one family are @I { mutually associative }, +which means that +@ID { +@Code "{" @I x {@Code "|"}{@I p} @I y @Code "}" {@Code "|"}{@I q} @I z +} +is always the same as +@ID { +@I x {@Code "|"}{@I p} @Code "{" @I y {@Code "|"}{@I q} @I z @Code "}" +} +for any objects {@I x}, {@I y}, and {@I z}, any gaps @I p and @I q (defined +below), and any choice of {@Code "|"}, {@Code "^|"}, {@Code "||"}, and +{@Code "^||"}. In practice we always omit such braces, since they are +redundant and can be misleading. The result of the complete sequence of +concatenations will be called the {@I{whole concatenation object}}, and +the objects which make it up will be called the {@I components}. +@PP +One mark is designated as the @I { principal mark }, usually the mark of +principal.mark @Index { Principal mark } +the first component. A later mark can be chosen for this honour by +attaching {@Code "^"} to the preceding concatenation symbol. See Section +{@NumberOf onerow} for examples. +@PP +A {@I gap}, +gap @Index Gap +specifying the distance between the two +parameters, may follow any concatenation symbol. There may be no spaces +between a concatenation symbol and its gap. A missing gap is taken +to be {@Code 0ie}. The gap is effectively a third parameter of the +concatenation symbol, and it may be an arbitrary object provided that it +evaluates to a juxtaposition of simple words. In general, the gap must +be enclosed in braces, like this: +@ID @Code { +"//{ @Style&&mystyle @Open { @TopMargin } }" +} +but the braces may be omitted when the object is a juxtaposition of +simple words or an invocation of a symbol without parameters, as in +@Code "//0.3vx" and {@Code "||@Indent"}. +@PP +A gap consists of a length plus a gap mode plus an optional indication +of unbreakability. A @I length +length @Index { Length } +is represented by an decimal number (which may not be negative) followed +by a unit of measurement. For example, @Code "2.5c" represents the +length 2.5 centimetres. Figure {@NumberOf units} gives the full selection +of units of measurement. +c.unit @Index { @Code c unit } +p.unit @Index { @Code p unit } +m.unit @Index { @Code m unit } +f.unit @Index { @Code f unit } +s.unit @Index { @Code s unit } +v.unit @Index { @Code v unit } +w.unit @Index { @Code w unit } +b.unit @Index { @Code b unit } +r.unit @Index { @Code r unit } +d.unit @Index { @Code d unit } + +@Figure + @Caption { The thirteen units of measurement provided by Lout. } + @Tag { units } +@Begin + @Tab + vmargin { 0.3v } + side { yes } + @Fmta { @Col @Code A ! @Col B } + { + @Rowa above { yes } A { c } B { Centimetres. } + @Rowa A { i } B { Inches. +} + @Rowa A { p } B { Points ({@Code 72p} = {@Code 1i}). +} + @Rowa A { m } B { Ems ({@Code 12m} = {@Code 1i}). +} + @Rowa A { f } B { +One @Code f equals the size of the current font, as specified by +the @@Font symbol (Section {@NumberOf font}). This unit is +appropriate for lengths that should change with the font size. +} + @Rowa A { s } B { +One @Code s equals the preferred gap between two words in the +current font, as specified in the definition of the font, or by the +@@Space symbol (Section {@NumberOf break}). +} + @Rowa A { v } B { +One @Code v equals the current gap between lines introduced during +paragraph breaking, as specified by the @@Break symbol (Section +{@NumberOf break}). This unit is appropriate for lengths, such as the +spaces between paragraphs, which should change with the inter-line gap. +} + @Rowa A { w } B { +One @Code w equals the width of the following component, or its height if the +symbol is vertical concatenation. +} + @Rowa A { b } B { +One @Code b equals the width of the whole concatenation object, +or its height if the symbol is vertical concatenation. +} + @Rowa A { r } B { +One @Code r equals one @Code b minus one {@Code w}. This unit is used +for centring, and for left and right justification. +} + @Rowa A { d } B { +Degrees. This unit may only be used with the @Code "@Rotate" symbol. +} + @Rowa A { y } B { +One @Code y equals the current value set by the @Code "@YUnit" +symbol (Section {@NumberOf yunit}). This unit is not used internally +by Lout; it is included for the convenience of application packages. +} + @Rowa below { yes } A { z } B { +One @Code z equals the current value set by the @Code "@ZUnit" +symbol (Section {@NumberOf yunit}). This unit is not used internally +by Lout; it is included for the convenience of application packages. +} + } +@End @Figure + +@PP +After the length comes an optional @I {gap mode}, +gap.mode @Index { Gap mode } +which is a single letter following the length, indicating how the length +is to be measured. As shown in Figure {@NumberOf gapmodes}, + +@Figure + @Tag { gapmodes } + @Caption { The six gap modes provided by Lout. } +@Begin +@Fig { +{ /2.5vx Edge-to-edge |0.3i {@Code "|"} &1p {@I l} &1p {@Code e} + /4vx Hyphenation |0.3i {@Code "|"} &1p {@I l} &1p {@Code h} + /4vx Overstrike |0.3i {@Code "|"} &1p {@I l} &1p {@Code o} + /4vx Mark-to-mark |0.3i {@Code "|"} &1p {@I l} &1p {@Code x} + /4vx Kerning |0.3i {@Code "|"} &1p {@I l} &1p {@Code k} + /4vx Tabulation |0.3i {@Code "|"} &1p {@I l} &1p {@Code t} +} +||0.5i +@Box margin { 0c } 6c @Wide 13.2c @High 9p @Font +{ + @OneRow { + @At { 1c @Wide 0.5c @High } @Put { @LBox 0.2co } + @At { 4c @Wide 0.5c @High } @Put { @LBox 0.5co } + @At { 2.2c @Wide 1.4c @High } @Put { @DoubleArrow 1.8c } + @At { 2.2c @Wide 1.6c @High } @Put { 1.8c @Wide { &0.5rt @I l } } + } + //4vx + @OneRow { + @At { 1c @Wide 0.5c @High } @Put { @LBox 0.2co } + @At { 4c @Wide 0.5c @High } @Put { @LBox 0.5co } + @At { 2.2c @Wide 1.4c @High } @Put { @DoubleArrow 1.8c } + @At { 2.2c @Wide 1.6c @High } @Put { 1.8c @Wide { &0.5rt @I l } } + } + //4vx + @OneRow { + @At { 1c @Wide 0.5c @High } @Put { @LBox 0.2co } + @At { 4c @Wide 0.5c @High } @Put { @LBox 0.5co } + @At { 1.2c @Wide 1.5c @High } @Put { @DoubleArrow 3.3c } + @At { 1.2c @Wide 1.7c @High } @Put { 3.3c @Wide { &0.5rt @I l } } + } + //4vx + @OneRow { + @At { 1c @Wide 0.5c @High } @Put { @LBox 0.2co } + @At { 4c @Wide 0.5c @High } @Put { @LBox 0.5co } + @At { 1.2c @Wide 1.5c @High } @Put { @DoubleArrow 3.3c } + @At { 1.2c @Wide 1.7c @High } + @Put 3.3c @Wide { |0.5rt { max( {@I {l, a+b+l"/10"}}) } } + @At { 1.2c @Wide 0.4c @High } @Put { @DoubleArrow 1.0c } + @At { 1.2c @Wide 0.2c @High } @Put { 1.0c @Wide { &0.5rt @I a } } + @At { 4c @Wide 0.4c @High } @Put { @DoubleArrow 0.5c } + @At { 4c @Wide 0.2c @High } @Put { 0.5c @Wide { &0.5rt @I b } } + } + //4vx + @OneRow { + @At { 1c @Wide 0.5c @High } @Put { @LBox 0.2co } + @At { 4c @Wide 0.5c @High } @Put { @LBox 0.5co } + @At { 1.2c @Wide 1.5c @High } @Put { @DoubleArrow 3.3c } + @At { 1.2c @Wide 1.7c @High } + @Put { 3.3c @Wide { |0.5rt max( {@I {l, a, b}})}} + @At { 1.2c @Wide 0.4c @High } @Put { @DoubleArrow 1.0c } + @At { 1.2c @Wide 0.2c @High } @Put { 1.0c @Wide { &0.5rt @I a } } + @At { 4c @Wide 0.4c @High } @Put { @DoubleArrow 0.5c } + @At { 4c @Wide 0.2c @High } @Put { 0.5c @Wide { &0.5rt @I b } } + } + //4vx + @OneRow { + @At { 1c @Wide 0.5c @High } @Put { @LBox 0.2co } + @At { 4c @Wide 0.5c @High } @Put { @LBox 0.5co } + @At { 0.0c @Wide 1.6c @High } @Put { @DoubleArrow 4.0c } + @At { 2.8c @Wide 1.8c @High } @Put { @I l } + } + //5vx + @DoubleArrow 6c + //0.1c |0.5rt @I { current bound } +} + +} +@End @Figure +with edge-to-edge gap mode +edge.to.edge @Index { Edge-to-edge gap mode } +e.gap.mode @Index { @Code e gap mode } +the length @I l is measured from the trailing edge +of the first object to the leading edge of the second. Edge-to-edge is the +default mode: the @Code e may be omitted. Hyphenation gap mode is +hyphenation.gap @Index { Hyphenation gap mode } +h.gap.mode @Index { @Code h gap mode } +similar, except as explained at the end of this section. +@PP +Mark-to-mark, +mark.to.mark @Index { Mark-to-mark gap mode } +x.gap.mode @Index { @Code x gap mode } +overstrike, +overstrike @Index { Overstrike gap mode } +o.gap.mode @Index { @Code o gap mode } +and kerning +kerning.mode @Index { Kerning gap mode } +k.gap.mode @Index { @Code k gap mode } +measure the length from the last mark +of the first object to the first mark of the second. In the case of +mark-to-mark, if the length is too small to prevent the objects +almost overlapping, it is widened until they no longer do. (The extra +@I { "l/10" } is not applied when plain text output is in effect.) Kerning +also widens, with the aim of preventing the mark of either object from +overlapping the other object; this mode is used for subscripts and +superscripts. +@PP +tabulation @Index { Tabulation gap mode } +t.gap.mode @Index { @Code t gap mode } +centring @Index { Centring } +right.justif @Index { Right justification } +Tabulation ignores the first object and places the leading edge of the +second object at a distance @I l from the left edge of the whole +concatenation object. It is the main user of the @Code b and @Code r +units of measurement; for example, @Code "|1rt" will right-justify the +following component, and @Code "|0.5rt" will centre it. +@PP +The value @Code "|0rt" separating the first and second items in a +sequence of horizontally concatenated objects is somewhat special in +that it denotes left justification of the object to its left in the +available space. This is identical with @Code "|0ie" when the object to +the left also has the principal mark; but when it does not, @Code "|0rt" +will cause the object to the left to appear further to the left than it +would otherwise have done, if space to do so is available. +@PP +A gap is optionally concluded with an indication of unbreakability, +which is a letter @Code "u" appended to the gap. A paragraph will +never be broken at an unbreakable gap, nor will a galley be broken +across two targets at such a gap. Basser Lout's implementation is +slightly defective in that it ignores any unbreakable indication +in the gap separating the first component promoted into any target +from the second. +@PP +When two objects are separated only by zero or more white space +white.space.when @SubIndex { when significant } +space.f.when @SubIndex { when significant } +characters (spaces, tabs, newlines, and formfeeds), Lout inserts +{@Code "&"}{@I k}{@Code "s"} between the two objects, where @I k is the +number of spaces. Precisely, @I k is determined by discarding all space +characters and tabs that precede newlines (these are invisible so are +better ignored), then counting 1 for each newline, formfeed or space, +and 8 for each tab character. The gap will be unbreakable if @I k +is zero. +@PP +A sequence of two or more objects separated by @Code "&" symbols is a +paragraph.breaking.in.detail @SubIndex { in detail } +{@I paragraph}. Lout breaks paragraphs into lines automatically as +required, by converting some of the @Code "&" symbols into +{@Code "//1vx"}. Unbreakable gaps are not eligible for this +conversion. `Optimal' line breaks are chosen, using a +method adapted from @TeX @Cite { $knuth1984tex }. +tex @RawIndex { @TeX } +tex.optimal @SubIndex { optimal paragraph breaking } +@PP +If an @Code "&" symbol whose gap has hyphenation mode +hyphenation @Index { Hyphenation gap mode } +tex.hyphenation @SubIndex { hyphenation } +is chosen for replacement by {@Code "//1vx"}, a hyphen will be appended to +the preceding object, unless that object is a word which already ends with +a hyphen. For example, +@ID @Code { +Long words may be "hyph &0ih enat &0ih ed." +} +could have the following result, depending where the line breaks fall: +@ID 2i @Wide { +Long words may be hyph &0ih enat &0ih ed. +} +Basser Lout inserts hyphenation gaps automatically as required, again +following the method of @TeX, which approximates the hyphenations in +Webster's dictionary. To prevent the hyphenation of a single word, +enclose it in quotes. Further control over paragraph breaking and +hyphenation is provided by the @@Break and @@Space symbols (Sections +{@NumberOf break} and {@NumberOf space}). +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_cove b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_cove new file mode 100755 index 0000000000000..c5cf45ed82d04 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_cove @@ -0,0 +1,32 @@ +@Section + @Title { "@HCover" and "@VCover" } + @Tag { hcover } +@Begin +@PP +hcover. @Index { @@HCover symbol } +vcover. @Index { @@VCover symbol } +The @@VCover symbol vertically scales its right parameter so that it +covers every object that shares its row mark. For example, +@ID @Code "@VCover ( 45d @Rotate Hello @VCover )" +produces +@ID @ShowHMark { @VCover ( 45d @Rotate Hello @VCover ) } +The row mark has been added to show clearly where it lies. This should be +compared with +@ID @Code "@VScale ( 45d @Rotate Hello @VScale )" +which produces +@ID @ShowHMark { @VScale ( 45d @Rotate Hello @VScale ) } +Scaling abandons mark alignment and so is able to exactly cover the +rest of the row, whereas covering preserves mark alignment and so +is obliged in general to more than cover the rest of the row. +@PP +If the parameter of @@VCover has zero vertical size, this is taken +to mean that covering is not required after all and the @@VCover is +silently ignored. If however the parameter has non-zero size above +the mark but zero size below, or vice versa, this is taken to be an error +since scaling cannot make the parameter cover the rest of the row. +@PP +@@HCover is similar, horizontally covering all objects that share +its column mark. Neither symbol works well near galley targets, +because the scale factor to apply is determined before any galley +flushing takes place. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_cros b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_cros new file mode 100755 index 0000000000000..d300e861e12d1 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_cros @@ -0,0 +1,36 @@ +@Section + @Title { The cross reference symbols "&&" and "&&&" } + @Tag { crossref } +@Begin +@PP +The cross reference symbol @Code "&&" takes the name of a symbol (not an +object) for its left parameter, and an object whose value must be a +simple word, or several simple words, for its right parameter. The +result is a cross reference, which may be thought of as an arrow pointing +from the cross reference symbol to the beginning of an invocation of the +named symbol. +@PP +The invocation pointed to, known as the @I target of the cross +reference, is generally one whose @@Tag parameter has value equal +to the right parameter of the cross reference symbol. Three special tags, +{@Code preceding}, {@Code following}, and {@Code foll_or_prec}, point +respectively to the first invocation preceding the cross reference in +the final printed document, to the first invocation following it, and +to the first following it if such exists else to the first preceding it. +@PP +A cross reference may be used in four ways: where an object is +expected, in which case its value is a copy of the target; with the +@@Open and @@Use symbols; with the @@Tagged symbol; and in the +@Code into clause or @Code "@Target" symbol of a galley definition, in +which case the value of the tag must be {@Code preceding}, +{@Code following}, or {@Code foll_or_prec}. +@PP +Within an @Code "into" clause or @Code "@Target" symbol, the alternative +form @Code "&&&" is acceptable and indicates a forcing galley (Section +{@NumberOf targets}). +@PP +Except within an @Code into clause or @Code "@Target" symbol, the symbol +referred to must have a @@Tag parameter. This is so even if the right +parameter of the cross reference is {@Code preceding}, {@Code following}, +or {@Code foll_or_prec}. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_data b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_data new file mode 100755 index 0000000000000..e7bb643a0f4f8 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_data @@ -0,0 +1,37 @@ +@Section + @Title { "@Database and @SysDatabase" } + @Tag { database } +@Begin +@PP +database.sym @Index { @@Database symbol } +The @@Database symbol is used to declare the existence of a file +of symbol invocations that Lout may refer to when evaluating cross +references. In Basser Lout, for example, +@ID @Code { +"@Database @Months @WeekDays { standard }" +} +means that there is a file called @Code "standard.ld" containing +invocations of the previously defined symbols @Code "@Months" and +{@Code "@WeekDays"}. A @@Database symbol may appear anywhere a definition +or a @@Use symbol may appear. Different definitions packages may refer to a +common database, provided the definitions they give for its symbols are +compatible. An entry is interpreted as though it appears at the point +where the cross reference that retrieves it does, which allows symbols +like @Code "@I" for @Code "Slope @Font" to be used in databases. The +database file may not contain @@Database or @@Include symbols, and each +invocation within it must be enclosed in braces. +@PP +Basser Lout constructs an {@I {index file}}, +index.file @Index { Index file (for databases) } +which in this example is called {@Code "standard.li"}, the first time it +ever encounters the database, as an aid to searching it. If the database +file is changed, its index file must be deleted by the user so that +Basser Lout knows to reconstruct it. There is also an installation +option which allows this deletion to be done automatically on suitable +systems (including Unix). +@PP +Basser Lout searches for databases in the current directory first, then +in a sequence of standard places. To search the standard places only, use +sysdatabase.sym @Index { @@SysDatabase symbol } +@@SysDatabase. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_font b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_font new file mode 100755 index 0000000000000..5c910c4029723 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_font @@ -0,0 +1,164 @@ +@Section + @Title { {"@Font"}, {"@Char"}, and "@FontDef" } + @Tag { font } +@Begin +@PP +A @I font +font. @Index { Fonts } +is a collection of characters which may be +printed. Many fonts come in {@I families}, +family @Index { Family of a font } +face @Index { Face of a font } +which are groups of fonts that +have been designed to go together. For example, the Times family +includes the following fonts: +@ID { Times Base } @Font { + Base @Font { Times Base } +//1vx Slope @Font { Times Slope } +//1vx Bold @Font { Times Bold } +//1vx BoldSlope @Font { Times BoldSlope } +} +Thus, each font has two names: its @I { family name } (Times, +Helvetica, etc.) and its @I { face name } (Base, Slope, etc.). Times +Base is more commonly called Times Roman, and Times Slope is more +commonly called Times Italic. Lout avoids these names in favour of +generic names which can be applied to many font families. +@PP +Ligatures, +ligatures @Index Ligatures +kerning @Index Kerning +such as fl for {@OneCol f}l and fi for {@OneCol f}i, are considered by +Basser Lout to be an integral part of the font: if the font definition +(see below) mentions them, they will be used. Similarly, kerning (fine +adjustment of the space between adjacent characters to improve the +appearance) is done whenever indicated in the font definition. Enclosing +one of the letters in @@OneCol is one sure way to disable a ligature or kern. +@PP +The @@Font symbol +font.sym @Index { @@Font symbol } +returns its right parameter in a font and size specified by its left: +@ID { +@Code "{ Times Base 12p } @Font" @I object +} +The family and face names must have appeared together in a {@Code "@FontDef"} +(see below); the size is arbitrary and may be given in any one of the +{@Code "c"}, {@Code "i"}, {@Code "p"}, {@Code "m"}, {@Code "f"}, {@Code "s"}, +and {@Code "v"} units of measurement (Section {@NumberOf concatenation}), +although @Code 10p and @Code 12p are the most common sizes for text. There +may be empty objects and @@Null objects in the left parameter of @@Font; +these are ignored. +@PP +When a @@Font symbol is nested inside the right parameter of +another @@Font symbol, the inner one determines the font of its +own right parameter. However, it may be abbreviated so as to inherit +part of the outer symbol: +@ID @Code { +"{ Times Base 12p } @Font" +"{ hello, Slope @Font hello, 15p @Font hello }" +} +has result +@ID { +{ Times Base 12p } @Font +{ hello, Slope @Font hello, 15p @Font hello } +} +The first inner @@Font inherits the outer family and size, changing only +the face; the second inherits the outer family and face. When a family +name is given, it must be followed immediately by a face name. A size +change may appear first or last. +@PP +Sizes of the form +{@I length} and --{@I length} may also be used, +meaning that the font size is to be @I length larger or smaller than +the inherited value. For example, --{@Code "2p"} is often used for +superscripts and subscripts. These forms are highly recommended, since +they don't need to be changed if a decision is made to alter the font +size of the document as a whole. +@PP +The @@Font symbol also switches to and from small capitals: +"smallcaps" @Index { small capitals } +@ID @Code { +"smallcaps @Font ..." +"nosmallcaps @Font ..." +} +These may be nested, and they cooperate with other font changes. The +precise effect depends on the font (see below). There is a default +value (@Code {"nosmallcaps"}), so it is not necessary to mention this +attribute when giving an initial font. +@PP +There are two predefined symbols, @@CurrFamily and @@CurrFace, which +respectively return the family and face names of the current font. For +example, right now @@CurrFamily is @CurrFamily and @@CurrFace is +@CurrFace. +@PP +To inform Lout that certain fonts exist, it is necessary to create a +database of @Code "@FontDef" symbols. A typical entry in such a +database looks like this: +@ID @Code @Verbatim { +{ @FontDef + @Tag { Times-Base } + @Family { Times } + @Face { Base } + @Name { Times-Roman } + @Metrics { Ti-Rm } + @Mapping { LtLatin1.LCM } +} +} +This entry informs Lout of the existence of a font whose family name +is the value of {@Code "@Family"} and whose face name is the value +of {@Code "@Face"}. The @Code "@Tag" value must be exactly equal +to {@Code "@Family"} followed by a hyphen followed by +{@Code "@Face"}. There are a few fonts which are the only members +of their families; even though these fonts do not need a face name, they +must be given one, probably {@Code Base}, by their {@Code "@FontDef"}. +@PP +The other fields are implementation-dependent, but in Basser Lout +Version 3 they are {@Code "@Name"}, a PostScript font name; +{@Code "@Metrics"}, an +adobe @Index { Adobe Systems, Inc. } +Adobe font metrics (formerly AFM) file whose FontName entry must agree +with the PostScript font name just mentioned; and {@Code "@Mapping"}, +the name of a Lout Character Mapping (LCM) file. The files are +searched for in standard places. Consult the PostScript Reference Manual +@Cite { $adobe1990ps } for general information about fonts and encoding +vectors; briefly, an 8-bit +lcm. @Index { LCM file } +character code @I c in Lout's input is mapped to the character in the +Adobe font metrics file whose name appears on the line labelled @I c in the +LCM file. The LCM file also defines various character-to-character +mappings, such as upper-case to lower-case, which are used for such +purposes as the production of small capitals. +@PP +The options shown above are all compulsory, but there are two other +options which are optional. The @Code "@Recode" option, if given, +must have value @Code "Yes" (the default, so rarely seen) or +{@Code "No"}. If @Code "@Recode { No }" is given, Lout assumes that +the given encoding vector is already associated with this font in +the PostScript interpreter, and optimizes its output accordingly. +@PP +The other optional option, {@Code "@ExtraMetrics"}, has value +equal to the name of a second font metrics file which, if given, +is added to the main one defined by {@Code "@Metrics"}. This +extra metrics file contains @Code "C" (define character) and +@Code "CC" (define composite character) entries in the same format +as in AFM files; Lout will build composite characters declared in +this extra file from the given pieces, which it does not do for +composite characters in the main AFM file. There are example +extra metrics files in the current Lout distribution which show +the precise format of these files. +@PP +It is not possible to have two @Code "@FontDef" database entries +with the same family and face names, because then they must have +the same {@Code "@Tag"}, which is not allowed. However, a PostScript +font name and file may appear in two or more font definitions, +allowing one PostScript font to have two or more equally valid +Lout names. The LCM files may be equal or different as desired. +@PP +The @@Char symbol +char @Index { @@Char symbol } +allows a character to be specified by its name (its PostScript name in +Basser Lout) rather than by its code: +@ID @Code "@Char nine" +is equivalent to @Code "9" in most fonts. This is useful as a +documentation aid and to be sure of getting the right character even if the +encoding vector of the font is changed. However @@Char will fail if the +character named is not in the encoding vector of the current font. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_gall b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_gall new file mode 100755 index 0000000000000..a13aab9f2ddf3 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_gall @@ -0,0 +1,14 @@ +@Section + @Title { "@Galley" and "@ForceGalley" } + @Tag { galley } +@Begin +@PP +These symbols +galley.sym @Index { @@Galley symbol } +galley.sym @Index { @@ForceGalley symbol } +both act as a placeholder for a galley. That is, they may be replaced +by components of a galley. In the case of @@ForceGalley the galley will +then have a forcing galley effect at this point although it need not be +declared using {@Code "force into"}. See Section {@NumberOf targets} +for a detailed discussion of galleys, forcing galleys, and targets. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_grap b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_grap new file mode 100755 index 0000000000000..e75dd2146a1d5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_grap @@ -0,0 +1,284 @@ +@Section + @Title { "@Graphic" } + @Tag { graphic } +@Begin +@PP +graphic.sym @Index { @@Graphic symbol } +diagrams @Index { Diagrams } +Lout does not provide the vast repertoire of graphical objects (lines, +circles, boxes, etc.) required by diagrams. Instead, it provides an +escape route to some other language that does have these features, via +its @@Graphic symbol: +postscript.graphic @SubIndex { used by @@Graphic } +@ID @OneRow @OneRow @Code { +"{ 0 0 moveto" +" 0 ysize lineto" +" xsize ysize lineto" +" xsize 0 lineto" +" closepath" +" stroke" +"}" +"@Graphic" +"{ //0.2c" +" ||0.2c hello, world ||0.2c" +" //0.2c" +"}" +} +The result of the above invocation of the symbol @@Graphic is +@ID @OneRow @OneRow { + @BackEnd @Case { + PostScript @Yield { + { 0 0 moveto + 0 ysize lineto + xsize ysize lineto + xsize 0 lineto + closepath + stroke + } + @Graphic + { //0.2c + ||0.2c hello, world ||0.2c + //0.2c + } + } + PDF @Yield { + { 0 0 m + 0 __ysize l + __xsize __ysize l + __xsize 0 l + s + } + @Graphic + { //0.2c + ||0.2c hello, world ||0.2c + //0.2c + } + } + } +} +@PP +The right parameter always appears as part of the result, and indeed the +result is always an object whose size is identical to the size of the +right parameter with @@OneCol and @@OneRow applied to +it. From now on we refer to this part of the result as the {@I base}. +@PP +The left parameter is implementation-dependent: that is, its +meaning is not defined by Lout, and different implementations could +require different values for it. The following description applies to +Basser Lout, which uses the PostScript page description language +@Cite { $adobe1990ps }. Similar but more restricted possibilities exist +with the PDF back end (see a separate document distributed with Lout); +to include both, use the @@BackEnd symbol like this: +@ID @OneRow @Code { +"{ @BackEnd @Case {" +" PostScript @Yield" +" {" +" ..." +" }" +" PDF @Yield" +" {" +" ..." +" }" +" }" +" @Graphic" +" {" +" ..." +" }" +"}" +} +Returning to PostScript, the left parameter refers to a coordinate system +whose origin is the bottom left-hand corner of the base. It may use the symbols +@Code xsize and @Code ysize to denote the horizontal and vertical size +of the base; similarly, @Code xmark and @Code ymark denote the positions +of the base's column and row marks: +@ID @OneRow 9p @Font @Fig { + { &1rt @I ysize /0ik &1rt @I ymark /0ik &1rt 0 } |0.4c + { / + |0ik @ShowMarks { 1c @High 1.5c @Wide ^| 3c @Wide ^/ 2c @High } + |0ik / + } + /0.2c + | 0 | @I xmark | @I xsize +} +In addition to these four symbols and 0, lengths may be denoted in +centimetres, inches, points, ems, f's, v's and s's using the notation +@ID @OneRow @Tab + vmargin { 0.5vx } + hmargin { 1m } + @Fmta { @Col {@I l @Code A} ! @Col {instead of Lout's} ! @Col {{@I l}B} } +{ +@Rowa A { cm } B { c } +@Rowa A { in } B { i } +@Rowa A { pt } B { p } +@Rowa A { em } B { m } +@Rowa A { ft } B { f } +@Rowa A { vs } B { v } +@Rowa A { sp } B { s } +} +Note that there must be a space between the number and its unit, +unlike Lout proper. +@PP +A point within the base (and, with care, a point outside it) may +be denoted by a pair of lengths. For example, +@ID @OneRow @Code { +"xmark ymark" +} +is the point where the marks cross, and +@ID @OneRow @Code { +"0 2 cm" +} +is a point on the left edge, two centimetres above the bottom left-hand +corner. These two numbers are called the @I {x coordinate} and the +@I {y coordinate} of the point. +@PP +The first step in specifying a graphic object is to define a +{@I path}. A path can be thought of as the track of a pen moving over +the page. The pen may be up (not drawing) or down (drawing a line or +curve) as it moves. The entire path is a sequence of the following +items: +@LP +2i @Wide { |1rt @I {x y} @Code moveto } +|2m Lift the pen and move it to the indicated point. +@JP +2i @Wide { |1rt @I {x y} @Code lineto } +|2m Put the pen down and draw a straight line to the indicated point. +@JP +2i @Wide { |1rt @I {x y r angle1 angle2} @Code arc } +|2m Put the pen down and draw a circular arc whose centre has +coordinates @I x and @I y and whose radius is {@I r}. The arc begins +at the angle @I angle1 measuring counterclockwise from the point +directly to the right of the centre, and proceeds counterclockwise to +{@I angle2}. If the arc is not the first thing on the path, a straight +line will be drawn connecting the current point to the start of the arc. +@JP +2i @Wide { |1rt @I {x y r angle1 angle2} @Code arcn } +|2m As for arc, but the arc goes clockwise from @I angle1 to +{@I angle2 }. +@JP +2i @Wide @Code { |1rt closepath } +|2m Draw a straight line back to the point most recently moved to. +@LP +The first item should always be a {@Code moveto}, {@Code arc}, or +{@Code arcn}. It should be clear from this that the path given earlier: +@ID @OneRow @Code { +"0 0 moveto" +"0 ysize lineto" +"xsize ysize lineto" +"xsize 0 lineto" +"closepath" +} +traces around the boundary of the base with the pen down. +@PP +Once a path is set up, we are ready to @I paint it onto the page. There +are two choices: we can either @I stroke it, which means to display it +as described; or we can @I fill it, which means to paint everything +inside it grey or black. For stroking the two main options are +@IL +@LI { +2i @Wide { |1rt @I length @Code setlinewidth } +|2m The pen will draw lines of the given width. +} +@LI { +2i @Wide { |1rt @Code "[" @I length @Code {"]" 0 setdash} } +|2m The pen will draw dashed lines when it is down, with the dashes each +of the given length. +} +@EL +These options are followed by the word {@Code "stroke"}. So, for example, +@ID @OneRow @Code { +"{ 0 0 moveto xsize 0 lineto" +" 2 pt setlinewidth [ 5 pt ] 0 setdash stroke" +"}" +"@Graphic { 3i @Wide }" +} +has result +@ID @OneRow { + @BackEnd @Case { + PostScript @Yield { + { 0 0 moveto xsize 0 lineto + 2 pt setlinewidth [ 5 pt ] 0 setdash stroke + } + @Graphic { 3i @Wide } + } + PDF @Yield { + { [ __mul(5, __pt) ] 0 d __mul(2, __pt) w 0 0 m __xsize 0 l S + } + @Graphic { 3i @Wide } + } + } +} +@PP +When filling in the region enclosed by a path, the main option is +{@Code setgray}, which determines the shade of grey to use, on a scale +from 0 (black) to 1 (white). So, for example, +@ID @OneRow @Code { +"{ 0 0 moveto xsize 0 lineto 0 ysize lineto closepath" +" 0.8 setgray fill" +"}" +"@Graphic" +"{ 2c @Wide 2c @High }" +} +has result +@ID @OneRow { + @BackEnd @Case { + PostScript @Yield { + { 0 0 moveto xsize 0 lineto 0 ysize lineto closepath + 0.8 setgray fill + } + @Graphic + { 2c @Wide 2c @High } + } + PDF @Yield { + { 0 0 m __xsize 0 l 0 __ysize l h + 0.8 g f + } + @Graphic + { 2c @Wide 2c @High } + } + } +} +@PP +There are many other options. The value of the left parameter of +@@Graphic may be any fragment of the PostScript page description language +@Cite { $adobe1990ps }. Here are two other examples: +@ID @OneRow @Code { +xsize 2 div +} +denoting a length equal to half the horizontal size of the base, and +@ID @OneRow @Code { +gsave fill grestore stroke +} +which both fills and strokes the path. Since Basser Lout does not check +that the left parameter is valid PostScript, it is possible to cause +mysterious errors in the printing device, resulting in no output, if an +incorrect value is given. It is a good idea to encapsulate graphics +objects in carefully tested definitions, like those of the Diag figure +drawing package @Cite { $kingston1995lout.user, Chapter 9 }, +diag @Index { Diag diagram-drawing package } +to be sure of avoiding these errors. +@PP +PostScript experts may find the following information helpful when +designing advanced graphics features. The left parameter of @@Graphic +may have two parts, separated by {@Code "//"}: +@ID @OneRow { +@Code "{" @I {first part} @Code "//" @I {second part} @Code "} @Graphic" +@I object +} +If there is no {@Code "//"}, the second part is taken to be empty. The +PostScript output has the form +@ID @OneRow lines @Break { +@Code gsave +@I x @I y @Code translate +@I {Code which defines {@Code xsize}, {@Code ysize}, {@Code xmark}, {@Code ymark}, {@Code ft}, {@Code vs}, and {@Code sp} } +@Code gsave +@I {first part} +@Code grestore +@I {Code which renders the right parameter in translated coordinates} +@I {second part} +@Code grestore +} +where @Eq {x, y} is the position of the lower left corner of the +base. Having two parts permits bracketing operations, like @Code save +and @Code restore or @Code begin and {@Code end}, to enclose an +object. See the source file of the Diag package for examples. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_hadj b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_hadj new file mode 100755 index 0000000000000..4ca9fe00beea8 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_hadj @@ -0,0 +1,33 @@ +@Section + @Title { "@HAdjust", "@VAdjust", and "@PAdjust" } + @Tag { hadjust } +@Begin +@PP +padjust. @Index { @@PAdjust symbol } +hadjust. @Index { @@HAdjust symbol } +vadjust. @Index { @@VAdjust symbol } +adjustment @Index { Adjustment of object } +These symbols spread their right parameter apart until it occupies +all the space available to it; @@HAdjust adjusts @Code "|" sequences, +@@VAdjust adjusts @Code "/" sequences, and @@PAdjust adjusts @Code "&" +sequences. For example, +@ID @Code { +"4i @Wide @PAdjust { 1 2 3 4 5 6 7 8 }" +} +has result +@ID { +4i @Wide @PAdjust { 1 2 3 4 5 6 7 8 } +} +More precisely, the widening is effected by enlarging the size of each +component except the last by an equal fraction of the space that would +otherwise be left over -- just the opposite of the usual procedure, +which assigns all the leftover space to the last component (Section +{@NumberOf size}). +@PP +@@PAdjust is used by the @Code adjust and @Code outdent options of +the @@Break symbol (Section {@NumberOf break}). It has a slight +peculiarity: it will not enlarge components when the immediately +following gap has width 0. This is to prevent space from appearing +(for example) between a word and an immediately following comma. The +other two symbols will enlarge such components. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_hcon b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_hcon new file mode 100755 index 0000000000000..0d409c0a5060f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_hcon @@ -0,0 +1,17 @@ +@Section + @Title { "@HContract" and "@VContract" } + @Tag { hcontract } +@Begin +@PP +hcontract. @Index { @@HContract symbol } +vcontract. @Index { @@VContract symbol } +contraction @Index { Contraction of object } +The @@HContract symbol reduces the size of its right parameter to a +reasonable minimum (after paragraph breaking). For example, +@ID @Code "5i @Wide @HContract { A |1rt B }" +has result +@ID { 5i @Wide @HContract { A |1rt B } } +in which the B is much closer to the A than it would otherwise have +been. @@VContract is similar, but in a vertical direction. See +Section {@NumberOf size} for a more extensive discussion. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_head b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_head new file mode 100755 index 0000000000000..14e2871301262 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_head @@ -0,0 +1,113 @@ +@Section + @Title { "@BeginHeaderComponent", "@EndHeaderComponent", +"@SetHeaderComponent", and "@ClearHeaderComponent" } + @Tag { header_comp } +@Begin +@PP +Informally, header components are running headers that appear at the +header.component @Index { Header component of galley } +top of the displayed segments of galleys. They are used, for example, +by the @Code "@Tbl" table formatting package to place running headers +at the top of each page of a multi-page table, after the first page. +@PP +Formally, a header component of a galley is an ordinary component of +a galley (Section {@NumberOf targets}) together with an indication +that the component is a header component. When printed, a header +component looks exactly like it would have done as an ordinary +component; the difference is in whether the component is printed at all, +and if so where. +@PP +Every non-header component of every galley has associated with it a +sequence of zero or more header components. Whenever a galley attaches +to a target, and the target does not itself occupy an entire component +of the enclosing galley, copies of the header components associated with the +first ordinary component to be promoted into that target are +promoted into it first. +@PP +The condition `and the target does not itself occupy an entire component +of the enclosing galley' ensures that, for example, when part of a section +has header components, these are not printed where the section is +promoted into its chapter, but rather where the chapter is promoted +onto pages. If the target occupies the whole component, then the +incoming galley will not split at all, so headers would be of no +interest there. +@PP +The one remaining question is `How is the sequence of header +components of each ordinary component determined?' By default, +the header components of one component are the same as those +of the previous component. We can show this graphically as +follows: +@ID @OneRow lines @Break @Eq { +C sub i : H sub 1 , H sub 2 ,..., H sub n +"/" +C sub i+1 : H sub 1 , H sub 2 ,..., H sub n +} +which may be read: `If ordinary component @E { C sub i } has +header component sequence @E { H sub 1 , H sub 2 ,..., H sub n }, +then its successor component @E { C sub i+1 } has header component +sequence @E { H sub 1 , H sub 2 ,..., H sub n } also.' Using this +notation, we may now define the four symbols that affect header +component sequences: +@ID @OneRow lines @Break @Eq { +C sub i : H sub 1 , H sub 2 ,..., H sub n +"/" +gap `` @@BeginHeaderComponent `` H sub n+1 +"/" +C sub i+1 : H sub 1 , H sub 2 ,..., H sub n , H sub n+1 +} +That is, @@BeginHeaderComponent occupying an entire +begin.header.component.sym @Index { @@BeginHeaderComponent symbol } +component appends a header component to the sequence of the +following ordinary components. When printed, this header +component is separated by @E { gap } from the following component; +if @E { gap } is empty it denotes @Code { 0ie } as usual with +concatenation gaps. The appearance of the header component will be +exactly as it would have been had it occurred alone at that point, +rather than after @@BeginHeaderComponent. +@PP +Next comes @@EndHeaderComponent: +@ID @OneRow lines @Break @Eq { +C sub i : H sub 1 , H sub 2 ,..., H sub n , H sub n+1 +"/" +@@EndHeaderComponent +"/" +C sub i+1 : H sub 1 , H sub 2 ,..., H sub n +} +That is, @@EndHeaderComponent (which has no parameters) occupying an +end.header.component.sym @Index { @@EndHeaderComponent symbol } +entire component deletes the last header component. If the sequence is +empty, a warning message is printed and it remains +empty. @@BeginHeaderComponent and @@EndHeaderComponent are naturally +used in matching (possibly nested) pairs, to introduce and subsequently +retract a header component. +@PP +Next comes @@SetHeaderComponent: +@ID @OneRow lines @Break @Eq { +C sub i : H sub 1 , H sub 2 ,..., H sub n +"/" +gap `` @@SetHeaderComponent `` H sub n+1 +"/" +C sub i+1 : H sub n+1 +} +@@SetHeaderComponent clears any current header components +set.header.component.sym @Index { @@SetHeaderComponent symbol } +and replaces them by one of its own. Finally we have +@@ClearHeaderComponent: +@ID @OneRow lines @Break @Eq { +C sub i : H sub 1 , H sub 2 ,..., H sub n +"/" +@@ClearHeaderComponent +"/" +C sub i+1 : +} +This symbol clears any header components, leaving the sequence empty. These +clear.header.component.sym @Index { @@ClearHeaderComponent symbol } +last two symbols combine less cleanly than the first two (either will +wreck any enclosing @@BeginHeaderComponent -- @@EndHeaderComponent pair), +but they are useful in situations where the range of one header is +terminated by the start of the range of the next. +@PP +All four symbols yield the value @@Null where they appear. If they +do not occupy entire components of their galley, they are silently +ignored. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_hexp b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_hexp new file mode 100755 index 0000000000000..937e746b5bad5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_hexp @@ -0,0 +1,29 @@ +@Section + @Title { "@HExpand" and "@VExpand" } + @Tag { hexpand } +@Begin +@PP +hexpand. @Index { @@HExpand symbol } +vexpand. @Index { @@VExpand symbol } +expansion @Index { Expansion of object } +The @@HExpand symbol causes its right parameter to be as wide as it +possibly could be without violating a @@Wide symbol or intruding into +the space occupied by neighbouring gaps or objects. The @@VExpand +symbol is similar, but it affects height. For example, in the object +@ID @Code { +"8i @Wide 11i @High {" +" //1i ||1i @HExpand @VExpand x ||1i" +" //1i" +"}" +} +object @Code x could have any size up to six inches wide by nine inches +high, so the @@HExpand and @@VExpand symbols cause it to have exactly +this size. This is important, for example, if @Code x contains +@Code "|1rt" or {@Code "/1rt"}; without the expansion these might not +move as far across or down as expected. +@PP +As Section {@NumberOf size} explains in detail, most objects are +already as large as they possibly could be. Consequently these symbols +are needed only rarely. @@HExpand includes a @@OneCol effect, and +@@VExpand includes a @@OneRow effect. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_hlim b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_hlim new file mode 100755 index 0000000000000..ccf9548e4d1e5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_hlim @@ -0,0 +1,18 @@ +@Section + @Title { "@HLimited" and "@VLimited" } + @Tag { hlimited } +@Begin +@PP +hlimited. @Index { @@HLimited symbol } +vlimited. @Index { @@VLimited symbol } +The @@HLimited symbol limits the width available to recursive +and receptive symbols within its right parameter to whatever +is available without increasing the existing size of the +@@HLimited object. So this symbol acts like @@Wide with +respect to limiting the space occupied by recursive and receptive +symbols, except that instead of enforcing a fixed constant limit, +it enforces whatever size is already in place. +@PP +The @@VLimited symbol is exactly the same, except that it +applies vertically rather than horizontally. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_hsca b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_hsca new file mode 100755 index 0000000000000..e224685cd1110 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_hsca @@ -0,0 +1,34 @@ +@Section + @Title { "@HScale" and "@VScale" } + @Tag { hscale } +@Begin +@PP +hscale. @Index { @@HScale symbol } +vscale. @Index { @@VScale symbol } +scaling @Index { Scaling of object } +@@HScale causes its right parameter to expand to fill the space available, +by geometricallly scaling it: +@ID @Code { +"4i @Wide @HScale { 1 2 3 4 5 6 7 8 }" +} +has result +@ID { +4i @Wide @HScale { 1 2 3 4 5 6 7 8 } +} +and +@ID @Code { +"0.5i @Wide @HScale { 1 2 3 4 5 6 7 8 }" +} +has result +@ID { +0.5i @Wide @HScale { 1 2 3 4 5 6 7 8 } +} +@@HScale first applies @@HContract to its parameter, then horizontally +scales it to the actual size. The principal mark of the right parameter +has no effect on the result; the parameter is scaled to the actual size +and positioned to fill the space available. (Taking account of alignment +of the principal mark only causes trouble in practice.) +@PP +@@VScale is similar, but in a vertical direction. @@HScale and @@VScale +each have both a @@OneCol and a @@OneRow effect. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_hshi b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_hshi new file mode 100755 index 0000000000000..6d2822235301a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_hshi @@ -0,0 +1,43 @@ +@Section + @Title { "@HShift" and "@VShift" } + @Tag { hshift } +@Begin +@PP +The @@HShift symbol +hshift.sym @Index { @@HShift symbol } +returns its right parameter with principal mark shifted as prescribed +by its left parameter: +@IL + +@LI { +2i @Wide { |1rt @Code + & @I length @@HShift @I object } +|2m Principal mark shifted to the right by {@I length}; +} + +@LI { +2i @Wide { |1rt @Code - & @I length @@HShift @I object } +|2m Principal mark shifted to the left by {@I length}; +} + +@LI { +2i @Wide { |1rt @I length @@HShift @I object } +|2m Principal mark shifted so as to lie @I length to the right +of the left edge of {@I object}; +} + +@EL +In each chase @@HShift includes a @@OneCol effect. +@PP +The units of measurement of @I length may be {@Code "c"}, {@Code "i"}, +{@Code "p"}, {@Code "m"}, {@Code "f"}, {@Code "s"}, {@Code "v"}, or +{@Code "w"}. In the latter case, @Code "1w" is taken to be the width +of the right parameter, so that, for example, @Code "0.5w @HShift" will +centre the principal column mark within the right parameter. +@PP +vshift.sym @Index { @@VShift symbol } +The @@VShift symbol is similar except that it applies vertically to the +principal row mark: @Code + & @I length shifts it down, @Code - & @I +length shifts it up, and @I length shifts it to @I length below the top +edge of the object. With @@VShift, @Code "1w" is taken to be the height +of the right parameter. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_incg b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_incg new file mode 100755 index 0000000000000..a370c5c1bab89 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_incg @@ -0,0 +1,36 @@ +@Section + @Title { "@IncludeGraphic" and "@SysIncludeGraphic" } + @Tag { includegraphic } +@Begin +@PP +includegraphic.sym @Index { @@IncludeGraphic symbol } +sysincludegraphic.sym @Index { @@SysIncludeGraphic symbol } +postscript.includegraphic @SubIndex { used by @@IncludeGraphic } +These symbols instruct Lout to incorporate a separately created +illustration: +@ID @Code "@IncludeGraphic \"myportrait.eps\"" +The parameter is implementation-dependent; in Basser Lout it is an +object whose value is a simple word denoting the name of a file. This +file should ideally be a PostScript EPS Version 3.0 file +@Cite { $adobe1990ps }, since then Lout will keep careful track of what +resources are required for printing that file. However, any PostScript +file containing the @Code "%%BoundingBox:" comment and not requiring +unusual resources is likely to work. +@PP +The result of @@IncludeGraphic is an ordinary Lout object with marks +through its centre. It may be rotated, scaled, and generally +treated like any other object. Basser Lout determines its size by +consulting the bounding box information in the file. If this cannot be +found, a warning message is printed and the result object has zero size. +@PP +@@IncludeGraphic searches the same directories that @@Include does +(Section {@NumberOf include}). @@SysIncludeGraphic is the same as +@@IncludeGraphic, except that it searches only the directories searched +by @@SysInclude. +@PP +If the file name ends in any of {@Code ".gz"}, {@Code "-gz"}, {@Code ".z"}, +{@Code "-z"}, {@Code "_z"}, or {@Code ".Z"}, the file will first be +uncompressed using the @Code "gunzip" command into a temporary file +called @Code "lout.eps" in the current directory. This file is removed +immediately after it is copied into the output file. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_incl b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_incl new file mode 100755 index 0000000000000..c148453bf3c66 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_incl @@ -0,0 +1,20 @@ +@Section + @Tag { include } + @Title { "@Include and @SysInclude" } +@Begin +@PP +include.sym @Index { @@Include symbol } +sysinclude.sym @Index { @@SysInclude symbol } +These symbols instruct Lout to temporarily switch to reading another +file, whose name appears in braces following the symbol. For example, +@ID @Code { +"@Include { \"/usr/lout/langdefs\" }" +} +will cause the contents of file "/usr/lout/langdefs" to be read at the +point it occurs. After that file is read, the current file is resumed. The +included file may contain arbitrary Lout text, including other +@@Include commands. The file is searched for first in the current +directory, then in a sequence of standard places which are not necessarily the +same places that databases are searched for. @@SysInclude searches the +standard places only. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_inse b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_inse new file mode 100755 index 0000000000000..e9813596d6a93 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_inse @@ -0,0 +1,19 @@ +@Section + @Title { "@Insert" } + @Tag { insert } +@Begin +@PP +insert.sym @Index { @@Insert symbol } +The @@Insert symbol inserts its left parameter at the beginning of the +first paragraph of its right parameter: +@ID @Code "X @Insert { A B // C // D }" +is equivalent to +@ID @Code "{ XA B // C // D }" +Notice that a zero-width space separates @Code { X } from the first +paragraph, so if some wider space is required it must be placed at the +end of @Code { X }. The @Code "@Insert" operation is applied to the +value of the right parameter after evaluation. +@PP +The only known use for this symbol is to attach something like +@B { Figure 6 } to the front of a multi-paragraph caption. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_kshr b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_kshr new file mode 100755 index 0000000000000..517cb891b90f8 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_kshr @@ -0,0 +1,23 @@ +@Section + @Title { "@KernShrink" } + @Tag { kernshrink } +@Begin +@PP +kernshrink. @Index { @@KernShrink symbol } +This symbol returns its right parameter unchanged in appearance but +occupying a slightly smaller bounding box. The reduction is by the +amount of kerning that would be applied if the right parameter was +immediately @I followed by the left parameter. For example, +@ID @Code ". @KernShrink P" +has result +@ID @Box margin { 0c } { . @KernShrink P } +where a box of size 0 has been drawn around the result to make its +extent clear. Compare this with `P' alone: +@ID @Box margin { 0c } { P } +in which the bounding box exactly encloses the object, or at least +is supposed to. The bounding box is smaller on the right by the +amount of kerning that would be applied between `P' and `.'. +@PP +The only known use for this symbol is to produce tucked-in subscripts +in the Eq equation formatting package. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_lang b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_lang new file mode 100755 index 0000000000000..50d3539663206 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_lang @@ -0,0 +1,61 @@ +@Section + @Title { "@Language" and "@CurrLang" } + @Tag { language } +@Begin +@PP +The @@Language symbol informs Lout that its right parameter is written +language.sym @Index { @@Language symbol } +in the language of its left parameter: +@ID @Code "Danish @Language { ... }" +Basser Lout Version 3 uses this information in two ways: to hyphenate +words appropriately to that language, and to change the value of the +@@CurrLang symbol (see below). Other uses, such as right-to-left +formatting of certain languages, may be added in the future. +@PP +The left parameter must either be empty (which means to leave the current +language unchanged) or else it must have been given in a @Code "langdef" +langdef.sym @Index { @Code langdef language definition } +language definition at the beginning of the input: +@ID { +@Code "langdef Danish Dansk {" @I implementation-dependent @Code "}" +} +After @Code "langdef" comes a sequence of one or more simple words, +which are alternative names for the language being defined. Following +them comes an implementation-dependent part between braces. In Basser +Lout Version 3 this part contains the name of the Lout hyphenation +information file (minus its .lh suffix) to be used when hyphenating +words in this language, followed by a sequence of words which define +the ends of sentences. For example: +@ID @Code "langdef English { english . : ? ! .) ?) !) }" +defines a language called English with hyphenation patterns file +{@Code english.lh} and seven ways to end a sentence. The use of +these sentence endings is described in Section {@NumberOf space}. If +there is no hyphenation file available, this is indicated by writing +@Code "-" for the file name; if there are no sentence ends, they are +simply omitted. +@PP +The @@CurrLang symbol, which has no parameters, evaluates to the first +currlang.sym @Index { @@CurrLang symbol } +name given in the @Code "langdef" of the language in force at the point +where it is invoked: +@ID @Code "Dansk @Language { This is @CurrLang. }" +has result +@ID { Dansk @Language { This is @CurrLang. } } +It is typically used with the @@Case symbol like this: +@ID @Code { +"@CurrLang @Case {" +" Danish @Yield tirsdag" +" English @Yield Tuesday" +" French @Yield Mardi" +"}" +} +This example evaluates to the name of the third day of the week in the +current language. +@PP +The current language is part of the style of an object, like its +font. As explained in Section {@NumberOf size}, style is inherited +through the point of appearance, which for language can be +unexpected. For example, an index entry which originates in a French +chapter but appears in an English index will have English for its +language, so must be explicitly set to French using @@Language. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_link b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_link new file mode 100755 index 0000000000000..add628ff2b88f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_link @@ -0,0 +1,43 @@ +@Section + @Title { "@LinkSource and @LinkDest" } + @Tag { link_source } +@Begin +@PP +These two symbols +link.source.sym @Index { @@LinkSource symbol } +link.dest.sym @Index { @@LinkDest symbol } +work together to create @I links in a document, that is, points where +a user viewing the document on screen can click and be transported to +another point in the document. We call the point where the user +clicks the @I source of the link, and the point where the user +arrives the @I destination of the link. +@PP +To create a source point, place +@ID { @I tag @Code "@LinkSource" @I object } +at some point in the document, where the value of @I tag is a legal +cross reference tag, and @I object is an arbitrary Lout object. The +result of this is just {@I object}, but if the user of a screen +viewer clicks on any point within the rectangular bounding box +of that object, a link will be entered. +@PP +To create a destination point, place +@ID { @I tag @Code "@LinkDest" @I object } +at some point in the document. Again, @I tag must evaluate to a +legal cross reference tag, and @I object may be any Lout +object. All @Code "@LinkSource" symbols whose +tag is equal to this one are linked to this destination point. +@PP +For every source point there must be exactly one destination point with +the same tag, otherwise it will not be clear where the link is +supposed to take the user. Lout will print a warning if this +condition is violated anywhere; it will refuse to insert a +destination point with the same name as a previous one, but it is not +able to refrain from inserting a source point with no corresponding +destination point, and such points must cause errors of some kind when +viewed (exactly what error will depend on the viewer). +@PP +At present, @I object above is treated as though it were enclosed +in @@OneCol, which means that a long link source or destination point +will not break over two lines as part of an enclosing paragraph. This +deficiency might be corrected in the future. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_mome b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_mome new file mode 100755 index 0000000000000..d4d377c44bd72 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_mome @@ -0,0 +1,72 @@ +@Section + @Title { "@Moment" } + @Tag { moment } +@Begin +@PP +The predefined symbol @@Moment +moment.sym @Index { @@Moment symbol } +has the following definition: +@ID @OneRow @Code { +"def @Moment" +" named @Tag {}" +" named @Second {}" +" named @Minute {}" +" named @Hour {}" +" named @Day {}" +" named @Month {}" +" named @Year {}" +" named @Century {}" +" named @WeekDay {}" +" named @YearDay {}" +" named @DaylightSaving {}" +"{}" +} +It may be used like any other symbol. Lout provides an invocation of +@@Moment with tag {@Code now}, whose other parameters are numbers +encoding the current date and time: +@ID @OneRow @Tab + @Fmta { @Col @Code A ! @Col B } +{ +@Rowa + A { "@Second" } + B { the current second, usually between 00 and 59 } +@Rowa + A { "@Minute" } + B { the current minute, between 00 and 59 } +@Rowa + A { "@Hour" } + B { the current hour, between 00 and 23 } +@Rowa + A { "@Day" } + B { the current day of the month, between 1 and 31 } +@Rowa + A { "@Month" } + B { the current month, between 1 (January) and 12 (December) } +@Rowa + A { "@Year" } + B { the current year of the century, between 00 and 99 } +@Rowa + A { "@Century" } + B { the current century, e.g. 19 or 20 } +@Rowa + A { "@WeekDay" } + B { the current day of the week, between 1 (Sunday) and 7 (Saturday) } +@Rowa + A { "@YearDay" } + B { the current day of the year, between 0 and 365 } +@Rowa + A { "@DaylightSaving" } + B { an implementation-dependent number that may encode the +daylight saving currently in effect } +} +date @Index { Date, printing of current } +Unix manual entries state that @Code "@Second" can be as high as 61, to +allow for leap seconds. Judicious use of databases can convert these +numbers into useful dates. For example, +@ID @Code { +"@Moment&&now @Open { @Day {@Months&&@Month}, @Century{@Year} }" +} +produces something like +@Moment&&now @Open { @Day {@Months&&@Month}, @Century{@Year} } +given a suitable database of months. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_next b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_next new file mode 100755 index 0000000000000..c65d7db6fb84c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_next @@ -0,0 +1,17 @@ +@Section + @Title { "@Next" } + @Tag { next } +@Begin +@PP +next.sym @Index { @@Next symbol } +The @@Next symbol returns its parameter +plus one. It is rather clever at working this out: it hunts through +the parameter from right to left, looking for a number to increment: +@ID @Code { +"@Next (3.99)" +} +has result {@Next (3.99)}. If @@Next cannot find a digit inside +its parameter, it is an error. Roman numerals are handled by storing +them in a database, as explained in Section {@NumberOf paras}; +@@Next will not increment a Roman numeral. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_notr b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_notr new file mode 100755 index 0000000000000..169faeb119328 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_notr @@ -0,0 +1,61 @@ +@Section + @Title { "@NotRevealed" } + @Tag { notrevealed } +@Begin +@PP +The @@NotRevealed symbol +notrevealed.sym @Index { @@NotRevealed symbol } +exerts fine control over the process of expanding receptive symbols. It +may appear only within the body of a definition, immediately following +the name of a receptive symbol. For example: +@ID @OneRow @Code { +"def A { @Galley }" +"" +"def B { @Galley }" +"" +"def ABList" +"{" +" A" +" // B @NotRevealed" +" // ABList" +"}" +} +The meaning is that the symbol immediately preceding @@NotRevealed, @Code B +in this example, is not revealed to galleys which encounter @Code "ABList" +while searching for targets; to such galleys it appears that @Code "ABList" +contains @Code A only, not {@Code B}, hence only galleys targeted to +@Code A will expand {@Code "ABList"}. However, after @Code "ABList" +is expanded by such a galley, @Code B will be available as a target in +the usual way. +@PP +Apart from this meaning, @@NotRevealed has no effect at all, and the +body of the definition may be understood by deleting @@NotRevealed and +any preceding space. Thus, the symbol preceding @@NotRevealed may have +named and right parameters in the usual way; these would follow after +the @@NotRevealed symbol. +@PP +This symbol was introduced to overcome a problem with floating figures +treated as displays. It turned out to be essential to specify the +layout of a column (in part) as +@ID @OneRow @Code { +"@BodyTextPlace" +"// @FigurePlace" +"// @BodyTextPlace" +"// @FigurePlace" +"// @BodyTextPlace" +"..." +} +so that figures could alternate with body text down the column. However, +some means was needed to ensure that in the absence of any figures there +could only be one @Code "@BodyTextPlace" in the column, since otherwise +various problems arose, for example the @Code "@NP" symbol merely causing +a skip from one @Code "@BodyTextPlace" to the next in the same column, +rather than to the first in the next column. Also, without this feature +the optimal page breaker's attempts to end a column early would be +frustrated by Lout then discovering that plenty of space existed at a +following @Code "@BodyTextPlace" in the same column. The solution is +based on @Code "ABList" above; each occurrence of @Code "@BodyTextPlace" +after a @Code "@FigurePlace" is not revealed in the enclosing definition, +and so cannot be found by body text galleys unless a figure has +previously attached to the preceding {@Code "@FigurePlace"}. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_null b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_null new file mode 100755 index 0000000000000..7b97081a2c9a3 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_null @@ -0,0 +1,26 @@ +@Section + @Title { "@Null" } + @Tag { null } +@Begin +@PP +This symbol +null.sym @Index { @@Null symbol } +provides a convenient way to remove unwanted +concatenation symbols. If there is a concatenation symbol +preceding @@Null, the @@Null and the +concatenation symbol are both deleted. Otherwise, if there is a +following concatenation symbol, it and the @@Null are both deleted. +Otherwise, @@Null becomes an empty object. +@PP +These rules apply to a fully parenthesized version of the expression. For +example, in +@ID @Code { +"... //1vx @Null |0.5i ..." +} +it is the horizontal concatenation symbol following @@Null that +disappears, because in the fully parenthesized version +@ID @Code { +"... //1vx { @Null |0.5i ... }" +} +there is no concatenation symbol preceding the @@Null. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_oneo b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_oneo new file mode 100755 index 0000000000000..bc662cb3fde73 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_oneo @@ -0,0 +1,62 @@ +@Section + @Title { "@OneOf" } + @Tag { oneof } +@Begin +@PP +oneof.sym @Index { @@OneOf symbol } +The @@OneOf symbol returns one of the sequence of objects which is +its right parameter as its result: +@ID @Code @Verbatim { +@OneOf { + @ResultA + @ResultB + @ResultC +} +} +The choice is made to ensure that whatever galley target is required +at the moment is found. For example, if we are evaluating @@OneOf +as part of an attempt to attach a galley whose target is +{@Code "@SomeTarget"}, then the result above will be +{@Code "@ResultA"} if it contains {@Code "@SomeTarget"}, or else +{@Code "@ResultB"} if it contains {@Code "@SomeTarget"}, or else +{@Code "@ResultC"} (whether or not it contains the target, or +if there is no target). +@PP +Use of @@OneOf in conjunction with recursive symbols can lead +to problems. Consider this example: +@ID @Code { +"def @Recursive {" +"" +" def @ChoiceA { @APlace // @Recursive }" +"" +" def @ChoiceB { @BPlace // @Recursive }" +"" +" @OneOf {" +" @ChoiceA" +" @ChoiceB" +" }" +"}" +} +Lout believes that expanding @Code "@Recursive" is the right thing +to do when searching for either of the galley targets {@Code "@APlace"} +and {@Code "@BPlace"}. When searching for @Code "@BPlace" this leads +Lout to expand {@Code "@Recursive"}, then {@Code "@ChoiceA"}, then +the {@Code "@Recursive"} symbol within {@Code "@ChoiceA"}, and so on +infinitely. This problem can be avoided by attaching a +@Code "@NotRevealed" symbol to each of the inner @Code "@Recursive" +symbols: these are then not available for expansion until a +decision has been made to expand the symbol they lie within. In +this particular example it would be simpler to write +@ID @Code { +"def @Recursive {" +"" +" @OneOf {" +" @APlace" +" @BPlace" +" }" +" // @Recursive" +"}" +} +but this factoring is not possible when the recursive calls have +parameters that are required to differ in the two cases. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_oner b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_oner new file mode 100755 index 0000000000000..7e0dbceeb5a9d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_oner @@ -0,0 +1,36 @@ +@Section + @Title { "@OneCol" and "@OneRow" } + @Tag { onerow } +@Begin +@PP +The @@OneRow symbol +onerow.sym @Index { @@OneRow symbol } +principal.mark.effect @SubIndex { effect on @@OneCol and @@OneRow } +returns its right parameter modified so that only the principal row mark +protrudes. This is normally the first row mark, but another one may be +chosen by preceding it with @Code "^/" or {@Code "^//"}. For example, +@ID @Code { +"@OneRow { |0.5rt Slope @Font x + 2 ^//1p @HLine //1p |0.5rt 5 }" +} +has result +@LP +@ID { +@ShowMarks +@OneRow { |0.5rt Slope @Font x + 2 ^//1p @HLine //1p |0.5rt 5 } +} +@LP +with one row mark protruding from the bar as shown. Compare this with +@ID @Code { +"@OneRow { |0.5rt Slope @Font x + 2 //1p @HLine //1p |0.5rt 5 }" +} +where the mark protrudes from the numerator: +@LP +@ID { +@ShowMarks +@OneRow { |0.5rt Slope @Font x + 2 //1p @HLine //1p |0.5rt 5 } +} +onecol.sym @Index { @@OneCol symbol } +@@OneCol has the same effect on columns as @@OneRow does on rows, with +the symbols @Code "^|" and @Code "^||" (or {@Code "^&"}) determining +which mark is chosen. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_open b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_open new file mode 100755 index 0000000000000..d332570b571ca --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_open @@ -0,0 +1,41 @@ +@Section + @Title { "@Open and @Use" } + @Tag { open } +@Begin +@PP +The @@Open symbol +open.sym @Index { @@Open symbol } +takes a cross reference or symbol +invocation for its left parameter, and an arbitrary object, which must +be enclosed in braces, for its right parameter. The right parameter +may refer to the exported parameters and nested definitions of the invocation +denoted by the left parameter, and its value is the @@Open +symbol's result. The target of the cross reference may lie in an +external database (Section {@NumberOf database}). Any symbol available +outside the @@Open which happens to have the same name as one of the +symbols made available by the @@Open will be unavailable within the @@Open. +@PP +use.sym @Index { @@Use symbol } +The @@Use symbol is an @@Open symbol in a +different form. It may only appear among or after the definitions +in Lout's input, and it is equivalent to enclosing the remainder of the +input in an @@Open symbol. For example, +@ID @OneRow { + @I definitions +//1vx @Code "@Use" @Code "{" @I x @Code "}" +//1vx @Code "@Use" @Code "{" @I y @Code "}" +//1vx @I { rest of input } +} +is equivalent to +@ID @OneRow { + @I definitions +//1vx @I x @Code "@Open" +//1vx @Code "{" &4mt @I y @Code "@Open" +//1vx &4mt @Code "{" @I { rest of input } +//1vx &4mt @Code "}" +//1vx @Code "}" +} +The @@Use symbol allows a set of standard packages to be opened without +the inconvenience of enclosing the entire document in @@Open symbols. Such +enclosure could cause Basser Lout to run out of memory. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_outl b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_outl new file mode 100755 index 0000000000000..f62ec9fe4c22a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_outl @@ -0,0 +1,21 @@ +@Section + @Title { "@Outline" } + @Tag { outline } +@Begin +@PP +The @@Outline symbol +outline.sym @Index { @@Outline symbol } +causes all the words in the right parameter (which may be an +arbitrary object) to be printed in outline, rather than filled as +is usual. For example, +@ID @Code @Verbatim { @Outline @Box 24p @Font HELP } +produces +@ID @Outline @Box 24p @Font HELP +Outlining is part of the style information, in the same way as +colour, font, underlining, and so forth. Outlining can be applied +to any font likely to be used in practice. At the time of writing, +there is no way to control the thickness of the outline, and +@@Outline has no effect in PDF output. The size of outlined +words is taken by Lout to be the same as if they had not been +outlined, even though they are in reality slightly larger. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_page b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_page new file mode 100755 index 0000000000000..cccff13074bf5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_page @@ -0,0 +1,20 @@ +@Section + @Tag { pagelabel } + @Title { "@PageLabel" } +@Begin +@PP +pagelabel.sym @Index { @@PageLabel symbol } +The @@PageLabel symbol associates a page label in the PostScript +output file with the page within which (or just before which) the symbol +occurs, so that PostScript viewers are able to index the page +by this label. (The label is printed in the @Code "%%Page" comment +preceding the page in the PostScript output file.) For example, +@ID @Code "@PageLabel iv" +associates the label @Code "iv" with the page. The label may be +an arbitrary object; if its value is not a simple word, it will +be replaced by {@Code "?"}. +@PP +@@PageLabel is unrelated to Lout's cross referencing mechanism; +it is for communicating a label to the PostScript output file, not to +other parts of Lout. The result of @@PageLabel is a null object. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_plai b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_plai new file mode 100755 index 0000000000000..1f0319e7c02ee --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_plai @@ -0,0 +1,15 @@ +@Section + @Title { "@PlainGraphic" } + @Tag { plaingraphic } +@Begin +@PP +plaingraphic.sym @Index { @@PlainGraphic symbol } +The @@PlainGraphic symbol is avery rudimentary analogue for plain text +output of the @@Graphic symbol for PostScript output. Its result is +its right parameter printed on a background created by repeated +printings of its left parameter, which must be a simple word. For +example, +@ID @Verbatim { "." @PlainGraphic 5s @Wide } +would produce five dots. @@PlainGraphic is used in the @Code tbl +table-drawing package to produce plain-text rules. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_prep b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_prep new file mode 100755 index 0000000000000..d53845baa9993 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_prep @@ -0,0 +1,24 @@ +@Section + @Tag { prependgraphic } + @Title { "@PrependGraphic and @SysPrependGraphic" } +@Begin +@PP +prependgraphic.sym @Index { @@PrependGraphic symbol } +sysprependgraphic.sym @Index { @@SysPrependGraphic symbol } +postscript.prependgraphic @SubIndex { used by @@PrependGraphic } +These symbols, which may appear anywhere that a definition or @@Use +symbol may appear, tell Lout to include the contents of a file in the +preamble of its output. For Basser Lout this means that the file must +contain PostScript (and ideally it would begin and end with the +@Code "%%BeginResource" and @Code "%%EndResource" comments of +DSC 3.0). For example, +@ID @Code { +"@SysPrependGraphic { diagf.lpg }" +} +appears at the start of the Diag package; the file @Code diagf.lpg +contains a number of PostScript definitions used by Diag for drawing +diagrams. It saves a lot of space to include them just once at the +start like this, rather than with every diagram. @@PrependGraphic and +@@SysPrependGraphic search for the file in the same places as @@Include and +@@SysInclude respectively. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_rota b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_rota new file mode 100755 index 0000000000000..00e28ff66ee11 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_rota @@ -0,0 +1,57 @@ +@Section + @Title { "@Rotate" } + @Tag { rotate } +@Begin +@PP +rotate.sym @Index { @@Rotate symbol } +rotation @Index { Rotation of object } +The @@Rotate symbol will rotate its +right parameter counterclockwise an amount given in degrees (positive or +negative) by its left parameter. For example, +@ID @Code { +"30d @Rotate { hello, world }" +} +has result +@ID { +30d @Rotate { hello, world } +} +Before rotating the object, @@OneCol and @@OneRow are applied to it. The +result is a rectangle whose marks pass through the point where the +original marks crossed: +@ID { + @ShowMarks + { 0.6c @Wide 0.3c @High ^| 2.2c @Wide ^/ 0.2c @High } + +&4m => &4m + + @ShowMarks + { + 30d @Rotate + { @ShowMarks + { 0.6c @Wide 0.3c @High ^| 2.2c @Wide ^/ 0.2c @High } + } + } +} +As this example shows, rotation by an angle other than a multiple of +ninety degrees introduces quite a lot of white space. So, for example, the +result of +@ID { +@Code { "-30d" "@Rotate" 30d "@Rotate" } @I object +} +is a much larger object than {@I object}, despite the fact that one +rotation cancels the other. +@PP +Rotation of objects containing receptive and recursive symbols is +permitted, but for angles other than multiples of ninety degrees it is +best to make the size of the rotated object clear with @@Wide and +@@High symbols: +@ID @Code { +"30d @Rotate 5i @Wide 4i @High" +"{ //1i @TextPlace" +" //1i" +"}" +} +This is because for angles other than multiples of ninety degrees the +space available for @Code "@TextPlace" to occupy is indeterminate, and +the result is poor. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_rump b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_rump new file mode 100755 index 0000000000000..02702024b902b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_rump @@ -0,0 +1,41 @@ +@Section + @Title { {"@Common"}, {"@Rump"}, and "@Meld" } + @Tag { rump } +@Begin +@PP +common.sym @Index { @@Common symbol } +rump.sym @Index { @@Rump symbol } +meld.sym @Index { @@Meld symbol } +The @@Common and @@Rump symbols compare two paragraph objects: +@ID @Code "{ Aardvark, 29 } @Common { Aardvark, 359 }" +If either parameter is not a paragraph object, it is converted into +a single-object paragraph first. The result of @@Common is the +common prefix of the two paragraphs; that is, those initial objects +which are equal in the two paragraphs. In the example above, the +result is {@Code "Aardvark,"}. The result of @@Rump is that part of +the second object which is not included in @@Common; the result of +@ID @Code "{ Aardvark, 29 } @Rump { Aardvark, 359 }" +is {@Code "359"}. +@PP +If the two objects have nothing in common, the result of @@Common will +be an empty object and the result of @@Rump will be the second +object. If the two objects are identical, the result of @@Common will +be the first object, and the result of @@Rump will be an empty object. +@PP +The only known use for @@Rump and @@Common is to implement merged index +entries (Section {@NumberOf sorted}). +@PP +The @@Meld symbol returns the minimum meld of two paragraphs, that +is the shortest paragraph that contains the two original paragraphs +as subsequences. For example, +@ID @Code "{ Aardvark , 1 , 2 } @Meld { Aardvark , 2 , 3 }" +produces +@ID { Aardvark , 1 , 2 } @Meld { Aardvark , 2 , 3 } +The result is related to the well-known +longest common substring, in that the meld contains everything not in +the lcs plus one copy of everything in the lcs. This function is +well-suited to melding complex index entries. Note that there must be +a non-zero amount of space before each comma, otherwise each will become +part of the preceding word, and, since @@Meld compares the two paragraphs +word by word, the result will be different and less satisfactory. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_scal b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_scal new file mode 100755 index 0000000000000..1e1b1a3a30cec --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_scal @@ -0,0 +1,26 @@ +@Section + @Title { "@Scale" } + @Tag { scale } +@Begin +@PP +scale. @Index { @@Scale symbol } +This symbol geometrically scales its right parameter by the scale factor +given in its left parameter: +@ID @Code "1.0 @Scale Hello 2.0 @Scale Hello 0.5 @Scale Hello" +has result +@ID { 1.0 @Scale Hello 2.0 @Scale Hello 0.5 @Scale Hello } +The left parameter can be two scale factors, in which case the first +applies horizontally, and the second vertically: +@ID @Code "{0.5 2.0} @Scale Hello" +has result +@ID { {0.5 2.0} @Scale Hello } +The left parameter may be empty, in which case Lout will scale the +object by a common factor horizontally and vertically so as to occupy +all available horizontal space: +@ID @Code "{} @Scale { Hello world }" +has result +@LD {} @Scale { Hello world } +The right parameter may be any object. @@Scale has both a @@OneCol and +a @@OneRow effect, and the marks of the result coincide with the principal +marks of the right parameter. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_spac b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_spac new file mode 100755 index 0000000000000..f44d840d8e1de --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_spac @@ -0,0 +1,55 @@ +@Section + @Title { "@Space" } + @Tag { space } +@Begin +@PP +The @@Space symbol +space.sym @Index { @@Space symbol } +changes the value of the @Code s unit of measurement (Section +s.unit.space @SubIndex { and @@Space symbol } +{@NumberOf concatenation}) within its right parameter to the value +given by the left parameter: +@ID { +@Code "1c @Space { a b c d }" +} +has result +@ID { +1c @Space { a b c d } +} +As for the @@Break symbol, the left parameter of @@Space may be given +relative to the enclosing @Code s unit, and it may include a gap +mode. Note that the @@Font symbol also sets the @Code s unit. +@PP +The left parameter of the @@Space symbol may also hold any one of the +five special values {@Code lout}, {@Code compress}, {@Code separate}, +{@Code troff}, and {@Code tex}, which control the way in which Lout +treats white space separating two objects. The names {@Code troff} +and {@Code tex} indicate that the behaviour of these options is +inspired by these other document formatting systems. +@PP +The default setting, {@Code lout}, produces as many spaces in the output as +there are in the input. The {@Code compress} setting causes all sequences +of two or more white space characters to be treated the same as one white +space character. The {@Code separate} setting is like {@Code compress} +but also causes zero white spaces between two objects (but not within +one word) to be treated the same as one white space character. +@PP +The {@Code troff} setting is the same as {@Code lout} except that +wherever a sentence ends at the end of a line, one extra space is +added. Formally, when two objects are separated by white space +characters which include at least one newline character, and the +first object is a word ending in any one of a certain set of +sequences of characters, the extra space is added. The set of +sequences of characters depends on the current language and is defined +in the @Code langdef for that language (see Section {@NumberOf language}). +@PP +The {@Code tex} option is the most complicated. First, the +{@Code compress} option is applied. Then, at every sentence ending, +whether or not at the end of a line, one extra space is added. A +sentence ending is defined as for {@Code troff} except that, in addition +to the preceding word having to end in one of a certain set of sequences of +characters, the character preceding that sequence must exist and must +be a lower-case letter. A character is a lower-case letter if, in the +Lout Character Mapping file (Section {@NumberOf font}) associated with +the current font, an upper-case equivalent of the character is defined. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_span b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_span new file mode 100755 index 0000000000000..e5276523c23f3 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_span @@ -0,0 +1,58 @@ +@Section + @Title { "@StartHSpan","@StartVSpan", "@StartHVSpan", "@HSpan", and "@VSpan" } + @Tag { hspan } +@Begin +@PP +starthspan. @Index { @@StartHSpan symbol } +startvspan. @Index { @@StartVSpan symbol } +starthvspan. @Index { @@StartHVSpan symbol } +hspan. @Index { @@HSpan symbol } +vspan. @Index { @@VSpan symbol } +These symbols work together to produce spanning columns and rows in +a more flexible way than is possible in practice with @Code "//" and +{@Code "||"}. An object +@ID @Code "@StartHSpan object" +causes @Code object to be printed, but occupying all the horizontal space +to the right on the row mark on which it lies up to and including the rightmost +@@HSpan symbol on that mark not preceded by @@StartHVSpan, @@StartHSpan, +@@StartVSpan, or @@VSpan. The column mark of this spanning object is not +constrained to align with any of the column marks of the columns it spans. +@PP +If there is no @@HSpan symbol anywhere to the right of @@StartHSpan, then +the object spans only its own column. This means that it occupies that +column as usual but its mark is not constrained to align with those of the +other objects in the column. +@PP +Similarly, the @@StartVSpan symbol causes its object to occupy all +the vertical space below it on the column mark on which it lies, down to and +including the bottommost @@VSpan symbol on that mark not preceded by a +@@StartHVSpan, @@StartHSpan, @@StartVSpan, or @@HSpan; and if there +is no @@VSpan symbol anywhere below it on that mark, then the object +spans only its own row, occupying its row but with its mark not constrained +to align with the row mark. +@PP +The @@StartHVSpan symbol combines the effects of @@StartHSpan and +@@StartVSpan, allowing an object to span both columns and rows +simultaneously. For example, in +@ID @Code { +"@StartHVSpan x | | @HSpan" +"/" +"@VSpan | |" +} +the object @Code x will occupy a rectangular area spanning three columns, +two rows, and the gaps between them. +@PP +The objects lying in the region spanned should all be empty, or the +@@HSpan and @@VSpan symbols can be used to document the spanning that +is occurring. At present there may be no galley targets or recursive symbols +within the right parameter of @@StartHSpan, @@StartVSpan, or +@@StartHVSpan. However, the right parameter may otherwise be an +arbitrary object, including paragraphs of text that require breaking. +@PP +If the right parameter of @@StartHSpan, @@StartVSpan, or @@StartHVSpan +occupies more horizontal or vertical space than all of the spanned columns +or rows combined require, the extra space goes into the last spanned column +or row. Overlapping spanning rows and columns are permitted. Gaps spanned +by span objects are unbreakable (their @Code "u" indicator is set +automatically and cannot be revoked). +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_tagg b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_tagg new file mode 100755 index 0000000000000..df6cdc3d636f9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_tagg @@ -0,0 +1,15 @@ +@Section + @Title { "@Tagged" } + @Tag { tagged } +@Begin +@PP +The @@Tagged +tagged.sym @Index { @@Tagged symbol } +symbol takes a cross reference for its left parameter and an object, whose +value must be a juxtaposition of simple words, or several words, or an empty +object, for its right parameter. It has the effect of attaching its +right parameter as an additional tag to the invocation denoted by its +left parameter, unless the right parameter is empty, in which case @@Tagged +does nothing. The result of @@Tagged is always @@Null, which makes it +effectively invisible. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_unde b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_unde new file mode 100755 index 0000000000000..1261449984ff5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_unde @@ -0,0 +1,30 @@ +@Section + @Tag { underline } + @Title { "@Underline" } +@Begin +@PP +underline.sym @Index { @@Underline symbol } +The @@Underline symbol underlines its right parameter, but only if that +parameter is a word or a paragraph: +@ID @Code "We @Underline { really do } mean this." +produces +@ID { We @Underline { really do } mean this. } +It is not possible to underline an arbitrary object using this symbol; +the @@Underline symbol will be ignored if this is attempted. +@PP +It is very easy to @I define a symbol which will underline an arbitrary +object, using the @@Graphic symbol. This raises the question of why +@@Underline is needed at all. The answer is that @@Underline has two +properties that distinguish it from symbols based on @@Graphic. +@PP +First, when @@Underline both contains a paragraph and is used within a +paragraph, as in the example above, the inner and outer paragraphs are +merged into one, permitting the underlined text to break over several +lines. This is how the @@Font symbol works too, but symbols based on +@@Graphic do not permit this merging. +@PP +Second, Adobe font files specify the correct position and thickness of +underlining for each font, and the @@Underline symbol follows these +specifications. The font used is the font of the first object underlined, +if it is a simple word, or else the font of the enclosing paragraph. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_verb b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_verb new file mode 100755 index 0000000000000..725df85062b0a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_verb @@ -0,0 +1,30 @@ +@Section + @Tag { verbatim } + @Title { "@Verbatim and @RawVerbatim" } +@Begin +@PP +verbatim.sym @Index { @@Verbatim symbol } +rawverbatim.sym @Index { @@RawVerbatim symbol } +These symbols instruct Lout to read the following text (enclosed in braces) +verbatim, that is, turning off all special character meanings. For example, +@ID @Code @Verbatim { +@Verbatim { "hello" } +} +produces +@ID @Verbatim { "hello" } +@@Verbatim ignores all characters after the opening brace up to but not +including the first non-white-space character. @@RawVerbatim differs from +@@Verbatim only in that it ignores all characters after the opening brace +up to but not including the first non-white-space character, or up to and +including the first newline character, whichever comes first. This +variant is useful in cases such as +@ID @Code @Verbatim { +@RawVerbatim { + var x: Real +begin +} +} +where the first line of the verbatim text begins with white space which +would be ignored by @@Verbatim. Both symbols ignore all white spaces +at the end of the verbatim text, preceding the closing brace. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_wide b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_wide new file mode 100755 index 0000000000000..65269576e19eb --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_wide @@ -0,0 +1,22 @@ +@Section + @Title { "@Wide" and "@High" } + @Tag { wide } +@Begin +@PP +The @@Wide symbol +wide.sym @Index { @@Wide symbol } +returns its right parameter modified to have the width given by its left +parameter, which must be a length (Section {@NumberOf concatenation}) +whose unit of measurement is {@Code "c"}, {@Code "i"}, {@Code "p"}, +{@Code "m"}, {@Code "f"}, {@Code "s"}, or {@Code "v"}. If the right +parameter is not as wide as required, white space is added at the right; +if it is too wide, its paragraphs are broken (Section {@NumberOf break}) +so that it fits. A @@OneCol operation is included in the effect of @@Wide, +since it does not make sense for an object of fixed width to have two column +marks. +@PP +high.sym @Index { @@High symbol } +The @@High symbol similarly ensures that its result is of a given height, +by adding white space at the bottom. In this case it is an error for the +right parameter to be too large. A @@OneRow operation is included. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_yuni b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_yuni new file mode 100755 index 0000000000000..cd5dd17259ff5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pre_yuni @@ -0,0 +1,35 @@ +@Section + @Title { "@YUnit", "@ZUnit", "@CurrYUnit", and "@CurrZUnit" } + @Tag { yunit } +@Begin +@PP +The @@YUnit symbol +yunit.sym @Index { @@YUnit symbol } +zunit.sym @Index { @@ZUnit symbol } +changes the value of the @Code y unit of measurement (Section +{@NumberOf concatenation}) within its right parameter to the value +given by the left parameter: +@ID { +@Code "1c @YUnit { ... }" +} +ensures that the value of @Code "1y" within the right parameter will +be {@Code "1c"}. The @@ZUnit symbol is similar, setting the value +of the @Code z unit in its right parameter. Both units have default +value zero. The left parameter may not include a gap mode, nor may it +use the {@Code w}, {@Code b}, {@Code r}, or of course {@Code d} units, +but it may begin with @Code "+" or @Code "-" to indicate that value is +to be added to or subtracted from the current value. Any negative result +of using @Code "-" will be silently replaced by zero. +@PP +The @@CurrYUnit and @@CurrZUnit symbols report the value of the @Code y +and @Code z units, in points, truncated to the nearest integer. For example, +@ID @Code "1i @YUnit { The current value of the y unit is @CurrYUnit }" +produces +@ID @Code "1i @YUnit { The current value of the y unit is @CurrYUnit }" +since there are 72 points in one inch (at least, Lout thinks there are). +@PP +These units are not used internally by Lout. They are supplied as +part of the style information for the convenience of application +packages. For example, the Eq equation formatting package uses them +to fine-tune the appearance of equations. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/preface b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/preface new file mode 100755 index 0000000000000..79cea9802ef3e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/preface @@ -0,0 +1,31 @@ +@Preface + @Tag { preface } +@Begin +@PP +@IndexBlanks +This manual is addressed to those who wish to become +expert users of the Lout document formatting system. An expert user +is someone who understands the principles of document formatting +that Lout embodies, and is able to apply them, for example to design +a document format or a special-purpose package. In contrast, a non-expert +user is someone who simply uses Lout to format documents. +@PP +Chapter {@NumberOf principles} explains these principles, and it +should be read carefully and in sequence. Chapters {@NumberOf details} +and {@NumberOf symbols} are for reference; respectively, they +contain descriptions of the detailed operation of Lout's major +components, and a complete description of each predefined symbol. The +final chapter presents a collection of advanced examples. +@PP +This manual presents Version 3 of Basser Lout, publicly released in +September 1994 @Cite { $kingston1995lout.program } and developed +continuously since then. This manual was rendered into PostScript +postscript @Index { PostScript } +by Version 3.24 of the Basser Lout interpreter, using the symbols +described in the User's Guide @Cite { $kingston1995lout.user }. +@DP +@Heading { Acknowledgment. } Version 3 has benefited from hundreds of +comments received since the release of Version 1 in October 1991. Not +every suggestion could be followed, but many have been, and the +encouragement was greatly appreciated. +@End @Preface diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pri b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pri new file mode 100755 index 0000000000000..f24cb020d4fbd --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pri @@ -0,0 +1,15 @@ +@Chapter + @Title { Principles } + @Tag { principles } +@Begin +@LP +The Lout document formatting language is based on just four key ideas: +objects, definitions, cross references, and galleys. This chapter +concentrates on them, postponing the inevitable details. +@BeginSections +@Include { pri_obje } +@Include { pri_defi } +@Include { pri_cros } +@Include { pri_gall } +@EndSections +@End @Chapter diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pri_cros b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pri_cros new file mode 100755 index 0000000000000..677794e80c1be --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pri_cros @@ -0,0 +1,112 @@ +@Section + @Tag { cross } + @Title { Cross references } +@Begin +@PP +A cross reference +cross.ref @Index { Cross reference } +in common terminology is something like `see Table 6' +or `see page 57' -- a reference within a document to some other part of +it. Readers find them very useful, but they are a major +problem for authors. As the document is revised, Table 6 +becomes Table 7, the thing on page 57 moves to page 63, and all the +cross references must be changed. +@PP +The Scribe +scribe @Index { Scribe } +document formatter, developed by Brian K. Reid @Cite { $reid1980scribe }, +reid.brian @Index { Reid, Brian K. } +introduced a scheme for keeping track of cross +references. It allows you to give names to tables, figures, etc., and to +refer to them by name. The formatter inserts the appropriate numbers in +place of the names, so that as the document is revised, the +cross references are kept up to date automatically. Lout has adopted +and extended this scheme. +@PP +In Lout, automatic cross referencing works in the following way. First +define a symbol with a parameter with the special name @Code "@Tag": +@ID @OneRow @Code { +"def @Table" +" left @Tag" +" right @Value" +"{" +" ||1i @Value" +"}" +} +When this symbol is invoked, the value given to @Code "@Tag" should be a +simple word like {@Code "cities"}, or several simple words juxtaposed +like {@Code "cities compare"}; it serves to name the invocation: +@ID @OneRow @Code { +"{ cities compare } @Table" +"{" +" Washington |0.5i Canberra" +"}" +} +We may now refer to this invocation elsewhere in the document, using the +@I {cross reference} @Code "@Table&&{ cities compare }". Here @Code "&&" +is the {@I {cross reference symbol}}; its left parameter is a symbol and +its right parameter is the value of the @Code "@Tag" parameter of some +invocation of that symbol. Of course it's simplest if you use just a +one-word tag; then no braces are needed. +@PP +A cross reference is not an object; the reader should think of it as +an arrow in the final printed document, beginning at the cross reference +and ending at the top of the target +target.cr @Index { Target of cross reference } +#@ID 8p @Font { +# { @LittlePage // @LittlePage } +# ||0io ||0.7c +# { //2c +# { @Code "@Table&&cities" } +# //0.1c +# ||0.5c 90d @Rotate @Arrow 2.5c +# //0.05c +# @HContract @VContract +# @Fig { @Box margin { 0c } paint { grey } { 1.5c @Wide 1c @High } } +# } +#} +#@PP +invocation. Three special values may be given to the right parameter of +{@Code "&&"}: {@Code preceding}, {@Code following}, and +preceding. @Index { @Code preceding } +following. @Index { @Code following } +foll_or_prec. @Index { @Code following } +{@Code foll_or_prec}. The cross +reference @Code "@Table&&preceding" points to some table +appearing earlier in the final printed document than itself; that is, the +arrow is guaranteed to point backwards through the document. Usually it +points to the nearest preceding invocation. Similarly, +@Code "@Table&&following" points forwards, usually to the +nearest following invocation. @Code "@Table&&foll_or_prec" is the same as +@Code "@Table&&following" if it exists, otherwise it is the same as +{@Code "@Table&&preceding"}. +@PP +This section has been concerned with what a cross reference is -- an +arrow from one point in a document to another -- but not with how it is +used. One simple way to use a cross reference is to put it where an +object is expected, like this: +@ID @Code { +"a | @Table&&cities | c" +} +In this case the cross reference will be replaced by a copy of the +invocation it points to: in the example just given, a table will appear +between @Code a and @Code c. Other applications of cross references may be +found in Chapter {@NumberOf examples}, including finding the number of +the page where something appears, producing running page headers and footers, +and accessing databases of Roman numerals, references, etc. Cross +references are also used by galleys, as will be explained in the next section. +@PP +The implementation of cross referencing copies every symbol invocation with +a @Code "@Tag" parameter into the @I { cross-reference database }, +a collection of files whose names end in {@Code ".ld"} indexed by one file +whose name is {@Code "lout.li"}. It is generally the case that the bulk +content of a symbol such as the table above is contained in its right or +body parameter, and that this bulk content is not needed by cross references +to the symbol. Hence, to save space in the database, Lout replaces the +right parameter of each symbol it writes into it by the word "???" whenever +the right parameter appears to be large. The table above would appear as +"???" because of this optimization, and in general, the user must ensure +that any content required by cross references is contained in parameters +other than the right or body parameter. This optimization does not apply +when the symbol being written into the cross-reference database is a galley. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pri_defi b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pri_defi new file mode 100755 index 0000000000000..002db1500348e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pri_defi @@ -0,0 +1,246 @@ +@Section + @Title { Definitions } + @Tag { definitions } +@Begin +@PP +The features of Lout are very general. They do not assume that documents +are composed of pages, nor that there are such things as margins and +footnotes, for example. @I Definitions +definitions. @Index { Definitions } +bridge the gap between Lout's general features and the +special features -- footnotes, equations, pages -- that particular +documents require. They hold the instr&-uct&-ions for producing these +special features, conveniently packaged ready for use. +@PP +For example, consider the challenge posed by `@TeX', which is the name of +one of Lout's most illustrious rivals @Cite { $knuth1984tex }. Lout solves it +easily enough, like this: +@ID @Code { +"T{ /0.2fo E }X" +} +but to type this every time @TeX is mentioned would be tedious and +error-prone. So we place a definition at the beginning of the document: +@ID @Code { +"def @TeX { T{ /0.2fo E }X }" +} +Now @Code "@TeX" stands for the object following it between +braces, and we may write +@ID @Code { +consider the challenge posed by "`@TeX'", ... +} +as the author did earlier in this paragraph. +@PP +A @I symbol +symbol. @Index Symbol +is a name, like {@Code "@TeX"}, which stands for +something other than itself. The initial @Code "@" is not compulsory, +but it does make the name stand out clearly. A @I definition of a symbol +declares a name to be a symbol, and says what the symbol stands for. The +@I body of a definition +body.of @Index { Body of a definition } +is the part following the name, between the braces. To @I invoke +invocation @Index { Invocation of a symbol } +a symbol is to make use of it. +@PP +Another expression ripe for packaging in a definition is +@ID @Code { +"@OneRow { | -2p @Font n ^/0.5fk 2 }" +} +which produces @OneRow { | -2p @Font n ^/0.5sk 2 } (see +Chapter {@NumberOf details}). But this time we would like to be able to write +@ID { +@I object @Code "@Super" @I object +} +so that @Code { a "@Super" 2 } would come out as {a @Super 2}, and so +on, for in this way the usefulness of the definition is greatly +increased. Here is how it is done: +@ID @OneRow @Code { +"def @Super" +" left x" +" right y" +"{ @OneRow { | -2p @Font y ^/0.5fk x }" +"}" +} +This definition says that @Code "@Super" has two {@I parameters}, +parameter @Index Parameter +@Code x and {@Code y}. When @Code "@Super" is invoked, all occurrences +of @Code x in the body will be replaced by the object just to the left +of {@Code "@Super"}, and all occurrences of @Code y will be replaced by +the object just to the right. So, for example, the expression +@ID @Code { +"2 @Super { Slope @Font n }" +} +is equal to +@ID @Code { +"@OneRow { | -2p @Font { Slope @Font n } ^/0.5fk 2 }" +} +and so comes out as {2 @Super {Slope @Font n}}. +@PP +Lout permits definitions to invoke themselves, a peculiarly circular +thing to do which goes by the name of +recursion @Index Recursion +@I recursion. Here is an example +of a recursive definition: +@ID @Code { +"def @Leaders { .. @Leaders }" +} +The usual rule is that the value of an invocation of a symbol is a copy of +the body of the symbol's definition, so the value of @Code "@Leaders" must be +@ID @Code { +".. @Leaders" +} +But now this rule applies to this new invocation of {@Code "@Leaders"}; +substituting its body gives +@ID @Code { +".. .. @Leaders" +} +and so on forever. In order to make this useful, +an invocation of a recursive symbol is replaced by its body only if +sufficient space is available. So, for example, +@ID @Code { +"4i @Wide { Chapter 7 @Leaders 62 }" +} +has for its result the object +@ID { +4i @Wide { Chapter 7 @Leaders 62 } +} +with Lout checking before each replacement of @Code "@Leaders" by +@OneCol @Code { ".." "@Leaders" } that the total length afterwards, +including the other words, would not exceed four inches. +@PP +The remaining issue is what happens when Lout decides that it is time to +stop. The obvious thing to do is to replace the last invocation by an +empty object: +@ID @Code { +".. .. .. .. .. .. .. .. {}" +} +As the example shows, this would leave a small trailing space, which +is a major headache. Lout fixes this +by replacing the last invocation with a different kind of empty object, +called @@Null, whose effect is to make an adjacent concatenation symbol +disappear, preferably one preceding the @@Null. Thus, when Lout +replaces @Code "@Leaders" by @@Null in the expression +@ID @Code { +".. .. .. .. .. .. .. .. @Leaders" +} +the trailing space, which is really a horizontal concatenation symbol, +disappears as well. This is taken into account when deciding +whether there is room to replace @Code "@Leaders" by its body. +@PP +The remainder of this section is devoted to showing how definitions may +be used to specify the @I {page layout} +page.layout @RawIndex { Page layout } +page.layout.basic @SubIndex { principles of } +of a document. To begin with, +we can define a page like this: +@ID @OneRow @Code { +"def @Page" +"{" +" //1i ||1i" +" 6i @Wide 9.5i @High" +" { @TextPlace //1rt @FootSect }" +" ||1i //1i" +"}" +} +Now @Code "@Page" is an eight by +eleven and a half inch object, with one inch margins, a place at the top for +text, and a section at the bottom for footnotes (since @Code "//1rt" +bottom-justifies the following object). It will be +convenient for us to show the effect of invoking @Code "@Page" like this: +@ID @Code +{ { //0.5ix 8p @Font "@Page" &2m => } &2m +@LittlePage { "@TextPlace" //1rt "@FootSect" } +} +with the invoked symbol appearing to the left of the arrow, and its body to +the right. +@PP +The definition of a vertical list of pages should come as no surprise: +@ID @OneRow @Code { +"def @PageList" +"{" +" @Page // @PageList" +"}" +} +This allows invocations like the following: +@ID @Code @HExpand @HScale { +{ //0.5ix 8p @Font "@PageList" } +||1m { //0.5ix => } ||1m +{ @LittlePage { "@TextPlace" //1rt "@FootSect" } + //0.2c 8p @Font "@PageList" +} +||1m { //0.5ix => } ||1m +{ @LittlePage { "@TextPlace" //1rt "@FootSect" } + // @LittlePage { "@TextPlace" //1rt "@FootSect" } + //0.2c 8p @Font "@PageList" +} +||1m { //0.5ix => } ||1m +{ @LittlePage { "@TextPlace" //1rt "@FootSect" } + // @LittlePage { "@TextPlace" //1rt "@FootSect" } +} +} +setting @Code "@PageList" to @Code @@Null on the last step. Any +number of pages can be generated. +@PP +A definition for @Code "@TextPlace" is beyond us at present, since +@Code "@TextPlace" must be replaced by different parts of the text +of the document on different pages. But we can +define @Code "@FootSect" to be a small space followed by a +horizontal line followed by a list of places where footnotes go: +@ID @OneRow @Code { +"def @FootList " +"{ " +" @FootPlace //0.3v @FootList" +"} " +" " +"def @FootSect" +"{ " +" //0.3v 1i @Wide @HLine" +" //0.3v @FootList " +"} " +} +assuming that @Code "@HLine" will produce a horizontal line of the +indicated width. With this definition we can generate pages like this: +@ID @Code { +@LittlePage { "@TextPlace" + //1rt + "@FootSect" + } +||2m { //0.5ix => } ||2m +@LittlePage { "@TextPlace" + //1rt + @OneRow { 1c @Wide @HLine + //0.1c + "@FootList" + } + } +||2m { //0.5ix => } ||2m +@LittlePage { "@TextPlace" + //1rt + @OneRow { 1c @Wide @HLine + //0.1c + "@FootPlace" + //0.1c + "@FootList" + } + } +} +and so on for arbitrarily many footnotes. +@PP +We will see in the next section how invocations of @Code "@PageList", +@Code "@FootSect" and @Code "@FootList" are replaced by their bodies only +when the need to insert text and footnotes obliges Lout to do so; +otherwise the invocations are replaced by @@Null. In this way, the +right number of pages is made, the small line appears only on pages that +have at least one footnote, and unnecessary concatenation symbols +disappear. +@PP +This approach to page layout is the most original contribution Lout has +made to document formatting. It is extraordinarily flexible. Two-column +pages? Use +@ID @Code { +"{2.8i @Wide @TextPlace} ||0.4i {2.8i @Wide @TextPlace}" +} +instead of {@Code "@TextPlace"}. Footnotes in smaller type? Use +@Code { -2p "@Font" "@FootPlace" } instead of {@Code "@FootPlace"}. And +on and on. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pri_gall b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pri_gall new file mode 100755 index 0000000000000..9efb3c18c75ef --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pri_gall @@ -0,0 +1,279 @@ +@Section + @Title { Galleys } + @Tag { galleys } +@Begin +@PP +It is time to pause and ask ourselves how close we are to achieving our +aim of producing neatly formatted documents. We can certainly produce +the pieces of a document: +@ID { + +nohyphen @Break @LittlePageColumn { +@DP +|0.5rt {@B PURCELL}{ 0.8f @Font 1 ^//0.2v} +@DP +In the world of music England is supposed to be a mere province. If she +produces an indifferent composer or performer, that is regarded +elsewhere as perfectly normal and natural; but if foreign students of +musical history have to acknowledge a British musical genius, he is +considered a freak. +@PP +Such a freak is Henry Purcell. Yet if we make a choice of fifteen of +the world's musical classics, as here, we find that we cannot omit this +English master. +} + +||1c + +@LittlePageColumn +{ { 0.8f @Font 1 ^//0.2v}Blom, Eric. @I {Some Great Composers.} Oxford, 1944. +} + +||1c + +@Code { + @LittlePage { "@TextPlace" //1rt "@FootSect" } +// @LittlePage { "@TextPlace" //1rt "@FootSect" } +// @LittlePage { "@TextPlace" //1rt "@FootSect" } +//0.2c 8p @Font "@PageList" +} + +} +but when we try to merge them together, we encounter two obstacles. +@PP +First, when an object is entered at a certain place in the document, it +appears at that place. But a footnote is naturally entered immediately +after the point it refers to (`{-2p @Font PURCELL}' in this case), yet it +appears somewhere else: at the bottom of a page. +@PP +Second, all our features build up larger objects out of smaller ones, +but the -2p @Font PURCELL object, for example, must be broken down into +page-sized pieces. This occurs when the available space at the +`somewhere else' is insufficient to hold the entire object, so this +second obstacle arises out of the first. +@PP +Lout's last major feature, which we introduce to overcome these +obstacles, is the @I galley +galley.feature @Index { Galleys } +(the name is borrowed from the galleys +used in manual typesetting). A galley is an object plus a cross +reference which points to where the object is to appear. The example +above has three galleys: +@ID { + +{ +//0.1c + +nohyphen @Break @LittlePageColumn { +@DP +|0.5rt {@B PURCELL}{ 0.8f @Font 1 ^//0.2v} +@DP +In the world of music England is supposed to be a mere province. If she +produces an indifferent composer or performer, that is regarded +elsewhere as perfectly normal and natural; but if foreign students of +musical history have to acknowledge a British musical genius, he is +considered a freak. +@PP +Such a freak is Henry Purcell. Yet if we make a choice of fifteen of +the world's musical classics, as here, we find that we cannot omit this +English master. +} { //0.4c 180d @Rotate @Arrow 2.0c } + +} + +||0io ||4.8c + +@Code { + @LittlePage { "@TextPlace" //1rt "@FootSect" } +// @LittlePage { "@TextPlace" //1rt "@FootSect" } +// @LittlePage { "@TextPlace" //1rt "@FootSect" } +//0.2c 8p @Font "@PageList" +} 180d @Rotate @Arrow 1i @I -2p @Font {to printer} + +||0io ||2.0c +{ +//3.9c + +{ @Arrow 1.7c } nohyphen @Break @LittlePageColumn +{ { 0.8f @Font 1 ^//0.2v}Blom, Eric. @I {Some Great Composers.} Oxford, 1944. +} +} +} +A galley replaces the invocation pointed to by its cross reference. If +space is not sufficient there to hold it all, the remainder of the +galley is split off (the vertical concatenation symbol preceding it +being discarded) and it replaces later invocations of the same symbol. +This is exactly what is required to get text and footnotes onto pages. +@PP +To create a galley, first define a symbol with a +special @Code into +into @Index { @Code into clause } +clause, like this: +@ID @OneRow @Code { +"def @FootNote into { @FootPlace&&following }" +" right x" +"{" +" 8p @Font x" +"}" +} +An invocation of such a symbol will then be a galley whose object is the +result of the invocation, and whose cross reference is given by the +@Code into clause. The right parameter of the cross reference must be +one of {@Code preceding}, {@Code following}, and {@Code foll_or_prec}. +@PP +A symbol, like @Code "@FootPlace", which is the @I target of a galley, +target.g @Index { Target of a galley } +must contain the special symbol @@Galley exactly once in its body; often +this is all that the body contains: +@ID @Code { +"def @FootPlace { @Galley }" +} +It is this special symbol that is replaced by the incoming galley, in +fact, not the @Code "@FootPlace" symbol as a whole. +@PP +A symbol which contains @@Galley, either directly within its body or +indirectly within the body of a symbol it invokes, is called a @I receptive +receptive @Index { Receptive symbol } +symbol, meaning receptive to galleys. @Code "@FootPlace" is receptive, which +makes @Code "@FootList", @Code "@FootSect" and @Code "@PageList" +receptive since they invoke @Code "@FootPlace". If no galley replaces +any @@Galley within some invocation of a receptive symbol, that +invocation is replaced by @@Null. The advantages of this rule for page +layout were explained at the end of Section {@NumberOf definitions}. +@PP +Let us now follow through the construction of our example +document. Initially there is just the one @I root +root.galley @Index { Root galley } +galley, containing an unexpanded invocation of @Code "@PageList": +@ID { ||5c +10p @Font @Code "@PageList" 180d @Rotate @Arrow 1i @I -2p @Font {to printer} +} +Then the -2p @Font PURCELL galley appears, targeted to a @Code +"@TextPlace". Lout knows that there is a @Code "@TextPlace" hidden +inside @Code "@PageList", so it expands @Code "@PageList": +@ID { + +{ +//0.1c + +nohyphen @Break @LittlePageColumn { +@DP +|0.5rt {@B PURCELL}{ 0.8f @Font 1 ^//0.2v} +@DP +In the world of music England is supposed to be a mere province. If she +produces an indifferent composer or performer, that is regarded +elsewhere as perfectly normal and natural; but if foreign students of +musical history have to acknowledge a British musical genius, he is +considered a freak. +@PP +Such a freak is Henry Purcell. Yet if we make a choice of fifteen of +the world's musical classics, as here, we find that we cannot omit this +English master. +} { //0.4c 180d @Rotate @Arrow 2.2c } +} + +||0io ||5c + +@Code { + @LittlePage { "@TextPlace" //1rt "@FootSect" } +//0.2c 8p @Font "@PageList" +} 180d @Rotate @Arrow 1i @I -2p @Font {to printer} + +} +After promoting the first line into @Code "@TextPlace", the footnote +galley attached to it appears and demands an invocation of +@Code "@FootPlace" following its attachment point +(`{-2p @Font PURCELL}'). Such a @Code "@FootPlace" is found at +the bottom of the first page, inside @Code "@FootSect", which is +accordingly expanded, and the footnote is promoted onto the page: +@ID { + +{ +//1.2c + +nohyphen @Break @LittlePageColumn { +In the world of music England is supposed to be a mere province. If she +produces an indifferent composer or performer, that is regarded +elsewhere as perfectly normal and natural; but if foreign +students of musical history have to acknowledge a British musical genius, +he is considered a freak. +@PP +Such a freak is Henry Purcell. Yet if we make a choice of fifteen of +the world's musical classics, as here, we find that we cannot omit this +English master. +} 180d @Rotate @Arrow 2.2c +} + +||0io ||5c + +{ +nohyphen @Break @LittleDocument +// +@LittleText { +@DP +|0.5rt {@B PURCELL}{ 0.8f @Font 1 ^//0.2v} +@LittleFootNote +{ { 0.8f @Font 1 ^//0.2v}Blom, Eric. @I {Some Great Composers.} Oxford, 1944. +//1vx @Code "@FootList" +} +//1vx @Code "@TextPlace" } +// +@LittleEndRun +//0.2c 8p @Font @Code "@PageList" +} 180d @Rotate @Arrow 1i -2p @Font @I {to printer} + +} +Now the promotion of the -2p @Font PURCELL galley resumes. When the +first page is filled, Lout searches forwards for another @Code "@TextPlace" +to receive the remainder, once again expanding a @Code "@PageList": +@ID { + +{ +//4.85c + +nohyphen @Break @LittlePageColumn { +performer, that is regarded +elsewhere as perfectly normal and natural; but if foreign +students of musical history have to acknowledge a British musical genius, +he is considered a freak. +@PP +Such a freak is Henry Purcell. Yet if we make a choice of fifteen of +the world's musical classics, as here, we find that we cannot omit this +English master. +} 180d @Rotate @Arrow 2.2c +} + +||0io ||5c + +{ +nohyphen @Break @LittleDocument +// +@LittleText { +@DP +|0.5rt {@B PURCELL}{ 0.8f @Font 1 ^//0.2v} +@LittleFootNote +{ { 0.8f @Font 1 ^//0.2v}Blom, Eric. @I {Some Great Composers.} Oxford, 1944. +} +@DP + @HExpand {In the world of music} +//1vx @HExpand {England is supposed to} +//1vx @HExpand {be a mere province. If} +//1vx @HExpand {she produces an indifferent composer or} +} +// +@LittleEndRun +// @LittlePage { @Code "@TextPlace" //1rt @Code "@FootSect" } +//0.2c 8p @Font @Code "@PageList" +} 180d @Rotate @Arrow 1i -2p @Font @I {to printer} + +} +and so on. All these expansions and replacements are done with total +integrity. For example, if Lout finds after expanding @Code "@FootSect" +that the page is too full to accept even the first line of the footnote, +@Code "@FootSect" is reset to unexpanded and the search for a target for +the footnote moves on. And the cross reference direction, @Code +preceding or @Code following, is always obeyed (although lack of space +sometimes prevents Lout from choosing the nearest target). Only the +root galley contains receptive symbols in our running example, but +any galley may contain them. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pri_obje b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pri_obje new file mode 100755 index 0000000000000..fcb9177732aa0 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/expert/pri_obje @@ -0,0 +1,178 @@ +@Section + @Title { Objects } + @Tag { objects } +@Begin +@PP +Since our aim is to produce neatly formatted documents, we should begin by +looking at a typical example of such a document: +@ID { +nohyphen @Break @LittleDocument +// +@LittleText { +@DP +|0.5rt {@B PURCELL}{ 0.8f @Font 1 ^//0.2v} +@LittleFootNote +{ { 0.8f @Font 1 ^//0.2v}Blom, Eric. @I {Some Great Composers.} Oxford, 1944. +} +@DP +In the world of music England is supposed to be a mere province. If she +produces an indifferent composer or performer, that is regarded +elsewhere as perfectly normal and natural; but if foreign students of +musical history have to acknowledge a British musical genius, he is +considered a freak. +@PP +Such a freak is Henry Purcell. Yet if we make a choice of fifteen of +the world's musical classics, as here, we find that we cannot omit this +English master. +} +// +@LittleEndRun +} +It is a large rectangle made from three smaller rectangles -- its +pages. Each page is made of lines; each line is made of words, +although it makes sense for any rectangle (even a complete document) to +be part of a line, provided it is not too large. +@PP +Lout deals with something a little more complicated than rectangles: +@I objects. An object +objec @Index { Object } +is a rectangle with at least one @I {column mark} +column.mark @Index { Column mark } +mark.alignment @Index { Mark alignment } +alignment @RawIndex { Alignment @I see mark alignment } +protruding above and below it, and at least one @I {row mark} +row.mark @Index { Row mark } +protruding to the left and right. The simplest objects contain words like +metempsychosis, and have one mark of each type: +@ID { +@ShowMarks metempsychosis +} +The rectangle exactly encloses the word; its column mark is at the left +edge, and its row mark passes through the middle of the lower-case +letters. The rectangle and marks do not appear on the printed page, but +to understand what Lout is doing you have to imagine them. +@PP +To place two objects side by side, we separate them by the +symbol @Code "|", which denotes the act of @I {horizontal +concatenation}. So, if we write +@ID { +@Code "USA | Australia" +} +the result will be the object +@ID { +@ShowMarks USA | @ShowMarks Australia +} +Notice that this object has two column marks, but still only one row mark, +because @Code "|" merges the two row marks +together. This merging of row marks fixes the vertical +position of each object with respect to the other, but it does not +determine how far apart they are. This distance, or {@I gap}, +may be given just after the symbol, as in @Code "|0.5i" for example, +which specifies horizontal concatenation with a gap of half an inch. If +no gap is given, it is assumed to be {@Code "0i"}. +@PP +@I {Vertical concatenation} & , denoted by {@Code "/"}, +is the same apart from the change of direction: +@ID { +@Code "Australia /0.1i USA" +} +has result +@ID { +@ShowMarks Australia /0.1i +@ShowMarks USA +} +The usual merging of marks occurs, and now the gap determines the +vertical separation. Horizontal and vertical can be combined: +@ID @Code { + |1m USA |1m "|0.2i" |1m Australia +/1vx "/0.1i" | Washington | "|" | Canberra +} +has result +@ID { + @BackEnd @Case { + PostScript @Yield { + @ShowMarks USA & + { 0 ymark moveto xsize 10 pt add ymark lineto [ 3 pt ] 0 setdash stroke } + @Graphic {1c @Wide } + |0.2i @ShowMarks Australia +/0.1i @ShowMarks Washington | @ShowMarks Canberra + } + PDF @Yield { + @ShowMarks USA & + { [ __mul(3, __pt) ] 0 d 0 __ymark m __add(__xsize, __mul(10, __pt)) __ymark l S } + @Graphic {1c @Wide } + |0.2i @ShowMarks Australia +/0.1i @ShowMarks Washington | @ShowMarks Canberra + } + } +} +tables @Index { Tables } +There are several things to note carefully here. White space (including +tabs and newlines) adjacent to a concatenation symbol is ignored, so +it may be used to lay out the expression clearly. The symbol +@Code "|" takes precedence over {@Code "/"}, which means that the rows +are formed first, then vertically concatenated. The symbol @Code "/" will +merge two or more column marks, creating multiple +columns (and @Code "|" will merge two or more row marks). This +implies that the gap @Code "0.2i" used above is between +columns, not individual items in columns; a gap in the second row +would therefore be redundant, and so is omitted. +@PP +A variant of @Code "/" called @Code "//" left-justifies +two objects instead of merging their marks. +@PP +By enclosing an object in braces, it is possible to override the +braces @Index { Braces } +set precedences. Here is another expression for the table +above, in which the columns are formed first: +@ID @Code { + |1m "{ USA" |1m "/0.1i" |1m "Washington }" +/1vx "|0.2i" | "{ Australia" | "/" | "Canberra }" +} +Braces have no effect other than to alter the grouping. +@PP +@I {Paragraph breaking} occurs when an object is too wide to fit +paragraph.breaking @Index { Paragraph breaking } +into the space available to it; by breaking its paragraphs into lines, +its width is reduced to an acceptable amount. The available +space is determined by the @@Wide symbol, whose form is +@ID { +@I length @@Wide @I object +} +and whose result is the given object modified to have exactly the given +length. For example, +@ID @OneRow @Code { +"5i @Wide {" +"Macbeth was very ambitious. This led him to wish to become king of" +"Scotland. The witches told him that this wish of his would come true. The" +"king of Scotland at this time was Duncan. Encouraged by his wife, Macbeth" +"murdered Duncan. He was thus enabled to succeed Duncan as king. (51 words)" +"|0.5i" +"Encouraged by his wife, Macbeth achieved his ambition and realized the" +"prediction of the witches by murdering Duncan and becoming king of Scotland" +"in his place. (26 words)" +"}" +} +has for its result the following five inch wide object +@Cite { $strunk1979style }: +@ID { +5i @Wide { +Macbeth was very ambitious. This led him to wish to become king of +Scotland. The witches told him that this wish of his would come true. The +king of Scotland at this time was Duncan. Encouraged by his wife, Macbeth +murdered Duncan. He was thus enabled to succeed Duncan as king. (51 words) +|0.5i +Encouraged by his wife, Macbeth achieved his ambition and realized the +prediction of the witches by murdering Duncan and becoming king of Scotland +in his place. (26 words) +} +} +A paragraph of text can be included anywhere, and it will be broken +automatically if necessary to fit the available space. The spaces +between words are converted into concatenation symbols. +@PP +These are the most significant of Lout's object-building symbols. There +are others, for changing fonts, controlling paragraph breaking, printing +graphical objects like boxes and circles, and so on, but +they do not add anything new in principle. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/slides/README b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/slides/README new file mode 100755 index 0000000000000..5f4defabca7a0 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/slides/README @@ -0,0 +1,18 @@ +Directory lout/doc/slides + +This directory contains the Lout source of +a set of overhead transparencies entitled +`A Practical Introduction to the Lout +Document Formatting System.' To format +the transparencies, type + + lout all > outfile.ps + +in this directory. This needs to be done +twice to resolve all cross references. +There should be no error messages at all +after the second run. A copy of the final +outfile.ps is included. + +Jeff Kingston +8 October 2000 diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/slides/all b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/slides/all new file mode 100755 index 0000000000000..6e5f02e5bf368 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/slides/all @@ -0,0 +1,680 @@ +@SysInclude { eq } +@SysInclude { tab } +@SysInclude { fig } +@SysInclude { pas } +@SysInclude { graph } +@SysInclude { cprint } +@SysInclude { slides } +@SysDatabase @Reference { loutrefs } +@OverheadTransparencies + @Title { A Practical Introduction to the + +Lout + +Document Formatting System +} + @RunningTitle { lout } + @Author { Jeffrey H. Kingston } + @Institution { +Basser Dept. of Computer Science +The University of Sydney +} + @InitialLanguage { English } +// + +@Overhead + @Title { A simple input file } +@Begin +@ID @Code { +"@SysInclude { doc }" +"@Doc @Text @Begin" +"Hello, world" +"@End @Text" +} +@LP +@LP +@Heading { How to format it } +@ID @Code { +"lout filename > out.ps" +"ghostview out.ps" +"mpr out.ps" +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +Hello, world +} +@End @Overhead + +@Overhead + @Title { Headings and paragraphs } +@Begin +@ID @Code { +"@SysInclude { doc }" +"@Doc @Text @Begin" +"@Heading { Introduction }" +"@PP" +"The design of the Lout formatting" +"system was undertaken with the" +"needs of the @I { ordinary user }" +"very much in mind." +"@End @Text" +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +@Heading { Introduction } +@PP +The design of the Lout formatting +system was undertaken with the +needs of the @I { ordinary user } +very much in mind. +} +@End @Overhead + +@Overhead + @Title { Displays } +@Begin +@ID @Code { +"You certainly don't want to return to" +"his office and report:" +"@IndentedDisplay @I {" +"`I can't find an efficient algorithm, I" +"guess I'm just too dumb.'" +"}" +"To avoid serious damage to your" +"position in the company, it would" +"be better if ..." +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +You certainly don't want to return to +his office and report: +@IndentedDisplay @I { +`I can't find an efficient algorithm, I +guess I'm just too dumb.' +} +To avoid serious damage to your +position in the company, it would +be better if ... +} +@End @Overhead + +@Overhead + @Title { Paragraph breaking styles } +@Begin +@ID @Code { +"You certainly don't want to return to" +"his office and report:" +"@ID { ragged nohyphen } @Break @I {" +"`I can't find an efficient algorithm, I" +"guess I'm just too dumb.'" +"}" +"To avoid serious damage to your" +"position in the company, it would" +"be better if ..." +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +You certainly don't want to return to +his office and report: +@ID { ragged nohyphen } @Break @I { +`I can't find an efficient algorithm, I +guess I'm just too dumb.' +} +To avoid serious damage to your +position in the company, it would +be better if ... +} +@End @Overhead + +@Overhead + @Title { Lists } +@Begin +@ID @Code { +"@Heading { Operating Instructions }" +"@NumberedList" +"@ListItem { Press small green lever. }" +"@ListItem { Wait approximately 10 seconds" +"until red light flashes. }" +"@ListItem { If smoke emerges from rear of unit," +"call Service Department. }" +"@EndList" +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +@Heading { Operating Instructions } +@NumberedList +@ListItem { Press small green lever. } +@ListItem { Wait approximately 10 seconds +until red light flashes. } +@ListItem { If smoke emerges from rear of unit, +call Service Department. } +@EndList +} +@End @Overhead + +@Overhead + @Title { Technical reports } +@Begin +@ID @Code { +"@SysInclude { report }" +"@Report" +" @Title { ... }" +" @Author { ... }" +" @Institution { ... }" +" @DateLine { ... }" +"//" +"@Abstract { ... }" +"@Section { ... }" +"@Section { ... }" +"@Section { ... }" +"@Appendix { ... }" +"@Appendix { ... }" +} +@End @Overhead + +@Overhead + @Title { Sections } +@Begin +@ID @Code { +"@Section" +" @Tag { dfs }" +" @Title { Depth-first search }" +"@Begin" +"@PP" +"We turn now to our first algorithm" +"on general graphs ..." +"@End @Section" +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +@Heading { 10.6. Depth-first search } +@PP +We turn now to our first algorithm +on general graphs ... +} +@End @Overhead + +@Overhead + @Title { Cross references } +@Begin +@ID @Code { +"For further information, consult" +"Section @NumberOf dfs on page" +"@PageOf { dfs }." +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +For further information, consult +Section 10.6 on page 245. +} +@End @Overhead + +@Overhead + @Title { References } +@Begin +@ID @Code { +"@Database @Reference { myrefs }" +"..." +"For the details, consult the User's" +"Guide @Cite { $kingston1995lout.user }." +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +For the details, consult the User's +Guide [1]. +@LP +... +@LP +@Heading { References } +@NumberedList +@LI @RefPrint kingston1995lout.user +@LI ... +@EndList +} +@End @Overhead + +@Overhead + @Title { Database file myrefs.ld } +@Begin +@ID @Code { +"{ @Reference" +" @Tag { kingston1995lout.user }" +" @Type { Book }" +" @Author { Jeffrey H. Kingston }" +" @Title { A User's Guide to the Lout" +"Document Formatting System (Version 3) }" +" @Institution { Basser Department of" +"Computer Science }" +" @Address { University of Sydney" +"2006, Australia }" +" @Year { 1994 }" +"}" +} +@End @Overhead + +@Overhead + @Title { Books (and theses) } +@Begin +@BulletList +@LI { Title page, preface, introduction } +@LI { Automatic table of contents } +@LI { Prefatory pages numbered in Roman numerals } +@LI { Chapters, sections, subsections, appendices } +@LI { References at end of chapters or book } +@LI { Running page headers } +@LI { Odd-even page formats } +@LI { Sorted index } +@EndList +@End @Overhead + +@Overhead + @Title { Making a sorted index } +@Begin +@ID @Code { +"@PP" +"There are several possible ways to implement the" +"@I Partition procedure," +"partition @Index { @I Partition (in {@I Quicksort}) }" +"but the following seems to be the best. Starting ..." +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +@Heading { Index } +@LD lines @Break { +... +partial order, 227 +@I Partition (in {@I Quicksort}), 189 +postorder traversal + of binary tree, 19 + topological ordering, 229 +... +} +} +@End @Overhead + +@Overhead + @Title { Equation formatting } +@Begin +@ID @Code { +"@SysInclude { eq }" +"..." +"Since @Eq { T(n-i) = T(0) = 0 } we have" +"@IndentedDisplay @Eq {" +"T(n) = big sum from i=0 to n-1 2 sup i = 2 sup n - 1" +"}" +"for the number of disk moves made by the Towers" +"of Hanoi algorithm, given @Eq { n } disks." +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +Since @Eq { T(n-i) = T(0) = 0 } we have +@IndentedDisplay @Eq { +T(n) = big sum from i=0 to n-1 2 sup i = 2 sup n - 1 +} +for the number of disk moves made by the Towers of Hanoi +algorithm, given @Eq { n } disks. +} +@End @Overhead + +@Overhead + @Title { Another equation } +@Begin +@ID @Code { +"@CenteredDisplay @Eq {" +"big int supp 1 on 0 `" +"dx over sqrt { 1 - x sup 2 }" +"= pi over 2" +"}" +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +@CenteredDisplay @Eq { +big int supp 1 on 0 ` +dx over sqrt { 1 - x sup 2 } += pi over 2 +} +} +@End @Overhead + +@Overhead + @Title { Tables } +@Begin +@ID @Code { +"@SysInclude { tab }" +"..." +"@Tab" +" @Fmta { @Col @I A ! @Col B }" +"{" +"@Rowa" +" A { Fortran }" +" B { The first ... language }" +"@Rowa" +" A { Algol-60 }" +" B { Said to be ... successors }" +"@Rowa" +" A { Pascal }" +" B { The famous ... successors }" +"}" +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +@Tab + vmargin { 0.4v } + @Fmta { @Col @I A ! @Col B } +{ +@Rowa + A { Fortran } + B { The first high-level +programming language } +@Rowa + A { Algol-60 } + B { Said to be a better +language than most of its successors } +@Rowa + A { Pascal } + B { The most famous of +Algol-60's successors } +} +} +@End @Overhead + +@Overhead + @Title { Another table } +@Begin +@RID @Code { +"@Tab" +" hmargin { 0.4c }" +" vmargin { 0.3v }" +" side { single }" +" @Fmta { @Col @B @CC X @Over A,B,C }" +" @Fmtb { @Col @I A ! @Col B !! @Col C }" +"{" +"" +"@Rowa above { single }" +" X { Value of mathematical ... dollars) }" +"" +"@Rowb above { double }" +" A { Quadratic formula }" +" B { @Eq { x ^= { ... } over 2a } }" +" C { 3^.5 }" +"" +"@Rowb below { single }" +" A { Binomial theorem }" +" B { @Eq { ( a + b ) sup n ^= ... b sup n-k } }" +" C { 12^ }" +"}" +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +0.6 @Scale @Tab + hmargin { 0.4c } + vmargin { 0.3v } + side { single } + @Fmta { @Col @B @CC X @Over A,B,C } + @Fmtb { @Col @I A ! @Col B !! @Col C } +{ +@Rowa + above { single } + X { Value of mathematical formulae (millions of dollars) } +@Rowb + above { double } + A { Quadratic formula } + B { @Eq { x ^= { minus b +- sqrt { b sup 2 - 4ac } } over 2a } } + C { 3^.5 } +@Rowb + below { single } + A { Binomial theorem } + B { @Eq { ( a + b ) sup n ^= big sum from k=0 to infty +matrix atleft { ( } atright { ) } { n above k } a sup k b sup n-k +} } + C { 12^ } +} +} +@End @Overhead + +@Overhead + @Title { Pascal programs } +@Begin +@ID @Code { +"@SysInclude { pas }" +"..." +"@ID @Pas {" +"procedure DoPriAbstract(root: PriEntry);" +"begin" +" if root^.leftchild <> nil then begin" +" DoPriAbstract(root^.leftchild);" +" write(', ');" +" end;" +" PriKeyAbstract(root^.key);" +" write(':');" +" PriValueAbstract(root^.value);" +" if root^.rightchild <> nil then begin" +" write(', ');" +" DoPriAbstract(root^.rightchild);" +" end;" +"end;" +"}" +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +@Pas { +procedure DoPriAbstract(root: PriEntry); +begin + if root^.leftchild <> nil then begin + DoPriAbstract(root^.leftchild); + write(', '); + end; + PriKeyAbstract(root^.key); + write(':'); + PriValueAbstract(root^.value); + if root^.rightchild <> nil then begin + write(', '); + DoPriAbstract(root^.rightchild); + end; +end; +} |0io +} +@End @Overhead + +@Overhead + @Title { Basic graphics } +@Begin +@ID @Code { +"45d @Rotate 1.5 @Scale @Box {" +" Hello, world" +"}" +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +@ID @Code { +45d @Rotate 1.5 @Scale @Box { + Hello, world +} +} +} +@End @Overhead + +@Overhead + @Title { Advanced graphics } +@Begin +@ID @Code { +"@SysInclude { fig }" +"..." +"@Fig {" +"@Box" +" margin { 0c }" +" paint { black }" +"@Ellipse" +" linestyle { noline }" +" paint { white }" +"{ Hello, world }" +"}" +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +@Fig { +@Box + margin { 0c } + paint { black } +@Ellipse + linestyle { noline } + paint { white } +{ Hello, world } +} +} +@End @Overhead + +@Overhead + @Title { Point labelling } +@Begin +@ID @Code { +"@Fig {" +"A::" +"{" +" 1:: @Ellipse { 3c @Wide 2c @High }" +" //3c" +" 2:: @Box { 3c @Wide 2c @High }" +"}" +"@ShowLabels" +"}" +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +@Fig { +A:: +{ + 1:: @Ellipse { 3c @Wide 2c @High } + //3c + 2:: @Box { 3c @Wide 2c @High } +} +@ShowLabels +} +} +@End @Overhead + +@Overhead + @Title { Graphs } +@Begin +@LP +@ID -1p @Font @Code { +"@Graph" +" abovecaption { New South Wales road deaths" +"(per 100 million vehicle km) }" +"{" +" @Data points { plus } pairs { dashed }" +" { 1963 5.6 1971 4.3 1976 3.7 1979 3.4" +" 1982 2.9 1985 2.3 1988 2.0 }" +"}" +} +@End @Overhead + +@Overhead @Begin +@ShowPage @Graph + width { 9 cm } + height { 6 cm } + abovecaption { New South Wales road deaths +(per 100 million vehicle km) } +{ + @Data + points { plus } + pairs { dashed } + { + 1963 5.6 1971 4.3 1976 3.7 1979 3.4 1982 2.9 1985 2.3 1988 2.0 + } +} +@End @Overhead + +@Overhead @Begin +@RID @Code { +"-2p @Font @Graph" +" style { axes }" +" xorigin { 0 } yorigin { 0 }" +" xticks { 10@ 50@ 100@ 200@ 500@ }" +" objects { @NE at { 300 2 } @I { Exponential }" +" @SE at { ... } @I { Uniform } }" +" belowcaption { @I n }" +"{" +" @Data points { filledcircle } { ... }" +" @Data points { filledcircle } { ... }" +"" +" @Data pairs { dashed }" +" { 10 2 500 2 }" +"" +" @Data pairs { dashed }" +" {" +" xloop from { 10 } to { 500 } by { 20 } do" +" {" +" x sqrt { pi*x / 4 } + 1" +" }" +" }" +"}" +} +@End @Overhead + +@Overhead @Begin +@ShowPage -2p @Font @Graph + style { axes } + xorigin { 0 } + yorigin { 0 } + width { 10 cm } + height { 7 cm } + xticks { 10@ 50@ 100@ 200@ 500@ } + objects { + @NE at { 300 2 } @I { Exponential } + @SE at { 300 sqrt { pi*300/4 } + 1 } @I { Uniform } + } + belowcaption { @I n } + belowgap { 0 cm } +{ + @Data points { filledcircle } + { 10 1.97 50 2.01 100 2.00 200 2.0 500 2.00 } + + @Data points { filledcircle } + { 10 3.53 50 7.45 100 9.32 200 13.41 500 21.63 } + + @Data pairs { dashed } + { 10 2 500 2 } + + @Data pairs { dashed } + { + xloop from { 10 } to { 500 } by { 20 } do + { + x sqrt { pi*x / 4 } + 1 + } + } +} +@End @Overhead diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/slides/mydefs b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/slides/mydefs new file mode 100755 index 0000000000000..69417f5cf7fbf --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/slides/mydefs @@ -0,0 +1,8 @@ + +def @Code right x { { Helvetica Base -2p } @Font lines @Break x } + +import @BasicSetup +def @ShowPage right x +{ + @Box margin { 1i } 4i @Wide 5i @High { x // } +} diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/slides/outfile.ps b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/slides/outfile.ps new file mode 100755 index 0000000000000..a3780a483bf7d Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/slides/outfile.ps differ diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/README b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/README new file mode 100755 index 0000000000000..810f7ca08447a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/README @@ -0,0 +1,51 @@ +Directory lout/doc/user + +This directory contains the Lout source files for the User's Guide +to the Lout Document Formatting System. To produce the Guide, +type the command + + lout all > op + +in this directory. Owing to some unfortunate page breaks in the +early runs, this must be done six times to completely resolve +all cross references, although the PostScript file op is printable +after the first run. Auxiliary files with .li and .ld suffixes +will be created in this directory. + +The first run will produce a large number of error messages, +nearly all beginning with "unresolved cross reference". These +should gradually go away on later runs. The following shows the +error message output on the later runs for A4 size printing: + +lout file "str_indx" (from "str" line 15, from "all" line 37): + 43,1: 0.3c object too high for -0.0c space; will try elsewhere +lout file "typ_repo" (from "typ" line 19, from "all" line 38): + 38,1: 1.0c object too high for 0.2c space; will try elsewhere +lout file "dia_synt" (from "dia" line 49, from "all" line 44): + 79,1: 1.0c object too high for 0.8c space; will try elsewhere +lout file "prg_tabs" (from "prg" line 102, from "all" line 46): + 58,23: prg2lout 2,1: program text ended within comment + 60,35: prg2lout 2,1: program text ended within comment + +The first three warnings are about footnotes whose first lines did not +fit on the bottom of the current page, so had to begin on the following +page. The last two warnings point to two places where a C program text +ended inside a comment, which in these cases was deliberate. If you set +the document in Letter size paper, you will also get different warning +messages pointing to places where Lout had to slightly scale a display +to fit the smaller page: + +lout file "gra_summ" (from "gra" line 44, from "all" line 45): + 8,1: 23.6c object too high for 21.8c space; @Scale inserted +lout file "ap_qck" (from "all" line 48): + 158,25: 22.4c object too high for 21.9c space; @Scale inserted + +Optimal page breaking has been turned off for this document owing to +repeated failure to converge, caused by footnotes and floating figures +close to large unbreakable displays. + +A copy of the final PostScript output file (A4 paper size) is +stored at "ftp://ftp.cs.su.oz.au/jeff/lout/lout-3.24.user.ps.gz". + +Jeffrey H. Kingston +8 October 2000 diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/all b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/all new file mode 100755 index 0000000000000..d38a47c767f7b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/all @@ -0,0 +1,49 @@ +@SysInclude { tab } +@SysInclude { tbl } +@SysInclude { eq } +@SysInclude { fig } +@SysInclude { graph } +@SysInclude { pas } +@SysInclude { diag } +@SysInclude { cprint } +@SysInclude { eiffel } +@SysInclude { perl } +# @SysInclude { book } +@Include { letterbook } # for testing Letter size formatting + +@SysDatabase @Reference { loutrefs } + +@Book + @Title { A User's Guide to the + +Lout + +Document Formatting System +} + @Author { Jeffrey H. Kingston } + @Edition { Version 3.24 +October, 2000 } + @Publisher { +Copyright @CopyRight 1991, 2000 Jeffrey H. Kingston, +Basser Department of Computer Science, +The University of Sydney 2006, Australia. ISBN 0 86758 951 5. +} + @InitialLanguage { English } + # @OptimizePages { Yes } +// + +@Include { preface } +@Include { bas } +@Include { str } +@Include { typ } +@Include { fmt } +@Include { ref } +@Include { tbl } +@Include { equ } +@Include { bgr } +@Include { dia } +@Include { gra } +@Include { prg } +@Include { pascal } +@Include { ap_qck } +@Include { ap_byp } diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ap_byp b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ap_byp new file mode 100755 index 0000000000000..a1c1bd72762e6 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ap_byp @@ -0,0 +1,98 @@ +@Appendix + @Title { Bypass Symbols } + @Tag { bypass } +@Begin +@PP +The `bypass' symbols described in this appendix are intended to be +used only in Lout which is generated by computer programs. Their +purpose is to bypass the Lout cross reference database, and so reduce +the number of passes needed to finalise a document. These symbols +should not be used by people, because that would only lead back to the +consistency problems that prompted the introduction of cross references +in the first place. +@PP +To produce a bypass table of contents, set the @Code "@MakeContents" +setup file option to @Code "Bypass" and use @Code "@BypassContentsEntry" +symbols at the outermost level just before the introduction or first +chapter: +@ID @Tab + @Fmta { @Col @Code A ! @Col ! @Col B } + vmargin { 0.5vx } +{ +@Rowa + A { "@BypassContentsEntry" } +@Rowa + A { " indent { 0f }" } + B { the indent, e.g. {@Code "0f"}, {@Code "2f"}, {@Code "4f"} ... } +@Rowa + A { " number {}" } + B { the section (etc.) number e.g. {@Code "5.2"} } +@Rowa + A { " title {}" } + B { the section (etc.) title e.g. @Code "Azaleas" } +@Rowa + A { " pagenum {}" } + B { the page number e.g. @Code "@PageOf azaleas" } +} +For major entries such as chapters, use @Code "@BypassMajorContentsEntry" +with the same options. This increases the vertical spacing and uses +bold font. When @Code "@MakeContents" is {@Code "Bypass"}, no contents +entries will be produced automatically. +@PP +To bypass Lout's automatic numbering of large-scale structure symbols, +use the @Code "@BypassNumber" option: +@ID @Code { +"@Section" +" @Title { Azaleas }" +" @Tag { azaleas }" +" @BypassNumber { 5.2 }" +"..." +} +Give the full `path number' (5.2, B.3 or whatever) of the symbol. There is +a @Code "@BypassNumber" option for every symbol that has a @Code "@Title" +option and is usually assigned a number automatically by Lout, plus +@Code "@Figure" and {@Code "@Table"}. No changes to the setup file are +required in order to use {@Code "@BypassNumber"}, and it is permitted +for some large-scale structure symbols to have this option and others not. +@PP +To produce a bypass reference list, set the @Code "@MakeReferences" +setup file option to @Code "Bypass" and place reference entries at the +end of the document, after the last chapter or other large-scale structure +symbol but before any bypass index entries (see below), like this: +@ID @Code { +"@BypassReference" +" label { [Kin94a] }" +" value { @RefPrint kingston1995lout.expert }" +} +The two options are objects which become the label and value of the +reference entry. The @Code "value" option can be any object, including +an explicit reference; but @Code "@RefPrint" does not introduce any +cross-referencing delay if the @Code "@Reference" symbols lie in a +separate database file. No sorting or removal of duplicate entries +will be done by Lout. When @Code "@MakeReferences" is {@Code "Bypass"}, +@Code "@Cite" and related symbols are ignored. +@PP +There is also @Code "@BypassChapReference" with the same options for +producing bypass chapter reference lists; these symbols should be +placed at the outer level immediately after the preface, introduction, +chapter or appendix that they refer to. +@PP +To produce bypass indexes, set the @Code "@MakeIndex" setup file +option to {@Code Bypass} and use the @Code "@BypassRawIndex" symbol +repeatedly at the very end of the document, enclosed in +@Code "@BypassBeginIndex" and @Code "@BypassEndIndex" symbols: +@ID @Code { +"@BypassBeginIndex" +"@BypassRawIndex indent { 0f } { Azaleas, @PageOf azaleas }" +"..." +"@BypassEndIndex" +} +The @Code "indent" option gives the indent ({@Code "0f"}, @Code {"1f"}, +@Code {2f}, etc.), and the right parameter is as for @Code "@RawIndex". No +@Code "@PageMark" operations, sorting, merging, or attachment of page +numbers will be done by Lout. When @Code "@MakeIndex" is {@Code Bypass}, +@Code "@Index" and related symbols are ignored. At present, bypass +index symbols work only in books, not with ordinary documents or +technical reports. There are corresponding symbols for creating +bypass indexes A and B. +@End @Appendix diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ap_qck b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ap_qck new file mode 100755 index 0000000000000..092673d69b9e7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ap_qck @@ -0,0 +1,369 @@ +@Appendix + @Title { Lout Quick Reference Guide } +@Begin +10p @Font 1.15fx @Break @OneCol +@Tab @Fmta { @Col 20c @Wide A ! @Col 20c @Wide B } +{ +@Rowa A { +@Heading { 1. Running Lout } +@LD @Code { +"lout filename > postscript.ps" +} + +@LP +@Heading { 2. Ordinary documents (simple form) } +@LD @Code { +"@SysInclude { doc }" +"@Doc @Text @Begin" +"..." +"@End @Text" +} + +@LP +@Heading { 3. Ordinary documents (full form) } +@LD @Code { +"@SysInclude { doc }" +"@Document" +" @InitialFont { Times Base 12p }" +" @InitialBreak { adjust 1.2fx hyphen }" +" @InitialLanguage { English }" +" @PageHeaders { Simple }" +" @FirstPageNumber { 1 }" +" @ColumnNumber { 1 }" +" @PageOrientation { Portrait }" +"//" +"@Text @Begin" +"..." +"@BeginSections" +"@Section ... @End @Section" +"@EndSections" +"@End @Text" +} + +@LP +@Heading { 4. Technical reports } +@LD @Code { +"@SysInclude { report }" +"@Report" +" @Title { ... }" +" @Author { ... }" +" @Institution { ... }" +" @DateLine { No }" +" @CoverSheet { Yes }" +" @InitialFont { Times Base 12p }" +" @InitialBreak { adjust 1.2fx hyphen }" +" @InitialLanguage { English }" +" @PageHeaders { Simple }" +" @FirstPageNumber { 1 }" +" @ColumnNumber { 1 }" +" @Abstract { ... }" +"//" +"@Section ... @End @Section" +"@Appendix ... @End @Appendix" +} +} + +B { +@Heading { 5. Large-scale structure symbols } +@LL +@LI @Code { +"@Section" +" @Title { ... }" +" @RunningTitle { ... }" +" @Tag { ... }" +"@Begin" +"@PP" +"..." +"@End @Section" +} +@LI lines @Break { +@Code "@Section / @SubSection / @SubSubSection" +@Code "@Appendix / @SubAppendix / @SubSubAppendix" +@Code "@BeginSubSections" ... @Code "@EndSubSections" if inner. +} +@EndList + +@LP +@Heading { 6. Cross references } +@LD @Tab + @Fmta { @Col @Code A ! @Col ! @Col @Code B } +{ +@Rowa + A { "@Tag { foo }" } + B { "@PageOf foo" } +@Rowa + A { "@PageMark foo" } + B { "@NumberOf foo" } +} + +@LP +@Heading { 7. Font changes } +@LL +@LI @Tab + @Fmta { @Col @Code A ! @Col @Code B } + vmargin { 0.5vx } +{ +@Rowa + A { "@B { bold font }" } + B { "@I { italic font }" } +@Rowa + A { "@BI { bold-italic font }" } + B { "@R { Roman font }" } +@Rowa + A { "@S { small-caps font}" } + B { "@F { fixed-width font }" } +@Rowa + B { "@II { italic bold or Roman }" } +} +@LI @Code { +"{ family face size } @Font { ... }" +} +@LI @Code { +"Times Helvetica Courier ..." +"Base Slope Bold BoldSlope ..." +"10p 12p +2p -2p 2.0f ..." +} +@EndList + +@LP +@Heading { 8. Paragraph breaking styles } +@LL +@LI @Code { +"{ breakstyle linesep hyphen } @Break { ... }" +} +@LI @Code { +"adjust ragged lines clines ..." +"1.2fx 2vx 0.9vx ..." +"hyphen nohyphen" +} +@EndList + +@LP +@Heading { 9. New paragraph and new page } +@LD @Tab + @Fmta { @Col @Code A ! @Col B } + vmargin { 0.5vx } +{ +@Rowa A { "@PP" } B { Plain paragraph } +@Rowa A { "@LP" } B { Left paragraph } +@Rowa A { "@LLP" } B { New line } +@Rowa A { "@DP" } B { Display paragraph } +@Rowa A { "@NP" } B { New page } +@Rowa A { "@CNP" } B { Conditional new page } +} +} + +} # end first table +@LP +10p @Font 1.15fx @Break @OneCol +@Tab @Fmta { @Col 20c @Wide A ! @Col 20c @Wide B } +{ +@Rowa A { +@Heading { 10. Displays and headings } +@LL +@LI @Code { +"@CD @Heading { A centred heading }" +"@ID { An indented display }" +} +@LI @Tab + @Fmta { @Col @Code A ! @Col @Code B } + vmargin { 0.5vx } +{ +@Rowa A { "@D" } B { "@Display" } +@Rowa A { "@LD" } B { "@LeftDisplay" } +@Rowa A { "@ID" } B { "@IndentedDisplay" } +@Rowa A { "@QD" } B { "@QuotedDisplay" } +@Rowa A { "@CD" } B { "@CentredDisplay" } +@Rowa B { "@CenteredDisplay" } +@Rowa B { "@RightDisplay" } +} +@EndList + +@LP +@Heading { 11. Lists} +@LL +@LI @Code { +"@List" +"@ListItem { A list item }" +"@ListItem { Another list item }" +"@EndList" +} +@LI @Tab + @Fmta { @Col @Code A ! @Col @Code B } + vmargin { 0.5vx } +{ +@Rowa + A { "@L" } + B { "@List" } +@Rowa + A { "@LL" } + B { "@LeftList" } +@Rowa + A { "@IL" } + B { "@IndentedList" } +@Rowa + A { "@QL" } + B { "@QuotedList" } +@Rowa + A { "@CL" } + B { "@CentredList" } +@Rowa + B { "@CenteredList" } +@Rowa + A { "@NL" } + B { "@NumberedList" } +@Rowa + A { "@RL" } + B { "@RomanList" } +@Rowa + A { "@UCRL" } + B { "@UCRomanList" } +@Rowa + A { "@AL" } + B { "@AlphaList" } +@Rowa + A { "@UCAL" } + B { "@UCAlphaList" } +@Rowa + A { "@PNL" } + B { "@ParenNumberedList" } +@Rowa + A { "@PRL" } + B { "@ParenRomanList" } +@Rowa + A { "@PUCRL" } + B { "@ParenUCRomanList" } +@Rowa + A { "@PAL" } + B { "@ParenAlphaList" } +@Rowa + A { "@PUCAL" } + B { "@ParenUCAlphaList" } +@Rowa + A { "@BL" } + B { "@BulletList" } +@Rowa + A { "@SL" } + B { "@StarList" } +@Rowa + A { "@DL" } + B { "@DashList" } +} +@LI @Code { +"@TaggedList" +"@TagItem { label } { A list item }" +"@TagItem { label } { Another list item }" +"@EndList" +} +@LI @Tab + @Fmta { @Col @Code A ! @Col @Code B } + vmargin { 0.5vx } +{ +@Rowa + A { "@TL" } + B { "@TaggedList" } +@Rowa + A { "@WTL" } + B { "@WideTaggedList" } +@Rowa + A { "@VWTL" } + B { "@VeryWideTaggedList" } +} +@EndList + +@LP +@Heading { 12. Footnotes, endnotes, margin notes } +@LD @Tab + @Fmta { @Col @Code A ! @Col @Code B } + vmargin { 0.5vx } +{ +@Rowa + A { "@FootNote { ... }" } + B { "@EndNote { ... }" } +@Rowa + A { "@LeftNote { ... }" } + B { "@RightNote { ... }" } +@Rowa + A { "@OuterNote { ... }" } + B { "@InnerNote { ... }" } +} +} + +B { +@Heading { 13. Floating figures and tables } +@LD @Tab + @Fmta { @Col @Code A ! @Col ! @Col ! @Col @Code B } +{ +@Rowa + A { +"@Figure" +" @Caption { ... }" +" @Tag { ... }" +"@Begin" +"..." +"@End @Figure" +} + B { +"@Table" +" @Caption { ... }" +" @Tag { ... }" +"@Begin" +"..." +"@End @Table" +} +} + +@LP +@Heading { 14. Tables } +@LD @Code { +"@SysInclude { tbl }" +"@SysInclude { doc }" +"..." +"@Tbl" +" aformat { @Cell A | @Cell B }" +" marginvertical { 0.5vx }" +"{" +"@Rowa" +" A { ... }" +" B { ... }" +"@Rowa" +" ..." +"}" +} + +@LP +@Heading { 15. Equations } +@LD @Code { +"@SysInclude { eq }" +"@SysInclude { doc }" +"..." +"@Eq { sum from i=0 to n { r sup i over sqrt pi } }" +} + +@LP +@Heading { 16. Basic graphics } +@LD @Code { +"grey @Colour { ... }" +"gray @Color { ... }" +"@Box { ... }" +"@CurveBox { ... }" +"@ShadowBox { ... }" +"60d @Rotate { ... }" +"0.71 @Scale { ... }" +"@QuotedDisplay @Scale { ... }" +"@IncludeGraphic filename.eps" +} + +@LP +@Heading { 17. Miscellaneous } +@LD lines @Break { +@Code "@Underline { will be underlined }" +@Code "@Date" +@Code "@Time" +@Code "German @Language { ... }" +@Code "\# comment to end of line" +@Code "\"#&/@^{}|~\"" (enclose these characters in quotes) +} +} +} # end second table +@End @Appendix diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas new file mode 100755 index 0000000000000..239d35a111c6e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas @@ -0,0 +1,31 @@ +@Chapter + @Title { The Basics } + @Tag { basics } +@Begin +@LP +The Lout document formatting system has been designed with the needs of +the ordinary user very much in mind. Although the features of Lout are +virtually endless, and include mathematical equations, diagrams made from +lines and shapes, bibliographic databases, and so on, the system is very +simple to use. +@BeginSections +@Include { bas_star } +@Include { bas_objs } +@Include { bas_spac } +@Include { bas_char } +@Include { bas_empt } +@Include { bas_font } +@Include { bas_head } +@Include { bas_par1 } +@Include { bas_par2 } +@Include { bas_line } +@Include { bas_hyph } +@Include { bas_unde } +@Include { bas_date } +@Include { bas_lang } +@Include { bas_supe } +@Include { bas_verb } +@Include { bas_drop } +@Include { bas_conv } +@EndSections +@End @Chapter diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_char b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_char new file mode 100755 index 0000000000000..7efa5667a4598 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_char @@ -0,0 +1,325 @@ +@Section + @Title { Characters } + @Tag { characters } +@Begin +@PP +The usual way to get characters into a document is simply to type them as +characters. @Index characters +we have been doing all along. However, for some characters this is not +possible, either because they have some special meaning, as @Code "{" +and @Code "}" do, or because the keyboard has no button for them. This +section explains how to get every possible character: every printable +character in the ISO-LATIN-1 character set, every character in the Adobe +Systems Symbol font, plus the characters {@Char quotesinglbase}, +{@Char quotedblbase}, {@Char ellipsis}, {@Char OE}, {@Char oe}, +{@Char quotedblleft}, {@Char quotedblright}, {@Char fi}, +{@Char fl}, {@Char endash}, {@Char emdash}, {@Char bullet}, {@Char dagger}, +{@Char daggerdbl}, {@Char florin}, {@Char fraction}, and @Euro. If it +exists at all, you will find it here. ISO-LATIN-2 and Russian characters +are available separately. In principle, there is no limit to the characters +available, but to go beyond those given in this section requires expertise +in defining encoding vectors and fonts @Cite { $kingston1995lout.expert}. +@PP +First up we have the characters that you get simply by typing +them. The characters themselves are shown at the left, and what you +type to get them at the right: +@ID @OneRow @Tab + vmargin { 0.5vx } + @Fmta { @Col @CC A ! @Col @Code A ! @Col ! @Col @CC B ! @Col @Code B ! + @Col ! @Col @CC C ! @Col @Code C ! @Col ! @Col @CC D ! @Col @Code D ! + @Col ! @Col @CC E ! @Col @Code E ! @Col ! @Col @CC F ! @Col @Code F } +{ +@Rowa A { ! } B { $ } C { % } D { ' } E { ( } F { ) } +@Rowa A { * } B { + } C { , } D { - } E { 0 } F { 1 } +@Rowa A { 2 } B { 3 } C { 4 } D { 5 } E { 6 } F { 7 } +@Rowa A { 8 } B { 9 } C { : } D { ; } E { < } F { = } +@Rowa A { > } B { ? } C { A } D { B } E { C } F { D } +@Rowa A { E } B { F } C { G } D { H } E { I } F { J } +@Rowa A { K } B { L } C { M } D { N } E { O } F { P } +@Rowa A { Q } B { R } C { S } D { T } E { U } F { V } +@Rowa A { W } B { X } C { Y } D { Z } E { [ } F { ] } +@Rowa A { _ } B { ` } C { a } D { b } E { c } F { d } +@Rowa A { e } B { f } C { g } D { h } E { i } F { j } +@Rowa A { k } B { l } C { m } D { n } E { o } F { p } +@Rowa A { q } B { r } C { s } D { t } E { u } F { v } +@Rowa A { w } B { x } C { y } D { z } E { } F { } +} +Next come characters that have buttons but have a special meaning if +they are typed directly, and consequently have to be enclosed in double +quotes to turn off this meaning: +quote.chars @Index { quote characters } +@ID @OneRow @Tab + @Fmta { @Col @CC A ! @Col @Code B ! @Col ! + @Col @CC C ! @Col @Code D ! @Col ! + @Col @CC E ! @Col @Code F ! @Col ! + @Col @CC G ! @Col @Code H ! @Col I + } +{ +@Rowa + A { "\"" } B { "\"\\\"\"" } + C { "#" } D { "\"#\"" } + E { "&" } F { "\"&\"" } + G { "/" } H { "\"/\"" } +@Rowa + A { "@" } B { "\"@\"" } + C { "\\" } D { "\"\\\\\"" } + E { "^" } F { "\"^\"" } + G { "{" } H { "\"{\"" } +@Rowa + A { "|" } B { "\"|\"" } + C { "}" } D { "\"}\"" } + E { "~" } F { "\"~\"" } + G { } H { "\" \"" } + I { (space character) } +} +If you think you want {@Code "\""}, you probably really want `` and '', +for which see below. You can place whole sequences of characters, special +or not, inside one pair of double quotes: +@ID @OneRow @Tab + @Fmta { @Col A ! @Col ! @Col @Code B } +{ +@Rowa + A { "jeff/includes/su_crest.eps" } + B { "\"jeff/includes/su_crest.eps\"" } +@Rowa + A { "\"@PP\"" } + B { "\"\\\"@PP\\\"\"" } +} +Next we have some miscellaneous characters which have been deemed +sufficiently important to deserve their own symbols: +@ID @OneRow @Tab + vmargin { 0.5vx } + @Fmta { @Col A ! @Col @Code B ! @Col ! @Col C ! @Col @Code D ! + @Col ! @Col E ! @Col @Code F } +{ + @Rowa + A { `` } + B { "``" } + C { ,, } + D { ",," } + E { -- } + F { "--" } + @Rowa + A { '' } + B { "''" } + C { ... } + D { "..." } + E { --- } + F { "---" } + @Rowa + A { @Bullet bullet @Index @Code "@Bullet" } + B { "@Bullet" } + C { @Star star @Index @Code "@Star" } + D { "@Star" } + E { @ParSym parsym @Index @Code "@ParSym" } + F { "@ParSym" } + @Rowa + A { @SectSym sectsym @Index @Code "@SectSym" } + B { "@SectSym" } + C { @Dagger dagger @Index @Code "@Dagger" } + D { "@Dagger" } + E { @DaggerDbl daggerdbl @Index @Code "@DaggerDbl" } + F { "@DaggerDbl"} + @Rowa + A { @CDot cdot @Index @Code "@CDot" } + B { "@CDot" } + C { @Sterling sterling @Index @Code "@Sterling" } + D { "@Sterling" } + E { @Yen yen @Index @Code "@Yen" } + F { "@Yen" } + @Rowa + A { @Florin florin @Index @Code "@Florin" } + B { "@Florin" } + C { @Degree degree @Index @Code "@Degree" } + D { "@Degree" } + E { @Minute minute @Index @Code "@Minute" } + F { "@Minute" } + @Rowa + A { @Second second @Index @Code "@Second" } + B { "@Second" } + C { @Lozenge lozenge @Index @Code "@Lozenge" } + D { "@Lozenge" } + E { @Multiply multiply @Index @Code "@Multiply"} + F { "@Multiply" } + @Rowa + A { @Divide divide @Index @Code "@Divide" } + B { "@Divide" } + C { @CopyRight copyright @Index @Code "@CopyRight" } + D { "@CopyRight"} + E { @Register register @Index @Code "@Register" } + F { "@Register" } + @Rowa + A { @TradeMark trademark @Index @Code "@TradeMark" } + B { "@TradeMark"} + C { @Euro euro @Index @Code "@Euro" } + D { "@Euro"} +} +Next we have the complete ISO-LATIN-1 character set, whose members you +iso.latin.1 @Index { ISO-LATIN-1 character set } +char. @Index { @Code "@Char" symbol } +get with the @Code "@Char" symbol followed by the name of the character +you want: +@ID @OneRow -3p @Font @Tab + hmargin { 0.1c } + vmargin { 0.4vo } + @Fmta { @Col @CC @Char A ! @Col @Code { "@Char" A } ! @Col ! + @Col @CC @Char B ! @Col @Code { "@Char" B } ! @Col ! + @Col @CC @Char C ! @Col @Code { "@Char" C } ! @Col ! + @Col @CC @Char D ! @Col @Code { "@Char" D } } + @Fmtb { @Col @CC @Char A ! @Col @Code { "@Char" A } ! @Col ! + @Col ! @Col ! @Col ! @Col ! @Col ! @Col ! @Col ! @Col } +{ +@Rowa A { space } B { exclam } C { quotedbl } D { numbersign } +@Rowa A { dollar } B { percent } C { ampersand } D { quoteright } +@Rowa A { parenleft } B { parenright } C { asterisk } D { plus } +@Rowa A { comma } B { hyphen } C { period } D { slash } +@Rowa A { zero } B { one } C { two } D { three } +@Rowa A { four } B { five } C { six } D { seven } +@Rowa A { eight } B { nine } C { colon } D { semicolon } +@Rowa A { less } B { equal } C { greater } D { question } +@Rowa A { at } B { A } C { B } D { C } +@Rowa A { D } B { E } C { F } D { G } +@Rowa A { H } B { I } C { J } D { K } +@Rowa A { L } B { M } C { N } D { O } +@Rowa A { P } B { Q } C { R } D { S } +@Rowa A { T } B { U } C { V } D { W } +@Rowa A { X } B { Y } C { Z } D { bracketleft } +@Rowa A { backslash } B { bracketright } C { asciicircum } D { underscore } +@Rowa A { quoteleft } B { a } C { b } D { c } +@Rowa A { d } B { e } C { f } D { g } +@Rowa A { h } B { i } C { j } D { k } +@Rowa A { l } B { m } C { n } D { o } +@Rowa A { p } B { q } C { r } D { s } +@Rowa A { t } B { u } C { v } D { w } +@Rowa A { x } B { y } C { z } D { braceleft } +@Rowa A { bar } B { braceright } C { asciitilde } D { dotlessi } +@Rowa A { grave } B { acute } C { circumflex } D { tilde } +@Rowa A { macron } B { breve } C { dotaccent } D { dieresis } +@Rowa A { ring } B { cedilla } C { hungarumlaut } D { ogonek } +@Rowa A { caron } B { space } C { exclamdown } D { cent } +@Rowa A { sterling } B { currency } C { yen } D { brokenbar } +@Rowa A { section } B { dieresis } C { copyright } D { ordfeminine } +@Rowa A { guillemotleft } B { logicalnot } C { hyphen } D { registered } +@Rowa A { macron } B { degree } C { plusminus } D { twosuperior } +@Rowa A { threesuperior } B { acute } C { mu } D { paragraph } +@Rowa A { periodcentered } B { cedilla } C { onesuperior } D { ordmasculine } +@Rowa A { guillemotright } B { onequarter } C { onehalf } D { threequarters } +@Rowa A { questiondown } B { Agrave } C { Aacute } D { Acircumflex } +@Rowa A { Atilde } B { Adieresis } C { Aring } D { AE } +@Rowa A { Ccedilla } B { Egrave } C { Eacute } D { Ecircumflex } +@Rowa A { Edieresis } B { Igrave } C { Iacute } D { Icircumflex } +@Rowa A { Idieresis } B { Eth } C { Ntilde } D { Ograve } +@Rowa A { Oacute } B { Ocircumflex } C { Otilde } D { Odieresis } +@Rowa A { multiply } B { Oslash } C { Ugrave } D { Uacute } +@Rowa A { Ucircumflex } B { Udieresis } C { Yacute } D { Thorn } +@Rowa A { germandbls } B { agrave } C { aacute } D { acircumflex } +@Rowa A { atilde } B { adieresis } C { aring } D { ae } +@Rowa A { ccedilla } B { egrave } C { eacute } D { ecircumflex } +@Rowa A { edieresis } B { igrave } C { iacute } D { icircumflex } +@Rowa A { idieresis } B { eth } C { ntilde } D { ograve } +@Rowa A { oacute } B { ocircumflex } C { otilde } D { odieresis } +@Rowa A { divide } B { oslash } C { ugrave } D { uacute } +@Rowa A { ucircumflex } B { udieresis } C { yacute } D { thorn } +@Rowb A { ydieresis } +} +Of course, many of these characters can also be typed directly, or with the +aid of double quotes, as we have seen. If your keyboard has accented +accented @Index { accented characters } +characters on it, you can type them directly too; if not, you need to +use the @Code "@Char" symbol, in which case you will probably need +braces as well: +@ID @Code "gar{@Char ccedilla}on" +to distinguish the @Code "@Char" symbol and the character name from +adjacent letters. +@PP +Next we have the Adobe Systems Symbol font, a treasure trove of +symbol. @Index { Symbol font } +sym. @Index { @Code "@Sym" symbol } +exotic characters obtained with the @Code "@Sym" symbol: +@ID @OneRow -3p @Font @Tab + hmargin { 0.1c } + vmargin { 0.4vo } + @Fmta { @Col @CC @Sym A ! @Col @Code { "@Sym" A } ! @Col ! + @Col @CC @Sym B ! @Col @Code { "@Sym" B } ! @Col ! + @Col @CC @Sym C ! @Col @Code { "@Sym" C } ! @Col ! + @Col @CC @Sym D ! @Col @Code { "@Sym" D } } +{ +@Rowa A { space } B { exclam } C { universal } D { numbersign } +@Rowa A { existential } B { percent } C { ampersand } D { suchthat } +@Rowa A { parenleft } B { parenright } C { asteriskmath } D { plus } +@Rowa A { comma } B { minus } C { period } D { slash } +@Rowa A { zero } B { one } C { two } D { three } +@Rowa A { four } B { five } C { six } D { seven } +@Rowa A { eight } B { nine } C { colon } D { semicolon } +@Rowa A { less } B { equal } C { greater } D { question } +@Rowa A { congruent } B { Alpha } C { Beta } D { Chi } +@Rowa A { Delta } B { Epsilon } C { Phi } D { Gamma } +@Rowa A { Eta } B { Iota } C { theta1 } D { Kappa } +@Rowa A { Lambda } B { Mu } C { Nu } D { Omicron } +@Rowa A { Pi } B { Theta } C { Rho } D { Sigma } +@Rowa A { Tau } B { Upsilon } C { sigma1 } D { Omega } +@Rowa A { Xi } B { Psi } C { Zeta } D { bracketleft } +@Rowa A { therefore } B { bracketright } C { perpendicular } D { underscore } +@Rowa A { radicalex } B { alpha } C { beta } D { chi } +@Rowa A { delta } B { epsilon } C { phi } D { gamma } +@Rowa A { eta } B { iota } C { phi1 } D { kappa } +@Rowa A { lambda } B { mu } C { nu } D { omicron } +@Rowa A { pi } B { theta } C { rho } D { sigma } +@Rowa A { tau } B { upsilon } C { omega1 } D { omega } +@Rowa A { xi } B { psi } C { zeta } D { braceleft } +@Rowa A { bar } B { braceright } C { similar } D { Upsilon1 } +@Rowa A { minute } B { lessequal } C { fraction } D { infinity } +@Rowa A { florin } B { club } C { diamond } D { heart } +@Rowa A { spade } B { arrowboth } C { arrowleft } D { arrowup } +@Rowa A { arrowright } B { arrowdown } C { degree } D { plusminus } +@Rowa A { second } B { greaterequal } C { multiply } D { proportional } +@Rowa A { partialdiff } B { bullet } C { divide } D { notequal } +@Rowa A { equivalence } B { approxequal } C { ellipsis } D { arrowvertex } +@Rowa A { arrowhorizex } B { carriagereturn } C { aleph } D { Ifraktur } +@Rowa A { Rfraktur } B { weierstrass } C { circlemultiply } D { circleplus } +@Rowa A { emptyset } B { intersection } C { union } D { propersuperset } +@Rowa A { reflexsuperset } B { notsubset } C {propersubset} D {reflexsubset} +@Rowa A { element } B { notelement } C { angle } D { gradient } +@Rowa A { registerserif } B { copyrightserif } C {trademarkserif} D {product} +@Rowa A { radical } B { dotmath } C { logicalnot } D { logicaland } +@Rowa A { logicalor } B { arrowdblboth } C { arrowdblleft } D { arrowdblup } +@Rowa A { arrowdblright } B { arrowdbldown } C { lozenge } D { angleleft } +@Rowa A { registersans } B { copyrightsans } C {trademarksans} D {summation} +@Rowa A { parenlefttp } B { parenleftex } C { parenleftbt } D {bracketlefttp} + vmargin { 0.5vx } +@Rowa A { bracketleftex } B { bracketleftbt } C {bracelefttp} D {braceleftmid} + vmargin { 0.5vx } +@Rowa A { braceleftbt } B { braceex } C { angleright } D { integral } + vmargin { 0.5vx } +@Rowa A { integraltp } B { integralex } C { integralbt } D { parenrighttp } + vmargin { 0.5vx } +@Rowa A {parenrightex} B {parenrightbt} C {bracketrighttp} D {bracketrightex} + vmargin { 0.5vx } +@Rowa A { bracketrightbt } B {bracerighttp} C {bracerightmid} D {bracerightbt} + vmargin { 0.5vx } +} +There is only one Symbol font; it does not come in bold or italic faces +like the other fonts. Typing @Code "@B @Sym alpha" is therefore useless, +and anyway there is no bold @Sym alpha character in any font distributed +with Lout (except see Section {@NumberOf teq}). +@PP +Finally we have a few more characters that you get with the @Code "@Char" +symbol, although they aren't ISO-LATIN-1 characters. +@ID @OneRow -3p @Font @Tab + hmargin { 0.1c } + vmargin { 0.4vo } + @Fmta { @Col @CC @Char A ! @Col @Code { "@Char" A } ! @Col ! + @Col @CC @Char B ! @Col @Code { "@Char" B } ! @Col ! + @Col @CC @Char C ! @Col @Code { "@Char" C } ! @Col ! + @Col @CC @Char D ! @Col @Code { "@Char" D } } + @Fmtb { @Col @CC @Char A ! @Col @Code { "@Char" A } ! @Col ! + @Col ! @Col ! @Col ! @Col ! @Col ! @Col ! @Col ! @Col } +{ +@Rowa A { quotesinglbase } B { quotedblbase } C { ellipsis } D { OE } +@Rowa A { oe } B { quotedblleft } C { quotedblright } D { fi } +@Rowa A { fl } B { endash } C { emdash } D { bullet } +@Rowa A { dagger } B { daggerdbl } C { florin } D { fraction } +} +Most of these characters are also in the list of `characters important +enough to deserve their own symbols' given above. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_conv b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_conv new file mode 100755 index 0000000000000..cd971b01f20b0 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_conv @@ -0,0 +1,75 @@ +@Section + @Title { Alternative conventions for white space } + @Tag { white } +@Begin +@PP +As Section {@NumberOf spaces} explains, when two objects are separated +by one or more white space characters (spaces, tabs, and newlines), this +same amount of white space will separate the two objects in the output. +@PP +Two other conventions for interpreting these white spaces have been +used in other document formatting systems. Roughly, they are: +@ID @Tab + @Fmta { @Col A ! @Col B } +{ +@Rowa + A { troff } + B { Like Lout, except that at every point where a sentence ends at +the end of an input line, add one extra space in the output. } +@Rowa + A { @TeX } + B { Replace all sequences of two or more white spaces by one. Then, +at every point where a sentence ends, whether or not it is at the end +of a line, add one extra space in the output. } +} +Lout offers these two alternative conventions by means of the +initialspace. @Index { @Code "@InitialSpace" option } +@Code "@InitialSpace" option. This is similar to the +@Code "@InitialFont" option described at the end of Section +{@NumberOf fonts}, in that you can set it at the beginning of your +document, like this: +@ID @Code { +"@SysInclude { doc }" +"@Document" +" @InitialSpace { lout }" +"//" +"@Text @Begin" +"..." +"@End @Text" +} +or you can set it in the setup file. The above example shows the +default value, {@Code lout}, which produces Lout's usual spacing; +lout.space @Index { @Code lout spacing } +troff.space @Index { @Code troff spacing } +tex.space @Index { @Code tex (@LaTeX) spacing } +the alternative values are @Code "troff" and {@Code "tex"}. +@PP +How to tell whether a sentence has ended is a vexed question. For +the @Code "troff" method, Lout looks for a word at the end of a line +ending in one of `.', `:', `?', or `!' optionally followed by either +a right quote character or a right parenthesis. Actually, this depends +on the current language (Section {@NumberOf languages}); the rule just +given is for English, and other languages may differ. +@PP +The @Code "tex" rule for where a sentence ends is slightly more +complicated. Lout looks for a word, not necessarily at the end +of an input line, which ends as described for @Code "troff" but +in addition has a lower-case letter preceding that. +@PP +In all cases you must use a paragraph symbol, such as @Code "@PP" or +{@Code "@LP"}, to separate your paragraphs. The common convention of +other systems, that a blank line marks a paragraph, is never true of Lout. +@PP +Whatever rule is adopted, there are occasional exceptions where you +will have to indicate explicitly whether you want an ordinary space +or a between-sentences space. For this there are two symbols, +@Code "~" (ordinary space) and {@Code "~~"} (between-sentences +space). For example, +@ID @Code "Dr.~Kingston" +will produce an ordinary space between the two words, even with +@Code "tex" which would otherwise consider that spot to be the end +of a sentence. Spaces adjacent to these two symbols have no effect on +the result. Please note however that @Code "~" produces an +unbreakable space (that is, one that will never be replaced by the end of +a line) in contrast to just leaving a space, which is breakable. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_date b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_date new file mode 100755 index 0000000000000..16ee4336eed9a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_date @@ -0,0 +1,84 @@ +@Section + @Title { The current date and time } + @Tag { date } +@Begin +@PP +The @Code "@Date" and @Code "@Time" symbols produce the current date +date. @Index @Code "@Date" +time. @Index @Code "@Time" +and time: +@ID @Code "It is now @Time on @Date." +produces something like +@ID { It is now @Time on @Date. } +The result depends on the current language. +@PP +Both symbols have a @Code "@Format" option that changes the format of +the result: +@ID @Code "@Date @Format { @DayNum\"/\"@MonthNum\"/\"@ShortYear }" +The result is the @Code "@Format" option with the symbols replaced by +the appropriate values: +@ID { @Date @Format { @DayNum"/"@MonthNum"/"@ShortYear } } +The @Code "/" characters have been enclosed in double quotes for the +usual reason (Section {@NumberOf characters}). +@PP +Here is the full list of symbols that you can use within both +@Code "@Format" options: +@ID @OneRow @Tab + @Fmta { @Col @Code A ! @Col B } + vmargin { 0.5vx } +{ +@Rowa + A { "@Year" } + B { The year, e.g. @Code "1994" } +@Rowa + A { "@ShortYear" } + B { The last two digits of the year, e.g. @Code "94" } +@Rowa + A { "@Month" } + B { The month, e.g. @Code "December" } +@Rowa + A { "@ShortMonth" } + B { The month abbreviated, e.g. @Code "Dec" } +@Rowa + A { "@MonthNum" } + B { The number of the month, between @Code "1" and @Code "12" } +@Rowa + A { "@Day" } + B { The day of the week, e.g. @Code "Saturday" } +@Rowa + A { "@ShortDay" } + B { The day abbreviated, e.g. @Code "Sat" } +@Rowa + A { "@DayNum" } + B { The day of the month, between @Code "1" and @Code "31" } +@Rowa + A { "@MeriDiem" } + B { @Code "a.m." or @Code "p.m." } +@Rowa + A { "@ShortMeriDiem" } + B { @Code "am" or @Code "pm" } +@Rowa + A { "@Hour" } + B { The hour, between @Code "00" and @Code "23" } +@Rowa + A { "@ShortHour" } + B { The hour, between @Code "0" and @Code "23" } +@Rowa + A { "@TwelveHour" } + B { The hour, between @Code "1" and @Code "12" } +@Rowa + A { "@Minute" } + B { The minute, between @Code "00" and @Code "59" } +@Rowa + A { "@Second" } + B { The second, almost always between @Code "00" and @Code "59" } +} +The default format for @Code "@Date" in English is +@ID @Code "@Date @Format { @DayNum @Month, @Year }" +and the default format for @Code "@Time" in English is +@ID @Code "@Time @Format { @TwelveHour.@Minute @MeriDiem }" +Both default formats depend on the current language, and +so do {@Code "@Month"}, {@Code "@ShortMonth"}, +{@Code "@Day"}, and {@Code "@ShortDay"},{@Code "@MeriDiem" } +and {@Code "@ShortMeriDiem" }. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_drop b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_drop new file mode 100755 index 0000000000000..09781235ec5bf --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_drop @@ -0,0 +1,44 @@ +@Section + @Title { Drop capitals } + @Tag { dropcaps } +@Begin +@PP +There are two symbols for producing drop capitals, {@Code "@DropCapTwo"} +drop.cap.two.sym @Index @Code "@DropCapTwo" +drop.cap.three.sym @Index @Code "@DropCapThree" +and {@Code "@DropCapThree"}. Place the capital to be dropped just +before the symbol, and the rest of the paragraph after it: +@ID @OneRow @Code { +"I @DropCapTwo {" +"t is a truth universally acknowledged, that a single man" +"in possession of a good fortune, must be in want of a wife." +"}" +} +produces the object +@ID 3i @Wide { +I @DropCapTwo { +t is a truth universally acknowledged, that a single man +in possession of a good fortune, must be in want of a wife. +} +} +@Code "@DropCapThree" is the same except that the capital is larger +and spreads over three lines. +@PP +Because Lout occasionally gets the height of the enlarged capital +slightly wrong, there is a @Code "height" option which allows you +to change the height if you need to: +@ID @OneRow @Code { +"H @DropCapTwo height { 1.5v }" +"{" +" ..." +"}" +} +This shows the default value for the height of the capital in +{@Code "@DropCapTwo"}: 1.5 times the current inter-line +spacing. The default height in @Code "@DropCapThree" is {@Code "2.5v"}. +@PP +These symbols produce an object which may appear anywhere in the +usual way. A paragraph symbol will be needed after the paragraph. The +paragraph breaking style of the body of the paragraph will be +{@Code "adjust nohyphen"}; this cannot be changed at present. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_empt b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_empt new file mode 100755 index 0000000000000..c9f615d528c94 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_empt @@ -0,0 +1,26 @@ +@Section + @Title { The empty object } + @Tag { empty } +@Begin +@PP +It is possible to produce examples in which an object is clearly +empty. @Index { empty object } +missing: +@ID @Code "{ @I }" +The @Code "@I" symbol is supposed to italicize the following object, +but in this example there isn't one. A more plausible example is +@ID @OneRow @Code { +"@PP" +"@PP" +} +There are supposed to be paragraph objects between paragraph symbols, +but here there aren't. +@PP +Wherever an object is clearly missing, Lout inserts an @I { empty object }, +which is a rectangle of size zero by zero that prints as nothing. Here +are two other ways to get an empty object: +@ID @Code "{} \"\"" +Braces always enclose an object, so Lout is obliged to insert an empty +object between them; the two double quotes make a word with no characters +in it, which is taken to be an empty object. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_font b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_font new file mode 100755 index 0000000000000..65d711ede77ad --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_font @@ -0,0 +1,629 @@ +@Section + @Title { Fonts and font sizes } + @Tag { fonts } +@Begin +@PP +A @I font is a collection of characters that may be printed. For +font. @Index { font } +example, here is the Times Roman font: +@ID @OneRow { Times Base } @Font 0.05c @Space { +{ @Char space } +{ @Char exclam } +{ @Char quotedbl } +{ @Char numbersign } +{ @Char dollar } +{ @Char percent } +{ @Char ampersand } +{ @Char quoteright } +{ @Char parenleft } +{ @Char parenright } +{ @Char asterisk } +{ @Char plus } +{ @Char comma } +{ @Char hyphen } +{ @Char period } +{ @Char slash } +{ @Char zero } +{ @Char one } +{ @Char two } +{ @Char three } +{ @Char four } +{ @Char five } +{ @Char six } +{ @Char seven } +{ @Char eight } +{ @Char nine } +{ @Char colon } +{ @Char semicolon } +{ @Char less } +{ @Char equal } +{ @Char greater } +{ @Char question } +{ @Char at } +{ @Char bracketleft } +{ @Char backslash } +{ @Char bracketright } +{ @Char asciicircum } +{ @Char underscore } +{ @Char quoteleft } +//1vx +{ @Char A } +{ @Char B } +{ @Char C } +{ @Char D } +{ @Char E } +{ @Char F } +{ @Char G } +{ @Char H } +{ @Char I } +{ @Char J } +{ @Char K } +{ @Char L } +{ @Char M } +{ @Char N } +{ @Char O } +{ @Char P } +{ @Char Q } +{ @Char R } +{ @Char S } +{ @Char T } +{ @Char U } +{ @Char V } +{ @Char W } +{ @Char X } +{ @Char Y } +{ @Char Z } +//1vx +{ @Char a } +{ @Char b } +{ @Char c } +{ @Char d } +{ @Char e } +{ @Char f } +{ @Char g } +{ @Char h } +{ @Char i } +{ @Char j } +{ @Char k } +{ @Char l } +{ @Char m } +{ @Char n } +{ @Char o } +{ @Char p } +{ @Char q } +{ @Char r } +{ @Char s } +{ @Char t } +{ @Char u } +{ @Char v } +{ @Char w } +{ @Char x } +{ @Char y } +{ @Char z } +//1vx +{ @Char braceleft } +{ @Char bar } +{ @Char braceright } +{ @Char asciitilde } +{ @Char dotlessi } +{ @Char grave } +{ @Char acute } +{ @Char circumflex } +{ @Char tilde } +{ @Char macron } +{ @Char breve } +{ @Char dotaccent } +{ @Char dieresis } +{ @Char ring } +{ @Char cedilla } +{ @Char hungarumlaut } +{ @Char ogonek } +{ @Char caron } +{ @Char space } +{ @Char exclamdown } +{ @Char cent } +{ @Char sterling } +{ @Char currency } +{ @Char yen } +{ @Char brokenbar } +{ @Char section } +{ @Char dieresis } +{ @Char copyright } +{ @Char ordfeminine } +{ @Char guillemotleft } +{ @Char logicalnot } +{ @Char hyphen } +{ @Char registered } +{ @Char macron } +{ @Char degree } +{ @Char plusminus } +{ @Char twosuperior } +{ @Char threesuperior } +{ @Char acute } +{ @Char mu } +{ @Char paragraph } +{ @Char periodcentered } +{ @Char cedilla } +{ @Char onesuperior } +{ @Char ordmasculine } +{ @Char guillemotright } +{ @Char onequarter } +{ @Char onehalf } +{ @Char threequarters } +{ @Char questiondown } +//1vx +{ @Char Agrave } +{ @Char Aacute } +{ @Char Acircumflex } +{ @Char Atilde } +{ @Char Adieresis } +{ @Char Aring } +{ @Char AE } +{ @Char Ccedilla } +{ @Char Egrave } +{ @Char Eacute } +{ @Char Ecircumflex } +{ @Char Edieresis } +{ @Char Igrave } +{ @Char Iacute } +{ @Char Icircumflex } +{ @Char Idieresis } +{ @Char Eth } +{ @Char Ntilde } +{ @Char Ograve } +{ @Char Oacute } +{ @Char Ocircumflex } +{ @Char Otilde } +{ @Char Odieresis } +{ @Char multiply } +{ @Char Oslash } +{ @Char Ugrave } +{ @Char Uacute } +{ @Char Ucircumflex } +{ @Char Udieresis } +{ @Char Yacute } +{ @Char Thorn } +//1vx +{ @Char germandbls } +{ @Char agrave } +{ @Char aacute } +{ @Char acircumflex } +{ @Char atilde } +{ @Char adieresis } +{ @Char aring } +{ @Char ae } +{ @Char ccedilla } +{ @Char egrave } +{ @Char eacute } +{ @Char ecircumflex } +{ @Char edieresis } +{ @Char igrave } +{ @Char iacute } +{ @Char icircumflex } +{ @Char idieresis } +{ @Char eth } +{ @Char ntilde } +{ @Char ograve } +{ @Char oacute } +{ @Char ocircumflex } +{ @Char otilde } +{ @Char odieresis } +{ @Char divide } +{ @Char oslash } +{ @Char ugrave } +{ @Char uacute } +{ @Char ucircumflex } +{ @Char udieresis } +{ @Char yacute } +{ @Char thorn } +{ @Char ydieresis } +} +and here is the Times Italic font: +@ID @OneRow { Times Slope } @Font 0.05c @Space { +{ @Char space } +{ @Char exclam } +{ @Char quotedbl } +{ @Char numbersign } +{ @Char dollar } +{ @Char percent } +{ @Char ampersand } +{ @Char quoteright } +{ @Char parenleft } +{ @Char parenright } +{ @Char asterisk } +{ @Char plus } +{ @Char comma } +{ @Char hyphen } +{ @Char period } +{ @Char slash } +{ @Char zero } +{ @Char one } +{ @Char two } +{ @Char three } +{ @Char four } +{ @Char five } +{ @Char six } +{ @Char seven } +{ @Char eight } +{ @Char nine } +{ @Char colon } +{ @Char semicolon } +{ @Char less } +{ @Char equal } +{ @Char greater } +{ @Char question } +{ @Char at } +{ @Char bracketleft } +{ @Char backslash } +{ @Char bracketright } +{ @Char asciicircum } +{ @Char underscore } +{ @Char quoteleft } +//1vx +{ @Char A } +{ @Char B } +{ @Char C } +{ @Char D } +{ @Char E } +{ @Char F } +{ @Char G } +{ @Char H } +{ @Char I } +{ @Char J } +{ @Char K } +{ @Char L } +{ @Char M } +{ @Char N } +{ @Char O } +{ @Char P } +{ @Char Q } +{ @Char R } +{ @Char S } +{ @Char T } +{ @Char U } +{ @Char V } +{ @Char W } +{ @Char X } +{ @Char Y } +{ @Char Z } +//1vx +{ @Char a } +{ @Char b } +{ @Char c } +{ @Char d } +{ @Char e } +{ @Char f } +{ @Char g } +{ @Char h } +{ @Char i } +{ @Char j } +{ @Char k } +{ @Char l } +{ @Char m } +{ @Char n } +{ @Char o } +{ @Char p } +{ @Char q } +{ @Char r } +{ @Char s } +{ @Char t } +{ @Char u } +{ @Char v } +{ @Char w } +{ @Char x } +{ @Char y } +{ @Char z } +//1vx +{ @Char braceleft } +{ @Char bar } +{ @Char braceright } +{ @Char asciitilde } +{ @Char dotlessi } +{ @Char grave } +{ @Char acute } +{ @Char circumflex } +{ @Char tilde } +{ @Char macron } +{ @Char breve } +{ @Char dotaccent } +{ @Char dieresis } +{ @Char ring } +{ @Char cedilla } +{ @Char hungarumlaut } +{ @Char ogonek } +{ @Char caron } +{ @Char space } +{ @Char exclamdown } +{ @Char cent } +{ @Char sterling } +{ @Char currency } +{ @Char yen } +{ @Char brokenbar } +{ @Char section } +{ @Char dieresis } +{ @Char copyright } +{ @Char ordfeminine } +{ @Char guillemotleft } +{ @Char logicalnot } +{ @Char hyphen } +{ @Char registered } +{ @Char macron } +{ @Char degree } +{ @Char plusminus } +{ @Char twosuperior } +{ @Char threesuperior } +{ @Char acute } +{ @Char mu } +{ @Char paragraph } +{ @Char periodcentered } +{ @Char cedilla } +{ @Char onesuperior } +{ @Char ordmasculine } +{ @Char guillemotright } +{ @Char onequarter } +{ @Char onehalf } +{ @Char threequarters } +{ @Char questiondown } +//1vx +{ @Char Agrave } +{ @Char Aacute } +{ @Char Acircumflex } +{ @Char Atilde } +{ @Char Adieresis } +{ @Char Aring } +{ @Char AE } +{ @Char Ccedilla } +{ @Char Egrave } +{ @Char Eacute } +{ @Char Ecircumflex } +{ @Char Edieresis } +{ @Char Igrave } +{ @Char Iacute } +{ @Char Icircumflex } +{ @Char Idieresis } +{ @Char Eth } +{ @Char Ntilde } +{ @Char Ograve } +{ @Char Oacute } +{ @Char Ocircumflex } +{ @Char Otilde } +{ @Char Odieresis } +{ @Char multiply } +{ @Char Oslash } +{ @Char Ugrave } +{ @Char Uacute } +{ @Char Ucircumflex } +{ @Char Udieresis } +{ @Char Yacute } +{ @Char Thorn } +//1vx +{ @Char germandbls } +{ @Char agrave } +{ @Char aacute } +{ @Char acircumflex } +{ @Char atilde } +{ @Char adieresis } +{ @Char aring } +{ @Char ae } +{ @Char ccedilla } +{ @Char egrave } +{ @Char eacute } +{ @Char ecircumflex } +{ @Char edieresis } +{ @Char igrave } +{ @Char iacute } +{ @Char icircumflex } +{ @Char idieresis } +{ @Char eth } +{ @Char ntilde } +{ @Char ograve } +{ @Char oacute } +{ @Char ocircumflex } +{ @Char otilde } +{ @Char odieresis } +{ @Char divide } +{ @Char oslash } +{ @Char ugrave } +{ @Char uacute } +{ @Char ucircumflex } +{ @Char udieresis } +{ @Char yacute } +{ @Char thorn } +{ @Char ydieresis } +} +As their names imply, these two fonts belong to the @I { Times family }, +a collection of fonts designed to go well together. Every font has a +@I { family name }, such as Times, Helvetica, or Courier, and a +family.name @Index { family name of font } +face.name @Index { face name of font } +@I { face name }, such as Roman or Italic. To find out how to +get the unusual characters, see Section {@NumberOf characters}. +@PP +Documents look best when they use just one font family, so the most +common need is to change to a different face within the current +family. We have already seen {@Code "@I"}, which changes to the Italic +face of the current family; there are six such symbols: +b. @Index @Code "@B" +i. @Index @Code "@I" +bi. @Index @Code "@BI" +ii. @Index @Code "@II" +s. @Index @Code "@S" +r. @Index @Code "@R" +@ID @OneRow @Tab + @Fmta { @Col @Code A ! @Col B } +{ +@Rowa + A { "@B { Hello World }" } + B { @B { Hello World } } +@Rowa + A { "@I { Hello World }" } + B { @I { Hello World } } +@Rowa + A { "@BI { Hello World }" } + B { @BI { Hello World } } +@Rowa + A { "@II { Hello World }" } + B { @II { Hello World } } +@Rowa + A { "@S { Hello World }" } + B { @S { Hello World } } +@Rowa + A { "@R { Hello World }" } + B { @R { Hello World } } +} +The symbols' names stand for Bold, Italic, Bold-Italic, Italic-Italic +(see below), Small capitals, and Roman. It is conventional to use Bold +for headings; Italic for emphasis, terms being defined, and subsidiary +headings; and Roman for the rest. Small capitals are not really a +different font; they are +small.caps @Index { small capitals } +made on demand from the current font. So you can write, for example, +@ID @Code "@I @S { Hello World }" +and get @I @S { Hello World }. +@PP +The @Code "@R" symbol is almost unnecessary, since the document as a +whole is set in a Roman face; but it is occasionally useful: +@ID @Code "@I { An Italic sentence with one @R Roman word }" +produces +@ID @I { An Italic sentence with one @R Roman word } +This illustrates the general principle that the effect of a font symbol +on the following object is subject to font symbols within that object. +@PP +When part of a title is to be set in italic font, neither @Code "@I" +nor @Code "@BI" is suitable because the part should appear in bold +italics in the title itself, but in ordinary italics in running headers +and the table of contents. The @Code "@II" symbol is the one for this +situation: it produces bold italics when the current font is bold, +and ordinary italics otherwise. +@PP +Changing families is a little more complicated. Here is the complete +list of font families and their faces available with Basser Lout Version 3: +@ID @OneRow @Tab + @Fmta { @Col @Code A ! @Col { ragged nohyphen } @Break @Code B } +{ +@Rowa + A { AvantGarde } + B { Base Slope Bold BoldSlope BoldObl Book BookOblique +CondBold CondBook CondDemi CondMedium Demi DemiOblique +ExtraLight ExtraLightObl Medium MediumObl } +@Rowa + A { Bookman } + B { Base Slope Bold BoldSlope BoldItalic Demi DemiItalic +Light LightItalic Medium MediumItalic } +@Rowa + A { Chancery } + B { Base Slope Bold BoldSlope +Roman Bold Italic Light Demi LightItalic MediumItalic +} +@Rowa + A { Courier } + B { Base Slope Bold BoldSlope BoldOblique Oblique } +@Rowa + A { Helvetica } + B { Base Slope Bold BoldSlope Black BlackOblique +BoldOblique Compressed Cond CondBlack CondBlackObl +CondBold CondBoldObl CondLight CondLightObl +CondOblique ExtraCompressed +Light LightOblique Narrow NarrowBold NarrowBoldObl +NarrowObl Oblique UltraCompressed } +@Rowa + A { Schoolbook } + B { Base Slope Bold BoldSlope BoldItalic Italic Roman } +@Rowa + A { Palatino } + B { Base Slope Bold BoldSlope BoldItalic +BoldItalicOsF BoldOsF Italic ItalicOsF Roman SC } +@Rowa + A { Symbol } + B { Base Slope Bold BoldSlope } +@Rowa + A { Times } + B { Base Slope Bold BoldSlope BoldItalic +BoldItalicOsF BoldSC ExtraBold Italic ItalicOsF +Roman RomanSC Semibold SemiboldItalic } +@Rowa + A { Dingbats } + B { Base Slope Bold BoldSlope } +} +Lout understands all these fonts, but your printing device may not. Times, +Helvetica, Courier, and Symbol at least seem to be ubiquitous, although +not in every face. These fonts work only with languages that use the +Latin1 character set; consult Section {@NumberOf languages} for more +information about this. It is not difficult for a Lout expert to extend this +list @Cite { $kingston1995lout.expert }. +@PP +It is a convention in Lout that every font family should at least +base. @Index { @Code Base font } +slope. @Index { @Code Slope font } +bold. @Index { @Code Bold font } +boldslope. @Index { @Code BoldSlope font } +contain faces called @Code { Base }, @Code { Slope }, @Code { Bold }, +and @Code { BoldSlope }, and these faces are what the @Code { "@R" }, +@Code { "@I" }, @Code { "@B" }, and @Code { "@BI" } symbols give you. But +this convention is something of a fiction for two reasons. First, +some font families don't have faces that could reasonably be described as +bold or whatever. In particular, the @Code Symbol family contains just +one face, and all four conventional face names produce that face. Second, +the four conventional face names are not names that typographers actually +use, @Code { Bold } excepted. @Code { Slope } produces an italic face +in some families and an oblique one in others. As the table shows, the +true names are available if you want to use them, but it is very convenient +to have a @Code { Slope } face that is guaranteed to exist no matter which +family is used. +@PP +The @Code "@Font" symbol changes the font of the following object. For +font.sym @Index @Code "@Font" +example, +@ID @Code "{ Helvetica Slope } @Font { Hello World }" +produces +@ID { Helvetica Slope } @Font { Hello World } +When changing to a different family, a face name must follow the family +name; but when changing face within a family, just the face name is +sufficient. +@PP +To make the characters larger or smaller, you need to change the +font.size @Index { font size } +@I { font size }, which can also be done with the @Code "@Font" +symbol. Font sizes are traditionally measured in {@I points}: there +are 72 points to one inch, and the most common font sizes are 12 point +and 10 point. However, as Section {@NumberOf objects} explains in +detail, any length including fractional lengths is acceptable: +@ID @Code "24p @Font { Hello World }" +changes to 24 point size, producing +@ID 24p @Font { Hello World } +It is also possible to specify a font size relative to the current +size: @Code "+2p" means two points larger, @Code "-2p" means two +points smaller, and @Code "1.5f" means 1.5 times the current font +size. +@PP +For the convenience of people who use fixed width fonts such as +Courier, there is an @Code "@F" symbol which switches to a +fixed width font family: +@ID @Code "@F { Hello world }" +produces +@ID @F { Hello world } +It is the same as writing @Code "{ Courier Base -1p } @Font ..." +with the @Code "-1p" included to compensate for the relatively +large appearance of the Courier font. +@PP +The document as a whole will be set in @Code { Times Base 12p }. To +change this you need to change the @Code "@InitialFont" option, for +initialfont. @Index @Code "@InitialFont" +example to +@ID @Code "@InitialFont { Helvetica Base 10p }" +to get Helvetica 10 point. You must give all three parts in +{@Code "@InitialFont"}: family, face, size. If you are using your own +setup file, as explained in Section {@NumberOf setup}, you can find the +@Code "@InitialFont" option there. If not, you can set it at the +beginning of your document as explained in Section {@NumberOf ordinary}. +@PP +There are two features that make fonts look better on the +page. @I Ligatures are pairs of letters run together; the most +ligatures. @Index { ligatures } +common ligatures are `fi' and `fl.' @I Kerning is moving adjacent +kerning. @Index { kerning } +letters closer together, for example in `VA.' Lout considers +ligatures and kerning to be integral parts of each font; you can prevent +them from happening only by enclosing one of the letters in a +@Code "@OneCol" symbol, as in {@Code "@OneCol { V }A" }. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_head b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_head new file mode 100755 index 0000000000000..4410c08985eb3 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_head @@ -0,0 +1,32 @@ +@Section + @Title { Headings } + @Tag { headings } +@Begin +@PP +The @Code "@Heading" symbol makes the following object into a +heading. @Index @Code "@Heading" +heading. Actually, all it does is change the font, so if you want a +centred heading you have to display it as well: +@ID @OneRow @Code { +"@Display @Heading { A Centred Heading }" +"Following text" +} +If you want a left-justified heading, use @Code "@LeftDisplay" instead +of @Code {"@Display"}. Alternatively, you can use no display symbol at +all, but then you will need paragraph symbols before and after: +@ID @OneRow @Code { +"@DP" +"@Heading { A Left-Justified Heading }" +"@PP" +"Following text" +} +The font used is @Code Bold in the current family, although you can +change this by changing the @Code "@HeadingFont" option in the setup +headingfont. @Index @Code "@HeadingFont" +file (Section {@NumberOf setup}). +@PP +The @Code "@Heading" symbol may be used with any type of document, but it +is really intended only for simple ones. In complex documents, large-scale +structure symbols (Section {@NumberOf largescale}) are usually more +appropriate. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_hyph b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_hyph new file mode 100755 index 0000000000000..6997f41f0dd04 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_hyph @@ -0,0 +1,37 @@ +@Section + @Title { Hyphenation } + @Tag { hyph } +@Begin +@PP +The @Code "@Break" symbol also controls hyphenation: @Code "hyphen" +hyphenation. @Index hyphenation +@Code "@Break" turns it on, @Code "nohyphen" @Code "@Break" turns it +off. For example, ragged breaking is often done without hyphenation: +@ID @OneRow @Code { +"@IndentedDisplay { ragged nohyphen } @Break {" +"This little paragraph will appear with" +"ragged ends to its lines." +"}" +} +Lout's method of choosing hyphenation points is copied from the @TeX +tex.hyph @SubIndex { hyphenation } +system, except that Lout will never place a hyphen within a sequence +of characters that form a ligature (fl and +ligatures.hyph @SubIndex { and hyphenation } +fi are the most common ligatures). +@PP +Hyphenation usually works well by itself; you should never need to +interfere with its ideas of what to do. However, if you do want +to tell Lout where you think a hyphen could be inserted, you can +use the @Code "&-" symbol: +@IndentedDisplay @Code { +"after&-math" +} +If @Code "&-" occurs directly after a hyphen character, hyphenation +will be permitted but no extra hyphen will be inserted. To prevent +hyphenation of a word, enclose the word in a @Code "@OneCol" symbol. +@PP +To turn hyphenation off throughout the document, you need to set the +@Code "@InitialBreak" option to {@Code "nohyphen"}, as described at the +end of Section {@NumberOf linespace}. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_lang b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_lang new file mode 100755 index 0000000000000..a4c33e95c47ee --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_lang @@ -0,0 +1,91 @@ +@Section + @Title { Languages other than English } + @Tag { languages } +@Begin +@PP +When part of a document is written in a language other than English, +languages. @Index { languages other than English } +Lout should be informed of this using the @Code "@Language" symbol: +language. @Index @Code "@Language" +@ID @OneRow @Code { +"... the garter, he said: French @Language { `Honi soit qui mal y" +"pense' }, and this saying ..." +} +Changing language is quite analogous to changing font using the +@Code "@Font" symbol. +@PP +Since accented characters (Section {@NumberOf characters}) are always +available irrespective of the language, at first sight it might seem +that there is no need to bother informing Lout what language you are +writing in. However, words are hyphenated differently depending on the +hyphenation.languages @SubIndex { in languages other than English } +language, and some symbols have different results in different +languages. For example, +@ID @Code "Danish @Language @Date" +produces +@ID { Danish @Language @Date } +date.languages @SubIndex { in languages other than English } +time.languages @SubIndex { in languages other than English } +lists.languages @SubIndex { in languages other than English } +and the alphabetic list symbols of Section {@NumberOf lists} also +vary with the current language. So it's worth doing for the sake of +knowing that non-English parts will appear as they should. +@PP +At the time of writing, the following languages were available: +@ID @OneRow @Code { +Czech Cesky Cestina +Danish Dansk +Dutch Nederlands +English +EnglishUK +Finnish Suomi +French Francais Fran{@Char ccedilla}ais +German Deutsch +Hungarian Magyar +Italian Italiano +Norwegian Norsk +Polish Polski +Portuguese Português +Russian +Slovenian Slovenia Slovenija +Spanish Espa{@Char ntilde}ol +Swedish Svenska +} +As shown, most languages have alternative names, all equally acceptable +to the @Code "@Language" symbol. @Code "EnglishUK" differs from +@Code "English" only by applying hyphenation rules said to be more +appropriate for British English. Hungarian does not yet allow +hyphenation. +@PP +If your entire document is in a language other than English, you need +to change the @Code "@InitialLanguage" option: +initiallanguage. @Index @Code "@InitialLanguage" +@ID @Code "@InitialLanguage { Deutsch }" +If you are using your own setup file (Section {@NumberOf setup}), you +can change it there. If not, you can change it at the start of your +document, as explained in Section {@NumberOf ordinary}. +@PP +Czech, Polish, and Slovenian use the Latin2 character set, and +users of these languages have to place +@ID @Code "@SysInclude { latin2 }" +at the start of their documents in order to get access to the +Latin2 versions of the fonts. +@FootNote { Prior to Version 3.21 of Lout, some accented characters +were missing from these Latin2 fonts, but this deficiency has now +been corrected by getting Lout to generate output for these characters +which prints their base letter and accent separately. } These have +family names such as TimesCE, CourierCE, HelveticaCE, and so on (CE +standing for Central European), to distinguish them from the same +fonts encoded in Latin1. The face names are unchanged. Consult +database file @Code "latin2.ld" in the standard database directory +for a complete list of these fonts. +@PP +Russian uses Cyrillic characters. In principle, users of Russian +have to place +@ID @Code "@SysInclude { russian }" +at the very start of their documents in order to get access to +Cyrillic fonts. However no such fonts are distributed +with the current version of Lout, so this line does nothing at +present. Other left-to-right languages are easily added, so +consult the author if your language is not listed. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_line b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_line new file mode 100755 index 0000000000000..3210cdced07ac --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_line @@ -0,0 +1,43 @@ +@Section + @Title { Line spacing } + @Tag { linespace } +@Begin +@PP +The @Code "@Break" symbol also controls the amount of space placed +line.spacing @Index { line spacing } +between the lines of paragraphs. This distance is best given using the +@Code "v" unit of measurement: @Code "1v" is the current line +separation (see Section {@NumberOf objects} for a description of +lengths in general). For example, +@ID @Code "2vx @Break ..." +produces double spacing in the paragraphs of the following object, and +double.spacing @Index { double spacing } +@ID @Code "0.9vx @Break ..." +produces cramped spacing, which can be useful in large tables that don't +quite fit on one page. The @Code "x" following the @Code "v" is required, +but its meaning is beyond our scope @Cite { $kingston1995lout.expert }. +@PP +To set the entire document in a different line spacing from the +initialbreak @Index @Code "@InitialBreak" +default, you need to change the @Code "@InitialBreak" option. If you +are using your own setup file (Section {@NumberOf setup}), +change it there. If not, you can change it at the beginning of your +document, as described in Section {@NumberOf ordinary}. +@PP +The default value of the @Code "@InitialBreak" option produces the +@Code "adjust" paragraph breaking style with a line spacing of 1.20 +times the current (that is, the initial) font size, and hyphenation +on: +@ID @Code "@InitialBreak { adjust 1.20fx hyphen }" +To get double spacing, change it to +@ID @Code "@InitialBreak { adjust 2.40fx hyphen }" +To get ragged paragraphs with hyphenation off, change it to +@ID @Code "@InitialBreak { ragged 1.20fx nohyphen }" +and so on. It is a good idea to define the initial line spacing using +the @Code "f" unit, since then if you change the initial font size the +line spacing will change with it. However, any length (Section +{@NumberOf objects}) with an @Code "x" appended will do: @Code "14px" +for 14 point, @Code "0.5cx" for 0.5 centimetres, etc. Don't use the +@Code "v" unit though, because it refers to some @I previous line +spacing, whereas here we are defining the line spacing for the first time. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_objs b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_objs new file mode 100755 index 0000000000000..f6a2f78725e88 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_objs @@ -0,0 +1,141 @@ +@Section + @Title { Objects, symbols, options, and lengths } + @Tag { objects } +@Begin +@PP +Lout is not concerned with the exact shapes of individual characters, +only with the rectangular areas they occupy: +@ID { +@Box margin { 0c } B & +@Box margin { 0c } i & +@Box margin { 0c } o & +@Box margin { 0c } l & +@Box margin { 0c } o & +@Box margin { 0c } g & +@Box margin { 0c } y +} +When letters join together into a word, the result is a larger rectangle +enclosing them all: +@ID @Box margin { 0c } Biology +When words join into lines we get even larger rectangles: +@ID @Box margin { 0c } { Biology is the study of living things. } +and so on up through paragraphs and columns to the largest rectangles, +which are pages. We call any such rectangle, whether made up of one +character, one word, one line, one paragraph, one page, or anything +object. @Index { object } +else, an @I { object }. +@PP +We also often say, for example, `the object +{@Code "@I { Hello world }"},' referring to a piece of Lout's input as +an object. This makes sense because we are anticipating the result +produced, in this case the object @I { Hello world }. It's true that if +a line break happens to fall between @I Hello and @I { world }, the +result of @Code "@I { Hello world }" is not a single rectangle. We +answer this by thinking of objects as existing before paragraph breaking +rearranges them. +@PP +Not everything is an object, however. @Code "@I" alone is not an object, +merely a symbol with the potential of producing an object when given an +object to work on. To understand this, ask yourself what rectangle +@Code "@I" alone could possibly represent: there is no such rectangle. +@PP +It helps to imagine the assembly of objects taking place before your +eyes. Look at @Code Hello and imagine the objects H, e, l, l, o being +assembled into the larger object Hello; look at @Code "Hello world" +and imagine Hello and world being assembled into Hello world. When +looking at +@ID @Code "@I { Hello world }" +you need to imagine the @Code "@I" symbol consuming the following object, +Hello world, and replacing it with the object @I { Hello world }. Here +is another example: +@ID @Code "@CurveBox { Hello world }" +The @Code "@CurveBox" symbol (Section {@NumberOf boxes}) consumes +Hello world and replaces it with the object +@ID @CurveBox { Hello world } +This brings us to a basic principle of Lout: @I { Where you can put +one object, you can put any object }. A few examples will show the +vast range of possibilities opened up by this: +@ID @Code "@CurveBox { @I Hello world }" +produces +@ID @CurveBox { @I Hello world } +It doesn't bother @Code "@CurveBox" if one of the words inside +it is in italics. Next: +@ID @Code "@I @CurveBox { Hello world }" +produces +@ID @I @CurveBox { Hello world } +The object following @Code "@I" cannot be just @Code {"@CurveBox"}, +since that is not an object by itself (it needs to be applied to some +object first). So the object following @Code "@I" is +@Code {"@CurveBox { Hello world }"}, and it is this that is consumed by +@Code "@I" and modified. The @Code "@I" symbol is happy to hunt +through the object looking for words to italicize. We could go on +indefinitely in this way, producing +@ID @CurveBox { @CurveBox Hello @CurveBox world } +for example by {@Code "@CurveBox { @CurveBox Hello @CurveBox world }"}. +@PP +Symbols like @Code "@CurveBox" often have @I { options }, which are +option. @Index { option } +subsidiary symbols that modify the result. For example, @Code "@CurveBox" +has @Code "margin" and @Code "paint" options: +@ID @OneRow @Code { +"@CurveBox" +" margin { 0.5c }" +" paint { lightgrey }" +"{ Hello world }" +} +Options come immediately after the main symbol, before any following +object. Each consists of the option name followed by the value we want +the option to have, always enclosed in braces. Setting out options on +separate lines as we have done above makes them easy to see but is not +compulsory (end of line and space are the same to Lout). The result, +naturally enough, is a curved box with a 0.5 centimetre margin around +its contents, painted light grey: +@ID @CurveBox + margin { 0.5c } + paint { lightgrey } +{ Hello world } +Options are optional: if you leave out an option, Lout supplies a +sensible @I default value for it. Options may be given in any +order. They are a very useful way of adding flexibility to symbols +without cluttering things up when they aren't needed. They also help +with learning: you can learn the basic symbol first and worry about +the options later. +@PP +Whenever a length is required, as in the @Code margin option above, it +length. @Index { length } +centimetres. @Index { centimetres } +inches. @Index { inches } +point.unit @Index { point (unit of measurement) } +em.unit @Index { em (unit of measurement) } +f.unit @Index { @Code f unit of measurement } +s.unit @Index { @Code s unit of measurement } +v.unit @Index { @Code v unit of measurement } +units.of @Index { units of measurement } +may be given using any one of the following seven units of measurement: +@ID @OneRow @Tab + @Fmta { @Col @Code A ! @Col B } + vmargin { 0.5vx } +{ +@Rowa A { c } B { Centimetres } +@Rowa A { i } B { Inches ({@Code "1i"} = {@Code "2.54c"}) } +@Rowa A { p } B { Points ({@Code "72p"} = {@Code "1i"}) } +@Rowa A { m } B { Ems ({@Code "12m"} = {@Code "1i"}) } +@Rowa A { f } B { @Code "1f" is the current font size } +@Rowa A { s } B { @Code "1s" is the current width of a space character } +@Rowa A { v } B { @Code "1v" is the current inter-line spacing } +} +The first four all define absolute distances and are strictly +interchangeable. It is traditional to measure font sizes in points; typical +sizes are @Code "12p" and {@Code "10p"}, but fractional sizes are allowed. +@PP +If you use the @Code "f" unit, the length will depend on the current +font size. This can be very useful. For example, the default value of +the @Code "margin" option of @Code "@CurveBox" is @Code "0.3f" (0.3 +times the current font size). If you use a large font, for example in +an overhead transparency, you get a correspondingly large margin without +having to ask for it. +@PP +The @Code "s" and @Code "v" units are less useful. The @Code "v" unit +is used within paragraph symbols (Section {@NumberOf paragraphs}) to +ensure that the space between paragraphs widens with the inter-line spacing. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_par1 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_par1 new file mode 100755 index 0000000000000..0cee5f896a5bb --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_par1 @@ -0,0 +1,105 @@ +@Section + @Title { Starting a new line, paragraph, or page } + @Tag { paragraphs } +@Begin +@PP +The usual way to start a new paragraph is with the @Code "@PP" `plain +pp. @Index @Code "@PP" +paragraphs. @Index { paragraph symbols } +paragraph' symbol. It produces a small vertical space and indents the +first line of the new paragraph. Some document formatting systems +interpret a blank line as a request to start a new paragraph. This is +not the case with Lout: a blank line is two line-endings, equivalent to +two spaces. +@PP +The @Code "@LP" `left paragraph' symbol produces the same +lp. @Index @Code "@LP" +vertical space as {@Code "@PP"}, but omits the indent. The @Code "@LLP" +`left line paragraph' symbol starts a new paragraph using +llp. @Index @Code "@LLP" +the usual inter-line spacing and no indent, or in other words it starts a +new line. If you are using it to create single lines, you need the +@Code "lines" paragraph breaking style instead (Section {@NumberOf paras}). +@PP +The @Code "@DP" `display paragraph' symbol produces a somewhat larger +dp. @Index @Code "@DP" +vertical space, equal to the amount used before and after displays +(Section {@NumberOf displays}), with no indent. To get even more +space, use @Code "@DP" repeatedly. Another symbol, +{@Code "@LOP"}, leaves a paragraph break the size of the gap left +lop. @Index @Code "@LOP" +outside (that is, before and after) lists (Section {@NumberOf lists}). This +is usually equal to {@Code "@DP"}. +@PP +The {@Code "@NP"} `new page' symbol causes the following paragraph to +page. @Index { page, skipping to next } +new.page @Index { new page } +np. @Index @Code "@NP" +begin on a new page or column. Of course, Lout starts a new page or +column automatically when the old one is full, so @Code "@NP" is needed +only rarely. +@PP +To make each section begin on a new page you must set the @Code "@SectionGap" +sectiongap. @Index @Code "@SectionGap" +setup file option (Section {@NumberOf largescale}). To make one particular +section start on a new page or column, place @Code "@NP" within the previous +section, at the end. Placing @Code "@NP" between sections will not work. +@PP +Occasionally Lout will start a new page or column directly after a heading, +which looks very poor. The obvious answer is to place an @Code "@NP" +just before the heading, but when the document is later revised and the +heading no longer falls near the page or column ending, this @Code "@NP" +will have to be taken away again. +A better answer is to precede the heading with a @Code "@CNP" `conditional +cnp. @Index @Code "@CNP" +new page' symbol, which checks whether enough space remains in the page or +column for a heading and at least two lines of text. If so, @Code "@CNP" +does nothing; if not, @Code "@CNP" causes a new page or column to be begun, +like {@Code "@NP"}. The recommended arrangement is +@ID @OneRow @Code { +# "end of previous part." +"@DP" +"@CNP" +"@Heading { A Heading }" +"@PP" +"First paragraph of next part ..." +} +The @Code "@CNP" symbol should be preceded by either @Code "@DP" or +@Code "@LP", preferably {@Code "@DP"}, and this determines the amount of +space when the @Code "@NP" action does not occur. +@PP +The ultimate answer to the conditional new page problem is to recognise +that the heading is the beginning of a new section of the document, and +to use a large-scale structure symbol like @Code "@Section" (Section +{@NumberOf largescale}). Conditional new page is just one of many +services provided automatically by these symbols. +@PP +Some people do not like to see the first line of a paragraph alone at +the bottom of a page, or the last line of a paragraph alone at the +top (these blemishes are sometimes called widows and orphans). You +can instruct Lout not to allow these; see the next section for details. +@PP +You can modify the effect of the paragraph symbols by changing options +in the setup file. For general information about setup files and their +options, consult Section {@NumberOf setup}; here we just explain how +the relevant options work. The options and their default values are +paragap @Index @Code "@ParaGap" +paraindent @Index @Code "@ParaIndent" +@ID @OneRow @Code { +"@ParaGap { 1.30vx }" +"@ParaIndent { 2.00f }" +"@DisplayGap { 1.00v }" +} +The values are lengths (Section {@NumberOf objects}), except that +for reasons beyond our scope @Code "@ParaGap" must be a length with +an @Code "x" appended, as shown. The @Code "@ParaGap" option determines +how much vertical space will be +inserted by @Code "@PP" and {@Code "@LP"}. The default value, +{@Code "1.30vx"}, is 30% more than the normal inter-line spacing; +to get no extra spacing, change it to {@Code "1.00vx"}. The +@Code "@ParaIndent" option determines the width of the indent produced +by {@Code "@PP"}, and its default value is twice the current font +size. The @Code "@DisplayGap" option determines the amount of vertical +space inserted by {@Code "@DP"}, as well as the vertical space before +and after displays. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_par2 b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_par2 new file mode 100755 index 0000000000000..51f674c43f832 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_par2 @@ -0,0 +1,261 @@ +@Section + @Title { Paragraph breaking } + @Tag { paras } +@Begin +@PP +@I { Paragraph breaking } is the process of +paragraph.breaking @Index { paragraph breaking } +inserting line breaks into praragraphs at places appropriate to the column +width. Lout works out suitable column widths and performs paragraph +breaking automatically, finding an `optimal' break with the method +used by the @TeX +tex.paragraph @SubIndex { paragraph breaking } +system. It offers nine styles of paragraph breaking, +which we will explore with the aid of this example: +@ID @OneRow @Code { +It is a truth universally +acknowledged, that a single man +in possession of a good fortune, +must be in want of a wife. +} +Changing the paragraph breaking style is similar to changing the font, +colour, or language, and is done using the @Code "@Break" symbol: +break. @Index @Code "@Break" +@ID @Code "ragged @Break ..." +This example causes every paragraph in the following object to be +broken using the @Code ragged style, of which more below. +@PP +The first two of the nine styles perform @I { line adjustment }, which +line.adjustment @Index { line adjustment } +means that they enlarge the spaces between the objects making up each +line so as to fill the lines completely: +@IndentedList +@LI @Tab + @Fmta { @Col 6c @Wide @Code A ! @Col 7c @Wide B } +{ +@Rowa + A { "adjust @Break ..." } + B { adjust @Break { +It is a truth universally +acknowledged, that a single man +in possession of a good fortune, +must be in want of a wife. +}} +} +@LI @Tab + @Fmta { @Col 6c @Wide @Code A ! @Col 7c @Wide B } +{ +@Rowa + A { "outdent @Break ..." } + B { outdent @Break { +It is a truth universally +acknowledged, that a single man +in possession of a good fortune, +must be in want of a wife. +}} +} +@EndList +The @Code adjust style is frequently used, so it has been chosen as the +default style. Outdenting adds a small space at the start of each line +outdent. @Index { outdented paragraphs } +except the first, and is much less common. +@PP +The next four styles do not adjust lines, leaving the paragraph +ragged. @Index { @Code ragged paragraph breaking style } +cragged. @Index { @Code cragged paragraph breaking style } +rragged. @Index { @Code rragged paragraph breaking style } +oragged. @Index { @Code oragged paragraph breaking style } +{@I ragged}: +@IndentedList +@LI @Tab + @Fmta { @Col 6c @Wide @Code A ! @Col 7c @Wide B } +{ +@Rowa + A { "ragged @Break ..." } + B { ragged @Break { +It is a truth universally +acknowledged, that a single man +in possession of a good fortune, +must be in want of a wife. +}} +} +@LI @Tab + @Fmta { @Col 6c @Wide @Code A ! @Col 7c @Wide B } +{ +@Rowa + A { "cragged @Break ..." } + B { cragged @Break { +It is a truth universally +acknowledged, that a single man +in possession of a good fortune, +must be in want of a wife. +}} +} +@LI @Tab + @Fmta { @Col 6c @Wide @Code A ! @Col 7c @Wide B } +{ +@Rowa + A { "rragged @Break ..." } + B { rragged @Break { +It is a truth universally +acknowledged, that a single man +in possession of a good fortune, +must be in want of a wife. +}} +} +@LI @Tab + @Fmta { @Col 6c @Wide @Code A ! @Col 7c @Wide B } +{ +@Rowa + A { "oragged @Break ..." } + B { oragged @Break { +It is a truth universally +acknowledged, that a single man +in possession of a good fortune, +must be in want of a wife. +}} +} +@EndList +The paragraph is broken in the same places as @Code adjust breaks it, +but the resulting lines are left-justified, centred, or right-justified +with respect to each other, rather than adjusted; @Code "oragged" +is like @Code "outdent" except the resulting lines are not adjusted. +@PP +If you have a few words that must be kept together on one line, the +preventing. @Index { preventing line breaks } +keeping. @Index { keeping things on one line } +recommended way is to separate them by an @Code "~" symbol: +@ID @Code "According to Prof.~Jones, the effect of ..." +It's best not to bother about this until you actually get a bad line +break, since chances are good that the words will fall on one line anyway. +@PP +The last three styles differ from the first five in breaking the +paragraph at the points where it is broken in the original input: +lines. @Index { @Code lines paragraph breaking style } +clines. @Index { @Code clines paragraph breaking style } +rlines. @Index { @Code rlines paragraph breaking style } +@IndentedList +@LI @Tab + @Fmta { @Col 6c @Wide @Code A ! @Col 7c @Wide B } +{ +@Rowa + A { "lines @Break ..." } + B { lines @Break { +It is a truth universally +acknowledged, that a single man +in possession of a good fortune, +must be in want of a wife. +}} +} +@LI @Tab + @Fmta { @Col 6c @Wide @Code A ! @Col 7c @Wide B } +{ +@Rowa + A { "clines @Break ..." } + B { clines @Break { +It @PageMark clines is a truth universally +acknowledged, that a single man +in possession of a good fortune, +must be in want of a wife. +}} +} +@LI @Tab + @Fmta { @Col 6c @Wide @Code A ! @Col 7c @Wide B } +{ +@Rowa + A { "rlines @Break ..." } + B { rlines @Break { +It is a truth universally +acknowledged, that a single man +in possession of a good fortune, +must be in want of a wife. +}} +} +@EndList +The lines are left-justified, centred, or right-justified with respect +to each other in the same way as for the ragged styles. +@PP +When using the @Code lines style, there are some fine points concerning +the proper use of white space. Consider this example: +@ID @OneRow @Code { +"@IndentedDisplay lines @Break @I {" +"Teach me to hear Mermaides singing," +"Or to keep off envies stinging," +" And finde" +" What winde" +"Serves to'advance an honest minde." +"}" +} +The result is the indented display +@IndentedDisplay lines @Break @I { +Teach me to hear Mermaides singing, +Or to keep off envies stinging, + And finde + What winde +Serves to'advance an honest minde. +} +This style is the only one for which it is useful to indent individual +lines in the input; as the result shows, such indents will be +respected, as will blank lines. However, Lout's rule that only white +space separating objects affects the result (Section {@NumberOf spaces}) +still holds, which means that indenting the first line is not +effective: +@ID @OneRow @Code { +"@IndentedDisplay lines @Break @I {" +" And finde" +" What winde" +"Serves to'advance an honest minde." +"}" +} +produces +@IndentedDisplay lines @Break @I { + And finde + What winde +Serves to'advance an honest minde. +} +This may seem awkward at first, but actually it is extremely convenient +because you don't have to worry about whether the first line of the +paragraph should appear on a new line as above, or immediately after +the opening brace: space at that point does not separate two objects, +so it has no effect. The indent can be obtained by +starting the first line with an empty object (Section {@NumberOf empty}): +@ID @OneRow @Code { +"@IndentedDisplay lines @Break @I {" +"{} And finde" +" What winde" +"Serves to'advance an honest minde." +"}" +} +The result is +@IndentedDisplay lines @Break @I { +{} And finde + What winde +Serves to'advance an honest minde. +} +as desired. To set the entire document in a paragraph breaking style other +than {@Code "adjust"}, you need to change the @Code "@InitialBreak" option, +as explained at the end of Section {@NumberOf linespace}. +@PP +Some people don't like to see the first line of a paragraph alone at the +widows @Index { widow lines } +orphans @Index { orphan lines } +unbreakablefirst. @Index { @Code unbreakablefirst } +unbreakablelast. @Index { @Code unbreakablelast } +foot of a page or column (the rest appearing on the next page). You can +instruct Lout not to allow this with +@ID @Code "unbreakablefirst @Break ..." +meaning that the first line cannot be broken off from the rest of the +paragraph. Similarly, +@ID @Code "unbreakablelast @Break ..." +instructs Lout to prevent the last line of a paragraph from appearing +alone at the top of a page or column. These features would probably be +invoked in the @Code "@InitialBreak" option, like this: +@ID +@Code "@InitialBreak { unbreakablefirst unbreakablelast hyphen adjust 1.2fx }" +You can turn them off with @Code "breakablefirst @Break" +and @Code "breakablelast @Break". In both cases Lout makes it happen by +breaking at the previous place, either between paragraphs or two lines from +the end of a paragraph. Alternatively, both features are compatible with +Lout's @Code "@OptimizePages" option, which will optimize the overall page +layout of the document subject to these requirements. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_spac b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_spac new file mode 100755 index 0000000000000..b7546c258c816 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_spac @@ -0,0 +1,103 @@ +@Section + @Title { Spaces and braces } + @Tag { spaces } +@Begin +@PP +Every symbol in Lout either consists entirely of letters ({@Code "@"} +symbols. @Index { symbols, makeup of } +is considered to be a letter) or entirely of punctuation characters. Here +are some examples of each type: +@ID @OneRow @Tab + @Fmta { @Col @I @CC A ! @Col @I @CC B } + @Fmtb { @Col @Code @CC A ! @Col @Code @CC B } +{ +@Rowa A { From letters } B { From punctuation } +@Rowb A { "@PP" } B { "{" } +@Rowb A { "margin" } B { "}" } +} +Now if two symbols made from letters are run together like this: +@ID { +@Code "@CurveBox@I Hello" &8ct @I (wrong!) +} +Lout will take this to mean one word or symbol called {@Code "@CurveBox@I"}, +which is wrong. In the same way, a letter-type symbol cannot be run +together with a word. However, punctuation-type symbols can be run together +with anything. For example, in +@ID @Code "@CurveBox{ Hello @I { world }}." +Lout understands that @Code "@CurveBox" and @Code "{" +# } +are separate, and it also sorts out +# {{ +@Code "}}." into two right brace symbols and a full stop. It might +seem strange to treat punctuation and letters so differently, +but computer programming languages have done it like this for +many years, and it works well. This is the first use for +spaces. @Index { spaces, significance of } +spaces: to separate letter-type symbols from each other and from words. +@PP +To see the second use for spaces, consider two words side by side: +@ID @Code "Hello world" +We want this to produce Hello world, so a space between two words in +the input must mean a space between them in the result. Apply the +golden rule (where you can put one object, you can put any object) and +you get this: @I { a space between two objects in the input produces +a space between them in the result }. For example, +@ID @Code "@CurveBox Hello @CurveBox world" +produces +@ID { @CurveBox Hello @CurveBox world } +The space between the two objects @Code "@CurveBox Hello" and +@Code "@CurveBox world" appears between them in the result; the other +two spaces do not separate objects so do not appear in the result. +@PP +Two objects may be separated by a number of spaces other than one. If +they are separated by no spaces, they will appear immediately adjacent +in the result; if separated by two spaces, they will appear two spaces +apart; and so on. In English it is correct to leave two spaces between +the end of one sentence and the beginning of the next, for example. See +Section {@NumberOf white} for two alternative ways to interpret white +space in Lout. +@PP +Occasionally the two uses for spaces conflict. For example, to produce +@ID { { @CurveBox Hello }{ @CurveBox world } } +we need to have no spaces between the two objects, but then @Code "Hello" +and the following @Code "@CurveBox" would be run together, which will +not work. The solution is to use braces: +@ID @Code "{ @CurveBox Hello }{ @CurveBox world }" +None of the six spaces in this example lie between two objects. +@PP +However, the main use of braces is to inform Lout that the object +within them is to be kept together, so that any nearby symbols are to +apply to all of it. For example, leaving the braces out of +@Code "@I { Hello world }" would mean that @Code "@I" applies only to +{@Code "Hello"}. +@PP +When an object-consuming symbol like @Code "@I" is followed by an +braces. @Index { braces, effect of } +object enclosed in braces, that is the object consumed. For example, +@ID @Code "This is @I { absolutely necessary }, since otherwise ..." +produces +@ID { This is @I { absolutely necessary }, since otherwise ... } +with the object @Code "absolutely necessary" italicized, but not the +following comma. If there are no braces, the object consumed is +everything up to the next object-separating space: +@ID @Code "This is @I necessary, since otherwise ..." +produces +@ID { This is @I necessary, since otherwise ... } +with an undesirable italic comma. In practice, this means you can +avoid braces only when italicizing a single word with no punctuation +attached. +@PP +One common pitfall is to use unnecessary braces, like this: +@ID { +@Code "@I { @CurveBox { Hello world } }" &8ct @I (bad!) +} +Another is to think that all spaces produce space in the result, and so +write +@ID { +@Code "@I{@CurveBox{Hello world}}" &8ct @I (worse!) +} +Use braces only when necessary, and add extra spaces where they do not +separate objects, and your documents will be far easier to read while +you are working on them. Don't be fooled by the argument that says it +doesn't matter because it doesn't affect the final printed result. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_star b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_star new file mode 100755 index 0000000000000..d2c665371a474 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_star @@ -0,0 +1,129 @@ +@Section + @Title { Getting started } + @Tag { start } +@Begin +@PP +Suppose you want to produce the following little document: +@CD @Box margin { 1.3c } 7.0c @Wide 9c @High { +@Display @Heading { Introduction by W. J. Harvey } +harvey.w.j @Index { Harvey, W. J. } +For Virginia Woolf, @I Middlemarch was `the magnificent book +which for all its imperfections is one of the few English novels +written for grown-up people.' +@PP +She was, no doubt, thinking of George Eliot's unblinking but +eliot.g @Index { Eliot, George } +compassionate delineation of her characters, of the subtlety of +psychological analysis and the maturity of moral comment which +underlie this complex and varied novel of English provincial +life in the early nineteenth century. +} +Unlike word processing and desktop publishing systems, with Lout you +cannot see and edit your document on the screen in this finished +form. Instead, you edit an ordinary text file, in which your text is +augmented with symbols that mark out the headings, paragraphs, and so +on. Although it would be nice to be able to see and edit the finished +form, working with a text file and symbols does have some compensating +advantages. +@PP +The first step in producing your introduction to @I Middlemarch is to +use the text editor of your choice to construct this text file: +@ID @OneRow @Code { +"@SysInclude { doc }" +"@Doc @Text @Begin" +"@Display @Heading { Introduction by W. J. Harvey }" +"For Virginia Woolf, @I Middlemarch was `the magnificent book which for all its" +"imperfections is one of the few English novels written for grown-up people.'" +"@PP" +"She was, no doubt, thinking of George Eliot's unblinking but compassionate" +"delineation of her characters, of the subtlety of psychological analysis and" +"the maturity of moral comment which underlie this complex and varied novel" +"of English provincial life in the early nineteenth century." +"@End @Text" +} +Comparing this with the finished form, it's easy to guess that +@Code "@I" is a symbol that causes the following thing to be printed +in italics, and that @Code "@PP" starts a new paragraph. The other +symbols are not much harder. +@PP +@Code "@SysInclude { doc }" instructs Lout to read a @I { setup file } +called {@Code "doc"}, in which the symbols are defined. Setup files +are the subject of Chapter {@NumberOf changes}, but you can go a long +way without worrying about them. @Code "@Doc @Text @Begin" and +@Code "@End @Text" have no visible effect, but they must bracket the +document as a whole. Again, you don't have to know what they are for. +@PP +That explains everything except the part that produces the heading. It's +an interesting glimpse of the way that Lout's symbols cooperate with +each other: +@ID @Code "@Display @Heading { Introduction by W. J. Harvey }" +The @Code "@Display" symbol does the centring and leaves space above +and below, while @Code "@Heading" switches to a bold font. The braces +group the words of the heading together so that these symbols apply to +all of it; without them they would apply to just the first word. All +this is explained in detail in Sections {@NumberOf objects} +and {@NumberOf spaces}. +@PP +Once the file is ready, the next step is to get it processed by the +Basser Lout interpreter. If the file's name is {@Code "intro"}, +the command for this on the Unix +@FootNote { Unix is a trademark. } +operating system is +@ID @Code "lout intro > intro.ps" +The output is the PostScript +@FootNote { PostScript is a trademark of Adobe Systems, Inc. } +file {@Code "intro.ps"}, which is suitable for printing on many laser +printers and other devices. There are programs that show you the +result on your screen as well, although you won't be able to edit it +there. You can also get plain text output (Section {@NumberOf plain}) +and PDF output. +@PP +There are a few points that often confuse people as they begin, so we'll +treat them briefly now with pointers to later sections where they are +done properly. +@PP +Some characters are symbols that produce special effects -- for +example, @Code "{" and @Code "}" produce grouping -- and to turn off +these effects the characters must be enclosed in double quotes: @Code +"\"{\"" produces "{". The complete set of these special characters is +@ID @Code "/ | & { } # @ ^ ~ \\ \"" +Section {@NumberOf characters} treats unusual characters in full detail. +@PP +Symbols like @Code "@Doc" and @Code "@Text" must be separated from +each other by one or more spaces, otherwise Lout will think they are part +of one symbol. See Section {@NumberOf spaces} for the details. +@PP +People familiar with other systems might expect that leaving a blank line would +cause Lout to start a new paragraph; but this is not so, you must use a +paragraph symbol. Lout will ordinarily take notice of how many spaces you type +between words (Section {@NumberOf spaces}), but it will mimic the spacing rules +of two other systems, troff and @TeX, if you prefer (Section {@NumberOf white}). +@PP +When Lout runs, you might see some error messages containing the words +error.messages @Index { error messages } +`unresolved cross reference' and `no destination point' -- not on file +@Code "intro" above, but on more complicated ones (anything with a footnote, +for example). These just mean that you have to run the @Code "lout" command +again to finish off the complicated things (Section {@NumberOf cross}), and +they will gradually go away. Of course, if you see error messages about +missing braces, unknown symbols, and so on, you need to revise your file. Lout +will tell you the line number of the problem, and how far along the line it is. +@PP +@BI { WARNING: } Lout allows documents to cause arbitrary system commands +to be executed. These typically do useful things such as format computer +programs and uncompress graphics files, but it is possible for a +malicious person to send you a document which includes a command to delete +all your files, send abusive mail to the President of the United States in +your name, etc. You can protect yourself against this possibility by using +the `safe execution' flag: +@ID @Code "lout -S suspect.document > out.ps" +Then no system commands will be executed; instead, Lout will print them so +that you can confirm for yourself that they are safe before running again +without the flag. These system commands are Lout's only potentially unsafe +features, but you also need to worry about whether the resulting PostScript +file contains malicious code, since the document may direct Lout to include +arbitrary PostScript code in the output. The safe execution of PostScript +programs is a matter for PostScript interpreters, not for Lout. For example, +the popular Ghostview program has a @Code "-safer" command line option, +which is rumoured to disable unsafe PostScript features. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_supe b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_supe new file mode 100755 index 0000000000000..40faf922c6278 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_supe @@ -0,0 +1,17 @@ +@Section + @Title { Superscripts and subscripts } + @Tag { super } +@Begin +@PP +There are @Code "@Sup" and @Code "@Sub" symbols for producing +superscripts and subscripts: +@ID @Code "2 @Sup nd" +produces +@ID { 2 @Sup nd } +and the @Code "@Sub" symbol works in a similar way. These symbols +are probably never required in English language text, since the +only uses for them are in footnotes, which produce the superscript +automatically, and equations, which have their own versions of these +symbols. Both symbols have a @Code "gap" option which determines the +vertical spacing. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_unde b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_unde new file mode 100755 index 0000000000000..9f7ea94540dc3 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_unde @@ -0,0 +1,27 @@ +@Section + @Title { Underlining } + @Tag { underlining } +@Begin +@PP +The @Code "@Underline" symbol underlines the following object: +underline.sym @Index @Code "@Underline" +@ID @OneRow @Code { +"This little paragraph of text will have" +"@Underline { three underlined words } in it." +} +produces +@ID @OneRow 1.6i @Wide { +This little paragraph of text will have +@Underline { three underlined words } in it. +} +The underlining is continuous unless a line break intervenes. You +can't use this symbol to underline an arbitrary object: it is carefully +designed to produce high-quality underlining of single words and +parts of paragraphs, and it works only for those objects. +@PP +Each font contains information about how words in that font should be +underlined: how far below the baseline the line should be drawn, and how +thick. The @Code "@Underline" symbol uses this information; the font +it bases its underlining on is the font of the first object underlined +if it is a word, or else the font of the enclosing paragraph. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_verb b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_verb new file mode 100755 index 0000000000000..6da835a6d09b5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bas_verb @@ -0,0 +1,49 @@ +@Section + @Title { Verbatim text } + @Tag { verbatim } +@Begin +@PP +The @Code "@Verbatim" symbol +@FootNote { Prior to Version 3.13 the @Code "@Verbatim" symbol was +implemented in a way that restricted its availability to Unix +systems only. This restriction no longer applies. } +prints the following object exactly as +verbatim.sym @Index @Code "@Verbatim" +it appears in the input file. All special meanings for characters, +symbols, etc. are turned off; there is one result line for +each input line. For example, +@ID @Code @Verbatim { +@IndentedDisplay @Verbatim { +A line of "verbatim" text +Another line, with a \ character +} +} +has result +@IndentedDisplay @Verbatim { +A line of "verbatim" text +Another line, with a \ character +} +Use @Code "@F @Verbatim { ... }" to get the result in a fixed-width font. +@PP +If the verbatim text contains @Code "{" or @Code "}" characters, then +they should either be balanced or else you need to use the alternative +form +@ID @Code { +"@Verbatim @Begin" +"..." +"@End @Verbatim" +} +so that there is no doubt about where the verbatim text ends. Although +we have said that there are no special meanings, there is one exception +to this rule: @Code "@Include" and @Code "@SysInclude" commands are +recognized, allowing all or part of the verbatim text to come from some +other file. +@PP +Occasionally the first line of some verbatim text begins with some +spaces that have to be preserved. This is a problem for @Code "@Verbatim" +because it ignores all white spaces following the opening brace and +all white spaces preceding the closing brace. However, the alternative +@Code "@RawVerbatim" symbol stops ignoring white spaces at the opening +as soon as a newline character is reached; in other words, it will +preserve all white spaces following the first newline. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bgr b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bgr new file mode 100755 index 0000000000000..86e0af4b19b8e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bgr @@ -0,0 +1,18 @@ +@Chapter + @Title { Basic Graphics } + @Tag { graphics } +@Begin +@LP +This chapter introduces some basic graphics symbols for colour, rotation, +scaling, and included illustrations. These are all from the standard +BasicLayout package, so no @Code "@SysInclude" line is needed to +get them. +@BeginSections +@Include { bgr_colo } +@Include { bgr_boxs } +@Include { bgr_outl } +@Include { bgr_rota } +@Include { bgr_scal } +@Include { bgr_incl } +@EndSections +@End @Chapter diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bgr_boxs b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bgr_boxs new file mode 100755 index 0000000000000..54b78a354cf19 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bgr_boxs @@ -0,0 +1,123 @@ +@Section + @Title { Boxes and rules } + @Tag { boxes } +@Begin +@PP +The @Code "@Box" symbol causes the following object to be enclosed in a +box. @Index @Code "@Box" +box: +@ID @OneRow @Code { +"@QuotedDisplay @Box {" +"@CentredDisplay @Heading Cheating" +"The Department uses assignments ... of that student alone." +"}" +} +The result of this is +@QuotedDisplay @Box { +@CentredDisplay @Heading Cheating +The Department uses assignments both as a teaching device and as a +major component of its assessment of each student. It therefore +requires that all programs, exercises etc. handed in bearing an +individual student's name be the work of that student alone. +} +showing that a box may enclose an arbitrarily complicated object. +@PP +The @Code "@Box" symbol has a @Code margin option which determines the +margin between the box and what it encloses. For example, +@ID @OneRow @Code { +"@Box" +" margin { 0.1c }" +"{}" +} +requests a box with a 0.1 centimetre margin enclosing an empty object, +so the result is a square whose width and height are 0.2 centimetres: +@ID @Box margin { 0.1c } {} +If the @Code "margin" option is omitted, it is assigned the default +value {@Code "0.3f"}, which means 0.3 times the current font size. It +is very useful to tie the margin to the font size in this way, because +large headings (in overhead transparencies, say) need large margins. +@PP +There is a @Code "linewidth" option which determines the width +(thickness) of the line drawn around the boundary of the box: +@ID @OneRow @Code { +"@Box" +" linewidth { 0.1c }" +"{ Hello world }" +} +produces +@ID @Code { +@Box + linewidth { 0.1c } +{ Hello world } +} +Lout does not take the line width into account when working out how +large everything is: as far as Lout is concerned, the line always +has width zero. If you draw really thick lines you might need a larger +margin and more space near the box. The default value of @Code linewidth +is empty, which means to use whatever width the PostScript interpreter +in your output device thinks is a good default value. The special +value @Code "none" for @Code "linewidth" ensures that no line is drawn +around the box at all. +@PP +There is also a @Code "paint" option which paints a background of the +nominated colour: +@ID @Code "@Box paint { grey } WARNING!" +has result +@ID @Box paint { grey } WARNING! +This is quite different from {@Code "grey @Colour @Box WARNING!"}, +which produces +@ID grey @Colour @Box WARNING! +The @Code "paint" option may be given any colour from the list in +Section {@NumberOf colour}; its default value is {@Code "none"}, which +is a special value (not a colour) which means no painting. White paint +comes into its own inside painted boxes: +@ID @Code "@Box paint { nochange } white @Colour { Hello world }" +produces a box painted in whatever colour we happen to be using at +the moment, with white text inside: +@ID @Box paint { nochange } white @Colour { Hello world } +This works because the box is painted before the object it encloses +is drawn on the page. +@PP +There are @Code "@CurveBox" and @Code "@ShadowBox" symbols that +curvebox. @Index @Code "@CurveBox" +shadowbox. @Index @Code "@ShadowBox" +produce other kinds of boxes: +@CD @Tab + @Fmta { @Col A ! @Col ! @Col B } +{ +@Rowa + A { @CurveBox { A curve box } } + B { @ShadowBox { A shadow box } } +} +These also have @Code "margin" and @Code "paint" options, and +@Code "@ShadowBox" has a @Code "shadow" option which determines +the thickness of the shadow (its default value is {@Code "0.2f"}). +@PP +Boxes are quite at home inside paragraphs, as @Box { a box }, +@CurveBox { a curve box }, and @ShadowBox { a shadow box } +show. Simply proceed as usual: +@ID @Code "... paragraphs, as @Box { a box }, @CurveBox { a curve box }, ..." +Boxes within paragraphs are never broken across two lines. +@PP +There are two symbols for producing horizontal rules. @Code "@FullWidthRule" +fullwidthrule. @Index @Code "@FullWidthRule" +rules. @Index rules +produces a rule which occupies the full page (or column) width: +@DP @FullWidthRule @DP +More precisely, the rule occupies as much horizontal space as it +legally can. @Code "@FullWidthRule" produces an object in the usual +way, so you will need paragraph or display symbols to separate it from +preceding and following things. +@PP +A variant called @Code "@LocalWidthRule" is more timid about zooming +localwidthrule. @Index @Code "@LocalWidthRule" +across the whole page: +@ID @Code { +"@OddPageTop { { My lovely document @LP @LocalWidthRule } @Right @PageNum }" +} +will draw a rule under just the three words. Of course, underlining using +the @Code "@Underline" symbol might be a better way to do this. Both +symbols have a @Code "linewidth" option which works like the one for +boxes described above. In particular, Lout leaves zero space for the +line, no matter how wide you make it. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bgr_colo b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bgr_colo new file mode 100755 index 0000000000000..08d8d2a9f7122 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bgr_colo @@ -0,0 +1,52 @@ +@Section + @Title { Colour } + @Tag { colour } +@Begin +@PP +Colour is obtained in much the same way that fonts and language changes +colour. @Index @Code "@Colour" +color. @Index @Code "@Color" +are, using the @Code "@Colour" (or equivalently {@Code "@Color"}) symbol: +@ID @Code "grey @Colour { Hello, world }" +produces +@ID grey @Colour { Hello, world } +The @Code "@Colour" symbol will accept any of the following colours: +@QD @HAdjust @Tab + vmargin { 0.7vx } + hmargin { 0.2c } + @Fmta { @Col A @Colour @FilledBox ! @Col @Code A ! @Col ! + @Col B @Colour @FilledBox ! @Col @Code B ! @Col ! + @Col C @Colour @FilledBox ! @Col @Code C } + @Fmtb { @Col A @Colour @FilledBox ! @Col @Code A ! @Col ! + @Col B @Colour @FilledBox ! @Col @Code B ! @Col ! + @Col ! @Col } +{ +@Rowa A { darkred } B { red } C { lightred } +@Rowa A { darkgreen } B { green } C { lightgreen } +@Rowa A { darkblue } B { blue } C { lightblue } +@Rowa A { darkcyan } B { cyan } C { lightcyan } +@Rowa A { darkmagenta } B { magenta } C { lightmagenta } +@Rowa A { darkyellow } B { yellow } C { lightyellow } +@Rowa A { darkgrey } B { grey } C { lightgrey } +@Rowa A { darkgray } B { gray } C { lightgray } +@Rowb A { black } B { white } +} +Monochrome output devices will render them as shades of grey. Colouring +something @Code white makes it invisible, which is sometimes useful. +@PP +In addition to the list of colours given above, there is a special +colour called {@Code nochange} which produces the colour you already +happen to be using. +@PP +Whether or not the colours produced by @Code "@Colour" actually +correspond with the names depends on the output device; the same +nominal colour can look quite different on screen and on paper. The +standard Lout @Code "@SetColour" symbol can provide many more colours +setcolour. @Index @Code "@SetColour" +@Cite { $kingston1995lout.expert}, although they must be specified +using numbers rather than names. For example, +@ID @Code "{ 0.5 0.5 1.0 } @SetColour Hello" +prints @Code Hello in a colour containing red at intensity 0.5, green +at intensity 0.5, and blue at intensity 1.0, which turns out, in the +strange world of colour coordinates, to be a light blue. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bgr_incl b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bgr_incl new file mode 100755 index 0000000000000..57ac4a1e8d1f6 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bgr_incl @@ -0,0 +1,47 @@ +@Section + @Title { Including an illustration } + @Tag { include } +@Begin +@PP +The @Code "@IncludeGraphic" symbol incorporates into a Lout document an +include.graphic @Index @Code "@IncludeGraphic" +include.illus @Index { including an illustration } +illustration (that is, an encapsulated PostScript or EPS file) +produced by other means. For the opposite process, using Lout to produce +an illustration for inclusion in some other document, see +Section {@NumberOf illustrations}. +@PP +For example, suppose the encapsulated PostScript file @Code "su_crest.eps" +contains the University of Sydney crest. Then +@ID @Code "@IncludeGraphic su_crest.eps" +produces +@ID @IncludeGraphic su_crest.eps +In general, the result produced by @Code "@IncludeGraphic" is an object +that may be scaled, rotated, made into a display or placed within a +paragraph, just like any other object. Accolades for this remarkable +flexibility should go to the PostScript page description language, +whose extraordinary power makes the provision of this feature in Lout +almost trivial. +@PP +The @Code "@IncludeGraphic" command understands that files ending +with any of the suffixes {@Code ".gz"}, {@Code "-gz"}, {@Code ".z"}, +{@Code "-z"}, {@Code "_z"}, and {@Code ".Z"} are compressed files, +and it will uncompress such files using the @Code "gunzip" command +before including them. The uncompressed version is stored in a file +called @Code "lout.eps" in the current directory, and removed after +being copied into the output file. +@PP +If you place an included illustration in a line of text, or anywhere +where you care about its alignment with things on either side of it, +it will be positioned with its centre at the same height as the +centre of the letter x. If this is not where you want it, use the +@Code "@VShift" symbol: +vshift. @Index @Code "@VShift" +@ID @Code "... +0.5f @VShift @IncludeGraphic ..." +prints the illustration half of the current font size higher on the +page than would otherwise have been the case, and +@ID @Code "... -0.5f @VShift @IncludeGraphic ..." +prints it half the current font size lower. Any length (Section +{@NumberOf objects}) is allowed, and the object following @Code "@VShift" +may in fact be arbitrary as usual. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bgr_outl b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bgr_outl new file mode 100755 index 0000000000000..af11eb1d8adb4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bgr_outl @@ -0,0 +1,16 @@ +@Section + @Title { Outlined words } + @Tag { outline } +@Begin +@PP +The @@Outline symbol +outline.sym @Index { @@Outline symbol } +causes all the words in the following object (which may be +arbitrary as usual) to be printed in outline. For example, +@ID @Code @Verbatim { @Outline @Box 24p @Font HELP } +produces +@ID @Outline @Box 24p @Font HELP +There is no way to control the thickness of the outline, and +@@Outline has no effect in PDF output. On the other hand, +it works with any font likely to be used in practice. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bgr_rota b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bgr_rota new file mode 100755 index 0000000000000..e4bcc7210c97c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bgr_rota @@ -0,0 +1,35 @@ +@Section + @Title { Rotation } + @Tag { rotation } +@Begin +@PP +The @Code "@Rotate" symbol rotates the following object by any positive +rotate. @Index @Code "@Rotate" +or negative angle, measured in degrees: +@ID @Code "45d @Rotate @Box WARNING!" +has result +@ID { 45d @Rotate @Box WARNING! } +As usual, the object to be rotated may be arbitrary. However, it is +difficult for Lout to choose appropriate column widths for paragraphs +inside rotated objects, so if a rotated object contains paragraphs that +should be broken it is best to define the object's width explicitly, +using the @Code "@Wide" symbol: +wide @RawIndex { @Code "@Wide" } +wide.rotate @SubIndex { with @Code "@Rotate" } +@ID @OneRow @Code { +"-90d @Rotate 4.5c @Wide {" +"Papal initiatives and influence from the crowning of" +"Charlemagne to the First Crusade" +"}" +} +The result here is +@ID { +-90d @Rotate 4.5c @Wide { +Papal initiatives and influence from the crowning of +Charlemagne to the First Crusade +} +} +The @Code "@Wide" symbol fixes the width of the following object, in +this example to the length 4.5 centimetres, which is all Lout needs to +decide the column widths of any paragraphs within it. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bgr_scal b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bgr_scal new file mode 100755 index 0000000000000..ad73f4cc833af --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/bgr_scal @@ -0,0 +1,53 @@ +@Section + @Title { Scaling } + @Tag { scaling } +@Begin +@PP +The @Code "@Scale" symbol performs a geometrical scaling of the +scale. @Index @Code "@Scale" +following object: +@ID @Code { +"0.5 @Scale @Box WARNING!" +} +produces +@ID { +0.5 @Scale @Box WARNING! +} +A scale factor of 0.5 means half the original size, 2.0 means double size, +and so on. No unit of measurement appears in the scale factor, because +it makes no sense to have one. As usual, the object to be scaled may be +arbitrary. +@PP +It is also possible to supply two scale factors, in which case the +first is applied horizontally and the second vertically: +@ID @Code "{0.5 2.0} @Scale @Box WARNING!" +has result +@ID {0.5 2.0} @Scale @Box WARNING! +Practical uses for this kind of scaling are rare. +@PP +If an empty object is given instead of a scale factor, like this: +@ID @Code "{} @Scale @Box WARNING!" +the @Code "@Scale" symbol will choose the largest scale factor that +does not overrun the available horizontal space. It is often possible +to omit the {@Code "{}"}, since Lout inserts an empty object +automatically whenever an object is clearly missing (see Section +{@NumberOf objects}). For example, +@ID @Code "@QuotedDisplay @Scale @Box WARNING!" +produces +@QuotedDisplay @Scale @Box WARNING! +@Code "@QuotedDisplay" and @Code "@LeftDisplay" go well with this form +of {@Code "@Scale"}. However, some care is needed because Lout foolishly +takes no account of the available @I vertical space when choosing the +scale factor. The chosen scale factor could enlarge the vertical size so +much that the object no longer fits on the page, with disastrous results. +@PP +By using a @Code "@Wide" symbol to restrict the available horizontal +space, this form of scaling can also be used to scale to a nominated +width. For example, +wide @RawIndex { @Code "@Wide" } +wide.scale @SubIndex { with @Code "@Scale" } +@ID @Code "5c @Wide @Scale @Box WARNING!" +produces +@ID { 5c @Wide @Scale @Box WARNING! } +which is 5 centimetres wide. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia new file mode 100755 index 0000000000000..9b0f8f91a1e99 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia @@ -0,0 +1,55 @@ +@Chapter + @Title { Diagrams } + @Tag { diagrams } +@Begin +@LP +This chapter describes how to use the @@Diag symbol +diag. @Index { @@Diag } +@FootNote { +Starting with Version 3.18 of Lout, the @@Diag symbol was enhanced with +the {@Code "@ANode"}, {@Code "@BNode"}, and {@Code "@CNode"} symbols +described in Section {@NumberOf dia_node}, and with the symbols for +syntax diagrams described in Section {@NumberOf dia_synt}. +#These +#enhancements are upwardly compatible, unless the user has defined +#symbols with these same names and used them within diagrams. +@LP +Prior to Version 3.09 of Lout, this chapter described a symbol called +fig. @Index @Code "@Fig" +{@Code "@Fig"} which was similar to but more primitive than +{@Code "@Diag"}. For backward compatibility the @Code "@Fig" symbol +is still available and still works exactly as described in the old +documentation, but there is no reason to use it in new documents. +} +to make diagrams like this one: +diag. @Index @Code "@Diag" +@CD @Diag + margin { 0.2c } +{ +-2p @Font +{ A:: @Ellipse { 25, 39 } +/0.3c |0.2c B:: @Ellipse { 43 } |0.1c |0.8c E:: @Box outlinestyle {noline} {Problem node} +/0.3c C:: @Ellipse { 40, 41 } | | D:: @Ellipse paint { lightgrey } {44, 45, 46} +} +// @Link from { A } to { B } +// @Link from { B } to { C } +// @Link from { B } to { D } +// @Arrow from { E } to { D } +} +@@Diag offers nodes and links, arrows, labels, coordinates, +tree diagrams, and syntax diagrams. +@BeginSections +@Include { dia_intr } +@Include { dia_node } +@Include { dia_link } +@Include { dia_tags } +@Include { dia_labe } +@Include { dia_posi } +@Include { dia_tree } +@Include { dia_synt } +@Include { dia_erro } +@Include { dia_defi } +@Include { dia_geom } +@Include { dia_summ } +@EndSections +@End @Chapter diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_cons b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_cons new file mode 100755 index 0000000000000..569b7564e32bd --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_cons @@ -0,0 +1,7 @@ +@Section + @Tag { dia_cons } + @Title { Consistency within and between diagrams } +@Begin +@PP +@I { still to do } +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_defi b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_defi new file mode 100755 index 0000000000000..ed27887350a98 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_defi @@ -0,0 +1,361 @@ +@Section + @Tag { dia_defi } + @Title { Expert usage: defining new shapes } +@Begin +@PP +@@Diag permits you to create your own node outlines and link paths, by +giving non-standard values to the @Code outline and @Code path +options. This section shows how to do this for very simple shapes +only; the following section introduces the large repertoire of geometrical +symbols that @@Diag offers for helping you create complex shapes. +@PP +As explained earlier, a node outline is drawn over its {@I base}, which +is a rectangle containing the following object plus margins. The base +defines a coordinate system with the point (0, 0) at the bottom left +corner, and @Eq { (xsize, ysize) } at the top right: +@CD @OneRow @Diag { +@Box + nodelabelmargin { 0.3f } + blabel { @Eq { ysize } } + blabelprox { E } + clabel { @Eq { 0 } } + clabelprox { E } + dlabel { @Eq { xsize } } + dlabelprox { N } + alabel { @Eq { 0 } } + alabelpos { SW } + alabelprox { N } + paint { lightgrey } + outlinestyle { noline } + margin { 0c } +{ 3c @Wide 2c @High } +//0.5c +} +The value of the @Code outline option is a sequence of points defined in +this coordinate system: +@ID { +@Code { +"@Node" +" outline {" +" 0 0" +" xsize 0" +" 0 ysize" +" 0 0" +" }" +} +||7ct +@Diag { +@Box + margin { 0c } + outlinestyle { noline } + paint { lightgrey } +@Node + outline { + 0 0 + xsize 0 + 0 ysize + 0 0 + } + margin { 0c } +{ 3c @Wide 2c @High } +} +} +As shown, the resulting outline is created by joining each point to the +next with a straight line. It is conventional to proceed anticlockwise +around the outline, but you may start anywhere. +@PP +The {@Code paint}, {@Code outlinestyle}, {@Code outlinedashlength}, +and {@Code outlinewidth} options of @Code "@Node" work for user-defined +outlines exactly as they do for the standard ones: +@ID { +@Code { +"@Node" +" outline {" +" 0 0" +" xsize 0" +" 0 ysize" +" 0 0" +" }" +" paint { lightgrey }" +" outlinestyle { solid dashed }" +} +||7ct +@Diag { +@Node + outline { + 0 0 + xsize 0 + 0 ysize + 0 0 + } + paint { lightgrey } + outlinestyle { solid dashed } + margin { 0c } +{ 3c @Wide 2c @High } +} +} +Each line in the outline is one segment for {@Code outlinestyle}. +@PP +If two points in an outline are separated by {@Code "[]"}, no line is +drawn between them, and the outline is treated as two separate, +disconnected regions when painting. +@PP +Two points may also be separated by {@Code "["}{@I point}{@Code "]"}, +where @I point stands for any point. This causes the two points to be +joined by an arc whose centre is at the given point: +@ID { +@Code { +"@Node" +" outline {" +" 0 0" +" ysize 0" +" [ 0 0 ]" +" 0 ysize" +" 0 0" +" }" +} +||7ct +@Diag { +@Box + margin { 0c } + outlinestyle { noline } + paint { lightgrey } +@Node + outline { + 0 0 + ysize 0 + [ 0 0 ] + 0 ysize + 0 0 + } + margin { 0c } +{ 3c @Wide 2c @High } +} +} +The arc will be circular if possible, otherwise it will be part of +elliptical. @Index { elliptical arcs } +an ellipse whose axes are oriented horizontally and vertically. The +arc goes anticlockwise; to get a clockwise arc, use +{@Code "["}{@I point}{@Code " clockwise]"}. +@PP +Two points may be separated by +@Eq { [x sub 1 ``` y sub 1 ``` x sub 2 ``` y sub 2 & ] }, which requests +that a Bezier curve be drawn between them with control points +bezier.curve @Index { Bezier curve } +@Eq { (x sub 1 & , y sub 1 & ) } and +@Eq { (x sub 2 & , y sub 2 & ) }: +@CD @Diag { +@Node + outline { + A:: { xsize*0.2 ysize*0.5 } + B:: { xsize*0.4 ysize*0.9 } + C:: { xsize*0.9 ysize*0.4 } + D:: { xsize*0.3 ysize*0.1 } + A B C D A + } + alabelpos { A } + blabelpos { B } + clabelpos { C } + dlabelpos { D } + alabelprox { SE } + blabelprox { SW } + clabelprox { SW } + dlabelprox { NW } + outlinestyle { cdashed cdashed cdashed noline } + alabel { @Eq { ( x sub 0 , y sub 0 ) } } + blabel { @Eq { ( x sub 1 , y sub 1 ) } } + clabel { @Eq { ( x sub 2 , y sub 2 ) } } + dlabel { @Eq { ( x sub 3 , y sub 3 ) } } +{ 6c @Wide 2c @High } +// +@Link + path { A [B C] D } +} +The curve is attracted toward the control points, without reaching +them; it is tangent to the straight line from the start point to the +first control point, and from the second control point to the finishing +point, and it lies wholly inside the quadrilateral formed by the four +points. Owing to the author's laziness, dashes and dots do not fit as +neatly onto Bezier curves as they do onto lines and arcs. +@PP +Tags (Section {@NumberOf dia_tags}) may be assigned to points within +the outline option, like this: +@ID { +@Code { +"@Node" +" outline {" +" LR:: { xsize 0 }" +" UL:: { 0 ysize }" +" 0 0 LR UL 0 0" +" }" +} +||7ct +@Diag { +//0.5f +@ShowTags @Node + outline { + LR:: { xsize 0 } + UL:: { 0 ysize } + 0 0 LR UL 0 0 + } + { 2c @High 3c @Wide } +} +} +The tagged point does not have to lie on the outline, and it +is not automatically added to the outline. Once defined, a +tag stands for a point in the usual way; it may be used later in the +outline, as was done above, relabelled, and so on, exactly like the tags +of the standard nodes. +@PP +Once a point has been tagged, a @I direction may be associated +with it, to inform @@Diag which way the outline or +link path is going at that point. The standard outlines have directions: +@ID { +@Code { +"@Ellipse { 3c @Wide 1c @High }" +} +||7ct +@Diag { +//0.5f +@ShowTags @ShowDirections @Ellipse { 3c @Wide 1c @High } +} +} +@Code CTR has no direction. If available, direction information +is used when placing labels, in the proximity step (by {@Code above}, for +example) and in the angle step if the label is aligned, perpendicular, +parallel, or antiparallel. A direction is given using the +@Code ":<" symbol within an outline: +@ID { +@Code { +"@Node" +" outline {" +" LR:: { xsize 0 }" +" LR:< 0d" +" UL:: { 0 ysize }" +" UL:< 270d" +" 0 0 LR UL 0 0" +" }" +} +||7ct +@Diag { +//0.5f +@ShowTags @ShowDirections @Node + outline { + LR:: { xsize 0 } + LR:< 0d + UL:: { 0 ysize } + UL:< 270d + 0 0 LR UL 0 0 + } + { 2c @High 3c @Wide } +} +} +It is often helpful when creating outlines to check where the tagged +points and directions really are, by printing them out as is done +above. For this there is a @Code "@ShowTags" symbol whose result is +the following (arbitrary) object with its tagged points visible, and +a @Code "@ShowDirections" symbol which works similarly and shows the +directions. The diagram above was printed using +{@Code "@ShowTags @ShowDirections @Node ..."}. There is also a +@Code "@ShowPoints" symbol which is like @Code "@ShowTags" except +that it omits the tags, just placing circles on the points. +@PP +Link paths are similar to node outlines, created +using the @Code path option of @Code "@Link" instead of the +@Code outline option of {@Code "@Node"}. The major difference is that +links have no base, so @Code xsize and @Code ysize cannot be +used. Indeed, even @Code "0 0" does not have any useful +meaning inside a link path. +@PP +Within a link path, the symbols @Code from and @Code to denote the +values of the link's @Code from and @Code to options, and these +form the basis of constructing the link path: +@ID { +@Code { +"@Link" +" path {" +" FROM:: from" +" TO:: to" +" FROM TO" +" }" +} +||7ct +{ +//1.0c +@VContract @Diag { +3c @Wide 1c @High +// +@ShowTags @Link + path { + FROM:: from + TO:: to + FROM TO + } + from { 0,1 } + to { 1,0 } +} +} +} +This simple example creates two tagged points and joins them with +a straight line. If you want a link that can carry arrowheads, it is +best to ensure that it creates @Code FROM and @Code TO tags, with +directions pointing along the link from @Code FROM to @Code TO at +both points, since then the default values of the various arrow +options will do the rest. Similarly, if you want labels you need to +define {@Code LFROM}, {@Code LMID}, and {@Code LTO} labels, ideally +also with directions. +@PP +Once the outline or path is complete, unless it is really a one-off +production the best thing to do with it is to add it to your +extend. @Index { @Code extend keyword } +@Code "mydefs" file in the following form: +@ID @OneRow @Code { +"extend @DiagSetup @Diag" +"macro @MyNode {" +" @Node" +" outline {" +" LR:: { xsize 0 }" +" LR:< 0d" +" UL:: { 0 ysize }" +" UL:< 270d" +" 0 0 LR UL 0 0" +" }" +"}" +} +This says that we are `extending' the @@Diag symbol by adding a new +symbol, {@Code "@MyNode"}, which stands for what follows it between +braces. @Code "@MyNode" will then behave exactly like @Code "@Circle" +and the other standard node symbols. The same pattern works for links: +@ID @OneRow @Code { +"extend @DiagSetup @Diag" +"macro @MyLink {" +" @Link" +" path {" +" FROM:: from" +" TO:: to" +" FROM TO" +" }" +"}" +} +If it is worth the effort to construct a new outline or link path, it +is worth packaging it like this and thinking up a good name for it, +for then it will be available, easily, forever. +@PP +This same approach is also useful to define common combinations of +options, even when there is no new outline or path: +@ID @OneRow @Code { +"extend @DiagSetup @Diag" +"macro @BigOctagon {" +" @Polygon" +" sides { 8 }" +" hsize { 5c }" +" vsize { 5c }" +" font { Bold }" +"}" +} +Such definitions are very useful if the combinations occur +frequently. Any options not mentioned have their usual default values, +and may be set in the usual way: +@ID @Code "@BigOctagon outlinestyle { dashed } ..." +Attempts to reset an already set option will elicit a warning message. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_erro b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_erro new file mode 100755 index 0000000000000..2ad02d54cde33 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_erro @@ -0,0 +1,45 @@ +@Section + @Tag { dia_erro } + @Title { Errors } +@Begin +@PP +Lout normally produces an output file that will print without mishap on +any PostScript device. However, some of the options of {@Code "@Diag"}'s +symbols are passed through Lout to the output file without checking, +including anything containing @Code "@Diag" lengths, angles, points, and +tags. Any errors in these options will not be detected until the file +is printed. +@PP +The most likely errors are {@I syntax @I errors}, as in +@Code "outline { 0 0 [ 0 xsize }" for example, in which a @Code "]" is +missing; @I { type errors }, as in @Code "SE:: 45d" where the +following object should have been a point; and @I { undefined errors }, +arising from labels misspelt or used before being defined. Less commonly, +the options may all be correct but the figure is too large in some way: too +many labels, too deeply nested, and so on. +@PP +When an error is detected, @@Diag arranges for the offending page to +be printed up to the point where the error occurred, with a message nearby +describing the error. Printing of the document is then aborted. It is +often quite easy to find the problem, because it lies in whatever should +have been printed next. +@PP +If you see {@Code VMerror} in an error message, it means that the printer +vmerror. @Index { @Code VMerror PostScript error } +is running out of memory. In that case, one thing you can try is +@ID @Code { +"@Diag" +" save { yes }" +"..." +} +This causes the memory used by @@Diag to be reclaimed as soon +as the diagram is printed, rather than at the end of the current page +as is usual. However, if the diagram is nested inside some other +major Lout package, such as {@Code "@Graph"}, use of this option may +cause other PostScript errors. +@PP +If you see @Code "dictfull" in an error message, it means that you are +dictfull. @Index { @Code dictfull PostScript error } +using an old version of PostScript. Increasing the @Code "maxlabels" +option of @@Diag (Section {@NumberOf dia_summ}) might fix the problem. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_geom b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_geom new file mode 100755 index 0000000000000..bfc9c0258e057 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_geom @@ -0,0 +1,208 @@ +@Section + @Tag { dia_geom } + @Title { Expert usage: numbers, lengths, angles, and points } +@Begin +@PP +@@Diag has many options whose values contain lengths, angles, and +points. Options such as @Code margin and {@Code vsize}, which affect the +size or appearance of the base of a node, may contain only the kinds of +lengths described in Section {@NumberOf objects}; but in all other cases +arbitrarily complex algebraic expressions may be used to specify the +values. +@PP +The usual mathematical operations may be applied to numbers, angles, and +lengths: +@ID @Code "2.0f + 3.0f * sin { 30d }" +is a valid length. Since this is just ordinary algebra on real numbers, +the unsurprising details are deferred to the summary +(Section {@NumberOf dia_summ}). Grouping is always done with braces, +never parentheses. +@PP +More interesting are the geometrical symbols that @@Diag provides. The +most fundamental is not a symbol at all: two lengths side by side define +a point. For example, +@ID @Code "xsize ysize * 0.5" +within an outline is the point at the far right of the base, halfway +up. +@PP +There are @Code "++" and @Code "--" symbols for vector addition and +subtraction of two points, and @Code "**" for multiplication by a +scalar. For example, +@ID @Code "A@CTR ++ { 1.0f 0 }" +is the point @Code 1f to the right of {@Code "A@CTR"}. It is a good idea +to distinguish between @I { absolute points }, like {@Code "A@CTR"} +and @Code "0.5,1", which denote fixed positions on the page, and +@I { relative points }, like {@Code "1.0f 0"}, which serve as offsets +from absolute points. The difference of two absolute points is a relative +point; adding two absolute points gives an unpredictable result because +it depends on the origin of the coordinate system. However, the expression +@ID @Code "P1 ** x ++ P2 ** {1 - x}" +is safe for any two absolute points {@Code P1} and {@Code P2} and any +number {@Code x}; it produces a point on the line through the two +points. +@PP +These remarks on safety do not apply within the @Code outline option of +{@Code "@Node"}, because there the coordinate system is clearly +specified. Vector operations, with the aid of a few well-chosen tags, +can greatly simplify the production of outlines: +@ID { +@Code { +"@Node" +" outline {" +" SB:: {0 ysize} ** 0.4" +" ST:: {0 ysize} ** 0.6" +" HB:: {xsize 0} ** 0.7" +" SB" +" SB ++ HB" +" HB" +" xsize ysize * 0.5" +" HB ++ {0 ysize}" +" HB ++ ST" +" ST" +" SB" +" }" +" paint { grey }" +"{ 6c @Wide 2c @High }" +} +||7ct +@Diag { +@ShowTags @Node + outline { + SB:: {0 ysize} ** 0.4 + ST:: {0 ysize} ** 0.6 + HB:: {xsize 0} ** 0.7 + SB + SB ++ HB + HB + xsize ysize * 0.5 + HB ++ {0 ysize} + HB ++ ST + ST + SB + } + paint { grey } +{ 6c @Wide 2c @High } +} +} +But absolute sums like @Code "SB ++ HB" are not safe +in link paths and stray options like {@Code "alabelpos"}. +@PP +Sometimes it is useful to define tags +which are not wanted afterwards and are better forgotten. For +this there is the @Code ":=" symbol, which works in much the same +way as @Code "::" except that the tag is forgotten after the outline +or path option ends. The value assigned does not have to be a point, it +can be a length or angle, or even a sequence of values. It is +permissible to change the value assigned to a tag by reassigning. +@PP +Two very useful symbols, {@Code angleto} and {@Code atangle}, bring +angleto. @Index { @Code angleto symbol in @Code "@Diag" } +atangle. @Index { @Code atangle symbol in @Code "@Diag" } +angles into the algebra. The {@Code angleto} symbol finds the angle +from one point to another. For example, +@ID @Code "SB angleto ST" +in the outline above would produce {@Code 90d}. The @Code atangle symbol +finds the point at a given length and angle from the origin. For example, +@ID @Code "1.4142f atangle 45d" +is the point {@Code "1f 1f"}, and +@ID @Code "B@NE ++ 2f atangle 115d" +is the point @Code 2f from {@Code "B@NE"} to its northwest. +@PP +There is a @Code prev symbol, used only within {@Code outline} and +prev. @Index { @Code prev symbol in @Code "@Diag" } +{@Code path}, which returns the previous point on the outline or +path, ignoring points within {@Code "[]"}. It makes relative movements +very easy: +@ID { +@Code { +" outline {" +" 0 0" +" { 2c atangle 30d }" +" prev ++ { 2c atangle 90d }" +" prev ++ { 2c atangle 150d }" +" prev ++ { 2c atangle 210d }" +" prev ++ { 2c atangle 270d }" +" 0 0" +" }" +} +||7ct +@Diag { ||2.5c +@Node + outline { + 0 0 + { 2c atangle 30d } + prev ++ { 2c atangle 90d } + prev ++ { 2c atangle 150d } + prev ++ { 2c atangle 210d } + prev ++ { 2c atangle 270d } + 0 0 + } +{ 4c @Wide 4c @High } +} +} +This example is rather naughty because the outline does not grow and +shrink with the base as it should. Such outlines, while tempting, are +always regretted later. +@PP +There are {@Code xcoord} and {@Code ycoord} symbols for finding the +xcoord. @Index { @Code xcoord symbol in @Code "@Diag" } +ycoord. @Index { @Code ycoord symbol in @Code "@Diag" } +@I x and @I y coordinates of a point: +@ID @Code { +"{xcoord P1} min {xcoord P2}" "{ycoord P1} max {ycoord P2}" +} +is the point at the top left-hand corner of the smallest rectangle +containing points {@Code P1} and {@Code P2}. And there is a +@Code distance symbol which produces the (non-negative) distance between +two points: +@ID @Code "CTR ++ { CTR distance NW } atangle { CTR angleto NW }" +equals {@Code NW}. +@PP +The rest of this section is concerned with how the `special virtue' +of the @Code from and @Code to options, their ability to accept a node +tag as well as a point, is implemented behind the scenes. A good +user-defined link should also have this virtue, because it is extremely +useful. +@PP +The solution is based on a symbol called {@Code boundaryatangle}, +whose preceding object should be either a point or else the tag +of a node with one of the standard shapes, and whose following object +is an angle: +@ID @Code { +"{ xsize ysize*0.5 } boundaryatangle 45d" +"A boundaryatangle 45d" +} +In the first case the result is the point, regardless of the +angle. In the second case, the result is the point on the boundary of +the node whose tag is given, at the given angle from the centre. +@PP +There is a second symbol with a similar adaptive ability, called +{@Code "??"}, which is defined to be @Code "@" whenever that would +make sense, and otherwise to produce the preceding object for its +result. For example, @Code "A??CTR" will equal @Code "A@CTR" if there +is such a thing; but +@ID @Code "{ xsize ysize*0.5 }??CTR" +will have result {@Code "{ xsize ysize*0.5 }"} since replacing +@Code "??" by @Code "@" does not produce anything sensible. +@PP +Now suppose we want a link path that connects @Code "from" and +@Code "to" by a straight line, where @Code "from" and @Code "to" may be +either node tags or points. In either case a suitable direction for the +line to take is +@ID @Code "from??CTR angleto to??CTR" +and so the desired path is +@ID @Code { +"path {" +" FROM:: from boundaryatangle { from??CTR angleto to??CTR }" +" TO:: to boundaryatangle { to??CTR angleto from??CTR }" +" FROM" +" TO" +"}" +} +The first line defines point @Code FROM to be on the boundary of +@Code from at the appropriate angle, if @Code "from" is a node tag; +otherwise @Code "FROM" is just the point {@Code from}. The second +line defines point @Code TO similarly, and then the last two lines +join these two points. The @Code line standard link type is exactly +this plus a few additional tags and directions. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_intr b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_intr new file mode 100755 index 0000000000000..4f1ee40ddb960 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_intr @@ -0,0 +1,106 @@ +@Section + @Tag { dia_intr } + @Title { Introduction } +@Begin +@PP +To use the @@Diag symbol you first need to include its setup file. For +example, suppose you have an ordinary document with tables: +@ID @OneRow @Code { +"@SysInclude { tbl }" +"@SysInclude { doc }" +"@Doc @Text @Begin" +"..." +"@End @Text" +} +Change this to +@ID @OneRow @Code { +"@SysInclude { tbl }" +"@SysInclude { diag }" +"@SysInclude { doc }" +"@Doc @Text @Begin" +"..." +"@End @Text" +} +This provides everything you need for making diagrams. +@PP +The result of the @@Diag symbol is an object in the usual way. A diagram +is commonly made into a centred display, like this: +@ID @OneRow @Code { +"@CentredDisplay @Diag { ... }" +} +or into a floating figure, like this: +@ID @OneRow @Code { +"@Figure" +" @Caption { ... }" +"@Diag {" +" ..." +"}" +} +but it could be an entry in a table, a word in a paragraph, or anything +else. +@PP +Most uses of @@Diag contain a @I { nodes part } and a @I { links part }: +@ID @OneRow lines @Break { +@Code "@Diag {" + @I { nodes part } + @Code "//" + @I { links part } +@Code "}" +} +This reflects @@Diag's view of the world as consisting of {@I nodes} +(circles, squares, and so on), which have to be put in their right +places and then joined with @I links (lines, arrows). The technical +meaning of the {@Code "//"} symbol does not concern us here; it +simply serves to divide the two parts. +@PP +For example, here is a nodes part containing two nodes separated by +a @Code "@DP" symbol that (as usual) leaves some vertical space +between them: +@ID @OneRow @Tab + @Fmta { @Col 7c @Wide A ! @Col B } +{ +@Rowa + A { @Code { +"@Ellipse { Hello, world }" +"@DP" +"@Square @I x" +} } + B { @Diag { +@Ellipse { Hello, world } +@DP +@Square @I x +} } +} +Node symbols like @Code "@Ellipse" and @Code "@Square" follow a familiar +pattern: they consume the following object, which may be arbitrary, draw +a shape around it, and give back the resulting object. To insert links, the +nodes must first be given names, called {@I tags}, using the @Code "::" symbol: +@ID @OneRow @Code { +"A:: @Ellipse { Hello, world }" +"@DP" +"B:: @Square @I x" +} +Then a link from @Code A to @Code B may be added to the links part: +@ID @OneRow @Tab + @Fmta { @Col 7c @Wide A ! @Col B } +{ +@Rowa + A { @Code { +"@Diag {" +" A:: @Ellipse { Hello, world }" +" @DP" +" B:: @Square @I x" +" //" +" @Link from { A } to { B }" +"}" +} } + B { @Diag { +A:: @Ellipse { Hello, world } +@DP +B:: @Square @I x +// +@Link from { A } to { B } +} } +} +Subsequent examples will often omit the enclosing {@Code "@Diag { }"}. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_labe b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_labe new file mode 100755 index 0000000000000..c449367a63d1b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_labe @@ -0,0 +1,433 @@ +@Section + @Tag { dia_labe } + @Title { Labels } +@Begin +@PP +Diagrams often contain small @I labels adjacent to their nodes and links: +@CD @Diag + nodelabelformat { @I @Body } +{ +@Tab + @Fmta { @Col A ! @Col ! @Col ! @Col B ! @Col ! @Col ! @Col C } +{ +@Rowa + B { B:: @Circle alabel { b } } +@Rowa + A { A:: @Circle alabel { a } } +@Rowa + C { C:: @Circle dlabel { c } } +} +// +@Arrow from { A } to { B } ylabel { 10 } +@Arrow from { A } to { C } ylabel { 15 } +@Arrow from { B } to { C } ylabel { 20 } +} +Each node may have up to four labels, called {@Code alabel}, {@Code blabel}, +label. @Index { label options in @Code "@Diag" } +alabel. @Index { @Code alabel option in @Code "@Diag" } +blabel. @Index { @Code blabel option in @Code "@Diag" } +clabel. @Index { @Code clabel option in @Code "@Diag" } +dlabel. @Index { @Code dlabel option in @Code "@Diag" } +{@Code clabel}, and {@Code dlabel}: +@ID { +@Code { +"@Ellipse" +" alabel { a }" +" blabel { b }" +" clabel { c }" +" dlabel { d }" +"{ Hello, world }" +} +||7ct +@VContract @Diag { +@Ellipse + alabel { a } + blabel { b } + clabel { c } + dlabel { d } +{ Hello, world } +} +} +Links also have labels, five in fact: +@ID { +@Code { +"@Link" +" fromlabel { f }" +" xlabel { x }" +" ylabel { y }" +" zlabel { z }" +" tolabel { t }" +} +||7ct +@VContract @Diag { +3c @Wide 1c @High +// +@Link + from { 0 0 } + to { 1,1 } + fromlabel { f } + xlabel { x } + ylabel { y } + zlabel { z } + tolabel { t } +} +} +The {@Code fromlabel} and {@Code tolabel} options are positioned directly +over the endpoints of the link, and {@Code fromlabel} is by default printed +at a funny angle, because these labels are the means of attaching +arrowheads to links: +@ID { +@Code { +"@Link" +" tolabel { @SolidArrowHead }" +} +||7ct +@VContract @Diag { +3c @Wide 1c @High +// +@Link + from { 0 0 } + to { 1,1 } + tolabel { @SolidArrowHead } +} +} +@Code "@SolidArrowHead" is a symbol available for use anywhere whose value +is an object in the shape of a small solid arrowhead. The arrowhead +options of Section {@NumberOf dia_link} work by setting {@Code fromlabel} +and {@Code tolabel} in exactly this way. Usually it is best to forget +about {@Code fromlabel} and {@Code tolabel}, and think of links as having +three labels: {@Code xlabel} near the start, {@Code ylabel} in the +middle, and {@Code zlabel} near the end. +@PP +Adding a label will not change the size of the diagram or the position +of any node, link, or other label. Although a label may be an arbitrary +object, it is treated as having zero size and will overstrike anything +that happens to be where it wants to go. +@PP +There are options for controlling the appearance and position of +labels. These are described below mainly for {@Code alabel}, but there +are corresponding options for all nine labels. +@PP +The {@Code alabelfont} and {@Code alabelbreak} options determine the +font and paragraph breaking style of the label: +@ID { +@Code { +"@Ellipse" +" alabel { a }" +" alabelfont { -2p }" +" alabelbreak { ragged nohyphen }" +"{ Hello, world }" +} +||7ct +@VContract @Diag { +@Ellipse + alabel { a } + alabelfont { -2p } + alabelbreak { ragged nohyphen } +{ Hello, world } +} +} +This example shows the default values of these two options; @Code "-2p" +explains why the labels in earlier examples were printed in a smaller +font size. There is also an {@Code alabelformat} option which allows +for more radical changes in appearance: +@ID { +@Code { +"@Ellipse" +" alabel { a }" +" alabelformat { @Box @I @Body }" +"{ Hello, world }" +} +||7ct +@Diag { +//0.5c +@Ellipse + alabel { a } + alabelformat { @Box @I @Body } +{ Hello, world } +} +} +The value attached to the ellipse will be the value of {@Code alabelformat}, +with any @Code "@Body" symbol within it replaced by the value of the +{@Code alabel} option. This example produces boxed italic labels. +@PP +Nodes also have {@Code nodelabelfont}, {@Code nodelabelbreak}, and +{@Code nodelabelformat} options which work in the same way but affect all +of the node labels, not just one: +@ID { +@Code { +"@Ellipse" +" nodelabelformat" +" { @Box @I @Body }" +" alabel { a }" +" blabel { b }" +"{ Hello, world }" +} +||7ct +@Diag { +//0.5c +@Ellipse + nodelabelformat { @Box @I @Body } + alabel { a } + blabel { b } +{ Hello, world } +} +} +Links similarly have {@Code linklabelfont}, {@Code linklabelbreak}, and +{@Code linklabelformat} options which affect all the link labels +(except {@Code fromlabel} and {@Code tolabel}, since that would produce +results that people do not expect.) The @Code "@Diag" symbol also has +these options, in the usual way, and they are extremely useful there: +@ID { +@Code { +"@Diag" +" nodelabelfont { Slope -2p }" +" linklabelformat { \"/\"@Body\"/\" }" +" hsize { 1.8c }" +"{" +" A:: @Ellipse alabel { a } { OK }" +" @DP" +" @DP" +" B:: @Ellipse alabel { b } { FAULT }" +" //" +" @Arrow from { A } to { B } ylabel { sig }" +"}" +} +||7ct +@VContract @Diag + nodelabelfont { Slope -2p } + linklabelformat { "/"@Body"/" } + hsize { 1.8c } +{ + A:: @Ellipse alabel { a } { OK } + @DP + @DP + B:: @Ellipse alabel { b } { FAULT } + // + @Arrow from { A } to { B } ylabel { sig } +} +} +These settings specify that every node label will be set in italics, +two points smaller than the surrounding text, and that every link label +will appear between two @Code "/" characters, also two points smaller +because the default value of @Code "linklabelfont" still applies. Of +course, it remains open to any node or link to override these settings +by supplying its own label options. +@PP +The remaining five label options, {@Code alabelpos}, {@Code alabelangle}, +{@Code alabelprox}, {@Code alabelmargin}, {@Code alabelctr}, and +{@Code alabeladjust}, +affect the position of the label. Don't be daunted by the number of +options. As previous examples have shown, they all have sensible +default values and thus need to be set only rarely. +@PP +Each label inhabits its own characteristic region of the node or +link: {@Code alabel} in the north-east corner of the node, +{@Code ylabel} halfway along the link, and so on. This general +location of the label is defined by the {@Code alabelpos} option. Here +are the default values for all nine labels: +@IL +@LI { +@Code { +"@Node" +" alabelpos { NE }" +" blabelpos { NW }" +" clabelpos { SW }" +" dlabelpos { SE }" +} +||7ct +@VContract @Diag { +//0.5f +@ShowTags @Ellipse { 3c @Wide 2c @High } +} +} +@LI { +@Code { +"@Link" +" fromlabelpos { FROM }" +" xlabelpos { LFROM }" +" ylabelpos { LMID }" +" zlabelpos { LTO }" +" tolabelpos { TO }" +} +||7ct +@VContract @Diag { +//1.0f +2c @Wide 2.2c @High +// +@ShowTags @Link + from { 0,0.7 } + to { 1,0 } + # tolabel { @SolidArrowHead } +} +} +@EL +Thus, by changing @Code clabelpos to @Code S you can move the position +of the @Code clabel label to beneath the node. You can do this for every +node by setting this option in the @Code "@Diag" symbol, as was done for +the formatting options above. +@PP +In a similar vein, there is an @Code { xindent } option which controls how +far from the start of the link the @Code "LFROM" tag, and hence the +{@Code xlabel}, will appear. A similar option, @Code { zindent }, determines +how far from the end of the link the @Code "LTO" tag and hence the +{@Code zlabel} will appear: +@ID { +@Code { +"@Link" +" xindent { 1f }" +" zindent { 2f }" +} +||7ct +@VContract @Diag { +//1f +2c @Wide 1.2c @High +// +@ShowTags @Link + xindent { 1f } + zindent { 2f } + from { 0,0.7 } + to { 1,0 } +} +} +Both options have default value {@Code 0.8f}. +@PP +The @Code alabelangle option determines the angle at which the label is +printed: +@ID @Tab + @Fmta { @Col @Code A ! @Col B } +{ +@Rowa + A { "alabelangle { horizontal }" } + B { Horizontal (the default) } +@Rowa + A { "alabelangle { aligned }" } + B { Aligned with the node outline or link path } +@Rowa + A { "alabelangle { perpendicular }" } + B { Perpendicular to the outline or link path } +} +The @Code "alabelprox" option determines where in the proximity of +@Code alabelpos the label is printed: +@ID @Tab + @Fmta { @Col @Code A ! @Col B } +{ +@Rowa + A { "alabelprox { above }" } + B { Above the node outline or link path (the default for link labels) } +@Rowa + A { "alabelprox { below }" } + B { Below the node outline or link path } +@Rowa + A { "alabelprox { left }" } + B { To the left of the node outline or link path } +@Rowa + A { "alabelprox { right }" } + B { To the right of the node outline or link path } +@Rowa + A { "alabelprox { inside }" } + B { Inside the node outline or on the left of the link path +going from @Code from to @Code to } +@Rowa + A { "alabelprox { outside }" } + B { Outside the node outline or on the right of the link path +going from @Code from to @Code to (the default for node labels) } +} +The {@Code alabelmargin} option adds a margin around all four sides of +the label, thereby moving it away from {@Code alabelpos} irrespective of +which direction it happens to lie in: +@ID { +@Code { +"@Ellipse" +" alabel { a }" +" alabelmargin { 0f }" +"{ Hello, world }" +} +||7ct +@VContract @Diag { +@Ellipse + alabel { a } + alabelmargin { 0f } +{ Hello, world } +} +} +The default value is {@Code 0.2f}, and so there is scope for some +reduction as well as increase. +@PP +@@Diag takes careful account of the @Code alabelangle option, the +@Code alabelprox option, the direction that the node outline or link +path is heading, and which label it is, and places the label in a way +that looks good nearly always. When it doesn't, the remainder of this +section should help. +@PP +The @Code alabelangle option may be given an arbitrary angle, and then +the label will be printed at that angle. There are also the special +values @Code parallel and {@Code antiparallel}, which give the direction +that the node outline or link path is going at that point and its +opposite. These are the default values for @Code tolabelangle and +@Code fromlabelangle respectively, which explains why arrowheads point the +right way. The @Code aligned value above is one of these two angles, +the one closest to {@Code 0d}. +@PP +The @Code alabelprox option may be {@Code N}, +{@Code S}, {@Code E}, {@Code W}, {@Code NE}, {@Code SE}, {@Code NW}, +{@Code SW}, or {@Code CTR}: +@CD @Diag { +//1f +@ShowTags @Box margin { 0.5c } { 24p @Font grey @Colour @I label } +} +meaning that the indicated point of the label will coincide with +{@Code alabelpos}. These points lie on the outside of the margins +added by {@Code alabelmargin}. +@PP +The six values of @Code alabelprox given earlier (@Code { above }, +@Code { below }, etc.) all produce one of {@Code N}, {@Code S} etc. for +their ultimate result; which one they produce depends on the direction +the outline or link is going at that point. For example, @Code { above } +produces @Code { SE } when the outline or link is going from northeast +to southwest or vice versa, @Code { SW } when the outline or link is +going from northwest to southeast and vice versa, and @Code { S } when +it happens to be exactly horizontal. There is also a dependence +on which label it is: for example, if it is @Code "xlabel" and the +direction happens to be vertical, the result is {@Code "NW"}. +@PP +The preceding discussion is all under the assumption that the +@Code "alabelctr" option is {@Code no}. When it is {@Code "yes"}, +a small adjustment is made to the position of the label. The selected +corner or side midpoint of the label will no longer coincide with +{@Code alabelpos}, although it will still lie on the straight line passing +through {@Code alabelpos} at the angle of {@Code alabelpos}. The corner +or side midpoint slides up or down this line to the point which +minimises the distance from {@Code alabelpos} to the centre of the +label. Only @Code ylabelctr has @Code "yes" for its default value; the +@Code y label often looks better centred when this adjustment is made, +particularly on lines with shallow but non-zero slope: +@CD @Tab + @Fmta { @Col @CC A ! @Col ! @Col @CC B } +{ +@Rowa + A { @Code "ylabelctr { no }" } + B { @Code "ylabelctr { yes }" } +@Rowa +@Rowa +@Rowa + A { @Diag ylabelctr { no } { + A:: @Square //0.5c &3c B:: @Square + // + @Link from { A } to { B } ylabel { @I { ylabel } } + } } + B { @Diag ylabelctr { yes } { + A:: @Square //0.5c &3c B:: @Square + // + @Link from { A } to { B } ylabel { @I { ylabel } } + } } +} +since it is then the centre of the label which is centred on the link, +rather than one of its corners. +@PP +Finally, when all else fails there is an {@Code alabeladjust} option +which translates the label by an arbitrary amount: +@ID @Code "alabeladjust { -0.5c 1.5c }" +causes the label to appear 0.5 centimetres to the left of and 1.5 centimetres +above the point where it otherwise would have done. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_link b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_link new file mode 100755 index 0000000000000..b71f9d5282346 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_link @@ -0,0 +1,261 @@ +@Section + @Tag { dia_link } + @Title { Links } +@Begin +@PP +@Code "@Diag" has one basic symbol for creating links, called +link. @Index { @Code "@Link" symbol from @Code "@Diag" } +{@Code "@Link"}. It draws a link between two points or nodes +given by {@Code from} and {@Code to} options, along a path +given by a {@Code path} option: +@ID @Code { +"@Link" +" path { ... }" +" from { ... }" +" to { ... }" +} +Unlike {@Code "@Node"}, {@Code "@Link"} has no following object. +@PP +The @Code "path" option may be used to produce a link of any shape, as +Section {@NumberOf dia_defi} explains. There are also values +that produce standard paths. These are listed in full in the summary +(Section {@NumberOf dia_summ}); here is a sample: +@ID @Tab + @Fmta { @Col @Code { path "{" A "}" } ! @Col ! @Col B } +{ + +@Rowa + A { line } + B { +@Diag { +A:: @Circle //1c ||2c B:: @Circle +// @Link from { A } to { B } path { line } arrow { yes } +} +} + +@Rowa + A { acurve } + B { +@Diag { +A:: @Circle //1c ||2c B:: @Circle +// @Link from { A } to { B } path { acurve } arrow { yes } +} +} + +@Rowa + A { ccurve } + B { +@Diag { +A:: @Circle //1c ||2c B:: @Circle +// @Link from { A } to { B } path { ccurve } arrow { yes } +} +} + +@Rowa + A { rvlcurve } + B { +@Diag { +A:: @Circle //1c ||2c B:: @Circle +// @Link from { A } to { B } path { rvlcurve } arrow { yes } +} +} + +} +The name of the last one is a reminder that it goes right, then vertically, +then left, with curved corners. The @Code acurve and @Code ccurve values +produce circular arcs, anticlockwise and clockwise respectively, lying on +the circle passing through the endpoints, or through the centres of the +endpoints when they are tags denoting nodes. There is also @Code "curve" +which is an abbreviation for {@Code "acurve"}. All these standard paths +are defined in a way that makes sense no matter where the two nodes are +relative to each other, except that no promise of a sensible result is +made for two nodes very close together. +@PP +@Code "@Link" has two options, @Code bias and {@Code radius}, that may be +used to fine-tune the path. The @Code "bias" option determines the +maximum distance that a curve is permitted to stray: +@CD @Tab + @Fmta { @Col A ! @Col ! @Col B } +{ + +@Rowa + + A { @Diag vstrut { no } margin { 0.5c } { +A:: @Circle //1.5c ||2c B:: @Circle +// +LA:: @Line pathstyle { cdashed } from { A } to { B } +LB:: @Curve from { A } to { B } +@Line arrow { both } from { LA@LMID } to { LB@LMID } + ylabel { @I bias } # ylabeladjust { 0.15c 0 } +} } + + B { @Diag vstrut { no } margin { 0.5c } { +A:: @Circle //1.5c ||2c B:: @Circle +// +LA:: @RVLCurve from { A } to { B } +LB:: @Line pathstyle { cdashed } from { B@E } to { B@E ++ {0 2.5c} } +@Line arrow { both } from { LB@LMID } to { LA@LMID } + ylabel { @I bias } ylabeladjust { 0 0.05c } +} } + +} +The @Code radius option does @I not apply to @Code acurve and +{@Code ccurve}; rather, it determines the radius of the arcs at +the corners of @Code rvlcurve and its kin. A very large radius will be +reduced to the largest reasonable value, which provides a way to get +a semicircle at the right in an {@Code rvlcurve}. +@PP +Lout has no idea where the path is wandering, and cannot take it into +account when placing a diagram on the page: +@ID { +@Code { +"@Link" +" path { ccurve }" +" bias { 2c }" +} +||7ct +@Diag vstrut { no } { +A:: @Circle &3c B:: @Circle +// +@Link path { ccurve } bias { 2c } from { A } to { B } +} +} +In such cases you have to arrange for the extra space yourself, by adding +an extra paragraph symbol, blank row or column in a table, or whatever. +@PP +As with the options of {@Code "@Node"}, the options of {@Code "@Link"} +may all be given to {@Code "@Diag"} as well, where they apply to every +link in the diagram, unless overridden in the usual way. They also appear +in the setup file, where they apply to every link in every diagram of the +document, unless overridden. +@PP +There are {@Code pathstyle}, {@Code pathdashlength} and {@Code pathwidth} +options which affect the appearance of the path in the same way as the +{@Code outlinestyle}, {@Code outlinedashlength} and {@Code outlinewidth} +options of {@Code "@Node"} affect the outline. When {@Code pathstyle} +contains just one value (as opposed to a sequence of values) @Code "@Diag" +tries to divide the path into fewer segments than it would otherwise, to +make dashed and dotted paths look as good as possible. There is also +a {@Code pathgap} option which affects only @Code doubleline paths; it +determines the gap between the centres of the two lines. +@PP +The @Code "@Link" symbol has an @Code arrow option, which adds an +arrow. @Index { arrows } +arrowhead to the end of the link: +@ID { +@Code { +"@Link" +" arrow { yes }" +} +||7ct +@Diag { +1c @High 3c @Wide +// +@Link + from { 0,0 } + to { 1,1 } + arrow { yes } +} +} +Its value may be {@Code no} (the default), {@Code yes}, {@Code forward} +(which is the same as {@Code yes}), {@Code back}, or {@Code both}: +@ID { +@Code { +"@Link" +" arrow { both }" +} +||7ct +@Diag { +1c @High 3c @Wide +// +@Link + from { 0,0 } + to { 1,1 } + arrow { both } +} +} +@Code "@Link" has three options for controlling the appearance of +arrowheads: {@Code arrowstyle}, {@Code arrowwidth}, and +{@Code arrowlength}. Although every link symbol has these options, for +consistency it is almost always better to set the corresponding options +to the @Code "@Diag" symbol, which applies them to every arrow in the +diagram: +@ID @Code { +"@Diag" +" arrowstyle { solid }" +" arrowwidth { 0.3f }" +" arrowlength { 0.5f }" +"{" +" ..." +"}" +} +This shows the default values: a solid arrowhead like the ones above, +@Code "0.3f" wide (across) and @Code "0.5f" long. The @Code "arrowwidth" +and @Code "arrowlength" options may be any length; it may be necessary to +decrease @Code "arrowwidth" when many arrows enter one node. The full list +of possible values for @Code "arrowstyle" is +@ID @Tab + @Fmta { @Col @Code { "arrowstyle {" A "}" } ! @Col B } + vmargin { 1.0vx } +{ +@Rowa + A { solid } + B { @Diag vstrut { no } { A:: @Circle |2c B:: @Circle + // @Link from { A } to { B } arrow { yes } arrowstyle { solid } } } +@Rowa + A { halfopen } + B { @Diag vstrut { no } { A:: @Circle |2c B:: @Circle + // @Link from { A } to { B } arrow { yes } arrowstyle { halfopen } } } +@Rowa + A { open } + B { @Diag vstrut { no } { A:: @Circle |2c B:: @Circle + // @Link from { A } to { B } arrow { yes } arrowstyle { open } } } +@Rowa + A { curvedsolid } + B { @Diag vstrut { no } { A:: @Circle |2c B:: @Circle + // @Link from { A } to { B } arrow { yes } arrowstyle { curvedsolid } } } +@Rowa + A { curvedhalfopen } + B { @Diag vstrut { no } { A:: @Circle |2c B:: @Circle + // @Link from { A } to { B } arrow { yes } arrowstyle { curvedhalfopen } } } +@Rowa + A { curvedopen } + B { @Diag vstrut { no } { A:: @Circle |2c B:: @Circle + // @Link from { A } to { B } arrow { yes } arrowstyle { curvedopen } } } +@Rowa + A { circle } + B { @Diag vstrut { no } { A:: @Circle |2c B:: @Circle + // @Link from { A } to { B } arrow { yes } arrowstyle { circle } } } +@Rowa + A { box } + B { @Diag vstrut { no } { A:: @Circle |2c B:: @Circle + // @Link from { A } to { B } arrow { yes } arrowstyle { box } } } +} +The reader is invited to admire the beautifully sharp points on these +arrowheads. +@FootNote { +The outlines of all nodes and arrowheads are drawn on the inside of the +geometrical curve defining them, not centred over the curve as is common in +PostScript documents. Hence, the arrowheads and node outlines intersect at +a true geometrical point; they do not overlap by one line width. Furthermore, +the standard link paths terminate at the base of the arrowhead, not at +the point; the arrowhead itself is responsible for continuing the link +path, at the appropriate width (although never dashed or dotted), from its +base to its point, and hence can and does ensure that the link path does +not overstrike and thicken the point of the arrow. +} +@PP +It is possible to place an arbitrary object at the beginning or +end of a link, using the @Code "fromlabel" and @Code "tolabel" options +of Section {@NumberOf dia_labe}. +@PP +To save time in common cases, @Code "@Diag" provides link symbols, +each of which is just @Code "@Link" with one of the standard paths +already set: {@Code "@Line"}, {@Code "@Curve"}, {@Code "@CCurve"}, +{@Code "@RVLCurve"}, and so on. There are also symbols in which +the @Code "arrow" option is set to @Code yes in addition: {@Code "@Arrow"}, +{@Code "@CurveArrow"}, {@Code "@CCurveArrow"}, {@Code "@RVLCurveArrow"}, +and so on. See the summary (Section {@NumberOf dia_summ}) for the +full list of these symbols. You will still need the @Code "arrow" option +to get backward arrows and double-ended arrows. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_node b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_node new file mode 100755 index 0000000000000..4fd6159c8c552 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_node @@ -0,0 +1,563 @@ +@Section + @Tag { dia_node } + @Title { Nodes } +@Begin +@PP +@Code "@Diag" has one basic symbol for creating nodes. It is called +node. @Index { @Code "@Node" } +{@Code "@Node"}, and it takes the following object and encloses it in an +outline whose shape is determined by the {@Code "outline"} option: +@ID { +@Code { +"@Node" +" outline { curvebox }" +"{ Hello, world }" +} +||7ct +@Diag { +@Node + outline { curvebox } +{ Hello, world } +} +} +As Section {@NumberOf dia_defi} explains, the @Code outline option may be +used to produce an outline of any shape. There are also nine values that +produce standard shapes: {@Code box}, {@Code curvebox}, {@Code shadowbox}, +{@Code square}, {@Code diamond}, {@Code polygon}, {@Code isosceles}, +{@Code ellipse}, and {@Code circle}. +@PP +The shape of the outline is determined by the @Code outline option, but +its size and position depend on the size and position of its +{@I base}: the following object with a small margin around it. For +example, this is how a circle is positioned over its base (shown in +grey): +@ID @OneRow { +@Code { +"@Node" +" outline { circle }" +"{ Hello, world }" +} +||7ct +@Diag { +@Box paint { lightgrey } outlinestyle { noline } margin { 0c } +@Node + outline { circle } +{ Hello, world } +} +} +Lout works only with the base, having no idea where the outline is, which +explains why this circle is too high for the space allowed +it. Section {@NumberOf dia_summ} shows how each of the standard +outlines is positioned over its base. +@PP +The @Code "@Node" symbol has many options, but all of them without +exception share the following very useful property: they may be given +to the @Code "@Diag" symbol as well, where they apply to every node in +the diagram: +@ID @OneRow { +@Code { +"@Diag" +" outline { circle }" +"{" +" @Node @I a" +" @DP" +" @Node @I b" +"}" +} +||7ct +@Diag + outline { circle } +{ + @Node @I a + @DP + @Node @I b +} +} +These options also appear in the setup file ({@Code diag}); +if set there, they apply to every node in every diagram of the +document. As the number of nodes increases, it becomes very tedious and +error-prone to duplicate options at all the nodes. Giving each option +just once, at the @Code "@Diag" symbol or in the setup file, saves time +and makes it easy to change all the nodes into squares or any other shape +later on. Any setup file option may be overridden in a diagram by giving +the option to its @Code "@Diag" symbol; any @Code "@Diag" option or setup +file option may be overridden at any node by giving the option again there. +@PP +Sometimes a diagram contains several different node types, each with +its own combination of options (for example, the syntax diagrams of +Section {@NumberOf dia_synt} have three node types). To handle these +cases there are three alternative versions of the @Code "@Node" +symbol, called {@Code "@ANode"}, {@Code "@BNode"}, and +anode.fig @Index { @Code "@ANode" in @Code "@Diag" } +bnode.fig @Index { @Code "@BNode" in @Code "@Diag" } +cnode.fig @Index { @Code "@CNode" in @Code "@Diag" } +{@Code "@CNode"}. These have exactly the same options as +{@Code "@Node"}, but the @I default values of these options +are different, in that they come from @Code "@Diag" options, +or else setup file options, that have an extra letter in front +of their name: @Code { a }, @Code { b }, or @Code { c }. Here is +a small example (see later in this section for the @Code font option): +@ID @OneRow { +@Code @Verbatim { +@Diag + aoutline { box } + afont { Italic } + boutline { curvebox } + bfont { Bold } +{ + @ANode identifier + @DP + @BNode keyword +} +} +||7ct +@Diag + aoutline { box } + afont { Italic } + boutline { curvebox } + bfont { Bold } +{ + @ANode identifier + @DP + @BNode keyword +} +} +Note that when giving an option directly to {@Code "@ANode"}, +{@Code "@BNode"}, and {@Code "@CNode"}, the initial @Code { a }, +@Code { b }, or @Code { c } used with @Code "@Diag" and in the +setup file is omitted. +@PP +To save time in simple cases, @Code "@Diag" provides nine other +node symbols called +{@Code "@Box"}, +box.fig @Index { @Code "@Box" in @Code "@Diag" } +{@Code "@CurveBox"}, +curvebox.fig @Index { @Code "@CurveBox" in @Code "@Diag" } +{@Code "@ShadowBox"}, +shadowbox.fig @Index { @Code "@ShadowBox" in @Code "@Diag" } +{@Code "@Square"}, +square. @Index @Code "@Square" +{@Code "@Diamond"}, +diamond. @Index @Code "@Diamond" +{@Code "@Polygon"}, +{@Code "@Isosceles"}, +isosceles. @Index @Code "@Isosceles" +{@Code "@Ellipse"}, +ellipse. @Index @Code "@Ellipse" +and {@Code "@Circle"}. These are just abbreviations for @Code "@Node" +with the appropriate value of {@Code outline}, nothing more. They take +the same options as {@Code "@Node"} (except that @Code outline is +already fixed), and everything works in the same way. +@PP +There is a @Code shadow option which determines the depth of the shadow +in shadow boxes: +@ID { +@Code { +"@Node" +" outline { shadowbox }" +" shadow { 0.4f }" +"{ WARNING }" +} +||7ct +@Diag { +@Node + outline { shadowbox } + shadow { 0.4f } +{ WARNING } +} +} +This example shows the default value, 0.4 times the current font +size. For polygons there is a @Code sides option for specifying the number +polygon. @Index @Code "@Polygon" +of sides, and an @Code angle option for rotating the outline: +@IL +@LI { +@Code { +"@Polygon" +" sides { 5 }" +} +||7ct +@Diag { +@Polygon + sides { 5 } +{ 1c @High 1c @Wide } +} +} + +@LI { +@Code { +"@Polygon" +" sides { 5 }" +" angle { 0d }" +} +||7ct +@Diag { +@Polygon + sides { 5 } + angle { 0d } +{ 1c @High 1c @Wide } +} +} +@EL +Setting @Code angle to @Code 0d causes the first vertex to be placed +directly underneath the centre, and as the angle increases, the +position of the first vertex rotates anticlockwise. The defaults are +3 sides and the angle that gives the polygon a +horizontal base (i.e. 180 degrees divided by the number of sides). Thus +the two cases with symmetry about a vertical axis are obtained by the +default angle and @Code "0d" respectively, which is convenient. The +{@Code "shadow"}, {@Code "sides"}, and {@Code "angle"} options may be +given to any node, and also to {@Code "@Diag"} and in the setup file, +where they apply to every node as usual. However, they only affect the +appearance of shadow boxes and polygons, respectively. +@PP +The {@Code outlinestyle}, {@Code outlinedashlength}, and {@Code outlinewidth} +options apply to any node and affect the appearance of the outline: +@ID @OneRow { +@Code { +"@CurveBox" +" outlinestyle { solid }" +" outlinedashlength { 0.2f }" +" outlinewidth { thin }" +"{ Hello, world }" +} +||7ct +@Diag { +@CurveBox + outlinestyle { solid } + outlinedashlength { 0.2f } + outlinewidth { thin } +{ Hello, world } +} +} +This example shows the default values of these options. The +{@Code outlinestyle} option may be {@Code solid}, {@Code dashed}, +dashed. @Index { dashed lines } +dotted. @Index { dotted lines } +{@Code cdashed}, {@Code dotted}, or {@Code noline}: +@ID @OneRow { +@Code { +"@CurveBox" +" outlinestyle { cdashed }" +"{ Hello, world }" +} +||7ct +@Diag { +@CurveBox + outlinestyle { cdashed } +{ Hello, world } +} +} +The @Code dashed option makes all dashes the same length, whereas +@Code cdashed halves the length of the first and last dash on each segment, +which usually looks better. The length of dashes is {@Code outlinedashlength}, +and the distance between dashes or dots is at most {@Code outlinedashlength}, +reduced to make the dashes or dots fit evenly. The @Code outlinewidth +option determines the width of the line, dashes, or dots, and may be +{@Code thin}, {@Code medium}, {@Code thick}, or any length. The values +used for {@Code thin}, {@Code medium}, and {@Code thick} are +{@Code 0.04f}, {@Code 0.08f}, and {@Code 0.12f}. +@PP +The {@Code outlinestyle} option may contain a sequence of the values +mentioned above, meaning that they are to be applied in turn to each +segment of the outline: +@ID @OneRow { +@Code { +"@CurveBox" +" outlinestyle { solid cdashed }" +"{ Hello, world }" +} +||7ct +@Diag { +@CurveBox + outlinestyle { solid cdashed } +{ Hello, world } +} +} +If there are more segments than values, {@Code outlinestyle} cycles back +to the first value again; this is why a single value is applied to all +segments. Section {@NumberOf dia_summ} shows how each of the +standard shapes is divided into segments. +@PP +The node symbols of @Code "@Diag" are quite separate symbols from the +three basic box symbols of Section {@NumberOf boxes}. Although much +is the same, one obvious difference between the two is that to get no +outline in those boxes you use @Code { "linewidth { none }" }, whereas +to get no outline here you use @Code { "outlinestyle { noline }" }. The +basic boxes can only draw the outline solid or not at all, and their +options have been kept simple to reflect that. +@PP +Nodes may be painted any of the colours listed in Section +{@NumberOf colour}, using the @Code "paint" option: +@ID @OneRow { +@Code { +"@Box" +" paint { grey }" +"@Diamond" +" outlinestyle { noline }" +" paint { white }" +"{ Hello, world }" +} +||7ct +@Diag { +@Box + paint { grey } +@Diamond + outlinestyle { noline } + paint { white } +{ Hello, world } +} +} +In this example the object following @Code "@Box" is a diamond containing +{@Code "Hello, world"}. The default value of @Code "paint" is +{@Code nopaint}, a special value (not a colour) meaning don't use any paint. +@PP +When painting it is important to know what order things are done in, because +anything put down earlier will disappear under the paint. This is why +@Code nopaint and @Code white are different. Painting is done first, then +boundaries, and finally the following object. +@PP +Each node symbol has +@Code "font" and @Code "break" options which may be used to +set the font and paragraph breaking style of the following object: +@ID @OneRow { +@Code { +"@Box" +" font { Helvetica Base }" +" break { clines }" +"{" +"WARNING" +"DANGEROUS" +"PENGUINS" +"}" +} +||7ct +@Diag { +@Box + font { Helvetica Base } + break { clines } +{ +WARNING +DANGEROUS +PENGUINS +} +} +} +Both options have empty default values, which leave the font and break +style unchanged. There is also a @Code "format" option for making more +radical changes to the appearance of the following object: +@ID @OneRow { +@Code { +"@Box" +" format {" +" {0.8 1.5} @Scale @S @Body" +" }" +"{" +"Dangerous Penguins" +"}" +} +||7ct +@Diag { +@Box + format { { 0.8 1.5 } @Scale @S @Body } +{ +Dangerous Penguins +} +} +} +The result is the @Code "format" option with any @Code "@Body" symbol +within it replaced by the following object. These are very useful when +attached to the @Code "@Diag" symbol: +@ID @OneRow @Code { +"@Diag" +" font { Helvetica Base }" +" break { clines }" +" format { { 0.8 1.5 } @Scale @S @Body }" +"{" +" ..." +"}" +} +since then they apply to every node, as usual, thereby eliminating +a lot of tedious, error-prone duplication of formatting information +at each node. +@PP +The @Code margin option determines the size of the margin added to +the following object: +@ID @OneRow { +@Code { +"@Box" +" margin { 0c }" +"{ Hello, world }" +} +||7ct +@Diag { +@Box + margin { 0c } +{ Hello, world } +} +} +These margins are included in the node's base (described above), so a +larger margin enlarges the base and hence the outline as well. The +default value of @Code margin is {@Code 0.6f} (six-tenths of the current +font size), and so the margin will automatically increase when the font size +does, for example in overhead transparencies. +@PP +The @Code margin option adds the same margin to all four sides. For +finer control, the @Code hmargin option determines the horizontal (left +and right) margins only, overriding {@Code margin}. Similarly, the +@Code vmargin option determines the vertical (top and foot) margins. There +are also {@Code leftmargin}, {@Code rightmargin}, +{@Code topmargin}, and {@Code footmargin} options which override +{@Code margin}, {@Code hmargin}, and {@Code vmargin}. +@PP +When nodes appear side by side, the {@Code valign} option is +useful for controlling their vertical position with respect to each +other. For example, +@ID @OneRow { +@Code { +"@Diag" +" valign { foot }" +"{" +"@Box font { 24p } Big" +"@Box font { 8p } Small" +"}" +} +||7ct +@Diag + valign { foot } +{ +@Box font { 24p } Big +@Box font { 8p } Small +} +} +causes the feet of the boxes to be aligned. In this example it is +applied to all nodes at once, but of course it can be applied +to individual nodes as well. The value of {@Code valign} can be a +length, which means that the point of alignment is +to be that far down from the top of the base (including margins); or +it may be {@Code top}, {@Code ctr}, or {@Code foot}, meaning alignment +through the top, centre (the default value), or foot. +@PP +The {@Code vsize} option specifies a particular +height for a node (not including margins): +@ID @OneRow { +@Code { +"@Diag" +" vsize { 2f }" +"{" +"@Box font { 24p } Big" +"@Box font { 8p } Small" +"}" +} +||7ct +@Diag + vsize { 2f } +{ +@Box font { 24p } Big +@Box font { 8p } Small +} +} +The font size used when calculating @Code vsize is not affected by +the value of any @Code font option. If the following object is too +tall for the chosen height, Lout will print a warning message (`forced +to enlarge {@Code "@High"}', probably) and enlarge the base. +@PP +There is a @Code vindent option which is effective only when @Code vsize +is used. It controls where in the vertical space the following object +is to appear: +@ID @OneRow { +@Code { +"@Diag" +" vsize { 3f }" +"{" +"@Box vindent { top } Top" +"@Box Centre" +"@Box vindent { foot } Foot" +"}" +} +||7ct +@Diag + vsize { 3f } + vindent { ctr } +{ +@Box vindent { top } Top +@Box Centre +@Box vindent { foot } Foot +} +} +The value may be {@Code top} for at the top, {@Code ctr} (the default +value) for in the centre, {@Code foot} for at the foot, or a length, +meaning that distance down from the top. These values are the same as +for the @Code valign option. +@PP +Small discrepancies in the size of nodes can be very annoying, +particularly when the nodes appear side by side: +@ID @OneRow { +@Code { +"@Diag" +"{" +"@Box Hole @Box in" +"@Box my @Box pocket" +"}" +} +||7ct +@Diag +{ +@Box Hole @Box in +@Box my @Box pocket +} +} +These are caused by the slightly different heights of the objects within +the nodes. Selecting a fixed vertical size for all nodes goes some way +towards solving this problem: +@ID @OneRow { +@Code { +"@Diag" +" vsize { 1f }" +"{" +"@Box Hole @Box in" +"@Box my @Box pocket" +"}" +} +||7ct +@Diag + vsize { 1f } +{ +@Box Hole @Box in +@Box my @Box pocket +} +} +The size @Code "1f" is a good choice because most fonts are designed to +be @Code "1f" high from the top of the tallest character to the foot of the +deepest. However, there is still a problem with the baselines of the words +being misaligned. A better solution is to insert a @I { vertical strut } +into each node: an invisible object with zero width and height equal to +{@Code 1f}. This is done using the @Code vstrut option: +@ID @OneRow { +@Code { +"@Diag" +" vstrut { yes }" +"{" +"@Box Hole @Box in" +"@Box my @Box pocket" +"}" +} +||7ct +@Diag + vstrut { yes } +{ +@Box Hole @Box in +@Box my @Box pocket +} +} +The @Code vstrut option may be {@Code yes}, {@Code no} (the default value), or +a length, meaning to insert a strut of this height. So @Code "vstrut { yes }" +is equivalent to {@Code "vstrut { 1.0f }"}. +@PP +There are {@Code halign}, {@Code hsize}, {@Code hindent}, and {@Code hstrut} +options which work horizontally exactly as {@Code valign}, {@Code vsize}, +{@Code vindent}, and {@Code vstrut} work vertically, except that they +use {@Code left} and {@Code right} where the vertical ones use +{@Code top} and {@Code foot}. The best way to fix horizontal size +discrepancies is with {@Code hsize}, not {@Code hstrut}. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_posi b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_posi new file mode 100755 index 0000000000000..727d3be84221b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_posi @@ -0,0 +1,224 @@ +@Section + @Tag { dia_posi } + @Title { Positioning } +@Begin +@PP +Once the nodes of the diagram are in place, @@Diag can be trusted to look +after the rest: links to standard outlines will terminate neatly on their +boundaries, labels will not overstrike links no matter what direction they +are heading, and so on. The great weakness of @@Diag is in positioning +the nodes. This is partly because `what pleases the eye' is the +positioning rule in many diagrams, and an interactive system is really +needed in such cases; and partly because, even when the rule is more formal +(for example, when the nodes are to be laid out in a grid), @@Diag does not +have symbols to produce it anyway. +@PP +Previous examples have used @Code "@DP" for getting nodes one under +another, and white space between nodes for getting them side by side, but +this is very primitive. This section suggests three better ways: using +{@Code "@Tbl"}, using {@Code "@Graph"}, and using coordinates; and the +following section adds a fourth, using @@Diag's tree-drawing symbols. It's +a bit of a jumble. +@PP +The {@Code "@Tbl"} symbol (Chapter {@NumberOf tables}) is a good choice when +the nodes have any kind of grid-like arrangement: +@ID @OneRow { +@Code { +"@Diag {" +"@Tbl" +" aformat { @Cell A | @Cell B | @Cell C }" +" marginhorizontal { 0.5c }" +" marginvertical { 0.25c }" +"{" +"@Rowa" +" B { A:: @Square }" +"@Rowa" +" A { B:: @Square }" +" C { C:: @Square }" +"@Rowa" +" B { D:: @Square }" +"}" +"//" +"@Arrow from { A } to { B }" +"@Arrow from { A } to { C }" +"@Arrow from { B } to { D }" +"@Arrow from { C } to { D }" +"@Arrow from { A } to { D }" +"}" +} +||9ct +@Diag { +@Tbl + aformat { @Cell A | @Cell B | @Cell C } + marginhorizontal { 0.5c } + marginvertical { 0.25c } +{ +@Rowa + B { A:: @Square } +@Rowa + A { B:: @Square } + C { C:: @Square } +@Rowa + B { D:: @Square } +} +// +@Arrow from { A } to { B } +@Arrow from { A } to { C } +@Arrow from { B } to { D } +@Arrow from { C } to { D } +@Arrow from { A } to { D } +} +} +The table occupies the nodes part. Tags may have the same name +as columns; the two can never conflict. +@PP +Similarly, the @Code "@Graph" symbol from Chapter {@NumberOf graphs} +has an @Code "objects" option which can place arbitrary objects, +including labelled nodes, anywhere on a graph: +@ID @OneRow { +@Code { +"@Diag {" +"@Graph" +" xmin { 0 }" +" xmax { 100 }" +" ymin { 0 }" +" ymax { 100 }" +" objects {" +" @CTR at { 20 30 } { A:: @Square }" +" @CTR at { 60 70 } { B:: @Square }" +" }" +"{}" +"//" +"@Link from { A } to { B }" +"}" +} +||8.5ct +@Diag { +@Graph + xmin { 0 } + xmax { 100 } + ymin { 0 } + ymax { 100 } + objects { + @CTR at { 20 30 } { A:: @Square } + @CTR at { 60 70 } { B:: @Square } + } +{} +// +@Link from { A } to { B } +} +} +Once again the @Code "@Graph" symbol occupies the nodes part. You can +get rid of the axes by setting the @Code "style" option of @Code "@Graph" +to {@Code none}, and then it won't look like a graph at all. +@PP +@@Diag has a system of node positioning based on coordinates which is +somewhat similar to the @Code "@Graph" one. It is often the easiest way +to scatter nodes about a diagram at random. The first step is to create +a nodes part that is just an empty space of whatever size you want the +final diagram to be: +@ID @OneRow @Code { +"@Diag {" +" 4c @High 6c @Wide" +" //" +" ..." +"}" +} +As shown, this is done with the @Code "@Wide" and @Code "@High" symbols +from basic Lout; the above diagram will be four centimetres high by +six centimetres wide. +@PP +@@Diag has a @Code "," symbol that allows you to specify a point by +its coordinates in the diagram's base. For example, +@Code "0,0" denotes the bottom left-hand corner of the base, +@Code "1,0" denotes the bottom right-hand corner, and +@Code "0.5,0.5" denotes the centre of the base. Coordinates should +usually be between 0 and 1, since otherwise they denote points +outside the base (which is allowed but seldom useful). +@PP +Every node symbol has a @Code "translate" option which allows you +to move the node about on the diagram's base (or off it if you use +coordinates less than 0 or greater than 1). If you use this option, +the node effectively has zero size and overstrikes anything else +in the area you put it (like labels do). It is best to put these +nodes in the links part: +@ID @OneRow { +@Code { +"@Diag {" +"@Box margin { 0c } 4c @Wide 5c @High" +"//" +"A:: @Square" +" translate { CTR to 0.5, 0.67 }" +" { @I A }" +"B:: @Circle" +" translate { CTR to 0.8, 0.25 }" +" { @I B }" +"}" +} +||9ct +@Diag { +@Box margin { 0c } 4c @Wide 5c @High +// +A:: @Square + translate { CTR to 0.5, 0.67 } + { @I A } +B:: @Circle + translate { CTR to 0.8, 0.25 } + { @I B } +} +} +A box with margin zero has been drawn around the empty space to +show its extent. The value of @Code "translate" should always +be {@I point} @Code to {@I point}; the first point lies within +the node, the second lies within the nodes part, and the translation +makes these two points coincide. +@PP +You are free to have nodes in the nodes part as well, or any object +at all. Here is an example which shows what a little ingenuity +can accomplish: +@ID @OneRow { +@Code { +"@Diag {" +"@Polygon" +" sides { 5 }" +" outlinestyle { noline }" +" hsize { 4c }" +" vsize { 4c }" +"//" +"A:: @Circle translate { N to P1 } {}" +"B:: @Circle translate { N to P2 } {}" +"C:: @Circle translate { N to P3 } {}" +"D:: @Circle translate { N to P4 } {}" +"E:: @Circle translate { N to P5 } {}" +"@Link arrow { both } from { A } to { B }" +"@Link arrow { both } from { B } to { C }" +"@Link arrow { both } from { C } to { D }" +"@Link arrow { both } from { D } to { E }" +"@Link arrow { both } from { E } to { A }" +"}" +} +||9ct +@Diag { +@Polygon + sides { 5 } + outlinestyle { noline } + hsize { 4c } + vsize { 4c } +// +A:: @Circle translate { N to P1 } {} +B:: @Circle translate { N to P2 } {} +C:: @Circle translate { N to P3 } {} +D:: @Circle translate { N to P4 } {} +E:: @Circle translate { N to P5 } {} +@Link arrow { both } from { A } to { B } +@Link arrow { both } from { B } to { C } +@Link arrow { both } from { C } to { D } +@Link arrow { both } from { D } to { E } +@Link arrow { both } from { E } to { A } +} +} +This uses the tags of a phantom polygon to position the +real nodes. It would be a rare interactive system that could +position nodes with this precision; @@Diag shines whenever there +is a formal positioning rule to follow. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_summ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_summ new file mode 100755 index 0000000000000..8bf3b1ddbc25d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_summ @@ -0,0 +1,1778 @@ +@Section + @Tag { dia_summ } + @Title { Summary } +@Begin +@PP +Here is the complete list of standard node outlines that may be given +to the @Code "@Node" symbol. Each shows the outline name, any extra +options relevant to this outline, base (shown as a grey +box), segments (shown using {@Code "outlinestyle { solid dashed }"}), +tags, and directions (shown as a thick arrowhead wherever defined): +@IndentedList gap { 3v } + +@LI { +@Code { +"@Node" +" outline { box }" +} +||7ct +@Diag { +//0.5f +@Box paint { lightgrey } outlinestyle { noline } margin { 0c } +@ShowTags @ShowDirections @Node + outline { box } + outlinestyle { solid dashed } + outlinewidth { 0.03f } + vsize { 1.0c } hsize { 2.0c } +} +} + +@LI { +@Code { +"@Node" +" outline { curvebox }" +} +||7ct +@Diag { +@Box paint { lightgrey } outlinestyle { noline } margin { 0c } +@ShowTags @ShowDirections @Node + outline { curvebox } + outlinestyle { solid dashed } + outlinewidth { 0.03f } + vsize { 1.0c } hsize { 2.0c } +} +} + +@LI { +@Code { +"@Node" +" outline { shadowbox }" +" shadow { 0.4f }" +} +||7ct +@Diag { +@Box paint { lightgrey } outlinestyle { noline } margin { 0c } +@ShowTags @ShowDirections @Node + outline { shadowbox } + outlinestyle { solid dashed } + outlinewidth { 0.03f } + vsize { 1.0c } hsize { 2.0c } +} +} + +@LI { +@Code { +"@Node" +" outline { square }" +} +||7ct +@Diag { +//1.5f +@Box paint { lightgrey } outlinestyle { noline } margin { 0c } +@ShowTags @ShowDirections @Node + outline { square } + outlinestyle { solid dashed } + outlinewidth { 0.03f } + vsize { 1.0c } hsize { 2.0c } +} +} + +@LI { +@Code { +"@Node" +" outline { diamond }" +} +||7ct +@Diag { +@Box paint { lightgrey } outlinestyle { noline } margin { 0c } +@ShowTags @ShowDirections @Node + outline { diamond } + outlinestyle { solid dashed } + outlinewidth { 0.03f } + vsize { 1.0c } hsize { 2.0c } +} +} + +@LI { +@Code { +"@Node" +" outline { polygon }" +" sides { 3 }" +" angle { 180d / sides }" +} +||7ct +@Diag { +//0.5f +@Box paint { lightgrey } outlinestyle { noline } margin { 0c } +@ShowTags @ShowDirections @Node + outline { polygon } + outlinestyle { solid dashed } + outlinewidth { 0.03f } + vsize { 1.0c } hsize { 2.0c } +&0.5c ... &0.5c +@Box paint { lightgrey } outlinestyle { noline } margin { 0c } +@ShowTags @ShowDirections @Node + outline { polygon } + sides { 10 } + outlinestyle { solid dashed } + outlinewidth { 0.03f } + vsize { 1.0c } hsize { 2.0c } +&0.5c ... +} +} + +@LI { +@Code { +"@Node" +" outline { isosceles }" +} +||7ct +@Diag { +@Box paint { lightgrey } outlinestyle { noline } margin { 0c } +@ShowTags @ShowDirections @Node + outline { isosceles } + outlinestyle { solid dashed } + outlinewidth { 0.03f } + vsize { 1.0c } hsize { 2.0c } +} +} + +@LI { +@Code { +"@Node" +" outline { ellipse }" +} +||7ct +@Diag { +@Box paint { lightgrey } outlinestyle { noline } margin { 0c } +@ShowTags @ShowDirections @Node + outline { ellipse } + outlinestyle { solid dashed } + outlinewidth { 0.03f } + vsize { 1.0c } hsize { 2.0c } +} +} + +@LI { +@Code { +"@Node" +" outline { circle }" +} +||7ct +@Diag { +@Box paint { lightgrey } outlinestyle { noline } margin { 0c } +@ShowTags @ShowDirections @Node + outline { circle } + outlinestyle { solid dashed } + outlinewidth { 0.03f } + vsize { 1.0c } hsize { 2.0c } +} +} + +@EndList +@DP +Here are the abbreviations for the standard shapes: +@ID @Tab + vmargin { 0.5vx } + @Fmta { @Col @Code { outline "{" A "}" } ! @Col @Code { "@"B } } +{ +@Rowa + A { box } + B { Box } +@Rowa + A { curvebox } + B { CurveBox } +@Rowa + A { shadowbox } + B { ShadowBox } +@Rowa + A { square } + B { Square } +@Rowa + A { diamond } + B { Diamond } +@Rowa + A { polygon } + B { Polygon } +@Rowa + A { isosceles } + B { Isosceles } +@Rowa + A { ellipse } + B { Ellipse } +@Rowa + A { circle } + B { Circle } +} +Here are all the options to the @Code "@Node" symbol, their default +values, and their ranges of allowed values. Definitions of {@I number}, +{@I length}, {@I angle}, and {@I point} appear later in this summary. The +options related to {@Code alabel}, {@Code blabel}, {@Code clabel}, and +{@Code dlabel} have mostly been omitted since they are the same as +the {@Code nodelabel} options except for {@Code nodelabelpos}. +@DP +1fx @Break @Tab + hmargin { 1s } + # vmargin { 0.6vx } + @Fmth { @Col @Code A ! @Col @Code " " ! @Col @Code B ! @Col @Code " " ! + @Col 1.0c @Wide ! @Col C } + @Fmta { @Col @Code A ! @Col @Code "{" ! @Col @Code B ! @Col @Code "}" ! + @Col 1.0c @Wide ! @Col C } +{ +@FirstRowh + A { "@Node" } +@Rowa + A { " outline" } + B { box } + C { {@Code box}, {@Code curvebox}, {@Code shadowbox}, {@Code square}, +{@Code diamond}, {@Code polygon}, {@Code ellipse}, {@Code circle}, or +any outline } +@Rowa + A { " margin" } + B { 0.6f } + C { any length from Section {@NumberOf objects} } +@Rowa + A { " shadow" } + B { 0.4f } + C { any @I length } +@Rowa + A { " sides" } + B { 3 } + C { any @I number (it will be rounded to the nearest integer) } +@Rowa + A { " angle" } + B { 180d "/" sides } + C { any @I angle } +@Rowa + A { " translate" } + B { } + C { empty, or @I point @Code to @I point } +@Rowa + A { " outlinestyle" } + B { solid } + C { {@Code solid}, {@Code dashed}, {@Code cdashed}, {@Code dotted}, +{@Code noline}, or any sequence of one or more of these values } +@Rowa + A { " outlinedashlength"} + B { 0.2f } + C { any @I length } +@Rowa + A { " outlinewidth" } + B { thin } + C { {@Code thin}, {@Code medium}, {@Code thick}, or any @I length } +@Rowa + A { " paint" } + B { nopaint } + C { @Code nopaint or any colour from Section {@NumberOf colour} } +@Rowa + A { " font" } + B { } + C { any value suitable for the @Code "@Font" symbol } +@Rowa + A { " break" } + B { } + C { any value suitable for the @Code "@Break" symbol } +@Rowa + A { " format" } + B { "@Body" } + C { any object, usually containing {@Code "@Body"} } +@Rowa + A { " valign"} + B { ctr } + C { {@Code "top"}, {@Code "ctr"}, {@Code "foot"}, or any length +from Section {@NumberOf objects} } +@Rowa + A { " vsize"} + B { } + C { empty, or any length from Section {@NumberOf objects} } +@Rowa + A { " vindent"} + B { ctr } + C { {@Code "top"}, {@Code "ctr"}, {@Code "mctr"}, {@Code "foot"}, or any +length from Section {@NumberOf objects} } +@Rowa + A { " vstrut"} + B { no } + C { {@Code no}, {@Code yes}, or any length from Section {@NumberOf objects} } +@Rowa + A { " vmargin" } + B { margin } + C { any length from Section {@NumberOf objects} } +@Rowa + A { " topmargin" } + B { vmargin } + C { any length from Section {@NumberOf objects} } +@Rowa + A { " footmargin" } + B { vmargin } + C { any length from Section {@NumberOf objects} } +@Rowa + A { " halign"} + B { ctr } + C { {@Code "left"}, {@Code "ctr"}, {@Code "right"}, or any length from Section {@NumberOf objects} } +@Rowa + A { " hsize"} + B { } + C { empty, or any length from Section {@NumberOf objects} } +@Rowa + A { " hindent"} + B { ctr } + C { {@Code "left"}, {@Code "ctr"}, {@Code "mctr"}, {@Code "right"}, or any +length from Section {@NumberOf objects} } +@Rowa + A { " hmargin" } + B { margin } + C { any length from Section {@NumberOf objects} } +@Rowa + A { " leftmargin" } + B { hmargin } + C { any length from Section {@NumberOf objects} } +@Rowa + A { " rightmargin" } + B { hmargin } + C { any length from Section {@NumberOf objects} } +@Rowa + A { " hstrut"} + B { no } + C { {@Code no}, {@Code yes}, or any length from Section {@NumberOf objects} } +@Rowa + A { " nodelabel"} + B { } + C { any object } +@Rowa + A { " nodelabelmargin"} + B { 0.2f } + C { any length from Section {@NumberOf objects} } +@Rowa + A { " nodelabelfont"} + B { -2p } + C { any value suitable for the @Code "@Font" symbol } +@Rowa + A { " nodelabelbreak"} + B { ragged nohyphen } + C { any value suitable for the @Code "@Break" symbol } +@Rowa + A { " nodelabelformat"} + B { "@Body" } + C { any object, usually containing @Code "@Body" } +@Rowa + A { " nodelabelpos"} + B { } + C { any @I point } +@Rowa + A { " nodelabelangle"} + B { horizontal } + C { {@Code horizontal}, {@Code aligned}, or {@Code perpendicular}; +{@Code parallel}, {@Code antiparallel}, or any @I angle } +@Rowa + A { " nodelabelprox"} + B { outside } + C { {@Code above}, {@Code below}, {@Code left}, {@Code right}, +{@Code inside}, or {@Code outside}; {@Code CTR}, {@Code N}, {@Code S}, +{@Code E}, {@Code W}, {@Code NE}, {@Code NW}, {@Code SW}, or {@Code SE} +} +@Rowa + A { " nodelabelctr"} + B { no } + C { @Code yes or @Code no } +@Rowa + A { " nodelabeladjust"} + B { 0 0 } + C { any @I point } +@Rowa + A { " alabelpos"} + B { NE } + C { any @I point } +@Rowa + A { " blabelpos"} + B { NW } + C { any @I point } +@Rowa + A { " clabelpos"} + B { SW } + C { any @I point } +@Rowa + A { " dlabelpos"} + B { SE } + C { any @I point } +} +@DP +Here is the complete list of standard link paths that may be given +to the @Code "@Link" symbol. Each entry shows the link path name, +any extra options relevant to this path, segments (shown using +{@Code "outlinestyle { solid dashed }"}, and tags. All tags +have directions pointing along the link from @Code FROM to +{@Code TO}; these have been omitted for clarity. The @Code frompt +and @Code topt options of @Code bezier are compulsory and denote the +two control points (Section {@NumberOf dia_defi}). +@IndentedList gap { 2v } + +@LI { +@Code { +"@Link" +" path { line }" +} +||6ct +@Diag { +//0.5f +A:: @Circle /0.8c |1.5c B:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { line } from { A } to { B } +} +&2.5c +#@Diag { +#|1.5c B:: @Circle /0.8c A:: @Circle +#// +#@ShowTags @Link +# pathstyle { solid dashed } +# path { line } from { A } to { B } +#} +} + +@LI { +@Code { +"@Link" +" path { doubleline }" +} +||6ct +@Diag { +//0.5f +A:: @Circle /0.8c |1.5c B:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { doubleline } from { A } to { B } +} +&2.5c +#@Diag { +#|1.5c B:: @Circle /0.8c A:: @Circle +#// +#@ShowTags @Link +# pathstyle { solid dashed } +# path { line } from { A } to { B } +#} +} + +@LI { +@Code { +"@Link" +" path { curve }" +" bias { 2.0f }" +} +||6ct +@Diag { +A:: @Circle /0.8c |1.5c B:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { curve } from { A } to { B } +} +&2.5c +@Diag { +|1.5c B:: @Circle /0.8c A:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { curve } from { A } to { B } +} +} + +@LI { +@Code { +"@Link" +" path { ccurve }" +" bias { 2.0f }" +} +||6ct +@Diag { +//0.5f +A:: @Circle /0.8c |1.5c B:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { ccurve } from { A } to { B } +} +&2.5c +@Diag { +//0.5f +|1.5c B:: @Circle /0.8c A:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { ccurve } from { A } to { B } +} +} + +@LI { +@Code { +"@Link" +" path { bezier }" +" frompt { A@CTR ++ { 3f 0 } }" +" topt { B@CTR ++ { 3f 0 } }" +} +||6ct +@Diag { +//0.5f +A:: @Circle /0.8c |1.5c B:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { bezier } from { A } to { B } + frompt { A@CTR ++ { 3f 0 } } + topt { B@CTR ++ { 3f 0 } } +} +&2.5c +@Diag { +//0.5f +|1.5c B:: @Circle /0.8c A:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { bezier } from { A } to { B } + frompt { A@CTR ++ { 3f 0 } } + topt { B@CTR ++ { 3f 0 } } +} +} + +@LI { +@Code { +"@Link" +" path { vhline }" +} +||6ct +@Diag { +//0.5f +A:: @Circle /0.8c |1.5c B:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { vhline } from { A } to { B } +} +&2.5c +@Diag { +//0.5f +|1.5c B:: @Circle /0.8c A:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { vhline } from { A } to { B } +} +} + +@LI { +@Code { +"@Link" +" path { hvline }" +} +||6ct +@Diag { +//0.5f +A:: @Circle /0.8c |1.5c B:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { hvline } from { A } to { B } +} +&2.5c +@Diag { +//0.5f +|1.5c B:: @Circle /0.8c A:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { hvline } from { A } to { B } +} +} + +@LI { +@Code { +"@Link" +" path { vhcurve }" +" radius { 1.0f }" +} +||6ct +@Diag { +//0.5f +A:: @Circle /0.8c |1.5c B:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { vhcurve } from { A } to { B } +} +&2.5c +@Diag { +//0.5f +|1.5c B:: @Circle /0.8c A:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { vhcurve } from { A } to { B } +} +} + +@LI { +@Code { +"@Link" +" path { hvcurve }" +" radius { 1.0f }" +} +||6ct +@Diag { +//0.5f +A:: @Circle /0.8c |1.5c B:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { hvcurve } from { A } to { B } +} +&2.5c +@Diag { +//0.5f +|1.5c B:: @Circle /0.8c A:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { hvcurve } from { A } to { B } +} +} + +@LI { +@Code { +"@Link" +" path { lvrline }" +" bias { 2.0f }" +} +||6ct +@Diag { +//0.5f +A:: @Circle /0.8c |1.5c B:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { lvrline } from { A } to { B } +} +&2.5c +@Diag { +//0.5f +|1.5c B:: @Circle /0.8c A:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { lvrline } from { A } to { B } +} +} + +@LI { +@Code { +"@Link" +" path { rvlline }" +" bias { 2.0f }" +} +||6ct +@Diag { +//0.5f +A:: @Circle /0.8c |1.5c B:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { rvlline } from { A } to { B } +} +&2.5c +@Diag { +//0.5f +|1.5c B:: @Circle /0.8c A:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { rvlline } from { A } to { B } +} +} + +@LI { +@Code { +"@Link" +" path { lvrcurve }" +" bias { 2.0f }" +" radius { 1.0f }" +} +||6ct +@Diag { +//0.5f +A:: @Circle /0.8c |1.5c B:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { lvrcurve } from { A } to { B } +} +&2.5c +@Diag { +//0.5f +|1.5c B:: @Circle /0.8c A:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { lvrcurve } from { A } to { B } +} +} + +@LI { +@Code { +"@Link" +" path { rvlcurve }" +" bias { 2.0f }" +" radius { 1.0f }" +} +||6ct +@Diag { +//0.5f +A:: @Circle /0.8c |1.5c B:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { rvlcurve } from { A } to { B } +} +&2.5c +@Diag { +//0.5f +|1.5c B:: @Circle /0.8c A:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { rvlcurve } from { A } to { B } +} +} + +@LI { +@Code { +"@Link" +" path { dwrapline }" +" tbias { 2.0f }" +" bias { 2.0f }" +" fbias { 2.0f }" +} +||6ct +@Diag { +//0.5f +A:: @Circle /0.8c |1.5c B:: @Circle /2f +// +@ShowTags @Link + pathstyle { solid dashed } + path { dwrapline } from { A } to { B } +} +&2.5c +@Diag { +//0.5f +|1.5c B:: @Circle /0.8c A:: @Circle /2f +// +@ShowTags @Link + pathstyle { solid dashed } + path { dwrapline } from { A } to { B } +} +} + +@LI { +@Code { +"@Link" +" path { uwrapline }" +" tbias { 2.0f }" +" bias { 2.0f }" +" fbias { 2.0f }" +} +||6ct +@Diag { +//0.5f +/2f A:: @Circle /0.8c |1.5c B:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { uwrapline } from { A } to { B } +} +&2.5c +@Diag { +//0.5f +/2f |1.5c B:: @Circle /0.8c A:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { uwrapline } from { A } to { B } +} +} + +@LI { +@Code { +"@Link" +" path { dwrapcurve }" +" tbias { 2.0f }" +" bias { 2.0f }" +" fbias { 2.0f }" +" radius { 1.0f }" +} +||6ct +@Diag { +//0.5f +A:: @Circle /0.8c |1.5c B:: @Circle /2f +// +@ShowTags @Link + pathstyle { solid dashed } + path { dwrapcurve } from { A } to { B } +} +&2.5c +@Diag { +//0.5f +|1.5c B:: @Circle /0.8c A:: @Circle /2f +// +@ShowTags @Link + pathstyle { solid dashed } + path { dwrapcurve } from { A } to { B } +} +} + +@LI { +@Code { +"@Link" +" path { uwrapcurve }" +" tbias { 2.0f }" +" bias { 2.0f }" +" fbias { 2.0f }" +" radius { 1.0f }" +} +||6ct +@Diag { +//0.5f +/2f A:: @Circle /0.8c |1.5c B:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { uwrapcurve } from { A } to { B } +} +&2.5c +@Diag { +//0.5f +/2f |1.5c B:: @Circle /0.8c A:: @Circle +// +@ShowTags @Link + pathstyle { solid dashed } + path { uwrapcurve } from { A } to { B } +} +} + +@EndList +Here is the list of abbreviations for the standard paths (note +that @Code curve and @Code acurve are the same). Each +path also has an abbreviation which adds a forward arrow: +@DP +@Tab + @Fmta { @Col { @DisplayIndent @Wide & @Code { path "{" A "}" } } ! + @Col @Code "@"B ! @Col @Code "@"C } +{ +@FirstRowa + A { line } + B { Line } + C { Arrow } +@Rowa + A { doubleline } + B { DoubleLine } + C { DoubleArrow } +@Rowa + A { curve } + B { Curve } + C { CurveArrow } +@Rowa + A { acurve } + B { ACurve } + C { ACurveArrow } +@Rowa + A { ccurve } + B { CCurve } + C { CCurveArrow } + +@Rowa + A { bezier } + B { Bezier } + C { BezierArrow } + +@Rowa + A { hvline } + B { HVLine } + C { HVArrow } +@Rowa + A { vhline } + B { VHLine } + C { VHArrow } +@Rowa + A { hvcurve } + B { HVCurve } + C { HVCurveArrow } +@Rowa + A { vhcurve } + B { VHCurve } + C { VHCurveArrow } + +@Rowa + A { lvrline } + B { LVRLine } + C { LVRArrow } +@Rowa + A { rvlline } + B { RVLLine } + C { RVLArrow } +@Rowa + A { lvrcurve } + B { LVRCurve } + C { LVRCurveArrow } +@Rowa + A { rvlcurve } + B { RVLCurve } + C { RVLCurveArrow } + +@Rowa + A { dwrapline } + B { DWrapLine } + C { DWrapArrow } +@Rowa + A { uwrapline } + B { UWrapLine } + C { UWrapArrow } +@Rowa + A { dwrapcurve } + B { DWrapCurve } + C { DWrapCurveArrow } +@Rowa + A { uwrapcurve } + B { UWrapCurve } + C { UWrapCurveArrow } +} +@DP +Here is the complete list of options to the @Code "@Link" symbol. The +options related to {@Code xlabel}, {@Code ylabel}, and {@Code zlabel} +have been omitted where they are the same as the {@Code linklabel} options. +@DP +1fx @Break @Tab + hmargin { 1s } + # vmargin { 0.6vx } + @Fmth { @Col @Code A ! @Col @Code " " ! @Col @Code B ! @Col @Code " " ! + @Col 1.0c @Wide ! @Col C } + @Fmta { @Col @Code A ! @Col @Code "{" ! @Col @Code B ! @Col @Code "}" ! + @Col 1.0c @Wide ! @Col C } +{ +@Rowh + A { "@Link" } +@Rowa + A { " path" } + B { line } + C { {@Code "line"}, {@Code "doubleline"}, {@Code "curve"}, {@Code "acurve"}, +{@Code "ccurve"}, {@Code "bezier"}, +{@Code "vhline"}, {@Code "hvline"}, {@Code "vhcurve"}, {@Code "hvcurve"}, +{@Code "lvrline"}, {@Code "rvlline"}, {@Code "lvrcurve"}, {@Code "rvlcurve"}, +{@Code "dwrapline"}, {@Code "uwrapline"}, {@Code "dwrapcurve"}, +{@Code "uwrapcurve"}, or any path } +@Rowa + A { " from"} + B { 0,0 } + C { any @I point or node label } +@Rowa + A { " to"} + B { 1,1 } + C { any @I point or node label } +@Rowa + A { " bias"} + B { 2.0f } + C { any @I length } +@Rowa + A { " fbias"} + B { 2.0f } + C { any @I length } +@Rowa + A { " tbias"} + B { 2.0f } + C { any @I length } +@Rowa + A { " radius"} + B { 1.0f } + C { any @I length } +@Rowa + A { " xindent"} + B { 0.8f } + C { any @I length } +@Rowa + A { " zindent"} + B { 0.8f } + C { any @I length } +@Rowa + A { " frompt"} + B { 0 0 } + C { any @I point } +@Rowa + A { " topt"} + B { 0 0 } + C { any @I point } +@Rowa + A { " pathstyle" } + B { solid } + C { {@Code solid}, {@Code dashed}, {@Code cdashed}, {@Code dotted}, +{@Code noline}, or any sequence of one or more of these values } +@Rowa + A { " pathdashlength"} + B { 0.2f } + C { any @I length } +@Rowa + A { " pathwidth" } + B { thin } + C { {@Code thin}, {@Code medium}, {@Code thick}, or any @I length } +@Rowa + A { " pathgap" } + B { thin } + C { {@Code thin}, {@Code medium}, {@Code thick}, or any @I length } +@Rowa + A { " arrow"} + B { no } + C { {@Code no}, {@Code yes}, {@Code forward}, {@Code back}, +or {@Code both} } +@Rowa + A { " arrowstyle"} + B { solid } + C { {@Code solid}, {@Code halfopen}, {@Code open}, {@Code curvedsolid}, +{@Code curvedhalfopen}, or {@Code curvedopen} } +@Rowa + A { " arrowwidth"} + B { 0.3f } + C { any @I length } +@Rowa + A { " arrowlength"} + B { 0.5f } + C { any @I length } +@Rowa + A { " linklabel"} + B { } + C { any object } +@Rowa + A { " linklabelmargin"} + B { 0.2f } + C { any length from Section {@NumberOf objects} } +@Rowa + A { " linklabelfont"} + B { -2p } + C { any value suitable for the @Code "@Font" symbol } +@Rowa + A { " linklabelbreak"} + B { ragged nohyphen } + C { any value suitable for the @Code "@Break" symbol } +@Rowa + A { " linklabelformat"} + B { "@Body" } + C { any object, usually containing @Code "@Body" } +@Rowa + A { " linklabelpos"} + B { } + C { any @I point } +@Rowa + A { " linklabelangle"} + B { horizontal } + C { {@Code horizontal}, {@Code aligned}, or {@Code perpendicular}; +{@Code parallel}, {@Code antiparallel}, or any @I angle } +@Rowa + A { " linklabelprox"} + B { above } + C { {@Code above}, {@Code below}, {@Code left}, {@Code right}, +{@Code inside}, or {@Code outside}; {@Code CTR}, {@Code N}, {@Code S}, +{@Code E}, {@Code W}, {@Code NE}, {@Code NW}, {@Code SW}, or {@Code SE} +} +@Rowa + A { " linklabelctr"} + B { no } + C { @Code yes or @Code no } +@Rowa + A { " linklabeladjust"} + B { 0 0 } + C { any @I point } +@Rowa + A { " xlabelpos"} + B { LFROM } + C { any @I point } +@Rowa + A { " ylabelpos"} + B { LMID } + C { any @I point } +@Rowa + A { " ylabelctr"} + B { yes } + C { @Code yes or @Code no } +@Rowa + A { " zlabelpos"} + B { LTO } + C { any @I point } +@Rowa + A { " fromlabel"} + B { } + C { any object } +@Rowa + A { " fromlabelmargin"} + B { 0f } + C { any length from Section {@NumberOf objects} } +@Rowa + A { " fromlabelfont"} + B { } + C { Any value suitable for the @Code "@Font" symbol } +@Rowa + A { " fromlabelbreak"} + B { ragged nohyphen } + C { Any value suitable for the @Code "@Break" symbol } +@Rowa + A { " fromlabelformat"} + B { "@Body" } + C { any object, usually containing @Code "@Body" } +@Rowa + A { " fromlabelpos"} + B { FROM } + C { any @I point } +@Rowa + A { " fromlabelangle"} + B { antiparallel } + C { {@Code horizontal}, {@Code aligned}, or {@Code perpendicular}; +{@Code parallel}, {@Code antiparallel}, or any @I angle } +@Rowa + A { " fromlabelprox"} + B { W } + C { {@Code above}, {@Code below}, {@Code left}, {@Code right}, +{@Code inside}, or {@Code outside}; {@Code CTR}, {@Code N}, {@Code S}, +{@Code E}, {@Code W}, {@Code NE}, {@Code NW}, {@Code SW}, or {@Code SE} +} +@Rowa + A { " fromlabelctr"} + B { no } + C { @Code yes or @Code no } +@Rowa + A { " fromlabeladjust"} + B { 0 0 } + C { any @I point } +@Rowa + A { " tolabel"} + B { } + C { any object } +@Rowa + A { " tolabelmargin"} + B { 0f } + C { any length from Section {@NumberOf objects} } +@Rowa + A { " tolabelfont"} + B { } + C { Any value suitable for the @Code "@Font" symbol } +@Rowa + A { " tolabelbreak"} + B { ragged nohyphen } + C { Any value suitable for the @Code "@Break" symbol } +@Rowa + A { " tolabelformat"} + B { "@Body" } + C { any object, usually containing @Code "@Body" } +@Rowa + A { " tolabelpos"} + B { TO } + C { any @I point } +@Rowa + A { " tolabelangle"} + B { parallel } + C { {@Code horizontal}, {@Code aligned}, or {@Code perpendicular}; +{@Code parallel}, {@Code antiparallel}, or any @I angle } +@Rowa + A { " tolabelprox"} + B { W } + C { {@Code above}, {@Code below}, {@Code left}, {@Code right}, +{@Code inside}, or {@Code outside}; {@Code CTR}, {@Code N}, {@Code S}, +{@Code E}, {@Code W}, {@Code NE}, {@Code NW}, {@Code SW}, or {@Code SE} +} +@Rowa + A { " tolabelctr"} + B { no } + C { @Code yes or @Code no } +@Rowa + A { " tolabeladjust"} + B { 0 0 } + C { any @I point } +} +@DP +Here is the complete list of options to the @Code "@Tree" symbol: +@DP @OneRow 1fx @Break @Tab + hmargin { 1s } + # vmargin { 0.6vx } + @Fmth { @Col @Code A ! @Col @Code " " ! @Col @Code B ! @Col @Code " " ! + @Col 1.0c @Wide ! @Col C } + @Fmta { @Col @Code A ! @Col @Code "{" ! @Col @Code B ! @Col @Code "}" ! + @Col 1.0c @Wide ! @Col C } +{ +@Rowh + A { "@Tree" } +@Rowa + A { " treehindent" } + B { ctr } + C { {@Code left}, {@Code ctr}, {@Code right}, or any length from +Section {@NumberOf objects} } +} +@DP +The @Code "@HTree" option has a similar @Code "treevindent" option, +which may be {@Code "top"}, {@Code ctr}, {@Code foot}, or any length +from Section {@NumberOf objects}. +@PP +Here are all the syntax diagrams symbols, used within {@Code "@SyntaxDiag"} +usually but also available within {@Code "@Diag"}. To begin with we have +the six starter symbols: +@CD @SyntaxDiag { +@Tbl + aformat { @Cell @Code A | @Cell B | @Cell | @Cell @Code C | + @Cell D | @Cell | @Cell @Code E | @Cell F } +{ +@Rowa + A { "@StartRight ..." } + B { @StartRight @ACell "..." } + C { "@StartUp ..." } + D { @StartUp @ACell "..." } + E { +"@StartRightRight" + "A { ... }" + "B { ... }" +} + F { @StartRightRight A { @ACell A } B { @ACell B } } +@Rowa + A { "@StartLeft ..." } + B { @StartLeft @ACell "..." } + C { "@StartDown ..." } + D { @StartDown @ACell "..." } + E { +"@StartRightDown" + "A { ... }" + "B { ... }" +} + F { @StartRightDown A { @ACell A } B { @ACell B } } +} +} +And here are all the syntax diagram types, shown in all four directions +(right, up, left, and down). @Code "@Sequence" and @Code "@Select" may +have up to twelve options, {@Code "A"} to {@Code "L"}. +@IndentedList + +@LI @SyntaxDiag { @Four code { "@ACell ..." } @ACell "..." } + +@LI @SyntaxDiag { @Four code { "@BCell ..." } @BCell "..." } + +@LI @SyntaxDiag { @Four code { "@CCell ..." } @CCell "..." } + +@LI @SyntaxDiag { @Four code { "@Skip" } @Skip } + +@LI @SyntaxDiag { @Four code { +"@Sequence" + "A { ... }" + "B { ... }" + "C { ... }" +} @Sequence A { @ACell A } B { @ACell B } C { @ACell C } } + +@LI @SyntaxDiag { @Four code { +"@Select" + "A { ... }" + "B { ... }" + "C { ... }" +} @Select A { @ACell A } B { @ACell B } C { @ACell C } } + +@LI @SyntaxDiag { @Four code { "@Optional ..." } @Optional @ACell "..." } + +@LI @SyntaxDiag { @Four code { "@OptionalDiverted ..." } + @OptionalDiverted @ACell "..." } + +@LI @SyntaxDiag { @Four code { "@Diverted ..." } @Diverted @ACell "..." } + +@LI @SyntaxDiag { @Four code { +"@Loop" + "A { ... }" + "B { ... }" +} @Loop A { @ACell A } B { @ACell B } } + +@LI @SyntaxDiag { @Four code { "@Repeat ..." } @Repeat @ACell "..." } + +@LI @SyntaxDiag { @Four code { +"@LoopOpposite" + "A { ... }" + "B { ... }" +} @LoopOpposite A { @ACell A } B { @ACell B } } + +@LI @SyntaxDiag { @Four code { "@RepeatOpposite ..." } + @RepeatOpposite @ACell "..." } + +@LI @SyntaxDiag { @Four code { "@RepeatDiverted ..." } + @RepeatDiverted @ACell "..." } + +@EndList +The @Code "@Diag" symbol and to the {@Code "@DiagSetup"} setup +file symbol have all of the options of {@Code "@Node"}, {@Code "@Link"}, +{@Code "@Tree"}, and {@Code "@HTree"}. They also have the following +options: +@DP +1fx @Break @Tab + hmargin { 1s } + # vmargin { 0.6vx } + @Fmth { @Col @Code A ! @Col @Code " " ! @Col @Code B ! @Col @Code " " ! + @Col 1.0c @Wide ! @Col C } + @Fmta { @Col @Code A ! @Col @Code "{" ! @Col @Code B ! @Col @Code "}" ! + @Col 1.0c @Wide ! @Col C } +{ +@Rowh + A { "@Diag" } +@Rowa + A { " maxlabels" } + B { 200 } + C { any whole number } +@Rowa + A { " save" } + B { no } + C { @Code no or @Code yes } +@Rowa + A { " treehsep" } + B { 0.5f } + C { any length from Section {@NumberOf objects} } +@Rowa + A { " syntaxgap" } + B { 0.35f } + C { any length from Section {@NumberOf objects} } +@Rowa + A { " syntaxbias" } + B { 1.0f } + C { any length from Section {@NumberOf objects} } +@Rowa + A { " syntaxradius" } + B { 0.3f } + C { any length from Section {@NumberOf objects} } +} +@DP +The following lists define all the ways to specify numbers, lengths, +angles, points, and booleans. Brief explanations appear to the right, +with the symbols' precedences in parentheses. +@DP +1fx @Break @Tab + # vmargin { 0.6vx } + @Fmth { @Col { &@DisplayIndent A } ! @Col } + @Fmta { @Col { &@DisplayIndent &2s A } ! @Col B } +{ + +@Rowh A { @I number } vmargin { 0.2vx } +@Rowh +@Rowa + A { {@Sym minus}27.56 } + B { or any literal number } +@Rowa + A { @Code sqrt @I number } + B { square root (99) } +@Rowa + A { @Code abs @I number } + B { absolute value (99) } +@Rowa + A { @Code ceiling @I number } + B { least integer greater than or equal to (99) } +@Rowa + A { @Code floor @I number } + B { greatest integer less than or equal to (99) } +@Rowa + A { @Code truncate @I number } + B { delete fractional part (99) } +@Rowa + A { @Code round @I number } + B { round to nearest integer (99) } +@Rowa + A { @Code sin @I angle } + B { sine of angle measured in degrees (99) } +@Rowa + A { @Code cos @I angle } + B { cosine of angle measured in degrees (99) } +@Rowa + A { @I number @Code atan @I number } + B { arc tangent of first over second (98) } +@Rowa + A { @I number @Code exp @I number } + B { first number raised to second number (98) } +@Rowa + A { @I number @Code log @I number } + B { logarithm of second number to base first (98) } +@Rowa + A { @I number @Code rand @I number } + B { random real number in this range inclusive (98) } +@Rowa + A { @I number @Code max @I number } + B { the larger of two numbers (98) } +@Rowa + A { @I number @Code min @I number } + B { the smaller of two numbers (98) } +@Rowa + A { @I number @Code "*" @I number } + B { the product of two numbers (97) } +@Rowa + A { @I number @Code "/" @I number } + B { real-valued division (96, left associative) } +@Rowa + A { @I length @Code "/" @I length } + B { the ratio of two lengths (96, left associative) } +@Rowa + A { @I angle @Code "/" @I angle } + B { the ratio of two angles (96, left associative) } +@Rowa + A { @I number @Code idiv @I number } + B { integer division of two numbers (96, left associative) } +@Rowa + A { @I number @Code mod @I number } + B { integer remainder when first divided by second (96) } +@Rowa + A { @I number @Code "+" @I number } + B { sum of two numbers (96, left associative) } +@Rowa + A { @Code "+" @I number } + B { identity operation (96) } +@Rowa + A { @I number @Sym minus @I number } + B { difference of two numbers (96, left associative) } +@Rowa + A { @Sym minus @I number } + B { negation (96) } +@Rowa + A { @Code sides } + B { ({@Code outline} only) value of the node's @Code sides option } + +@Rowh +@Rowh +@Rowh +@Rowh +@Rowh A { @I length } vmargin { 0.2vx } +@Rowh +@Rowa + A { 0 } + B { zero } +@Rowa + A { @Code xsize } + B { ({@Code outline} only) distance to right boundary } +@Rowa + A { @Code ysize } + B { ({@Code outline} only) distance to top boundary } +@Rowa + A { @Code xmark } + B { ({@Code outline} only) distance to column mark } +@Rowa + A { @Code ymark } + B { ({@Code outline} only) distance to row mark } +@Rowa + A { @Code margin } + B { ({@Code outline} only) value of the node's @Code margin option } +@Rowa + A { @Code shadow } + B { ({@Code outline} only) value of the node's @Code shadow option } +@Rowa + A { @I number @Code i } + B { @I number inches (100) } +@Rowa + A { @I number @Code c } + B { @I number centimetres (100) } +@Rowa + A { @I number @Code p } + B { @I number points (100) } +@Rowa + A { @I number @Code m } + B { @I number ems (100) } +@Rowa + A { @I number @Code s } + B { @Code 1s is the current width of a space (100) } +@Rowa + A { @I number @Code v } + B { @Code 1v is the current inter-line space (100) } +@Rowa + A { @I number @Code f } + B { @Code 1f is the size of the current font (100) } +@Rowa + A { @Code "xcoord" @I point } + B { the @I x coordinate of the point (99) } +@Rowa + A { @Code "ycoord" @I point } + B { the @I y coordinate of the point (99) } +@Rowa + A { @Code abs @I length } + B { absolute value (99) } +@Rowa + A { @I length @Code rand @I length } + B { random real length in this range inclusive (98) } +@Rowa + A { @I length @Code max @I length } + B { the larger of two lengths (98) } +@Rowa + A { @I length @Code min @I length } + B { the smaller of two lengths (98) } +@Rowa + A { @I point @Code "distance" @I point } + B { (non-negative) distance between two points (98) } +@Rowa + A { @I length @Code "*" @I number } + B { length multiplied by number (97) } +@Rowa + A { @I number @Code "*" @I length } + B { length multiplied by number (97) } +@Rowa + A { @I length @Code "/" @I number } + B { length divided by number (96, left associative) } +@Rowa + A { @I length @Code "+" @I length } + B { sum of two lengths (96, left associative) } +@Rowa + A { @Code "+" @I length } + B { identity operation (96) } +@Rowa + A { @I length @Sym minus @I length } + B { difference of two lengths (96, left associative) } +@Rowa + A { @Sym minus @I length } + B { negation (96) } + +@Rowh +@Rowh +@Rowh +@Rowh +@Rowh A { @I angle } vmargin { 0.2vx } +@Rowh +@Rowa + A { @I number @Code d } + B { @I number degrees (100) } +@Rowa + A { @I number } + B { @I number degrees (@Code d is optional) (100) } +@Rowa + A { @Code parallel } + B { ({@Code labelangle} options only) angle parallel to curve at label point } +@Rowa + A { @Code antiparallel } + B { ({@Code labelangle} options only) angle antiparallel to curve at label point } +@Rowa + A { @Code perpendicular } + B { ({@Code labelangle} options only) angle perpendicular to curve at label point } +@Rowa + A { @Code antiperpendicular } + B { ({@Code labelangle} options only) angle antiperpendicular to curve at label point } +@Rowa + A { {@I label}{@Code "??ANGLE"} } + B { angle parallel to curve at {@I label} if known, else @Code "0d" (99) } +@Rowa + A { @Code anglefix @I angle } + B { @I angle normalized to between @Code 0d inclusive and @Code 360d exclusive (99) } +@Rowa + A { @Code abs @I angle } + B { absolute value (99) } +@Rowa + A { @I length @Code atan @I length } + B { arc tangent of first over second (98) } +@Rowa + A { @I point @Code "angleto" @I point } + B { angle from first point to second (98) } +@Rowa + A { @I angle @Code rand @I angle } + B { random angle in this range inclusive (98) } +@Rowa + A { @I angle @Code max @I angle } + B { the larger of two angles (98) } +@Rowa + A { @I angle @Code min @I angle } + B { the smaller of two angles (98) } +@Rowa + A { @I angle @Code "*" @I number } + B { angle multiplied by number (97) } +@Rowa + A { @I number @Code "*" @I angle } + B { angle multiplied by number (97) } +@Rowa + A { @I angle @Code "/" @I number } + B { division of angle by number (96, left associative) } +@Rowa + A { @I angle @Code "+" @I angle } + B { sum of two angles (96, left associative) } +@Rowa + A { @Code "+" @I angle } + B { identity operation (96) } +@Rowa + A { @I angle @Sym minus @I angle } + B { difference of two angles (96, left associative) } +@Rowa + A { @Sym minus @I angle } + B { negation (96) } +@Rowa + A { @Code angle } + B { ({@Code outline} only) value of the node's @Code angle option } + + +@Rowh +@Rowh +@Rowh +@Rowh +@Rowh A { @I point } vmargin { 0.2vx } +@Rowh +@Rowa + A { @I label } + B { a previously defined label } +@Rowa + A { {@I any}{@Code "??"}{@I label} } + B { {@I any}{@Code "@"}{@I label} if sensible, else {@I any} (99) } +@Rowa + A { @Code "prev" } + B { the previous point in a shape } +@Rowa + A { @I length @Code "atangle" @I angle } + B { point at distance and angle from origin (89) } +@Rowa + A { @I "point/tag" @Code "boundaryatangle" @I angle } + B { @I {point}, or point on boundary of @I tag at @I angle (89) } +@Rowa + A { @I point @Code "**" @I number } + B { multiplication of point by number (88) } +@Rowa + A { @I point @Code "++" @I point } + B { vector sum of two points (87) } +@Rowa + A { @I point {@Sym minus}{@Sym minus} @I point } + B { vector difference of two points (87) } +@Rowa + A { @I {number, number} } + B { @I x and @I y coordinates with respect to base (70) } +@Rowa + A { @I {length length} } + B { @I x and @I y distance from origin (5) } +@Rowa + A { @Code from } + B { ({@Code path} only) the value of the link's @Code from option } +@Rowa + A { @Code to } + B { ({@Code path} only) the value of the link's @Code to option } + +@Rowh +@Rowh +@Rowh +@Rowh +@Rowh A { @I boolean } vmargin { 0.2vx } +@Rowh +@Rowa + A { @I number @Code "=" @I number } + B { @Eq { non = }; also between lengths (79) } +@Rowa + A { @I number @Code "!=" @I number } + B { @Eq { non != }; also between lengths (79) } +@Rowa + A { @I number @Code "==" @I number } + B { @Eq { non = } between angles (79) } +@Rowa + A { @I number @Code "!==" @I number } + B { @Eq { non != } between angles (79) } +@Rowa + A { @I number @Code "<=" @I number } + B { @Eq { non <= }; also between lengths (79) } +@Rowa + A { @I number @Code "<" @I number } + B { @Eq { non < }; also between lengths (79) } +@Rowa + A { @I number @Code ">=" @I number } + B { @Eq { non >= }; also between lengths (79) } +@Rowa + A { @I number @Code ">" @I number } + B { @Eq { non > }; also between lengths (79) } +@Rowa + A { @Code "not" @I boolean } + B { Logical not (78) } +@Rowa + A { @I boolean @Code "and" @I boolean } + B { Logical and (77) } +@Rowa + A { @I boolean @Code "or" @I boolean } + B { Logical or (76) } +@Rowa + A { @I boolean @Code "xor" @I boolean } + B { Logical exclusive or (76) } + +} +@DP +A length is represented in PostScript by a single number on the operand +stack; so is an angle. Therefore all number operations can be applied +to lengths and angles as well, but the results will not always be +useful. For example, rounding a length to the nearest integer is +not a useful thing to do because the result depends on the basic unit +(what does 1 equal as a length?) which is implementation-dependent and +genuinely subject to change. Rounding the @I ratio of two lengths does +make sense. The above is an attempt to list only the useful operations; +but if you really need the logarithm of an angle, you can have it. +@PP +Angles are a little more amenable to this kind of thing because they are +always measured in degrees. However, angles suffer from the problem that +{@Code 0d} is really the same angle as {@Code 360d}. For this reason, +separate equality and inequality operators for angles are provided which +ignore multiples of {@Code 360d}, and less than and similar relations +are not defined for angles, because they inherently are not well +defined. See also the @Code anglefix symbol above. +@PP +A point is represented by two lengths (which are numbers) on the +stack. Those familiar with PostScript and willing to sacrifice portability +and increase their risk of error can therefore write, for example, +@OneCol { @I point @Code "exch" } to obtain the reflection of a point about +the main diagonal, and so on. +@PP +The following may have a result of any type, depending on +their options. The options and result may be a +sequence of things as required in shapes, including @Code "[]" and +so forth. +@IndentedList +@LI @OneRow lines @Break { +@Code if + @Code "cond {" @I boolean @Code "}" + @Code "then {" @I anything @Code "}" + @Code "else {" @I anything @Code "}" +} +@LI @OneRow lines @Break { +@I angle @Code quadcase + @Code "0 {" @I anything @Code "}" + @Code "0-90 {" @I anything @Code "}" + @Code "90 {" @I anything @Code "}" + @Code "90-180 {" @I anything @Code "}" + @Code "180 {" @I anything @Code "}" + @Code "180-270 {" @I anything @Code "}" + @Code "270 {" @I anything @Code "}" + @Code "270-360 {" @I anything @Code "}" +} +@LI @OneRow lines @Break { +@I number @Code signcase + @Code "neg {" @I anything @Code "}" + @Code "zero {" @I anything @Code "}" + @Code "pos {" @I anything @Code "}" +} +@LI @OneRow lines @Break { +@Code "xloop from {" @I number "} to {" @I number "} by {" @I number "} do {" + @I anything +@Code "}" +} +@LI @OneRow lines @Break { +@Code "yloop from {" @I number "} to {" @I number "} by {" @I number "} do {" + @I anything +@Code "}" +} +@LI @OneRow lines @Break { +@Code "zloop from {" @I number "} to {" @I number "} by {" @I number "} do {" + @I anything +@Code "}" +} +@EndList +The @Code "if" symbol returns @Code "then" or @Code "else" depending on +the value of {@Code "cond"}, and @Code "signcase" returns {@Code "neg"}, +{@Code zero}, or {@Code pos} depending on whether @I number (which +may also be an angle or a length) is negative, zero, or positive. The +@Code "quadcase" symbol decides whether the given angle points in +one of the four horizontal or vertical directions, or into the quadrants +between them, and returns the appropriate option. Don't be misled by +the unorthodox option names; it is not possible to give your own +ranges, only these ones. +@PP +The loops return a sequence of +repetitions of {@I anything}; any occurrences of {@Code x} in +{@Code xloop} will be replaced by the current value of the loop counter, +and similarly for the other loops. +@PP +Symbols not covered in this summary are the retagging symbol @Code "::" +(Section {@NumberOf dia_tags}); the symbols available within the +{@Code "@Tree"} symbol (Section {@NumberOf dia_posi}); and {@Code ":<"}, +{@Code ":="}, {@Code "@ShowPoints"}, {@Code "@ShowTags"}, and +{@Code "@ShowDirections"} from Section {@NumberOf dia_defi}. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_synt b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_synt new file mode 100755 index 0000000000000..6cef55074231a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_synt @@ -0,0 +1,573 @@ +@Section + @Tag { dia_synt } + @Title { Syntax diagrams } +@Begin +@PP +A variant of the @@Diag symbol, called {@Code "@SyntaxDiag"}, +syntax.diag @Index { @Code "@SyntaxDiag" symbol } +syntax.diagrams @Index { syntax diagrams } +railroad.diagrams @Index { railroad diagrams } +produces syntax diagrams (sometimes called railroad diagrams): +@CD @SyntaxDiag + title { call-chain } +{ + @StartRight @Sequence + A { @Optional @Sequence + A { @BCell "super" } + B { @CCell "!" } + } + B { @Loop + A { @Sequence + A { @ACell identifier } + B { @Optional @Sequence + A { @CCell "(" } + B { @Loop + A { @ACell expression } + B { @CCell "," } + } + C { @CCell ")" } + } + } + B { @CCell "." } + } +} +These are used to define the syntax of computer programming languages, +although they could be put to other uses. We'll explain how to get +syntax diagrams first. At the end of this section is an explanation of +how to change the formats of things, which people who use these diagrams +for other purposes will probably need to do. +@PP +A syntax diagram can be @I { right-moving }, which means it starts +at the left and heads right (like the example above), or it can be +@I { down-moving }, starting at the top and heading downwards. The +@Code "@StartRight" and @Code "@StartDown" symbols are used at the start +of the diagram to say which of these directions is wanted: +@ID @OneRow @Code @Verbatim { +@SyntaxDiag + title { call-chain } +{ + @StartRight ... +} +} +where @Code { ... } stands for the rest of the diagram, as we are about +to describe. For completeness there are also @Code "@StartLeft" and +@Code "@StartUp" symbols, but diagrams never start off in these directions. +@PP +The @Code title option is optional; if given, the effect is as shown +(this option is also available with {@Code "@Diag"}). Subsequent +examples will omit the enclosing {@Code "@SyntaxDiag { ... }"}. +@PP +The basic components of syntax diagrams are @I { category cells }, +shown as boxes in the example above and obtained with the +@Code "@ACell" symbol; @I { keyword cells }, shown as curved boxes +and obtained with {@Code "@BCell"}; and @I { punctuation cells }, +containing punctuation symbols small enough to be enclosed in circles, +and obtained with {@Code "@CCell"}. After each symbol, place whatever +has to go inside the cell: +@ID @OneRow { +@Code @Verbatim { @StartRight @BCell loop } +|7ct +@SyntaxDiag { +@StartRight @BCell loop +} +} +Lout will insert the appropriate arrows, taking account of which +direction (right, up, left, or down) the diagram is currently +moving. This is true for all the syntax diagram symbols; we +won't mention it again. +@FootNote { +This wonderfully useful effect is achieved by a dirty trick, one +of whose consequences is that if you see an error message +similar to `@Code { replacing unknown "@Case" option 0p by 1p }' +it means you've forgotten the initial @Code "@StartRight" or +whatever. +} +@PP +Occasionally, instead of a cell one wants the horizontal or +vertical line to continue uninterrupted. For this there is +the @Code "@Skip" symbol: +@ID @OneRow { +@Code @Verbatim { @StartDown @Skip } +|7ct +@SyntaxDiag { +@StartDown @Skip +} +} +Some examples of its use in practice appear below. +@PP +There are three main ways to build up larger syntax diagrams out +of smaller ones: @I { sequencing }, @I { selection }, and +@I { looping }. For sequencing there is the @Code "@Sequence" symbol: +@ID @OneRow { +@Code @Verbatim { +@StartRight @Sequence + A { @BCell loop } + B { @ACell statements } + C { @BCell end } +} +||7ct +@SyntaxDiag { +@StartRight @Sequence + A { @BCell loop } + B { @ACell statements } + C { @BCell end } +} +} +This is what the sequence looks like in the other three directions: +@CD @OneRow @SyntaxDiag { +@Tbl + mh { 1f } + mv { 0i } + iv { top } + aformat { @Cell ml { 0i } @StartUp A | @Cell @StartLeft A | + @Cell mr { 0i } @StartDown A } +{ +@Rowa A { +@Sequence + A { @BCell loop } + B { @ACell statements } + C { @BCell end } +} +} } +Whatever the direction, the arrows go from option @Code A to option @Code B +to option @Code C and so on. You can have up to twelve items in the +sequence, in options @Code A to {@Code L}; if more than twelve are needed, +just place another sequence inside any one of these options: where one +syntax diagram is allowed, any syntax diagram is allowed, provided there +is enough space on the page (Lout makes a total mess of any diagram that +is too wide to fit on the page). +@PP +After sequencing comes selection, which is obtained with the +@Code "@Select" symbol: +@ID @OneRow { +@Code @Verbatim { +@StartRight @Select + A { @ACell asst } + B { @ACell call-chain } + C { @Sequence + A { @BCell assert } + B { @ACell condition } + } +} +||7ct +@SyntaxDiag { +@StartRight @Select + A { @ACell asst } + B { @ACell call-chain } + C { @Sequence + A { @BCell assert } + B { @ACell condition } + } +} +} +This example shows right-moving selection of three alternatives, +the third being a sequence of things. Here is the same example +in the other three directions: +@CD @OneRow @SyntaxDiag { +@Tbl + mh { 1f } + mv { 0i } + iv { top } + aformat { @Cell ml { 0i } @StartUp A | @Cell @StartLeft A | + @Cell mr { 0i } @StartDown A } +{ +@Rowa A { +@Select + A { @ACell asst } + B { @ACell call-chain } + C { @Sequence + A { @BCell assert } + B { @ACell condition } + } +} } } +When building up complex diagrams like this, it pays to keep the indenting +perfect in the source document. As with sequences, there can be +up to twelve alternatives, in options from @Code A to {@Code L}. +@PP +To say that something is @I optional is to select either that thing or +nothing: +@ID @OneRow { +@Code @Verbatim { +@StartRight @Select + A { @Skip } + B { @ACell parameters } +} +||7ct +@SyntaxDiag { +@StartRight @Select + A { @Skip } + B { @ACell parameters } +} +} +Since this case is so common, there is an @Code "@Optional" symbol for it: +@ID @OneRow { +@Code @Verbatim { +@StartRight @Optional +@ACell parameters +} +||7ct +@SyntaxDiag { +@StartRight @Optional +@ACell parameters +} +} +@Code "@Optional" is exactly like @Code "@Select" with option @Code A +set to @Code "@Skip" and option @Code B set to the syntax diagram +following the @Code "@Optional" symbol. Here is the same example in +the other three directions: +@CD @OneRow @SyntaxDiag { +@Tbl + mh { 1f } + mv { 0i } + iv { top } + aformat { @Cell ml { 0i } @StartUp A | @Cell @StartLeft A | + @Cell mr { 0i } @StartDown A } +{ +@Rowa A { +@Optional @ACell parameters +} } } +There is another kind of `optional' layout, {@Code "@OptionalDiverted"}: +@ID @OneRow { +@Code @Verbatim { +@StartDown @OptionalDiverted +@Sequence + A { @BCell creation } + B { @ACell parameters } +} +||7ct +@SyntaxDiag { +@StartDown @OptionalDiverted @Sequence + A { @BCell creation } + B { @ACell parameters } +} +} +Here is the same example in the other three directions: +@CD @OneRow @SyntaxDiag { +@Tbl + mh { 1f } + mv { 0i } + iv { top } + aformat { @Cell ml { 0i } @StartRight A | @Cell @StartUp A | + @Cell mr { 0i } @StartLeft A } +{ +@Rowa A { +@OptionalDiverted @Sequence + A { @BCell creation } + B { @ACell parameters } +} } } +The optional material goes in a direction perpendicular to what +it would have otherwise: right-moving if previously up or down, and +down-moving if previously left or right. +@PP +Another, related symbol is {@Code "@Diverted"}; it is similar to +@Code "@OptionalDiverted" but without the path which produces nothing: +@ID @OneRow { +@Code @Verbatim { +@StartDown @Diverted @Sequence + A { @BCell creation } + B { @ACell parameters } +} +||7ct +@SyntaxDiag { +@StartDown @Diverted @Sequence + A { @BCell creation } + B { @ACell parameters } +} +} +Here is the same example in the other three directions: +@CD @OneRow @SyntaxDiag { +@Tbl + mh { 1f } + mv { 0i } + iv { top } + aformat { @Cell ml { 0i } @StartRight A | @Cell @StartUp A | + @Cell mr { 0i } @StartLeft A } +{ +@Rowa A { +@Diverted @Sequence + A { @BCell creation } + B { @ACell parameters } +} } } +This symbol is a great aid to packing a big syntax diagram into a +compact shape. +@PP +That covers sequencing and selection; now for looping. The @Code "@Loop" +symbol produces a loop, with option @Code A going forwards and option +@Code B centred and going backwards: +@ID @OneRow { +@Code @Verbatim { +@StartRight @Loop + A { @Sequence + A { @ACell identifier } + B { @CCell : } + C { @ACell type } + } + B { @CCell , } +} +||7ct +@SyntaxDiag { +@StartRight @Loop + A { @Sequence + A { @ACell identifier } + B { @CCell : } + C { @ACell type } + } + B { @CCell , } +} +} +Here is the same example in the other three directions: +@CD @OneRow @SyntaxDiag { +@Tbl + mh { 1f } + mv { 0i } + iv { top } + aformat { @Cell ml { 0i } @StartUp A | @Cell @StartLeft A | + @Cell mr { 0i } @StartDown A } +{ +@Rowa A { +@Loop + A { @Sequence + A { @ACell identifier } + B { @CCell : } + C { @ACell type } + } + B { @CCell , } +} } } +One common case of looping is to have nothing on the way back. We could +get this by placing @Code "@Skip" in option {@Code B} of {@Code "@Loop"}, +but there is an even easier way, the {@Code "@Repeat"} symbol: +@ID @OneRow { +@Code @Verbatim { +@StartRight @Repeat +@ACell statement +} +||7ct +@SyntaxDiag { +@StartRight @Repeat +@ACell statement +} +} +Here is the same example in the other three directions: +@CD @OneRow @SyntaxDiag { +@Tbl + mh { 1f } + mv { 0i } + iv { top } + aformat { @Cell ml { 0i } @StartUp A | @Cell @StartLeft A | + @Cell mr { 0i } @StartDown A } +{ +@Rowa A { +@Repeat +@ACell statement +} } } +Occasionally it looks better to have the empty returning arrow go on +the opposite side of the forward part; for that, there are +@Code "@LoopOpposite" and @Code "@RepeatOpposite" symbols: +@ID @OneRow { +@Code @Verbatim { +@StartRight @LoopOpposite + A { @Sequence + A { @ACell identifier } + B { @CCell : } + C { @ACell type } + } + B { @CCell , } +} +||7ct +@SyntaxDiag { +@StartRight @LoopOpposite + A { @Sequence + A { @ACell identifier } + B { @CCell : } + C { @ACell type } + } + B { @CCell , } +} +} +Here is the same example in the other three directions: +@CD @OneRow @SyntaxDiag { +@Tbl + mh { 1f } + mv { 0i } + iv { top } + aformat { @Cell ml { 0i } @StartUp A | @Cell @StartLeft A | + @Cell mr { 0i } @StartDown A } +{ +@Rowa A { +@LoopOpposite + A { @Sequence + A { @ACell identifier } + B { @CCell : } + C { @ACell type } + } + B { @CCell , } +} } } +@Code "@RepeatOpposite" is particularly useful around a large +{@Code "@Select"}: +@ID @OneRow { +@Code @Verbatim { +@StartRight @RepeatOpposite +@Select + A { @ACell asst } + B { @ACell call-chain } + C { @BCell return } + D { @Sequence + A { @BCell assert } + B { @ACell condition } + } + E { @ACell conditional } + F { @ACell selection } + G { @ACell loop } +} +||7ct +@SyntaxDiag { +@StartRight @RepeatOpposite +@Select + A { @ACell asst } + B { @ACell call-chain } + C { @BCell return } + D { @Sequence + A { @BCell assert } + B { @ACell condition } + } + E { @ACell conditional } + F { @ACell selection } + G { @ACell loop } +} +} +since it clearly distinguishes the loop from the selection. +@PP +Finally, the @Code "@RepeatDiverted" symbol combines the two ideas +of repetition and diversion: +@ID @OneRow { +@Code @Verbatim { +@StartDown @RepeatDiverted +@ACell statement +} +||7ct +@SyntaxDiag { +@StartDown @RepeatDiverted +@ACell statement +} +} +Here is the same example in the other three directions: +@CD @OneRow @SyntaxDiag { +@Tbl + mh { 1f } + mv { 0i } + iv { top } + aformat { @Cell ml { 0i } @StartRight A | @Cell @StartUp A | + @Cell mr { 0i } @StartLeft A } +{ +@Rowa A { +@RepeatDiverted +@ACell statement +} } } +There is no {@Code "@LoopDiverted"} symbol, for good reason. +@PP +Every syntax diagram, from the simplest to the most complex, has +one arrow going into it, and one coming out. There are no exceptions +to this rule. In most syntax diagrams, these two arrows lie on the +same (invisible) line and point in the same direction, and this is +the direction that we say the diagram is moving. There are two symbols +that produce syntax diagrams that lack this second property. Because +of this lack, these symbols cannot be used at arbitrary places in a +complex diagram; they can only be used instead of the @Code "@StartRight" +or @Code "@StartDown" symbols at the beginning of a diagram. The first +symbol, {@Code "@StartRightDown"}, prints its option @Code A right-moving +and its option @Code B down-moving like this: +@ID @OneRow { +@Code @Verbatim { +@StartRightDown + A { @ACell A } + B { @ACell B } +} +||7ct +@SyntaxDiag { +@StartRightDown + A { @ACell A } + B { @ACell B } +} +} +The second symbol, {@Code "@StartRightRight"}, prints both options +right-moving like this: +@ID @OneRow { +@Code @Verbatim { +@StartRightRight + A { @ACell A } + B { @ACell B } +} +||7ct +@SyntaxDiag { +@StartRightRight + A { @ACell A } + B { @ACell B } +} +} +As usual, the options to these symbols may contain arbitrarily complex +syntax diagrams. +@PP +Finally, a few words about changing things. The @Code "@SyntaxDiag" +symbol used the {@Code "@ANode"}, {@Code "@BNode"}, and {@Code "@CNode"} +symbols of @@Diag to construct its three types of cells. In fact, the +@Code "@SyntaxDiag" symbol is nothing more than this: +@ID @OneRow @Code @Verbatim { +@Diag + avalign { mark } + avstrut { yes } + amargin { 0.2f } + aoutline { box } + afont { Italic } + bvalign { mark } + bvstrut { yes } + bmargin { 0.2f } + boutline { curvebox } + bfont { Bold } + cvalign { mark } + cvstrut { yes } + cmargin { 0.2f } + coutline { circle } + chsize { 1f } + arrowlength { 0.4f } +} +So any of the other @Code "@Diag" options can be used freely with +{@Code "@SyntaxDiag"}; and the format of the three cell types can be +changed by using @Code "@Diag" instead of {@Code "@SyntaxDiag"}, and +choosing new values for these (and other) options. +@PP +If there are more than three cell types, it is necessary to fall back +on the {@Code "@XCell"} symbol, which produces a cell without nominating +any particular cell type. After @Code "@XCell" there must be a regular +@Code "@Diag" node, like this: +@ID @OneRow { +@Code @Verbatim { +@StartRight @XCell @Ellipse INIT +} +|7ct +@SyntaxDiag { +@StartRight @XCell @Ellipse INIT +} +} +This way there is no limit to the number of different kinds of cells. Also, +since (for example) @Code "@ACell" is merely an abbreviation for +@ID @OneRow @Code @Verbatim { @XCell @ANode } +any node options may follow {@Code "@ACell"}, {@Code "@BCell"}, and +{@Code "@CCell"}. The appearance of the arrows can be changed in the usual +way, by setting options as has been done above for {@Code "arrowlength"}. +@PP +There are three options specifically related to syntax diagrams: +@ID @OneRow @Code @Verbatim { +@SyntaxDiag + syntaxgap { 0.35f } + syntaxbias { 1.0f } + syntaxradius { 0.3f } +} +The @Code syntaxgap option determines the spacing between the various +elements; changing it causes the syntax diagrams to be set tighter or +looser in a consistent way. The default value shown is 0.35 times the +current font size. The @Code syntaxbias and @Code syntaxradius +options affect the appearance of curved lines, as in @Code "@RVLCurve" +and its relatives. These options are also available with {@Code "@Diag"}, +and in the setup file. Note however that these options cannot be given to +individual elements in a syntax diagram, only to the diagram as a whole. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_tags b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_tags new file mode 100755 index 0000000000000..91cd7a15242f0 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_tags @@ -0,0 +1,168 @@ +@Section + @Tag { dia_tags } + @Title { Tags } +@Begin +@PP +In addition to drawing the outline, each of the standard node +types also attaches names, called {@I tags}, to certain points. For +example, the @Code "@Ellipse" symbol creates nine tags: +@ID { +@Code { +"@Ellipse" +} +||7ct +@Diag { +//1.0f +@ShowTags @Ellipse + vsize { 1.5c } + hsize { 3.0c } +} +} +The standard link symbols also create tags: +@ID { +@Code { +"@Link" +} +||7ct +@Diag { +2.5c @High 2c @Wide +// +@ShowTags @Arrow + from { 0,0.8 } + to { 1,0 } +} +} +The names and positions of all standard tags may be found in the summary +(Section {@NumberOf dia_summ}) at the end of this chapter. Each tag +stands for a point, and may be used wherever a point is required: +@ID { +@Code { +"@Ellipse { Hello, world }" +"//" +"@Link from { SW } to { SE }" +} +||7ct +@Diag { +@Ellipse { Hello, world } +// +@Link from { SW } to { SE } +} +} +A tag may only be used later in the text of the diagram than the place +where it is defined. +@PP +Standard tags like @Code N and @Code S are not much use as they are, +since in general there will be many nodes and hence many @Code N and +@Code S tags. The retagging symbol, {@Code "::"}, solves this problem: +@ID { +@Code { +"A:: @Ellipse" +} +||7ct +@Diag { +//1.5f +@ShowTags { +A:: @Ellipse + vsize { 1.5c } + hsize { 3.0c } +} +} +} +Within the following object, the points have their original tags, but +afterwards the names are changed by prefixing the word preceding +{@Code "::"}, plus a @Code "@" character, to each one. These longer +tags may be used exactly like the others: +@ID { +@Code { +"A:: @Ellipse { Hello, world }" +"//" +"@Link from { A@SW } to { A@SE }" +} +||7ct +@Diag { +A:: @Ellipse { Hello, world } +// +@Link from { A@SW } to { A@SE } +} +} +The retagging symbol may be applied to links, and indeed to arbitrary +objects; it will retag every tag within the following object, even +tags that have already been retagged: +@ID { +@Code { +"A:: {" +" 1:: @Ellipse" +" vsize { 1.0c }" +" hsize { 2.5c }" +" @DP" +" @DP" +" 2:: @Ellipse" +" vsize { 1.0c }" +" hsize { 2.5c }" +"}" +} +||7ct +@Diag { +//1.0f +@ShowTags { +A:: { + 1:: @Ellipse + vsize { 1.0c } + hsize { 2.5c } + @DP + @DP + 2:: @Ellipse + vsize { 1.0c } + hsize { 2.5c } +} +} +} +} +In practice one usually only retags individual nodes. It is best to +use only upper-case letters and digits in tags, because Lout and +PostScript have tags of their own containing lower-case letters, and +any mixup causes total disaster. +@PP +When a tag lies within the object following some node, it is +automatically retagged in this way with tag {@Code IN}. For example, in +@ID @Code { +"@Square" +"@Circle Hello" +} +the circle lies within the square, and what you get in effect is +@ID @Code { +"@Square" +"IN:: @Circle Hello" +} +This prevents confusion between the tags of the inner and outer nodes. This +retagging cannot be left to the user's discretion, owing to unexpected +effects on the positioning of labels of the outer node if inner tags are +not retagged. +@PP +Although @Code from and @Code to are just two of several options within +@Code "@Diag" where a point is expected, and hence where a tag may be +given, they have a special virtue not shared by any other options. It is +possible to give the name of an entire node, not just a tag denoting one +point, to them: +@ID { +@Code { +"A:: @Circle" +"@DP" +"B:: @Ellipse { Hello, world }" +"//" +"@Link from { A } to { B }" +} +||7ct +@Diag { +A:: @Circle +@DP +B:: @Ellipse { Hello, world } +// +@Link from { A } to { B } +} +} +This will select a point on the outline of the named node, appropriate +to the type of link being drawn. It is extremely useful, of course, but +potentially confusing: @Code A and @Code B do not denote points and are +not tags, strictly speaking, at all. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_tree b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_tree new file mode 100755 index 0000000000000..d16f2bcabaa60 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/dia_tree @@ -0,0 +1,379 @@ +@Section + @Tag { dia_tree } + @Title { Trees } +@Begin +@PP +@@Diag offers some symbols for producing tree diagrams, using the +tree. @Index { @Code "@Tree" symbol in @@Diag } +@Code "@Tree" symbol, which may appear anywhere within the nodes part: +@ID @OneRow @Code { +"@Diag {" +" ..." +" @Tree { ... }" +" ..." +"}" +} +Within this symbol, new symbols {@Code "@LeftSub"}, {@Code "@RightSub"}, +{@Code "@FirstSub"}, {@Code "@NextSub"}, and {@Code "@StubSub"} become +available. The first two are used to get a (non-empty) binary tree: +@ID @OneRow { +@Code { +"@Tree {" +" @Circle A" +" @LeftSub {" +" @Circle B" +" @LeftSub @Square C" +" @RightSub @Square D" +" }" +" @RightSub @Circle E" +"}" +} +||7ct +@Diag { +@Tree { + @Circle A + @LeftSub { + @Circle B + @LeftSub @Square C + @RightSub @Square D + } + @RightSub @Circle E +} +} +} +The root of the tree, which must be a single node but may have any +outline, comes first. After that comes the @Code "@LeftSub" symbol +followed by the left subtree, which must be enclosed in braces unless +it consists of a single node. After that comes the @Code "@RightSub" +symbol followed by the right subtree, again enclosed in braces unless it +consists of a single node. These rules apply recursively and will +produce a binary tree of arbitrary size and depth. If a node has no +left or right subtree, leave out the corresponding @Code "@LeftSub" or +@Code "@RightSub" symbol. +@PP +A similar system using @Code "@FirstSub" and @Code "@NextSub" produces +trees in which each node may have arbitrarily many children: +@ID @OneRow { +@Code { +"@Tree {" +" @Circle A" +" @FirstSub {" +" @Circle B" +" @FirstSub @Square C" +" @NextSub @Square D" +" }" +" @NextSub @Circle E" +" @NextSub @Circle F" +"}" +} +||7ct +@Diag { +@Tree { + @Circle A + @FirstSub { + @Circle B + @FirstSub @Square C + @NextSub @Square D + } + @NextSub @Circle E + @NextSub @Circle F +} +} +} +The first subtree is preceded by {@Code "@FirstSub"}, and subsequent +trees are preceded by {@Code "@NextSub"}. The subtrees are spaced +at equal separations from each other, with the root centred over +them, in contrast to the binary tree arrangement in which the two +subtrees are positioned to the left and right of the root, never +intruding into the space beneath it. +@PP +Although each subtree must contain a node for its root, it is not hard +to get around this: +@ID @OneRow { +@Code { +"@Tree" +"{" +"@Circle" +"@FirstSub @Circle" +"@NextSub pathstyle { noline }" +" @Circle outlinestyle { noline }" +" ..." +"@NextSub @Circle" +"}" +} +||7ct +@Diag { +@Tree +{ +@Circle +@FirstSub @Circle +@NextSub pathstyle { noline } + @Circle outlinestyle { noline } + ... +@NextSub @Circle +} +} +} +Clumsy as this is, it often assists in placing the unenclosed object +in a way consistent with the surrounding nodes, and offers margins +and so forth which help with fine-tuning its position. +@PP +The fifth subtree symbol, {@Code "@StubSub"}, produces a stub subtree: +@ID @OneRow { +@Code { +"@Tree {" +"@Circle @Eq { a }" +"@StubSub @Eq { T tsub a }" +"}" +} +||7ct +@Diag { +@Tree { +@Circle @Eq { a } +@StubSub @Eq { T tsub a } +} +} +} +Unlike the other subtree symbols, {@Code "@StubSub"} is not followed +by a subtree with a node for its root; rather, it is followed by an +arbitrary object, and the path is drawn around this stub object, which +is placed directly underneath the parent node with zero vertical +separation. In practice, it is usually necessary to attach margins to +the following object; the easiest way to do that is to enclose it in +{@Code "@Box outlinestyle { noline }"}. An example appears below. +@PP +It is possible to mix the three subtree types, by having binary tree +symbols following some nodes, non-binary tree symbols following +others, and a single {@Code "@StubSub"} following others. However, +at any one node the subtrees must be all either binary, non-binary, +or stub. +@PP +The subtree symbols have all of the options of {@Code "@Link"}, and +these apply to the link drawn from the parent of the root of the subtree +to the root of the subtree (or anticlockwise around the stub object): +@ID @OneRow { +@Code { +"@Tree {" +" @Circle A" +" @LeftSub" +" arrow { yes }" +" xlabel { 1 }" +" @Circle B" +" @RightSub" +" arrow { yes }" +" xlabel { 2 }" +" @Circle C" +"}" +} +||7ct +@Diag { +@Tree { + @Circle A + @LeftSub + arrow { yes } + xlabel { 1 } + @Circle B + @RightSub + arrow { yes } + xlabel { 2 } + @Circle C +} +} +} +To get reverse arrows use @Code "arrow { back }" as usual. +@PP +The subtree symbols do not need @Code from and @Code to options, +because they already know which nodes they are linking together. However, +you may use @Code from or @Code to to give a tag specifying a particular +point within the node: +@ID @OneRow { +@Code { +"@Tree {" +"@Circle" +"@LeftSub from { S } to { N }" +" @Isosceles vsize { 2f }" +"@RightSub from { S } to { N }" +" @Isosceles vsize { 2f }" +"}" +} +||7ct +@Diag +{ +@Tree { +@Circle +@LeftSub from { S } to { N } + @Isosceles vsize { 2f } +@RightSub from { S } to { N } + @Isosceles vsize { 2f } +} +} +} +In this example both links go from the @Code S tag of the parent node to the +@Code N tag of the child node (at the apex of the iscosceles triangle). These +options also work for {@Code "@StubSub"}, where they refer to the start and +end of the stub path: +@ID @OneRow { +@Code { +"@Tree {" +"@Circle @Eq { a }" +"@StubSub" +" from { SW }" +" to { SE }" +"@Box outlinestyle { noline }" +" @Eq { T tsub a }" +"}" +} +||7ct +@Diag { +@Tree { +@Circle @Eq { a } +@StubSub + from { SW } + to { SE } +@Box outlinestyle { noline } + @Eq { T tsub a } +} +} +} +and so the tags both refer to points in the parent node in this case. +@PP +The @Code "@LeftSub" and @Code "@RightSub" symbols have variants called +@Code "@ZeroWidthLeftSub" and @Code "@ZeroWidthRightSub" which are the +same except that the resulting subtrees consume no width: +@ID @OneRow { +@Code { +"@Tree {" +"@Circle" +"@LeftSub {" +" @Circle" +" @LeftSub @Square" +" @RightSub @Square" +"}" +"@RightSub {" +" @Circle" +" @LeftSub {" +" @Circle" +" @ZeroWidthLeftSub @Square" +" @ZeroWidthRightSub @Square" +" }" +" @RightSub @Square" +"} }" +} +||7ct +@Diag { +@Tree +{ +@Circle +@LeftSub { + @Circle + @LeftSub @Square + @RightSub @Square +} +@RightSub { + @Circle + @LeftSub { + @Circle + @ZeroWidthLeftSub @Square + @ZeroWidthRightSub @Square + } + @RightSub @Square +} +} +} +} +There is nothing analogous for the other subtree symbols. +@PP +The @Code "@Diag" symbol has a few options for adjusting the appearance +of the tree. The @Code "treehsep" option determines the horizontal space left +between a root and its left subtree, between a root and its right subtree, +and between one subtree and the next when @Code "@NextSub" is used. The +@Code "treevsep" option determines the vertical space left between a root +and its subtrees: +@ID @OneRow { +@Code { +"@Diag" +" treehsep { 0c }" +" treevsep { 0c }" +"{" +"@Tree" +"{" +" @Circle A" +" @LeftSub @Square B" +" @RightSub @Square C" +"}" +"}" +} +||7ct +@Diag + treehsep { 0c } + treevsep { 0c } +{ +@Tree +{ + @Circle A + @LeftSub @Square B + @RightSub @Square C +} +} +} +These options may also be given to individual subtree symbols, although +@Code "treevsep" works as expected only with @Code "@LeftSub" and +{@Code "@FirstSub"}, since these determine the vertical separation of +all children of their parent. +@PP +The @Code "treehindent" option determines where the root of a non-binary +tree is positioned over its subtrees; the value may be @Code "left" +for at left, @Code "ctr" for centred over them (the default), +@Code "right" for at the right, or any length, meaning that far from +the left. Owing to problems behind the scenes, this option may not be +given to individual subtree symbols; so as a consolation, it is permitted +as an option to the @Code "@Tree" symbol. +@PP +It is not possible to attach tags to nodes within a tree, because +tags are attached automatically by the tree symbols and any extra +tags would disrupt the linking. However, you can use @Code "@ShowTags" +to find out what these automatic tags are, and use them in a subsequent +links part. For example, the tag attached to the right child of the left +child of the root of a binary tree is {@Code "L@R@T"}, and in general the +tag records the path from the root to the node, with @Code "T" added to +the end. The root always has tag {@Code "T"}. The tree as a whole may +be retagged in the usual way. +@PP +There is an @Code "@HTree" symbol which is the same as +htree. @Index { @Code "@HTree" symbol in @@Diag } +@Code "@Tree" except that the tree grows horizontally (from left to +right) instead of vertically. The same symbols are available within +@Code "@HTree" as within {@Code "@Tree"}; @Code "@LeftSub" and +@Code "@FirstSub" produce what might be called the top subtree, and +@Code "@RightSub" and @Code "@NextSub" produce lower trees. @Code "@HTree" +has no @Code "treehindent" option; instead, it has an exactly analogous +@Code "treevindent" option. +@PP +@Code "@HTree" may be used to get horizontal lists: +@ID @OneRow { +@Code { +"@I @Diag" +" arrow { yes } treehsep { 1c } {" +"@HTree {" +" @Node A" +" @FirstSub {" +" @Node B" +" @FirstSub @Node C" +" }" +"}" +"}" +} +||7ct +@I @Diag arrow { yes } treehsep { 1c } { +@HTree { +@Node A +@FirstSub { + @Node B + @FirstSub @Node C +} +} +} +} +The braces are clumsy but necessary. The first node has tag {@Code "T"}, the +second has tag {@Code "S@T"}, the third has tag {@Code "S@S@T"}, and so on. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/draft.eps b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/draft.eps new file mode 100755 index 0000000000000..bfc6e9a9483ac --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/draft.eps @@ -0,0 +1,289 @@ +%!PS-Adobe-3.0 +%%Creator: Basser Lout Version 3.00 (July 1994) +%%CreationDate: Fri Sep 9 10:46:13 1994 +%%DocumentData: Binary +%%DocumentNeededResources: (atend) +%%DocumentSuppliedResources: (atend) +%%Pages: (atend) +%%BoundingBox: 0 0 595 842 +%%EndComments + +%%BeginProlog +%%BeginResource: procset LoutStartUp +/m { 3 1 roll moveto show } bind def +/s { exch currentpoint exch pop moveto show } bind def +/k { exch neg 0 rmoveto show } bind def +/in { 1440 mul } def +/cm { 567 mul } def +/pt { 20 mul } def +/em { 120 mul } def +/sp { louts mul } def +/vs { loutv mul } def +/ft { loutf mul } def +/dg { } def + +/LoutGraphic { + /louts exch def + /loutv exch def + /loutf exch def + /ymark exch def + /xmark exch def + /ysize exch def + /xsize exch def +} def + +/LoutFont +{ findfont exch scalefont setfont +} bind def + +/LoutRecode { + { findfont dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding exch def + currentdict end definefont pop + } + stopped {} +} bind def + +/BeginEPSF { + /LoutEPSFState save def + /dict_count countdictstack def + /op_count count 1 sub def + userdict begin + /showpage { } def + 0 setgray 0 setlinecap + 1 setlinewidth 0 setlinejoin + 10 setmiterlimit [] 0 setdash newpath + /languagelevel where + { pop languagelevel + 1 ne + { false setstrokeadjust false setoverprint + } if + } if +} bind def + +/EndEPSF { + count op_count sub { pop } repeat + countdictstack dict_count sub { end } repeat + LoutEPSFState restore +} bind def +%%EndResource + +%%BeginResource encoding vec1 +/vec1 [ +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash +/zero /one /two /three /four /five /six /seven +/eight /nine /colon /semicolon /less /equal /greater /question +/at /A /B /C /D /E /F /G +/H /I /J /K /L /M /N /O +/P /Q /R /S /T /U /V /W +/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore +/quoteleft /a /b /c /d /e /f /g +/h /i /j /k /l /m /n /o +/p /q /r /s /t /u /v /w +/x /y /z /braceleft /bar /braceright /asciitilde /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /quotedblleft /quotedblright /fi +/fl /endash /emdash /bullet /dagger /daggerdbl /florin /fraction +/dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent +/dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron +/space /exclamdown /cent /sterling /currency /yen /brokenbar /section +/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron +/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered +/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown +/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis +/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply +/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls +/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla +/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide +/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis +] def +%%EndResource + +%%EndProlog + +%%BeginSetup +%%IncludeResource: font Times-Roman +/Times-Romanfnt86 vec1 /Times-Roman LoutRecode +/fnt86 { /Times-Romanfnt86 LoutFont } def +%%IncludeResource: font Times-Bold +/Times-Boldfnt88 vec1 /Times-Bold LoutRecode +/fnt88 { /Times-Boldfnt88 LoutFont } def +%%IncludeResource: font Times-Italic +/Times-Italicfnt87 vec1 /Times-Italic LoutRecode +/fnt87 { /Times-Italicfnt87 LoutFont } def +/LoutExtColour [ currentrgbcolor ] cvx def +%%EndSetup + +%%Page: ? 1 +%%BeginPageSetup +%%PageResources: font Times-Roman +%%+ font Times-Bold +%%+ font Times-Italic +/pgsave save def +0.0500 dup scale 10 setlinewidth +%%EndPageSetup + +gsave +0 16840 translate +0.0000 rotate +gsave +3087 -14622 translate +17.7734 17.7734 scale +gsave +0 0 translate +62.0000 rotate +240 fnt86 0.8 0.8 0.8 setrgbcolor 0 -54(DRAFT)m +grestore + +grestore + +grestore +gsave +0 16840 translate +0.0000 rotate +240 fnt88 LoutExtColour setrgbcolor +5143 -3022(A)m 5376(T)s 22(est)k 5852(Example)s 240 fnt87 +5029 -3520(J)m 6(ef)k 4(fr)k 8(e)k 7(y)k +5713(H.)s 6006(Kingston)s 240 fnt86 3998 -4021(Basser)m 4695(Department)s +5883(of)s 6142(Computer)s 7159(Science)s 4446 -4309(The)m 4878(Uni)s 6(v)k 3(ersity)k +5938(of)s 6197(Sydne)s 3(y)k 6973(2006)s 5512 -4597(Australia)m +5053 -5050(9)m 5233(September)s 9(,)k 6366(1994)s 240 fnt88 +3097 -5692(Abstract)m 240 fnt86 1897 -6123(This)m 2403(is)s 2643(the)s +3016(abstract.)s 3959(It')s 13(s)k 4344(v)s 3(ery)k +4847(short,)s 5466(as)s 1417 -6411(be\207ts)m 2036(a)s 2243(tin)s 3(y)k +2713(test)s 3145(document.)s 4310(Ho)s 6(we)k 6(v)k 3(er)k +5273(it)s 5506(is)s 1417 -6699(long)m 1892(enough)s 2647(to)s +2882(check)s 3489(that)s 3896(things)s 4530(are)s 4870(w)s 2(orking)k +1417 -6987(as)m 1676(e)s 3(xpected.)k 240 fnt88 1417 -7780(1.)m +1717(The)s 2176(\207rst)s 2647(section)s 240 fnt86 1897 -8211(This)m +2408(is)s 2653(the)s 3031(\207rst)s 3488(section.)s 4371(It)s +4602(too)s 4994(is)s 5239(v)s 3(ery)k 1417 -8499(short,)m +2045(just)s 2480(a)s 2676(test)s 3097(section,)s 3924(nothing)s +4746(more)s 5327([)s 5406(1)s 5526(])s 5605(.)s +1417 -8787(This)m 1912(is)s 2141(the)s 2503(\207rst)s 2944(section.)s +3811(It)s 4026(too)s 4402(is)s 4631(v)s 3(ery)k +5123(short,)s 1417 -9075(just)m 1885(a)s 2114(test)s 2568(section,)s +3428(nothing)s 4283(more.)s 4957(This)s 5505(is)s 1417 -9363(the)m +1794(\207rst)s 2250(section.)s 3132(It)s 3362(too)s 3753(is)s +3997(v)s 3(ery)k 4504(short,)s 5127(just)s 5557(a)s +1417 -9651(test)m 1841(section,)s 2671(nothing)s 3496(more.)s 4140(This)s +4658(is)s 4910(the)s 5295(\207rst)s 1417 -9939(section.)m 2255(It)s +2441(too)s 2788(is)s 2988(v)s 3(ery)k 3451(short,)s +4030(just)s 4416(a)s 4563(test)s 4935(section,)s 1417 -10227(nothing)m +2254(more.)s 153 fnt86 2805 -10121(i)m 240 fnt86 2952 -10227(This)m +3482(is)s 3746(the)s 4143(\207rst)s 4619(section.)s 5521(It)s +1417 -10515(too)m 1794(is)s 2024(v)s 3(ery)k 2517(short,)s +3126(just)s 3542(a)s 3719(test)s 4121(section,)s 4929(nothing)s +1417 -10803(more.)m 2037(This)s 2531(is)s 2759(the)s 3120(\207rst)s +3560(section.)s 4426(It)s 4640(too)s 5015(is)s 5243(v)s 3(ery)k +1417 -11091(short,)m 2024(just)s 2438(a)s 2613(test)s 3013(section,)s +3819(nothing)s 4620(more.)s 5240(This)s 1417 -11379(is)m 1655(the)s +2026(\207rst)s 2476(section.)s 3352(It)s 3576(too)s 3961(is)s +4199(v)s 3(ery)k 4700(short,)s 5317(just)s 1417 -11667(a)m +1591(test)s 1990(section,)s 2795(nothing)s 3595(more.)s 4214(This)s +4707(is)s 4934(the)s 5294(\207rst)s 1417 -11955(section.)m 2255(It)s +2441(too)s 2788(is)s 2988(v)s 3(ery)k 3451(short,)s +4030(just)s 4416(a)s 4563(test)s 4935(section,)s 1417 -12243(nothing)m +2260(more.)s 2922(This)s 3458(is)s 3728(the)s 4131(\207rst)s +4613(section.)s 5521(It)s 1417 -12531(too)m 1794(is)s 2024(v)s 3(ery)k +2517(short,)s 3126(just)s 3542(a)s 3719(test)s 4121(section,)s +4929(nothing)s 1417 -12819(more.)m 2037(This)s 2531(is)s 2759(the)s +3120(\207rst)s 3560(section.)s 4426(It)s 4640(too)s 5015(is)s +5243(v)s 3(ery)k 1417 -13107(short,)m 2024(just)s 2438(a)s +2613(test)s 3013(section,)s 3819(nothing)s 4620(more.)s 5240(This)s +1417 -13395(is)m 1655(the)s 2026(\207rst)s 2476(section.)s 3352(It)s +3576(too)s 3961(is)s 4199(v)s 3(ery)k 4700(short,)s +5317(just)s 1417 -13683(a)m 1591(test)s 1990(section,)s 2795(nothing)s +3595(more.)s 4214(This)s 4707(is)s 4934(the)s 5294(\207rst)s +1417 -13971(section.)m 2255(It)s 2441(too)s 2788(is)s 2988(v)s 3(ery)k +3451(short,)s 4030(just)s 4416(a)s 4563(test)s 4935(section,)s +1417 -14259(nothing)m 2260(more.)s 2922(This)s 3458(is)s 3728(the)s +4131(\207rst)s 4613(section.)s 5521(It)s 1417 -14547(too)m 1794(is)s +2024(v)s 3(ery)k 2517(short,)s 3126(just)s 3542(a)s +3719(test)s 4121(section,)s 4929(nothing)s 1417 -14835(more.)m 2037(This)s +2531(is)s 2759(the)s 3120(\207rst)s 3560(section.)s 4426(It)s +4640(too)s 5015(is)s 5243(v)s 3(ery)k 1417 -15123(short,)m +2024(just)s 2438(a)s 2613(test)s 3013(section,)s 3819(nothing)s +4620(more.)s 5240(This)s 6233 -5690(is)m 6471(the)s 6842(\207rst)s +7292(section.)s 8168(It)s 8392(too)s 8777(is)s 9015(v)s 3(ery)k +9516(short,)s 10133(just)s 6233 -5978(a)m 6407(test)s 6806(section,)s +7611(nothing)s 8411(more.)s 9030(This)s 9523(is)s 9750(the)s +10110(\207rst)s 6233 -6266(section.)m 7071(It)s 7257(too)s 7604(is)s +7804(v)s 3(ery)k 8267(short,)s 8846(just)s 9232(a)s +9379(test)s 9751(section,)s 6233 -6554(nothing)m 7076(more.)s 7738(This)s +8274(is)s 8544(the)s 8947(\207rst)s 9429(section.)s 10337(It)s +6233 -6842(too)m 6610(is)s 6840(v)s 3(ery)k 7333(short,)s +7942(just)s 8358(a)s 8535(test)s 8937(section,)s 9745(nothing)s +6233 -7130(more.)m 6853(This)s 7347(is)s 7575(the)s 7936(\207rst)s +8376(section.)s 9242(It)s 9456(too)s 9831(is)s 10059(v)s 3(ery)k +6233 -7418(short,)m 6829(just)s 7232(a)s 7396(test)s 7785(section,)s +8580(nothing)s 9370(more.)s 153 fnt86 9921 -7312(ii)m 240 fnt86 +10063 -7418(This)m 6233 -7706(is)m 6471(the)s 6842(\207rst)s 7292(section.)s +8168(It)s 8392(too)s 8777(is)s 9015(v)s 3(ery)k +9516(short,)s 10133(just)s 6233 -7994(a)m 6407(test)s 6806(section,)s +7611(nothing)s 8411(more.)s 9030(This)s 9523(is)s 9750(the)s +10110(\207rst)s 6233 -8282(section.)m 7071(It)s 7257(too)s 7604(is)s +7804(v)s 3(ery)k 8267(short,)s 8846(just)s 9232(a)s +9379(test)s 9751(section,)s 6233 -8570(nothing)m 7066(more.)s 153 fnt86 +7617 -8464(a)m 240 fnt86 7785 -8570(This)m 8311(is)s 8571(the)s +8964(\207rst)s 9436(section.)s 10334(It)s 6233 -8858(too)m 6610(is)s +6840(v)s 3(ery)k 7333(short,)s 7942(just)s 8358(a)s +8535(test)s 8937(section,)s 9745(nothing)s 6233 -9146(more.)m 6853(This)s +7347(is)s 7575(the)s 7936(\207rst)s 8376(section.)s 9242(It)s +9456(too)s 9831(is)s 10059(v)s 3(ery)k 6233 -9434(short,)m +6840(just)s 7254(a)s 7429(test)s 7829(section,)s 8635(nothing)s +9436(more.)s 10056(This)s 6233 -9722(is)m 6471(the)s 6842(\207rst)s +7292(section.)s 8168(It)s 8392(too)s 8777(is)s 9015(v)s 3(ery)k +9516(short,)s 10133(just)s 6233 -10010(a)m 6407(test)s 6806(section,)s +7611(nothing)s 8411(more.)s 9030(This)s 9523(is)s 9750(the)s +10110(\207rst)s 6233 -10298(section.)m 7071(It)s 7257(too)s 7604(is)s +7804(v)s 3(ery)k 8267(short,)s 8846(just)s 9232(a)s +9379(test)s 9751(section,)s 6233 -10586(nothing)m 7076(more.)s 7738(This)s +8274(is)s 8544(the)s 8947(\207rst)s 9429(section.)s 10337(It)s +6233 -10874(too)m 6610(is)s 6840(v)s 3(ery)k 7333(short,)s +7942(just)s 8358(a)s 8535(test)s 8937(section,)s 9745(nothing)s +6233 -11162(more.)m 240 fnt88 6233 -11761(1.1)m 6533(.)s 6713(The)s +7172(\207rst)s 7643(subsection)s 240 fnt86 6713 -12192(This)m 7244(is)s +7509(the)s 7907(\207rst)s 8384(subsection,)s 9560(and)s 10012(what)s +6233 -12480(is)m 6518(more)s 7135(it)s 7393(has)s 7838(sub-subsections)s +9479(which)s 10190(are)s 6233 -12768(starting)m 7009(no)s 6(w)k 15(.)k +240 fnt87 6233 -13415(The)m 6652(\207r)s 2(st)k 7082(sub-subsection)s +240 fnt86 6713 -13893(This)m 7222(is)s 7465(the)s 7841(\207rst)s +8296(sub-subsection.)s 9922(There)s 6233 -14181(will)m 6664(be)s 6950(a)s +7116(second)s 7841(one)s 8247(in)s 8493(a)s 8659(minute.)s +gsave +6233 -14668 translate +240 fnt86 LoutExtColour setrgbcolor 1134 0 0 0 240 288 60 LoutGraphic +gsave +0 0 moveto xsize 0 lineto stroke +grestore + +grestore +122 fnt86 LoutExtColour setrgbcolor 6233 -14836(a)m 192 fnt86 6287 -14921(This)m +6687(is)s 6874(the)s 7168(\207rst)s 7524(footnote,)s 8270(anchored)s +9032(to)s 4(w)k 1(ards)k 9692(the)s 9986(end)s +10323(of)s 6233 -15151(the)m 6530(\207rst)s 6889(section.)s 7590(It)s +7769(should)s 8343(appear)s 8916(at)s 9117(the)s 9414(bottom)s +10020(of)s 10242(the)s 6233 -15381(page.)m 6739(Let')s 10(s)k +7169(hope)s 7590(it)s 7744(comes)s 8281(out)s 8574(right.)s + +grestore + +pgsave restore +showpage + +%%Trailer +%%DocumentNeededResources: font Times-Roman +%%+ font Times-Italic +%%+ font Times-Bold +%%DocumentSuppliedResources: procset LoutStartUp +%%+ encoding vec1 +%%Pages: 1 +%%EOF diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ new file mode 100755 index 0000000000000..7a87fdb8e2f4b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ @@ -0,0 +1,28 @@ +@Chapter + @Title { Equations } + @Tag { equations } +@Begin +@LP +This chapter explains how to produce mathematical formulas in Lout, +equations. @Index { equations } +mathematics. @Index mathematics +eq. @Index @Code "@Eq" +using the @Code "@Eq" symbol like this: +@ID @Code { +"@Eq { big int supp 1 on 0 ` dx over sqrt {1 - x sup 2} = pi over 2 }" +} +This example produces +@ID @Eq { big int supp 1 on 0 ` dx over sqrt {1 - x sup 2} = pi over 2 } +The @Code "@Eq" symbol looks after all the details of spacing for +you, and it provides several hundred mathematical symbols. +@BeginSections +@Include { equ_intr } +@Include { equ_symb } +@Include { equ_vert } +@Include { equ_spac } +@Include { equ_disp } +@Include { equ_defs } +@Include { equ_summ } +@Include { equ_tequ } +@EndSections +@End @Chapter diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_defs b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_defs new file mode 100755 index 0000000000000..0e38da78eed92 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_defs @@ -0,0 +1,53 @@ +@Section + @Title { Defining new equation formatting symbols } +@Begin +@PP +Whenever you type particular equations or parts of equations repeatedly, +you can save time by using definitions. Definitions are the subject of +Section {@NumberOf definitions}, so here we will just give a few examples +of their use in equation formatting. +@PP +Suppose for example that @OneCol @Eq { p sub i ` log sub 2 ` p sub i } +occurs frequently in your document. Then +@ID @Code "def epi { p sub i ` log sub 2 ` p sub i }" +makes the symbol @Code "epi" stand for the object between the braces: +@ID { +@Code "big sum from i=1 to n ` epi" +|7ct +@Eq { big sum from i=1 to n ` epi } +} +Parameters are very useful when parts of the symbol vary: +@ID @OneRow @Code { +"def ep" +" right x" +"{ p sub x ` log sub 2 ` p sub x" +"}" +} +The parameter @Code x will be replaced by the object just to the right +of {@Code "ep"}: +@ID { +@Code { +"big sum from i=1 to k ` ep i +" +"big sum from j=k+1 to n ep j" +} +||7ct +@Eq { +big sum from i=1 to k ` ep i + +big sum from j=k+1 to n ep j +} +} +The precedence of the symbols you define will be 100 by default. +@PP +To make the symbols of @Code "@Eq" available within such definitions, +each must be preceded by {@Code "import @Eq"}. As explained in Section +{@NumberOf definitions}, the definitions go into a file called +{@Code "mydefs"}, which might then look like this: +@ID @OneRow @Code { +"import @Eq" +"def epi { p sub i ` log sub 2 ` p sub i }" +"" +"import @Eq" +"def ep right x { p sub x ` log sub 2 ` p sub x }" +} +Use of @Code "epi" and @Code "ep" outside @Code "@Eq" will cause an error. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_disp b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_disp new file mode 100755 index 0000000000000..ea4af478b95c1 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_disp @@ -0,0 +1,126 @@ +@Section + @Title { Displaying equations } + @Tag { mathdisplays } +@Begin +@PP +The result of the @Code "@Eq" symbol is an object which, according to the +displayed.equations @Index { displayed equations } +golden rule (Section {@NumberOf objects}), may appear anywhere: inside +a paragraph, inside a table, and so on. In particular, equations are +often displayed using the @Code "@CentredDisplay" or @Code "@IndentedDisplay" +symbols from Section {@NumberOf displays}: +@ID @Code "@IndentedDisplay @Eq { ... }" +Now displayed equations are often numbered, and often aligned with one +another on their equals signs. For this there are special display +symbols which are the the subject of this section. These symbols can +align and number any display at all, but since in practice they seem to +be used only with equations, we discuss them here rather than in +Section {@NumberOf displays} where they really belong. +@PP +Let's begin by looking at a first example of a numbered display: +aligned.displays @Index { aligned displays } +aligned.equations @Index { aligned equations } +numbered.displays @Index { numbered displays } +numbered.equations @Index { numbered equations } +@BeginAlignedDisplays +@CentredAlignedNumberedDisplay + @Tag { fibeq } +@Eq { F sub n ^= F sub {n-1} + F sub {n-2} } +After the display we might have some more text for a while, and then +we might want a second display, aligned on its equals sign with the +first, and also numbered in sequence with it: +@CentredAlignedNumberedDisplay +@Eq { F sub n - F sub {n-1} ^= F sub {n-2} } +@EndAlignedDisplays +Notice that the two displays are centred as a block as well as +aligned. Altogether there are four ways in which displays vary: +@BL +@LI { A display can be raw or not raw (see below); } +@LI { It can be a {@Code "@Display"}, {@Code "@LeftDisplay"}, +{@Code "@IndentedDisplay"}, {@Code "@QuotedDisplay"}, +{@Code "@CentredDisplay"}, {@Code "@CenteredDisplay"}, +or {@Code "@RightDisplay"}; } +@LI { It can be aligned or not aligned; } +@LI { It can be numbered or not numbered. } +@EL +All possible combinations are allowed. The display that has everything +is called +@ID @Code "@RawCentredAlignedNumberedDisplay" +By leaving out some or all of {@Code Raw}, {@Code Aligned}, and +{@Code Numbered}, and by changing or leaving out {@Code Centred}, +we get all these combinations. The two displays +numbereddisplay. @Index @Code "@NumberedDisplay" +aligneddisplay. @Index @Code "@AlignedDisplay" +given earlier were made like this: +@ID @OneRow @Code { +"... a first example of a numbered display:" +"@BeginAlignedDisplays" +"@CentredAlignedNumberedDisplay" +" @Tag { fibeq }" +"@Eq { F sub n ^= F sub { n-1 } + F sub { n-2 } }" +"After the display we might ... numbered in sequence with it:" +"@CentredAlignedNumberedDisplay @Eq { F sub n - F sub { n-1 } ^= F sub { n-2 } }" +"@EndAlignedDisplays" +"Notice that the two displays are centred ..." +} +All numbered displays have an optional @Code "@Tag" option which is +used for cross referencing (see Section {@NumberOf cross}). Alignment +and numbering work quite independently; they don't have to start or end +together, and there can be non-aligned and non-numbered displays among +the others. +@PP +When aligned displays are used, it is necessary to indicate where the +aligned group begins and ends, by placing @Code "@BeginAlignedDisplays" +beginaligneddisplays @Index @Code "@BeginAlignedDisplays" +endaligneddisplays @Index @Code "@EndAlignedDisplays" +just before the first, and @Code "@EndAlignedDisplays" just after the +last. The alignment points are indicated by preceding them by the +symbol {@Code "^"}, so you aren't restricted to aligning at equals +signs. @Code "@BeginAlignedDisplays" and @Code "@EndAlignedDisplays" +cannot span across several sections or subsections: the equations +aligned by them must lie within a single large-scale structure symbol. +@PP +In our example of aligned and numbered displays, the two displays +were separated by some ordinary text. Very often, though, aligned +displays follow directly after each other. This is a problem, because +if you have one display directly following another there will be too +much vertical space between them. This problem was mentioned in +Section {@NumberOf displays}, and the recommended solution was to +use a list. However, there are no aligned or numbered (in this sense) +lists. +@PP +Fortunately, each display symbol has a `raw' version, which +means that no space is inserted above or below the display. Instead, +raw.displays @Index { raw displays } +you must insert it yourself using paragraph symbols: +@ID @OneRow @Code { +"preceding text" +"@DP" +"@RawAlignedDisplay @Eq { ... }" +"@DP" +"@RawAlignedNumberedDisplay @Eq { ... }" +"@DP" +"following text" +} +You get the right spacing by placing {@Code "@DP"} symbols before, +between, and after each display; and you get to use the specialized +displays that you need. Raw and non-raw displays may be numbered and +aligned together. +@PP +Numbered displays are numbered automatically. Depending on where in +the document they appear, the number might include a chapter number +or section number, etc. This is controlled by options in the setup +file; for example, setting @Code "@ChapterNumInDisplays" to @Code Yes +ensures that numbered displays will be numbered afresh at the beginning +of each chapter, and that the number will include a chapter number. There +is also a @Code "@DisplayNumStyle" option which controls the style of +displays; the default value, {@Code "(num)"}, encloses the number in +parentheses as is conventional when numbering equations. +@PP +Every display symbol has an abbreviated form consisting of @Code "@" +followed by its capital letters only. For example, +@Code "@BeginAlignedDisplays" may be abbreviated to {@Code "@BAD"}, and +the display that has everything to {@Code "@RCAND"}. Owing to an +unfortunate clash between the initial letters of `raw' and `right', +@Code "@RightDisplay" and the other right displays have no abbreviations. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_intr b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_intr new file mode 100755 index 0000000000000..882aaff2f7cc5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_intr @@ -0,0 +1,61 @@ +@Section + @Title { Introduction } +@Begin +@PP +The Lout definitions for the @Code "@Eq" symbol are accessed via a setup +file called {@Code "eq"}, which you must include at the start of your +document if +eq.file @Index { @Code "eq" file } +you want equations, like this: +@ID @OneRow @Code { +"@SysInclude { tbl }" +"@SysInclude { eq }" +"@SysInclude { doc }" +"@Doc @Text @Begin" +"..." +"@End @Text" +} +This shows what to do if you want both tables and equations, but you +may leave out the line for tables if you don't want them. Setup files +for specialized packages, such as like {@Code "tab"} and {@Code "eq"}, +are best included before the main setup file, but may be included in +any order. +@PP +With the @Code "eq" file included, you may write +eq. @Index { @Code "@Eq" } +@ID @Code "@Eq { ... }" +at any point in your document, and the symbols of @Code "@Eq" will be +available between the braces. Any symbols available outside continue +to be available inside, which means that equations may be freely mixed +with other symbols, without restriction. +@PP +Equations may appear within a paragraph of text, or they may be +displayed. {@Code "@Eq"}'s job is to produce an object containing the +equation; it neither knows nor cares where this equation goes. +@PP +To get an equation within a paragraph, simply place @Code "@Eq { ... }" +at the desired point. To make the optimal paragraph breaker work hard to +arrange the paragraph so that the equation does not spread over two +lines, use {@Code "@OneCol @Eq { ... }"}. This is needed so frequently +that a symbol @Code "@E" is defined in @Code "eq" along with @Code "@Eq" +e. @Index { @Code "@E" } +which is an abbreviation for {@Code "@OneCol @Eq"}. +@PP +To display an equation, use a display symbol like @Code "@IndentedDisplay" +or @Code "@CentredDisplay" (Section {@NumberOf displays}). For example, +@ID @Code "@CentredDisplay @Eq { int supp pi on 0 sin ` x = 0 }" +produces +@CentredDisplay @Eq { int supp pi on 0 sin ` x = 0 } +There are also symbols for aligned and numbered displays, which are +very commonly used with equations. These symbols are the subject of +Section {@NumberOf mathdisplays}. +@PP +In this chapter we show the Lout input at the left, and its +result at the right: +@ID { +@Code "@Eq { {x sup 2 + y sup 2} over 2 }" +|7ct +@Eq { {x sup 2 + y sup 2} over 2 } +} +Subsequent examples will omit the enclosing {@Code "@Eq { ... }"}. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_spac b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_spac new file mode 100755 index 0000000000000..2a79fb10be42c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_spac @@ -0,0 +1,81 @@ +@Section + @Title { Spacing } +@Begin +@PP +There is a basic rule governing the use of white space characters (space, +tab, and newline) in the input to Lout: white space between two objects +affects the result; white space between a symbol and its parameter does +not. This is explained at length in Section {@NumberOf spaces}. +@PP +Although this rule is just right most of the time, it is not adequate +for equation formatting. Getting the horizontal spacing right in +equations is a very fiddly business, involving four different sizes of +space (zero, thin, medium, and thick), and different rules for spacing +within superscripts and subscripts to those applying outside, according +to a leading authority @Cite { $knuth1984tex }. {@Code "@Eq"} therefore +takes the spacing decisions upon itself, and consequently chooses to +ignore all white space in its input, even between two objects. (The +simplest way to restore the effect of white space to part of an equation +is to enclose that part in a @Code "@Font" symbol.) +@PP +Every symbol provided by {@Code "@Eq"} has a @I {full name}, which +full.name @Index { full name of equation symbol } +denotes the symbol without any space attached. Many symbols also +have a @I {short name}, which denotes the same symbol with what +short.name @Index { short name of equation symbol } +{@Code "@Eq"} considers to be an appropriate amount of space for that +symbol attached to it. For example, @Eq { lessequal } has full name +@Code lessequal and short name {@Code "<="}: +@IL +@LI { +@Code "a lessequal b" +|7ct +@Eq { a lessequal b } +} +@LI { +@Code "a <= b" +|7ct +@Eq { a <= b } +} +@EL +{@Code "@Eq"} puts a thick space around relation symbols like {@Code "<="}, +relations @Index { relation symbols in equations } +a medium space around binary operator symbols like {@Code "+"}, and a thin +binary.op @Index { binary operators in equations } +space after punctuation symbols (@Code ";" and {@Code ","}); except that +punctuation @Index { punctuation in equations } +in places where the symbols appear in a smaller size (superscripts, +subscripts, etc.), these spaces are omitted. No other horizontal space +is ever inserted. +@PP +The short names have been carefully designed to produce good-looking +mathematics most of the time. It is best to rely on them in the first +instance and only think about spacing when the result is not pleasing. In +that case, {@Code "@Eq"}'s space can be removed by using the full names, +and thin, medium and thick space can be added using the following symbols: +@ID @Tab + vmargin { 0.5vx } + @Fmta { @Col A ! @Col B } +{ +@Rowa + A { @Code "`" } + B { {@Code "0.18f"} ({@Code "0.018f"} in subscripts, etc.) } +@Rowa + A { @Code "``" } + B { {@Code "0.24f"} ({@Code "0.024f"} in subscripts, etc.) } +@Rowa + A { @Code "```" } + B { {@Code "0.30f"} ({@Code "0.030f"} in subscripts, etc.) } +} +where @Code "1f" is the current font size. These symbols have low +precedence. The @Code "&" symbol from raw Lout is also available; +the @Code "s" unit has value 0 and so is not very useful, but one can +write @Code "&2m" for example for a two em space. The full names are +tedious to remember, so {@Code "@Eq"} provides a @Code "non" symbol +non. @Index { @Code "non" in equations } +which removes spaces from its right parameter; thus @Code "non <=" is +equivalent to {@Code "lessequal"}. There are also {@Code "rel"}, +{@Code "bin"}, and {@Code "punct"} symbols for telling {@Code "@Eq"} +to add space to the following symbol as though it was a relation symbol, +binary operator, or punctuation symbol. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_summ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_summ new file mode 100755 index 0000000000000..9f9bf66a3d08c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_summ @@ -0,0 +1,728 @@ +@Section + @Title { Summary } +@Begin +@PP +This section is a complete list of the symbols provided by +{@Code "@Eq"}. We divide them into auxiliary, parameterized, short names +(further divided into relations, binary operators, and punctuation), +and full names. The auxiliary symbols are: +@ID @Tab + vmargin { 0.5vx } + @Fmta { @Col A ! @Col B } +{ +@Rowa + A { @Code "`" } + B { Thin space } +@Rowa + A { @Code "``" } + B { Medium space } +@Rowa + A { @Code "```" } + B { Thick space } +@Rowa + A { @Code "bin x" } + B { Treat @Code x as a binary operator } +@Rowa + A { @Code "rel x" } + B { Treat @Code x as a relation } +@Rowa + A { @Code "punct x" } + B { Treat @Code x as a punctuation symbol } +@Rowa + A { @Code "non x" } + B { Remove spaces normally put into @Code x } +@Rowa + A { @Code "vctr x" } + B { Centre @Code x vertically } +@Rowa + A { @Code "big x" } + B { Make @Code x larger } +@Rowa + A { @Code "small x" } + B { Make @Code x smaller } +} +Here are all the parameterized symbols, shown in groups of equal +precedence, with the precedence itself at right: +@ID @OneRow lines @Break { +@Code "matrix pmatrix bmatrix brmatrix fmatrix cmatrix amatrix not" (100) +@Code "dot dotdot hat tilde vec dyad overbar underbar" (62) +@Code "sup sub tsub supp" (60) @Code "on ton" (61) +@Code "from to widefrom wideto" (58) +@Code "sqrt root" (56) +@Code "over frac" (54) +@Code "col lcol ccol rcol mcol" (52) +@Code "row axisrow" (50) +# @Code "above labove cabove rabove mabove" (52) +# @Code "nextcol" (50) +} +See Section {@NumberOf symbols} for examples of matrices. Here are some +examples of the other symbols: +@IL + +@LI { +@Code "x dot" +|7ct +@Eq { x dot } +} + +@LI { +@Code "x dotdot" +|7ct +@Eq { x dotdot } +} + +@LI { +@Code "x hat" +|7ct +@Eq { x hat } +} + +@LI { +@Code "x tilde" +|7ct +@Eq { x tilde } +} + +@LI { +@Code "x vec" +|7ct +@Eq { x vec } +} + +@LI { +@Code "x dyad" +|7ct +@Eq { x dyad } +} + +@LI { +@Code "x+y overbar" +|7ct +@Eq { x+y overbar } +} + +@LI { +@Code "x+y underbar" +|7ct +@Eq { x+y underbar } +} + +@EL +These marks are centred over the preceding object, except the last two +which are extended to the width of the object. +@IL + +@LI { +@Code "a sup b" +|7ct +@Eq {a sup b} +} + +@LI { +@Code "a sub b" +|7ct +@Eq {a sub b} +} + +@LI { +@Code "W tsub b" +|7ct +@Eq {W tsub b} +} + +@LI { +@Code "a supp b on c" +|7ct +@Eq {a supp b on c} +} + +@LI { +@Code "W supp b ton c" +|7ct +@Eq {W supp b ton c} +} + +@EL +Note that @Code "supp" and @Code "on" (or {@Code "ton"}) must be used +together as shown; @Code "tsub" and @Code "ton" are exactly like +@Code "sub" and @Code "on" except that the subscript is tucked in. +@IL + +@LI { +@Code "big sum from i" +|7ct +@Eq {big sum from i} +} + +@LI { +@Code "big prod to j" +|7ct +@Eq {big prod to j} +} + +@LI { +@Code { "{a, ... , z} widefrom" +"{90d @Rotate blbrace}" } +|7ct +@Eq { {a, ... , z} widefrom {90d @Rotate blbrace} } +} + +@LI { +@Code "{a, ... , z} wideto minus" +|7ct +@Eq { {a, ... , z} wideto minus } +} + +@EL +@Code "widefrom" and @Code "wideto" are like @Code "from" and +@Code "to" except that they horizontally scale the right parameter +to the width of the left. +@IL + +@LI { +@Code "sqrt {x over y}" +|7ct +@Eq { sqrt {x over y} } +} + +@LI { +@Code "3 root {x over y}" +|7ct +@Eq { 3 root {x over y} } +} + +@EL +The left parameter of @Code "root" may be any object. Here are +four ways to denote division: +@IL + +@LI { +@Code "2 over 3" +|7ct +@Eq { 2 over 3 } +} + +@LI { +@Code "2 frac 3" +|7ct +@Eq { 2 frac 3 } +} + +@LI { +@Code "2 div 3" +|7ct +@Eq { 2 div 3 } +} + +@LI { +@Code "2 slash 3" +|7ct +@Eq { 2 slash 3 } +} + +@EL +The @Code "div" symbol is a binary operator (see below), and +@Code "slash" is the full name for the @Code "/" character from +the Adobe Symbol font. You can't use @Code "/" itself, because +it is one of Lout's special symbols. +@PP +The following short names define relations (that is, they have a thick +space on each side): +@DP +ragged @Break { +"<" @Dbl @Eq { < } +">" @Dbl @Eq { > } +"=" @Dbl @Eq { = } +"<=" @Dbl @Eq { <= } +"prec" @Dbl @Eq { prec } +"preceq" @Dbl @Eq { preceq } +"<<" @Dbl @Eq { << } +"subset" @Dbl @Eq { subset } +"subseteq" @Dbl @Eq { subseteq } +"sqsubseteq" @Dbl @Eq { sqsubseteq } +"in" @Dbl @Eq { in } +"vdash" @Dbl @Eq { vdash } +"smile" @Dbl @Eq { smile } +"frown" @Dbl @Eq { frown } +">=" @Dbl @Eq { >= } +"succ" @Dbl @Eq { succ } +"succeq" @Dbl @Eq { succeq } +">>" @Dbl @Eq { >> } +"supset" @Dbl @Eq { supset } +"supseteq" @Dbl @Eq { supseteq } +"sqsupseteq" @Dbl @Eq { sqsupseteq } +"ni" @Dbl @Eq { ni } +"dashv" @Dbl @Eq { dashv } +"mid" @Dbl @Eq { mid } +"parallel" @Dbl @Eq { parallel } +"==" @Dbl @Eq { == } +"~" @Dbl @Eq { ~ } +"-~" @Dbl @Eq { -~ } +"asymp" @Dbl @Eq { asymp } +"~~" @Dbl @Eq { ~~ } +"=~" @Dbl @Eq { =~ } +"bowtie" @Dbl @Eq { bowtie } +"propto" @Dbl @Eq { propto } +"models" @Dbl @Eq { models } +"doteq" @Dbl @Eq { doteq } +"trieq" @Dbl @Eq { trieq } +"perp" @Dbl @Eq { perp } +"notsub" @Dbl @Eq { notsub } +"notin" @Dbl @Eq { notin } +"!=" @Dbl @Eq { != } +"<->" @Dbl @Eq { <-> } +"<--" @Dbl @Eq { <-- } +"-->" @Dbl @Eq { --> } +"up" @Dbl @Eq { up } +"down" @Dbl @Eq { down } +"<=>" @Dbl @Eq { <=> } +"<==" @Dbl @Eq { <== } +"==>" @Dbl @Eq { ==> } +"dblup" @Dbl @Eq { dblup } +"dbldown" @Dbl @Eq { dbldown } +":" @Dbl @Eq { : } +"::" @Dbl @Eq { :: } +":=" @Dbl @Eq { := } +} +@DP +These can be negated by preceding them with {@Code "not"}, as in +negation. @Index { negation of equation symbols } +{@Code "not =="}, for example, which yields {@Eq { not == }}. The +following short names define binary operators (medium space on each side): +@DP +ragged @Break { +"+" @Dbl @Eq { + } +"-" @Dbl @Eq { - } +"+-" @Dbl @Eq { +- } +"-+" @Dbl @Eq { -+ } +"setminus" @Dbl @Eq { setminus } +"cdot" @Dbl @Eq { cdot } +"times" @Dbl @Eq { times } +"*" @Dbl @Eq { * } +"circ" @Dbl @Eq { circ } +"div" @Dbl @Eq { div } +"cap" @Dbl @Eq { cap } +"cup" @Dbl @Eq { cup } +"uplus" @Dbl @Eq { uplus } +"sqcap" @Dbl @Eq { sqcap } +"sqcup" @Dbl @Eq { sqcup } +"triangleleft" @Dbl @Eq { triangleleft } +"triangleright" @Dbl @Eq { triangleright } +"wr" @Dbl @Eq { wr } +"bigcirc" @Dbl @Eq { bigcirc } +"bigtriangleup" @Dbl @Eq { bigtriangleup } +"bigtriangledown"@Dbl @Eq { bigtriangledown } +"vee" @Dbl @Eq { vee } +"wedge" @Dbl @Eq { wedge } +"oplus" @Dbl @Eq { oplus } +"ominus" @Dbl @Eq { ominus } +"otimes" @Dbl @Eq { otimes } +"oslash" @Dbl @Eq { oslash } +"odot" @Dbl @Eq { odot } +"dagger" @Dbl @Eq { dagger } +"daggerdbl" @Dbl @Eq { daggerdbl } +"amalg" @Dbl @Eq { amalg } +} +@DP +The following names define arrow symbols (no extra space): +@DP +ragged @Break { +"leftarrow" @Dbl @Eq { leftarrow } +"longleftarrow" @Dbl @Eq { longleftarrow } +"dblleftarrow" @Dbl @Eq { dblleftarrow } +"dbllongleftarrow" @Dbl @Eq { dbllongleftarrow } +"rightarrow" @Dbl @Eq { rightarrow } +"longrightarrow" @Dbl @Eq { longrightarrow } +"dblrightarrow" @Dbl @Eq { dblrightarrow } +"dbllongrightarrow" @Dbl @Eq { dbllongrightarrow } +"leftrightarrow" @Dbl @Eq { leftrightarrow } +"longleftrightarrow" @Dbl @Eq { longleftrightarrow } +"dblleftrightarrow" @Dbl @Eq { dblleftrightarrow } +{ 1.15i @Wide @HScale "dbllongleftrightarrow" } @Dbl @Eq { dbllongleftrightarrow } +"mapsto" @Dbl @Eq { mapsto } +"longmapsto" @Dbl @Eq { longmapsto } +"hookleftarrow" @Dbl @Eq { hookleftarrow } +"hookrightarrow" @Dbl @Eq { hookrightarrow } +"leadsto" @Dbl @Eq { leadsto } +"leftharpoonup" @Dbl @Eq { leftharpoonup } +"rightharpoonup" @Dbl @Eq { rightharpoonup } +"leftharpoondown" @Dbl @Eq { leftharpoondown } +"rightharpoondown" @Dbl @Eq { rightharpoondown } +"rightleftharpoons" @Dbl @Eq { rightleftharpoons } +"uparrow" @Dbl @Eq { uparrow } +"dbluparrow" @Dbl @Eq { dbluparrow } +"downarrow" @Dbl @Eq { downarrow } +"dbldownarrow" @Dbl @Eq { dbldownarrow } +"updownarrow" @Dbl @Eq { updownarrow } +"dblupdownarrow" @Dbl @Eq { dblupdownarrow } +"nearrow" @Dbl @Eq { nearrow } +"searrow" @Dbl @Eq { searrow } +"swarrow" @Dbl @Eq { swarrow } +"nwarrow" @Dbl @Eq { nwarrow } +} +@DP +The following names define punctuation symbols (thin space on the +right-hand side): +@DP +ragged @Break { +";" @Dbl @Eq { ; } +"," @Dbl @Eq { , } +"col" @Dbl @Eq { col } +} +@DP +The following symbols are used in ways typified by the large sum and +product symbols. In display equations they should be preceded by the +@Code "big" symbol: +@DP +ragged @Break { +"sum" @Dbl @Eq { sum } +"prod" @Dbl @Eq { prod } +"coprod" @Dbl @Eq { coprod } +@LP +"int" @Dbl @Eq { int } +"oint" @Dbl @Eq { oint } +"bcap" @Dbl @Eq { bcap } +@LP +"bcup" @Dbl @Eq { bcup } +"bvee" @Dbl @Eq { bvee } +"bwedge" @Dbl @Eq { bwedge } +@LP +"bodot" @Dbl @Eq { bodot } +"botimes" @Dbl @Eq { botimes } +"boplus" @Dbl @Eq { boplus } +@LP +"buplus" @Dbl @Eq { buplus } +} +@DP +The following symbols are defined so that they will appear in Roman, +as is conventional for them in equations: +@DP +ragged @Break { +"arccos" @Dbl @Eq { arccos } +"arcsin" @Dbl @Eq { arcsin } +"arctan" @Dbl @Eq { arctan } +"arg" @Dbl @Eq { arg } +"cos" @Dbl @Eq { cos } +"cosh" @Dbl @Eq { cosh } +"cot" @Dbl @Eq { cot } +"coth" @Dbl @Eq { coth } +"csc" @Dbl @Eq { csc } +"deg" @Dbl @Eq { deg } +"det" @Dbl @Eq { det } +"dim" @Dbl @Eq { dim } +"exp" @Dbl @Eq { exp } +"gcd" @Dbl @Eq { gcd } +"hom" @Dbl @Eq { hom } +"inf" @Dbl @Eq { inf } +"ker" @Dbl @Eq { ker } +"lg" @Dbl @Eq { lg } +"lim" @Dbl @Eq { lim } +"liminf" @Dbl @Eq { liminf } +"limsup" @Dbl @Eq { limsup } +"ln" @Dbl @Eq { ln } +"log" @Dbl @Eq { log } +"max" @Dbl @Eq { max } +"min" @Dbl @Eq { min } +"Pr" @Dbl @Eq { Pr } +"sec" @Dbl @Eq { sec } +"sin" @Dbl @Eq { sin } +"sinh" @Dbl @Eq { sinh } +"supr" @Dbl @Eq { supr } +"tan" @Dbl @Eq { tan } +"tanh" @Dbl @Eq { tanh } +"mod" @Dbl @Eq { mod } +} +@DP +The following symbols are also defined to ensure that they will appear +in Roman: +@DP +ragged @Break { +"0" @Dbl @Eq { 0 } +"1" @Dbl @Eq { 1 } +"2" @Dbl @Eq { 2 } +"3" @Dbl @Eq { 3 } +"4" @Dbl @Eq { 4 } +"5" @Dbl @Eq { 5 } +"6" @Dbl @Eq { 6 } +"7" @Dbl @Eq { 7 } +"8" @Dbl @Eq { 8 } +"9" @Dbl @Eq { 9 } +"!" @Dbl @Eq { ! } +"?" @Dbl @Eq { ? } +"%" @Dbl @Eq { % } +"(" @Dbl @Eq { ( } +")" @Dbl @Eq { ) } +"[" @Dbl @Eq { [ } +"]" @Dbl @Eq { ] } +} +@DP +The following symbols make good @Code atleft and @Code atright parameters +of the @Code matrix symbol: +@LP +@LP +ragged @Break { +"lpar" @Dbl @Eq { lpar } +"blpar" @Dbl @Eq { blpar } +"rpar" @Dbl @Eq { rpar } +"brpar" @Dbl @Eq { brpar } +"lbrack" @Dbl @Eq { lbrack } +"blbrack" @Dbl @Eq { blbrack } +"rbrack" @Dbl @Eq { rbrack } +"brbrack" @Dbl @Eq { brbrack } +"lbrace" @Dbl @Eq { lbrace } +"blbrace" @Dbl @Eq { blbrace } +"rbrace" @Dbl @Eq { rbrace } +"brbrace" @Dbl @Eq { brbrace } +"lfloor" @Dbl @Eq { lfloor } +"blfloor" @Dbl @Eq { blfloor } +"rfloor" @Dbl @Eq { rfloor } +"brfloor" @Dbl @Eq { brfloor } +"lceil" @Dbl @Eq { lceil } +"blceil" @Dbl @Eq { blceil } +"rceil" @Dbl @Eq { rceil } +"brceil" @Dbl @Eq { brceil } +"langle" @Dbl @Eq { langle } +"blangle" @Dbl @Eq { blangle } +"rangle" @Dbl @Eq { rangle } +"brangle" @Dbl @Eq { brangle } +} +@LP +@LP +Here are some miscellaneous symbols: +@DP +ragged @Break { +"hbar" @Dbl @Eq { hbar } +"Re" @Dbl @Eq { Re } +"Im" @Dbl @Eq { Im } +"partial" @Dbl @Eq { partial } +"infty" @Dbl @Eq { infty } +"prime" @Dbl @Eq { prime } +"nabla" @Dbl @Eq { nabla } +"surd" @Dbl @Eq { surd } +"top" @Dbl @Eq { top } +"bot" @Dbl @Eq { bot } +"dbar" @Dbl @Eq { dbar } +"triangle" @Dbl @Eq { triangle } +"backslash" @Dbl @Eq { backslash } +"forall" @Dbl @Eq { forall } +"exists" @Dbl @Eq { exists } +"neg" @Dbl @Eq { neg } +"circle" @Dbl @Eq { circle } +"filledcircle" @Dbl @Eq { filledcircle } +"square" @Dbl @Eq { square } +"ldots" @Dbl @Eq { ldots } +"cdots" @Dbl @Eq { cdots } +"vdots" @Dbl @Eq { vdots } +"ddots" @Dbl @Eq { ddots } +"del" @Dbl @Eq { del } +"grad" @Dbl @Eq { grad } +"triangleup" @Dbl @Eq { triangleup } +"triangledown" @Dbl @Eq { triangledown } +"..." @Dbl @Eq { ... } +",...," @Dbl @Eq { ,..., } +"half" @Dbl @Eq { half } +"third" @Dbl @Eq { third } +"'" @Dbl @Eq { ' } +"empty" @Dbl @Eq { empty } +} +@DP +Finally, here is the long list of full names from the Adobe Symbol font; +these are the same characters as you get with the @Code "@Sym" symbol +of Section {@NumberOf characters}, but within equations you don't need +to type {@Code "@Sym"}: +@DP +ragged @Break { +"space" @Dbl @Eq { space } +"exclam" @Dbl @Eq { exclam } +"universal" @Dbl @Eq { universal } +"numbersign" @Dbl @Eq { numbersign } +"existential" @Dbl @Eq { existential } +"percent" @Dbl @Eq { percent } +"ampersand" @Dbl @Eq { ampersand } +"suchthat" @Dbl @Eq { suchthat } +"parenleft" @Dbl @Eq { parenleft } +"parenright" @Dbl @Eq { parenright } +"asteriskmath" @Dbl @Eq { asteriskmath } +"plus" @Dbl @Eq { plus } +"comma" @Dbl @Eq { comma } +"minus" @Dbl @Eq { minus } +"period" @Dbl @Eq { period } +"slash" @Dbl @Eq { slash } +"zero" @Dbl @Eq { zero } +"one" @Dbl @Eq { one } +"two" @Dbl @Eq { two } +"three" @Dbl @Eq { three } +"four" @Dbl @Eq { four } +"five" @Dbl @Eq { five } +"six" @Dbl @Eq { six } +"seven" @Dbl @Eq { seven } +"eight" @Dbl @Eq { eight } +"nine" @Dbl @Eq { nine } +"colon" @Dbl @Eq { colon } +"semicolon" @Dbl @Eq { semicolon } +"less" @Dbl @Eq { less } +"equal" @Dbl @Eq { equal } +"greater" @Dbl @Eq { greater } +"question" @Dbl @Eq { question } +"congruent" @Dbl @Eq { congruent } +"Alpha" @Dbl @Eq { Alpha } +"Beta" @Dbl @Eq { Beta } +"Chi" @Dbl @Eq { Chi } +"Delta" @Dbl @Eq { Delta } +"Epsilon" @Dbl @Eq { Epsilon } +"Phi" @Dbl @Eq { Phi } +"Gamma" @Dbl @Eq { Gamma } +"Eta" @Dbl @Eq { Eta } +"Iota" @Dbl @Eq { Iota } +"thetaone" @Dbl @Eq { thetaone } +"Kappa" @Dbl @Eq { Kappa } +"Lambda" @Dbl @Eq { Lambda } +"Mu" @Dbl @Eq { Mu } +"Nu" @Dbl @Eq { Nu } +"Omicron" @Dbl @Eq { Omicron } +"Pi" @Dbl @Eq { Pi } +"Theta" @Dbl @Eq { Theta } +"Rho" @Dbl @Eq { Rho } +"Sigma" @Dbl @Eq { Sigma } +"Tau" @Dbl @Eq { Tau } +"Upsilon" @Dbl @Eq { Upsilon } +"sigmaone" @Dbl @Eq { sigmaone } +"Omega" @Dbl @Eq { Omega } +"Xi" @Dbl @Eq { Xi } +"Psi" @Dbl @Eq { Psi } +"Zeta" @Dbl @Eq { Zeta } +"bracketleft" @Dbl @Eq { bracketleft } +"therefore" @Dbl @Eq { therefore } +"bracketright" @Dbl @Eq { bracketright } +"perpendicular" @Dbl @Eq { perpendicular } +"underscore" @Dbl @Eq { underscore } +"radicalex" @Dbl @Eq { radicalex } +"alpha" @Dbl @Eq { alpha } +"beta" @Dbl @Eq { beta } +"chi" @Dbl @Eq { chi } +"delta" @Dbl @Eq { delta } +"epsilon" @Dbl @Eq { epsilon } +"phi" @Dbl @Eq { phi } +"gamma" @Dbl @Eq { gamma } +"eta" @Dbl @Eq { eta } +"iota" @Dbl @Eq { iota } +"phione" @Dbl @Eq { phione } +"kappa" @Dbl @Eq { kappa } +"lambda" @Dbl @Eq { lambda } +"mu" @Dbl @Eq { mu } +"nu" @Dbl @Eq { nu } +"omicron" @Dbl @Eq { omicron } +"pi" @Dbl @Eq { pi } +"theta" @Dbl @Eq { theta } +"rho" @Dbl @Eq { rho } +"sigma" @Dbl @Eq { sigma } +"tau" @Dbl @Eq { tau } +"upsilon" @Dbl @Eq { upsilon } +"omegaone" @Dbl @Eq { omegaone } +"omega" @Dbl @Eq { omega } +"xi" @Dbl @Eq { xi } +"psi" @Dbl @Eq { psi } +"zeta" @Dbl @Eq { zeta } +"braceleft" @Dbl @Eq { braceleft } +"bar" @Dbl @Eq { bar } +"braceright" @Dbl @Eq { braceright } +"similar" @Dbl @Eq { similar } +"Upsilonone" @Dbl @Eq { Upsilonone } +"minute" @Dbl @Eq { minute } +"lessequal" @Dbl @Eq { lessequal } +"fraction" @Dbl @Eq { fraction } +"infinity" @Dbl @Eq { infinity } +"florin" @Dbl @Eq { florin } +"club" @Dbl @Eq { club } +"diamond" @Dbl @Eq { diamond } +"heart" @Dbl @Eq { heart } +"spade" @Dbl @Eq { spade } +"arrowboth" @Dbl @Eq { arrowboth } +"arrowleft" @Dbl @Eq { arrowleft } +"arrowup" @Dbl @Eq { arrowup } +"arrowright" @Dbl @Eq { arrowright } +"arrowdown" @Dbl @Eq { arrowdown } +"degree" @Dbl @Eq { degree } +"plusminus" @Dbl @Eq { plusminus } +"second" @Dbl @Eq { second } +"greaterequal" @Dbl @Eq { greaterequal } +"multiply" @Dbl @Eq { multiply } +"proportional" @Dbl @Eq { proportional } +"partialdiff" @Dbl @Eq { partialdiff } +"bullet" @Dbl @Eq { bullet } +"divide" @Dbl @Eq { divide } +"notequal" @Dbl @Eq { notequal } +"equivalence" @Dbl @Eq { equivalence } +"approxequal" @Dbl @Eq { approxequal } +"ellipsis" @Dbl @Eq { ellipsis } +"arrowvertex" @Dbl @Eq { arrowvertex } +"arrowhorizex" @Dbl @Eq { arrowhorizex } +"carriagereturn"@Dbl @Eq { carriagereturn } +"aleph" @Dbl @Eq { aleph } +"Ifraktur" @Dbl @Eq { Ifraktur } +"Rfraktur" @Dbl @Eq { Rfraktur } +"weierstrass" @Dbl @Eq { weierstrass } +"circlemultiply"@Dbl @Eq { circlemultiply } +"circleplus" @Dbl @Eq { circleplus } +"emptyset" @Dbl @Eq { emptyset } +"intersection" @Dbl @Eq { intersection } +"union" @Dbl @Eq { union } +"propersuperset"@Dbl @Eq { propersuperset } +"reflexsuperset"@Dbl @Eq { reflexsuperset } +"notsubset" @Dbl @Eq { notsubset } +"propersubset" @Dbl @Eq { propersubset } +"reflexsubset" @Dbl @Eq { reflexsubset } +"element" @Dbl @Eq { element } +"notelement" @Dbl @Eq { notelement } +"angle" @Dbl @Eq { angle } +"gradient" @Dbl @Eq { gradient } +"registerserif" @Dbl @Eq { registerserif } +"copyrightserif"@Dbl @Eq { copyrightserif } +"trademarkserif"@Dbl @Eq { trademarkserif } +"product" @Dbl @Eq { product } +"radical" @Dbl @Eq { radical } +"dotmath" @Dbl @Eq { dotmath } +"logicalnot" @Dbl @Eq { logicalnot } +"logicaland" @Dbl @Eq { logicaland } +"logicalor" @Dbl @Eq { logicalor } +"arrowdblboth" @Dbl @Eq { arrowdblboth } +"arrowdblleft" @Dbl @Eq { arrowdblleft } +"arrowdblup" @Dbl @Eq { arrowdblup } +"arrowdblright" @Dbl @Eq { arrowdblright } +"arrowdbldown" @Dbl @Eq { arrowdbldown } +"lozenge" @Dbl @Eq { lozenge } +"angleleft" @Dbl @Eq { angleleft } +"registersans" @Dbl @Eq { registersans } +"copyrightsans" @Dbl @Eq { copyrightsans } +"trademarksans" @Dbl @Eq { trademarksans } +"summation" @Dbl @Eq { summation } +"parenlefttp" @Dbl @Eq { parenlefttp } +"parenleftex" @Dbl @Eq { parenleftex } +"parenleftbt" @Dbl @Eq { parenleftbt } +"bracketlefttp" @Dbl @Eq { bracketlefttp } +"bracketleftex" @Dbl @Eq { bracketleftex } +"bracketleftbt" @Dbl @Eq { bracketleftbt } +"bracelefttp" @Dbl @Eq { bracelefttp } +"braceleftmid" @Dbl @Eq { braceleftmid } +"braceleftbt" @Dbl @Eq { braceleftbt } +"braceex" @Dbl @Eq { braceex } +"angleright" @Dbl @Eq { angleright } +"integral" @Dbl @Eq { integral } +"integraltp" @Dbl @Eq { integraltp } +"integralex" @Dbl @Eq { integralex } +"integralbt" @Dbl @Eq { integralbt } +"parenrighttp" @Dbl @Eq { parenrighttp } +"parenrightex" @Dbl @Eq { parenrightex } +"parenrightbt" @Dbl @Eq { parenrightbt } +"bracketrighttp"@Dbl @Eq { bracketrighttp } +"bracketrightex"@Dbl @Eq { bracketrightex } +"bracketrightbt"@Dbl @Eq { bracketrightbt } +"bracerighttp" @Dbl @Eq { bracerighttp } +"bracerightmid" @Dbl @Eq { bracerightmid } +"bracerightbt" @Dbl @Eq { bracerightbt } +} +@DP +The names given are the same as Adobe's, as used by the @Code "@Sym" +symbol, except in a few places where the Adobe name contains a digit, +which is not possible for a symbol name in Lout. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_symb b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_symb new file mode 100755 index 0000000000000..f56eca2a16c41 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_symb @@ -0,0 +1,357 @@ +@Section + @Title { Symbols } + @Tag { symbols } +@Begin +@PP +@Code "@Eq" prints characters in the fonts appropriate for mathematics: +@ID { +@Code "x - 2" +|7ct +@Eq { x-2 } +} +Here @Eq { x } is in Italic, @Eq { 2 } is in Roman, and @Eq { minus } is +from the Symbol font. The character @Code "-" is a @I symbol which +stands for @Eq {minus}, and @Code "2" is also a symbol, standing for +@Eq { 2 }. @Code "@Eq" includes a vast number of symbols: +@ID { +@Code "Omega delta int partial club" +|7ct +@Eq { Omega delta int partial club } +} +The summary at the end of this chapter has the complete list. +@PP +Symbols whose names are made from letters should be separated from each +other by at least one space or end of line, as was done above, or else +@Code "@Eq" will become confused: +@ID { +@Code "Omegadelta" +|7ct +@Eq { Omegadelta } +} +Symbols whose names are made from digits and punctuation characters can, +however, be run together with each other and with symbols made from +letters: +@ID { +@Code "Omega-delta<=2" +|7ct +@Eq { Omega-delta<=2 } +} +This rule applies throughout Lout (Section {@NumberOf spaces}). +@PP +Some symbols join objects together in mathematical ways: +@ID { +@Code "x sub 2" +|7ct +@Eq { x sub 2 } +} +Here the @Code "sub" symbol has taken the object just to its left, and +sub. @Index { @Code "sub" in equations } +the object just to its right, and joined them into one object in the +form of a subscript. The two objects are called the left and right +parameters of {@Code "sub"}, and they may be arbitrary Lout objects. +@PP +Other symbols of a similar kind include {@Code "sup"} for +sup. @Index { @Code "sup" in equations } +superscripting, @Code "over" for built-up fractions, and @Code "from" +over.eq. @Index { @Code "over" in equations } +from. @Index { @Code "from" in equations } +to. @Index { @Code "to" in equations } +and @Code "to" for the lower and upper limits of sums, products, +etc. These symbols may be used together to produce complicated +equations very easily: +@ID { +@Code { +"big sum from i=0 to n r sup i" +"= {r sup n+1 - 1} over r-1" +} +||7ct +@Eq { big sum from i=0 to n r sup i += {r sup n+1 - 1} over r-1 +} +} +Here @Code "sum" is just the @Eq { summation } symbol; @Code "from" and +@Code "to" do all the work of placing the limits. They are quite +independent, so either or both may be omitted. To get a superscript +directly over a subscript, use the @Code "supp" and @Code "on" symbols: +supp. @Index { @Code "supp" in equations } +on. @Index { @Code "on" in equations } +@ID { +@Code "A supp b on a" +|7ct +@Eq { A supp b on a } +} +These two symbols should always be used together as shown. +@PP +Sometimes a subscript appears to be too far to the right, owing to +the slope of italic letters: in @Eq { W sub n }, for example. You +can fix this by using `tucked' subscripts, like this: +@IndentedList +@LI { +@Code "W tsub n" +|7ct +@Eq { W tsub n } +} +@LI { +@Code "W supp b ton a" +|7ct +@Eq { W supp b ton a } +} +@EndList +The @Code "tsub" and @Code "ton" symbols are exactly like @Code "sub" +and @Code "on" except for this tucking-in effect. However, the +@Code "sub" symbol itself does a certain amount of tucking in; the +amount is determined by kerning information in the font files and +so is sensitive to the shape of the letters. +@PP +As usual in Lout, braces are used to group something into an indivisible +object. Leaving them out creates ambiguities: +@ID @Code "a sup b over c" +There are two possible interpretations for this: +@IndentedList +@LI { +@Code "{a sup b} over c" +|7ct +@Eq { {a sup b} over c } +} +@LI { +@Code "a sup {b over c}" +|7ct +@Eq { a sup {b over c} } +} +@EndList +@Code "@Eq" chooses between them in the following way. Every symbol that +takes a parameter also has a {@I precedence}, which is a number. For +example, @Code "sup" has precedence 60 and @Code "over" has precedence +54. The symbol with the highest precedence wins the object lying between +them, so in the above case the first interpretation is chosen. If two +symbols of equal precedence compete for an object, the association is +towards the left: +@ID { +@Code "a sup b sub 2" +|7ct +@Eq { a sup b sub 2 } +} +In this case it is more probable that the following right association +was actually wanted: +@ID { +@Code "a sup { b sub 2 }" +|7ct +@Eq { a sup { b sub 2 } } +} +When in doubt, use braces to make the grouping clear. +@PP +White space between two objects is considered to be a symbol with +precedence 7, which is lower than the precedence of any @Code "@Eq" +symbol; but if the two objects are immediately adjacent and neither is +enclosed in braces the precedence is 102, which is higher than the +precedence of any @Code "@Eq" symbol. Compare these three examples: +@IL +@LI { +@Code "big sum from i=0 to n" +|7ct +@Eq { big sum from i=0 to n } +} +@LI { +@Code "big sum from {i = 0} to n" +|7ct +@Eq { big sum from {i = 0} to n } +} +@LI { +@Code "big sum from i = 0 to n" +|7ct +@Eq { big sum from i = 0 to n } +} +@EL +and you will see that some care is needed on this point. Braces can +always be used to override precedence and associativity, and when in +doubt the easiest course is to insert them. Although Lout allows +symbols to associate towards the left or right, @Code "@Eq" chooses +to have only left associative symbols. The summary at the end of this +chapter gives the precedence of every symbol. +@PP +The @Code matrix symbol {@PageMark matrix} builds an array of objects: +matrix. @Index { @Code "matrix" in equations } +@ID { +@Code { +"matrix" +" atleft { blpar }" +" atright { brpar }" +"{" +" row col x sup 2 col y sup 2 col z sup 2" +" row col x col y col z" +" row col 1 col 1 col 1" +"}" +} +||9ct +@Eq { +matrix + atleft { blpar } + atright { brpar } +{ + row col x sup 2 col y sup 2 col z sup 2 + row col x col y col z + row col 1 col 1 col 1 +} +} +} +The @Code atleft and @Code atright options place vertically scaled +versions of their values at each side; if either is omitted the value +is taken to be an empty object of zero width by default. Although +we have used @Code blpar and @Code brpar here, since the options are +vertically scaled to the correct size some people prefer simply +@ID @OneRow @Code { +"matrix" +" atleft { ( }" +" atright { ) }" +} +The right parameter of @Code matrix is the array itself. It must be +enclosed in braces, and it is a sequence of rows introduced by +@Code row symbols; each row is a sequence of objects introduced by +@Code col symbols. +@FootNote { +Older versions of Lout use different symbols, {@Code "above"} and +{@Code "nextcol"}, at this point. For backward compatibility these +symbols are still available, but they are obsolete and no longer documented. +} +The @Code row and @Code col symbols have low precedence, but not +as low as white space between two objects. Therefore, unless the +entries in the array are very simple, it is safest to enclose each of +them in braces. +@PP +Entries built with the @Code col symbol have their objects centred in +the column. Also available are @Code lcol for left-justified entries, +@Code ccol meaning the same as {@Code col}, @Code rcol for +right-justified entries, and @Code mcol for alignment along column +marks. Each column may contain entries of different kinds, except +that @Code mcol does not work well with any other sort. +@PP +When several matrices appear side by side, slight differences in height +can cause an unsightly appearance: +@ID @Eq { +matrix + atleft { ( } + atright { ) } +{ + row col a sub 11 col a sub 12 + row col a sub 21 col a sub 22 +} +matrix + atleft { ( } + atright { ) } +{ + row col b sub 11 col b sub 12 + row col b sub 21 col b sub 22 +} += +matrix + atleft { ( } + atright { ) } +{ + row col c sub 11 col c sub 12 + row col c sub 21 col c sub 22 +} +} +To assist in resolving this problem, the @Code "matrix" symbol has +a @Code "strut" option, which causes a strut to be inserted into +every row, guaranteeing that every row has height at least equal +to the height of the strut. By using +@ID @Code { +"matrix" +" strut { Yes }" +"..." +} +in each of the three matrices above, the result is improved to +@ID @Eq { +matrix + atleft { ( } + atright { ) } + strut { Yes } +{ + row col a sub 11 col a sub 12 + row col a sub 21 col a sub 22 +} +matrix + atleft { ( } + atright { ) } + strut { Yes } +{ + row col b sub 11 col b sub 12 + row col b sub 21 col b sub 22 +} += +matrix + atleft { ( } + atright { ) } + strut { Yes } +{ + row col c sub 11 col c sub 12 + row col c sub 21 col c sub 22 +} +} +By default, the strut has height @Code "0.5f" (half the current font +size) both above and below the axis of the row. This can be changed +by giving any length as the value of the @Code "strut" option: +@Code "strut { 2.0c }" for two centimetres above and below +the axis, and so on. +@PP +Some symbols have been added which produce `matrices' with commonly needed +@Code atleft and @Code atright options already set for you. Here are +these symbols, on the left, with the equivalent @Code matrix symbol +and, on the right, the result produced: +@ID @Tab + @Fmta { @Col @Code A ! @Col ! @Col @Code B ! @Col ! @Col C } +{ +@Rowa + A { "pmatrix" } + B { "matrix atleft { ( } atright { ) } { M }" } + C { @Eq { pmatrix { M } } } +@Rowa + A { "bmatrix" } + B { "matrix atleft { blbrack } atright { brbrack } { M }" } + C { @Eq { bmatrix { M } } } +@Rowa + A { "brmatrix" } + B { "matrix atleft { blbrace } atright { brbrace } { M }" } + C { @Eq { brmatrix { M } } } +@Rowa + A { "fmatrix" } + B { "matrix atleft { blfloor } atright { brfloor } { M }" } + C { @Eq { fmatrix { M } } } +@Rowa + A { "cmatrix" } + B { "matrix atleft { blceil } atright { brceil } { M }" } + C { @Eq { cmatrix { M } } } +@Rowa + A { "amatrix" } + B { "matrix atleft { blangle } atright { brangle } { M }" } + C { @Eq { amatrix { M } } } +} +For example: +@ID { +@Code { +"fmatrix { (n+1) over 2 }" +} +|7ct +@Eq { +fmatrix { (n+1) over 2 } +} +} +As this example shows, these symbols are very useful for getting large +scaled delimiters around things that aren't necessarily matrices at all. +@PP +Each of the @Code "@Eq" symbols that takes parameters also has a @Code gap +option, which controls the amount of space inserted by the symbol: +@IL +@LI { +@Code "x over y" +|7ct +@Eq { x over y } +} +@LI { +6c @Wide @Code "x over gap { 3p } y" +|7ct +@Eq { x over gap { 3p } y } +} +@EL +@Code "@Eq" usually gets the spacing right without help. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_tequ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_tequ new file mode 100755 index 0000000000000..bbb1d20a8fd1d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_tequ @@ -0,0 +1,41 @@ +@Section + @Title { An alternative version that uses @TeX's fonts } + @Tag { teq } +@Begin +@PP +There is an alternative version of the @Code "@Eq" symbol that +tex.mathfonts @SubIndex { mathematical fonts } +uses fonts taken from the @TeX document formatting +system. These fonts are said to produce better-looking +mathematics than the Adobe Systems Symbol font used by the +standard @Code "@Eq" symbol. +@PP +The fonts were converted from @TeX form to PostScript form by +Basil K. Malyshev, who has attached a license to them permitting +non-commercial use only. This is a much more stringent license +than the one attached to Lout itself. For this reason, the files +needed to use these @TeX fonts are distributed separately from the +rest of Lout, although you can get them from the same place (see the +preface of this guide). +@PP +Once these files are installed, you change from the standard +@Code "@Eq" symbol to the @TeX version by changing the initial +@Code "@SysInclude { eq }" to {@Code "@SysInclude { teq }"}. Do +absolutely nothing else. +@PP +Unfortunately, the @TeX fonts are not usually resident on PostScript +printing devices, which means that Lout is obliged to include them in its +PostScript output file. You don't have to do anything to make this +happen, but the cost is fairly large: changing to @Code "@SysInclude { teq }" +increases the size of the PostScript output file by 252 kilobytes. +@PP +It is possible to gain access to characters in the @TeX +fonts that are not accessible directly from {@Code "@Eq"}, mainly +script capitals and bold-italic Greek letters. For example, you can +use @Code "{cmsy Base} @Font @Char \"A\"" to get a script A, and +@Code "{cmmi Bold} @Font @Char \"pi\"" to get a bold-italic +{@Sym pi}. For the full story, consult file @Code "teq" in the +Lout system include directory for the names of these fonts, and then +look in Lout's font directory for their font metrics files, which +show the names and encodings of all the characters. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_vert b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_vert new file mode 100755 index 0000000000000..1595ed8353494 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/equ_vert @@ -0,0 +1,164 @@ +@Section + @Tag { vpos } + @Title { Vertical positioning } +@Begin +@PP +Every equation and every object within every equation has an +@I axis running through it which is used to position it vertically +axis @Index { axis of equation } +with respect to nearby objects. In the Expert's Guide to Lout +@Cite { $kingston1995lout.expert } this is called a @I { row mark }, +but we'll stick with axis. Here are some examples with the axis +shown as a dashed line: +@ID { +@ShowHMark @Eq { x sup 2 } +||2c +@ShowHMark @Eq { non + } +||2c +@ShowHMark @Eq { @ExA } +} +When these objects are placed adjacent to one another, their +axes are merged, giving the correct vertical positioning: +@ID @ShowHMark @Eq { x sup 2 + @ExA } +Most of the time you do not need to think about vertical +positioning, because for most objects there is just one +sensible place for the axis to go, and Lout puts it there. +@PP +Matrices and the delimiters that enclose them are the two +exceptions. Lout makes the axis of a matrix pass through +its exact centre, and it shifts the axes of delimiters +so that they exactly enclose the thing delimited. These +choices are never disastrous, but there are other possibilities +that might be better sometimes. +@PP +The axis of a matrix could reasonably be set to the axis +of any of its rows: +@ID { +@ShowHMark @Eq { +matrix userow { yes } { + axisrow col { x sup 3 } col { y sup 3 } col { z sup 3 } + row col { x sup 2 } col { y sup 2 } col { z sup 2 } + row col { x } col { y } col { z } +} +} +||2c +@ShowHMark @Eq { +matrix userow { yes } { + row col { x sup 3 } col { y sup 3 } col { z sup 3 } + axisrow col { x sup 2 } col { y sup 2 } col { z sup 2 } + row col { x } col { y } col { z } +} +} +||2c +@ShowHMark @Eq { +matrix userow { yes } { + row col { x sup 3 } col { y sup 3 } col { z sup 3 } + row col { x sup 2 } col { y sup 2 } col { z sup 2 } + axisrow col { x } col { y } col { z } +} +} +} +Alternatively, it could be set to where Lout usually places it, +through the exact centre: +@ID { +@ShowHMark @Eq { +matrix { + row col { x sup 3 } col { y sup 3 } col { z sup 3 } + row col { x sup 2 } col { y sup 2 } col { z sup 2 } + row col { x } col { y } col { z } +} +} +} +Delimiters could reasonably keep the axes that they naturally +have (approximately through their centres, but not exactly): +@ID { +@ShowHMark @Eq { pmatrix userow { yes } shiftdelim { no } { @ExA } } +} +or they could have their axes moved in the way that Lout usually does, +to the point which allows them to evenly cover the thing delimited: +@ID { +@ShowHMark @Eq { pmatrix userow { yes } { @ExA } } +} +Altogether then there are four possibilities when these two alternatives +interact: +@CD lines @Break @Tab + @Fmta { @Col 0.5w @VShift A ! @Col ! @Col B ! @Col ! @Col C } +{ +@Rowa + A { } + B { Matrix axis +uses row axis } + C { Matrix axis passes +through centre } +@Rowa +@Rowa + A { Delimiter +keeps its axis } + B { @ShowHMark @Eq { pmatrix userow {yes} shiftdelim {no } { @ExA } } } + C { @ShowHMark @Eq { pmatrix userow {no } shiftdelim {no } { @ExA } } } +@Rowa +@Rowa + A { Delimiter +axis shifted } + B { @ShowHMark @Eq { pmatrix userow {yes} shiftdelim {yes} { @ExA } } } + C { @ShowHMark @Eq { pmatrix userow {no } shiftdelim {yes} { @ExA } } } +} +To supply these possibilities, the @Code "matrix" symbol and all +its variants (@Code "pmatrix" etc.) have two options whose +values may be {@Code "yes"} or {@Code "no"}: +@ID @Code { +"matrix" +" userow { no }" +" shiftdelim { yes }" +"{" +" ..." +"}" +} +The @Code "userow" option determines whether the axis of the +matrix will use a row axis; the default is not to, i.e. to +centre the axis instead. The @Code "shiftdelim" option +determines whether the axis of the delimiter will be shifted +so that the delimiter evenly covers the thing delimited; the +default is to do this. +@PP +If @Code "userow" is {@Code "yes"}, the next question is +which row's axis to use to make the overall axis. If you +do nothing, the first (or only) row's axis becomes the +overall axis. To select some other row instead, replace +the @Code "row" symbol that precedes the row by {@Code "axisrow"}: +@ID @Code @Tab + vmargin { 0.5vx } + hmargin { 1s } + @Fmta { @Col A ! @Col ! @Col B ! @Col ! @Col C ! @Col ! @Col D ! @Col } + @Fmtb { @Col A ! @Col " col {" ! @Col B ! @Col "} col {" ! @Col C ! @Col "} col {" ! @Col D ! @Col "}" } +{ +@Rowa + A { "matrix userow { yes } {" &0io } +@Rowb + A { " row" } + B { "x sup 3" } + C { "y sup 3" } + D { "z sup 3" } +@Rowb + A { " axisrow" } + B { "x sup 2" } + C { "y sup 2" } + D { "z sup 2" } +@Rowb + A { " row" } + B { "x" } + C { "y" } + D { "z" } +@Rowa + A { "}" } +} +The result of this is +@ID @ShowHMark @Eq { +matrix userow { yes } { + row col { x sup 3 } col { y sup 3 } col { z sup 3 } + axisrow col { x sup 2 } col { y sup 2 } col { z sup 2 } + row col { x } col { y } col { z } +} +} +with the axis through the second row as desired. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/fmt b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/fmt new file mode 100755 index 0000000000000..ffd5e7fba7523 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/fmt @@ -0,0 +1,16 @@ +@Chapter + @Title { Changing the Overall Format } + @Tag { changes } +@Begin +@LP +The symbols of Lout make many decisions behind the scenes. Even the +humble @Code "@PP" symbol has to decide how much vertical space to +leave, and how far to indent the first line of the paragraph. How to +change these decisions is the subject of this chapter. +@BeginSections +@Include { fmt_setu } +@Include { fmt_size } +@Include { fmt_marg } +@Include { fmt_head } +@EndSections +@End @Chapter diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/fmt_head b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/fmt_head new file mode 100755 index 0000000000000..ed1f487d8b444 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/fmt_head @@ -0,0 +1,319 @@ +@Section + @Title { Page numbers and running headers } + @Tag { headers } +@Begin +@PP +A @I { page header } is a line at the top of a page containing a page +page.header @Index { page header } +running.header @Index { running header } +number or running title. A @I { page footer } is a similar line at +page.footer @Index { page footer } +the bottom of a page. This section describes the setup file options +that control the appearance of page headers and footers. +@PP +There are four basic styles, selected by the @Code "@PageHeaders" option: +page.headers @Index @Code "@PageHeaders" +@ID @Tab + @Fmta { @Col @Code { "@PageHeaders {" A "}" } ! @Col B } +{ +@Rowa + A { None } + B { No page headers, no page footers. } +@Rowa + A { Simple } + B { No footers, and a centred page number between hyphens for +header on every page whose number is not 0 or 1. } +@Rowa + A { Titles } + B { Full running titles as in the present document. } +@Rowa + A { NoTitles } + B { Page numbers placed as for @Code { Titles }, but with the +titles themselves blanked out. } +} +@Code Titles and @Code NoTitles use Lout's cross-referencing machinery, +so will require a few runs to settle down. @Code None and @Code Simple +do not, so they work first time and may be used with the @Code "-s" +command line flag. Section {@NumberOf cross} has a fuller discussion +of these ramifications of cross referencing. +@PP +The next step is to set the page numbers, using +the @Code "@PageNumbers" and @Code "@FirstPageNumber" options. There +page.numbers @Index @Code "@PageNumbers" +are two useful values for {@Code "@PageNumbers"}: +@ID @Tab + @Fmta { @Col @Code { "@PageNumbers {" A "}" } ! @Col B } +{ +@Rowa + A { Arabic } + B { Arabic page numbers } +@Rowa + A { Roman } + B { Lower-case Roman page numbers } +} +although the full range of choices is {@Code "None"}, {@Code "Arabic"}, +{@Code "Roman"}, {@Code "UCRoman"}, {@Code "Alpha"}, and +{@Code "UCAlpha"}. @Code "@FirstPageNumber" is the number of the +first.page.number @Index @Code "@FirstPageNumber" +first page. Its default value is of course {@Code 1}, although +@ID @Code "@FirstPageNumber { 0 }" +might be useful if the first page is really an unnumbered cover +sheet. @Code "@FirstPageNumber" must be an Arabic number even if +@Code "@PageNumbers" is set to something other than {@Code "Arabic"}. +@PP +Some document types, such as books and technical reports with cover +sheets, have a separate introductory +sequence of pages preceding the main sequence. For the page numbers on +introductory pages there are two options, @Code "@IntroPageNumbers" +intro.page.numbers @Index @Code "@IntroPageNumbers" +intro.first.page.number @Index @Code "@IntroFirstPageNumber" +and {@Code "@IntroFirstPageNumber"}, which are exactly analogous to +@Code "@PageNumbers" and {@Code "@FirstPageNumber"}. It is traditional +to number introductory pages using Roman numerals, so @Code Roman is +the default value of {@Code "@IntroPageNumbers"}. +@PP +Let's summarize the five options so far by looking at their values in +the @Code book setup file, which was used to produce the present document: +@ID @OneRow @Code { +"@PageHeaders { Titles }" +"@PageNumbers { Arabic }" +"@FirstPageNumber { 1 }" +"@IntroPageNumbers { Roman }" +"@IntroFirstPageNumber { 1 }" +} +The remainder of this section goes beyond these basic choices to explain +how to change the detailed appearance of page headers +and footers. Inevitably it gets quite a lot harder. +@PP +Pages are classified by the page header options in three ways: +@NumberedList +@LI { @I { Odd vs. even }. The first page is odd, the second is even, +odd.pages @Index { odd and even pages } +the third is odd, and so on. If @Code "@FirstPageNumber" is set to +an even number, the first page will have that number, but it will still +be classified as odd. } +@LI { @I { Start vs. non-start }. A start page is the first page of +start.pages @Index { start and non-start pages } +some major part of the document (a chapter, say); other pages are +non-start. The @Code { Simple } header type uses a simpler +definition: a page whose number is 0 or 1 is a start page, all others +are non-start. } +@LI { @I { Intro vs. non-intro }. Intro pages form a separate sequence of +intro.pages @Index { intro and non-intro pages } +pages that precede the main (non-intro) sequence. They typically contain +prefatory material such as a title page, preface, and table of contents. +In a book there will always be an even number of Intro pages, even if +it means that the last one is empty. } +@EndList +These classifications are quite independent of each other: a page +could be a non-intro start odd page, or an intro non-start even page, +and so on. This makes eight (@Eq { 2 times 2 times 2 }) possibilities +altogether. Depending on the type of document there may also be pages +that Lout will never place a page header or footer on. For example, no page +headers or footers will appear on pages containing part titles in books. +@PP +If you choose {@Code "@PageHeaders { None }"}, there are no page headers +or footers, so there is nothing more to say. If you choose +{@Code "@PageHeaders { Simple }"}, then eight options become relevant +for controlling the page headers on each of the eight kinds of +pages. Here they are with their default values: +@ID @OneRow @Code { +"@OddTop { @Centre { - @PageNum - } }" +"@EvenTop { @Centre { - @PageNum - } }" +"@StartOddTop { @Null }" +"@StartEvenTop { @Null }" +"@IntroOddTop { @Null }" +"@IntroEvenTop { @Null }" +"@IntroStartOddTop { @Null }" +"@IntroStartEvenTop { @Null }" +} +If the word @Code Start is missing from an option name, the option +applies to non-start pages; if @Code Intro is missing, it applies to +non-intro pages. Another eight options control footers in the same way: +@ID @OneRow @Code { +"@OddFoot { @Null }" +"@EvenFoot { @Null }" +"@StartOddFoot { @Null }" +"@StartEvenFoot { @Null }" +"@IntroOddFoot { @Centre @PageNum }" +"@IntroEvenFoot { @Null }" +"@IntroStartOddFoot { @Centre @PageNum }" +"@IntroStartEvenFoot { @Null }" +} +The value of the option is an object which becomes the header or +footer. It may be any object, but there are some peculiarities that +will be explained now. +@PP +The full set of symbols of the BasicSetup package can be used +when setting page header options (and indeed any of the options +of the @Code "@BasicSetup" @Code "@Use" clause package), as well as +symbols from special-purpose +packages that have been included before this setup file. This means +you can use any symbol you might reasonably expect to. But footnotes and +floating figures and tables, for example, are not from BasicSetup so +cannot be used. +@PP +There are five symbols of special relevance to page headers and +footers: {@Code "@Null"}, {@Code "@Centre"}, {@Code "@Center"}, +{@Code "@Right"}, and {@Code "@PageNum"}. +@PP +The @Code "@Null" symbol is similar to the empty object in printing as +null. @Index @Code "@Null" +nothing, but in addition it removes the vertical space that ordinarily +separates the header line from the page body. If there is no header +there should be no vertical space either, so always use @Code "@Null" +rather than the empty object in header and footer options. +@PP +@Code "@Centre" and @Code "@Center" centre the following object, and +centre. @Index @Code "@Centre" +center. @Index @Code "@Center" +right. @Index @Code "@Right" +@Code "@Right" right-justifies it: +@ID @Code "at left @Centre { - 27 - } @Right { at right }" +produces +@QD @HExpand { at left @Centre { - 27 - } @Right { at right } } +The objects should be enclosed in braces if they contain spaces. +@PP +The @Code "@PageNum" symbol produces the number of the current page, in +page.num. @Index @Code "@PageNum" +Arabic, Roman, etc. as specified by the @Code "@PageNumbers" or +@Code "@IntroPageNumbers" option. @Code "@PageNum" is available only +within page header and footer options. +@PP +To get the @I last page into a header, so that you can have page +headers like `Page 5 of 8', you need @Code "@NumberOf last.page" as +described in Section {@NumberOf cross}. You might have +@ID @Code "@Centre { Page @PageNum of @NumberOf last.page }" +as the value of @Code "@EvenTop" and the rest. +@PP +At this point you might like to pause and verify that the default +values of the sixteen options given above produce what we said they +would: no footers, and a centred page number between hyphens on every +page whose number is not 0 or 1. It should be clear now what to do if +you want to remove the hyphens, move the numbers to the page footer, +make them bold, have them at the left on even pages and at the right on +odd pages, and so on. +@PP +A different set of sixteen options applies when @Code "@PageHeaders" +is set to @Code Titles or {@Code "NoTitles"}. Here are the eight +options for headers, with their default values: +@ID @OneRow @Code { +"@RunningOddTop { @I { @MinorNum @DotSep @MinorTitle }" +" @Right @B @PageNum }" +"@RunningEvenTop { @B @PageNum" +" @Right @I { @MajorNum @DotSep @MajorTitle } }" +"@RunningStartOddTop { @Null }" +"@RunningStartEvenTop { @Null }" +"@RunningIntroOddTop { @Null }" +"@RunningIntroEvenTop { @Null }" +"@RunningIntroStartOddTop { @Null }" +"@RunningIntroStartEvenTop { @Null }" +} +Some options occupy two lines, but only because they are long: as +usual, the end of a line is the same as one space. Here are the +options for footers: +@ID @OneRow @Code { +"@RunningOddFoot { @Null }" +"@RunningEvenFoot { @Null }" +"@RunningStartOddFoot { @Centre { Bold 0.8f } @Font @PageNum }" +"@RunningStartEvenFoot { @Centre { Bold 0.8f } @Font @PageNum }" +"@RunningIntroOddFoot { @Right @PageNum }" +"@RunningIntroEvenFoot { @PageNum }" +"@RunningIntroStartOddFoot { @Null }" +"@RunningIntroStartEvenFoot { @Null }" +} +All these options are similar to the earlier ones, in providing one +option for each of the eight kinds of pages. The names are the same +except that @Code Running is added to each. Remember that a start +page is now one that begins a major part of the document. +@PP +In addition to the symbols described earlier for simple page headers +and footers, these running header options may contain the symbols +{@Code "@MajorNum"}, {@Code "@MajorTitle"}, {@Code "@MinorNum"}, +{@Code "@MinorTitle"}, {@Code "@DotSep"}, {@Code "@NoDotSep"}, +{@Code "@DotJoin"}, {@Code "@NoDotJoin"}, {@Code "@DashJoin"}, +and {@Code "@NumSep"} described below. +major.num @Index @Code "@MajorNum" +major.title @Index @Code "@MajorTitle" +minor.num @Index @Code "@MinorNum" +minor.title @Index @Code "@MinorTitle" +@PP +The exact values of {@Code "@MajorNum"}, {@Code "@MajorTitle"}, +{@Code "@MinorNum"}, and {@Code "@MinorTitle"} depend on the document +type, but they are intended to describe what is on the current page. Here +are some values typical of books: +@ID @Tab + @Fmta { @Col @Code A ! @Col @Code B } + vmargin { 0.5vx } +{ +@Rowa + A { "@MajorNum" } + B { Chapter 2 } +@Rowa + A { "@MajorTitle" } + B { Adding Structure to Documents } +@Rowa + A { "@MinorNum" } + B { 2.7 } +@Rowa + A { "@MinorTitle" } + B { Tables of contents } +} +It is not possible to change the values assigned to these symbols, but +the sixteen options allow you to choose whether to use them and how to +arrange them, in the usual way. +@PP +The @Code "@DotSep" symbol consumes the objects to its left and right +dot.sep @Index @Code "@DotSep" +and produces them separated by a dot and two spaces: +@ID @Code "@MinorNum @DotSep @MinorTitle" +is the same as +@ID @Code "@MinorNum. @MinorTitle" +However, if either object is empty, the dot and two spaces are +omitted. It's a fine point, needed mainly for unnumbered chapters +and sections. @Code "@DotJoin" is the same as @Code "@DotSep" but +dot.join @Index @Code "@DotJoin" +without the two spaces. @Code "NoDotSep" is the same as +nodot.sep @Index @Code "@NoDotSep" +@Code "@DotSep" but leaving out the dot, @Code "@NoDotJoin" is the same +nodot.join @Index @Code "@NoDotJoin" +as @Code "@DotJoin" but again leaving out the dot, and @Code "@DashJoin" +dash.join @Index @Code "@DashJoin" +is the same as @Code "@DotJoin" except that `--' replaces the dot. +@PP +Lout uses @Code "@DotSep" between numbers and titles by default. To +get rid of all dots between numbers and titles it is necessary to +change all occurrences of @Code "@DotSep" in the setup file to +{@Code "@NoDotSep"}. There are about ten occurrences, depending +on the setup file. +@PP +@Code "@NumSep" {@PageMark numsep} is similar to @Code "@NoDotSep" +except that one space +num.sep @Index @Code "@NumSep" +hungarian @Index { Hungarian and @Code "@NumSep" } +is used, not two, and also the order of the two parts is reversed and +a dot is added if the current language is Hungarian (apparently +Hungarians write `3. Table' where other people write `Table 3'). +@Code "@NumSep" is used behind the scenes in a variety of places. +@PP +The present document was produced using @Code "@PageHeaders { Titles }" +with the default values of the sixteen options unchanged, as you might +like to verify. @Code "@PageHeaders { NoTitles }" is identical to +@Code "@PageHeaders { Titles }" except that {@Code "@MajorNum"}, +{@Code "@MajorTitle"}, {@Code "@MinorNum"}, and {@Code "@MinorTitle"} +are always replaced by empty objects. The description given at the +beginning of this section, `like @Code "Titles" but with the titles +blanked out,' is therefore accurate. +@PP +There is a @Code "@StructPageNums" setup file option that produces +structpagenums. @Index @Code "@StructPageNums" +structured page numbers when it is changed to {@Code Yes}; that is, +page numbers that include a section number, subsection number, and so +on. Precisely which structure numbers are included is determined by the +@Code "@SectionNumInRunners" option and its relatives. @Code "@PageHeaders" +must be @Code Titles when structured page numbers are used, and it is +probably best to set @Code "@SectionGap" and some similar options to +{@Code "2b"} (meaning new page) as well. The @Code "@NumberSeparator" +setup file option (Section {@NumberOf largescale}) affects the format +of the structured page numbers. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/fmt_marg b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/fmt_marg new file mode 100755 index 0000000000000..c1fdcefe56ee6 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/fmt_marg @@ -0,0 +1,151 @@ +@Section + @Title { Page margins, page boxes, and page backgrounds } + @Tag { margins } +@Begin +@PP +There are six options for setting the top and bottom margins on each +margins. @RawIndex { margins } +margins.in.pages @SubIndex { in pages } +top.margin @Index @Code "@TopMargin" +foot.margin @Index @Code "@FootMargin" +odd.left.margin @Index @Code "@OddLeftMargin" +odd.right.margin @Index @Code "@OddRightMargin" +even.left.margin @Index @Code "@EvenLeftMargin" +even.right.margin @Index @Code "@EvenRightMargin" +page, and the left and right margins on odd and even pages. Here they +are with their default values: +@ID @OneRow @Code { +"@TopMargin { 2.50c }" +"@FootMargin { 2.50c }" +"@OddLeftMargin { 2.50c }" +"@OddRightMargin { 2.50c }" +"@EvenLeftMargin { 2.50c }" +"@EvenRightMargin { 2.50c }" +} +When setting these options you must ensure that +@ID @Eq { @Code "@OddLeftMargin" + @Code "@OddRightMargin" = +@Code "@EvenLeftMargin" + @Code "@EvenRightMargin" } +In other words, the total margin on odd pages must be the same as on +even pages. +@PP +In addition, four options are provided which add extra left and right +margins to the page @I body (that is, everything but the running headers +and footers): +@ID @OneRow @Code { +"@OddLeftBodyMargin { 0c }" +"@OddRightBodyMargin { 0c }" +"@EvenLeftBodyMargin { 0c }" +"@EvenRightBodyMargin { 0c }" +} +The default is to add no page body margins, as shown. Most people who +use page body margins would change only @Code "@OddRightBodyMargin" and +{@Code "@EvenLeftBodyMargin"}, since those are the outside margins. As +for ordinary margins, the total (left plus right) page body margin must +be the same on odd and even pages. Margin notes +(Section {@NumberOf marginnotes}) occupy body margin space. +@PP +You can have a box drawn around each page if you wish. Here are the +relevant options and their default values: +@ID @OneRow @Code { +"@PageBoxType { None }" +"@PageBoxMargin { 1.00c }" +"@PageBoxLineWidth {}" +"@PageBoxPaint { None }" +"@PageBoxShadow { 0.06c }" +} +You get boxes by changing the @Code "@PageBoxType" option: +page.box.type @Index @Code "@PageBoxType" +@ID @OneRow @Tab + @Fmta { @Col @Code A ! @Col @CC B } +{ +@Rowa + A { "@PageBoxType { None }" } + B { (no box) } +@Rowa +@Rowa + A { "@PageBoxType { Box }" } + B { @Box 1.0c @Wide 1.4c @High } +@Rowa +@Rowa + A { "@PageBoxType { CurveBox }" } + B { @CurveBox 1.0c @Wide 1.4c @High } +@Rowa +@Rowa + A { "@PageBoxType { ShadowBox }" } + B { @ShadowBox 1.0c @Wide 1.4c @High } +} +Page boxes reduce the amount of space available to the page contents, +so your columns will become somewhat narrower and shorter when you +introduce them. +@PP +The {@Code "@PageBoxMargin"}, {@Code "@PageBoxLineWidth"}, +{@Code "@PageBoxPaint"}, and {@Code "@PageBoxShadow"} options affect +the page box exactly as the {@Code margin}, {@Code linewidth}, +{@Code paint}, and {@Code shadow} options described +for other boxes in Section {@NumberOf boxes} do. For example, +@ID @OneRow @Code { +"@PageBoxType { CurveBox }" +"@PageBoxMargin { 1.0c }" +"@PageBoxPaint { grey }" +} +draws a curved box, painted grey, around each page, with a one +centimetre margin between its boundary and the page contents. If the +left margin is 2.5 centimetres, say, this gives a total left margin +from the page edge to the page contents of 3.5 centimetres. +@PP +More generally, you can enclose each page in any object at all, by +means of the @Code "@PageEnclose" option: +@ID @Code { +"@PageEnclose { @Body }" +} +Within this option, @Code "@Body" stands for the page, and it must +occur exactly once. You could place a curved box around each page, +for example, by writing +@ID @Code { +"@PageEnclose { @CurveBox @Body }" +} +This is of course also available from the @Code "@PageBox" symbols, but +with @Code "@PageEnclose" there are infinitely many other possibilities. +@PP +Finally, it is possible to have something other than the usual white +background on the page, using the @Code "@PageBackground" option: +page.background @Index @Code "@PageBackground" +@ID @Code { +"@PageBackground { @Scale 60d @Rotate lightgrey @Colour DRAFT }" +} +The value of the option is an object which is drawn on each page, +within the margins, before the page contents are drawn. This +example draws a large word DRAFT in light grey diagonally across each +page: +@ID @Box margin { 0c } 0.2 @Scale @IncludeGraphic draft.eps +You have to find a suitable angle by experiment. As Section +{@NumberOf scaling} explains, @Code "@Scale" with no scale factor +only takes account of the available horizontal space, not the +available vertical space, so if your angle is too steep the result +will be too tall for the page and you will get a regrettably obscure +warning message about a `broken size constraint.' The solution is +to try a smaller angle. +@PP +Another useful page background draws marks to show where the margins +boundarymarks @Index @Code "@BoundaryMarks" +cut.marks @Index { cut marks } +lie: +@ID @Code "@PageBackground { @BoundaryMarks }" +produces something like this around each page: +@DP @DP +@ID { |@DisplayIndent 3c @High 2c @Wide @HExpand @VExpand @BoundaryMarks } +@DP @DP +The @Code "@BoundaryMarks" symbol has options for controlling the +line width (thickness), the line length, and the gap between the +ends of the lines and the corner of the text area: +@ID @OneRow @Code { +"@PageBackground {" +" @BoundaryMarks" +" linewidth { 0.2p }" +" length { 0.5c }" +" gap { 0.5c }" +"}" +} +This shows the default values: 0.2 points for line width, +0.5 centimetres for the others. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/fmt_setu b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/fmt_setu new file mode 100755 index 0000000000000..0f59b56bbfd7d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/fmt_setu @@ -0,0 +1,209 @@ +@Section + @Title { Setup files } + @Tag { setup } +@Begin +@PP +As mentioned briefly in Section {@NumberOf start}, each Lout document +begins with an instruction to include (i.e. to read) a @I { setup file }: +setup.file @Index { setup file } +sysinclude. @Index @Code "@SysInclude" +system.include @Index { system include directory } +doc.file @Index { @Code "doc" file } +@ID @Code "@SysInclude { doc }" +The setup file's name in this example is @Code { doc }, and the @Code Sys +in @Code "@SysInclude" means that @Code doc is stored in the @I { Lout +system include directory }, which is where all the standard setup files +are kept. Each document type (Chapter {@NumberOf types}) has its own +setup file, and each specialized package (for equations, tables, and +so on) has a setup file too. +@PP +To change the overall format of a document, you need to create your own +setup file by copying and modifying one of the standard ones. We will +assume that you are making an ordinary document, with the @Code doc +setup file, but a similar procedure works for any setup file. +@PP +You first need to find out the name of the Lout system include +directory, by typing +@ID @Code "lout -V" +in Unix. This causes Lout to print out various facts about itself. Then, +supposing that this tells you that the Lout system include directory +is @Code { "/usr/lout/include" }, type the Unix command +@ID @Code "cp /usr/lout/include/doc mydoc" +to place a copy of the @Code doc setup file in your directory, +mydoc.file @Index { @Code "mydoc" file } +renaming it @Code {mydoc}. Since @Code "doc" is read-only, you may +also need to change the mode of @Code mydoc to be writable (by +@Code "chmod +w mydoc" in Unix). Now replace +@ID @Code "@SysInclude { doc }" +at the beginning of your document by +@ID @Code "@Include { mydoc }" +and Lout will read @Code mydoc as the setup file instead of +@Code { doc }. Since the two files are at present identical, this has +changed nothing so far; but now any changes you make to @Code mydoc +will affect your document. Notice the use of @Code "@Include" +rather than @Code { "@SysInclude" }; @Code "@Include" will search your +current directory for @Code { mydoc }, whereas @Code "@SysInclude" +searches only the system directory. +@PP +The remainder of this section is a tour through @Code {doc}, +explaining the various parts and how to modify them. The first lines +that actually do anything are these: +@ID @OneRow @Code { +"@SysInclude { langdefs }" +"@SysInclude { bsf }" +"@SysInclude { dsf }" +"@SysInclude { docf }" +} +We already know that @Code "@SysInclude" causes Lout to read a file from +the Lout system include directory. File @Code langdefs +langdefs.file @Index { @Code "langdefs" file } +tells Lout what languages there are, and files @Code "bsf" and +@Code "dsf" contain +bsf.file @Index { @Code "bsf" file } +dsf.file @Index { @Code "dsf" file } +the definitions of the BasicSetup and DocumentSetup packages, in which +all the symbols of the first two chapters of this guide are defined. File +@Code "docf" contains extra definitions specific to +docf.file @Index { @Code "docf" file } +ordinary documents (as distinct from technical reports, books, or the +other document types of Chapter {@NumberOf types}). So this line +will be different in the setup files for those other types. +@PP +The next line is +@ID @Code { +"@Include { mydefs }" +} +This searches your current directory for a file called @Code { mydefs }, +which (as Section {@NumberOf definitions} explains) is intended to hold +your own personal set of definitions of new symbols. It does no harm +if there is no @Code "mydefs" file in your current directory, because +@Code "@Include" then searches the Lout system include directory for +it, and there is an empty @Code mydefs file there. When using your own +setup file, you might prefer to delete @Code "@Include { mydefs }" and +put your definitions in its place, so that you have one file of setup +material rather than two. +@PP +Next we come to the BasicSetup @Code "@Use" clause. It looks like this: +use. @Index @Code "@Use" +@ID @OneRow @Code @Verbatim { +@Use { @BasicSetup + # @InitialFont { Times Base 12p } + # @InitialBreak { {adjust 1.20fx hyphen} @OrIfPlain {ragged 1fx nohyphen} } + # @InitialSpace { lout } + # @InitialLanguage { English } + # @InitialColour { black } + # @OptimizePages { No } + # @HeadingFont { Bold } + # @ParaGap { 1.3vx @OrIfPlain 1f } + # @ParaIndent { 2.00f @OrIfPlain 5s } +} +} +@Code "@BasicSetup" is a symbol, and @Code { "@InitialFont" }, +basic.layout @Index @Code "@BasicSetup" +@Code { "@InitialBreak" }, etc. are its options. There are more options +than we've shown; the display above just shows the first +few. You change the overall format of your document by changing +these options. +@PP +As it stands, the options are all hidden within comments, so the +default values (shown within braces) are in force. To change an +option, delete the @Code "#" and change the value between +braces. For example, to set the document in Helvetica 10 point +font, change the @Code { "@InitialFont" } line to +@ID @Code "@InitialFont { Helvetica Base 10p }" +We won't go through all the options now, since they are the subject of +following sections. +@PP +The @Code "@OrIfPlain" symbol that appears within some setup file +options is used to set the value of the option differently when +plain text output (Section {@NumberOf plain}) is being produced. For +example, the default value of @Code "@InitialBreak" is usually +{@Code "adjust 1.20fx hyphen"}, but when plain text is being produced +it switches to {@Code "ragged 1fx nohyphen"}. When changing such +options you can leave the @Code "@OrIfPlain" symbol there and change +one or both of the alternative values as you wish. +@PP +Next comes a similar @Code "@Use" clause, for the DocumentSetup package: +@ID @OneRow @Code { +"@Use { @DocumentSetup" +" # @PageType { A4 @OrIfPlain Other }" +" # @PageWidth { 80s }" +" # @PageHeight { 66f }" +" # @PageOrientation { Portrait }" +" # @PageBackground {}" +" # @TopMargin { 2.5c @OrIfPlain 6f }" +"}" +} +This one has many options, starting with options for page +layout as shown, then going on to figures and tables, tables of +contents, etc. +@PP +The standard setup files are all much the same up to this point; the +main variation is that in some files, some options are already set. The +@Code "slides" setup file, for example, contains +@ID @Code "@InitialFont { Times Base 20p }" +so that overhead transparencies will have a large font size. However, +now comes a third @Code "@Use" clause whose symbol and options depend +on the document type. For ordinary documents (i.e. in the @Code "doc" +setup file) this clause is +@ID @OneRow @Code { +"@Use { @OrdinarySetup" +" # @IndexWord { index }" +" # @AppendixWord { appendix }" +" # @SectionNumbers { Arabic }" +" # @AppendixNumbers { UCAlpha }" +" # @SectionHeadingFont { Bold }" +"}" +} +Once again this is just some of the options. In the @Code slides +setup file for overhead transparencies, we find this: +@ID @OneRow @Code { +"@Use { @OverheadSetup" +" # @DateLine { No }" +" # @ContentsWord { contents }" +" # @FirstOverheadNumber { 1 }" +" # @OverheadNumbers { Arabic }" +" # @TitlePageFont { Helvetica Base 1.5f }" +" # @OverheadHeadingFont { Bold }" +" # @OverheadInContents { No }" +"}" +} +In general this third @Code "@Use" clause assigns values to options +specific to the document type we are using, whereas the first and +second @Code "@Use" clauses assign values to options that are relevant to many +or all document types. +@PP +The setup file ends with a comment identifying a spot where database +declarations may +database.dec @Index { database declarations, where to put } +be put, and two such declarations, one for fonts and the other for +reference printing styles. +@PP +The setup files used with other packages, such as C and C++ program printing, +diagrams, and graphs, are similar to the @Code { doc } setup file we +have just gone through. They contain a @@SysInclude line analogous to +@Code "@SysInclude { dsf }" for reading the package's definition, followed +by a @@Use clause for setting the package's options. The same procedure +is followed for changing these options. For example, to change the +options of the @Code "diag" package, copy file @Code "diag" from the +Lout system include directory to your directory, replace the +@ID @Code "@SysInclude { diag }" +line at the top of your document by {@Code "@Include { mydiag }"}, then +edit @Code "mydiag" and change the options as you wish. +@PP +If you are using several packages and you would like a single setup file, +that is quite easy to arrange. For example, suppose you have +@ID @Code { +"@Include { mydoc }" +"@Include { mydiag }" +"@Include { mycprint }" +} +To create a single setup file, just concatenate these three files into +one file (call it @Code { mysetup }, say), and replace the three lines by +@ID @Code { +"@Include { mysetup }" +} +As explained earlier, you can even replace the @Code "@Include { mydefs }" +line within the setup file by the actual definitions, giving just one +file of setup material for the entire document. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/fmt_size b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/fmt_size new file mode 100755 index 0000000000000..8e4a25878b0b4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/fmt_size @@ -0,0 +1,91 @@ +@Section + @Title { Page size and page orientation } + @Tag { pagesize } +@Begin +@PP +This section explains how to use the setup file options that determine +page size and page orientation. Here they are with their default values: +page.type @Index @Code "@PageType" +@ID @OneRow @Code { +"@PageType { A4 }" +"@PageWidth {}" +"@PageHeight {}" +"@PageOrientation { Portrait }" +} +The usual way to determine the page size is to set the @Code "@PageType" +option to the name of the paper you use: +@ID @Tab + vmargin { 0.5vx } + @Fmtb { @Col ! @Col ! @Col @I @RR B ! @Col @I @RR C } + @Fmta { @Col @Code { "@PageType {" A "}" } ! @Col ! @Col @Code @CC B ! + @Col @Code @CC C } +{ +@Rowb B { width in points } C { height in points } +@Rowa A { Letter } B { 612p } C { 792p } +@Rowa A { Tabloid } B { 792p } C { 1224p } +@Rowa A { Ledger } B { 1224p } C { 792p } +@Rowa A { Legal } B { 612p } C { 1008p } +@Rowa A { Statement } B { 396p } C { 612p } +@Rowa A { Executive } B { 540p } C { 720p } +@Rowa A { A3 } B { 842p } C { 1190p } +@Rowa A { A4 } B { 595p } C { 842p } +@Rowa A { A5 } B { 420p } C { 595p } +@Rowa A { B4 } B { 729p } C { 1032p } +@Rowa A { B5 } B { 516p } C { 729p } +@Rowa A { Folio } B { 612p } C { 936p } +@Rowa A { Quarto } B { 610p } C { 780p } +@Rowa A { 10x14 } B { 720p } C { 1008p } +} +This will automatically assign the widths and heights shown above to +the @Code "@PageWidth" and @Code "@PageHeight" options, so you don't +have to worry about those options. If your paper size is not on this +list, set @Code "@PageType" to @Code Other and supply your own width +and height: +page.width @Index @Code "@PageWidth" +page.height @Index @Code "@PageHeight" +@ID @Tab + vmargin { 0.5vx } + @Fmta { @Col @Code A } +{ +@Rowa A { "@PageType { Other }" } +@Rowa A { "@PageWidth { 12.0c }" } +@Rowa A { "@PageHeight { 18.0c }" } +} +The width and height may each be any length (Section {@NumberOf objects}), +and do not have to be in points. +@PP +The basic page orientations are @I portrait and @I landscape: +page.orientation @Index @Code "@PageOrientation" +@ID @Tab + @Fmta { @Col 8c @Wide @Code A ! @Col B } +{ +@Rowa + A { "@PageOrientation { Portrait }" } + B { @Box 1.0c @Wide 1.4c @High { Hello } } +@Rowa +@Rowa + A { "@PageOrientation { Landscape }" } + B { @Box 1.4c @Wide 1.0c @High { Hello } } +} +When changing to {@Code Landscape}, do not change the page type, page +width, or page height, and do not change the way you feed your paper +into the printer. Lout knows what to do. +@PP +Two other orientations are provided which are 180@Degree rotations of +the basic ones: +@ID @Tab + @Fmta { @Col 8c @Wide @Code A ! @Col B } +{ +@Rowa + A { "@PageOrientation { ReversePortrait }" } + B { @Box 1.0c @Wide 1.4c @High { //1rt &1rt 180d @Rotate Hello } } +@Rowa +@Rowa + A { "@PageOrientation { ReverseLandscape }" } + B { @Box 1.4c @Wide 1.0c @High { //1rt &1rt 180d @Rotate Hello } } +} +@Code ReverseLandscape might be useful when post-processing the PostScript output +to print two landscape pages per sheet. The @Code "@PageOrientation" symbol is +available at the start of a document, as well as in the setup file, like +{@Code "@InitialFont"} and {@Code "@PageHeaders"}. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra new file mode 100755 index 0000000000000..58c73ac620452 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra @@ -0,0 +1,46 @@ +@Chapter + @Title { Graphs } + @Tag { graphs } +@Begin +@LP +This chapter describes how to draw graphs, using the @Code "@Graph" +graphs. @Index { graphs (statistical) } +graph. @Index @Code "@Graph" +symbol. For example, +@ID @OneRow @Code { +"@Graph" +" abovecaption { New South Wales road deaths, 1960--1990" +"(fatalities per 100 million vehicle km) }" +"{" +" @Data points { plus } pairs { dashed }" +" { 1963 5.6 1971 4.3 1976 3.7 1979 3.4 1982 2.9 1985 2.3 1988 2.0 }" +"}" +} +produces the graph +@CD @Graph + abovecaption { New South Wales road deaths, 1960--1990 +(fatalities per 100 million vehicle km) } +{ + @Data + points { plus } + pairs { dashed } + { + 1963 5.6 1971 4.3 1976 3.7 1979 3.4 1982 2.9 1985 2.3 1988 2.0 + } +} +The features of @Code "@Graph" include captions, automatic and manual +ticks and labels, logarithmic axes, histograms, and plotting of +mathematical functions. +@BeginSections +@Include { gra_intr } +@Include { gra_over } +@Include { gra_capt } +@Include { gra_tick } +@Include { gra_data } +@Include { gra_plac } +@Include { gra_func } +@Include { gra_keys } +@Include { gra_erro } +@Include { gra_summ } +@EndSections +@End @Chapter diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_capt b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_capt new file mode 100755 index 0000000000000..089e6e5b38c77 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_capt @@ -0,0 +1,72 @@ +@Section + @Title { Captions } + @Tag { captions } +@Begin +@PP +There are options for placing captions above, below, left, and right of +captions.graphs @SubIndex { in graphs } +the frame: +@ID @OneRow @Code { +"@Graph" +" abovecaption { This appears above }" +" belowcaption { This appears below }" +" leftcaption { At left }" +" rightcaption { At right }" +"{" +"}" +} +produces +@CD @Graph + abovecaption { This appears above } + belowcaption { This appears below } + leftcaption { At left } + rightcaption { At right } +{ +} +The captions may be arbitrary Lout objects, so may include +equations, {@Code "@Rotate"}, and so on. Each caption except +@Code rightcaption is printed in the +@Code "clines @Break" style, which means that multiple lines in one +caption will be centred beneath each other. The @Code rightcaption +option uses the @Code "lines @Break" style, in which the lines are +left justified beneath each other. Incidentally, this example shows +what happens if there is no data. +@PP +There are options for controlling the amount of space between each +caption (when non-empty) and the frame. Here they are with their +default values: +@ID @OneRow @Code { +"@Graph" +" abovegap { 0.5 cm }" +" belowgap { 0.5 cm }" +" leftgap { 1.5 cm }" +" rightgap { 0.5 cm }" +"{" +" ..." +"}" +} +This is particularly important in the case of {@Code "leftgap"} (and +@Code "rightgap" if @Code rticks is used), because +Lout has no idea how wide the ticks and labels attached to the y axis +are; 1.5 cm is just a wild guess and often needs adjustment. On the +other hand, Lout does know how high the ticks and labels on the x axis +are; it allows 1.7 times the current font size for them, and +@Code "belowgap" is additional to this. +@PP +When a graph is to be presented as a centred display, it is generally +best if the centring is done with respect to the frame alone, not the +captions, ticks, and labels. The @Code "hidecaptions" option does this by +making the left and right captions and gaps seem to Lout to have zero width: +@ID @OneRow @Code { +"@Graph" +" hidecaptions { yes }" +"{" +" ..." +"}" +} +Actually @Code "yes" has been made the default value, since the vast +majority of graphs are centred displays. In the rare cases where +this feature is not wanted (for example, if a graph appears as an entry +in a table), use {@Code "hidecaptions { no }"}. The y and r ticks and labels +seem to Lout to have zero width already, so do not need to be hidden. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_data b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_data new file mode 100755 index 0000000000000..323f155ecc77d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_data @@ -0,0 +1,267 @@ +@Section + @Title { Changing the appearance of the data } + @Tag { data } +@Begin +@PP +The @Code "@Data" symbol has options for controlling the +data. @Index @Code "@Data" +appearance of its data. We have already seen the +@Code "points" option, which controls what is printed at each data +point: +points.graphs @Index { @Code "points" option in graphs } +@CD @Tab + vmargin { 0.5vx } + @Fmta { @Col @Code A ! @Col B ! @Col ! @Col @Code C ! @Col D } +{ +@Rowa + A { cross } + B { @GraphCross } + C { plus } + D { @GraphPlus } +@Rowa + A { square } + B { @GraphSquare } + C { filledsquare } + D { @GraphFilledSquare } +@Rowa + A { diamond } + B { @GraphDiamond } + C { filleddiamond } + D { @GraphFilledDiamond } +@Rowa + A { circle } + B { @GraphCircle } + C { filledcircle } + D { @GraphFilledCircle } +@Rowa + A { triangle } + B { @GraphTriangle } + C { filledtriangle } + D { @GraphFilledTriangle } +} +If the @Code "points" option is omitted or empty, nothing is printed. The +symbols are centred over the data point. There is a @Code "symbolsize" +option which controls the size (radius) of all these symbols: +symbolsize. @Index { @Code "symbolsize" option in graphs } +@ID @OneRow @Code { +"@Data" +" symbolsize { 0.15 ft }" +} +shows the default, 0.15 times the current font size. More +precisely, the default value is taken from an option +to the @Code "@Graph" symbol, also called {@Code "symbolsize"}. By +setting that option you can therefore set the symbol size of all data +points in the graph at once; its default value is {@Code "0.15 ft"}. +@PP +The @Code "@Data" symbol also has a @Code "pairs" option which +pairs. @Index { @Code "pairs" option in graphs } +determines how each pair of points is connected. The choices are +@Code none (not connected, the default), @Code solid (a solid line), +@Code dashed (a dashed line), or @Code dotted (a dotted line). For +example, +@ID @OneRow @Code { +"@Graph" +" abovecaption { Estimated population of Boston, New York, and Philadelphia }" +"{" +" @Data points { plus } pairs { solid }" +" { 1720 12000 1730 13000 1740 15601 1760 15631 1770 15877 }" +"" +" @Data points { plus } pairs { dashed }" +" { 1720 7000 1730 8622 1740 10451 1750 14255 1760 18000 1770 22667 }" +"" +" @Data points { plus } pairs { dotted }" +" { 1720 10000 1730 11500 1740 12654 1750 18202 1760 23750 1770 34583 }" +"}" +} +produces +@CD @Graph + abovecaption { Estimated population of Boston, New York, and Philadelphia +} +{ + @Data points { plus } pairs { solid } + { 1720 12000 1730 13000 1740 15601 1760 15631 1770 15877 } + + @Data points { plus } pairs { dashed } + { 1720 7000 1730 8622 1740 10451 1750 14255 1760 18000 1770 22667 } + + @Data points { plus } pairs { dotted } + { 1720 10000 1730 11500 1740 12654 1750 18202 1760 23750 1770 34583 } + +} +(R. C. Simmons, @I { The American Colonies }, W. W. Norton, New York, +1981.) We will see in Section {@NumberOf key} how to add an explanatory key to +this graph. If the points have symbols, these connecting lines will stop 1.5 +symbolsizes away from the data points, so as not to overstrike them. If +the points have no symbols and @Code "pairs" is {@Code "dashed"}, the +first and last dash in each segment will have half the length of the +others. +@PP +A @Code "dashlength" option controls the length of dashes and also the +separation between dots, and a @Code "linewidth" option controls the +width (thickness) of the lines and dots: +@ID @OneRow @Code { +"@Data" +" dashlength { 0.2 ft }" +" linewidth { 0.5 pt }" +"{" +" ..." +"}" +} +This shows the default values, {@Code "0.2 ft"} for @Code "dashlength" +and {@Code "0.5 pt"} (half a point) for {@Code "linewidth"}. Actually +the default value for @Code "linewidth" is whatever happens to be +already in use, but Lout sets line widths to half a point initially. +This option also controls the separation between bars in histograms. +@PP +The @Code "pairs" option is also used for producing histograms, like +histograms. @Index { histograms } +this: +@ID @OneRow @Code { +"@Graph" +" hidecaptions { yes }" +" abovecaption { Computer Science 3 Results (1993) }" +" leftcaption { Number of" +"students }" +" belowcaption { Final mark (%) }" +" yextra { 0 cm }" +" ymax { 80 }" +"{" +" @Data pairs { yhisto }" +" { 0 1 10 3 20 2 30 4 40 15 50 60 60 58 70 28 80 15 90 7 100 0 }" +"}" +} +which has result +@CD @Graph + hidecaptions { yes } + abovecaption { Computer Science 3 Results (1993) } + leftcaption { Number of +students } + belowcaption { Final mark (%) } + yextra { 0 cm } + ymax { 80 } +{ + @Data + pairs { yhisto } + { 0 1 10 3 20 2 30 4 40 15 50 60 60 58 70 28 80 15 90 7 100 0 } +} +Note carefully that one y histogram rectangle occupies the space from +one x value to the next, with height equal to the y value lying between +these two x values. This means that the very last y value has no effect +on the result (however, there must be a last y value anyway). +@PP +There is an alternative to @Code "yhisto" called {@Code "surfaceyhisto"}: +@CD @Graph + hidecaptions { yes } + abovecaption { Computer Science 3 Results (1993) } + leftcaption { Number of +students } + belowcaption { Final mark (%) } + yextra { 0 cm } + ymax { 80 } +{ + @Data + pairs { surfaceyhisto } + { 0 1 10 3 20 2 30 4 40 15 50 60 60 58 70 28 80 15 90 7 100 0 } +} +As you can see, @Code "surfaceyhisto" draws just the surface of the +histogram, not the descending lines. +@PP +There are @Code "xhisto" and @Code "surfacexhisto" values of +@Code "pairs" which produce a histogram whose bars are parallel to +the x axis. There are also {@Code "filledyhisto" } and +{@Code "filledxhisto" } values which produce filled rectangles rather +than outlined ones: +@ID @OneRow @Code { +"@Graph" +" abovecaption { Fertility rates in some developing countries }" +" xextra { 0 cm }" +" yextra { 0 cm }" +" xmax { 8 }" +" yticks {" +" 1.5 (Turkey) 2.5 (Thailand)" +" 3.5 (Indonesia) 4.5 (Costa Rica)" +" 5.5 (Colombia) 6.5 (Cameroon)" +" 7.5 (Botswana) 8.5 (Bangladesh)" +" }" +" yticklength { 0 cm }" +"{" +" @Data" +" pairs { filledxhisto }" +" { 0 1 3.2 2 2.2 3 3.0 4 3.5 5 2.8 6 5.9 7 4.8 8 5.3 9 }" +"}" +} +produces +@CD @Graph + abovecaption { Fertility rates in some developing countries + } + xextra { 0 cm } + yextra { 0 cm } + xmax { 8 } + yticks { 1.5 (Turkey) 2.5 (Thailand) 3.5 (Indonesia) 4.5 (Costa Rica) + 5.5 (Colombia) 6.5 (Cameroon) 7.5 (Botswana) 8.5 (Bangladesh) } + yticklength { 0 cm } +{ + @Data + pairs { filledxhisto } + { 0 1 3.2 2 2.2 3 3.0 4 3.5 5 2.8 6 5.9 7 4.8 8 5.3 9 } +} +(Bryant Robey, Shea O. Rutstein, and Leo Morros: The fertility decline in +developing countries, @I { Scientific American }, December 1993.) Once +again each bar goes from one y value to the next, with its x value +equal to the x value lying between the two y values; this time the very +first x value has no effect on the result. +@PP +The colour of one set of data can be changed with a @Code "colour" +option: +@ID @OneRow @Code { +"@Data" +" colour { blue }" +} +For the complete list of acceptable colour names, see Section +{@NumberOf colour}. The @Code "colour" option's name may also be +spelt @Code {"color"}. +@PP +It is also possible to paint the area between the data points and +the x axis (or frame if @Code "style" is not {@Code "axes"}), using +@ID @OneRow @Code { +"@Data" +" paint { yes }" +} +The paint colour is determined by the @Code "colour" option just +introduced; it will be @Code "black" if no colour is specified. Paint +(including white paint) hides paint, points, and lines drawn by previous +data sets. However the points and lines of each data set are drawn after +painting that set, so they cannot be hidden under their own paint; and +axes and frames are drawn last so that they too are never hidden. +@PP +A @Code "dataformat" option is provided for changing the interpretation +dataformat. @Index { @Code "dataformat" option in graphs } +of the data. Ordinarily, as we know, the numbers are taken to be pairs of +x and y coordinates, like this: +@ID @OneRow @Code { +"@Data" +"{" +" x y x y ... x y" +"}" +} +However, by setting @Code "dataformat" to {@Code "yonly"}, the +interpretation is changed to a sequence of y coordinates only: +@ID @OneRow @Code { +"@Data" +" dataformat { yonly }" +"{" +" y y ... y" +"}" +} +and x values 1, 2, and so on are inserted automatically, just as though +the original input had been +@ID @OneRow @Code { +"@Data" +"{" +" 1 y 2 y ..." +"}" +} +There is also {@Code "xonly"}, which inserts y values 1, 2, and so on. The +default value, {@Code "xandy"}, gives the usual interpretation. The +layout of data on lines has no effect on the interpretation. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_erro b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_erro new file mode 100755 index 0000000000000..3c123a380de89 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_erro @@ -0,0 +1,40 @@ +@Section + @Title { Errors } + @Tag { grerrors } +@Begin +@PP +Lout normally produces output that will print without mishap on +any PostScript device. However, some of the options of @Code "@Graph" +and all of the data and labels are passed through Lout without +checking. Any errors in this material will not be detected +until the file is printed. +@PP +The most likely errors are @I { rangecheck errors}, for example if +an attempt is made to divide by zero or take the square root of a +negative number, and @I { undefined errors }, arising from symbols +misspelt, use of @Code "x" outside an {@Code "xloop"}, etc. Less commonly, +everything may be correct but the graph is too large in some +way: too much data, expression too deeply nested, and so on. +@PP +When an error is detected, @Code "@Graph" arranges for the offending page +to be printed up to the point where the error occurred, with a message +nearby describing the error. Printing of the document is then +aborted. The problem is usually easy to locate since it lies in whatever +should have been printed next. +@PP +If you see @Code VMerror in an error message, it means that the printer +has run out of memory. All the data is stored in the printer while the +graph is being printed, and it remains there until the end of the current +page, when it is discarded and all memory consumed by the graph is +reclaimed. If you do run out of memory, one option is to try +@ID @Code { +"@Graph" +" save { yes }" +"..." +} +This causes the memory used by the graph to be reclaimed as soon as +the graph is printed, which might well solve your problem if you have +several graphs on one page. However, if the graph is nested +inside some other major Lout package, notably {@Code "@Diag"}, this +option could cause PostScript errors in that package. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_func b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_func new file mode 100755 index 0000000000000..d30e82c5d3892 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_func @@ -0,0 +1,179 @@ +@Section + @Title { Mathematical functions, loops, and tests } + @Tag { functions } +@Begin +@PP +@Code "@Graph" offers quite a large selection of mathematical functions, +mathematical.functions @Index { mathematical functions in graphs } +available everywhere that x and y coordinates are required: within +the @Code xticks and @Code yticks options, within the points within +the @Code "objects" option, and within the right parameter of the +@Code "@Data" symbol. For example, +@ID @OneRow @Code { +"@Data" +" pairs { solid }" +"{" +" 0 0 pi sin { pi/2 }" +"}" +} +draws a solid line from @Eq {(0, 0)} to @Eq {(pi, sin(pi "/" 2))}. Section +{@NumberOf grsummary} lists all the functions; they include the four +arithmetical operators @Eq { non + }, @Eq { non - }, @Eq { non * }, and +@Eq { "/" }, as well as {@Code "sin"}, {@Code "cos"}, {@Code "sqrt"}, and +many others. Braces are used for grouping, never parentheses. +@PP +For plotting functions there are three looping symbols, {@Code "xloop"}, +{@Code "yloop"}, and {@Code "zloop"}. For example, the following plots +the two functions @Eq { y = 2 } and @Eq { y = sqrt { pi x "/" 4 } + 1 } +for @Eq { x } from 10 to 500: +@ID @OneRow @Code { +"-2p @Font @Graph" +" style { axes }" +" xorigin { 0 }" +" yorigin { 0 }" +" width { 8 cm }" +" xticks { 10@ 50@ 100@ 200@ 500@ }" +" objects { @NE at { 300 2 } @I { Exponential }" +" @SE at { 300 sqrt { pi*300/4 } + 1 } @I { Uniform } }" +" belowcaption { @I n }" +" belowgap { 0 cm }" +" leftcaption { Right shell nodes }" +"{" +" @Data points { filledcircle }" +" { 10 1.97 50 2.01 100 2.00 200 2.0 500 2.00 }" +"" +" @Data points { filledcircle }" +" { 10 3.53 50 7.45 100 9.32 200 13.41 500 21.63 }" +"" +" @Data pairs { dashed }" +" { 10 2 500 2 }" +"" +" @Data pairs { dashed }" +" {" +" xloop from { 10 } to { 500 } by { 20 } do" +" {" +" x sqrt { pi*x / 4 } + 1" +" }" +" }" +"}" +} +The @Code "do" option of @Code xloop is replicated repeatedly with each +occurrence of @Code x replaced by 10, 30, 50, ... up to 490. The +result is +@FootNote { Source: Jeffrey H. Kingston, Analysis of tree algorithms +for the simulation event list. @I { Acta Informatica } {@B 22}, +pp. 15--33 (1985). } +@CD -2p @Font @Graph + style { axes } + xorigin { 0 } + yorigin { 0 } + width { 8 cm } + xticks { 10@ 50@ 100@ 200@ 500@ } + objects { + @NE at { 300 2 } @I { Exponential } + @SE at { 300 sqrt { pi*300/4 } + 1 } @I { Uniform } + } + belowcaption { @I n } + belowgap { 0 cm } + leftcaption { Right shell nodes } +{ + @Data points { filledcircle } + { 10 1.97 50 2.01 100 2.00 200 2.0 500 2.00 } + + @Data points { filledcircle } + { 10 3.53 50 7.45 100 9.32 200 13.41 500 21.63 } + + @Data pairs { dashed } + { 10 2 500 2 } + + @Data pairs { dashed } + { + xloop from { 10 } to { 500 } by { 20 } do + { + x sqrt { pi*x / 4 } + 1 + } + } +} +The points are connected by straight line segments as usual, but a +smallish @Code "by" option of about one-twentieth of the range creates +the illusion of a smooth curve quite well. +@PP +There is also an @Code "if" symbol which produces alternative results, +depending on whether a condition evaluates to @Code "true" or +{@Code"false"}: +@ID @OneRow @Code { +"xloop from { -5 } to { +5 } by { 0.2 } do" +"{" +" if cond { abs { x } > 0.1 } then { x 1/x } else {}" +"}" +} +This plots the function @Eq { y = 1 "/" x }, skipping points near +zero. Actually the @Code "else" part could be omitted since its default +value is empty. +@PP +Adventurous users might enjoy nesting a @Code "yloop" or @Code "zloop" +within an {@Code "xloop"}, or using loops to generate ticks, like this: +@ID @OneRow @Code { +"xticks {" +" xloop from { 0 } to { 20 } do" +" {" +" x if cond { x mod 5 = 0 } then { @ }" +" }" +"}" +} +The missing @Code "by" option defaults to 1, so this produces x ticks at +0, 1, 2, ..., 20, with labels at 0, 5, 10, 15, and 20. It is quite all +right to mix @Code "@" and even labels in with numbers, as long as the +final result obeys the rules of Section {@NumberOf ticks}. +@PP +You can define your own functions using Lout definitions, placed in your +@Code "mydefs" file as explained in Section {@NumberOf definitions}. Here +is an example of a function definition: +@ID @OneRow @Code { +"import @Graph @Data" +"def @Tan" +" precedence 40" +" right x" +"{" +" sin x / cos x" +"}" +} +This defines a function called @Code "@Tan" which implements the +trigonometric tangent function. It may then be used in expressions +just like any other function: +@ID @OneRow @Code { +"@Data {" +" yloop from { 0 } to { 0.95 } by { 0.05 } do" +" {" +" y @Tan { y / pi }" +" }" +"}" +} +Following is a detailed explanation. +@PP +The first line, {@Code "import @Graph @Data"}, is the import clause. Its +function is to grant the definition access to the three previously defined +functions (symbols) that it uses, namely {@Code "sin"}, {@Code "cos"}, +and {@Code "/"}. These are found within the @Code "@Data" symbol within +{@Code "@Graph"}. +@PP +After the import clause comes the @Code "def" keyword, meaning +`define,' and then the name of the symbol being defined, in this case +@Code "@Tan". We have chosen @Code "@Tan" rather than @Code "tan" +because symbols defined by the user in this way are visible throughout +the document, and we do not want the literal word @Code "tan" to be +taken as a symbol. +@PP +Next comes the symbol's precedence, in this case the same as @Code "sin" and +@Code "cos" (see Section {@NumberOf dia_summ} for the precedence of +each symbol). Next is a list of the formal parameters, in this case +just one, called {@Code "x"}, that is to be passed on the right. +@PP +Finally comes the body of the definition enclosed in braces. When +@Code "@Tan" is invoked, its value will be this body with each occurrence +of the formal parameter @Code "x" replaced by the object following the +@Code "@Tan" symbol. For example, the @Code "do" option of the @Code +"yloop" above becomes +@ID @Code "y sin { y / pi } / cos { y / pi }" +as you would expect. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_intr b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_intr new file mode 100755 index 0000000000000..28dfd1b919ae6 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_intr @@ -0,0 +1,51 @@ +@Section + @Title { Introduction } + @Tag { grintro } +@Begin +@PP +The Lout definitions for graph formatting are kept in a file called +{@Code "graph"}, which you must include at the start of your document if +graph.file @Index { @Code "graph" file } +you want graphs, like this: +@ID @OneRow @Code { +"@SysInclude { graph }" +"@SysInclude { doc }" +"@Doc @Text @Begin" +"..." +"@End @Text" +} +Setup files for specialized packages, such as {@Code "graph"}, should be +included before the main setup file. Once this is done, the @Code "@Graph" +symbol used below will then be available for use anywhere within your document. +@PP +@Code "@Graph" distinguishes between the overall graph, produced by the +@Code "@Graph" symbol itself, and the data sets to be placed within it, +each of which is enclosed by a @Code "@Data" symbol: +@ID @OneRow @Code { +"@CentredDisplay @Graph" +"{" +" @Data points { plus }" +" { 1 1.10 2 1.21 3 1.33 4 1.46 5 1.61 6 1.77 7 1.95 8 2.14 }" +"" +" @Data points { circle }" +" { 1 1.20 2 1.44 3 1.73 4 2.07 5 2.45 6 2.99 7 3.58 8 4.30 }" +"}" +} +Although it is good practice to lay the input data out neatly, layout +has no effect on the result. It is not necessary to have one data point +per line, for example. The result of this example is +@CentredDisplay @Graph +{ + @Data + points { plus } + { 1 1.10 2 1.21 3 1.33 4 1.46 5 1.61 6 1.77 7 1.95 8 2.14 } + + @Data + points { circle } + { 1 1.20 2 1.44 3 1.73 4 2.07 5 2.45 6 2.99 7 3.58 8 4.30 } +} +We have used the @Code "@CentredDisplay" symbol from Section +{@NumberOf displays} to produce a centred display, but the +@Code "@Graph" symbol produces an object which may appear anywhere +at all -- in a figure, for example, or as an entry in a table. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_keys b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_keys new file mode 100755 index 0000000000000..089139a862d62 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_keys @@ -0,0 +1,104 @@ +@Section + @Title { Adding a key to the graph } + @Tag { key } +@Begin +@PP +A @I key to a graph is an explanation of what each data set +key. @Index { key in graph } +represents. To assist you in constructing a key, some extra symbols +are provided in addition to {@Code "@Graph"}: +graph.cross @Index @Code "@GraphCross" +graph.plus @Index @Code "@GraphPlus" +graph.square @Index @Code "@GraphSquare" +graph.filled.square @Index @Code "@GraphFilledSquare" +graph.diamond @Index @Code "@GraphDiamond" +graph.filled.diamond @Index @Code "@GraphFilledDiamond" +graph.circle @Index @Code "@GraphCircle" +graph.filled.circle @Index @Code "@GraphFilledCircle" +graph.triangle @Index @Code "@GraphTriangle" +graph.filled.triangle @Index @Code "@GraphFilledTriangle" +graph.noline @Index @Code "@GraphNoLine" +graph.solid @Index @Code "@GraphSolid" +graph.dashed @Index @Code "@GraphDashed" +graph.dotted @Index @Code "@GraphDotted" +@ID @Tab + @Fmta { @Col @Code A ! @Col B ! @Col @Code C ! @Col D } +{ +@Rowa + A { "@GraphCross" } + B { @GraphCross } + C { "@GraphPlus" } + D { @GraphPlus } +@Rowa + A { "@GraphSquare" } + B { @GraphSquare } + C { "@GraphFilledSquare" } + D { @GraphFilledSquare } +@Rowa + A { "@GraphDiamond" } + B { @GraphDiamond } + C { "@GraphFilledDiamond" } + D { @GraphFilledDiamond } +@Rowa + A { "@GraphCircle" } + B { @GraphCircle } + C { "@GraphFilledCircle" } + D { @GraphFilledCircle } +@Rowa + A { "@GraphTriangle" } + B { @GraphTriangle } + C { "@GraphFilledTriangle" } + D { @GraphFilledTriangle } +@Rowa +@Rowa + A { "@GraphNoLine" } + B { @GraphNoLine } +@Rowa + A { "@GraphSolid" } + B { @GraphSolid } +@Rowa + A { "@GraphDashed" } + B { @GraphDashed } +@Rowa + A { "@GraphDotted" } + B { @GraphDotted } +} +These extra symbols may be used anywhere in your document except within +the right parameter of {@Code "@Graph"}; they are commonly used within +the caption options of {@Code "@Graph"}: +@ID @OneRow @Code { +"@Graph" +" rightcaption {" +"@GraphPlus @GraphSolid @GraphPlus Boston" +"@GraphPlus @GraphDashed @GraphPlus New York" +"@GraphPlus @GraphDotted @GraphPlus Philadelphia" +"}" +} +Recall that unlike the other captions, @Code rightcaption is set using +the @Code "lines @Break" style rather than {@Code "clines @Break"} +(Section {@NumberOf captions}). Adding this caption to the graph +from Section {@NumberOf data}, the complete result is +@CD @Graph + rightcaption { +@GraphPlus @GraphSolid @GraphPlus Boston +@GraphPlus @GraphDashed @GraphPlus New York +@GraphPlus @GraphDotted @GraphPlus Philadelphia +} +{ + @Data points { plus } pairs { solid } + { 1720 12000 1730 13000 1740 15601 1760 15631 1770 15877 } + + @Data points { plus } pairs { dashed } + { 1720 7000 1730 8622 1740 10451 1750 14255 1760 18000 1770 22667 } + + @Data points { plus } pairs { dotted } + { 1720 10000 1730 11500 1740 12654 1750 18202 1760 23750 1770 34583 } + +} +The first eight symbols have a @Code "symbolsize" option with the +usual meaning and the usual default value ({@Code "0.15 ft"}). The +last four symbols have @Code "dashlength" and @Code "linewidth" options +with the usual default values, {@Code "0.2 ft"} and {@Code "0.5 pt"} +respectively, and a @Code "length" option, which determines the length +of the line drawn by each symbol; its default value is {@Code "1.0 ft"}. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_over b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_over new file mode 100755 index 0000000000000..1b9653a34fb93 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_over @@ -0,0 +1,179 @@ +@Section + @Title { Changing the overall appearance of the graph } + @Tag { overall } +@Begin +@PP +The overall appearance of the graph is controlled by options to the +@Code "@Graph" symbol. As usual, these options follow the @Code "@Graph" +symbol, with their values enclosed in braces; they may appear in any order, +and if omitted are assigned some sensible default value. +@PP +There is a @Code "style" option for controlling the overall style of the +style.graph @Index { @Code "style" option of @Code "@Graph" } +axes. @Index { axes in graphs } +graph, whose value may be either {@Code "frame"}, {@Code "none"}, +or {@Code "axes"}. The default value is {@Code "frame"}, and it produces +a frame around the graph with ticks and labels along its left and bottom +edges, as in previous examples. The {@Code "none"} style prints +nothing (no frame, no ticks, no labels), which is useful for producing +graphs that don't look like graphs, as it were. +@PP +If the other value, {@Code "axes"}, is chosen, two other options called +{@Code xorigin} and {@Code yorigin} become compulsory: +@ID @OneRow @Code { +"-2p @Font @Graph" +" style { axes }" +" xorigin { 0 }" +" yorigin { 0 }" +" width { 12 cm }" +" height { 7 cm }" +" leftcaption { 90d @Rotate { counts (%) } }" +" leftgap { 1.0 cm }" +" belowcaption { time (min) }" +" belowgap { 0 cm }" +"{" +" @Data" +" points { filledsquare }" +" pairs { solid }" +" { 0 0.0 1 4.8 2 7.0 3 15.2 4 19.8 5 20.0 6 21.0 7 25.0" +" 10 29.5 15 31.2 20 35.0 30 40.0 60 50.8" +" }" +"" +" @Data" +" points { square }" +" pairs { solid }" +" {" +" 0 0.0 1 3.7 1.5 43.1 2 99.1 3 85.6 4 69.1 5 47.0 6 44.1 7 40.8" +" 10 35.0 15 29.4 20 25.0 30 21.1 60 15.5" +" }" +"}" +} +We have requested a smaller font size for this graph as a whole by +preceding it with {@Code "-2p @Font"}, meaning two points smaller, and +we have used some other options which will be explained shortly. The +resulting graph has an x axis and a y axis instead of a frame, like this: +@CD -2p @Font @Graph + style { axes } + xorigin { 0 } + yorigin { 0 } + width { 12 cm } + height { 7 cm } + leftcaption { 90d @Rotate { counts (%) } } + leftgap { 1.0 cm } + belowcaption { time (min) } + belowgap { 0 cm } +{ + @Data + points { filledsquare } + pairs { solid } + { 0 0.0 1 9.5 2 15.0 3 18.2 4 20.1 5 22.1 7 25.0 + 10 28.3 15 31.2 20 35.0 30 40.0 60 50.8 + } + + @Data + points { square } + pairs { solid } + { + 0 0.0 1 3.7 1.5 43.1 2 99.1 3 85.6 4 69.1 5 47.0 6 44.1 7 40.8 + 10 35.0 15 29.4 20 25.0 30 21.1 60 15.5 + } +} +The point where the axes cross is ({@Code xorigin}, {@Code yorigin}). +@PP +Although @Code "@Graph" does not provide explicit support for +multiple axes, you can simulate them by overstriking two +separate graphs of equal size. There is an @Code "@OverStrike" +overstrike. @Index @Code "@OverStrike" +symbol which overstrikes two objects, so +@ID @Code "@Graph { ... } @OverStrike @Graph { ... }" +will do the job. Typically one of the graphs would have y ticks, +and the other would have r ticks (adjacent to the right-hand side of the +frame). +@PP +There are @Code "xlog" and @Code "ylog" options which produce +logarithmic.axes @Index { logarithmic axes in graphs } +logarithmic x and y axes: +@ID @OneRow @Code { +"@Graph" +" xlog { 10 }" +" ylog { 10 }" +"{" +" ..." +"}" +} +The value is the base of the logarithm, usually 10 or 2, or +{@Code none} (the default) meaning not logarithmic. Logarithms +to different bases differ only by a constant factor, so the main effect +of different bases is on the choice of ticks and labels. An @Code "xlog" +option will be ignored if there are any negative or zero x data points, +x ticks, or {@Code "xorigin"} or {@Code "xmin"} options; and similarly +for {@Code "ylog"}. +@PP +There are @Code "width" and @Code "height" options for setting the size +of the total area enclosed: +@ID @OneRow @Code { +"@Graph" +" width { 6.0 cm }" +" height { 4.0 cm }" +"{" +" ..." +"}" +} +This shows the default width and height, six centimetres and four +centimetres. These lengths and others discussed below can be specified +using a variety of units of measurement (see Section {@NumberOf grsummary} +for the details). +@PP +Within the frame or axes, a small margin is kept free of data points. The +size of this margin is controlled by @Code "xextra" and @Code "yextra" +options: +@ID @OneRow @Code { +"@Graph" +" xextra { 0.5 cm }" +" yextra { 0.5 cm }" +"{" +" ..." +"}" +} +Setting @Code "xextra" to @Code "0.5 cm" (the default value if the +@Code style option is {@Code frame}) means that the smallest x value +will be placed 0.5 centimetres to the right of the left boundary, and +the largest will be placed 0.5 centimetres to the left of the right +boundary. It is quite safe to set @Code "xextra" to @Code "0 cm" if +desired, and indeed this is the default value when @Code style is +{@Code axes} or {@Code none}. The @Code "yextra" option works in +exactly the same way for y values. +@PP +The @Code "xdecreasing" option plots the x values in decreasing order +instead of increasing: +@ID @Code { +"@Graph" +" xdecreasing { yes }" +" abovecaption { New South Wales road deaths, 1960--1990" +"(fatalities per 100 million vehicle km) }" +"{" +" @Data" +" points { plus }" +" pairs { dashed }" +" {" +" 1963 5.6 1971 4.3 1976 3.7 1979 3.4 1982 2.9 1985 2.3 1988 2.0" +" }" +"}" +} +produces +@CD @Graph + xdecreasing { yes } + abovecaption { New South Wales road deaths, 1960--1990 +(fatalities per 100 million vehicle km) } +{ + @Data + points { plus } + pairs { dashed } + { + 1963 5.6 1971 4.3 1976 3.7 1979 3.4 1982 2.9 1985 2.3 1988 2.0 + } +} +The value of @Code "xdecreasing" should be either @Code "no" (the default +value) or {@Code "yes"}. A similar @Code "ydecreasing" option does the same +thing to the y axis. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_plac b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_plac new file mode 100755 index 0000000000000..7084eb22c2c9a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_plac @@ -0,0 +1,51 @@ +@Section + @Title { Placing arbitrary objects on the graph } + @Tag { arbobj } +@Begin +@PP +As we have just seen, the repertoire of symbols that @Code "@Data" is +able to place on the graph is quite limited. However, there is a way +to place any number of arbitrary Lout objects anywhere on the graph, +using the @Code objects option to the @Code "@Graph" symbol: +@ID @OneRow @Code { +"@Graph" +" objects {" +" @CTR at {2.5 6.0} @Eq { y = x sup 2 }" +" @CTR at {4.5 7.0} @Eq { y = x sup 3 }" +" }" +} +where we have used the @Code "@Eq" symbol from Chapter {@NumberOf equations} +twice to place two equations onto the graph at the points {@Code "2.5 6.0"} +and {@Code "4.5 7.0"} respectively. An example result appears in the next +section. +@PP +In addition to {@Code "@CTR"}, there are eight other symbols which may +be used within the @Code "objects" option in the same way: {@Code "@NW"}, +{@Code "@SW"}, {@Code "@SE"}, {@Code "@NE"}, {@Code "@N"}, {@Code "@W"}, +{@Code "@S"}, and {@Code "@E"}. These place the object just to the +northwest of the point, to the southwest, and so on instead of centring +it over the point. By `to the northwest' we mean that the object's bottom +right corner coincides with the point, and similarly for the other symbols. +@PP +Each of these symbols has a @Code "margin" option which enlarges the +object by adding a margin around it before placing it: +@ID @Code "@NW at {2.5 6.0} margin { 0.3 ft } @Eq { y = x sup 2 }" +shows the default value, 0.3 times the current font size. As the margin +is increased, the object moves further away from the point. +@PP +The major advantage of the @Code "objects" option over the @Code "@Data" +symbol is that arbitrary Lout objects may be used. The @Code "@Data" +symbol however is able to place many copies of its symbols onto the graph, +and also allow for them when connecting points together with lines. Also, +the points within the @Code "objects" option are not taken into account +when deciding on the permissible range of x and y values, whereas the +points within the @Code "@Data" symbol are. Altogether it seems best +to use the @Code "@Data" symbol for the bulk of the data points, and to +use the @Code "objects" option for adding a small number of labels or +other decorations. +@PP +The @Code "objects" option may contain @Code "@Graph" symbols, but in +that case, owing to a deficiency in the implementation, those symbols +will need to have their @Code save options (Section {@NumberOf grerrors}) +set to {@Code yes}. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_summ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_summ new file mode 100755 index 0000000000000..ea074b99174b7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_summ @@ -0,0 +1,466 @@ +@Section + @Title { Summary } + @Tag { grsummary } +@Begin +@PP +The options to the @Code "@Graph" symbol, their default values, and +their possible values are: +@ID -2.1px @Break -1p @Font @Tab + hmargin { 0.15c } + @Fmta { @Col @Code { " "A } ! @Col @Code "{" ! @Col @Code B ! + @Col @Code "}" ! @Col ! @Col ! @Col C } + @Fmtb { @Col @Code A ! @Col ! @Col ! @Col ! @Col ! @Col ! @Col } +{ +@Rowb + A { "@Graph" } +@Rowa + A { style } + B { frame } + C { {@Code frame}, {@Code axes}, or {@Code none} } +@Rowa + A { width } + B { 6.0 cm } + C { any @I distance } +@Rowa + A { height } + B { 4.0 cm } + C { any @I distance } +@Rowa + A { xextra } + B { 0.5 cm } + C { any @I distance ({@Code axes} and {@Code none} default is {@Code "0 cm"}) } +@Rowa + A { yextra } + B { 0.5 cm } + C { any @I distance ({@Code axes} and {@Code none} default is {@Code "0 cm"}) } +@Rowa + A { xdecreasing } + B { no } + C { @Code yes or @Code no } +@Rowa + A { ydecreasing } + B { no } + C { @Code yes or @Code no } +@Rowa + A { leftcaption } + B { } + C { any Lout object } +@Rowa + A { rightcaption } + B { } + C { any Lout object } +@Rowa + A { abovecaption } + B { } + C { any Lout object } +@Rowa + A { belowcaption } + B { } + C { any Lout object } +@Rowa + A { leftgap } + B { 1.5 cm } + C { any @I distance } +@Rowa + A { rightgap } + B { 0.5 cm } + C { any @I distance } +@Rowa + A { abovegap } + B { 0.5 cm } + C { any @I distance } +@Rowa + A { belowgap } + B { 0.5 cm } + C { any @I distance } +@Rowa + A { hidecaptions } + B { yes } + C { @Code yes or @Code no } +@Rowa + A { xorigin } + B { none } + C { {@Code none} or any @I number } +@Rowa + A { yorigin } + B { none } + C { {@Code none} or any @I number } +@Rowa + A { xlog } + B { none } + C { {@Code none} or any @I number greater than 1 } +@Rowa + A { ylog } + B { none } + C { {@Code none} or any @I number greater than 1 } +@Rowa + A { xmin } + B { none } + C { @Code none or any {@I number} } +@Rowa + A { xmax } + B { none } + C { @Code none or any {@I number} } +@Rowa + A { ymin } + B { none } + C { @Code none or any {@I number} } +@Rowa + A { ymax } + B { none } + C { @Code none or any {@I number} } +@Rowa + A { xticksep } + B { none } + C { {@Code none} or any @I number greater than 0 } +@Rowa + A { yticksep } + B { none } + C { {@Code none} or any @I number greater than 0 } +@Rowa + A { rticksep } + B { none } + C { {@Code none} or any @I number greater than 0 } +@Rowa + A { xticks } + B { auto } + C { @I sequence (of numbers and strings), or @Code auto meaning +automatic } +@Rowa + A { yticks } + B { auto } + C { @I sequence (of numbers and strings), or @Code auto meaning +automatic } +@Rowa + A { rticks } + B { } + C { @I sequence (of numbers and strings), or @Code auto meaning +automatic } +@Rowa + A { xticklength } + B { 0.5 ft } + C { any @I distance } +@Rowa + A { yticklength } + B { 0.5 ft } + C { any @I distance } +@Rowa + A { rticklength } + B { 0.5 ft } + C { any @I distance } +@Rowa + A { objects } + B { } + C { sequence of {@Code "@CTR"}, {@Code "@NW"}, {@Code "@SW"}, {@Code "@SE"}, +{@Code "@NE"}, {@Code "@N"}, {@Code "@W"}, {@Code "@S"}, {@Code "@E"} symbols } +@Rowa + A { points } + B { none } + C { {@Code none}, {@Code plus}, {@Code cross}, {@Code square}, +{@Code filledsquare}, {@Code diamond}, {@Code filleddiamond}, +{@Code circle}, {@Code filledcircle}, {@Code triangle}, {@Code filledtriangle} } +@Rowa + A { pairs } + B { none } + C { {@Code none}, {@Code solid}, {@Code dashed}, {@Code dotted}, +{@Code yhisto}, {@Code xhisto}, {@Code filledyhisto}, {@Code filledxhisto}, +{@Code surfaceyhisto}, {@Code surfacexhisto} } +@Rowa + A { "colour/color" } + B { none } + C { {@Code none} or any colour name from Section {@NumberOf colour}} +@Rowa + A { paint } + B { no } + C { {@Code no} or {@Code yes} } +@Rowa + A { dataformat } + B { xandy } + C { {@Code xandy}, {@Code yonly}, {@Code xonly} } +@Rowa + A { dashlength } + B { 0.2 ft } + C { any @I distance } +@Rowa + A { linewidth } + B { 0.5 pt } + C { any @I distance } +@Rowa + A { symbolsize } + B { 0.15 ft } + C { any @I distance } +} +@I Number means an ordinary decimal number; @I distance means a number +followed by at least one space followed by any one of the following +units of measurement: +@ID @Tab + vmargin { 0.5vx } + @Fmta { @Col @Code A ! @Col B } +{ +@Rowa + A { cm } + B { centimetres } +@Rowa + A { in } + B { inches } +@Rowa + A { em } + B { Ems (12 ems = 1 inch) } +@Rowa + A { pt } + B { Points (72 points = 1 inch) } +@Rowa + A { ft } + B { @Code "1 ft" is the size of the current font } +@Rowa + A { sp } + B { @Code "1 sp" is the width of the space character in the current font } +@Rowa + A { vs } + B { @Code "1 vs" is the current inter-line spacing } +} +In general, numbers denote x or y values while distances denote lengths +on the printed result. +@PP +The minimum plottable x value is the minimum of all the x data, +{@Code xticks}, {@Code xorigin}, {@Code xmin}, and {@Code xmax} whenever +these are not {@Code none}. If @Code xticks is {@Code none}, this +minimum may be reduced further to a `round' number. The maximum plottable +x value is the maximum of the same values, and it may be increased further +if {@Code xticks} is {@Code none}. Similar remarks apply to y values. +@PP +The value of the @Code "objects" option is a sequence of zero or more of +the following: +@ID @Tab + vmargin { 0.5vx } + @Fmta { @Col A ! @Col { @Code "at {" @I expression @I expression +@Code "}" } ! @Col @I object } +{ +@Rowa A { @Code "@CTR" } +@Rowa A { @Code "@NW" } +@Rowa A { @Code "@SW" } +@Rowa A { @Code "@SE" } +@Rowa A { @Code "@NE" } +@Rowa A { @Code "@N" } +@Rowa A { @Code "@W" } +@Rowa A { @Code "@S" } +@Rowa A { @Code "@E" } +} +where @I object is an arbitrary Lout object. Each of these nine symbols +also has a @Code "margin" option whose value may be any non-negative +distance, with default value {@Code "0.3 ft"}. +@PP +The options to the @Code "@Data" symbol, their default values, and +their possible values are: +@ID 0.85vx @Break @Tab + hmargin { 0.15c } + @Fmta { @Col @Code { " "A } ! @Col @Code "{" ! @Col @I inherited ! + @Col @Code "}" ! @Col ! @Col ! @Col C } + @Fmtb { @Col A ! @Col ! @Col ! @Col ! @Col ! @Col ! @Col } +{ +@Rowb + A { @Code "@Data" } +@Rowa + A { points } + C { {@Code none}, {@Code plus}, {@Code cross}, {@Code square}, +{@Code filledsquare}, {@Code diamond}, {@Code filleddiamond}, +{@Code circle}, {@Code filledcircle}, +{@Code triangle}, {@Code filledtriangle} } +@Rowa + A { pairs } + C { {@Code none}, {@Code solid}, {@Code dashed}, {@Code dotted}, +{@Code yhisto}, {@Code xhisto}, {@Code filledyhisto}, {@Code filledxhisto}, +{@Code surfaceyhisto}, {@Code surfacexhisto} } +@Rowa + A { "colour/color" } + C { {@Code none}, or any colour name from Section {@NumberOf colour} } +@Rowa + A { paint } + C { {@Code no} or {@Code yes} } +@Rowa + A { dataformat } + C { {@Code xandy}, {@Code yonly}, {@Code xonly} } +@Rowa + A { dashlength } + C { any @I distance } +@Rowa + A { linewidth } + C { any @I distance } +@Rowa + A { symbolsize } + C { any @I distance } +@Rowb + A { @Code "{" @I sequence @Code "}" } + C { any @I sequence } +} +@I Inherited means that the default value is taken from the +@Code "@Graph" option with the same name. +@PP +The right parameter of @Code "@Data" contains a @I sequence of zero +or more {@I expressions}. The {@Code xticks}, {@Code yticks}, and +{@Code rticks} options also are sequences, which may contain @Code "@" +and labels as well as expressions. An @I expression is any of the +following (operators are shown in decreasing precedence order, with +the precedence, if relevant, at right): +@ID @Tab + vmargin { 0.5vx } + @Fmta { @Col A ! @Col ! @Col B } +{ +@Rowa + A { @I number } +@Rowa + A { @Code x (within @Code xloop only) } +@Rowa + A { @Code y (within @Code yloop only) } +@Rowa + A { @Code z (within @Code zloop only) } +@Rowa + A { @Code pi } +@Rowa + A { @Code e } +@Rowa + A { @Code "{" @I expression @Code "}" } +@Rowa + A { @Code "sqrt" @I expression } + B { 40 } +@Rowa + A { @Code "abs" @I expression } + B { 40 } +@Rowa + A { @Code "ceiling" @I expression } + B { 40 } +@Rowa + A { @Code "floor" @I expression } + B { 40 } +@Rowa + A { @Code "truncate" @I expression } + B { 40 } +@Rowa + A { @Code "round" @I expression } + B { 40 } +@Rowa + A { @Code "cos" @I expression } + B { 40 } +@Rowa + A { @Code "sin" @I expression } + B { 40 } +@Rowa + A { @I expression @Code "atan" @I expression } + B { 39 } +@Rowa + A { @I expression @Code "exp" @I expression } + B { 38 } +@Rowa + A { @I expression @Code "log" @I expression } + B { 37 } +@Rowa + A { @I expression @Code "rand" @I expression } + B { 36 } +@Rowa + A { @I expression @Eq { non * } @I expression } + B { 35 } +@Rowa + A { @I expression @Code "/" @I expression } + B { 34 } +@Rowa + A { @I expression @Code "idiv" @I expression } + B { 34 } +@Rowa + A { @I expression @Code "mod" @I expression } + B { 34 } +@Rowa + A { @I expression @Eq { non - } @I expression } + B { 33 } +@Rowa + A { @Eq { non - } @I expression } + B { 33 } +@Rowa + A { @I expression @Code "+" @I expression } + B { 32 } +@Rowa + A { @Code "+" @I expression } + B { 32 } +@Rowa + A { @Code "if cond {" @I boolean @Code "} then {" @I expression +@Code "} else {" @I expression @Code "}" } +} +A @Eq { non - } immediately followed by a digit or decimal point is +always taken to be a minus sign, never a subtraction. The left +parameter of @Code "exp" and @Code "log" is the base of the +exponentiation and logarithm respectively; @Code "idiv" is integer +division; and @Code "rand" returns a uniform random integer lying between +its two parameters (inclusive). Now a @I sequence is zero or more of +the following: +@ID @Tab + vmargin { 0.5vx } + @Fmta { @Col A } +{ +@Rowa + A { 2c @Wide "@" (within {@Code xticks}, {@Code yticks}, and {@Code rticks} only) } +@Rowa + A { 2c @Wide { ({@I label}) } (within {@Code xticks}, {@Code yticks}, and {@Code rticks} only) } +@Rowa + A { @I expression } +@Rowa + A { @Code "xloop from {" @I expression @Code "} to {" @I expression +@Code "} by {" @I expression @Code "} do {" @I sequence @Code "}" } +@Rowa + A { @Code "yloop from {" @I expression @Code "} to {" @I expression +@Code "} by {" @I expression @Code "} do {" @I sequence @Code "}" } +@Rowa + A { @Code "zloop from {" @I expression @Code "} to {" @I expression +@Code "} by {" @I expression @Code "} do {" @I sequence @Code "}" } +@Rowa + A { @Code "if cond {" @I boolean @Code "} then {" @I sequence +@Code "} else {" @I sequence @Code "}" } +} +The @Code "by" part of the loop symbols is optional with default +value 1; the @Code "else" part of @Code "if" is optional with +default value equal to the empty sequence. A @I boolean is any one of +the following things, again shown in decreasing precedence order, with +the precedence at right: +@ID @Tab + vmargin { 0.5vx } + @Fmta { @Col A ! @Col ! @Col B } +{ +@Rowa + A { @Code true } +@Rowa + A { @Code false } +@Rowa + A { @Code "{" @I boolean @Code "}" } +@Rowa + A { @I expression @Code = @I expression } + B { 30 } +@Rowa + A { @I expression @Code != @I expression } + B { 30 } +@Rowa + A { @I expression @Code < @I expression } + B { 30 } +@Rowa + A { @I expression @Code <= @I expression } + B { 30 } +@Rowa + A { @I expression @Code > @I expression } + B { 30 } +@Rowa + A { @I expression @Code >= @I expression } + B { 30 } +@Rowa + A { @Code not @I boolean } + B { 25 } +@Rowa + A { @I boolean @Code and @I boolean } + B { 24 } +@Rowa + A { @I boolean @Code xor @I boolean } + B { 23 } +@Rowa + A { @I boolean @Code or @I boolean } + B { 22 } +@Rowa + A { @Code "if cond {" @I boolean @Code "} then {" @I boolean +@Code "} else {" @I boolean @Code "}" } +} +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_tick b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_tick new file mode 100755 index 0000000000000..f6079cf2b0cc8 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/gra_tick @@ -0,0 +1,205 @@ +@Section + @Title { Ticks and labels } + @Tag { ticks } +@Begin +@PP +@I Ticks are the short lines that mark off intervals along the axes, and +ticks.graph @Index { ticks in graphs } +labels.graph @Index { labels in graphs } +@I labels are the numbers appearing near the ticks (not to be confused +with captions). {@Code "@Graph"} produces ticks and labels automatically +with some care, so it is probably best not to worry about them unless the +result is not pleasing, in which case there are options for controlling them. +@PP +One simple way to control the production of x ticks is with the +{@Code xmin}, {@Code xmax}, and {@Code xticksep} options to @Code +"@Graph". For example, +@ID @OneRow @Code { +"@Graph" +" xmin { 0 }" +" xmax { 5 }" +" xticksep { 0.5 }" +} +specifies that x values in the range 0 to 5 are to be expected, and that +a tick and label is to appear every 0.5 units along the x axis. One or +both of @Code "xmin" and @Code "xmax" may be omitted, in which case +suitable values will be inferred from the data as usual. +@PP +Alternatively, complete control over the appearance of x ticks and labels +is provided by the @Code "xticks" option. For example, +xticks.graph @Index { @Code "xticks" option to @Code "@Graph" } +@ID @OneRow @Code { +"@Graph" +" xticks { 0@ 5 10@ 15 20@ }" +} +specifies that x ticks are to be drawn at 0, 5, 10, 15, and 20. An +@Code "@" following a number indicates that a label is to be printed as +well, so the above example will produce labels at 0, 10, and 20. For +even finer control, @Code "@" may be replaced by a label enclosed +in parentheses: +@ID @OneRow @Code { +"@Graph" +" xticks { 1 (Democrat) 2 (Republican) 3 (Other) }" +} +As this example shows, a label does not have to be a number; it can be +any string of characters, including spaces and balanced parentheses; +but it may not be an arbitrary Lout object. +@PP +The character @Code "^" in a label indicates that the +remainder is to be treated as an exponent: +@ID @OneRow @Code { +"@Graph" +" xlog { 10 }" +" xticks { 1 (1) 10 (10) 100 (10^2) 1000 (10^3) 10000 (10^4) 100000 (10^5) }" +"{" +" @Data points { plus }" +" { 1 2.1 10 3.4 100 4.9 1000 6.1 10000 7.2 100000 7.6 }" +"}" +} +In fact, the labels inserted automatically when @Code xticks is omitted have +exponents when the axis is logarithmic, so @Code xticks is hardly necessary +in this example. Anyway the result is +@CD @Graph + height { 3 cm } + xlog { 10 } + xticks { 1 (1) 10 (10) 100 (10^2) 1000 (10^3) 10000 (10^4) 100000 (10^5) } +{ + @Data points { plus } + { + 1 2.1 10 3.4 100 4.9 1000 6.1 10000 7.2 100000 7.6 + } +} +Setting @Code "xticks" to empty produces no x ticks (this is not the +same as omitting {@Code xticks}). +@PP +Similar options control ticks and labels on the y axis: {@Code "ymin"}, +{@Code "ymax"}, {@Code "yticksep"}, and {@Code "yticks"}. There are +yticks.graph @Index { @Code "yticks" option to @Code "@Graph" } +also @Code "xticklength" and @Code "yticklength" options which set +the length of ticks: +@ID @OneRow @Code { +"@Graph" +" xticklength { 0.5 ft }" +" yticklength { 0.5 ft }" +} +shows the default values, half the current font size in both cases. +@PP +There is also an {@Code "rticks"} option which is similar to +{@Code "yticks"} except that the ticks it controls appear on the +right-hand side of the frame (this option is relevant only when +the @Code style option is {@Code frame}). Unlike @Code "xticks" and +{@Code "yticks"}, {@Code "rticks"} has empty default value, which is +why you don't usually see r ticks. They are most useful when overstriking +two graphs using @Code "@OverStrike" as explained earlier; one graph will +have y ticks in the usual way, the other will have r ticks and empty +y ticks: +@CD { + +@Graph + style { frame } + width { 6c } + height { 8c } + xextra { 0 cm } + yextra { 0 cm } + rightcaption { -90d @Rotate { Precipitation mm } } + rightgap { 3.0f } + hidecaptions { no } + xmin { 0 } + xmax { 12 } + ymin { 0 } + ymax { 450 } + xticks { } + xticklength { 0 cm } + rticks { 0@ 50@ 100@ 150@ 200@ 250@ 300@ 350@ 400@ 450@ } + yticks {} +{ + @Data + pairs { filledyhisto } + colour { blue } + linewidth { 1 pt } + { + 0 340 + 1 410 + 2 430 + 3 340 + 4 290 + 5 175 + 6 140 + 7 125 + 8 110 + 9 100 + 10 85 + 11 175 + 12 0 + } +} + +@OverStrike + +@Graph + style { frame } + width { 6c } + height { 8c } + xextra { 0 cm } + yextra { 0 cm } + leftcaption { 90d @Rotate { Temperature {@Degree}C } } + leftgap { 2.5f } + hidecaptions { no } + xmin { 0 } + xmax { 12 } + ymin { -30 } + ymax { 50 } + xticks { + 0.5 (J) + 1.5 (F) + 2.5 (M) + 3.5 (A) + 4.5 (M) + 5.5 (J) + 6.5 (J) + 7.5 (A) + 8.5 (S) + 9.5 (O) + 10.5 (N) + 11.5 (D) + } + xticklength { 0 cm } + yticks { -30@ -20@ -10@ 0@ 10@ 20@ 30@ 40@ } +{ + @Data + pairs { solid } + colour { red } + linewidth { 1 pt } + { + 0.0 24 + 1.0 24 + 2.0 25 + 3.0 26 + 4.0 26 + 5.0 26 + 6.0 26 + 7.0 27 + 8.0 26 + 9.0 27 + 10.0 28 + 11.0 28 + 12.0 26 + } +} + +} +Here the first graph has +@ID @Code { +"rticks { 0@ 50@ 100@ 150@ 200@ 250@ 300@ 350@ 400@ 450@ }" +"yticks {}" +} +for its ticks. +@PP +Lout has only a hazy idea of how much space is occupied by ticks and +labels. Unless @Code "xticks" is empty, Lout allows 1.7 times the +current font size below the graph for x ticks and labels, which is +usually about right; but it does not allow any space for y and r ticks and +labels since it has no idea how wide the labels will be. The discussion +of captions in Section {@NumberOf captions} explains how to use the +@Code "leftgap" and @Code "rightgap" options to work around this deficiency. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/johnson b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/johnson new file mode 100755 index 0000000000000..aaedd4cb5ccbe --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/johnson @@ -0,0 +1,19 @@ +@SysInclude { fig } +@SysInclude { diag } +@SysInclude { eq } +@SysInclude { tbl } +@SysInclude { doc } +@Doc @Text @Begin +@QD @Tbl + rule { yes } +{ +@Row format { @StartVSpan @Cell A | @StartHSpan @Cell B | @HSpan } + A { @SomeText } + B { @SomeText } +@Row format { @VSpan | @Cell B | @StartVSpan @Cell C } + B { @SomeText } + C { @SomeText } +@Row format { @StartHSpan @Cell A | @HSpan | @VSpan } + A { @SomeText } +} +@End @Text diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/johnson.out b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/johnson.out new file mode 100755 index 0000000000000..ead54efda1e13 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/johnson.out @@ -0,0 +1,66 @@ + + + + + + + ................................................... + . . . + . Johnson . Johnson suddenly uttered, in . + . suddenly . a strong determined tone, an . + . uttered, . apophegm, at which many will . + . in a strong . start: `Patriotism is the . + . determined . last refuge of a scoundrel.' . + . tone, an . . + . apophegm, at . . + . which many .................................. + . will start: . . . + . `Patriotism . Johnson . Johnson . + . is the last . suddenly . suddenly . + . refuge of a . uttered, . uttered, . + . scoundrel.' . in a strong . in a strong . + . . determined . determined . + . . tone, an . tone, an . + . . apophegm, at . apophegm, at . + . . which many . which many . + . . will start: . will start: . + . . `Patriotism . `Patriotism . + . . is the last . is the last . + . . refuge of a . refuge of a . + . . scoundrel.' . scoundrel.' . + . . . . + . . . . + .................................. . + . . . + . Johnson suddenly uttered, in . . + . a strong determined tone, an . . + . apophegm, at which many will . . + . start: `Patriotism is the . . + . last refuge of a scoundrel.' . . + . . . + . . . + ................................................... + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/letterbook b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/letterbook new file mode 100755 index 0000000000000..6d6b749aec399 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/letterbook @@ -0,0 +1,356 @@ +############################################################################### +# # +# Lout setup file for books # +# # +# Jeffrey H. Kingston # +# 5 February 1999 # +# # +############################################################################### + + +############################################################################### +# # +# @SysInclude commands for standard packages. # +# # +############################################################################### + + @SysInclude { langdefs } # language definitions + @SysInclude { bsf } # BasicSetup package + @SysInclude { dsf } # DocumentSetup package + @SysInclude { bookf } # BookSetup extension + + +############################################################################### +# # +# @Include command for reading personal definitions from current directory. # +# # +############################################################################### + + @Include { mydefs } + +############################################################################### +# # +# The @BasicSetup @Use clause - basics, lists, paragraphs, displays. # +# # +# To change the default value of any option, delete the # at the start of # +# its line and change the value between braces. # +# # +############################################################################### + +@Use { @BasicSetup + # @InitialFont { Times Base 12p } # initial font + # @InitialBreak {{adjust 1.2fx hyphen} @OrIfPlain {ragged 1fx nohyphen}} + # @InitialSpace { lout } # initial space style + # @InitialLanguage { English } # initial language + # @InitialColour { black } # initial colour + # @OptimizePages { No } # optimize page breaks? + # @HeadingFont { Bold } # font for @Heading + # @ParaGap { 1.3vx @OrIfPlain 1f } # gap between paragraphs + # @ParaIndent { 2.00f @OrIfPlain 5s } # first-line indent for @PP + # @DisplayGap { 1.00v @OrIfPlain 1f } # gap above, below displays + # @DisplayIndent { 2.00f @OrIfPlain 5s } # @IndentedDisplay indent + # @DefaultIndent { 0.5rt } # @Display indent + # @DisplayNumStyle { (num) } # style of display numbers + # @WideIndent { 4.00f @OrIfPlain 10s } # @WideTaggedList indent + # @VeryWideIndent { 8.00f @OrIfPlain 20s } # @VeryWideTaggedList indent + # @ListGap { 1.00v @OrIfPlain 1f } # gap between list items + # @ListIndent { 0s } # indent of list items + # @ListRightIndent { 0s } # right indent of list items + # @ListLabelWidth { 2.00f @OrIfPlain 5s } # width allowed for list tags + # @NumberSeparator { . } # separates nums like 2.3.7 +} + + +############################################################################### +# # +# The @DocumentSetup @Use clause - page layout plus figures, tables, etc. # +# # +# To change the default value of any option, delete the # at the start of # +# its line and change the value between braces. # +# # +############################################################################### + +@Use { @DocumentSetup + @PageType { Letter @OrIfPlain Other} # page type (width, height) + # @PageWidth { 80s } # page width if type Other + # @PageHeight { 66f } # page height if type Other + # @PageOrientation { Portrait } # Portrait, Landscape, etc. + # @PageBackground { } # background of each page + # @TopMargin { 2.5c @OrIfPlain 6f } # top margin of all pages + # @FootMargin { 2.5c @OrIfPlain 6f } # bottom margin of all pages + # @OddLeftMargin { 2.5c @OrIfPlain 10s } # left margin of odd pages + # @OddRightMargin { 2.5c @OrIfPlain 10s } # right margin of odd pages + # @EvenLeftMargin { 2.5c @OrIfPlain 10s } # left margin of even pages + # @EvenRightMargin { 2.5c @OrIfPlain 10s } # right margin of even pages + # @PageBoxType { None } # None Box CurveBox ShadowBox + # @PageBoxMargin { 1.00c } # page box margin + # @PageBoxLineWidth { } # page box line thickness + # @PageBoxPaint { none } # page box paint + # @PageBoxShadow { 0.60c } # shadow margin if ShadowBox + # @ColumnNumber { 1 } # number of columns (1 to 10) + # @ColumnGap { 1.00c @OrIfPlain 6s } # column gap + # @FigureLocation { PageTop } # default figure location + # @TableLocation { PageTop } # default table location + # @FigureFormat { @CC @Body } # default figure format + # @TableFormat { @CC @Body } # default table format + # @FigureWord { figure } # "Figure" word else anything + # @TableWord { table } # "Table" word else anything + # @FigureNumbers { Arabic } # method of numbering figures + # @TableNumbers { Arabic } # method of numbering tables + # @FigureCaptionPos { Below } # Above or Below + # @TableCaptionPos { Below } # Above or Below + # @CaptionFont { } # figure, table caption font + # @CaptionBreak { } # figure, table caption break + # @CaptionFormat { @B { number @DotSep @OneCol } } # figure, table caption format + # @MakeFigureContents { No } # list of figures at start + # @MakeTableContents { No } # list of tables at start + # @MakeContents { No } # make contents? Yes or No + @MakeContents { Yes } # make contents? Yes or No + # @ContentsGap { 0.20v @OrIfPlain 0f } # extra gap above minor entry + # @ContentsGapAbove { 0.80v @OrIfPlain 1f } # extra gap above major entry + # @ContentsGapBelow { 0.00v @OrIfPlain 0f } # extra gap below major entry + # @ContentsPartGapAbove { 1.00v @OrIfPlain 1f } # extra gap above `part' entry + # @ContentsPartGapBelow { 0.00v @OrIfPlain 0f } # extra gap below `part' entry + # @ContentsFormat { number @DotSep title } # contents entry format + # @ContentsLeader { .. } # leader symbol in contents + # @ContentsLeaderGap { 4s @OrIfPlain 2s } # gap between leaders + # @ContentsRightWidth { 3f @OrIfPlain 6s } # page numbers column width + # @MakeReferences { Yes } # make references? Yes or No + # @RefCiteStyle { [cite] } # citation style + # @RefCiteLabels { @RefNum } # citation items + # @RefNumbers { Arabic } # reference numbers + # @RefListFormat { Labels } # NoLabels, Labels, etc. + # @RefListLabels { [@RefNum] } # ref list label format + # @RefListTitle { references } # title of reference list + # @ChapRefListTitle { references } # title of chapter ref list + # @RefListIndent { 0s } # indent to left of labels + # @RefListRightIndent { 0s } # indent to right of items + # @RefListGap { @ListGap } # gap between ref list items + # @RefListFont { } # font used in reference list + # @RefListBreak { } # break style of ref list + # @RefListLabelWidth { @ListLabelWidth } # Labels column width + # @RefListSortKey { @Tag } # sorting key + # @MakeIndex { No } # make index? Yes or No + @MakeIndex { Yes } # make index? Yes or No + # @IndexFont { } # index entries font + # @IndexBreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # and break + # @IndexColumnNumber { 2 } # index columns (1 to 10) + # @IndexColumnGap { 1.00c @OrIfPlain 6s } # index column gap + # @MakeIndexA { No } # make index A? Yes or No + # @IndexAFont { } # index A entries font + # @IndexABreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # and break + # @IndexAColumnNumber { 2 } # index A columns (1 to 10) + # @IndexAColumnGap { 1.00c @OrIfPlain 6s } # index A column gap + # @MakeIndexB { No } # make index B? Yes or No + # @IndexBFont { } # index B entries font + # @IndexBBreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # and break + # @IndexBColumnNumber { 2 } # index B columns (1 to 10) + # @IndexBColumnGap { 1.00c @OrIfPlain 6s } # index B column gap + # @TopGap { 0.75c @OrIfPlain 2f } # gap between figures + # @MidGap { 0.75c @OrIfPlain 2f } # gap above/below body text + # @FootNoteNumbers { Arabic } # footnote numbers + # @FootNoteThrough { No } # numbered through chapter? + # @FootNoteLocation { ColFoot } # where the footnote appears + # @FootNoteFont { 0.80f } # font for footnotes + # @FootNoteBreak { 1.2fx @OrIfPlain 1fx } # break for footnotes + # @FootLen { 2.00c @OrIfPlain 10s } # length of footnote line + # @FootAboveGap { @DisplayGap } # gap above footnote line + # @FootGap { 0.20c @OrIfPlain 1fx } # gap between footnotes + # @MarginNoteFont { 0.80f } # font of margin notes + # @MarginNoteBreak { ragged 1.10fx } # break style of margin notes + # @MarginNoteHGap { 0.5c } # horizontal gap to notes + # @MarginNoteVGap { @DisplayGap } # min vertical gap between + # @MarginNoteWidth { 1.50c } # width of margin notes + # @EndNoteNumbers { Arabic } # endnote numbers + # @EndNoteFont { 0.80f } # font of endnotes + # @EndNoteBreak { 1.2fx @OrIfPlain 1fx } # break for endnotes + # @EndNoteGap { 0.20c @OrIfPlain 1f } # gap between endnotes + # @TheoremWord { theorem } # "Theorem" word, etc. + # @DefinitionWord { definition } # "Definition" word, etc. + # @ClaimWord { claim } # "Claim" word, etc. + # @PropositionWord { proposition } # "Proposition" word, etc. + # @LemmaWord { lemma } # "Lemma" word, etc. + # @CorollaryWord { corollary } # "Corollary" word, etc. + # @ExampleWord { example } # "Example" word, etc. + # @ProofWord { proof } # "Proof" word, etc. + # @PageHeaders { Simple } # None Simple Titles NoTitles + @PageHeaders { Titles } # None Simple Titles NoTitles + # @PageNumbers { Arabic } # page numbers + # @FirstPageNumber { 1 } # number of first page + # @IntroPageNumbers { Roman } # intro page numbers + # @IntroFirstPageNumber{ 1 } # number of first intro page + # @StructPageNums { No } # make structured page numbers + + # @OddTop { @Centre{- @PageNum -} } # Simple page headers + # @OddFoot { @Null } + # @EvenTop { @Centre{- @PageNum -} } + # @EvenFoot { @Null } + # @StartOddTop { @Null } + # @StartOddFoot { @Null } + # @StartEvenTop { @Null } + # @StartEvenFoot { @Null } + # @IntroOddTop { @Null } + # @IntroOddFoot { @Centre @PageNum } + # @IntroEvenTop { @Null } + # @IntroEvenFoot { @Centre @PageNum } + # @IntroStartOddTop { @Null } + # @IntroStartOddFoot { @Null } + # @IntroStartEvenTop { @Null } + # @IntroStartEvenFoot { @Null } + + # Titles, NoTitles headers + # @RunningOddTop { @I {@MinorNum @DotSep @MinorTitle} @Right @B @PageNum } + # @RunningOddFoot { @Null } + # @RunningEvenTop { @B @PageNum @Right @I {@MajorNum @DotSep @MajorTitle} } + # @RunningEvenFoot { @Null } + # @RunningStartOddTop { @Null } + # @RunningStartOddFoot { @Centre { Bold 0.8f } @Font @PageNum } + # @RunningStartEvenTop { @Null } + # @RunningStartEvenFoot { @Centre { Bold 0.8f } @Font @PageNum } + # @RunningIntroOddTop { @Null } + # @RunningIntroOddFoot { @Right @PageNum } + # @RunningIntroEvenTop { @Null } + # @RunningIntroEvenFoot { @PageNum } + # @RunningIntroStartOddTop { @Null } + # @RunningIntroStartOddFoot { @Null } + # @RunningIntroStartEvenTop { @Null } + # @RunningIntroStartEvenFoot { @Null } +} + + +############################################################################### +# # +# The @BookSetup @Use clause - options specific to books. # +# # +############################################################################### + +@Use { @BookSetup + # @TitlePageFont { Helvetica Base} # title page font (not size) + # @SeparateIntroNumbering { Yes } # separate intro page numbers + # @PrefaceAfterContents { No } # Yes or No + # @ChapterStartPages { Any } # Any, Odd, or Even + # @ReferencesBeforeAppendices { No } # references before appendices + # @PrefaceWord { preface } # word for "Preface" + # @ContentsWord { contents } # word for "Contents" + # @FigureListWord { figurelist } # word for "List of Figures" + # @TableListWord { tablelist } # word for "List of Tables" + # @IntroductionWord { introduction } # word for "Introduction" + # @ChapterWord { chapter } # word for "Chapter" + # @AppendixWord { appendix } # word for "Appendix" + # @IndexWord { index } # word for "Index" + # @IndexAWord { index } # word for "Index" (A) + # @IndexBWord { index } # word for "Index" (B) + # @ChapterNumbers { Arabic } # kind of chapter numbers + # @FirstChapterNumber { 1 } # first chapter number (Arabic) + # @SectionNumbers { Arabic } # kind of section numbers + # @FirstSectionNumber { 1 } # first section number (Arabic) + # @SubSectionNumbers { Arabic } # kind of subsection numbers + # @FirstSubSectionNumber { 1 } # first subsect number (Arabic) + # @SubSubSectionNumbers { Arabic } # kind of sub-subs. numbers + # @FirstSubSubSectionNumber { 1 } # first sub-sub number (Arabic) + # @AppendixNumbers { UCAlpha } # kind of appendix numbers + # @FirstAppendixNumber { 1 } # first appendix num (Arabic) + # @SubAppendixNumbers { Arabic } # kind of subappendix numbers + # @FirstSubAppendixNumber { 1 } # first sub-app num (Arabic) + # @SubSubAppendixNumbers { Arabic } # kind of sub-subapp. numbers + # @FirstSubSubAppendixNumber { 1 } # first sub-sub num (Arabic) + # @PartHeadingFont { Helvetica Base 2.50f } # part head font + # @PartHeadingBreak { clines 1.2fx nohyphen } # part head break + # @PartHeadingFormat { @CD number @DP @CD title } # part head format + # @ChapterHeadingFont { Bold 2.00f } # chapter head font + # @ChapterHeadingBreak { ragged 1.2fx nohyphen } # chapter head break + # @ChapterHeadingFormat { number @DotSep title } # format of chap. head + # @SectionHeadingFont { Bold } # section head font + # @SectionHeadingBreak { ragged 1.2fx nohyphen } # section head break + # @SectionHeadingFormat { number @DotSep title } # section head fmt + # @SubSectionHeadingFont { Bold } # subs. head font + # @SubSectionHeadingBreak { ragged 1.2fx nohyphen } # subs. head break + # @SubSectionHeadingFormat { number @DotSep title } # subs. head fmt + # @SubSubSectionHeadingFont { Slope } # sub-subs. head font + # @SubSubSectionHeadingBreak { ragged 1.2fx nohyphen } # sub-subs. head break + # @SubSubSectionHeadingFormat { number @DotSep title } # sub-subs. head fmt + # @AppendixHeadingFont { Bold 2.00f } # appendix head font + # @AppendixHeadingBreak { ragged 1.2fx nohyphen } # appendix head break + # @AppendixHeadingFormat { number @DotSep title } # appendix head fmt + # @SubAppendixHeadingFont { Bold } # subapp. head font + # @SubAppendixHeadingBreak { ragged 1.2fx nohyphen } # subapp. head break + # @SubAppendixHeadingFormat { number @DotSep title } # subapp. head fmt + # @SubSubAppendixHeadingFont { Slope } # sub-suba. head font + # @SubSubAppendixHeadingBreak { ragged 1.2fx nohyphen } # sub-suba. head break + # @SubSubAppendixHeadingFormat{ number @DotSep title } # sub-suba. head fmt + # @AbovePartGap { 4.00f } # gap above part title + # @AboveChapterGap { 3.00f } # above major titles + # @SectionGap { 2.0v @OrIfPlain 3f } # between sections + # @SubSectionGap { 1.5v @OrIfPlain 2f } # between subsects + # @SubSubSectionGap { 1.5v @OrIfPlain 2f } # between sub-subs. + # @SubAppendixGap { 2.0v @OrIfPlain 3f } # between subappendices + # @SubSubAppendixGap { 1.5v @OrIfPlain 2f } # between sub-subapps + # @IntroductionInContents { Yes } # add introduction to contents + # @PartInContents { Yes } # add parts to contents + # @ChapterInContents { Yes } # add chapters to contents + # @SectionInContents { Yes } # add sections to contents + # @SubSectionInContents { Yes } # add subsections to contents + # @SubSubSectionInContents { No } # add sub-subsects to contents + # @AppendixInContents { Yes } # add appendices to contents + # @SubAppendixInContents { Yes } # add subappendices to contents + # @SubSubAppendixInContents { No } # add sub-subapps to contents + # @ReferencesInContents { Yes } # add ref. section to contents + # @IndexInContents { Yes } # add index to contents + # @IndexAInContents { Yes } # add index A to contents + # @IndexBInContents { Yes } # add index B to contents + # @PartContentsIndent { 0.5rt } # indent of part contents entry + # @ChapterNumInTheorems { Yes } # theorem num has chapter num + # @SectionNumInTheorems { No } # theorem num has section num + # @SubSectionNumInTheorems { No } # theorem num has subsect num + # @SubSubSectionNumInTheorems { No } # theorem num has sub-ss. num + # @AppendixNumInTheorems { Yes } # theorem num has appendix num + # @SubAppendixNumInTheorems { No } # theorem num has sub-app num + # @SubSubAppendixNumInTheorems{ No } # theorem num has sub-sa. num + # @ChapterNumInDisplays { Yes } # display num has chapter num + # @SectionNumInDisplays { Yes } # display num has section num + # @SubSectionNumInDisplays { No } # display num has subsect num + # @SubSubSectionNumInDisplays { No } # display num has sub-ss. num + # @AppendixNumInDisplays { Yes } # display num has appendix num + # @SubAppendixNumInDisplays { Yes } # display num has sub-app num + # @SubSubAppendixNumInDisplays{ No } # display num has sub-sa. num + # @ChapterNumInFigures { Yes } # figure num has chapter num + # @SectionNumInFigures { No } # figure num has section num + # @SubSectionNumInFigures { No } # figure num has subsect num + # @SubSubSectionNumInFigures { No } # figure num has sub-ss. num + # @AppendixNumInFigures { Yes } # figure num has appendix num + # @SubAppendixNumInFigures { No } # figure num has sub-app num + # @SubSubAppendixNumInFigures { No } # figure num has sub-sa. num + # @ChapterNumInTables { Yes } # table num has chapter num + # @SectionNumInTables { No } # table num has section num + # @SubSectionNumInTables { No } # table num has subsect num + # @SubSubSectionNumInTables { No } # table num has sub-ss. num + # @AppendixNumInTables { Yes } # table num has appendix num + # @SubAppendixNumInTables { No } # table num has sub-app num + # @SubSubAppendixNumInTables { No } # table num has sub-sa. num + # @SectionNumInRunners { Yes } # runners have section num + # @SubSectionNumInRunners { No } # runners have subsect num + # @SubSubSectionNumInRunners { No } # runners have sub-ss. num + # @SubAppendixNumInRunners { Yes } # runners have sub-app num + # @SubSubAppendixNumInRunners { No } # runners have sub-sa. num + # @PrefacePrefix { } # for structured page nums + # @ContentsPrefix { } # for structured page nums + # @FigureContentsPrefix { } # for structured page nums + # @TableContentsPrefix { } # for structured page nums + # @IntroductionPrefix { } # for structured page nums + # @ChapterPrefix { } # for structured page nums + # @AppendixPrefix { } # for structured page nums + # @ReferencesPrefix { } # for structured page nums + # @IndexPrefix { } # for structured page nums + # @IndexAPrefix { } # for structured page nums + # @IndexBPrefix { } # for structured page nums +} + + +############################################################################### +# # +# @Database (and @SysDatabase) clauses go here. # +# # +############################################################################### + +@SysDatabase @FontDef { fontdefs } # fond definitions +@SysDatabase @RefStyle { refstyle } # reference printing styles diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/lout.li b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/lout.li new file mode 100755 index 0000000000000..fa33e0a3b4070 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/lout.li @@ -0,0 +1,5089 @@ +00 Basser Lout Version 3.24 (October 2000) database index file +00symbol 1 @BasicSetup @DocumentSetup @BookSetup @Book +00symbol 10 @BasicSetup @DocumentSetup @FigurePrefixMarker +00symbol 11 @BasicSetup @DocumentSetup @FigureCounterMarker +00symbol 12 @BasicSetup @DocumentSetup @TablePrefixMarker +00symbol 13 @BasicSetup @DocumentSetup @TableCounterMarker +00symbol 14 @BasicSetup @DocumentSetup @FootNoteCounterMarker +00symbol 15 @BasicSetup @PageMarker +00symbol 16 @BasicSetup @DocumentSetup @Runner +00symbol 17 @BasicSetup @DocumentSetup @BookSetup @Preface +00symbol 18 @BasicSetup @DocumentSetup @RawIndex +00symbol 19 @BasicSetup @DocumentSetup @Index +00symbol 2 @BasicSetup @DocumentSetup @TheoremCounterMarker +00symbol 21 @BasicSetup @DocumentSetup @BookSetup @Book @ContentsPart +00symbol 22 @BasicSetup @DocumentSetup @BookSetup @ChapterList +00symbol 23 @BasicSetup @DocumentSetup @BookSetup @Chapter +00symbol 24 @BasicSetup @NumberMarker +00symbol 25 @BasicSetup @DocumentSetup @BookSetup @SectionList +00symbol 26 @BasicSetup @DocumentSetup @BookSetup @Chapter @Section +00symbol 27 @BasicSetup @DocumentSetup @FootNote +00symbol 28 @BasicSetup listitem +00symbol 29 @BasicSetup @DocumentSetup @Theorem +00symbol 3 @BasicSetup @DocumentSetup @DefinitionCounterMarker +00symbol 30 @BasicSetup @DocumentSetup @Figure +00symbol 31 @BasicSetup @ANDisp +00symbol 32 @BasicSetup @DocumentSetup @BookSetup @AppendixList +00symbol 33 @BasicSetup @DocumentSetup @BookSetup @Appendix +00symbol 35 @BasicSetup @DocumentSetup @BookSetup @Book @ReferencesPart +00symbol 36 @BasicSetup @DocumentSetup @BookSetup @Book @IndexPart +00symbol 4 @BasicSetup @DocumentSetup @ClaimCounterMarker +00symbol 5 @BasicSetup @DocumentSetup @PropositionCounterMarker +00symbol 6 @BasicSetup @DocumentSetup @LemmaCounterMarker +00symbol 7 @BasicSetup @DocumentSetup @CorollaryCounterMarker +00symbol 8 @BasicSetup @DocumentSetup @ExampleCounterMarker +00symbol 9 @BasicSetup @NumDispCounterMarker +00target 20 @BasicSetup @DocumentSetup @ContentsPlace +00target 34 @BasicSetup @DocumentSetup @RefPlace +00target 37 @BasicSetup @DocumentSetup @IndexList +020&all&1 00002 00092 1579 108 preface +020&all&1 00003 04927 1514 108 bas +020&all&1 00004 04928 1583 112 bas_star +020&all&1 00005 04929 1639 112 bas_objs +020&all&1 00006 04930 1592 112 bas_spac +020&all&1 00007 04931 1598 112 bas_char +020&all&1 00008 04932 1585 112 bas_empt +020&all&1 00009 04933 1593 112 bas_font +020&all&1 00010 04934 1582 112 bas_head +020&all&1 00011 04935 1656 112 bas_par1 +020&all&1 00012 04936 1589 112 bas_par2 +020&all&1 00013 04937 1597 112 bas_line +020&all&1 00014 04938 1571 112 bas_hyph +020&all&1 00015 04939 1606 112 bas_unde +020&all&1 00016 04940 1598 112 bas_date +020&all&1 00017 04941 1629 112 bas_lang +020&all&1 00018 04942 1607 112 bas_supe +020&all&1 00019 04943 1594 112 bas_verb +020&all&1 00020 04944 1594 112 bas_drop +020&all&1 00021 04945 1631 112 bas_conv +020&all&1 00022 04946 1567 108 str +020&all&1 00023 04947 1604 112 str_disp +020&all&1 00024 04948 1580 112 str_list +020&all&1 00025 04949 1639 112 str_foot +020&all&1 00026 04950 1677 112 str_marg +020&all&1 00027 04951 1818 116 str_theo +020&all&1 00028 04952 1621 112 str_figs +020&all&1 00029 04953 1766 114 str_larg +020&all&1 00030 04954 1627 112 str_cros +020&all&1 00031 04955 1626 112 str_cont +020&all&1 00032 04956 1596 112 str_indx +020&all&1 00033 04957 1617 112 str_colu +020&all&1 00034 04958 1645 112 str_defs +020&all&1 00035 04959 1525 108 typ +020&all&1 00036 04960 1611 112 typ_ordi +020&all&1 00037 04961 1604 112 typ_repo +020&all&1 00038 04962 1565 112 typ_book +020&all&1 00039 04963 1626 112 typ_over +020&all&1 00040 04964 1650 112 typ_illu +020&all&1 00041 04965 1600 112 typ_plai +020&all&1 00042 04966 1642 112 typ_apdf +020&all&1 00043 04967 1637 112 typ_orga +020&all&1 00044 04968 1553 108 fmt +020&all&1 00045 04969 1593 112 fmt_setu +020&all&1 00046 04970 1646 112 fmt_size +020&all&1 00047 04971 1673 112 fmt_marg +020&all&1 00048 04972 1645 112 fmt_head +020&all&1 00049 04973 1514 108 ref +020&all&1 00050 04974 1643 112 ref_sett +020&all&1 00051 04975 1582 112 ref_cite +020&all&1 00052 04976 1722 114 ref_labe +020&all&1 00053 04977 1621 112 ref_entr +020&all&1 00054 04978 1691 112 ref_chan +020&all&1 00055 04979 1655 112 ref_crea +020&all&1 00056 04980 1502 108 tbl +020&all&1 00057 04981 1594 112 tbl_intr +020&all&1 00058 04982 1628 112 tbl_cell +020&all&1 00059 04983 1626 112 tbl_rows +020&all&1 00060 04984 1569 112 tbl_rule +020&all&1 00061 04985 1575 112 tbl_marg +020&all&1 00062 04986 1606 112 tbl_widt +020&all&1 00063 04987 1604 112 tbl_inde +020&all&1 00064 04988 1594 112 tbl_alig +020&all&1 00065 04989 1614 112 tbl_span +020&all&1 00066 04990 1620 112 tbl_mark +020&all&1 00067 04991 1598 112 tbl_mult +020&all&1 00068 04992 1598 112 tbl_plai +020&all&1 00069 04993 1618 112 tbl_setu +020&all&1 00070 04994 1600 112 tbl_summ +020&all&1 00071 04995 1526 108 equ +020&all&1 00072 04996 1651 112 equ_intr +020&all&1 00073 04997 1576 112 equ_symb +020&all&1 00074 04998 1590 112 equ_vert +020&all&1 00075 04999 1636 112 equ_spac +020&all&1 00076 05000 1630 112 equ_disp +020&all&1 00077 05001 1705 112 equ_defs +020&all&1 00078 05002 1636 112 equ_summ +020&all&1 00079 05003 1639 112 equ_tequ +020&all&1 00080 05004 1532 108 bgr +020&all&1 00081 05005 1572 112 bgr_colo +020&all&1 00082 05006 1589 112 bgr_boxs +020&all&1 00083 05007 1597 112 bgr_outl +020&all&1 00084 05008 1588 112 bgr_rota +020&all&1 00085 05009 1580 112 bgr_scal +020&all&1 00086 05010 1619 112 bgr_incl +020&all&1 00087 05011 1518 108 dia +020&all&1 00088 05012 1594 112 dia_intr +020&all&1 00089 05013 1573 112 dia_node +020&all&1 00090 05014 1573 112 dia_link +020&all&1 00091 05015 1570 112 dia_tags +020&all&1 00092 05016 1576 112 dia_labe +020&all&1 00093 05017 1591 112 dia_posi +020&all&1 00094 05018 1573 112 dia_tree +020&all&1 00095 05019 1598 112 dia_synt +020&all&1 00096 05020 1576 112 dia_erro +020&all&1 00097 05021 1636 112 dia_defi +020&all&1 00098 05022 1670 112 dia_geom +020&all&1 00099 05023 1579 112 dia_summ +020&all&1 00100 05024 1502 108 gra +020&all&1 00101 05025 1585 112 gra_intr +020&all&1 00102 05026 1647 112 gra_over +020&all&1 00103 05027 1578 112 gra_capt +020&all&1 00104 05028 1581 112 gra_tick +020&all&1 00105 05029 1614 112 gra_data +020&all&1 00106 05030 1630 112 gra_plac +020&all&1 00107 05031 1649 112 gra_func +020&all&1 00108 05032 1589 112 gra_keys +020&all&1 00109 05033 1572 112 gra_erro +020&all&1 00110 05034 1580 112 gra_summ +020&all&1 00111 05035 1528 108 prg +020&all&1 00112 05036 1678 112 prg_lone +020&all&1 00113 05037 1691 112 prg_embe +020&all&1 00114 05038 1647 112 prg_opti +020&all&1 00115 05039 1678 112 prg_chan +020&all&1 00116 05040 1633 112 prg_tabs +020&all&1 00117 05041 1663 112 prg_form +020&all&1 00118 05042 1659 112 prg_comm +020&all&1 00119 05043 1667 112 prg_prog +020&all&1 00120 05044 1668 112 prg_pipe +020&all&1 00121 05045 1603 112 prg_erro +020&all&1 00122 05046 1617 112 prg_perl +020&all&1 00123 05047 1608 108 pascal +020&all&1 00124 05048 1623 108 ap_qck +020&all&1 00125 05049 1539 108 ap_byp +020&all&1 00126 05050 473277 31295 all +020&all&1 00127 05051 478339 31622 all +034&all&1 jensen1975pascal 04144 4861 326 pascal +034&all&1 kernighan1975eqn 04123 8677 749 preface +034&all&1 kingston1993lout.design 04121 7229 647 preface +034&all&1 kingston1993lout.design 04136 3816 277 ref_cite +034&all&1 kingston1994lout.overheads 04122 7369 658 preface +034&all&1 kingston1995lout.expert 04120 7023 631 preface +034&all&1 kingston1995lout.expert 04126 2605 179 bas_char +034&all&1 kingston1995lout.expert 04127 4962 359 bas_font +034&all&1 kingston1995lout.expert 04128 2912 199 bas_line +034&all&1 kingston1995lout.expert 04129 7049 498 str_disp +034&all&1 kingston1995lout.expert 04130 13660 934 typ_book +034&all&1 kingston1995lout.expert 04134 2836 199 ref_cite +034&all&1 kingston1995lout.expert 04135 3599 258 ref_cite +034&all&1 kingston1995lout.expert 04137 2335 153 ref_chan +034&all&1 kingston1995lout.expert 04139 2569 179 equ_vert +034&all&1 kingston1995lout.expert 04141 3092 219 bgr_colo +034&all&1 knuth1984tex 04125 10063 853 preface +034&all&1 knuth1984tex 04140 2310 153 equ_spac +034&all&1 lamport1986latex 04133 5799 410 ref +034&all&1 meyer1992eiffel 04142 2308 153 prg_prog +034&all&1 meyer1992eiffel 04143 2546 170 prg_prog +034&all&1 reid1980scribe 04124 8810 760 preface +034&all&1 reid1980scribe 04132 4859 337 ref +034&all&1 strunk1979style 04138 4123 270 ref_chan +034&all&1 vanleunen1992handbook 04131 4721 326 ref +037&all&1 // 04503 3252 226 typ_ordi +037&all&1 abbreviations. 04572 3628 265 typ_book +037&all&1 abstract. 04549 5263 368 typ_repo +037&all&1 accented 04266 13480 885 bas_char +037&all&1 al. 04390 11062 803 str_list +037&all&1 alabel. 04837 2706 186 dia_labe +037&all&1 aligned.columns 04757 2418 166 tbl_alig +037&all&1 aligned.displays 04787 2796 186 equ_disp +037&all&1 aligned.equations 04788 3112 206 equ_disp +037&all&1 aligneddisplay. 04792 5618 390 equ_disp +037&all&1 alphalist. 04389 10784 783 str_list +037&all&1 amberlight 04760 2795 186 tbl_mark +037&all&1 and. 04741 4622 306 ref_crea +037&all&1 angleto. 04851 2535 166 dia_geom +037&all&1 anode.fig 04821 2650 186 dia_node +037&all&1 anotherfootnote. 04423 3550 238 str_foot +037&all&1 appendix. 04524 9874 666 typ_ordi +037&all&1 appendix.books 04586 8038 564 typ_book +037&all&1 appendix.ordinary 04525 10170 687 typ_ordi +037&all&1 appendix.reports 04559 8598 587 typ_repo +037&all&1 arrow. 04835 2684 186 dia_link +037&all&1 article.ref.type 04715 4532 286 ref_entr +037&all&1 atangle. 04852 2867 186 dia_geom +037&all&1 axes. 04860 2818 186 gra_over +037&all&1 axis 04779 2381 166 equ_vert +037&all&1 b 04192 2108 138 preface +037&all&1 b. 04273 3225 226 bas_font +037&all&1 base. 04280 5191 377 bas_font +037&all&1 basic.layout 04636 5311 366 fmt_setu +037&all&1 beginaligneddisplays 04793 5924 410 equ_disp +037&all&1 beginappendices. 04526 10486 708 typ_ordi +037&all&1 beginappendices.books 04587 8355 586 typ_book +037&all&1 beginappendices.ordinary 04527 10810 729 typ_ordi +037&all&1 beginappendices.reports 04560 8935 609 typ_repo +037&all&1 beginchapters. 04575 4497 325 typ_book +037&all&1 beginoverheads. 04609 5172 333 typ_over +037&all&1 beginsections. 04508 4715 330 typ_ordi +037&all&1 beginsections.books 04578 5416 388 typ_book +037&all&1 beginsections.ordinary 04509 5029 351 typ_ordi +037&all&1 beginsections.reports 04551 5889 411 typ_repo +037&all&1 beginsubappendices. 04532 12409 834 typ_ordi +037&all&1 beginsubappendices.books 04590 9333 652 typ_book +037&all&1 beginsubappendices.ordinary 04533 12745 855 typ_ordi +037&all&1 beginsubappendices.reports 04563 9943 675 typ_repo +037&all&1 beginsubsections. 04514 6593 456 typ_ordi +037&all&1 beginsubsections.books 04581 6379 454 typ_book +037&all&1 beginsubsections.ordinary 04515 6920 477 typ_ordi +037&all&1 beginsubsections.reports 04554 6879 477 typ_repo +037&all&1 beginsubsubappendices. 04538 14395 960 typ_ordi +037&all&1 beginsubsubappendices.books 04593 10338 718 typ_book +037&all&1 beginsubsubappendices.ordinary 04539 14743 981 typ_ordi +037&all&1 beginsubsubappendices.reports 04566 10978 741 typ_repo +037&all&1 beginsubsubsections. 04520 8538 582 typ_ordi +037&all&1 beginsubsubsections.books 04584 7369 520 typ_book +037&all&1 beginsubsubsections.ordinary 04521 8877 603 typ_ordi +037&all&1 beginsubsubsections.reports 04557 7899 543 typ_repo +037&all&1 bezier.curve 04849 2760 186 dia_defi +037&all&1 bi. 04275 3728 266 bas_font +037&all&1 binary.op 04783 3867 265 equ_spac +037&all&1 bl. 04398 13314 963 str_list +037&all&1 blabel. 04838 3033 206 dia_labe +037&all&1 blue. 04893 5581 365 prg +037&all&1 bnode.fig 04822 2973 206 dia_node +037&all&1 bold. 04282 5758 417 bas_font +037&all&1 boldslope. 04283 6049 437 bas_font +037&all&1 book. 04570 2591 186 typ_book +037&all&1 book.ref.type 04709 2453 166 ref_entr +037&all&1 books. 04569 2336 166 typ_book +037&all&1 booksetup. 04599 12132 841 typ_book +037&all&1 boundarymarks 04652 5453 368 fmt_marg +037&all&1 box. 04801 2366 166 bgr_boxs +037&all&1 box.fig 04824 3615 246 dia_node +037&all&1 braces. 04241 2989 206 bas_spac +037&all&1 break. 04306 3020 208 bas_par2 +037&all&1 bsf.file 04632 4185 286 fmt_setu +037&all&1 bullet 04244 5210 298 bas_char +037&all&1 bulletlist. 04397 13033 943 str_list +037&all&1 c 04193 2306 158 preface +037&all&1 c. 04892 5301 345 prg +037&all&1 captions. 04448 3033 214 str_figs +037&all&1 captions.figures 04449 3337 235 str_figs +037&all&1 captions.graphs 04863 2390 167 gra_capt +037&all&1 cd. 04357 5761 406 str_disp +037&all&1 cdot 04250 7562 466 bas_char +037&all&1 cell.option 04749 2462 166 tbl_cell +037&all&1 center. 04667 6780 468 fmt_head +037&all&1 centereddisplay. 04351 4149 286 str_disp +037&all&1 centeredlist. 04375 6416 474 str_list +037&all&1 centimetres. 04231 3255 226 bas_objs +037&all&1 centre. 04666 6507 448 fmt_head +037&all&1 centred.entries 04755 2433 166 tbl_inde +037&all&1 centreddisplay. 04350 3845 266 str_disp +037&all&1 centredlist. 04374 6122 454 str_list +037&all&1 chap.cite 04698 3127 225 ref_cite +037&all&1 chap.ref 04702 4549 332 ref_cite +037&all&1 chapreflisttitle.sym 04725 4960 328 ref_chan +037&all&1 chapter. 04574 4216 305 typ_book +037&all&1 chapter.start.pages 04601 12733 881 typ_book +037&all&1 char. 04265 13189 865 bas_char +037&all&1 characters. 04242 2404 166 bas_char +037&all&1 cherry.l 04219 8178 716 preface +037&all&1 cite. 04697 2647 186 ref_cite +037&all&1 citing 04696 2380 166 ref_cite +037&all&1 cl. 04376 6703 494 str_list +037&all&1 clabel. 04839 3360 226 dia_labe +037&all&1 claim. 04441 5145 328 str_theo +037&all&1 clines. 04316 7086 492 bas_par2 +037&all&1 cnode.fig 04823 3296 226 dia_node +037&all&1 cnp. 04301 5173 366 bas_par1 +037&all&1 color. 04799 2617 186 bgr_colo +037&all&1 colour. 04798 2347 166 bgr_colo +037&all&1 column.width 04494 4105 285 str_colu +037&all&1 column.width.pages 04495 4388 306 str_colu +037&all&1 columngap. 04493 3806 265 str_colu +037&all&1 columnnumber. 04492 3514 245 str_colu +037&all&1 columns. 04490 2411 166 str_colu +037&all&1 comment. 04625 3063 206 typ_orga +037&all&1 contents. 04474 2441 166 str_cont +037&all&1 contents.goes.here. 04542 15767 1044 typ_ordi +037&all&1 contents.separate 04548 4456 309 typ_repo +037&all&1 contentsgap. 04477 3347 226 str_cont +037&all&1 contentsgapabove. 04478 3643 246 str_cont +037&all&1 contentsgapbelow. 04479 3954 266 str_cont +037&all&1 contentsleader. 04480 4263 286 str_cont +037&all&1 contentsleadergap. 04481 4569 306 str_cont +037&all&1 contentsrightwidth. 04482 4885 326 str_cont +037&all&1 copyright 04260 11445 743 bas_char +037&all&1 corollary. 04444 5974 388 str_theo +037&all&1 cover.sheet. 04547 4161 289 typ_repo +037&all&1 cprint. 04896 2505 166 prg_chan +037&all&1 cragged. 04310 4552 316 bas_par2 +037&all&1 cross.ref 04464 2435 166 str_cros +037&all&1 curriculum. 04707 5946 432 ref_cite +037&all&1 curvebox. 04802 2630 186 bgr_boxs +037&all&1 curvebox.fig 04825 3938 266 dia_node +037&all&1 cut.marks 04653 5753 388 fmt_marg +037&all&1 d 04194 2504 178 preface +037&all&1 d. 04353 4737 326 str_disp +037&all&1 dagger 04248 6703 407 bas_char +037&all&1 daggerdbl 04249 7016 432 bas_char +037&all&1 dash.join 04678 9860 688 fmt_head +037&all&1 dashed. 04832 6268 434 dia_node +037&all&1 dashlist. 04401 14115 1023 str_list +037&all&1 data. 04868 2408 166 gra_data +037&all&1 database. 04692 3929 266 ref_sett +037&all&1 database.dec 04637 5637 386 fmt_setu +037&all&1 database.file 04687 2477 166 ref_sett +037&all&1 database.index.file 04693 4236 286 ref_sett +037&all&1 dataformat. 04873 3983 266 gra_data +037&all&1 date. 04329 2382 166 bas_date +037&all&1 date.languages 04334 3460 229 bas_lang +037&all&1 default.indent 04359 6832 485 str_disp +037&all&1 definition. 04440 4863 308 str_theo +037&all&1 definitions. 04496 2467 166 str_defs +037&all&1 degree 04254 9040 575 bas_char +037&all&1 diag. 04817 4219 293 dia +037&all&1 diag. 04818 4527 320 dia +037&all&1 diamond. 04828 4853 326 dia_node +037&all&1 dictfull. 04847 2709 186 dia_erro +037&all&1 directories 04472 4722 326 str_cros +037&all&1 display. 04346 2666 186 str_disp +037&all&1 display.gap. 04358 6538 465 str_disp +037&all&1 display.indent. 04360 7274 516 str_disp +037&all&1 displayed.equations 04786 2473 166 equ_disp +037&all&1 displays. 04345 2396 166 str_disp +037&all&1 divide 04259 11128 718 bas_char +037&all&1 dl. 04402 14390 1043 str_list +037&all&1 dlabel. 04840 3687 246 dia_labe +037&all&1 dli. 04416 18493 1344 str_list +037&all&1 doc. 04501 2700 186 typ_ordi +037&all&1 doc.file 04629 3280 226 fmt_setu +037&all&1 docf.file 04634 4767 326 fmt_setu +037&all&1 document. 04502 2964 206 typ_ordi +037&all&1 document.types 04499 4246 293 typ +037&all&1 dot.join 04675 9016 628 fmt_head +037&all&1 dot.sep 04674 8742 608 fmt_head +037&all&1 dotted. 04833 6549 454 dia_node +037&all&1 double.spacing 04323 2704 186 bas_line +037&all&1 dp. 04295 3546 246 bas_par1 +037&all&1 drop.cap.three.sym 04340 2697 186 bas_drop +037&all&1 drop.cap.two.sym 04339 2393 166 bas_drop +037&all&1 drop.item 04412 17294 1257 str_list +037&all&1 drop.list.item 04415 18203 1324 str_list +037&all&1 drop.tag.item 04413 17645 1284 str_list +037&all&1 dsf.file 04633 4475 306 fmt_setu +037&all&1 dti. 04414 17932 1304 str_list +037&all&1 e 04195 2702 198 preface +037&all&1 e. 04770 3019 206 equ_intr +037&all&1 eiffel. 04891 5012 325 prg +037&all&1 el. 04367 3933 286 str_list +037&all&1 eliot.g 04226 3457 211 bas_star +037&all&1 ellipse. 04830 5414 366 dia_node +037&all&1 elliptical. 04848 2465 166 dia_defi +037&all&1 em.unit 04234 4141 286 bas_objs +037&all&1 empty. 04269 2376 166 bas_empt +037&all&1 encapsulated.postscript 04617 4053 268 typ_illu +037&all&1 end.list. 04366 3661 266 str_list +037&all&1 endaligneddisplays 04794 6242 430 equ_disp +037&all&1 endappendices. 04528 11138 750 typ_ordi +037&all&1 endappendices.books 04588 8684 608 typ_book +037&all&1 endappendices.ordinary 04529 11454 771 typ_ordi +037&all&1 endappendices.reports 04561 9274 631 typ_repo +037&all&1 endchapters. 04576 4794 345 typ_book +037&all&1 endnote. 04422 3126 210 str_foot +037&all&1 endoverheads. 04610 5473 353 typ_over +037&all&1 endproof. 04439 4260 278 str_theo +037&all&1 endsections. 04510 5349 372 typ_ordi +037&all&1 endsections.books 04579 5739 410 typ_book +037&all&1 endsections.ordinary 04511 5655 393 typ_ordi +037&all&1 endsections.reports 04552 6220 433 typ_repo +037&all&1 endsubappendices. 04534 13082 876 typ_ordi +037&all&1 endsubappendices.books 04591 9671 674 typ_book +037&all&1 endsubappendices.ordinary 04535 13410 897 typ_ordi +037&all&1 endsubappendices.reports 04564 10291 697 typ_repo +037&all&1 endsubsections. 04516 7250 498 typ_ordi +037&all&1 endsubsections.books 04582 6711 476 typ_book +037&all&1 endsubsections.ordinary 04517 7569 519 typ_ordi +037&all&1 endsubsections.reports 04555 7221 499 typ_repo +037&all&1 endsubsubappendices. 04540 15089 1002 typ_ordi +037&all&1 endsubsubappendices.books 04594 10685 740 typ_book +037&all&1 endsubsubappendices.ordinary 04541 15429 1023 typ_ordi +037&all&1 endsubsubappendices.reports 04567 11335 763 typ_repo +037&all&1 endsubsubsections. 04522 9216 624 typ_ordi +037&all&1 endsubsubsections.books 04585 7710 542 typ_book +037&all&1 endsubsubsections.ordinary 04523 9547 645 typ_ordi +037&all&1 endsubsubsections.reports 04558 8250 565 typ_repo +037&all&1 eps 04618 4370 288 typ_illu +037&all&1 eq. 04767 4786 333 equ +037&all&1 eq. 04769 2765 186 equ_intr +037&all&1 eq.file 04768 2498 166 equ_intr +037&all&1 eqn. 04220 8476 736 preface +037&all&1 equations. 04765 4243 293 equ +037&all&1 error.messages 04227 5596 357 bas_star +037&all&1 euro 04263 12589 825 bas_char +037&all&1 even.left.margin 04648 4244 288 fmt_marg +037&all&1 even.right.margin 04649 4551 308 fmt_marg +037&all&1 example. 04445 6255 408 str_theo +037&all&1 expand.cell.width 04754 2446 166 tbl_widt +037&all&1 extend. 04850 3057 206 dia_defi +037&all&1 f 04196 2900 218 preface +037&all&1 f.unit 04235 4446 306 bas_objs +037&all&1 face.name 04272 2953 206 bas_font +037&all&1 family.name 04271 2652 186 bas_font +037&all&1 fig. 04819 5883 383 dia +037&all&1 figure. 04447 2682 186 str_figs +037&all&1 figurecaptionpos. 04456 11719 630 str_figs +037&all&1 figureformat. 04454 11128 590 str_figs +037&all&1 figurelocation. 04452 9895 523 str_figs +037&all&1 figurenumbers. 04458 12338 670 str_figs +037&all&1 figures. 04446 2417 166 str_figs +037&all&1 first.page.number 04659 3924 266 fmt_head +037&all&1 florin 04253 8728 550 bas_char +037&all&1 font. 04270 2377 166 bas_font +037&all&1 font.size 04285 7115 516 bas_font +037&all&1 font.sym 04284 6334 457 bas_font +037&all&1 foot.margin 04645 3344 228 fmt_marg +037&all&1 footabovegap. 04430 5646 378 str_foot +037&all&1 footgap. 04431 5938 398 str_foot +037&all&1 footlen. 04429 5365 358 str_foot +037&all&1 footnote. 04421 2444 166 str_foot +037&all&1 footnotebreak. 04428 5072 338 str_foot +037&all&1 footnotefont. 04427 4776 318 str_foot +037&all&1 footnotelocatin. 04425 4164 278 str_foot +037&all&1 footnotenumbers. 04426 4472 298 str_foot +037&all&1 footnotethrough. 04424 3857 258 str_foot +037&all&1 form.feed 04620 3734 284 typ_plai +037&all&1 from. 04774 3274 226 equ_symb +037&all&1 full.name 04780 2622 177 equ_spac +037&all&1 full.width. 04504 3521 246 typ_ordi +037&all&1 fullwidthrule. 04804 3197 226 bgr_boxs +037&all&1 g 04197 3098 238 preface +037&all&1 gnu. 04217 7601 676 preface +037&all&1 graph. 04857 4479 313 gra +037&all&1 graph.circle 04882 4442 306 gra_keys +037&all&1 graph.cross 04876 2645 186 gra_keys +037&all&1 graph.dashed 04888 6263 426 gra_keys +037&all&1 graph.diamond 04880 3826 266 gra_keys +037&all&1 graph.dotted 04889 6556 446 gra_keys +037&all&1 graph.file 04858 2390 166 gra_intr +037&all&1 graph.filled.circle 04883 4740 326 gra_keys +037&all&1 graph.filled.diamond 04881 4128 286 gra_keys +037&all&1 graph.filled.square 04879 3514 246 gra_keys +037&all&1 graph.filled.triangle 04885 5362 366 gra_keys +037&all&1 graph.noline 04886 5681 386 gra_keys +037&all&1 graph.plus 04877 2931 206 gra_keys +037&all&1 graph.solid 04887 5973 406 gra_keys +037&all&1 graph.square 04878 3216 226 gra_keys +037&all&1 graph.triangle 04884 5054 346 gra_keys +037&all&1 graphs. 04856 4214 293 gra +037&all&1 h 04198 3296 258 preface +037&all&1 harvey.w.j 04225 3170 191 bas_star +037&all&1 heading. 04289 2368 166 bas_head +037&all&1 headingfont. 04290 2647 186 bas_head +037&all&1 histograms. 04872 3668 246 gra_data +037&all&1 htree. 04842 2693 186 dia_tree +037&all&1 hungarian 04680 10440 728 fmt_head +037&all&1 hyphenation. 04325 2356 166 bas_hyph +037&all&1 hyphenation.languages 04333 3092 207 bas_lang +037&all&1 i 04199 3494 278 preface +037&all&1 i. 04274 3476 246 bas_font +037&all&1 id. 04355 5247 366 str_disp +037&all&1 if. 04740 4366 286 ref_crea +037&all&1 ii. 04276 3983 286 bas_font +037&all&1 il. 04371 5310 394 str_list +037&all&1 illustration. 04614 3146 206 typ_illu +037&all&1 illustrations. 04613 2851 186 typ_illu +037&all&1 import. 04498 3049 206 str_defs +037&all&1 inbook.ref.type 04716 4868 306 ref_entr +037&all&1 inches. 04232 3539 246 bas_objs +037&all&1 include. 04624 2783 186 typ_orga +037&all&1 include.graphic 04814 2425 166 bgr_incl +037&all&1 include.illus 04815 2750 186 bgr_incl +037&all&1 indenteddisplay. 04348 3240 226 str_disp +037&all&1 indentedlist. 04370 5023 374 str_list +037&all&1 index.file 04694 4547 306 ref_sett +037&all&1 indexblanks. 04484 2720 193 str_indx +037&all&1 indexbreak. 04487 5038 336 str_indx +037&all&1 indexcolumngap. 04489 5644 376 str_indx +037&all&1 indexcolumnnumber. 04488 5332 356 str_indx +037&all&1 indexes. 04483 2381 166 str_indx +037&all&1 indexfont. 04486 4754 316 str_indx +037&all&1 initialbreak 04324 3131 217 bas_line +037&all&1 initialfont. 04286 7391 536 bas_font +037&all&1 initiallanguage. 04337 4486 294 bas_lang +037&all&1 initialspace. 04341 2468 166 bas_conv +037&all&1 inproceedings.ref.type 04717 5215 326 ref_entr +037&all&1 intro.first.page.number 04661 4554 306 fmt_head +037&all&1 intro.page.numbers 04660 4235 286 fmt_head +037&all&1 intro.pages 04664 5951 408 fmt_head +037&all&1 introduction. 04573 3926 285 typ_book +037&all&1 iso.latin.1 04264 12881 845 bas_char +037&all&1 isosceles. 04829 5131 346 dia_node +037&all&1 j 04200 3692 298 preface +037&all&1 k 04201 3891 318 preface +037&all&1 keeping. 04314 6438 452 bas_par2 +037&all&1 kernighan 04218 7885 696 preface +037&all&1 kerning. 04288 7968 576 bas_font +037&all&1 key. 04875 2379 166 gra_keys +037&all&1 knuth 04223 9631 820 preface +037&all&1 l 04202 4091 338 preface +037&all&1 l. 04363 2866 206 str_list +037&all&1 label. 04836 2387 166 dia_labe +037&all&1 labelled.refs 04708 2593 169 ref_labe +037&all&1 labels.graph 04865 2679 186 gra_tick +037&all&1 langdefs.file 04631 3880 266 fmt_setu +037&all&1 language. 04332 2760 186 bas_lang +037&all&1 languages. 04331 2468 166 bas_lang +037&all&1 large.scale. 04460 2652 169 str_larg +037&all&1 last.page.tag 04468 3533 246 str_cros +037&all&1 latex. 04684 5060 355 ref +037&all&1 ld. 04354 4990 346 str_disp +037&all&1 ld.file 04690 3345 226 ref_sett +037&all&1 lecture. 04608 4890 313 typ_over +037&all&1 leftdisplay. 04347 2945 206 str_disp +037&all&1 leftlist. 04368 4484 334 str_list +037&all&1 leftnote. 04432 2504 166 str_marg +037&all&1 lemma. 04443 5703 368 str_theo +037&all&1 length. 04230 2981 206 bas_objs +037&all&1 li. 04365 3400 246 str_list +037&all&1 li.file 04695 5262 338 ref_sett +037&all&1 ligatures. 04287 7688 556 bas_font +037&all&1 ligatures.hyph 04327 2967 209 bas_hyph +037&all&1 line.adjustment 04307 3310 228 bas_par2 +037&all&1 line.spacing 04322 2406 166 bas_line +037&all&1 lines. 04315 6758 472 bas_par2 +037&all&1 link. 04834 2391 166 dia_link +037&all&1 list. 04362 2606 186 str_list +037&all&1 list.item. 04364 3125 226 str_list +037&all&1 list.symbol.options 04420 20568 1497 str_list +037&all&1 lists. 04361 2351 166 str_list +037&all&1 lists.languages 04336 4169 273 bas_lang +037&all&1 ll. 04369 4757 354 str_list +037&all&1 llp. 04294 3288 226 bas_par1 +037&all&1 localwidthrule. 04806 3755 266 bgr_boxs +037&all&1 location. 04451 5853 396 str_figs +037&all&1 logarithmic.axes 04862 3405 226 gra_over +037&all&1 lop. 04296 3802 266 bas_par1 +037&all&1 lout.li 04473 5031 346 str_cros +037&all&1 lout.space 04342 2784 186 bas_conv +037&all&1 lozenge 04257 10230 659 bas_char +037&all&1 lp. 04293 3032 206 bas_par1 +037&all&1 m 04203 4291 358 preface +037&all&1 major.num 04670 7604 528 fmt_head +037&all&1 major.title 04671 7887 548 fmt_head +037&all&1 makecontents. 04476 3053 206 str_cont +037&all&1 makeindex. 04485 4471 296 str_indx +037&all&1 makereferences.sym 04718 2682 177 ref_chan +037&all&1 marginnote. 04433 2796 186 str_marg +037&all&1 margins 04752 2293 160 tbl_marg +037&all&1 margins. 04642 2500 166 fmt_marg +037&all&1 margins.in.pages 04643 2770 187 fmt_marg +037&all&1 margins.in.tables 04753 2632 187 tbl_marg +037&all&1 mastersthesis.ref.type 04713 3853 246 ref_entr +037&all&1 mathematical.functions 04874 2516 166 gra_func +037&all&1 mathematics. 04766 4519 313 equ +037&all&1 matrix. 04778 5472 404 equ_symb +037&all&1 minor.num 04672 8174 568 fmt_head +037&all&1 minor.title 04673 8457 588 fmt_head +037&all&1 minute 04255 9352 600 bas_char +037&all&1 misc.ref.type 04714 4203 266 ref_entr +037&all&1 multi.page.tables 04761 2418 166 tbl_mult +037&all&1 multiple.columns 04491 2700 186 str_colu +037&all&1 multiple.runs 04471 4401 306 str_cros +037&all&1 multiply 04258 10548 684 bas_char +037&all&1 mydefs.file 04497 2768 186 str_defs +037&all&1 mydoc.file 04630 3574 246 fmt_setu +037&all&1 mystyle.ld.file 04739 4075 266 ref_crea +037&all&1 n 04204 4491 378 preface +037&all&1 negation. 04796 5861 488 equ_summ +037&all&1 new.page 04298 4365 306 bas_par1 +037&all&1 nl. 04378 7257 534 str_list +037&all&1 no.chap.cite 04700 4004 292 ref_cite +037&all&1 no.chap.ref 04704 5094 372 ref_cite +037&all&1 no.cite 04699 3404 245 ref_cite +037&all&1 no.ref 04703 4822 352 ref_cite +037&all&1 node. 04820 2353 166 dia_node +037&all&1 nodot.join 04677 9576 668 fmt_head +037&all&1 nodot.sep 04676 9294 648 fmt_head +037&all&1 non. 04785 4487 305 equ_spac +037&all&1 not. 04743 5137 346 ref_crea +037&all&1 np. 04299 4627 326 bas_par1 +037&all&1 np.tables 04762 2744 186 tbl_mult +037&all&1 null. 04665 6240 428 fmt_head +037&all&1 num.sep 04679 10139 708 fmt_head +037&all&1 numbered.displays 04789 3431 226 equ_disp +037&all&1 numbered.equations 04790 3752 246 equ_disp +037&all&1 numbereddisplay. 04791 5312 370 equ_disp +037&all&1 numberedlist. 04377 6970 514 str_list +037&all&1 numberof. 04470 4094 286 str_cros +037&all&1 numberseparator. 04463 3510 229 str_larg +037&all&1 o 04205 4691 398 preface +037&all&1 object. 04228 2453 166 bas_objs +037&all&1 odd.left.margin 04646 3635 248 fmt_marg +037&all&1 odd.pages 04662 5035 340 fmt_head +037&all&1 odd.right.margin 04647 3938 268 fmt_marg +037&all&1 on. 04777 4157 286 equ_symb +037&all&1 option. 04229 2717 186 bas_objs +037&all&1 or. 04742 4880 326 ref_crea +037&all&1 oragged. 04312 5220 356 bas_par2 +037&all&1 ordinary. 04500 2425 166 typ_ordi +037&all&1 ordinary.setup 04543 16081 1064 typ_ordi +037&all&1 organizing.large 04623 2482 166 typ_orga +037&all&1 orphans 04319 8927 633 bas_par2 +037&all&1 outdent. 04308 3907 276 bas_par2 +037&all&1 outernote. 04435 3900 265 str_marg +037&all&1 outline.sym 04807 2403 166 bgr_outl +037&all&1 over.eq. 04773 2969 206 equ_symb +037&all&1 overhead. 04607 4612 293 typ_over +037&all&1 overhead.setup. 04611 5770 373 typ_over +037&all&1 overhead.transparencies. 04606 3451 217 typ_over +037&all&1 overheads. 04604 2841 177 typ_over +037&all&1 overstrike. 04861 3088 206 gra_over +037&all&1 p 04206 4891 418 preface +037&all&1 page. 04297 4083 286 bas_par1 +037&all&1 page.background 04651 5153 348 fmt_marg +037&all&1 page.box.type 04650 4857 328 fmt_marg +037&all&1 page.footer 04656 3057 206 fmt_head +037&all&1 page.header 04654 2464 166 fmt_head +037&all&1 page.headers 04657 3337 226 fmt_head +037&all&1 page.height 04640 3019 206 fmt_size +037&all&1 page.num. 04669 7324 508 fmt_head +037&all&1 page.numbers 04658 3628 246 fmt_head +037&all&1 page.orientation 04641 3311 226 fmt_size +037&all&1 page.type 04638 2455 166 fmt_size +037&all&1 page.width 04639 2735 186 fmt_size +037&all&1 pagemark. 04466 2984 206 str_cros +037&all&1 pageof. 04465 2711 186 str_cros +037&all&1 pairs. 04871 3373 226 gra_data +037&all&1 pal. 04392 11625 843 str_list +037&all&1 paragap 04302 5435 386 bas_par1 +037&all&1 paragraph.breaking 04304 2400 166 bas_par2 +037&all&1 paragraphs. 04292 2755 186 bas_par1 +037&all&1 paraindent 04303 5708 406 bas_par1 +037&all&1 parenalphalist. 04391 11331 823 str_list +037&all&1 parennumberedlist. 04379 7966 583 str_list +037&all&1 parenromanlist. 04383 9083 663 str_list +037&all&1 parenucalphalist. 04395 12457 903 str_list +037&all&1 parenucromanlist. 04387 10209 743 str_list +037&all&1 parsym 04246 5822 348 bas_char +037&all&1 part.number 04596 11278 781 typ_book +037&all&1 part.text 04598 11850 821 typ_book +037&all&1 part.title 04597 11566 801 typ_book +037&all&1 parts. 04595 11004 761 typ_book +037&all&1 pas. 04899 4677 313 pascal +037&all&1 pascal 04898 4417 293 pascal +037&all&1 pdf. 04622 2454 166 typ_apdf +037&all&1 perl. 04894 5862 385 prg +037&all&1 phdthesis.ref.type 04711 3144 206 ref_entr +037&all&1 place. 04436 4179 285 str_marg +037&all&1 plain.text. 04619 2408 166 typ_plai +037&all&1 plain.text.tables 04763 2418 166 tbl_plai +037&all&1 pnl. 04380 8269 603 str_list +037&all&1 pod. 04895 6144 405 prg +037&all&1 point.unit 04233 3829 266 bas_objs +037&all&1 points.graphs 04869 2709 186 gra_data +037&all&1 polygon. 04831 5691 386 dia_node +037&all&1 pp. 04291 2476 166 bas_par1 +037&all&1 preface. 04571 3347 245 typ_book +037&all&1 prev. 04853 3193 206 dia_geom +037&all&1 preventing. 04313 6124 432 bas_par2 +037&all&1 prg2lout. 04890 4264 293 prg +037&all&1 prl. 04384 9377 683 str_list +037&all&1 proceedings.ref.type 04710 2790 186 ref_entr +037&all&1 proof. 04438 3990 258 str_theo +037&all&1 proposition. 04442 5418 348 str_theo +037&all&1 pucal. 04396 12759 923 str_list +037&all&1 pucrl. 04388 10511 763 str_list +037&all&1 punctuation 04784 4181 285 equ_spac +037&all&1 q 04207 5091 438 preface +037&all&1 qd. 04356 5504 386 str_disp +037&all&1 ql. 04373 5856 434 str_list +037&all&1 quote.chars 04243 2840 197 bas_char +037&all&1 quoteddisplay. 04349 3545 246 str_disp +037&all&1 quotedlist. 04372 5575 414 str_list +037&all&1 r 04208 5291 458 preface +037&all&1 r. 04278 4488 326 bas_font +037&all&1 ragged. 04309 4221 296 bas_par2 +037&all&1 railroad.diagrams 04845 3044 206 dia_synt +037&all&1 raw.displays 04795 6562 450 equ_disp +037&all&1 raw.end.list. 04419 19324 1404 str_list +037&all&1 raw.list. 04418 19040 1384 str_list +037&all&1 raw.lists 04417 18767 1364 str_list +037&all&1 ref. 04701 4286 312 ref_cite +037&all&1 ref.print 04705 5379 392 ref_cite +037&all&1 ref.style 04735 2806 186 ref_crea +037&all&1 refcitelabels.sym 04720 3297 217 ref_chan +037&all&1 refcitestyle.sym 04719 2992 197 ref_chan +037&all&1 reference. 04688 2761 186 ref_sett +037&all&1 reference.print 04734 2508 166 ref_crea +037&all&1 references. 04682 4222 293 ref +037&all&1 references.before.appendices 04603 13402 921 typ_book +037&all&1 reflistbreak.sym 04730 6515 428 ref_chan +037&all&1 reflistfont.sym 04729 6212 408 ref_chan +037&all&1 reflistformat.sym 04722 3901 257 ref_chan +037&all&1 reflistgap.sym 04728 5913 388 ref_chan +037&all&1 reflistindent.sym 04726 5277 348 ref_chan +037&all&1 reflistlabels.sym 04723 4345 288 ref_chan +037&all&1 reflistlabelwidth.sym 04731 6826 448 ref_chan +037&all&1 reflistrightindent.sym 04727 5591 368 ref_chan +037&all&1 reflistsortkey.sym 04733 7461 488 ref_chan +037&all&1 reflisttitle.sym 04724 4652 308 ref_chan +037&all&1 refnumbers.sym 04721 3602 237 ref_chan +037&all&1 refs.ld.file 04691 3641 246 ref_sett +037&all&1 refstyle.ld.file 04738 3747 246 ref_crea +037&all&1 register 04261 11770 768 bas_char +037&all&1 reid.b 04222 9358 800 preface +037&all&1 relations 04782 3550 245 equ_spac +037&all&1 report. 04546 2986 206 typ_repo +037&all&1 report.setup 04568 11653 784 typ_repo +037&all&1 reports. 04544 2399 166 typ_repo +037&all&1 resume. 04706 5662 412 ref_cite +037&all&1 right. 04668 7052 488 fmt_head +037&all&1 right.justified.entries 04756 2778 186 tbl_inde +037&all&1 rightdisplay. 04352 4453 306 str_disp +037&all&1 rightnote. 04434 3617 245 str_marg +037&all&1 rl. 04382 8814 643 str_list +037&all&1 rlines. 04317 7417 512 bas_par2 +037&all&1 roman 04403 14660 1063 str_list +037&all&1 romanlist. 04381 8536 623 str_list +037&all&1 rotate. 04808 2373 166 bgr_rota +037&all&1 rotated.entries 04750 2780 186 tbl_cell +037&all&1 row.formats 04751 2458 166 tbl_rows +037&all&1 rragged. 04311 4886 336 bas_par2 +037&all&1 rules. 04805 3490 246 bgr_boxs +037&all&1 running.header 04655 2759 186 fmt_head +037&all&1 runningtitle. 04462 3212 209 str_larg +037&all&1 s 04209 5491 478 preface +037&all&1 s. 04277 4237 306 bas_font +037&all&1 s.unit 04236 4752 326 bas_objs +037&all&1 scale. 04811 2359 166 bgr_scal +037&all&1 scribe. 04685 5314 375 ref +037&all&1 scribe.influence 04221 9052 779 preface +037&all&1 scribe.reference 04686 5581 396 ref +037&all&1 second 04256 9917 634 bas_char +037&all&1 section. 04506 4115 288 typ_ordi +037&all&1 section.books 04577 5104 366 typ_book +037&all&1 section.ordinary 04507 4405 309 typ_ordi +037&all&1 section.reports 04550 5568 389 typ_repo +037&all&1 sectiongap. 04300 4891 346 bas_par1 +037&all&1 sectsym 04247 6390 382 bas_char +037&all&1 separate.intro.numbering 04602 13058 901 typ_book +037&all&1 setcolour. 04800 2888 206 bgr_colo +037&all&1 setup.file 04626 2381 166 fmt_setu +037&all&1 setup.files.tables 04764 2454 166 tbl_setu +037&all&1 shadowbox. 04803 2910 206 bgr_boxs +037&all&1 shadowbox.fig 04826 4278 286 dia_node +037&all&1 short.name 04781 2941 197 equ_spac +037&all&1 sl. 04400 13852 1003 str_list +037&all&1 slides. 04605 3165 197 typ_over +037&all&1 slope. 04281 5474 397 bas_font +037&all&1 small.caps 04279 4761 346 bas_font +037&all&1 sort.ref 04732 7164 468 ref_chan +037&all&1 spaces. 04240 2694 186 bas_spac +037&all&1 spanning.columns 04758 2459 166 tbl_span +037&all&1 square. 04827 4581 306 dia_node +037&all&1 stand.alone.illustrations. 04612 2515 166 typ_illu +037&all&1 standard.ld.file 04745 5698 386 ref_crea +037&all&1 star 04245 5518 323 bas_char +037&all&1 starlist. 04399 13577 983 str_list +037&all&1 start.pages 04663 5487 374 fmt_head +037&all&1 sterling 04251 7869 491 bas_char +037&all&1 structpagenums. 04681 10737 748 fmt_head +037&all&1 style.graph 04859 2505 166 gra_over +037&all&1 sub. 04771 2376 166 equ_symb +037&all&1 subappendix. 04530 11776 792 typ_ordi +037&all&1 subappendix.books 04589 9007 630 typ_book +037&all&1 subappendix.ordinary 04531 12084 813 typ_ordi +037&all&1 subappendix.reports 04562 9607 653 typ_repo +037&all&1 subsection. 04512 5970 414 typ_ordi +037&all&1 subsection.books 04580 6057 432 typ_book +037&all&1 subsection.ordinary 04513 6273 435 typ_ordi +037&all&1 subsection.reports 04553 6547 455 typ_repo +037&all&1 subsubappendix. 04536 13741 918 typ_ordi +037&all&1 subsubappendix.books 04592 10003 696 typ_book +037&all&1 subsubappendix.ordinary 04537 14061 939 typ_ordi +037&all&1 subsubappendix.reports 04565 10633 719 typ_repo +037&all&1 subsubsection. 04518 7894 540 typ_ordi +037&all&1 subsubsection.books 04583 7038 498 typ_book +037&all&1 subsubsection.ordinary 04519 8209 561 typ_ordi +037&all&1 subsubsection.reports 04556 7558 521 typ_repo +037&all&1 sup. 04772 2670 186 equ_symb +037&all&1 supp. 04776 3862 266 equ_symb +037&all&1 sym. 04268 14051 925 bas_char +037&all&1 symbol. 04267 13767 905 bas_char +037&all&1 symbols. 04239 2396 166 bas_spac +037&all&1 symbolsize. 04870 3046 206 gra_data +037&all&1 syntax.diag 04843 2419 166 dia_synt +037&all&1 syntax.diagrams 04844 2731 186 dia_synt +037&all&1 sys.database 04736 3088 206 ref_crea +037&all&1 sysinclude. 04627 2657 186 fmt_setu +037&all&1 system.database.dir 04737 3410 226 ref_crea +037&all&1 system.include 04628 2970 206 fmt_setu +037&all&1 t 04210 5691 498 preface +037&all&1 tab.c 04897 2456 166 prg_tabs +037&all&1 table. 04450 3652 256 str_figs +037&all&1 tablecaptionpos. 04457 12031 650 str_figs +037&all&1 tableformat. 04455 11422 610 str_figs +037&all&1 tablelocation. 04453 10197 543 str_figs +037&all&1 tablenumbers. 04459 12638 690 str_figs +037&all&1 tables. 04746 4198 293 tbl +037&all&1 tables.of.contents. 04475 2749 186 str_cont +037&all&1 tag. 04467 3258 226 str_cros +037&all&1 tag.sym 04469 3824 266 str_cros +037&all&1 taggedlist 04404 14927 1083 str_list +037&all&1 tagitem. 04406 15466 1123 str_list +037&all&1 tbl. 04748 3202 200 tbl_intr +037&all&1 tbl.file 04747 2931 180 tbl_intr +037&all&1 technical.reports. 04545 2691 186 typ_repo +037&all&1 techreport.ref.type 04712 3494 226 ref_entr +037&all&1 tex. 04224 9888 840 preface +037&all&1 tex.hyph 04326 2657 187 bas_hyph +037&all&1 tex.mathfonts 04797 2477 167 equ_tequ +037&all&1 tex.page 04505 3831 267 typ_ordi +037&all&1 tex.paragraph 04305 2730 187 bas_par2 +037&all&1 tex.space 04344 3398 226 bas_conv +037&all&1 theorem. 04437 2703 172 str_theo +037&all&1 ti. 04407 15738 1143 str_list +037&all&1 ticks.graph 04864 2380 166 gra_tick +037&all&1 time. 04330 2645 186 bas_date +037&all&1 time.languages 04335 3814 251 bas_lang +037&all&1 title. 04461 2938 189 str_larg +037&all&1 title.page.font. 04600 12423 861 typ_book +037&all&1 tl. 04405 15204 1103 str_list +037&all&1 to. 04775 3569 246 equ_symb +037&all&1 top.margin 04644 3060 208 fmt_marg +037&all&1 trademark 04262 12268 800 bas_char +037&all&1 tree. 04841 2382 166 dia_tree +037&all&1 troff.space 04343 3086 206 bas_conv +037&all&1 true. 04744 5399 366 ref_crea +037&all&1 type. 04689 3058 206 ref_sett +037&all&1 u 04211 5891 518 preface +037&all&1 ucal. 04394 12180 883 str_list +037&all&1 ucalphalist. 04393 11894 863 str_list +037&all&1 ucrl. 04386 9932 723 str_list +037&all&1 ucromanlist. 04385 9646 703 str_list +037&all&1 unbreakablefirst. 04320 9205 653 bas_par2 +037&all&1 unbreakablelast. 04321 9514 673 bas_par2 +037&all&1 underline.sym 04328 2412 166 bas_unde +037&all&1 units.of 04238 5362 366 bas_objs +037&all&1 unpaginated. 04621 4022 304 typ_plai +037&all&1 use. 04635 5042 346 fmt_setu +037&all&1 v 04212 6091 538 preface +037&all&1 v.unit 04237 5059 346 bas_objs +037&all&1 van.leunen. 04683 4515 313 ref +037&all&1 verbatim.sym 04338 2624 175 bas_verb +037&all&1 vertical.alignment 04759 2463 166 tbl_mark +037&all&1 verywidetaggedlist 04410 16567 1203 str_list +037&all&1 vmerror. 04846 2389 166 dia_erro +037&all&1 vshift. 04816 3043 206 bgr_incl +037&all&1 vwtl. 04411 16870 1223 str_list +037&all&1 w 04213 6291 558 preface +037&all&1 wide 04615 3433 226 typ_illu +037&all&1 wide 04809 2642 186 bgr_rota +037&all&1 wide 04812 2625 186 bgr_scal +037&all&1 wide.illustrations 04616 3709 247 typ_illu +037&all&1 wide.rotate 04810 2913 207 bgr_rota +037&all&1 wide.scale 04813 2894 207 bgr_scal +037&all&1 widetaggedlist 04408 16004 1163 str_list +037&all&1 widows 04318 8653 613 bas_par2 +037&all&1 wtl. 04409 16294 1183 str_list +037&all&1 x 04214 6491 578 preface +037&all&1 xcoord. 04854 3514 226 dia_geom +037&all&1 xticks.graph 04866 3004 206 gra_tick +037&all&1 y 04215 6691 598 preface +037&all&1 ycoord. 04855 3841 246 dia_geom +037&all&1 yen 04252 8184 516 bas_char +037&all&1 yticks.graph 04867 3352 226 gra_tick +037&all&1 z 04216 6891 618 preface +1&37.312.all.1 0 00001 0 1 all +10&36.3494.all.1 0 00010 1898 134 all +10&36.3494.ap_byp.1 0 04112 3496 230 ap_byp +10&36.3494.ap_qck.1 0 04032 3616 230 ap_qck +10&36.3494.bas.1 0 00133 3447 230 bas +10&36.3494.bgr.1 0 02848 3471 230 bgr +10&36.3494.dia.1 0 02974 3457 230 dia +10&36.3494.equ.1 0 02473 3468 230 equ +10&36.3494.fmt.1 0 01747 3489 230 fmt +10&36.3494.gra.1 0 03550 3435 230 gra +10&36.3494.pascal.1 0 03997 3598 230 pascal +10&36.3494.prg.1 0 03799 3461 230 prg +10&36.3494.ref.1 0 01965 3447 230 ref +10&36.3494.str.1 0 00679 3509 230 str +10&36.3494.tbl.1 0 02210 3435 230 tbl +10&36.3494.typ.1 0 01290 3455 230 typ +10&figex 0 01039 3509 230 str +11&36.3502.all.1 0 00011 1975 141 all +11&36.3502.ap_byp.1 0 04113 3734 248 ap_byp +11&36.3502.ap_qck.1 0 04033 3854 248 ap_qck +11&36.3502.bas.1 0 00134 3682 248 bas +11&36.3502.bgr.1 0 02849 3706 248 bgr +11&36.3502.dia.1 0 02975 3692 248 dia +11&36.3502.equ.1 0 02474 3703 248 equ +11&36.3502.fmt.1 0 01748 3724 248 fmt +11&36.3502.gra.1 0 03551 3670 248 gra +11&36.3502.pascal.1 0 03998 3836 248 pascal +11&36.3502.prg.1 0 03800 3696 248 prg +11&36.3502.ref.1 0 01966 3682 248 ref +11&36.3502.str.1 0 00680 3744 248 str +11&36.3502.str_figs.1 0 01040 3844 269 str_figs +11&36.3502.tbl.1 0 02211 3670 248 tbl +11&36.3502.typ.1 0 01291 3690 248 typ +11&figex 0 01038 3744 248 str +12&36.3739.all.1 0 00012 2054 148 all +12&36.3739.ap_byp.1 0 04114 3816 255 ap_byp +12&36.3739.ap_qck.1 0 04034 3936 255 ap_qck +12&36.3739.bas.1 0 00135 3761 255 bas +12&36.3739.bgr.1 0 02850 3785 255 bgr +12&36.3739.dia.1 0 02976 3771 255 dia +12&36.3739.equ.1 0 02475 3782 255 equ +12&36.3739.fmt.1 0 01749 3803 255 fmt +12&36.3739.gra.1 0 03552 3749 255 gra +12&36.3739.pascal.1 0 03999 3918 255 pascal +12&36.3739.prg.1 0 03801 3775 255 prg +12&36.3739.ref.1 0 01967 3761 255 ref +12&36.3739.str.1 0 00681 3823 255 str +12&36.3739.tbl.1 0 02212 3749 255 tbl +12&36.3739.typ.1 0 01292 3769 255 typ +13&36.3747.all.1 0 00013 2130 155 all +13&36.3747.ap_byp.1 0 04115 4052 273 ap_byp +13&36.3747.ap_qck.1 0 04035 4172 273 ap_qck +13&36.3747.bas.1 0 00136 3994 273 bas +13&36.3747.bgr.1 0 02851 4018 273 bgr +13&36.3747.dia.1 0 02977 4004 273 dia +13&36.3747.equ.1 0 02476 4015 273 equ +13&36.3747.fmt.1 0 01750 4036 273 fmt +13&36.3747.gra.1 0 03553 3982 273 gra +13&36.3747.pascal.1 0 04000 4154 273 pascal +13&36.3747.prg.1 0 03802 4008 273 prg +13&36.3747.ref.1 0 01968 3994 273 ref +13&36.3747.str.1 0 00682 4056 273 str +13&36.3747.tbl.1 0 02213 3982 273 tbl +13&36.3747.typ.1 0 01293 4002 273 typ +14&36.1381.all.1 0 00014 2208 162 all +14&36.1381.all.10 0 00101 12829 755 all +14&36.1381.all.100 0 01660 178136 11703 all +14&36.1381.all.101 0 01694 179951 11826 all +14&36.1381.all.102 0 01718 181437 11922 all +14&36.1381.all.103 0 01724 183196 12038 all +14&36.1381.all.104 0 01732 184092 12100 all +14&36.1381.all.105 0 01768 185780 12212 all +14&36.1381.all.106 0 01782 187526 12329 all +14&36.1381.all.107 0 01784 189262 12445 all +14&36.1381.all.108 0 01792 191008 12562 all +14&36.1381.all.109 0 01810 192785 12678 all +14&36.1381.all.11 0 00103 15734 910 all +14&36.1381.all.110 0 01837 193567 12730 all +14&36.1381.all.111 0 01841 195346 12846 all +14&36.1381.all.112 0 01849 197135 12963 all +14&36.1381.all.113 0 01870 198917 13079 all +14&36.1381.all.114 0 01898 200995 13220 all +14&36.1381.all.115 0 01902 202763 13336 all +14&36.1381.all.116 0 01912 204541 13453 all +14&36.1381.all.117 0 01932 206309 13569 all +14&36.1381.all.118 0 01950 208198 13696 all +14&36.1381.all.119 0 01996 209868 13808 all +14&36.1381.all.12 0 00105 17345 992 all +14&36.1381.all.120 0 02023 211939 13949 all +14&36.1381.all.121 0 02045 213667 14065 all +14&36.1381.all.122 0 02059 215405 14182 all +14&36.1381.all.123 0 02071 217211 14299 all +14&36.1381.all.124 0 02073 218968 14416 all +14&36.1381.all.125 0 02077 220303 14499 all +14&36.1381.all.126 0 02091 221648 14583 all +14&36.1381.all.127 0 02097 222983 14666 all +14&36.1381.all.128 0 02116 224328 14750 all +14&36.1381.all.129 0 02126 226113 14866 all +14&36.1381.all.13 0 00112 20649 1170 all +14&36.1381.all.130 0 02148 227908 14983 all +14&36.1381.all.131 0 02173 229693 15099 all +14&36.1381.all.132 0 02175 231770 15240 all +14&36.1381.all.133 0 02195 232658 15301 all +14&36.1381.all.134 0 02235 234330 15414 all +14&36.1381.all.135 0 02241 236063 15530 all +14&36.1381.all.136 0 02257 237506 15623 all +14&36.1381.all.137 0 02261 239339 15746 all +14&36.1381.all.138 0 02281 241108 15863 all +14&36.1381.all.139 0 02283 242826 15979 all +14&36.1381.all.14 0 00148 23859 1373 all +14&36.1381.all.140 0 02299 243611 16031 all +14&36.1381.all.141 0 02310 245333 16147 all +14&36.1381.all.142 0 02314 247082 16264 all +14&36.1381.all.143 0 02340 247857 16315 all +14&36.1381.all.144 0 02346 249600 16432 all +14&36.1381.all.145 0 02360 250375 16483 all +14&36.1381.all.146 0 02362 252128 16600 all +14&36.1381.all.147 0 02364 253871 16716 all +14&36.1381.all.148 0 02366 255624 16833 all +14&36.1381.all.149 0 02382 257367 16949 all +14&36.1381.all.15 0 00158 25764 1506 all +14&36.1381.all.150 0 02399 259123 17066 all +14&36.1381.all.151 0 02401 260858 17182 all +14&36.1381.all.152 0 02403 262603 17299 all +14&36.1381.all.153 0 02418 264338 17415 all +14&36.1381.all.154 0 02420 266383 17556 all +14&36.1381.all.155 0 02434 267158 17607 all +14&36.1381.all.156 0 02445 269213 17748 all +14&36.1381.all.157 0 02447 270949 17864 all +14&36.1381.all.158 0 02449 271734 17916 all +14&36.1381.all.159 0 02458 272620 17977 all +14&36.1381.all.16 0 00172 27791 1647 all +14&36.1381.all.160 0 02494 274310 18090 all +14&36.1381.all.161 0 02507 276175 18213 all +14&36.1381.all.162 0 02539 277909 18330 all +14&36.1381.all.163 0 02556 278682 18381 all +14&36.1381.all.164 0 02562 279465 18433 all +14&36.1381.all.165 0 02586 280238 18484 all +14&36.1381.all.166 0 02588 281976 18601 all +14&36.1381.all.167 0 02600 282743 18652 all +14&36.1381.all.168 0 02641 284525 18769 all +14&36.1381.all.169 0 02679 286285 18885 all +14&36.1381.all.17 0 00176 29533 1763 all +14&36.1381.all.170 0 02693 287798 18981 all +14&36.1381.all.171 0 02704 289606 19097 all +14&36.1381.all.172 0 02758 291388 19214 all +14&36.1381.all.173 0 02800 293160 19330 all +14&36.1381.all.174 0 02804 294942 19447 all +14&36.1381.all.175 0 02806 296714 19563 all +14&36.1381.all.176 0 02808 298496 19680 all +14&36.1381.all.177 0 02810 300268 19796 all +14&36.1381.all.178 0 02833 302161 19923 all +14&36.1381.all.179 0 02865 303843 20035 all +14&36.1381.all.18 0 00198 30871 1847 all +14&36.1381.all.180 0 02878 305575 20152 all +14&36.1381.all.181 0 02884 307306 20268 all +14&36.1381.all.182 0 02914 308085 20320 all +14&36.1381.all.183 0 02931 309819 20436 all +14&36.1381.all.184 0 02939 311557 20553 all +14&36.1381.all.185 0 02959 313427 20679 all +14&36.1381.all.186 0 02995 315111 20792 all +14&36.1381.all.187 0 02997 316847 20908 all +14&36.1381.all.188 0 03011 317632 20960 all +14&36.1381.all.189 0 03033 319354 21076 all +14&36.1381.all.19 0 00215 32199 1930 all +14&36.1381.all.190 0 03049 321086 21193 all +14&36.1381.all.191 0 03051 322808 21309 all +14&36.1381.all.192 0 03053 324540 21426 all +14&36.1381.all.193 0 03055 326262 21542 all +14&36.1381.all.194 0 03073 327994 21659 all +14&36.1381.all.195 0 03075 329716 21775 all +14&36.1381.all.196 0 03079 331448 21892 all +14&36.1381.all.197 0 03096 333170 22008 all +14&36.1381.all.198 0 03098 335200 22149 all +14&36.1381.all.199 0 03103 335975 22200 all +14&36.1381.all.2 0 00020 4093 276 all +14&36.1381.all.20 0 00219 33926 2047 all +14&36.1381.all.200 0 03123 337719 22317 all +14&36.1381.all.201 0 03125 338494 22368 all +14&36.1381.all.202 0 03135 339279 22420 all +14&36.1381.all.203 0 03137 340054 22471 all +14&36.1381.all.204 0 03151 340839 22523 all +14&36.1381.all.205 0 03153 342573 22639 all +14&36.1381.all.206 0 03155 343358 22691 all +14&36.1381.all.207 0 03170 344133 22742 all +14&36.1381.all.208 0 03172 345865 22859 all +14&36.1381.all.209 0 03174 346640 22910 all +14&36.1381.all.21 0 00233 34681 2098 all +14&36.1381.all.210 0 03176 347425 22962 all +14&36.1381.all.211 0 03178 348200 23013 all +14&36.1381.all.212 0 03201 348985 23065 all +14&36.1381.all.213 0 03207 350722 23181 all +14&36.1381.all.214 0 03209 352469 23298 all +14&36.1381.all.215 0 03211 354206 23414 all +14&36.1381.all.216 0 03213 355953 23531 all +14&36.1381.all.217 0 03215 357690 23647 all +14&36.1381.all.218 0 03217 359437 23764 all +14&36.1381.all.219 0 03236 361174 23880 all +14&36.1381.all.22 0 00281 36417 2215 all +14&36.1381.all.220 0 03249 362908 23997 all +14&36.1381.all.221 0 03255 364664 24113 all +14&36.1381.all.222 0 03257 366430 24230 all +14&36.1381.all.223 0 03261 368186 24346 all +14&36.1381.all.224 0 03275 369952 24463 all +14&36.1381.all.225 0 03281 371725 24579 all +14&36.1381.all.226 0 03289 372510 24631 all +14&36.1381.all.227 0 03310 373285 24682 all +14&36.1381.all.228 0 03340 375021 24799 all +14&36.1381.all.229 0 03342 377864 24993 all +14&36.1381.all.23 0 00283 38146 2331 all +14&36.1381.all.230 0 03352 379600 25110 all +14&36.1381.all.231 0 03382 381069 25205 all +14&36.1381.all.232 0 03408 382548 25301 all +14&36.1381.all.233 0 03418 384017 25396 all +14&36.1381.all.234 0 03420 385496 25492 all +14&36.1381.all.235 0 03422 386965 25587 all +14&36.1381.all.236 0 03452 388444 25683 all +14&36.1381.all.237 0 03482 389913 25778 all +14&36.1381.all.238 0 03484 391392 25874 all +14&36.1381.all.239 0 03486 392861 25969 all +14&36.1381.all.24 0 00291 39885 2448 all +14&36.1381.all.240 0 03488 394340 26065 all +14&36.1381.all.241 0 03510 395809 26160 all +14&36.1381.all.242 0 03535 397401 26266 all +14&36.1381.all.243 0 03567 399063 26378 all +14&36.1381.all.244 0 03582 400801 26495 all +14&36.1381.all.245 0 03584 402559 26611 all +14&36.1381.all.246 0 03590 404327 26728 all +14&36.1381.all.247 0 03592 406085 26844 all +14&36.1381.all.248 0 03608 407853 26961 all +14&36.1381.all.249 0 03623 409577 27077 all +14&36.1381.all.25 0 00293 41614 2564 all +14&36.1381.all.250 0 03627 411309 27194 all +14&36.1381.all.251 0 03631 412078 27245 all +14&36.1381.all.252 0 03652 412857 27297 all +14&36.1381.all.253 0 03654 414594 27413 all +14&36.1381.all.254 0 03658 416341 27530 all +14&36.1381.all.255 0 03660 418078 27646 all +14&36.1381.all.256 0 03664 419825 27763 all +14&36.1381.all.257 0 03679 421562 27879 all +14&36.1381.all.258 0 03692 423320 27996 all +14&36.1381.all.259 0 03698 425082 28112 all +14&36.1381.all.26 0 00320 43353 2681 all +14&36.1381.all.260 0 03700 426854 28229 all +14&36.1381.all.261 0 03743 428616 28345 all +14&36.1381.all.262 0 03747 430649 28486 all +14&36.1381.all.263 0 03765 432379 28602 all +14&36.1381.all.264 0 03767 434115 28719 all +14&36.1381.all.265 0 03769 434892 28770 all +14&36.1381.all.266 0 03771 435679 28822 all +14&36.1381.all.267 0 03773 436456 28873 all +14&36.1381.all.268 0 03784 437356 28935 all +14&36.1381.all.269 0 03826 439033 29047 all +14&36.1381.all.27 0 00340 45072 2797 all +14&36.1381.all.270 0 03843 440819 29164 all +14&36.1381.all.271 0 03845 442606 29280 all +14&36.1381.all.272 0 03857 443391 29332 all +14&36.1381.all.273 0 03859 445156 29448 all +14&36.1381.all.274 0 03873 445941 29500 all +14&36.1381.all.275 0 03875 447720 29616 all +14&36.1381.all.276 0 03884 448503 29668 all +14&36.1381.all.277 0 03896 450265 29784 all +14&36.1381.all.278 0 03907 451042 29836 all +14&36.1381.all.279 0 03926 452815 29952 all +14&36.1381.all.28 0 00352 46387 2881 all +14&36.1381.all.280 0 03937 454600 30069 all +14&36.1381.all.281 0 03957 456371 30185 all +14&36.1381.all.282 0 03974 458131 30302 all +14&36.1381.all.283 0 03982 459019 30363 all +14&36.1381.all.284 0 04005 460764 30476 all +14&36.1381.all.285 0 04007 461482 30527 all +14&36.1381.all.286 0 04009 462210 30579 all +14&36.1381.all.287 0 04017 463001 30637 all +14&36.1381.all.288 0 04036 464761 30750 all +14&36.1381.all.289 0 04066 465481 30801 all +14&36.1381.all.29 0 00366 49079 3063 all +14&36.1381.all.290 0 04097 466284 30860 all +14&36.1381.all.291 0 04116 467974 30972 all +14&36.1381.all.292 0 04146 470421 31134 all +14&36.1381.all.293 0 04186 475675 31460 all +14&36.1381.all.294 0 04900 479122 31668 all +14&36.1381.all.295 0 04902 480442 31758 all +14&36.1381.all.296 0 04904 481772 31849 all +14&36.1381.all.297 0 04906 483092 31939 all +14&36.1381.all.298 0 04908 484422 32030 all +14&36.1381.all.299 0 04910 485742 32120 all +14&36.1381.all.30 0 00408 51118 3204 all +14&36.1381.all.300 0 04912 487072 32211 all +14&36.1381.all.301 0 04914 488392 32301 all +14&36.1381.all.31 0 00427 52958 3327 all +14&36.1381.all.32 0 00465 54685 3444 all +14&36.1381.all.33 0 00494 55988 3527 all +14&36.1381.all.34 0 00496 57301 3611 all +14&36.1381.all.35 0 00524 59989 3793 all +14&36.1381.all.36 0 00551 61726 3910 all +14&36.1381.all.37 0 00566 63461 4026 all +14&36.1381.all.38 0 00583 65191 4143 all +14&36.1381.all.39 0 00597 66934 4259 all +14&36.1381.all.40 0 00623 68385 4352 all +14&36.1381.all.41 0 00638 70109 4468 all +14&36.1381.all.42 0 00657 71843 4585 all +14&36.1381.all.43 0 00664 73690 4711 all +14&36.1381.all.44 0 00716 75390 4824 all +14&36.1381.all.45 0 00777 77513 4971 all +14&36.1381.all.46 0 00853 79244 5088 all +14&36.1381.all.47 0 00882 80529 5171 all +14&36.1381.all.48 0 00894 81824 5255 all +14&36.1381.all.49 0 00896 83109 5338 all +14&36.1381.all.50 0 00925 84404 5422 all +14&36.1381.all.51 0 00932 86163 5538 all +14&36.1381.all.52 0 00964 86937 5590 all +14&36.1381.all.53 0 00970 88800 5713 all +14&36.1381.all.54 0 00986 90591 5830 all +14&36.1381.all.55 0 01013 92527 5955 all +14&36.1381.all.56 0 01036 94693 6098 all +14&36.1381.all.57 0 01052 96970 6253 all +14&36.1381.all.58 0 01058 98727 6370 all +14&36.1381.all.59 0 01064 100474 6486 all +14&36.1381.all.60 0 01078 102231 6603 all +14&36.1381.all.61 0 01096 103979 6719 all +14&36.1381.all.62 0 01100 106124 6861 all +14&36.1381.all.63 0 01104 107958 6978 all +14&36.1381.all.64 0 01129 109802 7096 all +14&36.1381.all.65 0 01139 111634 7219 all +14&36.1381.all.66 0 01141 113394 7336 all +14&36.1381.all.67 0 01172 116557 7551 all +14&36.1381.all.68 0 01185 118321 7668 all +14&36.1381.all.69 0 01197 120057 7784 all +14&36.1381.all.7 0 00116 22020 1243 all +14&36.1381.all.70 0 01199 121803 7901 all +14&36.1381.all.71 0 01201 123539 8017 all +14&36.1381.all.72 0 01209 125285 8134 all +14&36.1381.all.73 0 01236 127021 8250 all +14&36.1381.all.74 0 01259 129381 8415 all +14&36.1381.all.75 0 01267 131149 8531 all +14&36.1381.all.76 0 01275 132736 8634 all +14&36.1381.all.77 0 01309 134402 8746 all +14&36.1381.all.78 0 01315 136151 8863 all +14&36.1381.all.79 0 01355 137890 8979 all +14&36.1381.all.8 0 00094 7418 473 all +14&36.1381.all.80 0 01395 139639 9096 all +14&36.1381.all.81 0 01417 141378 9212 all +14&36.1381.all.82 0 01423 143423 9353 all +14&36.1381.all.83 0 01429 145540 9500 all +14&36.1381.all.84 0 01439 148294 9685 all +14&36.1381.all.85 0 01465 150028 9801 all +14&36.1381.all.86 0 01475 151772 9918 all +14&36.1381.all.87 0 01495 153506 10034 all +14&36.1381.all.88 0 01497 155828 10199 all +14&36.1381.all.89 0 01507 157540 10315 all +14&36.1381.all.9 0 00099 11222 673 all +14&36.1381.all.90 0 01539 159262 10432 all +14&36.1381.all.91 0 01561 162044 10623 all +14&36.1381.all.92 0 01571 163766 10740 all +14&36.1381.all.93 0 01573 165478 10856 all +14&36.1381.all.94 0 01600 167200 10973 all +14&36.1381.all.95 0 01604 169033 11096 all +14&36.1381.all.96 0 01608 170794 11213 all +14&36.1381.all.97 0 01616 172545 11329 all +14&36.1381.all.98 0 01618 174306 11446 all +14&36.1381.all.99 0 01639 176057 11562 all +14&36.1381.bas_lang.1 0 00595 5022 317 bas_lang +14&36.1381.bas_star.1 0 00153 4347 277 bas_star +14&36.1381.bas_star.2 0 00156 4677 294 bas_star +14&36.1381.bas_verb.1 0 00621 2831 188 bas_verb +14&36.1381.dia.1 0 02991 4774 340 dia +14&36.1381.dia_link.1 0 03094 4920 302 dia_link +14&36.1381.dia_synt.1 0 03205 3589 230 dia_synt +14&36.1381.equ_symb.1 0 02560 5955 426 equ_symb +14&36.1381.gra_func.1 0 03696 2969 188 gra_func +14&36.1381.prg.1 0 03824 6399 425 prg +14&36.1381.prg_chan.1 0 03882 3832 218 prg_chan +14&36.1381.prg_perl.1 0 03972 2899 208 prg_perl +14&36.1381.ref_sett.1 0 02021 5848 374 ref_sett +14&36.1381.str_defs.1 0 01265 3631 230 str_defs +14&36.1381.str_figs.1 0 01050 9485 499 str_figs +14&36.1381.str_figs.2 0 01062 10719 566 str_figs +14&36.1381.str_foot.1 0 00923 2723 186 str_foot +14&36.1381.str_indx.1 0 01192 3231 216 str_indx +14&36.1381.str_indx.2 0 01195 3557 233 str_indx +14&36.1381.str_indx.3 0 01234 7350 484 str_indx +14&36.1381.str_theo.1 0 01011 6453 421 str_theo +14&36.1381.tbl.1 0 02230 4822 324 tbl +14&36.1381.tbl_alig.1 0 02344 2830 188 tbl_alig +14&36.1381.tbl_intr.1 0 02233 3388 213 tbl_intr +14&36.1381.tbl_intr.2 0 02239 4336 244 tbl_intr +14&36.1381.typ_over.1 0 01598 3696 230 typ_over +14&36.1381.typ_repo.1 0 01421 3250 226 typ_repo +14&36.1407.bas_lang.1 0 00594 65191 4143 all +14&36.1407.bas_star.1 0 00152 23859 1373 all +14&36.1407.bas_star.2 0 00155 4347 277 bas_star +14&36.1407.bas_verb.1 0 00620 66934 4259 all +14&36.1407.dia.1 0 02990 313427 20679 all +14&36.1407.dia_link.1 0 03093 331448 21892 all +14&36.1407.dia_synt.1 0 03204 348985 23065 all +14&36.1407.equ_symb.1 0 02559 278682 18381 all +14&36.1407.gra_func.1 0 03695 423320 27996 all +14&36.1407.prg.1 0 03823 437356 28935 all +14&36.1407.prg_chan.1 0 03881 447720 29616 all +14&36.1407.prg_perl.1 0 03971 456371 30185 all +14&36.1407.ref_sett.1 0 02020 209868 13808 all +14&36.1407.str_defs.1 0 01264 129381 8415 all +14&36.1407.str_figs.1 0 01049 94693 6098 all +14&36.1407.str_figs.2 0 01061 98727 6370 all +14&36.1407.str_foot.1 0 00922 83109 5338 all +14&36.1407.str_indx.1 0 01191 118321 7668 all +14&36.1407.str_indx.2 0 01194 3231 216 str_indx +14&36.1407.str_indx.3 0 01233 125285 8134 all +14&36.1407.str_theo.1 0 01010 90591 5830 all +14&36.1407.tbl.1 0 02229 232658 15301 all +14&36.1407.tbl_alig.1 0 02343 247857 16315 all +14&36.1407.tbl_intr.1 0 02232 4822 324 tbl +14&36.1407.tbl_intr.2 0 02238 234330 15414 all +14&36.1407.typ_over.1 0 01597 165478 10856 all +14&36.1407.typ_repo.1 0 01420 141378 9212 all +15&33.1067.all.1 0 00015 2289 169 all +15&33.1067.all.10 0 00149 23945 1380 all +15&33.1067.all.100 0 01733 184183 12107 all +15&33.1067.all.101 0 01769 185871 12219 all +15&33.1067.all.102 0 01783 187617 12336 all +15&33.1067.all.103 0 01785 189353 12452 all +15&33.1067.all.104 0 01793 191099 12569 all +15&33.1067.all.105 0 01811 192876 12685 all +15&33.1067.all.106 0 01838 193658 12737 all +15&33.1067.all.107 0 01842 195437 12853 all +15&33.1067.all.108 0 01850 197226 12970 all +15&33.1067.all.109 0 01871 199308 13110 all +15&33.1067.all.11 0 00159 25850 1513 all +15&33.1067.all.110 0 01899 201086 13227 all +15&33.1067.all.111 0 01903 202854 13343 all +15&33.1067.all.112 0 01913 204632 13460 all +15&33.1067.all.113 0 01933 206400 13576 all +15&33.1067.all.114 0 01951 208289 13703 all +15&33.1067.all.115 0 01997 210259 13839 all +15&33.1067.all.116 0 02024 212030 13956 all +15&33.1067.all.117 0 02046 213758 14072 all +15&33.1067.all.118 0 02060 215496 14189 all +15&33.1067.all.119 0 02072 217302 14306 all +15&33.1067.all.12 0 00173 27879 1654 all +15&33.1067.all.120 0 02074 219059 14423 all +15&33.1067.all.121 0 02078 220394 14506 all +15&33.1067.all.122 0 02092 221739 14590 all +15&33.1067.all.123 0 02098 223074 14673 all +15&33.1067.all.124 0 02117 224419 14757 all +15&33.1067.all.125 0 02127 226204 14873 all +15&33.1067.all.126 0 02149 227999 14990 all +15&33.1067.all.127 0 02174 230084 15130 all +15&33.1067.all.128 0 02176 231861 15247 all +15&33.1067.all.129 0 02196 232749 15308 all +15&33.1067.all.13 0 00177 29621 1770 all +15&33.1067.all.130 0 02236 234421 15421 all +15&33.1067.all.131 0 02242 236154 15537 all +15&33.1067.all.132 0 02258 237597 15630 all +15&33.1067.all.133 0 02262 239430 15753 all +15&33.1067.all.134 0 02282 241199 15870 all +15&33.1067.all.135 0 02284 242917 15986 all +15&33.1067.all.136 0 02300 243702 16038 all +15&33.1067.all.137 0 02311 245424 16154 all +15&33.1067.all.138 0 02315 247173 16271 all +15&33.1067.all.139 0 02341 247948 16322 all +15&33.1067.all.14 0 00199 30959 1854 all +15&33.1067.all.140 0 02347 249691 16439 all +15&33.1067.all.141 0 02361 250466 16490 all +15&33.1067.all.142 0 02363 252219 16607 all +15&33.1067.all.143 0 02365 253962 16723 all +15&33.1067.all.144 0 02367 255715 16840 all +15&33.1067.all.145 0 02383 257458 16956 all +15&33.1067.all.146 0 02400 259214 17073 all +15&33.1067.all.147 0 02402 260949 17189 all +15&33.1067.all.148 0 02404 262694 17306 all +15&33.1067.all.149 0 02419 264729 17446 all +15&33.1067.all.15 0 00216 32287 1937 all +15&33.1067.all.150 0 02421 266474 17563 all +15&33.1067.all.151 0 02435 267249 17614 all +15&33.1067.all.152 0 02446 269304 17755 all +15&33.1067.all.153 0 02448 271040 17871 all +15&33.1067.all.154 0 02450 271825 17923 all +15&33.1067.all.155 0 02459 272711 17984 all +15&33.1067.all.156 0 02495 274401 18097 all +15&33.1067.all.157 0 02508 276266 18220 all +15&33.1067.all.158 0 02540 278000 18337 all +15&33.1067.all.159 0 02557 278773 18388 all +15&33.1067.all.16 0 00220 34014 2054 all +15&33.1067.all.160 0 02563 279556 18440 all +15&33.1067.all.161 0 02587 280329 18491 all +15&33.1067.all.162 0 02589 282067 18608 all +15&33.1067.all.163 0 02601 282834 18659 all +15&33.1067.all.164 0 02642 284616 18776 all +15&33.1067.all.165 0 02680 286376 18892 all +15&33.1067.all.166 0 02694 287889 18988 all +15&33.1067.all.167 0 02705 289697 19104 all +15&33.1067.all.168 0 02759 291479 19221 all +15&33.1067.all.169 0 02801 293251 19337 all +15&33.1067.all.17 0 00234 34769 2105 all +15&33.1067.all.170 0 02805 295033 19454 all +15&33.1067.all.171 0 02807 296805 19570 all +15&33.1067.all.172 0 02809 298587 19687 all +15&33.1067.all.173 0 02811 300359 19803 all +15&33.1067.all.174 0 02834 302252 19930 all +15&33.1067.all.175 0 02866 303934 20042 all +15&33.1067.all.176 0 02879 305666 20159 all +15&33.1067.all.177 0 02885 307397 20275 all +15&33.1067.all.178 0 02915 308176 20327 all +15&33.1067.all.179 0 02932 309910 20443 all +15&33.1067.all.18 0 00282 36505 2222 all +15&33.1067.all.180 0 02940 311648 20560 all +15&33.1067.all.181 0 02960 313518 20686 all +15&33.1067.all.182 0 02996 315202 20799 all +15&33.1067.all.183 0 02998 316938 20915 all +15&33.1067.all.184 0 03012 317723 20967 all +15&33.1067.all.185 0 03034 319445 21083 all +15&33.1067.all.186 0 03050 321177 21200 all +15&33.1067.all.187 0 03052 322899 21316 all +15&33.1067.all.188 0 03054 324631 21433 all +15&33.1067.all.189 0 03056 326353 21549 all +15&33.1067.all.19 0 00284 38234 2338 all +15&33.1067.all.190 0 03074 328085 21666 all +15&33.1067.all.191 0 03076 329807 21782 all +15&33.1067.all.192 0 03080 331539 21899 all +15&33.1067.all.193 0 03097 333561 22039 all +15&33.1067.all.194 0 03099 335291 22156 all +15&33.1067.all.195 0 03104 336066 22207 all +15&33.1067.all.196 0 03124 337810 22324 all +15&33.1067.all.197 0 03126 338585 22375 all +15&33.1067.all.198 0 03136 339370 22427 all +15&33.1067.all.199 0 03138 340145 22478 all +15&33.1067.all.2 0 00021 4174 283 all +15&33.1067.all.20 0 00292 39973 2455 all +15&33.1067.all.200 0 03152 340930 22530 all +15&33.1067.all.201 0 03154 342664 22646 all +15&33.1067.all.202 0 03156 343449 22698 all +15&33.1067.all.203 0 03171 344224 22749 all +15&33.1067.all.204 0 03173 345956 22866 all +15&33.1067.all.205 0 03175 346731 22917 all +15&33.1067.all.206 0 03177 347516 22969 all +15&33.1067.all.207 0 03179 348291 23020 all +15&33.1067.all.208 0 03202 349076 23072 all +15&33.1067.all.209 0 03208 350813 23188 all +15&33.1067.all.21 0 00294 41702 2571 all +15&33.1067.all.210 0 03210 352560 23305 all +15&33.1067.all.211 0 03212 354297 23421 all +15&33.1067.all.212 0 03214 356044 23538 all +15&33.1067.all.213 0 03216 357781 23654 all +15&33.1067.all.214 0 03218 359528 23771 all +15&33.1067.all.215 0 03237 361265 23887 all +15&33.1067.all.216 0 03250 362999 24004 all +15&33.1067.all.217 0 03256 364755 24120 all +15&33.1067.all.218 0 03258 366521 24237 all +15&33.1067.all.219 0 03262 368277 24353 all +15&33.1067.all.22 0 00321 43441 2688 all +15&33.1067.all.220 0 03276 370043 24470 all +15&33.1067.all.221 0 03282 371816 24586 all +15&33.1067.all.222 0 03290 372601 24638 all +15&33.1067.all.223 0 03311 373376 24689 all +15&33.1067.all.224 0 03341 375112 24806 all +15&33.1067.all.225 0 03343 377955 25000 all +15&33.1067.all.226 0 03353 379691 25117 all +15&33.1067.all.227 0 03383 381160 25212 all +15&33.1067.all.228 0 03409 382639 25308 all +15&33.1067.all.229 0 03419 384108 25403 all +15&33.1067.all.23 0 00341 45160 2804 all +15&33.1067.all.230 0 03421 385587 25499 all +15&33.1067.all.231 0 03423 387056 25594 all +15&33.1067.all.232 0 03453 388535 25690 all +15&33.1067.all.233 0 03483 390004 25785 all +15&33.1067.all.234 0 03485 391483 25881 all +15&33.1067.all.235 0 03487 392952 25976 all +15&33.1067.all.236 0 03489 394431 26072 all +15&33.1067.all.237 0 03511 395900 26167 all +15&33.1067.all.238 0 03536 397492 26273 all +15&33.1067.all.239 0 03568 399154 26385 all +15&33.1067.all.24 0 00353 46475 2888 all +15&33.1067.all.240 0 03583 400892 26502 all +15&33.1067.all.241 0 03585 402650 26618 all +15&33.1067.all.242 0 03591 404418 26735 all +15&33.1067.all.243 0 03593 406176 26851 all +15&33.1067.all.244 0 03609 407944 26968 all +15&33.1067.all.245 0 03624 409668 27084 all +15&33.1067.all.246 0 03628 411400 27201 all +15&33.1067.all.247 0 03632 412169 27252 all +15&33.1067.all.248 0 03653 412948 27304 all +15&33.1067.all.249 0 03655 414685 27420 all +15&33.1067.all.25 0 00367 49167 3070 all +15&33.1067.all.250 0 03659 416432 27537 all +15&33.1067.all.251 0 03661 418169 27653 all +15&33.1067.all.252 0 03665 419916 27770 all +15&33.1067.all.253 0 03680 421653 27886 all +15&33.1067.all.254 0 03693 423411 28003 all +15&33.1067.all.255 0 03699 425173 28119 all +15&33.1067.all.256 0 03701 426945 28236 all +15&33.1067.all.257 0 03744 429007 28376 all +15&33.1067.all.258 0 03748 430740 28493 all +15&33.1067.all.259 0 03766 432470 28609 all +15&33.1067.all.26 0 00409 51206 3211 all +15&33.1067.all.260 0 03768 434206 28726 all +15&33.1067.all.261 0 03770 434983 28777 all +15&33.1067.all.262 0 03772 435770 28829 all +15&33.1067.all.263 0 03774 436547 28880 all +15&33.1067.all.264 0 03785 437447 28942 all +15&33.1067.all.265 0 03827 439124 29054 all +15&33.1067.all.266 0 03844 440910 29171 all +15&33.1067.all.267 0 03846 442697 29287 all +15&33.1067.all.268 0 03858 443482 29339 all +15&33.1067.all.269 0 03860 445247 29455 all +15&33.1067.all.27 0 00428 53046 3334 all +15&33.1067.all.270 0 03874 446032 29507 all +15&33.1067.all.271 0 03876 447811 29623 all +15&33.1067.all.272 0 03885 448594 29675 all +15&33.1067.all.273 0 03897 450356 29791 all +15&33.1067.all.274 0 03908 451133 29843 all +15&33.1067.all.275 0 03927 452906 29959 all +15&33.1067.all.276 0 03938 454691 30076 all +15&33.1067.all.277 0 03958 456462 30192 all +15&33.1067.all.278 0 03975 458222 30309 all +15&33.1067.all.279 0 03983 459110 30370 all +15&33.1067.all.28 0 00466 54773 3451 all +15&33.1067.all.280 0 04006 460855 30483 all +15&33.1067.all.281 0 04008 461573 30534 all +15&33.1067.all.282 0 04010 462301 30586 all +15&33.1067.all.283 0 04018 463092 30644 all +15&33.1067.all.284 0 04037 464852 30757 all +15&33.1067.all.285 0 04067 465572 30808 all +15&33.1067.all.286 0 04098 466375 30867 all +15&33.1067.all.287 0 04117 468065 30979 all +15&33.1067.all.288 0 04147 470512 31141 all +15&33.1067.all.289 0 04187 475766 31467 all +15&33.1067.all.29 0 00495 56076 3534 all +15&33.1067.all.290 0 04901 479213 31675 all +15&33.1067.all.291 0 04903 480533 31765 all +15&33.1067.all.292 0 04905 481863 31856 all +15&33.1067.all.293 0 04907 483183 31946 all +15&33.1067.all.294 0 04909 484513 32037 all +15&33.1067.all.295 0 04911 485833 32127 all +15&33.1067.all.296 0 04913 487163 32218 all +15&33.1067.all.297 0 04915 488483 32308 all +15&33.1067.all.3 0 00119 22173 1257 all +15&33.1067.all.30 0 00497 57389 3618 all +15&33.1067.all.31 0 00525 60077 3800 all +15&33.1067.all.32 0 00552 61814 3917 all +15&33.1067.all.33 0 00567 63549 4033 all +15&33.1067.all.34 0 00584 65279 4150 all +15&33.1067.all.35 0 00598 67022 4266 all +15&33.1067.all.36 0 00624 68473 4359 all +15&33.1067.all.37 0 00639 70197 4475 all +15&33.1067.all.38 0 00658 71931 4592 all +15&33.1067.all.39 0 00665 73778 4718 all +15&33.1067.all.4 0 00095 7503 480 all +15&33.1067.all.40 0 00717 75478 4831 all +15&33.1067.all.41 0 00778 77601 4978 all +15&33.1067.all.42 0 00854 79332 5095 all +15&33.1067.all.43 0 00883 80617 5178 all +15&33.1067.all.44 0 00895 81912 5262 all +15&33.1067.all.45 0 00897 83197 5345 all +15&33.1067.all.46 0 00926 84492 5429 all +15&33.1067.all.47 0 00933 86251 5545 all +15&33.1067.all.48 0 00965 87025 5597 all +15&33.1067.all.49 0 00971 88888 5720 all +15&33.1067.all.5 0 00100 11307 680 all +15&33.1067.all.50 0 00987 90679 5837 all +15&33.1067.all.51 0 01014 92615 5962 all +15&33.1067.all.52 0 01037 94781 6105 all +15&33.1067.all.53 0 01053 97058 6260 all +15&33.1067.all.54 0 01059 98815 6377 all +15&33.1067.all.55 0 01065 100562 6493 all +15&33.1067.all.56 0 01079 102319 6610 all +15&33.1067.all.57 0 01097 104369 6750 all +15&33.1067.all.58 0 01101 106213 6868 all +15&33.1067.all.59 0 01105 108047 6985 all +15&33.1067.all.6 0 00102 12915 762 all +15&33.1067.all.60 0 01130 109891 7103 all +15&33.1067.all.61 0 01140 111723 7226 all +15&33.1067.all.62 0 01142 113483 7343 all +15&33.1067.all.63 0 01173 116646 7558 all +15&33.1067.all.64 0 01186 118410 7675 all +15&33.1067.all.65 0 01198 120146 7791 all +15&33.1067.all.66 0 01200 121892 7908 all +15&33.1067.all.67 0 01202 123628 8024 all +15&33.1067.all.68 0 01210 125374 8141 all +15&33.1067.all.69 0 01237 127411 8281 all +15&33.1067.all.7 0 00104 15820 917 all +15&33.1067.all.70 0 01260 129470 8422 all +15&33.1067.all.71 0 01268 131238 8538 all +15&33.1067.all.72 0 01276 132825 8641 all +15&33.1067.all.73 0 01310 134491 8753 all +15&33.1067.all.74 0 01316 136240 8870 all +15&33.1067.all.75 0 01356 137979 8986 all +15&33.1067.all.76 0 01396 139728 9103 all +15&33.1067.all.77 0 01418 141768 9243 all +15&33.1067.all.78 0 01424 143512 9360 all +15&33.1067.all.79 0 01430 145629 9507 all +15&33.1067.all.8 0 00106 17431 999 all +15&33.1067.all.80 0 01440 148383 9692 all +15&33.1067.all.81 0 01466 150117 9808 all +15&33.1067.all.82 0 01476 151861 9925 all +15&33.1067.all.83 0 01496 153896 10065 all +15&33.1067.all.84 0 01498 155918 10206 all +15&33.1067.all.85 0 01508 157630 10322 all +15&33.1067.all.86 0 01540 159352 10439 all +15&33.1067.all.87 0 01562 162134 10630 all +15&33.1067.all.88 0 01572 163856 10747 all +15&33.1067.all.89 0 01574 165568 10863 all +15&33.1067.all.9 0 00113 20735 1177 all +15&33.1067.all.90 0 01601 167290 10980 all +15&33.1067.all.91 0 01605 169123 11103 all +15&33.1067.all.92 0 01609 170884 11220 all +15&33.1067.all.93 0 01617 172635 11336 all +15&33.1067.all.94 0 01619 174396 11453 all +15&33.1067.all.95 0 01640 176447 11593 all +15&33.1067.all.96 0 01661 178227 11710 all +15&33.1067.all.97 0 01695 180042 11833 all +15&33.1067.all.98 0 01719 181528 11929 all +15&33.1067.all.99 0 01725 183287 12045 all +15&33.1324.equ_disp.1 0 02653 284616 18776 all +15&33.1492.ap_qck.1 0 04041 464852 30757 all +15&33.1492.ap_qck.10 0 04079 465572 30808 all +15&33.1492.ap_qck.11 0 04083 465572 30808 all +15&33.1492.ap_qck.12 0 04087 465572 30808 all +15&33.1492.ap_qck.13 0 04091 465572 30808 all +15&33.1492.ap_qck.2 0 04045 464852 30757 all +15&33.1492.ap_qck.3 0 04049 464852 30757 all +15&33.1492.ap_qck.4 0 04053 464852 30757 all +15&33.1492.ap_qck.5 0 04057 464852 30757 all +15&33.1492.ap_qck.6 0 04061 464852 30757 all +15&33.1492.ap_qck.7 0 04065 464852 30757 all +15&33.1492.ap_qck.8 0 04071 465572 30808 all +15&33.1492.ap_qck.9 0 04075 465572 30808 all +15&33.1492.bas_par2.1 0 00438 53046 3334 all +15&33.1492.bas_par2.2 0 00442 53046 3334 all +15&33.1492.bas_par2.3 0 00456 53046 3334 all +15&33.1492.bas_par2.4 0 00460 53046 3334 all +15&33.1492.bas_par2.5 0 00464 53046 3334 all +15&33.1492.bas_par2.6 0 00470 54773 3451 all +15&33.1492.bas_par2.7 0 00484 54773 3451 all +15&33.1492.bas_par2.8 0 00489 54773 3451 all +15&33.1492.bas_par2.9 0 00493 54773 3451 all +15&33.1492.dia_labe.1 0 03130 338585 22375 all +15&33.1492.dia_labe.2 0 03134 338585 22375 all +15&33.1492.dia_node.1 0 03040 319445 21083 all +15&33.1492.dia_node.2 0 03044 319445 21083 all +15&33.1492.dia_summ.1 0 03305 372601 24638 all +15&33.1492.dia_summ.10 0 03347 377955 25000 all +15&33.1492.dia_summ.11 0 03351 377955 25000 all +15&33.1492.dia_summ.12 0 03357 379691 25117 all +15&33.1492.dia_summ.13 0 03361 379691 25117 all +15&33.1492.dia_summ.14 0 03365 379691 25117 all +15&33.1492.dia_summ.15 0 03369 379691 25117 all +15&33.1492.dia_summ.16 0 03373 379691 25117 all +15&33.1492.dia_summ.17 0 03377 379691 25117 all +15&33.1492.dia_summ.18 0 03381 379691 25117 all +15&33.1492.dia_summ.19 0 03387 381160 25212 all +15&33.1492.dia_summ.2 0 03309 372601 24638 all +15&33.1492.dia_summ.20 0 03391 381160 25212 all +15&33.1492.dia_summ.21 0 03395 381160 25212 all +15&33.1492.dia_summ.22 0 03399 381160 25212 all +15&33.1492.dia_summ.23 0 03403 381160 25212 all +15&33.1492.dia_summ.24 0 03407 381160 25212 all +15&33.1492.dia_summ.25 0 03413 382639 25308 all +15&33.1492.dia_summ.26 0 03417 382639 25308 all +15&33.1492.dia_summ.27 0 03427 387056 25594 all +15&33.1492.dia_summ.28 0 03431 387056 25594 all +15&33.1492.dia_summ.29 0 03435 387056 25594 all +15&33.1492.dia_summ.3 0 03315 373376 24689 all +15&33.1492.dia_summ.30 0 03439 387056 25594 all +15&33.1492.dia_summ.31 0 03443 387056 25594 all +15&33.1492.dia_summ.32 0 03447 387056 25594 all +15&33.1492.dia_summ.33 0 03451 387056 25594 all +15&33.1492.dia_summ.34 0 03457 388535 25690 all +15&33.1492.dia_summ.35 0 03461 388535 25690 all +15&33.1492.dia_summ.36 0 03465 388535 25690 all +15&33.1492.dia_summ.37 0 03469 388535 25690 all +15&33.1492.dia_summ.38 0 03473 388535 25690 all +15&33.1492.dia_summ.39 0 03477 388535 25690 all +15&33.1492.dia_summ.4 0 03319 373376 24689 all +15&33.1492.dia_summ.40 0 03481 388535 25690 all +15&33.1492.dia_summ.41 0 03493 394431 26072 all +15&33.1492.dia_summ.42 0 03497 394431 26072 all +15&33.1492.dia_summ.43 0 03501 394431 26072 all +15&33.1492.dia_summ.44 0 03505 394431 26072 all +15&33.1492.dia_summ.45 0 03509 394431 26072 all +15&33.1492.dia_summ.46 0 03515 395900 26167 all +15&33.1492.dia_summ.5 0 03323 373376 24689 all +15&33.1492.dia_summ.6 0 03327 373376 24689 all +15&33.1492.dia_summ.7 0 03331 373376 24689 all +15&33.1492.dia_summ.8 0 03335 373376 24689 all +15&33.1492.dia_summ.9 0 03339 373376 24689 all +15&33.1492.equ_disp.1 0 02658 284616 18776 all +15&33.1492.equ_disp.2 0 02662 284616 18776 all +15&33.1492.equ_disp.3 0 02666 284616 18776 all +15&33.1492.equ_disp.4 0 02670 284616 18776 all +15&33.1492.equ_spac.1 0 02609 282834 18659 all +15&33.1492.equ_spac.2 0 02613 282834 18659 all +15&33.1492.equ_summ.1 0 02709 289697 19104 all +15&33.1492.equ_summ.10 0 02745 289697 19104 all +15&33.1492.equ_summ.11 0 02749 289697 19104 all +15&33.1492.equ_summ.12 0 02753 289697 19104 all +15&33.1492.equ_summ.13 0 02757 289697 19104 all +15&33.1492.equ_summ.14 0 02763 291479 19221 all +15&33.1492.equ_summ.15 0 02767 291479 19221 all +15&33.1492.equ_summ.16 0 02771 291479 19221 all +15&33.1492.equ_summ.17 0 02775 291479 19221 all +15&33.1492.equ_summ.18 0 02779 291479 19221 all +15&33.1492.equ_summ.19 0 02783 291479 19221 all +15&33.1492.equ_summ.2 0 02713 289697 19104 all +15&33.1492.equ_summ.20 0 02787 291479 19221 all +15&33.1492.equ_summ.21 0 02791 291479 19221 all +15&33.1492.equ_summ.22 0 02795 291479 19221 all +15&33.1492.equ_summ.23 0 02799 291479 19221 all +15&33.1492.equ_summ.3 0 02717 289697 19104 all +15&33.1492.equ_summ.4 0 02721 289697 19104 all +15&33.1492.equ_summ.5 0 02725 289697 19104 all +15&33.1492.equ_summ.6 0 02729 289697 19104 all +15&33.1492.equ_summ.7 0 02733 289697 19104 all +15&33.1492.equ_summ.8 0 02737 289697 19104 all +15&33.1492.equ_summ.9 0 02741 289697 19104 all +15&33.1492.equ_symb.1 0 02526 276266 18220 all +15&33.1492.equ_symb.2 0 02530 276266 18220 all +15&33.1492.equ_symb.3 0 02534 276266 18220 all +15&33.1492.equ_symb.4 0 02538 276266 18220 all +15&33.1492.equ_symb.5 0 02544 278000 18337 all +15&33.1492.equ_symb.6 0 02548 278000 18337 all +15&33.1492.equ_symb.7 0 02552 278000 18337 all +15&33.1492.equ_symb.8 0 02567 279556 18440 all +15&33.1492.equ_symb.9 0 02571 279556 18440 all +15&33.1492.fmt_head.1 0 01885 199308 13110 all +15&33.1492.fmt_head.2 0 01891 199308 13110 all +15&33.1492.fmt_head.3 0 01897 199308 13110 all +15&33.1492.prg_perl.1 0 03962 456462 30192 all +15&33.1492.prg_perl.2 0 03966 456462 30192 all +15&33.1492.prg_perl.3 0 03970 456462 30192 all +15&33.1492.str_list.1 0 00750 75478 4831 all +15&33.1492.str_list.10 0 00905 83197 5345 all +15&33.1492.str_list.2 0 00754 75478 4831 all +15&33.1492.str_list.3 0 00782 77601 4978 all +15&33.1492.str_list.4 0 00786 77601 4978 all +15&33.1492.str_list.5 0 00881 79332 5095 all +15&33.1492.str_list.6 0 00880 79332 5095 all +15&33.1492.str_list.7 0 00887 80617 5178 all +15&33.1492.str_list.8 0 00891 80617 5178 all +15&33.1492.str_list.9 0 00901 83197 5345 all +15&33.1492.typ_plai.1 0 01665 178227 11710 all +15&33.1492.typ_plai.2 0 01669 178227 11710 all +15&33.1492.typ_plai.3 0 01673 178227 11710 all +15&33.1492.typ_plai.4 0 01677 178227 11710 all +15&33.1492.typ_plai.5 0 01681 178227 11710 all +15&33.1492.typ_plai.6 0 01685 178227 11710 all +15&33.1492.typ_plai.7 0 01689 178227 11710 all +15&36.2625.str_theo.1 0 00988 90679 5837 all +15&36.4047.bgr_rota.1 0 02917 308176 20327 all +15&36.4047.bgr_scal.1 0 02934 309910 20443 all +15&36.4047.fmt_marg.1 0 01822 192876 12685 all +15&36.4047.preface.1 0 00026 4174 283 all +15&36.4047.preface.10 0 00044 4174 283 all +15&36.4047.preface.11 0 00046 4174 283 all +15&36.4047.preface.12 0 00048 4174 283 all +15&36.4047.preface.13 0 00050 4174 283 all +15&36.4047.preface.14 0 00052 4174 283 all +15&36.4047.preface.15 0 00054 4174 283 all +15&36.4047.preface.16 0 00056 4174 283 all +15&36.4047.preface.17 0 00058 4174 283 all +15&36.4047.preface.18 0 00060 4174 283 all +15&36.4047.preface.19 0 00062 4174 283 all +15&36.4047.preface.2 0 00028 4174 283 all +15&36.4047.preface.20 0 00064 4174 283 all +15&36.4047.preface.21 0 00066 4174 283 all +15&36.4047.preface.22 0 00068 4174 283 all +15&36.4047.preface.23 0 00070 4174 283 all +15&36.4047.preface.24 0 00072 4174 283 all +15&36.4047.preface.25 0 00074 4174 283 all +15&36.4047.preface.3 0 00030 4174 283 all +15&36.4047.preface.4 0 00032 4174 283 all +15&36.4047.preface.5 0 00034 4174 283 all +15&36.4047.preface.6 0 00036 4174 283 all +15&36.4047.preface.7 0 00038 4174 283 all +15&36.4047.preface.8 0 00040 4174 283 all +15&36.4047.preface.9 0 00042 4174 283 all +15&36.4047.ref.1 0 01976 208289 13703 all +15&36.4047.str_colu.1 0 01243 127411 8281 all +15&36.4047.str_figs.1 0 01031 92615 5962 all +15&36.4047.tbl_marg.1 0 02296 242917 15986 all +15&36.4047.typ_illu.1 0 01642 176447 11593 all +15&36.4047.typ_ordi.1 0 01320 136240 8870 all +15&36.4047.typ_ordi.10 0 01358 137979 8986 all +15&36.4047.typ_ordi.11 0 01362 137979 8986 all +15&36.4047.typ_ordi.12 0 01366 137979 8986 all +15&36.4047.typ_ordi.13 0 01370 137979 8986 all +15&36.4047.typ_ordi.14 0 01374 137979 8986 all +15&36.4047.typ_ordi.15 0 01378 137979 8986 all +15&36.4047.typ_ordi.16 0 01382 137979 8986 all +15&36.4047.typ_ordi.17 0 01386 137979 8986 all +15&36.4047.typ_ordi.18 0 01390 137979 8986 all +15&36.4047.typ_ordi.2 0 01324 136240 8870 all +15&36.4047.typ_ordi.3 0 01328 136240 8870 all +15&36.4047.typ_ordi.4 0 01332 136240 8870 all +15&36.4047.typ_ordi.5 0 01336 136240 8870 all +15&36.4047.typ_ordi.6 0 01340 136240 8870 all +15&36.4047.typ_ordi.7 0 01344 136240 8870 all +15&36.4047.typ_ordi.8 0 01348 136240 8870 all +15&36.4047.typ_ordi.9 0 01352 136240 8870 all +15&36.4047.typ_over.1 0 01594 165568 10863 all +15&36.4062.bas_char.1 0 00232 34014 2054 all +15&36.4062.bas_char.10 0 00252 34769 2105 all +15&36.4062.bas_char.11 0 00254 34769 2105 all +15&36.4062.bas_char.12 0 00256 34769 2105 all +15&36.4062.bas_char.13 0 00258 34769 2105 all +15&36.4062.bas_char.14 0 00260 34769 2105 all +15&36.4062.bas_char.15 0 00262 34769 2105 all +15&36.4062.bas_char.16 0 00264 34769 2105 all +15&36.4062.bas_char.17 0 00266 34769 2105 all +15&36.4062.bas_char.18 0 00268 34769 2105 all +15&36.4062.bas_char.19 0 00270 34769 2105 all +15&36.4062.bas_char.2 0 00236 34769 2105 all +15&36.4062.bas_char.20 0 00272 34769 2105 all +15&36.4062.bas_char.21 0 00274 34769 2105 all +15&36.4062.bas_char.22 0 00276 34769 2105 all +15&36.4062.bas_char.23 0 00278 34769 2105 all +15&36.4062.bas_char.24 0 00280 34769 2105 all +15&36.4062.bas_char.25 0 00286 38234 2338 all +15&36.4062.bas_char.26 0 00288 38234 2338 all +15&36.4062.bas_char.27 0 00290 38234 2338 all +15&36.4062.bas_char.3 0 00238 34769 2105 all +15&36.4062.bas_char.4 0 00240 34769 2105 all +15&36.4062.bas_char.5 0 00242 34769 2105 all +15&36.4062.bas_char.6 0 00244 34769 2105 all +15&36.4062.bas_char.7 0 00246 34769 2105 all +15&36.4062.bas_char.8 0 00248 34769 2105 all +15&36.4062.bas_char.9 0 00250 34769 2105 all +15&36.4062.bas_conv.1 0 00650 70197 4475 all +15&36.4062.bas_conv.2 0 00652 70197 4475 all +15&36.4062.bas_conv.3 0 00654 70197 4475 all +15&36.4062.bas_conv.4 0 00656 70197 4475 all +15&36.4062.bas_date.1 0 00563 61814 3917 all +15&36.4062.bas_date.2 0 00565 61814 3917 all +15&36.4062.bas_drop.1 0 00635 68473 4359 all +15&36.4062.bas_drop.2 0 00637 68473 4359 all +15&36.4062.bas_empt.1 0 00309 41702 2571 all +15&36.4062.bas_font.1 0 00319 41702 2571 all +15&36.4062.bas_font.10 0 00339 43441 2688 all +15&36.4062.bas_font.11 0 00343 45160 2804 all +15&36.4062.bas_font.12 0 00345 45160 2804 all +15&36.4062.bas_font.13 0 00347 45160 2804 all +15&36.4062.bas_font.14 0 00349 45160 2804 all +15&36.4062.bas_font.15 0 00351 45160 2804 all +15&36.4062.bas_font.16 0 00355 46475 2888 all +15&36.4062.bas_font.17 0 00357 46475 2888 all +15&36.4062.bas_font.18 0 00359 46475 2888 all +15&36.4062.bas_font.19 0 00361 46475 2888 all +15&36.4062.bas_font.2 0 00323 43441 2688 all +15&36.4062.bas_font.3 0 00325 43441 2688 all +15&36.4062.bas_font.4 0 00327 43441 2688 all +15&36.4062.bas_font.5 0 00329 43441 2688 all +15&36.4062.bas_font.6 0 00331 43441 2688 all +15&36.4062.bas_font.7 0 00333 43441 2688 all +15&36.4062.bas_font.8 0 00335 43441 2688 all +15&36.4062.bas_font.9 0 00337 43441 2688 all +15&36.4062.bas_head.1 0 00377 49167 3070 all +15&36.4062.bas_head.2 0 00379 49167 3070 all +15&36.4062.bas_hyph.1 0 00536 60077 3800 all +15&36.4062.bas_hyph.2 0 00538 60077 3800 all +15&36.4062.bas_hyph.3 0 00540 60077 3800 all +15&36.4062.bas_lang.1 0 00578 63549 4033 all +15&36.4062.bas_lang.2 0 00580 63549 4033 all +15&36.4062.bas_lang.3 0 00582 63549 4033 all +15&36.4062.bas_lang.4 0 00586 65279 4150 all +15&36.4062.bas_lang.5 0 00588 65279 4150 all +15&36.4062.bas_lang.6 0 00590 65279 4150 all +15&36.4062.bas_lang.7 0 00592 65279 4150 all +15&36.4062.bas_line.1 0 00519 57389 3618 all +15&36.4062.bas_line.2 0 00521 57389 3618 all +15&36.4062.bas_line.3 0 00523 57389 3618 all +15&36.4062.bas_objs.1 0 00175 27879 1654 all +15&36.4062.bas_objs.10 0 00195 29621 1770 all +15&36.4062.bas_objs.11 0 00197 29621 1770 all +15&36.4062.bas_objs.2 0 00179 29621 1770 all +15&36.4062.bas_objs.3 0 00181 29621 1770 all +15&36.4062.bas_objs.4 0 00183 29621 1770 all +15&36.4062.bas_objs.5 0 00185 29621 1770 all +15&36.4062.bas_objs.6 0 00187 29621 1770 all +15&36.4062.bas_objs.7 0 00189 29621 1770 all +15&36.4062.bas_objs.8 0 00191 29621 1770 all +15&36.4062.bas_objs.9 0 00193 29621 1770 all +15&36.4062.bas_par1.1 0 00389 49167 3070 all +15&36.4062.bas_par1.10 0 00407 49167 3070 all +15&36.4062.bas_par1.11 0 00411 51206 3211 all +15&36.4062.bas_par1.12 0 00413 51206 3211 all +15&36.4062.bas_par1.13 0 00415 51206 3211 all +15&36.4062.bas_par1.2 0 00391 49167 3070 all +15&36.4062.bas_par1.3 0 00393 49167 3070 all +15&36.4062.bas_par1.4 0 00395 49167 3070 all +15&36.4062.bas_par1.5 0 00397 49167 3070 all +15&36.4062.bas_par1.6 0 00399 49167 3070 all +15&36.4062.bas_par1.7 0 00401 49167 3070 all +15&36.4062.bas_par1.8 0 00403 49167 3070 all +15&36.4062.bas_par1.9 0 00405 49167 3070 all +15&36.4062.bas_par2.1 0 00426 51206 3211 all +15&36.4062.bas_par2.10 0 00472 54773 3451 all +15&36.4062.bas_par2.11 0 00474 54773 3451 all +15&36.4062.bas_par2.12 0 00476 54773 3451 all +15&36.4062.bas_par2.13 0 00478 54773 3451 all +15&36.4062.bas_par2.14 0 00480 54773 3451 all +15&36.4062.bas_par2.15 0 00499 57389 3618 all +15&36.4062.bas_par2.16 0 00501 57389 3618 all +15&36.4062.bas_par2.17 0 00503 57389 3618 all +15&36.4062.bas_par2.18 0 00505 57389 3618 all +15&36.4062.bas_par2.2 0 00430 53046 3334 all +15&36.4062.bas_par2.3 0 00432 53046 3334 all +15&36.4062.bas_par2.4 0 00434 53046 3334 all +15&36.4062.bas_par2.5 0 00444 53046 3334 all +15&36.4062.bas_par2.6 0 00446 53046 3334 all +15&36.4062.bas_par2.7 0 00448 53046 3334 all +15&36.4062.bas_par2.8 0 00450 53046 3334 all +15&36.4062.bas_par2.9 0 00452 53046 3334 all +15&36.4062.bas_spac.1 0 00212 30959 1854 all +15&36.4062.bas_spac.2 0 00214 30959 1854 all +15&36.4062.bas_spac.3 0 00218 32287 1937 all +15&36.4062.bas_star.1 0 00145 22173 1257 all +15&36.4062.bas_star.2 0 00147 22173 1257 all +15&36.4062.bas_star.3 0 00161 25850 1513 all +15&36.4062.bas_unde.1 0 00550 60077 3800 all +15&36.4062.bas_verb.1 0 00619 67022 4266 all +15&36.4062.bgr_boxs.1 0 02877 303934 20042 all +15&36.4062.bgr_boxs.2 0 02881 305666 20159 all +15&36.4062.bgr_boxs.3 0 02883 305666 20159 all +15&36.4062.bgr_boxs.4 0 02887 307397 20275 all +15&36.4062.bgr_boxs.5 0 02889 307397 20275 all +15&36.4062.bgr_boxs.6 0 02891 307397 20275 all +15&36.4062.bgr_colo.1 0 02860 302252 19930 all +15&36.4062.bgr_colo.2 0 02862 302252 19930 all +15&36.4062.bgr_colo.3 0 02864 302252 19930 all +15&36.4062.bgr_incl.1 0 02950 311648 20560 all +15&36.4062.bgr_incl.2 0 02952 311648 20560 all +15&36.4062.bgr_incl.3 0 02954 311648 20560 all +15&36.4062.bgr_outl.1 0 02903 307397 20275 all +15&36.4062.bgr_rota.1 0 02913 307397 20275 all +15&36.4062.bgr_rota.2 0 02919 308176 20327 all +15&36.4062.bgr_scal.1 0 02930 308176 20327 all +15&36.4062.bgr_scal.2 0 02936 309910 20443 all +15&36.4062.dia.1 0 02979 313518 20686 all +15&36.4062.dia.2 0 02982 313518 20686 all +15&36.4062.dia.3 0 02994 313518 20686 all +15&36.4062.dia_defi.1 0 03252 362999 24004 all +15&36.4062.dia_defi.2 0 03254 362999 24004 all +15&36.4062.dia_defi.3 0 03260 366521 24237 all +15&36.4062.dia_erro.1 0 03235 359528 23771 all +15&36.4062.dia_erro.2 0 03239 361265 23887 all +15&36.4062.dia_geom.1 0 03278 370043 24470 all +15&36.4062.dia_geom.2 0 03280 370043 24470 all +15&36.4062.dia_geom.3 0 03284 371816 24586 all +15&36.4062.dia_geom.4 0 03286 371816 24586 all +15&36.4062.dia_geom.5 0 03288 371816 24586 all +15&36.4062.dia_labe.1 0 03114 336066 22207 all +15&36.4062.dia_labe.2 0 03116 336066 22207 all +15&36.4062.dia_labe.3 0 03118 336066 22207 all +15&36.4062.dia_labe.4 0 03120 336066 22207 all +15&36.4062.dia_labe.5 0 03122 336066 22207 all +15&36.4062.dia_link.1 0 03072 326353 21549 all +15&36.4062.dia_link.2 0 03078 329807 21782 all +15&36.4062.dia_node.1 0 03010 316938 20915 all +15&36.4062.dia_node.10 0 03030 317723 20967 all +15&36.4062.dia_node.11 0 03032 317723 20967 all +15&36.4062.dia_node.12 0 03036 319445 21083 all +15&36.4062.dia_node.13 0 03046 319445 21083 all +15&36.4062.dia_node.14 0 03048 319445 21083 all +15&36.4062.dia_node.2 0 03014 317723 20967 all +15&36.4062.dia_node.3 0 03016 317723 20967 all +15&36.4062.dia_node.4 0 03018 317723 20967 all +15&36.4062.dia_node.5 0 03020 317723 20967 all +15&36.4062.dia_node.6 0 03022 317723 20967 all +15&36.4062.dia_node.7 0 03024 317723 20967 all +15&36.4062.dia_node.8 0 03026 317723 20967 all +15&36.4062.dia_node.9 0 03028 317723 20967 all +15&36.4062.dia_synt.1 0 03196 348291 23020 all +15&36.4062.dia_synt.2 0 03198 348291 23020 all +15&36.4062.dia_synt.3 0 03200 348291 23020 all +15&36.4062.dia_tree.1 0 03169 343449 22698 all +15&36.4062.dia_tree.2 0 03181 348291 23020 all +15&36.4062.equ.1 0 02478 272711 17984 all +15&36.4062.equ.2 0 02480 272711 17984 all +15&36.4062.equ.3 0 02482 272711 17984 all +15&36.4062.equ_disp.1 0 02632 282834 18659 all +15&36.4062.equ_disp.10 0 02682 286376 18892 all +15&36.4062.equ_disp.2 0 02634 282834 18659 all +15&36.4062.equ_disp.3 0 02636 282834 18659 all +15&36.4062.equ_disp.4 0 02638 282834 18659 all +15&36.4062.equ_disp.5 0 02640 282834 18659 all +15&36.4062.equ_disp.6 0 02672 284616 18776 all +15&36.4062.equ_disp.7 0 02674 284616 18776 all +15&36.4062.equ_disp.8 0 02676 284616 18776 all +15&36.4062.equ_disp.9 0 02678 284616 18776 all +15&36.4062.equ_intr.1 0 02491 272711 17984 all +15&36.4062.equ_intr.2 0 02493 272711 17984 all +15&36.4062.equ_intr.3 0 02497 274401 18097 all +15&36.4062.equ_spac.1 0 02603 282834 18659 all +15&36.4062.equ_spac.2 0 02605 282834 18659 all +15&36.4062.equ_spac.3 0 02615 282834 18659 all +15&36.4062.equ_spac.4 0 02617 282834 18659 all +15&36.4062.equ_spac.5 0 02619 282834 18659 all +15&36.4062.equ_spac.6 0 02621 282834 18659 all +15&36.4062.equ_summ.1 0 02803 293251 19337 all +15&36.4062.equ_symb.1 0 02510 276266 18220 all +15&36.4062.equ_symb.2 0 02512 276266 18220 all +15&36.4062.equ_symb.3 0 02514 276266 18220 all +15&36.4062.equ_symb.4 0 02516 276266 18220 all +15&36.4062.equ_symb.5 0 02518 276266 18220 all +15&36.4062.equ_symb.6 0 02520 276266 18220 all +15&36.4062.equ_symb.7 0 02522 276266 18220 all +15&36.4062.equ_symb.8 0 02555 278000 18337 all +15&36.4062.equ_tequ.1 0 02828 300359 19803 all +15&36.4062.equ_vert.1 0 02585 279556 18440 all +15&36.4062.fmt_head.1 0 01863 197226 12970 all +15&36.4062.fmt_head.10 0 01890 199308 13110 all +15&36.4062.fmt_head.11 0 01896 199308 13110 all +15&36.4062.fmt_head.12 0 01901 201086 13227 all +15&36.4062.fmt_head.13 0 01905 202854 13343 all +15&36.4062.fmt_head.14 0 01907 202854 13343 all +15&36.4062.fmt_head.15 0 01909 202854 13343 all +15&36.4062.fmt_head.16 0 01911 202854 13343 all +15&36.4062.fmt_head.17 0 01915 204632 13460 all +15&36.4062.fmt_head.18 0 01917 204632 13460 all +15&36.4062.fmt_head.19 0 01919 204632 13460 all +15&36.4062.fmt_head.2 0 01865 197226 12970 all +15&36.4062.fmt_head.20 0 01921 204632 13460 all +15&36.4062.fmt_head.21 0 01923 204632 13460 all +15&36.4062.fmt_head.22 0 01925 204632 13460 all +15&36.4062.fmt_head.23 0 01927 204632 13460 all +15&36.4062.fmt_head.24 0 01929 204632 13460 all +15&36.4062.fmt_head.25 0 01931 204632 13460 all +15&36.4062.fmt_head.26 0 01936 206400 13576 all +15&36.4062.fmt_head.27 0 01938 206400 13576 all +15&36.4062.fmt_head.28 0 01940 206400 13576 all +15&36.4062.fmt_head.3 0 01867 197226 12970 all +15&36.4062.fmt_head.4 0 01869 197226 12970 all +15&36.4062.fmt_head.5 0 01873 199308 13110 all +15&36.4062.fmt_head.6 0 01875 199308 13110 all +15&36.4062.fmt_head.7 0 01877 199308 13110 all +15&36.4062.fmt_head.8 0 01879 199308 13110 all +15&36.4062.fmt_head.9 0 01884 199308 13110 all +15&36.4062.fmt_marg.1 0 01824 192876 12685 all +15&36.4062.fmt_marg.10 0 01846 195437 12853 all +15&36.4062.fmt_marg.11 0 01848 195437 12853 all +15&36.4062.fmt_marg.2 0 01826 192876 12685 all +15&36.4062.fmt_marg.3 0 01828 192876 12685 all +15&36.4062.fmt_marg.4 0 01830 192876 12685 all +15&36.4062.fmt_marg.5 0 01832 192876 12685 all +15&36.4062.fmt_marg.6 0 01834 192876 12685 all +15&36.4062.fmt_marg.7 0 01836 192876 12685 all +15&36.4062.fmt_marg.8 0 01840 193658 12737 all +15&36.4062.fmt_marg.9 0 01844 195437 12853 all +15&36.4062.fmt_setu.1 0 01759 184183 12107 all +15&36.4062.fmt_setu.10 0 01779 185871 12219 all +15&36.4062.fmt_setu.11 0 01781 185871 12219 all +15&36.4062.fmt_setu.12 0 01787 189353 12452 all +15&36.4062.fmt_setu.2 0 01761 184183 12107 all +15&36.4062.fmt_setu.3 0 01763 184183 12107 all +15&36.4062.fmt_setu.4 0 01765 184183 12107 all +15&36.4062.fmt_setu.5 0 01767 184183 12107 all +15&36.4062.fmt_setu.6 0 01771 185871 12219 all +15&36.4062.fmt_setu.7 0 01773 185871 12219 all +15&36.4062.fmt_setu.8 0 01775 185871 12219 all +15&36.4062.fmt_setu.9 0 01777 185871 12219 all +15&36.4062.fmt_size.1 0 01803 191099 12569 all +15&36.4062.fmt_size.2 0 01805 191099 12569 all +15&36.4062.fmt_size.3 0 01807 191099 12569 all +15&36.4062.fmt_size.4 0 01809 191099 12569 all +15&36.4062.gra.1 0 03555 397492 26273 all +15&36.4062.gra.2 0 03557 397492 26273 all +15&36.4062.gra_capt.1 0 03607 406176 26851 all +15&36.4062.gra_data.1 0 03645 412169 27252 all +15&36.4062.gra_data.2 0 03647 412169 27252 all +15&36.4062.gra_data.3 0 03649 412169 27252 all +15&36.4062.gra_data.4 0 03651 412169 27252 all +15&36.4062.gra_data.5 0 03657 414685 27420 all +15&36.4062.gra_data.6 0 03663 418169 27653 all +15&36.4062.gra_func.1 0 03691 421653 27886 all +15&36.4062.gra_intr.1 0 03566 397492 26273 all +15&36.4062.gra_keys.1 0 03714 426945 28236 all +15&36.4062.gra_keys.10 0 03732 426945 28236 all +15&36.4062.gra_keys.11 0 03734 426945 28236 all +15&36.4062.gra_keys.12 0 03736 426945 28236 all +15&36.4062.gra_keys.13 0 03738 426945 28236 all +15&36.4062.gra_keys.14 0 03740 426945 28236 all +15&36.4062.gra_keys.15 0 03742 426945 28236 all +15&36.4062.gra_keys.2 0 03716 426945 28236 all +15&36.4062.gra_keys.3 0 03718 426945 28236 all +15&36.4062.gra_keys.4 0 03720 426945 28236 all +15&36.4062.gra_keys.5 0 03722 426945 28236 all +15&36.4062.gra_keys.6 0 03724 426945 28236 all +15&36.4062.gra_keys.7 0 03726 426945 28236 all +15&36.4062.gra_keys.8 0 03728 426945 28236 all +15&36.4062.gra_keys.9 0 03730 426945 28236 all +15&36.4062.gra_over.1 0 03579 399154 26385 all +15&36.4062.gra_over.2 0 03581 399154 26385 all +15&36.4062.gra_over.3 0 03587 402650 26618 all +15&36.4062.gra_over.4 0 03589 402650 26618 all +15&36.4062.gra_tick.1 0 03620 407944 26968 all +15&36.4062.gra_tick.2 0 03622 407944 26968 all +15&36.4062.gra_tick.3 0 03626 409668 27084 all +15&36.4062.gra_tick.4 0 03630 411400 27201 all +15&36.4062.pascal.1 0 04002 459110 30370 all +15&36.4062.pascal.2 0 04004 459110 30370 all +15&36.4062.preface.1 0 00076 4174 283 all +15&36.4062.preface.2 0 00078 4174 283 all +15&36.4062.preface.3 0 00080 4174 283 all +15&36.4062.preface.4 0 00082 4174 283 all +15&36.4062.preface.5 0 00084 4174 283 all +15&36.4062.preface.6 0 00086 4174 283 all +15&36.4062.preface.7 0 00088 4174 283 all +15&36.4062.preface.8 0 00090 4174 283 all +15&36.4062.prg.1 0 03804 437447 28942 all +15&36.4062.prg.2 0 03807 437447 28942 all +15&36.4062.prg.3 0 03809 437447 28942 all +15&36.4062.prg.4 0 03811 437447 28942 all +15&36.4062.prg.5 0 03813 437447 28942 all +15&36.4062.prg.6 0 03815 437447 28942 all +15&36.4062.prg_chan.1 0 03872 445247 29455 all +15&36.4062.prg_tabs.1 0 03895 448594 29675 all +15&36.4062.ref.1 0 01970 208289 13703 all +15&36.4062.ref.2 0 01972 208289 13703 all +15&36.4062.ref.3 0 01974 208289 13703 all +15&36.4062.ref.4 0 01978 208289 13703 all +15&36.4062.ref_chan.1 0 02113 223074 14673 all +15&36.4062.ref_chan.10 0 02135 226204 14873 all +15&36.4062.ref_chan.11 0 02137 226204 14873 all +15&36.4062.ref_chan.12 0 02139 226204 14873 all +15&36.4062.ref_chan.13 0 02141 226204 14873 all +15&36.4062.ref_chan.14 0 02143 226204 14873 all +15&36.4062.ref_chan.15 0 02145 226204 14873 all +15&36.4062.ref_chan.16 0 02147 226204 14873 all +15&36.4062.ref_chan.2 0 02115 223074 14673 all +15&36.4062.ref_chan.3 0 02119 224419 14757 all +15&36.4062.ref_chan.4 0 02121 224419 14757 all +15&36.4062.ref_chan.5 0 02123 224419 14757 all +15&36.4062.ref_chan.6 0 02125 224419 14757 all +15&36.4062.ref_chan.7 0 02129 226204 14873 all +15&36.4062.ref_chan.8 0 02131 226204 14873 all +15&36.4062.ref_chan.9 0 02133 226204 14873 all +15&36.4062.ref_cite.1 0 02017 210259 13839 all +15&36.4062.ref_cite.10 0 02040 212030 13956 all +15&36.4062.ref_cite.11 0 02042 212030 13956 all +15&36.4062.ref_cite.12 0 02044 212030 13956 all +15&36.4062.ref_cite.2 0 02019 210259 13839 all +15&36.4062.ref_cite.3 0 02026 212030 13956 all +15&36.4062.ref_cite.4 0 02028 212030 13956 all +15&36.4062.ref_cite.5 0 02030 212030 13956 all +15&36.4062.ref_cite.6 0 02032 212030 13956 all +15&36.4062.ref_cite.7 0 02034 212030 13956 all +15&36.4062.ref_cite.8 0 02036 212030 13956 all +15&36.4062.ref_cite.9 0 02038 212030 13956 all +15&36.4062.ref_crea.1 0 02162 227999 14990 all +15&36.4062.ref_crea.10 0 02184 231861 15247 all +15&36.4062.ref_crea.11 0 02186 231861 15247 all +15&36.4062.ref_crea.12 0 02188 231861 15247 all +15&36.4062.ref_crea.2 0 02164 227999 14990 all +15&36.4062.ref_crea.3 0 02166 227999 14990 all +15&36.4062.ref_crea.4 0 02168 227999 14990 all +15&36.4062.ref_crea.5 0 02170 227999 14990 all +15&36.4062.ref_crea.6 0 02172 227999 14990 all +15&36.4062.ref_crea.7 0 02178 231861 15247 all +15&36.4062.ref_crea.8 0 02180 231861 15247 all +15&36.4062.ref_crea.9 0 02182 231861 15247 all +15&36.4062.ref_entr.1 0 02076 219059 14423 all +15&36.4062.ref_entr.2 0 02080 220394 14506 all +15&36.4062.ref_entr.3 0 02082 220394 14506 all +15&36.4062.ref_entr.4 0 02084 220394 14506 all +15&36.4062.ref_entr.5 0 02086 220394 14506 all +15&36.4062.ref_entr.6 0 02088 220394 14506 all +15&36.4062.ref_entr.7 0 02090 220394 14506 all +15&36.4062.ref_entr.8 0 02094 221739 14590 all +15&36.4062.ref_entr.9 0 02096 221739 14590 all +15&36.4062.ref_labe.1 0 02058 213758 14072 all +15&36.4062.ref_sett.1 0 01987 208289 13703 all +15&36.4062.ref_sett.2 0 01989 208289 13703 all +15&36.4062.ref_sett.3 0 01991 208289 13703 all +15&36.4062.ref_sett.4 0 01993 208289 13703 all +15&36.4062.ref_sett.5 0 01995 208289 13703 all +15&36.4062.ref_sett.6 0 01999 210259 13839 all +15&36.4062.ref_sett.7 0 02001 210259 13839 all +15&36.4062.ref_sett.8 0 02003 210259 13839 all +15&36.4062.ref_sett.9 0 02006 210259 13839 all +15&36.4062.str_colu.1 0 01230 125374 8141 all +15&36.4062.str_colu.2 0 01232 125374 8141 all +15&36.4062.str_colu.3 0 01239 127411 8281 all +15&36.4062.str_colu.4 0 01241 127411 8281 all +15&36.4062.str_colu.5 0 01245 127411 8281 all +15&36.4062.str_cont.1 0 01155 113483 7343 all +15&36.4062.str_cont.2 0 01157 113483 7343 all +15&36.4062.str_cont.3 0 01159 113483 7343 all +15&36.4062.str_cont.4 0 01161 113483 7343 all +15&36.4062.str_cont.5 0 01163 113483 7343 all +15&36.4062.str_cont.6 0 01165 113483 7343 all +15&36.4062.str_cont.7 0 01167 113483 7343 all +15&36.4062.str_cont.8 0 01169 113483 7343 all +15&36.4062.str_cont.9 0 01171 113483 7343 all +15&36.4062.str_cros.1 0 01118 108047 6985 all +15&36.4062.str_cros.10 0 01138 109891 7103 all +15&36.4062.str_cros.2 0 01120 108047 6985 all +15&36.4062.str_cros.3 0 01122 108047 6985 all +15&36.4062.str_cros.4 0 01124 108047 6985 all +15&36.4062.str_cros.5 0 01126 108047 6985 all +15&36.4062.str_cros.6 0 01128 108047 6985 all +15&36.4062.str_cros.7 0 01132 109891 7103 all +15&36.4062.str_cros.8 0 01134 109891 7103 all +15&36.4062.str_cros.9 0 01136 109891 7103 all +15&36.4062.str_defs.1 0 01256 127411 8281 all +15&36.4062.str_defs.2 0 01258 127411 8281 all +15&36.4062.str_defs.3 0 01262 129470 8422 all +15&36.4062.str_disp.1 0 00691 73778 4718 all +15&36.4062.str_disp.10 0 00709 73778 4718 all +15&36.4062.str_disp.11 0 00711 73778 4718 all +15&36.4062.str_disp.12 0 00713 73778 4718 all +15&36.4062.str_disp.13 0 00715 73778 4718 all +15&36.4062.str_disp.14 0 00719 75478 4831 all +15&36.4062.str_disp.15 0 00721 75478 4831 all +15&36.4062.str_disp.16 0 00723 75478 4831 all +15&36.4062.str_disp.2 0 00693 73778 4718 all +15&36.4062.str_disp.3 0 00695 73778 4718 all +15&36.4062.str_disp.4 0 00697 73778 4718 all +15&36.4062.str_disp.5 0 00699 73778 4718 all +15&36.4062.str_disp.6 0 00701 73778 4718 all +15&36.4062.str_disp.7 0 00703 73778 4718 all +15&36.4062.str_disp.8 0 00705 73778 4718 all +15&36.4062.str_disp.9 0 00707 73778 4718 all +15&36.4062.str_figs.1 0 01026 92615 5962 all +15&36.4062.str_figs.10 0 01071 100562 6493 all +15&36.4062.str_figs.11 0 01073 100562 6493 all +15&36.4062.str_figs.12 0 01075 100562 6493 all +15&36.4062.str_figs.13 0 01077 100562 6493 all +15&36.4062.str_figs.2 0 01028 92615 5962 all +15&36.4062.str_figs.3 0 01033 92615 5962 all +15&36.4062.str_figs.4 0 01035 92615 5962 all +15&36.4062.str_figs.5 0 01047 94781 6105 all +15&36.4062.str_figs.6 0 01055 97058 6260 all +15&36.4062.str_figs.7 0 01057 97058 6260 all +15&36.4062.str_figs.8 0 01067 100562 6493 all +15&36.4062.str_figs.9 0 01069 100562 6493 all +15&36.4062.str_foot.1 0 00920 83197 5345 all +15&36.4062.str_foot.10 0 00947 86251 5545 all +15&36.4062.str_foot.11 0 00949 86251 5545 all +15&36.4062.str_foot.2 0 00928 84492 5429 all +15&36.4062.str_foot.3 0 00931 84492 5429 all +15&36.4062.str_foot.4 0 00935 86251 5545 all +15&36.4062.str_foot.5 0 00937 86251 5545 all +15&36.4062.str_foot.6 0 00939 86251 5545 all +15&36.4062.str_foot.7 0 00941 86251 5545 all +15&36.4062.str_foot.8 0 00943 86251 5545 all +15&36.4062.str_foot.9 0 00945 86251 5545 all +15&36.4062.str_indx.1 0 01184 116646 7558 all +15&36.4062.str_indx.2 0 01189 118410 7675 all +15&36.4062.str_indx.3 0 01204 123628 8024 all +15&36.4062.str_indx.4 0 01206 123628 8024 all +15&36.4062.str_indx.5 0 01208 123628 8024 all +15&36.4062.str_indx.6 0 01212 125374 8141 all +15&36.4062.str_indx.7 0 01214 125374 8141 all +15&36.4062.str_larg.1 0 01093 102319 6610 all +15&36.4062.str_larg.2 0 01095 102319 6610 all +15&36.4062.str_larg.3 0 01099 104369 6750 all +15&36.4062.str_larg.4 0 01103 106213 6868 all +15&36.4062.str_list.1 0 00734 75478 4831 all +15&36.4062.str_list.10 0 00760 75478 4831 all +15&36.4062.str_list.11 0 00762 75478 4831 all +15&36.4062.str_list.12 0 00764 75478 4831 all +15&36.4062.str_list.13 0 00766 75478 4831 all +15&36.4062.str_list.14 0 00768 75478 4831 all +15&36.4062.str_list.15 0 00770 75478 4831 all +15&36.4062.str_list.16 0 00772 75478 4831 all +15&36.4062.str_list.17 0 00774 75478 4831 all +15&36.4062.str_list.18 0 00776 75478 4831 all +15&36.4062.str_list.19 0 00788 77601 4978 all +15&36.4062.str_list.2 0 00736 75478 4831 all +15&36.4062.str_list.20 0 00790 77601 4978 all +15&36.4062.str_list.21 0 00792 77601 4978 all +15&36.4062.str_list.22 0 00794 77601 4978 all +15&36.4062.str_list.23 0 00796 77601 4978 all +15&36.4062.str_list.24 0 00798 77601 4978 all +15&36.4062.str_list.25 0 00800 77601 4978 all +15&36.4062.str_list.26 0 00802 77601 4978 all +15&36.4062.str_list.27 0 00804 77601 4978 all +15&36.4062.str_list.28 0 00806 77601 4978 all +15&36.4062.str_list.29 0 00808 77601 4978 all +15&36.4062.str_list.3 0 00738 75478 4831 all +15&36.4062.str_list.30 0 00810 77601 4978 all +15&36.4062.str_list.31 0 00812 77601 4978 all +15&36.4062.str_list.32 0 00814 77601 4978 all +15&36.4062.str_list.33 0 00816 77601 4978 all +15&36.4062.str_list.34 0 00818 77601 4978 all +15&36.4062.str_list.35 0 00820 77601 4978 all +15&36.4062.str_list.36 0 00822 77601 4978 all +15&36.4062.str_list.37 0 00824 77601 4978 all +15&36.4062.str_list.38 0 00826 77601 4978 all +15&36.4062.str_list.39 0 00828 77601 4978 all +15&36.4062.str_list.4 0 00740 75478 4831 all +15&36.4062.str_list.40 0 00830 77601 4978 all +15&36.4062.str_list.41 0 00832 77601 4978 all +15&36.4062.str_list.42 0 00834 77601 4978 all +15&36.4062.str_list.43 0 00836 77601 4978 all +15&36.4062.str_list.44 0 00838 77601 4978 all +15&36.4062.str_list.45 0 00840 77601 4978 all +15&36.4062.str_list.46 0 00842 77601 4978 all +15&36.4062.str_list.47 0 00844 77601 4978 all +15&36.4062.str_list.48 0 00846 77601 4978 all +15&36.4062.str_list.49 0 00848 77601 4978 all +15&36.4062.str_list.5 0 00742 75478 4831 all +15&36.4062.str_list.50 0 00850 77601 4978 all +15&36.4062.str_list.51 0 00852 77601 4978 all +15&36.4062.str_list.52 0 00858 79332 5095 all +15&36.4062.str_list.53 0 00861 79332 5095 all +15&36.4062.str_list.54 0 00863 79332 5095 all +15&36.4062.str_list.55 0 00865 79332 5095 all +15&36.4062.str_list.56 0 00867 79332 5095 all +15&36.4062.str_list.57 0 00869 79332 5095 all +15&36.4062.str_list.58 0 00871 79332 5095 all +15&36.4062.str_list.59 0 00873 79332 5095 all +15&36.4062.str_list.6 0 00744 75478 4831 all +15&36.4062.str_list.60 0 00893 80617 5178 all +15&36.4062.str_list.7 0 00746 75478 4831 all +15&36.4062.str_list.8 0 00756 75478 4831 all +15&36.4062.str_list.9 0 00758 75478 4831 all +15&36.4062.str_marg.1 0 00961 86251 5545 all +15&36.4062.str_marg.2 0 00963 86251 5545 all +15&36.4062.str_marg.3 0 00967 87025 5597 all +15&36.4062.str_marg.4 0 00969 87025 5597 all +15&36.4062.str_marg.5 0 00973 88888 5720 all +15&36.4062.str_theo.1 0 00985 88888 5720 all +15&36.4062.str_theo.2 0 00994 90679 5837 all +15&36.4062.str_theo.3 0 00996 90679 5837 all +15&36.4062.str_theo.4 0 00999 90679 5837 all +15&36.4062.str_theo.5 0 01001 90679 5837 all +15&36.4062.str_theo.6 0 01003 90679 5837 all +15&36.4062.str_theo.7 0 01005 90679 5837 all +15&36.4062.str_theo.8 0 01007 90679 5837 all +15&36.4062.str_theo.9 0 01009 90679 5837 all +15&36.4062.tbl.1 0 02215 232749 15308 all +15&36.4062.tbl_alig.1 0 02339 247173 16271 all +15&36.4062.tbl_cell.1 0 02254 236154 15537 all +15&36.4062.tbl_cell.2 0 02256 236154 15537 all +15&36.4062.tbl_inde.1 0 02327 247173 16271 all +15&36.4062.tbl_inde.2 0 02329 247173 16271 all +15&36.4062.tbl_intr.1 0 02226 232749 15308 all +15&36.4062.tbl_intr.2 0 02228 232749 15308 all +15&36.4062.tbl_marg.1 0 02298 242917 15986 all +15&36.4062.tbl_mark.1 0 02381 255715 16840 all +15&36.4062.tbl_mark.2 0 02385 257458 16956 all +15&36.4062.tbl_mult.1 0 02396 257458 16956 all +15&36.4062.tbl_mult.2 0 02398 257458 16956 all +15&36.4062.tbl_plai.1 0 02417 262694 17306 all +15&36.4062.tbl_rows.1 0 02272 239430 15753 all +15&36.4062.tbl_setu.1 0 02433 266474 17563 all +15&36.4062.tbl_span.1 0 02359 249691 16439 all +15&36.4062.tbl_widt.1 0 02313 245424 16154 all +15&36.4062.typ.1 0 01295 132825 8641 all +15&36.4062.typ_apdf.1 0 01707 180042 11833 all +15&36.4062.typ_book.1 0 01492 151861 9925 all +15&36.4062.typ_book.10 0 01516 157630 10322 all +15&36.4062.typ_book.11 0 01518 157630 10322 all +15&36.4062.typ_book.12 0 01520 157630 10322 all +15&36.4062.typ_book.13 0 01522 157630 10322 all +15&36.4062.typ_book.14 0 01524 157630 10322 all +15&36.4062.typ_book.15 0 01526 157630 10322 all +15&36.4062.typ_book.16 0 01528 157630 10322 all +15&36.4062.typ_book.17 0 01530 157630 10322 all +15&36.4062.typ_book.18 0 01532 157630 10322 all +15&36.4062.typ_book.19 0 01534 157630 10322 all +15&36.4062.typ_book.2 0 01494 151861 9925 all +15&36.4062.typ_book.20 0 01536 157630 10322 all +15&36.4062.typ_book.21 0 01538 157630 10322 all +15&36.4062.typ_book.22 0 01542 159352 10439 all +15&36.4062.typ_book.23 0 01544 159352 10439 all +15&36.4062.typ_book.24 0 01546 159352 10439 all +15&36.4062.typ_book.25 0 01548 159352 10439 all +15&36.4062.typ_book.26 0 01550 159352 10439 all +15&36.4062.typ_book.27 0 01552 159352 10439 all +15&36.4062.typ_book.28 0 01554 159352 10439 all +15&36.4062.typ_book.29 0 01556 159352 10439 all +15&36.4062.typ_book.3 0 01500 155918 10206 all +15&36.4062.typ_book.30 0 01558 159352 10439 all +15&36.4062.typ_book.31 0 01560 159352 10439 all +15&36.4062.typ_book.32 0 01564 162134 10630 all +15&36.4062.typ_book.33 0 01566 162134 10630 all +15&36.4062.typ_book.34 0 01568 162134 10630 all +15&36.4062.typ_book.35 0 01570 162134 10630 all +15&36.4062.typ_book.4 0 01502 155918 10206 all +15&36.4062.typ_book.5 0 01504 155918 10206 all +15&36.4062.typ_book.6 0 01506 155918 10206 all +15&36.4062.typ_book.7 0 01510 157630 10322 all +15&36.4062.typ_book.8 0 01512 157630 10322 all +15&36.4062.typ_book.9 0 01514 157630 10322 all +15&36.4062.typ_illu.1 0 01634 174396 11453 all +15&36.4062.typ_illu.2 0 01636 174396 11453 all +15&36.4062.typ_illu.3 0 01638 174396 11453 all +15&36.4062.typ_illu.4 0 01644 176447 11593 all +15&36.4062.typ_illu.5 0 01646 176447 11593 all +15&36.4062.typ_illu.6 0 01648 176447 11593 all +15&36.4062.typ_ordi.1 0 01304 132825 8641 all +15&36.4062.typ_ordi.10 0 01334 136240 8870 all +15&36.4062.typ_ordi.11 0 01338 136240 8870 all +15&36.4062.typ_ordi.12 0 01342 136240 8870 all +15&36.4062.typ_ordi.13 0 01346 136240 8870 all +15&36.4062.typ_ordi.14 0 01350 136240 8870 all +15&36.4062.typ_ordi.15 0 01354 136240 8870 all +15&36.4062.typ_ordi.16 0 01360 137979 8986 all +15&36.4062.typ_ordi.17 0 01364 137979 8986 all +15&36.4062.typ_ordi.18 0 01368 137979 8986 all +15&36.4062.typ_ordi.19 0 01372 137979 8986 all +15&36.4062.typ_ordi.2 0 01306 132825 8641 all +15&36.4062.typ_ordi.20 0 01376 137979 8986 all +15&36.4062.typ_ordi.21 0 01380 137979 8986 all +15&36.4062.typ_ordi.22 0 01384 137979 8986 all +15&36.4062.typ_ordi.23 0 01388 137979 8986 all +15&36.4062.typ_ordi.24 0 01392 137979 8986 all +15&36.4062.typ_ordi.25 0 01394 137979 8986 all +15&36.4062.typ_ordi.26 0 01398 139728 9103 all +15&36.4062.typ_ordi.3 0 01308 132825 8641 all +15&36.4062.typ_ordi.4 0 01312 134491 8753 all +15&36.4062.typ_ordi.5 0 01314 134491 8753 all +15&36.4062.typ_ordi.6 0 01318 136240 8870 all +15&36.4062.typ_ordi.7 0 01322 136240 8870 all +15&36.4062.typ_ordi.8 0 01326 136240 8870 all +15&36.4062.typ_ordi.9 0 01330 136240 8870 all +15&36.4062.typ_orga.1 0 01717 180042 11833 all +15&36.4062.typ_orga.2 0 01721 181528 11929 all +15&36.4062.typ_orga.3 0 01723 181528 11929 all +15&36.4062.typ_over.1 0 01592 165568 10863 all +15&36.4062.typ_over.2 0 01596 165568 10863 all +15&36.4062.typ_over.3 0 01603 167290 10980 all +15&36.4062.typ_over.4 0 01607 169123 11103 all +15&36.4062.typ_over.5 0 01611 170884 11220 all +15&36.4062.typ_over.6 0 01613 170884 11220 all +15&36.4062.typ_over.7 0 01615 170884 11220 all +15&36.4062.typ_plai.1 0 01659 176447 11593 all +15&36.4062.typ_plai.2 0 01691 178227 11710 all +15&36.4062.typ_plai.3 0 01693 178227 11710 all +15&36.4062.typ_repo.1 0 01412 139728 9103 all +15&36.4062.typ_repo.10 0 01442 148383 9692 all +15&36.4062.typ_repo.11 0 01444 148383 9692 all +15&36.4062.typ_repo.12 0 01446 148383 9692 all +15&36.4062.typ_repo.13 0 01448 148383 9692 all +15&36.4062.typ_repo.14 0 01450 148383 9692 all +15&36.4062.typ_repo.15 0 01452 148383 9692 all +15&36.4062.typ_repo.16 0 01454 148383 9692 all +15&36.4062.typ_repo.17 0 01456 148383 9692 all +15&36.4062.typ_repo.18 0 01458 148383 9692 all +15&36.4062.typ_repo.19 0 01460 148383 9692 all +15&36.4062.typ_repo.2 0 01414 139728 9103 all +15&36.4062.typ_repo.20 0 01462 148383 9692 all +15&36.4062.typ_repo.21 0 01464 148383 9692 all +15&36.4062.typ_repo.22 0 01468 150117 9808 all +15&36.4062.typ_repo.23 0 01470 150117 9808 all +15&36.4062.typ_repo.24 0 01472 150117 9808 all +15&36.4062.typ_repo.25 0 01474 150117 9808 all +15&36.4062.typ_repo.3 0 01416 139728 9103 all +15&36.4062.typ_repo.4 0 01426 143512 9360 all +15&36.4062.typ_repo.5 0 01428 143512 9360 all +15&36.4062.typ_repo.6 0 01432 145629 9507 all +15&36.4062.typ_repo.7 0 01434 145629 9507 all +15&36.4062.typ_repo.8 0 01436 145629 9507 all +15&36.4062.typ_repo.9 0 01438 145629 9507 all +15&37.1076.ap_qck.1 0 04019 463092 30644 all +15&37.312.all.1 0 00016 2289 169 all +15&37.363.all.1 0 00096 7503 480 all +15&37.427.all.1 0 04148 470512 31141 all +15&37.449.all.1 0 04188 475766 31467 all +15&37.717.preface.1 0 00022 4174 283 all +15&37.820.pascal.1 0 03984 459110 30370 all +15&37.866.equ_defs.1 0 02688 286376 18892 all +15&37.866.equ_intr.1 0 02485 272711 17984 all +15&37.866.equ_spac.1 0 02595 282067 18608 all +15&37.866.equ_summ.1 0 02699 287889 18988 all +15&alone 0 03818 437447 28942 all +15&arbobj 0 03674 419916 27770 all +15&basics 0 00120 22173 1257 all +15&biblio 0 01952 208289 13703 all +15&books 0 01486 151861 9925 all +15&boxes 0 02871 303934 20042 all +15&bypass 0 04099 466375 30867 all +15&captions 0 03601 406176 26851 all +15&changeref 0 02107 223074 14673 all +15&changes 0 01734 184183 12107 all +15&characters 0 00226 34014 2054 all +15&citation 0 02011 210259 13839 all +15&clines 0 00488 54773 3451 all +15&colour 0 02854 302252 19930 all +15&columns 0 01224 125374 8141 all +15&contents 0 01149 113483 7343 all +15&cpcomm 0 03913 451133 29843 all +15&cpp_erro 0 03943 454691 30076 all +15&cpp_prog 0 03921 451133 29843 all +15&cprint 0 03786 437447 28942 all +15&cpsetup 0 03866 445247 29455 all +15&cross 0 01112 108047 6985 all +15&data 0 03639 412169 27252 all +15&databases 0 01981 208289 13703 all +15&date 0 00557 61814 3917 all +15&definitions 0 01250 127411 8281 all +15&dia_defi 0 03244 361265 23887 all +15&dia_erro 0 03229 359528 23771 all +15&dia_geom 0 03270 368277 24353 all +15&dia_intr 0 02985 313518 20686 all +15&dia_labe 0 03107 336066 22207 all +15&dia_link 0 03066 326353 21549 all +15&dia_node 0 03004 316938 20915 all +15&dia_posi 0 03146 340145 22478 all +15&dia_summ 0 03297 372601 24638 all +15&dia_synt 0 03190 348291 23020 all +15&dia_tags 0 03088 331539 21899 all +15&dia_tree 0 03163 343449 22698 all +15&diagrams 0 02961 313518 20686 all +15&displays 0 00685 73778 4718 all +15&dropcaps 0 00629 68473 4359 all +15&embedded 0 03838 439124 29054 all +15&empty 0 00303 41702 2571 all +15&entries 0 02066 215496 14189 all +15&equations 0 02460 272711 17984 all +15&fibeq 0 02647 284616 18776 all +15&figex 0 01042 94781 6105 all +15&figures 0 01020 92615 5962 all +15&fonts 0 00313 41702 2571 all +15&footnotes 0 00914 83197 5345 all +15&formfeed 0 03902 450356 29791 all +15&functions 0 03685 421653 27886 all +15&graphics 0 02835 302252 19930 all +15&graphs 0 03537 397492 26273 all +15&grerrors 0 03751 430740 28493 all +15&grintro 0 03560 397492 26273 all +15&grsummary 0 03760 430740 28493 all +15&headers 0 01857 197226 12970 all +15&headings 0 00370 49167 3070 all +15&hyph 0 00530 60077 3800 all +15&illustrations 0 01628 174396 11453 all +15&include 0 02943 311648 20560 all +15&indexes 0 01178 116646 7558 all +15&jensen1975pascal 0 04153 470512 31141 all +15&kernighan1975eqn 0 04156 470512 31141 all +15&key 0 03708 426945 28236 all +15&kingston1993lout.design 0 04159 470512 31141 all +15&kingston1994lout.overheads 0 04162 470512 31141 all +15&kingston1995lout.expert 0 04165 470512 31141 all +15&knuth1984tex 0 04168 470512 31141 all +15&labelled 0 02052 213758 14072 all +15&lamport1986latex 0 04171 470512 31141 all +15&languages 0 00572 63549 4033 all +15&largescale 0 01087 102319 6610 all +15&last.page 0 04925 488483 32308 all +15&linespace 0 00513 57389 3618 all +15&lists 0 00728 75478 4831 all +15&marginnotes 0 00955 86251 5545 all +15&margins 0 01816 192876 12685 all +15&mathdisplays 0 02626 282834 18659 all +15&matrix 0 02553 278000 18337 all +15&meyer1992eiffel 0 04174 470512 31141 all +15&numsep 0 01934 206400 13576 all +15&objects 0 00167 25850 1513 all +15&ordinary 0 01298 132825 8641 all +15&organizing 0 01711 180042 11833 all +15&outline 0 02897 307397 20275 all +15&overall 0 03573 399154 26385 all +15&overheads 0 01585 165568 10863 all +15&pagesize 0 01796 191099 12569 all +15¶graphs 0 00383 49167 3070 all +15¶s 0 00420 51206 3211 all +15&pdf 0 01701 180042 11833 all +15&pipes 0 03932 452906 29959 all +15&plain 0 01653 176447 11593 all +15&prg_opti 0 03852 442697 29287 all +15&prg_perl 0 03951 454691 30076 all +15&refstyles 0 02156 227999 14990 all +15&reid1980scribe 0 04177 470512 31141 all +15&reports 0 01406 139728 9103 all +15&rotation 0 02907 307397 20275 all +15&scaling 0 02924 308176 20327 all +15&setup 0 01753 184183 12107 all +15&spaces 0 00206 30959 1854 all +15&start 0 00139 22173 1257 all +15&structure 0 00666 73778 4718 all +15&strunk1979style 0 04180 470512 31141 all +15&super 0 00604 67022 4266 all +15&symbols 0 02502 274401 18097 all +15&tables 0 02197 232749 15308 all +15&tabs 0 03888 448594 29675 all +15&tbl_alig 0 02333 247173 16271 all +15&tbl_cell 0 02248 236154 15537 all +15&tbl_inde 0 02321 247173 16271 all +15&tbl_intr 0 02219 232749 15308 all +15&tbl_marg 0 02290 242917 15986 all +15&tbl_mark 0 02375 255715 16840 all +15&tbl_mult 0 02390 257458 16956 all +15&tbl_plai 0 02411 262694 17306 all +15&tbl_rows 0 02265 239430 15753 all +15&tbl_rule 0 02276 239430 15753 all +15&tbl_setu 0 02427 266474 17563 all +15&tbl_span 0 02353 249691 16439 all +15&tbl_summ 0 02440 267249 17614 all +15&tbl_widt 0 02305 243702 16038 all +15&teq 0 02822 300359 19803 all +15&theorems 0 00979 88888 5720 all +15&ticks 0 03614 407944 26968 all +15&types 0 01277 132825 8641 all +15&underlining 0 00544 60077 3800 all +15&vanleunen1992handbook 0 04183 470512 31141 all +15&verbatim 0 00612 67022 4266 all +15&vpos 0 02579 279556 18440 all +15&white 0 00644 70197 4475 all +16&36.796.all.1 0 00115 21937 1236 all +16&36.796.all.10 0 00111 20251 1147 all +16&36.796.all.2 0 04926 489929 32407 all +16&36.796.all.295 0 04150 472382 31250 all +16&36.796.all.296 0 04184 475203 31431 all +16&36.796.all.299 0 04924 489722 32392 all +16&36.796.all.5 0 00018 4013 269 all +16&36.796.all.6 0 04190 477545 31577 all +16&36.796.all.7 0 04191 478795 31645 all +16&36.796.all.9 0 00098 10329 628 all +16&36.796.ap_byp.1 0 04103 1218 85 ap_byp +16&36.796.ap_byp.2 0 04119 4133 280 ap_byp +16&36.796.ap_qck.1 0 04023 1290 85 ap_qck +16&36.796.ap_qck.2 0 04094 21973 1216 ap_qck +16&36.796.bas.1 0 00124 1196 85 bas +16&36.796.bas.2 0 00661 7367 568 bas +16&36.796.bas_char.1 0 00229 1198 89 bas_char +16&36.796.bas_char.2 0 00300 14245 938 bas_char +16&36.796.bas_conv.1 0 00647 1236 89 bas_conv +16&36.796.bas_conv.2 0 00660 3610 239 bas_conv +16&36.796.bas_date.1 0 00560 1204 89 bas_date +16&36.796.bas_date.2 0 00569 2834 199 bas_date +16&36.796.bas_drop.1 0 00632 1196 89 bas_drop +16&36.796.bas_drop.2 0 00641 2920 199 bas_drop +16&36.796.bas_empt.1 0 00306 1190 89 bas_empt +16&36.796.bas_empt.2 0 00310 2566 179 bas_empt +16&36.796.bas_font.1 0 00316 1198 89 bas_font +16&36.796.bas_font.2 0 00365 8158 589 bas_font +16&36.796.bas_head.1 0 00374 1184 89 bas_head +16&36.796.bas_head.2 0 00380 2857 199 bas_head +16&36.796.bas_hyph.1 0 00533 1177 89 bas_hyph +16&36.796.bas_hyph.2 0 00541 3181 223 bas_hyph +16&36.796.bas_lang.1 0 00575 1230 89 bas_lang +16&36.796.bas_lang.2 0 00601 5348 334 bas_lang +16&36.796.bas_line.1 0 00516 1198 89 bas_line +16&36.796.bas_line.2 0 00527 3340 230 bas_line +16&36.796.bas_objs.1 0 00170 1242 89 bas_objs +16&36.796.bas_objs.2 0 00203 5565 379 bas_objs +16&36.796.bas_par1.1 0 00386 1256 89 bas_par1 +16&36.796.bas_par1.2 0 00417 5912 419 bas_par1 +16&36.796.bas_par2.1 0 00423 1194 89 bas_par2 +16&36.796.bas_par2.2 0 00510 9734 686 bas_par2 +16&36.796.bas_spac.1 0 00209 1196 89 bas_spac +16&36.796.bas_spac.2 0 00223 3186 219 bas_spac +16&36.796.bas_star.1 0 00142 1188 89 bas_star +16&36.796.bas_star.2 0 00164 5804 370 bas_star +16&36.796.bas_supe.1 0 00607 1212 89 bas_supe +16&36.796.bas_supe.2 0 00609 2239 153 bas_supe +16&36.796.bas_unde.1 0 00547 1205 89 bas_unde +16&36.796.bas_unde.2 0 00554 2622 179 bas_unde +16&36.796.bas_verb.1 0 00615 1196 89 bas_verb +16&36.796.bas_verb.2 0 00626 3157 205 bas_verb +16&36.796.bgr.1 0 02839 1212 85 bgr +16&36.796.bgr.2 0 02956 4822 349 bgr +16&36.796.bgr_boxs.1 0 02874 1194 89 bgr_boxs +16&36.796.bgr_boxs.2 0 02894 3974 279 bgr_boxs +16&36.796.bgr_colo.1 0 02857 1176 89 bgr_colo +16&36.796.bgr_colo.2 0 02868 3232 230 bgr_colo +16&36.796.bgr_incl.1 0 02947 1222 89 bgr_incl +16&36.796.bgr_incl.2 0 02955 3238 219 bgr_incl +16&36.796.bgr_outl.1 0 02900 1200 89 bgr_outl +16&36.796.bgr_outl.2 0 02904 2607 179 bgr_outl +16&36.796.bgr_rota.1 0 02910 1190 89 bgr_rota +16&36.796.bgr_rota.2 0 02921 3126 221 bgr_rota +16&36.796.bgr_scal.1 0 02927 1183 89 bgr_scal +16&36.796.bgr_scal.2 0 02938 3104 221 bgr_scal +16&36.796.dia.1 0 02965 1198 85 dia +16&36.796.dia.2 0 03532 8871 635 dia +16&36.796.dia_defi.1 0 03247 1238 89 dia_defi +16&36.796.dia_defi.2 0 03267 3257 219 dia_defi +16&36.796.dia_erro.1 0 03232 1178 89 dia_erro +16&36.796.dia_erro.2 0 03241 2924 199 dia_erro +16&36.796.dia_geom.1 0 03273 1272 89 dia_geom +16&36.796.dia_geom.2 0 03294 4057 259 dia_geom +16&36.796.dia_intr.1 0 02988 1196 89 dia_intr +16&36.796.dia_intr.2 0 03001 2235 153 dia_intr +16&36.796.dia_labe.1 0 03111 1178 89 dia_labe +16&36.796.dia_labe.2 0 03143 4193 287 dia_labe +16&36.796.dia_link.1 0 03069 1175 89 dia_link +16&36.796.dia_link.2 0 03085 3578 214 dia_link +16&36.796.dia_node.1 0 03007 1175 89 dia_node +16&36.796.dia_node.2 0 03063 6742 467 dia_node +16&36.796.dia_posi.1 0 03149 1193 89 dia_posi +16&36.796.dia_posi.2 0 03160 2232 153 dia_posi +16&36.796.dia_summ.1 0 03300 1181 89 dia_summ +16&36.796.dia_summ.2 0 03531 9685 842 dia_summ +16&36.796.dia_synt.1 0 03193 1200 89 dia_synt +16&36.796.dia_synt.2 0 03226 3915 247 dia_synt +16&36.796.dia_tags.1 0 03091 1172 89 dia_tags +16&36.796.dia_tags.2 0 03102 2211 153 dia_tags +16&36.796.dia_tree.1 0 03166 1175 89 dia_tree +16&36.796.dia_tree.2 0 03187 2902 199 dia_tree +16&36.796.equ.1 0 02464 1205 85 equ +16&36.796.equ.2 0 02830 6169 456 equ +16&36.796.equ_defs.1 0 02691 1296 89 equ_defs +16&36.796.equ_defs.2 0 02696 2379 153 equ_defs +16&36.796.equ_disp.1 0 02629 1228 89 equ_disp +16&36.796.equ_disp.2 0 02685 6765 463 equ_disp +16&36.796.equ_intr.1 0 02488 1242 89 equ_intr +16&36.796.equ_intr.2 0 02499 3199 219 equ_intr +16&36.796.equ_spac.1 0 02598 1227 89 equ_spac +16&36.796.equ_spac.2 0 02623 4685 318 equ_spac +16&36.796.equ_summ.1 0 02702 1227 89 equ_summ +16&36.796.equ_summ.2 0 02819 6073 501 equ_summ +16&36.796.equ_symb.1 0 02505 1179 89 equ_symb +16&36.796.equ_symb.2 0 02576 6573 471 equ_symb +16&36.796.equ_tequ.1 0 02825 1246 89 equ_tequ +16&36.796.equ_tequ.2 0 02829 2692 181 equ_tequ +16&36.796.equ_vert.1 0 02582 1196 89 equ_vert +16&36.796.equ_vert.2 0 02592 2709 190 equ_vert +16&36.796.fmt.1 0 01738 1234 85 fmt +16&36.796.fmt.2 0 01947 5067 362 fmt +16&36.796.fmt_head.1 0 01860 1248 89 fmt_head +16&36.796.fmt_head.2 0 01946 10957 761 fmt_head +16&36.796.fmt_marg.1 0 01819 1276 89 fmt_marg +16&36.796.fmt_marg.2 0 01854 5947 401 fmt_marg +16&36.796.fmt_setu.1 0 01756 1198 89 fmt_setu +16&36.796.fmt_setu.2 0 01791 5863 399 fmt_setu +16&36.796.fmt_size.1 0 01800 1248 89 fmt_size +16&36.796.fmt_size.2 0 01813 3533 239 fmt_size +16&36.796.gra.1 0 03541 1184 85 gra +16&36.796.gra.2 0 03781 6710 504 gra +16&36.796.gra_capt.1 0 03604 1180 89 gra_capt +16&36.796.gra_capt.2 0 03611 2600 181 gra_capt +16&36.796.gra_data.1 0 03642 1220 89 gra_data +16&36.796.gra_data.2 0 03671 4206 279 gra_data +16&36.796.gra_erro.1 0 03755 1174 89 gra_erro +16&36.796.gra_erro.2 0 03757 2213 153 gra_erro +16&36.796.gra_func.1 0 03688 1250 89 gra_func +16&36.796.gra_func.2 0 03705 3295 205 gra_func +16&36.796.gra_intr.1 0 03563 1188 89 gra_intr +16&36.796.gra_intr.2 0 03570 2594 179 gra_intr +16&36.796.gra_keys.1 0 03711 1196 89 gra_keys +16&36.796.gra_keys.2 0 03746 6767 459 gra_keys +16&36.796.gra_over.1 0 03576 1250 89 gra_over +16&36.796.gra_over.2 0 03598 3629 239 gra_over +16&36.796.gra_plac.1 0 03677 1234 89 gra_plac +16&36.796.gra_plac.2 0 03682 2265 153 gra_plac +16&36.796.gra_summ.1 0 03763 1181 89 gra_summ +16&36.796.gra_summ.2 0 03780 2224 153 gra_summ +16&36.796.gra_tick.1 0 03617 1186 89 gra_tick +16&36.796.gra_tick.2 0 03636 3581 239 gra_tick +16&36.796.pascal.1 0 03988 1276 85 pascal +16&36.796.pascal.2 0 04014 4994 337 pascal +16&36.796.preface.1 0 00024 413 35 preface +16&36.796.preface.2 0 00091 10192 864 preface +16&36.796.prg.1 0 03790 1210 85 prg +16&36.796.prg.2 0 03979 7334 512 prg +16&36.796.prg_chan.1 0 03869 1281 89 prg_chan +16&36.796.prg_chan.2 0 03880 3444 195 prg_chan +16&36.796.prg_comm.1 0 03916 1263 89 prg_comm +16&36.796.prg_comm.2 0 03918 2294 153 prg_comm +16&36.796.prg_embe.1 0 03841 1293 89 prg_embe +16&36.796.prg_embe.2 0 03849 2332 153 prg_embe +16&36.796.prg_erro.1 0 03946 1205 89 prg_erro +16&36.796.prg_erro.2 0 03948 2244 153 prg_erro +16&36.796.prg_form.1 0 03905 1265 89 prg_form +16&36.796.prg_form.2 0 03910 2304 153 prg_form +16&36.796.prg_lone.1 0 03821 1283 89 prg_lone +16&36.796.prg_lone.2 0 03835 2751 195 prg_lone +16&36.796.prg_opti.1 0 03855 1249 89 prg_opti +16&36.796.prg_opti.2 0 03863 2288 153 prg_opti +16&36.796.prg_perl.1 0 03954 1219 89 prg_perl +16&36.796.prg_perl.2 0 03978 3225 225 prg_perl +16&36.796.prg_pipe.1 0 03935 1273 89 prg_pipe +16&36.796.prg_pipe.2 0 03940 2300 153 prg_pipe +16&36.796.prg_prog.1 0 03924 1269 89 prg_prog +16&36.796.prg_prog.2 0 03929 2678 181 prg_prog +16&36.796.prg_tabs.1 0 03892 1239 89 prg_tabs +16&36.796.prg_tabs.2 0 03899 2658 179 prg_tabs +16&36.796.ref.1 0 01956 1196 85 ref +16&36.796.ref.2 0 02192 7359 544 ref +16&36.796.ref_chan.1 0 02110 1292 89 ref_chan +16&36.796.ref_chan.2 0 02153 7687 501 ref_chan +16&36.796.ref_cite.1 0 02014 1184 89 ref_cite +16&36.796.ref_cite.2 0 02049 6151 445 ref_cite +16&36.796.ref_crea.1 0 02159 1256 89 ref_crea +16&36.796.ref_crea.2 0 02191 5921 399 ref_crea +16&36.796.ref_entr.1 0 02069 1224 89 ref_entr +16&36.796.ref_entr.2 0 02104 5459 339 ref_entr +16&36.796.ref_labe.1 0 02055 1324 91 ref_labe +16&36.796.ref_labe.2 0 02063 2877 189 ref_labe +16&36.796.ref_sett.1 0 01984 1244 89 ref_sett +16&36.796.ref_sett.2 0 02008 5458 351 ref_sett +16&36.796.str.1 0 00670 1246 85 str +16&36.796.str.2 0 01272 8381 634 str +16&36.796.str_colu.1 0 01227 1220 89 str_colu +16&36.796.str_colu.2 0 01247 4603 320 str_colu +16&36.796.str_cont.1 0 01152 1228 89 str_cont +16&36.796.str_cont.2 0 01175 5116 339 str_cont +16&36.796.str_cros.1 0 01115 1232 89 str_cros +16&36.796.str_cros.2 0 01146 5232 359 str_cros +16&36.796.str_defs.1 0 01253 1244 89 str_defs +16&36.796.str_defs.2 0 01271 3957 247 str_defs +16&36.796.str_disp.1 0 00688 1206 89 str_disp +16&36.796.str_disp.2 0 00725 7493 529 str_disp +16&36.796.str_figs.1 0 01023 1224 89 str_figs +16&36.796.str_figs.2 0 01084 12852 703 str_figs +16&36.796.str_figs.4 0 01045 4170 286 str_figs +16&36.796.str_foot.1 0 00917 1240 89 str_foot +16&36.796.str_foot.2 0 00952 6137 411 str_foot +16&36.796.str_indx.1 0 01181 1199 89 str_indx +16&36.796.str_indx.2 0 01221 5985 396 str_indx +16&36.796.str_larg.1 0 01090 1366 91 str_larg +16&36.796.str_larg.2 0 01109 3732 242 str_larg +16&36.796.str_list.1 0 00731 1185 89 str_list +16&36.796.str_list.2 0 00911 22280 1599 str_list +16&36.796.str_marg.1 0 00958 1276 89 str_marg +16&36.796.str_marg.2 0 00976 4371 298 str_marg +16&36.796.str_theo.1 0 00982 1420 93 str_theo +16&36.796.str_theo.2 0 01017 6783 438 str_theo +16&36.796.tbl.1 0 02201 1184 85 tbl +16&36.796.tbl.2 0 02455 8075 594 tbl +16&36.796.tbl_alig.1 0 02336 1196 89 tbl_alig +16&36.796.tbl_alig.2 0 02350 3156 205 tbl_alig +16&36.796.tbl_cell.1 0 02251 1230 89 tbl_cell +16&36.796.tbl_cell.2 0 02260 3001 199 tbl_cell +16&36.796.tbl_inde.1 0 02324 1206 89 tbl_inde +16&36.796.tbl_inde.2 0 02330 3023 199 tbl_inde +16&36.796.tbl_intr.1 0 02222 1196 89 tbl_intr +16&36.796.tbl_intr.2 0 02245 4662 261 tbl_intr +16&36.796.tbl_marg.1 0 02293 1177 89 tbl_marg +16&36.796.tbl_marg.2 0 02302 2854 201 tbl_marg +16&36.796.tbl_mark.1 0 02378 1222 89 tbl_mark +16&36.796.tbl_mark.2 0 02387 3005 199 tbl_mark +16&36.796.tbl_mult.1 0 02393 1200 89 tbl_mult +16&36.796.tbl_mult.2 0 02408 2960 199 tbl_mult +16&36.796.tbl_plai.1 0 02414 1200 89 tbl_plai +16&36.796.tbl_plai.2 0 02424 2635 179 tbl_plai +16&36.796.tbl_rows.1 0 02269 1228 89 tbl_rows +16&36.796.tbl_rows.2 0 02273 2667 179 tbl_rows +16&36.796.tbl_rule.1 0 02279 1171 89 tbl_rule +16&36.796.tbl_rule.2 0 02287 2210 153 tbl_rule +16&36.796.tbl_setu.1 0 02430 1220 89 tbl_setu +16&36.796.tbl_setu.2 0 02437 2678 179 tbl_setu +16&36.796.tbl_span.1 0 02356 1216 89 tbl_span +16&36.796.tbl_span.2 0 02372 2692 179 tbl_span +16&36.796.tbl_summ.1 0 02443 1202 89 tbl_summ +16&36.796.tbl_summ.2 0 02454 2241 153 tbl_summ +16&36.796.tbl_widt.1 0 02308 1208 89 tbl_widt +16&36.796.tbl_widt.2 0 02318 2679 179 tbl_widt +16&36.796.typ.1 0 01281 1208 85 typ +16&36.796.typ.2 0 01729 6703 497 typ +16&36.796.typ_apdf.1 0 01704 1249 89 typ_apdf +16&36.796.typ_apdf.2 0 01708 2641 179 typ_apdf +16&36.796.typ_book.1 0 01489 1170 89 typ_book +16&36.796.typ_book.2 0 01582 13800 945 typ_book +16&36.796.typ_illu.1 0 01631 1247 89 typ_illu +16&36.796.typ_illu.2 0 01650 4548 301 typ_illu +16&36.796.typ_ordi.1 0 01301 1213 89 typ_ordi +16&36.796.typ_ordi.2 0 01403 16298 1077 typ_ordi +16&36.796.typ_orga.1 0 01714 1237 89 typ_orga +16&36.796.typ_orga.2 0 01728 3254 219 typ_orga +16&36.796.typ_over.1 0 01588 1227 89 typ_over +16&36.796.typ_over.2 0 01625 5988 386 typ_over +16&36.796.typ_plai.1 0 01656 1205 89 typ_plai +16&36.796.typ_plai.2 0 01698 4232 317 typ_plai +16&36.796.typ_repo.1 0 01409 1207 89 typ_repo +16&36.796.typ_repo.2 0 01483 11864 797 typ_repo +16&all_100 0 01623 5988 386 typ_over +16&all_101 0 01624 5988 386 typ_over +16&all_102 0 01649 4548 301 typ_illu +16&all_103 0 01696 4232 317 typ_plai +16&all_104 0 01697 4232 317 typ_plai +16&all_105 0 01726 3254 219 typ_orga +16&all_106 0 01727 3254 219 typ_orga +16&all_107 0 01737 1234 85 fmt +16&all_108 0 01788 5863 399 fmt_setu +16&all_109 0 01789 5863 399 fmt_setu +16&all_11 0 00097 10329 628 all +16&all_110 0 01790 5863 399 fmt_setu +16&all_111 0 01799 1248 89 fmt_size +16&all_112 0 01812 3533 239 fmt_size +16&all_113 0 01851 5947 401 fmt_marg +16&all_114 0 01852 5947 401 fmt_marg +16&all_115 0 01853 5947 401 fmt_marg +16&all_116 0 01941 10957 761 fmt_head +16&all_117 0 01942 10957 761 fmt_head +16&all_118 0 01943 10957 761 fmt_head +16&all_119 0 01944 10957 761 fmt_head +16&all_12 0 00107 20251 1147 all +16&all_120 0 01945 10957 761 fmt_head +16&all_121 0 01955 1196 85 ref +16&all_122 0 02007 5458 351 ref_sett +16&all_123 0 02047 6151 445 ref_cite +16&all_124 0 02048 6151 445 ref_cite +16&all_125 0 02062 2877 189 ref_labe +16&all_126 0 02099 5459 339 ref_entr +16&all_127 0 02100 5459 339 ref_entr +16&all_128 0 02101 5459 339 ref_entr +16&all_129 0 02102 5459 339 ref_entr +16&all_13 0 00108 20251 1147 all +16&all_130 0 02103 5459 339 ref_entr +16&all_131 0 02150 7687 501 ref_chan +16&all_132 0 02151 7687 501 ref_chan +16&all_133 0 02152 7687 501 ref_chan +16&all_134 0 02189 5921 399 ref_crea +16&all_135 0 02190 5921 399 ref_crea +16&all_136 0 02200 1184 85 tbl +16&all_137 0 02243 4662 261 tbl_intr +16&all_138 0 02244 4662 261 tbl_intr +16&all_139 0 02259 3001 199 tbl_cell +16&all_14 0 00109 20251 1147 all +16&all_140 0 02268 1228 89 tbl_rows +16&all_141 0 02285 2210 153 tbl_rule +16&all_142 0 02286 2210 153 tbl_rule +16&all_143 0 02301 2854 201 tbl_marg +16&all_144 0 02316 2679 179 tbl_widt +16&all_145 0 02317 2679 179 tbl_widt +16&all_146 0 02348 3156 205 tbl_alig +16&all_147 0 02349 3156 205 tbl_alig +16&all_148 0 02368 2692 179 tbl_span +16&all_149 0 02369 2692 179 tbl_span +16&all_15 0 00110 20251 1147 all +16&all_150 0 02370 2692 179 tbl_span +16&all_151 0 02371 2692 179 tbl_span +16&all_152 0 02386 3005 199 tbl_mark +16&all_153 0 02405 2960 199 tbl_mult +16&all_154 0 02406 2960 199 tbl_mult +16&all_155 0 02407 2960 199 tbl_mult +16&all_156 0 02422 2635 179 tbl_plai +16&all_157 0 02423 2635 179 tbl_plai +16&all_158 0 02436 2678 179 tbl_setu +16&all_159 0 02451 2241 153 tbl_summ +16&all_16 0 00114 21937 1236 all +16&all_160 0 02452 2241 153 tbl_summ +16&all_161 0 02453 2241 153 tbl_summ +16&all_162 0 02463 1205 85 equ +16&all_163 0 02498 3199 219 equ_intr +16&all_164 0 02572 6573 471 equ_symb +16&all_165 0 02573 6573 471 equ_symb +16&all_166 0 02574 6573 471 equ_symb +16&all_167 0 02575 6573 471 equ_symb +16&all_168 0 02590 2709 190 equ_vert +16&all_169 0 02591 2709 190 equ_vert +16&all_17 0 00162 5804 370 bas_star +16&all_170 0 02622 4685 318 equ_spac +16&all_171 0 02683 6765 463 equ_disp +16&all_172 0 02684 6765 463 equ_disp +16&all_173 0 02695 2379 153 equ_defs +16&all_174 0 02812 6073 501 equ_summ +16&all_175 0 02813 6073 501 equ_summ +16&all_176 0 02814 6073 501 equ_summ +16&all_177 0 02815 6073 501 equ_summ +16&all_178 0 02816 6073 501 equ_summ +16&all_179 0 02817 6073 501 equ_summ +16&all_18 0 00163 5804 370 bas_star +16&all_180 0 02818 6073 501 equ_summ +16&all_181 0 02838 1212 85 bgr +16&all_182 0 02867 3232 230 bgr_colo +16&all_183 0 02892 3974 279 bgr_boxs +16&all_184 0 02893 3974 279 bgr_boxs +16&all_185 0 02920 3126 221 bgr_rota +16&all_186 0 02937 3104 221 bgr_scal +16&all_187 0 02946 1222 89 bgr_incl +16&all_188 0 02964 1198 85 dia +16&all_189 0 02999 2235 153 dia_intr +16&all_19 0 00200 5565 379 bas_objs +16&all_190 0 03000 2235 153 dia_intr +16&all_191 0 03057 6742 467 dia_node +16&all_192 0 03058 6742 467 dia_node +16&all_193 0 03059 6742 467 dia_node +16&all_194 0 03060 6742 467 dia_node +16&all_195 0 03061 6742 467 dia_node +16&all_196 0 03062 6742 467 dia_node +16&all_197 0 03082 3578 214 dia_link +16&all_198 0 03083 3578 214 dia_link +16&all_199 0 03084 3578 214 dia_link +16&all_20 0 00201 5565 379 bas_objs +16&all_200 0 03100 2211 153 dia_tags +16&all_201 0 03101 2211 153 dia_tags +16&all_202 0 03110 1178 89 dia_labe +16&all_203 0 03139 4193 287 dia_labe +16&all_204 0 03140 4193 287 dia_labe +16&all_205 0 03141 4193 287 dia_labe +16&all_206 0 03142 4193 287 dia_labe +16&all_207 0 03157 2232 153 dia_posi +16&all_208 0 03158 2232 153 dia_posi +16&all_209 0 03159 2232 153 dia_posi +16&all_21 0 00202 5565 379 bas_objs +16&all_210 0 03182 2902 199 dia_tree +16&all_211 0 03183 2902 199 dia_tree +16&all_212 0 03184 2902 199 dia_tree +16&all_213 0 03185 2902 199 dia_tree +16&all_214 0 03186 2902 199 dia_tree +16&all_215 0 03219 3915 247 dia_synt +16&all_216 0 03220 3915 247 dia_synt +16&all_217 0 03221 3915 247 dia_synt +16&all_218 0 03222 3915 247 dia_synt +16&all_219 0 03223 3915 247 dia_synt +16&all_22 0 00221 3186 219 bas_spac +16&all_220 0 03224 3915 247 dia_synt +16&all_221 0 03225 3915 247 dia_synt +16&all_222 0 03240 2924 199 dia_erro +16&all_223 0 03263 3257 219 dia_defi +16&all_224 0 03264 3257 219 dia_defi +16&all_225 0 03265 3257 219 dia_defi +16&all_226 0 03266 3257 219 dia_defi +16&all_227 0 03291 4057 259 dia_geom +16&all_228 0 03292 4057 259 dia_geom +16&all_229 0 03293 4057 259 dia_geom +16&all_23 0 00222 3186 219 bas_spac +16&all_230 0 03516 9685 842 dia_summ +16&all_231 0 03517 9685 842 dia_summ +16&all_232 0 03518 9685 842 dia_summ +16&all_233 0 03519 9685 842 dia_summ +16&all_234 0 03520 9685 842 dia_summ +16&all_235 0 03521 9685 842 dia_summ +16&all_236 0 03522 9685 842 dia_summ +16&all_237 0 03523 9685 842 dia_summ +16&all_238 0 03524 9685 842 dia_summ +16&all_239 0 03525 9685 842 dia_summ +16&all_24 0 00295 14245 938 bas_char +16&all_240 0 03526 9685 842 dia_summ +16&all_241 0 03527 9685 842 dia_summ +16&all_242 0 03528 9685 842 dia_summ +16&all_243 0 03529 9685 842 dia_summ +16&all_244 0 03530 9685 842 dia_summ +16&all_245 0 03540 1184 85 gra +16&all_246 0 03569 2594 179 gra_intr +16&all_247 0 03594 3629 239 gra_over +16&all_248 0 03595 3629 239 gra_over +16&all_249 0 03596 3629 239 gra_over +16&all_25 0 00296 14245 938 bas_char +16&all_250 0 03597 3629 239 gra_over +16&all_251 0 03610 2600 181 gra_capt +16&all_252 0 03633 3581 239 gra_tick +16&all_253 0 03634 3581 239 gra_tick +16&all_254 0 03635 3581 239 gra_tick +16&all_255 0 03666 4206 279 gra_data +16&all_256 0 03667 4206 279 gra_data +16&all_257 0 03668 4206 279 gra_data +16&all_258 0 03669 4206 279 gra_data +16&all_259 0 03670 4206 279 gra_data +16&all_26 0 00297 14245 938 bas_char +16&all_260 0 03681 2265 153 gra_plac +16&all_261 0 03702 3295 205 gra_func +16&all_262 0 03703 3295 205 gra_func +16&all_263 0 03704 3295 205 gra_func +16&all_264 0 03745 6767 459 gra_keys +16&all_265 0 03754 1174 89 gra_erro +16&all_266 0 03775 2224 153 gra_summ +16&all_267 0 03776 2224 153 gra_summ +16&all_268 0 03777 2224 153 gra_summ +16&all_269 0 03778 2224 153 gra_summ +16&all_27 0 00298 14245 938 bas_char +16&all_270 0 03779 2224 153 gra_summ +16&all_271 0 03789 1210 85 prg +16&all_272 0 03834 2751 195 prg_lone +16&all_273 0 03847 2332 153 prg_embe +16&all_274 0 03848 2332 153 prg_embe +16&all_275 0 03861 2288 153 prg_opti +16&all_276 0 03862 2288 153 prg_opti +16&all_277 0 03878 3444 195 prg_chan +16&all_278 0 03879 3444 195 prg_chan +16&all_279 0 03891 1239 89 prg_tabs +16&all_28 0 00299 14245 938 bas_char +16&all_280 0 03898 2658 179 prg_tabs +16&all_281 0 03909 2304 153 prg_form +16&all_282 0 03928 2678 181 prg_prog +16&all_283 0 03939 2300 153 prg_pipe +16&all_284 0 03976 3225 225 prg_perl +16&all_285 0 03977 3225 225 prg_perl +16&all_286 0 03987 1276 85 pascal +16&all_287 0 04011 4994 337 pascal +16&all_288 0 04012 4994 337 pascal +16&all_289 0 04013 4994 337 pascal +16&all_29 0 00362 8158 589 bas_font +16&all_290 0 04022 1290 85 ap_qck +16&all_291 0 04092 21973 1216 ap_qck +16&all_292 0 04093 21973 1216 ap_qck +16&all_293 0 04102 1218 85 ap_byp +16&all_294 0 04118 4133 280 ap_byp +16&all_297 0 04149 472382 31250 all +16&all_298 0 04189 477545 31577 all +16&all_3 0 00017 4013 269 all +16&all_30 0 00363 8158 589 bas_font +16&all_300 0 04916 489722 32392 all +16&all_301 0 04917 489722 32392 all +16&all_302 0 04918 489722 32392 all +16&all_303 0 04919 489722 32392 all +16&all_304 0 04920 489722 32392 all +16&all_305 0 04921 489722 32392 all +16&all_306 0 04922 489722 32392 all +16&all_307 0 04923 489722 32392 all +16&all_31 0 00364 8158 589 bas_font +16&all_32 0 00373 1184 89 bas_head +16&all_33 0 00416 5912 419 bas_par1 +16&all_34 0 00506 9734 686 bas_par2 +16&all_35 0 00507 9734 686 bas_par2 +16&all_36 0 00508 9734 686 bas_par2 +16&all_37 0 00509 9734 686 bas_par2 +16&all_38 0 00526 3340 230 bas_line +16&all_39 0 00553 2622 179 bas_unde +16&all_4 0 00023 413 35 preface +16&all_40 0 00568 2834 199 bas_date +16&all_41 0 00599 5348 334 bas_lang +16&all_42 0 00600 5348 334 bas_lang +16&all_43 0 00625 3157 205 bas_verb +16&all_44 0 00640 2920 199 bas_drop +16&all_45 0 00659 3610 239 bas_conv +16&all_46 0 00669 1246 85 str +16&all_47 0 00724 7493 529 str_disp +16&all_48 0 00906 22280 1599 str_list +16&all_49 0 00907 22280 1599 str_list +16&all_50 0 00908 22280 1599 str_list +16&all_51 0 00909 22280 1599 str_list +16&all_52 0 00910 22280 1599 str_list +16&all_53 0 00950 6137 411 str_foot +16&all_54 0 00951 6137 411 str_foot +16&all_55 0 00974 4371 298 str_marg +16&all_56 0 00975 4371 298 str_marg +16&all_57 0 01015 6783 438 str_theo +16&all_58 0 01016 6783 438 str_theo +16&all_59 0 01044 4170 286 str_figs +16&all_60 0 01080 12852 703 str_figs +16&all_61 0 01081 12852 703 str_figs +16&all_62 0 01082 12852 703 str_figs +16&all_63 0 01083 12852 703 str_figs +16&all_64 0 01106 3732 242 str_larg +16&all_65 0 01107 3732 242 str_larg +16&all_66 0 01108 3732 242 str_larg +16&all_67 0 01143 5232 359 str_cros +16&all_68 0 01144 5232 359 str_cros +16&all_69 0 01145 5232 359 str_cros +16&all_70 0 01174 5116 339 str_cont +16&all_71 0 01216 5985 396 str_indx +16&all_72 0 01217 5985 396 str_indx +16&all_73 0 01218 5985 396 str_indx +16&all_74 0 01219 5985 396 str_indx +16&all_75 0 01220 5985 396 str_indx +16&all_76 0 01246 4603 320 str_colu +16&all_77 0 01269 3957 247 str_defs +16&all_78 0 01270 3957 247 str_defs +16&all_79 0 01280 1208 85 typ +16&all_8 0 00123 1196 85 bas +16&all_80 0 01399 16298 1077 typ_ordi +16&all_81 0 01400 16298 1077 typ_ordi +16&all_82 0 01401 16298 1077 typ_ordi +16&all_83 0 01402 16298 1077 typ_ordi +16&all_84 0 01477 11864 797 typ_repo +16&all_85 0 01478 11864 797 typ_repo +16&all_86 0 01479 11864 797 typ_repo +16&all_87 0 01480 11864 797 typ_repo +16&all_88 0 01481 11864 797 typ_repo +16&all_89 0 01482 11864 797 typ_repo +16&all_90 0 01575 13800 945 typ_book +16&all_91 0 01576 13800 945 typ_book +16&all_92 0 01577 13800 945 typ_book +16&all_93 0 01578 13800 945 typ_book +16&all_94 0 01579 13800 945 typ_book +16&all_95 0 01580 13800 945 typ_book +16&all_96 0 01581 13800 945 typ_book +16&all_97 0 01620 5988 386 typ_over +16&all_98 0 01621 5988 386 typ_over +16&all_99 0 01622 5988 386 typ_over +16&str_figs_3 0 01043 1224 89 str_figs +17&37.717.preface.1 0 00019 0 1 preface +18&36.4047.bgr_rota.1 0 02916 2568 179 bgr_rota +18&36.4047.bgr_scal.1 0 02933 2551 179 bgr_scal +18&36.4047.fmt_marg.1 0 01821 2311 153 fmt_marg +18&36.4047.preface.1 0 00025 2041 131 preface +18&36.4047.preface.10 0 00043 3823 311 preface +18&36.4047.preface.11 0 00045 4023 331 preface +18&36.4047.preface.12 0 00047 4223 351 preface +18&36.4047.preface.13 0 00049 4423 371 preface +18&36.4047.preface.14 0 00051 4623 391 preface +18&36.4047.preface.15 0 00053 4823 411 preface +18&36.4047.preface.16 0 00055 5023 431 preface +18&36.4047.preface.17 0 00057 5223 451 preface +18&36.4047.preface.18 0 00059 5423 471 preface +18&36.4047.preface.19 0 00061 5623 491 preface +18&36.4047.preface.2 0 00027 2239 151 preface +18&36.4047.preface.20 0 00063 5823 511 preface +18&36.4047.preface.21 0 00065 6023 531 preface +18&36.4047.preface.22 0 00067 6223 551 preface +18&36.4047.preface.23 0 00069 6423 571 preface +18&36.4047.preface.24 0 00071 6623 591 preface +18&36.4047.preface.25 0 00073 6823 611 preface +18&36.4047.preface.3 0 00029 2437 171 preface +18&36.4047.preface.4 0 00031 2635 191 preface +18&36.4047.preface.5 0 00033 2833 211 preface +18&36.4047.preface.6 0 00035 3031 231 preface +18&36.4047.preface.7 0 00037 3229 251 preface +18&36.4047.preface.8 0 00039 3427 271 preface +18&36.4047.preface.9 0 00041 3625 291 preface +18&36.4047.ref.1 0 01975 5237 368 ref +18&36.4047.str_colu.1 0 01242 4010 278 str_colu +18&36.4047.str_figs.1 0 01030 2947 207 str_figs +18&36.4047.tbl_marg.1 0 02295 2216 153 tbl_marg +18&36.4047.typ_illu.1 0 01641 3359 219 typ_illu +18&36.4047.typ_ordi.1 0 01319 4035 281 typ_ordi +18&36.4047.typ_ordi.10 0 01357 9792 659 typ_ordi +18&36.4047.typ_ordi.11 0 01361 10397 701 typ_ordi +18&36.4047.typ_ordi.12 0 01365 11051 743 typ_ordi +18&36.4047.typ_ordi.13 0 01369 11691 785 typ_ordi +18&36.4047.typ_ordi.14 0 01373 12317 827 typ_ordi +18&36.4047.typ_ordi.15 0 01377 12992 869 typ_ordi +18&36.4047.typ_ordi.16 0 01381 13653 911 typ_ordi +18&36.4047.typ_ordi.17 0 01385 14300 953 typ_ordi +18&36.4047.typ_ordi.18 0 01389 14996 995 typ_ordi +18&36.4047.typ_ordi.2 0 01323 4629 323 typ_ordi +18&36.4047.typ_ordi.3 0 01327 5265 365 typ_ordi +18&36.4047.typ_ordi.4 0 01331 5887 407 typ_ordi +18&36.4047.typ_ordi.5 0 01335 6504 449 typ_ordi +18&36.4047.typ_ordi.6 0 01339 7163 491 typ_ordi +18&36.4047.typ_ordi.7 0 01343 7808 533 typ_ordi +18&36.4047.typ_ordi.8 0 01347 8446 575 typ_ordi +18&36.4047.typ_ordi.9 0 01351 9126 617 typ_ordi +18&36.4047.typ_over.1 0 01593 3050 190 typ_over +19&36.4062.bas_char.1 0 00231 2245 153 bas_char +19&36.4062.bas_char.10 0 00251 7747 479 bas_char +19&36.4062.bas_char.11 0 00253 8067 504 bas_char +19&36.4062.bas_char.12 0 00255 8367 529 bas_char +19&36.4062.bas_char.13 0 00257 8920 563 bas_char +19&36.4062.bas_char.14 0 00259 9232 588 bas_char +19&36.4062.bas_char.15 0 00261 9544 613 bas_char +19&36.4062.bas_char.16 0 00263 10109 647 bas_char +19&36.4062.bas_char.17 0 00265 10426 672 bas_char +19&36.4062.bas_char.18 0 00267 10747 697 bas_char +19&36.4062.bas_char.19 0 00269 11321 731 bas_char +19&36.4062.bas_char.2 0 00235 2745 190 bas_char +19&36.4062.bas_char.20 0 00271 11647 756 bas_char +19&36.4062.bas_char.21 0 00273 11969 781 bas_char +19&36.4062.bas_char.22 0 00275 12470 813 bas_char +19&36.4062.bas_char.23 0 00277 12776 838 bas_char +19&36.4062.bas_char.24 0 00279 13095 858 bas_char +19&36.4062.bas_char.25 0 00285 13386 878 bas_char +19&36.4062.bas_char.26 0 00287 13680 898 bas_char +19&36.4062.bas_char.27 0 00289 13959 918 bas_char +19&36.4062.bas_char.3 0 00237 3044 210 bas_char +19&36.4062.bas_char.4 0 00239 5401 311 bas_char +19&36.4062.bas_char.5 0 00241 5703 336 bas_char +19&36.4062.bas_char.6 0 00243 6013 361 bas_char +19&36.4062.bas_char.7 0 00245 6584 395 bas_char +19&36.4062.bas_char.8 0 00247 6894 420 bas_char +19&36.4062.bas_char.9 0 00249 7216 445 bas_char +19&36.4062.bas_conv.1 0 00649 2263 153 bas_conv +19&36.4062.bas_conv.2 0 00651 2688 179 bas_conv +19&36.4062.bas_conv.3 0 00653 2988 199 bas_conv +19&36.4062.bas_conv.4 0 00655 3293 219 bas_conv +19&36.4062.bas_date.1 0 00562 2227 153 bas_date +19&36.4062.bas_date.2 0 00564 2571 179 bas_date +19&36.4062.bas_drop.1 0 00634 2235 153 bas_drop +19&36.4062.bas_drop.2 0 00636 2610 179 bas_drop +19&36.4062.bas_empt.1 0 00308 2217 153 bas_empt +19&36.4062.bas_font.1 0 00318 2225 153 bas_font +19&36.4062.bas_font.10 0 00338 4668 339 bas_font +19&36.4062.bas_font.11 0 00342 5102 370 bas_font +19&36.4062.bas_font.12 0 00344 5383 390 bas_font +19&36.4062.bas_font.13 0 00346 5669 410 bas_font +19&36.4062.bas_font.14 0 00348 5950 430 bas_font +19&36.4062.bas_font.15 0 00350 6256 450 bas_font +19&36.4062.bas_font.16 0 00354 6530 470 bas_font +19&36.4062.bas_font.17 0 00356 7309 529 bas_font +19&36.4062.bas_font.18 0 00358 7602 549 bas_font +19&36.4062.bas_font.19 0 00360 7886 569 bas_font +19&36.4062.bas_font.2 0 00322 2554 179 bas_font +19&36.4062.bas_font.3 0 00324 2859 199 bas_font +19&36.4062.bas_font.4 0 00326 3154 219 bas_font +19&36.4062.bas_font.5 0 00328 3405 239 bas_font +19&36.4062.bas_font.6 0 00330 3656 259 bas_font +19&36.4062.bas_font.7 0 00332 3911 279 bas_font +19&36.4062.bas_font.8 0 00334 4166 299 bas_font +19&36.4062.bas_font.9 0 00336 4417 319 bas_font +19&36.4062.bas_head.1 0 00376 2223 153 bas_head +19&36.4062.bas_head.2 0 00378 2566 179 bas_head +19&36.4062.bas_hyph.1 0 00535 2200 153 bas_hyph +19&36.4062.bas_hyph.2 0 00537 2561 179 bas_hyph +19&36.4062.bas_hyph.3 0 00539 2859 201 bas_hyph +19&36.4062.bas_lang.1 0 00577 2273 153 bas_lang +19&36.4062.bas_lang.2 0 00579 2682 179 bas_lang +19&36.4062.bas_lang.3 0 00581 2961 199 bas_lang +19&36.4062.bas_lang.4 0 00585 3336 221 bas_lang +19&36.4062.bas_lang.5 0 00587 3690 243 bas_lang +19&36.4062.bas_lang.6 0 00589 4044 265 bas_lang +19&36.4062.bas_lang.7 0 00591 4401 287 bas_lang +19&36.4062.bas_line.1 0 00518 2241 153 bas_line +19&36.4062.bas_line.2 0 00520 2608 179 bas_line +19&36.4062.bas_line.3 0 00522 3052 210 bas_line +19&36.4062.bas_objs.1 0 00174 2277 153 bas_objs +19&36.4062.bas_objs.10 0 00194 4957 339 bas_objs +19&36.4062.bas_objs.11 0 00196 5265 359 bas_objs +19&36.4062.bas_objs.2 0 00178 2638 179 bas_objs +19&36.4062.bas_objs.3 0 00180 2902 199 bas_objs +19&36.4062.bas_objs.4 0 00182 3166 219 bas_objs +19&36.4062.bas_objs.5 0 00184 3460 239 bas_objs +19&36.4062.bas_objs.6 0 00186 3724 259 bas_objs +19&36.4062.bas_objs.7 0 00188 4042 279 bas_objs +19&36.4062.bas_objs.8 0 00190 4345 299 bas_objs +19&36.4062.bas_objs.9 0 00192 4651 319 bas_objs +19&36.4062.bas_par1.1 0 00388 2303 153 bas_par1 +19&36.4062.bas_par1.10 0 00406 4810 339 bas_par1 +19&36.4062.bas_par1.11 0 00410 5099 359 bas_par1 +19&36.4062.bas_par1.12 0 00412 5360 379 bas_par1 +19&36.4062.bas_par1.13 0 00414 5630 399 bas_par1 +19&36.4062.bas_par1.2 0 00390 2659 179 bas_par1 +19&36.4062.bas_par1.3 0 00392 2960 199 bas_par1 +19&36.4062.bas_par1.4 0 00394 3215 219 bas_par1 +19&36.4062.bas_par1.5 0 00396 3474 239 bas_par1 +19&36.4062.bas_par1.6 0 00398 3729 259 bas_par1 +19&36.4062.bas_par1.7 0 00400 3988 279 bas_par1 +19&36.4062.bas_par1.8 0 00402 4281 299 bas_par1 +19&36.4062.bas_par1.9 0 00404 4555 319 bas_par1 +19&36.4062.bas_par2.1 0 00425 2221 153 bas_par2 +19&36.4062.bas_par2.10 0 00471 6022 425 bas_par2 +19&36.4062.bas_par2.11 0 00473 6335 445 bas_par2 +19&36.4062.bas_par2.12 0 00475 6647 465 bas_par2 +19&36.4062.bas_par2.13 0 00477 6973 485 bas_par2 +19&36.4062.bas_par2.14 0 00479 7304 505 bas_par2 +19&36.4062.bas_par2.15 0 00498 8073 567 bas_par2 +19&36.4062.bas_par2.16 0 00500 8841 626 bas_par2 +19&36.4062.bas_par2.17 0 00502 9118 646 bas_par2 +19&36.4062.bas_par2.18 0 00504 9428 666 bas_par2 +19&36.4062.bas_par2.2 0 00429 2620 179 bas_par2 +19&36.4062.bas_par2.3 0 00431 2945 201 bas_par2 +19&36.4062.bas_par2.4 0 00433 3212 221 bas_par2 +19&36.4062.bas_par2.5 0 00443 3811 269 bas_par2 +19&36.4062.bas_par2.6 0 00445 4109 289 bas_par2 +19&36.4062.bas_par2.7 0 00447 4438 309 bas_par2 +19&36.4062.bas_par2.8 0 00449 4772 329 bas_par2 +19&36.4062.bas_par2.9 0 00451 5106 349 bas_par2 +19&36.4062.bas_spac.1 0 00211 2227 153 bas_spac +19&36.4062.bas_spac.2 0 00213 2596 179 bas_spac +19&36.4062.bas_spac.3 0 00217 2897 199 bas_spac +19&36.4062.bas_star.1 0 00144 2215 153 bas_star +19&36.4062.bas_star.2 0 00146 3369 204 bas_star +19&36.4062.bas_star.3 0 00160 5007 311 bas_star +19&36.4062.bas_unde.1 0 00549 2256 153 bas_unde +19&36.4062.bas_verb.1 0 00618 2543 168 bas_verb +19&36.4062.bgr_boxs.1 0 02876 2221 153 bgr_boxs +19&36.4062.bgr_boxs.2 0 02880 2552 179 bgr_boxs +19&36.4062.bgr_boxs.3 0 02882 2831 199 bgr_boxs +19&36.4062.bgr_boxs.4 0 02886 3114 219 bgr_boxs +19&36.4062.bgr_boxs.5 0 02888 3413 239 bgr_boxs +19&36.4062.bgr_boxs.6 0 02890 3671 259 bgr_boxs +19&36.4062.bgr_colo.1 0 02859 2207 153 bgr_colo +19&36.4062.bgr_colo.2 0 02861 2542 179 bgr_colo +19&36.4062.bgr_colo.3 0 02863 2809 199 bgr_colo +19&36.4062.bgr_incl.1 0 02949 2257 153 bgr_incl +19&36.4062.bgr_incl.2 0 02951 2644 179 bgr_incl +19&36.4062.bgr_incl.3 0 02953 2967 199 bgr_incl +19&36.4062.bgr_outl.1 0 02902 2235 153 bgr_outl +19&36.4062.bgr_rota.1 0 02912 2229 153 bgr_rota +19&36.4062.bgr_rota.2 0 02918 2803 199 bgr_rota +19&36.4062.bgr_scal.1 0 02929 2218 153 bgr_scal +19&36.4062.bgr_scal.2 0 02935 2786 199 bgr_scal +19&36.4062.dia.1 0 02978 4082 280 dia +19&36.4062.dia.2 0 02981 4458 313 dia +19&36.4062.dia.3 0 02993 5075 357 dia +19&36.4062.dia_defi.1 0 03251 2277 153 dia_defi +19&36.4062.dia_defi.2 0 03253 2668 179 dia_defi +19&36.4062.dia_defi.3 0 03259 2962 199 dia_defi +19&36.4062.dia_erro.1 0 03234 2217 153 dia_erro +19&36.4062.dia_erro.2 0 03238 2601 179 dia_erro +19&36.4062.dia_geom.1 0 03277 2311 153 dia_geom +19&36.4062.dia_geom.2 0 03279 2754 179 dia_geom +19&36.4062.dia_geom.3 0 03283 3086 199 dia_geom +19&36.4062.dia_geom.4 0 03285 3403 219 dia_geom +19&36.4062.dia_geom.5 0 03287 3730 239 dia_geom +19&36.4062.dia_labe.1 0 03113 2217 153 dia_labe +19&36.4062.dia_labe.2 0 03115 2595 179 dia_labe +19&36.4062.dia_labe.3 0 03117 2922 199 dia_labe +19&36.4062.dia_labe.4 0 03119 3249 219 dia_labe +19&36.4062.dia_labe.5 0 03121 3576 239 dia_labe +19&36.4062.dia_link.1 0 03071 2214 153 dia_link +19&36.4062.dia_link.2 0 03077 2606 179 dia_link +19&36.4062.dia_node.1 0 03009 2214 153 dia_node +19&36.4062.dia_node.10 0 03029 5051 339 dia_node +19&36.4062.dia_node.11 0 03031 5336 359 dia_node +19&36.4062.dia_node.12 0 03035 5613 379 dia_node +19&36.4062.dia_node.13 0 03045 6180 427 dia_node +19&36.4062.dia_node.14 0 03047 6461 447 dia_node +19&36.4062.dia_node.2 0 03013 2542 179 dia_node +19&36.4062.dia_node.3 0 03015 2865 199 dia_node +19&36.4062.dia_node.4 0 03017 3188 219 dia_node +19&36.4062.dia_node.5 0 03019 3511 239 dia_node +19&36.4062.dia_node.6 0 03021 3824 259 dia_node +19&36.4062.dia_node.7 0 03023 4162 279 dia_node +19&36.4062.dia_node.8 0 03025 4505 299 dia_node +19&36.4062.dia_node.9 0 03027 4776 319 dia_node +19&36.4062.dia_synt.1 0 03195 2239 153 dia_synt +19&36.4062.dia_synt.2 0 03197 2633 179 dia_synt +19&36.4062.dia_synt.3 0 03199 2942 199 dia_synt +19&36.4062.dia_tree.1 0 03168 2214 153 dia_tree +19&36.4062.dia_tree.2 0 03180 2588 179 dia_tree +19&36.4062.equ.1 0 02477 4093 280 equ +19&36.4062.equ.2 0 02479 4435 306 equ +19&36.4062.equ.3 0 02481 4719 326 equ +19&36.4062.equ_disp.1 0 02631 2283 153 equ_disp +19&36.4062.equ_disp.10 0 02681 6469 443 equ_disp +19&36.4062.equ_disp.2 0 02633 2696 179 equ_disp +19&36.4062.equ_disp.3 0 02635 3010 199 equ_disp +19&36.4062.equ_disp.4 0 02637 3329 219 equ_disp +19&36.4062.equ_disp.5 0 02639 3648 239 equ_disp +19&36.4062.equ_disp.6 0 02671 5227 363 equ_disp +19&36.4062.equ_disp.7 0 02673 5534 383 equ_disp +19&36.4062.equ_disp.8 0 02675 5837 403 equ_disp +19&36.4062.equ_disp.9 0 02677 6157 423 equ_disp +19&36.4062.equ_intr.1 0 02490 2325 153 equ_intr +19&36.4062.equ_intr.2 0 02492 2693 179 equ_intr +19&36.4062.equ_intr.3 0 02496 2948 199 equ_intr +19&36.4062.equ_spac.1 0 02602 2517 170 equ_spac +19&36.4062.equ_spac.2 0 02604 2834 190 equ_spac +19&36.4062.equ_spac.3 0 02614 3446 238 equ_spac +19&36.4062.equ_spac.4 0 02616 3761 258 equ_spac +19&36.4062.equ_spac.5 0 02618 4080 278 equ_spac +19&36.4062.equ_spac.6 0 02620 4391 298 equ_spac +19&36.4062.equ_summ.1 0 02802 5756 481 equ_summ +19&36.4062.equ_symb.1 0 02509 2214 153 equ_symb +19&36.4062.equ_symb.2 0 02511 2574 179 equ_symb +19&36.4062.equ_symb.3 0 02513 2868 199 equ_symb +19&36.4062.equ_symb.4 0 02515 3176 219 equ_symb +19&36.4062.equ_symb.5 0 02517 3475 239 equ_symb +19&36.4062.equ_symb.6 0 02519 3764 259 equ_symb +19&36.4062.equ_symb.7 0 02521 4063 279 equ_symb +19&36.4062.equ_symb.8 0 02554 5370 397 equ_symb +19&36.4062.equ_tequ.1 0 02827 2265 153 equ_tequ +19&36.4062.equ_vert.1 0 02584 2219 153 equ_vert +19&36.4062.fmt_head.1 0 01862 2283 153 fmt_head +19&36.4062.fmt_head.10 0 01889 5382 367 fmt_head +19&36.4062.fmt_head.11 0 01895 5846 401 fmt_head +19&36.4062.fmt_head.12 0 01900 6165 421 fmt_head +19&36.4062.fmt_head.13 0 01904 6430 441 fmt_head +19&36.4062.fmt_head.14 0 01906 6703 461 fmt_head +19&36.4062.fmt_head.15 0 01908 6976 481 fmt_head +19&36.4062.fmt_head.16 0 01910 7245 501 fmt_head +19&36.4062.fmt_head.17 0 01914 7525 521 fmt_head +19&36.4062.fmt_head.18 0 01916 7806 541 fmt_head +19&36.4062.fmt_head.19 0 01918 8095 561 fmt_head +19&36.4062.fmt_head.2 0 01864 2663 179 fmt_head +19&36.4062.fmt_head.20 0 01920 8376 581 fmt_head +19&36.4062.fmt_head.21 0 01922 8665 601 fmt_head +19&36.4062.fmt_head.22 0 01924 8938 621 fmt_head +19&36.4062.fmt_head.23 0 01926 9215 641 fmt_head +19&36.4062.fmt_head.24 0 01928 9496 661 fmt_head +19&36.4062.fmt_head.25 0 01930 9781 681 fmt_head +19&36.4062.fmt_head.26 0 01935 10062 701 fmt_head +19&36.4062.fmt_head.27 0 01937 10335 721 fmt_head +19&36.4062.fmt_head.28 0 01939 10652 741 fmt_head +19&36.4062.fmt_head.3 0 01866 2967 199 fmt_head +19&36.4062.fmt_head.4 0 01868 3256 219 fmt_head +19&36.4062.fmt_head.5 0 01872 3547 239 fmt_head +19&36.4062.fmt_head.6 0 01874 3838 259 fmt_head +19&36.4062.fmt_head.7 0 01876 4148 279 fmt_head +19&36.4062.fmt_head.8 0 01878 4462 299 fmt_head +19&36.4062.fmt_head.9 0 01883 4940 333 fmt_head +19&36.4062.fmt_marg.1 0 01823 2667 179 fmt_marg +19&36.4062.fmt_marg.10 0 01845 5372 361 fmt_marg +19&36.4062.fmt_marg.11 0 01847 5666 381 fmt_marg +19&36.4062.fmt_marg.2 0 01825 2981 201 fmt_marg +19&36.4062.fmt_marg.3 0 01827 3264 221 fmt_marg +19&36.4062.fmt_marg.4 0 01829 3551 241 fmt_marg +19&36.4062.fmt_marg.5 0 01831 3853 261 fmt_marg +19&36.4062.fmt_marg.6 0 01833 4159 281 fmt_marg +19&36.4062.fmt_marg.7 0 01835 4465 301 fmt_marg +19&36.4062.fmt_marg.8 0 01839 4775 321 fmt_marg +19&36.4062.fmt_marg.9 0 01843 5069 341 fmt_marg +19&36.4062.fmt_setu.1 0 01758 2225 153 fmt_setu +19&36.4062.fmt_setu.10 0 01778 4968 339 fmt_setu +19&36.4062.fmt_setu.11 0 01780 5229 359 fmt_setu +19&36.4062.fmt_setu.12 0 01786 5521 379 fmt_setu +19&36.4062.fmt_setu.2 0 01760 2577 179 fmt_setu +19&36.4062.fmt_setu.3 0 01762 2864 199 fmt_setu +19&36.4062.fmt_setu.4 0 01764 3188 219 fmt_setu +19&36.4062.fmt_setu.5 0 01766 3478 239 fmt_setu +19&36.4062.fmt_setu.6 0 01770 3778 259 fmt_setu +19&36.4062.fmt_setu.7 0 01772 4093 279 fmt_setu +19&36.4062.fmt_setu.8 0 01774 4383 299 fmt_setu +19&36.4062.fmt_setu.9 0 01776 4673 319 fmt_setu +19&36.4062.fmt_size.1 0 01802 2287 153 fmt_size +19&36.4062.fmt_size.2 0 01804 2656 179 fmt_size +19&36.4062.fmt_size.3 0 01806 2939 199 fmt_size +19&36.4062.fmt_size.4 0 01808 3226 219 fmt_size +19&36.4062.gra.1 0 03554 4060 280 gra +19&36.4062.gra.2 0 03556 4409 306 gra +19&36.4062.gra_capt.1 0 03606 2219 153 gra_capt +19&36.4062.gra_data.1 0 03644 2243 153 gra_data +19&36.4062.gra_data.2 0 03646 2597 179 gra_data +19&36.4062.gra_data.3 0 03648 2932 199 gra_data +19&36.4062.gra_data.4 0 03650 3269 219 gra_data +19&36.4062.gra_data.5 0 03656 3581 239 gra_data +19&36.4062.gra_data.6 0 03662 3869 259 gra_data +19&36.4062.gra_func.1 0 03690 2293 153 gra_func +19&36.4062.gra_intr.1 0 03565 2223 153 gra_intr +19&36.4062.gra_keys.1 0 03713 2215 153 gra_keys +19&36.4062.gra_keys.10 0 03731 4970 339 gra_keys +19&36.4062.gra_keys.11 0 03733 5271 359 gra_keys +19&36.4062.gra_keys.12 0 03735 5599 379 gra_keys +19&36.4062.gra_keys.13 0 03737 5892 399 gra_keys +19&36.4062.gra_keys.14 0 03739 6181 419 gra_keys +19&36.4062.gra_keys.15 0 03741 6474 439 gra_keys +19&36.4062.gra_keys.2 0 03715 2565 179 gra_keys +19&36.4062.gra_keys.3 0 03717 2852 199 gra_keys +19&36.4062.gra_keys.4 0 03719 3135 219 gra_keys +19&36.4062.gra_keys.5 0 03721 3426 239 gra_keys +19&36.4062.gra_keys.6 0 03723 3744 259 gra_keys +19&36.4062.gra_keys.7 0 03725 4039 279 gra_keys +19&36.4062.gra_keys.8 0 03727 4361 299 gra_keys +19&36.4062.gra_keys.9 0 03729 4652 319 gra_keys +19&36.4062.gra_over.1 0 03578 2285 153 gra_over +19&36.4062.gra_over.2 0 03580 2731 179 gra_over +19&36.4062.gra_over.3 0 03586 3008 199 gra_over +19&36.4062.gra_over.4 0 03588 3295 219 gra_over +19&36.4062.gra_tick.1 0 03619 2213 153 gra_tick +19&36.4062.gra_tick.2 0 03621 2583 179 gra_tick +19&36.4062.gra_tick.3 0 03625 2885 199 gra_tick +19&36.4062.gra_tick.4 0 03629 3233 219 gra_tick +19&36.4062.pascal.1 0 04001 4235 280 pascal +19&36.4062.pascal.2 0 04003 4606 306 pascal +19&36.4062.preface.1 0 00075 7512 669 preface +19&36.4062.preface.2 0 00077 7792 689 preface +19&36.4062.preface.3 0 00079 8085 709 preface +19&36.4062.preface.4 0 00081 8377 729 preface +19&36.4062.preface.5 0 00083 8941 771 preface +19&36.4062.preface.6 0 00085 9271 793 preface +19&36.4062.preface.7 0 00087 9549 813 preface +19&36.4062.preface.8 0 00089 9816 833 preface +19&36.4062.prg.1 0 03803 4086 280 prg +19&36.4062.prg.2 0 03806 4919 318 prg +19&36.4062.prg.3 0 03808 5210 338 prg +19&36.4062.prg.4 0 03810 5492 358 prg +19&36.4062.prg.5 0 03812 5773 378 prg +19&36.4062.prg.6 0 03814 6054 398 prg +19&36.4062.prg_chan.1 0 03871 2316 153 prg_chan +19&36.4062.prg_tabs.1 0 03894 2262 153 prg_tabs +19&36.4062.ref.1 0 01969 4072 280 ref +19&36.4062.ref.2 0 01971 4418 306 ref +19&36.4062.ref.3 0 01973 4990 348 ref +19&36.4062.ref.4 0 01977 5471 388 ref +19&36.4062.ref_chan.1 0 02112 2595 170 ref_chan +19&36.4062.ref_chan.10 0 02134 5499 361 ref_chan +19&36.4062.ref_chan.11 0 02136 5829 381 ref_chan +19&36.4062.ref_chan.12 0 02138 6127 401 ref_chan +19&36.4062.ref_chan.13 0 02140 6429 421 ref_chan +19&36.4062.ref_chan.14 0 02142 6735 441 ref_chan +19&36.4062.ref_chan.15 0 02144 7061 461 ref_chan +19&36.4062.ref_chan.16 0 02146 7373 481 ref_chan +19&36.4062.ref_chan.2 0 02114 2907 190 ref_chan +19&36.4062.ref_chan.3 0 02118 3211 210 ref_chan +19&36.4062.ref_chan.4 0 02120 3519 230 ref_chan +19&36.4062.ref_chan.5 0 02122 3815 250 ref_chan +19&36.4062.ref_chan.6 0 02124 4259 281 ref_chan +19&36.4062.ref_chan.7 0 02128 4567 301 ref_chan +19&36.4062.ref_chan.8 0 02130 4871 321 ref_chan +19&36.4062.ref_chan.9 0 02132 5191 341 ref_chan +19&36.4062.ref_cite.1 0 02016 2223 153 ref_cite +19&36.4062.ref_cite.10 0 02039 5300 385 ref_cite +19&36.4062.ref_cite.11 0 02041 5581 405 ref_cite +19&36.4062.ref_cite.12 0 02043 5850 425 ref_cite +19&36.4062.ref_cite.2 0 02018 2573 179 ref_cite +19&36.4062.ref_cite.3 0 02025 3049 218 ref_cite +19&36.4062.ref_cite.4 0 02027 3328 238 ref_cite +19&36.4062.ref_cite.5 0 02029 3923 285 ref_cite +19&36.4062.ref_cite.6 0 02031 4213 305 ref_cite +19&36.4062.ref_cite.7 0 02033 4472 325 ref_cite +19&36.4062.ref_cite.8 0 02035 4747 345 ref_cite +19&36.4062.ref_cite.9 0 02037 5014 365 ref_cite +19&36.4062.ref_crea.1 0 02161 2299 153 ref_crea +19&36.4062.ref_crea.10 0 02183 5063 339 ref_crea +19&36.4062.ref_crea.11 0 02185 5324 359 ref_crea +19&36.4062.ref_crea.12 0 02187 5589 379 ref_crea +19&36.4062.ref_crea.2 0 02163 2728 179 ref_crea +19&36.4062.ref_crea.3 0 02165 3007 199 ref_crea +19&36.4062.ref_crea.4 0 02167 3298 219 ref_crea +19&36.4062.ref_crea.5 0 02169 3639 239 ref_crea +19&36.4062.ref_crea.6 0 02171 3969 259 ref_crea +19&36.4062.ref_crea.7 0 02177 4294 279 ref_crea +19&36.4062.ref_crea.8 0 02179 4549 299 ref_crea +19&36.4062.ref_crea.9 0 02181 4808 319 ref_crea +19&36.4062.ref_entr.1 0 02075 2259 153 ref_entr +19&36.4062.ref_entr.2 0 02079 2670 179 ref_entr +19&36.4062.ref_entr.3 0 02081 3028 199 ref_entr +19&36.4062.ref_entr.4 0 02083 3376 219 ref_entr +19&36.4062.ref_entr.5 0 02085 3729 239 ref_entr +19&36.4062.ref_entr.6 0 02087 4097 259 ref_entr +19&36.4062.ref_entr.7 0 02089 4420 279 ref_entr +19&36.4062.ref_entr.8 0 02093 4758 299 ref_entr +19&36.4062.ref_entr.9 0 02095 5091 319 ref_entr +19&36.4062.ref_labe.1 0 02057 2363 155 ref_labe +19&36.4062.ref_sett.1 0 01986 2287 153 ref_sett +19&36.4062.ref_sett.2 0 01988 2682 179 ref_sett +19&36.4062.ref_sett.3 0 01990 2965 199 ref_sett +19&36.4062.ref_sett.4 0 01992 3254 219 ref_sett +19&36.4062.ref_sett.5 0 01994 3541 239 ref_sett +19&36.4062.ref_sett.6 0 01998 3851 259 ref_sett +19&36.4062.ref_sett.7 0 02000 4130 279 ref_sett +19&36.4062.ref_sett.8 0 02002 4459 299 ref_sett +19&36.4062.ref_sett.9 0 02005 5171 331 ref_sett +19&36.4062.str_colu.1 0 01229 2255 153 str_colu +19&36.4062.str_colu.2 0 01231 2600 179 str_colu +19&36.4062.str_colu.3 0 01238 2914 199 str_colu +19&36.4062.str_colu.4 0 01240 3727 258 str_colu +19&36.4062.str_colu.5 0 01244 4283 298 str_colu +19&36.4062.str_cont.1 0 01154 2267 153 str_cont +19&36.4062.str_cont.2 0 01156 2644 179 str_cont +19&36.4062.str_cont.3 0 01158 2971 199 str_cont +19&36.4062.str_cont.4 0 01160 3266 219 str_cont +19&36.4062.str_cont.5 0 01162 3557 239 str_cont +19&36.4062.str_cont.6 0 01164 3868 259 str_cont +19&36.4062.str_cont.7 0 01166 4179 279 str_cont +19&36.4062.str_cont.8 0 01168 4482 299 str_cont +19&36.4062.str_cont.9 0 01170 4797 319 str_cont +19&36.4062.str_cros.1 0 01117 2259 153 str_cros +19&36.4062.str_cros.10 0 01137 4935 339 str_cros +19&36.4062.str_cros.2 0 01119 2635 179 str_cros +19&36.4062.str_cros.3 0 01121 2906 199 str_cros +19&36.4062.str_cros.4 0 01123 3185 219 str_cros +19&36.4062.str_cros.5 0 01125 3431 239 str_cros +19&36.4062.str_cros.6 0 01127 3748 259 str_cros +19&36.4062.str_cros.7 0 01131 4016 279 str_cros +19&36.4062.str_cros.8 0 01133 4295 299 str_cros +19&36.4062.str_cros.9 0 01135 4618 319 str_cros +19&36.4062.str_defs.1 0 01255 2295 153 str_defs +19&36.4062.str_defs.2 0 01257 2672 179 str_defs +19&36.4062.str_defs.3 0 01261 2973 199 str_defs +19&36.4062.str_disp.1 0 00690 2245 153 str_disp +19&36.4062.str_disp.10 0 00708 4917 339 str_disp +19&36.4062.str_disp.11 0 00710 5174 359 str_disp +19&36.4062.str_disp.12 0 00712 5431 379 str_disp +19&36.4062.str_disp.13 0 00714 5688 399 str_disp +19&36.4062.str_disp.14 0 00718 5945 419 str_disp +19&36.4062.str_disp.15 0 00720 6748 478 str_disp +19&36.4062.str_disp.16 0 00722 7189 509 str_disp +19&36.4062.str_disp.2 0 00692 2589 179 str_disp +19&36.4062.str_disp.3 0 00694 2864 199 str_disp +19&36.4062.str_disp.4 0 00696 3155 219 str_disp +19&36.4062.str_disp.5 0 00698 3462 239 str_disp +19&36.4062.str_disp.6 0 00700 3761 259 str_disp +19&36.4062.str_disp.7 0 00702 4064 279 str_disp +19&36.4062.str_disp.8 0 00704 4371 299 str_disp +19&36.4062.str_disp.9 0 00706 4666 319 str_disp +19&36.4062.str_figs.1 0 01025 2259 153 str_figs +19&36.4062.str_figs.10 0 01070 11632 623 str_figs +19&36.4062.str_figs.11 0 01072 11945 643 str_figs +19&36.4062.str_figs.12 0 01074 12254 663 str_figs +19&36.4062.str_figs.13 0 01076 12555 683 str_figs +19&36.4062.str_figs.2 0 01027 2606 179 str_figs +19&36.4062.str_figs.3 0 01032 3205 227 str_figs +19&36.4062.str_figs.4 0 01034 3577 249 str_figs +19&36.4062.str_figs.5 0 01046 5775 389 str_figs +19&36.4062.str_figs.6 0 01054 9811 516 str_figs +19&36.4062.str_figs.7 0 01056 10114 536 str_figs +19&36.4062.str_figs.8 0 01066 11046 583 str_figs +19&36.4062.str_figs.9 0 01068 11341 603 str_figs +19&36.4062.str_foot.1 0 00919 2283 153 str_foot +19&36.4062.str_foot.10 0 00946 5563 371 str_foot +19&36.4062.str_foot.11 0 00948 5860 391 str_foot +19&36.4062.str_foot.2 0 00927 3049 203 str_foot +19&36.4062.str_foot.3 0 00930 3465 231 str_foot +19&36.4062.str_foot.4 0 00934 3772 251 str_foot +19&36.4062.str_foot.5 0 00936 4079 271 str_foot +19&36.4062.str_foot.6 0 00938 4387 291 str_foot +19&36.4062.str_foot.7 0 00940 4694 311 str_foot +19&36.4062.str_foot.8 0 00942 4989 331 str_foot +19&36.4062.str_foot.9 0 00944 5288 351 str_foot +19&36.4062.str_indx.1 0 01183 2234 153 str_indx +19&36.4062.str_indx.2 0 01188 2639 186 str_indx +19&36.4062.str_indx.3 0 01203 3883 250 str_indx +19&36.4062.str_indx.4 0 01205 4675 309 str_indx +19&36.4062.str_indx.5 0 01207 4958 329 str_indx +19&36.4062.str_indx.6 0 01211 5245 349 str_indx +19&36.4062.str_indx.7 0 01213 5560 369 str_indx +19&36.4062.str_larg.1 0 01092 2413 155 str_larg +19&36.4062.str_larg.2 0 01094 2863 182 str_larg +19&36.4062.str_larg.3 0 01098 3130 202 str_larg +19&36.4062.str_larg.4 0 01102 3425 222 str_larg +19&36.4062.str_list.1 0 00733 2212 153 str_list +19&36.4062.str_list.10 0 00759 4940 367 str_list +19&36.4062.str_list.11 0 00761 5237 387 str_list +19&36.4062.str_list.12 0 00763 5494 407 str_list +19&36.4062.str_list.13 0 00765 5783 427 str_list +19&36.4062.str_list.14 0 00767 6040 447 str_list +19&36.4062.str_list.15 0 00769 6333 467 str_list +19&36.4062.str_list.16 0 00771 6630 487 str_list +19&36.4062.str_list.17 0 00773 6887 507 str_list +19&36.4062.str_list.18 0 00775 7184 527 str_list +19&36.4062.str_list.19 0 00787 7878 576 str_list +19&36.4062.str_list.2 0 00735 2532 179 str_list +19&36.4062.str_list.20 0 00789 8195 596 str_list +19&36.4062.str_list.21 0 00791 8456 616 str_list +19&36.4062.str_list.22 0 00793 8741 636 str_list +19&36.4062.str_list.23 0 00795 8998 656 str_list +19&36.4062.str_list.24 0 00797 9303 676 str_list +19&36.4062.str_list.25 0 00799 9564 696 str_list +19&36.4062.str_list.26 0 00801 9857 716 str_list +19&36.4062.str_list.27 0 00803 10122 736 str_list +19&36.4062.str_list.28 0 00805 10435 756 str_list +19&36.4062.str_list.29 0 00807 10704 776 str_list +19&36.4062.str_list.3 0 00737 2795 199 str_list +19&36.4062.str_list.30 0 00809 10989 796 str_list +19&36.4062.str_list.31 0 00811 11246 816 str_list +19&36.4062.str_list.32 0 00813 11551 836 str_list +19&36.4062.str_list.33 0 00815 11812 856 str_list +19&36.4062.str_list.34 0 00817 12105 876 str_list +19&36.4062.str_list.35 0 00819 12370 896 str_list +19&36.4062.str_list.36 0 00821 12683 916 str_list +19&36.4062.str_list.37 0 00823 12952 936 str_list +19&36.4062.str_list.38 0 00825 13241 956 str_list +19&36.4062.str_list.39 0 00827 13498 976 str_list +19&36.4062.str_list.4 0 00739 3046 219 str_list +19&36.4062.str_list.40 0 00829 13779 996 str_list +19&36.4062.str_list.41 0 00831 14036 1016 str_list +19&36.4062.str_list.42 0 00833 14317 1036 str_list +19&36.4062.str_list.43 0 00835 14574 1056 str_list +19&36.4062.str_list.44 0 00837 14849 1076 str_list +19&36.4062.str_list.45 0 00839 15131 1096 str_list +19&36.4062.str_list.46 0 00841 15388 1116 str_list +19&36.4062.str_list.47 0 00843 15665 1136 str_list +19&36.4062.str_list.48 0 00845 15922 1156 str_list +19&36.4062.str_list.49 0 00847 16220 1176 str_list +19&36.4062.str_list.5 0 00741 3328 239 str_list +19&36.4062.str_list.50 0 00849 16481 1196 str_list +19&36.4062.str_list.51 0 00851 16795 1216 str_list +19&36.4062.str_list.52 0 00857 17206 1250 str_list +19&36.4062.str_list.53 0 00860 17562 1277 str_list +19&36.4062.str_list.54 0 00862 17858 1297 str_list +19&36.4062.str_list.55 0 00864 18119 1317 str_list +19&36.4062.str_list.56 0 00866 18419 1337 str_list +19&36.4062.str_list.57 0 00868 18680 1357 str_list +19&36.4062.str_list.58 0 00870 18961 1377 str_list +19&36.4062.str_list.59 0 00872 19241 1397 str_list +19&36.4062.str_list.6 0 00743 3583 259 str_list +19&36.4062.str_list.60 0 00892 20461 1490 str_list +19&36.4062.str_list.7 0 00745 3861 279 str_list +19&36.4062.str_list.8 0 00755 4406 327 str_list +19&36.4062.str_list.9 0 00757 4685 347 str_list +19&36.4062.str_marg.1 0 00960 2327 153 str_marg +19&36.4062.str_marg.2 0 00962 2705 179 str_marg +19&36.4062.str_marg.3 0 00966 2996 199 str_marg +19&36.4062.str_marg.4 0 00968 3821 258 str_marg +19&36.4062.str_marg.5 0 00972 4104 278 str_marg +19&36.4062.str_theo.1 0 00984 2459 157 str_theo +19&36.4062.str_theo.2 0 00993 3915 251 str_theo +19&36.4062.str_theo.3 0 00995 4182 271 str_theo +19&36.4062.str_theo.4 0 00998 4783 301 str_theo +19&36.4062.str_theo.5 0 01000 5070 321 str_theo +19&36.4062.str_theo.6 0 01002 5337 341 str_theo +19&36.4062.str_theo.7 0 01004 5628 361 str_theo +19&36.4062.str_theo.8 0 01006 5895 381 str_theo +19&36.4062.str_theo.9 0 01008 6178 401 str_theo +19&36.4062.tbl.1 0 02214 4060 280 tbl +19&36.4062.tbl_alig.1 0 02338 2235 153 tbl_alig +19&36.4062.tbl_cell.1 0 02253 2269 153 tbl_cell +19&36.4062.tbl_cell.2 0 02255 2672 179 tbl_cell +19&36.4062.tbl_inde.1 0 02326 2245 153 tbl_inde +19&36.4062.tbl_inde.2 0 02328 2654 179 tbl_inde +19&36.4062.tbl_intr.1 0 02225 2839 173 tbl_intr +19&36.4062.tbl_intr.2 0 02227 3129 193 tbl_intr +19&36.4062.tbl_marg.1 0 02297 2452 173 tbl_marg +19&36.4062.tbl_mark.1 0 02380 2261 153 tbl_mark +19&36.4062.tbl_mark.2 0 02384 2693 179 tbl_mark +19&36.4062.tbl_mult.1 0 02395 2239 153 tbl_mult +19&36.4062.tbl_mult.2 0 02397 2635 179 tbl_mult +19&36.4062.tbl_plai.1 0 02416 2239 153 tbl_plai +19&36.4062.tbl_rows.1 0 02271 2267 153 tbl_rows +19&36.4062.tbl_setu.1 0 02432 2259 153 tbl_setu +19&36.4062.tbl_span.1 0 02358 2255 153 tbl_span +19&36.4062.tbl_widt.1 0 02312 2247 153 tbl_widt +19&36.4062.typ.1 0 01294 4080 280 typ +19&36.4062.typ_apdf.1 0 01706 2268 153 typ_apdf +19&36.4062.typ_book.1 0 01491 2197 153 typ_book +19&36.4062.typ_book.10 0 01515 5309 380 typ_book +19&36.4062.typ_book.11 0 01517 5634 402 typ_book +19&36.4062.typ_book.12 0 01519 5953 424 typ_book +19&36.4062.typ_book.13 0 01521 6269 446 typ_book +19&36.4062.typ_book.14 0 01523 6603 468 typ_book +19&36.4062.typ_book.15 0 01525 6931 490 typ_book +19&36.4062.typ_book.16 0 01527 7256 512 typ_book +19&36.4062.typ_book.17 0 01529 7599 534 typ_book +19&36.4062.typ_book.18 0 01531 7936 556 typ_book +19&36.4062.typ_book.19 0 01533 8246 578 typ_book +19&36.4062.typ_book.2 0 01493 2517 179 typ_book +19&36.4062.typ_book.20 0 01535 8577 600 typ_book +19&36.4062.typ_book.21 0 01537 8902 622 typ_book +19&36.4062.typ_book.22 0 01541 9221 644 typ_book +19&36.4062.typ_book.23 0 01543 9561 666 typ_book +19&36.4062.typ_book.24 0 01545 9895 688 typ_book +19&36.4062.typ_book.25 0 01547 10223 710 typ_book +19&36.4062.typ_book.26 0 01549 10572 732 typ_book +19&36.4062.typ_book.27 0 01551 10915 754 typ_book +19&36.4062.typ_book.28 0 01553 11197 774 typ_book +19&36.4062.typ_book.29 0 01555 11486 794 typ_book +19&36.4062.typ_book.3 0 01499 2780 199 typ_book +19&36.4062.typ_book.30 0 01557 11771 814 typ_book +19&36.4062.typ_book.31 0 01559 12052 834 typ_book +19&36.4062.typ_book.32 0 01563 12337 854 typ_book +19&36.4062.typ_book.33 0 01565 12644 874 typ_book +19&36.4062.typ_book.34 0 01567 12964 894 typ_book +19&36.4062.typ_book.35 0 01569 13304 914 typ_book +19&36.4062.typ_book.4 0 01501 3545 258 typ_book +19&36.4062.typ_book.5 0 01503 3844 278 typ_book +19&36.4062.typ_book.6 0 01505 4139 298 typ_book +19&36.4062.typ_book.7 0 01509 4414 318 typ_book +19&36.4062.typ_book.8 0 01511 4713 338 typ_book +19&36.4062.typ_book.9 0 01513 5004 358 typ_book +19&36.4062.typ_illu.1 0 01633 2306 153 typ_illu +19&36.4062.typ_illu.2 0 01635 2758 179 typ_illu +19&36.4062.typ_illu.3 0 01637 3064 199 typ_illu +19&36.4062.typ_illu.4 0 01643 3594 239 typ_illu +19&36.4062.typ_illu.5 0 01645 3934 261 typ_illu +19&36.4062.typ_illu.6 0 01647 4293 281 typ_illu +19&36.4062.typ_ordi.1 0 01303 2252 153 typ_ordi +19&36.4062.typ_ordi.10 0 01333 6153 427 typ_ordi +19&36.4062.typ_ordi.11 0 01337 6794 469 typ_ordi +19&36.4062.typ_ordi.12 0 01341 7445 511 typ_ordi +19&36.4062.typ_ordi.13 0 01345 8086 553 typ_ordi +19&36.4062.typ_ordi.14 0 01349 8748 595 typ_ordi +19&36.4062.typ_ordi.15 0 01353 9420 637 typ_ordi +19&36.4062.typ_ordi.16 0 01359 10052 679 typ_ordi +19&36.4062.typ_ordi.17 0 01363 10685 721 typ_ordi +19&36.4062.typ_ordi.18 0 01367 11331 763 typ_ordi +19&36.4062.typ_ordi.19 0 01371 11963 805 typ_ordi +19&36.4062.typ_ordi.2 0 01305 2627 179 typ_ordi +19&36.4062.typ_ordi.20 0 01375 12617 847 typ_ordi +19&36.4062.typ_ordi.21 0 01379 13284 889 typ_ordi +19&36.4062.typ_ordi.22 0 01383 13937 931 typ_ordi +19&36.4062.typ_ordi.23 0 01387 14612 973 typ_ordi +19&36.4062.typ_ordi.24 0 01391 15300 1015 typ_ordi +19&36.4062.typ_ordi.25 0 01393 15678 1037 typ_ordi +19&36.4062.typ_ordi.26 0 01397 15997 1057 typ_ordi +19&36.4062.typ_ordi.3 0 01307 2886 199 typ_ordi +19&36.4062.typ_ordi.4 0 01311 3165 219 typ_ordi +19&36.4062.typ_ordi.5 0 01313 3441 239 typ_ordi +19&36.4062.typ_ordi.6 0 01317 3727 259 typ_ordi +19&36.4062.typ_ordi.7 0 01321 4289 301 typ_ordi +19&36.4062.typ_ordi.8 0 01325 4907 343 typ_ordi +19&36.4062.typ_ordi.9 0 01329 5535 385 typ_ordi +19&36.4062.typ_orga.1 0 01716 2284 153 typ_orga +19&36.4062.typ_orga.2 0 01720 2706 179 typ_orga +19&36.4062.typ_orga.3 0 01722 2981 199 typ_orga +19&36.4062.typ_over.1 0 01591 2740 170 typ_over +19&36.4062.typ_over.2 0 01595 3358 210 typ_over +19&36.4062.typ_over.3 0 01602 4022 247 typ_over +19&36.4062.typ_over.4 0 01606 4813 306 typ_over +19&36.4062.typ_over.5 0 01610 5088 326 typ_over +19&36.4062.typ_over.6 0 01612 5391 346 typ_over +19&36.4062.typ_over.7 0 01614 5686 366 typ_over +19&36.4062.typ_plai.1 0 01658 2232 153 typ_plai +19&36.4062.typ_plai.2 0 01690 3634 277 typ_plai +19&36.4062.typ_plai.3 0 01692 3941 297 typ_plai +19&36.4062.typ_repo.1 0 01411 2242 153 typ_repo +19&36.4062.typ_repo.10 0 01441 6439 447 typ_repo +19&36.4062.typ_repo.11 0 01443 6765 469 typ_repo +19&36.4062.typ_repo.12 0 01445 7109 491 typ_repo +19&36.4062.typ_repo.13 0 01447 7447 513 typ_repo +19&36.4062.typ_repo.14 0 01449 7782 535 typ_repo +19&36.4062.typ_repo.15 0 01451 8135 557 typ_repo +19&36.4062.typ_repo.16 0 01453 8482 579 typ_repo +19&36.4062.typ_repo.17 0 01455 8822 601 typ_repo +19&36.4062.typ_repo.18 0 01457 9163 623 typ_repo +19&36.4062.typ_repo.19 0 01459 9498 645 typ_repo +19&36.4062.typ_repo.2 0 01413 2588 179 typ_repo +19&36.4062.typ_repo.20 0 01461 9827 667 typ_repo +19&36.4062.typ_repo.21 0 01463 10177 689 typ_repo +19&36.4062.typ_repo.22 0 01467 10521 711 typ_repo +19&36.4062.typ_repo.23 0 01469 10859 733 typ_repo +19&36.4062.typ_repo.24 0 01471 11218 755 typ_repo +19&36.4062.typ_repo.25 0 01473 11571 777 typ_repo +19&36.4062.typ_repo.3 0 01415 2910 199 typ_repo +19&36.4062.typ_repo.4 0 01425 3576 243 typ_repo +19&36.4062.typ_repo.5 0 01427 4370 302 typ_repo +19&36.4062.typ_repo.6 0 01431 4681 322 typ_repo +19&36.4062.typ_repo.7 0 01433 5464 381 typ_repo +19&36.4062.typ_repo.8 0 01435 5779 403 typ_repo +19&36.4062.typ_repo.9 0 01437 6112 425 typ_repo +2&36.2599.all.1 0 00002 694 46 all +2&36.2599.ap_byp.1 0 04104 1965 131 ap_byp +2&36.2599.ap_qck.1 0 04024 2085 131 ap_qck +2&36.2599.bas.1 0 00125 1940 131 bas +2&36.2599.bgr.1 0 02840 1964 131 bgr +2&36.2599.dia.1 0 02966 1950 131 dia +2&36.2599.equ.1 0 02465 1961 131 equ +2&36.2599.fmt.1 0 01739 1982 131 fmt +2&36.2599.gra.1 0 03542 1928 131 gra +2&36.2599.pascal.1 0 03989 2067 131 pascal +2&36.2599.prg.1 0 03791 1954 131 prg +2&36.2599.ref.1 0 01957 1940 131 ref +2&36.2599.str.1 0 00671 2002 131 str +2&36.2599.str_theo.1 0 00991 3607 234 str_theo +2&36.2599.tbl.1 0 02202 1928 131 tbl +2&36.2599.typ.1 0 01282 1948 131 typ +2&36.2625.str_theo.1 0 00989 2002 131 str +21&37.363.all.1 0 00093 6967 448 all +22&37.174.all.1 0 00117 22105 1250 all +22&37.174.all.10 0 03533 397288 26256 all +22&37.174.all.11 0 03782 437243 28925 all +22&37.174.all.12 0 03980 458906 30353 all +22&37.174.all.2 0 00662 73581 4701 all +22&37.174.all.3 0 01273 132626 8624 all +22&37.174.all.4 0 01730 183981 12090 all +22&37.174.all.5 0 01948 208087 13686 all +22&37.174.all.6 0 02193 232547 15291 all +22&37.174.all.7 0 02456 272509 17967 all +22&37.174.all.8 0 02831 302050 19913 all +22&37.174.all.9 0 02957 313316 20669 all +22&37.820.pascal.1 0 03985 458906 30353 all +22&basics 0 00121 22105 1250 all +22&biblio 0 01953 208087 13686 all +22&changes 0 01735 183981 12090 all +22&cprint 0 03787 437243 28925 all +22&diagrams 0 02962 313316 20669 all +22&equations 0 02461 272509 17967 all +22&graphics 0 02836 302050 19913 all +22&graphs 0 03538 397288 26256 all +22&structure 0 00667 73581 4701 all +22&tables 0 02198 232547 15291 all +22&types 0 01278 132626 8624 all +23&37.820.pascal.1 0 03981 0 1 pascal +23&basics 0 00118 0 1 bas +23&biblio 0 01949 0 1 ref +23&changes 0 01731 0 1 fmt +23&cprint 0 03783 0 1 prg +23&diagrams 0 02958 0 1 dia +23&equations 0 02457 0 1 equ +23&graphics 0 02832 0 1 bgr +23&graphs 0 03534 0 1 gra +23&structure 0 00663 0 1 str +23&tables 0 02194 0 1 tbl +23&types 0 01274 0 1 typ +24&33.1052.all.1 0 04151 473733 31318 all +24&33.1052.all.10 0 04178 474939 31411 all +24&33.1052.all.11 0 04181 475071 31421 all +24&33.1052.all.2 0 04154 473907 31331 all +24&33.1052.all.3 0 04157 474036 31341 all +24&33.1052.all.4 0 04160 474165 31351 all +24&33.1052.all.5 0 04163 474294 31361 all +24&33.1052.all.6 0 04166 474423 31371 all +24&33.1052.all.7 0 04169 474552 31381 all +24&33.1052.all.8 0 04172 474681 31391 all +24&33.1052.all.9 0 04175 474810 31401 all +24&33.1052.ap_qck.1 0 04038 4253 280 ap_qck +24&33.1052.ap_qck.10 0 04076 21397 1160 ap_qck +24&33.1052.ap_qck.11 0 04080 21541 1174 ap_qck +24&33.1052.ap_qck.12 0 04084 21685 1188 ap_qck +24&33.1052.ap_qck.13 0 04088 21829 1202 ap_qck +24&33.1052.ap_qck.2 0 04042 11881 616 ap_qck +24&33.1052.ap_qck.3 0 04046 12022 630 ap_qck +24&33.1052.ap_qck.4 0 04050 12163 644 ap_qck +24&33.1052.ap_qck.5 0 04054 12304 658 ap_qck +24&33.1052.ap_qck.6 0 04058 12445 672 ap_qck +24&33.1052.ap_qck.7 0 04062 12586 686 ap_qck +24&33.1052.ap_qck.8 0 04068 12727 700 ap_qck +24&33.1052.ap_qck.9 0 04072 21255 1146 ap_qck +24&33.1052.bas_par2.10 0 00461 5730 397 bas_par2 +24&33.1052.bas_par2.12 0 00467 5876 411 bas_par2 +24&33.1052.bas_par2.14 0 00481 7635 525 bas_par2 +24&33.1052.bas_par2.16 0 00485 7781 539 bas_par2 +24&33.1052.bas_par2.18 0 00490 7927 553 bas_par2 +24&33.1052.bas_par2.2 0 00435 3521 241 bas_par2 +24&33.1052.bas_par2.4 0 00439 3666 255 bas_par2 +24&33.1052.bas_par2.6 0 00453 5440 369 bas_par2 +24&33.1052.bas_par2.8 0 00457 5585 383 bas_par2 +24&33.1052.dia_labe.2 0 03127 3903 259 dia_labe +24&33.1052.dia_labe.4 0 03131 4048 273 dia_labe +24&33.1052.dia_node.2 0 03037 5890 399 dia_node +24&33.1052.dia_node.4 0 03041 6035 413 dia_node +24&33.1052.dia_summ.10 0 03320 2867 215 dia_summ +24&33.1052.dia_summ.12 0 03324 3013 229 dia_summ +24&33.1052.dia_summ.14 0 03328 3159 243 dia_summ +24&33.1052.dia_summ.16 0 03332 3305 257 dia_summ +24&33.1052.dia_summ.18 0 03336 3451 271 dia_summ +24&33.1052.dia_summ.2 0 03302 2220 153 dia_summ +24&33.1052.dia_summ.20 0 03344 3597 285 dia_summ +24&33.1052.dia_summ.22 0 03348 4236 338 dia_summ +24&33.1052.dia_summ.24 0 03354 4387 352 dia_summ +24&33.1052.dia_summ.26 0 03358 4538 366 dia_summ +24&33.1052.dia_summ.28 0 03362 4689 380 dia_summ +24&33.1052.dia_summ.30 0 03366 4840 394 dia_summ +24&33.1052.dia_summ.32 0 03370 4991 408 dia_summ +24&33.1052.dia_summ.34 0 03374 5142 422 dia_summ +24&33.1052.dia_summ.36 0 03378 5293 436 dia_summ +24&33.1052.dia_summ.38 0 03384 5444 450 dia_summ +24&33.1052.dia_summ.4 0 03306 2432 173 dia_summ +24&33.1052.dia_summ.40 0 03388 5596 464 dia_summ +24&33.1052.dia_summ.42 0 03392 5748 478 dia_summ +24&33.1052.dia_summ.44 0 03396 5900 492 dia_summ +24&33.1052.dia_summ.46 0 03400 6052 506 dia_summ +24&33.1052.dia_summ.48 0 03404 6204 520 dia_summ +24&33.1052.dia_summ.50 0 03410 6356 534 dia_summ +24&33.1052.dia_summ.52 0 03414 6508 548 dia_summ +24&33.1052.dia_summ.54 0 03424 6660 562 dia_summ +24&33.1052.dia_summ.56 0 03428 6811 576 dia_summ +24&33.1052.dia_summ.58 0 03432 6962 590 dia_summ +24&33.1052.dia_summ.6 0 03312 2577 187 dia_summ +24&33.1052.dia_summ.60 0 03436 7113 604 dia_summ +24&33.1052.dia_summ.62 0 03440 7264 618 dia_summ +24&33.1052.dia_summ.64 0 03444 7415 632 dia_summ +24&33.1052.dia_summ.66 0 03448 7566 646 dia_summ +24&33.1052.dia_summ.68 0 03454 7717 660 dia_summ +24&33.1052.dia_summ.70 0 03458 7868 674 dia_summ +24&33.1052.dia_summ.72 0 03462 8019 688 dia_summ +24&33.1052.dia_summ.74 0 03466 8171 702 dia_summ +24&33.1052.dia_summ.76 0 03470 8323 716 dia_summ +24&33.1052.dia_summ.78 0 03474 8475 730 dia_summ +24&33.1052.dia_summ.8 0 03316 2722 201 dia_summ +24&33.1052.dia_summ.80 0 03478 8627 744 dia_summ +24&33.1052.dia_summ.82 0 03490 8779 758 dia_summ +24&33.1052.dia_summ.84 0 03494 8930 772 dia_summ +24&33.1052.dia_summ.86 0 03498 9081 786 dia_summ +24&33.1052.dia_summ.88 0 03502 9232 800 dia_summ +24&33.1052.dia_summ.90 0 03506 9383 814 dia_summ +24&33.1052.dia_summ.92 0 03512 9534 828 dia_summ +24&33.1052.equ_disp.2 0 02655 4647 307 equ_disp +24&33.1052.equ_disp.4 0 02659 4792 321 equ_disp +24&33.1052.equ_disp.6 0 02663 4937 335 equ_disp +24&33.1052.equ_disp.8 0 02667 5082 349 equ_disp +24&33.1052.equ_spac.2 0 02606 3156 210 equ_spac +24&33.1052.equ_spac.4 0 02610 3301 224 equ_spac +24&33.1052.equ_summ.10 0 02722 2968 215 equ_summ +24&33.1052.equ_summ.12 0 02726 3114 229 equ_summ +24&33.1052.equ_summ.14 0 02730 3260 243 equ_summ +24&33.1052.equ_summ.16 0 02734 3406 257 equ_summ +24&33.1052.equ_summ.18 0 02738 3552 271 equ_summ +24&33.1052.equ_summ.2 0 02706 2310 153 equ_summ +24&33.1052.equ_summ.20 0 02742 3698 285 equ_summ +24&33.1052.equ_summ.22 0 02746 3845 299 equ_summ +24&33.1052.equ_summ.24 0 02750 3992 313 equ_summ +24&33.1052.equ_summ.26 0 02754 4139 327 equ_summ +24&33.1052.equ_summ.28 0 02760 4286 341 equ_summ +24&33.1052.equ_summ.30 0 02764 4433 355 equ_summ +24&33.1052.equ_summ.32 0 02768 4580 369 equ_summ +24&33.1052.equ_summ.34 0 02772 4727 383 equ_summ +24&33.1052.equ_summ.36 0 02776 4874 397 equ_summ +24&33.1052.equ_summ.38 0 02780 5021 411 equ_summ +24&33.1052.equ_summ.4 0 02710 2533 173 equ_summ +24&33.1052.equ_summ.40 0 02784 5168 425 equ_summ +24&33.1052.equ_summ.42 0 02788 5315 439 equ_summ +24&33.1052.equ_summ.44 0 02792 5462 453 equ_summ +24&33.1052.equ_summ.46 0 02796 5609 467 equ_summ +24&33.1052.equ_summ.6 0 02714 2678 187 equ_summ +24&33.1052.equ_summ.8 0 02718 2823 201 equ_summ +24&33.1052.equ_symb.10 0 02541 4932 355 equ_symb +24&33.1052.equ_symb.12 0 02545 5078 369 equ_symb +24&33.1052.equ_symb.14 0 02549 5224 383 equ_symb +24&33.1052.equ_symb.16 0 02564 6281 443 equ_symb +24&33.1052.equ_symb.18 0 02568 6427 457 equ_symb +24&33.1052.equ_symb.2 0 02523 4352 299 equ_symb +24&33.1052.equ_symb.4 0 02527 4497 313 equ_symb +24&33.1052.equ_symb.6 0 02531 4642 327 equ_symb +24&33.1052.equ_symb.8 0 02535 4787 341 equ_symb +24&33.1052.fmt_head.2 0 01880 4795 319 fmt_head +24&33.1052.fmt_head.4 0 01886 5237 353 fmt_head +24&33.1052.fmt_head.6 0 01892 5701 387 fmt_head +24&33.1052.prg_lone.12 0 03831 2529 174 prg_lone +24&33.1052.prg_lone.15 0 03832 2603 181 prg_lone +24&33.1052.prg_lone.18 0 03833 2677 188 prg_lone +24&33.1052.prg_lone.3 0 03828 2310 153 prg_lone +24&33.1052.prg_lone.6 0 03829 2383 160 prg_lone +24&33.1052.prg_lone.9 0 03830 2456 167 prg_lone +24&33.1052.prg_perl.2 0 03959 2464 166 prg_perl +24&33.1052.prg_perl.4 0 03963 2609 180 prg_perl +24&33.1052.prg_perl.6 0 03967 2754 194 prg_perl +24&33.1052.ref_labe.1 0 02061 2804 182 ref_labe +24&33.1052.str_list.1 0 00747 4116 299 str_list +24&33.1052.str_list.10 0 00874 19536 1417 str_list +24&33.1052.str_list.11 0 00884 20114 1462 str_list +24&33.1052.str_list.12 0 00888 20287 1476 str_list +24&33.1052.str_list.13 0 00898 20792 1510 str_list +24&33.1052.str_list.14 0 00902 21926 1583 str_list +24&33.1052.str_list.2 0 00751 4261 313 str_list +24&33.1052.str_list.3 0 00779 7441 547 str_list +24&33.1052.str_list.4 0 00783 7635 561 str_list +24&33.1052.str_list.5 0 00855 17060 1236 str_list +24&33.1052.str_list.6 0 00856 17133 1243 str_list +24&33.1052.str_list.7 0 00859 17489 1270 str_list +24&33.1052.str_list.9 0 00877 19682 1431 str_list +24&33.1052.typ_plai.10 0 01678 3196 235 typ_plai +24&33.1052.typ_plai.12 0 01682 3342 249 typ_plai +24&33.1052.typ_plai.14 0 01686 3488 263 typ_plai +24&33.1052.typ_plai.2 0 01662 2616 179 typ_plai +24&33.1052.typ_plai.4 0 01666 2761 193 typ_plai +24&33.1052.typ_plai.6 0 01670 2906 207 typ_plai +24&33.1052.typ_plai.8 0 01674 3051 221 typ_plai +24&33.1324.equ_disp.1 0 02652 4535 300 equ_disp +24&33.1492.ap_qck.1 0 04040 4253 280 ap_qck +24&33.1492.ap_qck.10 0 04078 21397 1160 ap_qck +24&33.1492.ap_qck.11 0 04082 21541 1174 ap_qck +24&33.1492.ap_qck.12 0 04086 21685 1188 ap_qck +24&33.1492.ap_qck.13 0 04090 21829 1202 ap_qck +24&33.1492.ap_qck.2 0 04044 11881 616 ap_qck +24&33.1492.ap_qck.3 0 04048 12022 630 ap_qck +24&33.1492.ap_qck.4 0 04052 12163 644 ap_qck +24&33.1492.ap_qck.5 0 04056 12304 658 ap_qck +24&33.1492.ap_qck.6 0 04060 12445 672 ap_qck +24&33.1492.ap_qck.7 0 04064 12586 686 ap_qck +24&33.1492.ap_qck.8 0 04070 12727 700 ap_qck +24&33.1492.ap_qck.9 0 04074 21255 1146 ap_qck +24&33.1492.bas_par2.1 0 00437 3521 241 bas_par2 +24&33.1492.bas_par2.2 0 00441 3666 255 bas_par2 +24&33.1492.bas_par2.3 0 00455 5440 369 bas_par2 +24&33.1492.bas_par2.4 0 00459 5585 383 bas_par2 +24&33.1492.bas_par2.5 0 00463 5730 397 bas_par2 +24&33.1492.bas_par2.6 0 00469 5876 411 bas_par2 +24&33.1492.bas_par2.7 0 00483 7635 525 bas_par2 +24&33.1492.bas_par2.8 0 00487 7781 539 bas_par2 +24&33.1492.bas_par2.9 0 00492 7927 553 bas_par2 +24&33.1492.dia_labe.1 0 03129 3903 259 dia_labe +24&33.1492.dia_labe.2 0 03133 4048 273 dia_labe +24&33.1492.dia_node.1 0 03039 5890 399 dia_node +24&33.1492.dia_node.2 0 03043 6035 413 dia_node +24&33.1492.dia_summ.1 0 03304 2220 153 dia_summ +24&33.1492.dia_summ.10 0 03346 3597 285 dia_summ +24&33.1492.dia_summ.11 0 03350 4236 338 dia_summ +24&33.1492.dia_summ.12 0 03356 4387 352 dia_summ +24&33.1492.dia_summ.13 0 03360 4538 366 dia_summ +24&33.1492.dia_summ.14 0 03364 4689 380 dia_summ +24&33.1492.dia_summ.15 0 03368 4840 394 dia_summ +24&33.1492.dia_summ.16 0 03372 4991 408 dia_summ +24&33.1492.dia_summ.17 0 03376 5142 422 dia_summ +24&33.1492.dia_summ.18 0 03380 5293 436 dia_summ +24&33.1492.dia_summ.19 0 03386 5444 450 dia_summ +24&33.1492.dia_summ.2 0 03308 2432 173 dia_summ +24&33.1492.dia_summ.20 0 03390 5596 464 dia_summ +24&33.1492.dia_summ.21 0 03394 5748 478 dia_summ +24&33.1492.dia_summ.22 0 03398 5900 492 dia_summ +24&33.1492.dia_summ.23 0 03402 6052 506 dia_summ +24&33.1492.dia_summ.24 0 03406 6204 520 dia_summ +24&33.1492.dia_summ.25 0 03412 6356 534 dia_summ +24&33.1492.dia_summ.26 0 03416 6508 548 dia_summ +24&33.1492.dia_summ.27 0 03426 6660 562 dia_summ +24&33.1492.dia_summ.28 0 03430 6811 576 dia_summ +24&33.1492.dia_summ.29 0 03434 6962 590 dia_summ +24&33.1492.dia_summ.3 0 03314 2577 187 dia_summ +24&33.1492.dia_summ.30 0 03438 7113 604 dia_summ +24&33.1492.dia_summ.31 0 03442 7264 618 dia_summ +24&33.1492.dia_summ.32 0 03446 7415 632 dia_summ +24&33.1492.dia_summ.33 0 03450 7566 646 dia_summ +24&33.1492.dia_summ.34 0 03456 7717 660 dia_summ +24&33.1492.dia_summ.35 0 03460 7868 674 dia_summ +24&33.1492.dia_summ.36 0 03464 8019 688 dia_summ +24&33.1492.dia_summ.37 0 03468 8171 702 dia_summ +24&33.1492.dia_summ.38 0 03472 8323 716 dia_summ +24&33.1492.dia_summ.39 0 03476 8475 730 dia_summ +24&33.1492.dia_summ.4 0 03318 2722 201 dia_summ +24&33.1492.dia_summ.40 0 03480 8627 744 dia_summ +24&33.1492.dia_summ.41 0 03492 8779 758 dia_summ +24&33.1492.dia_summ.42 0 03496 8930 772 dia_summ +24&33.1492.dia_summ.43 0 03500 9081 786 dia_summ +24&33.1492.dia_summ.44 0 03504 9232 800 dia_summ +24&33.1492.dia_summ.45 0 03508 9383 814 dia_summ +24&33.1492.dia_summ.46 0 03514 9534 828 dia_summ +24&33.1492.dia_summ.5 0 03322 2867 215 dia_summ +24&33.1492.dia_summ.6 0 03326 3013 229 dia_summ +24&33.1492.dia_summ.7 0 03330 3159 243 dia_summ +24&33.1492.dia_summ.8 0 03334 3305 257 dia_summ +24&33.1492.dia_summ.9 0 03338 3451 271 dia_summ +24&33.1492.equ_disp.1 0 02657 4647 307 equ_disp +24&33.1492.equ_disp.2 0 02661 4792 321 equ_disp +24&33.1492.equ_disp.3 0 02665 4937 335 equ_disp +24&33.1492.equ_disp.4 0 02669 5082 349 equ_disp +24&33.1492.equ_spac.1 0 02608 3156 210 equ_spac +24&33.1492.equ_spac.2 0 02612 3301 224 equ_spac +24&33.1492.equ_summ.1 0 02708 2310 153 equ_summ +24&33.1492.equ_summ.10 0 02744 3698 285 equ_summ +24&33.1492.equ_summ.11 0 02748 3845 299 equ_summ +24&33.1492.equ_summ.12 0 02752 3992 313 equ_summ +24&33.1492.equ_summ.13 0 02756 4139 327 equ_summ +24&33.1492.equ_summ.14 0 02762 4286 341 equ_summ +24&33.1492.equ_summ.15 0 02766 4433 355 equ_summ +24&33.1492.equ_summ.16 0 02770 4580 369 equ_summ +24&33.1492.equ_summ.17 0 02774 4727 383 equ_summ +24&33.1492.equ_summ.18 0 02778 4874 397 equ_summ +24&33.1492.equ_summ.19 0 02782 5021 411 equ_summ +24&33.1492.equ_summ.2 0 02712 2533 173 equ_summ +24&33.1492.equ_summ.20 0 02786 5168 425 equ_summ +24&33.1492.equ_summ.21 0 02790 5315 439 equ_summ +24&33.1492.equ_summ.22 0 02794 5462 453 equ_summ +24&33.1492.equ_summ.23 0 02798 5609 467 equ_summ +24&33.1492.equ_summ.3 0 02716 2678 187 equ_summ +24&33.1492.equ_summ.4 0 02720 2823 201 equ_summ +24&33.1492.equ_summ.5 0 02724 2968 215 equ_summ +24&33.1492.equ_summ.6 0 02728 3114 229 equ_summ +24&33.1492.equ_summ.7 0 02732 3260 243 equ_summ +24&33.1492.equ_summ.8 0 02736 3406 257 equ_summ +24&33.1492.equ_summ.9 0 02740 3552 271 equ_summ +24&33.1492.equ_symb.1 0 02525 4352 299 equ_symb +24&33.1492.equ_symb.2 0 02529 4497 313 equ_symb +24&33.1492.equ_symb.3 0 02533 4642 327 equ_symb +24&33.1492.equ_symb.4 0 02537 4787 341 equ_symb +24&33.1492.equ_symb.5 0 02543 4932 355 equ_symb +24&33.1492.equ_symb.6 0 02547 5078 369 equ_symb +24&33.1492.equ_symb.7 0 02551 5224 383 equ_symb +24&33.1492.equ_symb.8 0 02566 6281 443 equ_symb +24&33.1492.equ_symb.9 0 02570 6427 457 equ_symb +24&33.1492.fmt_head.1 0 01882 4795 319 fmt_head +24&33.1492.fmt_head.2 0 01888 5237 353 fmt_head +24&33.1492.fmt_head.3 0 01894 5701 387 fmt_head +24&33.1492.prg_perl.1 0 03961 2464 166 prg_perl +24&33.1492.prg_perl.2 0 03965 2609 180 prg_perl +24&33.1492.prg_perl.3 0 03969 2754 194 prg_perl +24&33.1492.str_list.1 0 00749 4116 299 str_list +24&33.1492.str_list.10 0 00904 21926 1583 str_list +24&33.1492.str_list.2 0 00753 4261 313 str_list +24&33.1492.str_list.3 0 00781 7441 547 str_list +24&33.1492.str_list.4 0 00785 7635 561 str_list +24&33.1492.str_list.5 0 00876 19536 1417 str_list +24&33.1492.str_list.6 0 00879 19682 1431 str_list +24&33.1492.str_list.7 0 00886 20114 1462 str_list +24&33.1492.str_list.8 0 00890 20287 1476 str_list +24&33.1492.str_list.9 0 00900 20792 1510 str_list +24&33.1492.typ_plai.1 0 01664 2616 179 typ_plai +24&33.1492.typ_plai.2 0 01668 2761 193 typ_plai +24&33.1492.typ_plai.3 0 01672 2906 207 typ_plai +24&33.1492.typ_plai.4 0 01676 3051 221 typ_plai +24&33.1492.typ_plai.5 0 01680 3196 235 typ_plai +24&33.1492.typ_plai.6 0 01684 3342 249 typ_plai +24&33.1492.typ_plai.7 0 01688 3488 263 typ_plai +24&36.1407.bas_lang.1 0 00596 5217 327 bas_lang +24&36.1407.bas_star.1 0 00154 4546 287 bas_star +24&36.1407.bas_star.2 0 00157 4876 304 bas_star +24&36.1407.bas_verb.1 0 00622 3026 198 bas_verb +24&36.1407.dia.1 0 02992 4954 350 dia +24&36.1407.dia_link.1 0 03095 5119 312 dia_link +24&36.1407.dia_synt.1 0 03206 3784 240 dia_synt +24&36.1407.equ_symb.1 0 02561 6150 436 equ_symb +24&36.1407.gra_func.1 0 03697 3164 198 gra_func +24&36.1407.prg.1 0 03825 6579 435 prg +24&36.1407.prg_chan.1 0 03883 4027 228 prg_chan +24&36.1407.prg_perl.1 0 03973 3094 218 prg_perl +24&36.1407.ref_sett.1 0 02022 6043 384 ref_sett +24&36.1407.str_defs.1 0 01266 3826 240 str_defs +24&36.1407.str_figs.1 0 01051 9680 509 str_figs +24&36.1407.str_figs.2 0 01063 10914 576 str_figs +24&36.1407.str_foot.1 0 00924 2918 196 str_foot +24&36.1407.str_indx.1 0 01193 3426 226 str_indx +24&36.1407.str_indx.2 0 01196 3752 243 str_indx +24&36.1407.str_indx.3 0 01235 7549 494 str_indx +24&36.1407.str_theo.1 0 01012 6652 431 str_theo +24&36.1407.tbl.1 0 02231 5002 334 tbl +24&36.1407.tbl_alig.1 0 02345 3025 198 tbl_alig +24&36.1407.tbl_intr.1 0 02234 3583 223 tbl_intr +24&36.1407.tbl_intr.2 0 02240 4531 254 tbl_intr +24&36.1407.typ_over.1 0 01599 3891 240 typ_over +24&36.1407.typ_repo.1 0 01422 3445 236 typ_repo +24&36.2625.str_theo.1 0 00992 3803 244 str_theo +24&37.1076.ap_qck.1 0 04021 447 36 ap_qck +24&37.820.pascal.1 0 03986 447 36 pascal +24&37.866.equ_defs.1 0 02690 536 42 equ_defs +24&37.866.equ_intr.1 0 02487 508 42 equ_intr +24&37.866.equ_spac.1 0 02597 503 42 equ_spac +24&37.866.equ_summ.1 0 02701 503 42 equ_summ +24&alone 0 03820 546 42 prg_lone +24&arbobj 0 03676 515 42 gra_plac +24&basics 0 00122 418 36 bas +24&biblio 0 01954 418 36 ref +24&books 0 01488 492 42 typ_book +24&boxes 0 02873 501 42 bgr_boxs +24&bypass 0 04101 423 36 ap_byp +24&captions 0 03603 487 42 gra_capt +24&changeref 0 02109 543 42 ref_chan +24&changes 0 01736 436 36 fmt +24&characters 0 00228 495 42 bas_char +24&citation 0 02013 491 42 ref_cite +24&colour 0 02856 493 42 bgr_colo +24&columns 0 01226 520 42 str_colu +24&contents 0 01151 523 42 str_cont +24&cpcomm 0 03915 535 42 prg_comm +24&cpp_erro 0 03945 504 42 prg_erro +24&cpp_prog 0 03923 536 42 prg_prog +24&cprint 0 03788 425 36 prg +24&cpsetup 0 03868 543 42 prg_chan +24&cross 0 01114 528 42 str_cros +24&data 0 03641 510 42 gra_data +24&databases 0 01983 519 42 ref_sett +24&date 0 00559 504 42 bas_date +24&definitions 0 01252 528 42 str_defs +24&dia_defi 0 03246 517 42 dia_defi +24&dia_erro 0 03231 489 42 dia_erro +24&dia_geom 0 03272 534 42 dia_geom +24&dia_intr 0 02987 495 42 dia_intr +24&dia_labe 0 03109 489 42 dia_labe +24&dia_link 0 03068 488 42 dia_link +24&dia_node 0 03006 488 42 dia_node +24&dia_posi 0 03148 494 42 dia_posi +24&dia_summ 0 03299 490 42 dia_summ +24&dia_synt 0 03192 498 42 dia_synt +24&dia_tags 0 03090 487 42 dia_tags +24&dia_tree 0 03165 488 42 dia_tree +24&diagrams 0 02963 418 36 dia +24&displays 0 00687 513 42 str_disp +24&dropcaps 0 00631 496 42 bas_drop +24&embedded 0 03840 548 42 prg_embe +24&empty 0 00305 496 42 bas_empt +24&entries 0 02068 511 42 ref_entr +24&equations 0 02462 420 36 equ +24&fibeq 0 02646 4190 276 equ_disp +24&figex 0 01041 4006 279 str_figs +24&figures 0 01022 522 42 str_figs +24&fonts 0 00315 500 42 bas_font +24&footnotes 0 00916 528 42 str_foot +24&formfeed 0 03904 534 42 prg_form +24&functions 0 03687 520 42 gra_func +24&graphics 0 02837 424 36 bgr +24&graphs 0 03539 414 36 gra +24&grerrors 0 03753 485 42 gra_erro +24&grintro 0 03562 490 42 gra_intr +24&grsummary 0 03762 487 42 gra_summ +24&headers 0 01859 532 42 fmt_head +24&headings 0 00372 491 42 bas_head +24&hyph 0 00532 490 42 bas_hyph +24&illustrations 0 01630 520 42 typ_illu +24&include 0 02945 513 42 bgr_incl +24&indexes 0 01180 511 42 str_indx +24&jensen1975pascal 0 04152 473733 31318 all +24&kernighan1975eqn 0 04155 473907 31331 all +24&key 0 03710 499 42 gra_keys +24&kingston1993lout.design 0 04158 474036 31341 all +24&kingston1994lout.overheads 0 04161 474165 31351 all +24&kingston1995lout.expert 0 04164 474294 31361 all +24&knuth1984tex 0 04167 474423 31371 all +24&labelled 0 02054 553 43 ref_labe +24&lamport1986latex 0 04170 474552 31381 all +24&languages 0 00574 512 42 bas_lang +24&largescale 0 01089 583 43 str_larg +24&linespace 0 00515 496 42 bas_line +24&lists 0 00730 507 42 str_list +24&marginnotes 0 00957 544 42 str_marg +24&margins 0 01818 546 42 fmt_marg +24&mathdisplays 0 02628 509 42 equ_disp +24&meyer1992eiffel 0 04173 474681 31391 all +24&objects 0 00169 520 42 bas_objs +24&ordinary 0 01300 508 42 typ_ordi +24&organizing 0 01713 518 42 typ_orga +24&outline 0 02899 502 42 bgr_outl +24&overall 0 03575 522 42 gra_over +24&overheads 0 01587 514 42 typ_over +24&pagesize 0 01798 531 42 fmt_size +24¶graphs 0 00385 524 42 bas_par1 +24¶s 0 00422 498 42 bas_par2 +24&pdf 0 01703 531 42 typ_apdf +24&pipes 0 03934 541 42 prg_pipe +24&plain 0 01655 507 42 typ_plai +24&prg_opti 0 03854 526 42 prg_opti +24&prg_perl 0 03953 511 42 prg_perl +24&refstyles 0 02158 525 42 ref_crea +24&reid1980scribe 0 04176 474810 31401 all +24&reports 0 01408 506 42 typ_repo +24&rotation 0 02909 497 42 bgr_rota +24&scaling 0 02926 495 42 bgr_scal +24&setup 0 01755 509 42 fmt_setu +24&spaces 0 00208 498 42 bas_spac +24&start 0 00141 495 42 bas_star +24&structure 0 00668 440 36 str +24&strunk1979style 0 04179 474939 31411 all +24&super 0 00606 507 42 bas_supe +24&symbols 0 02504 491 42 equ_symb +24&tables 0 02199 414 36 tbl +24&tabs 0 03890 525 42 prg_tabs +24&tbl_alig 0 02335 494 42 tbl_alig +24&tbl_cell 0 02250 511 42 tbl_cell +24&tbl_inde 0 02323 499 42 tbl_inde +24&tbl_intr 0 02221 494 42 tbl_intr +24&tbl_marg 0 02292 486 42 tbl_marg +24&tbl_mark 0 02377 507 42 tbl_mark +24&tbl_mult 0 02392 496 42 tbl_mult +24&tbl_plai 0 02413 496 42 tbl_plai +24&tbl_rows 0 02267 510 42 tbl_rows +24&tbl_rule 0 02278 484 42 tbl_rule +24&tbl_setu 0 02429 506 42 tbl_setu +24&tbl_span 0 02355 504 42 tbl_span +24&tbl_summ 0 02442 497 42 tbl_summ +24&tbl_widt 0 02307 500 42 tbl_widt +24&teq 0 02824 527 42 equ_tequ +24&theorems 0 00981 612 44 str_theo +24&ticks 0 03616 492 42 gra_tick +24&types 0 01279 425 36 typ +24&underlining 0 00546 497 42 bas_unde +24&vanleunen1992handbook 0 04182 475071 31421 all +24&verbatim 0 00614 496 42 bas_verb +24&vpos 0 02581 501 42 equ_vert +24&white 0 00646 519 42 bas_conv +25&37.181.bas.1 0 00137 4072 280 bas +25&37.181.bas.10 0 00511 6051 451 bas +25&37.181.bas.11 0 00528 6464 485 bas +25&37.181.bas.12 0 00542 6534 492 bas +25&37.181.bas.13 0 00555 6604 499 bas +25&37.181.bas.14 0 00570 6674 506 bas +25&37.181.bas.15 0 00602 6744 513 bas +25&37.181.bas.16 0 00610 7157 547 bas +25&37.181.bas.17 0 00627 7227 554 bas +25&37.181.bas.18 0 00642 7297 561 bas +25&37.181.bas.2 0 00165 4135 287 bas +25&37.181.bas.3 0 00204 4546 321 bas +25&37.181.bas.4 0 00224 4957 355 bas +25&37.181.bas.5 0 00301 5025 362 bas +25&37.181.bas.6 0 00311 5436 396 bas +25&37.181.bas.7 0 00368 5504 403 bas +25&37.181.bas.8 0 00381 5915 437 bas +25&37.181.bas.9 0 00418 5983 444 bas +25&37.181.bgr.1 0 02852 4096 280 bgr +25&37.181.bgr.2 0 02869 4159 287 bgr +25&37.181.bgr.3 0 02895 4222 294 bgr +25&37.181.bgr.4 0 02905 4285 301 bgr +25&37.181.bgr.5 0 02922 4348 308 bgr +25&37.181.bgr.6 0 02941 4411 315 bgr +25&37.181.dia.1 0 02983 4711 333 dia +25&37.181.dia.10 0 03242 8318 587 dia +25&37.181.dia.11 0 03268 8388 594 dia +25&37.181.dia.12 0 03295 8801 628 dia +25&37.181.dia.2 0 03002 6064 396 dia +25&37.181.dia.3 0 03064 6127 403 dia +25&37.181.dia.4 0 03086 6538 437 dia +25&37.181.dia.5 0 03105 6949 471 dia +25&37.181.dia.6 0 03144 7360 505 dia +25&37.181.dia.7 0 03161 7771 539 dia +25&37.181.dia.8 0 03188 7839 546 dia +25&37.181.dia.9 0 03227 7907 553 dia +25&37.181.equ.1 0 02483 4964 346 equ +25&37.181.equ.2 0 02500 5027 353 equ +25&37.181.equ.3 0 02577 5090 360 equ +25&37.181.equ.4 0 02593 5153 367 equ +25&37.181.equ.5 0 02624 5216 374 equ +25&37.181.equ.6 0 02686 5279 381 equ +25&37.181.equ.7 0 02697 5690 415 equ +25&37.181.equ.8 0 02820 5758 422 equ +25&37.181.fmt.1 0 01751 4114 280 fmt +25&37.181.fmt.2 0 01794 4177 287 fmt +25&37.181.fmt.3 0 01814 4588 321 fmt +25&37.181.fmt.4 0 01855 4656 328 fmt +25&37.181.gra.1 0 03558 4666 326 gra +25&37.181.gra.10 0 03758 6640 497 gra +25&37.181.gra.2 0 03571 4729 333 gra +25&37.181.gra.3 0 03599 4792 340 gra +25&37.181.gra.4 0 03612 5203 374 gra +25&37.181.gra.5 0 03637 5271 381 gra +25&37.181.gra.6 0 03672 5339 388 gra +25&37.181.gra.7 0 03683 5750 422 gra +25&37.181.gra.8 0 03706 5818 429 gra +25&37.181.gra.9 0 03749 6229 463 gra +25&37.181.prg.1 0 03816 6336 418 prg +25&37.181.prg.10 0 03941 7204 498 prg +25&37.181.prg.11 0 03949 7269 505 prg +25&37.181.prg.2 0 03836 6700 442 prg +25&37.181.prg.3 0 03850 6763 449 prg +25&37.181.prg.4 0 03864 6826 456 prg +25&37.181.prg.5 0 03886 6889 463 prg +25&37.181.prg.6 0 03900 6952 470 prg +25&37.181.prg.7 0 03911 7015 477 prg +25&37.181.prg.8 0 03919 7078 484 prg +25&37.181.prg.9 0 03930 7141 491 prg +25&37.181.ref.1 0 01979 5932 421 ref +25&37.181.ref.2 0 02009 5995 428 ref +25&37.181.ref.3 0 02050 6058 435 ref +25&37.181.ref.4 0 02064 6469 469 ref +25&37.181.ref.5 0 02105 6537 476 ref +25&37.181.ref.6 0 02154 6948 510 ref +25&37.181.str.1 0 00683 4134 280 str +25&37.181.str.10 0 01176 7485 559 str +25&37.181.str.11 0 01222 7555 566 str +25&37.181.str.12 0 01248 7968 600 str +25&37.181.str.2 0 00726 4197 287 str +25&37.181.str.3 0 00912 4608 321 str +25&37.181.str.4 0 00953 5019 355 str +25&37.181.str.5 0 00977 5430 389 str +25&37.181.str.6 0 01018 5841 423 str +25&37.181.str.7 0 01085 6252 457 str +25&37.181.str.8 0 01110 6663 491 str +25&37.181.str.9 0 01147 7074 525 str +25&37.181.tbl.1 0 02217 4759 317 tbl +25&37.181.tbl.10 0 02373 6353 451 tbl +25&37.181.tbl.11 0 02388 6766 485 tbl +25&37.181.tbl.12 0 02409 6836 492 tbl +25&37.181.tbl.13 0 02425 7249 526 tbl +25&37.181.tbl.14 0 02438 7662 560 tbl +25&37.181.tbl.2 0 02246 5123 341 tbl +25&37.181.tbl.3 0 02263 5534 375 tbl +25&37.181.tbl.4 0 02274 5945 409 tbl +25&37.181.tbl.5 0 02288 6013 416 tbl +25&37.181.tbl.6 0 02303 6081 423 tbl +25&37.181.tbl.7 0 02319 6149 430 tbl +25&37.181.tbl.8 0 02331 6217 437 tbl +25&37.181.tbl.9 0 02351 6285 444 tbl +25&37.181.typ.1 0 01296 4449 306 typ +25&37.181.typ.2 0 01404 4512 313 typ +25&37.181.typ.3 0 01484 4923 347 typ +25&37.181.typ.4 0 01583 5334 381 typ +25&37.181.typ.5 0 01626 5745 415 typ +25&37.181.typ.6 0 01651 6156 449 typ +25&37.181.typ.7 0 01699 6224 456 typ +25&37.181.typ.8 0 01709 6635 490 typ +25&37.866.equ_defs.1 0 02689 5279 381 equ +25&37.866.equ_intr.1 0 02486 4964 346 equ +25&37.866.equ_spac.1 0 02596 5153 367 equ +25&37.866.equ_summ.1 0 02700 5690 415 equ +25&alone 0 03819 6336 418 prg +25&arbobj 0 03675 5339 388 gra +25&books 0 01487 4923 347 typ +25&boxes 0 02872 4159 287 bgr +25&captions 0 03602 4792 340 gra +25&changeref 0 02108 6537 476 ref +25&characters 0 00227 4957 355 bas +25&citation 0 02012 5995 428 ref +25&colour 0 02855 4096 280 bgr +25&columns 0 01225 7555 566 str +25&contents 0 01150 7074 525 str +25&cpcomm 0 03914 7015 477 prg +25&cpp_erro 0 03944 7204 498 prg +25&cpp_prog 0 03922 7078 484 prg +25&cpsetup 0 03867 6826 456 prg +25&cross 0 01113 6663 491 str +25&data 0 03640 5271 381 gra +25&databases 0 01982 5932 421 ref +25&date 0 00558 6604 499 bas +25&definitions 0 01251 7968 600 str +25&dia_defi 0 03245 8318 587 dia +25&dia_erro 0 03230 7907 553 dia +25&dia_geom 0 03271 8388 594 dia +25&dia_intr 0 02986 4711 333 dia +25&dia_labe 0 03108 6949 471 dia +25&dia_link 0 03067 6127 403 dia +25&dia_node 0 03005 6064 396 dia +25&dia_posi 0 03147 7360 505 dia +25&dia_summ 0 03298 8801 628 dia +25&dia_synt 0 03191 7839 546 dia +25&dia_tags 0 03089 6538 437 dia +25&dia_tree 0 03164 7771 539 dia +25&displays 0 00686 4134 280 str +25&dropcaps 0 00630 7227 554 bas +25&embedded 0 03839 6700 442 prg +25&empty 0 00304 5025 362 bas +25&entries 0 02067 6469 469 ref +25&figures 0 01021 5841 423 str +25&fonts 0 00314 5436 396 bas +25&footnotes 0 00915 4608 321 str +25&formfeed 0 03903 6952 470 prg +25&functions 0 03686 5750 422 gra +25&grerrors 0 03752 6229 463 gra +25&grintro 0 03561 4666 326 gra +25&grsummary 0 03761 6640 497 gra +25&headers 0 01858 4656 328 fmt +25&headings 0 00371 5504 403 bas +25&hyph 0 00531 6464 485 bas +25&illustrations 0 01629 5745 415 typ +25&include 0 02944 4411 315 bgr +25&indexes 0 01179 7485 559 str +25&key 0 03709 5818 429 gra +25&labelled 0 02053 6058 435 ref +25&languages 0 00573 6674 506 bas +25&largescale 0 01088 6252 457 str +25&linespace 0 00514 6051 451 bas +25&lists 0 00729 4197 287 str +25&marginnotes 0 00956 5019 355 str +25&margins 0 01817 4588 321 fmt +25&mathdisplays 0 02627 5216 374 equ +25&objects 0 00168 4135 287 bas +25&ordinary 0 01299 4449 306 typ +25&organizing 0 01712 6635 490 typ +25&outline 0 02898 4222 294 bgr +25&overall 0 03574 4729 333 gra +25&overheads 0 01586 5334 381 typ +25&pagesize 0 01797 4177 287 fmt +25¶graphs 0 00384 5915 437 bas +25¶s 0 00421 5983 444 bas +25&pdf 0 01702 6224 456 typ +25&pipes 0 03933 7141 491 prg +25&plain 0 01654 6156 449 typ +25&prg_opti 0 03853 6763 449 prg +25&prg_perl 0 03952 7269 505 prg +25&refstyles 0 02157 6948 510 ref +25&reports 0 01407 4512 313 typ +25&rotation 0 02908 4285 301 bgr +25&scaling 0 02925 4348 308 bgr +25&setup 0 01754 4114 280 fmt +25&spaces 0 00207 4546 321 bas +25&start 0 00140 4072 280 bas +25&super 0 00605 6744 513 bas +25&symbols 0 02503 5027 353 equ +25&tabs 0 03889 6889 463 prg +25&tbl_alig 0 02334 6217 437 tbl +25&tbl_cell 0 02249 5123 341 tbl +25&tbl_inde 0 02322 6149 430 tbl +25&tbl_intr 0 02220 4759 317 tbl +25&tbl_marg 0 02291 6013 416 tbl +25&tbl_mark 0 02376 6353 451 tbl +25&tbl_mult 0 02391 6766 485 tbl +25&tbl_plai 0 02412 6836 492 tbl +25&tbl_rows 0 02266 5534 375 tbl +25&tbl_rule 0 02277 5945 409 tbl +25&tbl_setu 0 02428 7249 526 tbl +25&tbl_span 0 02354 6285 444 tbl +25&tbl_summ 0 02441 7662 560 tbl +25&tbl_widt 0 02306 6081 423 tbl +25&teq 0 02823 5758 422 equ +25&theorems 0 00980 5430 389 str +25&ticks 0 03615 5203 374 gra +25&underlining 0 00545 6534 492 bas +25&verbatim 0 00613 7157 547 bas +25&vpos 0 02580 5090 360 equ +25&white 0 00645 7297 561 bas +26&37.866.equ_defs.1 0 02687 0 1 equ_defs +26&37.866.equ_intr.1 0 02484 0 1 equ_intr +26&37.866.equ_spac.1 0 02594 0 1 equ_spac +26&37.866.equ_summ.1 0 02698 0 1 equ_summ +26&alone 0 03817 0 1 prg_lone +26&arbobj 0 03673 0 1 gra_plac +26&books 0 01485 0 1 typ_book +26&boxes 0 02870 0 1 bgr_boxs +26&captions 0 03600 0 1 gra_capt +26&changeref 0 02106 0 1 ref_chan +26&characters 0 00225 0 1 bas_char +26&citation 0 02010 0 1 ref_cite +26&colour 0 02853 0 1 bgr_colo +26&columns 0 01223 0 1 str_colu +26&contents 0 01148 0 1 str_cont +26&cpcomm 0 03912 0 1 prg_comm +26&cpp_erro 0 03942 0 1 prg_erro +26&cpp_prog 0 03920 0 1 prg_prog +26&cpsetup 0 03865 0 1 prg_chan +26&cross 0 01111 0 1 str_cros +26&data 0 03638 0 1 gra_data +26&databases 0 01980 0 1 ref_sett +26&date 0 00556 0 1 bas_date +26&definitions 0 01249 0 1 str_defs +26&dia_defi 0 03243 0 1 dia_defi +26&dia_erro 0 03228 0 1 dia_erro +26&dia_geom 0 03269 0 1 dia_geom +26&dia_intr 0 02984 0 1 dia_intr +26&dia_labe 0 03106 0 1 dia_labe +26&dia_link 0 03065 0 1 dia_link +26&dia_node 0 03003 0 1 dia_node +26&dia_posi 0 03145 0 1 dia_posi +26&dia_summ 0 03296 0 1 dia_summ +26&dia_synt 0 03189 0 1 dia_synt +26&dia_tags 0 03087 0 1 dia_tags +26&dia_tree 0 03162 0 1 dia_tree +26&displays 0 00684 0 1 str_disp +26&dropcaps 0 00628 0 1 bas_drop +26&embedded 0 03837 0 1 prg_embe +26&empty 0 00302 0 1 bas_empt +26&entries 0 02065 0 1 ref_entr +26&figures 0 01019 0 1 str_figs +26&fonts 0 00312 0 1 bas_font +26&footnotes 0 00913 0 1 str_foot +26&formfeed 0 03901 0 1 prg_form +26&functions 0 03684 0 1 gra_func +26&grerrors 0 03750 0 1 gra_erro +26&grintro 0 03559 0 1 gra_intr +26&grsummary 0 03759 0 1 gra_summ +26&headers 0 01856 0 1 fmt_head +26&headings 0 00369 0 1 bas_head +26&hyph 0 00529 0 1 bas_hyph +26&illustrations 0 01627 0 1 typ_illu +26&include 0 02942 0 1 bgr_incl +26&indexes 0 01177 0 1 str_indx +26&key 0 03707 0 1 gra_keys +26&labelled 0 02051 0 1 ref_labe +26&languages 0 00571 0 1 bas_lang +26&largescale 0 01086 0 1 str_larg +26&linespace 0 00512 0 1 bas_line +26&lists 0 00727 0 1 str_list +26&marginnotes 0 00954 0 1 str_marg +26&margins 0 01815 0 1 fmt_marg +26&mathdisplays 0 02625 0 1 equ_disp +26&objects 0 00166 0 1 bas_objs +26&ordinary 0 01297 0 1 typ_ordi +26&organizing 0 01710 0 1 typ_orga +26&outline 0 02896 0 1 bgr_outl +26&overall 0 03572 0 1 gra_over +26&overheads 0 01584 0 1 typ_over +26&pagesize 0 01795 0 1 fmt_size +26¶graphs 0 00382 0 1 bas_par1 +26¶s 0 00419 0 1 bas_par2 +26&pdf 0 01700 0 1 typ_apdf +26&pipes 0 03931 0 1 prg_pipe +26&plain 0 01652 0 1 typ_plai +26&prg_opti 0 03851 0 1 prg_opti +26&prg_perl 0 03950 0 1 prg_perl +26&refstyles 0 02155 0 1 ref_crea +26&reports 0 01405 0 1 typ_repo +26&rotation 0 02906 0 1 bgr_rota +26&scaling 0 02923 0 1 bgr_scal +26&setup 0 01752 0 1 fmt_setu +26&spaces 0 00205 0 1 bas_spac +26&start 0 00138 0 1 bas_star +26&super 0 00603 0 1 bas_supe +26&symbols 0 02501 0 1 equ_symb +26&tabs 0 03887 0 1 prg_tabs +26&tbl_alig 0 02332 0 1 tbl_alig +26&tbl_cell 0 02247 0 1 tbl_cell +26&tbl_inde 0 02320 0 1 tbl_inde +26&tbl_intr 0 02218 0 1 tbl_intr +26&tbl_marg 0 02289 0 1 tbl_marg +26&tbl_mark 0 02374 0 1 tbl_mark +26&tbl_mult 0 02389 0 1 tbl_mult +26&tbl_plai 0 02410 0 1 tbl_plai +26&tbl_rows 0 02264 0 1 tbl_rows +26&tbl_rule 0 02275 0 1 tbl_rule +26&tbl_setu 0 02426 0 1 tbl_setu +26&tbl_span 0 02352 0 1 tbl_span +26&tbl_summ 0 02439 0 1 tbl_summ +26&tbl_widt 0 02304 0 1 tbl_widt +26&teq 0 02821 0 1 equ_tequ +26&theorems 0 00978 0 1 str_theo +26&ticks 0 03613 0 1 gra_tick +26&underlining 0 00543 0 1 bas_unde +26&verbatim 0 00611 0 1 bas_verb +26&vpos 0 02578 0 1 equ_vert +26&white 0 00643 0 1 bas_conv +27&36.1407.bas_lang.1 0 00593 4708 307 bas_lang +27&36.1407.bas_star.1 0 00150 3650 224 bas_star +27&36.1407.bas_star.2 0 00151 4231 270 bas_star +27&36.1407.bas_verb.1 0 00617 2235 153 bas_verb +27&36.1407.dia.1 0 02980 4394 306 dia +27&36.1407.dia_link.1 0 03081 2867 199 dia_link +27&36.1407.dia_synt.1 0 03203 3261 219 dia_synt +27&36.1407.equ_symb.1 0 02558 5679 417 equ_symb +27&36.1407.gra_func.1 0 03694 2758 179 gra_func +27&36.1407.prg.1 0 03805 4474 306 prg +27&36.1407.prg_chan.1 0 03877 2701 179 prg_chan +27&36.1407.prg_perl.1 0 03956 2258 153 prg_perl +27&36.1407.ref_sett.1 0 02004 4743 319 ref_sett +27&36.1407.str_defs.1 0 01263 3241 219 str_defs +27&36.1407.str_figs.1 0 01048 6054 409 str_figs +27&36.1407.str_figs.2 0 01060 10413 556 str_figs +27&36.1407.str_foot.1 0 00921 2645 179 str_foot +27&36.1407.str_foot.2 0 00929 3324 223 str_foot +27&36.1407.str_indx.1 0 01187 2570 179 str_indx +27&36.1407.str_indx.2 0 01190 2930 206 str_indx +27&36.1407.str_indx.3 0 01215 5863 389 str_indx +27&36.1407.str_theo.1 0 00997 4461 291 str_theo +27&36.1407.tbl.1 0 02216 4378 306 tbl +27&36.1407.tbl_alig.1 0 02342 2639 179 tbl_alig +27&36.1407.tbl_intr.1 0 02224 2235 153 tbl_intr +27&36.1407.tbl_intr.2 0 02237 3714 230 tbl_intr +27&36.1407.typ_over.1 0 01590 2270 153 typ_over +27&36.1407.typ_repo.1 0 01419 3181 219 typ_repo +28&33.1492.ap_qck.1 0 04039 4324 287 ap_qck +28&33.1492.ap_qck.10 0 04077 21469 1167 ap_qck +28&33.1492.ap_qck.11 0 04081 21613 1181 ap_qck +28&33.1492.ap_qck.12 0 04085 21757 1195 ap_qck +28&33.1492.ap_qck.13 0 04089 21901 1209 ap_qck +28&33.1492.ap_qck.2 0 04043 11952 623 ap_qck +28&33.1492.ap_qck.3 0 04047 12093 637 ap_qck +28&33.1492.ap_qck.4 0 04051 12234 651 ap_qck +28&33.1492.ap_qck.5 0 04055 12375 665 ap_qck +28&33.1492.ap_qck.6 0 04059 12516 679 ap_qck +28&33.1492.ap_qck.7 0 04063 12657 693 ap_qck +28&33.1492.ap_qck.8 0 04069 12798 707 ap_qck +28&33.1492.ap_qck.9 0 04073 21326 1153 ap_qck +28&33.1492.bas_par2.1 0 00436 3594 248 bas_par2 +28&33.1492.bas_par2.2 0 00440 3739 262 bas_par2 +28&33.1492.bas_par2.3 0 00454 5513 376 bas_par2 +28&33.1492.bas_par2.4 0 00458 5658 390 bas_par2 +28&33.1492.bas_par2.5 0 00462 5804 404 bas_par2 +28&33.1492.bas_par2.6 0 00468 5950 418 bas_par2 +28&33.1492.bas_par2.7 0 00482 7709 532 bas_par2 +28&33.1492.bas_par2.8 0 00486 7855 546 bas_par2 +28&33.1492.bas_par2.9 0 00491 8001 560 bas_par2 +28&33.1492.dia_labe.1 0 03128 3976 266 dia_labe +28&33.1492.dia_labe.2 0 03132 4121 280 dia_labe +28&33.1492.dia_node.1 0 03038 5963 406 dia_node +28&33.1492.dia_node.2 0 03042 6108 420 dia_node +28&33.1492.dia_summ.1 0 03303 2293 160 dia_summ +28&33.1492.dia_summ.10 0 03345 3936 313 dia_summ +28&33.1492.dia_summ.11 0 03349 4314 345 dia_summ +28&33.1492.dia_summ.12 0 03355 4465 359 dia_summ +28&33.1492.dia_summ.13 0 03359 4616 373 dia_summ +28&33.1492.dia_summ.14 0 03363 4767 387 dia_summ +28&33.1492.dia_summ.15 0 03367 4918 401 dia_summ +28&33.1492.dia_summ.16 0 03371 5069 415 dia_summ +28&33.1492.dia_summ.17 0 03375 5220 429 dia_summ +28&33.1492.dia_summ.18 0 03379 5371 443 dia_summ +28&33.1492.dia_summ.19 0 03385 5523 457 dia_summ +28&33.1492.dia_summ.2 0 03307 2505 180 dia_summ +28&33.1492.dia_summ.20 0 03389 5675 471 dia_summ +28&33.1492.dia_summ.21 0 03393 5827 485 dia_summ +28&33.1492.dia_summ.22 0 03397 5979 499 dia_summ +28&33.1492.dia_summ.23 0 03401 6131 513 dia_summ +28&33.1492.dia_summ.24 0 03405 6283 527 dia_summ +28&33.1492.dia_summ.25 0 03411 6435 541 dia_summ +28&33.1492.dia_summ.26 0 03415 6587 555 dia_summ +28&33.1492.dia_summ.27 0 03425 6738 569 dia_summ +28&33.1492.dia_summ.28 0 03429 6889 583 dia_summ +28&33.1492.dia_summ.29 0 03433 7040 597 dia_summ +28&33.1492.dia_summ.3 0 03313 2650 194 dia_summ +28&33.1492.dia_summ.30 0 03437 7191 611 dia_summ +28&33.1492.dia_summ.31 0 03441 7342 625 dia_summ +28&33.1492.dia_summ.32 0 03445 7493 639 dia_summ +28&33.1492.dia_summ.33 0 03449 7644 653 dia_summ +28&33.1492.dia_summ.34 0 03455 7795 667 dia_summ +28&33.1492.dia_summ.35 0 03459 7946 681 dia_summ +28&33.1492.dia_summ.36 0 03463 8098 695 dia_summ +28&33.1492.dia_summ.37 0 03467 8250 709 dia_summ +28&33.1492.dia_summ.38 0 03471 8402 723 dia_summ +28&33.1492.dia_summ.39 0 03475 8554 737 dia_summ +28&33.1492.dia_summ.4 0 03317 2795 208 dia_summ +28&33.1492.dia_summ.40 0 03479 8706 751 dia_summ +28&33.1492.dia_summ.41 0 03491 8857 765 dia_summ +28&33.1492.dia_summ.42 0 03495 9008 779 dia_summ +28&33.1492.dia_summ.43 0 03499 9159 793 dia_summ +28&33.1492.dia_summ.44 0 03503 9310 807 dia_summ +28&33.1492.dia_summ.45 0 03507 9461 821 dia_summ +28&33.1492.dia_summ.46 0 03513 9612 835 dia_summ +28&33.1492.dia_summ.5 0 03321 2941 222 dia_summ +28&33.1492.dia_summ.6 0 03325 3087 236 dia_summ +28&33.1492.dia_summ.7 0 03329 3233 250 dia_summ +28&33.1492.dia_summ.8 0 03333 3379 264 dia_summ +28&33.1492.dia_summ.9 0 03337 3525 278 dia_summ +28&33.1492.equ_disp.1 0 02656 4720 314 equ_disp +28&33.1492.equ_disp.2 0 02660 4865 328 equ_disp +28&33.1492.equ_disp.3 0 02664 5010 342 equ_disp +28&33.1492.equ_disp.4 0 02668 5155 356 equ_disp +28&33.1492.equ_spac.1 0 02607 3229 217 equ_spac +28&33.1492.equ_spac.2 0 02611 3374 231 equ_spac +28&33.1492.equ_summ.1 0 02707 2383 160 equ_summ +28&33.1492.equ_summ.10 0 02743 3772 292 equ_summ +28&33.1492.equ_summ.11 0 02747 3919 306 equ_summ +28&33.1492.equ_summ.12 0 02751 4066 320 equ_summ +28&33.1492.equ_summ.13 0 02755 4213 334 equ_summ +28&33.1492.equ_summ.14 0 02761 4360 348 equ_summ +28&33.1492.equ_summ.15 0 02765 4507 362 equ_summ +28&33.1492.equ_summ.16 0 02769 4654 376 equ_summ +28&33.1492.equ_summ.17 0 02773 4801 390 equ_summ +28&33.1492.equ_summ.18 0 02777 4948 404 equ_summ +28&33.1492.equ_summ.19 0 02781 5095 418 equ_summ +28&33.1492.equ_summ.2 0 02711 2606 180 equ_summ +28&33.1492.equ_summ.20 0 02785 5242 432 equ_summ +28&33.1492.equ_summ.21 0 02789 5389 446 equ_summ +28&33.1492.equ_summ.22 0 02793 5536 460 equ_summ +28&33.1492.equ_summ.23 0 02797 5683 474 equ_summ +28&33.1492.equ_summ.3 0 02715 2751 194 equ_summ +28&33.1492.equ_summ.4 0 02719 2896 208 equ_summ +28&33.1492.equ_summ.5 0 02723 3042 222 equ_summ +28&33.1492.equ_summ.6 0 02727 3188 236 equ_summ +28&33.1492.equ_summ.7 0 02731 3334 250 equ_summ +28&33.1492.equ_summ.8 0 02735 3480 264 equ_summ +28&33.1492.equ_summ.9 0 02739 3626 278 equ_summ +28&33.1492.equ_symb.1 0 02524 4425 306 equ_symb +28&33.1492.equ_symb.2 0 02528 4570 320 equ_symb +28&33.1492.equ_symb.3 0 02532 4715 334 equ_symb +28&33.1492.equ_symb.4 0 02536 4860 348 equ_symb +28&33.1492.equ_symb.5 0 02542 5006 362 equ_symb +28&33.1492.equ_symb.6 0 02546 5152 376 equ_symb +28&33.1492.equ_symb.7 0 02550 5298 390 equ_symb +28&33.1492.equ_symb.8 0 02565 6355 450 equ_symb +28&33.1492.equ_symb.9 0 02569 6501 464 equ_symb +28&33.1492.fmt_head.1 0 01881 4868 326 fmt_head +28&33.1492.fmt_head.2 0 01887 5310 360 fmt_head +28&33.1492.fmt_head.3 0 01893 5774 394 fmt_head +28&33.1492.prg_perl.1 0 03960 2537 173 prg_perl +28&33.1492.prg_perl.2 0 03964 2682 187 prg_perl +28&33.1492.prg_perl.3 0 03968 2827 201 prg_perl +28&33.1492.str_list.1 0 00748 4189 306 str_list +28&33.1492.str_list.10 0 00903 22007 1590 str_list +28&33.1492.str_list.2 0 00752 4334 320 str_list +28&33.1492.str_list.3 0 00780 7514 554 str_list +28&33.1492.str_list.4 0 00784 7708 568 str_list +28&33.1492.str_list.5 0 00875 19610 1424 str_list +28&33.1492.str_list.6 0 00878 19755 1438 str_list +28&33.1492.str_list.7 0 00885 20188 1469 str_list +28&33.1492.str_list.8 0 00889 20361 1483 str_list +28&33.1492.str_list.9 0 00899 21626 1573 str_list +28&33.1492.typ_plai.1 0 01663 2689 186 typ_plai +28&33.1492.typ_plai.2 0 01667 2834 200 typ_plai +28&33.1492.typ_plai.3 0 01671 2979 214 typ_plai +28&33.1492.typ_plai.4 0 01675 3124 228 typ_plai +28&33.1492.typ_plai.5 0 01679 3270 242 typ_plai +28&33.1492.typ_plai.6 0 01683 3416 256 typ_plai +28&33.1492.typ_plai.7 0 01687 3562 270 typ_plai +29&36.2625.str_theo.1 0 00990 2901 185 str_theo +3&36.2658.all.1 0 00003 833 56 all +3&36.2658.ap_byp.1 0 04105 2269 152 ap_byp +3&36.2658.ap_qck.1 0 04025 2389 152 ap_qck +3&36.2658.bas.1 0 00126 2241 152 bas +3&36.2658.bgr.1 0 02841 2265 152 bgr +3&36.2658.dia.1 0 02967 2251 152 dia +3&36.2658.equ.1 0 02466 2262 152 equ +3&36.2658.fmt.1 0 01740 2283 152 fmt +3&36.2658.gra.1 0 03543 2229 152 gra +3&36.2658.pascal.1 0 03990 2371 152 pascal +3&36.2658.prg.1 0 03792 2255 152 prg +3&36.2658.ref.1 0 01958 2241 152 ref +3&36.2658.str.1 0 00672 2303 152 str +3&36.2658.tbl.1 0 02203 2229 152 tbl +3&36.2658.typ.1 0 01283 2249 152 typ +30&figex 0 01029 2877 199 str_figs +31&33.1324.equ_disp.1 0 02649 4272 283 equ_disp +31&fibeq 0 02643 3972 259 equ_disp +32&37.1076.ap_qck.1 0 04020 462928 30630 all +32&37.202.all.1 0 04015 462928 30630 all +32&37.202.all.2 0 04095 466211 30853 all +32&bypass 0 04100 466211 30853 all +33&37.1076.ap_qck.1 0 04016 0 1 ap_qck +33&bypass 0 04096 0 1 ap_byp +35&37.427.all.1 0 04145 469964 31109 all +36&37.449.all.1 0 04185 475607 31454 all +4&36.2713.all.1 0 00004 978 66 all +4&36.2713.ap_byp.1 0 04106 2437 162 ap_byp +4&36.2713.ap_qck.1 0 04026 2557 162 ap_qck +4&36.2713.bas.1 0 00127 2406 162 bas +4&36.2713.bgr.1 0 02842 2430 162 bgr +4&36.2713.dia.1 0 02968 2416 162 dia +4&36.2713.equ.1 0 02467 2427 162 equ +4&36.2713.fmt.1 0 01741 2448 162 fmt +4&36.2713.gra.1 0 03544 2394 162 gra +4&36.2713.pascal.1 0 03991 2539 162 pascal +4&36.2713.prg.1 0 03793 2420 162 prg +4&36.2713.ref.1 0 01959 2406 162 ref +4&36.2713.str.1 0 00673 2468 162 str +4&36.2713.tbl.1 0 02204 2394 162 tbl +4&36.2713.typ.1 0 01284 2414 162 typ +5&36.2768.all.1 0 00005 1113 76 all +5&36.2768.ap_byp.1 0 04107 2595 172 ap_byp +5&36.2768.ap_qck.1 0 04027 2715 172 ap_qck +5&36.2768.bas.1 0 00128 2561 172 bas +5&36.2768.bgr.1 0 02843 2585 172 bgr +5&36.2768.dia.1 0 02969 2571 172 dia +5&36.2768.equ.1 0 02468 2582 172 equ +5&36.2768.fmt.1 0 01742 2603 172 fmt +5&36.2768.gra.1 0 03545 2549 172 gra +5&36.2768.pascal.1 0 03992 2697 172 pascal +5&36.2768.prg.1 0 03794 2575 172 prg +5&36.2768.ref.1 0 01960 2561 172 ref +5&36.2768.str.1 0 00674 2623 172 str +5&36.2768.tbl.1 0 02205 2549 172 tbl +5&36.2768.typ.1 0 01285 2569 172 typ +6&36.2823.all.1 0 00006 1260 86 all +6&36.2823.ap_byp.1 0 04108 2765 182 ap_byp +6&36.2823.ap_qck.1 0 04028 2885 182 ap_qck +6&36.2823.bas.1 0 00129 2728 182 bas +6&36.2823.bgr.1 0 02844 2752 182 bgr +6&36.2823.dia.1 0 02970 2738 182 dia +6&36.2823.equ.1 0 02469 2749 182 equ +6&36.2823.fmt.1 0 01743 2770 182 fmt +6&36.2823.gra.1 0 03546 2716 182 gra +6&36.2823.pascal.1 0 03993 2867 182 pascal +6&36.2823.prg.1 0 03795 2742 182 prg +6&36.2823.ref.1 0 01961 2728 182 ref +6&36.2823.str.1 0 00675 2790 182 str +6&36.2823.tbl.1 0 02206 2716 182 tbl +6&36.2823.typ.1 0 01286 2736 182 typ +7&36.2878.all.1 0 00007 1395 96 all +7&36.2878.ap_byp.1 0 04109 2923 192 ap_byp +7&36.2878.ap_qck.1 0 04029 3043 192 ap_qck +7&36.2878.bas.1 0 00130 2883 192 bas +7&36.2878.bgr.1 0 02845 2907 192 bgr +7&36.2878.dia.1 0 02971 2893 192 dia +7&36.2878.equ.1 0 02470 2904 192 equ +7&36.2878.fmt.1 0 01744 2925 192 fmt +7&36.2878.gra.1 0 03547 2871 192 gra +7&36.2878.pascal.1 0 03994 3025 192 pascal +7&36.2878.prg.1 0 03796 2897 192 prg +7&36.2878.ref.1 0 01962 2883 192 ref +7&36.2878.str.1 0 00676 2945 192 str +7&36.2878.tbl.1 0 02207 2871 192 tbl +7&36.2878.typ.1 0 01287 2891 192 typ +8&36.2933.all.1 0 00008 1538 106 all +8&36.2933.ap_byp.1 0 04110 3089 202 ap_byp +8&36.2933.ap_qck.1 0 04030 3209 202 ap_qck +8&36.2933.bas.1 0 00131 3046 202 bas +8&36.2933.bgr.1 0 02846 3070 202 bgr +8&36.2933.dia.1 0 02972 3056 202 dia +8&36.2933.equ.1 0 02471 3067 202 equ +8&36.2933.fmt.1 0 01745 3088 202 fmt +8&36.2933.gra.1 0 03548 3034 202 gra +8&36.2933.pascal.1 0 03995 3191 202 pascal +8&36.2933.prg.1 0 03797 3060 202 prg +8&36.2933.ref.1 0 01963 3046 202 ref +8&36.2933.str.1 0 00677 3108 202 str +8&36.2933.tbl.1 0 02208 3034 202 tbl +8&36.2933.typ.1 0 01288 3054 202 typ +9&33.1249.all.1 0 00009 1677 116 all +9&33.1249.ap_byp.1 0 04111 3251 212 ap_byp +9&33.1249.ap_qck.1 0 04031 3371 212 ap_qck +9&33.1249.bas.1 0 00132 3205 212 bas +9&33.1249.bas_char.1 0 00230 1998 135 bas_char +9&33.1249.bas_conv.1 0 00648 2016 135 bas_conv +9&33.1249.bas_date.1 0 00561 1980 135 bas_date +9&33.1249.bas_drop.1 0 00633 1988 135 bas_drop +9&33.1249.bas_empt.1 0 00307 1970 135 bas_empt +9&33.1249.bas_font.1 0 00317 1978 135 bas_font +9&33.1249.bas_head.1 0 00375 1976 135 bas_head +9&33.1249.bas_hyph.1 0 00534 1953 135 bas_hyph +9&33.1249.bas_lang.1 0 00576 2026 135 bas_lang +9&33.1249.bas_line.1 0 00517 1994 135 bas_line +9&33.1249.bas_objs.1 0 00171 2030 135 bas_objs +9&33.1249.bas_par1.1 0 00387 2056 135 bas_par1 +9&33.1249.bas_par2.1 0 00424 1974 135 bas_par2 +9&33.1249.bas_spac.1 0 00210 1980 135 bas_spac +9&33.1249.bas_star.1 0 00143 1968 135 bas_star +9&33.1249.bas_supe.1 0 00608 1992 135 bas_supe +9&33.1249.bas_unde.1 0 00548 2009 135 bas_unde +9&33.1249.bas_verb.1 0 00616 1988 135 bas_verb +9&33.1249.bgr.1 0 02847 3229 212 bgr +9&33.1249.bgr_boxs.1 0 02875 1974 135 bgr_boxs +9&33.1249.bgr_colo.1 0 02858 1960 135 bgr_colo +9&33.1249.bgr_incl.1 0 02948 2010 135 bgr_incl +9&33.1249.bgr_outl.1 0 02901 1988 135 bgr_outl +9&33.1249.bgr_rota.1 0 02911 1982 135 bgr_rota +9&33.1249.bgr_scal.1 0 02928 1971 135 bgr_scal +9&33.1249.dia.1 0 02973 3215 212 dia +9&33.1249.dia_defi.1 0 03248 2030 135 dia_defi +9&33.1249.dia_erro.1 0 03233 1970 135 dia_erro +9&33.1249.dia_geom.1 0 03274 2064 135 dia_geom +9&33.1249.dia_intr.1 0 02989 1988 135 dia_intr +9&33.1249.dia_labe.1 0 03112 1970 135 dia_labe +9&33.1249.dia_link.1 0 03070 1967 135 dia_link +9&33.1249.dia_node.1 0 03008 1967 135 dia_node +9&33.1249.dia_posi.1 0 03150 1985 135 dia_posi +9&33.1249.dia_summ.1 0 03301 1973 135 dia_summ +9&33.1249.dia_synt.1 0 03194 1992 135 dia_synt +9&33.1249.dia_tags.1 0 03092 1964 135 dia_tags +9&33.1249.dia_tree.1 0 03167 1967 135 dia_tree +9&33.1249.equ.1 0 02472 3226 212 equ +9&33.1249.equ_defs.1 0 02692 2132 135 equ_defs +9&33.1249.equ_disp.1 0 02630 2036 135 equ_disp +9&33.1249.equ_disp.3 0 02645 4028 266 equ_disp +9&33.1249.equ_disp.5 0 02651 4343 290 equ_disp +9&33.1249.equ_intr.1 0 02489 2078 135 equ_intr +9&33.1249.equ_spac.1 0 02599 2063 135 equ_spac +9&33.1249.equ_summ.1 0 02703 2063 135 equ_summ +9&33.1249.equ_symb.1 0 02506 1967 135 equ_symb +9&33.1249.equ_tequ.1 0 02826 2018 135 equ_tequ +9&33.1249.equ_vert.1 0 02583 1972 135 equ_vert +9&33.1249.fmt.1 0 01746 3247 212 fmt +9&33.1249.fmt_head.1 0 01861 2036 135 fmt_head +9&33.1249.fmt_marg.1 0 01820 2064 135 fmt_marg +9&33.1249.fmt_setu.1 0 01757 1978 135 fmt_setu +9&33.1249.fmt_size.1 0 01801 2040 135 fmt_size +9&33.1249.gra.1 0 03549 3193 212 gra +9&33.1249.gra_capt.1 0 03605 1972 135 gra_capt +9&33.1249.gra_data.1 0 03643 1996 135 gra_data +9&33.1249.gra_erro.1 0 03756 1966 135 gra_erro +9&33.1249.gra_func.1 0 03689 2046 135 gra_func +9&33.1249.gra_intr.1 0 03564 1976 135 gra_intr +9&33.1249.gra_keys.1 0 03712 1968 135 gra_keys +9&33.1249.gra_over.1 0 03577 2038 135 gra_over +9&33.1249.gra_plac.1 0 03678 2018 135 gra_plac +9&33.1249.gra_summ.1 0 03764 1977 135 gra_summ +9&33.1249.gra_tick.1 0 03618 1966 135 gra_tick +9&33.1249.pascal.1 0 03996 3353 212 pascal +9&33.1249.prg.1 0 03798 3219 212 prg +9&33.1249.prg_chan.1 0 03870 2069 135 prg_chan +9&33.1249.prg_comm.1 0 03917 2047 135 prg_comm +9&33.1249.prg_embe.1 0 03842 2085 135 prg_embe +9&33.1249.prg_erro.1 0 03947 1997 135 prg_erro +9&33.1249.prg_form.1 0 03906 2057 135 prg_form +9&33.1249.prg_lone.1 0 03822 2063 135 prg_lone +9&33.1249.prg_opti.1 0 03856 2041 135 prg_opti +9&33.1249.prg_perl.1 0 03955 2011 135 prg_perl +9&33.1249.prg_pipe.1 0 03936 2053 135 prg_pipe +9&33.1249.prg_prog.1 0 03925 2061 135 prg_prog +9&33.1249.prg_tabs.1 0 03893 2015 135 prg_tabs +9&33.1249.ref.1 0 01964 3205 212 ref +9&33.1249.ref_chan.1 0 02111 2088 135 ref_chan +9&33.1249.ref_cite.1 0 02015 1976 135 ref_cite +9&33.1249.ref_crea.1 0 02160 2052 135 ref_crea +9&33.1249.ref_entr.1 0 02070 2012 135 ref_entr +9&33.1249.ref_labe.1 0 02056 2116 137 ref_labe +9&33.1249.ref_sett.1 0 01985 2040 135 ref_sett +9&33.1249.str.1 0 00678 3267 212 str +9&33.1249.str_colu.1 0 01228 2008 135 str_colu +9&33.1249.str_cont.1 0 01153 2020 135 str_cont +9&33.1249.str_cros.1 0 01116 2012 135 str_cros +9&33.1249.str_defs.1 0 01254 2048 135 str_defs +9&33.1249.str_disp.1 0 00689 1998 135 str_disp +9&33.1249.str_figs.1 0 01024 2012 135 str_figs +9&33.1249.str_foot.1 0 00918 2036 135 str_foot +9&33.1249.str_indx.1 0 01182 1987 135 str_indx +9&33.1249.str_larg.1 0 01091 2166 137 str_larg +9&33.1249.str_list.1 0 00732 1965 135 str_list +9&33.1249.str_marg.1 0 00959 2080 135 str_marg +9&33.1249.str_theo.1 0 00983 2212 139 str_theo +9&33.1249.tbl.1 0 02209 3193 212 tbl +9&33.1249.tbl_alig.1 0 02337 1988 135 tbl_alig +9&33.1249.tbl_cell.1 0 02252 2022 135 tbl_cell +9&33.1249.tbl_inde.1 0 02325 1998 135 tbl_inde +9&33.1249.tbl_intr.1 0 02223 1988 135 tbl_intr +9&33.1249.tbl_marg.1 0 02294 1969 135 tbl_marg +9&33.1249.tbl_mark.1 0 02379 2014 135 tbl_mark +9&33.1249.tbl_mult.1 0 02394 1992 135 tbl_mult +9&33.1249.tbl_plai.1 0 02415 1992 135 tbl_plai +9&33.1249.tbl_rows.1 0 02270 2020 135 tbl_rows +9&33.1249.tbl_rule.1 0 02280 1963 135 tbl_rule +9&33.1249.tbl_setu.1 0 02431 2012 135 tbl_setu +9&33.1249.tbl_span.1 0 02357 2008 135 tbl_span +9&33.1249.tbl_summ.1 0 02444 1994 135 tbl_summ +9&33.1249.tbl_widt.1 0 02309 2000 135 tbl_widt +9&33.1249.typ.1 0 01289 3213 212 typ +9&33.1249.typ_apdf.1 0 01705 2021 135 typ_apdf +9&33.1249.typ_book.1 0 01490 1950 135 typ_book +9&33.1249.typ_illu.1 0 01632 2059 135 typ_illu +9&33.1249.typ_ordi.1 0 01302 2005 135 typ_ordi +9&33.1249.typ_orga.1 0 01715 2037 135 typ_orga +9&33.1249.typ_over.1 0 01589 2023 135 typ_over +9&33.1249.typ_plai.1 0 01657 1985 135 typ_plai +9&33.1249.typ_repo.1 0 01410 1995 135 typ_repo +9&33.1324.equ_disp.1 0 02650 4028 266 equ_disp +9&equ_disp_2 0 02648 4028 266 equ_disp +9&equ_disp_4 0 02654 4343 290 equ_disp +9&fibeq 0 02644 2036 135 equ_disp diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/mydefs b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/mydefs new file mode 100755 index 0000000000000..727bb27c010e7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/mydefs @@ -0,0 +1,214 @@ + + ################################################### + # # + # Lout keywords and @Code symbol. # + # # + ################################################### + + def @Code right x + { { Helvetica Base -1p } @Font lines @Break x } + + def @@BackEnd { @Code "@BackEnd" } + def @@Begin { @Code "@Begin" } + def @@Break { @Code "@Break" } + def @@Case { @Code "@Case" } + def @@Database { @Code "@Database" } + def @@End { @Code "@End" } + def @@Font { @Code "@Font" } + def @@Char { @Code "@Char" } + def @@Galley { @Code "@Galley" } + def @@Graphic { @Code "@Graphic" } + def @@HAdjust { @Code "@HAdjust" } + def @@HContract { @Code "@HContract" } + def @@HCover { @Code "@HCover" } + def @@HExpand { @Code "@HExpand" } + def @@HScale { @Code "@HScale" } + def @@High { @Code "@High" } + def @@HShift { @Code "@HShift" } + def @@Include { @Code "@Include" } + def @@Insert { @Code "@Insert " } + def @@IncludeGraphic { @Code "@IncludeGraphic" } + def @@Key { @Code "@Key" } + def @@LClos { @Code "@LClos" } + def @@LEnv { @Code "@LEnv" } + def @@LInput { @Code "@LInput" } + def @@LVis { @Code "@LVis" } + def @@Moment { @Code "@Moment" } + def @@Next { @Code "@Next" } + def @@Null { @Code "@Null" } + def @@OneCol { @Code "@OneCol" } + def @@OneRow { @Code "@OneRow" } + def @@Open { @Code "@Open" } + def @@Outline { @Code "@Outline" } + def @@PAdjust { @Code "@PAdjust" } + def @@PrependGraphic { @Code "@PrependGraphic" } + def @@Rotate { @Code "@Rotate" } + def @@Scale { @Code "@Scale" } + def @@SetColor { @Code "@SetColor" } + def @@SetColour { @Code "@SetColour" } + def @@Language { @Code "@Language" } + def @@CurrLang { @Code "@CurrLang" } + def @@Space { @Code "@Space" } + def @@SysDatabase { @Code "@SysDatabase" } + def @@SysInclude { @Code "@SysInclude" } + def @@SysIncludeGraphic { @Code "@SysIncludeGraphic" } + def @@SysPrependGraphic { @Code "@SysPrependGraphic" } + def @@Tag { @Code "@Tag" } + def @@Tagged { @Code "@Tagged" } + def @@Use { @Code "@Use" } + def @@VAdjust { @Code "@VAdjust" } + def @@VContract { @Code "@VContract" } + def @@VCover { @Code "@VCover" } + def @@VExpand { @Code "@VExpand" } + def @@VScale { @Code "@VScale" } + def @@VShift { @Code "@VShift" } + def @@Wide { @Code "@Wide" } + def @@Yield { @Code "@Yield" } + + + ################################################### + # # + # Miscellaneous symbols used in the guide. # + # # + ################################################### + + def @TeX + { @OneCol { T &0.4fo {-0.2f @VShift E} &0.45fo X } + } + + def @LaTeX + { @OneCol { L &0.3fo { +0.1f @VShift 0.8f @Font A } &0.4fo @TeX } + } + + import @BasicSetup + def @Batlow { Batlow Food Distributors Pty. Ltd. } + + import @BasicSetup + def @GreyBox right x { @Box paint { lightgrey } x } + + import @BasicSetup + def @HeadingBox left x right y + { + @Box { @CentredDisplay @Heading x y } + } + + def @FilledBox + { + @BackEnd @Case { + PostScript @Yield { + { "0 0 moveto xsize 0 lineto xsize ysize lineto 0 ysize lineto" + "closepath fill" + } @Graphic { 0.6f @High ^/ 0.4f @High 4f @Wide } + } + PDF @Yield { + { "0 0 m __xsize 0 l __xsize __ysize l 0 __ysize l h f" + } @Graphic { 0.6f @High ^/ 0.4f @High 4f @Wide } + } + } + } + + import @Eq + def epi { p sub i ` log sub 2 ` p sub i } + + import @Eq + def ep right x { p sub x ` log sub 2 ` p sub x } + + def @Dbl left x right y + { 1.95i @Wide + { 1.25i @Wide { |1rt @Code x } |0.2i @Eq {non y} } + } + + import @Eq + def @ExA { 1 over sqrt { 1 - 4 x sup 2 } } + + def @@Diag { @Code "@Diag" } + + extend @DiagSetup @Diag + macro @MyNode { + @Node + outline { + LR:: { xsize 0 } + LR:< 0d + UL:: { 0 ysize } + UL:< 270d + 0 0 LR UL 0 0 + } + } + + extend @DiagSetup @Diag + macro @MyLink { + @Link + path { + FROM:: from + TO:: to + FROM TO + } + } + + def @ShowHMark + named linewidth { 0.015 cm } + named linestyle { dashed } + named dashlength { 0.15 cm } + named paint { light } + right x + { + @Fig + { + @Figure + shape { + @BackEnd @Case { + PostScript @Yield { + -0.3 cm ymark + {xsize ymark} ++ {0.3 cm 0} + } + PDF @Yield { "" # VT: PDF currently has no output + } + } + } + linewidth { linewidth } + linestyle { linestyle } + dashlength { dashlength } + x + } + } + + def @ZeroWidth right x { @OneCol { |0io x |0io } } + + def @SomeText + { +Johnson suddenly uttered, in a strong determined tone, an apophegm, at +which many will start: `Patriotism is the last refuge of a scoundrel.' + } + + import @DiagSetup + def @OpenCircle { @Diag { @Circle margin { 0.2f } } } + + import @DiagSetup + def @ClosedCircle { @Diag { @Circle paint { black } margin { 0.2f } } } + + import @TblSetup @BasicSetup + def @AmberLight + { + @OneRow @Tbl + aformat { @Cell indentvertical { align } A } + marginhorizontal { 0i } + marginvertical { 0i } + strut { no } + rule { no } + paint { no } + { + @Rowa A { @OpenCircle } + @MarkRowa A { @ClosedCircle } + @Rowa A { @OpenCircle } + } + } + + import @DiagSetup @Diag + def @Four named code { } right x + { + 3.8c @Wide @Code code ||0.3c + 2.7c @Wide @StartRight x ||0.3c + 2.7c @Wide @StartUp x ||0.3c + 2.7c @Wide @StartLeft x ||0.3c + 2.2c @Wide @StartDown x + } diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/pascal b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/pascal new file mode 100755 index 0000000000000..41376dfa9a326 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/pascal @@ -0,0 +1,162 @@ +@Chapter + @Title { Pascal and Modula-2 Programs } +@Begin +@LP +There is a @Code "@Pas" symbol for printing Pascal programs +pascal @Index { Pascal programs } +pas. @Index @Code "@Pas" +@Cite { $jensen1975pascal }. No attempt is made to follow any +particular printing standard; the design simply reflects this author's +taste. To use {@Code "@Pas"}, place @Code "@SysInclude { pas }" at the +start of your document in the usual way. A Pascal program or program +fragment is entered like this: +@ID @Code { +"@ID @Pas {" +"procedure PriDelete(x: PriEntry; var Q: PriorityQueue);" +" var i: integer;" +"begin" +" with Q^ do begin" +" size := size - 1;" +" if x^.back <= size then" +" begin" +" i := x^.back;" +" A[i] := A[size + 1];" +" A[i]^.back := i;" +" PriAddRoot(i, Q);" +" PriAddLeaf(i, Q)" +" end" +" end" +"end;" +"}" +} +This produces +@ID @Pas { +procedure PriDelete(x: PriEntry; var Q: PriorityQueue); + var i: integer; +begin + with Q^ do begin + size := size - 1; + if x^.back <= size then + begin + i := x^.back; + A[i] := A[size + 1]; + A[i]^.back := i; + PriAddRoot(i, Q); + PriAddLeaf(i, Q) + end + end +end; +} +Blank lines, line breaks, indents and spaces in the input are respected, +with a tab being considered equal to eight spaces. @Code "@Pas" can also +be used within a paragraph to produce a fragment like +@OneCol @Pas { A[i..j] }. Use @Code "@OneCol @Pas { ... }" to prevent the +result from breaking over two lines. +@PP +@Code "@Pas" does not attempt to rearrange the program in any way. Each +item is simply printed according to the following plan: +@ID { +7c @Wide { + @Code and |2.5ct @Pas { and } +//1vx @Code array |2.5ct @Pas { array } +//1vx @Code begin |2.5ct @Pas { begin } +//1vx @Code case |2.5ct @Pas { case } +//1vx @Code const |2.5ct @Pas { const } +//1vx @Code div |2.5ct @Pas { div } +//1vx @Code do |2.5ct @Pas { do } +//1vx @Code downto |2.5ct @Pas { downto } +//1vx @Code else |2.5ct @Pas { else } +//1vx @Code end |2.5ct @Pas { end } +//1vx @Code file |2.5ct @Pas { file } +//1vx @Code for |2.5ct @Pas { for } +//1vx @Code forward |2.5ct @Pas { forward } +//1vx @Code function |2.5ct @Pas { function } +//1vx @Code goto |2.5ct @Pas { goto } +//1vx @Code if |2.5ct @Pas { if } +//1vx @Code in |2.5ct @Pas { in } +//1vx @Code label |2.5ct @Pas { label } +//1vx @Code mod |2.5ct @Pas { mod } +//1vx @Code nil |2.5ct @Pas { nil } +//1vx @Code not |2.5ct @Pas { not } +//1vx @Code of |2.5ct @Pas { of } +//1vx @Code or |2.5ct @Pas { or } +//1vx @Code otherwise |2.5ct @Pas { otherwise } +//1vx @Code packed |2.5ct @Pas { packed } +//1vx @Code procedure |2.5ct @Pas { procedure } +//1vx @Code program |2.5ct @Pas { program } +//1vx @Code record |2.5ct @Pas { record } +//1vx @Code repeat |2.5ct @Pas { repeat } +//1vx @Code set |2.5ct @Pas { set } +//1vx @Code then |2.5ct @Pas { then } +//1vx @Code to |2.5ct @Pas { to } +//1vx @Code type |2.5ct @Pas { type } +//1vx @Code until |2.5ct @Pas { until } +//1vx @Code var |2.5ct @Pas { var } +//1vx @Code while |2.5ct @Pas { while } +//1vx @Code with |2.5ct @Pas { with } +} | 7c @Wide { + @Code "0" |2.5ct @Pas { 0 } +//1vx @Code "1" |2.5ct @Pas { 1 } +//1vx @Code "2" |2.5ct @Pas { 2 } +//1vx @Code "3" |2.5ct @Pas { 3 } +//1vx @Code "4" |2.5ct @Pas { 4 } +//1vx @Code "5" |2.5ct @Pas { 5 } +//1vx @Code "6" |2.5ct @Pas { 6 } +//1vx @Code "7" |2.5ct @Pas { 7 } +//1vx @Code "8" |2.5ct @Pas { 8 } +//1vx @Code "9" |2.5ct @Pas { 9 } +//1vx @Code "." |2.5ct @Pas { . } +//1vx @Code "," |2.5ct @Pas { , } +//1vx @Code ":" |2.5ct @Pas { : } +//1vx @Code ";" |2.5ct @Pas { ; } +//1vx @Code "'" |2.5ct @Pas { ' } +//1vx @Code "`" |2.5ct @Pas { ` } +//1vx @Code "+" |2.5ct @Pas { + } +//1vx @Code "-" |2.5ct @Pas { - } +//1vx @Code "*" |2.5ct @Pas { * } +//1vx @Code "/" |2.5ct @Pas { / } +//1vx @Code "(" |2.5ct @Pas { ( } +//1vx @Code ")" |2.5ct @Pas { ) } +//1vx @Code "[" |2.5ct @Pas { [ } +//1vx @Code "]" |2.5ct @Pas { ] } +//1vx @Code "^" |2.5ct @Pas { ^ } +//1vx @Code ".." |2.5ct @Pas { .. } +//1vx @Code "=" |2.5ct @Pas { = } +//1vx @Code "<" |2.5ct @Pas { < } +//1vx @Code ">" |2.5ct @Pas { > } +//1vx @Code "<>" |2.5ct @Pas { <> } +//1vx @Code "<=" |2.5ct @Pas { <= } +//1vx @Code ">=" |2.5ct @Pas { >= } +//1vx @Code ":=" |2.5ct @Pas { := } +} +} +Anything not mentioned here will appear in italic font. +@PP +Unlike the @Code "@CP" symbol from the previous chapter, the @Code "@Pas" +symbol is a quick-and-dirty production which does not offer you any options, +or indeed attempt to solve every problem of Pascal formatting. In +particular, Pascal strings need attention before formatting by +{@Code "@Pas"}. Their interiors are best enclosed in double quotes to +prevent the above transformations from occurring inside them. Any +@Code "\\" or @Code "\"" characters inside strings will need to be +replaced by @Code "\\\\" and @Code "\\\"" respectively, and the opening +quote should be replaced by {@Code "`"}. +@PP +Similar remarks apply to Pascal comments; don't forget that @Code "{" +and @Code "}" must be enclosed in double quotes. Alternatively, a +@Code "@Com" symbol can be placed in front of a comment enclosed +in braces. It will add literal braces: +@ID @Code { +"@Com { A Pascal comment }" +} +has result +@ID @Pas { +@Com { A Pascal comment } +} +It may still be necessary to enclose the interior in double quotes. +@PP +There is a @Code "@Modula" symbol which allows you to format Modula-2 +programs in the same way as @Code "@Pas" does for Pascal. You get it +via {@Code "@SysInclude { modula }"}, and once again it is a quick-and-dirty +production. +@End @Chapter diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/preface b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/preface new file mode 100755 index 0000000000000..2b1c1b050c87f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/preface @@ -0,0 +1,68 @@ +@Preface @Begin +@LP +This User's Guide brings together in one document everything needed +for the day-to-day use of Version 3 of the Lout document formatting +system. +@IndexBlanks +@PP +There are three other documents describing Lout: the Expert's Guide +@Cite { $kingston1995lout.expert }, which you need if you want to add +new features to Lout; a journal paper on the design and implementation +of Lout @Cite { $kingston1993lout.design }; and a set of overhead +transparencies @Cite { $kingston1994lout.overheads } that cover much +the same ground as this Guide. These documents are all distributed +with the software. +@PP +Lout is distributed free of charge under the GNU Public License. The +gnu. @Index { GNU Public License } +primary source is directory +@ID @Code "ftp://ftp.cs.usyd.edu.au/jeff/lout" +in which may be found a gzipped tar file containing the main distribution +(currently {@Code "lout-3.24.tar.gz"}), and various other things including +a PostScript version of this guide. The distribution contains source code, +libraries, documentation, license, and installation instructions. +@PP +A mailing list has been set up for discussion of all topics related to +Lout. To subscribe, send email to @Code "lout-request@ptc.spbu.ru" +containing the word @Code "subscribe" in the Subject line. To post an +item, send email to {@Code "lout@ptc.spbu.ru"}; it will be forwarded to +all subscribers via email. To unsubscribe, send email to +@Code "lout-request@ptc.spbu.ru" containing the word @Code "unsubscribe" +in the Subject line. +@PP +Lout began in 1984 as a research project into the design of a high-level +language for document formatting. At that time my name for the subject +was `document layout,' and this terminology survives in the name +`Lout'. The initial design +was strongly influenced by Brian W. Kernighan and Lorinda L. Cherry's eqn +kernighan @Index { Kernighan, Brian W. } +cherry.l @Index { Cherry, Lorinda L.} +eqn. @Index { @Code eqn equation formatter } +equation formatter @Cite { $kernighan1975eqn }, and also by Brian K. Reid's +Scribe system @Cite { $reid1980scribe }. That +scribe.influence @SubIndex { influence on Lout } +reid.b @Index { Reid, Brian K. } +research phase ended in October 1991 with the first public release of Lout. +@PP +Since then the system has been steadily improved and extended. Optimal +paragraph breaking and automatic hyphenation were copied from Donald +knuth @Index { Knuth, D. E. } +tex. @Index { @TeX } +E. Knuth's @TeX system @Cite { $knuth1984tex }, and the optimal paragraph +breaking algorithm was applied to the problem of producing optimal page +breaks. The first implementations of horizontal galleys and optimal +page breaking were by my student Gabor Inokai. Vincent Tan contributed +the PDF back end. Valeriy E. Ushakov has smoothed the path for many +people, by his contributions to improving Lout's robustness, and his +tireless management of and responses to the Lout mailing list. The +number of other people who have offered comments and suggestions to me is so +great that it is quite out of my power to acknowledge them individually. I +hope that seeing their ideas adopted will be thanks enough. +@DP +@RLD lines @Break { +Jeffrey H. Kingston +Basser Department of Computer Science +The University of Sydney 2006, Australia +@Code "jeff@cs.usyd.edu.au" +} +@End @Preface diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg new file mode 100755 index 0000000000000..d22a7b2480ce7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg @@ -0,0 +1,110 @@ +@Chapter + @Title { Computer Programs } + @Tag { cprint } +@Begin +@LP +This chapter describes how to typeset computer program text using Lout +in conjunction with the @Code prg2lout +prg2lout. @Index { @Code prg2lout filter program } +@FootNote { +Prior to Version 3.18 of Lout, this chapter described how to typeset +programs written in the C programming language using the +@Code c2lout filter, and Eiffel programs using the @Code eif2lout +filter. These have now been withdrawn and replaced by {@Code prg2lout}, +which handles multiple languages. Ordinary Lout documents require no +modifications as a result of this change. +} +filter program, which is always installed wherever Lout is. +@PP +It is possible to simply print out one or more program files independently +of any document. Alternatively, the program text may be printed as part of +a larger Lout document. Either way, Lout does not lay out the programs in +the sense of choosing line breaks and indenting; it uses whatever line +breaks and indenting you give to the program. What Lout does do is cope +with characters in the program text that it would ordinarily either reject +or interpret in some way (braces and so on), ensuring that you can include +program texts with absolutely no modifications; plus, if you wish, Lout +will print keywords in bold, identifiers in italics, add line numbers, etc. +@PP +At the time of writing, the available programming languages are: +eiffel. @Index { Eiffel program printing } +c. @Index { C and C++ program printing } +blue. @Index { Blue program printing } +perl. @Index { Perl program printing } +pod. @Index { Pod (for Perl) printing } +@CD @Tbl + mv { 0.5vx } + af { Italic } + arb { yes } + aformat { @Cell A | @Cell B | @Cell C | @Cell D | @Cell E } + bformat { @Cell A | @Cell @Code B | @Cell @Code C | @Cell @Code D | @Cell E } +{ +@Rowa + A { Language name } + B { Setup file name } + C { Lout symbol } + D { Default style } + E { ` ' escapes } +@Rowb + A { C, C++ } + B { cprint } + C { "@CP" } + D { fixed } + E { No } +@Rowb + A { Eiffel } + B { eiffel } + C { "@Eiffel" } + D { varying } + E { Yes } +@Rowb + A { Blue } + B { blue } + C { "@Blue" } + D { varying } + E { Yes } +@Rowb + A { Perl } + B { perl } + C { "@Perl" } + D { fixed } + E { No } +@Rowb + A { Pod } + B { pod } + C { "@Pod" } + D { varying } + E { No } +@Rowb + A { Python } + B { python } + C { "@Python" } + D { varying } + E { No } +} +C and C++ are handled together since, for formatting purposes, they +differ only in that C++ has some additional keywords plus an extra +way to make comments. Whenever we mention C from now on, we mean +both C and C++. See Section {@NumberOf prg_perl} for more on Perl +and its handmaiden Pod. The second to fifth columns of this table will be +explained at various points later in this chapter. +@PP +The list of languages is likely to expand, because the @Code "prg2lout" +program has been designed to make it relatively easy to add new languages +(you don't have to write executable code, just declare a lot of records +describing your language). Consult the instructions at the top of the +source file of that program ({@I prg2lout.c}) if you want to try it yourself. +@BeginSections +@Include { prg_lone } +@Include { prg_embe } +@Include { prg_opti } +@Include { prg_chan } +@Include { prg_tabs } +@Include { prg_form } +@Include { prg_comm } +@Include { prg_prog } +@Include { prg_pipe } +@Include { prg_erro } +@Include { prg_perl } +@EndSections +@End @Chapter diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_chan b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_chan new file mode 100755 index 0000000000000..781e9bbdfbb36 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_chan @@ -0,0 +1,134 @@ +@Section + @Title { Changing the appearance of all programs simultaneously } + @Tag { cpsetup } +@Begin +@PP +We have just seen that the {@Code "@CP"}, {@Code "@Eiffel"} etc. symbols +have many options for changing the appearance of the program text. However, +most people would not want to have a different style for every program text +in their document; they want to define the style once at the start, and have +all their program texts come out in that style without laboriously setting +options on every symbol. You do this by copying the setup file and +changing it. +@PP +For general information about how to make your own setup file, consult +Section {@NumberOf setup}. The options that determine the default +values are in the @Code "@Use" clause which occupies most of the setup +file. Here is part of the @Code "@Use" clause from {@Code cprint}: +cprint. @Index @Code "@CPSetup" +@ID @Code @Tbl + mv { 0.5vx } + aformat { @Cell A | @Cell B | @Cell C } + bformat { @Cell { " #" A } | @Cell { "{" B } | @Cell "}" } +{ +@Rowa A { "@Use { @CPSetup" } +@Rowb A { "pipe" } B { } +@Rowb A { "numbered" } B { No } +@Rowb A { "style" } B { fixed } + +@Rowa +@Rowb A { "fixedfont" } B { Courier } +@Rowb A { "fixedsize" } B { -1.0p } +@Rowb A { "fixedline" } B { 1.0vx } +@Rowb A { "fixedtabin" } B { 8 } +@Rowb A { "fixedtabout" } B { 8s } + +@Rowa +@Rowb A { "fixedidentifiers" } B { Base } +@Rowb A { "fixedkeywords" } B { Base } +@Rowb A { "fixedoperators" } B { Base } +@Rowb A { "fixednumbers" } B { Base } +@Rowb A { "fixedstrings" } B { Base } +@Rowb A { "fixedcomments" } B { Base } +@Rowb A { "fixedlinenumbers" } B { Base } + +@Rowa +@Rowb A { "fixedidentifiersformat" } B { "@Body" } +@Rowb A { "fixedkeywordsformat" } B { "@Body" } +@Rowb A { "fixedoperatorsformat" } B { "@Body" } +@Rowb A { "fixednumbersformat" } B { "@Body" } +@Rowb A { "fixedstringsformat" } B { "@Body" } +@Rowb A { "fixedcommentsformat" } B { "@Body" } +@Rowb A { "fixedlinenumbersformat" } B { "@Body" } + +@Rowa +@Rowa A { "..." } + +@Rowa +@Rowa A { "}" } +} +The @Code pipe option will be explained in Section {@NumberOf pipes}. The +options whose name begins with @Code "fixed" apply only when +@Code style is {@Code fixed}; there are corresponding options, not +shown, which apply when @Code style is {@Code varying} and {@Code symbol}. +@PP +We can see in this extract that the default value of @Code style is +{@Code fixed}, and of @Code "numbers" is {@Code No}. We can also see the +default font family, font face, font size, +line spacing, and tab settings when the style is {@Code "fixed"}. The +font family name for @Code "fixed" style is {@Code "Courier"}, but for the +other styles (not shown) it is empty. This causes the @Code "fixed" style +to always switch to Courier, and the other styles to use the same font +family as in the surrounding document. +@PP +The options from @Code "fixedidentifiers" to @Code "fixedlinenumbers" allow +you to set the font face to use for each of these parts of your +program. People who want fixed-width fonts do not usually want very +exciting font faces either, so the default values above are all +{@Code "Base"}, but for the {@Code varying} and {@Code symbol} styles, +the default identifier face is {@Code Slope}, the default keyword +face is {@Code Bold}, and so on. You can actually give a family name +before the face name in these options, allowing you to switch font +families for different parts of the program if you wish. +@PP +The @Code fixedidentifiersformat option allows you to make a more +radical change to the format of identifiers than just the font. Within +this option, @Code "@Body" stands for the identifier being formatted, and +by applying Lout symbols to it, you apply them to every identifier. For +example, +@ID @Code "fixedidentifiersformat { red @Colour @Body }" +will cause identifiers to be printed red. +@FootNote { +@Code "@Colour" is not a Lout primitive like, say, {@Code "@Font"}; it is +defined when you write @Code "@SysInclude { doc }" or the equivalent for +the other document types. This is true of quite a few generally useful +symbols, including {@Code "@Box"} and {@Code "@I"}. If you want to use +these symbols here, you must include your setup file @I after +@Code "@SysInclude { doc }" or whatever, the reverse of the usual +arrangement, so that they are defined before Lout reads your setup +file. This reversal is carried out automatically when formatting +programs independently of any document, so you can use these symbols +in a setup file given by a @Code { -S } command line flag. +} If you do use exotic formats, remember that in some programming languages, +comments and even strings may occupy more than one line: {@Code "@Box"}, +for example, will give a logical but probably unwanted result when +formatting a multi-line string. +@PP +As always with setup files, to change a default value, delete the preceding +@Code "#" and change the part between braces. For example, suppose you are +happy with @Code "fixed" except that you want bold keywords. Then one line +needs to be changed, to +@ID @Code "fixedkeywords { Bold }" +Or suppose you like @Code "varying" as it stands, but would like it to be +the default style rather than {@Code "fixed"}. Again, only one line needs +to be changed, to {@Code "style { varying }"}. +@PP +It is probably not a good idea to change the default value of +@Code { numbered } to {@Code Yes}, because small fragments of +code within paragraphs will then get line numbers as well as large +displayed programs. If you do have many large numbered programs as +well as small fragments, a better approach would be to place +@ID @OneRow @Code @Verbatim { +import @CPSetup +macro @NCP { @CP numbered { Yes } } +} +(or the equivalent for your language) in your @Code mydefs file, so that +you can type @Code "@NCP" instead of {@Code "@CP numbered { Yes }"}. +@PP +The setup files for the other languages are identical to this one, except +that the symbol after @Code "@Use" is different, and some of the +default values may be different. Changing an option affects only the +language of that setup file; if you have multiple languages you can +have multiple setup files and change their options quite independently +of each other. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_comm b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_comm new file mode 100755 index 0000000000000..f059388db624b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_comm @@ -0,0 +1,25 @@ +@Section + @Title { Embedding Lout commands within program comments } + @Tag { cpcomm } +@Begin +@PP +It is possible to embed Lout text inside program comments. How this +is done could in principle vary from language to language, but in +every language supported so far it is done by starting off the comment +with an @Code "@" character. If the language has several ways to get +a comment, this will work every way. The entire comment after the @Code "@" +character should then be Lout text. For example, to force Lout to start +a new page at some point within a C program, place +@ID @Code "/*@ @NP */" +at that point. (In this case you can also simply include a formfeed +character without any comment; see Section {@NumberOf formfeed} +for more on this.) Or, to make a heading in an Eiffel program, do this: +@ID @Code "--@ @Display @Heading { treeprint }" +(Eiffel comments begin with @Code "--" and end at the end of the +line.) Other possible uses for this feature include index entries and +margin notes. Incredible as it may seem, you can even write +@ID @Code "/*@ @CD @Heading { Function @CP { treeprint() } } */" +with a @Code "@CP" symbol and some C code inside the Lout code +inside the C code. You probably can't go further, however, at least +not in C, since that would require a C comment inside a C comment. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_embe b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_embe new file mode 100755 index 0000000000000..cfa84d428e523 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_embe @@ -0,0 +1,81 @@ +@Section + @Title { Typesetting computer programs as part of a larger document } + @Tag { embedded } +@Begin +@PP +When the program texts are to be part of a larger Lout document, +the procedure is somewhat different. You need to include the setup file +appropriate to your language, like this: +@ID @OneRow @Code { +"@SysInclude { cprint }" +"@SysInclude { doc }" +"@Doc @Text @Begin" +"..." +"@End @Text" +} +The @Code cprint setup file includes everything needed to set up for C +program formatting; for the other languages, consult the second column +of the table at the start of this chapter. +@PP +The program texts within the Lout document are enclosed in braces +preceded by the Lout symbol from the third column of the table, like +this for the C language: +@ID @OneRow @Code { +"@IndentedDisplay @CP {" +"#include " +"" +"treeprint(p) /* print tree p recursively */" +"struct tnode *p;" +"{" +" if (p != NULL) {" +" treeprint(p->left);" +" printf(\"%4d %s\\n\", p->count, p->word);" +" treeprint(p->right);" +" }" +"}" +"}" +} +Although computer programs violate the rules of legal Lout input in many ways, +these rules are suspended by the {@Code "@CP"}, {@Code "@Eiffel"} etc. symbols, +allowing the program text to be incorporated with absolutely no +modifications. The result is +@ID @OneRow @CP { +#include + +treeprint(p) /* print tree p recursively */ +struct tnode *p; +{ + if (p != NULL) { + treeprint(p->left); + printf("%4d %s\n", p->count, p->word); + treeprint(p->right); + } +} +} +We have chosen to use the @Code "@IndentedDisplay" symbol from Section +{@NumberOf displays} to obtain an indented display, but in fact +{@Code "@CP"}, {@Code "@Eiffel"} and the rest may appear anywhere at +all: the result is an object in the usual way, which may go +anywhere. When including a program text within a paragraph, use +@Code "@OneCol @CP { ... }" (or @Code "@OneCol @Eiffel { ... }" etc. for +other languages) to prevent it being broken across two lines, if desired. +@PP +In cases where the program text has unbalanced braces, it is necessary to +use the alternative form @Code "@CP @Begin ... @End @CP" (or the +equivalent for other languages), so that Lout does not confuse program +braces with Lout braces. In that case the program text must not +contain {@Code "@End"}; and in either case the program text must not +include @Code "@Include" or @Code "@SysInclude" unless you are really +including a file at that point (Section {@NumberOf pipes}). +@PP +If your Lout document contains program texts in several languages, +simply add one @Code "@SysInclude" line for each of them and proceed +as before. If your programming language is not currently supported, +a viable alternative is +@ID @Code "@F @Verbatim { ... }" +These symbols cause the text between braces to be set verbatim in +a fixed-width font, as explained elsewhere in this guide. This fallback +method will not handle tab and formfeed characters very well. Again, +use @Code "@Verbatim @Begin ... @End @Verbatim" if your program text +contains unbalanced braces. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_erro b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_erro new file mode 100755 index 0000000000000..a5a19fa1d4fde --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_erro @@ -0,0 +1,39 @@ +@Section + @Title { Error messages } + @Tag { cpp_erro } +@Begin +@PP +In order to understand the error messages produced by program +printing, it is necessary to understand that Lout's first step when +given a program text is to pass it to the separate {@Code prg2lout} +program for analysis. This separate program is the source of most +of the error messages associated with program printing. +@PP +The {@Code prg2lout} program is quite happy to format a fragment of a +computer program: there is no need to supply a complete routine, or +a complete statement, or any such thing. However, it will complain if +you supply only a fragment of one lexical unit, such as a comment or +string without its terminating delimiter. It will also complain if +there is a character that cannot be classified as part of an identifier, +number, etc. according to the rules of the language as they have been +given to @Code prg2lout by the implementer. Irrespective of the +language rules, @Code prg2lout always interprets spaces, tabs, newlines, +and formfeed characters in the usual way. +@PP +If an error message is generated by {@Code prg2lout}, it will contain +a line and column number counting from the start of the program text +involved. Lout will precede this error message with a file name, +line number, and column number pointing to the Lout symbol +({@Code "@CP"}, {@Code "@Eiffel"} etc.) whose program text caused the +error message, like this: +@ID @OneRow @Code @Verbatim { +lout file "prg_tabs" (from "prg" line 96, from "all" line 46): + 56,23: prg2lout 2,1: program text ended within comment +} +This is an actual message produced when formatting this chapter. The +program text in question has only one line, containing an incomplete comment, +so when @Code "prg2lout" tried to start the second line and found nothing, +it complained as shown. In general, then, you have to add +{@Code "prg2lout"}'s line number to Lout's line number, and use some +initiative, to find the precise point of the problem. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_form b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_form new file mode 100755 index 0000000000000..58b0e37eb8c74 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_form @@ -0,0 +1,54 @@ +@Section + @Title { Dealing with formfeed characters in programs } + @Tag { formfeed } +@Begin +@PP +The formfeed (Control-L) character is traditionally taken to be a +request to start a new page. This is explicitly recognized by the +formal definition of the C language and many others, which treat +this character as white space from a language point of view, with +the understanding that it will cause a page break when printed. +@PP +There are no @Code { prg2lout } options for dealing with formfeed +characters. They will be converted into @Code "@NP" (new page) +symbols, causing a new page or column to be begun in the printing. +@PP +Whether formfeed characters end their line or not is a problem. Consider +this example, where @Code "^L" stands for one formfeed character: +@ID @Code @Verbatim { +abc +def^Lghi +jhk +} +How many lines does this example contain? Your text editor would +probably say `three', but when you print it you will see four. It +is not desirable to have printed programs (especially those with +line numbers attached) disagreeing with text editors about line +numbers. The solution adopted by @Code { prg2lout } to this +problem is to treat the formfeed character as including a newline, +but to assign the same line number to both parts of the original line +(the parts before and after the formfeed). If the part after the +formfeed is empty (that is, if the formfeed character is immediately +followed by a newline or another formfeed), and if the formfeed is not +inside any lexical unit, then the empty line after the formfeed will +not be printed at all. +@PP +The most common case is that of a formfeed character, outside any +lexical unit, on a line by itself. Let's see what this rule +produces in the following example of this case: +@ID @Code @Verbatim { +abc +def +^L +ghi +} +There will be one blank line numbered 3 at the end of the first page, +and a line numbered 4 and containing @Code ghi at the start of the +next page. The blank line is a necessity, at least when lines are +being numbered, because we want the last line in the example to be +numbered 4 to agree with text editors, but we don't want the line +numbers on our print to skip from 2 on the first page to 4 on the +second, because that would make readers anxious about the apparently +missing line 3. If you don't want that empty line, move the formfeed +character to the end of the preceding line. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_lone b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_lone new file mode 100755 index 0000000000000..324f79e9e6d63 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_lone @@ -0,0 +1,46 @@ +@Section + @Title { Typesetting computer programs independently of any document } + @Tag { alone } +@Begin +@PP +Printing of program files independently of any document is accomplished by +the following Unix pipeline: +@ID @Code "prg2lout -l language options files | lout -s > out.ps" +where @Code language stands for any one of the programming language +names in the first column of the table above. As usual with Lout, the +output will be a PostScript file. Each input file will begin on a new +page of the output, starting with its name in bold type. The options +provide control over the final appearance, as follows: +@WideTaggedList +@TI { {@Code-p}{@I style} } { +Select a printing style. Your choices are {@Code -pfixed}, +{@Code -pvarying}, and {@Code -psymbol}, with the default value +varying with the language as given in the fourth column of the +table above. Consult Section {@NumberOf embedded} for examples +of these styles. +} +@TI { @Code -n } { +Do not print file names. +} +@TI { {@Code -f}{@I font} } { +Select a Lout font family. The default is @Code "-fCourier" for +{@Code -pfixed}, and @Code "-fTimes" for @Code -pvarying and {@Code -psymbol}. +} +@TI { {@Code -v}{@I vsize} } { +Select an inter-line spacing size in Lout units. The default is +@Code -v1.1fx meaning 1.1 times the font size measured from baseline +to baseline. +} +@TI { {@Code -L}{@I number} } { +Add line numbers to the program print, starting with {@I number}, or +1 if {@I number} is omitted. +} +@TI { {@Code -S}{@I file} } { +Use @I file as the setup file for printing your language. This allows +you to change all the options mentioned in subsequent sections, rather +than just the few given here. +} +@EndList +There are also {@Code -t} and {@Code -T} options for dealing with tab +characters (Section {@NumberOf tabs}). +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_opti b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_opti new file mode 100755 index 0000000000000..0b8dbb6442494 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_opti @@ -0,0 +1,106 @@ +@Section + @Title { Changing the appearance of a program } + @Tag { prg_opti } +@Begin +@PP +The {@Code "@CP"}, {@Code "@Eiffel"} etc. symbols have a number of +options for changing the appearance of the printed program. These +options are the same for all symbols, although their default values +may vary. The @Code "style" option changes the printing style; its +value may be {@Code "fixed"} (fixed-width font), {@Code "varying"} +(varying-width font), or {@Code "symbol"} (varying-width font with +mathematical symbols used for some operators). Its default value +depends on the language, and may be found in the fourth column of +the table at the start of this chapter. The example in the previous +section was in @Code fixed style; we can switch styles like this: +@ID @OneRow @Code { +"@CP" +" style { varying }" +"{" +"#include " +"" +"treeprint(p) /* print tree p recursively */" +"struct tnode *p;" +"{" +" if (p != NULL) {" +" treeprint(p->left);" +" printf(\"%4d %s\\n\", p->count, p->word);" +" treeprint(p->right);" +" }" +"}" +"}" +} +The result in this case will be +@ID @OneRow @CP style { varying } +{ +#include + +treeprint(p) /* print tree p recursively */ +struct tnode *p; +{ + if (p != NULL) { + treeprint(p->left); + printf("%4d %s\n", p->count, p->word); + treeprint(p->right); + } +} +} +If we use @Code "style { symbol }" we get this: +@ID @OneRow @CP style { symbol } +{ +#include + +treeprint(p) /* print tree p recursively */ +struct tnode *p; +{ + if (p != NULL) { + treeprint(p->left); + printf("%4d %s\n", p->count, p->word); + treeprint(p->right); + } +} +} +with mathematical symbols replacing some of the operators. +@PP +The {@Code "@CP"}, {@Code "@Eiffel"} etc. symbols have additional options +which allow a finer control over the style. Here they all are, with their +default values: +@ID @OneRow @Code { +"@CP [ or @Eiffel, @Blue, etc. ]" +" style { fixed }" +" numbered { No }" +" font { Courier }" +" size { -1.0p }" +" line { 1.0vx }" +" tabin { 8 }" +" tabout { 8s }" +" identifiers { Base }" +" keywords { Base }" +" operators { Base }" +" numbers { Base }" +" strings { Base }" +" comments { Base }" +"{" +" ..." +"}" +} +We are already familiar with {@Code "style"}. After that comes +{@Code "numbered"}, whose value may be {@Code "No"} (the default), +{@Code "Yes"}, or a number, and which determines whether or not +line numbers are to be added and if so the value of the first +one. Next we have +{@Code "font"}, which determines the font family to use, {@Code "size"}, +the font size to use, and {@Code "line"}, the inter-line spacing. The +default value for @Code "size" asks for one point smaller than in the +surrounding document; this was done to compensate for Courier's relatively +large appearance compared to other fonts of the same nominal size. +@PP +The @Code "tabin" and @Code "tabout" options are the subject of +Section {@NumberOf tabs}. After them come six options giving the +particular font faces in which to print identifiers, keywords, operators, +numbers, strings, and comments. {@Code "Base"} means the basic face; other +commonly available choices are {@Code "Slope"} and {@Code "Bold"}. These +options may all be set to different faces if desired. The default values +shown are correct for @Code "style { fixed }" only; the other styles +have other defaults (Section {@NumberOf cpsetup}). +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_perl b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_perl new file mode 100755 index 0000000000000..643afa640c856 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_perl @@ -0,0 +1,120 @@ +@Section + @Title { Notes on Perl and Pod } + @Tag { prg_perl } +@Begin +@PP +The Perl programming language +@FootNote { My thanks to Mark Summerfield for help with Perl and Pod. } +is quite a difficult one for the @Code { prg2lout } program to deal with, +and our boast that programs can be included with `absolutely no +modifications' is not quite true for Perl. +@PP +Here is the complete list of problem areas. In most cases their +effect is to get the formatting wrong over a short region, which is not +perhaps so disastrous; and it should be easy to modify your Perl program +without changing its meaning, to work around these problems. After all, +in Perl there is always more than one way to do it. +@NumberedList + +@LI { +@I Here-documents such as +@ID @Verbatim { +<<"EOF" +These lines will be read as though +enclosed in double quotes +EOF +} +will be handled correctly only if the string appearing immediately after +the @Perl { << } operator (that is, the string used to terminate the +here-document) is one of @Perl { EOF }, @Perl { EOT }, @Perl { END }, +and the empty string, all optionally enclosed in quotes of any of the +three kinds. If this condition is not met, then the here-document will +be treated as Perl program text. If the condition is met, there is still +another problem: the @Perl { << } symbol and everything after it on the +same line will be treated (incorrectly) as a string. The worst consequence +of this is that stacked here-documents will not be printed properly. +} + +@LI { +When @Code { prg2lout } is scanning the program text looking for the +beginning of a lexical unit, it may come upon a @Code "/" character, +and this @I initial @Code "/" (not subsequent ones in the same lexical +unit) it finds difficult to interpret, since it may be the beginning +of a regular expression, to be formatted like a string, or it may be a +complete lexical unit denoting division. The program chooses the regular +expression (or equivalently, string) interpretation if the @Code "/" +character is immediately preceded by @Code { "q" }, @Code { "qq" }, +@Code { "qx" }, @Code { "qw" }, @Code { "qr" }, @Code { "m" }, +@Code { "s" }, @Code { "y" }, or @Code { "tr" }. It also chooses the +regular expression interpretation if the @Code "/" character appears +at the start of a line, or if it is immediately preceded by zero, one, +or two space or tab characters, which are themselves immediately preceded +by a complete lexical unit which is one of @Code { "(" }, @Code { "=" }, +@Code { "=~" }, @Code { "!~" }, @Code { "split" }, @Code { "if" }, +@Code { "and" }, @Code { "&&" }, @Code { "or" }, @Code { "||" }, +@Code { "not" }, @Code { "!" }, @Code { "unless" }, +@Code { "for" }, @Code { "foreach" }, and @Code { "while" }. Otherwise +it chooses the division interpretation. In the rare cases where this +rule fails, you can force @Code { prg2lout } to choose the regular expression +interpretation by placing an @Code { m } in front of the initial @Code "/" +(this does not change the meaning of the program), and you can force the +division interpretation by placing at least three spaces before the +@Code "/" character. +} + +@LI { +Substitution expressions, even such lexically complex ones as +@Perl { s{{@D}}[{@I}] }, are handled correctly. However, +@Code { prg2lout } does not understand that the letters @Code "gimosx" +in any combination appearing immediately after a substitution +expression are part of it; it treats them as the start of a new lexical +unit. This new unit will usually be taken to be an identifier, which +is harmless enough, but occasionally it is taken to be something +else. For example, in +@ID @Code @Verbatim { s///s; } +the trailing @Code "s" will be mistaken for the start of a new +substitution expression, with @Code ";" delimiting the first +pattern. This particular example can be fixed by inserting a +space before the semicolon. +} + +@EndList +Further work may eliminate some of these problems. +@PP +The Pod language is used by Perl programmers for creating documentation, +and may be found within Perl programs or standing alone. Lout supports +both arrangements without any special action by the user. At the +beginning of the @Code perl setup line, the following line has been placed: +@ID @Code "@SysInclude { pod }" +Thus, asking for Perl always gives you Pod as well. If you are using +your own setup files for both languages, it is probably better to +break this connection by deleting this line from your copy of the +@Code perl setup file and placing +@ID @OneRow @Code { +"@Include { mypod }" +"@Include { myperl }" +} +at the start of your document in the usual way. +@PP +Because Pod is a documentation language rather than a programming +language, the setup file options listed in Section {@NumberOf cpsetup} +do not really apply. So for Pod only these have been discarded and replaced +by a completely different set of options, controlling such things as +the size of headings and the gaps between list items, which you can +find documented in the @Code { pod } setup file. +@PP +If you ask for line numbers on a Pod program, or on a Perl program that +contains Pod, any text blocks in the Pod that would otherwise have +appeared as filled paragraphs will come out with the line breaks in +the source respected, and lines numbered accordingly. Because +@Code "prg2lout" attaches line numbers before Lout breaks paragraphs, +it is not possible to number the lines after paragraph breaking. +@PP +Owing to problems behind the scenes, if a Pod inclusion in a Perl +program has unbalanced braces, @Code "prg2lout" is forced to insert +braces into the Pod text to make them balance. It will insert a +left brace directly before any unbalanced right brace, and it will +insert right braces at the end of the Pod inclusion to balance any +preceding unbalanced left braces. It will tell you if it has to do +this. This problem does not afflict Pod when used as a separate language. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_pipe b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_pipe new file mode 100755 index 0000000000000..813a691dfe1bc --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_pipe @@ -0,0 +1,57 @@ +@Section + @Title { Reading and selecting program text from separate files } + @Tag { pipes } +@Begin +@PP +We have said that program text within @Code "@CP { ... }" and the other +symbols is passed directly to @Code prg2lout for analysis. However, +there is an exception. The program text may contain an +@Code "@Include" or @Code "@SysInclude" command, which, as for the +@Code "@Verbatim" symbol (Section {@NumberOf verbatim}), causes Lout +to take the program text from a file: +@ID @OneRow @Code { +"@Eiffel" +"{" +" @Include { \"/usr/staff/jeff/Eiffel/hash.e\" }" +"}" +} +The included file is not examined for balanced braces or @Code "@End" or +{@Code "@Include"}; it is treated entirely verbatim and passed straight +on to {@Code prg2lout}. There may be several @Code "@Include" commands, +and any amount of program text as well, within @Code "@CP { ... }" and +the rest. +@PP +When including files in this way it often happens that only part of an +actual program file is wanted for display. Rather than placing the +wanted part in a separate file, which is error-prone and tedious when +the program is changing, Unix users can use the @Code "pipe" option +to pipe the entire file through an arbitrary sequence of Unix commands, +which may be used to make the wanted selection before the program text +is passed to {@Code prg2lout}. +@PP +For example, suppose that all your Eiffel routines begin with the +routine name one tab stop from the left margin and end at the first +following @Eiffel { end } indented two tab stops. Then +@ID @OneRow @Code { +"@Eiffel" +" pipe { \"sed -n /^.insert/,/^..end/p\" }" +"{" +" @Include { \"/usr/staff/jeff/Eiffel/hash.e\" }" +"}" +} +will select just the @Eiffel { insert } routine from the @Code { hash.e } +file. Assuming that your program text has been laid out in a +disciplined manner, every line of the selection will begin with a +tab character that is not wanted in this display, so an even better +pipe is +@ID @OneRow @Code { +"@Eiffel" +" pipe { \"sed -n /^.insert/,/^..end/p | cut -c2-\" }" +"{" +" @Include { \"/usr/staff/jeff/Eiffel/hash.e\" }" +"}" +} +since it cuts away the unwanted tab characters. Unfortunately, we +can't show the result of this on an actual example, since that would +prevent this manual from being formatted on a non-Unix system. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_prog b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_prog new file mode 100755 index 0000000000000..19a525e3fd09f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_prog @@ -0,0 +1,35 @@ +@Section + @Title { Embedding program text within program comments } + @Tag { cpp_prog } +@Begin +@PP +The standard reference for the Eiffel language @Cite { $meyer1992eiffel } +specifies that identifiers within comments may or should be enclosed +in ` and ' so that they may be noticed and printed in an italic +font: +@ID @OneRow @Code @Verbatim { +@ID @Eiffel { +deposit(amount: REAL) is + -- deposit `amount' dollars +} +} +produces +@ID @OneRow @Eiffel { +deposit(amount: REAL) is + -- deposit `amount' dollars +} +This has been generalized in Lout: arbitrary text within an +Eiffel comment between ` and ' will be treated as Eiffel text and +printed accordingly. Some other languages may also offer this +feature: see the fifth column of the table at the start of this +chapter. In principle the precise means of getting it could vary +from language to language, but the languages available at the moment +either do not have it at all, or else they use ` and ' like Eiffel. +@PP +On the subject of Eiffel, the Eiffel reference @Cite { $meyer1992eiffel } +has some quite detailed style guidelines, and these have been closely +followed in the implementation of the @Code "@Eiffel" symbol. In +particular, @Code "@Eiffel" prints dots larger than usual when they +denote feature calls, as the example @OneCol @Eiffel { account.deposit(20) } +shows. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_tabs b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_tabs new file mode 100755 index 0000000000000..9fe101d323025 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/prg_tabs @@ -0,0 +1,68 @@ +@Section + @Title { Dealing with tab characters in programs } + @Tag { tabs } +@Begin +@PP +Tab characters provide a convenient way to indent and align parts of +tab.c @Index { tab characters in programs } +computer programs. With care, this alignment can be preserved in the final +print even with varying-width fonts. +@PP +The distance between two tab stops in the program text is by default taken +to be 8 characters, which is standard for Unix. This can be changed with +the @Code "tabin" option. For example, +@ID @Code "@CP tabin { 4 }" +informs Lout that tab stops occur every 4 characters in the program +text. All the symbols ({@Code "@CP"}, {@Code "@Eiffel"}, etc.) and +their setup files have this option and the next; but to save repetition +we will stick with C for the rest of this section. +@PP +The distance between two tab stops on the printed page is quite a different +thing, and it is determined by the value of the @Code "tabout" option, which +must be a Lout length. For example, +@ID @Code "@CP tabout { 0.5i }" +requests that tab stops be placed at half-inch intervals. In other +words, a distance of one tab stop in the program text will be equivalent to a +distance of half an inch on the printed page. For example, +@ID @Code "@CP style { varying } tabout { 3f } numbered { Yes }" +might produce the following, where tab characters in the program text +have been used for indenting and also to align the comments: +@ID @OneRow @CP style { varying } tabout { 3f } numbered { Yes } { +struct tnode { /* the basic node */ + char *word; /* points to the text */ + int count; /* number of occurrences */ + struct tnode *left; /* left child */ + struct tnode *right; /* right child */ +}; +} +We've used @Code "numbered { Yes }" to demonstrate that the features +for dealing with tabs work even with line numbers. The value {@Code "3f"} +means three times the current font size, and it is the default value of +@Code "tabout" for the @Code { varying } and @Code { symbol } styles +(Section {@NumberOf cpsetup}). In a 12 point font this is 36 points, +or half an inch. +@PP +If @Code "tabout" is too small, there is a danger that the +alignment might fail. For example, +@ID @Code "@CP style { varying } tabout { 0.2i }" +produces +@ID @OneRow @CP style { varying } tabout { 0.2i } { +struct tnode { /* the basic node */ + char *word; /* points to the text */ + int count; /* number of occurrences */ + struct tnode *left; /* left child */ + struct tnode *right; /* right child */ +}; +} +given the same C text as the previous example. The problem here is that +we are asking for @CP { /* } to appear four tab stops or 0.8 inches +from the left edge, and yet the material to its left on the line is +wider than this. This causes @CP { /* } to be shifted further to the +right than expected, and the alignment is lost. The only solution is +to increase {@Code "tabout"}. +@PP +When typesetting computer program texts independently of any document, +there are @Code "-t" and @Code "-T" options to the @Code "prg2lout" +program equivalent to @Code "tabin" and @Code "tabout" respectively. For +example, @Code "-T0.5i" produces a half-inch tab width. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ref b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ref new file mode 100755 index 0000000000000..6ea5782a13fd5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ref @@ -0,0 +1,31 @@ +@Chapter + @Title { References } + @Tag { biblio } +@Begin +@LP +The simple way to make a list of references is to put them in a numbered +references. @Index { references } +or tagged list at the end of your document. If you use references only +rarely, that is probably the best way, but if you use them frequently this +chapter will save you hours of work in the long run. +@PP +Some good general principles and many examples have been given by van Leunen +van.leunen. @Index { van Leunen, Mary-Claire } +@Cite { $vanleunen1992handbook }. Broadly speaking Lout follows her +recommendations, with some unification and scaling back as is inevitable +with software. Scribe @Cite { $reid1980scribe } +latex. @Index @LaTeX +scribe. @RawIndex Scribe +scribe.reference @SubIndex { reference formatting } +and @LaTeX @Cite { $lamport1986latex } followed the first edition of the +same source, so translation from Scribe and @LaTeX references is +fairly straightforward. +@BeginSections +@Include { ref_sett } +@Include { ref_cite } +@Include { ref_labe } +@Include { ref_entr } +@Include { ref_chan } +@Include { ref_crea } +@EndSections +@End @Chapter diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ref_chan b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ref_chan new file mode 100755 index 0000000000000..f7114fbfb1ea2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ref_chan @@ -0,0 +1,200 @@ +@Section + @Title { Changing the appearance of citations and the reference list } + @Tag { changeref } +@Begin +@PP +By default, citations appear like this @Cite { $kingston1995lout.expert }, +and the reference list appears like the one at the end of this +document, with the entries numbered, and sorted by their @Code "@Tag" +options. This section explains how to change all this, by setting +options in the setup file. +@PP +For a general introduction to setup files and their options, see +Section {@NumberOf setup}. Here we just describe the setup +file options that relate to references. Here they are, with their +default values: +@ID @OneRow @Code { +"@MakeReferences { Yes }" +"@RefCiteStyle { [cite] }" +"@RefCiteLabels { @RefNum }" +"@RefNumbers { Arabic }" +"@RefListFormat { Labels }" +"@RefListLabels { [@RefNum] }" +"@RefListTitle { references }" +"@ChapRefListTitle { references }" +"@RefListIndent { 0c }" +"@RefListRightIndent { 0c }" +"@RefListGap { 1.00v }" +"@RefListFont { }" +"@RefListBreak { }" +"@RefListLabelWidth { 2.00f }" +"@RefListSortKey { @Tag }" +} +makereferences.sym @Index { @Code "@MakeReferences" } +Setting @Code "@MakeReferences" to @Code "No" will cause Lout to ignore +all citation symbols and omit all reference lists. +@PP +@Code "@RefCiteStyle" and @Code "@RefCiteLabels" combine to +refcitestyle.sym @Index { @Code "@RefCiteStyle" } +determine the appearance of citations. The result of each @Code "@Cite" +symbol is the value of @Code "@RefCiteStyle" with the @Code "cite" +symbol replaced by the object following the @Code "@Cite" symbol. For +example, the default value shown above encloses each citation in +brackets. The @Code "cite" symbol must appear exactly once within +{@Code "@RefCiteStyle"}. +@PP +@Code "@RefCiteLabels" determines the appearance of each label within +refcitelabels.sym @Index { @Code "@RefCiteLabels" } +the citation. Within it, the @Code "@RefNum" symbol will produce the +number of the reference, and you may also use any of the options of the +@Code "@Reference" symbol listed at the beginning of Section +{@NumberOf entries}: +@ID @OneRow @Tab + @Fmta { @Col @Code A ! @Col B } +{ +@Rowa + A { "@RefCiteLabels { @RefNum }" } + B { [3] } +@Rowa + A { "@RefCiteLabels { @Label }" } + B { [Kin93] } +@Rowa + A { "@RefCiteLabels { @Author, @Year }" } + B { [Jeffrey H. Kingston, 1993] } +} +The value of @Code "@RefCiteLabels" may be any object. The @Code "@Label" +symbol will produce the @Code "label" option of @Code "$" or @Code "@Ref" +if there is one, rather than the @Code "@Label" option of the reference; +this @Code "label" option is explained in Section {@NumberOf labelled}. +@PP +@Code "@RefNumbers" determines the kind of numbering produced by the +refnumbers.sym @Index { @Code "@RefNumbers" } +@Code "@RefNum" symbol used within @Code "@RefCiteLabels" above and +@Code "@RefListLabels" below. Its value may be {@Code Arabic}, +{@Code Roman}, {@Code UCRoman}, {@Code Alpha}, or {@Code UCAlpha}, as +usual for numbering in Lout. If you don't use {@Code "@RefNum"}, +@Code "@RefNumbers" has no effect. +@PP +The remaining eleven setup file options are all concerned with the +appearance of the reference list. The first, {@Code "@RefListFormat"}, +reflistformat.sym @Index { @Code "@RefListFormat" } +determines the overall format of the list. Here is what its four +@NoCite { $strunk1979style } possible values do: +@ID @Tab + @Fmta { @Col @Code A ! @Col @OneCol B } + vmargin { 0.3v } +{ +@Rowa + A { "@RefListFormat { NoLabels }" } + B { @RefPrint strunk1979style } +@Rowa +@Rowa + A { "@RefListFormat { Labels }" } + B { 2f @Wide {{@NumberOf strunk1979style}.} | @RefPrint strunk1979style } +@Rowa +@Rowa + A { "@RefListFormat { DropLabels }" } + B { {@NumberOf strunk1979style}. //1vx + 2f @Wide {} | @RefPrint strunk1979style + } +@Rowa +@Rowa + A { "@RefListFormat { InLabels }" } + B { {@NumberOf strunk1979style}. &2s @RefPrint strunk1979style } +} +@Code "@RefListFormat" is not concerned with the appearance of the +labels and references, only with where they appear. +@PP +@Code "@RefListLabels" determines the appearance of the labels in the +reflistlabels.sym @Index { @Code "@RefListLabels" } +reference list (and so has no effect if @Code "@RefListFormat" is +{@Code "NoLabels"}). It is a combination of @Code "@RefCiteStyle" +and {@Code "@RefCiteLabels"}; you can use @Code "@RefNum" and all the +options of @Code "@Reference" within it. The default value, +@ID @Code "@RefListLabels { @RefNum. }" +produces a numbered reference list in the style of +{@Code "@NumberedList"}. Another useful value is +@ID @Code "@RefListLabels { [@Label] }" +which produces the @Code "@Label" option of the reference, or the +@Code "label" option of the citation if there is one, enclosed in +brackets. If you do switch to non-numeric labels you will need to +either use @Code "DropLabels" or else increase the +@Code "@RefListLabelWidth" option described below. +@PP +@Code "@RefListTitle" determines the heading placed just before the +reflisttitle.sym @Index { @Code "@RefListTitle" } +reference list at the end of the document: +@ID @Code "@RefListTitle { Further Reading }" +Two special values, @Code "references" and {@Code "bibliography"}, +produce References and Bibliography in English and their equivalents +in other languages. @Code "@ChapRefListTitle" is the same as +chapreflisttitle.sym @Index { @Code "@ChapRefListTitle" } +{@Code "@RefListTitle"}, but applied to the reference list at the end +of each chapter of a book when @Code "@ChapCite" is used. +@PP +{@Code "@RefListIndent"}, {@Code "@RefListRightIndent"}, and +reflistindent.sym @Index { @Code "@RefListIndent" } +reflistrightindent.sym @Index { @Code "@RefListRightIndent" } +reflistgap.sym @Index { @Code "@RefListGap" } +{@Code "@RefListGap"} determine the left indent, right indent, and gap +between reference list items, analogously to the {@Code "indent"}, +{@Code "rightindent"}, and {@Code "gap"} options of the @Code "@List" +symbol (Section {@NumberOf lists}). @Code "@RefListFont" and +@Code "@RefListBreak" determine the font and +reflistfont.sym @Index { @Code "@RefListFont" } +reflistbreak.sym @Index { @Code "@RefListBreak" } +paragraph breaking style of the reference list. For example, +@ID @OneRow @Code { +"@RefListFont { -2p }" +"@RefListBreak { 1.2fx outdent }" +} +switches to a smaller size with outdented paragraphs (these work well +with {@Code NoLabels}). The empty default values produce the same +font and break style as in the document as a whole. +@PP +@Code "@RefListLabelWidth" determines the distance from the left +reflistlabelwidth.sym @Index { @Code "@RefListLabelWidth" } +edge of the labels to the left edge of the references, when +@Code "@RefListFormat" is @Code Labels or {@Code DropLabels} (it +has no effect when @Code "@RefListFormat" is @Code NoLabels or +{@Code "InLabels"}). This is different to {@Code "@RefListIndent"}, +which determines the distance from the edge of the column to the +left edge of the item. +@PP +Particular care is needed when @Code "@RefListFormat" +is @Code Labels and the labels are non-numeric, for then if the +labels are too wide they will overstrike the references. The default +value, {@Code 2.00f}, is twice the current font size. It may be +changed to any length (Section {@NumberOf objects}). Regrettably, +Lout is not clever enough to choose a good value by itself. +@PP +Finally, @Code "@RefListSortKey" determines the sorting key used when +sort.ref @Index { sorting of reference lists } +reflistsortkey.sym @Index { @Code "@RefListSortKey" } +ordering the reference list. The default value, +@ID @Code "@RefListSortKey { @Tag }" +sorts by tag; the other popular possibility is to sort by the +@Code "@Label" option: +@ID @Code "@RefListSortKey { @Label }" +As usual @Code "@Label" will use the value of a @Code "label" option +to the citation if there is one. There is no way to sort by order of +first appearance in the document. +@PP +@Code "@RefListSortKey" may be any sequence of words +and options from the @Code "@Reference" symbol, but not @Code "@RefNum" +for obvious reasons. A possible more elaborate sorting key is +@ID @Code "@RefListSortKey { @Author:@Year:@Tag }" +sorting first by author, then by year within each author, and finally +by tag. However you +are supposed to choose tags which have this effect, and that is more +reliable since the modern practice is to put the authors' surnames +after their given names. There seems to be little practical use for +sorting keys other than {@Code "@Tag"} and {@Code "@Label"}. +@PP +A colon within the @Code "@RefListSortKey" option is converted by Lout +into a character smaller than any printable character, which ensures that +the sorting is carried out separately on the three fields. It is essential +that the sort key uniquely identify the reference, because if two sort +keys are equal only one of the references will be printed. The easiest +way to ensure this is to always include @Code "@Tag" in the sort key. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ref_cite b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ref_cite new file mode 100755 index 0000000000000..89958b9084c0e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ref_cite @@ -0,0 +1,90 @@ +@Section + @Title { Citation } + @Tag { citation } +@Begin +@PP +To cite one or more references, use the @Code "@Cite" symbol like this: +citing @Index { citing references } +cite. @Index @Code "@Cite" +@ID @Code { +"This feature is beyond our scope @Cite { $kingston1995lout.expert, page 97 }." +} +The following object must be enclosed in braces. It may be an arbitrary +object as usual. Within it the @Code "$" character is a symbol with a +special meaning: it causes a citation to be made of the reference whose +@Code "@Tag" option is the word following the @Code "$" symbol: +@ID { +This feature is beyond our scope @Cite { $kingston1995lout.expert, page 97 }. +} +The reference itself will appear automatically in a reference list at +the end of the document, and the citation(s) will be enclosed in brackets +as shown. There is no need to write @Code "${kingston1995lout.expert}," +as would normally be the case, because within @Code "@Cite" special +arrangements are made to prevent commas and semicolons from being a +nuisance. +@PP +A reference may be cited many times, but it will appear in the +reference list only once. The references will ordinarily be sorted by +tag and labelled with Arabic numbers, although this can be changed by +setting options in the setup file (Section {@NumberOf changeref}). +@PP +If you are making a book, there is a @Code "@ChapCite" symbol which is +chap.cite @Index @Code "@ChapCite" +the same as @Code "@Cite" except that its references come out at the +end of the current preface, introduction, chapter, or appendix, rather +than at the end of the document. +@PP +It is quite all right to cite a reference from within a footnote, figure, +table, or index entry. The reference will appear in the closest +reference list following the citation point in the final printed document, +or if there is no such list, the closest preceding reference list. This +is fine in documents with just one reference list; but when using +@Code "@ChapCite" in books, if the citation point appears after the intended +reference list (because the footnote or figure has floated past the reference +list at the end of the chapter), the reference will come out in the wrong list. +@PP +Although it is frowned upon by the authorities, some people include +references which are not cited anywhere in the body of their document. For +this there is {@Code "@NoCite"}: +no.cite @Index @Code "@NoCite" +@ID @Code { +"... our scope @NoCite { $kingston1995lout.expert, $kingston1993lout.design }." +} +produces +@ID { +... our scope @NoCite { $kingston1995lout.expert, $kingston1993lout.design }. +} +with the @Code "@NoCite" symbol and any preceding space removed. The +references will nevertheless appear in the reference list as usual. There +is a @Code "@NoChapCite" symbol that combines @Code "@NoCite" and +no.chap.cite @Index @Code "@NoChapCite" +{@Code "@ChapCite"}. For compatibility with previous versions of Lout, +there is a @Code "@Ref" symbol: +ref. @Index @Code "@Ref" +@ID @Code "@Ref kingston1995lout.expert" +is the same as @Code "@Cite { $kingston1995lout.expert }" without the +brackets. There are analogous {@Code "@ChapRef"}, {@Code "@NoRef"}, +and {@Code "@NoChapRef"} +chap.ref @Index @Code "@ChapRef" +no.ref @Index @Code "@NoRef" +no.chap.ref @Index @Code "@NoChapRef" +symbols, which are not recommended. +@PP +The @Code "@RefPrint" symbol will print a reference on the spot: +ref.print @Index @Code "@RefPrint" +resume. @Index { resumes } +curriculum. @Index { curriculum vitae } +@ID @Code "@RefPrint kingston1995lout.expert" +has result +@ID @RefPrint kingston1995lout.expert +unrelated to any reference list. For example, +@ID @OneRow @Code { +"@Heading { Journal Articles }" +"@NumberedList" +"@LI @RefPrint kingston1985tree" +"..." +"@LI @RefPrint kingston1993lout.design" +"@EndList" +} +might appear in someone's resume. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ref_crea b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ref_crea new file mode 100755 index 0000000000000..994f8d31a73cd --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ref_crea @@ -0,0 +1,139 @@ +@Section + @Title { Creating your own entry types and formats } + @Tag { refstyles } +@Begin +@PP +Although the set of options to the @Code "@Reference" symbol +({@Code "@Tag"}, {@Code "@Type"}, {@Code "@Author"}, etc.) is fixed, you +can add your own reference types and change the formatting of existing types. +@PP +To do this you must be using your own setup file, as explained in +Section {@NumberOf setup}. At the end of the setup file you will find +this line: +reference.print @Index { reference printing style } +ref.style @Index @Code "@RefStyle" +@ID @Code "@SysDatabase @RefStyle { refstyle }" +This tells Lout to consult a database file of reference styles called +{@Code "refstyle.ld"}. These are not references, they are formatting +styles, one for each reference type. The @Code "Sys" in @Code "@SysDatabase" +sys.database @Index @Code "@SysDatabase" +means that this file is stored in the @I { Lout system database directory }, +system.database.dir @Index { system database directory } +refstyle.ld.file @Index { @Code "refstyle.ld" file} +which is where all the standard databases are kept. To change the +formatting of a reference type, or to add your own types, you need to +create your own reference styles database file by copying and modifying +{@Code "refstyle.ld"}. +@PP +To find out the name of the Lout system database directory, type the +Unix command +@ID @Code "lout -V" +Then, supposing that the Lout system database directory is +{@Code "/usr/lout/data"}, type +@ID @Code "cp /usr/lout/data/refstyle.ld mystyle.ld" +to place a copy of the @Code "refstyle.ld" database file in your +mystyle.ld.file @Index { @Code "mystyle.ld" file} +directory, renaming it {@Code "mystyle.ld"}. Since @Code "refstyle.ld" +is read-only, you may also need to change the mode of @Code "mystyle.ld" +to be writable (by @Code "chmod +w mystyle.ld" in Unix). Now replace +@ID @Code "@SysDatabase @RefStyle { refstyle }" +at the end of your setup file by +@ID @Code "@Database @RefStyle { mystyle }" +and Lout will read its reference styles from @Code "mystyle.ld" instead +of {@Code "refstyle.ld"}. Since the two are at +present identical, this has changed nothing so far; but now any changes +you make to @Code "mystyle.ld" will affect your document. Changing +@Code "@SysDatabase" to @Code "@Database" makes Lout search your +current directory for {@Code "mystyle.ld"}, whereas @Code "@SysDatabase" +searches only the system directory. +@PP +In practice you will probably want to store your database of reference +styles in some library directory, so that it can be used by +many documents. A Unix pathname is appropriate for this: +@ID @Code "@Database @RefStyle { \"/usr/jeff/lib/mystyle\" }" +Quotes are needed because of the @Code "/" characters. +@PP +The database entries within @Code "refstyle.ld" and @Code "mystyle.ld" +might look something like this: +@ID @OneRow @Code { +"{ Book @RefStyle @Style" +" { @Reference&&reftag @Open" +" {" +" @Author. @I @Title. @Publisher, @Year." +" }" +" }" +"}" +} +The meaning of the first two lines is beyond our scope, except that +@Code "Book" on the first line means that this is the entry which +defines how references of type @Code Book will be printed. Fortunately, +apart from this one word these two lines are the same in every +reference style entry so you don't need to understand them. The +important part is in the middle: +@ID @Code "@Author. @I @Title. @Publisher, @Year." +The meaning should be clear: first print the author option and a full +stop, then the title option and another full stop in italics, and so +on. To change the formatting of books, change this object. To create +a new reference type, copy the entire database entry, change @Code Book +to a new name of your choice, and change the middle part. Don't forget +to delete the index file @Code "mystyle.li" afterwards, if there is one, +so that Lout knows to generate it afresh. +@PP +Although the entry shown above is perfectly viable, the real entry for +@Code Book is much more complicated, in part because there are more +options than those basic four, but mainly because the real entry goes +to great lengths to do the right thing when options are omitted: +@ID @Tab + vmargin { 0.45vx } + @Fmta { @Col @Code A ! @Col @Code B } +{ +@Rowa A { "{ Book @RefStyle @Style" } +@Rowa A { " { @Reference&&reftag @Open" } +@Rowa A { " {" } +@Rowa A { " { @Author. {}" } B { "} @If @Author" } +@Rowa A { " { @I @Title" } B { "} @If @Title" } +@Rowa A { " { @Word&¬itle" } B { "} @If @Not @Title" } +@Rowa A { " { , @Pinpoint" } B { "} @If @Pinpoint" } +@Rowa A { " { , @Word&&pages @NumSep @Pages" } B { "} @If @Pages" } +@Rowa A { " { , @Word&&page @NumSep @Page" } B { "} @If @Page" } +@Rowa A { " { . @TitleNote" } B { "} @If @TitleNote" } +@Rowa A { " { . @HowPublished" } B { "} @If @HowPublished" } +@Rowa A { " { . @Publisher" } B { "} @If @Publisher" } +@Rowa A { " { . @Organization" } B { "} @If @Organization" } +@Rowa A { " { . @Institution" } B { "} @If @Institution" } +@Rowa A { " { , @Address" } B { "} @If @Address" } +@Rowa A { " { . @Edition" } B { "} @If @Edition" } +@Rowa A { " { , @Month @Year" } B { "} @If @Year @And @Month" } +@Rowa A { " { , @Year " } B { "} @If @Year @And @Not @Month" } +@Rowa A { " { ." } B { "} @If @True" } +@Rowa A { " { {} URL @URL." } B { "} @If @URL" } +@Rowa A { " { {} @Note" } B { "} @If @Note" } +@Rowa A { " }" } +@Rowa A { " }" } +@Rowa A { "}" } +} +The meaning is that each object to the left of an @Code "@If" will be +if. @Index @Code "@If" +printed only if the condition to the right of the @Code "@If" is +true. The condition may contain options, which are considered to be +true if they are not omitted (non-empty), and it may contain {@Code "@And"}, +and. @Index @Code "@And" +or. @Index @Code "@Or" +not. @Index @Code "@Not" +true. @Index @Code "@True" +{@Code "@Or"}, {@Code "@Not"}, and @Code "@True" with the usual precedence +and meaning. Sub-conditions may be enclosed in braces if desired, although +it is best to keep the conditions as simple as possible given the +complexity of the whole setup. +@PP +The objects subject to @Code "@If" are printed with no space preceding +them; any space in the final print will be the result of space within +them, not between them. This is why @Code "@If @True" is not redundant. +@PP +The object @Code "@Word&¬itle" produces @Code "No title" in the +current language; @Code "@Word&&pages" produces {@Code pages} in the +current language, and so on. Consult database @Code "standard.ld" for +standard.ld.file @Index { @Code "standard.ld" file } +other standard words and phrases, and page {@PageOf numsep} for +{@Code "@NumSep"}. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ref_entr b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ref_entr new file mode 100755 index 0000000000000..63516b2281b5c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ref_entr @@ -0,0 +1,293 @@ +@Section + @Title { Constructing database entries } + @Tag { entries } +@Begin +@PP +Here is the complete, fixed list of options that you may give to the +@Code "@Reference" symbol: +@ID @Tab + vmargin { 0.5vx } + @Fmta { @Col @Code A ! @Col B } +{ +@Rowa + A { "{ @Reference" } +@Rowa + A { " @Tag {}" } + B { Used to cite this reference } +@Rowa + A { " @Type {}" } + B { The type of reference, for example {@Code Book}, {@Code Article} } +@Rowa + A { " @Abstract {}" } + B { Not used, intended to hold an abstract } +@Rowa + A { " @Address {}" } + B { The address of a publisher, organization, or institution } +@Rowa + A { " @Annote {}" } + B { Not used, intended for annotations } +@Rowa + A { " @Author {}" } + B { The author(s) or editor(s) } +@Rowa + A { " @Day {}" } + B { The day of the month, for newspaper articles } +@Rowa + A { " @Edition {}" } + B { The edition, for example @Code "Second Edition" } +@Rowa + A { " @HowPublished {}" } + B { How something strange has been published } +@Rowa + A { " @InAuthor {}" } + B { The author of the work that the cited work appears within } +@Rowa + A { " @InTitle {}" } + B { The title of the work that the cited work appears within } +@Rowa + A { " @Institution {}" } + B { The institution or school } +@Rowa + A { " @Journal {}" } + B { The journal name } +@Rowa + A { " @Keywords {}" } + B { Not used, intended to hold keywords } +@Rowa + A { " @Label {}" } + B { The label of a labelled reference } +@Rowa + A { " @Month {}" } + B { The month of publication or writing } +@Rowa + A { " @Note {}" } + B { Any additional helpful information } +@Rowa + A { " @Number {}" } + B { The number of a technical report } +@Rowa + A { " @Organization {}" } + B { The organization sponsoring the work } +@Rowa + A { " @Page {}" } + B { Page number if only one, for example @Code "23" } +@Rowa + A { " @Pages {}" } + B { Page numbers if more than one, for example @Code "23--47" } +@Rowa + A { " @Pinpoint {}" } + B { A point or part of the work, for example @Code "Chapter VI" } +@Rowa + A { " @Publisher {}" } + B { The publisher of the work } +@Rowa + A { " @Title {}" } + B { The title of the work } +@Rowa + A { " @TitleNote {}" } + B { Additional title information (series, editor, etc.) } +@Rowa + A { " @TRType {}" } + B { The type of a technical report, for example @Code "Research Note" } +@Rowa + A { " @URL {}" } + B { The URL of the reference } +@Rowa + A { " @Volume {}" } + B { The volume of a journal } +@Rowa + A { " @Year {}" } + B { The year of publication or writing } +@Rowa + A { "}" } +} +Every reference may contain any of these options, although, depending +on the {@Code "@Type"} option, only some will be printed. You can't give +an option twice; in particular, multiple authors must be placed +within one @Code "@Author" option, arranged as you want them to appear. Here +is the complete set of values that you may give to the @Code "@Type" option: +@ID @Tab + vmargin { 0.5vx } + @Fmta { @Col @Code A ! @Col @Code B ! @Col @Code C ! @Col @Code D } +{ + @Rowa + A { Book } + B { TechReport } + C { Article } + D { InBook } + @Rowa + A { Proceedings } + B { MastersThesis } + C {} + D { InProceedings } + @Rowa + A { PhDThesis } + B { Misc } + C {} + D {} +} +Each column represents one broad category of reference type: the first +contains large works; the second contains small works not appearing +within anything else (although possibly part of a series); the third +contains small works appearing within an ongoing forum for such works; +and the fourth contains small works appearing within large works. In each +case, the reference may be to the work as a whole, or to one point or part +of it (known as pinpointing). +@PP +Some care is needed when choosing the @Code "@Tag" option, since references +are both cited and sorted by tag. It is best to choose a three-part +tag consisting of the first author's surname and possibly initial, the +year of publication, and a brief reminder of the contents: +@ID @Code "@Tag { kingston1995lout.expert }" +Keep to lower-case letters, since mixed cases confuse the sorting, and +give the full four digits of the year to avoid trouble in the year +2000. Multi-word tags are possible but not recommended. +@PP +Unusually for Lout, you can have unquoted @Code "/" and @Code "~" +characters inside the @Code "@URL" option: +@ID @Code "@URL { ftp://ftp.cs.su.oz.au/jeff/lout }" +In fact it is better not to use quotes because then Lout will +be able to break lines at @Code "/" characters, which is very useful +since URLs tend to be long and prone to causing bad line breaks. +@PP +Since the types within each broad category are similar, our plan is to +give one example of each and briefly note how the others differ. Here +is a @Code Book entry showing all its options: +book.ref.type @Index { @Code Book reference type } +@ID @OneRow @Code { +"{ @Reference" +" @Tag { homer.odyssey }" +" @Type { Book }" +" @Author { Homer }" +" @Title { The Odyssey }" +" @TitleNote { Translated by E. V. Rieu }" +" @Pinpoint { Chapter VI }" +" @Pages { 102--111 }" +" @Page { 102 }" +" @Publisher { Penguin Books }" +" @Address { Harmondsworth, Middlesex }" +" @Edition { Penguin Classics Edition }" +" @Month { August }" +" @Year { 1942 }" +" @Note { The date of composition is unknown," +"but is thought to be about the tenth century BC. }" +"}" +} +And here is what it produces: +@ID @RefPrint homer.odyssey +The only compulsory options are {@Code "@Tag"}, {@Code "@Type"}, and +{@Code "@Title"}, and Lout will carefully adjust the formatting to the +right thing when you omit others. A basic book would have just +{@Code "@Tag"}, {@Code "@Type"}, {@Code "@Author"}, {@Code "@Title"}, +{@Code "@Publisher"}, and {@Code "@Year"} options. +@PP +@Code Proceedings is similar, except you +proceedings.ref.type @Index { @Code Proceedings reference type } +may have an @Code "@Organization" or @Code "@Institution" option for +the sponsoring organization if you wish, and the author will either be +absent or an editor: +@ID @Code "@Author { P. W. Lamb, editor }" +There is no option specifically for editors, translators, and so forth. +@PP +@Code PhDThesis is very similar again, with @Code "@Institution" +phdthesis.ref.type @Index { @Code PhDThesis reference type } +instead of {@Code "@Publisher"}, and the phrase `Ph.D. thesis' +appearing by magic in the right spot. Like all words and phrases +introduced automatically by Lout, it will be translated into the current +language if this is not English. +@PP +Moving now to the second broad category, here is a typical {@Code TechReport}: +techreport.ref.type @Index { @Code TechReport reference type } +@ID @OneRow @Code { +"{ @Reference" +" @Tag { christofides1976tsp }" +" @Type { TechReport }" +" @Author { Christofides, N. }" +" @Title { Worst-case analysis of a new heuristic" +"for the travelling salesman problem }" +" @Number { 388 }" +" @Institution { Graduate School of Industrial" +"Administration, Carnegie-Mellon University }" +" @Address { Pittsburgh, PA }" +" @Year { 1976 }" +"}" +} +Here is the result: +@ID @RefPrint christofides1976tsp +The two novelties here are the @Code "@Number" option, which is the +number of the report, and the `Tech. Rep.' phrase. If you +need some other phrase instead, use the @Code "@TRType" option: +@ID @Code "@TRType { Programmer's Manual }" +or whatever. The phrase will be `Master's Thesis' in the +current language for type {@Code MastersThesis}, and absent in type +mastersthesis.ref.type @Index { @Code MastersThesis reference type } +misc.ref.type @Index { @Code Misc reference type } +{@Code Misc}. You may use the pinpointing options ({@Code "@Pinpoint"}, +{@Code "@Page"}, and {@Code "@Pages"}) and {@Code "@TitleNote"}, +{@Code "@Month"}, and {@Code "@Note"} in the same way as for books. +@PP +Journal articles are referenced by journal name, volume, number, and +page(s): +article.ref.type @Index { @Code Article reference type } +@ID @OneRow @Code { +"{ @Reference" +" @Tag { kingston1993lout.design }" +" @Type { Article }" +" @Author { Jeffrey H. Kingston }" +" @Title { The design and implementation of the" +"Lout document formatting language }" +" @Journal { Software---Practice and Experience }" +" @Volume { 23 }" +" @Pages { 1001--1041 }" +" @Year { 1993 }" +"}" +} +The result of this is +@ID @RefPrint kingston1993lout.design +All are optional, as usual. Notice that @Code "@Pages" and @Code "@Page" +refer to the whole article so are not available for pinpointing here, +but you may still use {@Code "@Pinpoint"}. +@PP +Finally, small works that appear within large works have @Code "@Author" +inbook.ref.type @Index { @Code InBook reference type } +and @Code "@Title" options for the work itself, and @Code "@InAuthor" and +@Code "@InTitle" for the work that it appears within: +@ID @OneRow @Code { +"{ @Reference" +" @Tag { rieu1942intro }" +" @Type { InBook }" +" @Author { E. V. Rieu }" +" @Title { Introduction to @I { The Odyssey } }" +" @InAuthor { Homer }" +" @InTitle { The Odyssey }" +" @Publisher { Penguin }" +" @Year { 1942 }" +"}" +} +@Code "@InAuthor" would often be absent or an editor. The result is +@ID @RefPrint rieu1942intro +The other options are as for large works. Type @Code InProceedings is +inproceedings.ref.type @Index { @Code InProceedings reference type } +similar to {@Code InBook}. +@PP +A database usually has a long life, and some day it might find itself +used in a document whose language is not the one its original compiler +had in mind. For this reason, a truly meticulous compiler of database +entries would enclose @I all language-specific options in +@Code "@Language" symbols: +@ID @OneRow @Code { +"{ @Reference" +" @Tag { zimand1986size.sets.strings }" +" @Type { Article }" +" @Author { French @Language { M. Zimand } }" +" @Title { English @Language { On the topological size of sets of random strings } }" +" @Journal { German @Language { Zeitschr. f. math. Logik und Grundlagen d. Math. } }" +" @Volume { 32 }" +" @Pages { 81--88 }" +" @Year { 1986 }" +"}" +} +(My apologies to M. Zimand if he or she is not French.) This ensures +correct hyphenation whatever the language of the document in which the +reference appears. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ref_labe b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ref_labe new file mode 100755 index 0000000000000..1b8cc546db087 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ref_labe @@ -0,0 +1,65 @@ +@Section + @Title { Labelled (as opposed to numbered) references } + @RunningTitle { Labelled references } + @Tag { labelled } +@Begin +@PP +Lout ordinarily assigns a number to each reference, and prints this +labelled.refs @Index { labelled references } +number beside the reference in the reference list and at the point(s) +of citation. There is a way to make Lout use a label of your choice +instead of a number for each reference. First change the following +setup file options to the values shown (these options are explained +in Section {@NumberOf changeref}): +@ID @OneRow @Code { +"@RefCiteLabels { @Label }" +"@RefListLabels { @Label. }" +"@RefListLabelWidth { 4.00f }" +"@RefListSortKey { @Label }" +} +Then make sure that every reference you cite has a {@Code "@Label"} option: +@ID @OneRow @Code { +"{ @Reference" +" @Tag { kingston1995lout.expert }" +" @Type { TechReport }" +" @Label { Kin94 }" +" ..." +"}" +} +@Code "@Label" may contain several words, and even font changes, but not +an arbitrary object. +@PP +The effect of these changes is that your references will now be labelled +with their @Code "@Label" options instead of with numbers, and they will +be sorted by label instead of by tag. However, tags are still used when +citing. +@PP +The big problem with labels is that they vary from document to +document, either because of a change of style or because the usual +first few letters of the authors' names plus year has to be augmented +with {@Code a}, {@Code b}, {@Code c} etc. to distinguish publications +by the same authors in the same year. To help you overcome these +problems, the @Code "$" symbol has a @Code "label" option: +@ID @Code { +"@Cite { $ label { Kin94a } kingston1995lout.expert, ... }" +} +The @Code "@Ref" and @Code "@ChapRef" symbols also have a @Code label +option. If you use this option, it will be used to label the reference +instead of the @Code "@Label" option from the @Code "@Reference" symbol +(indeed, the @Code "@Reference" symbol need have no @Code "@Label" option +in this case). But note that using @Code "label" does not itself give +you labelled references; you get them with the setup file options as +explained above. +@PP +If your labels turn out to be too wide for the space allowed for them +in the reference list, you have two alternatives. One is to increase +the @Code "@RefListLabelWidth" setup file option shown above, since it +determines this space. The other is to change the @Code "@RefListFormat" +setup file option to {@Code "DropLabels"}, which produces drop items: +@ID @OneRow { +@RawTaggedList +@DTI { Kin94a. } @RefPrint kingston1995lout.expert +@RawEndList +} +Then it won't matter how wide your labels are. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ref_sett b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ref_sett new file mode 100755 index 0000000000000..283cb11633674 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/ref_sett @@ -0,0 +1,95 @@ +@Section + @Title { Setting up a bibliographic database } + @Tag { databases } +@Begin +@PP +The basic idea is to store your references in a separate +database.file @Index { database file } +@I { database file }, in a form which does not include formatting +details such as font changes. This makes it easy to use the same +references in many documents, and it leaves the formatting to Lout. Here +is an example of a reference as it would appear in a database file: +@ID @OneRow @Code { +"{ @Reference" +" @Tag { vanleunen1992 }" +" @Type { Book }" +" @Author { Mary-Claire van Leunen }" +" @Title { A Handbook for Scholars }" +" @Publisher { Oxford }" +" @Edition { Revised Edition }" +" @Year { 1992 }" +"}" +} +reference. @Index @Code "@Reference" +@Code "@Reference" is a symbol, and {@Code "@Tag"}, {@Code "@Type"}, +{@Code "@Author"}, and so on are its options. The database file as +a whole consists of a sequence of references, each enclosed in braces +as shown. +@PP +The @Code "@Tag" option is compulsory: since you cite a reference by +giving its tag, there must be one. The @Code "@Type" option is also +type. @Index { @Code "@Type" option } +compulsory, since it says whether the reference is to a book, a journal +article, or whatever, and this determines what other options are +required. Section {@NumberOf entries} describes all the types provided +by Lout, and Section {@NumberOf refstyles} explains how to add your own. +@PP +Lout database file names must end in {@Code ".ld"}, so now suppose that +you have made one called +ld.file @Index { @Code ".ld" file } +refs.ld.file @Index { @Code "refs.ld" file } +@Code "refs.ld" and put it in the same directory as your document. Next, +place +@ID @Code "@Database @Reference { refs }" +database. @Index @Code "@Database" +at the start of your document, just before {@Code "@Doc"}, +{@Code "@Document"}, {@Code "@Report"}, or whatever. Alternatively, +you may place it at the end of your setup file. It informs Lout that +you might be referring to @Code "@Reference" symbols in database +@Code "refs" (that is, in file {@Code "refs.ld"}). +@PP +If you want to maintain a central database, used by many documents, you +won't want it in the same directory as any one of them. A Unix +pathname will be more appropriate: +@ID @Code "@Database @Reference { \"/usr/jeff/lib/refs\" }" +or whatever. Quotes are needed because of the @Code "/" characters. +@PP +With the database file created and the @Code "@Database" line in place, +you are ready to start citing references. The first time that the +database.index.file @Index { database index file } +index.file @Index { index file } +database is used, Lout will create an @I { index file } whose purpose +is to speed up the retrieval of your references. Thanks to this file +you can have hundreds or even thousands of references in your database, +without slowing Lout down very much. However, whenever you change your +database file @I { you must remove its corresponding index file }, so +that Lout knows to create it afresh. +@FootNote { +Depending on how it was installed on your system, Lout may be able to +use the time of last modification of the database file and its index +file to determine automatically whether the index file needs to be +created afresh, thus saving you the trouble of removing it. You can +find out whether this is true of your system by typing the command +{@Code "lout -V"}. +} + The index file is stored in the +same directory as the database file, and it has the same name except +that it ends in @Code ".li" rather than @Code ".ld" (e.g. +li.file @Index { @Code ".li" file } +{@Code "refs.li"}). +@PP +If a separate database file is not convenient for some reason, perhaps +because you need a self-contained document in a single file, the +@Code "@Reference" symbols may be incorporated into the document +itself, anywhere that ordinary text may appear. Nothing will appear +where they are typed in, but Lout will notice them and treat them as if +they had come from a database file. In this case no @Code "@Database" +symbol is needed unless you are referring to a database as well. +@PP +You may have multiple databases, like this: +@ID @OneRow @Code { +"@Database @Reference { myrefs }" +"@Database @Reference { \"/usr/pub/refs/theoryrefs\" }" +} +Lout will search the databases in the order you list them. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str new file mode 100755 index 0000000000000..0312dfb2f88de --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str @@ -0,0 +1,19 @@ +@Chapter + @Title { Adding Structure to Documents } + @Tag { structure } +@Begin +@BeginSections +@Include { str_disp } +@Include { str_list } +@Include { str_foot } +@Include { str_marg } +@Include { str_theo } +@Include { str_figs } +@Include { str_larg } +@Include { str_cros } +@Include { str_cont } +@Include { str_indx } +@Include { str_colu } +@Include { str_defs } +@EndSections +@End @Chapter diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_colu b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_colu new file mode 100755 index 0000000000000..b54a40400e70a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_colu @@ -0,0 +1,40 @@ +@Section + @Title { Multiple columns } + @Tag { columns } +@Begin +@PP +You can change the number of columns of text per page, and the width of +columns. @Index columns +multiple.columns @Index { multiple columns } +the gap between the columns, by changing these two setup file options: +columnnumber. @Index @Code "@ColumnNumber" +columngap. @Index @Code "@ColumnGap" +@ID @OneRow @Code { +"@ColumnNumber { 1 }" +"@ColumnGap { 1.00c }" +} +If you are using your own setup file (Section {@NumberOf setup}), you can +find and change them there. If not, @Code "@ColumnNumber" may be changed +at the beginning of your document (Section {@NumberOf ordinary}). +@PP +@Code "@ColumnNumber" may be any number between 1 and 10, with default +value 1 as shown, and @Code "@ColumnGap" may be any length (Section +{@NumberOf objects}). The column width is derived from these options +column.width @RawIndex { column width } +column.width.pages @SubIndex { on pages } +using the obvious formula +@ID @Eq { columnwidth = { pagewidth - margins - +({@Code "@ColumnNumber"} - 1) times {@Code "@ColumnGap"} } +over @Code "@ColumnNumber" +} +You must ensure that this comes to something reasonable. +@PP +These two options do not apply to pages containing an index. For them +there are similar setup file options called @Code "@IndexColumnNumber" +and @Code "@IndexColumnGap" (Section {@NumberOf indexes}). +@PP +Most document types permit you to have multiple columns, but certain +things will be kept full width regardless of the @Code "@ColumnNumber" +option: figures and tables, chapter headings, and so on. The details +vary with the document type, so are deferred to Chapter {@NumberOf types}. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_cont b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_cont new file mode 100755 index 0000000000000..148447ee84e94 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_cont @@ -0,0 +1,83 @@ +@Section + @Title { Tables of contents } + @Tag { contents } +@Begin +@PP +Lout takes note of the titles of all your large-scale structure symbols +contents. @Index { contents, tables of } +tables.of.contents. @Index { tables of contents } +(Section {@NumberOf largescale}) and what pages they begin on, and it +uses this information to produce a table of contents like the one at +the start of the present document. It is totally automatic; you do +nothing. +@PP +Some details of the appearance of the table of contents, including +whether to make one or not, are controlled by options in the setup +file. The default setting is to make one in books but not to in +other types of documents, but by changing the setup file you can have +a table of contents in any type of document. +@PP +Section @NumberOf setup describes setup files in general and how to +change the options within them. The options relevant to tables of +contents and their default values are: +@ID @OneRow @Code { +"@MakeContents { No }" +"@ContentsGap { 0.20v }" +"@ContentsGapAbove { 0.80v }" +"@ContentsGapBelow { 0.00v }" +"@ContentsLeader { .. }" +"@ContentsLeaderGap { 4s }" +"@ContentsRightWidth { 3f }" +} +The @Code "@MakeContents" option may be @Code Yes or {@Code No}, and +makecontents. @Index @Code "@MakeContents" +determines whether a table of contents is made or not. Its default +value is @Code No but it is set to @Code Yes in the @Code book setup +file. +@PP +@Code "@ContentsGap" determines how much vertical space to leave +contentsgap. @Index @Code "@ContentsGap" +above each line of the table of contents, in addition to the usual +single line spacing; its value may be any length (Section +{@NumberOf objects}). The default value, {@Code "0.20v"}, is twenty +percent of the current inter-line spacing. +@PP +Some entries, such as those for chapters and appendices in books, are +more important than others. @Code "@ContentsGap" does not apply to these +entries; instead, @Code "@ContentsGapAbove" and @Code "@ContentsGapBelow" +contentsgapabove. @Index @Code "@ContentsGapAbove" +contentsgapbelow. @Index @Code "@ContentsGapBelow" +are used above and below each of them, again in addition to the usual +single line spacing. +@PP +@Code "@ContentsLeader" is the object which is repeated across the page +contentsleader. @Index @Code "@ContentsLeader" +to connect each entry with its page number; popular values are @Code ".." +and @Code "." and the empty object. @Code "@ContentsLeaderGap" determines +contentsleadergap. @Index @Code "@ContentsLeaderGap" +how far apart these objects are; the default value, {@Code "4s"}, is +four times the width of a space character. @Code "@ContentsLeaderGap" +may be {@Code "0s"}, but only if @Code "@ContentsLeader" is non-empty. +@PP +@Code "@ContentsRightWidth" reserves some +contentsrightwidth. @Index @Code "@ContentsRightWidth" +space at the far right for page numbers. Any entry wide enough to +intrude into this space is broken into two or more lines to keep it +clear. +@PP +In addition to these options, each document type has options that +determine which large-scale structure symbols will be listed in the +table of contents. For example, among the options to the +@Code "@BookSetup" symbol in the @Code book setup file are these: +@ID @OneRow @Code { +"@ChapterInContents { Yes }" +"@SectionInContents { Yes }" +"@SubSectionInContents { Yes }" +"@SubSubSectionInContents { No }" +"@AppendixInContents { Yes }" +"@SubAppendixInContents { Yes }" +"@SubSubAppendixInContents { No }" +} +Each may be either {@Code "Yes"} or {@Code "No"}; these default values +produce entries for everything except sub-subsections and sub-subappendices. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_cros b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_cros new file mode 100755 index 0000000000000..4bb391dd92af5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_cros @@ -0,0 +1,179 @@ +@Section + @Title { Cross references and links } + @Tag { cross } +@Begin +@PP +Cross references are a useful feature of documents, but they are a +cross.ref @Index { cross references } +problem for authors. Suppose that at one point of your document +you have +@ID @OneRow @Code { +"We hold these truths to be self-evident, that all men are created equal," +"that they are endowed by their Creator with certain inalienable Rights," +"that among these are Life, Liberty, and the pursuit of Happiness..." +} +and that at some other point, earlier or later, you have +@ID @OneRow @Code { +"The anti-slavery cause, founded as it was on the Declaration" +"of Independence (page 181), could appeal to patriotic as" +"well as moral sentiments..." +} +This is a @I { cross reference }, and the problem is that as the document +is revised, the Declaration of Independence might move to page 185, and +the cross reference must be found and changed. +@PP +Lout has a simple solution to this problem. Instead of writing the +pageof. @Index @Code "@PageOf" +page number, write +@ID @OneRow @Code { +"The anti-slavery cause, founded as it was on the Declaration" +"of Independence (page @PageOf { decl.of.ind }), could appeal to" +"patriotic as well as moral sentiments..." +} +instead, and at the point referred to, write +pagemark. @Index @Code "@PageMark" +@ID @OneRow @Code { +"We @PageMark decl.of.ind hold these truths to be self-evident, that..." +} +Inserting @Code "@PageMark decl.of.ind" will not affect the result, +but Lout makes a note of the number of the page on which the word +preceding it appears, and inserts that number in place of +{@Code "@PageOf decl.of.ind"}. The tag, {@Code "decl.of.ind"}, may be +tag. @Index { tag } +any simple word (actually Lout will accept a multi-word tag, but they +are very inconvenient and better avoided). The braces are there, as +usual, to control grouping: we don't want the following punctuation +characters in the tag. +@PP +One tag called @Code "last.page" is created automatically +"last.page.tag" @Index { @Code "last.page" tag } +for you. @Code "@PageOf last.page" gives the number of the last page +of the document. For example, the result for this document is +{@PageOf last.page}. +@PP +Cross referencing also applies to large-scale structure symbols such as +@Code "@Chapter" and @Code "@Section" (any symbol with a @Code "@Title" +option), as well as @Code { "@FootNote" }, @Code { "@EndNote" }, +@Code { "@Figure" }, @Code { "@Table" }, the numbered display +symbols, and @Code "@ListItem" and @Code "@DropListItem" (but not +@Code "@TagItem" and {@Code "@DropTagItem"}). Each of these symbols +has a @Code "@Tag" option: +tag.sym @Index @Code "@Tag" +@ID @OneRow @Code { +"@Section" +" @Title { Cross references }" +" @Tag { cross }" +"@Begin" +"@PP" +"Cross references are a useful ..." +} +Now you can use the @Code "@PageOf" symbol to find the +number of the page on which the symbol's result begins, and the +@Code "@NumberOf" symbol to find its number: +numberof. @Index @Code "@NumberOf" +@ID @OneRow @Code { +"For further information on this point, please consult" +"Section @NumberOf cross (page @PageOf { cross })." +} +produces +@QD { +For further information on this point, please consult +Section @NumberOf cross (page @PageOf { cross }). +} +Like all tags, the value of the @Code "@Tag" option should be a simple +word (although Lout does accept multi-word tags). Cross referencing of +list items yields just the number of the item, in Arabic, Roman, or +whatever; it does not include the surrounding parentheses or other +decorations introducted by the list's @Code "style" option. +@PP +To work cross references out, Lout has to process your document more +multiple.runs @Index { multiple runs, why needed } +than once, storing information between runs in special files it +creates whose names end in @Code ".li" and {@Code ".ld"}. A complex +document like this Guide requires five runs, but since every run +produces a perfectly good PostScript file suitable for proof reading, +in fact you need two runs to start with and one run per cycle of +revision thereafter, only one more than would have been necessary +in any case. +@PP +The cross referencing system assumes that each Unix directory contains +directories @Index { directories, Lout files and } +only one Lout document (possibly spread over many files). If you keep +several documents in one directory you can turn off the cross referencing +with the @Code "-s" flag: +@ID @Code "lout -s simple > simple.ps" +Since this will cause question marks to replace footnote and section +numbers, and other products of cross referencing, it is only feasible +for simple documents. Alternatively, you can reset cross referencing +when switching from one document to another, by removing file +lout.li @Index { @Code lout.li file } +{@Code "lout.li"}. You should also remove this file if your document +changes radically -- from a report to a book, say. +@PP +PDF viewers and recent versions of PostScript viewers offer a high-tech +version of cross references called {@I links}, which allow the user to +click on, say, the entry for a section in a table of contents and be +immediately transported to the page on which that section begins. In +principle, anything could happen when a link is clicked on, but Lout +only offers the kind of link that transports the user to some page +in the current document. +@PP +Lout automatically makes a link out of every page number it prints +in the table of contents and in the index, and every reference +citation. You can also insert your own links, using the +@Code "@CrossLink" symbol like this: +@ID @Code "See cross @CrossLink { Section @NumberOf cross }" +The @Code "@CrossLink" symbol consumes two objects, one to its left and the +other to its right, and we'll explain each of these now. +@PP +The object on the right (@Code "Section @NumberOf cross" in our +example) can be an arbitrary Lout object: you don't have to have +@Code "@NumberOf" or @Code "@PageOf" inside it, although in practice +you often will, since it makes sense to put a low-tech link wherever +you have a high-tech one, for the benefit of readers of paper +versions. This object on the right is what is printed, so the +overall result in this example is +@ID { See cross @CrossLink { Section @NumberOf cross } } +But, beyond this, clicking anywhere on this object on the screen will +invoke the link, transporting the user to some other page. +@PP +The object on the left (@Code cross in our example) must be a tag +that is acceptable to the @Code "@PageOf" symbol described earlier +in this section. The link will transport the user who clicks on +it to the page that @Code "@PageOf" would point to if given that +tag. You can ensure that your tag is acceptable in the usual +ways: by using {@Code "@PageMark"}, or by giving the tag as the +@Code "@Tag" option of a chapter, section, etc. as described earlier +in this section. +@PP +A moment ago we said that the object to the right of @Code "@CrossLink" +is what is printed by the @Code "@CrossLink" symbol. This is true by +default, but there is a @Code "@CrossLinkFormat" option in the setup +files which allows you to change the appearance of this printed +object. (See Section {@NumberOf setup} for a general description +of setup files and their options.) The default value of +@Code "@CrossLinkFormat" is +@ID @Code "@CrossLinkFormat { @Body }" +Within the @Code "@CrossLinkFormat" option, the @Code "@Body" symbol +stands for the object to the right of {@Code "@CrossLink"}. It is +actually the value of @Code "@CrossLinkFormat" that is printed, so, +for example, changing it to +@ID @Code "@CrossLinkFormat { blue @Colour @Underline @Body }" +causes all link objects to be printed in blue and underlined. If +you want a special format just for one link, there is a @Code "@Format" +option to @Code "@CrossLink" that overrides {@Code "@CrossLinkFormat"}: +@ID @Code "cross @CrossLink @Format { @CurveBox @Body } { Section @NumberOf cross }" +You can also give the formatting you want directly, since the object +to the right of @Code "@CrossLink" can be an arbitrary Lout object: +@ID @Code "cross @CrossLink @CurveBox { Section @NumberOf cross }" +However, in this form the @Code "@CrossLinkFormat" setup file option +is still applied. +@PP +At present, the @Code "@CrossLink" symbol behaves as though a @Code "@OneCol" +symbol encloses the object on its right. This means that that object +is kept together on one line of any enclosing paragraph, and inter-word +spaces within it are not adjusted along with the inter-word spaces of +any enclosing paragraph. This deficiency might be corrected in the +future, but meanwhile it means that it is best to keep your objects +on the right short. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_defs b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_defs new file mode 100755 index 0000000000000..71bd71effc822 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_defs @@ -0,0 +1,134 @@ +@Section + @Title { Defining new symbols } + @Tag { definitions } +@Begin +@PP +Whenever you find yourself typing the same thing repeatedly, you can +definitions. @Index definitions +save a lot of time by defining your own personal symbol to stand for that +thing. For example, suppose you type your company's name, @Batlow, +frequently. You can define your own symbol, {@Code "@Batlow"} say, +so that +@ID @Code { +"Concerning your crate supply contract with @Batlow, @Batlow wishes to ..." +} +produces +@ID { +Concerning your crate supply contract with @Batlow, @Batlow wishes to ... +} +You will never have to type @Batlow again. +@PP +The method is to create a file called @Code "mydefs" in your current +mydefs.file @Index { @Code mydefs file } +directory, containing definitions like this: +@ID @OneRow @Code { +"import @BasicSetup" +"def @Batlow { Batlow Food Distributors Pty. Ltd. }" +} +The meaning of the first line, {@Code "import @BasicSetup"}, will +be explained shortly. After that comes @Code "def" for `define,' +then the name of the symbol being defined, then its value between +braces. So this example defines a symbol called @Code "@Batlow" to +stand for the object following it between braces. Lout will read this +file during its setup phase (Section {@NumberOf setup}). +@PP +Your symbols may have any names you wish made from letters and +{@Code "@"}. However, it is good practice to have exactly one +{@Code "@"}, at the start, and to choose distinctive names that +have no chance of being the same as the name of any existing +symbol. @Code "@Batlow" is a good choice, for example. +@PP +The object between braces is quite arbitrary; in particular, it may +contain symbols. For example, suppose you frequently need a small grey box: +@ID @OneRow @Code { +"import @BasicSetup" +"def @GreyBox { @Box paint { lightgrey } {} }" +} +This defines a @Code "@GreyBox" symbol that produces {@GreyBox}. Most +of the symbols in this guide are from the @I {BasicSetup package}, +import. @Index @Code import +which is why @Code "import @BasicSetup" is required: it makes +these symbols available to the definition, and can actually be omitted +before definitions like the one for @Code "@Batlow" which do not use +any symbols. However it does no harm, so we place it in front of every +definition as a matter of course. +@FootNote { +Later chapters of this guide introduce specialized symbols for producing +tables, equations, diagrams, graphs, and computer programs. You need a +different @Code "import" clause when using those symbols within a +definition, because they are not from the BasicSetup package. Examples +may be found in the chapters concerned. +} +@PP +Now suppose you frequently need a grey box, but enclosing different +things: @GreyBox ENTRY one moment, @GreyBox EXIT the next. You could +try omitting the @Code "{}" from the definition above, but that does +not work, because Lout notices the missing object while reading the +definition, and inserts an empty object in the usual way (Section +{@NumberOf empty}). +@PP +However, there is a way to define a @Code "@GreyBox" symbol so that +@Code "@GreyBox ENTRY" produces {@GreyBox ENTRY}, @Code "@GreyBox EXIT" +produces {@GreyBox EXIT}, and so on: +@ID @OneRow @Code { +"import @BasicSetup" +"def @GreyBox right x { @Box paint { lightgrey } x }" +} +The addition of @Code "right x" immediately after the symbol's name +places @Code "@GreyBox" into that class of symbols, like {@Code "@I"} +and @Code {"@Box"}, which consume and transform the object to their +right. The @Code "x" in @Code "right x" means that the object to the +right will be referred to as @Code "x" within the definition. So in +@ID @Code "@GreyBox { Hello world }" +@Code "@GreyBox" consumes the following object, which becomes +{@Code "x"}, so that the value is +@ID @Code "@Box paint { lightgrey } { Hello world }" +which produces @GreyBox { Hello world }. +@PP +It is a good principle to choose symbol names that refer to what the symbol +is for, rather than how it does what it does. Here is a good example: +@ID @OneRow @Code { +"import @BasicSetup" +"def @Poetry right x { lines @Break @I x }" +} +This kind of name is very pleasant to use, since it allows you to +forget about what is going on behind the scenes: +@ID @OneRow @Code { +"@IndentedDisplay @Poetry {" +"Teach me to hear Mermaides singing," +"Or to keep off envies stinging," +" And finde" +" What winde" +"Serves to'advance an honest minde." +"}" +} +Most of Lout's symbols follow this principle. +@PP +You can define symbols that consume the object to their left as well +as the object to their right, as the {@Code "@Font"}, {@Code "@Break"}, +and {@Code "@Colour"} symbols do: +@ID @OneRow @Code { +"import @BasicSetup" +"def @HeadingBox left x right y" +"{ @Box { @CentredDisplay @Heading x y }" +"}" +} +This definition occupies several lines only because it is long; as +usual, end of line is the same as one space. Now +@ID @OneRow @Code { +"Cheating @HeadingBox {" +"The Department uses assignments ... of that student alone." +"}" +} +is much easier to type than the equivalent example in Section +{@NumberOf boxes}. The result is the same: +@QD Cheating @HeadingBox { +The Department uses assignments both as a teaching device and as a +major component of its assessment of each student. It therefore +requires that all programs, exercises etc. handed in bearing an +individual student's name be the work of that student alone. +} +Do not use a paragraph, display, or list symbol at the beginning or end +of a definition, since the result is not what people who do it are +hoping for. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_disp b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_disp new file mode 100755 index 0000000000000..4634103db559f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_disp @@ -0,0 +1,94 @@ +@Section + @Title { Displays } + @Tag { displays } +@Begin +@PP +The @Code "@Display" symbol displays the following object in the centre +displays. @Index displays +display. @Index @Code "@Display" +of the page or column: +@ID @Code "@Display @I { Invitation to Afternoon Tea }" +has result +@Display @I { Invitation to Afternoon Tea } +Space is inserted automatically above and below the display; no +paragraph symbols are needed. +@PP +To make the display appear at the left margin instead of centred, use +leftdisplay. @Index @Code "@LeftDisplay" +{@Code "@LeftDisplay"} instead of {@Code "@Display"}. To make an indented +display, use {@Code "@IndentedDisplay"} or {@Code "@QuotedDisplay"}; +indenteddisplay. @Index @Code "@IndentedDisplay" +quoteddisplay. @Index @Code "@QuotedDisplay" +the latter indents at the right margin as well as at the left. There are +also @Code "@CentredDisplay" and @Code "@CenteredDisplay" symbols which +centreddisplay. @Index @Code "@CentredDisplay" +centereddisplay. @Index @Code "@CenteredDisplay" +centre the display just like {@Code "@Display"} does, and +rightdisplay. @Index @Code "@RightDisplay" +@Code "@RightDisplay" which right-justifies the display. +@PP +If you use displays frequently you might prefer abbreviated forms of +their names. These are made from @Code "@" and the capital letters of +d. @Index @Code "@D" +ld. @Index @Code "@LD" +id. @Index @Code "@ID" +qd. @Index @Code "@QD" +cd. @Index @Code "@CD" +the full name: {@Code "@D"}, {@Code "@LD"}, {@Code "@ID"}, {@Code "@QD"}, +and {@Code "@CD"}. Owing to a clash with the name of another symbol, +{@Code "@RightDisplay"} has no abbreviation. +@PP +Displays often need to be set using a different font, paragraph +breaking style, and so on to the surrounding text. It's best to set +out such displays like this: +@ID @OneRow @Code { +"@CentredDisplay @I clines @Break {" +"Invitation to Afternoon Tea" +"with" +"Mr. and Mrs. Gilbert Newington-Smith" +"}" +} +You can have as many of these symbols as you like, including specialized +ones like {@Code "@CurveBox"} and {@Code "@Tbl"}. The only rule is that +the display symbol must come first: @Code "@I @Display ..." is wrong. +@PP +It's not a good idea to have one display immediately followed by +another one, because there will be too much vertical space between +them. Use a list instead (Section {@NumberOf lists}). Displays +at the ends of paragraphs look awkward and are best avoided. +@PP +A display may come out partly on one page or column and partly on +the next, if it has places where it obviously can be broken in two. For +example, a display which is an ordinary paragraph of text might be +broken in two between any two lines. To force a display to keep +together on one page or column, use the @Code "@OneRow" symbol like +this: @Code "@Display @OneRow { ... }". +@PP +Other display symbols produce aligned and numbered displays, and raw +displays (i.e. without vertical space). Although these can display any +object as usual, in practice they are used for mathematics, so they are +described in Section {@NumberOf mathdisplays}. +@PP +Three setup file options control the appearance of displays. (For a +general introduction to setup files and their options, consult +Section {@NumberOf setup}.) Here they are with their default values: +@ID @OneRow @Code { +"@DisplayGap { 1.00v }" +"@DefaultIndent { 0.5rt }" +"@DisplayIndent { 2.00f }" +} +@Code "@DisplayGap" is the amount of vertical space inserted before and +display.gap. @Index @Code "@DisplayGap" +after displays, and may be any length (Section {@NumberOf objects}). The +default value, @Code {"1.00v"}, is equal to the current inter-line spacing. +@PP +@Code "@DefaultIndent" is the indent produced by +default.indent @Index @Code "@DefaultIndent" +{@Code "@Display"}; {@Code "0.5rt"} produces centring, although why it does +so is beyond our scope +@Cite { $kingston1995lout.expert }. @Code "@DisplayIndent" is the +display.indent. @Index @Code "@DisplayIndent" +indent for {@Code "@IndentedDisplay"}, and used at both margins by +{@Code "@QuotedDisplay"}. Its default value, {@Code "2.00f"}, is twice +the current font size. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_figs b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_figs new file mode 100755 index 0000000000000..154e3559855be --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_figs @@ -0,0 +1,288 @@ +@Section + @Title { Figures and tables } + @Tag { figures } +@Begin +@PP +Figures are created in a similar way to footnotes: +figures. @Index { figures } +@ID @OneRow @Code { +"@Figure" +" @Caption { Basser Lout }" +"@Diag vstrut { yes } treehsep { 1c } {" +" @HTree { @Box Lout @FirstSub arrow { yes } @Box PostScript }" +"}" +} +The @Code "@Figure" symbol places the following object (which in this example is +figure. @Index @Code "@Figure" +created using the advanced graphics features of Chapter {@NumberOf diagrams}) +at the top of the following column or page, +@Figure + @Tag { figex } + @Caption { Basser Lout } +@Diag vstrut { yes } treehsep { 1c } { + @HTree { @Box Lout @FirstSub arrow { yes } @Box PostScript } +} +labelled by the @Code "@Caption" option and automatically numbered. You +captions. @RawIndex { captions } +captions.figures @SubIndex { in @Code "@Figure" and @Code "@Table" } +can see this example at the top of page {@PageOf figex}. Tables are +table. @Index @Code "@Table" +obtained in the same way using {@Code "@Table"} instead of {@Code "@Figure"}. +@PP +@Code "@Figure" and @Code "@Table" each have an @Code "@InitialLanguage" +option which determines the language of the figure or table. If this is +omitted, the language of the document as a whole will be used, not the +language where the figure or table occurs. +@PP +The two symbols also have a @Code "@CaptionPos" option, which determines +whether the caption appears above or below the figure or table. The +default is {@Code "Below"}, the alternative is {@Code "Above"}. +@PP +The question of what is a suitable running header to print on pages +containing figures and tables (possibly from different sections) is a +rather awkward one. On any page with a figure or table at the top, Lout +uses whatever running header was appropriate for the text on the previous +page. In practice it seems to work quite well. +@PP +If your document contains many figures, large figures, or multi-page +figures, you are likely to encounter cases where Lout's assignment of +figures to pages is not pleasing. In that case, you can improve things +by moving the figures around within the body text, and by using the +@Code "@Location" option of the @Code "@Figure" symbol, which determines +location. @Index @Code "@Location" +where the figure will appear. Its possible values are +@DP @Tab + @Fmta { @Col @Code A ! @Col B } +{ +@FirstRowa + A { PageTop } + B { The figure will appear at the top of the following page, occupying +the full page width; or, if there is insufficient space there (owing to other +figures already present), at the top of the first subsequent page with +sufficient space. } +@Rowa + A { EvenPageTop } + B { Like @Code PageTop except that the first page of the figure +or table will be an even-numbered (left-hand or verso) page -- useful +for double-pace spreads. } +@Rowa + A { FullPage } + B { Like {@Code PageTop} except that nothing else will appear on the +same page as the figure except the usual running headers and footers, and +possibly other @Code FullPage figures and tables. +@FootNote { This location replaces the @Code "@FullPage" option of +earlier versions of Lout, which has been withdrawn. } +} +@Rowa + A { EvenFullPage } + B { Like {@Code FullPage} except that the first page of the figure +or table will be an even-numbered (left-hand or verso) page, like +{@Code EvenPageTop}. +} +@Rowa + A { PageFoot } + B { The figure will appear at the foot of the current page, occupying +the full page width; or, if there is insufficient space there, at the top +of the following page and so on as for {@Code PageTop}. } +@Rowa + A { ColTop } + B { The figure will appear at the top of the following column, +occupying the column width; or, if there is insufficient space there, +at the top of the first subsequent column with sufficient space. This +is different from @Code PageTop only in multi-column documents. } +@Rowa + A { ColFoot } + B { The figure will appear at the foot of the current column, +occupying the column width; or, if there is insufficient space there, at +the top of the following column as for {@Code ColTop}. This differs +from @Code PageFoot only in multi-column documents. } +@Rowa + A { ColEnd } + B { The figure will appear in a column at the end of the document +(or chapter, appendix etc. in the case of books). There is no +@Code PageEnd value corresponding to {@Code ColEnd}. } +@Rowa + A { AfterLine } + B { The figure will appear as a column-width display immediately after +the line in the final printed document in which it occurs. } +@Rowa + A { TryAfterLine } + B { The same as @Code {AfterLine} unless there is insufficient space +in the current column to hold the displayed figure, in which case it +switches to @Code {ColTop} instead. } +@Rowa + A { Display } + B { The figure will appear as a display at the point it occurs. There +is no @Code TryDisplay value corresponding to {@Code Display}. } +@Rowa + A { Raw } + B { The figure will appear as an object, with no extra spacing, at +the point it occurs. This is useful, for example, for getting two figures +side by side in one display: use a displayed table containing two raw +figures. } +} +@DP +The @Code "@Table" symbol also has this option. The default location is +{@Code "PageTop"}, but this can be changed by changing the +figurelocation. @Index @Code "@FigureLocation" +tablelocation. @Index @Code "@TableLocation" +@Code "@FigureLocation" and @Code "@TableLocation" setup file options. +@PP +The numbers assigned to figures and tables, and their ordering in any list +of figures or tables, is based on where they appear in the final printed +document, not on where they appear in the source files. This is better for +the reader in the unusual case of a fixed figure being overtaken by a +floating one. If a section number is printed as part of a figure number, +and the figure floats forward from one section into another, the figure +number will reflect the later section, not the earlier one as it should. +You can fix this problem by moving the figure to an earlier point in +the section, or by not having section numbers in figures (see below). +@PP +@Code "@Figure" and @Code "@Table" each have a @Code "@OnePage" option, +whose value may be @Code "Yes" or {@Code No}. Setting @Code "@OnePage" +to @Code Yes causes the figure or table and its caption to be kept +together on one page or column (enclosing the body of the figure or table +in @Code "@OneRow" would have the same effect except that it would not +incorporate the caption, hence the need for this option). You need to be +certain that the whole assembly will fit on one page when setting +@Code "@OnePage" to {@Code "Yes"}. If it doesn't, Lout should warn you +with a message such as +@ID @Code "25.3c object too high for 23.4c space; will try elsewhere" +giving the size of the oversize object and the size of the space it +failed to fit into; but (unfortunately) it does not given a clear +indication of whether trying elsewhere succeeded or not. When you +see this message you need to check for yourself whether the figure was +actually printed or not; it may mean merely that the figure was put +back to a later page than the first possible one. +@PP +The @I default value of the @Code "@OnePage" option for each figure or +table depends on the value of its @Code "@Location" option as follows: +@ID @Tab + @Fmta { @Col @Code A ! @Col ! @Col @Code B } +{ +@Rowa + A { No } + B { PageTop ColTop ColEnd Raw } +@Rowa + A { Yes } + B { PageFoot ColFoot Display AfterLine TryAfterLine } +} +These choices represent a guess that figures that the user is happy to +see at the page foot or in a display are probably going to be small enough +to keep on one page, but that other figures may not be. In any case, these +are only default values and you may set @Code "@OnePage" as you wish. +@PP +By default, the body of the figure will be centred, and this usually looks +best, at least for small figures. @Code "@Figure" and @Code "@Table" each +have a @Code "@Format" option which controls this format: +@ID @Code { +"@Figure" +" @Format { @CurveBox @HExpand @CC @Body }" +} +Within the @Code "@Format" option, the @Code "@Body" symbol stands for the +body of the figure or table; it must appear exactly once. Display symbols +such as @Code "@CentredDisplay" may not be applied to the {@Code "@Body"} +symbol; instead, there are {@Code "@II"}, {@Code "@QQ"}, {@Code "@CC"}, and +{@Code "@RR"}, which indent, quote, centre, or right-justify the following +object. The example just given centres the figure inside a @Code "@CurveBox" +which is horizontally expanded (by the @Code "@HExpand" symbol, which is not +specific to figures) to occupy the full width of the page or column, rather +than fitting snugly around the figure. +@PP +Although @Code "@CC" will always centre the figure or table, occasionally +it underestimates the amount of space available to centre in, and hence +the figure or table appears only partly centred, or even left +justified. This occurs when nothing on the page extends the full +width of the page. If this problem occurs, use +@ID @Code "@Format { @HExpand @CC @Body }" +The @Code "@HExpand" symbol expands the space available to the following +object to the maximum possible amount, so that the centring is with respect +to the full available width as desired. +@PP +The @Code "@Format" option applies to just the body of the figure, not to +its caption. It applies to each page or column of a multi-page or +multi-column figure; for example, the above format will draw a box around +each page of a multi-page figure, and each page will be separately centred. +@Code "ColEnd" and @Code "Raw" figures are exceptions to this rule: they +always apply the format to the figure as a whole. This means that you cannot +box multi-page figures of these two types, since the result would be an +unbreakable object too large to fit on one page. +@PP +There are setup file options for controlling the appearance of figures and +tables. Only those for figures will be given here, since the ones for tables +are identical except that @Code Table replaces @Code Figure in their +names. Here they all are: +@FootNote { These are as of Version 3.15 and above. Prior to that +there were {@Code "@CaptionFont"}, {@Code "@CaptionBreak"}, and +{@Code "@CaptionFormat"} options, and {@Code "@CaptionFormat"} +took values that did not include the @Code "caption" symbol. } +@ID @OneCol @Code { +"@FigureLocation { PageTop }" +"@FigureFormat { @CC @Body }" +"@FigureWord { figure }" +"@FigureNumbers { Arabic }" +"@FigureCaptionPos { Below }" +"@FigureCaptionFont { }" +"@FigureCaptionBreak { }" +"@FigureCaptionFormat { @B { word @NumSep number. &2s } @Insert caption }" +"@MakeFigureContents { No }" +"@FigureListWord { figurelist }" +} +@Code "@FigureLocation" is the default value of the @Code "@Location" +option of figures. Changing it, for example to +{@Code "FullPage"}, changes the location of all figures at +once. You may still override this location for any individual figure, +however, by giving that figure a @Code "@Location" option. In a similar way, +figureformat. @Index @Code "@FigureFormat" +tableformat. @Index @Code "@TableFormat" +@Code "@FigureFormat" is the default value of the @Code "@Format" +option (this shows why figures are centred by default) and +figurecaptionpos. @Index @Code "@FigureCaptionPos" +tablecaptionpos. @Index @Code "@TableCaptionPos" +@Code "@FigureCaptionPos" is the default value of {@Code "@CaptionPos"}. +@PP +@Code "@FigureWord" determines the word that is part of the figure +number. The default value, {@Code figure}, produces `Figure' or its +equivalent in the current language; any other value produces itself. +@PP +@Code "@FigureNumbers" +figurenumbers. @Index @Code "@FigureNumbers" +tablenumbers. @Index @Code "@TableNumbers" +determines whether figures are +numbered automatically or not; the choices are +{@Code "None"}, {@Code "Arabic"}, {@Code "Roman"}, {@Code "UCRoman"}, +{@Code "Alpha"}, and {@Code "UCAlpha"}. Depending on the document +type and where the figure or table occurs, the number might include +a chapter number as well. This is determined by options in the +setup file for your document type; for example, +@ID @Code "@SectionNumInFigures { No }" +appears in the @Code "report" setup file, and means that a section +number will not appear in the figure number (unless you change the +option to {@Code Yes}). +@PP +@Code "@FigureCaptionFont" and @Code "@FigureCaptionBreak" determine the +font and paragraph breaking style used in the captions of figures. Their +default values are empty, meaning to use the initial font and break styles; +but, for example, you could have +@ID @Code "@FigureCaptionFont { -2p }" +in your setup file to get a smaller font size in your captions. +@PP +The @Code "@FigureCaptionFormat" option determines the format of the +caption. Within it, the symbol @Code word stands for the `Figure' +word as defined by {@Code "@FigureWord"}); the @Code number +symbol stands for the number of the figure; and @Code caption stands +for the body of the caption. The default value shown above prints +the word and number and a period in bold, inserted together with a +gap of two spaces into the first paragraph of the caption. If you +don't use the @Code "@Insert" symbol you'll run into problems with +multi-paragraph captions. +@PP +You can get a list of figures at the start of your document by setting +the @Code "@MakeFigureContents" setup file option to {@Code Yes}. The +format of these lists will follow the format of tables of contents. These +lists are only available in books (Section {@NumberOf books}). The +title printed above the list of figures is determined by the +@Code "@FigureListWord" option; the default value, {@Code "figurelist"}, +produces `List of Figures' or its equivalent in the current language; any +other value produces itself. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_foot b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_foot new file mode 100755 index 0000000000000..70e50a25d1fab --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_foot @@ -0,0 +1,150 @@ +@Section + @Title { Footnotes and endnotes } + @Tag { footnotes } +@Begin +@PP +A footnote is created by typing +footnote. @Index @Code "@FootNote" +@ID @Code "@FootNote { Like this. }" +after the word that the footnote refers to. It will be numbered +automatically and placed at the foot of the page or column; +@FootNote { Like this. } +or, if space there is insufficient, it may start on or run onto the +following page or column. The footnote must be enclosed in braces. +@PP +The @Code "@FootNote" symbol has a @Code "@Location" option which +determines where it goes: +@ID @Code { +"@FootNote" +" @Location { ColFoot }" +"{ ... }" +} +places the footnote at the bottom of the column, and +@ID @Code { +"@FootNote" +" @Location { PageFoot }" +"{ ... }" +} +places it at the bottom of the current page, occupying the full page +width even in a multi-column document (this is occasionally +useful for footnotes to headings). Of course, in a single-column +document there is no difference anyway. The default value of the +@Code "@Location" option is {@Code "ColFoot"}. +@PP +Endnotes work in exactly the same way as footnotes, except that the +endnote. @Index @Code "@EndNote" +symbol to use is @Code "@EndNote" and they appear either at the end +of the document or at the end of some major part of it, depending on +the type of document (Chapter {@NumberOf types}). Endnotes are +always column width and so have no @Code "@Location" option. +@PP +Footnotes are usually labelled with consecutive Arabic numberals, but +you can tell Lout to label a footnote (not an endnote) with something +else, like this: +@ID @OneRow @Code @Verbatim { +@FootNote + @Label { @Dagger } +{ This footnote will be labelled with a dagger, not a number. } +} +whose result should appear at the bottom of this page. +@FootNote + @Label { @Dagger } +{ This footnote will be labelled with a dagger, not a number. } +Symbols commonly used for footnote labels include @Code "@Dagger" (@Dagger), +@Code "@DaggerDbl" (@DaggerDbl), @Code "@Star" (@Star), +@Code "@SectSym" (@SectSym), and @Code "@ParSym" (@ParSym), +but you can use any object. If you want no label at all, +use an empty object like this: +@ID @OneRow @Code @Verbatim { +@FootNote + @Label {} +} +Footnotes with a @Code "@Label" option are excluded from the automatic +numbering that applies to other footnotes. +@PP +The language of a footnote or endnote will be the language of the +document as a whole. This is not necessarily the same as the +current language at the point where the footnote or endnote occurs, +or even the language of the enclosing large-scale structure symbol. It +may be necessary to enclose the body of the footnote in a language +symbol, like this: +@ID @Code "@FootNote { French @Language { ... } }" +Doing it the other way ({@Code "French @Language @FootNote ..."}) is +not effective. +@PP +A footnote attached to the very last line of a chapter or appendix of +a book occasionally runs onto the first page of the following chapter +or appendix, and this looks very poor. If this happens, the solution +is to place an @Code "@LP" after the last line (including the footnote). +@PP +In the rare case where more than one footnote is attached to one word, +use @Code "@AnotherFootNote" for the second and subsequent footnotes: +anotherfootnote. @Index @Code "@AnotherFootNote" +@ID @Code { +"something or other." +"@FootNote { The first footnote. }" +"@AnotherFootNote { The second footnote. }" +} +This ensures that the superscripts will be separated by +commas, as convention demands. +@PP +The setup file contains a number of options for controlling the +appearance of footnotes. (See Section @NumberOf setup for a general +introduction to setup files and their options.) Here are all the +options, with their default values: +@ID @OneRow @Code { +"@FootNoteThrough { No }" +"@FootNoteLocation { ColFoot }" +"@FootNoteNumbers { Arabic }" +"@FootNoteFont { 0.80f }" +"@FootNoteBreak { 1.20fx }" +"@FootNoteFormat { { number &0.05f } @Insert body }" +"@FootLen { 2.00c }" +"@FootAboveGap { 1.00v }" +"@FootGap { 0.20c }" +} +There are also setup file options for controlling endnotes. Since +they are quite similar to the ones for footnotes, we won't say any +more about them here. +@PP +@Code "@FootNoteThrough" may be @Code "Yes" or @Code { "No" }; +footnotethrough. @Index @Code "@FootNoteThrough" +@Code "Yes" means that the footnotes are numbered continuously +through the document (or through each chapter in the case of books); +@Code "No" means that the numbering begins afresh on each +page. @Code "@FootNoteLocation" determines the default value of +footnotelocatin. @Index @Code "@FootNoteLocation" +the @Code "@Location" option mentioned above; it may be either +@Code "ColFoot" or {@Code "PageFoot"}. @Code "@FootNoteNumbers" +determines how the footnotes are numbered; +footnotenumbers. @Index @Code "@FootNoteNumbers" +it may be {@Code Arabic}, {@Code Roman}, {@Code UCRoman}, {@Code Alpha}, +or {@Code UCAlpha}. +@PP +@Code "@FootNoteFont" and @Code "@FootNoteBreak" determine the +footnotefont. @Index @Code "@FootNoteFont" +footnotebreak. @Index @Code "@FootNoteBreak" +font and paragraph breaking style of footnotes. The default value +of @Code "@FootNoteFont" produces the same font family and face as the +bulk of the document, but reduced to 0.8 times the original size. +@PP +@Code "@FootNoteFormat" determines the format of the footnote. The +@Code number symbol within it must appear exactly once, and is replaced +by the number of the footnote (if numbered). The @Code body symbol is +replaced by the body (that is, the content) of the footnote. The default +value shown uses symbols from raw Lout to add a small space at the right of +the number, then insert it at the beginning of the first paragraph of +the body. Another suitable value might be +@ID @Code "@FootNoteFormat { number |1fx body }" +which places the body in a separate column to the number, one +font width to the right of the left edge of the number. +@PP +@Code "@FootLen" determines the length of the small horizontal line +footlen. @Index @Code "@FootLen" +drawn above the footnotes; +@Code "@FootAboveGap" determines the minimum space to be left clear +footabovegap. @Index @Code "@FootAboveGap" +above this line; and @Code "@FootGap" determines the +footgap. @Index @Code "@FootGap" +vertical separation between footnotes. All three may be any length. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_indx b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_indx new file mode 100755 index 0000000000000..b75c8db6f9fa2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_indx @@ -0,0 +1,336 @@ +@Section + @Title { Indexes } + @Tag { indexes } +@Begin +@PP +Although Lout is not clever enough to guess what entries should go in +indexes. @Index { indexes } +your index, it will do almost everything else for you: sort the +entries and attach the correct page numbers automatically. As for +tables of contents, the default setting is to have an index in +books but not in other types of documents. This and a few aspects of +the appearance of the index can be changed by changing the setup file, +as explained at the end of this section. +@PP +Now, suppose you are discussing Galileo and you want his name in your +index. Let's be ambitious and say that you want the index to contain +something like this: +@ID @OneRow lines @Break { +Galileo Galilei + life of, 201 + telescope, his use of, 201--203 + trial of, 205--211, 242, 395 +} +Each line shows off one of Lout's four tricks: the first is a +@I { raw entry } (no page number attached); the second is a +@I sub-entry (indented); the third has a @I { page number range } +instead of a single page number; and the fourth is a @I { merged entry } +(several page numbers or ranges within one entry). +@PP +We'll take each of them in turn in a moment, but first, let's see how +to get a basic entry, like this one: +@ID { Galileo Galilei, 201 } +To get this into your index, type +@ID @Code "galileo @Index { Galileo Galilei }" +at the point where you mention Galileo. Nothing will be printed there, +but the object following the @Code "@Index" symbol will be placed in +the index, with a comma and the correct page number appended +automatically. +@PP +The object preceding the @Code "@Index" symbol is a compulsory key +which is used for sorting the index entries, +@FootNote { +The collating sequence used to decide what comes after what is either +the collating sequence used by the @Code "memcmp()" library routine (just +the underlying binary character codes), or else the one used by the +@Code "strcoll()" collating sequence, which understands accented +characters and whose effect depends on your locale. To find out +whether @Code "strcoll()" is in use or not, type @Code "lout -V" which +prints out several lines of this and similar information, including +information about command line flags to switch between the two kinds of +collation. +@PP +If the sorting you get turns out to be not what you expected, the +first thing to try is the replacement of all accented letters in index +keys by unaccented ones. Sorting is quite an intractable problem: even +if @Code "strcoll()" gets the sorting right for one language, there still +remains the problem of sorting multilingual indexes. +@PP +Older versions of Lout assumed that the @I tab character was collated +before any character that could appear in a sorting key, causing +problems when this was not so. Recent versions of Lout no longer +make this assumption. +} +but which is not itself printed anywhere. It is best to construct these +sorting keys from lower-case letters and the . character only, beginning +with a letter, although multi-word keys are allowed. These sorting keys +do not have to be distinct from the tags used in cross referencing; +however, they do have to be distinct from each other, unless you want +merged entries (see below). +@PP +Our first trick, raw entries (no page number attached), is very +easy: just use @Code "@RawIndex" instead of {@Code "@Index"}. So the +first line of our ambitious example is obtained by +@ID @Code "galileo @RawIndex { Galileo Galilei }" +This could go anywhere, since no page numbers are involved. +@PP +Another use for @Code "@RawIndex" is to get blank lines into the index +between the letters of the alphabet, by inserting phantom entries: +@ID @OneRow @Code { +"b @RawIndex {}" +"c @RawIndex {}" +"d @RawIndex {}" +"..." +"z @RawIndex {}" +} +In fact there is a symbol called @Code "@IndexBlanks" that makes +indexblanks. @Index @Code "@IndexBlanks" +exactly these 25 entries. Unfortunately, these blanks will occasionally +appear at the top of a column, and if there are no tags beginning with +x, for example, there will be two blank lines between the w and y +entries. You can start off with @Code "@IndexBlanks" and replace it +later by the appropriate subset, if necessary. +@FootNote { +For Lout to solve this problem automatically, it would need to be told +which letter each index entry belongs under, perhaps by symbols +{@Code "@AIndex"}, {@Code "@BIndex"}, etc. The author felt that this +would have been too tedious. +} +@PP +Our second trick, sub-entries, is also very easy, since a sub-entry +differs from an ordinary entry only by having an indent. The symbol +is {@Code "@SubIndex"}, so the second line of our ambitious example is +produced by +@ID @Code "galileo.life @SubIndex { life of }" +You should always give sub-entries the same sorting key as their +corresponding main entries, plus a . and another word, because then +you can be certain that the sorting will place sub-entries directly +after their main entries. There is a @Code "@SubSubIndex" symbol that +produces a double indent, and there are @Code "@RawSubIndex" and +@Code "@RawSubSubIndex" symbols. +@PP +For our third trick, page number ranges, we use the @Code "to" option +of the {@Code "@Index"}, {@Code "@SubIndex"}, and {@Code "@SubSubIndex"} +symbols. For example, to produce the sub-entry +@ID { telescope, his use of, 201--203 } +put +@ID @Code { + "galileo.telescope @SubIndex to { gt.end } { telescope, his use of }" +} +at the beginning of the range, and +@ID @Code "@PageMark { gt.end }" +at the end. You can use any tag you like inside the @Code "to" option, +as long as it differs from every other tag (notice that sorting keys +do not have to differ from tags, but @Code "to" options do: this +is because @Code "to" options go into @Code "@PageMark" like other +tags do, and if two tags are the same we would have an ambiguous +result of {@Code "@PageOf"}). If both ends of the range fall on the +same page, the @Code "to" option is ignored: you will never get +201--201. +@PP +Our fourth and final trick is the merged entry: +@ID { trial of, 205--211, 242, 395 } +The main thing to grasp is that this merged entry was originally three +separate entries (sub-entries in this case): +@ID @OneRow lines @Break { +trial of, 205--211 +trial of, 242 +trial of, 395 +} +We already know how to produce these three entries, using three +@Code "@SubIndex" symbols, one with a @Code "to" option. Now we have +discovered that Lout is able to merge several entries into one +entry. This raises two questions: how does Lout know which entries +to merge? and given those entries, what does the merging produce? +@PP +The answer to the first question is that Lout merges entries whose +sorting keys are equal. The merged entry above is produced by these +three entries, placed in the appropriate places: +@ID @OneRow @Code { +"galileo.trial @SubIndex to { gtrial.end } { trial of }" +"galileo.trial @SubIndex { trial of }" +"galileo.trial @SubIndex { trial of }" +} +The entries are merged because they have the same sorting key +({@Code "galileo.trial"}), not because they happen to have the +same content ({@Code "trial of"}). In fact, once the page numbers are +added the content is not the same at all. +@PP +Now, having decided that the three entries +@ID @OneRow lines @Break { +trial of, 205--211 +trial of, 242 +trial of, 395 +} +must be merged, what does Lout do? Without being too formal, it +finds the shortest larger entry that contains everything in the +given entries, more or less, preserving the order in which +the entries' points of origin appear in the final printed document. +@PP +If the entries are not different at all, then the result will be +the same as each of them. With this in mind, let us return to +our initial, ambitious example: +@ID @OneRow lines @Break { +Galileo Galilei + life of, 201 + telescope, his use of, 201--203 + trial of, 205--211, 242, 395 +} +We now know how to produce all four of these entries, but one problem +of some practical importance remains. Suppose we delete the section on +the life of Galileo. If we had put the entry that produces `Galileo +Galilei' in that section, we might inadvertently delete it, and the +other two sub-entries will lose their main entry. Before deleting +anything, we must hunt through it for index entries and ponder their +significance, an error-prone and time-wasting thing to do. +@PP +The solution is as follows. When an index entry has sub-entries, make +it raw, and repeat it just before each of its sub-entries: +@ID @OneRow @Code { +"galileo @RawIndex { Galileo Galilei }" +"galileo.life @SubIndex { life of }" +} +at the first place, +@ID @OneRow @Code { +"galileo @RawIndex { Galileo Galilei }" +"galileo.telescope @SubIndex { telescope, his use of }" +} +at the second, and so on. Now it is easy to verify that every +sub-entry has a main entry; and when deleting a sub-entry we can and +should delete the adjacent main entry. After sorting, our index +entries will be +@ID @Tab + @Fmta { @Col @Code A ! @Col B } +{ +@Rowa + A { galileo } + B { Galileo Galilei } +@Rowa + A { galileo } + B { Galileo Galilei } +@Rowa + A { galileo } + B { Galileo Galilei } +@Rowa + A { galileo } + B { Galileo Galilei } +@Rowa + A { galileo } + B { Galileo Galilei } +@Rowa + A { galileo.life } + B { {} life of, 201 } +@Rowa + A { galileo.telescope } + B { {} telescope, his use of, 201--203 } +@Rowa + A { galileo.trial } + B { {} trial of, 205--211 } +@Rowa + A { galileo.trial } + B { {} trial of, 242 } +@Rowa + A { galileo.trial } + B { {} trial of, 395 } +} +The first five entries have the same sorting key, and will be merged +as required. +@PP +The language of the index entry will be the initial language of the +document as a whole, which is not necessarily the language at the point +where the index entry occurs. To get the correct language you will need a +@Code "@Language" symbol following the @Code "@Index" symbol: +@ID @Code "galileo. @Index French @Language { Galileo Galilei }" +or whatever. If you don't do this your index entry might be hyphenated +incorrectly. +@PP +Although the page numbers in index entries will be kept up to date +automatically as the document changes, as all cross references are, +it is best to refrain from inserting index entries until the document +is complete and an overall plan of the structure of the index can +be made. +@PP +The remainder of this section describes how to change the appearance of +the index by setting options in the setup file. For setup files and +their options in general, consult Section {@NumberOf setup}. +@PP +There are eight setup file options for the index. Here they are with +their default values: +@ID @OneRow @Code @Verbatim { +@MakeIndex { No } +@IndexFont { } +@IndexBreak { oragged 1.2fx } +@IndexColumnNumber { 2 } +@IndexColumnGap { 1.00c } +@IndexCtd { Yes } +@IndexCtdWord { continued } +@IndexCtdFormat { @Body @I (@CtdWord) } +} +The @Code "@MakeIndex" option, which may be @Code Yes or {@Code No}, +makeindex. @Index @Code "@MakeIndex" +determines whether to produce an index or not. Although the default +value is {@Code No}, any type of document may be given an index just +by changing it to {@Code Yes}. This has already been done in the +@Code book setup file, but not in the others. +@PP +@Code "@IndexFont" determines the font and font size of index entries +indexfont. @Index @Code "@IndexFont" +(e.g. {@Code "Times Base 12p"}). Leaving it empty as above produces +the same font as the rest of the document. @Code "@IndexBreak" is the +indexbreak. @Index @Code "@IndexBreak" +paragraph breaking style applied to index entries; @Code oragged is the +traditional and best way. +@PP +@Code "@IndexColumnNumber" and @Code "@IndexColumnGap" determine the +indexcolumnnumber. @Index @Code "@IndexColumnNumber" +indexcolumngap. @Index @Code "@IndexColumnGap" +number of index columns per page, and the gap between them, and are +exactly analogous to the @Code "@ColumnNumber" and @Code "@ColumnGap" +options described in Section {@NumberOf columns}. +@PP +The last three options work together to control the appearance of +running headers +@FootNote { +Index running headers are new in Version 3.19 of Lout. +} +in the index. If an @Code "@Index" entry has @Code "@SubIndex" entries +that run over to the next column, Lout will print an unobtrusive running +header at the top of that column, something like this in English: +@ID { procrastination @I (ctd.) } +It will print two running headers if a @Code "@SubIndex" entry has +@Code "@SubSubIndex" entries that run over, one for the main entry and an +indented one for the sub-entry. You can turn off these running headers by +setting @Code "@IndexCtd" to {@Code No}. A particular word is associated +with index running headers; by default it is @Code "ctd." in English and +its equivalent in other languages. This is what the default value, +{@Code "continued"}, of the @Code "@IndexCtdWord" option gives you; if you +want some other word, change that option to the word you want. Finally, +you can control the format of the running headers using +{@Code "@IndexCtdFormat"}. Within this option, the symbol @Code "@Body" +stands for the value of the index entry that is running over (minus any +page numbers), and @Code "@CtdWord" stands for the word produced by the +@Code "@IndexCtdWord" option. The default value of {@Code "@IndexCtdFormat"}, +shown above, yields the index entry followed by @Code "@IndexCtdWord" in +italics and parentheses. +@PP +Lout offers the possibility of having up to three independent indexes +(useful for glossaries, author indexes, etc.). The other two are called +index A and index B, and they precede the main index in the +output. Just replace @Code Index by @Code IndexA to refer to index A, +and by @Code IndexB to refer to index B. For example, +@ID @Code "smith.j @IndexA { Smith, John }" +will insert an index entry to index A, and @Code "@IndexBBlanks" +will insert the usual 25 blank entries into index B. +@PP +In large projects it might help to rename the @Code "@IndexA" symbol +to something else, such as {@Code "@AuthorIndex"}. This can +be done by placing +@ID @Code { +"import @DocumentSetup" +"macro @AuthorIndex { @IndexA }" +} +in the @Code mydefs file. See Section {@NumberOf definitions} for +an introduction to the @Code "mydefs" file; the word @Code macro +is needed here instead of @Code "def" because we are introducing +a new name for an existing symbol, not defining a new symbol. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_larg b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_larg new file mode 100755 index 0000000000000..2d244ae1e7b6d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_larg @@ -0,0 +1,179 @@ +@Section + @Title { Large-scale structure: chapters, sections, etc. } + @RunningTitle { Large-scale structure } + @Tag { largescale } +@Begin +@PP +Lout's large-scale structure symbols vary with the type of document +large.scale. @Index { large-scale structure } +({@Code "@Chapter"} for books, @Code "@Overhead" for overhead +transparencies, etc.), but they all work in the same way. Here is a +typical example, {@Code "@Section"}, as it would actually be used: +@ID @OneRow @Code { +"@Section" +" @Title { Allocation of teachers }" +"@Begin" +"@PP" +"Apart from the usual need to avoid clashes, the allocation of teachers must" +"ensure that no teacher teaches more than seven periods per day, or ..." +"@End @Section" +} +First comes the symbol itself, then any options in the usual way, and +then the following object, enclosed in @Code "@Begin" and +{@Code "@End @Section"}. The following object, also called the body +of the section, may contain paragraphs, displays, and all the other +features as usual. The body should begin with a paragraph symbol, +which may be @Code "@PP" or @Code "@LP" as you prefer. The result is +a section like the present one, automatically numbered, with the +@Code "@Title" option for its heading, preceded by a conditional new +title. @Index @Code "@Title" +page symbol (Section {@NumberOf paragraphs}). +@PP +When @Code "@Section" symbols are used within an ordinary document, they +must be bracketed by @Code "@BeginSections" and @Code "@EndSections" +symbols, like this: +@ID @OneRow @Code { +"@SysInclude { doc }" +"@Doc @Text @Begin" +"preceding text" +"@BeginSections" +"@Section ... @End @Section" +"@Section ... @End @Section" +"..." +"@Section ... @End @Section" +"@EndSections" +"@End @Text" +} +This arrangement is reminiscent of the one for lists, and, as for +lists, there may be no paragraph or new page symbols before, between, +or after the sections. To change the gap between sections, you need +to change the @Code "@SectionGap" option in the setup file, as explained +in Chapter {@NumberOf types}. If you just want a new page before one +section, not all sections, place @Code "@NP" at the very end of the +previous section, just before its {@Code "@End @Section"}. +@PP +The @Code "@Begin ... @End @Section" that brackets the body of each +section may be abbreviated to {@Code "{ ... }"}. However, the long +form is recommended because it helps Lout to detect missing or extra +braces within the body of the section. +@PP +All large-scale structure symbols have a @Code "@Tag" option, whose +use is explained in Section {@NumberOf cross}, and a @Code "@RunningTitle" +runningtitle. @Index @Code "@RunningTitle" +option. If running page headers have been requested, @Code "@RunningTitle" +will be used if it is given, otherwise @Code "@Title" will be used for the +running header. For example, the present section begins like this: +@ID @OneRow @Code { +"@Section" +" @Title { Large-scale structure: chapters, sections, etc. }" +" @RunningTitle { Large-scale structure }" +" @Tag { largescale }" +"@Begin" +"..." +} +The point is that the section title is rather long for a running +title, and so we use @Code "@RunningTitle" to get an abbreviated +version of it. +@PP +Section titles typically appear in Bold face in the section heading, +but in Roman face in tables of contents and running page headers. So +if part of your title is in italics, enclose it in @Code "@II" rather +than just @Code "@I" to ensure that you get the right kind of italics +in both contexts. +@PP +All large-scale structure symbols also have an @Code "@InitialLanguage" +option which sets the current language for the duration of that +symbol. However, footnotes, endnotes, figures, tables, references, +and index entries are set in the initial language of the document as +a whole, unless you change their language explicitly using the +@Code "@Language" symbol. +@PP +The remainder of this section describes the setup file options for +controlling the appearance of large-scale structure symbols. (For an +introduction to setup files, consult Section {@NumberOf setup}.) These +options mainly appear in the third @Code "@Use" clause, since exactly which +large-scale structure symbols exist depends on the type of document. For +example, here are the setup file options from the @Code "doc" setup file +relating to appendices: +@ID @OneRow @Code { +"@AppendixWord { appendix }" +"@AppendixNumbers { UCAlpha }" +"@FirstAppendixNumber { 1 }" +"@AppendixHeadingFont { Bold }" +"@AppendixHeadingBreak { ragged 1.2fx nohyphen }" +"@AppendixHeadingFormat { number @DotSep title }" +"@AppendixGap { 2.0v @OrIfPlain 2f }" +"@AppendixInContents { Yes }" +"@AppendixNumInTheorems { No }" +"@AppendixNumInDisplays { Yes }" +"@AppendixNumInFigures { No }" +"@AppendixNumInTables { No }" +"@AppendixPrefix { }" +} +There are similar options for each large-scale structure symbol. Here is +a brief explanation. +@PP +@Code "@AppendixWord" contains the word that is to be prefixed to the +appendix number in full headings. The special value @Code appendix +produces Appendix or its equivalent translated into the current +language. Any other value produces itself. +@PP +@Code "@AppendixNumbers" determines the style of numbering of appendices, +and may be {@Code Arabic}, {@Code Roman}, {@Code UCRoman}, {@Code Alpha}, +{@Code UCAlpha}, or {@Code None} meaning unnumbered. Most common is +{@Code Arabic}, but appendices traditionally use upper-case +letters, hence the value {@Code UCAlpha} given above. +@PP +@Code "@FirstAppendixNumber { 1 }" is the number (always in Arabic) to +assign to the first appendix. It is almost always 1, but a few people +like to start their numbering from 0; this is only possible if the +style of numbering specified by @Code "@AppendixNumbers" is {@Code Arabic}. +@PP +@Code "@AppendixHeadingFont" and @Code "@AppendixHeadingBreak" specify +the font and paragraph breaking style to be applied to the appendix +heading (relative to {@Code "@InitialFont"} and {@Code "@InitialBreak"}); +the default values shown above produce Bold in the current font family +and size, and ragged breaking without hyphenation. +@PP +@Code "@AppendixHeadingFormat" defines the format of the appendix +heading. Within it, the symbols @Code number and @Code title stand for the +appendix number (including the appendix word) and title respectively. The +@Code "@DotSep" symbol produces a dot and two spaces, except when there is +no number, when it produces nothing. For example, to draw a full-width +rule under the heading, change this option to +@ID @Code "@AppendixHeadingFormat { number @DotSep title @LP @FullWidthRule }" +Arbitrary formats are acceptable. +@PP +@Code "@AppendixGap" determines the vertical space to leave between +appendices; the default above leaves {@Code 2v}, except that when plain +text output is in effect it leaves @Code 2f instead. To get a new page +between appendices, use the magic value {@Code 2b}, which is raw Lout for +new page. In books, the major components (preface, introduction, tables +of contents, parts, chapters, appendices, and indexes) always start on a +new page and there is nothing you can do to change that. +@PP +@Code "@AppendixInContents" determines whether the appendix will be listed +in the table of contents, and may be @Code "Yes" or {@Code No}. The +next few options determine whether an appendix number will be included +in the numbers assigned to theorems etc., numbered displays, figures, +and tables. +@PP +There is a @Code "@StructPageNums" setup file option which determines +whether page numbers will include the numbers of large-scale structure +symbols. If it is {@Code "Yes"}, @Code "@AppendixPrefix" is prefixed +to all page numbers of pages containing appendices. For example, setting +@Code "@AppendixPrefix" to @Code { APP- } produces page +numbers APP-A-1, APP-A-2, and so on. The object separating each element +of such compound numbers is determined by the @Code "@NumberSeparator" +numberseparator. @Index @Code "@NumberSeparator" +setup file option, which has default value @Code "." but which can easily +be set to @Code "-" or @Code "--" if desired. +@PP +Running page headers above appendices always include the title of +the appendix, so there is no option for specifying whether to do so or +not. But for subappendices and other such smaller units, the choice of +whether to mention them in running headers is left to the user: +@ID @Code "@SubAppendixNumInRunners { Yes }" +Despite the misleading name, this option determines whether the entire +subappendix @I title as well as number will be used as a running header. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_list b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_list new file mode 100755 index 0000000000000..0654ca6f684a0 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_list @@ -0,0 +1,392 @@ +@Section + @Title { Lists } + @Tag { lists } +@Begin +@PP +The @Code "@List" symbol introduces a sequence of items to be +lists. @Index { lists } +list. @Index @Code "@List" +l. @Index @Code "@L" +made into a displayed list: +@ID @OneRow @Code { +"preceding text" +"@List" +"@ListItem @I Emma" +"@ListItem @I { Mansfield Park }" +"@EndList" +"following text" +} +After the initial @Code "@List" symbol, each item is introduced by +list.item. @Index @Code "@ListItem" +li. @Index @Code "@LI" +{@Code "@ListItem"}, and the list ends with {@Code "@EndList"}. The +end.list. @Index @Code "@EndList" +el. @Index @Code "@EL" +result here is +@ID @OneRow { +preceding text +@List +@ListItem @I Emma +@ListItem @I { Mansfield Park } +@EndList +following text +} +with space inserted automatically before, between, and after +the items. +@PP +As the example shows, the @Code "@List" symbol causes the items to be +indented. Also available are {@Code "@LeftList"}, {@Code "@IndentedList"}, +leftlist. @Index @Code "@LeftList" +ll. @Index @Code "@LL" +indentedlist. @Index @Code "@IndentedList" +il. @Index @Code "@IL" +{@Code "@QuotedList"}, {@Code "@CentredList"}, and {@Code "@CenteredList"}, +quotedlist. @Index @Code "@QuotedList" +ql. @Index @Code "@QL" +centredlist. @Index @Code "@CentredList" +centeredlist. @Index @Code "@CenteredList" +cl. @Index @Code "@CL" +which format the items like the corresponding display symbols do. +Other list symbols generate a @I label for each item. For example, +@Code "@NumberedList" causes the items to be numbered: +numberedlist. @Index @Code "@NumberedList" +nl. @Index @Code "@NL" +@ID @OneRow @Code { +"@Heading { Quiz }" +"@NumberedList" +"@ListItem { Which American statesman owned a two-storey clock? }" +"@ListItem { Which Yankee commander from the Civil War cut a" +"swathe of destruction through the State of Georgia? }" +"@EndList" +} +has result +@ID @OneRow { +@Heading { Quiz } +@NumberedList +@ListItem { Which American statesman owned a two-storey clock? } +@ListItem { Which Yankee commander from the Civil War cut a +swathe of destruction through the State of Georgia? } +@RawEndList +} +The generated labels are added at the left margin. Here is the full set +of label-generating list symbols, showing the first label produced by each: +parennumberedlist. @Index @Code "@ParenNumberedList" +pnl. @Index @Code "@PNL" +romanlist. @Index @Code "@RomanList" +rl. @Index @Code "@RL" +parenromanlist. @Index @Code "@ParenRomanList" +prl. @Index @Code "@PRL" +ucromanlist. @Index @Code "@UCRomanList" +ucrl. @Index @Code "@UCRL" +parenucromanlist. @Index @Code "@ParenUCRomanList" +pucrl. @Index @Code "@PUCRL" +alphalist. @Index @Code "@AlphaList" +al. @Index @Code "@AL" +parenalphalist. @Index @Code "@ParenAlphaList" +pal. @Index @Code "@PAL" +ucalphalist. @Index @Code "@UCAlphaList" +ucal. @Index @Code "@UCAL" +parenucalphalist. @Index @Code "@ParenUCAlphaList" +pucal. @Index @Code "@PUCAL" +bulletlist. @Index @Code "@BulletList" +bl. @Index @Code "@BL" +starlist. @Index @Code "@StarList" +sl. @Index @Code "@SL" +dashlist. @Index @Code "@DashList" +dl. @Index @Code "@DL" +@ID @Tab + @Fmta { @Col @CC A ! @Col @Code B ! @Col ! @Col @CC C ! @Col @Code D } +{ +@Rowa + A { 1. } + B { "@NumberedList" } + C { (1) } + D { "@ParenNumberedList" } +@Rowa + A { i. } + B { "@RomanList" } + C { (i) } + D { "@ParenRomanList" } +@Rowa + A { I. } + B { "@UCRomanList" } + C { (I) } + D { "@ParenUCRomanList" } +@Rowa + A { a. } + B { "@AlphaList" } + C { (a) } + D { "@ParenAlphaList" } +@Rowa + A { A. } + B { "@UCAlphaList" } + C { (A) } + D { "@ParenUCAlphaList" } +@Rowa + A { @Bullet } + B { "@BulletList" } +@Rowa + A { @Star } + B { "@StarList" } +@Rowa + A { -- } + B { "@DashList" } +} +roman @Index { Roman numerals } +The Roman numerals end at cc (200), but ordinary decimal numbers have +no limit. The labels produced by the four alphabetical list symbols are +determined by the current language; in English they start at @Code "a" +and end at {@Code "z"}. +@PP +You may also supply your own labels using the @Code "@TaggedList" +taggedlist @Index @Code "@TaggedList" +tl. @Index @Code "@TL" +symbol. Each item is introduced by @Code "@TagItem" instead of +tagitem. @Index @Code "@TagItem" +ti. @Index @Code "@TI" +{@Code "@ListItem"}. Since such labels tend to be quite wide, +there are @Code "@WideTaggedList" and @Code "@VeryWideTaggedList" symbols +widetaggedlist @Index @Code "@WideTaggedList" +wtl. @Index @Code "@WTL" +verywidetaggedlist @Index @Code "@VeryWideTaggedList" +vwtl. @Index @Code "@VWTL" +which leave extra space for them: +@ID @OneRow @Code { +"@WideTaggedList" +"@TagItem { 9 a.m. } { Breakfast in the Ipamena Lounge," +"served with Irish coffee and fresh croissants. }" +"@TagItem { 10 a.m. } { Prof. A. Smith" +"speaks on `The Wealth of Nations.' }" +"@EndList" +} +Each @Code "@TagItem" symbol is followed by the desired label between +braces, and then the item proper. The label may be empty, but still its +enclosing braces must be there. The result here is +@ID @OneRow { +@RawWideTaggedList +@TagItem { 9 a.m. } { Breakfast in +the Ipamena Lounge, served with +Irish coffee and fresh croissants. } +@TagItem { 10 a.m. } { Prof. A. Smith +speaks on `The Wealth of Nations.' } +@RawEndList +} +An alternative way to accommodate wide labels is the `drop item,' +drop.item @Index { drop items } +which looks like this: +@ID @OneRow { +@RawTaggedList +@DTI { 10 a.m. } { Prof. A. Smith speaks on `The Wealth of Nations.' } +@RawEndList +} +Individual items are dropped in this way by using @Code "@DropTagItem" +drop.tag.item @Index @Code "@DropTagItem" +dti. @Index @Code "@DTI" +instead of {@Code "@TagItem"}. There is also a @Code "@DropListItem" +drop.list.item @Index @Code "@DropListItem" +dli. @Index @Code "@DLI" +symbol corresponding to {@Code "@ListItem"}, but it is very rarely +needed. Lout is not able to decide for itself whether a label is wide +enough to require a drop item. +@PP +Each list has a `raw' version which omits the preceding space, and +raw.lists @Index { raw lists } +raw.list. @Index @Code "@RawList" +raw.end.list. @Index @Code "@RawEndList" +@Code "@EndList" has a raw version which omits the following +space. These are mainly used when an item is itself a list: +@ID @OneRow @Code { +"@ParenNumberedList" +"@ListItem {" +" @RawParenRomanList" +" @ListItem { MV Nominees," +"hereinafter called the vendor, ... }" +" @RawEndList" +"}" +"@EndList" +} +produces +@ID @OneRow { +@RawParenNumberedList +@ListItem { + @RawParenRomanList + @ListItem { MV Nominees, +hereinafter called the vendor, ... } + @RawEndList +} +@RawEndList +} +If @Code "@ParenRomanList" had been used instead of +{@Code "@RawParenRomanList"}, (1) and (i) would have appeared on +different lines; or if @Code "@EndList" had been used instead of +{@Code "@RawEndList"}, there would have been too much space following +the list. +@PP +A list item may come out partly on one page or column and partly on +the next, if it has places where it obviously can be broken in two. For +example, a list item which is an ordinary paragraph of text might be +broken in two between any two lines. To force a list item to keep +together on one page or column, use the @Code "@OneRow" symbol like +this: @Code "@ListItem @OneRow { ... }". +@PP +Occasionally it is desirable to start a new page or column between +two list items. This cannot be done by inserting @Code "@NP" +between them, because the space between two list items is a kind +of no-man's land where nothing is allowed to be. Instead, the +@Code "@ListNewPage" symbol is used: it is permitted only between +two list items, and its effect is to make the following list item +appear at the top of the next page or column. It may be used within +any kind of list. +@PP +Another special list item is {@Code "@ListInterruptItem"}. This +prints its content without any numbering or formatting: +@ID @OneRow @Code { +"@NumberedList" +"@ListItem { This is the first list item. }" +"@ListInterruptItem { This is an interruption to the list. }" +"@ListItem { This is the second list item. }" +"@EndList" +} +produces +@ID @OneRow { +@RawNumberedList +@ListItem { This is the first list item. } +@ListInterruptItem { This is an interruption to the list. } +@ListItem { This is the second list item. } +@RawEndList +} +Although @Code "@ListInterruptItem" is written like a list item, the +result appears to be an interruption to the list. It may be used +in any kind of list. +@PP +Every symbol introduced in this section has an abbreviated form +consisting of @Code "@" followed by its capital letters only. For +example, @Code "@RawNumberedList" abbreviates to {@Code "@RNL"}, +and @Code "@ListItem" to {@Code "@LI"}. The sole exception is +{@Code "@RawList"}, which has no abbreviation because @Code "@RL" +is the abbreviation for {@Code "@RomanList"}. +@PP +list.symbol.options @Index { list symbol options } +Expert users will be interested to learn that all of the list symbols +described in this section are derived from the two basic ones, +@Code "@List" and {@Code "@RawList"}, merely by setting options. Here +are all the options, together with their default values: +@ID @OneRow @Code { +"@List" +" type { num }" +" style { num }" +" labelwidth { 2f }" +" indent { 0c }" +" rightindent { 0c }" +" gap { 1v }" +" start { 1 }" +} +These options may be used with all of the list and raw list symbols, +except that some combinations don't make sense, for example @Code "indent" +with {@Code "@CentredList"} or @Code "style" with {@Code "@BulletList"}, +since the list symbol has clearly already set the option. +@PP +The @Code "type" option determines the type of numbering (Arabic, Roman, +etc.) and is not intended for ordinary use, since there are distinct +symbols for each type, as we have seen. The @Code "style" option +determines the format of the label, any @Code "num" symbol within it +being replaced by the number (in Arabic, Roman, etc. as determined by the +@Code "type" option) of the item. For example, @Code "@ParenNumberedList" +is just +@ID @OneRow @Code { +"@List" +" style { (num) }" +} +and @Code "@BulletList" is just +@ID @OneRow @Code { +"@List" +" style { @Bullet }" +} +with @Code "num" not mentioned since no number is wanted. The +@Code "@TaggedList" symbol and its variants also have the +@Code "style" option; in their case, the @Code "num" symbol within +it must be mentioned exactly once, and its value is set to produce +the label supplied by the author. +@PP +The @Code "labelwidth" option determines the width set aside for the labels; +this is where @Code "@WideTaggedList" and @Code "@VeryWideTaggedList" differ +from {@Code "@TaggedList"}. The @Code "indent" and @Code "rightindent" +options determine the space left blank at the left and right margins. The +value given to these three options may be any length, for example +@Code "0.5i" (half an inch), or @Code "0.5f" (half the current font +size). Section {@NumberOf objects} describes lengths in general. There +are also three useful symbols denoting lengths: @Code "@DisplayIndent" +is the amount by which indented and quoted displays are indented; +@Code "@WideIndent" and @Code "@VeryWideIndent" are the indents used by +@Code "@WideTaggedList" and {@Code "@VeryWideTaggedList"}. Using these +symbols helps to keep documents consistent. +@PP +The @Code "gap" option determines the vertical space inserted between +items. Once again this must be a length, although since it is +vertical rather than horizontal, somewhat different kinds of lengths +are appropriate: @Code "1.5v" for 1.5 times the current vertical space +between lines, or the default value, {@Code "@DisplayGap"}, which produces +the amount of vertical space used before and after displays. Owing to +problems behind the scenes, there is no list option for the space before or after +the list as a whole. To change this space in one list, use a raw list and +insert your own paragraph symbols; to change it in every list there is a +setup file option, described below. +@PP +The @Code "start" option is the number assigned to the first +item. It must be decimal: +@ID @OneRow @Code { +"@ParenRomanList" +" start { 25 }" +} +looks strange, but it is the correct way to number the first +item (xxv). +@PP +Here is a larger example of these options in action. Setting both +@Code "indent" and @Code "rightindent" to @Code "@DisplayIndent" +produces an effect similar to {@Code "@QuotedDisplay"}: +@ID @OneRow @Code { +"preceding text" +"@List" +" style { @I {Item num}: }" +" indent { @DisplayIndent }" +" rightindent { @DisplayIndent }" +" labelwidth { @WideIndent }" +" start { 10 }" +"@ListItem { The vendor ... in the case of accident. }" +"@ListItem { The vendor ... adjacent to the facility. }" +"@EndList" +"following text" +} +The result is +@ID @OneRow { +preceding text +@List + style { @I {Item num}: } + indent { @DisplayIndent } + rightindent { @DisplayIndent } + labelwidth { @WideIndent } + start { 10 } +@ListItem { +The vendor will not be liable for any injury caused by the escape of +radiation or radioactive materials from the facility, nor for the +costs of repair of any property damaged by nuclear blast or fallout +in the case of accident. +} +@ListItem { +The vendor will not be liable for any injury caused by radioactive +materials being transported to or from the facility, nor for injury +caused by radioactive materials stored adjacent to the facility. +} +@EndList +following text +} +You can change the @I default values of the {@Code "labelwidth"}, +{@Code "indent"}, {@Code "rightindent"}, and {@Code "gap"} options, +by setting options called {@Code "@ListTagWidth"}, {@Code "@ListIndent"}, +{@Code "@ListRightIndent"}, and {@Code "@ListGap"} in the setup +file (Section {@NumberOf setup}). These default values will then apply +automatically to every list in the document unless overridden by an option, +just as the usual default values do. The setup file also has a +{@Code "@ListOuterGap"} option which determines the gap before the first +and after the last list item in non-raw lists. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_marg b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_marg new file mode 100755 index 0000000000000..e2eba2db4f847 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_marg @@ -0,0 +1,158 @@ +@Section + @Title { Margin notes and arbitrary placement } + @Tag { marginnotes } +@Begin +@PP +A note can be placed in the left margin by typing +leftnote. @Index @Code "@LeftNote" +marginnote. @Index { margin notes } +@ID { +@Code "@LeftNote { A left note. }" +@LeftNote { A left note. } +} +after the word that the note refers to. The note will appear in the +margin at the same height on the page as that word, unless that would +cause it to overlap a previous margin note, in which case it will be +shifted downwards (but never onto the next page). The note may be an +arbitrary Lout object; for example, you might type +@ID { +@Code "@LeftNote @I { A left note. }" +@LeftNote @I { A left note. } +} +to make your note come out in italics. +@PP +You can get a note in the right margin by using @Code "@RightNote" +@RightNote { A right note. } +rightnote. @Index @Code "@RightNote" +instead of {@Code "@LeftNote"}. To get a note in the outer margin +(left on even pages, right on odd pages), use {@Code "@OuterNote"}; +@OuterNote { An outer note. } +outernote. @Index @Code "@OuterNote" +and for the opposite, use {@Code "@InnerNote"}. +@InnerNote { An inner note. } +@PP +By default, Lout produces margins that are 2.5 centimetres wide, which +is not really enough to accommodate reasonable margin notes. To +change these margins, you need to change options in the setup file, as +explained in Section {@NumberOf margins}. +@PP +The appearance of the margin notes themselves is also determined by +options in the setup file (for a general introduction to setup files +and their options, consult Section {@NumberOf setup}). Here are +the options and their default values: +@ID @OneRow @Code { +"@MarginNoteFont { 0.80f }" +"@MarginNoteBreak { ragged 1.10fx }" +"@MarginNoteHGap { 0.5c }" +"@MarginNoteVGap { 1.00v }" +"@MarginNoteWidth { 1.50c }" +} +@Code "@MarginNoteFont" determines the font; the default value +produces the current font scaled to 0.8 times the current size. +@Code "Slope 0.80f" would yield italic notes, and so +on. @Code "@MarginNoteBreak" is the paragraph breaking style, +similar to the @Code "@InitialBreak" setup file option. +@PP +@Code "@MarginNoteHGap" determines how far away from the +adjacent text column the margin note will appear; the default +value is 0.5 centimetres. Notice that, by this definition, margin +notes will appear in the page body margin (Section {@NumberOf margins}) +if there is one. @Code "@MarginNoteVGap" is the minimum +vertical separation between margin notes (i.e. it determines how +far downwards a note will be shifted to avoid the previous +one). @Code "@MarginNoteWidth" determines the width of the column +in which margin notes (both left and right) are set; the default +value of 1.5 centimetres is suited to the 2.5 centimetre page margins +that are the default, but if you widen the page or page body margins +you will be able to increase @Code "@MarginNoteWidth" too. +@PP +Left notes extend into the left margin (including the left page body +margin) a total distance of @Code "@MarginNoteHGap" plus +{@Code "@MarginNoteWidth"}, and it is up to you to make sure that this +does not put them off the page. Similar remarks apply to right +notes. And since notes are never shifted to the next page, only +downwards, there is also a risk that a note will be shifted off the +bottom of the page, if it is very long or if preceding notes obstruct +it. Again, it is up to you to avoid this problem by keeping your notes +small and not too close together. +@PP +Margin notes inside footnotes, figures and tables work well. Margin +notes in multi-column documents are disastrous unless used very +sparingly. Margin notes do not appear in plain text output +(Section {@NumberOf plain}). +@PP +A more radical way to place objects at arbitrary points on the current +place. @Index @Code "@Place" +page is provided by the @Code "@Place" symbol: +@ID @OneRow @Code { +"@Place" +" x { right - 1 cm - xsize }" +" y { { foot + top } / 2 }" +"{" +" @Box { Hello }" +"}" +} +The placed object may be any object. This particular example produces a +box whose @I x (horizontal) position is such that its right edge is one +centimetre from the right edge of the page, and whose @I y (vertical) +position is halfway up & +@Place + x { right - 1 cm - xsize } + y { { foot + top } / 2 } +{ + @Box { Hello } +} +the page. +@PP +In addition to numbers, Lout lengths (Section {@NumberOf objects}), +and Diag lengths (Section {@NumberOf dia_summ}), the following symbols +may be used inside the @Code "x" and @Code "y" options: +@ID @Tab + @Fmta { @Col @Code A ! @Col B } +{ +@Rowa + A { left } + B { The left edge of the page } +@Rowa + A { right } + B { The right edge of the page } +@Rowa + A { foot } + B { The foot edge of the page } +@Rowa + A { top } + B { The top edge of the page } +@Rowa + A { "+" } + B { Addition (positive is to the right and up) } +@Rowa + A { "-" } + B { Subtraction (negative is to the left and down) } +@Rowa + A { "*" } + B { Multiplication } +@Rowa + A { "/" } + B { Division } +@Rowa + A { "xsize" } + B { The width of the object being placed } +@Rowa + A { "xmark" } + B { The column mark of the object being placed (for expert users) } +@Rowa + A { "ysize" } + B { The height of the object being placed } +@Rowa + A { "ymark" } + B { The row mark of the object being placed (for expert users) } +} +The usual precedences and associativities apply to the mathematical +operators; braces (not parentheses) may be used for grouping. It is +best to give values to @Code "x" and @Code y that do not depend on +any assumptions about where the coordinate system's origin is; this +is true of the examples above. At the point where @Code "@Place" occurs, +the result is an empty object. As with margin notes, Lout does not know +what is happening and will not lay out the rest of the page around the +placed object. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_theo b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_theo new file mode 100755 index 0000000000000..5d85c37ad7487 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/str_theo @@ -0,0 +1,108 @@ +@Section + @Title { Theorems, lemmas, corollaries, definitions, propositions, +examples, and claims } + @RunningTitle { Theorems, lemmas, etc. } + @Tag { theorems } +@Begin +@PP +theorem. @Index @Code "@Theorem" +A theorem is created like this: +@ID @OneRow @Code { +"@LD @Theorem" +" @Title { Fermat's Last Theorem }" +"{" +"@Eq { a sup n + b sup n != c sup n } for all positive integers @Eq { a }," +"@Eq { b }, @Eq { c } and @Eq { n } when @Eq { n > 2 }." +"@LP" +"@Proof I have a proof of this theorem, but the margin" +"is too small to contain it. @EndProof" +"}" +} +where we have used the @Code "@LD" `left display' symbol from +Section {@NumberOf displays} to get a left-justified display, +and the @Code "@Eq" symbol from Chapter {@NumberOf equations} +for the equations. The result is +@ID @Theorem + @Title { Fermat's Last Theorem } +{ +@Eq { a sup n + b sup n != c sup n } for all positive integers @Eq { a }, +@Eq { b }, @Eq { c } and @Eq { n } when @Eq { n > 2 }. +@LP +@Proof I have a proof of this theorem, but the margin +is too small to contain it. @EndProof +} +The @Code "@Theorem" symbol produces an object with no adjacent +vertical space, hence it needs to be used in conjuction with +display or paragraph symbols. The theorem is numbered automatically, +with the title and number inserted at the start of the first +paragraph. @Code "@Title" may be omitted. +@PP +@Code "@Proof" produces @Proof @Null +proof. @Index @Code "@Proof" +with the appropriate following space, and @Code "@EndProof" produces +endproof. @Index @Code "@EndProof" +a box at the end of the line. They may be used anywhere, not +just within theorems. +@FootNote { Occasionally @Code "@EndProof" does not +appear as far to the right as it should. This problem can be fixed by using +{@Code "@LD @HExpand @Theorem"}, which instructs Lout to make sure +that as much horizontal space as possible is allocated to the theorem. } +@PP +There are seven symbols that produce independently numbered sequences +in this way. They are {@Code "@Theorem"}, {@Code "@Definition"}, +definition. @Index @Code "@Definition" +claim. @Index @Code "@Claim" +proposition. @Index @Code "@Proposition" +lemma. @Index @Code "@Lemma" +corollary. @Index @Code "@Corollary" +example. @Index @Code "@Example" +{@Code "@Claim"}, {@Code "@Proposition"}, {@Code "@Lemma"}, +{@Code "@Corollary"}, and {@Code "@Example"}. +@PP +The setup file contains options which determine whether the theorem +numbers include a chapter number ({@Code "@ChapterNumInTheorems"}), +or a section number ({@Code "@SectionNumInTheorems"}), and so on. A +section number automatically includes a chapter number, etc. There +are also options to change the word printed. For example, if you +need a sequence of conjectures, change the @Code "@ClaimWord" setup +file option to +@ID @Code "@ClaimWord { Conjecture }" +and use the @Code "@Claim" symbol for your conjectures. You can even put +@ID @Code { +"import @DocumentSetup" +"macro @Conjecture { @Claim }" +} +into your @Code mydefs file (Section {@NumberOf definitions}) if you wish, +so that you can write @Code "@Conjecture" in your documents instead of +{@Code "@Claim"}. +@PP +The setup file also contains two options which control the format of +the theorem (claims and so on have corresponding options). Here they +are with their default values: +@ID @Code { +"@TheoremTitleFormat { (title) }" +"@TheoremFormat { { @B { word @NumSep number title: } &2s } @Insert body }" +} +The first option is used only when a @Code "@Title" is given to the +theorem, and it determines how the title is formatted: the @Code title +symbol within the option stands for the @Code "@Title" option. The default +value shown places parentheses around the title. The second option +determines the format of the entire theorem. Within it, @Code word +stands for the value of {@Code "@TheoremWord"}; +@Code "number" is the number of the theorem; @Code "title" is the title +of the theorem after formatting by {@Code "@TheoremFormat"} (if there +is a title; otherwise @Code title is {@Code "@Null"}, which prints as +nothing and even deletes the preceding space as required); and +@Code body is the body of the theorem. The default value prints the +word, number and title with a colon in bold, and inserts them and two +spaces into the first paragraph of the body; another value might be +@ID @Code { "@TheoremFormat { @B { word @NumSep number title } @LP body }" } +which places the header in bold on a line by itself, separated from the +body by a paragraph break. For @Code "@NumSep" see page {@PageOf numsep}. +@PP +Owing to problems behind the scenes, the @Code "@Theorem" symbol and its +companions have a potential efficiency problem: although all numbers are +finalized on the second run, it takes Lout time proportional to the square +of the highest theorem number to do this. So large numbers of theorems +numbered together might be slow. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/su_crest.eps b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/su_crest.eps new file mode 100755 index 0000000000000..95bc0f9bc3b58 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/su_crest.eps @@ -0,0 +1,1156 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: 0 0 60 53 +%%Pages: 1 +%%Title: Crest for The University of Sydney +%%Creator: jaa@cs.su.oz.au encapsulated by rex@cs.su.oz.au +%%+ Converted for colour and bug fixes by Rex. +%%CreationDate: Wed May 13 18:02:34 EST 1992 +%%+ Converted for colour: Tue Jul 7 20:06:30 EST 1992 +%%DocumentNeededResources: font Times-Bold +%%EndComments +%%BeginProlog +%%EndProlog +%%BeginSetup +%%EndSetup + +% PMS colours +% red - 185 +% blue - 286 +% gold - 871 +gsave +.01 dup scale +-1988 -1050 translate +/colour 1 def % set to one if colour +/pathtextdict 27 dict def + +/pathtext + { pathtextdict begin + /spacing exch def + /offset exch def + /str exch def + /pathdist 0 def + /offset offset str 0 1 getinterval stringwidth pop 2 div add def + /setdist offset def + /charcount 0 def + gsave flattenpath + {movetoproc} {linetoproc} {} {closepathproc} pathforall + grestore + newpath + end } def + +pathtextdict begin + +/movetoproc + { /newy exch def /newx exch def + /firstx newx def /firsty newy def + /ovr setdist pathdist sub def + newx newy transform + /cpy exch def /cpx exch def } def + +/linetoproc + { /oldx newx def /oldy newy def + /newy exch def /newx exch def + /dx newx oldx sub def + /dy newy oldy sub def + /dist dx dup mul dy dup mul add sqrt def + dist 0 ne + { /dsx dx dist div ovr mul def + /dsy dy dist div ovr mul def + oldx dsx add oldy dsy add transform + /cpy exch def /cpx exch def + /pathdist pathdist dist add def + { setdist pathdist le + { charcount str length lt + {setchar} {exit} ifelse } + { /ovr setdist pathdist sub def + exit } + ifelse } loop } if } def + +/closepathproc + { firstx firsty linetoproc + firstx firsty movetoproc } def + +/setchar + { /char str charcount 1 getinterval def + /charcount charcount 1 add def + /charwidth char stringwidth pop def + gsave + cpx cpy itransform translate + dy dx atan rotate + charwidth -2 div 0 moveto char show + /charwidth str length charcount gt + { str charcount 1 getinterval stringwidth pop } + { 0 } ifelse charwidth add 2 div def + charwidth 0 moveto + currentpoint transform + /cpy exch def /cpx exch def + grestore + /setdist setdist charwidth spacing add add def } def +end +/gold_colour { + colour 0 ne + { 0.9453 0.6206 0.004 setrgbcolor } + { 1 setgray } + ifelse +} def +/blue_colour { + colour 0 ne +% { 0.0 0.0 0.0 setrgbcolor } +% { 1.0 1.0 1.0 setrgbcolor } + { 0.0599 0.0526 0.5493 setrgbcolor } + { 1 setgray } + ifelse +} def +/red_colour { + colour 0 ne + { 0.9375 0.0 0.0 setrgbcolor } + { 1 setgray } + ifelse +} def +/c { curveto } def +/m { moveto } def +/l { lineto } def + +/sym1 { 5000 1939 m +4974 2006 4971 2065 4924 2119 c +4909 2137 4893 2152 4870 2153 c +4845 2154 4824 2141 4811 2120 c +4791 2089 4771 2068 4740 2047 c +4722 2079 4713 2105 4706 2141 c +4659 2111 4624 2091 4580 2057 c +4555 2116 4561 2178 4597 2232 c +4570 2236 4551 2242 4525 2242 c +4543 2280 4564 2305 4598 2329 c +4572 2345 4553 2358 4528 2375 c +4432 2284 4332 2235 4201 2226 c +3989 2210 3846 2323 3636 2356 c +3596 2363 3565 2353 3525 2362 c +3478 2372 3444 2415 3441 2463 c +3358 2444 3304 2395 3250 2329 c +3222 2365 3205 2402 3211 2447 c +3179 2445 3148 2437 3135 2408 c +3122 2378 3135 2351 3144 2320 c +3092 2351 3046 2396 3050 2457 c +3053 2509 3097 2544 3146 2563 c +3104 2574 3073 2584 3030 2587 c +3053 2628 3079 2655 3119 2679 c +3070 2703 3031 2726 3003 2773 c +3033 2798 3059 2811 3095 2827 c +3062 2842 3035 2852 2999 2850 c +2961 2846 2934 2826 2909 2798 c +2897 2844 2904 2890 2936 2925 c +2999 2992 3096 2968 3185 2949 c +3143 3062 3116 3145 3080 3260 c +3056 3248 3037 3240 3012 3228 c +3009 3255 3008 3275 3004 3303 c +2954 3263 2914 3228 2851 3218 c +2792 3210 2733 3215 2694 3260 c +2657 3302 2652 3361 2676 3411 c +2698 3457 2745 3480 2796 3479 c +2848 3478 2888 3433 2900 3382 c +2976 3532 2884 3672 2865 3839 c +2853 3951 2882 4059 2972 4127 c +3035 4175 3120 4184 3186 4141 c +3233 4110 3249 4047 3232 3993 c +3306 4030 3338 4126 3312 4204 c +3286 4278 3221 4333 3143 4334 c +3082 4335 3030 4290 3012 4231 c +2987 4270 2970 4307 2979 4352 c +2991 4411 3040 4445 3096 4466 c +3052 4496 3012 4518 2959 4515 c +2915 4512 2887 4486 2857 4455 c +2857 4526 2870 4594 2928 4636 c } def +/sym2 { 3004 4693 3106 4680 3188 4630 c +3195 4668 3210 4699 3241 4721 c +3280 4749 3325 4751 3370 4734 c +3324 4681 3347 4603 3386 4544 c +3428 4480 3447 4422 3454 4346 c +3491 4560 3479 4786 3309 4922 c +3309 4871 3298 4821 3255 4794 c +3200 4760 3143 4771 3080 4784 c +2987 4804 2933 4885 2837 4880 c +2806 4878 2771 4868 2762 4837 c +2750 4800 2777 4768 2801 4737 c +2736 4747 2662 4782 2659 4848 c +2657 4904 2696 4947 2744 4976 c +2706 4986 2676 4992 2637 4986 c +2650 5022 2666 5051 2700 5067 c +2751 5090 2798 5075 2851 5060 c +2854 5126 2881 5190 2942 5213 c +2997 5235 3049 5211 3099 5180 c +3043 5175 2983 5150 2972 5095 c +2960 5029 2985 4969 3033 4922 c +3045 4972 3068 5004 3102 5043 c +3175 5126 3245 5203 3235 5313 c +3228 5402 3182 5463 3122 5528 c +3096 5557 3073 5580 3067 5618 c +3059 5671 3076 5722 3118 5756 c +3174 5801 3245 5811 3313 5787 c +3350 5775 3378 5745 3382 5707 c +3387 5660 3355 5625 3320 5594 c +3378 5596 3424 5615 3465 5657 c +3488 5680 3500 5709 3492 5741 c +3479 5789 3422 5808 3372 5807 c +3398 5849 3436 5877 3485 5879 c +3540 5881 3582 5851 3621 5812 c +3626 5868 3617 5910 3633 5965 c +3647 6015 3678 6046 3720 6077 c +3728 6032 3736 5996 3761 5957 c +3793 6007 3828 6041 3883 6062 c +3939 6083 3991 6081 4047 6060 c +3996 6024 3964 5988 3935 5934 c +3967 5942 3991 5948 4021 5962 c +4016 5935 4014 5915 4008 5889 c +4103 5911 4184 5919 4273 5880 c +4323 5858 4354 5820 4374 5768 c +4396 5801 4407 5829 4419 5867 c +4426 5890 4435 5908 4453 5924 c +4487 5953 4511 5975 4544 6004 c +4556 5978 4563 5960 4575 5935 c +4629 5971 4670 5993 4721 6033 c +4730 5997 4739 5972 4751 5937 c +4775 5951 4795 5964 4806 5990 c +4816 6013 4815 6039 4797 6057 c +4771 6083 4733 6075 4696 6068 c +4704 6112 4719 6149 4757 6172 c +4799 6198 4847 6189 4892 6169 c +4896 6198 4905 6220 4923 6243 c +4942 6267 4969 6275 5000 6276 c +closepath 0 setgray fill } def +/sym3 { 5000 6214 m +4943 6214 4937 6122 4950 6067 c +4900 6113 4830 6146 4770 6114 c +4809 6102 4847 6083 4855 6044 c +4876 5953 4780 5890 4699 5844 c +4690 5859 4685 5870 4676 5885 c +4687 5894 4695 5900 4705 5908 c +4700 5925 4697 5938 4692 5955 c +4663 5938 4642 5927 4615 5910 c +4588 5893 4579 5868 4565 5840 c +4549 5838 4538 5837 4522 5836 c +4531 5867 4536 5892 4530 5924 c +4495 5894 4471 5865 4457 5821 c +4444 5776 4425 5744 4391 5712 c +4388 5697 4383 5687 4376 5673 c +4469 5733 4547 5769 4656 5786 c +4818 5811 4930 5924 5000 6072 c +closepath gold_colour fill +5000 2189 m +4938 2287 4857 2343 4746 2376 c +4678 2396 4629 2419 4570 2459 c +4567 2441 4563 2427 4557 2410 c +4614 2373 4657 2348 4717 2315 c +4676 2303 4642 2301 4606 2277 c +4637 2276 4659 2271 4688 2262 c +4643 2233 4615 2195 4602 2143 c +4652 2176 4692 2196 4748 2215 c +4749 2183 4753 2160 4763 2130 c +4787 2168 4816 2203 4861 2204 c +4925 2205 4976 2156 5000 2096 c +closepath gold_colour fill +4392 2432 m +4408 2444 4419 2476 4402 2484 c +4390 2489 4373 2482 4371 2469 c +4368 2450 4354 2439 4337 2430 c +4322 2422 4305 2425 4292 2436 c +4269 2456 4267 2491 4281 2518 c +4302 2562 4346 2582 4395 2588 c +4443 2593 4494 2578 4515 2534 c +4533 2497 4520 2455 4494 2422 c +4429 2336 4347 2292 4241 2272 c +4078 2243 3955 2308 3798 2362 c +3712 2391 3644 2402 3552 2403 c +3526 2403 3502 2415 3489 2438 c } def +/sym4 { 3478 2458 3480 2484 3496 2500 c +3511 2515 3533 2519 3552 2510 c +3577 2498 3586 2477 3603 2454 c +3616 2466 3627 2472 3641 2482 c +3611 2524 3575 2566 3524 2561 c +3489 2558 3459 2538 3448 2505 c +3371 2498 3317 2460 3262 2407 c +3251 2431 3260 2453 3265 2479 c +3203 2492 3143 2480 3097 2436 c +3096 2455 3095 2471 3107 2487 c +3142 2535 3198 2539 3256 2554 c +3211 2591 3168 2607 3111 2619 c +3127 2634 3139 2645 3158 2654 c +3250 2647 3315 2628 3406 2609 c +3408 2621 3408 2631 3410 2643 c +3340 2669 3285 2680 3211 2689 c +3152 2696 3112 2723 3063 2756 c +3103 2781 3140 2795 3187 2788 c +3134 2861 3054 2899 2965 2890 c +3045 2966 3170 2921 3265 2864 c +3251 2897 3248 2926 3254 2962 c +3340 2893 3343 2793 3410 2707 c +3422 2716 3431 2723 3443 2732 c +3372 2844 3351 2965 3233 3026 c +3227 3016 3223 3008 3218 2997 c +3175 3107 3141 3187 3116 3302 c +3124 3313 3128 3322 3135 3333 c +3160 3280 3179 3241 3192 3184 c +3252 3221 3277 3279 3291 3349 c +3355 3062 3431 2842 3621 2618 c +3809 2396 4163 2253 4392 2432 c +closepath gold_colour fill +3039 4863 m +2983 4908 2943 4954 2927 5024 c +2915 5080 2929 5128 2960 5175 c +2899 5138 2888 5055 2909 4986 c +2847 5018 2791 5045 2724 5028 c +2766 5018 2795 4995 2820 4959 c +2781 4942 2744 4934 2720 4898 c +2705 4875 2705 4845 2720 4822 c +2727 4875 2775 4915 2829 4920 c +2912 4928 2966 4873 3045 4844 c +3043 4851 3042 4856 3039 4863 c +closepath gold_colour } def +/sym5 { 3771 5716 m +3765 5719 3760 5721 3754 5724 c +3770 5759 3789 5787 3823 5803 c +3878 5829 3926 5846 3959 5896 c +3928 5887 3906 5879 3877 5866 c +3878 5934 3908 5984 3952 6036 c +3868 6021 3814 5962 3770 5888 c +3735 5918 3714 5947 3698 5990 c +3657 5925 3671 5860 3657 5785 c +3646 5724 3605 5682 3549 5656 c +3576 5689 3603 5723 3592 5765 c +3578 5817 3517 5835 3463 5835 c +3513 5807 3554 5753 3539 5697 c +3504 5571 3311 5510 3202 5581 c +3175 5599 3155 5628 3162 5659 c +3170 5697 3216 5709 3255 5709 c +3264 5709 3272 5699 3272 5690 c +3272 5682 3266 5673 3258 5672 c +3242 5672 3219 5667 3219 5650 c +3219 5634 3234 5620 3250 5619 c +3283 5618 3311 5638 3327 5667 c +3340 5692 3331 5728 3306 5741 c +3261 5764 3210 5761 3167 5733 c +3130 5710 3107 5670 3114 5627 c +3125 5558 3186 5514 3254 5498 c +3369 5471 3464 5510 3568 5565 c +3734 5651 3855 5715 4032 5775 c +4106 5801 4192 5825 4246 5767 c +4264 5748 4269 5713 4249 5695 c +4238 5684 4222 5684 4207 5688 c +4197 5690 4189 5710 4198 5714 c +4205 5717 4213 5722 4212 5729 c +4210 5738 4203 5742 4196 5747 c +4180 5756 4160 5757 4145 5747 c +4128 5736 4119 5718 4119 5698 c +4119 5657 4151 5616 4192 5612 c +4242 5608 4293 5626 4316 5670 c +4339 5715 4335 5769 4301 5806 c +4259 5852 4200 5860 4138 5854 c +4067 5848 4018 5824 3948 5818 c +3890 5771 3825 5768 3771 5716 c +closepath gold_colour fill +3351 3504 m +3316 3561 3252 3571 3187 3584 c +3110 3600 3060 3641 3004 3697 c +3016 3707 3025 3713 3037 3724 c +3101 3660 3167 3625 3257 3613 c +3312 3606 3361 3640 3388 3688 c +3411 3731 3408 3781 3382 3822 c +3364 3849 3334 3858 3302 3859 c +3271 3861 3242 3842 3231 3813 c +3222 3791 3221 3763 3240 3749 c +3253 3739 3284 3740 3285 3757 c +3286 3768 3301 3773 3312 3771 c +3322 3769 3329 3757 3326 3747 c +3322 3727 3305 3714 3284 3708 c +3256 3700 3230 3704 3203 3718 c +3115 3764 3064 3837 3037 3933 c +3113 3879 3205 3865 3289 3905 c +3595 4053 3667 4488 3532 4801 c +3477 4929 3390 5011 3265 5073 c +3297 5102 3328 5121 3371 5123 c } def +/sym6 { 3413 5125 3443 5105 3479 5084 c +3476 5132 3466 5167 3451 5214 c +3527 5188 3578 5153 3638 5100 c +3632 5179 3602 5235 3556 5299 c +3590 5327 3613 5351 3634 5389 c +3530 5370 3412 5363 3351 5450 c +3310 5451 3280 5452 3240 5461 c +3287 5354 3297 5242 3236 5142 c +3194 5074 3147 5036 3101 4970 c +3075 4931 3081 4876 3115 4844 c +3144 4817 3187 4810 3223 4827 c +3260 4844 3270 4889 3265 4928 c +3262 4944 3246 4954 3230 4952 c +3215 4951 3195 4943 3196 4927 c +3198 4910 3191 4886 3174 4887 c +3140 4888 3147 4960 3174 4980 c +3197 4996 3221 5002 3248 4995 c +3457 4941 3527 4682 3509 4467 c +3501 4375 3484 4302 3429 4228 c +3414 4238 3403 4244 3389 4254 c +3422 4339 3411 4425 3360 4500 c +3318 4562 3278 4620 3293 4695 c +3239 4664 3226 4599 3234 4538 c +3175 4590 3117 4626 3039 4626 c +2987 4625 2949 4593 2920 4550 c +3017 4578 3119 4523 3169 4436 c +3099 4425 3027 4388 3017 4318 c +3072 4363 3134 4389 3203 4373 c +3269 4357 3316 4315 3344 4253 c +3384 4164 3381 4054 3308 3990 c +3269 3956 3220 3939 3171 3956 c +3138 3948 3102 3956 3083 3984 c +3070 4003 3072 4027 3084 4047 c +3094 4064 3113 4077 3132 4073 c +3145 4070 3154 4057 3153 4044 c +3152 4035 3146 4027 3137 4025 c +3130 4024 3125 4024 3119 4026 c +3114 4015 3122 4001 3134 3997 c +3152 3992 3170 4004 3181 4019 c +3192 4037 3190 4058 3182 4078 c +3173 4098 3158 4113 3137 4118 c +3063 4138 2984 4100 2947 4034 c +2887 3928 2905 3819 2938 3702 c +2978 3561 2993 3351 2852 3312 c +2826 3305 2798 3300 2778 3318 c +2760 3335 2756 3368 2774 3386 c +2782 3395 2797 3400 2806 3392 c +2813 3385 2815 3372 2808 3364 c +2804 3358 2809 3347 2816 3347 c +2833 3346 2851 3352 2857 3367 c +2865 3390 2850 3414 2830 3427 c +2803 3444 2768 3445 2742 3426 c +2715 3406 2703 3372 2710 3338 c +2719 3293 2759 3258 2805 3257 c +2904 3254 2972 3321 3034 3397 c +3040 3365 3047 3342 3053 3310 c +3088 3343 3108 3375 3125 3420 c +3173 3371 3193 3321 3214 3256 c +3249 3322 3255 3386 3240 3459 c +3283 3440 3321 3428 3368 3437 c +3376 3438 3379 3449 3376 3457 c +3370 3475 3361 3487 3351 3504 c +closepath gold_colour fill } def + +/sym7 { +%main interior +5000 2313 m +4955 2385 4880 2430 4730 2470 c +4670 2490 4630 2538 4621 2553 c +4641 2530 4630 2538 4621 2553 c +4585 2613 4538 2650 4472 2670 c +4397 2694 4326 2682 4259 2639 c +4193 2598 4169 2523 4172 2445 c +3789 2440 3543 2822 3392 3344 c +3431 3350 3458 3359 3495 3371 c +3490 3425 3475 3465 3415 3578 c +3530 3685 3540 3805 3441 3896 c +3632 4058 3686 4286 3678 4536 c +3673 4730 3650 4830 3573 4935 c +3573 5041 l +3596 5023 3630 4992 3667 4942 c +3740 5075 3732 5205 3670 5295 c +3713 5352 3745 5410 3780 5495 c +3692 5468 3608 5445 3533 5440 c +4026 5680 l +4040 5593 4125 5530 4250 5530 c +4310 5530 4415 5580 4453 5616 c +4514 5658 4607 5693 4661 5699 c +4823 5717 4930 5780 5000 5890 c +closepath 1 setgray fill } def +/sym8 { +% Banner outside +5000 1556 m +4862 1556 4759 1613 4651 1699 c +4509 1814 4423 1918 4279 2033 c +4149 2137 4015 2173 3848 2182 c +3697 2189 3587 2175 3436 2165 c +3273 2154 3136 2138 2993 2218 c +2923 2257 2875 2297 2823 2359 c +2818 2365 2826 2373 2832 2378 c +2864 2398 2887 2412 2919 2433 c +2954 2455 2947 2512 2922 2545 c +2881 2600 2850 2641 2823 2703 c +2793 2771 2795 2830 2758 2894 c +2745 2916 2720 2935 2696 2927 c +2647 2911 2610 2902 2561 2886 c +2557 2885 2552 2889 2550 2894 c +2530 2941 2515 2976 2502 3027 c +2500 3032 2505 3038 2510 3040 c +2546 3054 2573 3062 2609 3075 c +2626 3081 2638 3091 2645 3108 c +2652 3125 2651 3142 2643 3159 c +2619 3213 2586 3244 2561 3297 c +2538 3350 2530 3393 2511 3448 c +2500 3481 2452 3494 2421 3478 c +2291 3413 2194 3370 2064 3305 c +2034 3289 2015 3267 2004 3236 c +1988 3194 2014 3153 2048 3124 c +2053 3119 2059 3111 2065 3115 c +2075 3120 2082 3124 2092 3130 c +2102 3135 2116 3133 2121 3123 c +2134 3092 2150 3073 2169 3046 c +2174 3040 2177 3030 2171 3026 c +2144 3007 2124 2995 2097 2977 c +2081 2966 2072 2948 2074 2928 c +2078 2872 2082 2830 2101 2778 c +2125 2717 2157 2677 2203 2631 c +2210 2624 2219 2620 2228 2623 c +2254 2631 2274 2637 2300 2646 c +2307 2648 2315 2644 2318 2638 c +2330 2616 2332 2597 2339 2574 c +2340 2568 2336 2562 2330 2558 c +2303 2539 2280 2531 2251 2515 c +2240 2509 2234 2497 2237 2484 c +2293 2264 2369 2102 2522 1934 c +2640 1804 2769 1740 2940 1699 c +3122 1655 3264 1689 3451 1705 c +3631 1720 3776 1743 3942 1673 c +4083 1613 4148 1508 4263 1408 c +4485 1215 4706 1090 5000 1090 c +closepath 0 setgray fill } def + +/sym9 { 5000 1502 m +4722 1503 4558 1710 4353 1898 c +4199 2039 4042 2129 3833 2132 c +3632 2136 3486 2109 3286 2101 c +3149 2096 3040 2122 2923 2194 c +2745 2303 2674 2468 2599 2664 c +2500 2600 2426 2557 2324 2497 c +2385 2294 2456 2143 2606 1994 c +2761 1838 2945 1768 3165 1777 c +3357 1784 3497 1797 3689 1807 c +3873 1817 4023 1758 4161 1638 c +4301 1516 4393 1411 4554 1319 c +4703 1234 4828 1178 5000 1177 c +closepath 1 setgray fill +2660 2661 m +2695 2563 2727 2492 2784 2405 c +2798 2413 2808 2420 2822 2430 c +2771 2508 2758 2578 2721 2663 c +2712 2683 2692 2706 2671 2697 c +2658 2692 2655 2674 2660 2661 c +closepath 1 setgray fill +2608 2857 m +2597 2853 2589 2851 2577 2847 c +2586 2839 2592 2833 2602 2826 c +2606 2837 2606 2846 2608 2857 c +closepath 1 setgray fill +2390 2680 m +2403 2655 2407 2634 2412 2607 c +2482 2651 2535 2679 2607 2721 c +2633 2736 2659 2747 2688 2739 c +2726 2728 2751 2702 2766 2665 c +2795 2595 2806 2539 2845 2474 c +2853 2460 2869 2447 2883 2454 c +2901 2463 2894 2490 2885 2508 c +2851 2572 2813 2612 2784 2679 c +2758 2740 2752 2789 2729 2851 c +2722 2870 2709 2890 2689 2888 c +2670 2887 2663 2864 2662 2845 c +2660 2803 2625 2773 2586 2757 c +2514 2728 2462 2707 2390 2680 c +closepath 1 setgray fill +2481 3136 m +2479 3113 2479 3094 2486 3072 c +2500 3078 2510 3082 2524 3088 c +2512 3108 2500 3121 2481 3136 c +closepath 1 setgray fill } def +/syma { +2429 3113 m +2333 3058 2261 3021 2166 2965 c +2173 2856 2202 2775 2261 2684 c +2368 2725 2447 2754 2553 2799 c +2482 2901 2455 2992 2429 3113 c +closepath 1 setgray fill +2472 3422 m +2469 3434 2457 3445 2445 3441 c +2434 3436 2427 3423 2430 3411 c +2438 3381 2452 3362 2471 3338 c +2373 3280 2300 3241 2200 3186 c +2219 3144 2234 3114 2259 3077 c +2326 3114 2374 3141 2441 3178 c +2466 3191 2497 3200 2518 3182 c +2549 3156 2567 3134 2593 3105 c +2600 3136 2599 3166 2579 3190 c +2552 3224 2532 3250 2514 3289 c +2493 3336 2484 3372 2472 3422 c +closepath 1 setgray fill +2380 3392 m +2379 3400 2368 3406 2361 3402 c +2269 3354 2202 3321 2112 3270 c +2093 3260 2096 3233 2102 3212 c +2103 3210 2105 3206 2107 3208 c +2210 3264 2288 3301 2391 3358 c +2386 3370 2383 3380 2380 3392 c +closepath 1 setgray fill } def +/symb_colour { +% cross in 'azure' blue +blue_colour +5000 2313 m +4955 2385 4880 2430 4730 2470 c +4670 2490 l +4670 3220 l +3430 3220 l +3392 3344 l +3431 3350 3458 3359 3495 3371 c +3490 3425 3475 3465 3415 3578 c +3530 3685 3500 3805 3490 3813 c +4670 3813 l +4670 4582 l +5000 4582 l +closepath fill +% Chief Gules +red_colour +5000 4582 m +3675 4582 l +3673 4730 3650 4830 3573 4935 c +3573 5041 l +3596 5023 3630 4992 3667 4942 c +3740 5075 3732 5205 3670 5295 c +3713 5352 3745 5410 3780 5495 c +3692 5468 3608 5445 3533 5440 c +4026 5680 l +4040 5593 4125 5530 4250 5530 c +4310 5530 4415 5580 4453 5616 c +4514 5658 4607 5693 4661 5699 c +4823 5717 4930 5780 5000 5890 c +closepath fill +% and now some lines around the cross, and at the base of the lion field +0 setgray +16 setlinewidth +3675 4582 m 5000 4582 l stroke +3490 3813 m 4670 3813 l 4670 4582 l stroke +3430 3220 m 4670 3220 l 4670 2490 l stroke +} def +/book_clasp { +2 copy +gold_colour +m +50 0 rlineto +0 50 rlineto +-50 0 rlineto +closepath fill +2 copy +0 setgray +m +50 0 rlineto +stroke +m +0 50 rmoveto +50 0 rlineto +stroke +} def +/sym_book { +% Book outline +% First fill the outline +1 setgray +5000 3742 m +4856 3798 4755 3804 4671 3700 c +4671 3325 l +5329 3325 l +5329 3700 l +5245 3804 5144 3798 5000 3742 c +closepath fill +% along the base of the book colour it gold +gold_colour +5329 3315 m +5227 3420 5114 3413 5000 3363 c +4886 3413 4773 3420 4671 3315 c +closepath fill +% Clasps for the book +% Firstly colour the clasps gold +gold_colour +8 setlinewidth +4671 3355 m +4611 3355 l +4611 3700 l +4671 3700 l +closepath +gsave +fill +grestore +0 setgray +stroke +% and strokes on the clasp holder +3412 58 3644 { dup 4611 exch m 4671 exch l stroke } for +4671 3300 m 4671 3700 l stroke +% Now do the three book clasps +5329 3400 book_clasp +5329 3500 book_clasp +5329 3600 book_clasp +% then actually draw the book in black +16 setlinewidth +0 setgray +5000 3742 m +5000 3363 l +4886 3413 4773 3420 4671 3315 c +4671 3700 l +4755 3804 4856 3798 5000 3742 c +closepath stroke +5329 3700 m +5245 3804 5144 3798 5000 3742 c +5000 3363 l +5114 3413 5227 3420 5329 3315 c +5329 3700 l +closepath stroke +5337 3300 m +4663 3300 l +stroke +% Stroke along the spine of the book +5000 3300 m +5000 3742 l +stroke +% Line to the sides of the book +22 setlinewidth +4716 3360 m +4716 3750 l +stroke +5284 3360 m +5284 3750 l +stroke +0 setgray +% finally some fine text lines on the book +4 setlinewidth +3470 60 3710 { dup dup dup dup dup dup dup + 4766 exch m 4840 exch l stroke + 5234 exch m 5160 exch l stroke + 4877 exch m 4953 exch l stroke + 5123 exch m 5047 exch l stroke + } for +} def +/symb_mono { +0 setgray 30 setlinewidth +% bottom most horizontal stroke +4860 2400 m 5000 2400 l stroke +% Horizontal strokes to base of book +2500 100 3200 { dup 4670 exch m 5000 exch l stroke } for +% strokes to the sides of the book +3300 100 3700 { dup 3400 exch m 5000 exch l stroke } for +% horiz strokes above the book +3800 100 4500 { dup 4670 exch m 5000 exch l stroke } for +% Vertical strokes to the top of the figure +3614 5450 m 3614 5520 l stroke +5060 5580 5620 5680 5720 5590 5570 5580 5620 5690 5720 5740 5770 5860 5950 +5000 -99 3614 { dup 4620 m exch l stroke } for +% bottom dark horizontal line for cross +84 setlinewidth 3400 3220 m 4696 3220 l stroke +% Top dark horizontal line for cross +56 setlinewidth 3460 3813 m 4696 3813 l stroke +% Bottom dark line for vertical strokes +92 setlinewidth 3650 4582 m 5000 4582 l stroke +} def + +/sym { sym1 sym2 sym3 sym4 sym5 sym6 sym7 sym8 sym9 syma + colour 0 ne + { symb_colour } + { symb_mono } + ifelse +} def + +% Draw the main body of the crest.. +0 setlinecap +5000 0 translate -1 1 scale -5000 0 translate sym +5000 0 translate -1 1 scale -5000 0 translate sym +sym_book +colour 0 eq +{ + % draw the dark & light edges for the cross + 30 setlinewidth + 4681 3813 m 4681 4582 l stroke + 4681 3220 m 4681 2400 l stroke + 84 setlinewidth + 5346 3813 m 5346 4582 l stroke + 5346 3220 m 5346 2400 l stroke +} if + +/star { +-41 -82 rlineto +-112 42 rlineto +39 -90 rlineto +-85 -52 rlineto +87 -48 rlineto +-28 -86 rlineto +93 33 rlineto +45 -89 rlineto +44 83 rlineto +90 -28 rlineto +-27 106 rlineto +75 45 rlineto +-77 42 rlineto +28 82 rlineto +-90 -24 rlineto +-41 66 rlineto closepath } def +% Draw the lion in black +0 setlinewidth +5863 4715 m +5825 4660 5740 4655 5695 4700 c +5660 4670 5608 4670 5582 4700 c +5553 4730 5555 4780 5588 4800 c +5554 4852 5576 4902 5655 4895 c +5668 4893 5678 4900 5678 4910 c +5678 4970 l +5607 4971 5546 4980 5481 5020 c +5481 4875 l +5363 4930 5323 4890 5364 4810 c +5267 4842 5240 4830 5245 4735 c +5174 4810 5112 4773 5146 4703 c +5115 4655 5055 4640 5021 4678 c +4972 4677 4934 4694 4923 4723 c +4910 4757 4917 4798 4955 4822 c +4932 4850 4952 4875 4983 4896 c +5012 4918 5050 4911 5077 4892 c +5190 4970 l +5127 5061 l +5010 4973 4928 4950 4870 4962 c +4845 4910 4795 4875 4733 4858 c +4659 4942 4610 4932 4602 4804 c +4520 4855 4483 4842 4460 4757 c +4422 4782 4393 4781 4367 4760 c +4378 4710 4357 4672 4326 4659 c +4285 4648 4240 4655 4223 4697 c +4167 4693 4137 4720 4115 4752 c +4112 4790 4130 4828 4183 4840 c +4183 4875 4192 4901 4222 4920 c +4248 4939 4272 4930 4313 4904 c +4315 4980 4272 5010 4225 4994 c +4233 5040 4231 5070 4195 5080 c +4149 5060 4095 5062 4075 5090 c +4050 5112 4045 5159 4074 5193 c +4047 5238 4050 5270 4075 5301 c +4108 5338 4162 5330 4196 5298 c +4232 5320 4262 5315 4287 5285 c +4304 5262 4312 5220 4275 5181 c +4387 5072 l +4430 5095 l +4408 5132 4395 5145 4395 5175 c +4375 5193 4355 5219 4347 5251 c +4302 5293 4300 5330 4335 5367 c +4283 5422 4314 5485 4393 5483 c +4407 5531 4465 5552 4506 5530 c +4545 5561 4615 5562 4655 5530 c +4716 5543 4762 5522 4770 5472 c +4835 5490 4855 5422 4813 5372 c +4844 5313 l +4960 5313 l +4865 5422 4870 5514 5015 5575 c +5035 5631 5067 5658 5114 5700 c +5128 5713 5153 5702 5151 5672 c +5150 5617 l +5195 5656 5240 5660 5258 5628 c +5267 5611 5259 5586 5204 5530 c +5220 5511 5227 5470 5207 5423 c +5255 5442 5300 5467 5334 5485 c +5473 5565 5652 5553 5728 5450 c +5771 5382 5770 5338 5708 5272 c +5673 5245 5674 5200 5702 5173 c +5745 5131 5802 5110 5865 5093 c +5810 5033 5813 5010 5866 4968 c +5795 4925 5795 4898 5863 4850 c +5786 4791 5783 4760 5863 4715 c +5539 5324 m +5565 5327 5589 5328 5607 5348 c +5620 5363 5615 5388 5601 5403 c +5586 5421 5562 5419 5539 5418 c +5470 5406 5386 5372 5332 5324 c +5539 5324 l +closepath 0 setgray fill +% We firstly fix problems, +% The hole in the tail +red_colour +5091 5462 m +5083 5471 5073 5475 5062 5475 c +5050 5475 5040 5471 5032 5462 c +5023 5454 5019 5444 5019 5433 c +5019 5421 5023 5411 5032 5403 c +5040 5394 5050 5390 5062 5390 c +5073 5390 5083 5394 5091 5403 c +5100 5411 5104 5421 5104 5433 c +5104 5444 5100 5454 5091 5462 c +closepath fill +% Inside of right fore paw +4294 5212 m +4287 5200 4282 5191 4274 5180 c +4280 5173 4287 5171 4294 5164 c +4294 5182 4295 5195 4294 5212 c +closepath fill +% Rest of the right fore paw +4328 5261 m +4328 5212 4328 5176 4328 5127 c +4347 5110 4360 5098 4379 5080 c +4386 5074 4401 5084 4400 5094 c +4400 5120 4396 5138 4396 5164 c +4395 5179 4386 5190 4375 5200 c +4354 5219 4354 5250 4328 5261 c +closepath fill +% and now in the rest in gold +gold_colour +% crotch +5300 5162 m +5326 5166 5354 5166 5371 5145 c +5344 5139 5321 5146 5300 5162 c +% Right hind leg +closepath fill +5316 4855 m +5271 4863 5221 4835 5211 4791 c +5188 4803 5166 4806 5141 4798 c +5107 4787 5107 4741 5109 4704 c +5096 4692 5085 4679 5067 4680 c +5044 4682 5030 4709 5033 4731 c +5034 4740 5010 4743 5009 4734 c +5007 4723 4998 4712 4987 4713 c +4962 4716 4939 4737 4939 4762 c +4939 4784 4964 4797 4986 4797 c +4995 4797 5003 4816 4995 4821 c +4979 4831 4973 4859 4987 4872 c +5010 4893 5051 4883 5071 4860 c +5123 4892 5160 4917 5211 4950 c +5221 4956 5224 4970 5218 4979 c +5200 5007 5187 5027 5171 5056 c +5162 5072 5157 5096 5173 5104 c +5207 5121 5231 5135 5264 5152 c +5299 5125 5338 5112 5382 5120 c +5405 5088 5425 5067 5451 5037 c +5450 4993 5449 4961 5449 4916 c +5416 4926 5386 4940 5356 4924 c +5330 4910 5318 4884 5316 4855 c +closepath fill +% Chest +4631 5190 m +4627 5148 4616 5095 4575 5091 c +4535 5087 4514 5140 4511 5180 c +4491 5152 4467 5122 4481 5091 c +4494 5062 4515 5048 4537 5025 c +4580 5046 4612 5060 4653 5085 c +4673 5097 4681 5120 4680 5144 c +4679 5168 4651 5175 4631 5190 c +closepath fill +% Main Body +4306 4871 m +4291 4896 4249 4908 4229 4888 c +4212 4871 4212 4841 4227 4824 c +4224 4819 4220 4817 4217 4812 c +4195 4813 4169 4805 4166 4784 c +4163 4765 4171 4745 4188 4737 c +4207 4728 4229 4738 4243 4753 c +4249 4748 4255 4746 4261 4742 c +4255 4722 4259 4695 4278 4688 c +4297 4682 4319 4681 4332 4696 c +4346 4713 4336 4734 4330 4755 c +4328 4762 4327 4769 4332 4775 c +4358 4805 4401 4817 4438 4801 c +4464 4849 4526 4868 4577 4851 c +4579 4891 4612 4926 4652 4932 c +4687 4936 4722 4923 4740 4892 c +4781 4908 4812 4928 4835 4965 c +4843 4977 4841 4989 4839 5002 c +4835 5027 4826 5043 4815 5065 c +4810 5074 4836 5085 4841 5076 c +4856 5048 4864 5026 4873 4996 c +4939 4998 4995 5004 5047 5045 c +5138 5116 5212 5185 5328 5191 c +5357 5192 5384 5181 5399 5156 c +5462 5050 5572 5010 5694 4995 c +5703 4994 5707 4984 5707 4975 c +5707 4912 5707 4866 5707 4802 c +5697 4802 5689 4802 5678 4801 c +5677 4822 5674 4837 5672 4858 c +5669 4883 5613 4876 5605 4853 c +5597 4833 5615 4813 5633 4800 c +5631 4793 5628 4787 5626 4780 c +5610 4780 5592 4778 5587 4764 c +5581 4748 5584 4729 5598 4719 c +5613 4708 5630 4703 5649 4709 c +5668 4714 5679 4728 5690 4745 c +5698 4744 5703 4743 5711 4742 c +5718 4710 5767 4698 5797 4712 c +5769 4752 5770 4807 5801 4845 c +5773 4874 5770 4922 5794 4954 c +5772 4992 5773 5033 5791 5072 c +5745 5094 5709 5112 5675 5150 c +5643 5186 5635 5231 5647 5277 c +5688 5310 5718 5357 5707 5410 c +5691 5483 5604 5514 5529 5511 c +5385 5505 5298 5418 5159 5379 c +5109 5365 5062 5347 5019 5374 c +4997 5388 4981 5409 4982 5436 c +4983 5465 5003 5488 5030 5500 c +5052 5510 5077 5511 5097 5497 c +5118 5482 5125 5460 5127 5435 c +5128 5423 5147 5413 5157 5419 c +5175 5430 5187 5447 5185 5468 c +5182 5495 5172 5513 5161 5537 c +5187 5554 5199 5574 5217 5599 c +5222 5606 5204 5619 5198 5613 c +5175 5593 5153 5586 5128 5568 c +5122 5563 5107 5568 5107 5576 c +5110 5608 5110 5631 5109 5663 c +5072 5629 5045 5590 5050 5541 c +4992 5542 4922 5509 4919 5451 c +4916 5384 4969 5341 5021 5300 c +4954 5296 4904 5297 4836 5293 c +4833 5276 4821 5264 4806 5256 c +4798 5223 4777 5202 4749 5185 c +4742 5157 4725 5138 4701 5122 c +4694 5093 4682 5069 4657 5054 c +4531 4981 4435 4936 4306 4871 c +5207 5299 l +5319 5353 5395 5408 5515 5439 c +5555 5450 5594 5453 5625 5426 c +5643 5411 5654 5391 5650 5368 c +5645 5330 5611 5298 5573 5297 c +5207 5299 l +closepath fill +% Mane below Left Ear +4774 5350 m +4765 5338 4761 5328 4755 5315 c +4770 5303 4780 5293 4793 5279 c +4800 5284 4804 5289 4810 5295 c +4805 5296 4802 5296 4798 5296 c +4798 5307 4798 5315 4797 5325 c +4796 5338 4783 5342 4774 5350 c +closepath fill +% Mane below Right Ear +4378 5312 m +4368 5324 4365 5337 4362 5352 c +4344 5342 4322 5328 4326 5308 c +4328 5296 4333 5287 4342 5278 c +4354 5292 4362 5302 4378 5312 c +closepath fill +% Mane below left Eye +4690 5230 m +4683 5217 4674 5209 4661 5200 c +4677 5187 4687 5177 4700 5161 c +4713 5173 4735 5196 4720 5207 c +4709 5216 4701 5222 4690 5230 c +closepath fill +% Mane below right Eye +4483 5195 m +4466 5201 4452 5207 4443 5221 c +4420 5208 4398 5174 4416 5155 c +4425 5145 4432 5139 4442 5131 c +4454 5156 4465 5173 4483 5195 c +closepath fill +% Face +4426 5435 m +4418 5454 4400 5481 4417 5491 c +4440 5505 4461 5512 4487 5509 c +4496 5508 4505 5506 4510 5498 c +4521 5479 4526 5464 4536 5444 c +4545 5445 4552 5447 4561 5447 c +4556 5473 4519 5512 4545 5518 c +4571 5524 4606 5536 4619 5512 c +4632 5489 4639 5471 4645 5445 c +4655 5447 4662 5447 4673 5448 c +4669 5471 4658 5508 4681 5511 c +4701 5514 4721 5508 4733 5493 c +4744 5479 4724 5463 4711 5452 c +4717 5445 4722 5440 4729 5433 c +4752 5447 4788 5465 4803 5441 c +4818 5417 4783 5392 4758 5378 c +4754 5375 4750 5372 4747 5367 c +4739 5350 4733 5338 4724 5321 c +4721 5315 4723 5307 4729 5303 c +4747 5289 4758 5276 4777 5262 c +4769 5246 4759 5235 4743 5228 c +4725 5241 4711 5250 4693 5263 c +4693 5269 4694 5273 4694 5278 c +4685 5278 4679 5279 4670 5278 c +4671 5247 4642 5218 4610 5218 c +4597 5218 4585 5226 4581 5239 c +4575 5260 4600 5274 4620 5283 c +4632 5288 4643 5297 4643 5310 c +4643 5325 4644 5336 4643 5350 c +4643 5357 4648 5363 4654 5366 c +4668 5373 4678 5377 4692 5384 c +4690 5393 4689 5400 4687 5410 c +4665 5402 4650 5396 4629 5387 c +4622 5385 4616 5379 4616 5371 c +4615 5351 4611 5336 4612 5315 c +4613 5307 4605 5300 4597 5300 c +4575 5299 4560 5301 4539 5301 c +4529 5301 4524 5312 4523 5322 c +4521 5339 4520 5351 4519 5369 c +4518 5376 4516 5384 4509 5386 c +4486 5397 4470 5405 4446 5414 c +4443 5405 4440 5399 4437 5390 c +4458 5382 4472 5371 4492 5361 c +4494 5340 4494 5325 4496 5304 c +4498 5288 4516 5279 4533 5278 c +4545 5277 4551 5262 4551 5249 c +4551 5235 4541 5217 4526 5218 c +4509 5220 4496 5219 4478 5222 c +4456 5227 4461 5258 4459 5281 c +4450 5281 4443 5281 4434 5281 c +4435 5257 4423 5236 4402 5223 c +4388 5214 4371 5235 4366 5251 c +4360 5273 4387 5291 4409 5295 c +4410 5301 4411 5305 4412 5311 c +4394 5328 4388 5350 4388 5375 c +4361 5387 4321 5414 4338 5437 c +4355 5460 4391 5441 4414 5425 c +4418 5428 4421 5432 4426 5435 c +closepath fill +% Tongue +4564 5204 m +4556 5198 4549 5194 4540 5192 c +4543 5167 4546 5129 4571 5130 c +4597 5130 4596 5170 4595 5195 c +4583 5197 4574 5198 4564 5204 c +closepath fill +% Right Fore Paw +4458 5072 m +4429 5058 4408 5049 4379 5036 c +4324 5086 4286 5124 4232 5174 c +4255 5202 4277 5248 4249 5271 c +4228 5288 4201 5264 4179 5248 c +4158 5270 4127 5298 4103 5280 c +4075 5260 4096 5216 4115 5188 c +4094 5177 4077 5154 4084 5131 c +4093 5101 4137 5086 4166 5100 c +4186 5110 4208 5111 4227 5099 c +4248 5084 4250 5059 4253 5034 c +4304 5041 4346 4983 4351 4931 c +4408 4961 4450 4983 4506 5014 c +4487 5034 4471 5048 4458 5072 c +closepath fill +% Draw the stars (outline in black) +0 setgray 60 setlinewidth +3943 3714 m star stroke +6077 3714 m star stroke +5010 2943 m star stroke +5010 4379 m star stroke +% and fill in gold +gold_colour +3928 3725 m star fill +6062 3725 m star fill +4995 2958 m star fill +4995 4394 m star fill + +0 setgray +%%IncludeResource: font Times-Bold + +/Times-Bold findfont [ 342 0 0 250 0 0 ] makefont setfont newpath + +2430 2395 m +2460 2278 2514 2220 2555 2180 c +2576 2140 2613 2090 2662 2053 c +2730 1993 2812 1925 2910 1893 c +2987 1870 3115 1851 3207 1855 c +3290 1860 3400 1860 3495 1870 c +3760 1890 3990 1834 4135 1732 c +4195 1690 4273 1615 4320 1565 c +4368 1513 4517 1435 4547 1390 c +4666 1320 4847 1250 5000 1250 c +5153 1250 5334 1320 5453 1390 c +5483 1435 5632 1513 5680 1565 c +5727 1615 5805 1690 5865 1732 c +6010 1834 6240 1890 6505 1870 c +6600 1860 6710 1860 6793 1855 c +6885 1851 7013 1870 7090 1893 c +7188 1925 7270 1993 7338 2053 c +7387 2090 7424 2140 7445 2180 c +7486 2220 7540 2278 7570 2395 c +(SIDERE\264MENS\264EADEM\264MUTATO) 0 30 pathtext +grestore +showpage +%%Trailer diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl new file mode 100755 index 0000000000000..545e867855d77 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl @@ -0,0 +1,56 @@ +@Chapter + @Title { Tables } + @Tag { tables } +@Begin +@LP +This chapter explains how to produce tables like this one: +tables. @Index { tables } +@CD @Tbl + aindent { ctr } + arulebelow { double } + aformat { @StartHSpan @Cell @B X | | @HSpan } + bindent { align } + bformat { @Cell rr { no } @I A | @Cell rl { no } B | @Cell C } + rule { yes } +{ +@Rowa + X { Value of mathematical formulae (millions of dollars) } +@Rowb + A { Quadratic formula } + B { @Eq { x ^= { minus b +- sqrt { b sup 2 - 4ac } } over 2a } } + C { 3^.5 } +@Rowb + A { Binomial theorem } + B { @Eq { ( a + b ) sup n ^= big sum from k=0 to infty +matrix atleft { ( } atright { ) } { n above k } a sup k b sup n-k +} } + C { 12^ } +} +As the example shows, the tables may contain spanning columns, aligned +columns, and rules, and the cells may contain arbitrary objects. +@FootNote { +There has been a slight change to {@Code "@Tbl"}, starting with Version +3.18: if you want columns whose entries are aligned (on decimal points, +equals signs, etc.), or the analogous thing with rows, you have to ask +for it now, whereas before it happened automatically. See +Section {@NumberOf tbl_alig} for the details. +} +@BeginSections + +@Include { tbl_intr } # introduction +@Include { tbl_cell } # basic cell formatting: font, break, width, paint +@Include { tbl_rows } # row formats and the @Row symbol +@Include { tbl_rule } # rules +@Include { tbl_marg } # margins +@Include { tbl_widt } # width and height +@Include { tbl_inde } # indenting and struts +@Include { tbl_alig } # aligned columns and headings over them +@Include { tbl_span } # spanning columns and rows +@Include { tbl_mark } # @MarkRow +@Include { tbl_mult } # multi-page tables +@Include { tbl_plai } # plain text tables +@Include { tbl_setu } # setup file options +@Include { tbl_summ } # summary + +@EndSections +@End @Chapter diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_alig b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_alig new file mode 100755 index 0000000000000..69e5588d75b54 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_alig @@ -0,0 +1,103 @@ +@Section + @Title { Aligned columns } + @Tag { tbl_alig } +@Begin +@PP +Columns of numbers are often presented with decimal points aligned: +aligned.columns @Index { aligned columns in tables } +@CD @OneRow @Tbl + marginvertical { 0.5vx } + aformat { @Cell indent { align } A } +{ +@Rowa A { 5^.46 } marginabove { 0i } +@Rowa A { 3^.4159 } +@Rowa A { 5772^ } marginbelow { 0i } +} +To produce this you need two steps. First, indicate that you want +an aligned column, using @Code "indent { align }" on the relevant +cell; and second, place a @Code "^" symbol, which is used generally +throughout Lout for alignment, just before the alignment point in +each entry: +@ID @OneRow @Code @Verbatim { +@Tbl + marginvertical { 0.5vx } + aformat { @Cell indent { align } A } +{ +@Rowa A { 5^.46 } +@Rowa A { 3^.4159 } +@Rowa A { 5772^ } +} +} +The equals signs of equations can be aligned in the same way. +@PP +Owing to problems behind the scenes, in a column in which one cell is +labelled {@Code "indent { align }"}, all the other cells have to be +so labelled, otherwise Lout make a mess of things. This is a problem +when we want to get a heading over the top of an aligned column: if +we follow the rule, the @I heading gets aligned, which is wrong. There +is no ideal solution to this problem. +@PP +What most people want is for the heading to be centred in the column, and the +aligned entries to be centred in the column as a block, but Lout cannot +do this. One approximation is to make the heading cell a spanning +cell (Section {@NumberOf tbl_span}) with centring, like this: +@FootNote { Lout does not currently accept single-column tables +with {@Code "@StartHSpan"}, so we've had to add +an empty second column. } +@ID @OneRow @Code @Verbatim { +@Tbl + marginvertical { 0.5vx } + aformat { @StartHSpan @Cell indent { ctr } @B A | } + bformat { @Cell indent { align } A | } +{ +@Rowa A { Head } +@Rowb A { 5^.46 } +@Rowb A { 3^.4159 } +@Rowb A { 5772^ } +} +} +The spanning quarantines the centred cell, permitting +@Code "indent { ctr }" to work: +@CD @OneRow @Tbl + marginvertical { 0.5vx } + aformat { @StartHSpan @Cell indent { ctr } @B A | } + bformat { @Cell indent { align } A | } +{ +@Rowa A { Head } marginabove { 0i } +@Rowb A { 5^.46 } +@Rowb A { 3^.4159 } +@Rowb A { 5772^ } marginbelow { 0i } +} +But if the heading cell is wider than the aligned cells, you get this: +@CD @OneRow @Tbl + marginvertical { 0.5vx } + aformat { @StartHSpan @Cell indent { ctr } @B A | } + bformat { @Cell indent { align } A | } +{ +@Rowa A { A Wider Heading } marginabove { 0i } +@Rowb A { 5^.46 } +@Rowb A { 3^.4159 } +@Rowb A { 5772^ } marginbelow { 0i } +} +In other words, this will centre a heading with respect +to aligned entries, but it will not centre aligned entries with +respect to a heading. In these cases you could forget about +@Code "@StartHSpan" and treat the heading as an aligned entry, +either by placing a @Code "^" within it or by using +@ID @Code "@Cell 0.5w @HShift A" +which places the alignment point in the centre of the entry: +@CD @OneRow @Tbl + indent { align } + marginvertical { 0.5vx } + aformat { @Cell 0.5w @HShift @B A } + bformat { @Cell A } +{ +@Rowa A { A Wider Heading } marginabove { 0i } +@Rowb A { 5^.46 } +@Rowb A { 3^.4159 } +@Rowb A { 5772^ } marginbelow { 0i } +} +You can move the alignment point about by changing the 0.5 to something +smaller or larger. Of course, all this is a poor substitute for the +real thing. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_cell b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_cell new file mode 100755 index 0000000000000..159372e22cb72 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_cell @@ -0,0 +1,97 @@ +@Section + @Title { Changing the appearance of cells } + @Tag { tbl_cell } +@Begin +@PP +The @Code "@Cell" symbol offers a few options for changing the appearance +cell.option @Index { cell options in tables } +of entries placed in it. Like all options, these +appear immediately after the @Code "@Cell" symbol, with their values in braces: +@ID @OneRow @Code @Verbatim { +@Tbl + aformat { @Cell paint { lightgrey } font { Italic } break { clines } A } +{ +@Rowa A { +IMPORTANT +Do not throw stones at this notice +} +} +} +The result here is +@CD +@Tbl + aformat { @Cell paint { lightgrey } font { Italic } break { clines } A | @Cell B } +{ +@Rowa A { +IMPORTANT +Do not throw stones at this notice +} +} +with a light grey background, Italic font, and +@Code "clines" paragraph breaking style. The paint colour +may be any colour from Section {@NumberOf colour}. Another option, +{@Code background}, allows an arbitrary object to be placed in the +background of the cell, in front of any paint but behind the entry. +@PP +Later sections introduce other @Code "@Cell" options, for +fixed-width columns, indented entries, margins, and rules. It is also +possible to combine other symbols from Lout with cell formatting, by +placing them between the @Code "@Cell" symbol and its following letter, +rotated.entries @Index { rotated entries in tables } +like this: +@ID @OneRow @Code @Verbatim { +@Tbl + aformat { @Cell 90d @Rotate @S A | @Cell @B grey @Colour B } +{ +@Rowa + A { Col A } + B { Col B } +} +} +Think of the @Code "A" as standing for the value of the @Code "A" +option of the @Code "@Rowa" symbol (which it does), and you'll see +that this is just Lout's usual rule of symbols applying to the +object that follows them. The result here is +@CD @Tbl + aformat { @Cell 90d @Rotate @S A | @Cell @B grey @Colour B } +{ +@Rowa + A { Col A } + B { Col B } +} +In simple cases @Code "@B" is easier than {@Code "font { Bold }"}; +the latter is useful as a default value, as we will see in a moment. +Note the difference between a coloured background, obtained with +{@Code "paint"}, and a coloured entry, obtained using the @Code "@Colour" +symbol. +@PP +@Code "@Tbl" offers many places where you can set cell options. The meaning +of the option is the same wherever you set it; +what changes is the extent of its application. Taking the @Code "paint" +option as a representative example, the most specific place to set it +is at a @Code "@Cell" symbol as above; then it affects only that cell +in rows formatted using that format. Alternatively, +@ID @OneRow @Code @Verbatim { +@Tbl + apaint { lightgrey } + aformat { @Cell A | @Cell B } +} +will paint every cell in the {@Code "aformat"}. And +@ID @OneRow @Code @Verbatim { +@Rowa + paint { lightgrey } + A { ... } +} +will paint every cell in a particular row. To paint the entire table, use +@ID @OneRow @Code @Verbatim { +@Tbl + paint { lightgrey } +} +And finally, there is a @Code "paint" option in the +setup file (Section {@NumberOf tbl_setu}), which if set will paint every +table in the document. When a more general setting of an option is +contradicted by a more specific setting (e.g. when @Code "@Tbl" has +@Code "paint { lightgrey }" but some cell or row has +{@Code "paint { nopaint }"}), the more specific setting applies. For a +precise description, see Section {@NumberOf tbl_summ}. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_inde b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_inde new file mode 100755 index 0000000000000..62080c0592098 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_inde @@ -0,0 +1,56 @@ +@Section + @Title { Indenting and struts } + @Tag { tbl_inde } +@Begin +@PP +By default, entries appear at the left within cells, not counting the +cell margin. The @Code indent option causes entries to be indented +horizontally. For example, +@ID @OneRow @Code "@Cell indent { ctr }" +horizontally centres the entry within the cell. Other possible values +centred.entries @Index { centred entries in tables } +right.justified.entries @Index { right justified entries in tables } +are {@Code "left"} (the default value), {@Code "right"}, +{@Code "align"} (Section {@NumberOf tbl_alig}), or any length (for +example, {@Code 2f}) meaning that much indent. +@PP +There is a corresponding @Code "indentvertical" option for vertical indenting +within the cell. It takes the same values except that @Code "left" is +renamed {@Code "top"} (the default), and @Code "right" is renamed +{@Code foot}. A common problem with vertical placement is that words that +lack ascenders (parts of letters that rise up) or descenders (parts that +sink down) can easily become misaligned. Looking at +@CD @Tbl + mv { 0i } + aformat { @Cell A | @Cell B | @Cell C } +{ +@Rowa + A { resume } + B { poppy } + C { title } +} +which is the result of +@ID @OneRow @Code @Verbatim { +@Tbl + aformat { @Cell A | @Cell B | @Cell C } +{ +@Rowa + A { resume } + B { poppy } + C { title } +} +} +we see that the words are aligned correctly despite these +worries. This is because by default +@Code "@Tbl" adds a @I { vertical strut } to each entry: an invisible +object of zero width and height {@Code "1f"}, which covers for any absent +ascenders and descenders. The option +@ID @OneRow @Code "@Cell strut { no }" +can be used to remove the strut; other acceptable values for this +option are {@Code yes} (the default value), and any length, which will +add a strut of that length. +@PP +For completeness there is a corresponding @Code "struthorizontal" option; it +takes the same values, its default value is {@Code no}, and it unlikely +ever to be used. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_intr b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_intr new file mode 100755 index 0000000000000..1c9160ee463f2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_intr @@ -0,0 +1,121 @@ +@Section + @Title { Getting started } + @Tag { tbl_intr } +@Begin +@PP +The Lout definitions for table formatting +@FootNote { +The @Code "tbl" package described here replaces the @Code "tab" +package of Version 3.12 and earlier. For backward compatibility +the @Code "tab" package is still available and still works as +described in older versions of this documentation. Users of +@Code "tab" will find simple uses of @Code "tbl" to be very similar, +replacing @Code "@Tab" by {@Code "@Tbl"}, @Code "@Fmta" by +{@Code "aformat"}, @Code "@Col" by {@Code "@Cell"}, and +@Code "!" by {@Code "|"}. +} +are kept in a file called {@Code "tbl"}, which you must include at +the start of your document if +tbl.file @Index { @Code "tbl" file } +you want tables, like this: +@ID @OneRow @Code { +"@SysInclude { tbl }" +"@SysInclude { doc }" +"@Doc @Text @Begin" +"..." +"@End @Text" +} +Specialized setup files, like {@Code "tbl"}, are included before the main +setup file (@Code "doc" in this case). Alternatively, if you are using +your own setup file, you may place the include commands within it, near the +start. +@PP +To begin with a very simple example, the table +tbl. @Index @Code "@Tbl" +@CD +@Tbl + aformat { @Cell A | @Cell B | @Cell C } +{ +@Rowa + A { Austen } + B { Chaucer } + C { Donne } +@Rowa + A { Balzac } + B { Darwin } + C { Goethe } +@Rowa + A { Byron } + B { Dickens } + C { Homer } +} +is produced by the following input: +@ID @OneRow @Code @Verbatim { +@Tbl + aformat { @Cell A | @Cell B | @Cell C } +{ +@Rowa + A { Austen } + B { Chaucer } + C { Donne } +@Rowa + A { Balzac } + B { Darwin } + C { Goethe } +@Rowa + A { Byron } + B { Dickens } + C { Homer } +} +} +Immediately after the @Code "@Tbl" symbol, which introduces the table, +comes a @I { format option }, {@Code "aformat"}, describing the format of +each row. It says that each row contains three cells: {@Code "@Cell A"}, +{@Code "@Cell B"}, and {@Code "@Cell C"}. The format option may have up +to 26 cells, with names chosen freely from the upper-case letters from +@Code A to {@Code Z}. The symbol @Code "|" separates each cell from the next. +@PP +After the format option comes the body of the table, enclosed in +braces. It consists entirely of a sequence of rows, each introduced by +a @Code "@Rowa" symbol and containing one entry for each cell of the +format option, as shown (the row may occupy any number of lines of the +input file). The entries may be arbitrary Lout objects, such as words, +paragraphs, equations, figures, and so on without restriction. An entry +may be omitted altogether if it is empty. Lout will choose suitable widths +for the cells, and break paragraphs in the entries to the right widths. +@PP +The result of the @Code "@Tbl" symbol is an object. As usual with +Lout, this object may appear at any point in the document, +@FootNote { +In rare cases, when the table occupies an entire paragraph but is not +displayed, a bug in Basser Lout causes the second column to appear much +too far to the right. If this occurs, replace +the very first row symbol ({@Code "@Row"}, {@Code "@Rowa"}, {@Code "@Rowb"}, +etc.) by {@Code "@FirstRow"}, {@Code "@FirstRowa"}, {@Code "@FirstRowb"}, +etc. There are also {@Code "@HeaderFirstRow"}, {@Code "@HeaderFirstRowa"}, +{@Code "@HeaderFirstRowb"} etc. symbols for replacing {@Code "@HeaderRow"}, +{@Code "@HeaderRowa"}, {@Code "@HeaderRowb"}, etc., if required. +# That should work, but if it doesn't, replacing +# @Code "@Tbl" by @Code "@OneCol @Tbl" certainly will, although it also +# prevents the table from breaking across page boundaries. +} +even within a paragraph or another table. Most commonly, though, tables +are displayed using the @Code "@IndentedDisplay" and @Code "@CentredDisplay" +symbols (Section {@NumberOf displays}): +@ID @Code "@CentredDisplay @Tbl ..." +or else they go into the @Code "@Table" symbol (Section {@NumberOf figures}): +@ID @OneRow @Code { +"@Table" +" @Caption { ... }" +"@Tbl ..." +} +which centres them at the top of the following page and adds a +caption. Note the difference between {@Code "@Tbl"}, which builds a +table, and {@Code "@Table"}, which places an arbitrary object in an +appropriate place. It's important to remember that the result +is an object like any other, because from time to time one wants such +things as rotated tables whose entire contents are to be italicised: +@ID @Code "90d @Rotate @I @Tbl ..." +and it helps to remember that the full power of Lout can be +brought to bear on the @I entire table. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_marg b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_marg new file mode 100755 index 0000000000000..ddbab556ac01b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_marg @@ -0,0 +1,74 @@ +@Section + @Title { Margins } + @Tag { tbl_marg } +@Begin +@PP +The @Code "@Cell" symbol offers a @Code margin option for changing the +margins @RawIndex { margins } +margins.in.tables @SubIndex { margins in tables } +amount of margin left between the entry and the boundary of the cell: +@ID @Code "@Cell margin { 0.3f }" +The default values are different for horizontal and vertical margins, +which brings us to the @Code marginhorizontal and @Code marginvertical +options: +@ID @OneRow @Code @Verbatim { +@Cell + marginhorizontal { 0.6f } + marginvertical { 0.3f } +} +These are the default values, 0.6 and 0.3 times the current font size +respectively. Another useful value is {@Code "marginvertical { 0.5vx }"}, +which asks for a vertical margin of half the current line separation, but +measured from baseline to baseline (this is what the @Code "x" means). +This produces a separation equal to the separation of the surrounding lines: +@CD @Tbl + marginvertical { 0.5vx } + aformat { @Cell A | @Cell B | @Cell C } +{ +@Rowa + A { Austen } + B { Chaucer } + C { Donne } +@Rowa + A { Balzac } + B { Darwin } + C { Goethe } +@Rowa + A { Byron } + B { Dickens } + C { Homer } +} +This margin does not work so well when the cells contain paragraphs, +diagrams or other things that could not be described as single lines. +@PP +There are {@Code "marginabove"}, {@Code "marginbelow"}, {@Code "marginleft"}, +and {@Code "marginright"} options for setting margins individually. For +example, sometimes you don't want the extreme left and right margins in +a table, and they can be got rid of like this: +@ID @OneRow @Code @Verbatim { +@Tbl + paint { lightgrey } + aformat { @Cell ml { 0i } A | @Cell B | @Cell mr { 0i } C } +{ +@Rowa + A { Column A } + B { Column B } + C { Column C } +} +} +We've used abbreviated versions of the options' names: @Code "ml" for +{@Code marginleft}, and @Code "mr" for {@Code marginright}. Every option +has such an abbreviated name, made from the first letters of the parts of +its full name (Section {@NumberOf tbl_summ} lists all these names). The +result is +@DP @RCD @Tbl + paint { lightgrey } + aformat { @Cell ml { 0i } A | @Cell B | @Cell mr { 0i } C } +{ +@Rowa + A { Column A } + B { Column B } + C { Column C } +} +# with the painting showing the reduced margins. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_mark b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_mark new file mode 100755 index 0000000000000..51d71e7bdaf92 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_mark @@ -0,0 +1,66 @@ +@Section + @Title { Vertical alignment of tables } + @Tag { tbl_mark } +@Begin +@PP +Occasionally the vertical alignment of a table with objects to its left +vertical.alignment @Index { vertical alignment of tables } +and right becomes an issue. Examples are hard to find, but let's say +that we need to construct a symbol +@ID @AmberLight +and include it in running text. The obvious first attempt at a table +with three rows is +@ID @OneRow @Code @Verbatim { +@Tbl + aformat { @Cell A } + margin { 0i } + strut { no } +{ +@Rowa A { @OpenCircle } +@Rowa A { @ClosedCircle } +@Rowa A { @OpenCircle } +} +} +where @Code "@OpenCircle" and @Code "@ClosedCircle" produce open and +closed circles (they may be defined using the @Code "@Diag" package); +but this produces +@Tbl + aformat { @Cell A } + margin { 0i } + strut { no } +{ +@Rowa A { @OpenCircle } +@Rowa A { @ClosedCircle } +@Rowa A { @OpenCircle } +} +in running text, because vertical alignment is by default through the +top boundary of the table. To make the alignment pass through one of +the rows, replace its @Code "@Row" symbol by a corresponding +@Code "@MarkRow" symbol. Here is the revised table, enclosed in a +definition for ease of use: +amberlight @Index { @Code "@AmberLight" symbol } +@ID @OneRow @Code @Verbatim { +import @TblSetup +def @AmberLight +{ + @OneRow @Tbl + aformat { @Cell indentvertical { align } A } + margin { 0i } + strut { no } + paint { no } + rule { no } + { + @Rowa A { @OpenCircle } + @MarkRowa A { @ClosedCircle } + @Rowa A { @OpenCircle } + } +} +} +Now when we write +@ID @Code "produces @AmberLight in running text" +we find that this definition produces @AmberLight in running text, as +desired. We have enclosed the table in @Code "@OneRow" to ensure that +its rows will never become separated, and added some options just in +case the definition is ever used with a setup file (Section +{@NumberOf tbl_setu}) that has default painting or rules. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_mult b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_mult new file mode 100755 index 0000000000000..b52322337419b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_mult @@ -0,0 +1,142 @@ +@Section + @Title { Multi-page tables } + @Tag { tbl_mult } +@Begin +@PP +The tables produced by @Code "@Tbl" permit page breaks (including breaking +multi.page.tables @Index { multi-page tables } +to a new column) between every two rows, except rows that have a +vertically spanning cell in common. Page breaks cannot occur +within rows. The choice of page breaks can either be left to Lout, +or it can be forced by placing the new page symbol @Code "@NP" between two +np.tables @Index { @Code "@NP" (new page) in tables } +rows. +@PP +Some care is needed over where to put multi-page tables. They can't go +within any of the display symbols, because display symbols are not clever +enough to break tables between rows, even though they are sometimes able +to break simpler displays. (A display symbol will scale a very high table +to fit on one page, and it will go wrong on a table containing +{@Code "@NP"}.) Multi-page tables can go inside @Code "@Figure" or +@Code "@Table" symbols, because these symbols have been set up to accept +multi-page objects. Or they can go into the body text of the document +at full width with a paragraph symbol before and after, like this: +@ID @Code @Verbatim { +@DP +@Tbl ... +@DP +} +An example of this kind of multi-page table appears in +Section {@NumberOf tbl_summ}. You can simulate an indent by means of an +empty cell at the left of each row format, although in the author's opinion +a multi-page table looks better at full width anyway. Lout will expand the +rightmost column to the full page width; one way to prevent this is to add +a @Code "|" after the last cell within each {@Code format} option, creating +an empty extra column. +@PP +One practical problem with multi-page tables is that of getting a +heading over every page after the first. This is easy if you know where +the page breaks are going to fall (if you are using {@Code "@NP"}, for +example), but you usually don't. To solve this problem, @Code {"@Tbl"} +offers the @Code "@HeaderRowa" ... @Code "@HeaderRowh" and +@Code "@EndHeaderRow" symbols. For example, the multi-page table in +Section {@NumberOf tbl_summ} is arranged like this: +@ID @OneRow @Code @Verbatim { +@Tbl + ... +{ +@Rowd + A { Option names } + B { Default in PS, PDF } + C { Default in plain text } + D { Allowed values } + rulebelow { yes } +@HeaderRowd + A { Option names (ctd.) } + B { Default in PS, PDF } + C { Default in plain text } + D { Allowed values } + rulebelow { yes } +@Rowa + A { paint p } + B { nopaint } + D { any colour from Section {@NumberOf colour} } +... +@Rowa + A { ruleplainchar rpc } + C { . } + D { any simple word e.g. @Code + } + rulebelow { yes } +@EndHeaderRow +} +} +where we have omitted a lot of irrelevant things. @Code "@HeaderRowd" +is exactly like {@Code "@Rowd"}, except that the row is not printed at +all where it occurs; instead, it is saved up and used as a running header +on subsequent pages. +@PP +The @Code "@EndHeaderRow" symbol goes where a @Code "@Row" symbol might +go. Notice that it does not end with a letter between {@Code a} and +{@Code h}, and that it has no options. Its meaning is that the most +recent running header is not wanted on pages after this point: in other +words, it cancels the previous @Code "@HeaderRowa" ... @Code "@HeaderRowh" +symbol. Forgetting @Code "@EndHeaderRow" is disastrous, because every page +from this point on will then have the running header, even though the table +ended long before. +@PP +There may be any number of header rows saved up at any moment, all to be +printed at the top of subsequent pages. Having @Code "@EndHeaderRow" +allows them to be `nested.' For example, just schematically, +@ID @OneRow @Code @Verbatim { +@HeaderRowa ... +@HeaderRowb ... +@EndHeaderRow +@HeaderRowb ... +@EndHeaderRow +@EndHeaderRow +} +could be used in a table to say that the entire table has the first +header row; and that the first part also has the second header row, +but the second part of the table has a different second header row, +but still the same first header row. +@PP +These header symbols have some peculiarities not likely to trouble the +ordinary user, but worth pointing out. Each copy of a running header +will be identical to every other copy, so any attempt to use cross +references to add (say) page numbers to the running header is doomed to +disappointment. (If you want to change the header, use +@Code "@EndHeaderRow" followed by a new header row.) Basser Lout +copies running header rows into the table after each page break, +with no check on whether the next page has enough space to +accommodate them, so if your running headers are so high that +there is no room for ordinary rows on the page after they are +inserted, then the document will never end. Finally, header +rows are taken account of by Lout when deciding column widths, +whether they are actually printed or not. +@PP +Another practical problem in multi-page tables is getting the rules +right. The simplest way to do this is to set @Code "rulehorizontal" +to {@Code yes}. This places a rule above every row including the +first on each page, and a rule below every row including the last +on each page. There is nothing equivalent to running headers +at the bottom of the page -- nothing that would allow you to +insert a rule after the last line of each page, but not +elsewhere. (However, if you are using the @Code "@Table" +symbol, its @Code "@Format" option can be used to do this.) +@PP +To prevent page breaks within a table, precede the @Code "@Tbl" +symbol by {@Code "@OneRow"}: +@ID @Code "@CD @OneRow @Tbl ..." +@Code "@OneRow" is a general Lout symbol which binds the following +object into a single, unbreakable row. Make sure your table is +small enough to fit on one page when you do this, otherwise an error +message will be printed and it will be scaled to fit. Of course, we +said earlier that display symbols like @Code "@CD" do this anyway, +but that might change some day. +@PP +To prevent a page break between two particular rows, but not in +general, replace the @Code "@Row" symbol of the second row with +the corresponding @Code "@NoBreakRow" symbol (@Code "@NoBreakRowa" +instead of {@Code "@Rowa"}, @Code "@NoBreakRowb" instead of +{@Code "@Rowb"}, and so on). +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_plai b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_plai new file mode 100755 index 0000000000000..d887b86dbb262 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_plai @@ -0,0 +1,89 @@ +@Section + @Title { Plain text tables } + @Tag { tbl_plai } +@Begin +@PP +Tables work well with plain text output (Section {@NumberOf plain}): +plain.text.tables @Index { plain text tables } +@CD @OneRow -1px @Break @F @Verbatim { +................................................... +. . . +. Johnson . Johnson suddenly uttered, in . +. suddenly . a strong determined tone, an . +. uttered, . apophegm, at which many will . +. in a strong . start: `Patriotism is the . +. determined . last refuge of a scoundrel.' . +. tone, an . . +. apophegm, at . . +. which many .................................. +. will start: . . . +. `Patriotism . Johnson . Johnson . +. is the last . suddenly . suddenly . +. refuge of a . uttered, . uttered, . +. scoundrel.' . in a strong . in a strong . +. . determined . determined . +. . tone, an . tone, an . +. . apophegm, at . apophegm, at . +. . which many . which many . +. . will start: . will start: . +. . `Patriotism . `Patriotism . +. . is the last . is the last . +. . refuge of a . refuge of a . +. . scoundrel.' . scoundrel.' . +. . . . +. . . . +.................................. . +. . . +. Johnson suddenly uttered, in . . +. a strong determined tone, an . . +. apophegm, at which many will . . +. start: `Patriotism is the . . +. last refuge of a scoundrel.' . . +. . . +. . . +................................................... +} +This table was produced by a separate run of Lout and pasted into this +document. +@PP +@Code "@Tbl" changes the default values of several options when used +in a plain text document: +@ID @Code @Verbatim { +@Tbl + marginvertical { 2f } + marginhorizontal { 2s } + rulehorizontalwidth { 1f } + ruleverticalwidth { 1s } + rulehorizontalgap { 0f } + ruleverticalgap { 0s } +} +When using plain text it is advisable to make vertical distances whole +multiples of {@Code "1f"}, and horizontal distances whole multiples of +{@Code "1s"}, since this avoids fractional spacing which cannot be successful +in plain text files and produces quite messy results. There is also a +@Code ruleplainchar option for changing the character used to +draw rules. For example, +@ID @Code @Verbatim { +@Tbl + ruleplainchar { - } +} +would be a good choice if you plan to draw only horizontal rules. This +option can be set anywhere as usual. +@PP +If you do use rules it is worth pondering the implications of the last +part of Section {@NumberOf tbl_rule}. Right and below rules are drawn +outside the boundary of the cell, which is unimportant +in ordinary output, but means that they will appear one space to the +right and one line below the cell in plain text output. This explains +the slight asymmetry in the example above; you can correct it with +@ID @Code @Verbatim { +@Tbl + marginright { 1s } + marginbelow { 1f } +} +but you still have to worry about rules at the extreme right of the +page going off the edge, and rules below the last line bumping into +whatever follows the table. The first can be fixed by not using +full width tables with right rules; the second by inserting an extra +@Code "@DP" after a table that ends with a below rule. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_rows b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_rows new file mode 100755 index 0000000000000..d7950b1593a62 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_rows @@ -0,0 +1,59 @@ +@Section + @Title { Changing the appearance of rows } + @Tag { tbl_rows } +@Begin +@PP +We've seen that the @Code aformat option of @Code "@Tbl" determines the +format of the rows introduced by the @Code "@Rowa" symbol. There are +eight row format options: {@Code aformat}, +row.formats @Index { row formats in tables } +{@Code bformat}, and so on up to {@Code hformat}, and for each there +is a corresponding {@Code "@Row"} symbol: {@Code "@Rowa"}, {@Code "@Rowb"}, +and so on: +@ID @OneRow @Code @Verbatim { +@Tbl + aformat { @Cell @I A | @Cell @I B } + bformat { @Cell A | @Cell B } +{ +@Rowa + A { Name } + B { Nationality } +@Rowb + A { Austen } + B { English } +@Rowb + A { Balzac } + B { French } +} +} +The result of this is +@CD @OneRow @Tbl + aformat { @Cell @I A | @Cell @I B } + bformat { @Cell A | @Cell B } +{ +@Rowa + A { Name } + B { Nationality } +@Rowb + A { Austen } + B { English } +@Rowb + A { Balzac } + B { French } +} +The first row, being a {@Code "@Rowa"}, is formatted using +{@Code aformat}; the others, being {@Code "@Rowb"} symbols, are +formatted using {@Code bformat}. +@PP +In addition to the eight @Code format options of {@Code "@Tbl"}, it is +possible to specify the format of a row at the row itself, using the +@Code "@Row" symbol like this: +@ID @OneRow @Code @Verbatim { +@Row + format { @Cell @B A | @Cell paint { lightgrey } B } + A { ... } + B { ... } +} +All formats must contain the same number of cells, otherwise the table +will not be rectangular. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_rule b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_rule new file mode 100755 index 0000000000000..25858dfd4e237 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_rule @@ -0,0 +1,201 @@ +@Section + @Title { Rules } + @Tag { tbl_rule } +@Begin +@PP +There is a @Code "rule" option for drawing a rule around a cell: +@ID @OneRow @Code "@Cell rule { yes }" +Other values are {@Code no} (the default), +{@Code single} (the same as {@Code yes}), and {@Code double} (for a +double rule). +@PP +There are @Code "rulehorizontal" and @Code "rulevertical" options which +draw only horizontal or vertical rules, and also {@Code "ruleabove"}, +{@Code "rulebelow"}, {@Code "ruleleft"}, and {@Code "ruleright"} options: +@ID @OneRow @Code @Verbatim { +@Tbl + aformat { @Cell A | @Cell B } +{ +@Rowa + ruleabove { yes } + A { Commercial property } + B { 10% } +@Rowa + A { Stock market } + B { 15% } + rulebelow { yes } +} +} +produces +@CD @OneRow @Tbl + aformat { @Cell A | @Cell B } +{ +@Rowa + ruleabove { yes } + A { Commercial property } + B { 10% } +@Rowa + A { Stock market } + B { 15% } + rulebelow { yes } +} +These options take the same values as {@Code "rule"}, but draw +along only one or two of the four edges. +@PP +Other options control the appearance of rules. Here they are with their +default values: +@ID @OneRow @Code @Verbatim { +@Tbl + rulewidth { 0.05f } + rulegap { 0.15f } + rulecolour { black } +} +These say that rules are to be @Code "0.05f" wide (thick), double rules +are to appear @Code "0.15f" apart, and the colour of rules is to be black. +Once again, more specific versions of these symbols exist for controlling +above, below, left, and right rules: +@ID @OneRow @Code @Tbl + aformat { @Cell ml { 0i } A | @Cell B | @Cell C } + marginvertical { 0.5vx } +{ +@Rowa + A { rulehorizontalwidth } + B { rulehorizontalgap } + C { rulehorizontalcolour } +@Rowa + A { ruleabovewidth } + B { ruleabovegap } + C { ruleabovecolour } +@Rowa + A { rulebelowwidth } + B { rulebelowgap } + C { rulebelowcolour } +@Rowa + A { ruleverticalwidth } + B { ruleverticalgap } + C { ruleverticalcolour } +@Rowa + A { ruleleftwidth } + B { ruleleftgap } + C { ruleleftcolour } +@Rowa + A { rulerightwidth } + B { rulerightgap } + C { rulerightcolour } +} +All these options have alternative, abbreviated names; and @Code { colour } +may be spelt @Code { color } wherever it appears. Section +{@NumberOf tbl_summ} has a complete summary of all spellings of all +options. +@PP +To clarify exactly where the rules are drawn, let's start with +a cell with no rules at all: +@CD @Tbl + mv { 0i } + aformat { @Cell width { 3c } height { 1.2c } paint { lightgrey } A } +{ +@Rowa +} +Above rules and left rules are drawn within the cell boundary, just +touching it, with any above rule overstriking any left rule: +@CD { @Tbl + mv { 0i } + aformat { @Cell width { 3c } height { 1.2c } paint { lightgrey } A } +{ +@Rowa +} +@Background @Tbl + mv { 0i } + aformat { @Cell width { 3c } height { 1.2c } A } + ruleleft { yes } + ruleabove { yes } + rulehorizontalwidth { 0.8v } + ruleverticalwidth { 0.5v } + ruleverticalcolour { grey } + rulehorizontalcolour { black } +{ +@Rowa +} +} +Below and right rules are drawn just outside the boundary of the +cell, also touching it: +@CD @Tbl mv { 0i } aformat { @Cell A | @Cell | @Cell B } +{ +@Rowa + A { + @Tbl + mv { 0i } + aformat { @Cell width { 3c } height { 1.2c } paint { lightgrey } A } + { + @Rowa + } + @Background + @Tbl + mv { 0i } + aformat { @Cell width { 3c } height { 1.2c } A } + rulebelow { yes } + rulehorizontalwidth { 0.8v } + ruleverticalwidth { 0.5v } + ruleverticalcolour { grey } + rulehorizontalcolour { black } + { + @Rowa + } + } + B { + @Tbl + mv { 0i } + aformat { @Cell width { 3c } height { 1.2c } paint { lightgrey } A } + { + @Rowa + } + @Background + @Tbl + mv { 0i } + aformat { @Cell width { 3c } height { 1.2c } A } + ruleright { yes } + rulehorizontalwidth { 0.8v } + ruleverticalwidth { 0.5v } + ruleverticalcolour { grey } + rulehorizontalcolour { black } + { + @Rowa + } + } +} +@DP +When a right rule is present, any above and below rules are extended +by the width of the right rule, and they overstrike it: +@CD { +@Tbl + mv { 0i } + aformat { @Cell width { 3c } height { 1.2c } paint { lightgrey } A } +{ +@Rowa +} +@Background +@Tbl + mv { 0i } + aformat { @Cell width { 3c } height { 1.2c } A } + ruleabove { yes } + ruleright { yes } + rulebelow { yes } + rulehorizontalwidth { 0.8v } + ruleverticalwidth { 0.5v } + ruleverticalcolour { grey } + rulehorizontalcolour { black } +{ +@Rowa +} +} +@DP +(These diagrams were produced by @Code "@Tbl" itself, using horizontal +rules of width @Code 0.8v drawn in black, and vertical rules of width +@Code 0.5v drawn in grey.) These arrangements ensure that even thick +rules produce clean corners, and also that a right rule and a neighbouring +left rule exactly overstrike each other, as do a below rule and its +neighbouring above rule. +# @PP +# For information about rules in plain text tables, consult Section +# {@NumberOf tbl_plai}. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_setu b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_setu new file mode 100755 index 0000000000000..74bdb9a29c8b6 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_setu @@ -0,0 +1,65 @@ +@Section + @Title { Changing the overall format } + @Tag { tbl_setu } +@Begin +@PP +All of the options apart from the @Code format options can be changed +setup.files.tables @Index { setup files for tables } +in the @Code { tbl } setup file, in which case the new values become +the default values for every table in the document. This section +explains how to do it. Changing options in the setup file can save a +lot of time, but its more important purposes are to promote consistency +and to allow document-wide formatting changes to be carried out easily. +@PP +The first step is to obtain your own copy of the setup file, @Code { tbl }, +from the Lout system include directory. You can find out where that +is by typing +@ID @Code { lout -V } +This prints out various things about Lout. Supposing that it says +that the Lout system include directory is @Code { "/usr/lout/include" }, for +example, you can copy the setup file into your current directory, +renaming it @Code { mytbl }, with the Unix command +@ID @Code "cp /usr/lout/include/tbl mytbl" +or its equivalent on your system. You will also need to make +@Code { mytbl } writable. +@PP +The next step is to replace the @Code "@SysInclude { tbl }" line at the +start of your document with @Code { "@Include { mytbl }" }. This causes +Lout to read your copy of the setup file, not the one in the system +include directory. Since the two files are currently identical, this +has changed nothing so far, but now you can change the options within +@Code mytbl and the changes will affect your document. +@PP +Your copy of the setup file has some lines beginning with @Code "#" +that are ignored by Lout, and then it has @Code { "@SysInclude { tblf }" }. +This line tells Lout to read file @Code tblf which contains the definition +of the @Code tbl package, so it should not be changed. After it comes +the @Code "@TblSetup" @Code "@Use" clause, which looks like this: +@ID @OneRow @Code @Verbatim { +@Use { @TblSetup + # paint { nopaint } + # font { } + # break { } +} +} +Only a few of the options are shown here. To change a setup file +option, delete the @Code "#" in front of it and change the value. For +example, suppose you want all table entries two points smaller than the +surrounding text: +@ID @OneRow @Code @Verbatim { +@Use { @TblSetup + # paint { nopaint } + font { -2p } + # break { } +} +} +This relative specification of font size is available anywhere, not +just in setup files (Section {@NumberOf fonts}). +@PP +Some setup file options contain values which use the @Code "@OrIfPlain" +symbol: +@ID @Code "marginvertical { 0.3f @OrIfPlain 1f }" +This means that the value of @Code marginvertical is to be @Code "0.3f" +usually, but @Code 1f in plain text documents. Feel free to leave these +symbols there when you change a value, or delete them if you prefer. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_span b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_span new file mode 100755 index 0000000000000..ec568dc057b75 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_span @@ -0,0 +1,195 @@ +@Section + @Title { Spanning columns and rows } + @Tag { tbl_span } +@Begin +@PP +To make a cell span across several columns, precede the @Code "@Cell" +spanning.columns @Index { spanning columns and rows in tables } +symbol with @Code "@StartHSpan" and replace each spanned cell's +@Code "@Cell" symbol with {@Code "@HSpan"}, like this: +@ID @OneRow @Code @Verbatim { +@Tbl + rule { yes } + aformat { @StartHSpan @Cell indent { ctr } @B A | @HSpan | @HSpan } + bformat { @Cell A | @Cell B | @Cell C } +{ +@Rowa + A { Some famous authors } +@Rowb + A { Austen } + B { Chaucer } + C { Donne } +@Rowb + A { Balzac } + B { Darwin } + C { Goethe } +} +} +The result of this is +@CD @OneRow @Tbl + rule { yes } + aformat { @StartHSpan @Cell indent { ctr } @B A | @HSpan | @HSpan } + bformat { @Cell A | @Cell B | @Cell C } +{ +@Rowa + A { Some famous authors } +@Rowb + A { Austen } + B { Chaucer } + C { Donne } +@Rowb + A { Balzac } + B { Darwin } + C { Goethe } +} +We've used a sample of options to show how naturally these go with +spanning cells: they apply to the whole cell as usual, whatever +its extent. It is quite acceptable to span just some of the columns, +not all of them; indeed, there may be no @Code "@HSpan" symbols at +all, and then the cell just spans its own column, which sounds redundant +but actually has a use (Section {@NumberOf tbl_alig}). +@PP +Spanning rows work in the same way; the spanning cell is preceded by +{@Code "@StartVSpan"}, and the spanned cells are replaced by +{@Code "@VSpan"}: +@ID @OneRow @Code @Verbatim { +@Tbl + rule { yes } + aformat { @StartVSpan @Cell @I A | @Cell B | @Cell C } + bformat { @VSpan | @Cell B | @Cell C } +{ +@Rowa + A { Mathematics } + B { MATH 1001 } + C { Differential Calculus } +@Rowb + B { MATH 1002 } + C { Linear Algebra } +@Rowa + A { Computer Science } + B { COMP 1001 } + C { Introductory Programming } +@Rowb + B { COMP 1002 } + C { Introductory Computer Science } +} +} +The result of this is +@CD @OneRow @Tbl + rule { yes } + aformat { @StartVSpan @Cell @I A | @Cell B | @Cell C } + bformat { @VSpan | @Cell B | @Cell C } +{ +@Rowa + A { Mathematics } + B { MATH 1001 } + C { Differential Calculus } +@Rowb + B { MATH 1002 } + C { Linear Algebra } +@Rowa + A { Computer Science } + B { COMP 1001 } + C { Introductory Programming } +@Rowb + B { COMP 1002 } + C { Introductory Computer Science } +} +Here is a notorious larger example, the `spiral': +@ID @OneRow @Code @Verbatim { +@QuotedDisplay @Tbl + rule { yes } +{ +@Row + format { @StartVSpan @Cell A | @StartHSpan @Cell B | @HSpan } + A { @SomeText } + B { @SomeText } +@Row + format { @VSpan | @Cell B | @StartVSpan @Cell C } + B { @SomeText } + C { @SomeText } +@Row + format { @StartHSpan @Cell A | @HSpan | @VSpan } + A { @SomeText } +} +} +The @Code "@SomeText" symbol produces a short paragraph of text. The +result is +@QD @Tbl + rule { yes } +{ +@Row format { @StartVSpan @Cell A | @StartHSpan @Cell B | @HSpan } + A { @SomeText } + B { @SomeText } +@Row format { @VSpan | @Cell B | @StartVSpan @Cell C } + B { @SomeText } + C { @SomeText } +@Row format { @StartHSpan @Cell A | @HSpan | @VSpan } + A { @SomeText } +} +It is important when constructing mind-boggling tables like this one +to ensure that every format has exactly the same number of @Code "|" +symbols. Otherwise the number of columns will differ from row to row. +The names given to the entries ({@Code "A"}, {@Code "B"}, {@Code "C"}, +etc.) are quite irrelevant: having a @Code "@Cell D" in one row and a +@Code "@Cell D" in another does not mean that the cells will appear in +the same column. +# @PP +# There is an asymmetry in the spiral above: the first column +# occupies slightly more space than the other two. This arises +# because the left margin of the leftmost column is excluded from the +# calculation of how much space is available. This anomaly might be +# corrected some day. +@PP +There is a @Code "@StartHVSpan" symbol which combines the effects +of @Code "@StartHSpan" and {@Code "@StartVSpan"}. You need to +use it in this arrangement: +@ID @OneRow @Tbl + mv { 0.5vx } + aformat { @Cell @Code A | @Cell @Code B | @Cell @Code C } +{ +@Rowa + A { "@StartHVSpan" } + B { "@HSpan" } + C { "@HSpan" } +@Rowa + A { "@VSpan" } +@Rowa + A { "@VSpan" } +} +The blank positions should be left empty. For example: +@ID @OneRow @Code @Verbatim { +@Tbl + rule { yes } + aformat { @Cell A | @Cell B | @Cell C | @Cell D } + bformat { @Cell A | @StartHVSpan @Cell i { ctr } iv { ctr } B | @HSpan | @Cell D } + cformat { @Cell A | @VSpan | | @Cell D } +{ +@Rowa +@Rowb + B { CPU } +@Rowc +@Rowa +} +} +produces +@CD @OneRow @Tbl + rule { yes } + strut { no } + aformat { @Cell A | @Cell B | @Cell C | @Cell D } + bformat { @Cell A | @StartHVSpan @Cell i { ctr } iv { ctr } B | @HSpan | @Cell D } + cformat { @Cell A | @VSpan | | @Cell D } +{ +@Rowa +@Rowb + B { CPU } +@Rowc +@Rowa +} +This example illustrates how Lout apportions space in the presence of +spanning columns. If the spanning cell is naturally narrower than the +cells it spans, it is widened to their size. If it is wider (as in +the example above), then the last spanned cell is widened to take +up the slack. This is why the third cell is wider than the second in the +first row of this example. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_summ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_summ new file mode 100755 index 0000000000000..f5d5343629f1e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_summ @@ -0,0 +1,266 @@ +@Section + @Title { Summary of options } + @Tag { tbl_summ } +@Begin +@PP +This summary applies to all @Code "@Tbl" options except the @Code format +options described in Section {@NumberOf tbl_rows}. Here is the complete +list of these options, one option per line, showing its alternative +spellings, default values (PostScript and PDF, and plain text) from the setup +file, and allowed range of values. Where one option is indented below +another, it means that the indented option is a specialized version of +the other, which affects its default value. For more on this see below. +@DP +@Tbl + marginvertical { 0.5vx } + aformat { @Cell ml { 0i } @Code A | + @Cell @Code B | @Cell @Code C | @Cell mr { 0i } D } + bformat { @Cell ml { 0i } indent { 1f } @Code A | + @Cell @Code B | @Cell @Code C | @Cell mr { 0i } D } + cformat { @Cell ml { 0i } indent { 2f } @Code A | + @Cell @Code B | @Cell @Code C | @Cell mr { 0i } D } + dfont { Italic } + dbreak { lines } + dformat { @Cell ml { 0i } A | @Cell B | @Cell C | @Cell mr { 0i } D } + fformat { @StartHSpan @Cell ml { 0i } @Code A | + @HSpan | @HSpan | @Cell mr { 0i } D } + gformat { @StartHSpan @Cell ml { 0i } indent { 1f } @Code A | + @HSpan | @HSpan | @Cell mr { 0i } D } + hformat { @StartHSpan @Cell ml { 0i } indent { 2f } @Code A | + @HSpan | @HSpan | @Cell mr { 0i } D } +{ +@Rowd + A { Option names } + B { Default in +PS, PDF } + C { Default in +plain text } + D { Allowed values } + rulebelow { yes } +@HeaderRowd + A { Option names (ctd.) } + B { Default in +PS, PDF } + C { Default in +plain text } + D { Allowed values } + rulebelow { yes } +@Rowa + A { paint p } + B { nopaint } + D { any colour from Section {@NumberOf colour} } +@Rowa + A { background bg } + D { any object } +@Rowa + A { font f } + D { any font e.g. @Code "Helvetica Slope -2p" } +@Rowa + A { break b } + D { any break e.g. @Code "ragged nohyphen" } +@Rowa + A { width w } + D { @Code "expand" or any length e.g. @Code 5c } +@Rowa + A { height h } + D { any length e.g. @Code 3c } +@Rowa + A { indent i } + B { @Code left } + D { {@Code left}, {@Code ctr}, {@Code align}, {@Code mctr}, {@Code right}, or any length } +@Rowa + A { indentvertical iv } + B { @Code top } + D { {@Code top}, {@Code ctr}, {@Code align}, {@Code mctr}, {@Code foot}, or any length } +@Rowa + A { strut s } + B { yes } + C { yes } + D { {@Code no}, {@Code yes}, or any length } +@Rowa + A { struthorizontal sh } + B { no } + C { no } + D { {@Code no}, {@Code yes}, or any length } +@Rowa + ma { 1v } + A { margin m } + B { } + C { } + D { any length } +@Rowb + A { marginhorizontal mh } + B { 0.6f } + C { 2s } + D { any length } +@Rowc + A { marginleft ml } + D { any length } +@Rowc + A { marginright mr } + D { any length } +@Rowb + A { marginvertical mv } + B { 0.3f } + C { 2f } + D { any length } +@Rowc + A { marginabove ma } + D { any length } +@Rowc + A { marginbelow mb } + D { any length } +@Rowa + ma { 1v } + A { rule r } + B { no } + C { no } + D { {@Code no}, {@Code yes}, {@Code single}, or {@Code double} } +@Rowb + A { rulehorizontal rh } + D { {@Code no}, {@Code yes}, {@Code single}, or {@Code double} } +@Rowc + A { ruleabove ra } + D { {@Code no}, {@Code yes}, {@Code single}, or {@Code double} } +@Rowc + A { rulebelow rb } + D { {@Code no}, {@Code yes}, {@Code single}, or {@Code double} } +@Rowb + A { rulevertical rv } + D { {@Code no}, {@Code yes}, {@Code single}, or {@Code double} } +@Rowc + A { ruleleft rl } + D { {@Code no}, {@Code yes}, {@Code single}, or {@Code double} } +@Rowc + A { ruleright rr } + D { {@Code no}, {@Code yes}, {@Code single}, or {@Code double} } +@Rowa + ma { 1v } + A { rulewidth rw } + B { 0.05f } + D { any length } +@Rowb + A { rulehorizontalwidth rhw } + C { 1f } + D { any length } +@Rowc + A { ruleabovewidth raw } + D { any length } +@Rowc + A { rulebelowwidth rbw } + D { any length } +@Rowb + A { ruleverticalwidth rvw } + C { 1s } + D { any length } +@Rowc + A { ruleleftwidth rlw } + D { any length } +@Rowc + A { rulerightwidth rrw } + D { any length } +@Rowa + ma { 1v } + A { rulegap rg } + B { 0.15f } + D { any length } +@Rowb + A { rulehorizontalgap rhg } + C { 0f } + D { any length } +@Rowc + A { ruleabovegap rag } + D { any length } +@Rowc + A { rulebelowgap rbg } + D { any length } +@Rowb + A { ruleverticalgap rvg } + C { 0s } + D { any length } +@Rowc + A { ruleleftgap rlg } + D { any length } +@Rowc + A { rulerightgap rrg } + D { any length } +@Rowa + ma { 1v } + A { rulecolour rulecolor rc } + B { black } + D { any colour from Section {@NumberOf colour} } +@Rowg + A { rulehorizontalcolour rulehorizontalcolor rhc } + D { any colour from Section {@NumberOf colour} } +@Rowh + A { ruleabovecolour ruleabovecolor rac } + D { any colour from Section {@NumberOf colour} } +@Rowh + A { rulebelowcolour rulebelowcolor rbc } + D { any colour from Section {@NumberOf colour} } +@Rowg + A { ruleverticalcolour ruleverticalcolor rvc } + D { any colour from Section {@NumberOf colour} } +@Rowh + A { ruleleftcolour ruleleftcolor rlc } + D { any colour from Section {@NumberOf colour} } +@Rowh + A { rulerightcolour rulerightcolor rrc } + D { any colour from Section {@NumberOf colour} } +@Rowa + ma { 1v } + A { ruleplainchar rpc } + C { . } + D { any simple word e.g. @Code + } + rulebelow { yes } +@EndHeaderRow +} +@DP +There are seven places where these options may be given, counting the +setup file (Section {@NumberOf tbl_setu}). To make it clear that this +summary applies to any of these options, we illustrate the seven places +with a fictitious option called {@Code option}: +@ID @OneRow @Code @Verbatim { +@Use { @TblSetup + option { 1 } +} + +@Tbl + option { 2 } + aoption { 3 } + aformat { @Cell option { 4 } A } +{ + @Rowa + option { 5 } + @Row + option { 6 } + format { @Cell option { 7 } A } +} +} +Each occurrence of @Code option is of course optional. If there are +none, the default value given in the table above applies. For any other +combination of absent and present options, the value that applies is the +present and relevant one with the largest number in the illustration +just above. But before applying this rule, any general options must be +thought of as being replaced by their more specialized versions: +@ID @Code "rulehorizontal { yes }" +is equivalent to +@ID @Code @Verbatim { +ruleabove { yes } +rulebelow { yes } +} +for example. Conflicts are resolved in the logical way: +@ID @Code @Verbatim { +margin { 0.5f } +marginleft { 0.0f } +} +is equivalent to the four specialized options +@ID @Code @Verbatim { +marginabove { 0.5f } +marginbelow { 0.5f } +marginleft { 0.0f } +marginright { 0.5f } +} +General options are really just abbreviations for sets of specialized +options. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_widt b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_widt new file mode 100755 index 0000000000000..f9889624d1699 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/tbl_widt @@ -0,0 +1,84 @@ +@Section + @Title { Cell width and height } + @Tag { tbl_widt } +@Begin +@PP +Lout is quite good a choosing suitable widths for cells. It leaves +narrow cells at their natural width, then uses paragraph breaking to +reduce the wider cells to a common width which is as large as +the available space allows: +@QD @OneRow @Tbl + aformat { @Cell @I A | @Cell B | @Cell C } +{ +@Rowa + A { Acacia } + B { +Shrub or small tree with grey-green foliage and brilliant +yellow blossom in late winter. +} + C { +Distributed widely throughout Australia except in the most arid +parts; many varieties. +} +} +This usually looks good, but if you need something else, there is +the @Code width option: +@ID @OneRow @Code "@Cell width { 3c }" +Here we have asked for a cell width of three centimetres; this includes +the cell margins. When using @Code width to fine-tune the appearance of +a table wide enough to require paragraph breaking, it is best to use +@Code width to make cells narrower, not wider. +@PP +Regrettably, there is no way to request that several cells in a row be +given a common width equal to the width of the widest. One simple way to +approximate this is to give these cells the same @Code width value. The +@Code width option also has a special value, {@Code "expand"}. All +cells with @Code "width { expand }" are assigned a common width +expand.cell.width @Index { @Code expand cell width in tables } +equal to the maximum amount permitted by the available space. For example, +@ID @OneRow @Code @Verbatim { +@QuotedDisplay @Tbl + width { expand } + paint { lightgrey } + aformat { @Cell A | @Cell B | @Cell C } +{ +@Rowa + A { 23.56 } + B { 98.76 } + C { 65.00 } +} +} +has result +@QuotedDisplay @Tbl + width { expand } + paint { lightgrey } + aformat { @Cell A | @Cell B | @Cell C } +{ +@Rowa + A { 23.56 } + B { 98.76 } + C { 65.00 } +} +We have used our usual trick of making the option apply to several cells +by moving it to a more general level, in this case to {@Code "@Tbl"}. +The available space can be reduced using the @Code "@Wide" symbol; if +we replace @Code "@QuotedDisplay @Tbl" in the example above with +@ID @OneRow @Code "@CentredDisplay 4i @Wide @Tbl" +the result will be +@CentredDisplay 4i @Wide @Tbl + width { expand } + paint { lightgrey } + aformat { @Cell A | @Cell B | @Cell C } +{ +@Rowa + A { 23.56 } + B { 98.76 } + C { 65.00 } +} +with the total table width reduced to four inches. +@PP +There is an analogous @Code height option which makes a cell take on +a particular fixed height, again including margins. Make sure there +is enough height in the cell to hold its entry when you use this +option. The @Code "expand" value is not available for height. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ new file mode 100755 index 0000000000000..7ebe52fee76f3 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ @@ -0,0 +1,27 @@ +@Chapter + @Title { Types of Documents } + @Tag { types } +@Begin +@LP +Particular types of documents have specialized formatting requirements: +title pages in books, abstracts in technical reports, and so on. Lout +provides a range of @I { document types } with the appropriate +specialized features for +document.types @Index { document types } +each type. +@PP +There are five types: ordinary documents, technical reports, +books, overhead transparencies, and stand-alone illustrations. The +features of all other chapters are available within each document type, +but the features of one type are not available within other types. +@BeginSections +@Include { typ_ordi } +@Include { typ_repo } +@Include { typ_book } +@Include { typ_over } +@Include { typ_illu } +@Include { typ_plai } +@Include { typ_apdf } +@Include { typ_orga } +@EndSections +@End @Chapter diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_apdf b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_apdf new file mode 100755 index 0000000000000..531f9c939f19b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_apdf @@ -0,0 +1,28 @@ +@Section + @Title { PDF (Adobe Portable Document Format) documents } + @Tag { pdf } +@Begin +@PP +You can get Lout to produce PDF (Adobe Portable Document Format) output as +an alternative to PostScript, by adding @Code "-PDF" to the command line +like this: +pdf. @Index { PDF documents } +@ID @Code "lout -PDF simple > simple.pdf" +No other changes are required. +@PP +When viewed with a PDF viewer, entries in tables of contents and indexes +can be clicked on and this transports the viewer to the part of the document +referenced by the link, as described in +cross @CrossLink { Section {@NumberOf cross} }. Recent versions of PostScript +support this feature too, via the @I pdfmark feature, and Lout's PostScript +contains links expressed in this way. Unfortunately, few PostScript viewers +know how to handle these links; those that don't just ignore them. +@PP +Regrettably, the PDF output produced by Lout is inferior at graphics: the +advanced features of the @Code "@Diag" and @Code "@Graph" packages do not +produce any output. One can still format documents that contain them, but +the results are disappointing. The only way to get the best of everything +is to produce PostScript, and then either pass it through a `distillation' +program to produce PDF, or else view it with a PostScript viewer that +understands links. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_book b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_book new file mode 100755 index 0000000000000..fd834831a7d4e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_book @@ -0,0 +1,436 @@ +@Section + @Title { Books } + @Tag { books } +@Begin +@PP +To produce a book, start off with the @Code book setup file and the +books. @Index { books } +book. @Index @Code "@Book" +@Code "@Book" symbol: +@ID @OneRow @Code { +"@SysInclude { book }" +"@Book" +" @Title {}" +" @Author {}" +" @Edition {}" +" @Publisher {}" +" @BeforeTitlePage {}" +" @OnTitlePage {}" +" @AfterTitlePage {}" +" @AtEnd {}" +" @InitialFont { Times Base 12p }" +" @InitialBreak { adjust 1.2fx hyphen }" +" @InitialSpace { lout }" +" @InitialLanguage { English }" +" @PageOrientation { Portrait }" +" @PageHeaders { Titles }" +" @ColumnNumber { 1 }" +" @FirstPageNumber { 1 }" +" @IntroFirstPageNumber { 1 }" +" @OptimizePages { No }" +"//" +} +This shows all the options of @Code "@Book" with their default values. As +usual, these options may be given in any order, and only those +to be changed need be given at all. The meaning of the +@Code "//" symbol after the last option is beyond our scope, but total +disaster will ensue if it is forgotten. +@PP +The {@Code "@Title"}, {@Code "@Author"}, and {@Code "@Edition"} options +will appear on the title page, in the @Code "clines" paragraph breaking +style which centres each line (Section {@NumberOf paras}). The +@Code "@Publisher" option will appear at the foot of the title page. +@PP +The {@Code "@BeforeTitlePage"} option will come out on the page (or +pages) preceding the title page. This is where publishers +advertise other books of a similar kind, perhaps from a series. +@PP +If {@Code "@OnTitlePage"} is given it will replace the title page +that usually appears, superseding the {@Code "@Title"}, {@Code "@Author"}, +{@Code "@Edition"}, and @Code "@Publisher" options in the process. +@PP +The {@Code "@AfterTitlePage"} option will come out on the page +(or pages) following the title page. This is where publishers +traditionally put copyright notices, information about production, +and cataloguing-in-publication data. If this option is empty or +omitted, there will be no such pages. +@PP +The {@Code "@AtEnd"} option will come out on a single unnumbered page +with no page headers or footers, and using the same margins as for even +pages, after the very last page of the book; even after the index if +there is one. It is intended to make it possible to include a back +cover, so @Code "@PageOf last.page" (Section {@NumberOf cross}) does +not take account of any @Code "@AtEnd" page. +@PP +The remaining options are a selection of setup file options (Section +{@NumberOf setup}) that frequently need to be changed. If your changes +to the overall formatting are confined to these options, you can change +them here and avoid having your own setup file. If you already have +your own setup file, change them in either place and omit them in +the other. +@PP +@Code "@InitialFont" is the font of the bulk of the book, +and should contain a family, a face, and a size. The default +value selects the Times family, the Base face, and the 12 point size. +@PP +@Code "@InitialBreak" controls the behaviour of paragraph breaking in +the bulk of the book. It should have three parts: a paragraph +breaking style ({@Code adjust}, {@Code ragged}, etc.), an inter-line +spacing ({@Code "1.2fx"} for single spacing, {@Code "2.4fx"} for +double spacing, and so on), and either @Code "hyphen" or +@Code "nohyphen" for turning hyphenation on or off. It may also +have @Code "nobreakfirst" or @Code "nobreaklast" (or both), meaning +to disallow a page break after the first line of a paragraph, or +before the last, respectively. +@PP +@Code "@InitialSpace" determines how Lout treats white space +between two objects, as described in Section +{@NumberOf white}. @Code "@InitialLanguage" determines the +language of the bulk of the book. +@PP +@Code "@PageOrientation" determines the orientation of the page. Its +value may be {@Code Portrait} (the default), {@Code Landscape}, +{@Code ReversePortrait}, or {@Code ReverseLandscape}. See +Section {@NumberOf pagesize} for further details. +@PP +@Code "@PageHeaders" determines the appearance of page headers and +footers. Its value may be {@Code None}, +{@Code Simple}, {@Code Titles}, or {@Code NoTitles}. Section +{@NumberOf headers} has the details, but just briefly, {@Code None} +and {@Code Simple} are not really suitable for books, @Code Titles +produces full running titles as in the present document, and +@Code "NoTitles" is like @Code "Titles" with the running titles +omitted, leaving just the page numbers. +@PP +@Code "@ColumnNumber" is the number of columns per page in the bulk of +the book, and may be anything from {@Code 1} (the default value) to +{@Code 10}. Irrespective of its value, all prefatory material, all +chapter and appendix headings, and all figures and tables will be +printed full width. There is a separate @Code "@IndexColumnNumber" +option in the setup file which determines the number of columns in +the index (Section {@NumberOf indexes}). +@PP +@Code "@FirstPageNumber" is the page number to be given to the first +non-introductory page. @Code "@IntroFirstPageNumber" is the +page number of the first introductory page; it will usually appear +in Roman but must be given in Arabic. +@PP +Lout ordinarily places lines onto a page until space runs out, then moves +to the next page and so on. This often produces ugly empty spaces at +the bottoms of pages preceding large unbreakable displays. Setting the +@Code "@OptimizePages" option to {@Code "Yes"} causes Lout to examine the +overall situation and try to minimize the ugliness, using the @TeX +optimal paragraph breaking algorithm. It takes two runs to do this, +with intermediate results stored in Lout's cross reference database +(Section {@NumberOf cross}); so deleting file {@Code lout.li} will reset +it, which might be wise after major changes. It is possible for the +optimizer to cycle, never settling on a single final best version; this +is usually caused by footnotes or floating figures inserted at points +which end up near page boundaries. +@PP +After the compulsory @Code "//" comes an optional preface: +preface. @Index @Code "@Preface" +@ID @OneRow @Code { +"@Preface" +" @Title { About this book }" +"@Begin" +"@PP" +"..." +"@End @Preface" +} +Since the title of most prefaces is simply Preface, that is the default +value in English of the @Code "@Title" option. After the preface there +will automatically appear a table of contents listing the introduction, +chapters, sections, subsections, appendices, sub-appendices, bibliography, +and index as appropriate. +@PP +The pages up to this point will be numbered in lower case Roman +numerals; subsequent pages will be numbered in Arabic starting from +the @Code "@FirstPageNumber" option of {@Code "@Book"}. There is +a setup file option for changing this to a single numbering sequence +(see below). +@PP +Next comes an optional abbreviations sections, exactly like the +preface except that its name is @Code "@Abbreviations" and the +abbreviations. @Index @Code "@Abbreviations" +default title in English is Abbreviation. There is no support for +what goes inside; you need to use a list or table to lay out the +abbreviations, in the usual way. +@PP +Next comes an optional introduction, exactly like the preface except that +its name is @Code "@Introduction" and the default title in English is +introduction. @Index @Code "@Introduction" +Introduction: +@ID @OneRow @Code { +"@Introduction" +"@Begin" +"@PP" +"..." +"@End @Introduction" +} +After that comes a sequence of chapters in the usual style: +chapter. @Index @Code "@Chapter" +@ID @OneRow @Code { +"@Chapter" +" @Title { Australian Native Plants }" +"@Begin" +"@PP" +"..." +"@End @Chapter" +} +No @Code "@BeginChapters" or @Code "@EndChapters" symbols are +beginchapters. @Index @Code "@BeginChapters" +endchapters. @Index @Code "@EndChapters" +needed, because these chapters are not inside any other large-scale +structure symbol. Within a chapter, there may be a sequence of sections, +each introduced by {@Code "@Section"}, all bracketed +section.books @SubIndex { in books } +by @Code "@BeginSections" and {@Code "@EndSections"}: +beginsections.books @SubIndex { in books } +endsections.books @SubIndex { in books } +@ID @OneRow @Code { +"preceding text" +"@BeginSections" +"@Section ... @End @Section" +"@Section ... @End @Section" +"..." +"@Section ... @End @Section" +"@EndSections" +} +Within each section there may be subsections, each introduced by +{@Code "@SubSection"}, and the sequence as a whole bracketed by +@Code "@BeginSubSections" and {@Code "@EndSubSections"}: +subsection.books @SubIndex { in books } +beginsubsections.books @SubIndex { in books } +endsubsections.books @SubIndex { in books } +@ID @OneRow @Code { +"preceding text" +"@BeginSubSections" +"@SubSection ... @End @SubSection" +"@SubSection ... @End @SubSection" +"..." +"@SubSection ... @End @SubSection" +"@EndSubSections" +} +The subsections may contain sub-subsections, but +subsubsection.books @SubIndex { in books } +beginsubsubsections.books @SubIndex { in books } +endsubsubsections.books @SubIndex { in books } +there are no sub-sub-subsections. +@PP +After the chapters comes an optional sequence of appendices. Each +is introduced by @Code "@Appendix" in the usual way: +appendix.books @SubIndex { in books } +@ID @OneRow @Code { +"@Appendix" +" @Title { Climatic Regions of Australia }" +"@Begin" +"@PP" +"..." +"@End @Appendix" +} +No @Code "@BeginAppendices" or @Code "@EndAppendices" symbols are +beginappendices.books @SubIndex { in books } +endappendices.books @SubIndex { in books } +needed, because (like chapters) these appendices do not lie inside +any other large-scale structure symbol. The appendices are numbered +A, B, C, etc., as is conventional for them. Within each appendix +there may be a sequence of subappendices, obtained with the +@Code "@SubAppendix" symbol and bracketed by +subappendix.books @SubIndex { in books } +@Code "@BeginSubAppendices" and {@Code "@EndSubAppendices"}: +beginsubappendices.books @SubIndex { in books } +endsubappendices.books @SubIndex { in books } +@ID @OneRow @Code { +"preceding text" +"@BeginSubAppendices" +"@SubAppendix ... @End @SubAppendix" +"@SubAppendix ... @End @SubAppendix" +"..." +"@SubAppendix ... @End @SubAppendix" +"@EndSubAppendices" +} +There are sub-subappendices following the same pattern, but no +subsubappendix.books @SubIndex { in books } +beginsubsubappendices.books @SubIndex { in books } +endsubsubappendices.books @SubIndex { in books } +sub-sub-subappendices. +@PP +The book ends with the last chapter or appendix; any reference list or +index will be appended automatically. Although we have described how to +create books as though everything was in one large file, in practice it +is much better to divide the book into multiple files, following the +method given in Section {@NumberOf organizing}. +@PP +In addition to the {@Code "@Title"} option, each large-scale structure +symbol (i.e. {@Code "@Preface"}, {@Code "@Introduction"}, {@Code "@Chapter"}, +{@Code "@Section"}, {@Code "@SubSection"}, {@Code "@SubSubSection"}, +{@Code "@Appendix"}, {@Code "@SubAppendix"}, and {@Code "@SubSubAppendix"}) +has a @Code "@Tag" option for cross referencing (Section {@NumberOf cross}), +an @Code "@InitialLanguage" option for changing the language of that +part of the document, and a @Code "@RunningTitle" option which will be +used in place of @Code "@Title" in running headers if given. This last +is useful when the full title is rather long. +@PP +The @Code "@Chapter" symbol has three additional options for dividing +parts. @Index { parts of books } +the book into parts: +part.number @Index @Code "@PartNumber" +part.title @Index @Code "@PartTitle" +part.text @Index @Code "@PartText" +@ID @OneRow @Code { +"@Chapter" +" @PartNumber { Part A }" +" @PartTitle { The Ancient World }" +" @PartText { ... }" +} +Any chapter with a non-empty @Code "@PartTitle" option will become the +first chapter of a part. It will be preceded by two pages containing the +part number, title, and text, and there will also be an entry +made in the table of contents. @Code "@PartNumber" and @Code "@PartText" +may be omitted. Parts are @I not numbered automatically: you +have to supply your own numbers or letters as shown above. +@PP +The features described in other chapters are all available within +books. A table of contents and index will appear automatically, and +you will need to change the setup file to avoid them. Endnotes will +appear at the end of the enclosing preface, introduction, chapter, or +appendix. The numbering of figures and tables includes a chapter or +appendix number: the first figure of Appendix C will be Figure C.1, +and so on. Figures and tables within the preface or introduction are +numbered 1, 2, 3, etc. A figure or table will never appear on the +same page as the beginning of a chapter or appendix. References work +as described in Chapter {@NumberOf biblio}. As explained there, it is +possible to have a list of references at the end of each chapter as well +as at the end of the book. +@PP +Within the @Code "book" setup file there is a @Code "@BookSetup" +booksetup. @Index @Code "@BookSetup" +symbol whose options control the appearance of features specific to books +(in other words, the features described in this section): +@ID @OneRow @Code { +"@Use { @BookSetup" +" # @TitlePageFont { Helvetica Base }" +" # @SeparateIntroNumbering { Yes }" +" # @PrefaceAfterContents { No }" +" # @ReferencesBeforeAppendices { No }" +" # @ChapterStartPages { Any }" +" # @ChapterWord { chapter }" +" # @ChapterNumbers { Arabic }" +" # @ChapterHeadingFont { Bold 2.00f }" +" # @ChapterHeadingBreak { ragged 1.2fx nohyphen }" +" # @ChapterHeadingFormat { number @DotSep title }" +" # @AboveChapterGap { 3.00f }" +" # @ChapterInContents { Yes }" +"}" +} +This is just a representative sample of these options. Section +{@NumberOf setup} explains how to make your own setup file and +change its options; here we just explain what the options do. +@PP +@Code "@TitlePageFont" is the font used on the title +title.page.font. @Index @Code "@TitlePageFont" +page of the book, not including a size. +@PP +@Code "@ChapterStartPages" determines what kinds of pages chapters and +chapter.start.pages @Index @Code "@ChapterStartPages" +other major components of the book may begin on, and may be {@Code Any}, +{@Code Odd}, or {@Code Even}, meaning any page, odd-numbered pages only, +or even-numbered pages only. It may also be {@Code SamePage}, which +means that chapters and appendices will continue directly after the +previous chapter or appendix, on the same page (other major components +such as the table of contents and index will start on a fresh page +as usual). If you switch to {@Code SamePage}, you will probably need +to adjust {@Code "@ChapterHeadingFont"} and {@Code "@AboveChapterGap"}, +described below, since their default values are intended for use with +chapters and appendices that start on a fresh page; and you will also +need to begin the body of your chapter with a paragraph symbol such as +@Code "@LP" or {@Code "@PP"}, since otherwise there will be no +vertical space between the chapter heading and body. +@PP +@Code "@SeparateIntroNumbering" +separate.intro.numbering @Index @Code "@SeparateIntroNumbering" +determines whether the introductory part of the book is to have a +separate numbering sequence or not. @Code "@ReferencesBeforeAppendices" +references.before.appendices @Index @Code "@ReferencesBeforeAppendices" +determines whether any final list of references appears before or +after any appendices. @Code "@ChapterWord" determines +the word used in chapter titles; its default value, {@Code "chapter"}, +produces `Chapter' in the current language. The other six options control +the appearance of chapters, and there are similar options for controlling +the other large-scale structure symbols. +@PP +@Code "@ChapterNumbers" determines how chapters will be numbered, and may +be @Code { None }, @Code { Arabic }, @Code { Roman }, @Code { UCRoman }, +@Code { Alpha }, or @Code { UCAlpha }. The default value is @Code Arabic +for chapters and also for all large-scale structure symbols except +appendices, for which it is {@Code UCAlpha}. This produces the appendices +numbered in upper-case letters (A, B, C, etc.) that were mentioned earlier. +@PP +@Code "@ChapterHeadingFont" is the font used for chapter headings. The +default value shown above produces the bold face of the initial font +family, at twice the initial size. A family name is acceptable +here as well. @Code "@ChapterHeadingBreak" is the break style for +chapter headings. +@PP +@Code "@ChapterHeadingFormat" allows you to change +the format of the heading. The symbol @Code "number" within it will +be replaced by the number of the chapter (actually including the word +Chapter as well in the current language, e.g. {@Code "Chapter 12"}); the +symbol @Code "title" within it will be replaced by the title. So you could +write, say, +@ID @Code +"@ChapterHeadingFormat { @Box paint { lightgrey } { number @DP title } }" +to get the title below the number, both enclosed in a box. The default +value uses the @Code "@DotSep" symbol from Section {@NumberOf headers} +to produce the number and title separated by a dot and two spaces, roughly +the same as +@ID @Code "@ChapterHeadingFormat { number. title }" +except when there is no number. This option is applied +to other major headings, in the preface, introduction, table of +contents, appendices, reference list, and index. In all these other +cases, @Code "number" is an empty object, except for appendices, when it +contains @Code "Appendix A" or whatever. +@PP +There is a @Code "@PartHeadingFormat" option for determining the +format of part headings. It works in the same way as +{@Code "@ChapterHeadingFormat"}, with @Code "number" and @Code "title" +symbols standing for the relevant @Code "@PartNumber" and @Code "@PartTitle" +options. The default value is +@ID @Code "@PartHeadingFormat { @CD number @DP @CD title }" +which centres the number and title. The default paragraph breaking +style is {@Code "clines"}, but you may place a @Code "@Break" symbol +within @Code "@PartHeadingFormat" to change this. +@PP +The example of boxed titles for chapters given above suffers from two +practical deficiencies. First, the box won't extend right across the +page, and second, when there is no @Code "number" we don't want the +@Code "@DP" either. Here is a value for @Code "@ChapterHeadingFormat" +that solves both of these problems and looks good in practice: +@ID @OneCol @Code { +"@ChapterHeadingFormat {" +" number @Case {" +" {} @Yield @Box paint { lightgrey } @HExpand { title }" +" else @Yield @Box paint { lightgrey } @HExpand { number @DP title }" +" }" +"}" +} +The @Code "@Case" symbol (Expert's Guide @Cite { $kingston1995lout.expert }) +distinguishes between the cases where @Code "number" is empty and non-empty; +the @Code "@HExpand" symbol expands the horizontal space occupied by the +heading to the maximum possible, so that when the box is drawn around it +it will occupy the full page width. The format can be as +complicated as you like, and there is no need to squeeze it all onto +one line; as always, the end of a line is the same as one space. +@PP +Every chapter and appendix begins on a new page. @Code "@AboveChapterGap" +determines how much space is left blank above the chapter title; the +default value is three times the initial font size. There are similar +options for other large-scale structure symbols, which determine how +much space is left before each one. +@PP +@Code "@ChapterInContents" determines whether or not an entry is made in +the table of contents for each chapter; it may be @Code Yes or {@Code No}, +but would always be {@Code Yes}. The default value of the corresponding +options for sub-subsections and sub-subappendices, however, is {@Code No}. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_illu b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_illu new file mode 100755 index 0000000000000..532b42b3e0b39 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_illu @@ -0,0 +1,85 @@ +@Section + @Title { Stand-alone illustrations } + @Tag { illustrations } +@Begin +@PP +This section describes how to use Lout to produce an illustration for +stand.alone.illustrations. @Index { stand-alone illustrations } +illustrations. @Index { illustrations } +inclusion in some other document, which may itself be a Lout document +but need not be. The opposite process, the inclusion of an illustration +in a Lout document, is the subject of Section {@NumberOf include}. +@PP +Suppose you want to produce the following logo +for inclusion in some other document: +@ID { +45d @Rotate @CurveBox { ARMY @LP 180d @Rotate ARMY } +} +This is just an object, and it is not hard to make it using Lout's +graphics features: +@ID @Code "45d @Rotate @CurveBox { ARMY @LP 180d @Rotate ARMY }" +The problem is that objects ordinarily come out on pages with margins, +page numbers, and so forth, which we don't want here. The solution +is to use the illustration document type, whose setup file, curiously +enough, is called {@Code "picture"}: +illustration. @Index @Code "@Illustration" +@ID @OneRow @Code { +"@SysInclude { picture }" +"@Illustration {" +" 45d @Rotate @CurveBox { ARMY @LP 180d @Rotate ARMY }" +"}" +} +After the usual @Code "@SysInclude" line comes one @Code "@Illustration" +symbol. Following it is an arbitrary object which becomes the entire +result, with no pages and no margins, ready for inclusion in some other +document as an illustration. +@PP +The @Code "@Illustration" symbol has options for setting the initial +font, paragraph breaking style, colour, and language. Here they are +with their default values: +@ID @OneRow @Code { +"@Illustration" +" @InitialFont { Times Base 12p }" +" @InitialBreak { adjust 1.2fx hyphen }" +" @InitialSpace { lout }" +" @InitialLanguage { English }" +" @InitialColour { black }" +"{" +" ..." +"}" +} +You can specify any colour from the list in Section {@NumberOf colour}, +for example {@Code blue}, and then your illustration will have that +colour wherever it is included. +@PP +Because there are no pages, the width and height of the result are +indeterminate, depending on how large the object turns out to be. This +makes things very awkward for filled paragraphs and centring, which depend +on knowing how much space is available to be occupied. So you should either +avoid filled paragraphs and all displays and lists altogether in +illustrations, or else enclose your object in a @Code "@Wide" symbol: +wide @RawIndex { @Code "@Wide" } +wide.illustrations @SubIndex { with illustrations } +@ID @OneRow @Code { +"@Illustration 5c @Wide {" +" ..." +"}" +} +to make clear how wide you want your illustration to be. +@PP +The technical name for a file containing a stand-alone illustration +encapsulated.postscript @Index { encapsulated PostScript file } +eps @Index { EPS file } +is `encapsulated PostScript file' or `EPS file' for short. To get +Lout to produce an encapsulated PostScript file instead of an ordinary +PostScript file, you have to use the @Code "-EPS" Unix command line +flag. For example, suppose the Lout file containing our example +illustration is called {@Code "army"}; then the appropriate Unix +command for formatting it is +@ID @Code "lout -EPS army > army.eps" +An EPS file is supposed to contain only one `page', so Lout will refuse +to generate any second or subsequent pages when the @Code "-EPS" flag +is given. There is also a minor difference in format between ordinary +and encapsulated PostScript files, which is why the @Code "-EPS" flag +is needed at all. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_ordi b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_ordi new file mode 100755 index 0000000000000..9fbd07a6259f0 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_ordi @@ -0,0 +1,313 @@ +@Section + @Title { Ordinary documents } + @Tag { ordinary } +@Begin +@PP +Ordinary documents are the simplest kind, consisting of a plain sequence +ordinary. @Index { ordinary documents } +of numbered pages. To produce an ordinary document, use the @Code doc +setup file and the @Code "@Doc" symbol: +doc. @Index @Code "@Doc" +@ID @OneRow @Code { +"@SysInclude { doc }" +"@Doc @Text @Begin" +"..." +"@End @Text" +} +where @Code ... stands for the body of your document. This is the +arrangement from Section {@NumberOf start} for getting +started. Alternatively, you can begin with +@Code "@Document" instead of {@Code "@Doc"}: +document. @Index @Code "@Document" +@ID @OneRow @Code { +"@SysInclude { doc }" +"@Document" +" @InitialFont { Times Base 12p }" +" @InitialBreak { adjust 1.2fx hyphen }" +" @InitialSpace { lout }" +" @InitialLanguage { English }" +" @PageOrientation { Portrait }" +" @PageHeaders { Simple }" +" @FirstPageNumber { 1 }" +" @ColumnNumber { 1 }" +" @OptimizePages { No }" +" @Unpaginated { No }" +"//" +"@Text @Begin" +"..." +"@End @Text" +} +This shows all the options of {@Code "@Document"}, with their default +values. As usual with options, the options of {@Code "@Document"} +may be given in any order, and only the ones that need to be changed +need be given at all. Notice the @Code "//" after the last option. Its +meaning is beyond our +"//" @Index { @Code "//" symbol } +scope, but total disaster will ensue if it is forgotten. The @Code "@Doc" +symbol is an abbreviation for {@Code "@Document //"}, which is why you don't +need @Code "//" with {@Code "@Doc"}. +@PP +The eight options are a selection of setup file options (Section +{@NumberOf setup}) that frequently need to be changed. If your changes +to the overall formatting are confined to these options, you can change +them here and avoid having your own setup file. If you already have +your own setup file, change them in either place and omit them in +the other. +@PP +@Code "@InitialFont" is the font of the bulk of the document, +and should contain a family, a face, and a size. The default +value selects the Times family, the Base face, and the 12 point size. +@PP +@Code "@InitialBreak" controls the behaviour of paragraph breaking in +the bulk of the document. It should have three parts: a paragraph +breaking style ({@Code adjust}, {@Code ragged}, etc.), an inter-line +spacing ({@Code "1.2fx"} for single spacing, {@Code "2.4fx"} for +double spacing, and so on), and either @Code "hyphen" or @Code "nohyphen" +for turning hyphenation on or off. It may also have @Code "nobreakfirst" +or @Code "nobreaklast" (or both), meaning to disallow a page break after +the first line of a paragraph, or before the last, respectively. +@PP +@Code "@InitialSpace" determines how Lout treats white space between +two objects, as described in Section +{@NumberOf white}. @Code "@InitialLanguage" determines the language +of the bulk of the document. +@PP +@Code "@PageOrientation" determines the orientation of the page. Its +value may be {@Code Portrait} (the default), {@Code Landscape}, +{@Code ReversePortrait}, or {@Code ReverseLandscape}. See +Section {@NumberOf pagesize} for further details. +@PP +@Code "@PageHeaders" determines the appearance of page headers and +footers throughout the document, and may be {@Code None}, +{@Code Simple}, {@Code Titles}, or {@Code NoTitles}. Section +{@NumberOf headers} has the details, but just briefly, {@Code None} +means no page headers at all, {@Code Simple} means a +page number between hyphens at the top of each page except the first, +@Code Titles produces full running titles as in this guide, +and @Code "NoTitles" is like @Code "Titles" with the running titles +omitted, leaving just the page numbers. +@PP +@Code "@FirstPageNumber" is the page number given to the first page. +@PP +@Code "@ColumnNumber" is the number of columns per page in the bulk of +the document, and may be anything from {@Code 1} (the default value) to +{@Code 10}. It is possible to produce full-width ordinary +text in a multi-column document, using the @Code "@FullWidth" +full.width. @Index @Code "@FullWidth" +symbol: +@ID @OneRow @Code { +"@SysInclude { doc }" +"@Document" +" @ColumnNumber { 2 }" +"//" +"@Text @Begin" +"@FullWidth {" +"@CentredDisplay @Heading { NOTICE TO TRESPASSERS }" +"}Trespassers are hereby notified that, ..." +"@End @Text" +} +This produces a full-width heading above a two-column body. The word +@Code Trespassers has been placed immediately after the closing brace +of @Code "@FullWidth" because (regrettably) any space here will appear +before @Code Trespassers in the output. Alternatively you could use +a paragraph symbol: +@ID @OneRow @Code { +"@FullWidth {" +"@CentredDisplay @Heading { NOTICE TO TRESPASSERS }" +"}" +"@PP" +"Trespassers are hereby notified that, ..." +} +You can have several @Code "@FullWidth" symbols, +producing full-width text wherever you want. Just be aware that +@Code "@FullWidth" always causes a fresh page to be begun, it will never +appear on the same page as a figure or table, and it is not able to hold +a table of contents, a section, or an appendix. +@PP +Lout ordinarily places lines onto a page until space runs out, then moves +to the next page and so on. This often produces ugly empty spaces at +the bottoms of pages preceding large unbreakable displays. Setting the +@Code "@OptimizePages" option to {@Code "Yes"} causes Lout to examine the +overall situation and try to minimize the ugliness, using the @TeX +tex.page @SubIndex { page optimization } +optimal paragraph breaking algorithm. It takes two runs to do this, +with intermediate results stored in Lout's cross reference database +(Section {@NumberOf cross}); so deleting file {@Code lout.li} will reset +it, which might be wise after major changes. It is possible for the +optimizer to cycle, never settling on a single final best +version; this is usually caused by footnotes or floating figures inserted +at points that end up near page boundaries. +@PP +The @Code "@Unpaginated" option, whose value is ignored unless plain text +output is in effect, produces unpaginated output when changed to +{@Code Yes} (see Section {@NumberOf plain}). +@PP +Within the @Code "@Text" symbol, it is possible to have a sequence +of sections: +section. @RawIndex @Code "@Section" +section.ordinary @SubIndex { in ordinary documents } +beginsections. @RawIndex @Code "@BeginSections" +beginsections.ordinary @SubIndex { in ordinary documents } +endsections. @RawIndex @Code "@EndSections" +endsections.ordinary @SubIndex { in ordinary documents } +@ID @OneRow @Code { +"preceding text" +"@BeginSections" +"@Section ... @End @Section" +"@Section ... @End @Section" +"..." +"@Section ... @End @Section" +"@EndSections" +} +as described in Section {@NumberOf largescale}. Within any +section, a similar arrangement produces subsections: +subsection. @RawIndex @Code "@SubSection" +subsection.ordinary @SubIndex { in ordinary documents } +beginsubsections. @RawIndex @Code "@BeginSubSections" +beginsubsections.ordinary @SubIndex { in ordinary documents } +endsubsections. @RawIndex @Code "@EndSubSections" +endsubsections.ordinary @SubIndex { in ordinary documents } +@ID @OneRow @Code { +"preceding text" +"@BeginSubSections" +"@SubSection ... @End @SubSection" +"@SubSection ... @End @SubSection" +"..." +"@SubSection ... @End @SubSection" +"@EndSubSections" +} +Within any subsection, there may be sub-subsections, obtained +using {@Code "@BeginSubSubSections"}, {@Code "@SubSubSection"}, +subsubsection. @RawIndex @Code "@SubSubSection" +subsubsection.ordinary @SubIndex { in ordinary documents } +beginsubsubsections. @RawIndex @Code "@BeginSubSubSections" +beginsubsubsections.ordinary @SubIndex { in ordinary documents } +endsubsubsections. @RawIndex @Code "@EndSubSubSections" +endsubsubsections.ordinary @SubIndex { in ordinary documents } +and {@Code "@EndSubSubSections"}. There are no sub-sub-subsections. +@PP +Also within the @Code "@Text" symbol only, there may be a sequence of +appendices: +appendix. @RawIndex @Code "@Appendix" +appendix.ordinary @SubIndex { in ordinary documents } +beginappendices. @RawIndex @Code "@BeginAppendices" +beginappendices.ordinary @SubIndex { in ordinary documents } +endappendices. @RawIndex @Code "@EndAppendices" +endappendices.ordinary @SubIndex { in ordinary documents } +@ID @OneRow @Code { +"preceding text" +"@BeginAppendices" +"@Appendix ... @End @Appendix" +"@Appendix ... @End @Appendix" +"..." +"@Appendix ... @End @Appendix" +"@EndAppendices" +} +These will be `numbered' A, B, C etc. as is conventional. Within any +appendix there may be a sequence of subappendices, obtained in the +usual way using {@Code "@BeginSubAppendices"}, {@Code "@SubAppendix"}, +subappendix. @RawIndex @Code "@SubAppendix" +subappendix.ordinary @SubIndex { in ordinary documents } +beginsubappendices. @RawIndex @Code "@BeginSubAppendices" +beginsubappendices.ordinary @SubIndex { in ordinary documents } +endsubappendices. @RawIndex @Code "@EndSubAppendices" +endsubappendices.ordinary @SubIndex { in ordinary documents } +and {@Code "@EndSubAppendices"}. There are sub-subappendices as well, +following the same pattern, but no sub-sub-subappendices. +subsubappendix. @RawIndex @Code "@SubSubAppendix" +subsubappendix.ordinary @SubIndex { in ordinary documents } +beginsubsubappendices. @RawIndex @Code "@BeginSubSubAppendices" +beginsubsubappendices.ordinary @SubIndex { in ordinary documents } +endsubsubappendices. @RawIndex @Code "@EndSubSubAppendices" +endsubsubappendices.ordinary @SubIndex { in ordinary documents } +@PP +In addition to the {@Code "@Title"} option, each large-scale structure +symbol ({@Code "@Section"}, {@Code "@SubSection"}, {@Code "@SubSubSection"}, +{@Code "@Appendix"}, {@Code "@SubAppendix"}, and {@Code "@SubSubAppendix"}) +has a @Code "@Tag" option for cross referencing (Section {@NumberOf cross}), +an @Code "@InitialLanguage" option for changing the language of that part +of the document, and a @Code "@RunningTitle" option which will be used in +place of @Code "@Title" in running headers if given. @Code "@RunningTitle" +is useful when the full title is rather long. +@PP +The features described in other chapters are all available within +ordinary documents. Endnotes and references appear automatically at +the end of the document. Figures are labelled Figure 1, Figure 2, +etc., and tables are labelled Table 1, Table 2, etc. +@PP +To get a table of contents, set the @Code "@MakeContents" option in +the setup file to {@Code Yes}, and insert the symbol +@Code "@ContentsGoesHere" at the point where you would like the +contents.goes.here. @Index @Code "@ContentsGoesHere" +table of contents to appear, anywhere before the first section: +@ID @OneRow @Code { +"@SysInclude { doc }" +"@Text @Begin" +"@CentredDisplay @Heading { Safety Procedures }" +"@Heading { Contents }" +"@DP" +"@ContentsGoesHere" +"@DP" +"..." +"@End @Text" +} +You must supply your own heading, as well as paragraph symbols +before and after. Regrettably, @Code "@ContentsGoesHere" may +not be placed inside a display, nor inside {@Code "@FullWidth"}. +@PP +To get an index, set the @Code "@MakeIndex" option in the setup file +to {@Code Yes}, and follow the instructions in Section +{@NumberOf indexes}. The index will appear automatically at the end +of your document. +@PP +Within the @Code doc setup file there is an @Code "@OrdinarySetup" +symbol whose options control the appearance of features specific to +ordinary documents (in other words, the features described in this +section). Here is a representative sample of these options, showing +their default values: +ordinary.setup @Index @Code "@OrdinarySetup" +@ID @OneRow @Code { +"@Use { @OrdinarySetup" +" # @IndexWord { index }" +" # @AppendixWord { appendix }" +" # @SectionNumbers { Arabic }" +" # @SectionHeadingFont { Bold }" +" # @SectionGap { 2.00v }" +" # @SectionInContents { Yes }" +"}" +} +Section {@NumberOf setup} explains how to make your own setup file and +change its options. +@PP +The @Code "@IndexWord" option determines what the index is called, if +there is one. The default value, {@Code "index"}, produces the word +`Index' in the current language. Any other value produces itself. The +@Code "@AppendixWord" option is similar; its default value is `Appendix' +in the current language. +@PP +@Code "@SectionNumbers" determines how sections will be numbered, and may +be @Code { None }, @Code { Arabic }, @Code { Roman }, @Code { UCRoman }, +@Code { Alpha }, or @Code { UCAlpha }. The default value is @Code Arabic +for sections and also all other large-scale structure symbols except +appendices, for which it is {@Code UCAlpha}. This produces the appendices +numbered in upper-case letters (A, B, C, etc.) that were mentioned earlier. +@PP +@Code "@SectionHeadingFont" is the font used for section headings. The +default value produces the bold face from the family of the +initial font. A family name or size is also acceptable: +@ID @Code "@SectionHeadingFont { Helvetica Base +2p }" +makes the section heading appear in the Helvetica font, two +points larger than the initial size. +@PP +@Code "@SectionGap" determines how much space is left blank before each +section title; the default value shown above is twice the current +inter-line spacing. The special value @Code "2b" may be used to get a +page break rather than a space. There are similar options for other +large-scale structure symbols, which determine how much space is left +before each one. +@PP +@Code "@SectionInContents" determines whether or not an entry is made in +the table of contents for each section; it may be @Code Yes or {@Code No}, +but would always be {@Code Yes}. The default value of the corresponding +options for sub-subsections and sub-subappendices, however, is {@Code No}. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_orga b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_orga new file mode 100755 index 0000000000000..8ba6ab74c6be0 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_orga @@ -0,0 +1,93 @@ +@Section + @Title { Organizing large documents } + @Tag { organizing } +@Begin +@PP +It is not a good plan to store a large document in a single large +organizing.large @Index { organizing large documents } +file. It takes too long to find things in it, and if some catastrophe +occurs, you lose the lot. Lout encourages you to break documents into +pieces by its willingness to read a sequence of files +({@Code "lout file1 file2 ..."}). For large documents, the following +plan is recommended. +@PP +Suppose you are making a book whose third chapter contains sections on +banksias, grevilleas, acacias, and eucalypts. Place each section, from +@Code "@Section" to {@Code "@End @Section"}, in a separate file, making +four files called, say, {@Code banksias}, {@Code grevilleas}, +{@Code acacias}, and {@Code eucalypts}. Then make a single file for the +chapter as a whole whose contents are as follows: +@ID @OneRow @Code { +"@Chapter" +" @Title { Australian Native Plants }" +"@Begin" +"Australian native plants provide a distinctive identity to the garden. Although" +"less colourful than their European alternatives, some banksias and grevilleas do" +"flower strongly, and of course the acacias (wattles) are unsurpassable in late winter." +"@BeginSections" +"@Include { banksias }" +"@Include { grevilleas }" +"@Include { acacias }" +"@Include { eucalypts }" +"@EndSections" +"@End @Chapter" +} +The @Code "@Include" symbol causes Lout to read the file whose name follows +include. @Index @Code "@Include" +it between braces, just as though the contents of that file had been included +at that point. +@PP +With this arrangement you can easily rearrange the order of the +sections: just swap their @Code "@Include" lines. You should be using +Lout's automatic cross referencing features (Section {@NumberOf cross}), +so you don't have to worry about keeping cross references up to date. You +can also temporarily delete a section by placing a @Code "#" character at +the start of its line: +@ID @Code "# @Include { acacias }" +This works because @Code "#" is the @I { comment character }: Lout will +comment. @Index { comments } +ignore this character (unless enclosed in double quotes) and everything +following it up to the end of the line. You can even temporarily delete +every section except the one you are working on at the moment, using +these comments. +@PP +Suppose now that this chapter file is called @Code { natives }, and you +have others called @Code { preface }, @Code { flowers }, etc. Then you +can make one file (call it @Code { garden }) for the whole book like this: +@ID @OneRow @Code { +"@SysInclude { book }" +"@Book" +" @Title { The Australian Garden }" +" @Author { Martha S. Vineyard }" +"//" +"@Include { preface }" +"@Include { flowers }" +"@Include { shrubs }" +"@Include { natives }" +"@Include { trees }" +} +You can play the same tricks here: swap chapters around, or temporarily +delete one or more with a {@Code "#"}. When a chapter is finished +you can temporarily delete it to save formatting time and paper, and +bring it back at the end. To format the book, use +@Code "lout garden > out.ps" +in Unix. Lout will read each @Code "@Include" file as it comes to it, +and if it finds an @Code "@Include" of a section while reading a chapter +file, it will read the section too. +@PP +If the order of your chapters is fairly stable, it might be advantageous +to use the @Code "@BypassNumber" option of @Code "@Chapter" (described +in Appendix {@NumberOf bypass}) to fix the numbers of all your chapters, +so that you get correct chapter numbers even when formatting one +chapter at a time. +@PP +If you decide to store chapters in separate Unix directories, make sure +that any @Code "/" characters in the file names are enclosed in double +quotes: +@ID @Code "@Include { \"natives.dir/acacias\" }" +Be careful not to give the directory the same name as your chapter +file. You might also find it useful to construct your book +@I { top-down }, as computer scientists call it, laying out all the +chapters and sections as empty skeletons and filling their contents in +later. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_over b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_over new file mode 100755 index 0000000000000..fd14e2a8fc812 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_over @@ -0,0 +1,314 @@ +@Section + @Title { Overhead transparencies } + @Tag { overheads } +@Begin +@PP +To produce overhead transparencies +@FootNote { +In Version 3.15 overhead transparencies were updated and brought into line +with the other document types. Although existing source files do not need +to be modified, their printed appearance may change (spacing, running +headers). There are some new setup file options, and some changes to +existing setup file options. +} +(hereafter called overheads), start off +overheads. @Index { overhead transparencies } +slides. @RawIndex { slides @I see overhead transparencies } +with the @Code slides setup file and the @Code "@OverheadTransparencies" +overhead.transparencies. @Index @Code "@OverheadTransparencies" +symbol: +@ID @OneRow @Code { +"@SysInclude { slides }" +"@OverheadTransparencies" +" @Title {}" +" @RunningTitle {}" +" @Author {}" +" @Institution {}" +" @DateLine { No }" +" @InitialFont { Times Base 20p }" +" @InitialBreak { ragged 1.2fx nohyphen }" +" @InitialSpace { lout }" +" @InitialLanguage { English }" +" @PageOrientation { Portrait }" +" @PageHeaders { Titles }" +" @FirstPageNumber { 1 }" +" @FirstOverheadNumber { 1 }" +" @FirstLectureNumber { 1 }" +" @OptimizePages { No }" +"//" +} +This shows all the options of @Code "@OverheadTransparencies" with their +default values. As usual with options, they may be given in any order, and +only the ones whose values need to be changed need be given at all. The +meaning of the @Code "//" symbol after the last option is beyond our +scope, but disaster will ensue if it is forgotten. +@PP +If @Code "@Title" is not empty, an initial overhead will be produced +containing the {@Code "@Title"}, {@Code "@Author"}, {@Code "@Institution"}, +and {@Code "@DateLine"} options. @Code "@DateLine" may be set to +{@Code "No"}, meaning no dateline, {@Code "Yes"}, meaning print the current +date, or anything else, which is taken to be a date and printed. +@PP +Each overhead has a running header printed in small type at the top +left. The @Code "@RunningTitle" option goes into this header, or, if +there is no @Code "@RunningTitle" option, @Code "@Title" is used instead. +@PP +The remaining options are a selection of setup file options (Section +{@NumberOf setup}) that frequently need to be changed. If your changes +to the overall formatting are confined to these options, you can change +them here and avoid having your own setup file. If you already have +your own setup file, change them in either place and omit them in +the other. +@PP +@Code "@InitialFont" is the font in which the overheads will be set, and +should contain a family, a face, and a size. A good font size for +overheads is 20 points, so that is the default size. +@PP +@Code "@InitialBreak" controls the behaviour of paragraph breaking in +the overheads. It should have three parts: a paragraph +breaking style ({@Code adjust}, {@Code ragged}, etc.), an inter-line +spacing ({@Code "1.2fx"} for single spacing, {@Code "2.4fx"} for +double spacing, and so on), and either @Code "hyphen" or @Code "nohyphen" +for turning hyphenation on or off. Adjusted lines and hyphenated words +are difficult to read from overheads, so the default is not to have them. +@Code "@InitialSpace" determines how Lout treats white space between +objects (Section {@NumberOf white}). @Code "@InitialLanguage" +determines the language of the overheads. +@PP +@Code "@PageOrientation" determines the orientation of the page. Its +value may be {@Code Portrait} (the default), {@Code Landscape}, +{@Code ReversePortrait}, or {@Code ReverseLandscape}. See +Section {@NumberOf pagesize} for further details. +@PP +@Code "@PageHeaders" determines the appearance of page headers and +footers. Its value may be {@Code None}, {@Code Simple}, {@Code Titles}, +or {@Code NoTitles}. Section {@NumberOf headers} has the details, but +just briefly, {@Code None} produces no page headers, {@Code Simple} produces +page numbers only, @Code Titles produces full running titles, and +@Code "NoTitles" is similar to @Code "Simple" in this context. +@PP +@Code "@FirstPageNumber" is the number given to the first page, +@Code "@FirstOverheadNumber" is the number given to the first overhead, +and @Code "@FirstLectureNumber" is the number given to the first lecture, +of which more below. See preceding sections for {@Code "@OptimizePages"}. +# Lout ordinarily places lines onto a page until space runs out, then moves +# to the next page and so on. This often produces ugly empty spaces at +# the bottoms of pages preceding large unbreakable displays. Setting the +# @Code "@OptimizePages" option to {@Code "Yes"} causes Lout to examine the +# overall situation and try to minimize the ugliness, using the @TeX +# optimal paragraph breaking algorithm. It takes two runs to do this, +# with intermediate results stored in Lout's cross reference database +# (Section {@NumberOf cross}); so deleting file {@Code lout.li} will reset +# it, which might be wise after major changes. It is possible for the +# optimizer to cycle, never settling on a single final best +# version; this is usually caused by footnotes or floating figures inserted +# at points which end up near page boundaries. +@PP +After the compulsory {@Code "//"} come the overheads themselves. There +are two alternatives: a series of overheads, corresponding to a single +lecture, or a series of series of overheads, corresponding to a series +of lectures. If the first is wanted, use this arrangement: +overhead. @Index @Code "@Overhead" +@ID @OneRow @Code { +"@SysInclude { slides }" +"@OverheadTransparencies" +" ..." +"//" +"@Overhead ... @End @Overhead" +"@Overhead ... @End @Overhead" +"..." +"@Overhead ... @End @Overhead" +} +@Code "@Overhead" is a large-scale structure symbol, similar to +{@Code "@Section"}, with the usual options: +@ID @OneRow @Code { +"@Overhead" +" @Title { Trends in investment since 1980 }" +" @RunningTitle { Investment }" +" @Tag { investment }" +" @InitialLanguage { English }" +"@Begin" +"..." +"@End @Overhead" +} +If @Code "@Title" is given it will appear as a centred, bold display +at the beginning of the overhead. As usual, these options may be given +in any order or omitted altogether. +@PP +The body of the overhead is quite arbitrary. Typically one tends to +use lists and displays more than paragraphs, but all the usual features +are available. Each overhead begins on a fresh page, but it may occupy +more than one page. +@PP +@Code "@Overhead" also has a @Code "@Format" option which allows you to +specify an arbitrary format for the body of the overhead (that is, +everything except its title). For example, +@ID @Code "@Format { @CurveBox @HExpand @VExpand @Body }" +encloses the body in a curvebox, with the box expanded to the full +available width and height. Unlike the similar option for figures +and tables, however, this @Code "@Format" option unfortunately has +not been set up to work with multi-page overheads, so if you use the +format just given you have to make sure your overheads all fit on one +page. To draw boxes around the @I entire page, use the @Code "@PageBox" +setup file options. +@PP +Lout does not provide any special support for overlays. A good way to +make them is to first produce one overhead containing all the layers +simultaneously. Once this is correct, enclose the entire body of the +overhead in {@Code "white @Colour"}, make one copy of the text of the +overhead for each layer, separating the copies with @Code "@NP" +(new page) symbols, and, in each copy, enclose the parts that are +to appear in that layer in {@Code "black @Colour"} (or any other +colour). This works because @Code "white @Colour" makes an object +invisible without altering its size. +@PP +We turn now to the second major alternative, which is a series +of lectures, like this: +lecture. @Index @Code "@Lecture" +@ID @OneRow @Code { +"@SysInclude { slides }" +"@OverheadTransparencies" +" ..." +"//" +"@Lecture ... @End @Lecture" +"@Lecture ... @End @Lecture" +"..." +"@Lecture ... @End @Lecture" +} +@Code "@Lecture" is a large-scale structure symbol, again with +the usual options: +@ID @OneRow @Code { +"@Lecture" +" @Title { Macro-Economic Policies for the Nineties }" +" @RunningTitle { Macro-economic policies }" +" @Tag { macro-economics }" +" @InitialLanguage { English }" +"@Begin" +"..." +"@End @Lecture" +} +If @Code "@Title" is non-empty the series of overheads will begin with +an overhead containing the title alone, centred on the page using the +@Code "clines" paragraph breaking style. This means that it makes +sense to have a multi-line title. Any text following the @Code "@Begin" +will appear under the lecture title as you would expect. +@PP +Within the body of {@Code "@Lecture"}, place a series of overheads +bracketed by @Code "@BeginOverheads" and {@Code "@EndOverheads"}: +beginoverheads. @Index @Code "@BeginOverheads" +endoverheads. @Index @Code "@EndOverheads" +@ID @OneRow @Code { +"@BeginOverheads" +"@Overhead ... @End @Overhead" +"@Overhead ... @End @Overhead" +"..." +"@Overhead ... @End @Overhead" +"@EndOverheads" +} +The @Code "@Overhead" symbol is exactly as described earlier. +@PP +The features described in other chapters are available with +overheads. Endnotes and references appear automatically at the +end of the overheads. You can have a table of contents, by setting +the @Code "@MakeContents" option of the setup file to {@Code Yes}. It +will appear automatically after any title overhead. The setup file +options have been set on the assumption that you want your lectures +to appear in the table of contents, but not individual overheads. It is not +possible to have an index, and it is not possible to have multiple columns. +@PP +Within the @Code slides setup file there is an @Code "@OverheadSetup" +symbol whose options control the appearance of features specific to +overhead.setup. @Index @Code "@OverheadSetup" +overheads (in other words, the features described in this section). Here +are some of these options and their default values: +@ID @OneRow @Code { +"@Use { @OverheadSetup" +" # @DateLine { No }" +" # @FirstOverheadNumber { 1 }" +" # @FirstLectureNumber { 1 }" +" # @ContentsWord { contents }" +" # @LectureNumbers { Arabic }" +" # @OverheadNumbers { Arabic }" +" # @TitlePageFont { Helvetica Base }" +" # @LectureHeadingFont { Bold 1.20f }" +" # @LectureHeadingFormat { @Centre number @DP @Centre title @DP }" +" # @OverheadHeadingFormat { @Centre title @DP }" +" # @OverheadHeadingFont { Bold }" +" # @LectureInContents { Yes }" +" # @OverheadInContents { No }" +" # @ReferencesInContents { Yes }" +"}" +} +For an introduction to setup files and their options, consult +Section {@NumberOf setup}. The first four options are as for +@Code "@OverheadTransparencies" as described above. @Code "@ContentsWord" +determines the table of contents heading; its default value, {@Code contents}, +produces `Contents' in the current language. @Code "@LectureNumbers" +and @Code "@OverheadNumbers" determine the style of numbering of lectures +and overheads, and may be {@Code None}, {@Code Arabic}, {@Code Roman}, +{@Code UCRoman}, {@Code Alpha}, or {@Code UCAlpha} as usual. Next come +options for setting the font of the overall title page, the +title page of each lecture, and so on, and finally options which +determine which entries are made in any table of contents. +@PP +The @Code "@LectureHeadingFormat" option determines the +format of the heading of each lecture. Within it, the symbol @Code "number" +stands for the number of the lecture, including the `Lecture' word if +there is one, and @Code "title" stands for the title of the lecture. The +default value centres the number and title, with display gaps below +each one. @Code "@OverheadHeadingFormat" is similar; it has the same +symbols but the default value chooses not to use {@Code "number"}. +@PP +Other setup file options exist which permit you to have a box drawn +around each overhead, and to change the page size, margins, and +orientation. These are described in Chapter {@NumberOf changes}. +@PP +Section {@NumberOf headers} describes the setup file options that +control the appearance of page headers and footers. With overheads, +the values given to the {@Code "@MajorTitle"}, {@Code "@MinorTitle"}, +{@Code "@MajorNum"}, and {@Code "@MinorNum"} symbols within those +options are as follows. If @Code "@Lecture" is being used: +@ID @Tab + @Fmta { @Col A ! @Col B } +{ +@Rowa + A { @Code "@MajorTitle" } + B { The @Code "@RunningTitle" option of +{@Code "@OverheadTransparencies"}, or its @Code "@Title" option +if @Code "@RunningTitle" is absent; } +@Rowa + A { @Code "@MinorTitle" } + B { The @Code "@RunningTitle" option of the current +{@Code "@Lecture"}, or else its @Code "@Title" option if +@Code "@RunningTitle" is absent; } +@Rowa + A { @Code "@MajorNum" } + B { The number of the current {@Code "@Lecture"}; } +@Rowa + A { @Code "@MinorNum" } + B { A two-part number, for example 5.2, containing the number of +the current @Code "@Lecture" and the number within that lecture +of the current overhead. } +} +If @Code "@Lecture" is not being used: +@ID @Tab + @Fmta { @Col A ! @Col B } +{ +@Rowa + A { @Code "@MajorTitle" } + B { The @Code "@RunningTitle" option of +{@Code "@OverheadTransparencies"}, or its @Code "@Title" option +if @Code "@RunningTitle" is absent; } +@Rowa + A { @Code "@MinorTitle" } + B { Empty; } +@Rowa + A { @Code "@MajorNum" } + B { Empty; } +@Rowa + A { @Code "@MinorNum" } + B { The number of the current overhead. } +} +The first page occupied by any overhead is a @Code Start page; subsequent +pages are @Code NonStart pages. There are no @Code Intro pages. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_plai b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_plai new file mode 100755 index 0000000000000..a880ccb85b395 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_plai @@ -0,0 +1,76 @@ +@Section + @Title { Plain text documents } + @Tag { plain } +@Begin +@PP +Occasionally you may need to produce an output file containing plain text +plain.text. @Index { plain text documents } +rather than PostScript, for example for an online manual entry or to send +as electronic mail. Any document that can be produced by Lout in +PostScript can be produced in plain text as well, by adding a @Code "-p" +flag to the Unix command line: +@ID @Code "lout -p simple" +No other changes are required. Here we are sending the output directly to +the screen, but it can be redirected to a file, or piped through the +@Code more command for viewing one page at a time, etc. +@PP +Of course, plain text is an extremely limited medium of communication +compared with PostScript, and this forces Lout to make some rather +drastic compromises: +@BulletList gap { @ParaGap } +@LI { Symbols like {@Code "@Bullet"}, which stand for unusual characters, +produce printable characters which approximate the PostScript ones. For +example, {@Code "@Bullet"} produces {@Code "o"}. However, the @Code "@Char" +and @Code "@Sym" symbols often produce unprintable characters, and are best +avoided; } +@LI { All font and size changes are ignored, since plain text has only +one font and size. Every character is taken to be @Eq { 1 frac 10 } inch +wide and @Eq { 1 frac 6 } inch high; } +@LI { No underlines are printed; } +@LI { No margin notes are printed; } +@LI { Scaled objects are not printed unless the scale factor happens to be 1; } +@LI { Rotated objects are not printed unless the angle happens to be zero +degrees. This means that page orientations (Section {@NumberOf pagesize}) +other than @Code Portrait do not work; } +@LI { Ruled lines are not printed, and paint and colour options are +ignored. This spoils the graphics and graphs of Chapters +{@NumberOf graphics}, {@NumberOf diagrams}, and {@NumberOf graphs}. } +@EndList +Despite the problems, many things work surprisingly well. Tables, for example, +look very good. It does no harm to try things and see if they work out. +@PP +The worst problem with plain text is that characters cannot be placed at +arbitrary points on the page. A superscript, for example, is impossible to +place correctly, so Lout uses a different layout for footnote labels (and +makes a mess of equations, which are best avoided). Because of this problem +it's best to make all horizontal lengths multiples of @Eq {1 frac 10} inch +(conveniently expressed as {@Code 1s}), and all vertical lengths multiples +of @Eq { 1 frac 6 } inch (conveniently expressed as {@Code 1f}). To help +you do this, the setup files contain many entries that look like this +example: +@ID @Code "# @InitialBreak { {adjust 1.2fx hyphen} @OrIfPlain {ragged 1fx nohyphen} }" +The meaning is that the value of @Code "@InitialBreak" will be +@Code "adjust 1.2fx hyphen" usually, but will switch to +{@Code "ragged 1fx nohyphen"}, which is better suited to plain text, +if the @Code "-p" command line flag is used. These setup file values +allow you to switch from PostScript to plain text and back again without +changing anything at all except the @Code "-p" command line flag. +@PP +If you use @Code "lout -P" instead of {@Code "lout -p"}, the plain text +output will contain a form-feed character (control-L) after each page +form.feed @Index { form-feed in plain text } +except the last. This character causes most printing devices to start +a new page, which is very useful when your page height is not exactly +right. +@PP +The @Code "@Document" symbol (Section {@NumberOf ordinary}) has an +unpaginated. @Index @Code "@Unpaginated" +@Code "@Unpaginated" option which, when set to {@Code "Yes"}, causes +the plain text output to appear unpaginated, that is, in one long +continous stream with no page breaks. Its value is ignored if plain text +output is not in effect, so it can be safely set to @Code "Yes" in +documents intended for formatting both ways. The usual margins apply; +footnotes appear at the end; figures and tables do not work. Lout +stupidly reads the entire document before producing any output when +this option is used, so if the document is long you might run out of memory. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_repo b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_repo new file mode 100755 index 0000000000000..a536b123c822b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/typ_repo @@ -0,0 +1,352 @@ +@Section + @Title { Technical reports } + @Tag { reports } +@Begin +@PP +To make a technical report, +start off with the @Code "report" setup +reports. @Index { reports } +technical.reports. @Index { technical reports } +report. @Index @Code "@Report" +file and the @Code "@Report" symbol: +@ID @OneRow @Code { +"@SysInclude { report }" +"@Report" +" @Title {}" +" @Author {}" +" @Institution {}" +" @DateLine { No }" +" @AtEnd {}" +" @CoverSheet { Yes }" +" @ContentsSeparate { No }" +" @InitialFont { Times Base 12p }" +" @InitialBreak { hyphen adjust 1.2fx }" +" @InitialSpace { lout }" +" @InitialLanguage { English }" +" @PageOrientation { Portrait }" +" @PageHeaders { Simple }" +" @ColumnNumber { 1 }" +" @FirstPageNumber { 1 }" +" @OptimizePages { No }" +" @AbstractDisplay { Yes }" +" @AbstractTitle { Abstract }" +" @Abstract {}" +"//" +} +This shows all the options of {@Code "@Report"} +@FootNote { +Version 3.13 of Lout is not completely upwardly compatible with +previous versions in its handling of technical reports. The change +concerns the abstract, and if you see the error message +@ID @Code "symbol @Abstract unknown or misspelt" +you probably need to convert your document. To convert an older +document to Version 3.13, move any @Code "@Abstract" from after the +@Code "//" to before it, delete any options to the @Code "@Abstract" +symbol, and delete any initial paragraph symbol within the abstract. +You can use the @Code "@AbstractTitle" option described in this section +to change the title of the abstract. +} +with their default values. As usual with options, they may be given in +any order, and only the ones whose values need to be changed need be +given at all. The meaning of the @Code "//" symbol is beyond our scope, +but disaster will ensue if it is forgotten. +@PP +The @Code "@Title" option holds the title of the report. It will be +printed using the @Code clines paragraph breaking style (Section +{@NumberOf paras}), which centres each line, so it makes sense +to have multi-line titles: +@ID @OneRow @Code { +"@Report" +" @Title {" +"The solution of real instances of" +"the timetabling problem" +"}" +" ..." +} +With a multi-line title, each line after the first should begin +at the left margin, not indented. It doesn't matter where the first +line begins, because space following an open brace is ignored. +@PP +The @Code "@Author" and @Code "@Institution" options hold the author's +name and institution or address, and will also be printed using the +@Code clines style. If there are several authors but only one +institution, list all the authors in the @Code "@Author" option: +@ID @Code "@Author { Tim B. Cooper and Jeffrey H. Kingston }" +With more authors, or with more than one institution, it is best to +ignore the @Code "@Institution" option and place all the information +within the @Code "@Author" option, enclosing institution information +in @Code "@I" symbols. In extreme cases, a table with columns of +authors might be necessary (Chapter {@NumberOf tables}). +@PP +@Code "@DateLine" may be set to {@Code No}, meaning no dateline, +{@Code Yes}, meaning print the current date, or anything else, which is +taken to be a date and printed: +@ID @Code "@DateLine { 4 July, 1776 }" +A good plan is to use @Code "@DateLine { Yes }" until +the report is finalized. +@PP +The {@Code "@AtEnd"} option will come out on a single unnumbered +page with no page headers or footers, and using the same margins as for +even pages, after the very last page of the report; even after the +index if there is one. It is intended to make it possible to +include a back cover, so @Code "@PageOf last.page" does not take +account of any @Code "@AtEnd" page. +@PP +The remaining options (except {@Code "@Abstract"}) are setup file options +(Section {@NumberOf setup}) that frequently need to be changed. If your +changes to the overall formatting are confined to these options, you can +change them here and avoid having your own setup file. If you already have +your own setup file, change them in either place and omit them in +the other. +@PP +If @Code "@CoverSheet" is {@Code Yes}, an unnumbered cover +cover.sheet. @Index @Code "@CoverSheet" +sheet will be produced containing the title, author, institution, +abstract, and dateline. Otherwise they will appear on the +first page. The `cover sheet' is in reality a sequence of Intro pages +(Section {@NumberOf headers}), numbered by default with Roman numerals +on pages after the first. +@PP +In order to get a table of contents, it is necessary to use your +own setup file (Section {@NumberOf setup} explains how to do this) +and to set the @Code "@MakeContents" option within it to +{@Code Yes}. The table of contents will ordinarily appear beginning +on the first page, but if the @Code "@ContentsSeparate" option of +@Code "@Report" is +contents.separate @Index @Code "@ContentsSeparate" +set to @Code "Yes" it will appear on separate pages. +@PP +@Code "@InitialFont" is the font of the bulk of the report, +and should contain a family, a face, and a size. The default +value selects the Times family, the Base face, and the 12 point size. +@PP +@Code "@InitialBreak" controls the behaviour of paragraph breaking in +the bulk of the report. It should have three parts: a paragraph +breaking style ({@Code adjust}, {@Code ragged}, etc.), an inter-line +spacing ({@Code "1.2fx"} for single spacing, {@Code "2.4fx"} for +double spacing, and so on), and either @Code "hyphen" or +@Code "nohyphen" for turning hyphenation on or off. It may also +have @Code "nobreakfirst" or @Code "nobreaklast" (or both), meaning +to disallow a page break after the first line of a paragraph, or +before the last, respectively. +@PP +@Code "@InitialSpace" determines how Lout treats white space between +two objects, as described in Section +{@NumberOf white}. @Code "@InitialLanguage" determines the language +of the bulk of the report. +@PP +@Code "@PageOrientation" determines the orientation of the page. Its +value may be {@Code Portrait} (the default), {@Code Landscape}, +{@Code ReversePortrait}, or {@Code ReverseLandscape}. See +Section {@NumberOf pagesize} for further details. +@PP +@Code "@PageHeaders" determines the appearance of page headers and +footers. Its value may be {@Code None}, +{@Code Simple}, {@Code Titles}, or {@Code NoTitles}. Section +{@NumberOf headers} has the details, but just briefly, {@Code None} +produces no page headers, {@Code Simple} produces a centred page number +between hyphens on every page except the cover sheet and the first +page, @Code Titles produces full running titles as in the present +document, and @Code "NoTitles" is like @Code "Titles" with the running +titles omitted, leaving just the page numbers. +@PP +@Code "@ColumnNumber" is the number of columns per page in the bulk of +the report, and may be anything from {@Code 1} (the default value) to +{@Code 10}. However, there is nothing analogous to the @Code "@FullWidth" +symbol of ordinary documents. Instead, the cover sheet, title material, +and all figures and tables will be printed full width, and the rest will +be set in columns. There is a separate @Code "@IndexColumnNumber" option +in the setup file which determines the number of columns in the index +(Section {@NumberOf indexes}). +@PP +@Code "@FirstPageNumber" is the page number given to the first page. +@PP +Lout ordinarily places lines onto a page until space runs out, then moves +to the next page and so on. This often produces ugly empty spaces at +the bottoms of pages preceding large unbreakable displays. Setting the +@Code "@OptimizePages" option to {@Code "Yes"} causes Lout to examine the +overall situation and try to minimize the ugliness, using the @TeX +optimal paragraph breaking algorithm. It takes two runs to do this, +with intermediate results stored in Lout's cross reference database +(Section {@NumberOf cross}); so deleting file {@Code lout.li} will reset +it, which might be wise after major changes. It is possible for the +optimizer to cycle, never settling on a single final best version; this +is usually caused by footnotes or floating figures inserted at points +which end up near page boundaries. +@PP +Finally we have three options that control the abstract. +@Code "@AbstractDisplay" may be @Code { Yes } or {@Code No}; +it determines whether the abstract is displayed (occupying +the full page width except for an indent at each side like a quoted +display) or inline (occupying the column width). There is a more +general option, {@Code "@AbstractFormat"}, in the setup file that +offers more formatting choices. @Code "@AbstractTitle" is the title +of the abstract; its default value is @Code Abstract or its equivalent +in the current language. Finally, @Code "@Abstract" contains the +abstract. @Index @Code "@Abstract" +abstract itself; it may be empty or absent, in which case there will +be no abstract. The abstract may contain footnotes in the usual way. +@PP +After the compulsory {@Code "//"} comes the report body in the +form of a sequence of sections: +section.reports @SubIndex { in reports } +@ID @OneRow @Code { +"@Section" +" @Title { Introduction }" +"@Begin" +"@PP" +"..." +"@End @Section" +} +No @Code "@BeginSections" or @Code "@EndSections" symbols are needed. The +beginsections.reports @SubIndex { in reports } +endsections.reports @SubIndex { in reports } +general rule is that you need these bracketing symbols only when you are +inside something else. Sections lie inside @Code "@Text" in ordinary +documents, but they don't lie inside anything else in technical reports. +@PP +A section may have subsections, between +subsection.reports @SubIndex { in reports } +beginsubsections.reports @SubIndex { in reports } +endsubsections.reports @SubIndex { in reports } +@Code "@BeginSubSections" and {@Code "@EndSubSections"}: +@ID @OneRow @Code { +"preceding text" +"@BeginSubSections" +"@SubSection ... @End @SubSection" +"@SubSection ... @End @SubSection" +"..." +"@SubSection ... @End @SubSection" +"@EndSubSections" +} +Within each subsection there may be sub-subsections, each introduced +by {@Code "@SubSubSection"}, with the whole sequence bracketed by +subsubsection.reports @SubIndex { in reports } +beginsubsubsections.reports @SubIndex { in reports } +endsubsubsections.reports @SubIndex { in reports } +@Code "@BeginSubSubSections" and {@Code "@EndSubSubSections"}: +@ID @OneRow @Code { +"preceding text" +"@BeginSubSubSections" +"@SubSubSection ... @End @SubSubSection" +"@SubSubSection ... @End @SubSubSection" +"..." +"@SubSubSection ... @End @SubSubSection" +"@EndSubSubSections" +} +There are no sub-sub-subsections. +@PP +After the sections comes an optional sequence of appendices: +appendix.reports @SubIndex { in technical reports } +@ID @OneRow @Code { +"@Appendix" +" @Title { Derivation of the renewal formula }" +"@Begin" +"@PP" +"..." +"@End @Appendix" +} +No @Code "@BeginAppendices" or @Code "@EndAppendices" symbols are needed, +beginappendices.reports @SubIndex { in reports } +endappendices.reports @SubIndex { in reports } +because (like the sections above) these appendices do not lie inside +any other large-scale structure symbol. The appendices are numbered +A, B, C, etc., as is conventional for them. Within each appendix +there may be a sequence of subappendices, obtained with the +@Code "@SubAppendix" symbol and bracketed by @Code "@BeginSubAppendices" +subappendix.reports @SubIndex { in reports } +beginsubappendices.reports @SubIndex { in reports } +endsubappendices.reports @SubIndex { in reports } +and {@Code "@EndSubAppendices"}: +@ID @OneRow @Code { +"preceding text" +"@BeginSubAppendices" +"@SubAppendix ... @End @SubAppendix" +"@SubAppendix ... @End @SubAppendix" +"..." +"@SubAppendix ... @End @SubAppendix" +"@EndSubAppendices" +} +There are sub-subappendices following the same pattern, but no +subsubappendix.reports @SubIndex { in reports } +beginsubsubappendices.reports @SubIndex { in reports } +endsubsubappendices.reports @SubIndex { in reports } +sub-sub-subappendices. +@PP +The report ends with the last section or appendix; any reference list or +index will be appended automatically. Although we have described how to +create reports as though everything was in one large file, in practice it +is much better to divide the report into multiple files, following the +method given in Section {@NumberOf organizing}. +@PP +In addition to the {@Code "@Title"} option, each large-scale structure +symbol ({@Code "@Section"}, {@Code "@SubSection"}, {@Code "@SubSubSection"}, +{@Code "@Appendix"}, {@Code "@SubAppendix"}, +and {@Code "@SubSubAppendix"}) has a @Code "@Tag" option for cross +referencing (Section {@NumberOf cross}), an @Code "@InitialLanguage" +option for changing the language of that part of the document, and a +@Code "@RunningTitle" option which will be used in place of @Code "@Title" +in running headers if given. @Code "@RunningTitle" is useful when the +full title is rather long. +@PP +The features described in other chapters are all available within +technical reports. To get a table of contents, change the @Code +"@MakeContents" option in the setup file to {@Code Yes}; the rest is +automatic, and you don't need the @Code "@ContentsGoesHere" symbol from +ordinary documents. To get an index, again you need only change the +@Code "@MakeIndex" setup file option to {@Code Yes}. Endnotes and +references appear at the end of the report. Figures and tables are +numbered 1, 2, 3, etc. +@PP +Within the @Code "report" setup file there is a @Code "@ReportSetup" +symbol whose options control the appearance of features specific to +report.setup @Index @Code "@ReportSetup" +reports (in other words, the features described in this section). Section +{@NumberOf setup} explains setup files and their options in general; here +is a representative sample of these options, showing their default values: +@ID @OneRow @Code { +"@Use { @ReportSetup" +" # @CoverSheet { Yes }" +" # @DateLine { No }" +" # @ReferencesBeforeAppendices { No }" +" # @AbstractWord { abstract }" +" # @ContentsWord { contents }" +" # @SectionNumbers { Arabic }" +" # @SectionHeadingFont { Bold }" +" # @SectionGap { 2.00v }" +" # @SectionInContents { Yes }" +"}" +} +@Code "@CoverSheet" and @Code "@DateLine" are as for {@Code "@Report"}; +you can set them in either place as you prefer. @Code +"@ReferencesBeforeAppendices" determines whether the reference list is +printed out before or after any appendices. @Code "@AbstractWord" +determines the value of the title of the abstract if none is given there; +its default value, {@Code abstract}, produces `Abstract' in the current +language. @Code "@ContentsWord" is similar; its default value produces +`Contents' in the current language. The other four options +control the appearance of sections, and there are similar options for +controlling the other large-scale structure symbols. +@PP +@Code "@SectionNumbers" determines how sections will be numbered, and may +be @Code { None }, @Code { Arabic }, @Code { Roman }, @Code { UCRoman }, +@Code { Alpha }, or @Code { UCAlpha }. The default value is @Code Arabic +for sections, and also for all large-scale structure symbols except +appendices, for which it is {@Code UCAlpha}. This produces the appendices +numbered in upper-case letters (A, B, C, etc.) that were mentioned earlier. +@PP +@Code "@SectionHeadingFont" is the font used for section headings. The +default value shown above produces the bold face from the family of the +initial font. A family name and size is acceptable here as well: +@ID @Code "@SectionHeadingFont { Helvetica Base +2p }" +produces section headings in the Helvetica font, two points larger +than the initial font size. +@PP +@Code "@SectionGap" determines how much space is left blank before each +section title; the default value shown above is twice the current +inter-line spacing. The special value @Code "2b" may be used to get a +page break rather than a space. @Code "@SectionInContents" determines +whether or not an entry is made in the table of contents for each section; +it may be @Code Yes or {@Code No}. There are similar options for other +large-scale structure symbols. +@End @Section diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/vbas b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/vbas new file mode 100755 index 0000000000000..0004cfb1dbb4c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/vbas @@ -0,0 +1,3 @@ +vi bas bas_star bas_objs bas_spac bas_char bas_empt bas_font bas_head \ + bas_par1 bas_par2 bas_line bas_hyph bas_unde bas_date bas_lang \ + bas_supe bas_verb bas_drop bas_conv diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/vfmt b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/vfmt new file mode 100755 index 0000000000000..39d5efe393843 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/vfmt @@ -0,0 +1 @@ +vi fmt fmt_setu fmt_size fmt_marg fmt_head diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/vprg b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/vprg new file mode 100755 index 0000000000000..935d4af063528 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/vprg @@ -0,0 +1 @@ +vi prg prg_lone prg_embe prg_opti prg_chan prg_tabs prg_form prg_comm prg_prog prg_pipe prg_erro prg_perl diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/vref b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/vref new file mode 100755 index 0000000000000..55e35963c06f2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/vref @@ -0,0 +1 @@ +vi ref ref_sett ref_cite ref_labe ref_entr ref_chan ref_crea diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/vstr b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/vstr new file mode 100755 index 0000000000000..7f4e2d0f552fd --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/vstr @@ -0,0 +1,2 @@ +vi str str_disp str_list str_foot str_marg str_theo str_figs str_larg \ + str_cros str_cont str_indx str_colu str_defs diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/vtbl b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/vtbl new file mode 100755 index 0000000000000..164c3f6e8bb13 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/vtbl @@ -0,0 +1,2 @@ +vi tbl tbl_intr tbl_cell tbl_rows tbl_rule tbl_marg tbl_widt tbl_inde \ + tbl_alig tbl_span tbl_mark tbl_mult tbl_plai tbl_setu tbl_summ diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/vtyp b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/vtyp new file mode 100755 index 0000000000000..003ff0b206456 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/doc/user/vtyp @@ -0,0 +1,2 @@ +vi typ typ_ordi typ_repo typ_book typ_over typ_illu typ_plai \ + typ_apdf typ_orga diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/externs.h b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/externs.h new file mode 100755 index 0000000000000..7e050bd545077 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/externs.h @@ -0,0 +1,3535 @@ +/*@externs.h:External Declarations:Directories and file conventions@**********/ +/* */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.24) */ +/* COPYRIGHT (C) 1991, 2000 Jeffrey H. Kingston */ +/* */ +/* Jeffrey H. Kingston (jeff@cs.usyd.edu.au) */ +/* Basser Department of Computer Science */ +/* The University of Sydney 2006 */ +/* AUSTRALIA */ +/* */ +/* This program 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, 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., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA */ +/* */ +/* FILE: externs.h */ +/* MODULE: External Declarations */ +/* */ +/*****************************************************************************/ +#include +#include +#include +#include +#include + +#if LOCALE_ON +#include +extern nl_catd MsgCat; +#define condcatgets(cat, set, msg, s) (cat ? catgets(cat, set, msg, s) : s) +#else +#define condcatgets(cat, set, msg, s) s +#endif + + +/*****************************************************************************/ +/* */ +/* Include, font and database directories, and the DEBUG_ON and ASSERT_ON */ +/* flags (defined by -D options on the cc command line in the makefile). */ +/* */ +/* LATIN Non-zero means compile for ISO-LATIN-1 char set. */ +/* LIB_DIR The system directory where library files are kept */ +/* INCL_DIR The subdirectory of LIB_DIR where @Include files are kept */ +/* FONT_DIR The subdirectory of LIB_DIR where .AFM font files are kept */ +/* MAPS_DIR The subdirectory of LIB_DIR where .LCM files are kept */ +/* DATA_DIR The subdirectory of LIB_DIR where database files are kept */ +/* HYPH_DIR The subdirectory of LIB_DIR where hyphenation files kept */ +/* LOCALE_DIR The subdirectory of LIB_DIR where locale files are kept */ +/* CHAR_IN Determines assignment of input chars to lex classes */ +/* CHAR_OUT Determines appearance of literal chars in output */ +/* DEBUG_ON Non-zero means compile debug code (lout -d) */ +/* ASSERT_ON Non-zero means test assertions */ +/* LOCALE_ON Non-zero means compile setlocale() etc. code */ +/* */ +/* #define LIB_DIR "/usr/local/lib/lout" */ +/* #define INCL_DIR "include" */ +/* #define FONT_DIR "font" */ +/* #define MAPS_DIR "maps" */ +/* #define DATA_DIR "data" */ +/* #define HYPH_DIR "hyph" */ +/* #define LOCALE_DIR "locale" (only used if LOCALE_ON) */ +/* #define CHAR_IN 0 */ +/* #define CHAR_OUT 0 */ +/* #define DEBUG_ON 0 */ +/* #define ASSERT_ON 1 */ +/* #define LOCALE_ON 1 */ +/* */ +/*****************************************************************************/ + + +/*@::File naming conventions and version@*************************************/ +/* */ +/* File naming conventions and version */ +/* */ +/* LOUT_VERSION Version information */ +/* CROSS_DB The default name of the cross reference database */ +/* SOURCE_SUFFIX Optional suffix of source files and include files */ +/* INDEX_SUFFIX The suffix of database index files */ +/* NEW_INDEX_SUFFIX The suffix of new database index files */ +/* DATA_SUFFIX The suffix of database data files */ +/* NEW_DATA_SUFFIX The additional suffix of new database data files */ +/* HYPH_SUFFIX The suffix of unpacked hyphenation files */ +/* HYPH_PACKED_SUFFIX The suffix of packed hyphenation files */ +/* FILTER_IN The prefix of the name of the input file to filters */ +/* FILTER_OUT The prefix of the name of the output file to filters */ +/* FILTER_ERR The name of the error file to filters */ +/* */ +/*****************************************************************************/ + +#define LOUT_VERSION AsciiToFull("Basser Lout Version 3.24 (October 2000)") +#define CROSS_DB AsciiToFull("lout") +#define SOURCE_SUFFIX AsciiToFull(".lt") +#define INDEX_SUFFIX AsciiToFull(".li") +#define NEW_INDEX_SUFFIX AsciiToFull(".lix") +#define DATA_SUFFIX AsciiToFull(".ld") +#define NEW_DATA_SUFFIX AsciiToFull("x") +#define HYPH_SUFFIX AsciiToFull(".lh") +#define HYPH_PACKED_SUFFIX AsciiToFull(".lp") +#define FILTER_IN AsciiToFull("louti") +#define FILTER_OUT AsciiToFull("lout") +#define FILTER_ERR AsciiToFull("lout.err") + + +/*****************************************************************************/ +/* */ +/* Operating system dependent things */ +/* */ +/* (1) File read and write modes for binary files, and directory character */ +/* */ +/* MS-DOS text file line endings differ from Unix line endings. This is */ +/* usually ignorable but causes problems with binary files and files where */ +/* you do arithmetic on fseek() values. In Lout the problematic files are */ +/* compressed trie and hyphenation files, and database index files. So */ +/* we must read and write these files in "binary mode" in MS-DOS. For */ +/* completeness we have included synonyms for all file modes used by Lout: */ +/* */ +/* READ_BINARY Mode passed to fopen() when reading a "binary file" */ +/* WRITE_BINARY Mode passed to fopen() when writing a "binary file" */ +/* READ_TEXT Mode passed to fopen() when reading a "text file" */ +/* APPEND_TEXT Mode passed to fopen() when appending to "text file" */ +/* WRITE_TEXT Mode passed to fopen() when writing a "text file" */ +/* STR_DIR Directory character used in file path names */ +/* */ +/* (2) System command and file name for uncompressing EPS files */ +/* */ +/* UNCOMPRESS_COM System command for uncompressing compressed EPS file */ +/* LOUT_EPS Name of temporary uncompressed EPS file */ +/* */ +/* There is one further call to system() in the Lout source code: the one */ +/* that implements filtered parameters such as prg2lout. The strings */ +/* passed to this call to system() are the values of @Filter symbols */ +/* within Lout definitions. */ +/* */ +/*****************************************************************************/ + +#if OS_UNIX +#define READ_BINARY "r" +#define WRITE_BINARY "w" +#define READ_TEXT "r" +#define APPEND_TEXT "a" +#define WRITE_TEXT "w" +#define STR_DIR AsciiToFull("/") +#define UNCOMPRESS_COM "gunzip -c %s > %s" +#define LOUT_EPS "lout.eps" +#else +#if OS_DOS +#define READ_BINARY "rb" +#define WRITE_BINARY "wb" +#define READ_TEXT "rt" +#define APPEND_TEXT "at" +#define WRITE_TEXT "wt" +#define STR_DIR AsciiToFull("/") +#define UNCOMPRESS_COM "gunzip -c %s > %s" +#define LOUT_EPS "lout.eps" +#else +#if OS_MAC +#define READ_BINARY "r" +#define WRITE_BINARY "w" +#define READ_TEXT "r" +#define APPEND_TEXT "a" +#define WRITE_TEXT "w" +#define STR_DIR AsciiToFull(":") +#define UNCOMPRESS_COM "gunzip -c %s > %s" +#define LOUT_EPS "lout.eps" +#else +If you're compiling this, you've got the wrong settings in the makefile! +#endif +#endif +#endif + +/*@::Significant limits@******************************************************/ +/* */ +/* Significant Limits (other insignificant ones appear in other files) */ +/* */ +/* MAX_FULL_LENGTH The maximum value storable in type FULL_LENGTH. */ +/* NB this cannot be 2**31 - 1 because there are */ +/* intermediate results that exceed MAX_FULL_LENGTH */ +/* and are subsequently reduced to MAX_FULL_LENGTH. */ +/* For example, some intermediate results may exceed */ +/* MAX_FULL_LENGTH by a factor of SF, which is defined */ +/* below to be 128 (2**7). The value given is 2**23-1, */ +/* which is about 148 metres in Lout's precision. */ +/* */ +/* MAX_SHORT_LENGTH The maximum value storable in type SHORT_LENGTH. */ +/* */ +/* MAX_FILES The maximum number of files. This could only be */ +/* increased if the file_num() field of type FILE_POS */ +/* is enlarged beyond its present 16 bits. */ +/* */ +/* MAX_LINE 1 + the maximum length of an input line in source */ +/* and database files. This is used for the lexical */ +/* analyser's input line buffer only, and could be */ +/* increased immediately to 4096, and even further if */ +/* more than the current 12 bits was assigned to the */ +/* col_num() field of type FILE_POS. */ +/* */ +/* MAX_WORD 1 + the maximum length of a word storable in an */ +/* object record, which includes all file path names */ +/* too. It is reasonable to make this MAX_LINE, since */ +/* a word longer than MAX_LINE cannot be read in. */ +/* */ +/* MAX_OBJECT_REC 1 + the maximum size of an object record, measured */ +/* in ALIGNs. The value chosen should exceed */ +/* ceiling( (wr + MAX_WORD - 4) / sizeof(ALIGN) ) */ +/* where wr = sizeof(struct word_rec), so that words of */ +/* length MAX_WORD-1 can be stored in an object record. */ +/* */ +/* MAX_BUFF 1 + the maximum length of a "standard buffer"; these */ +/* buffers are used in a variety of places throughout */ +/* the program for holding one line of a font file, */ +/* one file path name, one symbol full name, etc. This */ +/* may be increased immediately without limit. */ +/* */ +/* MAX_FONT The maximum number of sized fonts allowed. This */ +/* can be increased beyond 4096 only by setting aside */ +/* a larger word_font() field. */ +/* */ +/* MAX_COLOUR The maximum number of distinct left parameters of */ +/* @SetColour and @SetColor symbols allowed (after */ +/* evaluation). This can be increased beyond 1024 */ +/* only by setting aside a larger word_colour() field. */ +/* */ +/* MAX_LANGUAGE The maximum number of distinct languages allowed. */ +/* This can be increased beyond 256 only by setting */ +/* aside a larger word_language() field. */ +/* */ +/* MAX_LEX_STACK The maximum depth of @Includes and @Databases. This */ +/* can be increased immediately by any small amount. */ +/* */ +/* MAX_CHARS The maximimum number of characters in a font. This */ +/* cannot be increased easily. */ +/* */ +/*****************************************************************************/ + +#define MAX_FULL_LENGTH 8388607 /* 2**23 - 1, about 148 metres */ +#define MAX_SHORT_LENGTH 32767 +#define MAX_FILES 65535 +#define MAX_LINE 2048 +#define MAX_WORD 2048 +#define MAX_OBJECT_REC ceiling(sizeof(struct word_type)+MAX_WORD,sizeof(ALIGN)) +#define MAX_BUFF 512 +#define MAX_FONT 4096 +#define MAX_COLOUR 4096 +#define MAX_LANGUAGE 64 +#define MAX_LEX_STACK 10 +#define MAX_CHARS 256 + +/*****************************************************************************/ +/* */ +/* Miscellaneous Macros */ +/* */ +/*****************************************************************************/ + +#define BOOLEAN unsigned +#define FALSE 0 +#define TRUE 1 +#define bool(x) (x ? AsciiToFull("TRUE") : AsciiToFull("FALSE") ) +#define CHILD 0 +#define PARENT 1 +#define COLM 0 +#define ROWM 1 +#define dimen(x) (x == COLM ? AsciiToFull("COLM") : AsciiToFull("ROWM") ) +#define nilobj ( (OBJECT) NULL ) +#define null ( (FILE *) NULL ) + +#define find_max(a, b) ((a) < (b) ? (b) : (a)) +#define find_min(a, b) ((a) < (b) ? (a) : (b)) +#define ceiling(a, b) ( ((a) - 1)/(b) + 1 ) /* ceiling(a/b) */ +#define is_odd(x) ( (x) & 1 ) /* TRUE if x is odd number */ + +/*@::ALIGN, FULL_LENGTH, FONT_NUM, COLOUR_NUM, LANGUAGE_NUM, FULL_CHAR@*******/ +/* */ +/* typedef ALIGN - used for forcing record alignment. */ +/* */ +/*****************************************************************************/ + +typedef char *ALIGN; + + +/*****************************************************************************/ +/* */ +/* typedef FULL_LENGTH - an integer physical distance. */ +/* */ +/*****************************************************************************/ + +typedef int FULL_LENGTH; + + +/*****************************************************************************/ +/* */ +/* typedef SHORT_LENGTH - an short integer physical distance. */ +/* */ +/*****************************************************************************/ + +typedef short int SHORT_LENGTH; + + +/*****************************************************************************/ +/* */ +/* FONT_NUM - internal name for a font. */ +/* */ +/*****************************************************************************/ + +typedef unsigned FONT_NUM; + + +/*****************************************************************************/ +/* */ +/* COLOUR_NUM - internal name for a colour. */ +/* */ +/*****************************************************************************/ + +typedef unsigned COLOUR_NUM; + + +/*****************************************************************************/ +/* */ +/* LANGUAGE_NUM - internal name for a language. */ +/* */ +/*****************************************************************************/ + +typedef unsigned LANGUAGE_NUM; + + +/*****************************************************************************/ +/* */ +/* MAPPING - internal name for a character mapping vector. */ +/* */ +/*****************************************************************************/ + +typedef unsigned MAPPING; + + +/*****************************************************************************/ +/* */ +/* LINE - a line from a database index file. */ +/* */ +/*****************************************************************************/ + +typedef char *LINE; + + +/*****************************************************************************/ +/* */ +/* typedef FULL_CHAR - one of the characters manipulated by Lout. */ +/* */ +/* This program does not deal with 7-bit ASCII characters. Instead, its */ +/* characters are defined by the FULL_CHAR typedef, and could be anything */ +/* from 7-bit ASCII to 8-bit ISO-LATIN-1 to 16-bit UNICODE and beyond. */ +/* */ +/* Unfortunately C favours signed 8-bit characters: literal strings are */ +/* pointers to them, argv[] and the standard libraries assume them. We get */ +/* around these problems by using our own library, including AsciiToFull() */ +/* to convert an ASCII string (such as a C string) into a FULL_CHAR string. */ +/* */ +/* Formally this library appears in module z39.c; however since this */ +/* implementation uses 8-bit unsigned characters, most of the routines */ +/* can be implemented by macros containing type-cast calls to C standard */ +/* library routines. These appear in the z39.c externs list below. */ +/* */ +/*****************************************************************************/ + +typedef unsigned char FULL_CHAR; + +/*****************************************************************************/ +/* */ +/* typedef POINTER- name for type of generic pointer */ +/* */ +/*****************************************************************************/ + +typedef void *POINTER; + +/*@::Character literals@******************************************************/ +/* */ +/* Character Literals */ +/* */ +/* The following macros ensure that no Lout source is ever compared to a */ +/* literal character other than '\0': */ +/* */ +/*****************************************************************************/ + +#define CH_FLAG_ALTERR 'a' /* the -a command line flag */ +#define CH_FLAG_CROSS 'c' /* the -c command line flag */ +#define CH_FLAG_ENCPATH 'C' /* the -C command line flag */ +#define CH_FLAG_DEBUG 'd' /* the -d command line flag */ +#define CH_FLAG_DIRPATH 'D' /* the -D command line flag */ +#define CH_FLAG_ERRFILE 'e' /* the -e command line flag */ +#define CH_FLAG_EPSFIRST 'E' /* first letter of the -EPS flag */ +#define CH_FLAG_FNTPATH 'F' /* the -F command line flag */ +#define CH_FLAG_HYPHEN 'h' /* the -h command line flag */ +#define CH_FLAG_HYPPATH 'H' /* the -H command line flag */ +#define CH_FLAG_INCLUDE 'i' /* the -i command line flag */ +#define CH_FLAG_INCPATH 'I' /* the -I command line flag */ +#define CH_FLAG_NOKERN 'k' /* the -k command line flag */ +#define CH_FLAG_NOCOLLATE 'l' /* the -l command line flag */ +#define CH_FLAG_COLLATE 'L' /* the -L command line flag */ +#define CH_FLAG_MEMCHECK 'm' /* the -m command line flag */ +#define CH_FLAG_MEMCR 'M' /* the -M command line flag */ +#define CH_FLAG_OUTFILE 'o' /* the -o command line flag */ +#define CH_FLAG_PLAIN 'p' /* the -p command line flag */ +#define CH_FLAG_FFPLAIN 'P' /* the -P command line flag */ +#define CH_FLAG_SUPPRESS 's' /* the -s command line flag */ +#define CH_FLAG_SAFE 'S' /* the -S command line flag */ +#define CH_FLAG_USAGE 'u' /* the -u command line flag */ +#define CH_FLAG_UNSAFE 'U' /* the -U command line flag */ +#define CH_FLAG_VERSION 'V' /* the -V command line flag */ +#define CH_FLAG_INITALL 'x' /* the -x command line flag */ +#define CH_FLAG_OPTION '-' /* the -- command line flag */ +#define CH_FLAG_WORDS 'w' /* the -w command line flag */ +#define CH_FLAG_PDF 'Z' /* the -Z command line flag */ + +#define CH_SPACE ' ' /* space character */ +#define CH_NEWLINE '\n' /* the newline character */ +#define CH_SYMSTART '@' /* extra letter symbols may have */ +#define CH_UNDERSCORE '_' /* extra letter symbols may have */ +#define CH_QUOTE '"' /* the quote character */ +#define CH_ZERO '0' /* the first digit character, zero */ +#define CH_EIGHT '8' /* the last even digit character */ +#define CH_NINE '9' /* the last odd digit character */ +#define CH_INCGAP '+' /* begins an incrementing gap */ +#define CH_DECGAP '-' /* begins a decrementing gap */ +#define CH_MINUS '-' /* minus sign */ +#define CH_HYPHEN '-' /* the hyphen character */ +#define CH_NOBREAK 'u' /* `unbreakable' character for gaps */ + +#define CH_UNIT_CM 'c' /* unit of measurement: centimetres */ +#define CH_UNIT_IN 'i' /* unit of measurement: inches */ +#define CH_UNIT_PT 'p' /* unit of measurement: points */ +#define CH_UNIT_EM 'm' /* unit of measurement: ems */ +#define CH_UNIT_FT 'f' /* unit of measurement: fontsizes */ +#define CH_UNIT_SP 's' /* unit of measurement: spacewidths */ +#define CH_UNIT_VS 'v' /* unit of measurement: vspaces */ +#define CH_UNIT_WD 'w' /* unit of measurement: follwidths */ +#define CH_UNIT_BD 'b' /* unit of measurement: boundwidths */ +#define CH_UNIT_RL 'r' /* unit of measurement: relwidths */ +#define CH_UNIT_DG 'd' /* unit of measurement: degrees */ +#define CH_UNIT_YU 'y' /* unit of measurement: y unit */ +#define CH_UNIT_ZU 'z' /* unit of measurement: z unit */ + +#define CH_MODE_EDGE 'e' /* spacing mode: edge-to-edge */ +#define CH_MODE_HYPH 'h' /* spacing mode: hyphenation */ +#define CH_MODE_MARK 'x' /* spacing mode: mark-to-mark */ +#define CH_MODE_OVER 'o' /* spacing mode: overstrike */ +#define CH_MODE_KERN 'k' /* spacing mode: kerning */ +#define CH_MODE_TABL 't' /* spacing mode: tabulation */ + +#define octaldigit(ch) ( (ch) >= '0' && (ch) <= '7' ) +#define decimaldigit(ch) ( (ch) >= '0' && (ch) <= '9' ) +#define digitchartonum(ch) ( (ch) - '0' ) +#define numtodigitchar(ch) ( (ch) + '0' ) +#define beginsbreakstyle(ch) ( (ch) >= 'a' && (ch) <= 'z' ) +#define numericchar(ch) ( decimaldigit(ch) || (ch) == '.' ) + + +/*@::String literals, FULL_CHAR type@*****************************************/ +/* */ +/* String Literals. */ +/* */ +/* All significant string literals are defined here. The program has many */ +/* others, however: format strings, debug output, etc. */ +/* */ +/*****************************************************************************/ + +#define STR_EMPTY AsciiToFull("") +#define STR_QUOTE AsciiToFull("\"") +#define STR_ESCAPE AsciiToFull("\\") +#define STR_COMMENT AsciiToFull("#") +#define STR_SPACE AsciiToFull(" ") +#define STR_FORMFEED AsciiToFull("\f") +#define STR_TAB AsciiToFull("\t") +#define STR_NEWLINE AsciiToFull("\n") +#define STR_LETTERS_LOWER AsciiToFull("abcdefghijklmnopqrstuvwxyz") +#define STR_LETTERS_UPPER AsciiToFull("ABCDEFGHIJKLMNOPQRSTUVWXYZ") +#define STR_LETTERS_SYMSTART AsciiToFull("@") +#define STR_LETTERS_UNDERSCORE AsciiToFull("_") + +#if CHAR_IN==0 +#define STR_LETTERS_EXTRA0 AsciiToFull("") +#define STR_LETTERS_EXTRA1 AsciiToFull("") +#define STR_LETTERS_EXTRA2 AsciiToFull("") +#define STR_LETTERS_EXTRA3 AsciiToFull("") +#define STR_LETTERS_EXTRA4 AsciiToFull("") +#define STR_LETTERS_EXTRA5 AsciiToFull("") +#define STR_LETTERS_EXTRA6 AsciiToFull("") +#define STR_LETTERS_EXTRA7 AsciiToFull("") +#else +#define STR_LETTERS_EXTRA0 AsciiToFull("\300\301\302\303\304\305\306\307") +#define STR_LETTERS_EXTRA1 AsciiToFull("\310\311\312\313\314\315\316\317") +#define STR_LETTERS_EXTRA2 AsciiToFull("\320\321\322\323\324\325\326") +#define STR_LETTERS_EXTRA3 AsciiToFull("\330\331\332\333\334\335\336\337") +#define STR_LETTERS_EXTRA4 AsciiToFull("\340\341\342\343\344\345\346\347") +#define STR_LETTERS_EXTRA5 AsciiToFull("\350\351\352\353\354\355\356\357") +#define STR_LETTERS_EXTRA6 AsciiToFull("\360\361\362\363\364\365\366") +#define STR_LETTERS_EXTRA7 AsciiToFull("\370\371\372\373\374\375\376\377") +#endif + +#define STR_STDIN AsciiToFull("-") +#define STR_STDOUT AsciiToFull("-") +#define STR_HYPHEN AsciiToFull("-") +#define STR_EPS AsciiToFull("EPS") +#define STR_POSTSCRIPT AsciiToFull("PostScript") +#define STR_PLAINTEXT AsciiToFull("PlainText") +#define STR_PDF AsciiToFull("PDF") +#define STR_ELSE AsciiToFull("else") +#define STR_NOCROSS AsciiToFull("??") +#define STR_BADKEY AsciiToFull("badkey") +#define STR_NONE AsciiToFull("none") +#define STR_NOCHAR AsciiToFull("-none-") +#define STR_ZERO AsciiToFull("0") +#define STR_PS_SPACENAME AsciiToFull("space") +#define STR_FONT_RECODE AsciiToFull("Recode") +#define STR_FONT_NORECODE AsciiToFull("NoRecode") +#define STR_COLOUR_NOCHANGE AsciiToFull("nochange") + +#define STR_BREAK_HYPHEN AsciiToFull("hyphen") +#define STR_BREAK_NOHYPHEN AsciiToFull("nohyphen") +#define STR_BREAK_ADJUST AsciiToFull("adjust") +#define STR_BREAK_OUTDENT AsciiToFull("outdent") +#define STR_BREAK_RAGGED AsciiToFull("ragged") +#define STR_BREAK_CRAGGED AsciiToFull("cragged") +#define STR_BREAK_RRAGGED AsciiToFull("rragged") +#define STR_BREAK_ORAGGED AsciiToFull("oragged") +#define STR_BREAK_LINES AsciiToFull("lines") +#define STR_BREAK_CLINES AsciiToFull("clines") +#define STR_BREAK_RLINES AsciiToFull("rlines") +#define STR_BREAK_NOFIRST AsciiToFull("unbreakablefirst") +#define STR_BREAK_FIRST AsciiToFull("breakablefirst") +#define STR_BREAK_NOLAST AsciiToFull("unbreakablelast") +#define STR_BREAK_LAST AsciiToFull("breakablelast") + +#define STR_SPACE_LOUT AsciiToFull("lout") +#define STR_SPACE_COMPRESS AsciiToFull("compress") +#define STR_SPACE_SEPARATE AsciiToFull("separate") +#define STR_SPACE_TROFF AsciiToFull("troff") +#define STR_SPACE_TEX AsciiToFull("tex") + +#define STR_SMALL_CAPS_ON AsciiToFull("smallcaps") +#define STR_SMALL_CAPS_OFF AsciiToFull("nosmallcaps") + +#define STR_GAP_RJUSTIFY AsciiToFull("1rt") +#define STR_GAP_ZERO_HYPH AsciiToFull("0ch") + + +/*@::GAP, STYLE@**************************************************************/ +/* */ +/* typedef GAP - what separates one object from another. */ +/* */ +/*****************************************************************************/ + +typedef struct +{ unsigned ospare : 7; /* left for other things in STYLE */ + BOOLEAN onobreak : 1; /* TRUE if this gap is unbreakable */ + BOOLEAN omark : 1; /* TRUE if this gap is marked */ + BOOLEAN ojoin : 1; /* TRUE if joins exist across gap */ + unsigned ounits : 3; /* units of measurement: fixed, etc */ + unsigned omode : 3; /* spacing mode: edge-to-edge, etc */ + SHORT_LENGTH owidth; /* width of the gap */ +} GAP; + +#define nobreak(x) (x).onobreak +#define mark(x) (x).omark +#define join(x) (x).ojoin +#define units(x) (x).ounits +#define mode(x) (x).omode +#define width(x) (x).owidth + +#define SetGap(x, xnobreak, xmark, xjoin, xunits, xmode, xwidth) \ +( nobreak(x) = xnobreak, mark(x) = xmark, join(x) = xjoin, \ + units(x) = xunits, mode(x) = xmode, width(x) = xwidth \ +) + +#define GapCopy(x, y) \ +( nobreak(x) = nobreak(y), mark(x) = mark(y), join(x) = join(y), \ + units(x) = units(y), mode(x) = mode(y), width(x) = width(y) \ +) + +#define ClearGap(x) SetGap(x, FALSE, FALSE, TRUE, FIXED_UNIT, NO_MODE, 0) + + +/*****************************************************************************/ +/* */ +/* typedef STYLE - information about how to break text, etc. */ +/* */ +/*****************************************************************************/ + +typedef struct +{ union { + GAP oline_gap; /* separation between lines */ + struct { + BOOLEAN ovadjust : 1; /* @VAdjust in effect */ + BOOLEAN ohadjust : 1; /* @HAdjust in effect */ + BOOLEAN opadjust : 1; /* @PAdjust in effect */ + unsigned osmall_caps : 1; /* small capitals */ + unsigned ospace_style : 3; /* space style: lout, troff, tex, .. */ + } oss1; + } osu1; + union { + GAP ospace_gap; /* separation induced by white space */ + struct { + unsigned ohyph_style : 2; /* hyphenation off or on */ + unsigned ofill_style : 2; /* fill lines with text off/on */ + unsigned odisplay_style : 3; /* display lines adjusted, ragged... */ + } oss2; + } osu2; + SHORT_LENGTH oyunit; /* value of y unit of measurement */ + SHORT_LENGTH ozunit; /* value of z unit of measurement */ + FONT_NUM ofont : 12; /* current font */ + COLOUR_NUM ocolour : 10; /* current colour */ + BOOLEAN ooutline : 2; /* TRUE if outlining words */ + LANGUAGE_NUM olanguage : 6; /* current language */ + BOOLEAN onobreakfirst : 1; /* no break after first line of para */ + BOOLEAN onobreaklast : 1; /* no break after last line of para */ +} STYLE; + +#define line_gap(x) (x).osu1.oline_gap +#define vadjust(x) (x).osu1.oss1.ovadjust +#define hadjust(x) (x).osu1.oss1.ohadjust +#define padjust(x) (x).osu1.oss1.opadjust +#define small_caps(x) (x).osu1.oss1.osmall_caps +#define space_style(x) (x).osu1.oss1.ospace_style +#define space_gap(x) (x).osu2.ospace_gap +#define hyph_style(x) (x).osu2.oss2.ohyph_style +#define fill_style(x) (x).osu2.oss2.ofill_style +#define display_style(x)(x).osu2.oss2.odisplay_style +#define font(x) (x).ofont +#define colour(x) (x).ocolour +#define outline(x) (x).ooutline +#define language(x) (x).olanguage +#define nobreakfirst(x) (x).onobreaklast +#define nobreaklast(x) (x).onobreakfirst +#define yunit(x) (x).oyunit +#define zunit(x) (x).ozunit + +#define StyleCopy(x, y) \ +( GapCopy(line_gap(x), line_gap(y)), \ + hyph_style(x) = hyph_style(y), \ + fill_style(x) = fill_style(y), \ + display_style(x) = display_style(y), \ + small_caps(x) = small_caps(y), \ + GapCopy(space_gap(x), space_gap(y)), \ + font(x) = font(y), \ + colour(x) = colour(y), \ + outline(x) = outline(y), \ + language(x) = language(y), \ + nobreakfirst(x) = nobreakfirst(y), \ + nobreaklast(x) = nobreaklast(y), \ + vadjust(x) = vadjust(y), \ + hadjust(x) = hadjust(y), \ + padjust(x) = padjust(y), \ + space_style(x) = space_style(y), \ + yunit(x) = yunit(y), \ + zunit(x) = zunit(y) \ +) + + +/*@::CONSTRAINT, FILE_NUM, FILE_POS, LIST@************************************/ +/* */ +/* typedef CONSTRAINT - a size constraint. */ +/* */ +/*****************************************************************************/ + +typedef struct +{ FULL_LENGTH obc; + FULL_LENGTH obfc; + FULL_LENGTH ofc; + FULL_LENGTH osparec; +} CONSTRAINT; + +#define bc(x) (x).obc +#define bfc(x) (x).obfc +#define fc(x) (x).ofc +#define sparec(x) (x).osparec +#define constrained(x) (bc(x) != MAX_FULL_LENGTH || \ + bfc(x) != MAX_FULL_LENGTH || fc(x) != MAX_FULL_LENGTH) + +#define SetConstraint(c,x,y,z) (bc(c) = (x), bfc(c) = (y), fc(c) = (z)) +#define CopyConstraint(x, y) (bc(x) = bc(y), bfc(x) = bfc(y), fc(x) = fc(y)) +#define FitsConstraint(b, f, c) (b <= bc(c) && b + f <= bfc(c) && f <= fc(c)) + +#define ig_fnum(x) bc(constraint(x)) +#define ig_xtrans(x) bfc(constraint(x)) +#define ig_ytrans(x) fc(constraint(x)) + + +/*****************************************************************************/ +/* */ +/* typedef FILE_NUM - the internal representation of a file. */ +/* */ +/*****************************************************************************/ + +typedef unsigned short FILE_NUM; +#define NO_FILE 0 + + +/*****************************************************************************/ +/* */ +/* typedef FILE_POS - a position in the set of input files. */ +/* */ +/*****************************************************************************/ + +typedef struct +{ unsigned char otype; /* space for object type field */ + unsigned char orec_size; /* space for object record size */ + FILE_NUM ofile_num; /* no. of file this record is from */ + unsigned oline_num : 20; /* the line number of this record */ + unsigned ocol_num : 12; /* column number this is related to */ +} FILE_POS; + +#define file_num(x) (x).ofile_num +#define col_num(x) (x).ocol_num +#define line_num(x) (x).oline_num + +#define FposCopy(x, y) \ +( file_num(x) = file_num(y), \ + line_num(x) = line_num(y), \ + col_num(x) = col_num(y) \ +) + + +/*****************************************************************************/ +/* */ +/* typedef LIST - two pointers used to make one doubly linked list */ +/* */ +/*****************************************************************************/ + +typedef struct { union rec *opred, *osucc; } LIST; + + +/*@::FIRST_UNION@*************************************************************/ +/* */ +/* typedef FIRST_UNION - first eight bytes of object record (after LISTs). */ +/* */ +/* The fpos is overwritten in WORDs and QWORDs during FixAndPrintObject by */ +/* the horizontal coordinate of the word, which has to be remembered. */ +/* */ +/*****************************************************************************/ + +typedef union +{ + FILE_POS ofpos; + struct + { unsigned char otype, orec_size; + int oword_save_mark; + } os11; + +} FIRST_UNION; + + +/*@::SECOND_UNION, THIRD_UNION, FOURTH_UNION@*********************************/ +/* */ +/* typedef SECOND_UNION - four bytes holding various flags etc. */ +/* */ +/*****************************************************************************/ + +typedef union +{ + struct /* used by all tokens */ + { unsigned char oprecedence; + unsigned char ohspace, ovspace; + } os21; + + struct /* used by WORD objects only, except underline used by all */ + /* objects, including GAP_OBJ */ + { FONT_NUM oword_font : 12; + COLOUR_NUM oword_colour : 10; + BOOLEAN oword_outline : 1; + LANGUAGE_NUM oword_language : 6; + unsigned ounderline : 2; + unsigned oword_hyph : 1; + } os22; + + struct /* used by non-WORD objects */ + { unsigned char ofoll_or_prec; + unsigned char ocross_type; /* CROSS objects only */ + BOOLEAN onon_blocking: 1; + BOOLEAN osized : 1; + BOOLEAN othreaded : 1; + BOOLEAN oexternal_hor: 1; + BOOLEAN oexternal_ver: 1; + BOOLEAN oblocked : 1; + BOOLEAN otrigger_ext : 1; + BOOLEAN omust_expand : 1; + BOOLEAN ogall_dir : 1; + BOOLEAN oopt_hyph : 1; + BOOLEAN oopt_gazumped: 1; + BOOLEAN oadjust_cat : 1; + BOOLEAN oforce_gall : 1; + unsigned ounderline : 2; + /* don't forget ounderline from os22 applies in this union! */ + } os23; + + struct /* used by WORD and QWORD when they are database nodes */ + { unsigned short oleft_pos; + unsigned char oreading; + unsigned char oin_memory; + } os24; + + struct /* used by WORD and QWORD when they are font records */ + { FONT_NUM ofont_num : 12; + unsigned short ofont_page; + } os25; + + struct /* used by symbol table entries */ + { unsigned char oprecedence; + BOOLEAN ois_tag : 1; + BOOLEAN ohas_tag : 1; + BOOLEAN ohas_lpar : 1; + BOOLEAN ohas_rpar : 1; + BOOLEAN oright_assoc : 1; + BOOLEAN ois_target : 1; + BOOLEAN ohas_target : 1; + BOOLEAN oforce_target : 1; + BOOLEAN ohas_body : 1; + BOOLEAN oindefinite : 1; + BOOLEAN orecursive : 1; + BOOLEAN ouses_extern_target : 1; + BOOLEAN ois_extern_target : 1; + BOOLEAN ois_key : 1; + BOOLEAN ohas_key : 1; + BOOLEAN odirty : 1; + BOOLEAN ovisible : 1; + BOOLEAN ohas_mark : 1; + BOOLEAN ohas_join : 1; + BOOLEAN ohas_par : 1; + BOOLEAN ouses_galley : 1; + BOOLEAN ohoriz_galley : 1; + BOOLEAN oimports_encl : 1; + } os26; + +} SECOND_UNION; + + +/*****************************************************************************/ +/* */ +/* typedef THIRD_UNION - eight bytes usually holding an object size. */ +/* */ +/* In database records this space is used for a file pointer, or a pointer */ +/* to a LINE array if the database is in-memory; in certain */ +/* WORD objects used privately in z10.c it is used for a galley-position. */ +/* In font records it holds the font size, space width, etc. In filter */ +/* words it holds a pointer to the symbol being filtered. */ +/* */ +/*****************************************************************************/ + +typedef union +{ + struct + { FULL_LENGTH oback[2]; + FULL_LENGTH ofwd[2]; + } os31; + + FILE *odb_filep; + LINE *odb_lines; + + struct + { FULL_LENGTH ofont_size; + FULL_LENGTH ofont_xheight2; + FULL_LENGTH ofont_spacewidth; + MAPPING ofont_mapping : 7; + BOOLEAN ofont_recoded : 1; + } os32; + + struct + { unsigned char ocs_type; + FILE_NUM ocs_fnum; + int ocs_pos; + int ocs_lnum; + } os33; + + union rec *ofilter_actual; + +} THIRD_UNION; + + +/*****************************************************************************/ +/* */ +/* typedef FOURTH_UNION - twelve bytes holding a STYLE or CONSTRAINT. */ +/* */ +/*****************************************************************************/ + +typedef union +{ + STYLE osave_style; + CONSTRAINT oconstraint; + +} FOURTH_UNION; + + +/*@::OBJECT@******************************************************************/ +/* */ +/* typedef OBJECT - the general-purpose record used throughout Lout. */ +/* */ +/* This record is a complex union type. Which fields are defined in any */ +/* given record depends on its type() tag field, as follows. But first */ +/* we define some collections of fields that are commonly defined together. */ +/* */ +/* ALL - these fields are defined in all objects. They won't be mentioned */ +/* again, but they are always there. */ +/* */ +/* type Tag field for the record */ +/* rec_size Size of this record, in words (for memory allocator) */ +/* succ Next element on list of parents, children */ +/* pred Previous element on list of parents, children */ +/* fpos Position in input file which gave rise to this */ +/* object (could be null; overwritten by word_save_mark */ +/* locally in FixAndPrintOjbect). It sub-fields are: */ +/* */ +/* file_num internal file number */ +/* line_num line number in that file */ +/* col_num column number on that line */ +/* */ +/* Lout attempts to put a meaningful fpos into every */ +/* object, so that error messages related to that */ +/* object can have meaningful line numbers. This has */ +/* not been done in every case; it ought to be. */ +/* */ +/* TOKEN - these fields are defined for all objects that are input tokens. */ +/* They may be overwritten after parsing is completed. */ +/* */ +/* precedence Precedence of this token (0 if has no parameters) */ +/* hspace Horizontal space preceding this token */ +/* vspace Vertical space preceding this token */ +/* */ +/* SIZED - these fields are defined for all objects that represent Lout */ +/* objects and hence have a horizontal and vertical size. They */ +/* will be undefined until after MinSize() is called on the object, */ +/* and defined thereafter. */ +/* */ +/* back[COLM] Horizontal size to left of object's mark */ +/* fwd[COLM] Horizontal size to right of object's mark */ +/* back[ROWM] Vertical size above object's mark */ +/* fwd[ROWM] Vertical size below object's mark */ +/* */ +/* GAP - a gap between two Lout objects. */ +/* */ +/* nobreak TRUE if gap is unbreakable (has u tag) */ +/* mark TRUE if gap is marked (has ^ tag) */ +/* join TRUE if a mark-joining gap (e.g. | not ||) */ +/* units units of measurement (fixed, or r or d etc) */ +/* mode gap mode (mark-to-mark, etc.) */ +/* width width of gap in the given units */ +/* */ +/* STYLE - the style (attributes affecting the appearance) of an object. */ +/* */ +/* line_gap How much to separate lines by */ +/* vadjust TRUE when @VAdjust is in effect */ +/* hadjust TRUE when @HAdjust is in effect */ +/* padjust TRUE when @PAdjust is in effect */ +/* small_caps TRUE when small capitals wanted */ +/* space_style Spacing style (lout, troff etc. from @Space) */ +/* space_gap Object separation given a white space, i.e. "1s" */ +/* hyph_style Hyphenation (undefined, off, on) */ +/* fill_style Fill lines (undefined, off, on) */ +/* display_style Display style for lines (adjust, centre, etc.) */ +/* yunit Value of y unit of measurement */ +/* zunit Value of z unit of measurement */ +/* font Which internal font (including size) to use */ +/* colour Which internal colour to use */ +/* outline TRUE if outlining words rather than filling them */ +/* language Which internal language to use */ +/* nobreakfirst TRUE if break not allowed after first line of para */ +/* nobreaklastt TRUE if break not allowed before last line of para */ +/* */ +/* CONSTRAINT - a constraint on how large some object is allowed to be, */ +/* either horizontally or vertically */ +/* */ +/* bc how large back may be (MAX_FULL_LEN if infinite) */ +/* fc how large fwd may be (MAX_FULL_LEN if infinite) */ +/* bfc how large back + fwd may be (MAX_FULL_LEN if inf.) */ +/* */ +/* */ +/* Here now is the list of all object types, what they represent, and */ +/* what fields they contain. The list also indicates what children each */ +/* object of the given type can expect to have. */ +/* */ +/* LINK - one link in the directed acyclic graph which is Lout's universal */ +/* internal data structure. All the other types below are various */ +/* types of nodes. Has ALL only (and no fpos) except see CROSS_SYM */ +/* */ +/* GAP_OBJ - a gap between two Lout objects */ +/* */ +/* gap The gap itself (type GAP) */ +/* underline TRUE if continuous underlining crosses this gap */ +/* save_* These fields used by optimum paragraph breaker only */ +/* first child If the gap is not just white space, the gap object */ +/* */ +/* CLOSURE - an invocation of a user-defined symbol, not yet expanded */ +/* */ +/* TOKEN While still being parsed */ +/* SIZED After sizing if indefinite (the sizes will be zero) */ +/* save_style Style to print this invocation in when expanded */ +/* actual The symbol table record defining this symbol */ +/* threaded TRUE if symbol lies on a vertical thread */ +/* external_ver TRUE if symbol is external in a vertical galley */ +/* external_hor TRUE if symbol is external in a horizontal galley */ +/* children PAR objects whose children are the actual parameters */ +/* */ +/* UNDER_REC - a temporary object inserted by FixAndPrintObject to help */ +/* with working out continuous underlining */ +/* */ +/* back(COLM) Horizontal position of start of underline */ +/* fwd(COLM) Horizontal position of end of underline */ +/* back(ROWM) [type clash] font determining underline appearance */ +/* fwd(ROWM) [type clash] the colour of the underline */ +/* */ +/* PAGE_LABEL - a @PageLabel object */ +/* */ +/* TOKEN While still being parsed */ +/* SIZED Indefinite, so all sizes will be zero */ +/* first child The parameter of the @PageLabel object */ +/* */ +/* NULL_CLOS - a @Null object */ +/* */ +/* TOKEN While still being parsed */ +/* SIZED Indefinite, so all sizes will be zero */ +/* */ +/* CROSS, FORCE_CROSS - a cross reference (or forcing cross reference) obj */ +/* */ +/* TOKEN While still being parsed */ +/* SIZED Indefinite, so all sizes will be zero */ +/* cross_type Type of cross reference (preceding, following, etc.) */ +/* children The two parameters of the cross reference */ +/* */ +/* HEAD - the header record for a galley invocation */ +/* */ +/* force_gall TRUE if this is a forcing galley (i.e. "force into") */ +/* actual The symbol table record defining this galley */ +/* enclose_obj If galley has @Enclose, the enclose object */ +/* limiter Helps decide whether to break off or scale if stuck */ +/* opt_components If optimizing, the sequence of components */ +/* opt_constraints If optimizing, the sequence of size constraints */ +/* opt_counts If optimizing, the sequence of numbers of components */ +/* In each child of opt_counts, comp_count has the num */ +/* opt_comps_permitted number of components left before opt break */ +/* opt_hyph If optimizing, whether to hyphenate the galley */ +/* opt_gazumped If optimizing, galley has been gazumped recently */ +/* gall_dir Promotion direction (COLM for horizontal galleys) */ +/* ready_galls Galleys read in from cross reference database */ +/* must_expand TRUE if must expand galley object even if indefinite */ +/* sized TRUE after galley object has been sized */ +/* foll_or_prec Direction of search for target (forward, back, etc.) */ +/* whereto Symbol this galley is targeted at */ +/* seen_nojoin TRUE if // op found within galley anywhere */ +/* headers either nilobj or an ACAT of header components */ +/* */ +/* SPLIT - a split object, used for building tables */ +/* */ +/* SIZED The size of the whole object */ +/* first child An object whose horizontal size is the overall size */ +/* second child An object whose vertical size is the overall size */ +/* */ +/* PAR - actual parameter of a symbol invocation (always child of CLOSURE) */ +/* */ +/* TOKEN While still being parsed */ +/* actual The symbol table record defining this parameter */ +/* first child A Lout object, the value of this parameter */ +/* */ +/* WORD, QWORD - a literal word, or a literal word entered in quotes "" */ +/* */ +/* TOKEN While still being parsed */ +/* SIZED The size of the word */ +/* word_font Font to print this word in (from style) */ +/* word_colour Colour to print this word in (from style) */ +/* word_outline If TRUE, print this word in outline (from style) */ +/* word_language Language (for hyphenation) of this word (from style) */ +/* underline TRUE if continuous underlining goes under this word */ +/* word_hyph Hyphenation wanted for this word (from style) */ +/* word_save_mark Coord of column mark, temporarily in FixAndPrint */ +/* string[] The characters of the word, null-terminated */ +/* */ +/* WORD, QWORD when used as database header records */ +/* */ +/* string[] Database index file name */ +/* reading TRUE if this database can be read from */ +/* in_memory TRUE if this database's index is held in memory */ +/* db_filep Pointer to database file (if not in_memory) */ +/* left_pos Seek pos of 1st entry in db_filep (if not in_memory) */ +/* db_lines Pointer to database index lines (if in_memory) */ +/* db_lineslen Number of database index lines (if in_memory) */ +/* first child List of symbols held in this database */ +/* other children CROSS_SYM symbols of symbols in this database */ +/* The *links* to these have the following fields: */ +/* number An ID number for this sym in this db */ +/* db_targ TRUE if sym is a galley target */ +/* */ +/* WORD, QWORD when used as font records (consult z37.c for more detail) */ +/* */ +/* string[] Font name */ +/* font_num The number of this font */ +/* font_page Number of most recent page using this font */ +/* font_size Size of this font */ +/* font_xheight2 Half-x height of this font */ +/* font_spacewidth Preferred width of space between words in this font */ +/* font_mapping The mapping to apply with this font */ +/* font_recoded TRUE if font needs recoding in PostScript output */ +/* */ +/* WORD, QWORD when used in hash table to check whether crs defined twice */ +/* */ +/* db_checksym Symbol of the cross reference */ +/* string[] Tag of the cross reference */ +/* */ +/* HSPANNER (VSPANNER) - An object that spans columns (rows) */ +/* */ +/* TOKEN While still being parsed */ +/* SIZED The size of the object */ +/* spanner_broken TRUE after BreakObject() applied to this object */ +/* spanner_count Number of columns (rows) spanned by this spanner */ +/* spanner_sized Number of cols (rows) of this spanner sized so far */ +/* spanner_fixed Number of cols (rows) of this spanner fixed so far */ +/* save_mark used temporarily by FixAndPrintObject */ +/* constraint Space available for this object as known to MinSize */ +/* first child The object that is doing the spanning */ +/* */ +/* COL_THR (ROW_THR) - object representing all objects on a col (row) mark */ +/* */ +/* SIZED The horizontal (vertical) size only */ +/* thr_state Tells whether thread is sized or not yet */ +/* children The objects on the mark */ +/* parents The parents of the children (one-to-one) */ +/* */ +/* ACAT - a paragraph (sequence of objects separated by & or white space) */ +/* */ +/* SIZED The size of the object */ +/* save_style The style to print this paragraph in */ +/* children The paragraph's objects and gaps (obj-gap-obj...obj) */ +/* */ +/* HCAT (VCAT) - a horizontal (vertical) sequence of objects */ +/* */ +/* SIZED The size of the object */ +/* save_style The style to print this object in */ +/* children The objects and gaps (obj-gap-obj...obj) */ +/* adjust_cat Whether to perform adjustment (@VAdjust, etc.) */ +/* */ +/* WIDE (HIGH) - @Wide (@High) object */ +/* */ +/* TOKEN While still being parsed */ +/* SIZED The size of the object */ +/* constraint The horizontal (vertical) size constraint */ +/* first child The right parameter of this symbol */ +/* */ +/* HSHIFT (VSHIFT) - @HShift (@VShift) object */ +/* */ +/* TOKEN While still being parsed */ +/* SIZED The size of the object */ +/* shift_type left, right etc. */ +/* shift_gap The amount to shift */ +/* first child The right parameter of this symbol */ +/* */ +/* HSCALE (VSCALE) - @HScale (@VScale) object */ +/* */ +/* TOKEN While still being parsed */ +/* SIZED The size of the object */ +/* save_mark used temporarily by FixAndPrintObject */ +/* constraint used temporarily by FixAndPrintObject */ +/* first child The right parameter of this symbol */ +/* */ +/* SCALE - @Scale object */ +/* */ +/* TOKEN While still being parsed */ +/* SIZED The size of the object */ +/* bc(constraint) The horizontal scale factor */ +/* fc(constraint) The vertical scale factor */ +/* save_mark used temporarily by FixAndPrintObject */ +/* vert_sized TRUE if vertical size of object is known */ +/* first child The right parameter of this symbol */ +/* */ +/* BEGIN_HEADER, SET_HEADER - @BeginHeaderComponent, @SetHeaderComponent */ +/* */ +/* TOKEN While still being parsed */ +/* SIZED The size of the object (will be 0) */ +/* first child The gap for after this header (before manifesting) */ +/* last child The right parameter of this symbol */ +/* */ +/* END_HEADER, CLEAR_HEADER - @EndHeaderComponent, @ClearHeaderComponent */ +/* */ +/* TOKEN While still being parsed */ +/* SIZED The size of the object (will be 0) */ +/* */ +/* ONE_COL (ONE_ROW) - @OneCol (@OneRow) object */ +/* HCOVER (VCOVER) - @HCover (@VCover) object */ +/* HCONTRACT (VCONTRACT) - @HContract (@VContract) object */ +/* HEXPAND (VEXPAND) - @HExpand (@VExpand) object */ +/* START_HSPAN, START_VSPAN - @StartHSpan, @StartVSpan */ +/* START_HVSPAN - @StartHVSpan */ +/* HSPAN (VSPAN) - @HSpan (@VSpan) symbols */ +/* KERN_SHRINK - @KernShrink object */ +/* */ +/* TOKEN While still being parsed */ +/* SIZED The size of the object */ +/* first child The right parameter of this symbol (if any) */ +/* */ +/* PADJUST (HADJUST, VADJUST) - @PAdjust (@HAdjust, @VAdjust) symbols */ +/* */ +/* TOKEN While still being parsed */ +/* first child The right parameter of this symbol */ +/* */ +/* ROTATE - @Rotate symbol */ +/* */ +/* TOKEN While still being parsed */ +/* SIZED The size of the object */ +/* save_mark used temporarily by FixAndPrintObject */ +/* sparec(cons) Amount to rotate by (after manifesting) */ +/* first child Amount to rotate by (before manifesting) */ +/* last child The right parameter of this symbol */ +/* */ +/* BACKGROUND - @Background symbol */ +/* */ +/* TOKEN While still being parsed */ +/* SIZED The size of the object */ +/* children The two parameters of this symbol */ +/* */ +/* GRAPHIC, PLAIN_GRAPHIC - @Graphic, @PlainGraphic symbols */ +/* */ +/* TOKEN While still being parsed */ +/* SIZED The size of the object */ +/* save_mark used temporarily by FixAndPrintObject */ +/* children The two parameters of this symbol */ +/* */ +/* LINK_SOURCE, LINK_DEST - @LinkSource, @LinkDest symbols */ +/* */ +/* TOKEN While still being parsed */ +/* SIZED The size of the object */ +/* save_mark used temporarily by FixAndPrintObject */ +/* children The two parameters of this symbol */ +/* */ +/* CASE - @Case symbol */ +/* */ +/* TOKEN While still being parsed */ +/* first child The left parameter of @Case */ +/* last child The right parameter (sequence of @Yield objects) */ +/* */ +/* VERBATIM (RAWVERBATIM) - @Verbatim (@RawVerbatim) symbol */ +/* */ +/* TOKEN While still being parsed */ +/* first child The right parameter of this symbol */ +/* */ +/* FILTERED - object recording filtered Lout object */ +/* */ +/* filter_use_begin TRUE if filter enclosed in @Begin ... @End */ +/* filter_actual The symbol this is an invocation of */ +/* first child WORD containing file name of filter input file */ +/* second child WORD containing file name of filter output file */ +/* last child Scope snapshot for reading filter output file */ +/* */ +/* XCHAR - @Char symbol */ +/* NEXT - @Next symbol */ +/* ONE_OF - @OneOf symbol */ +/* UNDERLINE - @Underline symbol */ +/* */ +/* TOKEN While still being parsed */ +/* last child The right parameter of this symbol */ +/* */ +/* FONT, SPACE, BREAK - @Font, @Space, @Break symbols */ +/* YUNIT, ZUNIT - @YUnit, @ZUnit symbols */ +/* COLOUR, OUTLINE, LANGUAGE - @Colour, @Outline, @Language symbols */ +/* PLUS, MINUS, - @Plus, @Minus symbols */ +/* MELD, COMMON, RUMP, INSERT - @Meld, @Common, @Rump, @Insert symbols */ +/* OPEN, TAGGED - @Open, @Tagged symbols */ +/* YIELD - @Yield symbol */ +/* */ +/* TOKEN While still being parsed */ +/* first child The left parameter of this symbol */ +/* last child The right parameter of this symbol */ +/* */ +/* ENV_OBJ - a Lout object with environment attached */ +/* */ +/* first child The Lout object */ +/* last child Its environment (ENV object) */ +/* */ +/* ENV - environment of some Lout object */ +/* */ +/* children Components of the environment */ +/* */ +/* INCGRAPHIC, SINCGRAPHIC - @IncludeGraphic, @SysIncludeGraphic symbols */ +/* */ +/* TOKEN While still being parsed */ +/* SIZED The size of the object */ +/* save_mark used temporarily by FixAndPrintObject */ +/* incgraphic_ok TRUE if file name pans out OK */ +/* last child The right parameter of this symbol */ +/* */ +/* TSPACE, TJUXTA - tokens representing white space */ +/* */ +/* TOKEN While still being parsed */ +/* mark(gap) FALSE */ +/* join(gap) TRUE */ +/* */ +/* BEGIN - @Begin symbol */ +/* */ +/* TOKEN While still being parsed */ +/* actual Symbol this @Begin starts parameter of */ +/* */ +/* END - @End symbol */ +/* LBR, RBR - tokens representing left brace and right brace */ +/* USE, NOT_REVEALED - @Use, @NotRevealed symbols */ +/* GSTUB_EXT, GSTUB_INT, GSTUB_NONE - stubs for transferred galleys */ +/* UNEXPECTED_EOF - unexpected end of file token */ +/* INCLUDE, SYS_INCLUDE - @Include, @SysInclude symbols */ +/* PREPEND, SYS_PREPEND - @PrependGraphic, @SysPrependGraphic symbols */ +/* ENVA, ENVB, ENVC, ENVD - @LEnvA, @LEnvB, @LEnvC, @LEnvD tokens only */ +/* CENV, CLOS, LVIS, LUSE, LEO - @LCEnv, @LClos, @LVis, @LUse, @LEO tokens */ +/* BACKEND - @BackEnd symbol */ +/* CURR_LANG, CURR_FAMILY, CURR_FACE - @CurrLang, @CurrFamily, @CurrFace */ +/* CURR_YUNIT, CURR_ZUNIT - @CurrYUnit, @CurrZUnit */ +/* */ +/* TOKEN While still being parsed */ +/* */ +/* DEAD - the index of a dead galley */ +/* */ +/* UNATTACHED - the index of an unattached galley */ +/* */ +/* actual The galley referred to */ +/* non_blocking TRUE if this index should not block galley flushing */ +/* blocked TRUE if this index is now blocking galley flushing */ +/* pinpoint Exact anchor point of this index */ +/* */ +/* RECEPTIVE, RECEIVING - the index of a receptive or receiving object */ +/* */ +/* actual The object (symbol invocation) referred to */ +/* trigger_externs TRUE is this index's galley has external galleys */ +/* non_blocking TRUE if this index should not block galley flushing */ +/* blocked TRUE if this index is now blocking galley flushing */ +/* */ +/* RECURSIVE - the index of a recursive but definite object */ +/* */ +/* actual The recursive symbol invocation referred to */ +/* */ +/* PRECEDES - an index recording a precedes/follows flushing constraint */ +/* */ +/* first child Other parent of this is the corresponding FOLLOWS */ +/* */ +/* FOLLOWS - an index recording a precedes/follows flushing constraint */ +/* */ +/* blocked TRUE if this index is now blocking galley flushing */ +/* first child Other parent of this is the corresponding PRECEDES */ +/* */ +/* CROSS_LIT - not actually an object at all */ +/* */ +/* CROSS_PREC, CROSS_FOLL, CROSS_FOLL_OR_PREC - the index of a cross ref */ +/* */ +/* actual The cross reference referred to */ +/* underline TRUE if continuous underline goes through here */ +/* first child Equal to actual */ +/* */ +/* GALL_PREC, GALL_FOLL, GALL_FOLL_OR_PREC - index of a galley */ +/* */ +/* actual The galley referred to */ +/* underline TRUE if continuous underline goes through here */ +/* pinpoint Exact anchor point of this index */ +/* */ +/* GALL_TARG - index of the target of a galley */ +/* */ +/* actual The galley target (symbol invocation) referred to */ +/* underline TRUE if continuous underline goes through here */ +/* */ +/* PAGE_LABEL_IND - the index of a @PageLabel object */ +/* */ +/* actual The @PageLabel object referred to */ +/* underline TRUE if continuous underline goes through here */ +/* first child Equal to actual */ +/* */ +/* SCALE_IND - the index of a @Scale symbol with empty left parameter */ +/* COVER_IND - the index of an @HCover or @VCover object */ +/* EXPAND_IND - the index of an @HExpand or @VExpand object */ +/* */ +/* actual The object referred to */ +/* underline TRUE if continuous underline goes through here */ +/* */ +/* THREAD - a sequence of threads (basically local to Manifest) */ +/* */ +/* children The threads */ +/* */ +/* CROSS_SYM - a record of the cross reference state of some symbol */ +/* */ +/* target_state Whether we currently have a preceding target */ +/* target_file Which file target is written to */ +/* target_val Value of target (if target_state == SEEN_TARGET) */ +/* target_seq A sequence number */ +/* target_pos Seek position of target in target_file */ +/* target_lnum Line number of target in target_file */ +/* gall_seq Sequence number for galleys targeted to here */ +/* symb The symbol table record of the symbol this is for */ +/* gall_tag I forget! */ +/* gall_tfile The most recent cr database file for this sym */ +/* children Cross references and galleys waiting for a target */ +/* These children have the following fields: */ +/* */ +/* string[] The sequence number */ +/* cs_type The cross reference type */ +/* cs_fnum File number where value written */ +/* cs_pos File seek position */ +/* cs_lnum File line number */ +/* */ +/* CR_ROOT - all CROSS_SYM objects are children of this singleton */ +/* */ +/* children All CROSS_SYM symbols */ +/* */ +/* MACRO - a symbol table entry for a symbol which is a macro */ +/* LOCAL - a symbol table entry for a symbol which is a local symbol */ +/* LPAR - a symbol table entry for a symbol which is a left parameter */ +/* RPAR - a symbol table entry for a symbol which is a right parameter */ +/* NPAR - a symbol table entry for a symbol which is a named parameter */ +/* */ +/* enclosing The symbol that this one is defined within, if any */ +/* sym_body The symbol body (token sequence if MACRO) */ +/* base_uses Local to symbol table, for calculating call graph */ +/* uses Call graph info */ +/* marker For call graph calculation */ +/* imports The import list preceding this symbol, if any */ +/* filter Child @Filter symbol, if any */ +/* use_invocation A @Use clause containing this symbol, if any */ +/* predefined If predefined symbol, its non-zero enum code */ +/* has_compulsory Number of parameters with "compulsory" tag */ +/* uses_count Number of times this symbol is used */ +/* npar_code One-letter abbreviation for this NPAR */ +/* cross_sym The CROSS_SYM record for this symbol, if any */ +/* recursive TRUE if symbol is recursive */ +/* has_body TRUE if symbol has a body parameter */ +/* imports_encl TRUE if symbol imports the symbol enclosing itself */ +/* right_assoc TRUE if this symbol has "associativity right" */ +/* precedence The precedence of this symbol */ +/* indefinite TRUE if this symbol is indefinite (e.g. receptive) */ +/* recursive TRUE if symbol is recursive */ +/* is_extern_target TRUE if symbol is the target of external galley */ +/* uses_extern_target TRUE if symbol uses target of an external galley */ +/* visible TRUE if symbol is exported */ +/* uses_galley TRUE if symbol uses a galley */ +/* horiz_galley if galley, ROWM if vertical, COLM if horizontal */ +/* is_compulsory TRUE if this is a parameter with "compulsory" tag */ +/* dirty TRUE if must copy this parameter, not link it */ +/* has_par TRUE if this symbol has at least one parameter */ +/* has_lpar TRUE if this symbol has a left parameter */ +/* has_rpar TRUE if this symbol has a right or body parameter */ +/* has_target TRUE if this symbol has a target (is a galley) */ +/* force_target TRUE if this symbol has a forcing target */ +/* is_target TRUE if this symbol is @Target, defining a target */ +/* has_tag TRUE if this symbol has a @Tag parameter */ +/* is_tag TRUE if this symbol is a @Tag parameter */ +/* has_key TRUE if this symbol has a @Key parameter */ +/* is_key TRUE if this symbol is a @Key parameter */ +/* has_optimize TRUE if this symbol has an @Optimize parameter */ +/* is_optimize TRUE if this symbol is an @Optimize parameter */ +/* has_merge TRUE if this symbol has a @Merge parameter */ +/* is_merge TRUE if this symbol is a @Merge parameter */ +/* has_enclose TRUE if this symbol has an @Enclose parameter */ +/* is_enclose TRUE if this symbol is an @Enclose parameter */ +/* */ +/* EXT_GALL - a record of an external galley, not actually read in yet */ +/* */ +/* eg_fnum Number of file read from */ +/* eg_fpos Position in that file */ +/* eg_lnum Line number in that file */ +/* eg_cont Continuation (where to look for next galley) */ +/* eg_symbol The symbol that is the target of this galley */ +/* first child The galley tag */ +/* second child The galley sequence string */ +/* */ +/* CR_LIST - a list of cross references */ +/* */ +/* children The cross-references */ +/* */ +/* SCOPE_SNAPSHOT - a snapshot of one element of the current scope stack */ +/* */ +/* ss_npars_only Value of npars_only in this element */ +/* ss_vis_only Value of vis_only in this element */ +/* ss_body_ok Value of body_ok in this element */ +/* ss_suppress Value of suppress_visible in this element */ +/* */ +/* DISPOSED - a disposed object (available for reallocation) */ +/* */ +/*****************************************************************************/ + +typedef union rec +{ + struct word_type /* all fields of WORD and QWORD, token and object */ + { LIST olist[2]; + FIRST_UNION ou1; + SECOND_UNION ou2; + THIRD_UNION ou3; + FULL_CHAR ostring[4]; + } os1; + + struct closure_type /* all fields of CLOSURE, both as token and object */ + { LIST olist[2]; + FIRST_UNION ou1; + SECOND_UNION ou2; + THIRD_UNION ou3; + FOURTH_UNION ou4; + union rec *oactual; + union + { union rec *owhereto; + union rec *opinpoint; + FULL_LENGTH osave_mark; + } oux; + /* union rec *oready_galls; */ + } os2; + + struct head_type /* all fields of HEAD, both as token and object */ + { LIST olist[2]; + FIRST_UNION ou1; + SECOND_UNION ou2; + THIRD_UNION ou3; + FOURTH_UNION ou4; + union rec *oactual; + union + { union rec *owhereto; + union rec *opinpoint; + FULL_LENGTH osave_mark; + } oux; + union rec *oready_galls; + union rec *oopt_components; + union rec *oopt_constraints; + union rec *oopt_counts; + union rec *olimiter; + union rec *oenclose_obj; + union rec *oheaders; + union rec *odead_headers; + int oopt_comps_permitted; + } os2a; + + struct object_type /* the general OBJECT */ + { LIST olist[2]; + FIRST_UNION ou1; + SECOND_UNION ou2; + THIRD_UNION ou3; + FOURTH_UNION ou4; + } os3; + + struct link_type /* LINK */ + { LIST olist[2]; + unsigned char otype; + unsigned char onumber; + unsigned char odb_targ; + } os4; + + struct gapobj_type /* GAP_OBJ */ + { LIST olist[2]; + FIRST_UNION ou1; + SECOND_UNION ou2; + GAP ogap; + int osave_badness; /* optimum paragraph breaker */ + SHORT_LENGTH osave_space; /* optimum paragraph breaker */ + SHORT_LENGTH osave_actual_gap; /* optimum paragraph breaker */ + union rec *osave_prev; /* optimum paragraph breaker */ + union rec *osave_cwid; /* optimum paragraph breaker */ + } os5; + + struct symbol_type + { LIST olist[2]; + FIRST_UNION ou1; + SECOND_UNION ou2; + union rec *oenclosing; + union rec *osym_body; + union rec *obase_uses; + union rec *ouses; + union rec *omarker; + union rec *ocross_sym; + union rec *oimports; + union rec *ofilter; + union rec *ouse_invocation; + short unsigned opredefined; + short unsigned ohas_compulsory; + unsigned char ouses_count; + unsigned char onpar_code; + BOOLEAN ois_optimize : 1; + BOOLEAN ohas_optimize : 1; + BOOLEAN ois_merge : 1; + BOOLEAN ohas_merge : 1; + BOOLEAN ois_enclose : 1; + BOOLEAN ohas_enclose : 1; + BOOLEAN ois_compulsory : 1; + } os6; + + struct cr_type + { LIST olist[2]; + unsigned char otype; + unsigned char otarget_state; + FILE_NUM otarget_file; + /* FILE_NUM ocr_file; unused */ + union rec *otarget_val; + int otarget_seq; + int otarget_pos; + int otarget_lnum; + /* int ocr_seq; unused */ + int ogall_seq; + union rec *osymb; + union rec *ogall_tag; + FILE_NUM ogall_tfile; + } os7; + + struct ext_gall_type + { LIST olist[2]; + unsigned char otype; + FILE_NUM oeg_fnum; + int oeg_lnum; + long oeg_fpos; + long oeg_cont; + union rec *oeg_symbol; + } os8; + + struct uses_type + { union rec *oitem; + union rec *onext; + } os9; +#define USES_SIZE ceiling( sizeof(struct uses_type), sizeof(ALIGN) ) + + struct hash_entry_type + { LIST olist[1]; + } os10; + +} *OBJECT; + + +/*@::macros for fields of OBJECT@*********************************************/ +/* */ +/* Macros for fields of OBJECT. */ +/* */ +/*****************************************************************************/ + +#define succ(x, dim) (x)->os1.olist[dim].osucc +#define pred(x, dim) (x)->os1.olist[dim].opred + +#define type(x) (x)->os1.ou1.os11.otype +#define rec_size(x) (x)->os1.ou1.os11.orec_size +#define precedence(x) (x)->os1.ou2.os21.oprecedence +#define hspace(x) (x)->os1.ou2.os21.ohspace +#define vspace(x) (x)->os1.ou2.os21.ovspace + +#define word_font(x) (x)->os1.ou2.os22.oword_font +#define spanner_count(x) word_font(x) +#define word_colour(x) (x)->os1.ou2.os22.oword_colour +#define spanner_sized(x) word_colour(x) +#define word_outline(x) (x)->os1.ou2.os22.oword_outline +#define word_language(x) (x)->os1.ou2.os22.oword_language +#define spanner_fixed(x) word_language(x) +#define spanner_broken(x) word_outline(x) +#define underline(x) (x)->os1.ou2.os22.ounderline +#define word_hyph(x) (x)->os1.ou2.os22.oword_hyph +#define filter_use_begin(x) (x)->os1.ou2.os22.oword_colour + +#define ss_npars_only(x) word_font(x) +#define ss_vis_only(x) word_colour(x) +#define ss_body_ok(x) word_outline(x) +#define ss_suppress(x) word_language(x) + +#define non_blocking(x) (x)->os1.ou2.os23.onon_blocking +#define vert_sized(x) non_blocking(x) +#define sized(x) (x)->os1.ou2.os23.osized +#define threaded(x) (x)->os1.ou2.os23.othreaded +#define external_ver(x) (x)->os1.ou2.os23.oexternal_ver +#define external_hor(x) (x)->os1.ou2.os23.oexternal_hor +#define blocked(x) (x)->os1.ou2.os23.oblocked +#define seen_nojoin(x) blocked(x) +#define trigger_externs(x) (x)->os1.ou2.os23.otrigger_ext +#define must_expand(x) (x)->os1.ou2.os23.omust_expand +#define gall_dir(x) (x)->os1.ou2.os23.ogall_dir +#define opt_hyph(x) (x)->os1.ou2.os23.oopt_hyph +#define opt_gazumped(x) (x)->os1.ou2.os23.oopt_gazumped +#define adjust_cat(x) (x)->os1.ou2.os23.oadjust_cat +#define force_gall(x) (x)->os1.ou2.os23.oforce_gall +#define cross_type(x) (x)->os1.ou2.os23.ocross_type +#define foll_or_prec(x) (x)->os1.ou2.os23.ofoll_or_prec +#define thr_state(x) cross_type(x) +#define incgraphic_ok(x) cross_type(x) + +#define left_pos(x) (x)->os1.ou2.os24.oleft_pos +#define db_lineslen(x) left_pos(x) +#define reading(x) (x)->os1.ou2.os24.oreading +#define in_memory(x) (x)->os1.ou2.os24.oin_memory + +#define is_tag(x) (x)->os1.ou2.os26.ois_tag +#define has_tag(x) (x)->os1.ou2.os26.ohas_tag +#define has_lpar(x) (x)->os1.ou2.os26.ohas_lpar +#define has_rpar(x) (x)->os1.ou2.os26.ohas_rpar +#define right_assoc(x) (x)->os1.ou2.os26.oright_assoc +#define is_target(x) (x)->os1.ou2.os26.ois_target +#define has_target(x) (x)->os1.ou2.os26.ohas_target +#define force_target(x) (x)->os1.ou2.os26.oforce_target +#define has_body(x) (x)->os1.ou2.os26.ohas_body +#define indefinite(x) (x)->os1.ou2.os26.oindefinite +#define recursive(x) (x)->os1.ou2.os26.orecursive +#define uses_extern_target(x) (x)->os1.ou2.os26.ouses_extern_target +#define is_extern_target(x) (x)->os1.ou2.os26.ois_extern_target +#define is_key(x) (x)->os1.ou2.os26.ois_key +#define has_key(x) (x)->os1.ou2.os26.ohas_key +#define dirty(x) (x)->os1.ou2.os26.odirty +#define visible(x) (x)->os1.ou2.os26.ovisible +#define has_mark(x) (x)->os1.ou2.os26.ohas_mark +#define has_join(x) (x)->os1.ou2.os26.ohas_join +#define has_par(x) (x)->os1.ou2.os26.ohas_par +#define uses_galley(x) (x)->os1.ou2.os26.ouses_galley +#define horiz_galley(x) (x)->os1.ou2.os26.ohoriz_galley +#define imports_encl(x) (x)->os1.ou2.os26.oimports_encl + +#define fpos(x) (x)->os1.ou1.ofpos +#define word_save_mark(x) (x)->os1.ou1.os11.oword_save_mark + +#define back(x, dim) (x)->os1.ou3.os31.oback[dim] +#define comp_count(x) back(x, COLM) +#define fwd(x, dim) (x)->os1.ou3.os31.ofwd[dim] +#define size(x, dim) (back(x, dim) + fwd(x, dim)) +#define db_filep(x) (x)->os1.ou3.odb_filep +#define db_lines(x) (x)->os1.ou3.odb_lines +#define filter_actual(x) (x)->os1.ou3.ofilter_actual +#define db_checksym(x) filter_actual(x) + +#define cs_type(x) (x)->os1.ou3.os33.ocs_type +#define cs_fnum(x) (x)->os1.ou3.os33.ocs_fnum +#define cs_pos(x) (x)->os1.ou3.os33.ocs_pos +#define cs_lnum(x) (x)->os1.ou3.os33.ocs_lnum + +#define gall_rec(x) (x)->os1.ou3.os33.ogall_rec +#define gall_type(x) (x)->os1.ou3.os33.ogall_type +#define gall_pos(x) (x)->os1.ou3.os33.ogall_pos + +#define string(x) (x)->os1.ostring + +#define save_style(x) (x)->os2.ou4.osave_style +#define constraint(x) (x)->os2.ou4.oconstraint +#define shift_type(x) width(space_gap(save_style(x))) +#define shift_gap(x) line_gap(save_style(x)) + +#define actual(x) (x)->os2.oactual +#define whereto(x) (x)->os2.oux.owhereto +#define pinpoint(x) (x)->os2.oux.opinpoint +#define save_mark(x) (x)->os2.oux.osave_mark +#define ready_galls(x) (x)->os2a.oready_galls +#define opt_components(x) (x)->os2a.oopt_components +#define opt_constraints(x) (x)->os2a.oopt_constraints +#define opt_counts(x) (x)->os2a.oopt_counts +#define limiter(x) (x)->os2a.olimiter +#define enclose_obj(x) (x)->os2a.oenclose_obj +#define headers(x) (x)->os2a.oheaders +#define dead_headers(x) (x)->os2a.odead_headers +#define opt_comps_permitted(x) (x)->os2a.oopt_comps_permitted + +#define number(x) (x)->os4.onumber +#define db_targ(x) (x)->os4.odb_targ + +#define gap(x) (x)->os5.ogap +#define save_badness(x) (x)->os5.osave_badness +#define save_space(x) (x)->os5.osave_space +#define save_actual_gap(x) (x)->os5.osave_actual_gap +#define save_prev(x) (x)->os5.osave_prev +#define save_cwid(x) (x)->os5.osave_cwid + +#define enclosing(x) (x)->os6.oenclosing +#define sym_body(x) (x)->os6.osym_body +#define base_uses(x) (x)->os6.obase_uses +#define uses(x) (x)->os6.ouses +#define marker(x) (x)->os6.omarker +#define cross_sym(x) (x)->os6.ocross_sym +#define imports(x) (x)->os6.oimports +#define filter(x) (x)->os6.ofilter +#define use_invocation(x) (x)->os6.ouse_invocation +#define predefined(x) (x)->os6.opredefined +#define has_compulsory(x) (x)->os6.ohas_compulsory +#define uses_count(x) (x)->os6.ouses_count +#define npar_code(x) (x)->os6.onpar_code +#define is_optimize(x) (x)->os6.ois_optimize +#define has_optimize(x) (x)->os6.ohas_optimize +#define is_merge(x) (x)->os6.ois_merge +#define has_merge(x) (x)->os6.ohas_merge +#define is_enclose(x) (x)->os6.ois_enclose +#define has_enclose(x) (x)->os6.ohas_enclose +#define is_compulsory(x) (x)->os6.ois_compulsory + +#define target_state(x) (x)->os7.otarget_state +#define target_file(x) (x)->os7.otarget_file +/* #define cr_file(x) (x)->os7.ocr_file unused */ +#define target_val(x) (x)->os7.otarget_val +#define target_seq(x) (x)->os7.otarget_seq +#define target_pos(x) (x)->os7.otarget_pos +#define target_lnum(x) (x)->os7.otarget_lnum +/* #define cr_seq(x) (x)->os7.ocr_seq unused */ +#define gall_seq(x) (x)->os7.ogall_seq +#define symb(x) (x)->os7.osymb +#define gall_tag(x) (x)->os7.ogall_tag +#define gall_tfile(x) (x)->os7.ogall_tfile + +#define eg_fnum(x) (x)->os8.oeg_fnum +#define eg_fpos(x) (x)->os8.oeg_fpos +#define eg_lnum(x) (x)->os8.oeg_lnum +#define eg_cont(x) (x)->os8.oeg_cont +#define eg_symbol(x) (x)->os8.oeg_symbol + +#define item(x) (x)->os9.oitem +#define next(x) (x)->os9.onext + +#define font_num(x) (x)->os1.ou2.os25.ofont_num +#define font_page(x) (x)->os1.ou2.os25.ofont_page +#define font_size(x) (x)->os1.ou3.os32.ofont_size +#define font_xheight2(x) (x)->os1.ou3.os32.ofont_xheight2 +#define font_spacewidth(x) (x)->os1.ou3.os32.ofont_spacewidth +#define font_mapping(x) (x)->os1.ou3.os32.ofont_mapping +#define font_recoded(x) (x)->os1.ou3.os32.ofont_recoded + + +/*@::FONT_INFO@***************************************************************/ +/* */ +/* typedef FONT_INFO - information about font metrics etc. Really private */ +/* but shared between z37.c and z24.c */ +/* */ +/*****************************************************************************/ + +struct metrics { + SHORT_LENGTH up; + SHORT_LENGTH down; + SHORT_LENGTH left; + SHORT_LENGTH right; + SHORT_LENGTH last_adjust; +}; + +typedef struct composite_rec { + FULL_CHAR char_code; + SHORT_LENGTH x_offset; + SHORT_LENGTH y_offset; +} COMPOSITE; + +typedef struct font_rec { + struct metrics *size_table; /* metrics of sized fonts */ + FULL_CHAR *lig_table; /* ligatures */ + unsigned short *composite; /* non-zero means composite */ + COMPOSITE *cmp_table; /* composites to build */ + int cmp_top; /* length of cmp_table */ + OBJECT font_table; /* record of sized fonts */ + OBJECT original_face; /* face object of this font */ + SHORT_LENGTH underline_pos; /* position of underline */ + SHORT_LENGTH underline_thick; /* thickness of underline */ + unsigned short *kern_table; /* first kerning chars */ + FULL_CHAR *kern_chars; /* second kerning chars */ + unsigned char *kern_value; /* points into kern_lengths */ + SHORT_LENGTH *kern_sizes; /* sizes of kernings */ +} FONT_INFO; + + +/*@::MAP_VEC@*****************************************************************/ +/* */ +/* typedef MAP_VEC - information about character mappings. Really private */ +/* to z38.c but (for efficiency) shared with z37.c and z24.c */ +/* */ +/*****************************************************************************/ + +#define MAX_CHASH 353 /* size of hash table */ +#define MAP_UPPERCASE 0 /* the map to upper case */ +#define MAP_LOWERCASE 1 /* the map to lower case */ +#define MAP_UNACCENTED 2 /* the map to unaccented */ +#define MAP_ACCENT 3 /* the map to the accent character */ +#define MAPS 4 /* the number of maps in each file */ + +typedef struct mapvec { + OBJECT file_name; /* name of file containing the vec */ + FILE_NUM fnum; /* the file number of this file */ + BOOLEAN seen_recoded; /* TRUE if a font recode was seen */ + int last_page_printed; /* most recent page on which printed */ + OBJECT name; /* PostScript name of encoding vec */ + OBJECT vector[MAX_CHARS]; /* character names */ + FULL_CHAR hash_table[MAX_CHASH]; /* character hash table for inverse */ + FULL_CHAR map[MAPS][MAX_CHARS]; /* the mappings */ +} *MAP_VEC; + + +/*@::BACK_END@****************************************************************/ +/* */ +/* typedef BACK_END - an OO-like record describing one back end */ +/* */ +/*****************************************************************************/ + +typedef struct back_end_rec { + int code; /* the code number of the back end */ + FULL_CHAR *name; /* string name of the back end */ + BOOLEAN scale_avail; /* TRUE if @Scale is available */ + BOOLEAN rotate_avail; /* TRUE if @Rotate is available */ + BOOLEAN graphic_avail; /* TRUE if @Graphic is available */ + BOOLEAN incgraphic_avail; /* TRUE if @IncludeGraphic is avail. */ + BOOLEAN plaingraphic_avail; /* TRUE if @PlainGraphic is avail. */ + BOOLEAN fractional_spacing_avail; /* TRUE if fractional spacing avail. */ + BOOLEAN uses_font_metrics; /* TRUE if actual font metrics used */ + BOOLEAN colour_avail; /* TRUE if colour is available */ + void (*PrintInitialize)(FILE *fp); + void (*PrintLength)(FULL_CHAR *buff, int length, int length_dim); + void (*PrintPageSetupForFont)(OBJECT face, int font_curr_page, + FULL_CHAR *font_name, FULL_CHAR *first_size_str); + void (*PrintPageResourceForFont)(FULL_CHAR *font_name, BOOLEAN first); + void (*PrintMapping)(MAPPING m); + void (*PrintBeforeFirstPage)(FULL_LENGTH h, FULL_LENGTH v, FULL_CHAR *label); + void (*PrintBetweenPages)(FULL_LENGTH h, FULL_LENGTH v, FULL_CHAR *label); + void (*PrintAfterLastPage)(void); + void (*PrintWord)(OBJECT x, int hpos, int vpos); + void (*PrintPlainGraphic)(OBJECT x, FULL_LENGTH xmk,FULL_LENGTH ymk,OBJECT z); + void (*PrintUnderline)(FONT_NUM fnum, COLOUR_NUM col, FULL_LENGTH xstart, + FULL_LENGTH xstop, FULL_LENGTH ymk); + void (*CoordTranslate)(FULL_LENGTH xdist, FULL_LENGTH ydist); + void (*CoordRotate)(FULL_LENGTH amount); + void (*CoordScale)(float hfactor, float vfactor); + void (*SaveGraphicState)(OBJECT x); + void (*RestoreGraphicState)(void); + void (*PrintGraphicObject)(OBJECT x); + void (*DefineGraphicNames)(OBJECT x); + void (*SaveTranslateDefineSave)(OBJECT x,FULL_LENGTH xdist,FULL_LENGTH ydist); + void (*PrintGraphicInclude)(OBJECT x,FULL_LENGTH colmark,FULL_LENGTH rowmark); + void (*LinkSource)(OBJECT name, FULL_LENGTH llx, FULL_LENGTH lly, + FULL_LENGTH urx, FULL_LENGTH ury); + void (*LinkDest)(OBJECT name, FULL_LENGTH llx, FULL_LENGTH lly, + FULL_LENGTH urx, FULL_LENGTH ury); + void (*LinkCheck)(); +} *BACK_END; + + +/*@::object types@************************************************************/ +/* */ +/* OBJECT, TOKEN AND OTHER TYPES inhabiting type(x) and predefined(x) */ +/* */ +/* Key letters in the adjacent comment indicate where the tag is legal: */ +/* */ +/* t a token type, pushed on token stack */ +/* o an object type (returned by reduce(), inserted by Manifest) */ +/* i an index type (a child of a galley header other than an object) */ +/* s a predefined symbol (some symbol table entry has this predefined()) */ +/* n an indefinite object i.e. one which is ignored in catenation ops */ +/* */ +/*****************************************************************************/ + +#define LINK 0 /* a link between objects */ +#define GAP_OBJ 1 /* o a gap object */ +#define CLOSURE 2 /* to n a closure of a symbol */ +#define UNDER_REC 3 /* o n record of underlining */ +#define PAGE_LABEL 4 /* to sn @PageLabel */ +#define NULL_CLOS 5 /* to sn @Null */ +#define CROSS 6 /* to sn && (a cross reference obj) */ +#define FORCE_CROSS 7 /* to sn &&& (a forcing cross ref.) */ +#define HEAD 8 /* o n a galley header */ +#define SPLIT 9 /* o @Split */ +#define PAR 10 /* o a parameter of a closure */ +#define WORD 11 /* o a word */ +#define QWORD 12 /* o a word (was quoted in i/p) */ +#define HSPANNER 13 /* o a horizontal spanner */ +#define VSPANNER 14 /* o a vertical spanner */ +#define ROW_THR 15 /* o a row thread */ +#define COL_THR 16 /* o a column thread */ +#define ACAT 17 /* to s a sequence of &-ed objs */ +#define HCAT 18 /* to s a sequence of |-ed objs */ +#define VCAT 19 /* to s a sequence of /-ed objs */ +#define BEGIN_HEADER 20 /* to s @BeginHeaderComponent */ +#define END_HEADER 21 /* to s @EndHeaderComponent */ +#define SET_HEADER 22 /* to s @SetHeaderComponent */ +#define CLEAR_HEADER 23 /* to s @ClearHeaderComponent */ +#define ONE_COL 24 /* to s @OneCol */ +#define ONE_ROW 25 /* to s @OneRow */ +#define WIDE 26 /* to s @Wide */ +#define HIGH 27 /* to s @High */ +#define HSHIFT 28 /* to s @HShift */ +#define VSHIFT 29 /* to s @VShift */ +#define HSCALE 30 /* to s @HScale */ +#define VSCALE 31 /* to s @VScale */ +#define HCOVER 32 /* to s @HCover */ +#define VCOVER 33 /* to s @VCover */ +#define SCALE 34 /* to s @Scale */ +#define KERN_SHRINK 35 /* to s @KernShrink */ +#define HCONTRACT 36 /* to s @HContract */ +#define VCONTRACT 37 /* to s @VContract */ +#define HLIMITED 38 /* to s @HLimited */ +#define VLIMITED 39 /* to s @VLimited */ +#define HEXPAND 40 /* to s @HExpand */ +#define VEXPAND 41 /* to s @VExpand */ +#define START_HSPAN 42 /* to s @StartHSpan */ +#define START_VSPAN 43 /* to s @StartVSpan */ +#define START_HVSPAN 44 /* to s @StartHVSpan */ +#define HSPAN 45 /* to s @HSpan */ +#define VSPAN 46 /* to s @VSpan */ +#define PADJUST 47 /* to s @PAdjust */ +#define HADJUST 48 /* to s @HAdjust */ +#define VADJUST 49 /* to s @VAdjust */ +#define ROTATE 50 /* to s @Rotate */ +#define BACKGROUND 51 /* to s @Background */ +#define CASE 52 /* to s @Case */ +#define VERBATIM 53 /* to s @Verbatim */ +#define RAW_VERBATIM 54 /* to s @RawVerbatim */ +#define YIELD 55 /* to s @Yield */ +#define BACKEND 56 /* to s @BackEnd */ +#define FILTERED 57 /* to s filtered object (no name) */ +#define XCHAR 58 /* to s @Char */ +#define FONT 59 /* to s @Font */ +#define SPACE 60 /* to s @Space */ +#define YUNIT 61 /* to s @YUnit */ +#define ZUNIT 62 /* to s @ZUnit */ +#define BREAK 63 /* to s @Break */ +#define UNDERLINE 64 /* to s @Underline */ +#define COLOUR 65 /* to s @SetColour and @SetColor */ +#define OUTLINE 66 /* to s @Outline */ +#define LANGUAGE 67 /* to s @Language */ +#define CURR_LANG 68 /* to s @CurrLang */ +#define CURR_FAMILY 69 /* to s @CurrFamily */ +#define CURR_FACE 70 /* to s @CurrFace */ +#define CURR_YUNIT 71 /* to s @CurrYUnit */ +#define CURR_ZUNIT 72 /* to s @CurrZUnit */ +#define COMMON 73 /* to s @Common */ +#define RUMP 74 /* to s @Rump */ +#define MELD 75 /* to s @Meld */ +#define INSERT 76 /* to s @Insert */ +#define ONE_OF 77 /* to s @OneOf */ +#define NEXT 78 /* to s @Next */ +#define PLUS 79 /* to s @Plus */ +#define MINUS 80 /* to s @Minus */ +#define ENV_OBJ 81 /* to s object with envt (no name) */ +#define ENV 82 /* to s @LEnv */ +#define ENVA 83 /* to s @LEnvA */ +#define ENVB 84 /* to s @LEnvB */ +#define ENVC 85 /* to s @LEnvC */ +#define ENVD 86 /* to s @LEnvD */ +#define CENV 87 /* to s @LCEnv */ +#define CLOS 88 /* to s @LClos */ +#define LVIS 89 /* to s @LVis */ +#define LUSE 90 /* to s @LUse */ +#define LEO 91 /* to s @LEO */ +#define OPEN 92 /* to s @Open */ +#define TAGGED 93 /* to s @Tagged */ +#define INCGRAPHIC 94 /* to s @IncludeGraphic */ +#define SINCGRAPHIC 95 /* to s @SysIncludeGraphic */ +#define PLAIN_GRAPHIC 96 /* to s @PlainGraphic */ +#define GRAPHIC 97 /* to s @Graphic */ +#define LINK_SOURCE 98 /* to s @LinkSource */ +#define LINK_DEST 99 /* to s @LinkDest */ +#define TSPACE 100 /* t a space token, parser only */ +#define TJUXTA 101 /* t a juxta token, parser only */ +#define LBR 102 /* t s left brace token */ +#define RBR 103 /* t s right brace token */ +#define BEGIN 104 /* t s @Begin token */ +#define END 105 /* t s @End token */ +#define USE 106 /* t s @Use */ +#define NOT_REVEALED 107 /* t s @NotRevealed */ +#define GSTUB_NONE 108 /* t a galley stub, no rpar */ +#define GSTUB_INT 109 /* t galley stub internal rpar */ +#define GSTUB_EXT 110 /* t galley stub external rpar */ +#define UNEXPECTED_EOF 111 /* t unexpected end of file */ +#define INCLUDE 112 /* s @Include */ +#define SYS_INCLUDE 113 /* s @SysInclude */ +#define PREPEND 114 /* s @Prepend */ +#define SYS_PREPEND 115 /* s @SysPrepend */ +#define DATABASE 116 /* s @Database */ +#define SYS_DATABASE 117 /* s @SysDatabase */ +/* #define START 118 */ /* s \Start */ +#define DEAD 119 /* i a dead galley */ +#define UNATTACHED 120 /* i an inner, unsized galley */ +#define RECEPTIVE 121 /* i a receptive object index */ +#define RECEIVING 122 /* i a receiving object index */ +#define RECURSIVE 123 /* i a recursive definite obj. */ +#define PRECEDES 124 /* i an ordering constraint */ +#define FOLLOWS 125 /* i other end of ordering c. */ +#define CROSS_LIT 126 /* i literal word cross-ref */ +#define CROSS_FOLL 127 /* i following type cross-ref */ +#define CROSS_FOLL_OR_PREC 128 /* i follorprec type cross-ref */ +#define GALL_FOLL 129 /* i galley with &&following */ +#define GALL_FOLL_OR_PREC 130 /* i galley with &&following */ +#define CROSS_TARG 131 /* i value of cross-ref */ +#define GALL_TARG 132 /* i target of these galleys */ +#define GALL_PREC 133 /* i galley with &&preceding */ +#define CROSS_PREC 134 /* i preceding type cross-ref */ +#define PAGE_LABEL_IND 135 /* i index of PAGE_LABEL */ +#define SCALE_IND 136 /* i index of auto SCALE */ +#define COVER_IND 137 /* i index of HCOVER or VCOVER */ +#define EXPAND_IND 138 /* i index of HEXPAND or VEXPD */ +#define THREAD 139 /* a sequence of threads */ +#define CROSS_SYM 140 /* cross-ref info */ +#define CR_ROOT 141 /* RootCross */ +#define MACRO 142 /* a macro symbol */ +#define LOCAL 143 /* a local symbol */ +#define LPAR 144 /* a left parameter */ +#define NPAR 145 /* a named parameter */ +#define RPAR 146 /* a right parameter */ +#define EXT_GALL 147 /* an external galley */ +#define CR_LIST 148 /* a list of cross references */ +#define SCOPE_SNAPSHOT 149 /* a scope snapshot */ +#define DISPOSED 150 /* a disposed record */ + +#define is_indefinite(x) ((x) >= CLOSURE && (x) <= HEAD) +#define is_header(x) ((x) >= BEGIN_HEADER && (x) <= CLEAR_HEADER) +#define is_definite(x) ((x) >= SPLIT && (x) <= LINK_DEST) +#define is_par(x) ((x) >= LPAR && (x) <= RPAR) +#define is_index(x) ((x) >= DEAD && (x) <= EXPAND_IND) +#define is_type(x) ((x) >= LINK && (x) < DISPOSED) +#define is_word(x) ((x) == WORD || (x) == QWORD) +#define is_cross(x) ((x) == CROSS || (x) == FORCE_CROSS) +#define is_cat_op(x) (((x)>=ACAT && (x)<=VCAT) || (x)==TSPACE || (x)<=TJUXTA) + + +/*@::miscellaneous constants@*************************************************/ +/* */ +/* Miscellaneous globally defined constants */ +/* */ +/*****************************************************************************/ + +/* gap modes occupying mode(x) */ +#define NO_MODE 0 /* for error detection: no mode */ +#define EDGE_MODE 1 /* edge-to-edge spacing */ +#define HYPH_MODE 2 /* edge-to-edge with hyphenation */ +#define MARK_MODE 3 /* mark-to-mark spacing */ +#define OVER_MODE 4 /* overstrike spacing */ +#define KERN_MODE 5 /* kerning spacing */ +#define TAB_MODE 6 /* tabulation spacing */ +#define ADD_HYPH 7 /* temp value used by FillObject */ + +/* hyph_style(style) options */ +#define HYPH_UNDEF 0 /* hyphenation option undefined */ +#define HYPH_OFF 1 /* hyphenation off */ +#define HYPH_ON 2 /* hyphenation on */ + +/* fill_style(style) options */ +#define FILL_UNDEF 0 /* fill option undefined */ +#define FILL_OFF 1 /* no filling of lines */ +#define FILL_ON 2 /* fill lines with text */ + +/* underline(obj) options */ +#define UNDER_UNDEF 0 /* underline undefined */ +#define UNDER_OFF 1 /* no underlining */ +#define UNDER_ON 2 /* underline this */ + +/* space_style(style) options */ +#define SPACE_LOUT 0 /* interpret white space Lout's way */ +#define SPACE_COMPRESS 1 /* compress multiple white spaces */ +#define SPACE_SEPARATE 2 /* compress an separate */ +#define SPACE_TROFF 3 /* interpret white space troff's way */ +#define SPACE_TEX 4 /* interpret white space TeX's way */ + +/* display_style(style) options */ +#define DISPLAY_UNDEF 0 /* display option undefined */ +#define DISPLAY_ADJUST 1 /* adjust lines (except last) */ +#define DISPLAY_OUTDENT 2 /* outdent lines (except first) */ +#define DISPLAY_ORAGGED 3 /* outdent but don't adjust */ +#define DISPLAY_LEFT 4 /* left-justify lines, no adjust */ +#define DISPLAY_CENTRE 5 /* centre lines, no adjust */ +#define DISPLAY_RIGHT 6 /* right-justify lines, no adjust */ +#define DO_ADJUST 7 /* placed in ACATs when adjust need */ + +/* small_caps(style) options */ +#define SMALL_CAPS_OFF 0 /* don't want small capitals */ +#define SMALL_CAPS_ON 1 /* small capitals */ + +/* sides of a mark */ +#define BACK 151 /* means lies to left of mark */ +#define ON 152 /* means lies on mark */ +#define FWD 153 /* means lies to right of mark */ + +/* statuses of thread objects */ +#define NOTSIZED 0 /* this thread object is not sized */ +#define SIZED 1 /* thread is sized but not printed */ +#define FINALSIZE 2 /* thread object size is now final */ + +/* constraint statuses */ +#define PROMOTE 154 /* this component may be promoted */ +#define CLOSE 155 /* must close dest before promoting */ +#define BLOCK 156 /* cannot promote this component */ +#define CLEAR 157 /* this constraint is now satisfied */ + +/* gap increment types */ +#define GAP_ABS 158 /* absolute, e.g. 3p */ +#define GAP_INC 159 /* increment, e.g. +3p */ +#define GAP_DEC 160 /* decrement, e.g. -3p */ + +/* file types */ +#define SOURCE_FILE 0 /* input file from command line */ +#define INCLUDE_FILE 1 /* @Include file */ +#define INCGRAPHIC_FILE 2 /* @IncludeGraphic file */ +#define DATABASE_FILE 3 /* database file */ +#define INDEX_FILE 4 /* database index file */ +#define FONT_FILE 5 /* font file */ +#define PREPEND_FILE 6 /* PostScript prologue file */ +#define HYPH_FILE 7 /* hyphenation file */ +#define HYPH_PACKED_FILE 8 /* packed hyphenation file */ +#define MAPPING_FILE 9 /* character mapping file */ +#define FILTER_FILE 10 /* filter output file */ +#define MAX_TYPES 11 /* number of file types */ + +/* path types (i.e. sequences of directories for file searching) */ +#define SOURCE_PATH 0 /* path to search for source files */ +#define INCLUDE_PATH 1 /* path for @Include files */ +#define SYSINCLUDE_PATH 2 /* path for @SysInclude files */ +#define DATABASE_PATH 3 /* path for @Database files */ +#define SYSDATABASE_PATH 4 /* path for @SysDatabase files */ +#define FONT_PATH 5 /* path for font metrics (AFM) files */ +#define HYPH_PATH 6 /* path for hyphenation files */ +#define MAPPING_PATH 7 /* path for mapping (LCM) files */ +#define MAX_PATHS 8 /* number of mapping paths */ + +/* units of measurement */ +#define NO_UNIT 0 /* no unit - for error detection */ +#define FIXED_UNIT 1 /* inches, cm, points, ems, y, z */ +#define FRAME_UNIT 2 /* b unit (frame widths) */ +#define AVAIL_UNIT 3 /* r unit (available spaces) */ +#define DEG_UNIT 4 /* d unit (degrees) */ +#define NEXT_UNIT 5 /* w unit (inners) */ + +/* units of distance as multiples of the basic unit */ +#define CM 567 /* 1 centimetre */ +#define IN 1440 /* 1 inch */ +#define EM 120 /* 1 em (= 1/12 inch) */ +#define PT 20 /* 1 point (= 1/72 inch) */ +#define FR 4096 /* virtual unit for frame units */ +#define DG 128 /* virtual unit for degrees */ +#define SF 128 /* virtual unit for @Scale factors */ + +/* default size of characters for the PLAINTEXT back end */ +#define PLAIN_WIDTH 144 /* default char width, 10 per inch */ +#define PLAIN_HEIGHT 240 /* default char height, 6 per inch */ + +/* precedences */ +#define NO_PREC 0 /* lower than any precedence */ +#define BEGIN_PREC 1 /* precedence of @Begin */ +#define END_PREC 2 /* precedence of @End */ +#define LBR_PREC 3 /* precedence of { */ +#define RBR_PREC 4 /* precedence of } */ +#define VCAT_PREC 5 /* precedence of / */ +#define HCAT_PREC 6 /* precedence of | */ +#define ACAT_PREC 7 /* precedence of & and white space */ +#define MIN_PREC 10 /* minimum precedence of user ops */ +#define MAX_PREC 100 /* maximim precedence of user ops */ +#define DEFAULT_PREC 100 /* default precedence of user ops */ +#define CROSSOP_PREC 101 /* precedence of && and &&& ops */ +#define GAP_PREC 102 /* precedence of gap op after cat op */ +#define JUXTA_PREC 103 /* precedence of juxtaposition & */ +#define FILTER_PREC 104 /* precedence of filter symbol ops */ +#define FORCE_PREC 105 /* higher than any precedence */ + +/* back ends */ +#define POSTSCRIPT 0 /* PostScript back end */ +#define PDF 1 /* PDF back end */ +#define PLAINTEXT 2 /* plain text back end */ + +/* error types */ +#define INTERN 0 /* internal error (i.e. bug) */ +#define FATAL 1 /* fatal error, abort now */ +#define WARN 2 /* warning, non-fatal */ + +/* status values returned by AttachGalley() */ +#define ATTACH_KILLED 0 +#define ATTACH_INPUT 1 +#define ATTACH_NOTARGET 2 +#define ATTACH_SUSPEND 3 +#define ATTACH_NULL 4 +#define ATTACH_ACCEPT 5 + +/* types of memory usage, used to debug memory consumption */ +#define MEM_BINARY 0 /* the executable binary */ +#define MEM_OBJECTS 1 /* objects currently in free list */ +#define MEM_FONTS 2 /* fonts */ +#define MEM_LEX 3 /* lexical analyser file buffers */ +#define MEM_FILES 4 /* table of file names */ +#define MEM_CROSSREF 5 /* table of file names */ +#define MEM_PAGES 6 /* page grids (-p only) */ +#define MEM_DBCHECK 7 /* database checks */ +#define MEM_DB 8 /* in_memory database */ +#define MEM_HYPH_PATS 9 /* hyphenation patterns */ +#define MEM_CMAPS 10 /* character maps */ +#define MEM_COLOUR_TAB 11 /* colour table */ +#define MEM_LANG_TAB 12 /* language table */ +#define MEM_USAGE_MAX 13 /* number of memory usage types */ + +/*@::Keywords@****************************************************************/ +/* */ +/* Keywords. */ +/* */ +/*****************************************************************************/ + +#define KW_START AsciiToFull("\\Start") +#define KW_PRINT AsciiToFull("\\Print") +#define KW_OPTGALL AsciiToFull("@OptGall") +#define KW_DEF AsciiToFull("def") +#define KW_FONTDEF AsciiToFull("@FontDef") +#define KW_FAMILY AsciiToFull("@Family") +#define KW_FACE AsciiToFull("@Face") +#define KW_NAME AsciiToFull("@Name") +#define KW_METRICS AsciiToFull("@Metrics") +#define KW_EXTRA_METRICS AsciiToFull("@ExtraMetrics") +#define KW_MAPPING AsciiToFull("@Mapping") +#define KW_RECODE AsciiToFull("@Recode") +#define KW_LANGDEF AsciiToFull("langdef") +#define KW_FORCE AsciiToFull("force") +#define KW_HORIZ AsciiToFull("horizontally") +#define KW_INTO AsciiToFull("into") +#define KW_EXTEND AsciiToFull("extend") +#define KW_IMPORT AsciiToFull("import") +#define KW_EXPORT AsciiToFull("export") +#define KW_PRECEDENCE AsciiToFull("precedence") +#define KW_ASSOC AsciiToFull("associativity") +#define KW_LEFT AsciiToFull("left") +#define KW_RIGHT AsciiToFull("right") +#define KW_BODY AsciiToFull("body") +#define KW_FILTER AsciiToFull("@Filter") +#define KW_FILTERIN AsciiToFull("@FilterIn") +#define KW_FILTEROUT AsciiToFull("@FilterOut") +#define KW_FILTERERR AsciiToFull("@FilterErr") +#define KW_MACRO AsciiToFull("macro") +#define KW_NAMED AsciiToFull("named") +#define KW_COMPULSORY AsciiToFull("compulsory") +#define KW_COMMON AsciiToFull("@Common") +#define KW_RUMP AsciiToFull("@Rump") +#define KW_MELD AsciiToFull("@Meld") +#define KW_INSERT AsciiToFull("@Insert") +#define KW_ONE_OF AsciiToFull("@OneOf") +#define KW_NEXT AsciiToFull("@Next") +#define KW_PLUS AsciiToFull("@Plus") +#define KW_MINUS AsciiToFull("@Minus") +#define KW_WIDE AsciiToFull("@Wide") +#define KW_HIGH AsciiToFull("@High") +#define KW_HSHIFT AsciiToFull("@HShift") +#define KW_VSHIFT AsciiToFull("@VShift") +#define KW_BEGIN_HEADER AsciiToFull("@BeginHeaderComponent") +#define KW_END_HEADER AsciiToFull("@EndHeaderComponent") +#define KW_SET_HEADER AsciiToFull("@SetHeaderComponent") +#define KW_CLEAR_HEADER AsciiToFull("@ClearHeaderComponent") +#define KW_ONE_COL AsciiToFull("@OneCol") +#define KW_ONE_ROW AsciiToFull("@OneRow") +#define KW_HSCALE AsciiToFull("@HScale") +#define KW_VSCALE AsciiToFull("@VScale") +#define KW_HCOVER AsciiToFull("@HCover") +#define KW_VCOVER AsciiToFull("@VCover") +#define KW_SCALE AsciiToFull("@Scale") +#define KW_KERN_SHRINK AsciiToFull("@KernShrink") +#define KW_HCONTRACT AsciiToFull("@HContract") +#define KW_VCONTRACT AsciiToFull("@VContract") +#define KW_HLIMITED AsciiToFull("@HLimited") +#define KW_VLIMITED AsciiToFull("@VLimited") +#define KW_HEXPAND AsciiToFull("@HExpand") +#define KW_VEXPAND AsciiToFull("@VExpand") +#define KW_STARTHVSPAN AsciiToFull("@StartHVSpan") +#define KW_STARTHSPAN AsciiToFull("@StartHSpan") +#define KW_STARTVSPAN AsciiToFull("@StartVSpan") +#define KW_HSPAN AsciiToFull("@HSpan") +#define KW_VSPAN AsciiToFull("@VSpan") +#define KW_PADJUST AsciiToFull("@PAdjust") +#define KW_HADJUST AsciiToFull("@HAdjust") +#define KW_VADJUST AsciiToFull("@VAdjust") +#define KW_ROTATE AsciiToFull("@Rotate") +#define KW_BACKGROUND AsciiToFull("@Background") +#define KW_INCGRAPHIC AsciiToFull("@IncludeGraphic") +#define KW_SINCGRAPHIC AsciiToFull("@SysIncludeGraphic") +#define KW_GRAPHIC AsciiToFull("@Graphic") +#define KW_LINK_SOURCE AsciiToFull("@LinkSource") +#define KW_LINK_DEST AsciiToFull("@LinkDest") +#define KW_PLAINGRAPHIC AsciiToFull("@PlainGraphic") +#define KW_VERBATIM AsciiToFull("@Verbatim") +#define KW_RAWVERBATIM AsciiToFull("@RawVerbatim") +#define KW_CASE AsciiToFull("@Case") +#define KW_YIELD AsciiToFull("@Yield") +#define KW_BACKEND AsciiToFull("@BackEnd") +#define KW_XCHAR AsciiToFull("@Char") +#define KW_FONT AsciiToFull("@Font") +#define KW_SPACE AsciiToFull("@Space") +#define KW_YUNIT AsciiToFull("@YUnit") +#define KW_ZUNIT AsciiToFull("@ZUnit") +#define KW_BREAK AsciiToFull("@Break") +#define KW_UNDERLINE AsciiToFull("@Underline") +#define KW_COLOUR AsciiToFull("@SetColour") +#define KW_COLOR AsciiToFull("@SetColor") +#define KW_OUTLINE AsciiToFull("@Outline") +#define KW_LANGUAGE AsciiToFull("@Language") +#define KW_CURR_LANG AsciiToFull("@CurrLang") +#define KW_CURR_FAMILY AsciiToFull("@CurrFamily") +#define KW_CURR_FACE AsciiToFull("@CurrFace") +#define KW_CURR_YUNIT AsciiToFull("@CurrYUnit") +#define KW_CURR_ZUNIT AsciiToFull("@CurrZUnit") +#define KW_ENV AsciiToFull("@LEnv") +#define KW_ENVA AsciiToFull("@@A") +#define KW_ENVB AsciiToFull("@@B") +#define KW_ENVC AsciiToFull("@@C") +#define KW_ENVD AsciiToFull("@@D") +#define KW_CENV AsciiToFull("@@E") +#define KW_CLOS AsciiToFull("@LClos") +#define KW_LVIS AsciiToFull("@@V") +#define KW_LUSE AsciiToFull("@LUse") +#define KW_LEO AsciiToFull("@LEO") +#define KW_OPEN AsciiToFull("@Open") +#define KW_USE AsciiToFull("@Use") +#define KW_NOT_REVEALED AsciiToFull("@NotRevealed") +#define KW_TAGGED AsciiToFull("@Tagged") +#define KW_DATABASE AsciiToFull("@Database") +#define KW_SYSDATABASE AsciiToFull("@SysDatabase") +#define KW_INCLUDE AsciiToFull("@Include") +#define KW_SYSINCLUDE AsciiToFull("@SysInclude") +#define KW_PREPEND AsciiToFull("@PrependGraphic") +#define KW_SYSPREPEND AsciiToFull("@SysPrependGraphic") +#define KW_TARGET AsciiToFull("@Target") +#define KW_FOLLOWING AsciiToFull("following") +#define KW_PRECEDING AsciiToFull("preceding") +#define KW_FOLL_OR_PREC AsciiToFull("foll_or_prec") +#define KW_NOW AsciiToFull("now") +#define KW_NULL AsciiToFull("@Null") +#define KW_PAGE_LABEL AsciiToFull("@PageLabel") +#define KW_GALLEY AsciiToFull("@Galley") +#define KW_FORCE_GALLEY AsciiToFull("@ForceGalley") +#define KW_INPUT AsciiToFull("@LInput") +#define KW_SPLIT AsciiToFull("@Split") +#define KW_TAG AsciiToFull("@Tag") +#define KW_KEY AsciiToFull("@Key") +#define KW_OPTIMIZE AsciiToFull("@Optimize") +#define KW_MERGE AsciiToFull("@Merge") +#define KW_ENCLOSE AsciiToFull("@Enclose") +#define KW_CROSS AsciiToFull("&&") +#define KW_FORCE_CROSS AsciiToFull("&&&") +#define KW_LBR AsciiToFull("{") +#define KW_RBR AsciiToFull("}") +#define KW_BEGIN AsciiToFull("@Begin") +#define KW_END AsciiToFull("@End") +#define KW_VCAT_NN AsciiToFull("//") +#define KW_VCAT_MN AsciiToFull("^//") +#define KW_VCAT_NJ AsciiToFull("/") +#define KW_VCAT_MJ AsciiToFull("^/") +#define KW_HCAT_NN AsciiToFull("||") +#define KW_HCAT_MN AsciiToFull("^||") +#define KW_HCAT_NJ AsciiToFull("|") +#define KW_HCAT_MJ AsciiToFull("^|") +#define KW_ACAT_NJ AsciiToFull("&") +#define KW_ACAT_MJ AsciiToFull("^&") +#define KW_MOMENT AsciiToFull("@Moment") +#define KW_SECOND AsciiToFull("@Second") +#define KW_MINUTE AsciiToFull("@Minute") +#define KW_HOUR AsciiToFull("@Hour") +#define KW_DAY AsciiToFull("@Day") +#define KW_MONTH AsciiToFull("@Month") +#define KW_YEAR AsciiToFull("@Year") +#define KW_CENTURY AsciiToFull("@Century") +#define KW_WEEKDAY AsciiToFull("@WeekDay") +#define KW_YEARDAY AsciiToFull("@YearDay") +#define KW_DAYLIGHTSAVING AsciiToFull("@DaylightSaving") + +/*@::GetMem(), New(), NewWord()@**********************************************/ +/* */ +/* GetMem(x, siz, pos) */ +/* New(x, typ) */ +/* NewWord(x, typ, len, pos) */ +/* */ +/* Set x to point to a new record, of appropriate length (in ALIGNs). */ +/* The New and NewWord versions initialise LIST, type and rec_size fields. */ +/* NewWord must be used for WORD and QWORD objects. */ +/* */ +/*****************************************************************************/ + +#if DEBUG_ON +#define newcount zz_newcount++ +#define freecount zz_listcount-- + +#define checknew(typ) \ +{ assert1( is_type(typ), "New: type", Image(typ) ); \ + assert( zz_lengths[typ] > 0, "New: zero length!" ); \ +} + +#define checkmem(z, typ) \ +{ if( (MemCheck != 0) && ( (POINTER) z == MemCheck) ) \ + fprintf(stderr, "%ld = New(%s)\n", (long) z, Image(type(z))); \ +} + +#else +#define newcount +#define freecount +#define checknew(typ) +#define checkmem(z, typ) +#endif + +#define GetMem(x, siz, pos) \ +{ newcount; \ + if( (zz_size=(siz)) >= MAX_OBJECT_REC ) \ + Error(1, 1, "word is too long", FATAL, pos); \ + else if( zz_free[zz_size] == nilobj ) \ + x = GetMemory(zz_size, pos); \ + else \ + { x = zz_hold = zz_free[zz_size]; \ + freecount; \ + zz_free[zz_size] = pred(zz_hold, CHILD); \ + } \ +} + +#define New(x, typ) \ +{ checknew(typ); \ + GetMem(zz_hold, zz_lengths[typ], no_fpos); \ + type(zz_hold) = typ; \ + checkmem(zz_hold, typ); \ + x = pred(zz_hold, CHILD) = succ(zz_hold, CHILD) = \ + pred(zz_hold, PARENT) = succ(zz_hold, PARENT) = zz_hold; \ +} + +#define NewWord(x, typ, len, pos) \ +{ zz_size = sizeof(struct word_type) - 4 + ((len)+1)*sizeof(FULL_CHAR); \ + /* NB the following line RESETS zz_size */ \ + GetMem(zz_hold, ceiling(zz_size, sizeof(ALIGN)), pos); \ + checkmem(zz_hold, typ); \ + rec_size(zz_hold) = zz_size; \ + type(zz_hold) = typ; \ + x = pred(zz_hold, CHILD) = succ(zz_hold, CHILD) = \ + pred(zz_hold, PARENT) = succ(zz_hold, PARENT) = zz_hold; \ +} + +/*@::PutMem(), Dispose()@*****************************************************/ +/* */ +/* PutMem(x, siz) */ +/* Dispose(x) */ +/* */ +/* Dispose x, which is of size siz. Dispose works out the size itself. */ +/* */ +/*****************************************************************************/ +#if DEBUG_ON +#define disposecount zz_disposecount++; zz_listcount++; + +#define disposecheck \ +{ assert( zz_size >= 0 && zz_size < MAX_OBJECT_REC, "Dispose: size" ); \ +} + +#define setdisposed \ +{ if( (MemCheck != 0) && ((POINTER) zz_hold == MemCheck) ) \ + fprintf(stderr, "Dispose(%ld, %s)\n", (long) zz_hold, \ + Image(type(zz_hold))); \ + type(zz_hold) = DISPOSED; \ +} + +#else +#define disposecount +#define disposecheck +#define setdisposed +#endif + +#define PutMem(x, siz) \ +{ disposecount; \ + zz_hold = (x); \ + zz_size = (siz); \ + disposecheck; \ + pred(zz_hold, CHILD) = zz_free[zz_size]; \ + zz_free[zz_size] = zz_hold; \ +} + +#define Dispose(x) \ +{ zz_hold = (x); \ + PutMem(zz_hold, is_word(type(zz_hold)) ? \ + rec_size(zz_hold) : zz_lengths[type(zz_hold)]); \ + setdisposed; \ +} + +/*@::Append(), Delete()@******************************************************/ +/* */ +/* OBJECT Append(x, y, dir) */ +/* */ +/* Return the append of lists x and y (dir is PARENT or CHILD). */ +/* */ +/*****************************************************************************/ + +#define Append(x, y, dir) \ +( zz_res = (x), zz_hold = (y), \ + zz_hold == nilobj ? zz_res : \ + zz_res == nilobj ? zz_hold : \ + ( zz_tmp = pred(zz_hold, dir), \ + pred(zz_hold, dir) = pred(zz_res, dir), \ + succ(pred(zz_res, dir), dir) = zz_hold, \ + pred(zz_res, dir) = zz_tmp, \ + succ(zz_tmp, dir) = zz_res \ + ) \ +) + + +/*****************************************************************************/ +/* */ +/* OBJECT Delete(x, dir) */ +/* */ +/* Delete x from its dir list, and return succ(x, dir) or nilobj if none. */ +/* */ +/*****************************************************************************/ + +#define Delete(x, dir) \ +( zz_hold = (x), \ + succ(zz_hold, dir) == zz_hold ? nilobj : \ + ( zz_res = succ(zz_hold, dir), \ + pred(zz_res, dir) = pred(zz_hold, dir), \ + succ(pred(zz_hold, dir), dir) = zz_res, \ + pred(zz_hold, dir) = succ(zz_hold, dir) = zz_hold, \ + zz_res \ + ) \ +) + +#define Down(x) succ(x, CHILD) +#define NextDown(x) succ(x, CHILD) +#define LastDown(x) pred(x, CHILD) +#define PrevDown(x) pred(x, CHILD) +#define Up(x) succ(x, PARENT) +#define NextUp(x) succ(x, PARENT) +#define LastUp(x) pred(x, PARENT) +#define PrevUp(x) pred(x, PARENT) + +#define Child(y, link) \ +for( y = pred(link, PARENT); type(y) == LINK; y = pred(y, PARENT) ) + +#define CountChild(y, link, i) \ +for( y=pred(link, PARENT), i=1; type(y)==LINK; y = pred(y, PARENT), i++ ) + +#define Parent(y, link) \ +for( y = pred(link, CHILD); type(y) == LINK; y = pred(y, CHILD) ) + + +/*@::UpDim(), DownDim(), Link(), DeleteLink(), etc.@**************************/ +/* */ +/* UpDim(x, dim) */ +/* DownDim(x, dim) */ +/* */ +/* Returns the dim child or parent link of node x (dim == COLM or ROWM). */ +/* */ +/*****************************************************************************/ + +#define UpDim(x, dim) ( (dim) == COLM ? succ(x, PARENT) : pred(x, PARENT) ) +#define DownDim(x, dim) ( (dim) == COLM ? succ(x, CHILD) : pred(x, CHILD) ) + + +/*****************************************************************************/ +/* */ +/* OBJECT Link(x, y) */ +/* */ +/* Make y a child of x in the directed graph, using a new link. */ +/* The link node is returned. */ +/* */ +/*****************************************************************************/ + +#define Link(x, y) \ +{ New(xx_link, LINK); \ + Append(xx_link, (x), CHILD); \ + Append(xx_link, (y), PARENT); \ +} + + +/*****************************************************************************/ +/* */ +/* DeleteLink(link) */ +/* */ +/* Cut the link between nodes x and y of the directed graph. */ +/* Returns the link node of the next child of x, or x if none. */ +/* */ +/*****************************************************************************/ + +#define DeleteLink(link) \ +{ xx_link = (link); \ + Delete(xx_link, PARENT); \ + Delete(xx_link, CHILD); \ + Dispose(xx_link); \ +} + + +/*****************************************************************************/ +/* */ +/* DisposeChild(link) */ +/* */ +/* Delete link, and if its child is thereby unattached, dispose it. */ +/* */ +/*****************************************************************************/ + +#define DisposeChild(link) \ +{ xx_link = (link); \ + xx_tmp = Delete(xx_link, PARENT); \ + Delete(xx_link, CHILD); \ + Dispose(xx_link); \ + if( succ(xx_tmp, PARENT) == xx_tmp ) DisposeObject(xx_tmp); \ +} /* end DisposeChild */ + + +/*****************************************************************************/ +/* */ +/* MoveLink(link, x, dir) */ +/* */ +/* Move the dir end of link from wherever it is now to node x. */ +/* */ +/*****************************************************************************/ + +#define MoveLink(link, x, dir) \ +( xx_link = (link), \ + Delete(xx_link, 1 - (dir) ), \ + Append(xx_link, (x), 1 - (dir) ) \ +) /* end MoveLink */ + + +/*@::TransferLinks(), DeleteNode(), etc.@*************************************/ +/* */ +/* TransferLinks(start_link, stop_link, dest_link) */ +/* */ +/* Move parent end of links start_link (inclusive) to stop_link (exclusive) */ +/* to just before dest_link. */ +/* */ +/*****************************************************************************/ + +#define TransferLinks(start_link, stop_link, dest_link) \ +{ OBJECT xxstart = start_link, xxstop = stop_link, xxdest = dest_link; \ + if( xxstart != xxstop ) \ + { assert( type(xxstart) == LINK, "TransferLinks: start_link!" ); \ + Append(xxstart, xxstop, CHILD); /* actually a split */ \ + Append(xxstart, xxdest, CHILD); \ + } \ +} + + +/*****************************************************************************/ +/* */ +/* DeleteNode(x) */ +/* */ +/* Delete node x and every edge attaching to x. */ +/* */ +/*****************************************************************************/ + +#define DeleteNode(x) \ +{ xx_hold = (x); \ + while( Up(xx_hold) != xx_hold ) DeleteLink( Up(xx_hold) ); \ + while( Down(xx_hold) != xx_hold ) DeleteLink( Down(xx_hold) ); \ + Dispose(xx_hold); \ +} + + +/*****************************************************************************/ +/* */ +/* MergeNode(x, y) */ +/* */ +/* Take all the children of y and make them children of x. */ +/* Take all the parents of y and make them parents of x. Dispose y. */ +/* */ +/*****************************************************************************/ + +#define MergeNode(x, y) \ +{ xx_res = (x); xx_hold = (y); \ + xx_tmp = Delete(xx_hold, PARENT); \ + Append(xx_res, xx_tmp, PARENT); \ + xx_tmp = Delete(xx_hold, CHILD); \ + Append(xx_res, xx_tmp, CHILD); \ + Dispose(xx_hold); \ +} /* end MergeNode */ + + +/*****************************************************************************/ +/* */ +/* ReplaceNode(x, y) */ +/* */ +/* Move all the parent links of y to x. */ +/* */ +/*****************************************************************************/ + +#define ReplaceNode(x, y) \ +( xx_tmp = Delete((y), PARENT), \ + Append((x), xx_tmp, PARENT) \ +) /* end ReplaceNode */ + + +/*@::FirstDefinite(), NextDefinite(), etc.@***********************************/ +/* */ +/* FirstDefinite(x, link, y, jn) */ +/* */ +/* On input, x is an object and link and y are undefined. On output there */ +/* are two cases: */ +/* */ +/* link != x. Then y is first definite child of x and link is its link; */ +/* jn is TRUE iff all gaps on the way to link were joined. */ +/* */ +/* link == x. Then x has no definite child and y is undefined. */ +/* */ +/* A SPLIT object is considered to be definite if both its children are */ +/* definite. This condition is returned by SplitIsDefinite. */ +/* */ +/*****************************************************************************/ + +#define FirstDefinite(x, link, y, jn) \ +{ jn = TRUE; \ + for( link = Down(x); link != x; link = NextDown(link) ) \ + { Child(y, link); \ + if( type(y) == GAP_OBJ ) jn = jn && join(gap(y)); \ + else if( type(y)==SPLIT ? SplitIsDefinite(y) : is_definite(type(y)))\ + break; \ + } \ +} /* end FirstDefinite */ + + +/*****************************************************************************/ +/* */ +/* NextDefinite(x, link, y) */ +/* */ +/* On input, x is an object and link is a link to one of its children; y */ +/* is undefined. On output there are two cases: */ +/* */ +/* link != x. Then y is the first definite child of x following link, and */ +/* link is changed to be the link of y. */ +/* */ +/* link == x. Then x has no definite child following link, and y remains */ +/* undefined. */ +/* */ +/*****************************************************************************/ + +#define NextDefinite(x, link, y) \ +{ for( link = NextDown(link); link != x; link = NextDown(link) ) \ + { Child(y, link); \ + if( type(y) == SPLIT ? SplitIsDefinite(y) : is_definite(type(y)) ) \ + break; \ + } \ +} /* end NextDefinite */ + + +/*****************************************************************************/ +/* */ +/* NextDefiniteWithGap(x, link, y, g, jn) */ +/* */ +/* On input, x is an object and link is a link to one of its children; y */ +/* and g are undefined. On output there are two cases: */ +/* */ +/* link != x. Then y is the first definite child of x following link, and */ +/* link is changed to be the link of y. Also, g is defined */ +/* to be the gap just before y; this must exist and is tested */ +/* by an assert test; and jn is true iff all of the gaps on */ +/* the way from old link to new link are join gaps. */ +/* */ +/* link == x. Then x has no definite child following link, and y and g */ +/* remain undefined. */ +/* */ +/*****************************************************************************/ + +#define NextDefiniteWithGap(x, link, y, g, jn) \ +{ g = nilobj; jn = TRUE; \ + for( link = NextDown(link); link != x; link = NextDown(link) ) \ + { Child(y, link); \ + if( type(y) == GAP_OBJ ) g = y, jn = jn && join(gap(y)); \ + else if( type(y)==SPLIT ? SplitIsDefinite(y):is_definite(type(y)) ) \ + { \ + debug2(DFS, D, " NextDefiniteWithGap at %s %s", \ + Image(type(y)), EchoObject(y)); \ + assert( g != nilobj, "NextDefiniteWithGap: g == nilobj!" ); \ + break; \ + } \ + } \ +} /* end NextDefiniteWithGap */ + +/*@@**************************************************************************/ +/* */ +/* LastDefinite(x, link, y) */ +/* */ +/* On input, x is an object and link and y are undefined. On output there */ +/* are two cases: */ +/* */ +/* link != x. Then y is the last definite child of x and link is its link. */ +/* */ +/* link == x. Then x has no definite child and y is undefined. */ +/* */ +/* A SPLIT object is considered to be definite if both its children are */ +/* definite. This condition is returned by SplitIsDefinite. */ +/* */ +/*****************************************************************************/ + +#define LastDefinite(x, link, y) \ +{ for( link = LastDown(x); link != x; link = PrevDown(link) ) \ + { Child(y, link); \ + if( type(y) == SPLIT ? SplitIsDefinite(y) : is_definite(type(y)) ) \ + break; \ + } \ +} /* end LastDefinite */ + + +/*****************************************************************************/ +/* */ +/* PrevDefinite(x, link, y) */ +/* */ +/* On input, x is an object and link is a link to one of its children; y */ +/* is undefined. On output there are two cases: */ +/* */ +/* link != x. Then y is the first definite child of x preceding link, and */ +/* link is changed to be the link of y. */ +/* */ +/* link == x. Then x has no definite child preceding link, and y remains */ +/* undefined. */ +/* */ +/*****************************************************************************/ + +#define PrevDefinite(x, link, y) \ +{ for( link = PrevDown(link); link != x; link = PrevDown(link) ) \ + { Child(y, link); \ + if( type(y) == SPLIT ? SplitIsDefinite(y) : is_definite(type(y)) ) \ + break; \ + } \ +} /* end PrevDefinite */ + + +/*@::Module Declarations@*****************************************************/ +/* */ +/* MODULE DECLARATIONS */ +/* */ +/*****************************************************************************/ + +/***** z01.c Supervise **************************************/ +extern int main(int argc, char *argv[]); +extern POINTER MemCheck; +extern OBJECT StartSym; +extern OBJECT GalleySym; +extern OBJECT ForceGalleySym; +extern OBJECT InputSym; +extern OBJECT PrintSym; +extern OBJECT FilterInSym; +extern OBJECT FilterOutSym; +extern OBJECT FilterErrSym; +extern OBJECT VerbatimSym; +extern OBJECT RawVerbatimSym; +extern OBJECT OptGallSym; +extern BACK_END BackEnd; +extern OBJECT CommandOptions; +extern BOOLEAN AllowCrossDb; +extern BOOLEAN UseCollate; +extern BOOLEAN InMemoryDbIndexes; +extern BOOLEAN Kern; +extern BOOLEAN SafeExecution; +extern BOOLEAN AltErrorFormat; +extern int TotalWordCount; +extern BOOLEAN InitializeAll; +#if LOCALE_ON +extern nl_catd MsgCat; +#endif + +/***** z02.c Lexical Analyser **************************************/ +extern BOOLEAN LexLegalName(FULL_CHAR *str); +extern void LexInit(void); +extern void LexPush(FILE_NUM x, int offs, int ftyp, int lnum, BOOLEAN same); +extern void LexPop(void); +extern long LexNextTokenPos(void); +extern OBJECT LexGetToken(void); +extern OBJECT LexScanVerbatim(FILE *fp, BOOLEAN end_stop, FILE_POS *err_pos, + BOOLEAN lessskip); + +/***** z03.c File Service **************************************/ +extern FILE_POS *no_fpos; +extern void InitFiles(void); +extern void AddToPath(int fpath, OBJECT dirname); +extern FILE_NUM DefineFile(FULL_CHAR *str, FULL_CHAR *suffix, + FILE_POS *xfpos, int ftype, int fpath); +extern FILE_NUM FirstFile(int ftype); +extern FILE_NUM NextFile(FILE_NUM i); +extern FILE_NUM FileNum(FULL_CHAR *str, FULL_CHAR *suffix); +extern FILE_NUM DatabaseFileNum(FILE_POS *xfpos); +extern FULL_CHAR *FileName(FILE_NUM fnum); +extern FULL_CHAR *FullFileName(FILE_NUM fnum); +extern FULL_CHAR *EchoFilePos(FILE_POS *pos); +extern FULL_CHAR *EchoAltFilePos(FILE_POS *pos); +extern FULL_CHAR *EchoFileSource(FILE_NUM fnum); +extern FULL_CHAR *EchoFileLine(FILE_POS *pos); +extern FILE_POS *PosOfFile(FILE_NUM fnum); +extern FILE *OpenFile(FILE_NUM fnum, BOOLEAN check_ld, BOOLEAN check_lt); +extern FILE *OpenIncGraphicFile(FULL_CHAR *str, unsigned char typ, + OBJECT *full_name, FILE_POS *xfpos, BOOLEAN *compressed); +extern void FileSetUpdated(FILE_NUM fnum, int newlines); +extern int FileGetLineCount(FILE_NUM fnum); +extern BOOLEAN FileTestUpdated(FILE_NUM fnum); + +/***** z04.c Token Service **************************************/ +extern OBJECT NewToken(unsigned char xtype, FILE_POS *xfpos, + unsigned char xvspace, unsigned char xhspace, + unsigned char xprec, OBJECT xactual); +extern OBJECT CopyTokenList(OBJECT x, FILE_POS *pos); +extern FULL_CHAR *EchoCatOp(unsigned xtype, BOOLEAN xmark, BOOLEAN xjoin); +extern FULL_CHAR *EchoToken(OBJECT x); + +/***** z05.c Read Definitions **************************************/ +extern void ReadPrependDef(unsigned typ, OBJECT encl); +extern void ReadDatabaseDef(unsigned typ, OBJECT encl); +extern void ReadDefinitions(OBJECT *token, OBJECT encl, + unsigned char res_type); + +/***** z06.c Object Parser **************************************/ +extern void SetScope(OBJECT env, int *count, BOOLEAN vis_only); +extern void InitParser(FULL_CHAR *cross_db); +extern OBJECT Parse(OBJECT *token, OBJECT encl, BOOLEAN defs_allowed, + BOOLEAN transfer_allowed); + +/***** z07.c Object Service **************************************/ +extern BOOLEAN SplitIsDefinite(OBJECT x); +extern int DisposeObject(OBJECT x); +extern OBJECT MakeWord(unsigned typ, FULL_CHAR *str, FILE_POS *pos); +extern OBJECT MakeWordTwo(unsigned typ, FULL_CHAR *str1, FULL_CHAR *str2, + FILE_POS *pos); +extern OBJECT MakeWordThree(FULL_CHAR *s1, FULL_CHAR *s2, FULL_CHAR *s3); +extern OBJECT CopyObject(OBJECT x, FILE_POS *pos); +extern OBJECT InsertObject(OBJECT x, OBJECT *ins, STYLE *style); +extern OBJECT Meld(OBJECT x, OBJECT y); + +/***** z08.c Object Manifest **************************************/ +extern OBJECT ReplaceWithTidy(OBJECT x, BOOLEAN one_word); +extern OBJECT Manifest(OBJECT x, OBJECT env, STYLE *style, OBJECT bthr[2], + OBJECT fthr[2], OBJECT *target, OBJECT *crs, BOOLEAN ok, + BOOLEAN need_expand, OBJECT *enclose, BOOLEAN fcr); + +/***** z09.c Closure Expansion **************************************/ +extern OBJECT SearchEnv(OBJECT env, OBJECT sym); +extern OBJECT SetEnv(OBJECT x, OBJECT y); +extern void AttachEnv(OBJECT env, OBJECT x); +extern OBJECT GetEnv(OBJECT x); +extern OBJECT DetachEnv(OBJECT x); +extern OBJECT ClosureExpand(OBJECT x, OBJECT env, BOOLEAN crs_wanted, + OBJECT *crs, OBJECT *res_env); +extern OBJECT ParameterCheck(OBJECT x, OBJECT env); + +/***** z10.c Cross References **************************************/ +extern void CrossInit(OBJECT sym); +extern OBJECT CrossMake(OBJECT sym, OBJECT val, int ctype); +extern OBJECT GallTargEval(OBJECT sym, FILE_POS *dfpos); +extern void CrossAddTag(OBJECT x); +extern OBJECT CrossExpand(OBJECT x, OBJECT env, STYLE *style, + OBJECT *crs, OBJECT *res_env); +extern void CrossSequence(OBJECT x); +extern void CrossClose(void); + +/***** z11.c Style Service **************************************/ +extern FULL_CHAR *EchoStyle(STYLE *style); +extern void SpaceChange(STYLE *style, OBJECT x); +extern void BreakChange(STYLE *style, OBJECT x); +extern void YUnitChange(STYLE *style, OBJECT x); +extern void ZUnitChange(STYLE *style, OBJECT x); + +/***** z12.c Size Finder **************************************/ +extern void SpannerAvailableSpace(OBJECT y, int dim, FULL_LENGTH *resb, + FULL_LENGTH *resf); +extern OBJECT MinSize(OBJECT x, int dim, OBJECT *extras); + +/***** z13.c Object Breaking **************************************/ +extern OBJECT BreakObject(OBJECT x, CONSTRAINT *c); + +/***** z14.c Object Filling **************************************/ +extern OBJECT FillObject(OBJECT x, CONSTRAINT *c, OBJECT multi, + BOOLEAN can_hyphenate, BOOLEAN allow_shrink, + BOOLEAN extend_unbreakable, BOOLEAN *hyph_used); + +/***** z15.c Size Constraints **************************************/ +extern void MinConstraint(CONSTRAINT *xc, CONSTRAINT *yc); +extern void SetSizeToMaxForwardConstraint(FULL_LENGTH *b, FULL_LENGTH *f, + CONSTRAINT *c); +extern void EnlargeToConstraint(FULL_LENGTH *b, FULL_LENGTH *f, + CONSTRAINT *c); +extern int ScaleToConstraint(FULL_LENGTH b, FULL_LENGTH f, + CONSTRAINT *c); +extern void InvScaleConstraint(CONSTRAINT *yc, FULL_LENGTH sf, + CONSTRAINT*xc); +extern void RotateConstraint(CONSTRAINT *c, OBJECT y, FULL_LENGTH angle, + CONSTRAINT *hc, CONSTRAINT *vc, int dim); +extern BOOLEAN InsertScale(OBJECT x, CONSTRAINT *c); +extern void Constrained(OBJECT x, CONSTRAINT *xc, int dim, OBJECT *why); +extern FULL_CHAR *EchoConstraint(CONSTRAINT *c); +extern void DebugConstrained(OBJECT x); + +/***** z16.c Size Adjustments **************************************/ +extern FULL_LENGTH FindShift(OBJECT x, OBJECT y, int dim); +extern void SetNeighbours(OBJECT link, BOOLEAN ratm, OBJECT *pg, + OBJECT *pdef, OBJECT *sg, OBJECT *sdef, int *side); +extern void AdjustSize(OBJECT x, FULL_LENGTH b, FULL_LENGTH f, int dim); + +/***** z17.c Gap Widths **************************************/ +extern void GetGap(OBJECT x, STYLE *style, GAP *res_gap, + unsigned *res_inc); +extern FULL_LENGTH MinGap(FULL_LENGTH a, FULL_LENGTH b, FULL_LENGTH c, GAP *xgap); +extern FULL_LENGTH ExtraGap(FULL_LENGTH a, FULL_LENGTH b, GAP *xgap, int dir); +extern FULL_LENGTH ActualGap(FULL_LENGTH a, FULL_LENGTH b, FULL_LENGTH c, + GAP *xgap, FULL_LENGTH f, FULL_LENGTH mk); +extern FULL_CHAR *EchoGap(GAP *xgap); + +/***** z18.c Galley Transfer **************************************/ +extern STYLE InitialStyle; +extern OBJECT InitialEnvironment; +extern void TransferInit(OBJECT InitEnv); +extern OBJECT TransferBegin(OBJECT x); +extern void TransferComponent(OBJECT x); +extern void TransferEnd(OBJECT x); +extern void TransferClose(void); + +/***** z19.c Galley Attaching **************************************/ +extern void DetachGalley(OBJECT hd); +extern OBJECT SearchGalley(OBJECT start, OBJECT sym, BOOLEAN forwards, + BOOLEAN subgalleys, BOOLEAN closures, BOOLEAN input); +extern int AttachGalley(OBJECT hd, OBJECT *inners, OBJECT *suspend_pt); + +/***** z20.c Galley Flushing **************************************/ +extern FULL_CHAR *DebugInnersNames(OBJECT inners); +extern void FlushGalley(OBJECT hd); + +/*** z21.c Galley Maker **************************************/ +extern void SizeGalley(OBJECT hd, OBJECT env, BOOLEAN rows, + BOOLEAN joined, BOOLEAN nonblock, BOOLEAN trig, + STYLE *style, CONSTRAINT *c, OBJECT target, + OBJECT *dest_index, OBJECT *recs, OBJECT *inners, + OBJECT enclose); + +/*** z22.c Galley Service **************************************/ +extern void Interpose(OBJECT z, int typ, OBJECT x, OBJECT y); +extern void FlushInners(OBJECT inners, OBJECT hd); +extern void ExpandRecursives(OBJECT recs); +extern void HandleHeader(OBJECT hd, OBJECT header); +extern void Promote(OBJECT hd, OBJECT stop_link, OBJECT dest_index, + BOOLEAN join_after); +extern void KillGalley(OBJECT hd, BOOLEAN optimize); +extern void FreeGalley(OBJECT hd, OBJECT stop_link, OBJECT *inners, + OBJECT relocate_link, OBJECT sym); +extern void SetTarget(OBJECT hd); +extern int CheckComponentOrder(OBJECT preceder, OBJECT follower); + +/***** z23.c Galley Printer **************************************/ +extern OBJECT FixAndPrintObject(OBJECT x, FULL_LENGTH xmk, FULL_LENGTH xb, + FULL_LENGTH xf, int dim, BOOLEAN suppress, FULL_LENGTH pg, + int count, FULL_LENGTH *actual_back, FULL_LENGTH *actual_fwd); + +/***** z24.c Print Service **************************************/ +extern char *EightBitToPrintForm[]; + +/***** z25.c Object Echo **************************************/ +extern FULL_CHAR *EchoObject(OBJECT x); +extern void DebugObject(OBJECT x); +extern FULL_CHAR *EchoIndex(OBJECT index); +extern void DebugGalley(OBJECT hd, OBJECT pinpt, int indent); + +/***** z26.c Echo Service **************************************/ +extern void BeginString(void); +extern void AppendString(FULL_CHAR *str); +extern FULL_CHAR *EndString(void); +extern FULL_CHAR *EchoLength(int len); +extern FULL_CHAR *Image(unsigned int c); +extern void SetLengthDim(int dim); + +/***** z27.c Debug Service **************************************/ +#if DEBUG_ON +extern void DebugInit(FULL_CHAR *str); +extern void Debug(int category, int urgency, char *str, ...); +extern void ProfileOn(char *str); +extern void ProfileOff(char *str); +extern void ProfilePrint(void); +#endif + +/***** z28.c Error Service **************************************/ +extern void ErrorInit(FULL_CHAR *str); +extern BOOLEAN ErrorSeen(void); +extern void EnterErrorBlock(BOOLEAN ok_to_print); +extern void LeaveErrorBlock(BOOLEAN commit); +extern void CheckErrorBlocks(void); +extern POINTER Error(int set_num, int msg_num, char *str, int etype, + FILE_POS *pos, ...); + +/***** z29.c Symbol Table **************************************/ +extern void InitSym(void); +extern void PushScope(OBJECT x, BOOLEAN npars, BOOLEAN vis); +extern void PopScope(void); +extern void SuppressVisible(void); +extern void UnSuppressVisible(void); +extern void SuppressScope(void); +extern void UnSuppressScope(void); +extern void SwitchScope(OBJECT sym); +extern void UnSwitchScope(OBJECT sym); +extern void BodyParAllowed(void); +extern void BodyParNotAllowed(void); +extern OBJECT GetScopeSnapshot(void); +extern void LoadScopeSnapshot(OBJECT ss); +extern void ClearScopeSnapshot(OBJECT ss); +extern OBJECT InsertSym(FULL_CHAR *str, unsigned char xtype, + FILE_POS *xfpos, unsigned char xprecedence, + BOOLEAN xindefinite, BOOLEAN xrecursive, + unsigned xpredefined, OBJECT xenclosing, OBJECT xbody); +extern void InsertAlternativeName(FULL_CHAR *str, OBJECT s, + FILE_POS *xfpos); +extern OBJECT SearchSym(FULL_CHAR *str, int len); +extern FULL_CHAR *SymName(OBJECT s); +extern FULL_CHAR *FullSymName(OBJECT x, FULL_CHAR *str); +extern OBJECT ChildSym(OBJECT s, unsigned typ); +extern OBJECT ChildSymWithCode(OBJECT s, unsigned char code); +extern void CheckSymSpread(void); +extern void DeleteEverySym(void); +extern void DebugScope(void); + +/***** z30.c Symbol Uses **************************************/ +extern void InsertUses(OBJECT x, OBJECT y); +extern void FlattenUses(void); +extern BOOLEAN SearchUses(OBJECT x, OBJECT y); +extern OBJECT FirstExternTarget(OBJECT sym, OBJECT *cont); +extern OBJECT NextExternTarget(OBJECT sym, OBJECT *cont); + +/***** z31.c Memory Allocator **************************************/ +extern void DebugRegisterUsage(int typ, int delta_num, int delta_size); +extern void DebugMemory(void); +extern void MemInit(void); +extern OBJECT GetMemory(int siz, FILE_POS *pos); +extern OBJECT zz_free[]; +extern unsigned char zz_lengths[]; +extern int zz_newcount; +extern int zz_disposecount; +extern int zz_listcount; +extern OBJECT zz_hold; +extern OBJECT zz_tmp; +extern OBJECT zz_res; +extern int zz_size; +extern OBJECT xx_link, xx_tmp; +extern OBJECT xx_hold, xx_res; + +/***** z32.c Counter Service **********************************/ +extern OBJECT Next(OBJECT x, int inc, BOOLEAN *done); + +/***** z33.c Database Service **************************************/ +extern OBJECT OldCrossDb; +extern OBJECT NewCrossDb; +extern OBJECT DbCreate(OBJECT x); +extern void DbInsert(OBJECT db, BOOLEAN gall, OBJECT sym, FULL_CHAR *tag, + FILE_POS *tagfpos, FULL_CHAR *seq, FILE_NUM dfnum, + long dfpos, int dlnum, BOOLEAN check); +extern void DbConvert(OBJECT db, BOOLEAN full_name); +extern void DbClose(OBJECT db); +extern OBJECT DbLoad(OBJECT stem, int fpath, BOOLEAN create, OBJECT symbs, + BOOLEAN in_memory); +extern BOOLEAN DbRetrieve(OBJECT db, BOOLEAN gall, OBJECT sym, + FULL_CHAR *tag, FULL_CHAR *seq, FILE_NUM *dfnum, + long *dfpos, int *dlnum, long *cont); +extern BOOLEAN DbRetrieveNext(OBJECT db, BOOLEAN *gall, OBJECT *sym, + FULL_CHAR *tag, FULL_CHAR *seq, FILE_NUM *dfnum, + long *dfpos, int *dlnum, long *cont); + +/***** z34.c Rotation Service **************************************/ +extern void RotateSize(FULL_LENGTH *xcb, FULL_LENGTH *xcf, + FULL_LENGTH *xrb, FULL_LENGTH *xrf, OBJECT y, + FULL_LENGTH theta); + +/***** z35.c Time Keeper **************************************/ +extern FULL_CHAR *TimeString(void); +extern void InitTime(void); +extern OBJECT MomentSym; +extern OBJECT StartMoment(void); + +/***** z36.c Hyphenation **************************************/ +extern BOOLEAN ReadHyphTable(LANGUAGE_NUM lnum); +extern OBJECT Hyphenate(OBJECT x); + +/***** z37.c Font Service *************************************/ +extern FONT_INFO *finfo; +extern int font_curr_page; +extern void FontInit(void); +extern void FontChange(STYLE *style, OBJECT x); +extern void FontWordSize(OBJECT x); +extern FULL_LENGTH FontSize(FONT_NUM fnum, OBJECT x); +extern FULL_LENGTH FontHalfXHeight(FONT_NUM fnum); +extern MAPPING FontMapping(FONT_NUM fnum, FILE_POS *xfpos); +extern FULL_CHAR *FontName(FONT_NUM fnum); +extern FULL_CHAR *FontFamily(FONT_NUM fnum); +extern FULL_CHAR *FontFace(FONT_NUM fnum); +extern FULL_CHAR *FontFamilyAndFace(FONT_NUM fnum); +extern void FontPrintAll(FILE *fp); +extern void FontPrintPageSetup(FILE *fp); +extern void FontPrintPageResources(FILE *fp); +extern void FontAdvanceCurrentPage(void); +extern void FontPageUsed(OBJECT face); +extern BOOLEAN FontNeeded(FILE *fp); + +/***** z38.c Character Mappings **************************************/ +extern MAP_VEC MapTable[]; +extern MAPPING MapLoad(OBJECT filename, BOOLEAN recoded); +extern FULL_CHAR MapCharEncoding(FULL_CHAR *str, MAPPING m); +extern FULL_CHAR *MapEncodingName(MAPPING m); +extern void MapPrintEncodings(); +extern void MapEnsurePrinted(MAPPING m, int curr_page); +extern void MapPrintPSResources(FILE *fp); +extern OBJECT MapSmallCaps(OBJECT x, STYLE *style); +extern BOOLEAN MapIsLowerCase(FULL_CHAR ch, MAPPING m); + + +/***** z39.c String Handler **************************************/ +#define AsciiToFull(x) ( (FULL_CHAR *) (x) ) +#define StringEqual(a, b) (strcmp((char *)(a), (char *)(b))==0) +extern int strcollcmp(char *a, char *b); +#define TabbedStringLessEqual(a, b) \ + ( UseCollate ? strcollcmp((char *)(a),(char *)(b)) <= 0 \ + : strcmp((char *)(a),(char *)(b)) <= 0 ) +#define StringCat(a, b) strcat((char *)(a),(char *)(b)) +#define StringCopy(a, b) strcpy((char *)(a),(char *)(b)) +#define StringLength(a) strlen((char *)(a)) +#define StringFOpen(a, b) fopen( (char *) (a), (b) ) +#define StringFPuts(a, b) fputs( (char *) (a), (b) ) +#define StringFGets(a, b, c) fgets( (char *) (a), (b), (c) ) +#define StringRemove(a) remove((char *)(a)) +#define StringRename(a, b) rename((char *)(a),(char *)(b)) +extern BOOLEAN StringBeginsWith(FULL_CHAR *str, FULL_CHAR *pattern); +extern BOOLEAN StringEndsWith(FULL_CHAR *str, FULL_CHAR *pattern); +extern BOOLEAN StringContains(FULL_CHAR *str, FULL_CHAR *pattern); +extern FULL_CHAR *StringInt(int i); +extern FULL_CHAR *StringFiveInt(int i); +extern FULL_CHAR *StringQuotedWord(OBJECT x); + +/***** z40.c Filter Handler **************************************/ +extern void FilterInit(void); +extern OBJECT FilterCreate(BOOLEAN use_begin, OBJECT act, FILE_POS *xfpos); +extern void FilterSetFileNames(OBJECT x); +extern OBJECT FilterExecute(OBJECT x, FULL_CHAR *command, OBJECT env); +extern void FilterWrite(OBJECT x, FILE *fp, int *linecount); +extern void FilterScavenge(BOOLEAN all); + +/***** z41.c Object Input-Output **************************************/ +extern OBJECT ReadFromFile(FILE_NUM fnum, long pos, int lnum); +extern void AppendToFile(OBJECT x, FILE_NUM fnum, int *pos, int *lnum); +extern void CloseFiles(void); + +/***** z42.c Colour Service **************************************/ +extern void ColourInit(void); +extern void ColourChange(STYLE *style, OBJECT x); +extern FULL_CHAR *ColourCommand(COLOUR_NUM cnum); + +/***** z43.c Language Service **************************************/ +extern void LanguageInit(void); +extern BOOLEAN LanguageWordEndsSentence(OBJECT wd, BOOLEAN lc_prec); +extern void LanguageDefine(OBJECT names, OBJECT hyph_file); +extern void LanguageChange(STYLE *style, OBJECT x); +extern FULL_CHAR *LanguageString(LANGUAGE_NUM lnum); +extern OBJECT LanguageHyph(LANGUAGE_NUM lnum); +extern BOOLEAN LanguageSentenceEnds[]; + +/***** z44.c Vertical Hyphenation **************************************/ +extern BOOLEAN VerticalHyphenate(OBJECT y); +extern OBJECT ConvertGalleyList(OBJECT x); +extern OBJECT BuildEnclose(OBJECT hd); + +/***** z45.c External Sort **************************************/ +extern LINE *ReadLines(FILE *fp, FULL_CHAR *fname, FULL_CHAR *first_line, int *len); +extern void WriteLines(FILE *fp, LINE *lines, int len); +extern void SortLines(LINE *lines, int lines_len); +extern void SortFile(FULL_CHAR *infile, FULL_CHAR *outfile); + +/***** z46.c Optimal Galleys **************************************/ +extern BOOLEAN FindOptimize(OBJECT x, OBJECT env); +extern void SetOptimize(OBJECT hd, STYLE *style); +extern void GazumpOptimize(OBJECT hd, OBJECT dest); +extern void CalculateOptimize(OBJECT hd); +extern void DebugOptimize(OBJECT hd); + +/***** z47.c Environment Table **************************************/ +extern void EnvInit(void); +extern BOOLEAN EnvWriteRetrieve(OBJECT env, FILE_NUM fnum, int *offset, + int *lnum); +extern void EnvWriteInsert(OBJECT env, FILE_NUM fnum, int offset,int lnum); +extern BOOLEAN EnvReadRetrieve(FILE_NUM fnum, int offset, OBJECT *env); +extern void EnvReadInsert(FILE_NUM fnum, int offset, OBJECT env); +extern void EnvDebug(void); + +/***** z48.c PDF back end (old) **************************************/ +extern void PDFFile_Init(FILE* in_fp, int in_h_bound, int in_v_bound, + int in_IN, int in_CM, int in_PT, int in_EM); +extern void PDFFile_BeginFontEncoding(FILE* in_fp, + const char* in_encoding_name); +extern void PDFFile_EndFontEncoding(FILE* in_fp); +extern void PDFFile_Cleanup(FILE* in_fp); +extern void PDFPage_Init(FILE* in_fp, float in_scale_factor, + int in_line_width); +extern void PDFPage_Cleanup(FILE* in_fp); +extern void PDFPage_Write(FILE* in_fp, char* in_str); +extern void PDFPage_Push(FILE* in_fp); +extern void PDFPage_Pop(FILE* in_fp); +extern void PDFPage_Scale(FILE* in_fp, float in_h_scale_factor, + float in_v_scale_factor); +extern void PDFPage_Translate(FILE* in_fp, float in_delta_h, + float in_delta_v); +extern void PDFPage_Rotate(FILE* in_fp, float in_angle_in_radians); +extern void PDFPage_SetVars(int xsize, int ysize, int xmark, int ymark, + int loutf, int loutv, int louts); +extern void PDFPage_WriteGraphic(FILE* in_fp, FULL_CHAR* in_str); +extern void PDFPage_PrintUnderline(FILE* in_fp, int in_x1, int in_x2, + int in_y, int in_thickness); + +extern void PDFFont_AddFont( + FILE* in_fp, + const FULL_CHAR* in_short_font_name, + const FULL_CHAR* in_real_font_name, + const FULL_CHAR* in_font_encoding_name); +extern void PDFFont_Set(FILE* in_fp, FULL_LENGTH in_font_size, + FULL_CHAR * in_short_font_name); +extern void PDFText_OpenXY(FILE* in_fp, int hpos, int vpos); +extern void PDFText_OpenX(FILE* in_fp, int hpos); +extern void PDFText_Open(FILE* in_fp); +extern void PDFText_Kern(FILE* in_fp, int in_kern); +extern void PDFText_Close(FILE* in_fp); +extern BOOLEAN PDFHasValidTextMatrix(void); + +/***** z49.c PostScript back end **************************************/ +extern BOOLEAN Encapsulated; /* TRUE if EPS file is wanted */ +extern BACK_END PS_BackEnd; /* PostScript back end record */ + +/***** z50.c PDF back end (new) **************************************/ +extern BACK_END PDF_BackEnd; /* PDF back end record */ + +/***** z51.c Plain text back end **************************************/ +extern BACK_END Plain_BackEnd; /* Plain Text back end record */ +extern FULL_LENGTH PlainCharWidth; /* character width */ +extern FULL_LENGTH PlainCharHeight; /* character height */ +extern BOOLEAN PlainFormFeed; /* true if using \f */ + +/*@::assert(), debug(), debug flags@******************************************/ +/* */ +/* ASSERT AND DEBUG CODE */ +/* */ +/*****************************************************************************/ + +#if ASSERT_ON +#define assert(c, m) \ + { if( !(c) ) Error(1, 2, "assert failed in %s", INTERN, no_fpos, m); } +#define assert1(c, m, p1) \ + { if( !(c) ) Error(1, 3, "assert failed in %s %s", INTERN,no_fpos,m, p1); } +#else +#define assert(c, m) +#define assert1(c, m, p1) +#endif + +#if DEBUG_ON + +struct dbs +{ char *flag; /* external names for debug flags */ + BOOLEAN on[3]; /* the debug flags */ +}; +extern struct dbs dbg[]; + +/* debug routines */ +#define debug0(cat, urg, str) \ + { if( dbg[cat].on[urg] ) Debug(cat, urg, str); } +#define debug1(cat, urg, str, p1) \ + { if( dbg[cat].on[urg] ) Debug(cat, urg, str, p1); } +#define debug2(cat, urg, str, p1, p2) \ + { if( dbg[cat].on[urg] ) Debug(cat, urg, str, p1, p2); } +#define debug3(cat, urg, str, p1, p2, p3) \ + { if( dbg[cat].on[urg] ) Debug(cat, urg, str, p1, p2, p3); } +#define debug4(cat, urg, str, p1, p2, p3, p4) \ + { if( dbg[cat].on[urg] ) Debug(cat, urg, str, p1, p2, p3, p4); } +#define debug5(cat, urg, str, p1, p2, p3, p4, p5) \ + { if( dbg[cat].on[urg] ) Debug(cat, urg, str, p1, p2, p3, p4, p5); } +#define debug6(cat, urg, str, p1, p2, p3, p4, p5, p6) \ + { if( dbg[cat].on[urg] ) Debug(cat, urg, str, p1, p2, p3, p4, p5, p6); } +#define debug7(cat, urg, str, p1, p2, p3, p4, p5, p6, p7) \ + { if( dbg[cat].on[urg] ) Debug(cat, urg, str, p1, p2, p3, p4, p5,p6,p7); } +#define debug8(cat, urg, str, p1, p2, p3, p4, p5, p6, p7, p8) \ + { if( dbg[cat].on[urg] ) Debug(cat, urg, str, p1, p2,p3,p4,p5,p6,p7,p8); } +#define ifdebug(cat, urg, x) \ + { if( dbg[cat].on[urg] ) { x; } } + +#define debugcond0(cat, urg, cond, str) \ + { if( dbg[cat].on[urg] && cond ) Debug(cat, urg, str); } +#define debugcond1(cat, urg, cond, str, p1) \ + { if( dbg[cat].on[urg] && cond ) Debug(cat, urg, str, p1); } +#define debugcond2(cat, urg, cond, str, p1, p2) \ + { if( dbg[cat].on[urg] && cond ) Debug(cat, urg, str, p1, p2); } +#define debugcond3(cat, urg, cond, str, p1, p2, p3) \ + { if( dbg[cat].on[urg] && cond ) Debug(cat, urg, str, p1, p2, p3); } +#define debugcond4(cat, urg, cond, str, p1, p2, p3, p4) \ + { if( dbg[cat].on[urg] && cond ) Debug(cat, urg, str, p1, p2, p3, p4); } +#define debugcond5(cat, urg, cond, str, p1, p2, p3, p4, p5) \ + { if( dbg[cat].on[urg] && cond ) Debug(cat, urg, str, p1, p2, p3, p4, p5);} +#define debugcond6(cat, urg, cond, str, p1, p2, p3, p4, p5, p6) \ + { if( dbg[cat].on[urg] && cond ) Debug(cat, urg, str, p1, p2,p3,p4,p5,p6);} +#define ifdebugcond(cat, urg, cond, x) \ + { if( dbg[cat].on[urg] && cond ) { x; } } +#define debug_init(str) \ + DebugInit(str) + +/* debug styles */ +#define D 0 +#define DD 1 +#define DDD 2 + +/* debug flags */ +#define DSP 1 /* z01.c -dsp Supervise */ +#define DLA 2 /* z02.c -dla Lexical Analyser */ +#define DFS 3 /* z03.c -dfs File Service */ +#define DTS 4 /* z04.c -dts Token Service */ +#define DRD 5 /* z05.c -drd Read Definitions */ +#define DOP 6 /* z06.c -dop Object Parser */ +#define DOS 7 /* z07.c -dos Object Service */ +#define DOM 8 /* z08.c -dom Object Manifest */ +#define DCE 9 /* z09.c -dce Closure Expansion */ +#define DCR 10 /* z10.c -dcr Cross References */ +#define DSS 11 /* z11.c -dss Style Service */ +#define DSF 12 /* z12.c -dsf Size Finder */ +#define DOB 13 /* z13.c -dob Object Breaking */ +#define DOF 14 /* z14.c -dof Object Filling */ +#define DSC 15 /* z15.c -dsc Size Constraints */ +#define DSA 16 /* z16.c -dsa Size Adjustments */ +#define DGW 17 /* z17.c -dgw Gap Widths */ +#define DGT 18 /* z18.c -dgt Galley Transfer */ +#define DGA 19 /* z19.c -dgf Galley Attaching */ +#define DGF 20 /* z20.c -dgf Galley Flushing */ +#define DGM 21 /* z21.c -dgm Galley Maker */ +#define DGS 22 /* z22.c -dgs Galley Service */ +#define DGP 23 /* z23.c -dgp Galley Printer */ +#define DPS 24 /* z24.c -dps Print Service */ +#define DOE 25 /* z25.c -doe Object Echo */ +#define DES 26 /* z26.c -des Echo Service */ +#define DZZ 27 /* z27.c -dzz Debug Service */ +#define DYY 28 /* z28.c -dyy Error Service */ +#define DST 29 /* z29.c -dst Symbol Table */ +#define DSU 30 /* z30.c -dsu Symbol Uses */ +#define DMA 31 /* z31.c -dma Memory Allocator */ +#define DCS 32 /* z32.c -dcs Counter Service */ +#define DBS 33 /* z33.c -dbs Database Service */ +#define DRS 34 /* z34.c -drs Rotation Service */ +#define DTK 35 /* z35.c -dtk Time Keeper */ +#define DHY 36 /* z36.c -dhy Hyphenation */ +#define DFT 37 /* z37.c -dft Font Service */ +#define DCM 38 /* z38.c -dcm Character Mapping */ +#define DSH 39 /* z39.c -dsh String Handler */ +#define DFH 40 /* z40.c -dsh Filter Handler */ +#define DIO 41 /* z41.c -dio Object Input-Output */ +#define DCO 42 /* z42.c -dco Colour Service */ +#define DLS 43 /* z43.c -dls Language Service */ +#define DVH 44 /* z44.c -dvh Vertical Hyphenation */ +#define DEX 45 /* z45.c -dex External Sort */ +#define DOG 46 /* z46.c -dex Optimal Galleys */ +#define DET 47 /* z47.c -det Environment Table */ +#define DPD 48 /* z48.c -dpd PDF Back End (old) */ +#define DPO 49 /* z49.c -dpo PostScript Back End */ +#define DPF 50 /* z50.c -dpf PDF Back End */ +#define DPT 51 /* z51.c -dpt Plain Text Back End */ +#define DPP 52 /* -dpp Profiling */ +#define ANY 53 /* -d any */ + +#else +#define ifdebug(cat, urg, x) +#define debug0(cat, urg, str) +#define debug1(cat, urg, str, p1) +#define debug2(cat, urg, str, p1, p2) +#define debug3(cat, urg, str, p1, p2, p3) +#define debug4(cat, urg, str, p1, p2, p3, p4) +#define debug5(cat, urg, str, p1, p2, p3, p4, p5) +#define debug6(cat, urg, str, p1, p2, p3, p4, p5, p6) +#define debug7(cat, urg, str, p1, p2, p3, p4, p5, p6, p7) +#define debug8(cat, urg, str, p1, p2, p3, p4, p5, p6, p7, p8) + +#define debugcond0(cat, urg, cond, str) +#define debugcond1(cat, urg, cond, str, p1) +#define debugcond2(cat, urg, cond, str, p1, p2) +#define debugcond3(cat, urg, cond, str, p1, p2, p3) +#define debugcond4(cat, urg, cond, str, p1, p2, p3, p4) +#define debugcond5(cat, urg, cond, str, p1, p2, p3, p4, p5) +#define debugcond6(cat, urg, cond, str, p1, p2, p3, p4, p5, p6) +#define ifdebugcond(cat, urg, cond, x) +#define debug_init(str) Error(1, 4, "%s - debug flags not implemented", \ + FATAL, no_fpos, str) +#endif diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/00README b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/00README new file mode 100755 index 0000000000000..6b639f7b0b8b2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/00README @@ -0,0 +1,25 @@ +Directory lout/font - font metrics files + +This directory contains Adobe Systems font metrics (formerly .AFM) +files for all the fonts mentioned in file lout/include/fontdefs. These +files are the source of Lout's information about the height and width +of all characters. The files are exactly as distributed publicly by +Adobe Systems except that erroneous ligature information has been +removed from the four Courier font files. + +In addition, for every Adobe Systems font file, (call it FF) there is +a companion file FF+ containing supplementary character definitions and +composite character definitions sufficient to support Latin2 without any +need to obtain Latin2 fonts. These files follow a format established +by Version 3.21 of Lout, and were supplied by Jaroslav Serdula. + +Lout is informed of the existence of these files by means of a database +of @FontDef symbols. Two such are supplied with Lout, in directory +$(LOUTLIB)/data: fontdefs.ld and latin2.ld. + +All file names were previously reduced to a maximum of 8 characters, +for portability to the DOS operating system. Now some of the FF+ +files have nine characters again. Let me know if this is a problem. + +Jeffrey H. Kingston +10 May 2000 diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Bd b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Bd new file mode 100755 index 0000000000000..f0753fb7e2e17 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Bd @@ -0,0 +1,571 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1991 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Mon Mar 4 13:54:47 1991 +Comment UniqueID 34376 +Comment VMusage 26102 32994 +FontName AvantGarde-Bold +FullName ITC Avant Garde Gothic Bold +FamilyName ITC Avant Garde Gothic +Weight Bold +ItalicAngle 0 +IsFixedPitch false +FontBBox -118 -271 1222 1017 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1991 Adobe Systems Incorporated. All Rights Reserved.ITC Avant Garde Gothic is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 740 +XHeight 555 +Ascender 740 +Descender -185 +StartCharMetrics 228 +C 32 ; WX 309 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 81 0 252 740 ; +C 34 ; WX 463 ; N quotedbl ; B 34 443 429 740 ; +C 35 ; WX 618 ; N numbersign ; B 31 45 588 672 ; +C 36 ; WX 618 ; N dollar ; B 80 -76 538 811 ; +C 37 ; WX 858 ; N percent ; B 36 -15 822 755 ; +C 38 ; WX 758 ; N ampersand ; B 49 -15 729 754 ; +C 39 ; WX 314 ; N quoteright ; B 70 409 244 740 ; +C 40 ; WX 473 ; N parenleft ; B 65 -264 430 754 ; +C 41 ; WX 473 ; N parenright ; B 43 -264 408 754 ; +C 42 ; WX 670 ; N asterisk ; B 115 318 555 740 ; +C 43 ; WX 600 ; N plus ; B 48 0 552 506 ; +C 44 ; WX 314 ; N comma ; B 71 -161 244 170 ; +C 45 ; WX 281 ; N hyphen ; B 0 207 281 370 ; +C 46 ; WX 314 ; N period ; B 71 0 244 170 ; +C 47 ; WX 593 ; N slash ; B 72 -100 521 740 ; +C 48 ; WX 618 ; N zero ; B 33 -14 585 754 ; +C 49 ; WX 618 ; N one ; B 104 0 414 740 ; +C 50 ; WX 618 ; N two ; B 44 0 573 754 ; +C 51 ; WX 618 ; N three ; B 33 -14 579 754 ; +C 52 ; WX 618 ; N four ; B 15 0 604 740 ; +C 53 ; WX 618 ; N five ; B 26 -15 592 740 ; +C 54 ; WX 618 ; N six ; B 21 -14 600 740 ; +C 55 ; WX 618 ; N seven ; B 65 0 547 740 ; +C 56 ; WX 618 ; N eight ; B 39 -14 579 754 ; +C 57 ; WX 618 ; N nine ; B 20 0 602 754 ; +C 58 ; WX 314 ; N colon ; B 71 0 244 555 ; +C 59 ; WX 314 ; N semicolon ; B 71 -161 244 555 ; +C 60 ; WX 600 ; N less ; B 46 -38 554 544 ; +C 61 ; WX 600 ; N equal ; B 48 41 552 465 ; +C 62 ; WX 600 ; N greater ; B 46 -38 554 544 ; +C 63 ; WX 592 ; N question ; B 48 0 551 754 ; +C 64 ; WX 748 ; N at ; B -3 -16 743 756 ; +C 65 ; WX 758 ; N A ; B 9 0 749 740 ; +C 66 ; WX 647 ; N B ; B 67 0 612 740 ; +C 67 ; WX 832 ; N C ; B 37 -14 801 754 ; +C 68 ; WX 742 ; N D ; B 57 0 697 740 ; +C 69 ; WX 528 ; N E ; B 67 0 478 740 ; +C 70 ; WX 506 ; N F ; B 67 0 471 740 ; +C 71 ; WX 854 ; N G ; B 35 -15 823 754 ; +C 72 ; WX 754 ; N H ; B 67 0 687 740 ; +C 73 ; WX 323 ; N I ; B 67 0 256 740 ; +C 74 ; WX 578 ; N J ; B 6 -14 510 740 ; +C 75 ; WX 707 ; N K ; B 87 0 701 740 ; +C 76 ; WX 487 ; N L ; B 72 0 480 740 ; +C 77 ; WX 915 ; N M ; B 67 0 848 740 ; +C 78 ; WX 759 ; N N ; B 67 0 691 740 ; +C 79 ; WX 851 ; N O ; B 35 -14 816 754 ; +C 80 ; WX 636 ; N P ; B 67 0 624 740 ; +C 81 ; WX 866 ; N Q ; B 35 -15 855 754 ; +C 82 ; WX 653 ; N R ; B 67 0 637 740 ; +C 83 ; WX 573 ; N S ; B 25 -14 550 754 ; +C 84 ; WX 499 ; N T ; B 10 0 490 740 ; +C 85 ; WX 698 ; N U ; B 65 -14 633 740 ; +C 86 ; WX 722 ; N V ; B 16 0 706 740 ; +C 87 ; WX 981 ; N W ; B 16 0 964 740 ; +C 88 ; WX 759 ; N X ; B 11 0 748 740 ; +C 89 ; WX 647 ; N Y ; B 9 0 638 740 ; +C 90 ; WX 499 ; N Z ; B 16 0 483 740 ; +C 91 ; WX 473 ; N bracketleft ; B 104 -264 401 754 ; +C 92 ; WX 593 ; N backslash ; B 72 -100 521 740 ; +C 93 ; WX 473 ; N bracketright ; B 72 -264 369 754 ; +C 94 ; WX 600 ; N asciicircum ; B 43 375 557 740 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 314 ; N quoteleft ; B 70 409 244 740 ; +C 97 ; WX 704 ; N a ; B 34 -19 643 574 ; +C 98 ; WX 693 ; N b ; B 60 -19 660 740 ; +C 99 ; WX 652 ; N c ; B 33 -18 621 574 ; +C 100 ; WX 698 ; N d ; B 34 -18 638 740 ; +C 101 ; WX 646 ; N e ; B 30 -18 614 574 ; +C 102 ; WX 314 ; N f ; B 4 0 302 754 ; L i fi ; L l fl ; +C 103 ; WX 693 ; N g ; B 34 -247 635 573 ; +C 104 ; WX 632 ; N h ; B 60 0 574 740 ; +C 105 ; WX 286 ; N i ; B 60 0 226 740 ; +C 106 ; WX 321 ; N j ; B 6 -204 253 740 ; +C 107 ; WX 591 ; N k ; B 66 0 585 740 ; +C 108 ; WX 286 ; N l ; B 60 0 226 740 ; +C 109 ; WX 969 ; N m ; B 60 0 912 574 ; +C 110 ; WX 632 ; N n ; B 60 0 574 574 ; +C 111 ; WX 666 ; N o ; B 34 -17 632 573 ; +C 112 ; WX 697 ; N p ; B 60 -185 663 574 ; +C 113 ; WX 698 ; N q ; B 34 -185 638 574 ; +C 114 ; WX 363 ; N r ; B 59 0 356 574 ; +C 115 ; WX 499 ; N s ; B 24 -19 476 574 ; +C 116 ; WX 351 ; N t ; B 11 0 339 740 ; +C 117 ; WX 634 ; N u ; B 58 -18 574 555 ; +C 118 ; WX 592 ; N v ; B 17 0 575 555 ; +C 119 ; WX 850 ; N w ; B 7 0 843 555 ; +C 120 ; WX 630 ; N x ; B 1 0 628 555 ; +C 121 ; WX 574 ; N y ; B 1 -185 573 555 ; +C 122 ; WX 444 ; N z ; B 15 0 428 555 ; +C 123 ; WX 554 ; N braceleft ; B 105 -264 483 740 ; +C 124 ; WX 555 ; N bar ; B 186 -100 369 740 ; +C 125 ; WX 554 ; N braceright ; B 71 -264 449 740 ; +C 126 ; WX 600 ; N asciitilde ; B 67 130 533 377 ; +C 161 ; WX 333 ; N exclamdown ; B 81 -185 252 555 ; +C 162 ; WX 618 ; N cent ; B 62 31 556 720 ; +C 163 ; WX 618 ; N sterling ; B 14 0 618 755 ; +C 164 ; WX 211 ; N fraction ; B -118 0 329 740 ; +C 165 ; WX 618 ; N yen ; B 1 0 618 740 ; +C 166 ; WX 618 ; N florin ; B 25 -152 547 818 ; +C 167 ; WX 670 ; N section ; B 40 -271 630 754 ; +C 168 ; WX 618 ; N currency ; B 0 38 618 651 ; +C 169 ; WX 242 ; N quotesingle ; B 34 443 208 740 ; +C 170 ; WX 555 ; N quotedblleft ; B 67 409 488 740 ; +C 171 ; WX 422 ; N guillemotleft ; B 47 103 375 474 ; +C 172 ; WX 222 ; N guilsinglleft ; B 47 103 175 474 ; +C 173 ; WX 222 ; N guilsinglright ; B 47 103 175 474 ; +C 174 ; WX 601 ; N fi ; B 4 0 541 754 ; +C 175 ; WX 601 ; N fl ; B 4 0 541 754 ; +C 177 ; WX 500 ; N endash ; B 35 207 465 370 ; +C 178 ; WX 670 ; N dagger ; B 98 -244 572 740 ; +C 179 ; WX 670 ; N daggerdbl ; B 98 -244 572 740 ; +C 180 ; WX 314 ; N periodcentered ; B 71 168 244 338 ; +C 182 ; WX 701 ; N paragraph ; B -7 -103 607 740 ; +C 183 ; WX 739 ; N bullet ; B 217 222 522 532 ; +C 184 ; WX 314 ; N quotesinglbase ; B 70 -161 244 170 ; +C 185 ; WX 555 ; N quotedblbase ; B 67 -161 488 170 ; +C 186 ; WX 555 ; N quotedblright ; B 67 409 488 740 ; +C 187 ; WX 422 ; N guillemotright ; B 47 103 375 474 ; +C 188 ; WX 1000 ; N ellipsis ; B 81 0 920 170 ; +C 189 ; WX 1258 ; N perthousand ; B 36 -15 1222 755 ; +C 191 ; WX 592 ; N questiondown ; B 41 -200 543 555 ; +C 193 ; WX 555 ; N grave ; B 111 614 404 839 ; +C 194 ; WX 555 ; N acute ; B 151 621 444 848 ; +C 195 ; WX 555 ; N circumflex ; B 70 640 484 806 ; +C 196 ; WX 555 ; N tilde ; B 75 651 480 781 ; +C 197 ; WX 555 ; N macron ; B 98 658 457 784 ; +C 198 ; WX 555 ; N breve ; B 71 644 483 788 ; +C 199 ; WX 555 ; N dotaccent ; B 198 644 357 795 ; +C 200 ; WX 555 ; N dieresis ; B 81 644 473 795 ; +C 202 ; WX 555 ; N ring ; B 151 600 403 852 ; +C 203 ; WX 555 ; N cedilla ; B 167 -245 388 0 ; +C 205 ; WX 555 ; N hungarumlaut ; B 102 600 493 832 ; +C 206 ; WX 555 ; N ogonek ; B 175 -206 380 0 ; +C 207 ; WX 555 ; N caron ; B 70 633 484 799 ; +C 208 ; WX 1000 ; N emdash ; B 35 207 965 370 ; +C 225 ; WX 975 ; N AE ; B -10 0 925 740 ; +C 227 ; WX 385 ; N ordfeminine ; B 19 448 333 754 ; +C 232 ; WX 487 ; N Lslash ; B 7 0 480 740 ; +C 233 ; WX 851 ; N Oslash ; B 35 -63 816 806 ; +C 234 ; WX 1085 ; N OE ; B 35 -14 1035 754 ; +C 235 ; WX 385 ; N ordmasculine ; B 37 448 347 754 ; +C 241 ; WX 1091 ; N ae ; B 34 -18 1059 574 ; +C 245 ; WX 286 ; N dotlessi ; B 60 0 226 555 ; +C 248 ; WX 342 ; N lslash ; B 25 0 317 740 ; +C 249 ; WX 666 ; N oslash ; B 34 -83 632 633 ; +C 250 ; WX 1076 ; N oe ; B 34 -19 1045 574 ; +C 251 ; WX 694 ; N germandbls ; B 58 -18 660 759 ; +C -1 ; WX 646 ; N ecircumflex ; B 30 -18 614 806 ; +C -1 ; WX 646 ; N edieresis ; B 30 -18 614 795 ; +C -1 ; WX 704 ; N aacute ; B 34 -19 643 848 ; +C -1 ; WX 800 ; N registered ; B 18 -14 783 754 ; +C -1 ; WX 286 ; N icircumflex ; B -64 0 350 806 ; +C -1 ; WX 634 ; N udieresis ; B 58 -18 574 795 ; +C -1 ; WX 666 ; N ograve ; B 34 -17 632 839 ; +C -1 ; WX 634 ; N uacute ; B 58 -18 574 848 ; +C -1 ; WX 634 ; N ucircumflex ; B 58 -18 574 806 ; +C -1 ; WX 758 ; N Aacute ; B 9 0 749 993 ; +C -1 ; WX 286 ; N igrave ; B -48 0 245 839 ; +C -1 ; WX 323 ; N Icircumflex ; B -46 0 368 971 ; +C -1 ; WX 652 ; N ccedilla ; B 33 -245 621 574 ; +C -1 ; WX 704 ; N adieresis ; B 34 -19 643 795 ; +C -1 ; WX 528 ; N Ecircumflex ; B 57 0 478 971 ; +C -1 ; WX 499 ; N scaron ; B 24 -19 476 799 ; +C -1 ; WX 695 ; N thorn ; B 59 -185 663 740 ; +C -1 ; WX 990 ; N trademark ; B 21 296 879 740 ; +C -1 ; WX 646 ; N egrave ; B 30 -18 614 839 ; +C -1 ; WX 407 ; N threesuperior ; B 22 287 379 749 ; +C -1 ; WX 444 ; N zcaron ; B 15 0 454 799 ; +C -1 ; WX 704 ; N atilde ; B 34 -19 643 781 ; +C -1 ; WX 704 ; N aring ; B 34 -19 643 852 ; +C -1 ; WX 666 ; N ocircumflex ; B 34 -17 632 806 ; +C -1 ; WX 528 ; N Edieresis ; B 67 0 478 960 ; +C -1 ; WX 1000 ; N threequarters ; B 41 0 959 749 ; +C -1 ; WX 574 ; N ydieresis ; B 1 -185 573 795 ; +C -1 ; WX 574 ; N yacute ; B 1 -185 573 848 ; +C -1 ; WX 286 ; N iacute ; B 42 0 335 848 ; +C -1 ; WX 758 ; N Acircumflex ; B 9 0 749 951 ; +C -1 ; WX 698 ; N Uacute ; B 65 -14 633 1013 ; +C -1 ; WX 646 ; N eacute ; B 30 -18 614 848 ; +C -1 ; WX 851 ; N Ograve ; B 35 -14 816 1004 ; +C -1 ; WX 704 ; N agrave ; B 34 -19 643 839 ; +C -1 ; WX 698 ; N Udieresis ; B 65 -14 633 960 ; +C -1 ; WX 704 ; N acircumflex ; B 34 -19 643 806 ; +C -1 ; WX 323 ; N Igrave ; B -30 0 263 1004 ; +C -1 ; WX 407 ; N twosuperior ; B 30 296 376 749 ; +C -1 ; WX 698 ; N Ugrave ; B 65 -14 633 1004 ; +C -1 ; WX 900 ; N onequarter ; B 48 0 851 740 ; +C -1 ; WX 698 ; N Ucircumflex ; B 65 -14 633 971 ; +C -1 ; WX 573 ; N Scaron ; B 25 -14 550 964 ; +C -1 ; WX 323 ; N Idieresis ; B -35 0 357 960 ; +C -1 ; WX 286 ; N idieresis ; B -53 0 339 795 ; +C -1 ; WX 528 ; N Egrave ; B 67 0 478 1004 ; +C -1 ; WX 851 ; N Oacute ; B 35 -14 816 1013 ; +C -1 ; WX 600 ; N divide ; B 48 -57 552 563 ; +C -1 ; WX 758 ; N Atilde ; B 9 0 749 946 ; +C -1 ; WX 758 ; N Aring ; B 9 0 749 1017 ; +C -1 ; WX 851 ; N Odieresis ; B 35 -14 816 960 ; +C -1 ; WX 758 ; N Adieresis ; B 9 0 749 940 ; +C -1 ; WX 759 ; N Ntilde ; B 67 0 691 946 ; +C -1 ; WX 499 ; N Zcaron ; B 16 0 483 964 ; +C -1 ; WX 636 ; N Thorn ; B 67 0 624 740 ; +C -1 ; WX 323 ; N Iacute ; B 60 0 353 1013 ; +C -1 ; WX 600 ; N plusminus ; B 48 -82 552 556 ; +C -1 ; WX 600 ; N multiply ; B 56 0 544 487 ; +C -1 ; WX 528 ; N Eacute ; B 67 0 478 1013 ; +C -1 ; WX 647 ; N Ydieresis ; B 9 0 638 960 ; +C -1 ; WX 407 ; N onesuperior ; B 69 296 270 740 ; +C -1 ; WX 634 ; N ugrave ; B 58 -18 574 839 ; +C -1 ; WX 600 ; N logicalnot ; B 33 108 557 445 ; +C -1 ; WX 632 ; N ntilde ; B 60 0 574 781 ; +C -1 ; WX 851 ; N Otilde ; B 35 -14 816 946 ; +C -1 ; WX 666 ; N otilde ; B 34 -17 632 781 ; +C -1 ; WX 832 ; N Ccedilla ; B 37 -245 801 754 ; +C -1 ; WX 758 ; N Agrave ; B 9 0 749 984 ; +C -1 ; WX 920 ; N onehalf ; B 48 0 872 740 ; +C -1 ; WX 742 ; N Eth ; B 0 0 707 740 ; +C -1 ; WX 400 ; N degree ; B 57 426 343 712 ; +C -1 ; WX 647 ; N Yacute ; B 9 0 638 1013 ; +C -1 ; WX 851 ; N Ocircumflex ; B 35 -14 816 971 ; +C -1 ; WX 666 ; N oacute ; B 34 -17 632 848 ; +C -1 ; WX 634 ; N mu ; B 52 -190 581 555 ; +C -1 ; WX 600 ; N minus ; B 48 173 552 333 ; +C -1 ; WX 666 ; N eth ; B 34 -17 632 756 ; +C -1 ; WX 666 ; N odieresis ; B 34 -17 632 795 ; +C -1 ; WX 800 ; N copyright ; B 18 -14 783 754 ; +C -1 ; WX 555 ; N brokenbar ; B 186 -100 369 740 ; +EndCharMetrics +StartKernData +StartKernPairs 213 + +KPX A y -68 +KPX A w -65 +KPX A v -70 +KPX A u -20 +KPX A quoteright -50 +KPX A quotedblright -50 +KPX A Y -80 +KPX A W -60 +KPX A V -102 +KPX A U -40 +KPX A T -25 +KPX A Q -50 +KPX A O -35 +KPX A G -40 +KPX A C -40 + +KPX B A -10 + +KPX C A -40 + +KPX D period -20 +KPX D comma -20 +KPX D Y -45 +KPX D W -25 +KPX D V -50 +KPX D A -50 + +KPX F period -129 +KPX F e -20 +KPX F comma -162 +KPX F a -20 +KPX F A -60 + +KPX G period -20 +KPX G comma -20 + +KPX J period -15 +KPX J a -20 +KPX J A -30 + +KPX K y -40 +KPX K u -30 +KPX K o -45 +KPX K e -45 +KPX K O -30 + +KPX L y -23 +KPX L quoteright -50 +KPX L quotedblright -50 +KPX L Y -80 +KPX L W -55 +KPX L V -85 +KPX L T -46 + +KPX O period -30 +KPX O comma -30 +KPX O Y -30 +KPX O X -30 +KPX O W -20 +KPX O V -45 +KPX O T -15 +KPX O A -60 + +KPX P period -200 +KPX P o -20 +KPX P e -20 +KPX P comma -220 +KPX P a -20 +KPX P A -85 + +KPX Q comma 20 + +KPX R W 10 +KPX R V -10 +KPX R U 10 +KPX R T 25 +KPX R O 10 + +KPX S comma 20 + +KPX T y -10 +KPX T w -55 +KPX T u -46 +KPX T semicolon -29 +KPX T r -30 +KPX T period -91 +KPX T o -49 +KPX T hyphen -75 +KPX T e -49 +KPX T comma -82 +KPX T colon -15 +KPX T a -70 +KPX T O -15 +KPX T A -25 + +KPX U period -20 +KPX U comma -20 +KPX U A -40 + +KPX V u -55 +KPX V semicolon -33 +KPX V period -145 +KPX V o -101 +KPX V i -30 +KPX V hyphen -75 +KPX V e -101 +KPX V comma -145 +KPX V colon -18 +KPX V a -95 +KPX V O -45 +KPX V G -20 +KPX V A -102 + +KPX W y -32 +KPX W u -30 +KPX W semicolon -33 +KPX W period -106 +KPX W o -46 +KPX W i -10 +KPX W hyphen -35 +KPX W e -47 +KPX W comma -106 +KPX W colon -15 +KPX W a -50 +KPX W O -20 +KPX W A -58 + +KPX Y u -70 +KPX Y semicolon -23 +KPX Y period -145 +KPX Y o -89 +KPX Y i -20 +KPX Y hyphen -100 +KPX Y e -89 +KPX Y comma -145 +KPX Y colon -10 +KPX Y a -93 +KPX Y O -30 +KPX Y A -80 + +KPX a t 5 +KPX a p 20 +KPX a b 5 + +KPX b y -20 +KPX b v -20 +KPX b b -10 + +KPX c y -20 +KPX c k -15 + +KPX comma space -50 +KPX comma quoteright -90 +KPX comma quotedblright -90 + +KPX e y -20 +KPX e x -25 +KPX e w -20 +KPX e v -20 + +KPX f period -50 +KPX f o -5 +KPX f comma -50 +KPX f a -5 + +KPX g i 10 + +KPX h y -30 + +KPX k y -5 +KPX k o -30 +KPX k e -25 + +KPX m y -20 +KPX m u -20 + +KPX n y -15 +KPX n v -30 + +KPX o y -20 +KPX o x -15 +KPX o w -20 +KPX o v -30 + +KPX p y -20 + +KPX period space -50 +KPX period quoteright -90 +KPX period quotedblright -90 + +KPX quotedblleft A -50 + +KPX quotedblright space -50 + +KPX quoteleft quoteleft -80 +KPX quoteleft A -50 + +KPX quoteright v -10 +KPX quoteright t 10 +KPX quoteright space -50 +KPX quoteright s -15 +KPX quoteright r -20 +KPX quoteright quoteright -80 +KPX quoteright d -45 + +KPX r y 40 +KPX r v 40 +KPX r u 20 +KPX r t 20 +KPX r s 20 +KPX r q -8 +KPX r period -73 +KPX r p 20 +KPX r n 21 +KPX r m 28 +KPX r l 20 +KPX r k 20 +KPX r i 20 +KPX r hyphen -60 +KPX r g 1 +KPX r e -4 +KPX r d -6 +KPX r comma -75 +KPX r c -7 + +KPX s period 20 +KPX s comma 20 + +KPX space quoteleft -50 +KPX space quotedblleft -50 +KPX space Y -60 +KPX space W -25 +KPX space V -80 +KPX space T -25 +KPX space A -20 + +KPX v period -90 +KPX v o -20 +KPX v e -20 +KPX v comma -90 +KPX v a -30 + +KPX w period -90 +KPX w o -30 +KPX w h 15 +KPX w e -20 +KPX w comma -90 +KPX w a -30 + +KPX x e -25 + +KPX y period -60 +KPX y o -30 +KPX y e -20 +KPX y comma -90 +KPX y a -30 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 102 145 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 102 145 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 102 145 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 102 145 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 102 165 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 102 165 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute -13 165 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex -13 165 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis -13 165 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave -13 165 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute -91 165 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -116 165 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -116 165 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -141 165 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 102 165 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 148 165 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 148 165 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 148 165 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 148 165 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 148 165 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 9 165 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 107 165 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 72 165 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 72 165 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 37 165 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 81 165 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 46 165 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron -3 165 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 75 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 75 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 75 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 75 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 75 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 75 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 46 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 46 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 46 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 46 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -109 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -134 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -134 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -159 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 39 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 56 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 56 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 56 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 56 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 56 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron -28 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 75 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 40 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 40 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 5 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 45 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 10 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron -30 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Bd+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Bd+ new file mode 100755 index 0000000000000..3ae3566540fdb --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Bd+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 832 ; N Ccaron ; B 37 -14 801 974 ; +C -1 ; WX 652 ; N ccaron ; B 33 -18 621 799 ; +C -1 ; WX 742 ; N Dcaron ; B 57 0 697 974 ; +C -1 ; WX 820 ; N dcaron ; B 34 -18 829 814 ; +C -1 ; WX 528 ; N Ecaron ; B 57 0 478 974 ; +C -1 ; WX 646 ; N ecaron ; B 30 -18 614 799 ; +C -1 ; WX 487 ; N Lcaron ; B 72 0 480 814 ; +C -1 ; WX 487 ; N Lacute ; B 72 0 480 1035 ; +C -1 ; WX 408 ; N lcaron ; B 60 0 417 814 ; +C -1 ; WX 286 ; N lacute ; B 46 0 339 1035 ; +C -1 ; WX 759 ; N Ncaron ; B 67 0 691 974 ; +C -1 ; WX 632 ; N ncaron ; B 60 0 574 799 ; +C -1 ; WX 653 ; N Rcaron ; B 67 0 637 974 ; +C -1 ; WX 653 ; N Racute ; B 67 0 637 1035 ; +C -1 ; WX 363 ; N rcaron ; B -26 0 388 799 ; +C -1 ; WX 363 ; N racute ; B 59 0 377 848 ; +C -1 ; WX 499 ; N Tcaron ; B 10 0 490 974 ; +C -1 ; WX 473 ; N tcaron ; B 11 0 530 740 ; +C -1 ; WX 698 ; N Uring ; B 65 -14 633 974 ; +C -1 ; WX 634 ; N uring ; B 58 -18 574 852 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 214 175 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 77 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 93 175 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 585 74 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron -13 175 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 45 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 203 74 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute -34 187 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 173 74 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute -105 187 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 102 175 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 38 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 49 175 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 105 187 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron -96 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute -67 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron -28 175 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 286 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 71 122 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 39 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-BdO b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-BdO new file mode 100755 index 0000000000000..25685aa9a831b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-BdO @@ -0,0 +1,571 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1991 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Mon Mar 4 13:58:07 1991 +Comment UniqueID 34379 +Comment VMusage 7139 42168 +FontName AvantGarde-BoldObl +FullName ITC Avant Garde Gothic Bold Oblique +FamilyName ITC Avant Garde Gothic +Weight Bold +ItalicAngle -10.5 +IsFixedPitch false +FontBBox -118 -271 1256 1017 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1991 Adobe Systems Incorporated. All Rights Reserved.ITC Avant Garde Gothic is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 740 +XHeight 555 +Ascender 740 +Descender -185 +StartCharMetrics 228 +C 32 ; WX 309 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 81 0 389 740 ; +C 34 ; WX 463 ; N quotedbl ; B 149 443 566 740 ; +C 35 ; WX 618 ; N numbersign ; B 72 45 683 672 ; +C 36 ; WX 618 ; N dollar ; B 117 -76 621 811 ; +C 37 ; WX 858 ; N percent ; B 139 -15 856 755 ; +C 38 ; WX 758 ; N ampersand ; B 83 -15 810 754 ; +C 39 ; WX 314 ; N quoteright ; B 146 409 381 740 ; +C 40 ; WX 473 ; N parenleft ; B 101 -264 570 754 ; +C 41 ; WX 473 ; N parenright ; B -6 -264 462 754 ; +C 42 ; WX 670 ; N asterisk ; B 215 318 655 740 ; +C 43 ; WX 600 ; N plus ; B 80 0 614 506 ; +C 44 ; WX 314 ; N comma ; B 41 -161 276 170 ; +C 45 ; WX 281 ; N hyphen ; B 38 207 350 370 ; +C 46 ; WX 314 ; N period ; B 71 0 276 170 ; +C 47 ; WX 593 ; N slash ; B 53 -100 658 740 ; +C 48 ; WX 618 ; N zero ; B 77 -14 679 754 ; +C 49 ; WX 618 ; N one ; B 212 0 551 740 ; +C 50 ; WX 618 ; N two ; B 51 0 671 754 ; +C 51 ; WX 618 ; N three ; B 72 -14 643 754 ; +C 52 ; WX 618 ; N four ; B 39 0 659 740 ; +C 53 ; WX 618 ; N five ; B 63 -15 662 740 ; +C 54 ; WX 618 ; N six ; B 66 -14 655 740 ; +C 55 ; WX 618 ; N seven ; B 79 0 684 740 ; +C 56 ; WX 618 ; N eight ; B 76 -14 640 754 ; +C 57 ; WX 618 ; N nine ; B 103 0 697 754 ; +C 58 ; WX 314 ; N colon ; B 71 0 347 555 ; +C 59 ; WX 314 ; N semicolon ; B 41 -161 347 555 ; +C 60 ; WX 600 ; N less ; B 79 -38 655 544 ; +C 61 ; WX 600 ; N equal ; B 56 41 638 465 ; +C 62 ; WX 600 ; N greater ; B 39 -38 615 544 ; +C 63 ; WX 592 ; N question ; B 139 0 654 754 ; +C 64 ; WX 748 ; N at ; B 58 -16 828 756 ; +C 65 ; WX 758 ; N A ; B 9 0 749 740 ; +C 66 ; WX 647 ; N B ; B 67 0 681 740 ; +C 67 ; WX 832 ; N C ; B 99 -14 886 754 ; +C 68 ; WX 742 ; N D ; B 57 0 775 740 ; +C 69 ; WX 528 ; N E ; B 67 0 615 740 ; +C 70 ; WX 506 ; N F ; B 67 0 608 740 ; +C 71 ; WX 854 ; N G ; B 97 -15 900 754 ; +C 72 ; WX 754 ; N H ; B 67 0 824 740 ; +C 73 ; WX 323 ; N I ; B 67 0 393 740 ; +C 74 ; WX 578 ; N J ; B 45 -14 647 740 ; +C 75 ; WX 707 ; N K ; B 87 0 822 740 ; +C 76 ; WX 487 ; N L ; B 72 0 511 740 ; +C 77 ; WX 915 ; N M ; B 67 0 985 740 ; +C 78 ; WX 759 ; N N ; B 67 0 828 740 ; +C 79 ; WX 851 ; N O ; B 96 -14 891 754 ; +C 80 ; WX 636 ; N P ; B 67 0 720 740 ; +C 81 ; WX 866 ; N Q ; B 97 -15 895 754 ; +C 82 ; WX 653 ; N R ; B 67 0 715 740 ; +C 83 ; WX 573 ; N S ; B 62 -14 645 754 ; +C 84 ; WX 499 ; N T ; B 116 0 627 740 ; +C 85 ; WX 698 ; N U ; B 108 -14 770 740 ; +C 86 ; WX 722 ; N V ; B 153 0 843 740 ; +C 87 ; WX 981 ; N W ; B 153 0 1101 740 ; +C 88 ; WX 759 ; N X ; B 11 0 855 740 ; +C 89 ; WX 647 ; N Y ; B 146 0 775 740 ; +C 90 ; WX 499 ; N Z ; B 16 0 620 740 ; +C 91 ; WX 473 ; N bracketleft ; B 104 -264 541 754 ; +C 92 ; WX 593 ; N backslash ; B 209 -100 502 740 ; +C 93 ; WX 473 ; N bracketright ; B 23 -264 460 754 ; +C 94 ; WX 600 ; N asciicircum ; B 112 375 626 740 ; +C 95 ; WX 500 ; N underscore ; B -23 -125 486 -75 ; +C 96 ; WX 314 ; N quoteleft ; B 146 409 381 740 ; +C 97 ; WX 704 ; N a ; B 79 -19 746 574 ; +C 98 ; WX 693 ; N b ; B 60 -19 719 740 ; +C 99 ; WX 652 ; N c ; B 79 -18 683 574 ; +C 100 ; WX 698 ; N d ; B 80 -18 775 740 ; +C 101 ; WX 646 ; N e ; B 76 -18 670 574 ; +C 102 ; WX 314 ; N f ; B 66 0 442 754 ; L i fi ; L l fl ; +C 103 ; WX 693 ; N g ; B 34 -247 738 573 ; +C 104 ; WX 632 ; N h ; B 60 0 645 740 ; +C 105 ; WX 286 ; N i ; B 60 0 363 740 ; +C 106 ; WX 321 ; N j ; B -32 -204 390 740 ; +C 107 ; WX 591 ; N k ; B 66 0 688 740 ; +C 108 ; WX 286 ; N l ; B 60 0 363 740 ; +C 109 ; WX 969 ; N m ; B 60 0 983 574 ; +C 110 ; WX 632 ; N n ; B 60 0 646 574 ; +C 111 ; WX 666 ; N o ; B 80 -17 689 573 ; +C 112 ; WX 697 ; N p ; B 26 -185 719 574 ; +C 113 ; WX 698 ; N q ; B 78 -185 741 574 ; +C 114 ; WX 363 ; N r ; B 59 0 462 574 ; +C 115 ; WX 499 ; N s ; B 54 -19 534 574 ; +C 116 ; WX 351 ; N t ; B 91 0 442 740 ; +C 117 ; WX 634 ; N u ; B 90 -18 677 555 ; +C 118 ; WX 592 ; N v ; B 120 0 678 555 ; +C 119 ; WX 850 ; N w ; B 110 0 946 555 ; +C 120 ; WX 630 ; N x ; B 1 0 703 555 ; +C 121 ; WX 574 ; N y ; B 85 -185 676 555 ; +C 122 ; WX 444 ; N z ; B 15 0 531 555 ; +C 123 ; WX 554 ; N braceleft ; B 132 -264 620 740 ; +C 124 ; WX 555 ; N bar ; B 167 -100 506 740 ; +C 125 ; WX 554 ; N braceright ; B 22 -264 508 740 ; +C 126 ; WX 600 ; N asciitilde ; B 120 130 574 377 ; +C 161 ; WX 333 ; N exclamdown ; B 47 -185 355 555 ; +C 162 ; WX 618 ; N cent ; B 128 31 634 720 ; +C 163 ; WX 618 ; N sterling ; B 44 0 658 755 ; +C 164 ; WX 211 ; N fraction ; B -118 0 466 740 ; +C 165 ; WX 618 ; N yen ; B 50 0 755 740 ; +C 166 ; WX 618 ; N florin ; B -2 -152 698 818 ; +C 167 ; WX 670 ; N section ; B 57 -271 688 754 ; +C 168 ; WX 618 ; N currency ; B 22 38 719 651 ; +C 169 ; WX 242 ; N quotesingle ; B 149 443 345 740 ; +C 170 ; WX 555 ; N quotedblleft ; B 143 409 625 740 ; +C 171 ; WX 422 ; N guillemotleft ; B 90 103 463 474 ; +C 172 ; WX 222 ; N guilsinglleft ; B 90 103 263 474 ; +C 173 ; WX 222 ; N guilsinglright ; B 66 103 239 474 ; +C 174 ; WX 601 ; N fi ; B 66 0 678 754 ; +C 175 ; WX 601 ; N fl ; B 66 0 678 754 ; +C 177 ; WX 500 ; N endash ; B 73 207 534 370 ; +C 178 ; WX 670 ; N dagger ; B 176 -244 676 740 ; +C 179 ; WX 670 ; N daggerdbl ; B 96 -244 682 740 ; +C 180 ; WX 314 ; N periodcentered ; B 102 168 307 338 ; +C 182 ; WX 701 ; N paragraph ; B 90 -103 744 740 ; +C 183 ; WX 739 ; N bullet ; B 284 222 595 532 ; +C 184 ; WX 314 ; N quotesinglbase ; B 40 -161 276 170 ; +C 185 ; WX 555 ; N quotedblbase ; B 37 -161 520 170 ; +C 186 ; WX 555 ; N quotedblright ; B 143 409 625 740 ; +C 187 ; WX 422 ; N guillemotright ; B 66 103 439 474 ; +C 188 ; WX 1000 ; N ellipsis ; B 81 0 952 170 ; +C 189 ; WX 1258 ; N perthousand ; B 139 -15 1256 755 ; +C 191 ; WX 592 ; N questiondown ; B 40 -200 554 555 ; +C 193 ; WX 555 ; N grave ; B 245 614 536 839 ; +C 194 ; WX 555 ; N acute ; B 284 621 579 848 ; +C 195 ; WX 555 ; N circumflex ; B 189 640 603 806 ; +C 196 ; WX 555 ; N tilde ; B 213 651 608 781 ; +C 197 ; WX 555 ; N macron ; B 220 658 602 784 ; +C 198 ; WX 555 ; N breve ; B 216 644 629 788 ; +C 199 ; WX 555 ; N dotaccent ; B 317 644 504 795 ; +C 200 ; WX 555 ; N dieresis ; B 200 644 620 795 ; +C 202 ; WX 555 ; N ring ; B 283 600 540 852 ; +C 203 ; WX 555 ; N cedilla ; B 139 -245 364 0 ; +C 205 ; WX 555 ; N hungarumlaut ; B 222 600 637 832 ; +C 206 ; WX 555 ; N ogonek ; B 153 -206 361 0 ; +C 207 ; WX 555 ; N caron ; B 218 633 632 799 ; +C 208 ; WX 1000 ; N emdash ; B 73 207 1034 370 ; +C 225 ; WX 975 ; N AE ; B -10 0 1062 740 ; +C 227 ; WX 385 ; N ordfeminine ; B 127 448 471 754 ; +C 232 ; WX 487 ; N Lslash ; B 36 0 511 740 ; +C 233 ; WX 851 ; N Oslash ; B 80 -63 908 806 ; +C 234 ; WX 1085 ; N OE ; B 97 -14 1172 754 ; +C 235 ; WX 385 ; N ordmasculine ; B 146 448 461 754 ; +C 241 ; WX 1091 ; N ae ; B 81 -18 1115 574 ; +C 245 ; WX 286 ; N dotlessi ; B 60 0 329 555 ; +C 248 ; WX 342 ; N lslash ; B 60 0 418 740 ; +C 249 ; WX 666 ; N oslash ; B 42 -83 726 633 ; +C 250 ; WX 1076 ; N oe ; B 80 -19 1101 574 ; +C 251 ; WX 694 ; N germandbls ; B 58 -18 706 759 ; +C -1 ; WX 646 ; N ecircumflex ; B 76 -18 670 806 ; +C -1 ; WX 646 ; N edieresis ; B 76 -18 670 795 ; +C -1 ; WX 704 ; N aacute ; B 79 -19 746 848 ; +C -1 ; WX 800 ; N registered ; B 80 -14 858 754 ; +C -1 ; WX 286 ; N icircumflex ; B 55 0 469 806 ; +C -1 ; WX 634 ; N udieresis ; B 90 -18 677 795 ; +C -1 ; WX 666 ; N ograve ; B 80 -17 689 839 ; +C -1 ; WX 634 ; N uacute ; B 90 -18 677 848 ; +C -1 ; WX 634 ; N ucircumflex ; B 90 -18 677 806 ; +C -1 ; WX 758 ; N Aacute ; B 9 0 749 993 ; +C -1 ; WX 286 ; N igrave ; B 60 0 377 839 ; +C -1 ; WX 323 ; N Icircumflex ; B 67 0 517 971 ; +C -1 ; WX 652 ; N ccedilla ; B 79 -245 683 574 ; +C -1 ; WX 704 ; N adieresis ; B 79 -19 746 795 ; +C -1 ; WX 528 ; N Ecircumflex ; B 67 0 620 971 ; +C -1 ; WX 499 ; N scaron ; B 54 -19 604 799 ; +C -1 ; WX 695 ; N thorn ; B 25 -185 719 740 ; +C -1 ; WX 990 ; N trademark ; B 139 296 1016 740 ; +C -1 ; WX 646 ; N egrave ; B 76 -18 670 839 ; +C -1 ; WX 407 ; N threesuperior ; B 101 287 471 749 ; +C -1 ; WX 444 ; N zcaron ; B 15 0 602 799 ; +C -1 ; WX 704 ; N atilde ; B 79 -19 746 781 ; +C -1 ; WX 704 ; N aring ; B 79 -19 746 852 ; +C -1 ; WX 666 ; N ocircumflex ; B 80 -17 689 806 ; +C -1 ; WX 528 ; N Edieresis ; B 67 0 638 960 ; +C -1 ; WX 1000 ; N threequarters ; B 120 0 991 749 ; +C -1 ; WX 574 ; N ydieresis ; B 85 -185 676 795 ; +C -1 ; WX 574 ; N yacute ; B 85 -185 676 848 ; +C -1 ; WX 286 ; N iacute ; B 60 0 470 848 ; +C -1 ; WX 758 ; N Acircumflex ; B 9 0 749 951 ; +C -1 ; WX 698 ; N Uacute ; B 108 -14 770 1013 ; +C -1 ; WX 646 ; N eacute ; B 76 -18 670 848 ; +C -1 ; WX 851 ; N Ograve ; B 96 -14 891 1004 ; +C -1 ; WX 704 ; N agrave ; B 79 -19 746 839 ; +C -1 ; WX 698 ; N Udieresis ; B 108 -14 770 960 ; +C -1 ; WX 704 ; N acircumflex ; B 79 -19 746 806 ; +C -1 ; WX 323 ; N Igrave ; B 67 0 425 1004 ; +C -1 ; WX 407 ; N twosuperior ; B 90 296 490 749 ; +C -1 ; WX 698 ; N Ugrave ; B 108 -14 770 1004 ; +C -1 ; WX 900 ; N onequarter ; B 166 0 883 740 ; +C -1 ; WX 698 ; N Ucircumflex ; B 108 -14 770 971 ; +C -1 ; WX 573 ; N Scaron ; B 62 -14 672 964 ; +C -1 ; WX 323 ; N Idieresis ; B 67 0 535 960 ; +C -1 ; WX 286 ; N idieresis ; B 60 0 486 795 ; +C -1 ; WX 528 ; N Egrave ; B 67 0 615 1004 ; +C -1 ; WX 851 ; N Oacute ; B 96 -14 891 1013 ; +C -1 ; WX 600 ; N divide ; B 80 -57 614 563 ; +C -1 ; WX 758 ; N Atilde ; B 9 0 749 946 ; +C -1 ; WX 758 ; N Aring ; B 9 0 749 1017 ; +C -1 ; WX 851 ; N Odieresis ; B 96 -14 891 960 ; +C -1 ; WX 758 ; N Adieresis ; B 9 0 749 940 ; +C -1 ; WX 759 ; N Ntilde ; B 67 0 828 946 ; +C -1 ; WX 499 ; N Zcaron ; B 16 0 660 964 ; +C -1 ; WX 636 ; N Thorn ; B 67 0 702 740 ; +C -1 ; WX 323 ; N Iacute ; B 67 0 519 1013 ; +C -1 ; WX 600 ; N plusminus ; B 33 -82 630 556 ; +C -1 ; WX 600 ; N multiply ; B 77 0 613 487 ; +C -1 ; WX 528 ; N Eacute ; B 67 0 615 1013 ; +C -1 ; WX 647 ; N Ydieresis ; B 146 0 775 960 ; +C -1 ; WX 407 ; N onesuperior ; B 187 296 407 740 ; +C -1 ; WX 634 ; N ugrave ; B 90 -18 677 839 ; +C -1 ; WX 600 ; N logicalnot ; B 86 108 639 445 ; +C -1 ; WX 632 ; N ntilde ; B 60 0 647 781 ; +C -1 ; WX 851 ; N Otilde ; B 96 -14 891 946 ; +C -1 ; WX 666 ; N otilde ; B 80 -17 689 781 ; +C -1 ; WX 832 ; N Ccedilla ; B 99 -245 886 754 ; +C -1 ; WX 758 ; N Agrave ; B 9 0 749 984 ; +C -1 ; WX 920 ; N onehalf ; B 166 0 931 740 ; +C -1 ; WX 742 ; N Eth ; B 55 0 785 740 ; +C -1 ; WX 400 ; N degree ; B 160 426 451 712 ; +C -1 ; WX 647 ; N Yacute ; B 146 0 775 1013 ; +C -1 ; WX 851 ; N Ocircumflex ; B 96 -14 891 971 ; +C -1 ; WX 666 ; N oacute ; B 80 -17 689 848 ; +C -1 ; WX 634 ; N mu ; B 17 -190 684 555 ; +C -1 ; WX 600 ; N minus ; B 80 173 614 333 ; +C -1 ; WX 666 ; N eth ; B 80 -17 721 756 ; +C -1 ; WX 666 ; N odieresis ; B 80 -17 689 795 ; +C -1 ; WX 800 ; N copyright ; B 80 -14 858 754 ; +C -1 ; WX 555 ; N brokenbar ; B 167 -100 506 740 ; +EndCharMetrics +StartKernData +StartKernPairs 213 + +KPX A y -68 +KPX A w -65 +KPX A v -70 +KPX A u -20 +KPX A quoteright -50 +KPX A quotedblright -50 +KPX A Y -80 +KPX A W -60 +KPX A V -102 +KPX A U -40 +KPX A T -25 +KPX A Q -50 +KPX A O -35 +KPX A G -40 +KPX A C -40 + +KPX B A -10 + +KPX C A -40 + +KPX D period -20 +KPX D comma -20 +KPX D Y -45 +KPX D W -25 +KPX D V -50 +KPX D A -50 + +KPX F period -129 +KPX F e -20 +KPX F comma -162 +KPX F a -20 +KPX F A -60 + +KPX G period -20 +KPX G comma -20 + +KPX J period -15 +KPX J a -20 +KPX J A -30 + +KPX K y -40 +KPX K u -30 +KPX K o -45 +KPX K e -45 +KPX K O -30 + +KPX L y -23 +KPX L quoteright -50 +KPX L quotedblright -50 +KPX L Y -80 +KPX L W -55 +KPX L V -85 +KPX L T -46 + +KPX O period -30 +KPX O comma -30 +KPX O Y -30 +KPX O X -30 +KPX O W -20 +KPX O V -45 +KPX O T -15 +KPX O A -60 + +KPX P period -200 +KPX P o -20 +KPX P e -20 +KPX P comma -220 +KPX P a -20 +KPX P A -85 + +KPX Q comma 20 + +KPX R W 10 +KPX R V -10 +KPX R U 10 +KPX R T 25 +KPX R O 10 + +KPX S comma 20 + +KPX T y -10 +KPX T w -55 +KPX T u -46 +KPX T semicolon -29 +KPX T r -30 +KPX T period -91 +KPX T o -49 +KPX T hyphen -75 +KPX T e -49 +KPX T comma -82 +KPX T colon -15 +KPX T a -70 +KPX T O -15 +KPX T A -25 + +KPX U period -20 +KPX U comma -20 +KPX U A -40 + +KPX V u -55 +KPX V semicolon -33 +KPX V period -145 +KPX V o -101 +KPX V i -30 +KPX V hyphen -75 +KPX V e -101 +KPX V comma -145 +KPX V colon -18 +KPX V a -95 +KPX V O -45 +KPX V G -20 +KPX V A -102 + +KPX W y -32 +KPX W u -30 +KPX W semicolon -33 +KPX W period -106 +KPX W o -46 +KPX W i -10 +KPX W hyphen -35 +KPX W e -47 +KPX W comma -106 +KPX W colon -15 +KPX W a -50 +KPX W O -20 +KPX W A -58 + +KPX Y u -70 +KPX Y semicolon -23 +KPX Y period -145 +KPX Y o -89 +KPX Y i -20 +KPX Y hyphen -100 +KPX Y e -89 +KPX Y comma -145 +KPX Y colon -10 +KPX Y a -93 +KPX Y O -30 +KPX Y A -80 + +KPX a t 5 +KPX a p 20 +KPX a b 5 + +KPX b y -20 +KPX b v -20 +KPX b b -10 + +KPX c y -20 +KPX c k -15 + +KPX comma space -50 +KPX comma quoteright -90 +KPX comma quotedblright -90 + +KPX e y -20 +KPX e x -25 +KPX e w -20 +KPX e v -20 + +KPX f period -50 +KPX f o -5 +KPX f comma -50 +KPX f a -5 + +KPX g i 10 + +KPX h y -30 + +KPX k y -5 +KPX k o -30 +KPX k e -25 + +KPX m y -20 +KPX m u -20 + +KPX n y -15 +KPX n v -30 + +KPX o y -20 +KPX o x -15 +KPX o w -20 +KPX o v -30 + +KPX p y -20 + +KPX period space -50 +KPX period quoteright -90 +KPX period quotedblright -90 + +KPX quotedblleft A -50 + +KPX quotedblright space -50 + +KPX quoteleft quoteleft -80 +KPX quoteleft A -50 + +KPX quoteright v -10 +KPX quoteright t 10 +KPX quoteright space -50 +KPX quoteright s -15 +KPX quoteright r -20 +KPX quoteright quoteright -80 +KPX quoteright d -45 + +KPX r y 40 +KPX r v 40 +KPX r u 20 +KPX r t 20 +KPX r s 20 +KPX r q -8 +KPX r period -73 +KPX r p 20 +KPX r n 21 +KPX r m 28 +KPX r l 20 +KPX r k 20 +KPX r i 20 +KPX r hyphen -60 +KPX r g 1 +KPX r e -4 +KPX r d -6 +KPX r comma -75 +KPX r c -7 + +KPX s period 20 +KPX s comma 20 + +KPX space quoteleft -50 +KPX space quotedblleft -50 +KPX space Y -60 +KPX space W -25 +KPX space V -80 +KPX space T -25 +KPX space A -20 + +KPX v period -90 +KPX v o -20 +KPX v e -20 +KPX v comma -90 +KPX v a -30 + +KPX w period -90 +KPX w o -30 +KPX w h 15 +KPX w e -20 +KPX w comma -90 +KPX w a -30 + +KPX x e -25 + +KPX y period -60 +KPX y o -30 +KPX y e -20 +KPX y comma -90 +KPX y a -30 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 129 145 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 129 145 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 129 145 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 129 145 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 133 165 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 133 165 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 18 165 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 18 165 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 18 165 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 18 165 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute -60 165 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -85 165 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -85 165 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -110 165 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 133 165 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 179 165 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 179 165 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 179 165 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 179 165 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 179 165 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 40 165 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 138 165 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 103 165 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 103 165 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 68 165 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 112 165 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 77 165 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 28 165 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 75 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 75 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 75 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 75 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 75 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 75 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 46 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 46 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 46 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 46 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -109 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -134 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -134 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -159 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 39 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 56 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 56 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 56 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 56 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 56 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron -28 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 75 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 40 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 40 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 5 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 45 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 10 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron -30 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-BdO+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-BdO+ new file mode 100755 index 0000000000000..1bbf720eb1dcd --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-BdO+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 832 ; N Ccaron ; B 99 -14 886 974 ; +C -1 ; WX 652 ; N ccaron ; B 79 -18 710 799 ; +C -1 ; WX 742 ; N Dcaron ; B 57 0 775 974 ; +C -1 ; WX 863 ; N dcaron ; B 80 -18 1034 814 ; +C -1 ; WX 528 ; N Ecaron ; B 67 0 649 974 ; +C -1 ; WX 646 ; N ecaron ; B 76 -18 677 799 ; +C -1 ; WX 487 ; N Lcaron ; B 72 0 652 814 ; +C -1 ; WX 487 ; N Lacute ; B 72 0 577 1035 ; +C -1 ; WX 451 ; N lcaron ; B 60 0 622 814 ; +C -1 ; WX 286 ; N lacute ; B 60 0 507 1035 ; +C -1 ; WX 759 ; N Ncaron ; B 67 0 828 974 ; +C -1 ; WX 632 ; N ncaron ; B 60 0 670 799 ; +C -1 ; WX 653 ; N Rcaron ; B 67 0 715 974 ; +C -1 ; WX 653 ; N Racute ; B 67 0 716 1035 ; +C -1 ; WX 363 ; N rcaron ; B 59 0 536 799 ; +C -1 ; WX 363 ; N racute ; B 59 0 513 848 ; +C -1 ; WX 499 ; N Tcaron ; B 116 0 634 974 ; +C -1 ; WX 516 ; N tcaron ; B 91 0 701 740 ; +C -1 ; WX 698 ; N Uring ; B 108 -14 770 974 ; +C -1 ; WX 634 ; N uring ; B 90 -18 677 852 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 247 175 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 78 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 123 175 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 653 74 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 17 175 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 45 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 271 74 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute -2 187 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 241 74 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute -72 187 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 132 175 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 38 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 79 175 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 137 187 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron -96 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute -66 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 2 175 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 320 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 92 122 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 39 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Bk b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Bk new file mode 100755 index 0000000000000..53b03bbb88f46 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Bk @@ -0,0 +1,573 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Mon Mar 4 13:37:31 1991 +Comment UniqueID 34364 +Comment VMusage 24225 31117 +FontName AvantGarde-Book +FullName ITC Avant Garde Gothic Book +FamilyName ITC Avant Garde Gothic +Weight Book +ItalicAngle 0 +IsFixedPitch false +FontBBox -113 -222 1148 955 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.006 +Notice Copyright (c) 1985, 1987, 1989, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved.ITC Avant Garde Gothic is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 740 +XHeight 547 +Ascender 740 +Descender -192 +StartCharMetrics 228 +C 32 ; WX 277 ; N space ; B 0 0 0 0 ; +C 33 ; WX 295 ; N exclam ; B 111 0 185 740 ; +C 34 ; WX 309 ; N quotedbl ; B 36 444 273 740 ; +C 35 ; WX 554 ; N numbersign ; B 33 0 521 740 ; +C 36 ; WX 554 ; N dollar ; B 70 -70 485 811 ; +C 37 ; WX 775 ; N percent ; B 21 -13 753 751 ; +C 38 ; WX 757 ; N ampersand ; B 56 -12 736 753 ; +C 39 ; WX 351 ; N quoteright ; B 94 546 256 740 ; +C 40 ; WX 369 ; N parenleft ; B 47 -205 355 757 ; +C 41 ; WX 369 ; N parenright ; B 14 -205 322 757 ; +C 42 ; WX 425 ; N asterisk ; B 58 446 367 740 ; +C 43 ; WX 606 ; N plus ; B 51 0 555 506 ; +C 44 ; WX 277 ; N comma ; B 14 -67 176 126 ; +C 45 ; WX 332 ; N hyphen ; B 30 248 302 315 ; +C 46 ; WX 277 ; N period ; B 102 0 176 126 ; +C 47 ; WX 437 ; N slash ; B 44 -100 403 740 ; +C 48 ; WX 554 ; N zero ; B 29 -13 525 753 ; +C 49 ; WX 554 ; N one ; B 135 0 336 740 ; +C 50 ; WX 554 ; N two ; B 40 0 514 753 ; +C 51 ; WX 554 ; N three ; B 34 -13 506 753 ; +C 52 ; WX 554 ; N four ; B 14 0 528 740 ; +C 53 ; WX 554 ; N five ; B 26 -13 530 740 ; +C 54 ; WX 554 ; N six ; B 24 -13 530 739 ; +C 55 ; WX 554 ; N seven ; B 63 0 491 740 ; +C 56 ; WX 554 ; N eight ; B 41 -13 513 753 ; +C 57 ; WX 554 ; N nine ; B 24 0 530 752 ; +C 58 ; WX 277 ; N colon ; B 102 0 176 548 ; +C 59 ; WX 277 ; N semicolon ; B 14 -67 176 548 ; +C 60 ; WX 606 ; N less ; B 46 -8 554 514 ; +C 61 ; WX 606 ; N equal ; B 51 118 555 388 ; +C 62 ; WX 606 ; N greater ; B 52 -8 560 514 ; +C 63 ; WX 591 ; N question ; B 64 0 526 752 ; +C 64 ; WX 867 ; N at ; B 65 -13 803 753 ; +C 65 ; WX 740 ; N A ; B 12 0 729 740 ; +C 66 ; WX 574 ; N B ; B 74 0 544 740 ; +C 67 ; WX 813 ; N C ; B 43 -13 771 752 ; +C 68 ; WX 744 ; N D ; B 74 0 699 740 ; +C 69 ; WX 536 ; N E ; B 70 0 475 740 ; +C 70 ; WX 485 ; N F ; B 70 0 444 740 ; +C 71 ; WX 872 ; N G ; B 40 -13 828 753 ; +C 72 ; WX 683 ; N H ; B 76 0 607 740 ; +C 73 ; WX 226 ; N I ; B 76 0 150 740 ; +C 74 ; WX 482 ; N J ; B 6 -13 402 740 ; +C 75 ; WX 591 ; N K ; B 81 0 591 740 ; +C 76 ; WX 462 ; N L ; B 82 0 462 740 ; +C 77 ; WX 919 ; N M ; B 76 0 843 740 ; +C 78 ; WX 740 ; N N ; B 75 0 664 740 ; +C 79 ; WX 869 ; N O ; B 43 -13 826 753 ; +C 80 ; WX 592 ; N P ; B 75 0 564 740 ; +C 81 ; WX 871 ; N Q ; B 40 -13 837 753 ; +C 82 ; WX 607 ; N R ; B 70 0 572 740 ; +C 83 ; WX 498 ; N S ; B 22 -13 473 753 ; +C 84 ; WX 426 ; N T ; B 6 0 419 740 ; +C 85 ; WX 655 ; N U ; B 75 -13 579 740 ; +C 86 ; WX 702 ; N V ; B 8 0 693 740 ; +C 87 ; WX 960 ; N W ; B 11 0 950 740 ; +C 88 ; WX 609 ; N X ; B 8 0 602 740 ; +C 89 ; WX 592 ; N Y ; B 1 0 592 740 ; +C 90 ; WX 480 ; N Z ; B 12 0 470 740 ; +C 91 ; WX 351 ; N bracketleft ; B 133 -179 337 753 ; +C 92 ; WX 605 ; N backslash ; B 118 -100 477 740 ; +C 93 ; WX 351 ; N bracketright ; B 14 -179 218 753 ; +C 94 ; WX 606 ; N asciicircum ; B 53 307 553 740 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 351 ; N quoteleft ; B 95 546 257 740 ; +C 97 ; WX 683 ; N a ; B 42 -13 621 561 ; +C 98 ; WX 682 ; N b ; B 68 -13 647 740 ; +C 99 ; WX 647 ; N c ; B 41 -13 607 561 ; +C 100 ; WX 685 ; N d ; B 39 -13 618 740 ; +C 101 ; WX 650 ; N e ; B 38 -13 608 561 ; +C 102 ; WX 314 ; N f ; B 19 0 314 753 ; L i fi ; L l fl ; +C 103 ; WX 673 ; N g ; B 37 -215 606 561 ; +C 104 ; WX 610 ; N h ; B 62 0 543 740 ; +C 105 ; WX 200 ; N i ; B 65 0 135 740 ; +C 106 ; WX 203 ; N j ; B -44 -192 137 740 ; +C 107 ; WX 502 ; N k ; B 70 0 498 740 ; +C 108 ; WX 200 ; N l ; B 65 0 135 740 ; +C 109 ; WX 938 ; N m ; B 66 0 872 561 ; +C 110 ; WX 610 ; N n ; B 65 0 546 561 ; +C 111 ; WX 655 ; N o ; B 42 -13 614 561 ; +C 112 ; WX 682 ; N p ; B 64 -192 643 561 ; +C 113 ; WX 682 ; N q ; B 37 -192 616 561 ; +C 114 ; WX 301 ; N r ; B 65 0 291 561 ; +C 115 ; WX 388 ; N s ; B 24 -13 364 561 ; +C 116 ; WX 339 ; N t ; B 14 0 330 740 ; +C 117 ; WX 608 ; N u ; B 62 -13 541 547 ; +C 118 ; WX 554 ; N v ; B 7 0 546 547 ; +C 119 ; WX 831 ; N w ; B 13 0 820 547 ; +C 120 ; WX 480 ; N x ; B 12 0 468 547 ; +C 121 ; WX 536 ; N y ; B 15 -192 523 547 ; +C 122 ; WX 425 ; N z ; B 10 0 415 547 ; +C 123 ; WX 351 ; N braceleft ; B 70 -189 331 740 ; +C 124 ; WX 672 ; N bar ; B 299 -100 373 740 ; +C 125 ; WX 351 ; N braceright ; B 20 -189 281 740 ; +C 126 ; WX 606 ; N asciitilde ; B 72 179 534 319 ; +C 161 ; WX 295 ; N exclamdown ; B 110 -192 184 548 ; +C 162 ; WX 554 ; N cent ; B 48 62 510 707 ; +C 163 ; WX 554 ; N sterling ; B 4 0 552 753 ; +C 164 ; WX 166 ; N fraction ; B -113 0 280 740 ; +C 165 ; WX 554 ; N yen ; B 4 0 550 740 ; +C 166 ; WX 554 ; N florin ; B -12 -153 518 818 ; +C 167 ; WX 615 ; N section ; B 85 -141 529 753 ; +C 168 ; WX 554 ; N currency ; B 8 42 546 580 ; +C 169 ; WX 198 ; N quotesingle ; B 59 444 140 740 ; +C 170 ; WX 502 ; N quotedblleft ; B 97 546 406 740 ; +C 171 ; WX 425 ; N guillemotleft ; B 40 81 386 481 ; +C 172 ; WX 251 ; N guilsinglleft ; B 40 81 212 481 ; +C 173 ; WX 251 ; N guilsinglright ; B 39 81 211 481 ; +C 174 ; WX 487 ; N fi ; B 19 0 422 753 ; +C 175 ; WX 485 ; N fl ; B 19 0 420 753 ; +C 177 ; WX 500 ; N endash ; B 35 248 465 315 ; +C 178 ; WX 553 ; N dagger ; B 59 -133 493 740 ; +C 179 ; WX 553 ; N daggerdbl ; B 59 -133 493 740 ; +C 180 ; WX 277 ; N periodcentered ; B 102 190 176 316 ; +C 182 ; WX 564 ; N paragraph ; B 22 -110 551 740 ; +C 183 ; WX 606 ; N bullet ; B 150 222 455 532 ; +C 184 ; WX 354 ; N quotesinglbase ; B 89 -68 251 126 ; +C 185 ; WX 502 ; N quotedblbase ; B 89 -68 399 126 ; +C 186 ; WX 484 ; N quotedblright ; B 96 546 405 740 ; +C 187 ; WX 425 ; N guillemotright ; B 39 81 385 481 ; +C 188 ; WX 1000 ; N ellipsis ; B 130 0 870 126 ; +C 189 ; WX 1174 ; N perthousand ; B 25 -13 1148 751 ; +C 191 ; WX 591 ; N questiondown ; B 65 -205 527 548 ; +C 193 ; WX 378 ; N grave ; B 69 619 300 786 ; +C 194 ; WX 375 ; N acute ; B 78 619 309 786 ; +C 195 ; WX 502 ; N circumflex ; B 74 639 428 764 ; +C 196 ; WX 439 ; N tilde ; B 47 651 392 754 ; +C 197 ; WX 485 ; N macron ; B 73 669 411 736 ; +C 198 ; WX 453 ; N breve ; B 52 651 401 754 ; +C 199 ; WX 222 ; N dotaccent ; B 74 639 148 765 ; +C 200 ; WX 369 ; N dieresis ; B 73 639 295 765 ; +C 202 ; WX 332 ; N ring ; B 62 600 269 807 ; +C 203 ; WX 324 ; N cedilla ; B 80 -222 254 0 ; +C 205 ; WX 552 ; N hungarumlaut ; B 119 605 453 800 ; +C 206 ; WX 302 ; N ogonek ; B 73 -191 228 0 ; +C 207 ; WX 502 ; N caron ; B 68 639 423 764 ; +C 208 ; WX 1000 ; N emdash ; B 35 248 965 315 ; +C 225 ; WX 992 ; N AE ; B -20 0 907 740 ; +C 227 ; WX 369 ; N ordfeminine ; B -3 407 356 753 ; +C 232 ; WX 517 ; N Lslash ; B 59 0 517 740 ; +C 233 ; WX 868 ; N Oslash ; B 43 -83 826 819 ; +C 234 ; WX 1194 ; N OE ; B 45 -13 1142 753 ; +C 235 ; WX 369 ; N ordmasculine ; B 12 407 356 753 ; +C 241 ; WX 1157 ; N ae ; B 34 -13 1113 561 ; +C 245 ; WX 200 ; N dotlessi ; B 65 0 135 547 ; +C 248 ; WX 300 ; N lslash ; B 43 0 259 740 ; +C 249 ; WX 653 ; N oslash ; B 41 -64 613 614 ; +C 250 ; WX 1137 ; N oe ; B 34 -13 1104 561 ; +C 251 ; WX 554 ; N germandbls ; B 61 -13 525 753 ; +C -1 ; WX 650 ; N ecircumflex ; B 38 -13 608 764 ; +C -1 ; WX 650 ; N edieresis ; B 38 -13 608 765 ; +C -1 ; WX 683 ; N aacute ; B 42 -13 621 786 ; +C -1 ; WX 747 ; N registered ; B -9 -12 755 752 ; +C -1 ; WX 200 ; N icircumflex ; B -77 0 277 764 ; +C -1 ; WX 608 ; N udieresis ; B 62 -13 541 765 ; +C -1 ; WX 655 ; N ograve ; B 42 -13 614 786 ; +C -1 ; WX 608 ; N uacute ; B 62 -13 541 786 ; +C -1 ; WX 608 ; N ucircumflex ; B 62 -13 541 764 ; +C -1 ; WX 740 ; N Aacute ; B 12 0 729 949 ; +C -1 ; WX 200 ; N igrave ; B -60 0 171 786 ; +C -1 ; WX 226 ; N Icircumflex ; B -64 0 290 927 ; +C -1 ; WX 647 ; N ccedilla ; B 41 -222 607 561 ; +C -1 ; WX 683 ; N adieresis ; B 42 -13 621 765 ; +C -1 ; WX 536 ; N Ecircumflex ; B 70 0 475 927 ; +C -1 ; WX 388 ; N scaron ; B 11 -13 366 764 ; +C -1 ; WX 682 ; N thorn ; B 64 -192 643 740 ; +C -1 ; WX 1000 ; N trademark ; B 9 296 816 740 ; +C -1 ; WX 650 ; N egrave ; B 38 -13 608 786 ; +C -1 ; WX 332 ; N threesuperior ; B 18 289 318 747 ; +C -1 ; WX 425 ; N zcaron ; B 10 0 415 764 ; +C -1 ; WX 683 ; N atilde ; B 42 -13 621 754 ; +C -1 ; WX 683 ; N aring ; B 42 -13 621 807 ; +C -1 ; WX 655 ; N ocircumflex ; B 42 -13 614 764 ; +C -1 ; WX 536 ; N Edieresis ; B 70 0 475 928 ; +C -1 ; WX 831 ; N threequarters ; B 46 0 784 747 ; +C -1 ; WX 536 ; N ydieresis ; B 15 -192 523 765 ; +C -1 ; WX 536 ; N yacute ; B 15 -192 523 786 ; +C -1 ; WX 200 ; N iacute ; B 31 0 262 786 ; +C -1 ; WX 740 ; N Acircumflex ; B 12 0 729 927 ; +C -1 ; WX 655 ; N Uacute ; B 75 -13 579 949 ; +C -1 ; WX 650 ; N eacute ; B 38 -13 608 786 ; +C -1 ; WX 869 ; N Ograve ; B 43 -13 826 949 ; +C -1 ; WX 683 ; N agrave ; B 42 -13 621 786 ; +C -1 ; WX 655 ; N Udieresis ; B 75 -13 579 928 ; +C -1 ; WX 683 ; N acircumflex ; B 42 -13 621 764 ; +C -1 ; WX 226 ; N Igrave ; B -47 0 184 949 ; +C -1 ; WX 332 ; N twosuperior ; B 19 296 318 747 ; +C -1 ; WX 655 ; N Ugrave ; B 75 -13 579 949 ; +C -1 ; WX 831 ; N onequarter ; B 100 0 729 740 ; +C -1 ; WX 655 ; N Ucircumflex ; B 75 -13 579 927 ; +C -1 ; WX 498 ; N Scaron ; B 22 -13 473 927 ; +C -1 ; WX 226 ; N Idieresis ; B 2 0 224 928 ; +C -1 ; WX 200 ; N idieresis ; B -11 0 211 765 ; +C -1 ; WX 536 ; N Egrave ; B 70 0 475 949 ; +C -1 ; WX 869 ; N Oacute ; B 43 -13 826 949 ; +C -1 ; WX 606 ; N divide ; B 51 -13 555 519 ; +C -1 ; WX 740 ; N Atilde ; B 12 0 729 917 ; +C -1 ; WX 740 ; N Aring ; B 12 0 729 955 ; +C -1 ; WX 869 ; N Odieresis ; B 43 -13 826 928 ; +C -1 ; WX 740 ; N Adieresis ; B 12 0 729 928 ; +C -1 ; WX 740 ; N Ntilde ; B 75 0 664 917 ; +C -1 ; WX 480 ; N Zcaron ; B 12 0 470 927 ; +C -1 ; WX 592 ; N Thorn ; B 60 0 549 740 ; +C -1 ; WX 226 ; N Iacute ; B 44 0 275 949 ; +C -1 ; WX 606 ; N plusminus ; B 51 -24 555 518 ; +C -1 ; WX 606 ; N multiply ; B 74 24 533 482 ; +C -1 ; WX 536 ; N Eacute ; B 70 0 475 949 ; +C -1 ; WX 592 ; N Ydieresis ; B 1 0 592 928 ; +C -1 ; WX 332 ; N onesuperior ; B 63 296 198 740 ; +C -1 ; WX 608 ; N ugrave ; B 62 -13 541 786 ; +C -1 ; WX 606 ; N logicalnot ; B 51 109 555 388 ; +C -1 ; WX 610 ; N ntilde ; B 65 0 546 754 ; +C -1 ; WX 869 ; N Otilde ; B 43 -13 826 917 ; +C -1 ; WX 655 ; N otilde ; B 42 -13 614 754 ; +C -1 ; WX 813 ; N Ccedilla ; B 43 -222 771 752 ; +C -1 ; WX 740 ; N Agrave ; B 12 0 729 949 ; +C -1 ; WX 831 ; N onehalf ; B 81 0 750 740 ; +C -1 ; WX 790 ; N Eth ; B 40 0 739 740 ; +C -1 ; WX 400 ; N degree ; B 56 421 344 709 ; +C -1 ; WX 592 ; N Yacute ; B 1 0 592 949 ; +C -1 ; WX 869 ; N Ocircumflex ; B 43 -13 826 927 ; +C -1 ; WX 655 ; N oacute ; B 42 -13 614 786 ; +C -1 ; WX 608 ; N mu ; B 80 -184 527 547 ; +C -1 ; WX 606 ; N minus ; B 51 219 555 287 ; +C -1 ; WX 655 ; N eth ; B 42 -12 614 753 ; +C -1 ; WX 655 ; N odieresis ; B 42 -13 614 765 ; +C -1 ; WX 747 ; N copyright ; B -9 -12 755 752 ; +C -1 ; WX 672 ; N brokenbar ; B 299 -100 373 740 ; +EndCharMetrics +StartKernData +StartKernPairs 216 + +KPX A y -62 +KPX A w -65 +KPX A v -70 +KPX A u -20 +KPX A quoteright -100 +KPX A quotedblright -100 +KPX A Y -92 +KPX A W -60 +KPX A V -102 +KPX A U -40 +KPX A T -45 +KPX A Q -40 +KPX A O -50 +KPX A G -40 +KPX A C -40 + +KPX B A -10 + +KPX C A -40 + +KPX D period -20 +KPX D comma -20 +KPX D Y -30 +KPX D W -10 +KPX D V -50 +KPX D A -50 + +KPX F period -160 +KPX F e -20 +KPX F comma -180 +KPX F a -20 +KPX F A -75 + +KPX G period -20 +KPX G comma -20 +KPX G Y -20 + +KPX J period -15 +KPX J a -20 +KPX J A -30 + +KPX K o -15 +KPX K e -20 +KPX K O -20 + +KPX L y -23 +KPX L quoteright -130 +KPX L quotedblright -130 +KPX L Y -91 +KPX L W -67 +KPX L V -113 +KPX L T -46 + +KPX O period -30 +KPX O comma -30 +KPX O Y -30 +KPX O X -30 +KPX O W -20 +KPX O V -60 +KPX O T -30 +KPX O A -60 + +KPX P period -300 +KPX P o -60 +KPX P e -20 +KPX P comma -280 +KPX P a -20 +KPX P A -114 + +KPX Q comma 20 + +KPX R Y -10 +KPX R W 10 +KPX R V -10 +KPX R T 6 + +KPX S comma 20 + +KPX T y -50 +KPX T w -55 +KPX T u -46 +KPX T semicolon -29 +KPX T r -30 +KPX T period -91 +KPX T o -70 +KPX T i 10 +KPX T hyphen -75 +KPX T e -49 +KPX T comma -82 +KPX T colon -15 +KPX T a -90 +KPX T O -30 +KPX T A -45 + +KPX U period -20 +KPX U comma -20 +KPX U A -40 + +KPX V u -40 +KPX V semicolon -33 +KPX V period -165 +KPX V o -101 +KPX V i -5 +KPX V hyphen -75 +KPX V e -101 +KPX V comma -145 +KPX V colon -18 +KPX V a -104 +KPX V O -60 +KPX V G -20 +KPX V A -102 + +KPX W y -2 +KPX W u -30 +KPX W semicolon -33 +KPX W period -106 +KPX W o -46 +KPX W i 6 +KPX W hyphen -35 +KPX W e -47 +KPX W comma -106 +KPX W colon -15 +KPX W a -50 +KPX W O -20 +KPX W A -58 + +KPX Y u -52 +KPX Y semicolon -23 +KPX Y period -175 +KPX Y o -89 +KPX Y hyphen -85 +KPX Y e -89 +KPX Y comma -145 +KPX Y colon -10 +KPX Y a -93 +KPX Y O -30 +KPX Y A -92 + +KPX a p 20 +KPX a b 20 + +KPX b y -20 +KPX b v -20 + +KPX c y -20 +KPX c k -15 + +KPX comma space -110 +KPX comma quoteright -120 +KPX comma quotedblright -120 + +KPX e y -20 +KPX e w -20 +KPX e v -20 + +KPX f period -50 +KPX f o -40 +KPX f l -30 +KPX f i -34 +KPX f f -60 +KPX f e -20 +KPX f dotlessi -34 +KPX f comma -50 +KPX f a -40 + +KPX g a -15 + +KPX h y -30 + +KPX k y -5 +KPX k e -15 + +KPX m y -20 +KPX m u -20 +KPX m a -20 + +KPX n y -15 +KPX n v -20 + +KPX o y -20 +KPX o x -15 +KPX o w -20 +KPX o v -30 + +KPX p y -20 + +KPX period space -110 +KPX period quoteright -120 +KPX period quotedblright -120 + +KPX quotedblleft quoteleft -35 +KPX quotedblleft A -100 + +KPX quotedblright space -110 + +KPX quoteleft quoteleft -203 +KPX quoteleft A -100 + +KPX quoteright v -30 +KPX quoteright t 10 +KPX quoteright space -110 +KPX quoteright s -15 +KPX quoteright r -20 +KPX quoteright quoteright -203 +KPX quoteright quotedblright -35 +KPX quoteright d -110 + +KPX r y 40 +KPX r v 40 +KPX r u 20 +KPX r t 20 +KPX r s 20 +KPX r q -8 +KPX r period -73 +KPX r p 20 +KPX r o -20 +KPX r n 21 +KPX r m 28 +KPX r l 20 +KPX r k 20 +KPX r i 20 +KPX r hyphen -60 +KPX r g -15 +KPX r e -4 +KPX r d -6 +KPX r comma -75 +KPX r c -20 +KPX r a -20 + +KPX s period 20 +KPX s comma 20 + +KPX space quoteleft -110 +KPX space quotedblleft -110 +KPX space Y -60 +KPX space W -25 +KPX space V -50 +KPX space T -25 +KPX space A -20 + +KPX v period -130 +KPX v o -30 +KPX v e -20 +KPX v comma -100 +KPX v a -30 + +KPX w period -100 +KPX w o -30 +KPX w h 15 +KPX w e -20 +KPX w comma -90 +KPX w a -30 + +KPX y period -125 +KPX y o -30 +KPX y e -20 +KPX y comma -110 +KPX y a -30 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 183 163 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 119 163 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 186 163 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 181 163 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 204 148 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 151 163 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 81 163 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 17 163 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 84 163 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 79 163 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute -34 163 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -138 163 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -71 163 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -116 163 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 151 163 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 247 163 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 184 163 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 250 163 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 246 163 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 215 163 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron -2 163 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 160 163 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 77 163 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 143 163 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 119 163 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 129 163 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 112 163 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron -11 163 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 154 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 91 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 157 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 153 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 176 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 122 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 138 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 74 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 141 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 136 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -47 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -151 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -84 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -129 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 86 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 140 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 77 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 143 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 139 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 108 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron -57 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 137 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 53 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 120 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 95 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 101 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 84 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron -38 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Bk+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Bk+ new file mode 100755 index 0000000000000..4245100036faa --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Bk+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 813 ; N Ccaron ; B 43 -13 771 933 ; +C -1 ; WX 647 ; N ccaron ; B 41 -13 607 764 ; +C -1 ; WX 744 ; N Dcaron ; B 74 0 699 933 ; +C -1 ; WX 798 ; N dcaron ; B 39 -13 796 814 ; +C -1 ; WX 536 ; N Ecaron ; B 70 0 475 933 ; +C -1 ; WX 650 ; N ecaron ; B 38 -13 608 764 ; +C -1 ; WX 462 ; N Lcaron ; B 82 0 462 814 ; +C -1 ; WX 462 ; N Lacute ; B 82 0 462 975 ; +C -1 ; WX 313 ; N lcaron ; B 65 0 313 814 ; +C -1 ; WX 200 ; N lacute ; B 14 0 245 975 ; +C -1 ; WX 740 ; N Ncaron ; B 75 0 664 933 ; +C -1 ; WX 610 ; N ncaron ; B 65 0 546 764 ; +C -1 ; WX 607 ; N Rcaron ; B 70 0 572 933 ; +C -1 ; WX 607 ; N Racute ; B 70 0 572 975 ; +C -1 ; WX 301 ; N rcaron ; B -32 0 323 764 ; +C -1 ; WX 301 ; N racute ; B 64 0 295 786 ; +C -1 ; WX 426 ; N Tcaron ; B 6 0 419 933 ; +C -1 ; WX 452 ; N tcaron ; B 14 0 508 740 ; +C -1 ; WX 655 ; N Uring ; B 75 -13 579 933 ; +C -1 ; WX 608 ; N uring ; B 62 -13 541 807 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 228 169 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 100 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 121 169 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 540 74 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 17 169 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 74 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 72 74 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 43 189 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 57 74 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute -64 189 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 119 169 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 54 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 52 169 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 160 189 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron -100 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute -14 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron -38 169 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 252 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 161 126 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 138 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-BkO b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-BkO new file mode 100755 index 0000000000000..e0e75f384e468 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-BkO @@ -0,0 +1,573 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Mon Mar 4 13:41:11 1991 +Comment UniqueID 34367 +Comment VMusage 6555 39267 +FontName AvantGarde-BookOblique +FullName ITC Avant Garde Gothic Book Oblique +FamilyName ITC Avant Garde Gothic +Weight Book +ItalicAngle -10.5 +IsFixedPitch false +FontBBox -113 -222 1279 955 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.006 +Notice Copyright (c) 1985, 1987, 1989, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved.ITC Avant Garde Gothic is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 740 +XHeight 547 +Ascender 740 +Descender -192 +StartCharMetrics 228 +C 32 ; WX 277 ; N space ; B 0 0 0 0 ; +C 33 ; WX 295 ; N exclam ; B 111 0 322 740 ; +C 34 ; WX 309 ; N quotedbl ; B 130 444 410 740 ; +C 35 ; WX 554 ; N numbersign ; B 71 0 620 740 ; +C 36 ; WX 554 ; N dollar ; B 107 -70 581 811 ; +C 37 ; WX 775 ; N percent ; B 124 -13 787 751 ; +C 38 ; WX 757 ; N ampersand ; B 92 -12 775 753 ; +C 39 ; WX 351 ; N quoteright ; B 195 546 393 740 ; +C 40 ; WX 369 ; N parenleft ; B 89 -205 495 757 ; +C 41 ; WX 369 ; N parenright ; B -24 -205 382 757 ; +C 42 ; WX 425 ; N asterisk ; B 170 446 479 740 ; +C 43 ; WX 606 ; N plus ; B 92 0 608 506 ; +C 44 ; WX 277 ; N comma ; B 2 -67 199 126 ; +C 45 ; WX 332 ; N hyphen ; B 76 248 360 315 ; +C 46 ; WX 277 ; N period ; B 102 0 199 126 ; +C 47 ; WX 437 ; N slash ; B 25 -100 540 740 ; +C 48 ; WX 554 ; N zero ; B 71 -13 622 753 ; +C 49 ; WX 554 ; N one ; B 260 0 473 740 ; +C 50 ; WX 554 ; N two ; B 40 0 615 753 ; +C 51 ; WX 554 ; N three ; B 73 -13 565 753 ; +C 52 ; WX 554 ; N four ; B 39 0 598 740 ; +C 53 ; WX 554 ; N five ; B 69 -13 605 740 ; +C 54 ; WX 554 ; N six ; B 65 -13 580 739 ; +C 55 ; WX 554 ; N seven ; B 110 0 628 740 ; +C 56 ; WX 554 ; N eight ; B 77 -13 580 753 ; +C 57 ; WX 554 ; N nine ; B 111 0 626 752 ; +C 58 ; WX 277 ; N colon ; B 102 0 278 548 ; +C 59 ; WX 277 ; N semicolon ; B 2 -67 278 548 ; +C 60 ; WX 606 ; N less ; B 87 -8 649 514 ; +C 61 ; WX 606 ; N equal ; B 73 118 627 388 ; +C 62 ; WX 606 ; N greater ; B 51 -8 613 514 ; +C 63 ; WX 591 ; N question ; B 158 0 628 752 ; +C 64 ; WX 867 ; N at ; B 126 -13 888 753 ; +C 65 ; WX 740 ; N A ; B 12 0 729 740 ; +C 66 ; WX 574 ; N B ; B 74 0 606 740 ; +C 67 ; WX 813 ; N C ; B 105 -13 870 752 ; +C 68 ; WX 744 ; N D ; B 74 0 773 740 ; +C 69 ; WX 536 ; N E ; B 70 0 612 740 ; +C 70 ; WX 485 ; N F ; B 70 0 581 740 ; +C 71 ; WX 872 ; N G ; B 103 -13 891 753 ; +C 72 ; WX 683 ; N H ; B 76 0 744 740 ; +C 73 ; WX 226 ; N I ; B 76 0 287 740 ; +C 74 ; WX 482 ; N J ; B 37 -13 539 740 ; +C 75 ; WX 591 ; N K ; B 81 0 728 740 ; +C 76 ; WX 462 ; N L ; B 82 0 474 740 ; +C 77 ; WX 919 ; N M ; B 76 0 980 740 ; +C 78 ; WX 740 ; N N ; B 75 0 801 740 ; +C 79 ; WX 869 ; N O ; B 105 -13 901 753 ; +C 80 ; WX 592 ; N P ; B 75 0 664 740 ; +C 81 ; WX 871 ; N Q ; B 102 -13 912 753 ; +C 82 ; WX 607 ; N R ; B 70 0 669 740 ; +C 83 ; WX 498 ; N S ; B 57 -13 561 753 ; +C 84 ; WX 426 ; N T ; B 131 0 556 740 ; +C 85 ; WX 655 ; N U ; B 118 -13 716 740 ; +C 86 ; WX 702 ; N V ; B 145 0 830 740 ; +C 87 ; WX 960 ; N W ; B 148 0 1087 740 ; +C 88 ; WX 609 ; N X ; B 8 0 724 740 ; +C 89 ; WX 592 ; N Y ; B 138 0 729 740 ; +C 90 ; WX 480 ; N Z ; B 12 0 596 740 ; +C 91 ; WX 351 ; N bracketleft ; B 145 -179 477 753 ; +C 92 ; WX 605 ; N backslash ; B 255 -100 458 740 ; +C 93 ; WX 351 ; N bracketright ; B -19 -179 312 753 ; +C 94 ; WX 606 ; N asciicircum ; B 110 307 610 740 ; +C 95 ; WX 500 ; N underscore ; B -23 -125 486 -75 ; +C 96 ; WX 351 ; N quoteleft ; B 232 546 358 740 ; +C 97 ; WX 683 ; N a ; B 88 -13 722 561 ; +C 98 ; WX 682 ; N b ; B 68 -13 703 740 ; +C 99 ; WX 647 ; N c ; B 87 -13 678 561 ; +C 100 ; WX 685 ; N d ; B 85 -13 755 740 ; +C 101 ; WX 650 ; N e ; B 84 -13 664 561 ; +C 102 ; WX 314 ; N f ; B 104 0 454 753 ; L i fi ; L l fl ; +C 103 ; WX 673 ; N g ; B 56 -215 707 561 ; +C 104 ; WX 610 ; N h ; B 62 0 606 740 ; +C 105 ; WX 200 ; N i ; B 65 0 272 740 ; +C 106 ; WX 203 ; N j ; B -80 -192 274 740 ; +C 107 ; WX 502 ; N k ; B 70 0 588 740 ; +C 108 ; WX 200 ; N l ; B 65 0 272 740 ; +C 109 ; WX 938 ; N m ; B 66 0 938 561 ; +C 110 ; WX 610 ; N n ; B 65 0 609 561 ; +C 111 ; WX 655 ; N o ; B 88 -13 669 561 ; +C 112 ; WX 682 ; N p ; B 28 -192 699 561 ; +C 113 ; WX 682 ; N q ; B 83 -192 717 561 ; +C 114 ; WX 301 ; N r ; B 65 0 395 561 ; +C 115 ; WX 388 ; N s ; B 49 -13 424 561 ; +C 116 ; WX 339 ; N t ; B 104 0 431 740 ; +C 117 ; WX 608 ; N u ; B 100 -13 642 547 ; +C 118 ; WX 554 ; N v ; B 108 0 647 547 ; +C 119 ; WX 831 ; N w ; B 114 0 921 547 ; +C 120 ; WX 480 ; N x ; B 12 0 569 547 ; +C 121 ; WX 536 ; N y ; B 97 -192 624 547 ; +C 122 ; WX 425 ; N z ; B 10 0 498 547 ; +C 123 ; WX 351 ; N braceleft ; B 115 -189 468 740 ; +C 124 ; WX 672 ; N bar ; B 280 -100 510 740 ; +C 125 ; WX 351 ; N braceright ; B -15 -189 338 740 ; +C 126 ; WX 606 ; N asciitilde ; B 114 179 584 319 ; +C 161 ; WX 295 ; N exclamdown ; B 74 -192 286 548 ; +C 162 ; WX 554 ; N cent ; B 115 62 596 707 ; +C 163 ; WX 554 ; N sterling ; B 29 0 614 753 ; +C 164 ; WX 166 ; N fraction ; B -113 0 417 740 ; +C 165 ; WX 554 ; N yen ; B 75 0 687 740 ; +C 166 ; WX 554 ; N florin ; B -39 -153 669 818 ; +C 167 ; WX 615 ; N section ; B 118 -141 597 753 ; +C 168 ; WX 554 ; N currency ; B 24 42 645 580 ; +C 169 ; WX 198 ; N quotesingle ; B 153 444 277 740 ; +C 170 ; WX 502 ; N quotedblleft ; B 234 546 507 740 ; +C 171 ; WX 425 ; N guillemotleft ; B 92 81 469 481 ; +C 172 ; WX 251 ; N guilsinglleft ; B 92 81 295 481 ; +C 173 ; WX 251 ; N guilsinglright ; B 60 81 263 481 ; +C 174 ; WX 487 ; N fi ; B 104 0 559 753 ; +C 175 ; WX 485 ; N fl ; B 104 0 557 753 ; +C 177 ; WX 500 ; N endash ; B 81 248 523 315 ; +C 178 ; WX 553 ; N dagger ; B 146 -133 593 740 ; +C 179 ; WX 553 ; N daggerdbl ; B 72 -133 593 740 ; +C 180 ; WX 277 ; N periodcentered ; B 137 190 235 316 ; +C 182 ; WX 564 ; N paragraph ; B 119 -110 688 740 ; +C 183 ; WX 606 ; N bullet ; B 217 222 528 532 ; +C 184 ; WX 354 ; N quotesinglbase ; B 76 -68 274 126 ; +C 185 ; WX 502 ; N quotedblbase ; B 76 -68 422 126 ; +C 186 ; WX 484 ; N quotedblright ; B 197 546 542 740 ; +C 187 ; WX 425 ; N guillemotright ; B 60 81 437 481 ; +C 188 ; WX 1000 ; N ellipsis ; B 130 0 893 126 ; +C 189 ; WX 1174 ; N perthousand ; B 128 -13 1182 751 ; +C 191 ; WX 591 ; N questiondown ; B 64 -205 534 548 ; +C 193 ; WX 378 ; N grave ; B 204 619 425 786 ; +C 194 ; WX 375 ; N acute ; B 203 619 444 786 ; +C 195 ; WX 502 ; N circumflex ; B 192 639 546 764 ; +C 196 ; WX 439 ; N tilde ; B 179 651 520 754 ; +C 197 ; WX 485 ; N macron ; B 197 669 547 736 ; +C 198 ; WX 453 ; N breve ; B 192 651 541 754 ; +C 199 ; WX 222 ; N dotaccent ; B 192 639 290 765 ; +C 200 ; WX 369 ; N dieresis ; B 191 639 437 765 ; +C 202 ; WX 332 ; N ring ; B 191 600 401 807 ; +C 203 ; WX 324 ; N cedilla ; B 52 -222 231 0 ; +C 205 ; WX 552 ; N hungarumlaut ; B 239 605 594 800 ; +C 206 ; WX 302 ; N ogonek ; B 53 -191 202 0 ; +C 207 ; WX 502 ; N caron ; B 210 639 565 764 ; +C 208 ; WX 1000 ; N emdash ; B 81 248 1023 315 ; +C 225 ; WX 992 ; N AE ; B -20 0 1044 740 ; +C 227 ; WX 369 ; N ordfeminine ; B 102 407 494 753 ; +C 232 ; WX 517 ; N Lslash ; B 107 0 529 740 ; +C 233 ; WX 868 ; N Oslash ; B 76 -83 929 819 ; +C 234 ; WX 1194 ; N OE ; B 107 -13 1279 753 ; +C 235 ; WX 369 ; N ordmasculine ; B 116 407 466 753 ; +C 241 ; WX 1157 ; N ae ; B 80 -13 1169 561 ; +C 245 ; WX 200 ; N dotlessi ; B 65 0 236 547 ; +C 248 ; WX 300 ; N lslash ; B 95 0 354 740 ; +C 249 ; WX 653 ; N oslash ; B 51 -64 703 614 ; +C 250 ; WX 1137 ; N oe ; B 80 -13 1160 561 ; +C 251 ; WX 554 ; N germandbls ; B 61 -13 578 753 ; +C -1 ; WX 650 ; N ecircumflex ; B 84 -13 664 764 ; +C -1 ; WX 650 ; N edieresis ; B 84 -13 664 765 ; +C -1 ; WX 683 ; N aacute ; B 88 -13 722 786 ; +C -1 ; WX 747 ; N registered ; B 53 -12 830 752 ; +C -1 ; WX 200 ; N icircumflex ; B 41 0 395 764 ; +C -1 ; WX 608 ; N udieresis ; B 100 -13 642 765 ; +C -1 ; WX 655 ; N ograve ; B 88 -13 669 786 ; +C -1 ; WX 608 ; N uacute ; B 100 -13 642 786 ; +C -1 ; WX 608 ; N ucircumflex ; B 100 -13 642 764 ; +C -1 ; WX 740 ; N Aacute ; B 12 0 729 949 ; +C -1 ; WX 200 ; N igrave ; B 65 0 296 786 ; +C -1 ; WX 226 ; N Icircumflex ; B 76 0 439 927 ; +C -1 ; WX 647 ; N ccedilla ; B 87 -222 678 561 ; +C -1 ; WX 683 ; N adieresis ; B 88 -13 722 765 ; +C -1 ; WX 536 ; N Ecircumflex ; B 70 0 612 927 ; +C -1 ; WX 388 ; N scaron ; B 49 -13 508 764 ; +C -1 ; WX 682 ; N thorn ; B 28 -192 699 740 ; +C -1 ; WX 1000 ; N trademark ; B 137 296 953 740 ; +C -1 ; WX 650 ; N egrave ; B 84 -13 664 786 ; +C -1 ; WX 332 ; N threesuperior ; B 98 289 408 747 ; +C -1 ; WX 425 ; N zcaron ; B 10 0 527 764 ; +C -1 ; WX 683 ; N atilde ; B 88 -13 722 754 ; +C -1 ; WX 683 ; N aring ; B 88 -13 722 807 ; +C -1 ; WX 655 ; N ocircumflex ; B 88 -13 669 764 ; +C -1 ; WX 536 ; N Edieresis ; B 70 0 612 928 ; +C -1 ; WX 831 ; N threequarters ; B 126 0 825 747 ; +C -1 ; WX 536 ; N ydieresis ; B 97 -192 624 765 ; +C -1 ; WX 536 ; N yacute ; B 97 -192 624 786 ; +C -1 ; WX 200 ; N iacute ; B 65 0 397 786 ; +C -1 ; WX 740 ; N Acircumflex ; B 12 0 729 927 ; +C -1 ; WX 655 ; N Uacute ; B 118 -13 716 949 ; +C -1 ; WX 650 ; N eacute ; B 84 -13 664 786 ; +C -1 ; WX 869 ; N Ograve ; B 105 -13 901 949 ; +C -1 ; WX 683 ; N agrave ; B 88 -13 722 786 ; +C -1 ; WX 655 ; N Udieresis ; B 118 -13 716 928 ; +C -1 ; WX 683 ; N acircumflex ; B 88 -13 722 764 ; +C -1 ; WX 226 ; N Igrave ; B 76 0 340 949 ; +C -1 ; WX 332 ; N twosuperior ; B 74 296 433 747 ; +C -1 ; WX 655 ; N Ugrave ; B 118 -13 716 949 ; +C -1 ; WX 831 ; N onequarter ; B 183 0 770 740 ; +C -1 ; WX 655 ; N Ucircumflex ; B 118 -13 716 927 ; +C -1 ; WX 498 ; N Scaron ; B 57 -13 593 927 ; +C -1 ; WX 226 ; N Idieresis ; B 76 0 396 928 ; +C -1 ; WX 200 ; N idieresis ; B 65 0 353 765 ; +C -1 ; WX 536 ; N Egrave ; B 70 0 612 949 ; +C -1 ; WX 869 ; N Oacute ; B 105 -13 901 949 ; +C -1 ; WX 606 ; N divide ; B 92 -13 608 519 ; +C -1 ; WX 740 ; N Atilde ; B 12 0 729 917 ; +C -1 ; WX 740 ; N Aring ; B 12 0 729 955 ; +C -1 ; WX 869 ; N Odieresis ; B 105 -13 901 928 ; +C -1 ; WX 740 ; N Adieresis ; B 12 0 729 928 ; +C -1 ; WX 740 ; N Ntilde ; B 75 0 801 917 ; +C -1 ; WX 480 ; N Zcaron ; B 12 0 596 927 ; +C -1 ; WX 592 ; N Thorn ; B 60 0 621 740 ; +C -1 ; WX 226 ; N Iacute ; B 76 0 440 949 ; +C -1 ; WX 606 ; N plusminus ; B 47 -24 618 518 ; +C -1 ; WX 606 ; N multiply ; B 87 24 612 482 ; +C -1 ; WX 536 ; N Eacute ; B 70 0 612 949 ; +C -1 ; WX 592 ; N Ydieresis ; B 138 0 729 928 ; +C -1 ; WX 332 ; N onesuperior ; B 190 296 335 740 ; +C -1 ; WX 608 ; N ugrave ; B 100 -13 642 786 ; +C -1 ; WX 606 ; N logicalnot ; B 110 109 627 388 ; +C -1 ; WX 610 ; N ntilde ; B 65 0 609 754 ; +C -1 ; WX 869 ; N Otilde ; B 105 -13 901 917 ; +C -1 ; WX 655 ; N otilde ; B 88 -13 669 754 ; +C -1 ; WX 813 ; N Ccedilla ; B 105 -222 870 752 ; +C -1 ; WX 740 ; N Agrave ; B 12 0 729 949 ; +C -1 ; WX 831 ; N onehalf ; B 164 0 810 740 ; +C -1 ; WX 790 ; N Eth ; B 104 0 813 740 ; +C -1 ; WX 400 ; N degree ; B 158 421 451 709 ; +C -1 ; WX 592 ; N Yacute ; B 138 0 729 949 ; +C -1 ; WX 869 ; N Ocircumflex ; B 105 -13 901 927 ; +C -1 ; WX 655 ; N oacute ; B 88 -13 669 786 ; +C -1 ; WX 608 ; N mu ; B 46 -184 628 547 ; +C -1 ; WX 606 ; N minus ; B 92 219 608 287 ; +C -1 ; WX 655 ; N eth ; B 88 -12 675 753 ; +C -1 ; WX 655 ; N odieresis ; B 88 -13 669 765 ; +C -1 ; WX 747 ; N copyright ; B 53 -12 830 752 ; +C -1 ; WX 672 ; N brokenbar ; B 280 -100 510 740 ; +EndCharMetrics +StartKernData +StartKernPairs 216 + +KPX A y -62 +KPX A w -65 +KPX A v -70 +KPX A u -20 +KPX A quoteright -100 +KPX A quotedblright -100 +KPX A Y -92 +KPX A W -60 +KPX A V -102 +KPX A U -40 +KPX A T -45 +KPX A Q -40 +KPX A O -50 +KPX A G -40 +KPX A C -40 + +KPX B A -10 + +KPX C A -40 + +KPX D period -20 +KPX D comma -20 +KPX D Y -30 +KPX D W -10 +KPX D V -50 +KPX D A -50 + +KPX F period -160 +KPX F e -20 +KPX F comma -180 +KPX F a -20 +KPX F A -75 + +KPX G period -20 +KPX G comma -20 +KPX G Y -20 + +KPX J period -15 +KPX J a -20 +KPX J A -30 + +KPX K o -15 +KPX K e -20 +KPX K O -20 + +KPX L y -23 +KPX L quoteright -130 +KPX L quotedblright -130 +KPX L Y -91 +KPX L W -67 +KPX L V -113 +KPX L T -46 + +KPX O period -30 +KPX O comma -30 +KPX O Y -30 +KPX O X -30 +KPX O W -20 +KPX O V -60 +KPX O T -30 +KPX O A -60 + +KPX P period -300 +KPX P o -60 +KPX P e -20 +KPX P comma -280 +KPX P a -20 +KPX P A -114 + +KPX Q comma 20 + +KPX R Y -10 +KPX R W 10 +KPX R V -10 +KPX R T 6 + +KPX S comma 20 + +KPX T y -50 +KPX T w -55 +KPX T u -46 +KPX T semicolon -29 +KPX T r -30 +KPX T period -91 +KPX T o -70 +KPX T i 10 +KPX T hyphen -75 +KPX T e -49 +KPX T comma -82 +KPX T colon -15 +KPX T a -90 +KPX T O -30 +KPX T A -45 + +KPX U period -20 +KPX U comma -20 +KPX U A -40 + +KPX V u -40 +KPX V semicolon -33 +KPX V period -165 +KPX V o -101 +KPX V i -5 +KPX V hyphen -75 +KPX V e -101 +KPX V comma -145 +KPX V colon -18 +KPX V a -104 +KPX V O -60 +KPX V G -20 +KPX V A -102 + +KPX W y -2 +KPX W u -30 +KPX W semicolon -33 +KPX W period -106 +KPX W o -46 +KPX W i 6 +KPX W hyphen -35 +KPX W e -47 +KPX W comma -106 +KPX W colon -15 +KPX W a -50 +KPX W O -20 +KPX W A -58 + +KPX Y u -52 +KPX Y semicolon -23 +KPX Y period -175 +KPX Y o -89 +KPX Y hyphen -85 +KPX Y e -89 +KPX Y comma -145 +KPX Y colon -10 +KPX Y a -93 +KPX Y O -30 +KPX Y A -92 + +KPX a p 20 +KPX a b 20 + +KPX b y -20 +KPX b v -20 + +KPX c y -20 +KPX c k -15 + +KPX comma space -110 +KPX comma quoteright -120 +KPX comma quotedblright -120 + +KPX e y -20 +KPX e w -20 +KPX e v -20 + +KPX f period -50 +KPX f o -40 +KPX f l -30 +KPX f i -34 +KPX f f -60 +KPX f e -20 +KPX f dotlessi -34 +KPX f comma -50 +KPX f a -40 + +KPX g a -15 + +KPX h y -30 + +KPX k y -5 +KPX k e -15 + +KPX m y -20 +KPX m u -20 +KPX m a -20 + +KPX n y -15 +KPX n v -20 + +KPX o y -20 +KPX o x -15 +KPX o w -20 +KPX o v -30 + +KPX p y -20 + +KPX period space -110 +KPX period quoteright -120 +KPX period quotedblright -120 + +KPX quotedblleft quoteleft -35 +KPX quotedblleft A -100 + +KPX quotedblright space -110 + +KPX quoteleft quoteleft -203 +KPX quoteleft A -100 + +KPX quoteright v -30 +KPX quoteright t 10 +KPX quoteright space -110 +KPX quoteright s -15 +KPX quoteright r -20 +KPX quoteright quoteright -203 +KPX quoteright quotedblright -35 +KPX quoteright d -110 + +KPX r y 40 +KPX r v 40 +KPX r u 20 +KPX r t 20 +KPX r s 20 +KPX r q -8 +KPX r period -73 +KPX r p 20 +KPX r o -20 +KPX r n 21 +KPX r m 28 +KPX r l 20 +KPX r k 20 +KPX r i 20 +KPX r hyphen -60 +KPX r g -15 +KPX r e -4 +KPX r d -6 +KPX r comma -75 +KPX r c -20 +KPX r a -20 + +KPX s period 20 +KPX s comma 20 + +KPX space quoteleft -110 +KPX space quotedblleft -110 +KPX space Y -60 +KPX space W -25 +KPX space V -50 +KPX space T -25 +KPX space A -20 + +KPX v period -130 +KPX v o -30 +KPX v e -20 +KPX v comma -100 +KPX v a -30 + +KPX w period -100 +KPX w o -30 +KPX w h 15 +KPX w e -20 +KPX w comma -90 +KPX w a -30 + +KPX y period -125 +KPX y o -30 +KPX y e -20 +KPX y comma -110 +KPX y a -30 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 213 163 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 149 163 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 216 163 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 211 163 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 231 148 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 181 163 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 111 163 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 47 163 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 114 163 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 109 163 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute -4 163 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -108 163 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -41 163 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -86 163 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 181 163 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 277 163 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 214 163 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 280 163 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 276 163 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 245 163 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 28 163 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 190 163 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 107 163 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 173 163 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 149 163 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 159 163 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 142 163 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 19 163 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 154 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 91 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 157 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 153 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 176 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 122 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 138 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 74 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 141 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 136 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -47 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -151 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -84 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -129 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 86 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 140 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 77 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 143 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 139 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 108 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron -57 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 137 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 53 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 120 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 95 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 101 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 84 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron -38 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-BkO+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-BkO+ new file mode 100755 index 0000000000000..48b85b58d57b5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-BkO+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 813 ; N Ccaron ; B 105 -13 870 933 ; +C -1 ; WX 647 ; N ccaron ; B 87 -13 678 764 ; +C -1 ; WX 744 ; N Dcaron ; B 74 0 773 933 ; +C -1 ; WX 824 ; N dcaron ; B 85 -13 973 814 ; +C -1 ; WX 536 ; N Ecaron ; B 70 0 612 933 ; +C -1 ; WX 650 ; N ecaron ; B 84 -13 664 764 ; +C -1 ; WX 462 ; N Lcaron ; B 82 0 505 814 ; +C -1 ; WX 462 ; N Lacute ; B 82 0 520 975 ; +C -1 ; WX 339 ; N lcaron ; B 65 0 490 814 ; +C -1 ; WX 200 ; N lacute ; B 65 0 414 975 ; +C -1 ; WX 740 ; N Ncaron ; B 75 0 801 933 ; +C -1 ; WX 610 ; N ncaron ; B 65 0 619 764 ; +C -1 ; WX 607 ; N Rcaron ; B 70 0 669 933 ; +C -1 ; WX 607 ; N Racute ; B 70 0 669 975 ; +C -1 ; WX 301 ; N rcaron ; B 65 0 465 764 ; +C -1 ; WX 301 ; N racute ; B 65 0 431 786 ; +C -1 ; WX 426 ; N Tcaron ; B 131 0 556 933 ; +C -1 ; WX 478 ; N tcaron ; B 104 0 649 740 ; +C -1 ; WX 655 ; N Uring ; B 118 -13 716 933 ; +C -1 ; WX 608 ; N uring ; B 100 -13 642 807 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 261 169 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 102 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 150 169 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 580 74 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 46 169 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 74 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 112 74 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 76 189 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 97 74 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute -30 189 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 148 169 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 54 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 81 169 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 195 189 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron -100 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute -13 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron -9 169 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 256 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 183 126 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 138 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnBd b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnBd new file mode 100755 index 0000000000000..429d72f6648d0 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnBd @@ -0,0 +1,447 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu Apr 12 12:20:42 1990 +Comment UniqueID 28708 +Comment VMusage 26256 33148 +FontName AvantGarde-CondBold +FullName ITC Avant Garde Gothic Condensed Bold +FamilyName ITC Avant Garde Gothic +Weight Bold +ItalicAngle 0 +IsFixedPitch false +FontBBox -167 -234 1000 1001 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +Notice Copyright (c) 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Avant Garde Gothic is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 724 +XHeight 568 +Ascender 724 +Descender -180 +StartCharMetrics 228 +C 32 ; WX 278 ; N space ; B 0 0 0 0 ; +C 33 ; WX 278 ; N exclam ; B 65 0 213 724 ; +C 34 ; WX 333 ; N quotedbl ; B 10 444 323 724 ; +C 35 ; WX 556 ; N numbersign ; B 22 0 534 724 ; +C 36 ; WX 556 ; N dollar ; B 48 -72 508 780 ; +C 37 ; WX 889 ; N percent ; B 44 -12 845 736 ; +C 38 ; WX 667 ; N ampersand ; B 34 -12 642 736 ; +C 39 ; WX 222 ; N quoteright ; B 2 486 228 736 ; +C 40 ; WX 389 ; N parenleft ; B 42 -210 345 742 ; +C 41 ; WX 389 ; N parenright ; B 44 -210 347 742 ; +C 42 ; WX 444 ; N asterisk ; B 30 344 414 724 ; +C 43 ; WX 600 ; N plus ; B 47 0 553 506 ; +C 44 ; WX 278 ; N comma ; B 14 -102 212 148 ; +C 45 ; WX 333 ; N hyphen ; B 42 221 291 347 ; +C 46 ; WX 278 ; N period ; B 72 0 206 148 ; +C 47 ; WX 278 ; N slash ; B -38 -12 315 736 ; +C 48 ; WX 556 ; N zero ; B 36 -12 520 736 ; +C 49 ; WX 556 ; N one ; B 114 0 366 724 ; +C 50 ; WX 556 ; N two ; B 44 0 505 736 ; +C 51 ; WX 556 ; N three ; B 32 -12 520 736 ; +C 52 ; WX 556 ; N four ; B 34 0 510 724 ; +C 53 ; WX 556 ; N five ; B 50 -12 518 724 ; +C 54 ; WX 556 ; N six ; B 34 -12 520 736 ; +C 55 ; WX 556 ; N seven ; B 56 0 500 724 ; +C 56 ; WX 556 ; N eight ; B 31 -12 525 736 ; +C 57 ; WX 556 ; N nine ; B 30 -12 522 736 ; +C 58 ; WX 278 ; N colon ; B 72 0 206 490 ; +C 59 ; WX 278 ; N semicolon ; B 14 -102 212 490 ; +C 60 ; WX 600 ; N less ; B 47 -9 553 515 ; +C 61 ; WX 600 ; N equal ; B 47 82 553 424 ; +C 62 ; WX 600 ; N greater ; B 47 -9 553 515 ; +C 63 ; WX 500 ; N question ; B 28 0 462 736 ; +C 64 ; WX 800 ; N at ; B 44 -12 756 736 ; +C 65 ; WX 556 ; N A ; B 2 0 554 724 ; +C 66 ; WX 556 ; N B ; B 63 0 520 724 ; +C 67 ; WX 611 ; N C ; B 33 -12 569 736 ; +C 68 ; WX 611 ; N D ; B 62 0 577 724 ; +C 69 ; WX 500 ; N E ; B 70 0 430 724 ; +C 70 ; WX 444 ; N F ; B 58 0 400 724 ; +C 71 ; WX 611 ; N G ; B 33 -12 569 736 ; +C 72 ; WX 611 ; N H ; B 63 0 548 724 ; +C 73 ; WX 278 ; N I ; B 63 0 215 724 ; +C 74 ; WX 500 ; N J ; B 4 -12 430 724 ; +C 75 ; WX 556 ; N K ; B 63 0 557 724 ; +C 76 ; WX 444 ; N L ; B 70 0 416 724 ; +C 77 ; WX 778 ; N M ; B 66 0 712 724 ; +C 78 ; WX 611 ; N N ; B 66 0 544 724 ; +C 79 ; WX 611 ; N O ; B 33 -12 577 736 ; +C 80 ; WX 556 ; N P ; B 70 0 522 724 ; +C 81 ; WX 611 ; N Q ; B 33 -12 577 736 ; +C 82 ; WX 556 ; N R ; B 63 0 551 724 ; +C 83 ; WX 556 ; N S ; B 34 -12 522 736 ; +C 84 ; WX 444 ; N T ; B 22 0 422 724 ; +C 85 ; WX 611 ; N U ; B 61 -12 549 724 ; +C 86 ; WX 556 ; N V ; B 9 0 547 724 ; +C 87 ; WX 833 ; N W ; B 4 0 828 724 ; +C 88 ; WX 556 ; N X ; B 1 0 555 724 ; +C 89 ; WX 500 ; N Y ; B -4 0 504 724 ; +C 90 ; WX 500 ; N Z ; B 36 0 456 724 ; +C 91 ; WX 389 ; N bracketleft ; B 62 -200 328 724 ; +C 92 ; WX 278 ; N backslash ; B -37 -12 316 736 ; +C 93 ; WX 389 ; N bracketright ; B 61 -200 327 724 ; +C 94 ; WX 600 ; N asciicircum ; B 73 374 527 724 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 222 ; N quoteleft ; B -6 486 220 736 ; +C 97 ; WX 500 ; N a ; B 31 -12 442 580 ; +C 98 ; WX 500 ; N b ; B 58 -12 469 724 ; +C 99 ; WX 444 ; N c ; B 31 -12 439 580 ; +C 100 ; WX 500 ; N d ; B 31 -12 442 724 ; +C 101 ; WX 500 ; N e ; B 31 -12 457 580 ; +C 102 ; WX 278 ; N f ; B 16 0 276 724 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B 31 -192 442 580 ; +C 104 ; WX 500 ; N h ; B 58 0 442 724 ; +C 105 ; WX 278 ; N i ; B 72 0 206 724 ; +C 106 ; WX 278 ; N j ; B 14 -192 206 724 ; +C 107 ; WX 444 ; N k ; B 50 0 450 724 ; +C 108 ; WX 278 ; N l ; B 72 0 206 724 ; +C 109 ; WX 778 ; N m ; B 64 0 714 580 ; +C 110 ; WX 500 ; N n ; B 58 0 442 580 ; +C 111 ; WX 500 ; N o ; B 31 -12 469 580 ; +C 112 ; WX 500 ; N p ; B 58 -180 469 580 ; +C 113 ; WX 500 ; N q ; B 31 -180 442 580 ; +C 114 ; WX 333 ; N r ; B 58 0 324 590 ; +C 115 ; WX 444 ; N s ; B 12 -12 420 580 ; +C 116 ; WX 278 ; N t ; B 12 0 266 676 ; +C 117 ; WX 500 ; N u ; B 58 -12 442 568 ; +C 118 ; WX 444 ; N v ; B 5 0 439 568 ; +C 119 ; WX 667 ; N w ; B 1 0 665 568 ; +C 120 ; WX 500 ; N x ; B 4 0 496 568 ; +C 121 ; WX 444 ; N y ; B 3 -180 441 568 ; +C 122 ; WX 444 ; N z ; B 28 0 396 568 ; +C 123 ; WX 389 ; N braceleft ; B 22 -216 313 736 ; +C 124 ; WX 222 ; N bar ; B 50 -12 172 736 ; +C 125 ; WX 389 ; N braceright ; B 76 -216 367 736 ; +C 126 ; WX 600 ; N asciitilde ; B 82 159 518 347 ; +C 161 ; WX 278 ; N exclamdown ; B 65 -156 213 568 ; +C 162 ; WX 556 ; N cent ; B 58 -20 488 724 ; +C 163 ; WX 556 ; N sterling ; B 14 0 532 736 ; +C 164 ; WX 167 ; N fraction ; B -167 -12 334 736 ; +C 165 ; WX 556 ; N yen ; B 24 0 532 724 ; +C 166 ; WX 556 ; N florin ; B 9 -192 547 736 ; +C 167 ; WX 500 ; N section ; B 43 -86 457 736 ; +C 168 ; WX 556 ; N currency ; B 18 102 538 622 ; +C 169 ; WX 222 ; N quotesingle ; B 49 444 173 724 ; +C 170 ; WX 444 ; N quotedblleft ; B 12 486 423 736 ; +C 171 ; WX 444 ; N guillemotleft ; B 24 102 420 466 ; +C 172 ; WX 278 ; N guilsinglleft ; B 32 102 246 466 ; +C 173 ; WX 278 ; N guilsinglright ; B 32 102 246 466 ; +C 174 ; WX 556 ; N fi ; B 26 0 484 724 ; +C 175 ; WX 556 ; N fl ; B 26 0 484 724 ; +C 177 ; WX 500 ; N endash ; B 0 239 500 329 ; +C 178 ; WX 500 ; N dagger ; B 54 -80 446 724 ; +C 179 ; WX 500 ; N daggerdbl ; B 54 -80 446 724 ; +C 180 ; WX 278 ; N periodcentered ; B 63 177 215 329 ; +C 182 ; WX 620 ; N paragraph ; B 30 -80 550 724 ; +C 183 ; WX 500 ; N bullet ; B 69 181 431 543 ; +C 184 ; WX 222 ; N quotesinglbase ; B 2 -102 228 148 ; +C 185 ; WX 444 ; N quotedblbase ; B 21 -102 432 148 ; +C 186 ; WX 444 ; N quotedblright ; B 21 486 432 736 ; +C 187 ; WX 444 ; N guillemotright ; B 24 102 420 466 ; +C 188 ; WX 1000 ; N ellipsis ; B 100 0 900 148 ; +C 189 ; WX 1000 ; N perthousand ; B 22 -12 978 736 ; +C 191 ; WX 500 ; N questiondown ; B 38 -168 472 568 ; +C 193 ; WX 278 ; N grave ; B -26 626 222 774 ; +C 194 ; WX 278 ; N acute ; B 56 626 304 774 ; +C 195 ; WX 278 ; N circumflex ; B -38 626 316 774 ; +C 196 ; WX 278 ; N tilde ; B -44 636 322 764 ; +C 197 ; WX 278 ; N macron ; B -28 662 306 736 ; +C 198 ; WX 278 ; N breve ; B -28 630 306 774 ; +C 199 ; WX 278 ; N dotaccent ; B 76 640 202 752 ; +C 200 ; WX 278 ; N dieresis ; B -22 640 300 752 ; +C 202 ; WX 278 ; N ring ; B 25 632 253 860 ; +C 203 ; WX 278 ; N cedilla ; B 16 -234 252 0 ; +C 205 ; WX 278 ; N hungarumlaut ; B -22 626 386 774 ; +C 206 ; WX 278 ; N ogonek ; B 25 -216 281 22 ; +C 207 ; WX 278 ; N caron ; B -38 626 316 774 ; +C 208 ; WX 1000 ; N emdash ; B 0 239 1000 329 ; +C 225 ; WX 889 ; N AE ; B -12 0 804 724 ; +C 227 ; WX 300 ; N ordfeminine ; B 4 381 280 736 ; +C 232 ; WX 444 ; N Lslash ; B 7 0 416 724 ; +C 233 ; WX 611 ; N Oslash ; B 0 -42 610 766 ; +C 234 ; WX 889 ; N OE ; B 33 -12 819 736 ; +C 235 ; WX 300 ; N ordmasculine ; B 7 380 293 736 ; +C 241 ; WX 778 ; N ae ; B 16 -12 754 580 ; +C 245 ; WX 278 ; N dotlessi ; B 72 0 206 568 ; +C 248 ; WX 278 ; N lslash ; B -4 0 282 724 ; +C 249 ; WX 500 ; N oslash ; B 5 -82 495 646 ; +C 250 ; WX 778 ; N oe ; B 28 -12 754 580 ; +C 251 ; WX 556 ; N germandbls ; B 60 -12 522 716 ; +C -1 ; WX 500 ; N Zcaron ; B 36 0 456 915 ; +C -1 ; WX 444 ; N ccedilla ; B 31 -234 439 580 ; +C -1 ; WX 444 ; N ydieresis ; B 3 -180 441 752 ; +C -1 ; WX 500 ; N atilde ; B 31 -12 442 764 ; +C -1 ; WX 278 ; N icircumflex ; B -38 0 316 774 ; +C -1 ; WX 333 ; N threesuperior ; B 12 286 330 736 ; +C -1 ; WX 500 ; N ecircumflex ; B 31 -12 457 774 ; +C -1 ; WX 500 ; N thorn ; B 58 -180 469 724 ; +C -1 ; WX 500 ; N egrave ; B 31 -12 457 774 ; +C -1 ; WX 333 ; N twosuperior ; B 14 294 320 736 ; +C -1 ; WX 500 ; N eacute ; B 31 -12 457 774 ; +C -1 ; WX 500 ; N otilde ; B 31 -12 469 764 ; +C -1 ; WX 556 ; N Aacute ; B 2 0 554 915 ; +C -1 ; WX 500 ; N ocircumflex ; B 31 -12 469 774 ; +C -1 ; WX 444 ; N yacute ; B 3 -180 441 774 ; +C -1 ; WX 500 ; N udieresis ; B 58 -12 442 752 ; +C -1 ; WX 834 ; N threequarters ; B 32 -12 801 736 ; +C -1 ; WX 500 ; N acircumflex ; B 31 -12 442 774 ; +C -1 ; WX 611 ; N Eth ; B 4 0 577 724 ; +C -1 ; WX 500 ; N edieresis ; B 31 -12 457 752 ; +C -1 ; WX 500 ; N ugrave ; B 58 -12 442 774 ; +C -1 ; WX 1000 ; N trademark ; B 20 298 932 724 ; +C -1 ; WX 500 ; N ograve ; B 31 -12 469 774 ; +C -1 ; WX 444 ; N scaron ; B 12 -12 420 774 ; +C -1 ; WX 278 ; N Idieresis ; B -22 0 300 893 ; +C -1 ; WX 500 ; N uacute ; B 58 -12 442 774 ; +C -1 ; WX 500 ; N agrave ; B 31 -12 442 774 ; +C -1 ; WX 500 ; N ntilde ; B 58 0 442 764 ; +C -1 ; WX 500 ; N aring ; B 31 -12 442 860 ; +C -1 ; WX 444 ; N zcaron ; B 28 0 399 774 ; +C -1 ; WX 278 ; N Icircumflex ; B -38 0 316 915 ; +C -1 ; WX 611 ; N Ntilde ; B 66 0 544 905 ; +C -1 ; WX 500 ; N ucircumflex ; B 58 -12 442 774 ; +C -1 ; WX 500 ; N Ecircumflex ; B 70 0 430 915 ; +C -1 ; WX 278 ; N Iacute ; B 56 0 304 915 ; +C -1 ; WX 611 ; N Ccedilla ; B 33 -234 569 736 ; +C -1 ; WX 611 ; N Odieresis ; B 33 -12 577 893 ; +C -1 ; WX 556 ; N Scaron ; B 34 -12 522 915 ; +C -1 ; WX 500 ; N Edieresis ; B 70 0 430 893 ; +C -1 ; WX 278 ; N Igrave ; B -26 0 222 915 ; +C -1 ; WX 500 ; N adieresis ; B 31 -12 442 752 ; +C -1 ; WX 611 ; N Ograve ; B 33 -12 577 915 ; +C -1 ; WX 500 ; N Egrave ; B 70 0 430 915 ; +C -1 ; WX 500 ; N Ydieresis ; B -4 0 504 893 ; +C -1 ; WX 800 ; N registered ; B 12 -12 788 736 ; +C -1 ; WX 611 ; N Otilde ; B 33 -12 577 905 ; +C -1 ; WX 834 ; N onequarter ; B 76 -12 801 736 ; +C -1 ; WX 611 ; N Ugrave ; B 61 -12 549 915 ; +C -1 ; WX 611 ; N Ucircumflex ; B 61 -12 549 915 ; +C -1 ; WX 556 ; N Thorn ; B 70 0 522 724 ; +C -1 ; WX 600 ; N divide ; B 47 -47 553 553 ; +C -1 ; WX 556 ; N Atilde ; B 2 0 554 905 ; +C -1 ; WX 611 ; N Uacute ; B 61 -12 549 915 ; +C -1 ; WX 611 ; N Ocircumflex ; B 33 -12 577 915 ; +C -1 ; WX 600 ; N logicalnot ; B 47 82 553 424 ; +C -1 ; WX 556 ; N Aring ; B 2 0 554 1001 ; +C -1 ; WX 278 ; N idieresis ; B -22 0 300 752 ; +C -1 ; WX 278 ; N iacute ; B 56 0 304 774 ; +C -1 ; WX 500 ; N aacute ; B 31 -12 442 774 ; +C -1 ; WX 600 ; N plusminus ; B 47 0 553 506 ; +C -1 ; WX 600 ; N multiply ; B 47 0 553 506 ; +C -1 ; WX 611 ; N Udieresis ; B 61 -12 549 893 ; +C -1 ; WX 600 ; N minus ; B 47 192 553 314 ; +C -1 ; WX 333 ; N onesuperior ; B 56 294 232 728 ; +C -1 ; WX 500 ; N Eacute ; B 70 0 430 915 ; +C -1 ; WX 556 ; N Acircumflex ; B 2 0 554 915 ; +C -1 ; WX 800 ; N copyright ; B 12 -12 788 736 ; +C -1 ; WX 556 ; N Agrave ; B 2 0 554 915 ; +C -1 ; WX 500 ; N odieresis ; B 31 -12 469 752 ; +C -1 ; WX 500 ; N oacute ; B 31 -12 469 774 ; +C -1 ; WX 400 ; N degree ; B 52 440 348 736 ; +C -1 ; WX 278 ; N igrave ; B -26 0 222 774 ; +C -1 ; WX 500 ; N mu ; B 58 -180 442 568 ; +C -1 ; WX 611 ; N Oacute ; B 33 -12 577 915 ; +C -1 ; WX 500 ; N eth ; B 31 -10 469 736 ; +C -1 ; WX 556 ; N Adieresis ; B 2 0 554 893 ; +C -1 ; WX 500 ; N Yacute ; B -4 0 504 915 ; +C -1 ; WX 222 ; N brokenbar ; B 50 -12 172 736 ; +C -1 ; WX 834 ; N onehalf ; B 76 -12 801 736 ; +EndCharMetrics +StartKernData +StartKernPairs 115 + +KPX A y -18 +KPX A w -18 +KPX A v -18 +KPX A quoteright -55 +KPX A Y -37 +KPX A W -37 +KPX A V -37 +KPX A T -37 + +KPX F period -111 +KPX F comma -111 +KPX F A -18 + +KPX L y -37 +KPX L quoteright -92 +KPX L Y -55 +KPX L W -55 +KPX L V -55 +KPX L T -55 + +KPX P period -129 +KPX P comma -129 +KPX P A -37 + +KPX R y 0 +KPX R Y -18 +KPX R W -18 +KPX R V -18 +KPX R T -18 + +KPX T y -37 +KPX T w -55 +KPX T u -37 +KPX T semicolon -55 +KPX T s -55 +KPX T r -37 +KPX T period -74 +KPX T o -55 +KPX T i -37 +KPX T hyphen -55 +KPX T e -55 +KPX T comma -74 +KPX T colon -55 +KPX T c -55 +KPX T a -55 +KPX T A -37 + +KPX V y -18 +KPX V u -18 +KPX V semicolon -37 +KPX V r -18 +KPX V period -92 +KPX V o -37 +KPX V i -18 +KPX V hyphen -55 +KPX V e -37 +KPX V comma -92 +KPX V colon -37 +KPX V a -37 +KPX V A -37 + +KPX W y 0 +KPX W u 0 +KPX W semicolon -18 +KPX W r 0 +KPX W period -74 +KPX W o -18 +KPX W i 0 +KPX W hyphen -18 +KPX W e -18 +KPX W comma -74 +KPX W colon -18 +KPX W a -18 +KPX W A -18 + +KPX Y v -18 +KPX Y u -18 +KPX Y semicolon -37 +KPX Y q -37 +KPX Y period -74 +KPX Y p -18 +KPX Y o -37 +KPX Y i -18 +KPX Y hyphen -55 +KPX Y e -37 +KPX Y comma -74 +KPX Y colon -37 +KPX Y a -37 +KPX Y A -37 + +KPX f quoteright 18 +KPX f f 0 + +KPX quoteleft quoteleft -37 + +KPX quoteright t 0 +KPX quoteright s -55 +KPX quoteright quoteright -37 + +KPX r z 0 +KPX r y 0 +KPX r x 0 +KPX r w 0 +KPX r v 0 +KPX r u 0 +KPX r t 0 +KPX r r 0 +KPX r quoteright 18 +KPX r q 0 +KPX r period -55 +KPX r o 0 +KPX r n 0 +KPX r m 0 +KPX r hyphen -37 +KPX r h 0 +KPX r g 0 +KPX r f 0 +KPX r e 0 +KPX r d 0 +KPX r comma -55 +KPX r c 0 + +KPX v period -55 +KPX v comma -55 + +KPX w period -37 +KPX w comma -37 + +KPX y period -55 +KPX y comma -55 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 139 141 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 139 141 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 139 141 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 139 141 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 139 141 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 139 141 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 167 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 111 141 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 111 141 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 111 141 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 111 141 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 0 141 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 0 141 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 0 141 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 141 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 167 141 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 167 141 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 167 141 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 167 141 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 167 141 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 167 141 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 139 141 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 167 141 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 167 141 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 167 141 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 167 141 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 111 141 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 111 141 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 111 141 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 111 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 111 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 111 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 111 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 111 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 111 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 83 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 111 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 111 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 111 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 111 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 111 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 111 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 111 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 111 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 111 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 111 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 83 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 111 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 111 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 111 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 111 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 83 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 83 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 83 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnBd+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnBd+ new file mode 100755 index 0000000000000..c66eaeaa53c60 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnBd+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 611 ; N Ccaron ; B 33 -12 569 938 ; +C -1 ; WX 444 ; N ccaron ; B 31 -12 439 774 ; +C -1 ; WX 611 ; N Dcaron ; B 62 0 577 938 ; +C -1 ; WX 658 ; N dcaron ; B 31 -12 691 796 ; +C -1 ; WX 500 ; N Ecaron ; B 70 0 430 938 ; +C -1 ; WX 500 ; N ecaron ; B 31 -12 457 774 ; +C -1 ; WX 444 ; N Lcaron ; B 70 0 464 796 ; +C -1 ; WX 444 ; N Lacute ; B 70 0 416 938 ; +C -1 ; WX 436 ; N lcaron ; B 72 0 455 796 ; +C -1 ; WX 278 ; N lacute ; B 72 0 329 938 ; +C -1 ; WX 611 ; N Ncaron ; B 66 0 544 938 ; +C -1 ; WX 500 ; N ncaron ; B 58 0 442 774 ; +C -1 ; WX 556 ; N Rcaron ; B 63 0 551 938 ; +C -1 ; WX 556 ; N Racute ; B 63 0 551 938 ; +C -1 ; WX 333 ; N rcaron ; B -11 0 343 774 ; +C -1 ; WX 333 ; N racute ; B 58 0 356 774 ; +C -1 ; WX 444 ; N Tcaron ; B 22 0 422 938 ; +C -1 ; WX 436 ; N tcaron ; B 12 0 515 736 ; +C -1 ; WX 611 ; N Uring ; B 61 -12 549 938 ; +C -1 ; WX 500 ; N uring ; B 58 -12 442 860 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 220 164 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 103 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 166 164 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 463 60 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 111 164 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 111 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 236 60 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 83 164 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 227 60 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 25 164 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 166 164 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 111 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 139 164 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 186 164 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 27 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 52 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 83 164 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 287 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 166 78 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 111 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnBk b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnBk new file mode 100755 index 0000000000000..f23a09f9b6c45 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnBk @@ -0,0 +1,447 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu Apr 12 12:58:00 1990 +Comment UniqueID 28712 +Comment VMusage 24087 30979 +FontName AvantGarde-CondBook +FullName ITC Avant Garde Gothic Condensed Book +FamilyName ITC Avant Garde Gothic +Weight Book +ItalicAngle 0 +IsFixedPitch false +FontBBox -167 -214 1000 977 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +Notice Copyright (c) 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Avant Garde Gothic is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 724 +XHeight 550 +Ascender 724 +Descender -198 +StartCharMetrics 228 +C 32 ; WX 278 ; N space ; B 0 0 0 0 ; +C 33 ; WX 222 ; N exclam ; B 74 0 148 724 ; +C 34 ; WX 333 ; N quotedbl ; B 78 453 255 724 ; +C 35 ; WX 556 ; N numbersign ; B 25 0 531 724 ; +C 36 ; WX 556 ; N dollar ; B 54 -121 492 816 ; +C 37 ; WX 889 ; N percent ; B 58 -12 831 736 ; +C 38 ; WX 611 ; N ampersand ; B 25 -12 595 736 ; +C 39 ; WX 222 ; N quoteright ; B 22 514 200 736 ; +C 40 ; WX 389 ; N parenleft ; B 74 -196 363 742 ; +C 41 ; WX 389 ; N parenright ; B 26 -196 315 742 ; +C 42 ; WX 444 ; N asterisk ; B 50 366 394 724 ; +C 43 ; WX 600 ; N plus ; B 47 0 553 506 ; +C 44 ; WX 278 ; N comma ; B 4 -118 182 104 ; +C 45 ; WX 333 ; N hyphen ; B 43 244 290 306 ; +C 46 ; WX 278 ; N period ; B 104 0 174 100 ; +C 47 ; WX 278 ; N slash ; B -20 -12 298 736 ; +C 48 ; WX 556 ; N zero ; B 32 -12 524 736 ; +C 49 ; WX 556 ; N one ; B 138 0 332 724 ; +C 50 ; WX 556 ; N two ; B 49 0 486 736 ; +C 51 ; WX 556 ; N three ; B 34 -12 501 736 ; +C 52 ; WX 556 ; N four ; B 29 0 502 724 ; +C 53 ; WX 556 ; N five ; B 49 -12 501 724 ; +C 54 ; WX 556 ; N six ; B 40 -12 515 736 ; +C 55 ; WX 556 ; N seven ; B 46 0 476 724 ; +C 56 ; WX 556 ; N eight ; B 36 -12 520 736 ; +C 57 ; WX 556 ; N nine ; B 41 -12 516 736 ; +C 58 ; WX 278 ; N colon ; B 104 0 174 456 ; +C 59 ; WX 278 ; N semicolon ; B 4 -118 182 456 ; +C 60 ; WX 600 ; N less ; B 47 -8 553 514 ; +C 61 ; WX 600 ; N equal ; B 47 121 553 385 ; +C 62 ; WX 600 ; N greater ; B 47 -8 553 514 ; +C 63 ; WX 444 ; N question ; B 20 0 409 736 ; +C 64 ; WX 800 ; N at ; B 41 -12 759 736 ; +C 65 ; WX 500 ; N A ; B -2 0 502 724 ; +C 66 ; WX 556 ; N B ; B 72 0 524 724 ; +C 67 ; WX 556 ; N C ; B 31 -12 524 736 ; +C 68 ; WX 611 ; N D ; B 72 0 579 724 ; +C 69 ; WX 500 ; N E ; B 72 0 436 724 ; +C 70 ; WX 444 ; N F ; B 72 0 406 724 ; +C 71 ; WX 611 ; N G ; B 31 -12 566 736 ; +C 72 ; WX 611 ; N H ; B 72 0 539 724 ; +C 73 ; WX 222 ; N I ; B 72 0 150 724 ; +C 74 ; WX 444 ; N J ; B 10 -12 372 724 ; +C 75 ; WX 556 ; N K ; B 72 0 551 724 ; +C 76 ; WX 444 ; N L ; B 72 0 426 724 ; +C 77 ; WX 722 ; N M ; B 72 0 650 724 ; +C 78 ; WX 611 ; N N ; B 72 0 539 724 ; +C 79 ; WX 611 ; N O ; B 31 -12 579 736 ; +C 80 ; WX 556 ; N P ; B 72 0 524 724 ; +C 81 ; WX 611 ; N Q ; B 31 -12 595 736 ; +C 82 ; WX 556 ; N R ; B 72 0 536 724 ; +C 83 ; WX 500 ; N S ; B 24 -12 475 736 ; +C 84 ; WX 444 ; N T ; B 10 0 434 724 ; +C 85 ; WX 556 ; N U ; B 59 -12 497 724 ; +C 86 ; WX 500 ; N V ; B -3 0 503 724 ; +C 87 ; WX 833 ; N W ; B 5 0 828 724 ; +C 88 ; WX 500 ; N X ; B 2 0 497 724 ; +C 89 ; WX 500 ; N Y ; B 4 0 496 724 ; +C 90 ; WX 444 ; N Z ; B 16 0 418 724 ; +C 91 ; WX 389 ; N bracketleft ; B 102 -190 351 724 ; +C 92 ; WX 278 ; N backslash ; B -20 -12 298 736 ; +C 93 ; WX 389 ; N bracketright ; B 38 -190 287 724 ; +C 94 ; WX 600 ; N asciicircum ; B 49 282 551 724 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 222 ; N quoteleft ; B 22 514 200 736 ; +C 97 ; WX 500 ; N a ; B 34 -10 440 560 ; +C 98 ; WX 500 ; N b ; B 60 -10 466 724 ; +C 99 ; WX 444 ; N c ; B 34 -10 416 560 ; +C 100 ; WX 500 ; N d ; B 34 -10 440 724 ; +C 101 ; WX 444 ; N e ; B 28 -10 416 560 ; +C 102 ; WX 222 ; N f ; B 0 0 240 724 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B 34 -214 436 560 ; +C 104 ; WX 500 ; N h ; B 60 0 440 724 ; +C 105 ; WX 222 ; N i ; B 74 0 148 720 ; +C 106 ; WX 222 ; N j ; B -45 -214 148 720 ; +C 107 ; WX 444 ; N k ; B 60 0 436 724 ; +C 108 ; WX 222 ; N l ; B 74 0 148 724 ; +C 109 ; WX 778 ; N m ; B 60 0 718 560 ; +C 110 ; WX 500 ; N n ; B 60 0 440 560 ; +C 111 ; WX 500 ; N o ; B 34 -10 466 560 ; +C 112 ; WX 500 ; N p ; B 60 -198 466 560 ; +C 113 ; WX 500 ; N q ; B 34 -198 440 560 ; +C 114 ; WX 278 ; N r ; B 60 0 276 560 ; +C 115 ; WX 444 ; N s ; B 28 -10 410 560 ; +C 116 ; WX 222 ; N t ; B 5 0 233 720 ; +C 117 ; WX 500 ; N u ; B 60 -10 440 550 ; +C 118 ; WX 444 ; N v ; B 10 0 434 550 ; +C 119 ; WX 667 ; N w ; B -5 0 671 550 ; +C 120 ; WX 444 ; N x ; B 6 0 438 550 ; +C 121 ; WX 444 ; N y ; B 8 -214 436 550 ; +C 122 ; WX 444 ; N z ; B 22 0 404 550 ; +C 123 ; WX 389 ; N braceleft ; B 44 -198 347 736 ; +C 124 ; WX 222 ; N bar ; B 75 -12 147 736 ; +C 125 ; WX 389 ; N braceright ; B 42 -198 345 736 ; +C 126 ; WX 600 ; N asciitilde ; B 69 179 531 327 ; +C 161 ; WX 222 ; N exclamdown ; B 74 -174 148 550 ; +C 162 ; WX 556 ; N cent ; B 75 -12 460 736 ; +C 163 ; WX 556 ; N sterling ; B 21 0 527 736 ; +C 164 ; WX 167 ; N fraction ; B -167 -12 334 736 ; +C 165 ; WX 556 ; N yen ; B 32 0 524 724 ; +C 166 ; WX 556 ; N florin ; B 10 -214 545 736 ; +C 167 ; WX 444 ; N section ; B 35 -80 408 736 ; +C 168 ; WX 556 ; N currency ; B 28 112 528 612 ; +C 169 ; WX 222 ; N quotesingle ; B 82 453 140 724 ; +C 170 ; WX 333 ; N quotedblleft ; B 22 514 311 736 ; +C 171 ; WX 444 ; N guillemotleft ; B 44 95 400 455 ; +C 172 ; WX 278 ; N guilsinglleft ; B 41 95 237 455 ; +C 173 ; WX 278 ; N guilsinglright ; B 41 95 237 455 ; +C 174 ; WX 444 ; N fi ; B 0 0 370 724 ; +C 175 ; WX 444 ; N fl ; B 0 0 370 724 ; +C 177 ; WX 500 ; N endash ; B 0 252 500 298 ; +C 178 ; WX 444 ; N dagger ; B 48 -92 396 724 ; +C 179 ; WX 444 ; N daggerdbl ; B 48 -92 396 724 ; +C 180 ; WX 278 ; N periodcentered ; B 89 203 189 303 ; +C 182 ; WX 600 ; N paragraph ; B 49 -92 502 724 ; +C 183 ; WX 500 ; N bullet ; B 69 181 431 543 ; +C 184 ; WX 222 ; N quotesinglbase ; B 22 -118 200 104 ; +C 185 ; WX 333 ; N quotedblbase ; B 22 -118 311 104 ; +C 186 ; WX 333 ; N quotedblright ; B 22 514 311 736 ; +C 187 ; WX 444 ; N guillemotright ; B 44 95 400 455 ; +C 188 ; WX 1000 ; N ellipsis ; B 132 0 868 100 ; +C 189 ; WX 1000 ; N perthousand ; B 22 -12 978 736 ; +C 191 ; WX 444 ; N questiondown ; B 35 -186 424 550 ; +C 193 ; WX 222 ; N grave ; B -14 608 174 748 ; +C 194 ; WX 222 ; N acute ; B 48 608 236 748 ; +C 195 ; WX 222 ; N circumflex ; B -36 608 258 748 ; +C 196 ; WX 222 ; N tilde ; B -46 620 268 722 ; +C 197 ; WX 222 ; N macron ; B -36 646 258 692 ; +C 198 ; WX 222 ; N breve ; B -32 614 254 741 ; +C 199 ; WX 222 ; N dotaccent ; B 79 619 143 721 ; +C 200 ; WX 222 ; N dieresis ; B 0 619 222 721 ; +C 202 ; WX 222 ; N ring ; B 5 610 217 822 ; +C 203 ; WX 222 ; N cedilla ; B 10 -214 217 0 ; +C 205 ; WX 222 ; N hungarumlaut ; B -12 608 296 748 ; +C 206 ; WX 222 ; N ogonek ; B 1 -210 238 19 ; +C 207 ; WX 222 ; N caron ; B -36 608 258 748 ; +C 208 ; WX 1000 ; N emdash ; B 0 252 1000 298 ; +C 225 ; WX 833 ; N AE ; B -14 0 769 724 ; +C 227 ; WX 300 ; N ordfeminine ; B 10 394 274 736 ; +C 232 ; WX 444 ; N Lslash ; B 0 0 426 724 ; +C 233 ; WX 611 ; N Oslash ; B 12 -36 581 760 ; +C 234 ; WX 944 ; N OE ; B 31 -12 880 736 ; +C 235 ; WX 300 ; N ordmasculine ; B 9 394 291 736 ; +C 241 ; WX 778 ; N ae ; B 23 -10 755 560 ; +C 245 ; WX 222 ; N dotlessi ; B 74 0 148 550 ; +C 248 ; WX 222 ; N lslash ; B -8 0 230 724 ; +C 249 ; WX 500 ; N oslash ; B 23 -73 466 623 ; +C 250 ; WX 778 ; N oe ; B 23 -10 755 560 ; +C 251 ; WX 556 ; N germandbls ; B 65 -6 518 724 ; +C -1 ; WX 444 ; N Zcaron ; B 16 0 418 903 ; +C -1 ; WX 444 ; N ccedilla ; B 34 -214 416 560 ; +C -1 ; WX 444 ; N ydieresis ; B 8 -214 436 721 ; +C -1 ; WX 500 ; N atilde ; B 34 -10 440 722 ; +C -1 ; WX 222 ; N icircumflex ; B -36 0 258 748 ; +C -1 ; WX 333 ; N threesuperior ; B 13 286 320 736 ; +C -1 ; WX 444 ; N ecircumflex ; B 28 -10 416 748 ; +C -1 ; WX 500 ; N thorn ; B 60 -198 466 724 ; +C -1 ; WX 444 ; N egrave ; B 28 -10 416 748 ; +C -1 ; WX 333 ; N twosuperior ; B 20 294 314 736 ; +C -1 ; WX 444 ; N eacute ; B 28 -10 416 748 ; +C -1 ; WX 500 ; N otilde ; B 34 -10 466 722 ; +C -1 ; WX 500 ; N Aacute ; B -2 0 502 903 ; +C -1 ; WX 500 ; N ocircumflex ; B 34 -10 466 748 ; +C -1 ; WX 444 ; N yacute ; B 8 -214 436 748 ; +C -1 ; WX 500 ; N udieresis ; B 60 -10 440 721 ; +C -1 ; WX 834 ; N threequarters ; B 33 -12 793 736 ; +C -1 ; WX 500 ; N acircumflex ; B 34 -10 440 748 ; +C -1 ; WX 611 ; N Eth ; B -12 0 579 724 ; +C -1 ; WX 444 ; N edieresis ; B 28 -10 416 721 ; +C -1 ; WX 500 ; N ugrave ; B 60 -10 440 748 ; +C -1 ; WX 990 ; N trademark ; B 42 324 876 724 ; +C -1 ; WX 500 ; N ograve ; B 34 -10 466 748 ; +C -1 ; WX 444 ; N scaron ; B 28 -10 410 748 ; +C -1 ; WX 222 ; N Idieresis ; B 0 0 222 876 ; +C -1 ; WX 500 ; N uacute ; B 60 -10 440 748 ; +C -1 ; WX 500 ; N agrave ; B 34 -10 440 748 ; +C -1 ; WX 500 ; N ntilde ; B 60 0 440 722 ; +C -1 ; WX 500 ; N aring ; B 34 -10 440 822 ; +C -1 ; WX 444 ; N zcaron ; B 22 0 404 748 ; +C -1 ; WX 222 ; N Icircumflex ; B -36 0 258 903 ; +C -1 ; WX 611 ; N Ntilde ; B 72 0 539 877 ; +C -1 ; WX 500 ; N ucircumflex ; B 60 -10 440 748 ; +C -1 ; WX 500 ; N Ecircumflex ; B 72 0 436 903 ; +C -1 ; WX 222 ; N Iacute ; B 48 0 236 903 ; +C -1 ; WX 556 ; N Ccedilla ; B 31 -214 524 736 ; +C -1 ; WX 611 ; N Odieresis ; B 31 -12 579 876 ; +C -1 ; WX 500 ; N Scaron ; B 24 -12 475 903 ; +C -1 ; WX 500 ; N Edieresis ; B 72 0 436 876 ; +C -1 ; WX 222 ; N Igrave ; B -14 0 174 903 ; +C -1 ; WX 500 ; N adieresis ; B 34 -10 440 721 ; +C -1 ; WX 611 ; N Ograve ; B 31 -12 579 903 ; +C -1 ; WX 500 ; N Egrave ; B 72 0 436 903 ; +C -1 ; WX 500 ; N Ydieresis ; B 4 0 496 876 ; +C -1 ; WX 800 ; N registered ; B 20 -12 780 736 ; +C -1 ; WX 611 ; N Otilde ; B 31 -12 579 877 ; +C -1 ; WX 834 ; N onequarter ; B 94 -12 793 736 ; +C -1 ; WX 556 ; N Ugrave ; B 59 -12 497 903 ; +C -1 ; WX 556 ; N Ucircumflex ; B 59 -12 497 903 ; +C -1 ; WX 556 ; N Thorn ; B 72 0 524 723 ; +C -1 ; WX 600 ; N divide ; B 47 -18 553 524 ; +C -1 ; WX 500 ; N Atilde ; B -2 0 502 877 ; +C -1 ; WX 556 ; N Uacute ; B 59 -12 497 903 ; +C -1 ; WX 611 ; N Ocircumflex ; B 31 -12 579 903 ; +C -1 ; WX 600 ; N logicalnot ; B 47 121 553 385 ; +C -1 ; WX 500 ; N Aring ; B -2 0 502 977 ; +C -1 ; WX 222 ; N idieresis ; B 0 0 222 721 ; +C -1 ; WX 222 ; N iacute ; B 48 0 236 748 ; +C -1 ; WX 500 ; N aacute ; B 34 -10 440 748 ; +C -1 ; WX 600 ; N plusminus ; B 47 0 553 506 ; +C -1 ; WX 600 ; N multiply ; B 47 0 553 506 ; +C -1 ; WX 556 ; N Udieresis ; B 59 -12 497 876 ; +C -1 ; WX 600 ; N minus ; B 47 217 553 289 ; +C -1 ; WX 333 ; N onesuperior ; B 74 294 208 728 ; +C -1 ; WX 500 ; N Eacute ; B 72 0 436 903 ; +C -1 ; WX 500 ; N Acircumflex ; B -2 0 502 903 ; +C -1 ; WX 800 ; N copyright ; B 20 -12 780 736 ; +C -1 ; WX 500 ; N Agrave ; B -2 0 502 903 ; +C -1 ; WX 500 ; N odieresis ; B 34 -10 466 721 ; +C -1 ; WX 500 ; N oacute ; B 34 -10 466 748 ; +C -1 ; WX 400 ; N degree ; B 57 450 343 736 ; +C -1 ; WX 222 ; N igrave ; B -14 0 174 748 ; +C -1 ; WX 500 ; N mu ; B 60 -198 440 550 ; +C -1 ; WX 611 ; N Oacute ; B 31 -12 579 903 ; +C -1 ; WX 500 ; N eth ; B 34 -10 466 736 ; +C -1 ; WX 500 ; N Adieresis ; B -2 0 502 876 ; +C -1 ; WX 500 ; N Yacute ; B 4 0 496 903 ; +C -1 ; WX 222 ; N brokenbar ; B 75 -12 147 736 ; +C -1 ; WX 834 ; N onehalf ; B 94 -12 795 736 ; +EndCharMetrics +StartKernData +StartKernPairs 115 + +KPX A y -18 +KPX A w -18 +KPX A v -18 +KPX A quoteright -55 +KPX A Y -37 +KPX A W -37 +KPX A V -37 +KPX A T -37 + +KPX F period -111 +KPX F comma -111 +KPX F A -18 + +KPX L y -37 +KPX L quoteright -92 +KPX L Y -55 +KPX L W -55 +KPX L V -55 +KPX L T -55 + +KPX P period -129 +KPX P comma -129 +KPX P A -37 + +KPX R y 0 +KPX R Y -18 +KPX R W -18 +KPX R V -18 +KPX R T -18 + +KPX T y -37 +KPX T w -55 +KPX T u -37 +KPX T semicolon -55 +KPX T s -55 +KPX T r -37 +KPX T period -74 +KPX T o -55 +KPX T i -37 +KPX T hyphen -55 +KPX T e -55 +KPX T comma -74 +KPX T colon -55 +KPX T c -55 +KPX T a -55 +KPX T A -37 + +KPX V y 0 +KPX V u 0 +KPX V semicolon -18 +KPX V r 0 +KPX V period -74 +KPX V o -18 +KPX V i 0 +KPX V hyphen -37 +KPX V e -18 +KPX V comma -74 +KPX V colon -18 +KPX V a -18 +KPX V A -18 + +KPX W y 0 +KPX W u 0 +KPX W semicolon -18 +KPX W r 0 +KPX W period -74 +KPX W o -18 +KPX W i 0 +KPX W hyphen -18 +KPX W e -18 +KPX W comma -74 +KPX W colon -18 +KPX W a -18 +KPX W A -18 + +KPX Y v -18 +KPX Y u -18 +KPX Y semicolon -37 +KPX Y q -37 +KPX Y period -74 +KPX Y p -18 +KPX Y o -37 +KPX Y i -18 +KPX Y hyphen -55 +KPX Y e -37 +KPX Y comma -74 +KPX Y colon -37 +KPX Y a -37 +KPX Y A -37 + +KPX f quoteright 18 +KPX f f 0 + +KPX quoteleft quoteleft -111 + +KPX quoteright t 0 +KPX quoteright s -55 +KPX quoteright quoteright -111 + +KPX r z 0 +KPX r y 0 +KPX r x 0 +KPX r w 0 +KPX r v 0 +KPX r u 0 +KPX r t 0 +KPX r r 0 +KPX r quoteright 18 +KPX r q 0 +KPX r period -55 +KPX r o 0 +KPX r n 0 +KPX r m 0 +KPX r hyphen -37 +KPX r h 0 +KPX r g 0 +KPX r f 0 +KPX r e 0 +KPX r d 0 +KPX r comma -55 +KPX r c 0 + +KPX v period -55 +KPX v comma -55 + +KPX w period -37 +KPX w comma -37 + +KPX y period -55 +KPX y comma -55 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 139 155 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 139 155 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 139 155 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 139 155 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 139 155 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 139 155 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 167 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 139 155 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 139 155 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 139 155 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 139 155 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 0 155 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 0 155 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 0 155 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 155 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 195 155 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 195 155 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 195 155 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 195 155 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 195 155 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 195 155 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 133 155 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 167 155 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 167 155 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 167 155 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 167 155 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 133 155 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 133 155 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 105 155 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 131 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 131 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 131 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 131 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 131 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 131 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 111 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 111 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 111 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 111 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 111 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 139 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 139 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 139 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 139 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 139 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 139 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 111 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 139 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 139 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 139 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 139 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 111 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 111 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 111 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnBk+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnBk+ new file mode 100755 index 0000000000000..ed26578f30abb --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnBk+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 556 ; N Ccaron ; B 31 -12 524 930 ; +C -1 ; WX 444 ; N ccaron ; B 34 -10 416 748 ; +C -1 ; WX 611 ; N Dcaron ; B 72 0 579 930 ; +C -1 ; WX 625 ; N dcaron ; B 34 -10 636 796 ; +C -1 ; WX 500 ; N Ecaron ; B 72 0 436 930 ; +C -1 ; WX 444 ; N ecaron ; B 28 -10 416 748 ; +C -1 ; WX 444 ; N Lcaron ; B 72 0 426 796 ; +C -1 ; WX 444 ; N Lacute ; B 72 0 426 930 ; +C -1 ; WX 347 ; N lcaron ; B 74 0 344 796 ; +C -1 ; WX 222 ; N lacute ; B 67 0 255 930 ; +C -1 ; WX 611 ; N Ncaron ; B 72 0 539 930 ; +C -1 ; WX 500 ; N ncaron ; B 60 0 440 748 ; +C -1 ; WX 556 ; N Rcaron ; B 72 0 536 930 ; +C -1 ; WX 556 ; N Racute ; B 72 0 536 930 ; +C -1 ; WX 278 ; N rcaron ; B -8 0 286 748 ; +C -1 ; WX 278 ; N racute ; B 60 0 283 748 ; +C -1 ; WX 444 ; N Tcaron ; B 10 0 434 930 ; +C -1 ; WX 347 ; N tcaron ; B 5 0 429 736 ; +C -1 ; WX 556 ; N Uring ; B 59 -12 497 930 ; +C -1 ; WX 500 ; N uring ; B 60 -10 440 822 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 216 182 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 130 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 194 182 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 436 60 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 139 182 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 111 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 146 60 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 111 182 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 144 60 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 19 182 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 194 182 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 139 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 167 182 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 203 182 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 28 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 47 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 111 182 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 229 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 167 108 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 139 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnDm b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnDm new file mode 100755 index 0000000000000..dc911a41fa5ca --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnDm @@ -0,0 +1,447 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu Apr 12 13:36:06 1990 +Comment UniqueID 28716 +Comment VMusage 25024 31916 +FontName AvantGarde-CondDemi +FullName ITC Avant Garde Gothic Condensed Demi +FamilyName ITC Avant Garde Gothic +Weight Demi +ItalicAngle 0 +IsFixedPitch false +FontBBox -167 -227 1000 971 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +Notice Copyright (c) 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Avant Garde Gothic is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 724 +XHeight 572 +Ascender 724 +Descender -186 +StartCharMetrics 228 +C 32 ; WX 278 ; N space ; B 0 0 0 0 ; +C 33 ; WX 278 ; N exclam ; B 77 0 201 724 ; +C 34 ; WX 333 ; N quotedbl ; B 30 468 303 724 ; +C 35 ; WX 556 ; N numbersign ; B 22 0 534 724 ; +C 36 ; WX 556 ; N dollar ; B 46 -74 498 788 ; +C 37 ; WX 889 ; N percent ; B 50 -12 839 736 ; +C 38 ; WX 611 ; N ampersand ; B 31 -12 590 736 ; +C 39 ; WX 222 ; N quoteright ; B 10 508 200 736 ; +C 40 ; WX 389 ; N parenleft ; B 64 -220 352 742 ; +C 41 ; WX 389 ; N parenright ; B 37 -220 325 742 ; +C 42 ; WX 444 ; N asterisk ; B 35 352 409 724 ; +C 43 ; WX 600 ; N plus ; B 47 0 553 506 ; +C 44 ; WX 278 ; N comma ; B 21 -94 215 130 ; +C 45 ; WX 333 ; N hyphen ; B 44 236 289 336 ; +C 46 ; WX 278 ; N period ; B 81 0 197 130 ; +C 47 ; WX 278 ; N slash ; B -40 -12 318 736 ; +C 48 ; WX 556 ; N zero ; B 36 -12 520 736 ; +C 49 ; WX 556 ; N one ; B 118 0 355 724 ; +C 50 ; WX 556 ; N two ; B 39 0 496 736 ; +C 51 ; WX 556 ; N three ; B 30 -12 506 736 ; +C 52 ; WX 556 ; N four ; B 33 0 509 724 ; +C 53 ; WX 556 ; N five ; B 35 -12 514 724 ; +C 54 ; WX 556 ; N six ; B 42 -12 515 736 ; +C 55 ; WX 556 ; N seven ; B 46 0 486 724 ; +C 56 ; WX 556 ; N eight ; B 39 -12 517 736 ; +C 57 ; WX 556 ; N nine ; B 35 -12 516 736 ; +C 58 ; WX 278 ; N colon ; B 81 0 197 484 ; +C 59 ; WX 278 ; N semicolon ; B 21 -94 215 484 ; +C 60 ; WX 600 ; N less ; B 47 -8 553 514 ; +C 61 ; WX 600 ; N equal ; B 47 88 553 418 ; +C 62 ; WX 600 ; N greater ; B 47 -8 553 514 ; +C 63 ; WX 500 ; N question ; B 30 0 448 736 ; +C 64 ; WX 800 ; N at ; B 33 -12 766 736 ; +C 65 ; WX 556 ; N A ; B 0 0 556 724 ; +C 66 ; WX 556 ; N B ; B 66 0 513 724 ; +C 67 ; WX 611 ; N C ; B 37 -12 558 736 ; +C 68 ; WX 611 ; N D ; B 66 0 573 724 ; +C 69 ; WX 500 ; N E ; B 66 0 444 724 ; +C 70 ; WX 444 ; N F ; B 58 0 414 724 ; +C 71 ; WX 611 ; N G ; B 37 -12 565 736 ; +C 72 ; WX 611 ; N H ; B 66 0 545 724 ; +C 73 ; WX 278 ; N I ; B 77 0 201 724 ; +C 74 ; WX 500 ; N J ; B 10 -12 434 724 ; +C 75 ; WX 556 ; N K ; B 66 0 557 724 ; +C 76 ; WX 444 ; N L ; B 66 0 420 724 ; +C 77 ; WX 722 ; N M ; B 66 0 656 724 ; +C 78 ; WX 611 ; N N ; B 69 0 542 724 ; +C 79 ; WX 611 ; N O ; B 37 -12 573 736 ; +C 80 ; WX 556 ; N P ; B 72 0 521 724 ; +C 81 ; WX 611 ; N Q ; B 37 -12 573 736 ; +C 82 ; WX 556 ; N R ; B 66 0 544 724 ; +C 83 ; WX 500 ; N S ; B 27 -12 465 736 ; +C 84 ; WX 444 ; N T ; B 14 0 430 724 ; +C 85 ; WX 611 ; N U ; B 64 -12 546 724 ; +C 86 ; WX 556 ; N V ; B 9 0 547 724 ; +C 87 ; WX 833 ; N W ; B 2 0 830 724 ; +C 88 ; WX 500 ; N X ; B -6 0 506 724 ; +C 89 ; WX 500 ; N Y ; B 0 0 500 724 ; +C 90 ; WX 444 ; N Z ; B 21 0 419 724 ; +C 91 ; WX 389 ; N bracketleft ; B 80 -208 335 724 ; +C 92 ; WX 278 ; N backslash ; B -40 -12 318 736 ; +C 93 ; WX 389 ; N bracketright ; B 54 -208 309 724 ; +C 94 ; WX 600 ; N asciicircum ; B 52 326 548 724 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 222 ; N quoteleft ; B 22 508 212 736 ; +C 97 ; WX 500 ; N a ; B 30 -10 432 582 ; +C 98 ; WX 500 ; N b ; B 60 -10 470 724 ; +C 99 ; WX 444 ; N c ; B 30 -10 420 582 ; +C 100 ; WX 500 ; N d ; B 30 -10 440 724 ; +C 101 ; WX 500 ; N e ; B 30 -10 456 582 ; +C 102 ; WX 278 ; N f ; B 16 0 271 736 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B 30 -198 440 582 ; +C 104 ; WX 500 ; N h ; B 60 0 440 724 ; +C 105 ; WX 222 ; N i ; B 53 0 169 736 ; +C 106 ; WX 222 ; N j ; B -32 -186 169 736 ; +C 107 ; WX 444 ; N k ; B 60 0 453 724 ; +C 108 ; WX 222 ; N l ; B 53 0 169 724 ; +C 109 ; WX 778 ; N m ; B 60 0 718 582 ; +C 110 ; WX 500 ; N n ; B 60 0 440 582 ; +C 111 ; WX 500 ; N o ; B 30 -10 470 582 ; +C 112 ; WX 500 ; N p ; B 60 -186 470 582 ; +C 113 ; WX 500 ; N q ; B 30 -186 440 582 ; +C 114 ; WX 278 ; N r ; B 50 0 272 590 ; +C 115 ; WX 444 ; N s ; B 28 -10 415 582 ; +C 116 ; WX 278 ; N t ; B 12 0 271 693 ; +C 117 ; WX 500 ; N u ; B 60 -10 440 572 ; +C 118 ; WX 444 ; N v ; B 6 0 438 572 ; +C 119 ; WX 667 ; N w ; B 5 0 661 572 ; +C 120 ; WX 444 ; N x ; B -4 0 448 572 ; +C 121 ; WX 444 ; N y ; B 6 -198 438 572 ; +C 122 ; WX 444 ; N z ; B 22 0 414 572 ; +C 123 ; WX 389 ; N braceleft ; B 12 -226 329 736 ; +C 124 ; WX 222 ; N bar ; B 56 -12 166 736 ; +C 125 ; WX 389 ; N braceright ; B 60 -226 377 736 ; +C 126 ; WX 600 ; N asciitilde ; B 46 157 554 349 ; +C 161 ; WX 278 ; N exclamdown ; B 77 -152 201 572 ; +C 162 ; WX 556 ; N cent ; B 62 -20 472 736 ; +C 163 ; WX 556 ; N sterling ; B 9 0 535 736 ; +C 164 ; WX 167 ; N fraction ; B -167 -12 334 736 ; +C 165 ; WX 556 ; N yen ; B 4 0 552 724 ; +C 166 ; WX 556 ; N florin ; B 10 -198 546 736 ; +C 167 ; WX 444 ; N section ; B 25 -78 418 736 ; +C 168 ; WX 556 ; N currency ; B 18 100 538 624 ; +C 169 ; WX 222 ; N quotesingle ; B 62 468 160 724 ; +C 170 ; WX 389 ; N quotedblleft ; B 16 508 373 736 ; +C 171 ; WX 444 ; N guillemotleft ; B 24 103 420 469 ; +C 172 ; WX 278 ; N guilsinglleft ; B 24 103 254 469 ; +C 173 ; WX 278 ; N guilsinglright ; B 24 103 254 469 ; +C 174 ; WX 500 ; N fi ; B 16 0 447 736 ; +C 175 ; WX 500 ; N fl ; B 16 0 447 736 ; +C 177 ; WX 500 ; N endash ; B 0 244 500 328 ; +C 178 ; WX 444 ; N dagger ; B 36 -90 408 724 ; +C 179 ; WX 444 ; N daggerdbl ; B 36 -90 408 724 ; +C 180 ; WX 278 ; N periodcentered ; B 73 187 205 319 ; +C 182 ; WX 620 ; N paragraph ; B 8 -90 554 724 ; +C 183 ; WX 500 ; N bullet ; B 69 181 431 543 ; +C 184 ; WX 222 ; N quotesinglbase ; B 10 -98 200 130 ; +C 185 ; WX 389 ; N quotedblbase ; B 16 -98 373 130 ; +C 186 ; WX 389 ; N quotedblright ; B 16 508 373 736 ; +C 187 ; WX 444 ; N guillemotright ; B 24 103 420 469 ; +C 188 ; WX 1000 ; N ellipsis ; B 109 0 891 130 ; +C 189 ; WX 1000 ; N perthousand ; B 4 -12 996 736 ; +C 191 ; WX 500 ; N questiondown ; B 52 -164 470 572 ; +C 193 ; WX 222 ; N grave ; B -38 632 186 776 ; +C 194 ; WX 222 ; N acute ; B 36 632 260 776 ; +C 195 ; WX 222 ; N circumflex ; B -52 632 274 776 ; +C 196 ; WX 222 ; N tilde ; B -66 640 288 762 ; +C 197 ; WX 222 ; N macron ; B -52 670 274 734 ; +C 198 ; WX 222 ; N breve ; B -50 638 272 779 ; +C 199 ; WX 222 ; N dotaccent ; B 55 646 167 752 ; +C 200 ; WX 222 ; N dieresis ; B -32 646 254 752 ; +C 202 ; WX 222 ; N ring ; B 8 632 214 838 ; +C 203 ; WX 222 ; N cedilla ; B -1 -227 222 0 ; +C 205 ; WX 222 ; N hungarumlaut ; B -48 632 340 776 ; +C 206 ; WX 222 ; N ogonek ; B -5 -219 250 21 ; +C 207 ; WX 222 ; N caron ; B -52 632 274 776 ; +C 208 ; WX 1000 ; N emdash ; B 0 244 1000 328 ; +C 225 ; WX 833 ; N AE ; B -8 0 777 724 ; +C 227 ; WX 300 ; N ordfeminine ; B 8 380 269 736 ; +C 232 ; WX 444 ; N Lslash ; B -10 0 420 724 ; +C 233 ; WX 611 ; N Oslash ; B 4 -42 607 766 ; +C 234 ; WX 889 ; N OE ; B 37 -12 833 736 ; +C 235 ; WX 300 ; N ordmasculine ; B 7 380 293 736 ; +C 241 ; WX 778 ; N ae ; B 30 -10 744 582 ; +C 245 ; WX 222 ; N dotlessi ; B 53 0 169 572 ; +C 248 ; WX 222 ; N lslash ; B -3 0 225 724 ; +C 249 ; WX 500 ; N oslash ; B 11 -70 489 642 ; +C 250 ; WX 778 ; N oe ; B 30 -10 744 582 ; +C 251 ; WX 556 ; N germandbls ; B 60 -10 521 736 ; +C -1 ; WX 444 ; N Zcaron ; B 21 0 419 909 ; +C -1 ; WX 444 ; N ccedilla ; B 30 -227 420 582 ; +C -1 ; WX 444 ; N ydieresis ; B 6 -198 438 752 ; +C -1 ; WX 500 ; N atilde ; B 30 -10 432 762 ; +C -1 ; WX 222 ; N icircumflex ; B -52 0 274 776 ; +C -1 ; WX 333 ; N threesuperior ; B 8 286 317 736 ; +C -1 ; WX 500 ; N ecircumflex ; B 30 -10 456 776 ; +C -1 ; WX 500 ; N thorn ; B 60 -186 470 724 ; +C -1 ; WX 500 ; N egrave ; B 30 -10 456 776 ; +C -1 ; WX 333 ; N twosuperior ; B 18 294 315 736 ; +C -1 ; WX 500 ; N eacute ; B 30 -10 456 776 ; +C -1 ; WX 500 ; N otilde ; B 30 -10 470 762 ; +C -1 ; WX 556 ; N Aacute ; B 0 0 556 909 ; +C -1 ; WX 500 ; N ocircumflex ; B 30 -10 470 776 ; +C -1 ; WX 444 ; N yacute ; B 6 -198 438 776 ; +C -1 ; WX 500 ; N udieresis ; B 60 -10 440 752 ; +C -1 ; WX 834 ; N threequarters ; B 28 -12 796 736 ; +C -1 ; WX 500 ; N acircumflex ; B 30 -10 432 776 ; +C -1 ; WX 611 ; N Eth ; B 2 0 573 724 ; +C -1 ; WX 500 ; N edieresis ; B 30 -10 456 752 ; +C -1 ; WX 500 ; N ugrave ; B 60 -10 440 776 ; +C -1 ; WX 1000 ; N trademark ; B 16 298 923 724 ; +C -1 ; WX 500 ; N ograve ; B 30 -10 470 776 ; +C -1 ; WX 444 ; N scaron ; B 28 -10 415 776 ; +C -1 ; WX 278 ; N Idieresis ; B -4 0 282 885 ; +C -1 ; WX 500 ; N uacute ; B 60 -10 440 776 ; +C -1 ; WX 500 ; N agrave ; B 30 -10 432 776 ; +C -1 ; WX 500 ; N ntilde ; B 60 0 440 762 ; +C -1 ; WX 500 ; N aring ; B 30 -10 432 838 ; +C -1 ; WX 444 ; N zcaron ; B 22 0 414 776 ; +C -1 ; WX 278 ; N Icircumflex ; B -24 0 302 909 ; +C -1 ; WX 611 ; N Ntilde ; B 69 0 542 895 ; +C -1 ; WX 500 ; N ucircumflex ; B 60 -10 440 776 ; +C -1 ; WX 500 ; N Ecircumflex ; B 66 0 444 909 ; +C -1 ; WX 278 ; N Iacute ; B 64 0 288 909 ; +C -1 ; WX 611 ; N Ccedilla ; B 37 -227 558 736 ; +C -1 ; WX 611 ; N Odieresis ; B 37 -12 573 885 ; +C -1 ; WX 500 ; N Scaron ; B 27 -12 465 909 ; +C -1 ; WX 500 ; N Edieresis ; B 66 0 444 885 ; +C -1 ; WX 278 ; N Igrave ; B -10 0 214 909 ; +C -1 ; WX 500 ; N adieresis ; B 30 -10 432 752 ; +C -1 ; WX 611 ; N Ograve ; B 37 -12 573 909 ; +C -1 ; WX 500 ; N Egrave ; B 66 0 444 909 ; +C -1 ; WX 500 ; N Ydieresis ; B 0 0 500 885 ; +C -1 ; WX 800 ; N registered ; B 13 -12 787 736 ; +C -1 ; WX 611 ; N Otilde ; B 37 -12 573 895 ; +C -1 ; WX 834 ; N onequarter ; B 85 -12 796 736 ; +C -1 ; WX 611 ; N Ugrave ; B 64 -12 546 909 ; +C -1 ; WX 611 ; N Ucircumflex ; B 64 -12 546 909 ; +C -1 ; WX 556 ; N Thorn ; B 72 0 521 724 ; +C -1 ; WX 600 ; N divide ; B 47 -43 553 549 ; +C -1 ; WX 556 ; N Atilde ; B 0 0 556 895 ; +C -1 ; WX 611 ; N Uacute ; B 64 -12 546 909 ; +C -1 ; WX 611 ; N Ocircumflex ; B 37 -12 573 909 ; +C -1 ; WX 600 ; N logicalnot ; B 47 88 553 418 ; +C -1 ; WX 556 ; N Aring ; B 0 0 556 971 ; +C -1 ; WX 222 ; N idieresis ; B -32 0 254 752 ; +C -1 ; WX 222 ; N iacute ; B 36 0 260 776 ; +C -1 ; WX 500 ; N aacute ; B 30 -10 432 776 ; +C -1 ; WX 600 ; N plusminus ; B 47 0 553 506 ; +C -1 ; WX 600 ; N multiply ; B 47 0 553 506 ; +C -1 ; WX 611 ; N Udieresis ; B 64 -12 546 885 ; +C -1 ; WX 600 ; N minus ; B 47 198 553 308 ; +C -1 ; WX 333 ; N onesuperior ; B 65 294 227 728 ; +C -1 ; WX 500 ; N Eacute ; B 66 0 444 909 ; +C -1 ; WX 556 ; N Acircumflex ; B 0 0 556 909 ; +C -1 ; WX 800 ; N copyright ; B 13 -12 787 736 ; +C -1 ; WX 556 ; N Agrave ; B 0 0 556 909 ; +C -1 ; WX 500 ; N odieresis ; B 30 -10 470 752 ; +C -1 ; WX 500 ; N oacute ; B 30 -10 470 776 ; +C -1 ; WX 400 ; N degree ; B 57 450 343 736 ; +C -1 ; WX 222 ; N igrave ; B -38 0 186 776 ; +C -1 ; WX 500 ; N mu ; B 60 -186 440 572 ; +C -1 ; WX 611 ; N Oacute ; B 37 -12 573 909 ; +C -1 ; WX 500 ; N eth ; B 30 -10 470 736 ; +C -1 ; WX 556 ; N Adieresis ; B 0 0 556 885 ; +C -1 ; WX 500 ; N Yacute ; B 0 0 500 909 ; +C -1 ; WX 222 ; N brokenbar ; B 56 -12 166 736 ; +C -1 ; WX 834 ; N onehalf ; B 85 -12 796 736 ; +EndCharMetrics +StartKernData +StartKernPairs 115 + +KPX A y -18 +KPX A w -18 +KPX A v -18 +KPX A quoteright -55 +KPX A Y -37 +KPX A W -37 +KPX A V -37 +KPX A T -37 + +KPX F period -111 +KPX F comma -111 +KPX F A -18 + +KPX L y -37 +KPX L quoteright -92 +KPX L Y -55 +KPX L W -55 +KPX L V -55 +KPX L T -55 + +KPX P period -129 +KPX P comma -129 +KPX P A -37 + +KPX R y 0 +KPX R Y -18 +KPX R W -18 +KPX R V -18 +KPX R T -18 + +KPX T y -37 +KPX T w -55 +KPX T u -37 +KPX T semicolon -55 +KPX T s -55 +KPX T r -37 +KPX T period -74 +KPX T o -55 +KPX T i -37 +KPX T hyphen -55 +KPX T e -55 +KPX T comma -74 +KPX T colon -55 +KPX T c -55 +KPX T a -55 +KPX T A -37 + +KPX V y -18 +KPX V u -18 +KPX V semicolon -37 +KPX V r -18 +KPX V period -92 +KPX V o -37 +KPX V i -18 +KPX V hyphen -55 +KPX V e -37 +KPX V comma -92 +KPX V colon -37 +KPX V a -37 +KPX V A -37 + +KPX W y 0 +KPX W u 0 +KPX W semicolon -18 +KPX W r 0 +KPX W period -74 +KPX W o -18 +KPX W i 0 +KPX W hyphen -18 +KPX W e -18 +KPX W comma -74 +KPX W colon -18 +KPX W a -18 +KPX W A -18 + +KPX Y v -18 +KPX Y u -18 +KPX Y semicolon -37 +KPX Y q -37 +KPX Y period -74 +KPX Y p -18 +KPX Y o -37 +KPX Y i -18 +KPX Y hyphen -55 +KPX Y e -37 +KPX Y comma -74 +KPX Y colon -37 +KPX Y a -37 +KPX Y A -37 + +KPX f quoteright 18 +KPX f f 0 + +KPX quoteleft quoteleft -55 + +KPX quoteright t 0 +KPX quoteright s -55 +KPX quoteright quoteright -55 + +KPX r z 0 +KPX r y 0 +KPX r x 0 +KPX r w 0 +KPX r v 0 +KPX r u 0 +KPX r t 0 +KPX r r 0 +KPX r quoteright 18 +KPX r q 0 +KPX r period -55 +KPX r o 0 +KPX r n 0 +KPX r m 0 +KPX r hyphen -37 +KPX r h 0 +KPX r g 0 +KPX r f 0 +KPX r e 0 +KPX r d 0 +KPX r comma -55 +KPX r c 0 + +KPX v period -55 +KPX v comma -55 + +KPX w period -37 +KPX w comma -37 + +KPX y period -55 +KPX y comma -55 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 167 133 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 167 133 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 167 133 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 167 133 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 167 133 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 167 133 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 201 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 139 133 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 139 133 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 139 133 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 139 133 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 28 133 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 28 133 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 28 133 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 28 133 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 195 133 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 195 133 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 195 133 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 195 133 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 195 133 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 195 133 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 145 133 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 195 133 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 195 133 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 195 133 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 195 133 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 145 133 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 145 133 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 117 133 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 131 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 131 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 131 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 131 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 131 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 131 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 111 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 139 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 139 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 139 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 139 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 139 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 139 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 139 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 139 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 139 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 139 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 111 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 139 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 139 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 139 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 139 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 111 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 111 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 111 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnDm+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnDm+ new file mode 100755 index 0000000000000..786d9c67b007c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnDm+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 611 ; N Ccaron ; B 37 -12 558 934 ; +C -1 ; WX 444 ; N ccaron ; B 30 -10 420 776 ; +C -1 ; WX 611 ; N Dcaron ; B 66 0 573 934 ; +C -1 ; WX 633 ; N dcaron ; B 30 -10 649 796 ; +C -1 ; WX 500 ; N Ecaron ; B 66 0 444 934 ; +C -1 ; WX 500 ; N ecaron ; B 30 -10 456 776 ; +C -1 ; WX 444 ; N Lcaron ; B 66 0 420 796 ; +C -1 ; WX 444 ; N Lacute ; B 66 0 420 934 ; +C -1 ; WX 355 ; N lcaron ; B 53 0 378 796 ; +C -1 ; WX 222 ; N lacute ; B 53 0 282 934 ; +C -1 ; WX 611 ; N Ncaron ; B 69 0 542 934 ; +C -1 ; WX 500 ; N ncaron ; B 60 0 440 776 ; +C -1 ; WX 556 ; N Rcaron ; B 66 0 544 934 ; +C -1 ; WX 556 ; N Racute ; B 66 0 544 934 ; +C -1 ; WX 278 ; N rcaron ; B -24 0 302 776 ; +C -1 ; WX 278 ; N racute ; B 50 0 310 776 ; +C -1 ; WX 444 ; N Tcaron ; B 14 0 430 934 ; +C -1 ; WX 411 ; N tcaron ; B 12 0 480 736 ; +C -1 ; WX 611 ; N Uring ; B 64 -12 546 934 ; +C -1 ; WX 500 ; N uring ; B 60 -10 440 838 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 246 158 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 131 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 194 158 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 449 60 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 139 158 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 139 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 210 60 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 111 158 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 178 60 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 22 158 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 194 158 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 139 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 167 158 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 210 158 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 28 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 50 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 111 158 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 280 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 194 96 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 139 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnMd b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnMd new file mode 100755 index 0000000000000..f059153db2da9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnMd @@ -0,0 +1,447 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu Apr 12 14:11:07 1990 +Comment UniqueID 28720 +Comment VMusage 23857 30749 +FontName AvantGarde-CondMedium +FullName ITC Avant Garde Gothic Condensed Medium +FamilyName ITC Avant Garde Gothic +Weight Medium +ItalicAngle 0 +IsFixedPitch false +FontBBox -167 -226 1001 980 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +Notice Copyright (c) 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Avant Garde Gothic is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 724 +XHeight 560 +Ascender 724 +Descender -198 +StartCharMetrics 228 +C 32 ; WX 278 ; N space ; B 0 0 0 0 ; +C 33 ; WX 222 ; N exclam ; B 60 0 162 724 ; +C 34 ; WX 333 ; N quotedbl ; B 55 476 278 724 ; +C 35 ; WX 556 ; N numbersign ; B 24 0 537 724 ; +C 36 ; WX 556 ; N dollar ; B 56 -88 488 802 ; +C 37 ; WX 889 ; N percent ; B 44 -12 845 736 ; +C 38 ; WX 611 ; N ampersand ; B 29 -12 594 736 ; +C 39 ; WX 222 ; N quoteright ; B 27 516 195 736 ; +C 40 ; WX 389 ; N parenleft ; B 62 -208 358 742 ; +C 41 ; WX 389 ; N parenright ; B 31 -208 327 742 ; +C 42 ; WX 444 ; N asterisk ; B 45 358 399 724 ; +C 43 ; WX 600 ; N plus ; B 47 0 553 506 ; +C 44 ; WX 278 ; N comma ; B 6 -104 198 124 ; +C 45 ; WX 333 ; N hyphen ; B 47 238 286 322 ; +C 46 ; WX 278 ; N period ; B 91 0 187 124 ; +C 47 ; WX 278 ; N slash ; B -15 -12 293 736 ; +C 48 ; WX 556 ; N zero ; B 39 -12 517 736 ; +C 49 ; WX 556 ; N one ; B 118 0 345 724 ; +C 50 ; WX 556 ; N two ; B 44 0 486 736 ; +C 51 ; WX 556 ; N three ; B 34 -12 509 736 ; +C 52 ; WX 556 ; N four ; B 32 0 500 724 ; +C 53 ; WX 556 ; N five ; B 42 -12 505 724 ; +C 54 ; WX 556 ; N six ; B 45 -12 511 736 ; +C 55 ; WX 556 ; N seven ; B 30 0 486 724 ; +C 56 ; WX 556 ; N eight ; B 34 -12 522 736 ; +C 57 ; WX 556 ; N nine ; B 45 -12 511 736 ; +C 58 ; WX 278 ; N colon ; B 91 0 187 470 ; +C 59 ; WX 278 ; N semicolon ; B 6 -104 198 470 ; +C 60 ; WX 600 ; N less ; B 47 -8 553 514 ; +C 61 ; WX 600 ; N equal ; B 47 106 553 400 ; +C 62 ; WX 600 ; N greater ; B 47 -8 553 514 ; +C 63 ; WX 444 ; N question ; B 22 0 421 736 ; +C 64 ; WX 800 ; N at ; B 40 -12 760 736 ; +C 65 ; WX 500 ; N A ; B -3 0 503 724 ; +C 66 ; WX 556 ; N B ; B 70 0 517 724 ; +C 67 ; WX 556 ; N C ; B 36 -12 525 736 ; +C 68 ; WX 611 ; N D ; B 70 0 574 724 ; +C 69 ; WX 500 ; N E ; B 70 0 434 724 ; +C 70 ; WX 444 ; N F ; B 70 0 414 724 ; +C 71 ; WX 611 ; N G ; B 36 -12 563 736 ; +C 72 ; WX 611 ; N H ; B 70 0 541 724 ; +C 73 ; WX 222 ; N I ; B 60 0 162 724 ; +C 74 ; WX 444 ; N J ; B 8 -12 384 724 ; +C 75 ; WX 556 ; N K ; B 70 0 556 724 ; +C 76 ; WX 444 ; N L ; B 70 0 430 724 ; +C 77 ; WX 722 ; N M ; B 70 0 652 724 ; +C 78 ; WX 611 ; N N ; B 76 0 534 724 ; +C 79 ; WX 611 ; N O ; B 36 -12 574 736 ; +C 80 ; WX 556 ; N P ; B 70 0 513 724 ; +C 81 ; WX 611 ; N Q ; B 36 -12 588 736 ; +C 82 ; WX 556 ; N R ; B 70 0 550 724 ; +C 83 ; WX 500 ; N S ; B 24 -12 475 736 ; +C 84 ; WX 444 ; N T ; B 16 0 428 724 ; +C 85 ; WX 556 ; N U ; B 56 -12 500 724 ; +C 86 ; WX 500 ; N V ; B -1 0 501 724 ; +C 87 ; WX 833 ; N W ; B 7 0 825 724 ; +C 88 ; WX 500 ; N X ; B 1 0 498 724 ; +C 89 ; WX 500 ; N Y ; B 0 0 500 724 ; +C 90 ; WX 444 ; N Z ; B 17 0 427 724 ; +C 91 ; WX 389 ; N bracketleft ; B 88 -210 344 724 ; +C 92 ; WX 278 ; N backslash ; B -15 -12 293 736 ; +C 93 ; WX 389 ; N bracketright ; B 45 -210 301 724 ; +C 94 ; WX 600 ; N asciicircum ; B 76 346 524 724 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 222 ; N quoteleft ; B 27 516 195 736 ; +C 97 ; WX 500 ; N a ; B 34 -10 440 570 ; +C 98 ; WX 500 ; N b ; B 60 -10 466 724 ; +C 99 ; WX 444 ; N c ; B 34 -10 422 570 ; +C 100 ; WX 500 ; N d ; B 34 -10 440 724 ; +C 101 ; WX 444 ; N e ; B 34 -10 414 570 ; +C 102 ; WX 222 ; N f ; B 2 0 229 724 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B 34 -198 440 570 ; +C 104 ; WX 500 ; N h ; B 60 0 440 724 ; +C 105 ; WX 222 ; N i ; B 63 0 159 724 ; +C 106 ; WX 222 ; N j ; B -31 -204 162 724 ; +C 107 ; WX 444 ; N k ; B 60 0 459 724 ; +C 108 ; WX 222 ; N l ; B 63 0 159 724 ; +C 109 ; WX 778 ; N m ; B 60 0 718 570 ; +C 110 ; WX 500 ; N n ; B 60 0 440 570 ; +C 111 ; WX 500 ; N o ; B 34 -10 466 570 ; +C 112 ; WX 500 ; N p ; B 60 -198 466 570 ; +C 113 ; WX 500 ; N q ; B 34 -198 440 570 ; +C 114 ; WX 278 ; N r ; B 60 0 275 570 ; +C 115 ; WX 389 ; N s ; B 17 -10 364 570 ; +C 116 ; WX 222 ; N t ; B 0 0 222 694 ; +C 117 ; WX 500 ; N u ; B 60 -10 440 560 ; +C 118 ; WX 444 ; N v ; B 6 0 438 560 ; +C 119 ; WX 667 ; N w ; B 11 0 655 560 ; +C 120 ; WX 444 ; N x ; B 1 0 443 560 ; +C 121 ; WX 444 ; N y ; B 6 -198 438 560 ; +C 122 ; WX 444 ; N z ; B 34 0 410 560 ; +C 123 ; WX 389 ; N braceleft ; B 43 -210 364 736 ; +C 124 ; WX 222 ; N bar ; B 69 -12 153 736 ; +C 125 ; WX 389 ; N braceright ; B 25 -210 346 736 ; +C 126 ; WX 600 ; N asciitilde ; B 69 169 531 337 ; +C 161 ; WX 222 ; N exclamdown ; B 60 -164 162 560 ; +C 162 ; WX 556 ; N cent ; B 74 -26 464 750 ; +C 163 ; WX 556 ; N sterling ; B 9 0 536 734 ; +C 164 ; WX 167 ; N fraction ; B -167 -12 334 736 ; +C 165 ; WX 556 ; N yen ; B 40 0 516 724 ; +C 166 ; WX 556 ; N florin ; B 15 -204 534 736 ; +C 167 ; WX 444 ; N section ; B 28 -80 415 736 ; +C 168 ; WX 556 ; N currency ; B 24 109 532 615 ; +C 169 ; WX 222 ; N quotesingle ; B 70 476 152 724 ; +C 170 ; WX 333 ; N quotedblleft ; B 17 516 315 736 ; +C 171 ; WX 444 ; N guillemotleft ; B 22 99 422 461 ; +C 172 ; WX 278 ; N guilsinglleft ; B 32 99 256 461 ; +C 173 ; WX 278 ; N guilsinglright ; B 22 99 246 461 ; +C 174 ; WX 444 ; N fi ; B 2 0 381 724 ; +C 175 ; WX 444 ; N fl ; B 2 0 381 724 ; +C 177 ; WX 500 ; N endash ; B 0 249 500 311 ; +C 178 ; WX 444 ; N dagger ; B 40 -80 404 736 ; +C 179 ; WX 444 ; N daggerdbl ; B 40 -80 404 736 ; +C 180 ; WX 278 ; N periodcentered ; B 84 198 194 308 ; +C 182 ; WX 600 ; N paragraph ; B 49 -80 488 724 ; +C 183 ; WX 500 ; N bullet ; B 69 181 431 543 ; +C 184 ; WX 222 ; N quotesinglbase ; B 27 -96 195 124 ; +C 185 ; WX 333 ; N quotedblbase ; B 18 -96 316 124 ; +C 186 ; WX 333 ; N quotedblright ; B 18 516 316 736 ; +C 187 ; WX 444 ; N guillemotright ; B 22 99 422 461 ; +C 188 ; WX 1000 ; N ellipsis ; B 119 0 881 124 ; +C 189 ; WX 1000 ; N perthousand ; B 0 -12 1001 736 ; +C 191 ; WX 444 ; N questiondown ; B 23 -176 422 560 ; +C 193 ; WX 222 ; N grave ; B -20 622 178 764 ; +C 194 ; WX 222 ; N acute ; B 44 622 242 764 ; +C 195 ; WX 222 ; N circumflex ; B -34 622 256 764 ; +C 196 ; WX 222 ; N tilde ; B -59 633 281 749 ; +C 197 ; WX 222 ; N macron ; B -44 657 266 715 ; +C 198 ; WX 222 ; N breve ; B -43 628 265 764 ; +C 199 ; WX 222 ; N dotaccent ; B 66 638 156 736 ; +C 200 ; WX 222 ; N dieresis ; B -16 638 238 736 ; +C 202 ; WX 222 ; N ring ; B 2 622 220 840 ; +C 203 ; WX 222 ; N cedilla ; B 6 -226 221 0 ; +C 205 ; WX 222 ; N hungarumlaut ; B -22 622 322 764 ; +C 206 ; WX 222 ; N ogonek ; B 12 -212 259 20 ; +C 207 ; WX 222 ; N caron ; B -34 622 256 764 ; +C 208 ; WX 1000 ; N emdash ; B 0 249 1000 311 ; +C 225 ; WX 833 ; N AE ; B -18 0 767 724 ; +C 227 ; WX 300 ; N ordfeminine ; B 8 388 277 736 ; +C 232 ; WX 444 ; N Lslash ; B 1 0 430 724 ; +C 233 ; WX 611 ; N Oslash ; B 8 -42 602 766 ; +C 234 ; WX 889 ; N OE ; B 30 -12 823 736 ; +C 235 ; WX 300 ; N ordmasculine ; B 9 388 291 736 ; +C 241 ; WX 778 ; N ae ; B 34 -10 744 570 ; +C 245 ; WX 222 ; N dotlessi ; B 63 0 159 560 ; +C 248 ; WX 222 ; N lslash ; B 3 0 219 724 ; +C 249 ; WX 500 ; N oslash ; B 22 -76 478 636 ; +C 250 ; WX 778 ; N oe ; B 34 -10 744 570 ; +C 251 ; WX 556 ; N germandbls ; B 60 -10 522 724 ; +C -1 ; WX 444 ; N Zcaron ; B 17 0 427 904 ; +C -1 ; WX 444 ; N ccedilla ; B 34 -226 422 570 ; +C -1 ; WX 444 ; N ydieresis ; B 6 -198 438 736 ; +C -1 ; WX 500 ; N atilde ; B 34 -10 440 749 ; +C -1 ; WX 222 ; N icircumflex ; B -34 0 256 764 ; +C -1 ; WX 333 ; N threesuperior ; B 14 286 326 736 ; +C -1 ; WX 444 ; N ecircumflex ; B 34 -10 414 764 ; +C -1 ; WX 500 ; N thorn ; B 60 -198 466 724 ; +C -1 ; WX 444 ; N egrave ; B 34 -10 414 764 ; +C -1 ; WX 333 ; N twosuperior ; B 21 294 311 736 ; +C -1 ; WX 444 ; N eacute ; B 34 -10 414 764 ; +C -1 ; WX 500 ; N otilde ; B 34 -10 466 749 ; +C -1 ; WX 500 ; N Aacute ; B -3 0 503 904 ; +C -1 ; WX 500 ; N ocircumflex ; B 34 -10 466 764 ; +C -1 ; WX 444 ; N yacute ; B 6 -198 438 764 ; +C -1 ; WX 500 ; N udieresis ; B 60 -10 440 736 ; +C -1 ; WX 834 ; N threequarters ; B 54 -12 785 736 ; +C -1 ; WX 500 ; N acircumflex ; B 34 -10 440 764 ; +C -1 ; WX 611 ; N Eth ; B -14 0 574 724 ; +C -1 ; WX 444 ; N edieresis ; B 34 -10 414 736 ; +C -1 ; WX 500 ; N ugrave ; B 60 -10 440 764 ; +C -1 ; WX 990 ; N trademark ; B 82 312 908 724 ; +C -1 ; WX 500 ; N ograve ; B 34 -10 466 764 ; +C -1 ; WX 389 ; N scaron ; B 17 -10 364 764 ; +C -1 ; WX 222 ; N Idieresis ; B -16 0 238 876 ; +C -1 ; WX 500 ; N uacute ; B 60 -10 440 764 ; +C -1 ; WX 500 ; N agrave ; B 34 -10 440 764 ; +C -1 ; WX 500 ; N ntilde ; B 60 0 440 749 ; +C -1 ; WX 500 ; N aring ; B 34 -10 440 840 ; +C -1 ; WX 444 ; N zcaron ; B 34 0 410 764 ; +C -1 ; WX 222 ; N Icircumflex ; B -34 0 256 904 ; +C -1 ; WX 611 ; N Ntilde ; B 76 0 534 889 ; +C -1 ; WX 500 ; N ucircumflex ; B 60 -10 440 764 ; +C -1 ; WX 500 ; N Ecircumflex ; B 70 0 434 904 ; +C -1 ; WX 222 ; N Iacute ; B 44 0 242 904 ; +C -1 ; WX 556 ; N Ccedilla ; B 36 -226 525 736 ; +C -1 ; WX 611 ; N Odieresis ; B 36 -12 574 876 ; +C -1 ; WX 500 ; N Scaron ; B 24 -12 475 904 ; +C -1 ; WX 500 ; N Edieresis ; B 70 0 434 876 ; +C -1 ; WX 222 ; N Igrave ; B -20 0 178 904 ; +C -1 ; WX 500 ; N adieresis ; B 34 -10 440 736 ; +C -1 ; WX 611 ; N Ograve ; B 36 -12 574 904 ; +C -1 ; WX 500 ; N Egrave ; B 70 0 434 904 ; +C -1 ; WX 500 ; N Ydieresis ; B 0 0 500 876 ; +C -1 ; WX 800 ; N registered ; B 20 -12 780 736 ; +C -1 ; WX 611 ; N Otilde ; B 36 -12 574 889 ; +C -1 ; WX 834 ; N onequarter ; B 94 -12 785 736 ; +C -1 ; WX 556 ; N Ugrave ; B 56 -12 500 904 ; +C -1 ; WX 556 ; N Ucircumflex ; B 56 -12 500 904 ; +C -1 ; WX 556 ; N Thorn ; B 70 0 513 724 ; +C -1 ; WX 600 ; N divide ; B 47 -26 553 532 ; +C -1 ; WX 500 ; N Atilde ; B -3 0 503 889 ; +C -1 ; WX 556 ; N Uacute ; B 56 -12 500 904 ; +C -1 ; WX 611 ; N Ocircumflex ; B 36 -12 574 904 ; +C -1 ; WX 600 ; N logicalnot ; B 47 106 553 400 ; +C -1 ; WX 500 ; N Aring ; B -3 0 503 980 ; +C -1 ; WX 222 ; N idieresis ; B -16 0 238 736 ; +C -1 ; WX 222 ; N iacute ; B 44 0 242 764 ; +C -1 ; WX 500 ; N aacute ; B 34 -10 440 764 ; +C -1 ; WX 600 ; N plusminus ; B 47 0 553 506 ; +C -1 ; WX 600 ; N multiply ; B 47 0 553 506 ; +C -1 ; WX 556 ; N Udieresis ; B 56 -12 500 876 ; +C -1 ; WX 600 ; N minus ; B 47 211 553 295 ; +C -1 ; WX 333 ; N onesuperior ; B 66 294 221 728 ; +C -1 ; WX 500 ; N Eacute ; B 70 0 434 904 ; +C -1 ; WX 500 ; N Acircumflex ; B -3 0 503 904 ; +C -1 ; WX 800 ; N copyright ; B 20 -12 780 736 ; +C -1 ; WX 500 ; N Agrave ; B -3 0 503 904 ; +C -1 ; WX 500 ; N odieresis ; B 34 -10 466 736 ; +C -1 ; WX 500 ; N oacute ; B 34 -10 466 764 ; +C -1 ; WX 400 ; N degree ; B 57 450 343 736 ; +C -1 ; WX 222 ; N igrave ; B -20 0 178 764 ; +C -1 ; WX 500 ; N mu ; B 60 -198 440 560 ; +C -1 ; WX 611 ; N Oacute ; B 36 -12 574 904 ; +C -1 ; WX 500 ; N eth ; B 34 -10 466 738 ; +C -1 ; WX 500 ; N Adieresis ; B -3 0 503 876 ; +C -1 ; WX 500 ; N Yacute ; B 0 0 500 904 ; +C -1 ; WX 222 ; N brokenbar ; B 69 -12 153 736 ; +C -1 ; WX 834 ; N onehalf ; B 94 -12 770 736 ; +EndCharMetrics +StartKernData +StartKernPairs 115 + +KPX A y -18 +KPX A w -18 +KPX A v -18 +KPX A quoteright -55 +KPX A Y -37 +KPX A W -37 +KPX A V -37 +KPX A T -37 + +KPX F period -111 +KPX F comma -111 +KPX F A -18 + +KPX L y -37 +KPX L quoteright -92 +KPX L Y -55 +KPX L W -55 +KPX L V -55 +KPX L T -55 + +KPX P period -129 +KPX P comma -129 +KPX P A -37 + +KPX R y 0 +KPX R Y -18 +KPX R W -18 +KPX R V -18 +KPX R T -18 + +KPX T y -37 +KPX T w -55 +KPX T u -37 +KPX T semicolon -55 +KPX T s -55 +KPX T r -37 +KPX T period -74 +KPX T o -55 +KPX T i -37 +KPX T hyphen -55 +KPX T e -55 +KPX T comma -74 +KPX T colon -55 +KPX T c -55 +KPX T a -55 +KPX T A -37 + +KPX V y -18 +KPX V u -18 +KPX V semicolon -37 +KPX V r -18 +KPX V period -92 +KPX V o -37 +KPX V i -18 +KPX V hyphen -55 +KPX V e -37 +KPX V comma -92 +KPX V colon -37 +KPX V a -37 +KPX V A -37 + +KPX W y 0 +KPX W u 0 +KPX W semicolon -18 +KPX W r 0 +KPX W period -74 +KPX W o -18 +KPX W i 0 +KPX W hyphen -18 +KPX W e -18 +KPX W comma -74 +KPX W colon -18 +KPX W a -18 +KPX W A -18 + +KPX Y v -18 +KPX Y u -18 +KPX Y semicolon -37 +KPX Y q -37 +KPX Y period -74 +KPX Y p -18 +KPX Y o -37 +KPX Y i -18 +KPX Y hyphen -55 +KPX Y e -37 +KPX Y comma -74 +KPX Y colon -37 +KPX Y a -37 +KPX Y A -37 + +KPX f quoteright 18 +KPX f f 0 + +KPX quoteleft quoteleft -92 + +KPX quoteright t 0 +KPX quoteright s -55 +KPX quoteright quoteright -92 + +KPX r z 0 +KPX r y 0 +KPX r x 0 +KPX r w 0 +KPX r v 0 +KPX r u 0 +KPX r t 0 +KPX r r 0 +KPX r quoteright 18 +KPX r q 0 +KPX r period -55 +KPX r o 0 +KPX r n 0 +KPX r m 0 +KPX r hyphen -37 +KPX r h 0 +KPX r g 0 +KPX r f 0 +KPX r e 0 +KPX r d 0 +KPX r comma -55 +KPX r c 0 + +KPX v period -55 +KPX v comma -55 + +KPX w period -37 +KPX w comma -37 + +KPX y period -55 +KPX y comma -55 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 139 140 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 139 140 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 139 140 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 139 140 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 139 140 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 139 140 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 167 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 145 140 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 145 140 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 145 140 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 145 140 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 0 140 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 0 140 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 0 140 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 140 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 195 140 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 195 140 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 195 140 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 195 140 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 195 140 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 195 140 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 139 140 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 167 140 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 167 140 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 167 140 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 167 140 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 139 140 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 139 140 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 111 140 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 139 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 139 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 139 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 139 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 139 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 139 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 111 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 111 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 111 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 111 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 111 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 139 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 139 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 139 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 139 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 139 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 139 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 84 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 139 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 139 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 139 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 139 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 111 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 111 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 111 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnMd+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnMd+ new file mode 100755 index 0000000000000..e12a8ae95c497 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-CnMd+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 556 ; N Ccaron ; B 36 -12 525 932 ; +C -1 ; WX 444 ; N ccaron ; B 34 -10 422 764 ; +C -1 ; WX 611 ; N Dcaron ; B 70 0 574 932 ; +C -1 ; WX 618 ; N dcaron ; B 34 -10 625 796 ; +C -1 ; WX 500 ; N Ecaron ; B 70 0 434 932 ; +C -1 ; WX 444 ; N ecaron ; B 34 -10 414 764 ; +C -1 ; WX 444 ; N Lcaron ; B 70 0 430 796 ; +C -1 ; WX 444 ; N Lacute ; B 70 0 430 932 ; +C -1 ; WX 340 ; N lcaron ; B 63 0 344 796 ; +C -1 ; WX 222 ; N lacute ; B 63 0 262 932 ; +C -1 ; WX 611 ; N Ncaron ; B 76 0 534 932 ; +C -1 ; WX 500 ; N ncaron ; B 60 0 440 764 ; +C -1 ; WX 556 ; N Rcaron ; B 70 0 550 932 ; +C -1 ; WX 556 ; N Racute ; B 70 0 550 932 ; +C -1 ; WX 278 ; N rcaron ; B -6 0 284 764 ; +C -1 ; WX 278 ; N racute ; B 60 0 290 764 ; +C -1 ; WX 444 ; N Tcaron ; B 16 0 428 932 ; +C -1 ; WX 340 ; N tcaron ; B 0 0 407 736 ; +C -1 ; WX 556 ; N Uring ; B 56 -12 500 932 ; +C -1 ; WX 500 ; N uring ; B 60 -10 440 840 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 216 168 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 130 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 194 168 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 430 60 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 139 168 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 111 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 152 60 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 111 168 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 149 60 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 20 168 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 194 168 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 139 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 167 168 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 205 168 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 28 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 48 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 111 168 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 212 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 167 92 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 139 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Dm b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Dm new file mode 100755 index 0000000000000..69eebba18ee05 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Dm @@ -0,0 +1,576 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Mon Mar 4 13:46:34 1991 +Comment UniqueID 34370 +Comment VMusage 24954 31846 +FontName AvantGarde-Demi +FullName ITC Avant Garde Gothic Demi +FamilyName ITC Avant Garde Gothic +Weight Demi +ItalicAngle 0 +IsFixedPitch false +FontBBox -123 -251 1222 1021 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.007 +Notice Copyright (c) 1985, 1987, 1989, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved.ITC Avant Garde Gothic is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 740 +XHeight 555 +Ascender 740 +Descender -185 +StartCharMetrics 228 +C 32 ; WX 280 ; N space ; B 0 0 0 0 ; +C 33 ; WX 280 ; N exclam ; B 73 0 206 740 ; +C 34 ; WX 360 ; N quotedbl ; B 19 444 341 740 ; +C 35 ; WX 560 ; N numbersign ; B 29 0 525 700 ; +C 36 ; WX 560 ; N dollar ; B 58 -86 501 857 ; +C 37 ; WX 860 ; N percent ; B 36 -15 822 755 ; +C 38 ; WX 680 ; N ampersand ; B 34 -15 665 755 ; +C 39 ; WX 280 ; N quoteright ; B 72 466 205 740 ; +C 40 ; WX 380 ; N parenleft ; B 74 -157 350 754 ; +C 41 ; WX 380 ; N parenright ; B 37 -157 313 754 ; +C 42 ; WX 440 ; N asterisk ; B 67 457 374 755 ; +C 43 ; WX 600 ; N plus ; B 48 0 552 506 ; +C 44 ; WX 280 ; N comma ; B 73 -141 206 133 ; +C 45 ; WX 420 ; N hyphen ; B 71 230 349 348 ; +C 46 ; WX 280 ; N period ; B 73 0 206 133 ; +C 47 ; WX 460 ; N slash ; B 6 -100 454 740 ; +C 48 ; WX 560 ; N zero ; B 32 -15 529 755 ; +C 49 ; WX 560 ; N one ; B 137 0 363 740 ; +C 50 ; WX 560 ; N two ; B 36 0 523 755 ; +C 51 ; WX 560 ; N three ; B 28 -15 532 755 ; +C 52 ; WX 560 ; N four ; B 15 0 545 740 ; +C 53 ; WX 560 ; N five ; B 25 -15 535 740 ; +C 54 ; WX 560 ; N six ; B 23 -15 536 739 ; +C 55 ; WX 560 ; N seven ; B 62 0 498 740 ; +C 56 ; WX 560 ; N eight ; B 33 -15 527 755 ; +C 57 ; WX 560 ; N nine ; B 24 0 537 754 ; +C 58 ; WX 280 ; N colon ; B 73 0 206 555 ; +C 59 ; WX 280 ; N semicolon ; B 73 -141 206 555 ; +C 60 ; WX 600 ; N less ; B 46 -8 554 514 ; +C 61 ; WX 600 ; N equal ; B 48 81 552 425 ; +C 62 ; WX 600 ; N greater ; B 46 -8 554 514 ; +C 63 ; WX 560 ; N question ; B 38 0 491 755 ; +C 64 ; WX 740 ; N at ; B 50 -12 750 712 ; +C 65 ; WX 740 ; N A ; B 7 0 732 740 ; +C 66 ; WX 580 ; N B ; B 70 0 551 740 ; +C 67 ; WX 780 ; N C ; B 34 -15 766 755 ; +C 68 ; WX 700 ; N D ; B 63 0 657 740 ; +C 69 ; WX 520 ; N E ; B 61 0 459 740 ; +C 70 ; WX 480 ; N F ; B 61 0 438 740 ; +C 71 ; WX 840 ; N G ; B 27 -15 817 755 ; +C 72 ; WX 680 ; N H ; B 71 0 610 740 ; +C 73 ; WX 280 ; N I ; B 72 0 209 740 ; +C 74 ; WX 480 ; N J ; B 2 -15 409 740 ; +C 75 ; WX 620 ; N K ; B 89 0 620 740 ; +C 76 ; WX 440 ; N L ; B 72 0 435 740 ; +C 77 ; WX 900 ; N M ; B 63 0 837 740 ; +C 78 ; WX 740 ; N N ; B 70 0 671 740 ; +C 79 ; WX 840 ; N O ; B 33 -15 807 755 ; +C 80 ; WX 560 ; N P ; B 72 0 545 740 ; +C 81 ; WX 840 ; N Q ; B 32 -15 824 755 ; +C 82 ; WX 580 ; N R ; B 64 0 565 740 ; +C 83 ; WX 520 ; N S ; B 12 -15 493 755 ; +C 84 ; WX 420 ; N T ; B 6 0 418 740 ; +C 85 ; WX 640 ; N U ; B 55 -15 585 740 ; +C 86 ; WX 700 ; N V ; B 8 0 695 740 ; +C 87 ; WX 900 ; N W ; B 7 0 899 740 ; +C 88 ; WX 680 ; N X ; B 4 0 676 740 ; +C 89 ; WX 620 ; N Y ; B -2 0 622 740 ; +C 90 ; WX 500 ; N Z ; B 19 0 481 740 ; +C 91 ; WX 320 ; N bracketleft ; B 66 -157 284 754 ; +C 92 ; WX 640 ; N backslash ; B 96 -100 544 740 ; +C 93 ; WX 320 ; N bracketright ; B 36 -157 254 754 ; +C 94 ; WX 600 ; N asciicircum ; B 73 375 527 740 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 280 ; N quoteleft ; B 72 466 205 740 ; +C 97 ; WX 660 ; N a ; B 27 -18 613 574 ; +C 98 ; WX 660 ; N b ; B 47 -18 632 740 ; +C 99 ; WX 640 ; N c ; B 37 -18 610 574 ; +C 100 ; WX 660 ; N d ; B 34 -18 618 740 ; +C 101 ; WX 640 ; N e ; B 31 -18 610 577 ; +C 102 ; WX 280 ; N f ; B 15 0 280 755 ; L i fi ; L l fl ; +C 103 ; WX 660 ; N g ; B 32 -226 623 574 ; +C 104 ; WX 600 ; N h ; B 54 0 546 740 ; +C 105 ; WX 240 ; N i ; B 53 0 186 740 ; +C 106 ; WX 260 ; N j ; B 16 -185 205 740 ; +C 107 ; WX 580 ; N k ; B 80 0 571 740 ; +C 108 ; WX 240 ; N l ; B 54 0 187 740 ; +C 109 ; WX 940 ; N m ; B 54 0 887 574 ; +C 110 ; WX 600 ; N n ; B 54 0 547 574 ; +C 111 ; WX 640 ; N o ; B 25 -18 615 574 ; +C 112 ; WX 660 ; N p ; B 47 -185 629 574 ; +C 113 ; WX 660 ; N q ; B 31 -185 613 574 ; +C 114 ; WX 320 ; N r ; B 63 0 317 574 ; +C 115 ; WX 440 ; N s ; B 19 -18 421 574 ; +C 116 ; WX 300 ; N t ; B 21 0 299 740 ; +C 117 ; WX 600 ; N u ; B 50 -18 544 555 ; +C 118 ; WX 560 ; N v ; B 3 0 556 555 ; +C 119 ; WX 800 ; N w ; B 11 0 789 555 ; +C 120 ; WX 560 ; N x ; B 3 0 556 555 ; +C 121 ; WX 580 ; N y ; B 8 -185 571 555 ; +C 122 ; WX 460 ; N z ; B 20 0 442 555 ; +C 123 ; WX 340 ; N braceleft ; B -3 -191 317 747 ; +C 124 ; WX 600 ; N bar ; B 233 -100 366 740 ; +C 125 ; WX 340 ; N braceright ; B 23 -191 343 747 ; +C 126 ; WX 600 ; N asciitilde ; B 67 160 533 347 ; +C 161 ; WX 280 ; N exclamdown ; B 74 -185 207 555 ; +C 162 ; WX 560 ; N cent ; B 43 39 517 715 ; +C 163 ; WX 560 ; N sterling ; B -2 0 562 755 ; +C 164 ; WX 160 ; N fraction ; B -123 0 282 740 ; +C 165 ; WX 560 ; N yen ; B -10 0 570 740 ; +C 166 ; WX 560 ; N florin ; B 0 -151 512 824 ; +C 167 ; WX 560 ; N section ; B 28 -158 530 755 ; +C 168 ; WX 560 ; N currency ; B 27 69 534 577 ; +C 169 ; WX 220 ; N quotesingle ; B 44 444 177 740 ; +C 170 ; WX 480 ; N quotedblleft ; B 70 466 410 740 ; +C 171 ; WX 460 ; N guillemotleft ; B 61 108 400 469 ; +C 172 ; WX 240 ; N guilsinglleft ; B 50 108 190 469 ; +C 173 ; WX 240 ; N guilsinglright ; B 50 108 190 469 ; +C 174 ; WX 520 ; N fi ; B 25 0 461 755 ; +C 175 ; WX 520 ; N fl ; B 25 0 461 755 ; +C 177 ; WX 500 ; N endash ; B 35 230 465 348 ; +C 178 ; WX 560 ; N dagger ; B 51 -142 509 740 ; +C 179 ; WX 560 ; N daggerdbl ; B 51 -142 509 740 ; +C 180 ; WX 280 ; N periodcentered ; B 73 187 206 320 ; +C 182 ; WX 600 ; N paragraph ; B -7 -103 607 740 ; +C 183 ; WX 600 ; N bullet ; B 148 222 453 532 ; +C 184 ; WX 280 ; N quotesinglbase ; B 72 -141 205 133 ; +C 185 ; WX 480 ; N quotedblbase ; B 70 -141 410 133 ; +C 186 ; WX 480 ; N quotedblright ; B 70 466 410 740 ; +C 187 ; WX 460 ; N guillemotright ; B 61 108 400 469 ; +C 188 ; WX 1000 ; N ellipsis ; B 100 0 899 133 ; +C 189 ; WX 1280 ; N perthousand ; B 36 -15 1222 755 ; +C 191 ; WX 560 ; N questiondown ; B 68 -200 521 555 ; +C 193 ; WX 420 ; N grave ; B 50 624 329 851 ; +C 194 ; WX 420 ; N acute ; B 91 624 370 849 ; +C 195 ; WX 540 ; N circumflex ; B 71 636 470 774 ; +C 196 ; WX 480 ; N tilde ; B 44 636 437 767 ; +C 197 ; WX 420 ; N macron ; B 72 648 349 759 ; +C 198 ; WX 480 ; N breve ; B 42 633 439 770 ; +C 199 ; WX 280 ; N dotaccent ; B 74 636 207 769 ; +C 200 ; WX 500 ; N dieresis ; B 78 636 422 769 ; +C 202 ; WX 360 ; N ring ; B 73 619 288 834 ; +C 203 ; WX 340 ; N cedilla ; B 98 -251 298 6 ; +C 205 ; WX 700 ; N hungarumlaut ; B 132 610 609 862 ; +C 206 ; WX 340 ; N ogonek ; B 79 -195 262 9 ; +C 207 ; WX 540 ; N caron ; B 71 636 470 774 ; +C 208 ; WX 1000 ; N emdash ; B 35 230 965 348 ; +C 225 ; WX 900 ; N AE ; B -5 0 824 740 ; +C 227 ; WX 360 ; N ordfeminine ; B 19 438 334 755 ; +C 232 ; WX 480 ; N Lslash ; B 26 0 460 740 ; +C 233 ; WX 840 ; N Oslash ; B 33 -71 807 814 ; +C 234 ; WX 1060 ; N OE ; B 37 -15 1007 755 ; +C 235 ; WX 360 ; N ordmasculine ; B 23 438 338 755 ; +C 241 ; WX 1080 ; N ae ; B 29 -18 1048 574 ; +C 245 ; WX 240 ; N dotlessi ; B 53 0 186 555 ; +C 248 ; WX 320 ; N lslash ; B 34 0 305 740 ; +C 249 ; WX 660 ; N oslash ; B 35 -50 625 608 ; +C 250 ; WX 1080 ; N oe ; B 30 -18 1050 574 ; +C 251 ; WX 600 ; N germandbls ; B 51 -18 585 755 ; +C -1 ; WX 640 ; N ecircumflex ; B 31 -18 610 774 ; +C -1 ; WX 640 ; N edieresis ; B 31 -18 610 769 ; +C -1 ; WX 660 ; N aacute ; B 27 -18 613 849 ; +C -1 ; WX 740 ; N registered ; B -12 -12 752 752 ; +C -1 ; WX 240 ; N icircumflex ; B -79 0 320 774 ; +C -1 ; WX 600 ; N udieresis ; B 50 -18 544 769 ; +C -1 ; WX 640 ; N ograve ; B 25 -18 615 851 ; +C -1 ; WX 600 ; N uacute ; B 50 -18 544 849 ; +C -1 ; WX 600 ; N ucircumflex ; B 50 -18 544 774 ; +C -1 ; WX 740 ; N Aacute ; B 7 0 732 1019 ; +C -1 ; WX 240 ; N igrave ; B -65 0 214 851 ; +C -1 ; WX 280 ; N Icircumflex ; B -59 0 340 944 ; +C -1 ; WX 640 ; N ccedilla ; B 37 -251 610 574 ; +C -1 ; WX 660 ; N adieresis ; B 27 -18 613 769 ; +C -1 ; WX 520 ; N Ecircumflex ; B 61 0 460 944 ; +C -1 ; WX 440 ; N scaron ; B 19 -18 421 774 ; +C -1 ; WX 660 ; N thorn ; B 47 -185 629 740 ; +C -1 ; WX 1000 ; N trademark ; B 9 296 821 740 ; +C -1 ; WX 640 ; N egrave ; B 31 -18 610 851 ; +C -1 ; WX 336 ; N threesuperior ; B 8 287 328 749 ; +C -1 ; WX 460 ; N zcaron ; B 20 0 455 774 ; +C -1 ; WX 660 ; N atilde ; B 27 -18 613 767 ; +C -1 ; WX 660 ; N aring ; B 27 -18 613 834 ; +C -1 ; WX 640 ; N ocircumflex ; B 25 -18 615 774 ; +C -1 ; WX 520 ; N Edieresis ; B 61 0 459 939 ; +C -1 ; WX 840 ; N threequarters ; B 18 0 803 749 ; +C -1 ; WX 580 ; N ydieresis ; B 8 -185 571 769 ; +C -1 ; WX 580 ; N yacute ; B 8 -185 571 849 ; +C -1 ; WX 240 ; N iacute ; B 26 0 305 849 ; +C -1 ; WX 740 ; N Acircumflex ; B 7 0 732 944 ; +C -1 ; WX 640 ; N Uacute ; B 55 -15 585 1019 ; +C -1 ; WX 640 ; N eacute ; B 31 -18 610 849 ; +C -1 ; WX 840 ; N Ograve ; B 33 -15 807 1021 ; +C -1 ; WX 660 ; N agrave ; B 27 -18 613 851 ; +C -1 ; WX 640 ; N Udieresis ; B 55 -15 585 939 ; +C -1 ; WX 660 ; N acircumflex ; B 27 -18 613 774 ; +C -1 ; WX 280 ; N Igrave ; B -45 0 234 1021 ; +C -1 ; WX 336 ; N twosuperior ; B 13 296 322 749 ; +C -1 ; WX 640 ; N Ugrave ; B 55 -15 585 1021 ; +C -1 ; WX 840 ; N onequarter ; B 92 0 746 740 ; +C -1 ; WX 640 ; N Ucircumflex ; B 55 -15 585 944 ; +C -1 ; WX 520 ; N Scaron ; B 12 -15 493 944 ; +C -1 ; WX 280 ; N Idieresis ; B -32 0 312 939 ; +C -1 ; WX 240 ; N idieresis ; B -52 0 292 769 ; +C -1 ; WX 520 ; N Egrave ; B 61 0 459 1021 ; +C -1 ; WX 840 ; N Oacute ; B 33 -15 807 1019 ; +C -1 ; WX 600 ; N divide ; B 48 -20 552 526 ; +C -1 ; WX 740 ; N Atilde ; B 7 0 732 937 ; +C -1 ; WX 740 ; N Aring ; B 7 0 732 969 ; +C -1 ; WX 840 ; N Odieresis ; B 33 -15 807 939 ; +C -1 ; WX 740 ; N Adieresis ; B 7 0 732 939 ; +C -1 ; WX 740 ; N Ntilde ; B 70 0 671 937 ; +C -1 ; WX 500 ; N Zcaron ; B 19 0 481 944 ; +C -1 ; WX 560 ; N Thorn ; B 72 0 545 740 ; +C -1 ; WX 280 ; N Iacute ; B 46 0 325 1019 ; +C -1 ; WX 600 ; N plusminus ; B 48 -62 552 556 ; +C -1 ; WX 600 ; N multiply ; B 59 12 541 494 ; +C -1 ; WX 520 ; N Eacute ; B 61 0 459 1019 ; +C -1 ; WX 620 ; N Ydieresis ; B -2 0 622 939 ; +C -1 ; WX 336 ; N onesuperior ; B 72 296 223 740 ; +C -1 ; WX 600 ; N ugrave ; B 50 -18 544 851 ; +C -1 ; WX 600 ; N logicalnot ; B 48 108 552 425 ; +C -1 ; WX 600 ; N ntilde ; B 54 0 547 767 ; +C -1 ; WX 840 ; N Otilde ; B 33 -15 807 937 ; +C -1 ; WX 640 ; N otilde ; B 25 -18 615 767 ; +C -1 ; WX 780 ; N Ccedilla ; B 34 -251 766 755 ; +C -1 ; WX 740 ; N Agrave ; B 7 0 732 1021 ; +C -1 ; WX 840 ; N onehalf ; B 62 0 771 740 ; +C -1 ; WX 742 ; N Eth ; B 25 0 691 740 ; +C -1 ; WX 400 ; N degree ; B 57 426 343 712 ; +C -1 ; WX 620 ; N Yacute ; B -2 0 622 1019 ; +C -1 ; WX 840 ; N Ocircumflex ; B 33 -15 807 944 ; +C -1 ; WX 640 ; N oacute ; B 25 -18 615 849 ; +C -1 ; WX 576 ; N mu ; B 38 -187 539 555 ; +C -1 ; WX 600 ; N minus ; B 48 193 552 313 ; +C -1 ; WX 640 ; N eth ; B 27 -18 616 754 ; +C -1 ; WX 640 ; N odieresis ; B 25 -18 615 769 ; +C -1 ; WX 740 ; N copyright ; B -12 -12 752 752 ; +C -1 ; WX 600 ; N brokenbar ; B 233 -100 366 740 ; +EndCharMetrics +StartKernData +StartKernPairs 218 + +KPX A y -50 +KPX A w -65 +KPX A v -70 +KPX A u -20 +KPX A quoteright -90 +KPX A Y -80 +KPX A W -60 +KPX A V -102 +KPX A U -40 +KPX A T -25 +KPX A Q -50 +KPX A O -50 +KPX A G -40 +KPX A C -40 + +KPX B A -10 + +KPX C A -40 + +KPX D period -20 +KPX D comma -20 +KPX D Y -45 +KPX D W -25 +KPX D V -50 +KPX D A -50 + +KPX F period -129 +KPX F e -20 +KPX F comma -162 +KPX F a -20 +KPX F A -75 + +KPX G period -20 +KPX G comma -20 +KPX G Y -15 + +KPX J period -15 +KPX J a -20 +KPX J A -30 + +KPX K y -20 +KPX K u -15 +KPX K o -45 +KPX K e -40 +KPX K O -30 + +KPX L y -23 +KPX L quoteright -30 +KPX L quotedblright -30 +KPX L Y -80 +KPX L W -55 +KPX L V -85 +KPX L T -46 + +KPX O period -30 +KPX O comma -30 +KPX O Y -30 +KPX O X -30 +KPX O W -20 +KPX O V -45 +KPX O T -15 +KPX O A -60 + +KPX P period -200 +KPX P o -20 +KPX P e -20 +KPX P comma -220 +KPX P a -20 +KPX P A -100 + +KPX Q comma 20 + +KPX R W 25 +KPX R V -10 +KPX R U 25 +KPX R T 40 +KPX R O 25 + +KPX S comma 20 + +KPX T y -10 +KPX T w -55 +KPX T u -46 +KPX T semicolon -29 +KPX T r -30 +KPX T period -91 +KPX T o -49 +KPX T hyphen -75 +KPX T e -49 +KPX T comma -82 +KPX T colon -15 +KPX T a -70 +KPX T O -15 +KPX T A -25 + +KPX U period -20 +KPX U comma -20 +KPX U A -40 + +KPX V u -55 +KPX V semicolon -33 +KPX V period -145 +KPX V o -101 +KPX V i -15 +KPX V hyphen -75 +KPX V e -101 +KPX V comma -145 +KPX V colon -18 +KPX V a -95 +KPX V O -45 +KPX V G -20 +KPX V A -102 + +KPX W y -15 +KPX W u -30 +KPX W semicolon -33 +KPX W period -106 +KPX W o -46 +KPX W i -10 +KPX W hyphen -35 +KPX W e -47 +KPX W comma -106 +KPX W colon -15 +KPX W a -50 +KPX W O -20 +KPX W A -58 + +KPX Y u -52 +KPX Y semicolon -23 +KPX Y period -145 +KPX Y o -89 +KPX Y hyphen -100 +KPX Y e -89 +KPX Y comma -145 +KPX Y colon -10 +KPX Y a -93 +KPX Y O -30 +KPX Y A -80 + +KPX a t 5 +KPX a p 20 +KPX a b 5 + +KPX b y -20 +KPX b v -20 + +KPX c y -20 +KPX c l -15 +KPX c k -15 + +KPX comma space -50 +KPX comma quoteright -70 +KPX comma quotedblright -70 + +KPX e y -20 +KPX e x -20 +KPX e w -20 +KPX e v -20 + +KPX f period -40 +KPX f o -20 +KPX f l -15 +KPX f i -15 +KPX f f -20 +KPX f dotlessi -15 +KPX f comma -40 +KPX f a -15 + +KPX g i 25 +KPX g a 15 + +KPX h y -30 + +KPX k y -5 +KPX k o -30 +KPX k e -40 + +KPX m y -20 +KPX m u -20 + +KPX n y -15 +KPX n v -30 + +KPX o y -20 +KPX o x -30 +KPX o w -20 +KPX o v -30 + +KPX p y -20 + +KPX period space -50 +KPX period quoteright -70 +KPX period quotedblright -70 + +KPX quotedblleft A -50 + +KPX quotedblright space -50 + +KPX quoteleft quoteleft -80 +KPX quoteleft A -50 + +KPX quoteright v -10 +KPX quoteright t 10 +KPX quoteright space -50 +KPX quoteright s -15 +KPX quoteright r -20 +KPX quoteright quoteright -80 +KPX quoteright d -50 + +KPX r y 40 +KPX r v 40 +KPX r u 20 +KPX r t 20 +KPX r s 20 +KPX r q -8 +KPX r period -73 +KPX r p 20 +KPX r o -15 +KPX r n 21 +KPX r m 15 +KPX r l 20 +KPX r k 5 +KPX r i 20 +KPX r hyphen -60 +KPX r g 1 +KPX r e -4 +KPX r d -6 +KPX r comma -75 +KPX r c -7 + +KPX s period 20 +KPX s comma 20 + +KPX space quoteleft -50 +KPX space quotedblleft -50 +KPX space Y -60 +KPX space W -25 +KPX space V -80 +KPX space T -25 +KPX space A -20 + +KPX v period -90 +KPX v o -20 +KPX v e -20 +KPX v comma -90 +KPX v a -30 + +KPX w period -90 +KPX w o -30 +KPX w e -20 +KPX w comma -90 +KPX w a -30 + +KPX x e -20 + +KPX y period -100 +KPX y o -30 +KPX y e -20 +KPX y comma -100 +KPX y c -35 +KPX y a -30 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 160 170 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 100 170 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 120 170 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 160 170 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 190 135 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 130 170 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 50 170 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex -10 170 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 10 170 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 50 170 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute -45 170 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -130 170 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -110 170 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -95 170 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 130 170 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 210 170 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 150 170 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 170 170 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 210 170 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 180 170 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron -10 170 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 145 170 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 50 170 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 70 170 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 75 170 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 135 170 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 60 170 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 5 170 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 120 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 60 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 80 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 120 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 150 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 90 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 110 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 50 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 70 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 110 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -65 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -150 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -130 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -115 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 60 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 110 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 50 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 70 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 110 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 80 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron -50 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 125 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 30 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 50 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 55 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 115 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 40 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron -15 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Dm+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Dm+ new file mode 100755 index 0000000000000..ede2da936228d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Dm+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 780 ; N Ccaron ; B 34 -15 766 946 ; +C -1 ; WX 640 ; N ccaron ; B 37 -18 610 774 ; +C -1 ; WX 700 ; N Dcaron ; B 63 0 657 946 ; +C -1 ; WX 753 ; N dcaron ; B 34 -18 764 814 ; +C -1 ; WX 520 ; N Ecaron ; B 61 0 460 946 ; +C -1 ; WX 640 ; N ecaron ; B 31 -18 610 774 ; +C -1 ; WX 440 ; N Lcaron ; B 72 0 435 814 ; +C -1 ; WX 440 ; N Lacute ; B 72 0 435 1033 ; +C -1 ; WX 333 ; N lcaron ; B 54 0 333 814 ; +C -1 ; WX 240 ; N lacute ; B 29 0 308 1033 ; +C -1 ; WX 740 ; N Ncaron ; B 70 0 671 946 ; +C -1 ; WX 600 ; N ncaron ; B 54 0 547 774 ; +C -1 ; WX 580 ; N Rcaron ; B 64 0 565 946 ; +C -1 ; WX 580 ; N Racute ; B 64 0 565 1033 ; +C -1 ; WX 320 ; N rcaron ; B -39 0 360 774 ; +C -1 ; WX 320 ; N racute ; B 63 0 348 849 ; +C -1 ; WX 420 ; N Tcaron ; B 6 0 418 946 ; +C -1 ; WX 393 ; N tcaron ; B 21 0 445 740 ; +C -1 ; WX 640 ; N Uring ; B 55 -15 585 946 ; +C -1 ; WX 600 ; N uring ; B 50 -18 544 834 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 193 172 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 79 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 80 172 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 559 74 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron -10 172 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 50 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 150 74 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 10 184 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 128 74 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute -62 184 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 100 172 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 30 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 20 172 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 133 184 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron -110 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute -22 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron -60 172 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 240 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 140 112 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 120 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-DmO b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-DmO new file mode 100755 index 0000000000000..c348b117779ee --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-DmO @@ -0,0 +1,576 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Mon Mar 4 13:49:44 1991 +Comment UniqueID 34373 +Comment VMusage 6550 39938 +FontName AvantGarde-DemiOblique +FullName ITC Avant Garde Gothic Demi Oblique +FamilyName ITC Avant Garde Gothic +Weight Demi +ItalicAngle -10.5 +IsFixedPitch false +FontBBox -123 -251 1256 1021 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.007 +Notice Copyright (c) 1985, 1987, 1989, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved.ITC Avant Garde Gothic is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 740 +XHeight 555 +Ascender 740 +Descender -185 +StartCharMetrics 228 +C 32 ; WX 280 ; N space ; B 0 0 0 0 ; +C 33 ; WX 280 ; N exclam ; B 73 0 343 740 ; +C 34 ; WX 360 ; N quotedbl ; B 127 444 478 740 ; +C 35 ; WX 560 ; N numbersign ; B 66 0 618 700 ; +C 36 ; WX 560 ; N dollar ; B 99 -86 582 857 ; +C 37 ; WX 860 ; N percent ; B 139 -15 856 755 ; +C 38 ; WX 680 ; N ampersand ; B 71 -15 742 755 ; +C 39 ; WX 280 ; N quoteright ; B 159 466 342 740 ; +C 40 ; WX 380 ; N parenleft ; B 120 -157 490 754 ; +C 41 ; WX 380 ; N parenright ; B 8 -157 378 754 ; +C 42 ; WX 440 ; N asterisk ; B 174 457 492 755 ; +C 43 ; WX 600 ; N plus ; B 84 0 610 506 ; +C 44 ; WX 280 ; N comma ; B 48 -141 231 133 ; +C 45 ; WX 420 ; N hyphen ; B 114 230 413 348 ; +C 46 ; WX 280 ; N period ; B 73 0 231 133 ; +C 47 ; WX 460 ; N slash ; B -13 -100 591 740 ; +C 48 ; WX 560 ; N zero ; B 70 -15 628 755 ; +C 49 ; WX 560 ; N one ; B 230 0 500 740 ; +C 50 ; WX 560 ; N two ; B 44 0 622 755 ; +C 51 ; WX 560 ; N three ; B 67 -15 585 755 ; +C 52 ; WX 560 ; N four ; B 36 0 604 740 ; +C 53 ; WX 560 ; N five ; B 64 -15 600 740 ; +C 54 ; WX 560 ; N six ; B 64 -15 587 739 ; +C 55 ; WX 560 ; N seven ; B 83 0 635 740 ; +C 56 ; WX 560 ; N eight ; B 71 -15 590 755 ; +C 57 ; WX 560 ; N nine ; B 110 0 633 754 ; +C 58 ; WX 280 ; N colon ; B 73 0 309 555 ; +C 59 ; WX 280 ; N semicolon ; B 48 -141 309 555 ; +C 60 ; WX 600 ; N less ; B 84 -8 649 514 ; +C 61 ; WX 600 ; N equal ; B 63 81 631 425 ; +C 62 ; WX 600 ; N greater ; B 45 -8 610 514 ; +C 63 ; WX 560 ; N question ; B 135 0 593 755 ; +C 64 ; WX 740 ; N at ; B 109 -12 832 712 ; +C 65 ; WX 740 ; N A ; B 7 0 732 740 ; +C 66 ; WX 580 ; N B ; B 70 0 610 740 ; +C 67 ; WX 780 ; N C ; B 97 -15 864 755 ; +C 68 ; WX 700 ; N D ; B 63 0 732 740 ; +C 69 ; WX 520 ; N E ; B 61 0 596 740 ; +C 70 ; WX 480 ; N F ; B 61 0 575 740 ; +C 71 ; WX 840 ; N G ; B 89 -15 887 755 ; +C 72 ; WX 680 ; N H ; B 71 0 747 740 ; +C 73 ; WX 280 ; N I ; B 72 0 346 740 ; +C 74 ; WX 480 ; N J ; B 34 -15 546 740 ; +C 75 ; WX 620 ; N K ; B 89 0 757 740 ; +C 76 ; WX 440 ; N L ; B 72 0 459 740 ; +C 77 ; WX 900 ; N M ; B 63 0 974 740 ; +C 78 ; WX 740 ; N N ; B 70 0 808 740 ; +C 79 ; WX 840 ; N O ; B 95 -15 882 755 ; +C 80 ; WX 560 ; N P ; B 72 0 645 740 ; +C 81 ; WX 840 ; N Q ; B 94 -15 882 755 ; +C 82 ; WX 580 ; N R ; B 64 0 656 740 ; +C 83 ; WX 520 ; N S ; B 49 -15 578 755 ; +C 84 ; WX 420 ; N T ; B 119 0 555 740 ; +C 85 ; WX 640 ; N U ; B 97 -15 722 740 ; +C 86 ; WX 700 ; N V ; B 145 0 832 740 ; +C 87 ; WX 900 ; N W ; B 144 0 1036 740 ; +C 88 ; WX 680 ; N X ; B 4 0 813 740 ; +C 89 ; WX 620 ; N Y ; B 135 0 759 740 ; +C 90 ; WX 500 ; N Z ; B 19 0 599 740 ; +C 91 ; WX 320 ; N bracketleft ; B 89 -157 424 754 ; +C 92 ; WX 640 ; N backslash ; B 233 -100 525 740 ; +C 93 ; WX 320 ; N bracketright ; B 7 -157 342 754 ; +C 94 ; WX 600 ; N asciicircum ; B 142 375 596 740 ; +C 95 ; WX 500 ; N underscore ; B -23 -125 486 -75 ; +C 96 ; WX 280 ; N quoteleft ; B 158 466 341 740 ; +C 97 ; WX 660 ; N a ; B 73 -18 716 574 ; +C 98 ; WX 660 ; N b ; B 47 -18 689 740 ; +C 99 ; WX 640 ; N c ; B 84 -18 679 574 ; +C 100 ; WX 660 ; N d ; B 80 -18 755 740 ; +C 101 ; WX 640 ; N e ; B 77 -18 667 577 ; +C 102 ; WX 280 ; N f ; B 62 0 420 755 ; L i fi ; L l fl ; +C 103 ; WX 660 ; N g ; B 33 -226 726 574 ; +C 104 ; WX 600 ; N h ; B 54 0 614 740 ; +C 105 ; WX 240 ; N i ; B 53 0 323 740 ; +C 106 ; WX 260 ; N j ; B -18 -185 342 740 ; +C 107 ; WX 580 ; N k ; B 80 0 648 740 ; +C 108 ; WX 240 ; N l ; B 54 0 324 740 ; +C 109 ; WX 940 ; N m ; B 54 0 954 574 ; +C 110 ; WX 600 ; N n ; B 54 0 613 574 ; +C 111 ; WX 640 ; N o ; B 71 -18 672 574 ; +C 112 ; WX 660 ; N p ; B 13 -185 686 574 ; +C 113 ; WX 660 ; N q ; B 78 -185 716 574 ; +C 114 ; WX 320 ; N r ; B 63 0 423 574 ; +C 115 ; WX 440 ; N s ; B 49 -18 483 574 ; +C 116 ; WX 300 ; N t ; B 86 0 402 740 ; +C 117 ; WX 600 ; N u ; B 87 -18 647 555 ; +C 118 ; WX 560 ; N v ; B 106 0 659 555 ; +C 119 ; WX 800 ; N w ; B 114 0 892 555 ; +C 120 ; WX 560 ; N x ; B 3 0 632 555 ; +C 121 ; WX 580 ; N y ; B 75 -185 674 555 ; +C 122 ; WX 460 ; N z ; B 20 0 528 555 ; +C 123 ; WX 340 ; N braceleft ; B 40 -191 455 747 ; +C 124 ; WX 600 ; N bar ; B 214 -100 503 740 ; +C 125 ; WX 340 ; N braceright ; B -12 -191 405 747 ; +C 126 ; WX 600 ; N asciitilde ; B 114 160 579 347 ; +C 161 ; WX 280 ; N exclamdown ; B 40 -185 310 555 ; +C 162 ; WX 560 ; N cent ; B 110 39 599 715 ; +C 163 ; WX 560 ; N sterling ; B 38 0 615 755 ; +C 164 ; WX 160 ; N fraction ; B -123 0 419 740 ; +C 165 ; WX 560 ; N yen ; B 83 0 707 740 ; +C 166 ; WX 560 ; N florin ; B -27 -151 664 824 ; +C 167 ; WX 560 ; N section ; B 65 -158 602 755 ; +C 168 ; WX 560 ; N currency ; B 53 69 628 577 ; +C 169 ; WX 220 ; N quotesingle ; B 152 444 314 740 ; +C 170 ; WX 480 ; N quotedblleft ; B 156 466 546 740 ; +C 171 ; WX 460 ; N guillemotleft ; B 105 108 487 469 ; +C 172 ; WX 240 ; N guilsinglleft ; B 94 108 277 469 ; +C 173 ; WX 240 ; N guilsinglright ; B 70 108 253 469 ; +C 174 ; WX 520 ; N fi ; B 72 0 598 755 ; +C 175 ; WX 520 ; N fl ; B 72 0 598 755 ; +C 177 ; WX 500 ; N endash ; B 78 230 529 348 ; +C 178 ; WX 560 ; N dagger ; B 133 -142 612 740 ; +C 179 ; WX 560 ; N daggerdbl ; B 63 -142 618 740 ; +C 180 ; WX 280 ; N periodcentered ; B 108 187 265 320 ; +C 182 ; WX 600 ; N paragraph ; B 90 -103 744 740 ; +C 183 ; WX 600 ; N bullet ; B 215 222 526 532 ; +C 184 ; WX 280 ; N quotesinglbase ; B 47 -141 230 133 ; +C 185 ; WX 480 ; N quotedblbase ; B 45 -141 435 133 ; +C 186 ; WX 480 ; N quotedblright ; B 157 466 547 740 ; +C 187 ; WX 460 ; N guillemotright ; B 81 108 463 469 ; +C 188 ; WX 1000 ; N ellipsis ; B 100 0 924 133 ; +C 189 ; WX 1280 ; N perthousand ; B 139 -15 1256 755 ; +C 191 ; WX 560 ; N questiondown ; B 69 -200 527 555 ; +C 193 ; WX 420 ; N grave ; B 189 624 462 851 ; +C 194 ; WX 420 ; N acute ; B 224 624 508 849 ; +C 195 ; WX 540 ; N circumflex ; B 189 636 588 774 ; +C 196 ; WX 480 ; N tilde ; B 178 636 564 767 ; +C 197 ; WX 420 ; N macron ; B 192 648 490 759 ; +C 198 ; WX 480 ; N breve ; B 185 633 582 770 ; +C 199 ; WX 280 ; N dotaccent ; B 192 636 350 769 ; +C 200 ; WX 500 ; N dieresis ; B 196 636 565 769 ; +C 202 ; WX 360 ; N ring ; B 206 619 424 834 ; +C 203 ; WX 340 ; N cedilla ; B 67 -251 272 6 ; +C 205 ; WX 700 ; N hungarumlaut ; B 258 610 754 862 ; +C 206 ; WX 340 ; N ogonek ; B 59 -195 243 9 ; +C 207 ; WX 540 ; N caron ; B 214 636 613 774 ; +C 208 ; WX 1000 ; N emdash ; B 78 230 1029 348 ; +C 225 ; WX 900 ; N AE ; B -5 0 961 740 ; +C 227 ; WX 360 ; N ordfeminine ; B 127 438 472 755 ; +C 232 ; WX 480 ; N Lslash ; B 68 0 484 740 ; +C 233 ; WX 840 ; N Oslash ; B 94 -71 891 814 ; +C 234 ; WX 1060 ; N OE ; B 98 -15 1144 755 ; +C 235 ; WX 360 ; N ordmasculine ; B 131 438 451 755 ; +C 241 ; WX 1080 ; N ae ; B 75 -18 1105 574 ; +C 245 ; WX 240 ; N dotlessi ; B 53 0 289 555 ; +C 248 ; WX 320 ; N lslash ; B 74 0 404 740 ; +C 249 ; WX 660 ; N oslash ; B 81 -50 685 608 ; +C 250 ; WX 1080 ; N oe ; B 76 -18 1108 574 ; +C 251 ; WX 600 ; N germandbls ; B 51 -18 629 755 ; +C -1 ; WX 640 ; N ecircumflex ; B 77 -18 667 774 ; +C -1 ; WX 640 ; N edieresis ; B 77 -18 667 769 ; +C -1 ; WX 660 ; N aacute ; B 73 -18 716 849 ; +C -1 ; WX 740 ; N registered ; B 50 -12 827 752 ; +C -1 ; WX 240 ; N icircumflex ; B 39 0 438 774 ; +C -1 ; WX 600 ; N udieresis ; B 87 -18 647 769 ; +C -1 ; WX 640 ; N ograve ; B 71 -18 672 851 ; +C -1 ; WX 600 ; N uacute ; B 87 -18 647 849 ; +C -1 ; WX 600 ; N ucircumflex ; B 87 -18 647 774 ; +C -1 ; WX 740 ; N Aacute ; B 7 0 732 1019 ; +C -1 ; WX 240 ; N igrave ; B 53 0 347 851 ; +C -1 ; WX 280 ; N Icircumflex ; B 72 0 489 944 ; +C -1 ; WX 640 ; N ccedilla ; B 83 -251 679 574 ; +C -1 ; WX 660 ; N adieresis ; B 73 -18 716 769 ; +C -1 ; WX 520 ; N Ecircumflex ; B 61 0 609 944 ; +C -1 ; WX 440 ; N scaron ; B 49 -18 563 774 ; +C -1 ; WX 660 ; N thorn ; B 13 -185 686 740 ; +C -1 ; WX 1000 ; N trademark ; B 131 296 958 740 ; +C -1 ; WX 640 ; N egrave ; B 77 -18 667 851 ; +C -1 ; WX 336 ; N threesuperior ; B 87 287 413 749 ; +C -1 ; WX 460 ; N zcaron ; B 20 0 598 774 ; +C -1 ; WX 660 ; N atilde ; B 73 -18 716 767 ; +C -1 ; WX 660 ; N aring ; B 73 -18 716 834 ; +C -1 ; WX 640 ; N ocircumflex ; B 71 -18 672 774 ; +C -1 ; WX 520 ; N Edieresis ; B 61 0 606 939 ; +C -1 ; WX 840 ; N threequarters ; B 97 0 836 749 ; +C -1 ; WX 580 ; N ydieresis ; B 75 -185 674 769 ; +C -1 ; WX 580 ; N yacute ; B 75 -185 674 849 ; +C -1 ; WX 240 ; N iacute ; B 53 0 443 849 ; +C -1 ; WX 740 ; N Acircumflex ; B 7 0 732 944 ; +C -1 ; WX 640 ; N Uacute ; B 97 -15 722 1019 ; +C -1 ; WX 640 ; N eacute ; B 77 -18 667 849 ; +C -1 ; WX 840 ; N Ograve ; B 95 -15 882 1021 ; +C -1 ; WX 660 ; N agrave ; B 73 -18 716 851 ; +C -1 ; WX 640 ; N Udieresis ; B 97 -15 722 939 ; +C -1 ; WX 660 ; N acircumflex ; B 73 -18 716 774 ; +C -1 ; WX 280 ; N Igrave ; B 72 0 398 1021 ; +C -1 ; WX 336 ; N twosuperior ; B 73 296 436 749 ; +C -1 ; WX 640 ; N Ugrave ; B 97 -15 722 1021 ; +C -1 ; WX 840 ; N onequarter ; B 187 0 779 740 ; +C -1 ; WX 640 ; N Ucircumflex ; B 97 -15 722 944 ; +C -1 ; WX 520 ; N Scaron ; B 49 -15 635 944 ; +C -1 ; WX 280 ; N Idieresis ; B 72 0 486 939 ; +C -1 ; WX 240 ; N idieresis ; B 53 0 435 769 ; +C -1 ; WX 520 ; N Egrave ; B 61 0 596 1021 ; +C -1 ; WX 840 ; N Oacute ; B 95 -15 882 1019 ; +C -1 ; WX 600 ; N divide ; B 84 -20 610 526 ; +C -1 ; WX 740 ; N Atilde ; B 7 0 732 937 ; +C -1 ; WX 740 ; N Aring ; B 7 0 732 969 ; +C -1 ; WX 840 ; N Odieresis ; B 95 -15 882 939 ; +C -1 ; WX 740 ; N Adieresis ; B 7 0 732 939 ; +C -1 ; WX 740 ; N Ntilde ; B 70 0 808 937 ; +C -1 ; WX 500 ; N Zcaron ; B 19 0 650 944 ; +C -1 ; WX 560 ; N Thorn ; B 72 0 619 740 ; +C -1 ; WX 280 ; N Iacute ; B 72 0 494 1019 ; +C -1 ; WX 600 ; N plusminus ; B 37 -62 626 556 ; +C -1 ; WX 600 ; N multiply ; B 76 12 617 494 ; +C -1 ; WX 520 ; N Eacute ; B 61 0 596 1019 ; +C -1 ; WX 620 ; N Ydieresis ; B 135 0 759 939 ; +C -1 ; WX 336 ; N onesuperior ; B 182 296 360 740 ; +C -1 ; WX 600 ; N ugrave ; B 87 -18 647 851 ; +C -1 ; WX 600 ; N logicalnot ; B 105 108 631 425 ; +C -1 ; WX 600 ; N ntilde ; B 54 0 624 767 ; +C -1 ; WX 840 ; N Otilde ; B 95 -15 882 937 ; +C -1 ; WX 640 ; N otilde ; B 71 -18 672 767 ; +C -1 ; WX 780 ; N Ccedilla ; B 97 -251 864 755 ; +C -1 ; WX 740 ; N Agrave ; B 7 0 732 1021 ; +C -1 ; WX 840 ; N onehalf ; B 157 0 830 740 ; +C -1 ; WX 742 ; N Eth ; B 83 0 766 740 ; +C -1 ; WX 400 ; N degree ; B 160 426 451 712 ; +C -1 ; WX 620 ; N Yacute ; B 135 0 759 1019 ; +C -1 ; WX 840 ; N Ocircumflex ; B 95 -15 882 944 ; +C -1 ; WX 640 ; N oacute ; B 71 -18 672 849 ; +C -1 ; WX 576 ; N mu ; B 3 -187 642 555 ; +C -1 ; WX 600 ; N minus ; B 84 193 610 313 ; +C -1 ; WX 640 ; N eth ; B 73 -18 699 754 ; +C -1 ; WX 640 ; N odieresis ; B 71 -18 672 769 ; +C -1 ; WX 740 ; N copyright ; B 50 -12 827 752 ; +C -1 ; WX 600 ; N brokenbar ; B 214 -100 503 740 ; +EndCharMetrics +StartKernData +StartKernPairs 218 + +KPX A y -50 +KPX A w -65 +KPX A v -70 +KPX A u -20 +KPX A quoteright -90 +KPX A Y -80 +KPX A W -60 +KPX A V -102 +KPX A U -40 +KPX A T -25 +KPX A Q -50 +KPX A O -50 +KPX A G -40 +KPX A C -40 + +KPX B A -10 + +KPX C A -40 + +KPX D period -20 +KPX D comma -20 +KPX D Y -45 +KPX D W -25 +KPX D V -50 +KPX D A -50 + +KPX F period -129 +KPX F e -20 +KPX F comma -162 +KPX F a -20 +KPX F A -75 + +KPX G period -20 +KPX G comma -20 +KPX G Y -15 + +KPX J period -15 +KPX J a -20 +KPX J A -30 + +KPX K y -20 +KPX K u -15 +KPX K o -45 +KPX K e -40 +KPX K O -30 + +KPX L y -23 +KPX L quoteright -30 +KPX L quotedblright -30 +KPX L Y -80 +KPX L W -55 +KPX L V -85 +KPX L T -46 + +KPX O period -30 +KPX O comma -30 +KPX O Y -30 +KPX O X -30 +KPX O W -20 +KPX O V -45 +KPX O T -15 +KPX O A -60 + +KPX P period -200 +KPX P o -20 +KPX P e -20 +KPX P comma -220 +KPX P a -20 +KPX P A -100 + +KPX Q comma 20 + +KPX R W 25 +KPX R V -10 +KPX R U 25 +KPX R T 40 +KPX R O 25 + +KPX S comma 20 + +KPX T y -10 +KPX T w -55 +KPX T u -46 +KPX T semicolon -29 +KPX T r -30 +KPX T period -91 +KPX T o -49 +KPX T hyphen -75 +KPX T e -49 +KPX T comma -82 +KPX T colon -15 +KPX T a -70 +KPX T O -15 +KPX T A -25 + +KPX U period -20 +KPX U comma -20 +KPX U A -40 + +KPX V u -55 +KPX V semicolon -33 +KPX V period -145 +KPX V o -101 +KPX V i -15 +KPX V hyphen -75 +KPX V e -101 +KPX V comma -145 +KPX V colon -18 +KPX V a -95 +KPX V O -45 +KPX V G -20 +KPX V A -102 + +KPX W y -15 +KPX W u -30 +KPX W semicolon -33 +KPX W period -106 +KPX W o -46 +KPX W i -10 +KPX W hyphen -35 +KPX W e -47 +KPX W comma -106 +KPX W colon -15 +KPX W a -50 +KPX W O -20 +KPX W A -58 + +KPX Y u -52 +KPX Y semicolon -23 +KPX Y period -145 +KPX Y o -89 +KPX Y hyphen -100 +KPX Y e -89 +KPX Y comma -145 +KPX Y colon -10 +KPX Y a -93 +KPX Y O -30 +KPX Y A -80 + +KPX a t 5 +KPX a p 20 +KPX a b 5 + +KPX b y -20 +KPX b v -20 + +KPX c y -20 +KPX c l -15 +KPX c k -15 + +KPX comma space -50 +KPX comma quoteright -70 +KPX comma quotedblright -70 + +KPX e y -20 +KPX e x -20 +KPX e w -20 +KPX e v -20 + +KPX f period -40 +KPX f o -20 +KPX f l -15 +KPX f i -15 +KPX f f -20 +KPX f dotlessi -15 +KPX f comma -40 +KPX f a -15 + +KPX g i 25 +KPX g a 15 + +KPX h y -30 + +KPX k y -5 +KPX k o -30 +KPX k e -40 + +KPX m y -20 +KPX m u -20 + +KPX n y -15 +KPX n v -30 + +KPX o y -20 +KPX o x -30 +KPX o w -20 +KPX o v -30 + +KPX p y -20 + +KPX period space -50 +KPX period quoteright -70 +KPX period quotedblright -70 + +KPX quotedblleft A -50 + +KPX quotedblright space -50 + +KPX quoteleft quoteleft -80 +KPX quoteleft A -50 + +KPX quoteright v -10 +KPX quoteright t 10 +KPX quoteright space -50 +KPX quoteright s -15 +KPX quoteright r -20 +KPX quoteright quoteright -80 +KPX quoteright d -50 + +KPX r y 40 +KPX r v 40 +KPX r u 20 +KPX r t 20 +KPX r s 20 +KPX r q -8 +KPX r period -73 +KPX r p 20 +KPX r o -15 +KPX r n 21 +KPX r m 15 +KPX r l 20 +KPX r k 5 +KPX r i 20 +KPX r hyphen -60 +KPX r g 1 +KPX r e -4 +KPX r d -6 +KPX r comma -75 +KPX r c -7 + +KPX s period 20 +KPX s comma 20 + +KPX space quoteleft -50 +KPX space quotedblleft -50 +KPX space Y -60 +KPX space W -25 +KPX space V -80 +KPX space T -25 +KPX space A -20 + +KPX v period -90 +KPX v o -20 +KPX v e -20 +KPX v comma -90 +KPX v a -30 + +KPX w period -90 +KPX w o -30 +KPX w e -20 +KPX w comma -90 +KPX w a -30 + +KPX x e -20 + +KPX y period -100 +KPX y o -30 +KPX y e -20 +KPX y comma -100 +KPX y c -35 +KPX y a -30 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 192 170 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 132 170 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 152 170 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 192 170 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 215 135 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 162 170 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 82 170 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 22 170 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 42 170 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 82 170 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute -13 170 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -98 170 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -78 170 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -63 170 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 162 170 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 242 170 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 182 170 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 202 170 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 242 170 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 212 170 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 22 170 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 177 170 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 82 170 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 102 170 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 107 170 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 167 170 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 92 170 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 37 170 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 120 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 60 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 80 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 120 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 150 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 90 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 110 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 50 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 70 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 110 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -65 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -150 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -130 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -115 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 60 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 110 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 50 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 70 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 110 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 80 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron -50 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 125 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 30 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 50 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 55 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 115 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 40 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron -15 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-DmO+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-DmO+ new file mode 100755 index 0000000000000..5920f33db322b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-DmO+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 780 ; N Ccaron ; B 97 -15 864 946 ; +C -1 ; WX 640 ; N ccaron ; B 84 -18 693 774 ; +C -1 ; WX 700 ; N Dcaron ; B 63 0 732 946 ; +C -1 ; WX 788 ; N dcaron ; B 80 -18 956 814 ; +C -1 ; WX 520 ; N Ecaron ; B 61 0 633 946 ; +C -1 ; WX 640 ; N ecaron ; B 77 -18 667 774 ; +C -1 ; WX 440 ; N Lcaron ; B 72 0 547 814 ; +C -1 ; WX 440 ; N Lacute ; B 72 0 550 1033 ; +C -1 ; WX 368 ; N lcaron ; B 54 0 525 814 ; +C -1 ; WX 240 ; N lacute ; B 54 0 478 1033 ; +C -1 ; WX 740 ; N Ncaron ; B 70 0 808 946 ; +C -1 ; WX 600 ; N ncaron ; B 54 0 643 774 ; +C -1 ; WX 580 ; N Rcaron ; B 64 0 663 946 ; +C -1 ; WX 580 ; N Racute ; B 64 0 674 1033 ; +C -1 ; WX 320 ; N rcaron ; B 63 0 503 774 ; +C -1 ; WX 320 ; N racute ; B 63 0 486 849 ; +C -1 ; WX 420 ; N Tcaron ; B 119 0 583 946 ; +C -1 ; WX 428 ; N tcaron ; B 86 0 603 740 ; +C -1 ; WX 640 ; N Uring ; B 97 -15 722 946 ; +C -1 ; WX 600 ; N uring ; B 87 -18 647 834 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 227 172 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 80 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 110 172 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 614 74 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 20 172 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 50 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 205 74 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 42 184 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 183 74 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute -30 184 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 130 172 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 30 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 50 172 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 166 184 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron -110 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute -22 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron -30 172 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 261 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 159 112 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 120 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-ExLt b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-ExLt new file mode 100755 index 0000000000000..353223802aa89 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-ExLt @@ -0,0 +1,532 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1991 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Tue Feb 19 17:51:09 1991 +Comment UniqueID 34220 +Comment VMusage 24528 31420 +FontName AvantGarde-ExtraLight +FullName ITC Avant Garde Gothic Extra Light +FamilyName ITC Avant Garde Gothic +Weight ExtraLight +ItalicAngle 0 +IsFixedPitch false +FontBBox -137 -274 1117 951 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1991 Adobe Systems Incorporated. All Rights Reserved.ITC Avant Garde Gothic is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 740 +XHeight 530 +Ascender 740 +Descender -213 +StartCharMetrics 228 +C 32 ; WX 277 ; N space ; B 0 0 0 0 ; +C 33 ; WX 259 ; N exclam ; B 115 0 145 740 ; +C 34 ; WX 333 ; N quotedbl ; B 94 444 239 740 ; +C 35 ; WX 555 ; N numbersign ; B 18 31 537 675 ; +C 36 ; WX 555 ; N dollar ; B 83 -57 473 810 ; +C 37 ; WX 719 ; N percent ; B 22 -13 697 753 ; +C 38 ; WX 721 ; N ampersand ; B 55 -13 699 753 ; +C 39 ; WX 277 ; N quoteright ; B 90 586 187 740 ; +C 40 ; WX 425 ; N parenleft ; B 103 -274 393 753 ; +C 41 ; WX 425 ; N parenright ; B 32 -274 322 753 ; +C 42 ; WX 573 ; N asterisk ; B 151 444 423 740 ; +C 43 ; WX 600 ; N plus ; B 50 0 550 501 ; +C 44 ; WX 277 ; N comma ; B 61 -72 156 82 ; +C 45 ; WX 266 ; N hyphen ; B 0 262 266 291 ; +C 46 ; WX 277 ; N period ; B 124 0 154 81 ; +C 47 ; WX 518 ; N slash ; B 67 -100 451 740 ; +C 48 ; WX 555 ; N zero ; B 39 -13 515 753 ; +C 49 ; WX 555 ; N one ; B 111 0 305 740 ; +C 50 ; WX 555 ; N two ; B 57 0 504 753 ; +C 51 ; WX 555 ; N three ; B 39 -13 492 753 ; +C 52 ; WX 555 ; N four ; B 17 0 509 740 ; +C 53 ; WX 555 ; N five ; B 21 -13 515 740 ; +C 54 ; WX 555 ; N six ; B 33 -13 521 740 ; +C 55 ; WX 555 ; N seven ; B 87 0 480 740 ; +C 56 ; WX 555 ; N eight ; B 52 -13 502 753 ; +C 57 ; WX 555 ; N nine ; B 34 0 522 753 ; +C 58 ; WX 277 ; N colon ; B 124 0 154 530 ; +C 59 ; WX 277 ; N semicolon ; B 61 -72 156 530 ; +C 60 ; WX 600 ; N less ; B 50 0 550 502 ; +C 61 ; WX 600 ; N equal ; B 50 139 550 361 ; +C 62 ; WX 600 ; N greater ; B 50 0 550 502 ; +C 63 ; WX 536 ; N question ; B 40 0 467 752 ; +C 64 ; WX 796 ; N at ; B 41 -13 768 753 ; +C 65 ; WX 687 ; N A ; B 7 0 680 740 ; +C 66 ; WX 540 ; N B ; B 77 0 497 740 ; +C 67 ; WX 786 ; N C ; B 41 -13 749 753 ; +C 68 ; WX 701 ; N D ; B 77 0 659 740 ; +C 69 ; WX 547 ; N E ; B 77 0 483 740 ; +C 70 ; WX 477 ; N F ; B 77 0 440 740 ; +C 71 ; WX 853 ; N G ; B 41 -13 819 753 ; +C 72 ; WX 628 ; N H ; B 77 0 551 740 ; +C 73 ; WX 185 ; N I ; B 77 0 107 740 ; +C 74 ; WX 453 ; N J ; B 6 -13 377 740 ; +C 75 ; WX 536 ; N K ; B 91 0 536 740 ; +C 76 ; WX 423 ; N L ; B 77 0 420 740 ; +C 77 ; WX 933 ; N M ; B 77 0 855 740 ; +C 78 ; WX 738 ; N N ; B 77 0 661 740 ; +C 79 ; WX 851 ; N O ; B 41 -13 809 753 ; +C 80 ; WX 511 ; N P ; B 67 0 499 740 ; +C 81 ; WX 882 ; N Q ; B 56 -13 885 753 ; +C 82 ; WX 554 ; N R ; B 67 0 540 740 ; +C 83 ; WX 518 ; N S ; B 45 -13 474 752 ; +C 84 ; WX 443 ; N T ; B 5 0 437 740 ; +C 85 ; WX 605 ; N U ; B 76 -13 529 740 ; +C 86 ; WX 666 ; N V ; B 7 0 659 740 ; +C 87 ; WX 888 ; N W ; B 12 0 876 740 ; +C 88 ; WX 555 ; N X ; B 8 0 547 740 ; +C 89 ; WX 554 ; N Y ; B 15 0 539 740 ; +C 90 ; WX 499 ; N Z ; B 6 0 493 740 ; +C 91 ; WX 425 ; N bracketleft ; B 178 -272 344 753 ; +C 92 ; WX 518 ; N backslash ; B 67 -100 451 740 ; +C 93 ; WX 425 ; N bracketright ; B 81 -272 247 753 ; +C 94 ; WX 600 ; N asciicircum ; B 112 375 488 740 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 277 ; N quoteleft ; B 90 586 187 740 ; +C 97 ; WX 674 ; N a ; B 41 -13 596 543 ; +C 98 ; WX 674 ; N b ; B 78 -13 633 740 ; +C 99 ; WX 619 ; N c ; B 41 -13 584 543 ; +C 100 ; WX 677 ; N d ; B 41 -13 596 740 ; +C 101 ; WX 619 ; N e ; B 31 -13 589 543 ; +C 102 ; WX 263 ; N f ; B 7 0 260 753 ; L i fi ; L l fl ; +C 103 ; WX 675 ; N g ; B 40 -226 598 543 ; +C 104 ; WX 640 ; N h ; B 78 0 564 740 ; +C 105 ; WX 184 ; N i ; B 78 0 106 740 ; +C 106 ; WX 219 ; N j ; B -14 -213 123 740 ; +C 107 ; WX 467 ; N k ; B 78 0 451 740 ; +C 108 ; WX 183 ; N l ; B 78 0 106 740 ; +C 109 ; WX 949 ; N m ; B 78 0 874 543 ; +C 110 ; WX 641 ; N n ; B 78 0 564 543 ; +C 111 ; WX 641 ; N o ; B 41 -13 599 543 ; +C 112 ; WX 677 ; N p ; B 78 -213 633 543 ; +C 113 ; WX 674 ; N q ; B 41 -213 596 543 ; +C 114 ; WX 302 ; N r ; B 78 0 293 543 ; +C 115 ; WX 426 ; N s ; B 48 -13 366 543 ; +C 116 ; WX 296 ; N t ; B 7 0 288 740 ; +C 117 ; WX 641 ; N u ; B 78 -13 564 530 ; +C 118 ; WX 481 ; N v ; B 4 0 476 530 ; +C 119 ; WX 758 ; N w ; B 10 0 749 530 ; +C 120 ; WX 407 ; N x ; B 10 0 397 530 ; +C 121 ; WX 481 ; N y ; B 11 -213 480 530 ; +C 122 ; WX 407 ; N z ; B 12 0 394 530 ; +C 123 ; WX 425 ; N braceleft ; B 115 -272 344 753 ; +C 124 ; WX 555 ; N bar ; B 263 -100 293 740 ; +C 125 ; WX 425 ; N braceright ; B 81 -272 310 753 ; +C 126 ; WX 600 ; N asciitilde ; B 76 200 523 301 ; +C 161 ; WX 259 ; N exclamdown ; B 115 -209 145 531 ; +C 162 ; WX 555 ; N cent ; B 68 39 488 687 ; +C 163 ; WX 555 ; N sterling ; B 6 0 545 752 ; +C 164 ; WX 86 ; N fraction ; B -137 0 222 740 ; +C 165 ; WX 555 ; N yen ; B 32 0 524 740 ; +C 166 ; WX 555 ; N florin ; B 15 -152 542 813 ; +C 167 ; WX 573 ; N section ; B 60 -223 513 753 ; +C 168 ; WX 555 ; N currency ; B 39 105 515 579 ; +C 169 ; WX 222 ; N quotesingle ; B 96 444 126 740 ; +C 170 ; WX 370 ; N quotedblleft ; B 92 586 278 740 ; +C 171 ; WX 351 ; N guillemotleft ; B 49 84 291 469 ; +C 172 ; WX 248 ; N guilsinglleft ; B 53 84 184 469 ; +C 173 ; WX 248 ; N guilsinglright ; B 64 84 195 469 ; +C 174 ; WX 393 ; N fi ; B 7 0 315 753 ; +C 175 ; WX 393 ; N fl ; B 7 0 315 753 ; +C 177 ; WX 500 ; N endash ; B 35 262 465 291 ; +C 178 ; WX 573 ; N dagger ; B 83 -100 491 740 ; +C 179 ; WX 573 ; N daggerdbl ; B 83 -100 491 740 ; +C 180 ; WX 277 ; N periodcentered ; B 124 215 154 296 ; +C 182 ; WX 561 ; N paragraph ; B 12 -126 492 740 ; +C 183 ; WX 375 ; N bullet ; B 35 222 340 532 ; +C 184 ; WX 277 ; N quotesinglbase ; B 90 -72 187 82 ; +C 185 ; WX 370 ; N quotedblbase ; B 92 -72 278 82 ; +C 186 ; WX 370 ; N quotedblright ; B 92 586 278 740 ; +C 187 ; WX 351 ; N guillemotright ; B 60 84 302 469 ; +C 188 ; WX 1000 ; N ellipsis ; B 152 0 848 82 ; +C 189 ; WX 1089 ; N perthousand ; B 20 -13 1070 753 ; +C 191 ; WX 536 ; N questiondown ; B 69 -222 496 530 ; +C 193 ; WX 555 ; N grave ; B 144 605 395 766 ; +C 194 ; WX 555 ; N acute ; B 160 605 411 766 ; +C 195 ; WX 555 ; N circumflex ; B 82 623 473 748 ; +C 196 ; WX 555 ; N tilde ; B 96 633 458 714 ; +C 197 ; WX 555 ; N macron ; B 99 660 455 690 ; +C 198 ; WX 555 ; N breve ; B 86 634 469 716 ; +C 199 ; WX 555 ; N dotaccent ; B 262 618 293 734 ; +C 200 ; WX 555 ; N dieresis ; B 203 618 352 734 ; +C 202 ; WX 555 ; N ring ; B 186 595 369 777 ; +C 203 ; WX 555 ; N cedilla ; B 204 -201 351 0 ; +C 205 ; WX 555 ; N hungarumlaut ; B 144 605 497 788 ; +C 206 ; WX 555 ; N ogonek ; B 197 -206 357 0 ; +C 207 ; WX 555 ; N caron ; B 82 623 473 748 ; +C 208 ; WX 1000 ; N emdash ; B 35 262 965 291 ; +C 225 ; WX 944 ; N AE ; B -8 0 870 740 ; +C 227 ; WX 439 ; N ordfeminine ; B 26 404 388 753 ; +C 232 ; WX 423 ; N Lslash ; B 0 0 424 740 ; +C 233 ; WX 851 ; N Oslash ; B 41 -86 809 809 ; +C 234 ; WX 1178 ; N OE ; B 41 -13 1117 753 ; +C 235 ; WX 439 ; N ordmasculine ; B 44 404 395 753 ; +C 241 ; WX 1154 ; N ae ; B 41 -13 1113 543 ; +C 245 ; WX 184 ; N dotlessi ; B 78 0 106 530 ; +C 248 ; WX 219 ; N lslash ; B 16 0 220 740 ; +C 249 ; WX 641 ; N oslash ; B 41 -52 599 585 ; +C 250 ; WX 1156 ; N oe ; B 41 -13 1116 543 ; +C 251 ; WX 559 ; N germandbls ; B 76 -13 517 752 ; +C -1 ; WX 619 ; N ecircumflex ; B 31 -13 589 748 ; +C -1 ; WX 619 ; N edieresis ; B 31 -13 589 734 ; +C -1 ; WX 674 ; N aacute ; B 41 -13 596 766 ; +C -1 ; WX 800 ; N registered ; B 18 -11 781 751 ; +C -1 ; WX 184 ; N icircumflex ; B -103 0 288 748 ; +C -1 ; WX 641 ; N udieresis ; B 78 -13 564 734 ; +C -1 ; WX 641 ; N ograve ; B 41 -13 599 766 ; +C -1 ; WX 641 ; N uacute ; B 78 -13 564 766 ; +C -1 ; WX 641 ; N ucircumflex ; B 78 -13 564 748 ; +C -1 ; WX 687 ; N Aacute ; B 7 0 680 951 ; +C -1 ; WX 184 ; N igrave ; B -61 0 190 766 ; +C -1 ; WX 185 ; N Icircumflex ; B -103 0 288 933 ; +C -1 ; WX 619 ; N ccedilla ; B 41 -201 584 543 ; +C -1 ; WX 674 ; N adieresis ; B 41 -13 596 734 ; +C -1 ; WX 547 ; N Ecircumflex ; B 77 0 483 933 ; +C -1 ; WX 426 ; N scaron ; B 18 -13 409 748 ; +C -1 ; WX 681 ; N thorn ; B 78 -213 639 740 ; +C -1 ; WX 990 ; N trademark ; B 9 296 838 740 ; +C -1 ; WX 619 ; N egrave ; B 31 -13 589 766 ; +C -1 ; WX 351 ; N threesuperior ; B 33 288 311 748 ; +C -1 ; WX 407 ; N zcaron ; B 8 0 399 748 ; +C -1 ; WX 674 ; N atilde ; B 41 -13 596 714 ; +C -1 ; WX 674 ; N aring ; B 41 -13 596 775 ; +C -1 ; WX 641 ; N ocircumflex ; B 41 -13 599 748 ; +C -1 ; WX 547 ; N Edieresis ; B 77 0 483 919 ; +C -1 ; WX 807 ; N threequarters ; B 40 0 765 748 ; +C -1 ; WX 481 ; N ydieresis ; B 11 -213 480 734 ; +C -1 ; WX 481 ; N yacute ; B 11 -213 480 766 ; +C -1 ; WX 184 ; N iacute ; B -5 0 246 766 ; +C -1 ; WX 687 ; N Acircumflex ; B 7 0 680 933 ; +C -1 ; WX 605 ; N Uacute ; B 76 -13 529 951 ; +C -1 ; WX 619 ; N eacute ; B 31 -13 589 766 ; +C -1 ; WX 851 ; N Ograve ; B 41 -13 809 951 ; +C -1 ; WX 674 ; N agrave ; B 41 -13 596 766 ; +C -1 ; WX 605 ; N Udieresis ; B 76 -13 529 919 ; +C -1 ; WX 674 ; N acircumflex ; B 41 -13 596 748 ; +C -1 ; WX 185 ; N Igrave ; B -61 0 190 951 ; +C -1 ; WX 351 ; N twosuperior ; B 36 296 307 748 ; +C -1 ; WX 605 ; N Ugrave ; B 76 -13 529 951 ; +C -1 ; WX 700 ; N onequarter ; B 44 0 657 740 ; +C -1 ; WX 605 ; N Ucircumflex ; B 76 -13 529 933 ; +C -1 ; WX 518 ; N Scaron ; B 45 -13 474 933 ; +C -1 ; WX 185 ; N Idieresis ; B 18 0 167 919 ; +C -1 ; WX 184 ; N idieresis ; B 18 0 167 734 ; +C -1 ; WX 547 ; N Egrave ; B 77 0 483 951 ; +C -1 ; WX 851 ; N Oacute ; B 41 -13 809 951 ; +C -1 ; WX 600 ; N divide ; B 50 0 550 500 ; +C -1 ; WX 687 ; N Atilde ; B 7 0 680 909 ; +C -1 ; WX 687 ; N Aring ; B 7 0 680 937 ; +C -1 ; WX 851 ; N Odieresis ; B 41 -13 809 919 ; +C -1 ; WX 687 ; N Adieresis ; B 7 0 680 919 ; +C -1 ; WX 738 ; N Ntilde ; B 77 0 661 909 ; +C -1 ; WX 499 ; N Zcaron ; B 6 0 493 933 ; +C -1 ; WX 511 ; N Thorn ; B 67 0 499 740 ; +C -1 ; WX 185 ; N Iacute ; B -5 0 246 951 ; +C -1 ; WX 600 ; N plusminus ; B 48 0 552 506 ; +C -1 ; WX 600 ; N multiply ; B 50 2 550 499 ; +C -1 ; WX 547 ; N Eacute ; B 77 0 483 951 ; +C -1 ; WX 554 ; N Ydieresis ; B 15 0 539 919 ; +C -1 ; WX 351 ; N onesuperior ; B 74 296 197 740 ; +C -1 ; WX 641 ; N ugrave ; B 78 -13 564 766 ; +C -1 ; WX 600 ; N logicalnot ; B 50 139 550 361 ; +C -1 ; WX 641 ; N ntilde ; B 78 0 564 714 ; +C -1 ; WX 851 ; N Otilde ; B 41 -13 809 909 ; +C -1 ; WX 641 ; N otilde ; B 41 -13 599 714 ; +C -1 ; WX 786 ; N Ccedilla ; B 41 -201 749 753 ; +C -1 ; WX 687 ; N Agrave ; B 7 0 680 951 ; +C -1 ; WX 750 ; N onehalf ; B 44 0 707 740 ; +C -1 ; WX 701 ; N Eth ; B 0 0 659 740 ; +C -1 ; WX 400 ; N degree ; B 57 423 343 709 ; +C -1 ; WX 554 ; N Yacute ; B 15 0 539 951 ; +C -1 ; WX 851 ; N Ocircumflex ; B 41 -13 809 933 ; +C -1 ; WX 641 ; N oacute ; B 41 -13 599 766 ; +C -1 ; WX 561 ; N mu ; B 73 -181 484 530 ; +C -1 ; WX 600 ; N minus ; B 50 236 550 264 ; +C -1 ; WX 641 ; N eth ; B 41 -13 600 740 ; +C -1 ; WX 641 ; N odieresis ; B 41 -13 599 734 ; +C -1 ; WX 800 ; N copyright ; B 18 -11 781 751 ; +C -1 ; WX 555 ; N brokenbar ; B 263 -100 293 740 ; +EndCharMetrics +StartKernData +StartKernPairs 181 + +KPX A y -25 +KPX A w -30 +KPX A v -35 +KPX A quoteright -40 +KPX A quotedblright -40 +KPX A Y -92 +KPX A W -50 +KPX A V -90 +KPX A U -15 +KPX A T -71 +KPX A Q -15 +KPX A O -15 +KPX A G -18 +KPX A C -15 + +KPX D period -70 +KPX D comma -80 +KPX D Y -30 +KPX D V -20 +KPX D A -35 + +KPX F period -200 +KPX F o -15 +KPX F e -15 +KPX F comma -200 +KPX F a -15 +KPX F A -60 + +KPX G period -30 +KPX G comma -40 + +KPX J period -10 +KPX J comma -10 + +KPX K y 5 + +KPX L y -18 +KPX L quoteright -40 +KPX L quotedblright -40 +KPX L Y -91 +KPX L W -50 +KPX L V -113 +KPX L T -55 + +KPX O period -40 +KPX O comma -30 +KPX O Y -30 +KPX O X -15 +KPX O V -30 +KPX O T -20 +KPX O A -30 + +KPX P period -200 +KPX P comma -200 +KPX P A -74 + +KPX R W 20 +KPX R V 10 +KPX R U 20 +KPX R T 6 +KPX R O 30 + +KPX T y -10 +KPX T w -70 +KPX T u -100 +KPX T semicolon -100 +KPX T r -40 +KPX T period -122 +KPX T o -70 +KPX T hyphen -100 +KPX T h -10 +KPX T e -71 +KPX T comma -122 +KPX T colon -90 +KPX T a -85 +KPX T O -20 +KPX T A -81 + +KPX U period -8 +KPX U comma -8 +KPX U A -10 + +KPX V u -55 +KPX V semicolon -47 +KPX V period -160 +KPX V o -101 +KPX V i -10 +KPX V hyphen -85 +KPX V e -101 +KPX V comma -160 +KPX V colon -47 +KPX V a -104 +KPX V O -18 +KPX V G -15 +KPX V A -90 + +KPX W y -2 +KPX W u -30 +KPX W semicolon -33 +KPX W period -106 +KPX W o -46 +KPX W hyphen -55 +KPX W e -47 +KPX W comma -106 +KPX W colon -1 +KPX W a -50 +KPX W A -50 + +KPX Y u -79 +KPX Y semicolon -48 +KPX Y period -117 +KPX Y o -99 +KPX Y hyphen -135 +KPX Y e -99 +KPX Y comma -117 +KPX Y colon -24 +KPX Y a -100 +KPX Y O -30 +KPX Y A -92 + +KPX a y 20 +KPX a b 6 + +KPX b period -15 +KPX b comma -15 + +KPX c y 15 + +KPX comma space -30 +KPX comma quoteright -120 +KPX comma quotedblright -120 + +KPX d y 15 + +KPX f quoteright 10 +KPX f quotedblright 10 +KPX f period -30 +KPX f o -18 +KPX f l -50 +KPX f i -50 +KPX f f -50 +KPX f e -30 +KPX f dotlessi -50 +KPX f comma -30 +KPX f a -15 + +KPX g period -10 +KPX g comma -10 + +KPX m y -15 +KPX m u -20 + +KPX n y -15 +KPX n u -20 + +KPX o period -18 +KPX o comma -18 + +KPX p period -18 +KPX p comma -18 + +KPX period space -30 +KPX period quoteright -150 +KPX period quotedblright -120 + +KPX quotedblleft A -40 + +KPX quotedblright space -70 + +KPX quoteleft quoteleft -188 +KPX quoteleft A -40 + +KPX quoteright v -20 +KPX quoteright t 25 +KPX quoteright space -40 +KPX quoteright s -40 +KPX quoteright r -30 +KPX quoteright quoteright -188 +KPX quoteright d -60 + +KPX r y 50 +KPX r v 20 +KPX r t 40 +KPX r q -15 +KPX r period -85 +KPX r o -55 +KPX r n 21 +KPX r l 10 +KPX r hyphen -45 +KPX r g -35 +KPX r e -50 +KPX r d -40 +KPX r comma -85 +KPX r c -55 +KPX r a -55 + +KPX s w -12 + +KPX space quoteleft -20 +KPX space quotedblleft -70 +KPX space Y -75 +KPX space W -40 +KPX space V -65 +KPX space T -50 +KPX space A -20 + +KPX v period -75 +KPX v comma -75 + +KPX w period -75 +KPX w comma -75 + +KPX y period -75 +KPX y o -12 +KPX y e -12 +KPX y comma -75 +KPX y a -12 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 66 185 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 66 185 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 66 185 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 66 185 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 66 160 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 66 195 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute -4 185 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex -4 185 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis -4 185 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave -4 185 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute -165 185 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -185 185 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -185 185 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -205 185 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 92 195 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 148 185 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 148 185 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 148 185 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 148 185 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 148 195 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron -18 185 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 25 185 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 25 185 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 25 185 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 25 185 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 0 185 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 0 185 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron -33 185 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 55 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 60 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 60 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 60 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 60 -2 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 60 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 27 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 32 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 27 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 32 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -165 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -185 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -185 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -205 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 43 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 38 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 43 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 43 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 43 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 43 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron -64 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 43 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 43 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 43 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 43 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute -37 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis -37 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron -74 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-ExLt+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-ExLt+ new file mode 100755 index 0000000000000..d9e5c75969d8c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-ExLt+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 786 ; N Ccaron ; B 41 -13 749 933 ; +C -1 ; WX 619 ; N ccaron ; B 41 -13 584 748 ; +C -1 ; WX 701 ; N Dcaron ; B 77 0 659 933 ; +C -1 ; WX 745 ; N dcaron ; B 41 -13 703 814 ; +C -1 ; WX 547 ; N Ecaron ; B 77 0 483 933 ; +C -1 ; WX 619 ; N ecaron ; B 31 -13 589 748 ; +C -1 ; WX 423 ; N Lcaron ; B 77 0 420 814 ; +C -1 ; WX 423 ; N Lacute ; B 77 0 420 969 ; +C -1 ; WX 251 ; N lcaron ; B 78 0 213 814 ; +C -1 ; WX 183 ; N lacute ; B -1 0 250 969 ; +C -1 ; WX 738 ; N Ncaron ; B 77 0 661 933 ; +C -1 ; WX 641 ; N ncaron ; B 78 0 564 748 ; +C -1 ; WX 554 ; N Rcaron ; B 67 0 540 933 ; +C -1 ; WX 554 ; N Racute ; B 67 0 540 969 ; +C -1 ; WX 302 ; N rcaron ; B -44 0 347 748 ; +C -1 ; WX 302 ; N racute ; B 59 0 310 766 ; +C -1 ; WX 443 ; N Tcaron ; B 5 0 437 933 ; +C -1 ; WX 364 ; N tcaron ; B 7 0 395 740 ; +C -1 ; WX 605 ; N Uring ; B 76 -13 529 933 ; +C -1 ; WX 641 ; N uring ; B 78 -13 564 777 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 186 185 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 59 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 73 185 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 516 74 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron -4 185 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 32 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 27 74 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute -66 203 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 26 74 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute -161 203 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 91 185 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 43 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 0 185 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 48 203 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron -126 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute -101 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron -56 185 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 208 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 25 156 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 43 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-ExLtO b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-ExLtO new file mode 100755 index 0000000000000..bb4cd36ae02f6 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-ExLtO @@ -0,0 +1,532 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1991 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Tue Feb 19 17:55:54 1991 +Comment UniqueID 34223 +Comment VMusage 6276 39140 +FontName AvantGarde-ExtraLightObl +FullName ITC Avant Garde Gothic Extra Light Oblique +FamilyName ITC Avant Garde Gothic +Weight ExtraLight +ItalicAngle -10.5 +IsFixedPitch false +FontBBox -137 -274 1254 951 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1991 Adobe Systems Incorporated. All Rights Reserved.ITC Avant Garde Gothic is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 740 +XHeight 530 +Ascender 740 +Descender -213 +StartCharMetrics 228 +C 32 ; WX 277 ; N space ; B 0 0 0 0 ; +C 33 ; WX 259 ; N exclam ; B 115 0 282 740 ; +C 34 ; WX 333 ; N quotedbl ; B 176 444 376 740 ; +C 35 ; WX 555 ; N numbersign ; B 68 31 621 675 ; +C 36 ; WX 555 ; N dollar ; B 123 -57 563 810 ; +C 37 ; WX 719 ; N percent ; B 114 -13 740 753 ; +C 38 ; WX 721 ; N ampersand ; B 88 -13 730 753 ; +C 39 ; WX 277 ; N quoteright ; B 199 586 324 740 ; +C 40 ; WX 425 ; N parenleft ; B 138 -274 533 753 ; +C 41 ; WX 425 ; N parenright ; B -19 -274 376 753 ; +C 42 ; WX 573 ; N asterisk ; B 249 444 542 740 ; +C 43 ; WX 600 ; N plus ; B 94 0 599 501 ; +C 44 ; WX 277 ; N comma ; B 48 -72 171 82 ; +C 45 ; WX 266 ; N hyphen ; B 49 262 320 291 ; +C 46 ; WX 277 ; N period ; B 124 0 169 81 ; +C 47 ; WX 518 ; N slash ; B 48 -100 588 740 ; +C 48 ; WX 555 ; N zero ; B 75 -13 615 753 ; +C 49 ; WX 555 ; N one ; B 243 0 442 740 ; +C 50 ; WX 555 ; N two ; B 57 0 607 753 ; +C 51 ; WX 555 ; N three ; B 75 -13 554 753 ; +C 52 ; WX 555 ; N four ; B 44 0 571 740 ; +C 53 ; WX 555 ; N five ; B 60 -13 610 740 ; +C 54 ; WX 555 ; N six ; B 71 -13 570 740 ; +C 55 ; WX 555 ; N seven ; B 119 0 617 740 ; +C 56 ; WX 555 ; N eight ; B 88 -13 565 753 ; +C 57 ; WX 555 ; N nine ; B 122 0 621 753 ; +C 58 ; WX 277 ; N colon ; B 124 0 252 530 ; +C 59 ; WX 277 ; N semicolon ; B 48 -72 251 530 ; +C 60 ; WX 600 ; N less ; B 94 0 643 502 ; +C 61 ; WX 600 ; N equal ; B 76 139 617 361 ; +C 62 ; WX 600 ; N greater ; B 50 0 599 502 ; +C 63 ; WX 536 ; N question ; B 141 0 571 752 ; +C 64 ; WX 796 ; N at ; B 102 -13 855 753 ; +C 65 ; WX 687 ; N A ; B 7 0 680 740 ; +C 66 ; WX 540 ; N B ; B 77 0 558 740 ; +C 67 ; WX 786 ; N C ; B 103 -13 856 753 ; +C 68 ; WX 701 ; N D ; B 77 0 736 740 ; +C 69 ; WX 547 ; N E ; B 77 0 620 740 ; +C 70 ; WX 477 ; N F ; B 77 0 577 740 ; +C 71 ; WX 853 ; N G ; B 103 -13 877 753 ; +C 72 ; WX 628 ; N H ; B 77 0 688 740 ; +C 73 ; WX 185 ; N I ; B 77 0 244 740 ; +C 74 ; WX 453 ; N J ; B 32 -13 514 740 ; +C 75 ; WX 536 ; N K ; B 91 0 673 740 ; +C 76 ; WX 423 ; N L ; B 77 0 425 740 ; +C 77 ; WX 933 ; N M ; B 77 0 992 740 ; +C 78 ; WX 738 ; N N ; B 77 0 798 740 ; +C 79 ; WX 851 ; N O ; B 103 -13 885 753 ; +C 80 ; WX 511 ; N P ; B 67 0 601 740 ; +C 81 ; WX 882 ; N Q ; B 118 -13 900 753 ; +C 82 ; WX 554 ; N R ; B 67 0 639 740 ; +C 83 ; WX 518 ; N S ; B 78 -13 561 752 ; +C 84 ; WX 443 ; N T ; B 137 0 574 740 ; +C 85 ; WX 605 ; N U ; B 113 -13 666 740 ; +C 86 ; WX 666 ; N V ; B 144 0 796 740 ; +C 87 ; WX 888 ; N W ; B 149 0 1013 740 ; +C 88 ; WX 555 ; N X ; B 8 0 673 740 ; +C 89 ; WX 554 ; N Y ; B 152 0 676 740 ; +C 90 ; WX 499 ; N Z ; B 20 0 609 740 ; +C 91 ; WX 425 ; N bracketleft ; B 170 -272 484 753 ; +C 92 ; WX 518 ; N backslash ; B 204 -100 432 740 ; +C 93 ; WX 425 ; N bracketright ; B 31 -272 344 753 ; +C 94 ; WX 600 ; N asciicircum ; B 181 375 557 740 ; +C 95 ; WX 500 ; N underscore ; B -23 -125 486 -75 ; +C 96 ; WX 277 ; N quoteleft ; B 227 586 296 740 ; +C 97 ; WX 674 ; N a ; B 85 -13 694 543 ; +C 98 ; WX 674 ; N b ; B 78 -13 687 740 ; +C 99 ; WX 619 ; N c ; B 85 -13 650 543 ; +C 100 ; WX 677 ; N d ; B 85 -13 733 740 ; +C 101 ; WX 619 ; N e ; B 75 -13 643 543 ; +C 102 ; WX 263 ; N f ; B 94 0 400 753 ; L i fi ; L l fl ; +C 103 ; WX 675 ; N g ; B 56 -226 696 543 ; +C 104 ; WX 640 ; N h ; B 78 0 624 740 ; +C 105 ; WX 184 ; N i ; B 78 0 243 740 ; +C 106 ; WX 219 ; N j ; B -53 -213 260 740 ; +C 107 ; WX 467 ; N k ; B 78 0 532 740 ; +C 108 ; WX 183 ; N l ; B 78 0 243 740 ; +C 109 ; WX 949 ; N m ; B 78 0 937 543 ; +C 110 ; WX 641 ; N n ; B 78 0 624 543 ; +C 111 ; WX 641 ; N o ; B 85 -13 653 543 ; +C 112 ; WX 677 ; N p ; B 39 -213 687 543 ; +C 113 ; WX 674 ; N q ; B 85 -213 694 543 ; +C 114 ; WX 302 ; N r ; B 78 0 394 543 ; +C 115 ; WX 426 ; N s ; B 70 -13 429 543 ; +C 116 ; WX 296 ; N t ; B 100 0 386 740 ; +C 117 ; WX 641 ; N u ; B 117 -13 662 530 ; +C 118 ; WX 481 ; N v ; B 102 0 574 530 ; +C 119 ; WX 758 ; N w ; B 108 0 847 530 ; +C 120 ; WX 407 ; N x ; B 10 0 495 530 ; +C 121 ; WX 481 ; N y ; B 88 -213 578 530 ; +C 122 ; WX 407 ; N z ; B 12 0 475 530 ; +C 123 ; WX 425 ; N braceleft ; B 156 -272 484 753 ; +C 124 ; WX 555 ; N bar ; B 244 -100 430 740 ; +C 125 ; WX 425 ; N braceright ; B 31 -272 357 753 ; +C 126 ; WX 600 ; N asciitilde ; B 118 200 573 301 ; +C 161 ; WX 259 ; N exclamdown ; B 76 -209 243 531 ; +C 162 ; WX 555 ; N cent ; B 133 39 574 687 ; +C 163 ; WX 555 ; N sterling ; B 36 0 626 752 ; +C 164 ; WX 86 ; N fraction ; B -137 0 359 740 ; +C 165 ; WX 555 ; N yen ; B 93 0 661 740 ; +C 166 ; WX 555 ; N florin ; B -12 -152 692 813 ; +C 167 ; WX 573 ; N section ; B 67 -223 588 753 ; +C 168 ; WX 555 ; N currency ; B 64 105 618 579 ; +C 169 ; WX 222 ; N quotesingle ; B 178 444 263 740 ; +C 170 ; WX 370 ; N quotedblleft ; B 229 586 387 740 ; +C 171 ; WX 351 ; N guillemotleft ; B 100 84 373 469 ; +C 172 ; WX 248 ; N guilsinglleft ; B 104 84 266 469 ; +C 173 ; WX 248 ; N guilsinglright ; B 84 84 246 469 ; +C 174 ; WX 393 ; N fi ; B 94 0 452 753 ; +C 175 ; WX 393 ; N fl ; B 94 0 452 753 ; +C 177 ; WX 500 ; N endash ; B 84 262 519 291 ; +C 178 ; WX 573 ; N dagger ; B 175 -100 588 740 ; +C 179 ; WX 573 ; N daggerdbl ; B 99 -100 594 740 ; +C 180 ; WX 277 ; N periodcentered ; B 164 215 209 296 ; +C 182 ; WX 561 ; N paragraph ; B 108 -126 629 740 ; +C 183 ; WX 375 ; N bullet ; B 102 222 413 532 ; +C 184 ; WX 277 ; N quotesinglbase ; B 77 -72 202 82 ; +C 185 ; WX 370 ; N quotedblbase ; B 79 -72 293 82 ; +C 186 ; WX 370 ; N quotedblright ; B 201 586 415 740 ; +C 187 ; WX 351 ; N guillemotright ; B 80 84 353 469 ; +C 188 ; WX 1000 ; N ellipsis ; B 152 0 863 82 ; +C 189 ; WX 1089 ; N perthousand ; B 112 -13 1101 753 ; +C 191 ; WX 536 ; N questiondown ; B 63 -222 494 530 ; +C 193 ; WX 555 ; N grave ; B 282 605 511 766 ; +C 194 ; WX 555 ; N acute ; B 276 605 549 766 ; +C 195 ; WX 555 ; N circumflex ; B 200 623 591 748 ; +C 196 ; WX 555 ; N tilde ; B 222 633 581 714 ; +C 197 ; WX 555 ; N macron ; B 221 660 583 690 ; +C 198 ; WX 555 ; N breve ; B 219 634 602 716 ; +C 199 ; WX 555 ; N dotaccent ; B 377 618 429 734 ; +C 200 ; WX 555 ; N dieresis ; B 318 618 488 734 ; +C 202 ; WX 555 ; N ring ; B 312 595 498 777 ; +C 203 ; WX 555 ; N cedilla ; B 178 -201 329 0 ; +C 205 ; WX 555 ; N hungarumlaut ; B 260 605 639 788 ; +C 206 ; WX 555 ; N ogonek ; B 175 -206 327 0 ; +C 207 ; WX 555 ; N caron ; B 218 623 609 748 ; +C 208 ; WX 1000 ; N emdash ; B 84 262 1019 291 ; +C 225 ; WX 944 ; N AE ; B -8 0 1007 740 ; +C 227 ; WX 439 ; N ordfeminine ; B 130 404 526 753 ; +C 232 ; WX 423 ; N Lslash ; B 52 0 429 740 ; +C 233 ; WX 851 ; N Oslash ; B 81 -86 903 809 ; +C 234 ; WX 1178 ; N OE ; B 102 -13 1254 753 ; +C 235 ; WX 439 ; N ordmasculine ; B 148 404 505 753 ; +C 241 ; WX 1154 ; N ae ; B 85 -13 1166 543 ; +C 245 ; WX 184 ; N dotlessi ; B 78 0 204 530 ; +C 248 ; WX 219 ; N lslash ; B 76 0 312 740 ; +C 249 ; WX 641 ; N oslash ; B 79 -52 661 585 ; +C 250 ; WX 1156 ; N oe ; B 85 -13 1169 543 ; +C 251 ; WX 559 ; N germandbls ; B 76 -13 570 752 ; +C -1 ; WX 619 ; N ecircumflex ; B 75 -13 643 748 ; +C -1 ; WX 619 ; N edieresis ; B 75 -13 643 734 ; +C -1 ; WX 674 ; N aacute ; B 85 -13 694 766 ; +C -1 ; WX 800 ; N registered ; B 80 -11 856 751 ; +C -1 ; WX 184 ; N icircumflex ; B 15 0 406 748 ; +C -1 ; WX 641 ; N udieresis ; B 117 -13 662 734 ; +C -1 ; WX 641 ; N ograve ; B 85 -13 653 766 ; +C -1 ; WX 641 ; N uacute ; B 117 -13 662 766 ; +C -1 ; WX 641 ; N ucircumflex ; B 117 -13 662 748 ; +C -1 ; WX 687 ; N Aacute ; B 7 0 680 951 ; +C -1 ; WX 184 ; N igrave ; B 77 0 306 766 ; +C -1 ; WX 185 ; N Icircumflex ; B 50 0 441 933 ; +C -1 ; WX 619 ; N ccedilla ; B 85 -201 650 543 ; +C -1 ; WX 674 ; N adieresis ; B 85 -13 694 734 ; +C -1 ; WX 547 ; N Ecircumflex ; B 77 0 622 933 ; +C -1 ; WX 426 ; N scaron ; B 70 -13 545 748 ; +C -1 ; WX 681 ; N thorn ; B 39 -213 693 740 ; +C -1 ; WX 990 ; N trademark ; B 142 296 975 740 ; +C -1 ; WX 619 ; N egrave ; B 75 -13 643 766 ; +C -1 ; WX 351 ; N threesuperior ; B 110 288 404 748 ; +C -1 ; WX 407 ; N zcaron ; B 12 0 535 748 ; +C -1 ; WX 674 ; N atilde ; B 85 -13 694 714 ; +C -1 ; WX 674 ; N aring ; B 85 -13 694 775 ; +C -1 ; WX 641 ; N ocircumflex ; B 85 -13 653 748 ; +C -1 ; WX 547 ; N Edieresis ; B 77 0 620 919 ; +C -1 ; WX 807 ; N threequarters ; B 117 0 805 748 ; +C -1 ; WX 481 ; N ydieresis ; B 88 -213 578 734 ; +C -1 ; WX 481 ; N yacute ; B 88 -213 578 766 ; +C -1 ; WX 184 ; N iacute ; B 78 0 384 766 ; +C -1 ; WX 687 ; N Acircumflex ; B 7 0 692 933 ; +C -1 ; WX 605 ; N Uacute ; B 113 -13 666 951 ; +C -1 ; WX 619 ; N eacute ; B 75 -13 643 766 ; +C -1 ; WX 851 ; N Ograve ; B 103 -13 885 951 ; +C -1 ; WX 674 ; N agrave ; B 85 -13 694 766 ; +C -1 ; WX 605 ; N Udieresis ; B 113 -13 666 919 ; +C -1 ; WX 674 ; N acircumflex ; B 85 -13 694 748 ; +C -1 ; WX 185 ; N Igrave ; B 77 0 341 951 ; +C -1 ; WX 351 ; N twosuperior ; B 91 296 421 748 ; +C -1 ; WX 605 ; N Ugrave ; B 113 -13 666 951 ; +C -1 ; WX 700 ; N onequarter ; B 143 0 697 740 ; +C -1 ; WX 605 ; N Ucircumflex ; B 113 -13 666 933 ; +C -1 ; WX 518 ; N Scaron ; B 78 -13 625 933 ; +C -1 ; WX 185 ; N Idieresis ; B 77 0 337 919 ; +C -1 ; WX 184 ; N idieresis ; B 78 0 303 734 ; +C -1 ; WX 547 ; N Egrave ; B 77 0 620 951 ; +C -1 ; WX 851 ; N Oacute ; B 103 -13 885 951 ; +C -1 ; WX 600 ; N divide ; B 94 0 599 500 ; +C -1 ; WX 687 ; N Atilde ; B 7 0 683 909 ; +C -1 ; WX 687 ; N Aring ; B 7 0 680 937 ; +C -1 ; WX 851 ; N Odieresis ; B 103 -13 885 919 ; +C -1 ; WX 687 ; N Adieresis ; B 7 0 680 919 ; +C -1 ; WX 738 ; N Ntilde ; B 77 0 798 909 ; +C -1 ; WX 499 ; N Zcaron ; B 20 0 610 933 ; +C -1 ; WX 511 ; N Thorn ; B 67 0 572 740 ; +C -1 ; WX 185 ; N Iacute ; B 77 0 418 951 ; +C -1 ; WX 600 ; N plusminus ; B 48 0 609 506 ; +C -1 ; WX 600 ; N multiply ; B 54 2 638 499 ; +C -1 ; WX 547 ; N Eacute ; B 77 0 620 951 ; +C -1 ; WX 554 ; N Ydieresis ; B 152 0 676 919 ; +C -1 ; WX 351 ; N onesuperior ; B 207 296 334 740 ; +C -1 ; WX 641 ; N ugrave ; B 117 -13 662 766 ; +C -1 ; WX 600 ; N logicalnot ; B 112 139 617 361 ; +C -1 ; WX 641 ; N ntilde ; B 78 0 624 714 ; +C -1 ; WX 851 ; N Otilde ; B 103 -13 885 909 ; +C -1 ; WX 641 ; N otilde ; B 85 -13 653 714 ; +C -1 ; WX 786 ; N Ccedilla ; B 102 -201 856 753 ; +C -1 ; WX 687 ; N Agrave ; B 7 0 680 951 ; +C -1 ; WX 750 ; N onehalf ; B 143 0 766 740 ; +C -1 ; WX 701 ; N Eth ; B 67 0 736 740 ; +C -1 ; WX 400 ; N degree ; B 159 423 450 709 ; +C -1 ; WX 554 ; N Yacute ; B 152 0 676 951 ; +C -1 ; WX 851 ; N Ocircumflex ; B 103 -13 885 933 ; +C -1 ; WX 641 ; N oacute ; B 85 -13 653 766 ; +C -1 ; WX 561 ; N mu ; B 39 -181 582 530 ; +C -1 ; WX 600 ; N minus ; B 94 236 599 264 ; +C -1 ; WX 641 ; N eth ; B 85 -13 657 740 ; +C -1 ; WX 641 ; N odieresis ; B 85 -13 653 734 ; +C -1 ; WX 800 ; N copyright ; B 80 -11 856 751 ; +C -1 ; WX 555 ; N brokenbar ; B 244 -100 430 740 ; +EndCharMetrics +StartKernData +StartKernPairs 181 + +KPX A y -25 +KPX A w -30 +KPX A v -35 +KPX A quoteright -40 +KPX A quotedblright -40 +KPX A Y -92 +KPX A W -50 +KPX A V -90 +KPX A U -15 +KPX A T -71 +KPX A Q -15 +KPX A O -15 +KPX A G -18 +KPX A C -15 + +KPX D period -70 +KPX D comma -80 +KPX D Y -30 +KPX D V -20 +KPX D A -35 + +KPX F period -200 +KPX F o -15 +KPX F e -15 +KPX F comma -200 +KPX F a -15 +KPX F A -60 + +KPX G period -30 +KPX G comma -40 + +KPX J period -10 +KPX J comma -10 + +KPX K y 5 + +KPX L y -18 +KPX L quoteright -40 +KPX L quotedblright -40 +KPX L Y -91 +KPX L W -50 +KPX L V -113 +KPX L T -55 + +KPX O period -40 +KPX O comma -30 +KPX O Y -30 +KPX O X -15 +KPX O V -30 +KPX O T -20 +KPX O A -30 + +KPX P period -200 +KPX P comma -200 +KPX P A -74 + +KPX R W 20 +KPX R V 10 +KPX R U 20 +KPX R T 6 +KPX R O 30 + +KPX T y -10 +KPX T w -70 +KPX T u -100 +KPX T semicolon -100 +KPX T r -40 +KPX T period -122 +KPX T o -70 +KPX T hyphen -100 +KPX T h -10 +KPX T e -71 +KPX T comma -122 +KPX T colon -90 +KPX T a -85 +KPX T O -20 +KPX T A -81 + +KPX U period -8 +KPX U comma -8 +KPX U A -10 + +KPX V u -55 +KPX V semicolon -47 +KPX V period -160 +KPX V o -101 +KPX V i -10 +KPX V hyphen -85 +KPX V e -101 +KPX V comma -160 +KPX V colon -47 +KPX V a -104 +KPX V O -18 +KPX V G -15 +KPX V A -90 + +KPX W y -2 +KPX W u -30 +KPX W semicolon -33 +KPX W period -106 +KPX W o -46 +KPX W hyphen -55 +KPX W e -47 +KPX W comma -106 +KPX W colon -1 +KPX W a -50 +KPX W A -50 + +KPX Y u -79 +KPX Y semicolon -48 +KPX Y period -117 +KPX Y o -99 +KPX Y hyphen -135 +KPX Y e -99 +KPX Y comma -117 +KPX Y colon -24 +KPX Y a -100 +KPX Y O -30 +KPX Y A -92 + +KPX a y 20 +KPX a b 6 + +KPX b period -15 +KPX b comma -15 + +KPX c y 15 + +KPX comma space -30 +KPX comma quoteright -120 +KPX comma quotedblright -120 + +KPX d y 15 + +KPX f quoteright 10 +KPX f quotedblright 10 +KPX f period -30 +KPX f o -18 +KPX f l -50 +KPX f i -50 +KPX f f -50 +KPX f e -30 +KPX f dotlessi -50 +KPX f comma -30 +KPX f a -15 + +KPX g period -10 +KPX g comma -10 + +KPX m y -15 +KPX m u -20 + +KPX n y -15 +KPX n u -20 + +KPX o period -18 +KPX o comma -18 + +KPX p period -18 +KPX p comma -18 + +KPX period space -30 +KPX period quoteright -150 +KPX period quotedblright -120 + +KPX quotedblleft A -40 + +KPX quotedblright space -70 + +KPX quoteleft quoteleft -188 +KPX quoteleft A -40 + +KPX quoteright v -20 +KPX quoteright t 25 +KPX quoteright space -40 +KPX quoteright s -40 +KPX quoteright r -30 +KPX quoteright quoteright -188 +KPX quoteright d -60 + +KPX r y 50 +KPX r v 20 +KPX r t 40 +KPX r q -15 +KPX r period -85 +KPX r o -55 +KPX r n 21 +KPX r l 10 +KPX r hyphen -45 +KPX r g -35 +KPX r e -50 +KPX r d -40 +KPX r comma -85 +KPX r c -55 +KPX r a -55 + +KPX s w -12 + +KPX space quoteleft -20 +KPX space quotedblleft -70 +KPX space Y -75 +KPX space W -40 +KPX space V -65 +KPX space T -50 +KPX space A -20 + +KPX v period -75 +KPX v comma -75 + +KPX w period -75 +KPX w comma -75 + +KPX y period -75 +KPX y o -12 +KPX y e -12 +KPX y comma -75 +KPX y a -12 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 100 185 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 100 185 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 100 185 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 100 185 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 96 160 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 102 195 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 30 185 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 30 185 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 30 185 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 30 185 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute -131 185 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -151 185 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -151 185 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -171 185 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 128 195 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 182 185 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 182 185 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 182 185 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 182 185 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 184 195 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 16 185 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 59 185 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 59 185 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 59 185 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 59 185 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 34 185 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 34 185 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 1 185 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 55 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 60 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 60 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 60 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 60 -2 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 60 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 27 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 32 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 27 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 32 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -165 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -185 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -185 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -205 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 43 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 38 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 43 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 43 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 43 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 43 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron -64 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 43 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 43 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 43 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 43 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute -37 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis -37 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron -74 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-ExLtO+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-ExLtO+ new file mode 100755 index 0000000000000..86dc5579712c4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-ExLtO+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 786 ; N Ccaron ; B 103 -13 856 933 ; +C -1 ; WX 619 ; N ccaron ; B 85 -13 669 748 ; +C -1 ; WX 701 ; N Dcaron ; B 77 0 736 933 ; +C -1 ; WX 765 ; N dcaron ; B 85 -13 871 814 ; +C -1 ; WX 547 ; N Ecaron ; B 77 0 637 933 ; +C -1 ; WX 619 ; N ecaron ; B 75 -13 643 748 ; +C -1 ; WX 423 ; N Lcaron ; B 77 0 425 814 ; +C -1 ; WX 423 ; N Lacute ; B 77 0 518 969 ; +C -1 ; WX 271 ; N lcaron ; B 78 0 381 814 ; +C -1 ; WX 183 ; N lacute ; B 78 0 425 969 ; +C -1 ; WX 738 ; N Ncaron ; B 77 0 798 933 ; +C -1 ; WX 641 ; N ncaron ; B 78 0 652 748 ; +C -1 ; WX 554 ; N Rcaron ; B 67 0 641 933 ; +C -1 ; WX 554 ; N Racute ; B 67 0 639 969 ; +C -1 ; WX 302 ; N rcaron ; B 78 0 483 748 ; +C -1 ; WX 302 ; N racute ; B 78 0 450 766 ; +C -1 ; WX 443 ; N Tcaron ; B 137 0 585 933 ; +C -1 ; WX 384 ; N tcaron ; B 100 0 524 740 ; +C -1 ; WX 605 ; N Uring ; B 113 -13 666 933 ; +C -1 ; WX 641 ; N uring ; B 117 -13 662 777 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 222 185 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 60 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 105 185 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 547 74 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 28 185 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 32 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 58 74 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute -31 203 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 57 74 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute -124 203 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 123 185 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 43 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 32 185 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 87 203 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron -126 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute -99 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron -24 185 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 200 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 52 156 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 43 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Md b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Md new file mode 100755 index 0000000000000..4307a8040366a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Md @@ -0,0 +1,581 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1991 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Tue Feb 19 18:15:23 1991 +Comment UniqueID 34232 +Comment VMusage 24260 31152 +FontName AvantGarde-Medium +FullName ITC Avant Garde Gothic Medium +FamilyName ITC Avant Garde Gothic +Weight Medium +ItalicAngle 0 +IsFixedPitch false +FontBBox -98 -257 1175 982 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1991 Adobe Systems Incorporated. All Rights Reserved.ITC Avant Garde Gothic is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 740 +XHeight 554 +Ascender 740 +Descender -185 +StartCharMetrics 228 +C 32 ; WX 277 ; N space ; B 0 0 0 0 ; +C 33 ; WX 277 ; N exclam ; B 87 0 191 740 ; +C 34 ; WX 325 ; N quotedbl ; B 20 444 306 740 ; +C 35 ; WX 555 ; N numbersign ; B 30 0 524 700 ; +C 36 ; WX 555 ; N dollar ; B 68 -82 487 823 ; +C 37 ; WX 837 ; N percent ; B 52 -13 784 751 ; +C 38 ; WX 684 ; N ampersand ; B 34 -14 676 754 ; +C 39 ; WX 277 ; N quoteright ; B 87 490 191 740 ; +C 40 ; WX 407 ; N parenleft ; B 55 -257 357 755 ; +C 41 ; WX 407 ; N parenright ; B 50 -257 352 755 ; +C 42 ; WX 573 ; N asterisk ; B 96 377 478 740 ; +C 43 ; WX 600 ; N plus ; B 48 0 552 506 ; +C 44 ; WX 277 ; N comma ; B 87 -127 191 122 ; +C 45 ; WX 280 ; N hyphen ; B 0 237 280 341 ; +C 46 ; WX 277 ; N period ; B 87 0 191 122 ; +C 47 ; WX 499 ; N slash ; B 41 -100 443 740 ; +C 48 ; WX 555 ; N zero ; B 38 -14 517 755 ; +C 49 ; WX 555 ; N one ; B 148 0 361 740 ; +C 50 ; WX 555 ; N two ; B 37 0 504 754 ; +C 51 ; WX 555 ; N three ; B 22 -14 501 754 ; +C 52 ; WX 555 ; N four ; B 12 0 532 740 ; +C 53 ; WX 555 ; N five ; B 25 -14 530 740 ; +C 54 ; WX 555 ; N six ; B 25 -14 537 740 ; +C 55 ; WX 555 ; N seven ; B 71 0 500 740 ; +C 56 ; WX 555 ; N eight ; B 43 -14 511 754 ; +C 57 ; WX 555 ; N nine ; B 18 0 529 754 ; +C 58 ; WX 277 ; N colon ; B 87 0 191 555 ; +C 59 ; WX 277 ; N semicolon ; B 87 -127 191 555 ; +C 60 ; WX 600 ; N less ; B 46 -8 554 514 ; +C 61 ; WX 600 ; N equal ; B 48 92 552 414 ; +C 62 ; WX 600 ; N greater ; B 46 -8 554 514 ; +C 63 ; WX 518 ; N question ; B 32 0 478 754 ; +C 64 ; WX 760 ; N at ; B 11 -13 749 753 ; +C 65 ; WX 684 ; N A ; B 13 0 672 740 ; +C 66 ; WX 580 ; N B ; B 75 0 542 740 ; +C 67 ; WX 782 ; N C ; B 38 -14 759 754 ; +C 68 ; WX 732 ; N D ; B 65 0 683 740 ; +C 69 ; WX 520 ; N E ; B 65 0 464 740 ; +C 70 ; WX 482 ; N F ; B 65 0 439 740 ; +C 71 ; WX 831 ; N G ; B 38 -14 799 754 ; +C 72 ; WX 670 ; N H ; B 75 0 596 740 ; +C 73 ; WX 257 ; N I ; B 75 0 183 740 ; +C 74 ; WX 487 ; N J ; B 0 -14 408 740 ; +C 75 ; WX 618 ; N K ; B 90 0 614 740 ; +C 76 ; WX 444 ; N L ; B 79 0 444 740 ; +C 77 ; WX 934 ; N M ; B 75 0 860 740 ; +C 78 ; WX 738 ; N N ; B 75 0 663 740 ; +C 79 ; WX 846 ; N O ; B 38 -14 808 754 ; +C 80 ; WX 559 ; N P ; B 65 0 540 740 ; +C 81 ; WX 837 ; N Q ; B 38 -14 816 754 ; +C 82 ; WX 594 ; N R ; B 65 0 559 740 ; +C 83 ; WX 499 ; N S ; B 18 -14 473 754 ; +C 84 ; WX 407 ; N T ; B 7 0 399 740 ; +C 85 ; WX 643 ; N U ; B 73 -14 569 740 ; +C 86 ; WX 684 ; N V ; B 12 0 672 740 ; +C 87 ; WX 906 ; N W ; B 16 0 890 740 ; +C 88 ; WX 648 ; N X ; B 11 0 636 740 ; +C 89 ; WX 593 ; N Y ; B 13 0 579 740 ; +C 90 ; WX 462 ; N Z ; B 4 0 459 740 ; +C 91 ; WX 407 ; N bracketleft ; B 125 -257 329 755 ; +C 92 ; WX 499 ; N backslash ; B 56 -100 458 740 ; +C 93 ; WX 407 ; N bracketright ; B 78 -257 282 755 ; +C 94 ; WX 600 ; N asciicircum ; B 66 355 534 740 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 277 ; N quoteleft ; B 86 490 190 740 ; +C 97 ; WX 693 ; N a ; B 38 -14 626 569 ; +C 98 ; WX 688 ; N b ; B 67 -14 650 740 ; +C 99 ; WX 627 ; N c ; B 38 -14 595 569 ; +C 100 ; WX 687 ; N d ; B 38 -14 620 740 ; +C 101 ; WX 642 ; N e ; B 39 -14 605 569 ; +C 102 ; WX 277 ; N f ; B 21 0 271 740 ; L i fi ; L l fl ; +C 103 ; WX 697 ; N g ; B 38 -218 631 569 ; +C 104 ; WX 622 ; N h ; B 66 0 558 740 ; +C 105 ; WX 238 ; N i ; B 67 0 171 740 ; +C 106 ; WX 249 ; N j ; B 11 -218 184 740 ; +C 107 ; WX 546 ; N k ; B 77 0 535 740 ; +C 108 ; WX 238 ; N l ; B 67 0 171 740 ; +C 109 ; WX 971 ; N m ; B 67 0 905 569 ; +C 110 ; WX 624 ; N n ; B 66 0 558 569 ; +C 111 ; WX 675 ; N o ; B 38 -14 636 569 ; +C 112 ; WX 686 ; N p ; B 67 -185 648 569 ; +C 113 ; WX 687 ; N q ; B 39 -185 620 569 ; +C 114 ; WX 320 ; N r ; B 67 0 307 569 ; +C 115 ; WX 424 ; N s ; B 20 -14 402 569 ; +C 116 ; WX 277 ; N t ; B 4 0 274 740 ; +C 117 ; WX 624 ; N u ; B 66 -14 557 554 ; +C 118 ; WX 537 ; N v ; B 13 0 524 554 ; +C 119 ; WX 795 ; N w ; B 13 0 782 554 ; +C 120 ; WX 518 ; N x ; B 2 0 516 554 ; +C 121 ; WX 574 ; N y ; B 10 -185 564 554 ; +C 122 ; WX 407 ; N z ; B 3 0 404 554 ; +C 123 ; WX 333 ; N braceleft ; B 14 -198 308 740 ; +C 124 ; WX 555 ; N bar ; B 221 -100 334 740 ; +C 125 ; WX 333 ; N braceright ; B 25 -198 319 740 ; +C 126 ; WX 600 ; N asciitilde ; B 69 167 531 339 ; +C 161 ; WX 277 ; N exclamdown ; B 86 -185 190 555 ; +C 162 ; WX 555 ; N cent ; B 38 69 517 740 ; +C 163 ; WX 555 ; N sterling ; B 9 0 546 754 ; +C 164 ; WX 186 ; N fraction ; B -98 0 283 740 ; +C 165 ; WX 555 ; N yen ; B 0 0 555 740 ; +C 166 ; WX 555 ; N florin ; B 15 -157 520 829 ; +C 167 ; WX 573 ; N section ; B 41 -222 534 754 ; +C 168 ; WX 555 ; N currency ; B 27 72 529 574 ; +C 169 ; WX 218 ; N quotesingle ; B 54 444 164 740 ; +C 170 ; WX 425 ; N quotedblleft ; B 83 490 343 740 ; +C 171 ; WX 370 ; N guillemotleft ; B 33 102 337 475 ; +C 172 ; WX 205 ; N guilsinglleft ; B 34 102 171 475 ; +C 173 ; WX 205 ; N guilsinglright ; B 34 102 171 475 ; +C 174 ; WX 486 ; N fi ; B 21 0 419 740 ; +C 175 ; WX 486 ; N fl ; B 21 0 419 740 ; +C 177 ; WX 500 ; N endash ; B 35 237 465 341 ; +C 178 ; WX 573 ; N dagger ; B 65 -222 509 740 ; +C 179 ; WX 573 ; N daggerdbl ; B 65 -222 509 740 ; +C 180 ; WX 277 ; N periodcentered ; B 93 200 184 308 ; +C 182 ; WX 638 ; N paragraph ; B 2 -191 535 700 ; +C 183 ; WX 606 ; N bullet ; B 150 222 455 532 ; +C 184 ; WX 277 ; N quotesinglbase ; B 87 -128 191 122 ; +C 185 ; WX 425 ; N quotedblbase ; B 82 -128 342 122 ; +C 186 ; WX 425 ; N quotedblright ; B 82 490 342 740 ; +C 187 ; WX 370 ; N guillemotright ; B 33 102 337 475 ; +C 188 ; WX 1000 ; N ellipsis ; B 115 0 885 122 ; +C 189 ; WX 1228 ; N perthousand ; B 52 -13 1175 751 ; +C 191 ; WX 518 ; N questiondown ; B 40 -199 486 555 ; +C 193 ; WX 555 ; N grave ; B 124 611 391 814 ; +C 194 ; WX 555 ; N acute ; B 164 611 431 814 ; +C 195 ; WX 555 ; N circumflex ; B 88 632 467 767 ; +C 196 ; WX 555 ; N tilde ; B 94 636 461 745 ; +C 197 ; WX 555 ; N macron ; B 100 659 455 734 ; +C 198 ; WX 555 ; N breve ; B 88 636 467 756 ; +C 199 ; WX 555 ; N dotaccent ; B 225 636 329 758 ; +C 200 ; WX 555 ; N dieresis ; B 148 636 407 758 ; +C 202 ; WX 555 ; N ring ; B 167 610 388 831 ; +C 203 ; WX 555 ; N cedilla ; B 182 -246 373 0 ; +C 205 ; WX 555 ; N hungarumlaut ; B 97 632 498 767 ; +C 206 ; WX 555 ; N ogonek ; B 187 -202 368 0 ; +C 207 ; WX 555 ; N caron ; B 88 632 467 774 ; +C 208 ; WX 1000 ; N emdash ; B 35 237 965 341 ; +C 225 ; WX 930 ; N AE ; B 0 0 866 740 ; +C 227 ; WX 385 ; N ordfeminine ; B 13 430 346 754 ; +C 232 ; WX 444 ; N Lslash ; B 4 0 444 740 ; +C 233 ; WX 846 ; N Oslash ; B 38 -65 808 802 ; +C 234 ; WX 1094 ; N OE ; B 38 -14 1048 754 ; +C 235 ; WX 385 ; N ordmasculine ; B 26 430 358 754 ; +C 241 ; WX 1131 ; N ae ; B 38 -14 1093 569 ; +C 245 ; WX 238 ; N dotlessi ; B 67 0 171 554 ; +C 248 ; WX 284 ; N lslash ; B 21 0 273 740 ; +C 249 ; WX 675 ; N oslash ; B 38 -69 636 623 ; +C 250 ; WX 1144 ; N oe ; B 38 -14 1107 569 ; +C 251 ; WX 640 ; N germandbls ; B 66 -14 602 754 ; +C -1 ; WX 642 ; N ecircumflex ; B 39 -14 605 767 ; +C -1 ; WX 642 ; N edieresis ; B 39 -14 605 758 ; +C -1 ; WX 693 ; N aacute ; B 38 -14 626 814 ; +C -1 ; WX 800 ; N registered ; B 18 -12 782 752 ; +C -1 ; WX 238 ; N icircumflex ; B -70 0 309 767 ; +C -1 ; WX 624 ; N udieresis ; B 66 -14 557 758 ; +C -1 ; WX 675 ; N ograve ; B 38 -14 636 814 ; +C -1 ; WX 624 ; N uacute ; B 66 -14 557 814 ; +C -1 ; WX 624 ; N ucircumflex ; B 66 -14 557 767 ; +C -1 ; WX 684 ; N Aacute ; B 13 0 672 975 ; +C -1 ; WX 238 ; N igrave ; B -74 0 193 814 ; +C -1 ; WX 257 ; N Icircumflex ; B -61 0 318 933 ; +C -1 ; WX 627 ; N ccedilla ; B 38 -246 595 569 ; +C -1 ; WX 693 ; N adieresis ; B 38 -14 626 758 ; +C -1 ; WX 520 ; N Ecircumflex ; B 65 0 464 933 ; +C -1 ; WX 424 ; N scaron ; B 20 -14 402 774 ; +C -1 ; WX 686 ; N thorn ; B 67 -185 648 740 ; +C -1 ; WX 990 ; N trademark ; B 0 288 903 700 ; +C -1 ; WX 642 ; N egrave ; B 39 -14 605 814 ; +C -1 ; WX 351 ; N threesuperior ; B 16 286 316 750 ; +C -1 ; WX 407 ; N zcaron ; B 3 0 413 774 ; +C -1 ; WX 693 ; N atilde ; B 38 -14 626 745 ; +C -1 ; WX 693 ; N aring ; B 38 -14 626 831 ; +C -1 ; WX 675 ; N ocircumflex ; B 38 -14 636 767 ; +C -1 ; WX 520 ; N Edieresis ; B 65 0 464 924 ; +C -1 ; WX 781 ; N threequarters ; B 16 0 765 750 ; +C -1 ; WX 574 ; N ydieresis ; B 10 -185 564 758 ; +C -1 ; WX 574 ; N yacute ; B 10 -185 564 814 ; +C -1 ; WX 238 ; N iacute ; B 46 0 313 814 ; +C -1 ; WX 684 ; N Acircumflex ; B 13 0 672 928 ; +C -1 ; WX 643 ; N Uacute ; B 73 -14 569 980 ; +C -1 ; WX 642 ; N eacute ; B 39 -14 605 814 ; +C -1 ; WX 846 ; N Ograve ; B 38 -14 808 980 ; +C -1 ; WX 693 ; N agrave ; B 38 -14 626 814 ; +C -1 ; WX 643 ; N Udieresis ; B 73 -14 569 924 ; +C -1 ; WX 693 ; N acircumflex ; B 38 -14 626 767 ; +C -1 ; WX 257 ; N Igrave ; B -65 0 202 980 ; +C -1 ; WX 351 ; N twosuperior ; B 25 296 318 750 ; +C -1 ; WX 643 ; N Ugrave ; B 73 -14 569 980 ; +C -1 ; WX 700 ; N onequarter ; B 16 0 684 740 ; +C -1 ; WX 643 ; N Ucircumflex ; B 73 -14 569 933 ; +C -1 ; WX 499 ; N Scaron ; B 18 -14 473 940 ; +C -1 ; WX 257 ; N Idieresis ; B -1 0 258 924 ; +C -1 ; WX 238 ; N idieresis ; B -10 0 249 758 ; +C -1 ; WX 520 ; N Egrave ; B 65 0 464 980 ; +C -1 ; WX 846 ; N Oacute ; B 38 -14 808 980 ; +C -1 ; WX 600 ; N divide ; B 48 0 552 506 ; +C -1 ; WX 684 ; N Atilde ; B 13 0 672 911 ; +C -1 ; WX 684 ; N Aring ; B 13 0 672 982 ; +C -1 ; WX 846 ; N Odieresis ; B 38 -14 808 924 ; +C -1 ; WX 684 ; N Adieresis ; B 13 0 672 919 ; +C -1 ; WX 738 ; N Ntilde ; B 75 0 663 911 ; +C -1 ; WX 462 ; N Zcaron ; B 4 0 459 940 ; +C -1 ; WX 559 ; N Thorn ; B 65 0 540 740 ; +C -1 ; WX 257 ; N Iacute ; B 55 0 322 980 ; +C -1 ; WX 600 ; N plusminus ; B 48 -52 552 546 ; +C -1 ; WX 600 ; N multiply ; B 61 14 539 492 ; +C -1 ; WX 520 ; N Eacute ; B 65 0 464 980 ; +C -1 ; WX 593 ; N Ydieresis ; B 13 0 579 924 ; +C -1 ; WX 351 ; N onesuperior ; B 97 296 239 740 ; +C -1 ; WX 624 ; N ugrave ; B 66 -14 557 814 ; +C -1 ; WX 600 ; N logicalnot ; B 48 108 552 414 ; +C -1 ; WX 624 ; N ntilde ; B 66 0 558 745 ; +C -1 ; WX 846 ; N Otilde ; B 38 -14 808 911 ; +C -1 ; WX 675 ; N otilde ; B 38 -14 636 745 ; +C -1 ; WX 782 ; N Ccedilla ; B 38 -246 759 754 ; +C -1 ; WX 684 ; N Agrave ; B 13 0 672 975 ; +C -1 ; WX 714 ; N onehalf ; B 16 0 698 740 ; +C -1 ; WX 732 ; N Eth ; B 2 0 683 740 ; +C -1 ; WX 400 ; N degree ; B 57 426 343 712 ; +C -1 ; WX 593 ; N Yacute ; B 13 0 579 980 ; +C -1 ; WX 846 ; N Ocircumflex ; B 38 -14 808 933 ; +C -1 ; WX 675 ; N oacute ; B 38 -14 636 814 ; +C -1 ; WX 624 ; N mu ; B 74 -185 550 554 ; +C -1 ; WX 600 ; N minus ; B 48 201 552 305 ; +C -1 ; WX 675 ; N eth ; B 38 -14 636 754 ; +C -1 ; WX 675 ; N odieresis ; B 38 -14 636 758 ; +C -1 ; WX 800 ; N copyright ; B 18 -12 782 752 ; +C -1 ; WX 555 ; N brokenbar ; B 221 -100 334 740 ; +EndCharMetrics +StartKernData +StartKernPairs 223 + +KPX A y -50 +KPX A w -65 +KPX A v -70 +KPX A u -20 +KPX A quoteright -85 +KPX A quotedblright -85 +KPX A Y -80 +KPX A W -60 +KPX A V -102 +KPX A U -40 +KPX A T -25 +KPX A Q -40 +KPX A O -50 +KPX A G -40 +KPX A C -40 + +KPX B A -10 + +KPX C A -40 + +KPX D period -50 +KPX D comma -50 +KPX D Y -45 +KPX D W -30 +KPX D V -50 +KPX D A -50 + +KPX F period -175 +KPX F e -20 +KPX F comma -175 +KPX F a -20 +KPX F A -75 + +KPX G period -40 +KPX G comma -40 +KPX G Y -15 + +KPX J period -15 +KPX J a -20 +KPX J A -30 + +KPX K y -25 +KPX K u -35 +KPX K o -45 +KPX K e -20 +KPX K O -30 + +KPX L y -23 +KPX L quoteright -100 +KPX L quotedblright -100 +KPX L Y -80 +KPX L W -55 +KPX L V -113 +KPX L T -46 + +KPX O period -50 +KPX O comma -50 +KPX O Y -40 +KPX O X -30 +KPX O W -20 +KPX O V -45 +KPX O T -15 +KPX O A -60 + +KPX P period -240 +KPX P o -20 +KPX P e -20 +KPX P comma -240 +KPX P a -20 +KPX P A -100 + +KPX R Y -10 +KPX R W 10 +KPX R V -10 +KPX R T 15 + +KPX T y -30 +KPX T w -55 +KPX T u -46 +KPX T semicolon -29 +KPX T r -30 +KPX T period -91 +KPX T o -49 +KPX T hyphen -75 +KPX T e -49 +KPX T comma -82 +KPX T colon -15 +KPX T a -70 +KPX T O -15 +KPX T A -25 + +KPX U period -20 +KPX U comma -20 +KPX U A -40 + +KPX V u -55 +KPX V semicolon -33 +KPX V period -145 +KPX V o -101 +KPX V i -35 +KPX V hyphen -90 +KPX V e -101 +KPX V comma -145 +KPX V colon -18 +KPX V a -104 +KPX V O -45 +KPX V G -20 +KPX V A -102 + +KPX W y -20 +KPX W u -30 +KPX W semicolon -33 +KPX W period -106 +KPX W o -46 +KPX W i -10 +KPX W hyphen -50 +KPX W e -47 +KPX W comma -106 +KPX W colon -15 +KPX W a -50 +KPX W O -20 +KPX W A -58 + +KPX Y u -85 +KPX Y semicolon -23 +KPX Y period -145 +KPX Y o -89 +KPX Y i -15 +KPX Y hyphen -105 +KPX Y e -89 +KPX Y comma -145 +KPX Y colon -10 +KPX Y a -93 +KPX Y O -40 +KPX Y A -80 + +KPX a t 5 +KPX a p 20 +KPX a b 5 + +KPX b y -20 +KPX b v -20 +KPX b u -10 + +KPX c y -20 +KPX c k -15 + +KPX comma space -70 +KPX comma quoteright -100 +KPX comma quotedblright -100 + +KPX e y -20 +KPX e w -20 +KPX e v -20 + +KPX f period -50 +KPX f o -20 +KPX f l -30 +KPX f i -30 +KPX f f -15 +KPX f dotlessi -30 +KPX f comma -50 +KPX f a -20 + +KPX g a -15 + +KPX h y -30 + +KPX k y -25 +KPX k o -45 +KPX k e -35 + +KPX l w -20 + +KPX m y -20 +KPX m u -20 + +KPX n y -15 +KPX n v -30 +KPX n u -15 + +KPX o y -20 +KPX o x -15 +KPX o w -20 +KPX o v -30 +KPX o period -25 +KPX o comma -25 + +KPX p y -20 +KPX p period -25 +KPX p comma -25 + +KPX period space -70 +KPX period quoteright -100 +KPX period quotedblright -100 + +KPX quotedblleft A -85 + +KPX quotedblright space -100 + +KPX quoteleft quoteleft -121 +KPX quoteleft A -85 + +KPX quoteright v -20 +KPX quoteright t 10 +KPX quoteright space -100 +KPX quoteright s -15 +KPX quoteright r -20 +KPX quoteright quoteright -121 +KPX quoteright d -70 + +KPX r y 40 +KPX r v 40 +KPX r u 20 +KPX r t 40 +KPX r s 20 +KPX r q -8 +KPX r period -73 +KPX r p 20 +KPX r o -20 +KPX r n 21 +KPX r m 28 +KPX r l 20 +KPX r k 20 +KPX r i 20 +KPX r hyphen -60 +KPX r g 1 +KPX r e -4 +KPX r d -6 +KPX r comma -75 +KPX r c -7 + +KPX s t 15 +KPX s period 20 +KPX s comma 20 + +KPX space quoteleft -100 +KPX space quotedblleft -100 +KPX space Y -60 +KPX space W -25 +KPX space V -80 +KPX space T -25 +KPX space A -20 + +KPX u z 15 + +KPX v period -90 +KPX v o -20 +KPX v e -20 +KPX v comma -90 +KPX v a -30 + +KPX w period -90 +KPX w o -30 +KPX w h 15 +KPX w e -20 +KPX w comma -90 +KPX w a -30 + +KPX x i 15 + +KPX y period -85 +KPX y o -30 +KPX y e -20 +KPX y comma -100 +KPX y a -30 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 65 161 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 65 161 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 65 161 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 65 161 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 65 151 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 65 166 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute -17 166 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex -17 166 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis -17 166 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave -17 166 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute -109 166 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -149 166 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -149 166 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -189 166 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 92 166 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 146 166 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 146 166 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 146 166 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 146 166 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 146 166 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron -28 166 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 69 166 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 44 166 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 44 166 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 19 166 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 44 166 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 19 166 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron -26 166 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 69 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 69 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 69 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 69 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 69 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 69 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 44 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 44 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 44 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 44 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -118 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -158 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -158 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -198 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 35 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 60 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 60 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 60 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 60 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 60 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron -65 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 60 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 35 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 35 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 10 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 35 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 10 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron -54 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Md+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Md+ new file mode 100755 index 0000000000000..abba01c0827d8 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-Md+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 782 ; N Ccaron ; B 38 -14 759 950 ; +C -1 ; WX 627 ; N ccaron ; B 38 -14 595 774 ; +C -1 ; WX 732 ; N Dcaron ; B 65 0 683 950 ; +C -1 ; WX 760 ; N dcaron ; B 38 -14 734 814 ; +C -1 ; WX 520 ; N Ecaron ; B 65 0 464 950 ; +C -1 ; WX 642 ; N ecaron ; B 39 -14 605 774 ; +C -1 ; WX 444 ; N Lcaron ; B 79 0 444 814 ; +C -1 ; WX 444 ; N Lacute ; B 79 0 444 1011 ; +C -1 ; WX 311 ; N lcaron ; B 67 0 285 814 ; +C -1 ; WX 238 ; N lacute ; B 33 0 300 1011 ; +C -1 ; WX 738 ; N Ncaron ; B 75 0 663 950 ; +C -1 ; WX 624 ; N ncaron ; B 66 0 558 774 ; +C -1 ; WX 594 ; N Rcaron ; B 65 0 559 950 ; +C -1 ; WX 594 ; N Racute ; B 65 0 559 1011 ; +C -1 ; WX 320 ; N rcaron ; B -29 0 350 774 ; +C -1 ; WX 320 ; N racute ; B 67 0 341 814 ; +C -1 ; WX 407 ; N Tcaron ; B 7 0 399 950 ; +C -1 ; WX 350 ; N tcaron ; B 4 0 388 740 ; +C -1 ; WX 643 ; N Uring ; B 73 -14 569 950 ; +C -1 ; WX 624 ; N uring ; B 66 -14 557 831 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 185 176 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 64 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 88 176 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 543 74 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron -17 176 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 43 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 106 74 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute -55 197 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 94 74 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute -131 197 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 91 176 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 34 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 19 176 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 70 197 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron -117 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute -90 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron -74 176 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 197 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 44 119 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 34 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-MdO b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-MdO new file mode 100755 index 0000000000000..c2b0eb875ce7d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-MdO @@ -0,0 +1,581 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1991 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Tue Feb 19 18:22:11 1991 +Comment UniqueID 34235 +Comment VMusage 6123 38590 +FontName AvantGarde-MediumObl +FullName ITC Avant Garde Gothic Medium Oblique +FamilyName ITC Avant Garde Gothic +Weight Medium +ItalicAngle -10.5 +IsFixedPitch false +FontBBox -98 -257 1209 982 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1991 Adobe Systems Incorporated. All Rights Reserved.ITC Avant Garde Gothic is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 740 +XHeight 554 +Ascender 740 +Descender -185 +StartCharMetrics 228 +C 32 ; WX 277 ; N space ; B 0 0 0 0 ; +C 33 ; WX 277 ; N exclam ; B 87 0 328 740 ; +C 34 ; WX 325 ; N quotedbl ; B 121 444 443 740 ; +C 35 ; WX 555 ; N numbersign ; B 68 0 616 700 ; +C 36 ; WX 555 ; N dollar ; B 108 -82 579 823 ; +C 37 ; WX 837 ; N percent ; B 155 -13 818 751 ; +C 38 ; WX 684 ; N ampersand ; B 69 -14 732 754 ; +C 39 ; WX 277 ; N quoteright ; B 178 490 328 740 ; +C 40 ; WX 407 ; N parenleft ; B 92 -257 491 755 ; +C 41 ; WX 407 ; N parenright ; B 8 -257 407 755 ; +C 42 ; WX 573 ; N asterisk ; B 203 377 585 740 ; +C 43 ; WX 600 ; N plus ; B 85 0 609 506 ; +C 44 ; WX 277 ; N comma ; B 63 -127 214 122 ; +C 45 ; WX 280 ; N hyphen ; B 44 237 343 341 ; +C 46 ; WX 277 ; N period ; B 87 0 214 122 ; +C 47 ; WX 499 ; N slash ; B 22 -100 580 740 ; +C 48 ; WX 555 ; N zero ; B 76 -14 617 755 ; +C 49 ; WX 555 ; N one ; B 257 0 498 740 ; +C 50 ; WX 555 ; N two ; B 41 0 603 754 ; +C 51 ; WX 555 ; N three ; B 59 -14 575 754 ; +C 52 ; WX 555 ; N four ; B 33 0 591 740 ; +C 53 ; WX 555 ; N five ; B 65 -14 596 740 ; +C 54 ; WX 555 ; N six ; B 66 -14 588 740 ; +C 55 ; WX 555 ; N seven ; B 113 0 637 740 ; +C 56 ; WX 555 ; N eight ; B 79 -14 584 754 ; +C 57 ; WX 555 ; N nine ; B 104 0 625 754 ; +C 58 ; WX 277 ; N colon ; B 87 0 294 555 ; +C 59 ; WX 277 ; N semicolon ; B 63 -127 294 555 ; +C 60 ; WX 600 ; N less ; B 85 -8 649 514 ; +C 61 ; WX 600 ; N equal ; B 65 92 629 414 ; +C 62 ; WX 600 ; N greater ; B 45 -8 609 514 ; +C 63 ; WX 518 ; N question ; B 130 0 580 754 ; +C 64 ; WX 760 ; N at ; B 72 -13 834 753 ; +C 65 ; WX 684 ; N A ; B 13 0 672 740 ; +C 66 ; WX 580 ; N B ; B 75 0 600 740 ; +C 67 ; WX 782 ; N C ; B 101 -14 861 754 ; +C 68 ; WX 732 ; N D ; B 65 0 757 740 ; +C 69 ; WX 520 ; N E ; B 65 0 601 740 ; +C 70 ; WX 482 ; N F ; B 65 0 576 740 ; +C 71 ; WX 831 ; N G ; B 100 -14 867 754 ; +C 72 ; WX 670 ; N H ; B 75 0 733 740 ; +C 73 ; WX 257 ; N I ; B 75 0 320 740 ; +C 74 ; WX 487 ; N J ; B 27 -14 545 740 ; +C 75 ; WX 618 ; N K ; B 90 0 751 740 ; +C 76 ; WX 444 ; N L ; B 79 0 462 740 ; +C 77 ; WX 934 ; N M ; B 75 0 997 740 ; +C 78 ; WX 738 ; N N ; B 75 0 800 740 ; +C 79 ; WX 846 ; N O ; B 100 -14 883 754 ; +C 80 ; WX 559 ; N P ; B 65 0 640 740 ; +C 81 ; WX 837 ; N Q ; B 100 -14 875 754 ; +C 82 ; WX 594 ; N R ; B 65 0 657 740 ; +C 83 ; WX 499 ; N S ; B 54 -14 564 754 ; +C 84 ; WX 407 ; N T ; B 126 0 536 740 ; +C 85 ; WX 643 ; N U ; B 112 -14 706 740 ; +C 86 ; WX 684 ; N V ; B 149 0 809 740 ; +C 87 ; WX 906 ; N W ; B 153 0 1027 740 ; +C 88 ; WX 648 ; N X ; B 11 0 773 740 ; +C 89 ; WX 593 ; N Y ; B 150 0 716 740 ; +C 90 ; WX 462 ; N Z ; B 4 0 583 740 ; +C 91 ; WX 407 ; N bracketleft ; B 124 -257 469 755 ; +C 92 ; WX 499 ; N backslash ; B 193 -100 439 740 ; +C 93 ; WX 407 ; N bracketright ; B 30 -257 374 755 ; +C 94 ; WX 600 ; N asciicircum ; B 132 355 600 740 ; +C 95 ; WX 500 ; N underscore ; B -23 -125 486 -75 ; +C 96 ; WX 277 ; N quoteleft ; B 177 490 327 740 ; +C 97 ; WX 693 ; N a ; B 84 -14 729 569 ; +C 98 ; WX 688 ; N b ; B 67 -14 706 740 ; +C 99 ; WX 627 ; N c ; B 84 -14 664 569 ; +C 100 ; WX 687 ; N d ; B 84 -14 757 740 ; +C 101 ; WX 642 ; N e ; B 86 -14 662 569 ; +C 102 ; WX 277 ; N f ; B 70 0 408 740 ; L i fi ; L l fl ; +C 103 ; WX 697 ; N g ; B 50 -218 734 569 ; +C 104 ; WX 622 ; N h ; B 66 0 624 740 ; +C 105 ; WX 238 ; N i ; B 67 0 308 740 ; +C 106 ; WX 249 ; N j ; B -29 -218 321 740 ; +C 107 ; WX 546 ; N k ; B 77 0 606 740 ; +C 108 ; WX 238 ; N l ; B 67 0 308 740 ; +C 109 ; WX 971 ; N m ; B 67 0 973 569 ; +C 110 ; WX 624 ; N n ; B 66 0 624 569 ; +C 111 ; WX 675 ; N o ; B 85 -14 692 569 ; +C 112 ; WX 686 ; N p ; B 33 -185 704 569 ; +C 113 ; WX 687 ; N q ; B 86 -185 723 569 ; +C 114 ; WX 320 ; N r ; B 67 0 412 569 ; +C 115 ; WX 424 ; N s ; B 50 -14 467 569 ; +C 116 ; WX 277 ; N t ; B 79 0 377 740 ; +C 117 ; WX 624 ; N u ; B 104 -14 660 554 ; +C 118 ; WX 537 ; N v ; B 116 0 627 554 ; +C 119 ; WX 795 ; N w ; B 116 0 885 554 ; +C 120 ; WX 518 ; N x ; B 2 0 607 554 ; +C 121 ; WX 574 ; N y ; B 113 -185 667 554 ; +C 122 ; WX 407 ; N z ; B 3 0 486 554 ; +C 123 ; WX 333 ; N braceleft ; B 57 -198 445 740 ; +C 124 ; WX 555 ; N bar ; B 202 -100 471 740 ; +C 125 ; WX 333 ; N braceright ; B -12 -198 377 740 ; +C 126 ; WX 600 ; N asciitilde ; B 115 167 579 339 ; +C 161 ; WX 277 ; N exclamdown ; B 52 -185 293 555 ; +C 162 ; WX 555 ; N cent ; B 110 69 607 740 ; +C 163 ; WX 555 ; N sterling ; B 42 0 617 754 ; +C 164 ; WX 186 ; N fraction ; B -98 0 420 740 ; +C 165 ; WX 555 ; N yen ; B 57 0 692 740 ; +C 166 ; WX 555 ; N florin ; B -13 -157 673 829 ; +C 167 ; WX 573 ; N section ; B 63 -222 596 754 ; +C 168 ; WX 555 ; N currency ; B 52 72 624 574 ; +C 169 ; WX 218 ; N quotesingle ; B 156 444 301 740 ; +C 170 ; WX 425 ; N quotedblleft ; B 174 490 480 740 ; +C 171 ; WX 370 ; N guillemotleft ; B 77 102 425 475 ; +C 172 ; WX 205 ; N guilsinglleft ; B 78 102 259 475 ; +C 173 ; WX 205 ; N guilsinglright ; B 53 102 234 475 ; +C 174 ; WX 486 ; N fi ; B 70 0 556 740 ; +C 175 ; WX 486 ; N fl ; B 70 0 556 740 ; +C 177 ; WX 500 ; N endash ; B 79 237 528 341 ; +C 178 ; WX 573 ; N dagger ; B 149 -222 610 740 ; +C 179 ; WX 573 ; N daggerdbl ; B 71 -222 616 740 ; +C 180 ; WX 277 ; N periodcentered ; B 130 200 241 308 ; +C 182 ; WX 638 ; N paragraph ; B 95 -191 665 700 ; +C 183 ; WX 606 ; N bullet ; B 217 222 528 532 ; +C 184 ; WX 277 ; N quotesinglbase ; B 63 -128 214 122 ; +C 185 ; WX 425 ; N quotedblbase ; B 58 -128 365 122 ; +C 186 ; WX 425 ; N quotedblright ; B 173 490 479 740 ; +C 187 ; WX 370 ; N guillemotright ; B 52 102 400 475 ; +C 188 ; WX 1000 ; N ellipsis ; B 115 0 908 122 ; +C 189 ; WX 1228 ; N perthousand ; B 155 -13 1209 751 ; +C 191 ; WX 518 ; N questiondown ; B 41 -199 491 555 ; +C 193 ; WX 555 ; N grave ; B 261 611 519 814 ; +C 194 ; WX 555 ; N acute ; B 291 611 567 814 ; +C 195 ; WX 555 ; N circumflex ; B 205 632 584 767 ; +C 196 ; WX 555 ; N tilde ; B 225 636 587 745 ; +C 197 ; WX 555 ; N macron ; B 222 659 591 734 ; +C 198 ; WX 555 ; N breve ; B 228 636 607 756 ; +C 199 ; WX 555 ; N dotaccent ; B 343 636 469 758 ; +C 200 ; WX 555 ; N dieresis ; B 266 636 547 758 ; +C 202 ; WX 555 ; N ring ; B 299 610 523 831 ; +C 203 ; WX 555 ; N cedilla ; B 152 -246 347 0 ; +C 205 ; WX 555 ; N hungarumlaut ; B 214 632 640 767 ; +C 206 ; WX 555 ; N ogonek ; B 166 -202 345 0 ; +C 207 ; WX 555 ; N caron ; B 231 632 610 774 ; +C 208 ; WX 1000 ; N emdash ; B 79 237 1028 341 ; +C 225 ; WX 930 ; N AE ; B 0 0 1003 740 ; +C 227 ; WX 385 ; N ordfeminine ; B 120 430 484 754 ; +C 232 ; WX 444 ; N Lslash ; B 50 0 462 740 ; +C 233 ; WX 846 ; N Oslash ; B 88 -65 900 802 ; +C 234 ; WX 1094 ; N OE ; B 99 -14 1185 754 ; +C 235 ; WX 385 ; N ordmasculine ; B 134 430 471 754 ; +C 241 ; WX 1131 ; N ae ; B 85 -14 1150 569 ; +C 245 ; WX 238 ; N dotlessi ; B 67 0 274 554 ; +C 248 ; WX 284 ; N lslash ; B 71 0 372 740 ; +C 249 ; WX 675 ; N oslash ; B 84 -69 693 623 ; +C 250 ; WX 1144 ; N oe ; B 85 -14 1164 569 ; +C 251 ; WX 640 ; N germandbls ; B 66 -14 646 754 ; +C -1 ; WX 642 ; N ecircumflex ; B 86 -14 662 767 ; +C -1 ; WX 642 ; N edieresis ; B 86 -14 662 758 ; +C -1 ; WX 693 ; N aacute ; B 84 -14 729 814 ; +C -1 ; WX 800 ; N registered ; B 80 -12 857 752 ; +C -1 ; WX 238 ; N icircumflex ; B 47 0 426 767 ; +C -1 ; WX 624 ; N udieresis ; B 104 -14 660 758 ; +C -1 ; WX 675 ; N ograve ; B 85 -14 692 814 ; +C -1 ; WX 624 ; N uacute ; B 104 -14 660 814 ; +C -1 ; WX 624 ; N ucircumflex ; B 104 -14 660 767 ; +C -1 ; WX 684 ; N Aacute ; B 13 0 672 975 ; +C -1 ; WX 238 ; N igrave ; B 63 0 321 814 ; +C -1 ; WX 257 ; N Icircumflex ; B 75 0 466 933 ; +C -1 ; WX 627 ; N ccedilla ; B 84 -246 664 569 ; +C -1 ; WX 693 ; N adieresis ; B 84 -14 729 758 ; +C -1 ; WX 520 ; N Ecircumflex ; B 65 0 601 933 ; +C -1 ; WX 424 ; N scaron ; B 50 -14 545 774 ; +C -1 ; WX 686 ; N thorn ; B 33 -185 704 740 ; +C -1 ; WX 990 ; N trademark ; B 115 288 1033 700 ; +C -1 ; WX 642 ; N egrave ; B 86 -14 662 814 ; +C -1 ; WX 351 ; N threesuperior ; B 93 286 414 750 ; +C -1 ; WX 407 ; N zcaron ; B 3 0 556 774 ; +C -1 ; WX 693 ; N atilde ; B 84 -14 729 745 ; +C -1 ; WX 693 ; N aring ; B 84 -14 729 831 ; +C -1 ; WX 675 ; N ocircumflex ; B 85 -14 692 767 ; +C -1 ; WX 520 ; N Edieresis ; B 65 0 601 924 ; +C -1 ; WX 781 ; N threequarters ; B 93 0 799 750 ; +C -1 ; WX 574 ; N ydieresis ; B 113 -185 667 758 ; +C -1 ; WX 574 ; N yacute ; B 113 -185 667 814 ; +C -1 ; WX 238 ; N iacute ; B 67 0 449 814 ; +C -1 ; WX 684 ; N Acircumflex ; B 13 0 679 928 ; +C -1 ; WX 643 ; N Uacute ; B 112 -14 706 980 ; +C -1 ; WX 642 ; N eacute ; B 86 -14 662 814 ; +C -1 ; WX 846 ; N Ograve ; B 100 -14 883 980 ; +C -1 ; WX 693 ; N agrave ; B 84 -14 729 814 ; +C -1 ; WX 643 ; N Udieresis ; B 112 -14 706 924 ; +C -1 ; WX 693 ; N acircumflex ; B 84 -14 729 767 ; +C -1 ; WX 257 ; N Igrave ; B 75 0 361 980 ; +C -1 ; WX 351 ; N twosuperior ; B 83 296 431 750 ; +C -1 ; WX 643 ; N Ugrave ; B 112 -14 706 980 ; +C -1 ; WX 700 ; N onequarter ; B 127 0 718 740 ; +C -1 ; WX 643 ; N Ucircumflex ; B 112 -14 706 933 ; +C -1 ; WX 499 ; N Scaron ; B 54 -14 613 940 ; +C -1 ; WX 257 ; N Idieresis ; B 75 0 429 924 ; +C -1 ; WX 238 ; N idieresis ; B 67 0 389 758 ; +C -1 ; WX 520 ; N Egrave ; B 65 0 601 980 ; +C -1 ; WX 846 ; N Oacute ; B 100 -14 883 980 ; +C -1 ; WX 600 ; N divide ; B 85 0 609 506 ; +C -1 ; WX 684 ; N Atilde ; B 13 0 683 911 ; +C -1 ; WX 684 ; N Aring ; B 13 0 672 982 ; +C -1 ; WX 846 ; N Odieresis ; B 100 -14 883 924 ; +C -1 ; WX 684 ; N Adieresis ; B 13 0 672 919 ; +C -1 ; WX 738 ; N Ntilde ; B 75 0 800 911 ; +C -1 ; WX 462 ; N Zcaron ; B 4 0 615 940 ; +C -1 ; WX 559 ; N Thorn ; B 65 0 613 740 ; +C -1 ; WX 257 ; N Iacute ; B 75 0 489 980 ; +C -1 ; WX 600 ; N plusminus ; B 38 -52 623 546 ; +C -1 ; WX 600 ; N multiply ; B 77 14 617 492 ; +C -1 ; WX 520 ; N Eacute ; B 65 0 601 980 ; +C -1 ; WX 593 ; N Ydieresis ; B 150 0 716 924 ; +C -1 ; WX 351 ; N onesuperior ; B 214 296 376 740 ; +C -1 ; WX 624 ; N ugrave ; B 104 -14 660 814 ; +C -1 ; WX 600 ; N logicalnot ; B 105 108 629 414 ; +C -1 ; WX 624 ; N ntilde ; B 66 0 624 745 ; +C -1 ; WX 846 ; N Otilde ; B 100 -14 883 911 ; +C -1 ; WX 675 ; N otilde ; B 85 -14 692 745 ; +C -1 ; WX 782 ; N Ccedilla ; B 101 -246 861 754 ; +C -1 ; WX 684 ; N Agrave ; B 13 0 672 975 ; +C -1 ; WX 714 ; N onehalf ; B 101 0 757 740 ; +C -1 ; WX 732 ; N Eth ; B 62 0 757 740 ; +C -1 ; WX 400 ; N degree ; B 160 426 451 712 ; +C -1 ; WX 593 ; N Yacute ; B 150 0 716 980 ; +C -1 ; WX 846 ; N Ocircumflex ; B 100 -14 883 933 ; +C -1 ; WX 675 ; N oacute ; B 85 -14 692 814 ; +C -1 ; WX 624 ; N mu ; B 40 -185 653 554 ; +C -1 ; WX 600 ; N minus ; B 85 201 609 305 ; +C -1 ; WX 675 ; N eth ; B 85 -14 698 754 ; +C -1 ; WX 675 ; N odieresis ; B 85 -14 692 758 ; +C -1 ; WX 800 ; N copyright ; B 80 -12 857 752 ; +C -1 ; WX 555 ; N brokenbar ; B 202 -100 471 740 ; +EndCharMetrics +StartKernData +StartKernPairs 223 + +KPX A y -50 +KPX A w -65 +KPX A v -70 +KPX A u -20 +KPX A quoteright -85 +KPX A quotedblright -85 +KPX A Y -80 +KPX A W -60 +KPX A V -102 +KPX A U -40 +KPX A T -25 +KPX A Q -40 +KPX A O -50 +KPX A G -40 +KPX A C -40 + +KPX B A -10 + +KPX C A -40 + +KPX D period -50 +KPX D comma -50 +KPX D Y -45 +KPX D W -30 +KPX D V -50 +KPX D A -50 + +KPX F period -175 +KPX F e -20 +KPX F comma -175 +KPX F a -20 +KPX F A -75 + +KPX G period -40 +KPX G comma -40 +KPX G Y -15 + +KPX J period -15 +KPX J a -20 +KPX J A -30 + +KPX K y -25 +KPX K u -35 +KPX K o -45 +KPX K e -20 +KPX K O -30 + +KPX L y -23 +KPX L quoteright -100 +KPX L quotedblright -100 +KPX L Y -80 +KPX L W -55 +KPX L V -113 +KPX L T -46 + +KPX O period -50 +KPX O comma -50 +KPX O Y -40 +KPX O X -30 +KPX O W -20 +KPX O V -45 +KPX O T -15 +KPX O A -60 + +KPX P period -240 +KPX P o -20 +KPX P e -20 +KPX P comma -240 +KPX P a -20 +KPX P A -100 + +KPX R Y -10 +KPX R W 10 +KPX R V -10 +KPX R T 15 + +KPX T y -30 +KPX T w -55 +KPX T u -46 +KPX T semicolon -29 +KPX T r -30 +KPX T period -91 +KPX T o -49 +KPX T hyphen -75 +KPX T e -49 +KPX T comma -82 +KPX T colon -15 +KPX T a -70 +KPX T O -15 +KPX T A -25 + +KPX U period -20 +KPX U comma -20 +KPX U A -40 + +KPX V u -55 +KPX V semicolon -33 +KPX V period -145 +KPX V o -101 +KPX V i -35 +KPX V hyphen -90 +KPX V e -101 +KPX V comma -145 +KPX V colon -18 +KPX V a -104 +KPX V O -45 +KPX V G -20 +KPX V A -102 + +KPX W y -20 +KPX W u -30 +KPX W semicolon -33 +KPX W period -106 +KPX W o -46 +KPX W i -10 +KPX W hyphen -50 +KPX W e -47 +KPX W comma -106 +KPX W colon -15 +KPX W a -50 +KPX W O -20 +KPX W A -58 + +KPX Y u -85 +KPX Y semicolon -23 +KPX Y period -145 +KPX Y o -89 +KPX Y i -15 +KPX Y hyphen -105 +KPX Y e -89 +KPX Y comma -145 +KPX Y colon -10 +KPX Y a -93 +KPX Y O -40 +KPX Y A -80 + +KPX a t 5 +KPX a p 20 +KPX a b 5 + +KPX b y -20 +KPX b v -20 +KPX b u -10 + +KPX c y -20 +KPX c k -15 + +KPX comma space -70 +KPX comma quoteright -100 +KPX comma quotedblright -100 + +KPX e y -20 +KPX e w -20 +KPX e v -20 + +KPX f period -50 +KPX f o -20 +KPX f l -30 +KPX f i -30 +KPX f f -15 +KPX f dotlessi -30 +KPX f comma -50 +KPX f a -20 + +KPX g a -15 + +KPX h y -30 + +KPX k y -25 +KPX k o -45 +KPX k e -35 + +KPX l w -20 + +KPX m y -20 +KPX m u -20 + +KPX n y -15 +KPX n v -30 +KPX n u -15 + +KPX o y -20 +KPX o x -15 +KPX o w -20 +KPX o v -30 +KPX o period -25 +KPX o comma -25 + +KPX p y -20 +KPX p period -25 +KPX p comma -25 + +KPX period space -70 +KPX period quoteright -100 +KPX period quotedblright -100 + +KPX quotedblleft A -85 + +KPX quotedblright space -100 + +KPX quoteleft quoteleft -121 +KPX quoteleft A -85 + +KPX quoteright v -20 +KPX quoteright t 10 +KPX quoteright space -100 +KPX quoteright s -15 +KPX quoteright r -20 +KPX quoteright quoteright -121 +KPX quoteright d -70 + +KPX r y 40 +KPX r v 40 +KPX r u 20 +KPX r t 40 +KPX r s 20 +KPX r q -8 +KPX r period -73 +KPX r p 20 +KPX r o -20 +KPX r n 21 +KPX r m 28 +KPX r l 20 +KPX r k 20 +KPX r i 20 +KPX r hyphen -60 +KPX r g 1 +KPX r e -4 +KPX r d -6 +KPX r comma -75 +KPX r c -7 + +KPX s t 15 +KPX s period 20 +KPX s comma 20 + +KPX space quoteleft -100 +KPX space quotedblleft -100 +KPX space Y -60 +KPX space W -25 +KPX space V -80 +KPX space T -25 +KPX space A -20 + +KPX u z 15 + +KPX v period -90 +KPX v o -20 +KPX v e -20 +KPX v comma -90 +KPX v a -30 + +KPX w period -90 +KPX w o -30 +KPX w h 15 +KPX w e -20 +KPX w comma -90 +KPX w a -30 + +KPX x i 15 + +KPX y period -85 +KPX y o -30 +KPX y e -20 +KPX y comma -100 +KPX y a -30 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 95 161 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 95 161 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 95 161 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 95 161 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 93 151 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 96 166 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 14 166 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 14 166 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 14 166 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 14 166 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute -78 166 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -118 166 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -118 166 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -158 166 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 123 166 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 177 166 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 177 166 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 177 166 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 177 166 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 177 166 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 3 166 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 100 166 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 75 166 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 75 166 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 50 166 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 75 166 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 50 166 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 5 166 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 69 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 69 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 69 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 69 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 69 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 69 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 44 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 44 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 44 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 44 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -118 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -158 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -158 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -198 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 35 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 60 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 60 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 60 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 60 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 60 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron -65 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 60 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 35 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 35 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 10 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 35 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 10 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron -54 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-MdO+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-MdO+ new file mode 100755 index 0000000000000..aa8b908732b62 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/AG-MdO+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 782 ; N Ccaron ; B 101 -14 861 950 ; +C -1 ; WX 627 ; N ccaron ; B 84 -14 675 774 ; +C -1 ; WX 732 ; N Dcaron ; B 65 0 757 950 ; +C -1 ; WX 792 ; N dcaron ; B 84 -14 922 814 ; +C -1 ; WX 520 ; N Ecaron ; B 65 0 624 950 ; +C -1 ; WX 642 ; N ecaron ; B 86 -14 662 774 ; +C -1 ; WX 444 ; N Lcaron ; B 79 0 485 814 ; +C -1 ; WX 444 ; N Lacute ; B 79 0 546 1011 ; +C -1 ; WX 343 ; N lcaron ; B 67 0 473 814 ; +C -1 ; WX 238 ; N lacute ; B 67 0 471 1011 ; +C -1 ; WX 738 ; N Ncaron ; B 75 0 800 950 ; +C -1 ; WX 624 ; N ncaron ; B 66 0 644 774 ; +C -1 ; WX 594 ; N Rcaron ; B 65 0 660 950 ; +C -1 ; WX 594 ; N Racute ; B 65 0 672 1011 ; +C -1 ; WX 320 ; N rcaron ; B 67 0 493 774 ; +C -1 ; WX 320 ; N racute ; B 67 0 478 814 ; +C -1 ; WX 407 ; N Tcaron ; B 126 0 567 950 ; +C -1 ; WX 382 ; N tcaron ; B 79 0 542 740 ; +C -1 ; WX 643 ; N Uring ; B 112 -14 706 950 ; +C -1 ; WX 624 ; N uring ; B 104 -14 660 831 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 220 176 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 65 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 119 176 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 594 74 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 14 176 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 43 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 157 74 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute -21 197 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 145 74 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute -96 197 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 122 176 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 34 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 50 176 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 105 197 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron -117 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute -89 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron -43 176 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 214 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 64 119 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 34 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Bd b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Bd new file mode 100755 index 0000000000000..f79b0e3e58acf --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Bd @@ -0,0 +1,510 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu Jun 28 14:55:37 1990 +Comment UniqueID 31726 +Comment VMusage 31065 37957 +FontName Bookman-Bold +FullName ITC Bookman Bold +FamilyName ITC Bookman +Weight Bold +ItalicAngle 0 +IsFixedPitch false +FontBBox -169 -236 1221 968 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved.ITC Bookman is a trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 681 +XHeight 490 +Ascender 706 +Descender -226 +StartCharMetrics 228 +C 32 ; WX 362 ; N space ; B 0 0 0 0 ; +C 33 ; WX 388 ; N exclam ; B 71 -13 317 681 ; +C 34 ; WX 500 ; N quotedbl ; B 99 392 401 694 ; +C 35 ; WX 724 ; N numbersign ; B 113 0 611 674 ; +C 36 ; WX 724 ; N dollar ; B 71 -105 653 773 ; +C 37 ; WX 870 ; N percent ; B 32 -16 838 690 ; +C 38 ; WX 833 ; N ampersand ; B 30 -13 829 694 ; +C 39 ; WX 278 ; N quoteright ; B 47 392 231 694 ; +C 40 ; WX 332 ; N parenleft ; B 44 -214 270 688 ; +C 41 ; WX 332 ; N parenright ; B 62 -214 288 688 ; +C 42 ; WX 500 ; N asterisk ; B 55 254 445 694 ; +C 43 ; WX 600 ; N plus ; B 47 0 553 506 ; +C 44 ; WX 362 ; N comma ; B 64 -127 298 195 ; +C 45 ; WX 388 ; N hyphen ; B 31 185 357 343 ; +C 46 ; WX 362 ; N period ; B 64 -13 298 195 ; +C 47 ; WX 278 ; N slash ; B -21 -13 299 694 ; +C 48 ; WX 724 ; N zero ; B 33 -16 691 690 ; +C 49 ; WX 724 ; N one ; B 144 0 603 674 ; +C 50 ; WX 724 ; N two ; B 37 0 678 690 ; +C 51 ; WX 724 ; N three ; B 26 -16 683 690 ; +C 52 ; WX 724 ; N four ; B 29 0 695 674 ; +C 53 ; WX 724 ; N five ; B 38 -16 671 712 ; +C 54 ; WX 724 ; N six ; B 35 -16 689 690 ; +C 55 ; WX 724 ; N seven ; B 64 0 686 674 ; +C 56 ; WX 724 ; N eight ; B 42 -16 682 690 ; +C 57 ; WX 724 ; N nine ; B 35 -16 689 690 ; +C 58 ; WX 362 ; N colon ; B 64 -13 298 503 ; +C 59 ; WX 362 ; N semicolon ; B 64 -127 298 503 ; +C 60 ; WX 600 ; N less ; B 47 -8 553 514 ; +C 61 ; WX 600 ; N equal ; B 47 76 553 430 ; +C 62 ; WX 600 ; N greater ; B 47 -8 553 514 ; +C 63 ; WX 667 ; N question ; B 39 -13 619 694 ; +C 64 ; WX 800 ; N at ; B 47 -13 753 694 ; +C 65 ; WX 778 ; N A ; B -10 0 788 681 ; +C 66 ; WX 778 ; N B ; B 20 0 741 681 ; +C 67 ; WX 724 ; N C ; B 36 -13 711 694 ; +C 68 ; WX 833 ; N D ; B 29 0 797 681 ; +C 69 ; WX 778 ; N E ; B 20 0 764 681 ; +C 70 ; WX 724 ; N F ; B 20 0 721 681 ; +C 71 ; WX 833 ; N G ; B 36 -13 810 694 ; +C 72 ; WX 833 ; N H ; B 20 0 813 681 ; +C 73 ; WX 444 ; N I ; B 36 0 408 681 ; +C 74 ; WX 667 ; N J ; B 2 -13 647 681 ; +C 75 ; WX 833 ; N K ; B 20 0 829 681 ; +C 76 ; WX 724 ; N L ; B 20 0 708 681 ; +C 77 ; WX 944 ; N M ; B 24 0 920 681 ; +C 78 ; WX 778 ; N N ; B 20 0 758 681 ; +C 79 ; WX 833 ; N O ; B 36 -13 797 694 ; +C 80 ; WX 724 ; N P ; B 20 0 704 681 ; +C 81 ; WX 833 ; N Q ; B 36 -226 797 694 ; +C 82 ; WX 778 ; N R ; B 20 0 772 681 ; +C 83 ; WX 724 ; N S ; B 34 -13 690 694 ; +C 84 ; WX 778 ; N T ; B 6 0 772 681 ; +C 85 ; WX 778 ; N U ; B 17 -13 761 681 ; +C 86 ; WX 724 ; N V ; B -7 -6 731 681 ; +C 87 ; WX 944 ; N W ; B -7 -6 951 681 ; +C 88 ; WX 778 ; N X ; B 2 0 776 681 ; +C 89 ; WX 724 ; N Y ; B 0 0 734 681 ; +C 90 ; WX 724 ; N Z ; B 20 0 704 681 ; +C 91 ; WX 332 ; N bracketleft ; B 61 -207 271 681 ; +C 92 ; WX 278 ; N backslash ; B -21 -13 299 694 ; +C 93 ; WX 332 ; N bracketright ; B 61 -207 271 681 ; +C 94 ; WX 600 ; N asciicircum ; B 43 309 557 674 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 278 ; N quoteleft ; B 47 392 231 694 ; +C 97 ; WX 612 ; N a ; B 28 -13 629 503 ; +C 98 ; WX 667 ; N b ; B 13 -13 639 706 ; +C 99 ; WX 556 ; N c ; B 28 -13 542 503 ; +C 100 ; WX 667 ; N d ; B 28 -13 654 706 ; +C 101 ; WX 556 ; N e ; B 28 -13 528 503 ; +C 102 ; WX 388 ; N f ; B 18 0 445 714 ; L i fi ; L l fl ; +C 103 ; WX 612 ; N g ; B 20 -236 616 600 ; +C 104 ; WX 667 ; N h ; B 18 0 649 706 ; +C 105 ; WX 388 ; N i ; B 34 0 354 706 ; +C 106 ; WX 332 ; N j ; B -127 -226 280 706 ; +C 107 ; WX 667 ; N k ; B 6 0 661 706 ; +C 108 ; WX 332 ; N l ; B 6 0 326 706 ; +C 109 ; WX 944 ; N m ; B 18 0 926 503 ; +C 110 ; WX 667 ; N n ; B 18 0 649 503 ; +C 111 ; WX 612 ; N o ; B 28 -13 584 503 ; +C 112 ; WX 667 ; N p ; B 13 -226 639 503 ; +C 113 ; WX 667 ; N q ; B 28 -226 654 503 ; +C 114 ; WX 500 ; N r ; B 18 0 501 503 ; +C 115 ; WX 556 ; N s ; B 30 -13 526 503 ; +C 116 ; WX 444 ; N t ; B -4 -13 454 637 ; +C 117 ; WX 667 ; N u ; B 18 -13 649 490 ; +C 118 ; WX 556 ; N v ; B -2 0 558 490 ; +C 119 ; WX 778 ; N w ; B 5 0 773 490 ; +C 120 ; WX 612 ; N x ; B 3 0 609 490 ; +C 121 ; WX 556 ; N y ; B -15 -226 562 490 ; +C 122 ; WX 612 ; N z ; B 32 0 580 490 ; +C 123 ; WX 332 ; N braceleft ; B 31 -207 301 681 ; +C 124 ; WX 222 ; N bar ; B 41 -13 181 694 ; +C 125 ; WX 332 ; N braceright ; B 31 -207 301 681 ; +C 126 ; WX 600 ; N asciitilde ; B 69 148 531 358 ; +C 161 ; WX 388 ; N exclamdown ; B 71 -191 317 503 ; +C 162 ; WX 724 ; N cent ; B 111 -37 625 699 ; +C 163 ; WX 724 ; N sterling ; B 16 -16 689 690 ; +C 164 ; WX 167 ; N fraction ; B -169 -16 336 690 ; +C 165 ; WX 724 ; N yen ; B 25 0 711 674 ; +C 166 ; WX 724 ; N florin ; B 4 -236 701 690 ; +C 167 ; WX 722 ; N section ; B 146 -13 576 694 ; +C 168 ; WX 724 ; N currency ; B 81 58 643 616 ; +C 169 ; WX 278 ; N quotesingle ; B 78 392 200 694 ; +C 170 ; WX 500 ; N quotedblleft ; B 30 392 470 694 ; +C 171 ; WX 556 ; N guillemotleft ; B 42 70 500 458 ; +C 172 ; WX 332 ; N guilsinglleft ; B 36 70 288 458 ; +C 173 ; WX 332 ; N guilsinglright ; B 44 70 296 458 ; +C 174 ; WX 724 ; N fi ; B 18 0 690 714 ; +C 175 ; WX 724 ; N fl ; B 18 0 690 714 ; +C 177 ; WX 500 ; N endash ; B 0 191 500 337 ; +C 178 ; WX 722 ; N dagger ; B 151 -13 571 694 ; +C 179 ; WX 722 ; N daggerdbl ; B 165 -13 557 694 ; +C 180 ; WX 362 ; N periodcentered ; B 73 151 289 367 ; +C 182 ; WX 620 ; N paragraph ; B 38 0 567 681 ; +C 183 ; WX 500 ; N bullet ; B 80 170 420 510 ; +C 184 ; WX 278 ; N quotesinglbase ; B 47 -126 231 176 ; +C 185 ; WX 500 ; N quotedblbase ; B 30 -126 470 176 ; +C 186 ; WX 500 ; N quotedblright ; B 30 392 470 694 ; +C 187 ; WX 556 ; N guillemotright ; B 56 70 514 458 ; +C 188 ; WX 1000 ; N ellipsis ; B 50 -13 950 195 ; +C 189 ; WX 1167 ; N perthousand ; B 0 -16 1221 690 ; +C 191 ; WX 667 ; N questiondown ; B 48 -203 628 503 ; +C 193 ; WX 332 ; N grave ; B -1 556 251 754 ; +C 194 ; WX 332 ; N acute ; B 81 556 333 754 ; +C 195 ; WX 332 ; N circumflex ; B -21 556 353 740 ; +C 196 ; WX 332 ; N tilde ; B -33 576 365 728 ; +C 197 ; WX 332 ; N macron ; B -10 594 342 686 ; +C 198 ; WX 332 ; N breve ; B 4 556 328 726 ; +C 199 ; WX 332 ; N dotaccent ; B 87 562 245 720 ; +C 200 ; WX 332 ; N dieresis ; B -23 562 355 720 ; +C 202 ; WX 332 ; N ring ; B 44 548 288 792 ; +C 203 ; WX 332 ; N cedilla ; B 43 -226 289 0 ; +C 205 ; WX 332 ; N hungarumlaut ; B -30 558 442 756 ; +C 206 ; WX 332 ; N ogonek ; B 83 -226 327 0 ; +C 207 ; WX 332 ; N caron ; B -21 556 353 740 ; +C 208 ; WX 1000 ; N emdash ; B 0 191 1000 337 ; +C 225 ; WX 1000 ; N AE ; B -30 0 986 681 ; +C 227 ; WX 398 ; N ordfeminine ; B 8 378 420 690 ; +C 232 ; WX 724 ; N Lslash ; B 20 0 708 681 ; +C 233 ; WX 833 ; N Oslash ; B 36 -75 797 756 ; +C 234 ; WX 1000 ; N OE ; B 10 -13 1009 694 ; +C 235 ; WX 398 ; N ordmasculine ; B 8 378 390 690 ; +C 241 ; WX 889 ; N ae ; B 31 -13 858 503 ; +C 245 ; WX 388 ; N dotlessi ; B 34 0 354 490 ; +C 248 ; WX 332 ; N lslash ; B 6 0 326 706 ; +C 249 ; WX 612 ; N oslash ; B 28 -111 584 601 ; +C 250 ; WX 944 ; N oe ; B 31 -13 913 503 ; +C 251 ; WX 667 ; N germandbls ; B 8 -13 639 690 ; +C -1 ; WX 724 ; N Zcaron ; B 20 0 704 911 ; +C -1 ; WX 556 ; N ccedilla ; B 28 -226 542 503 ; +C -1 ; WX 556 ; N ydieresis ; B -15 -226 562 720 ; +C -1 ; WX 612 ; N atilde ; B 28 -13 629 728 ; +C -1 ; WX 388 ; N icircumflex ; B 7 0 381 740 ; +C -1 ; WX 481 ; N threesuperior ; B 15 268 466 690 ; +C -1 ; WX 556 ; N ecircumflex ; B 28 -13 528 740 ; +C -1 ; WX 667 ; N thorn ; B 13 -226 639 706 ; +C -1 ; WX 556 ; N egrave ; B 28 -13 528 754 ; +C -1 ; WX 481 ; N twosuperior ; B 21 274 460 690 ; +C -1 ; WX 556 ; N eacute ; B 28 -13 528 754 ; +C -1 ; WX 612 ; N otilde ; B 28 -13 584 728 ; +C -1 ; WX 778 ; N Aacute ; B -10 0 788 925 ; +C -1 ; WX 612 ; N ocircumflex ; B 28 -13 584 740 ; +C -1 ; WX 556 ; N yacute ; B -15 -226 562 754 ; +C -1 ; WX 667 ; N udieresis ; B 18 -13 649 720 ; +C -1 ; WX 1083 ; N threequarters ; B 29 -16 1080 690 ; +C -1 ; WX 612 ; N acircumflex ; B 28 -13 629 740 ; +C -1 ; WX 833 ; N Eth ; B 29 0 797 681 ; +C -1 ; WX 556 ; N edieresis ; B 28 -13 528 720 ; +C -1 ; WX 667 ; N ugrave ; B 18 -13 649 754 ; +C -1 ; WX 1000 ; N trademark ; B -6 281 986 681 ; +C -1 ; WX 612 ; N ograve ; B 28 -13 584 754 ; +C -1 ; WX 556 ; N scaron ; B 30 -13 526 740 ; +C -1 ; WX 444 ; N Idieresis ; B 33 0 411 891 ; +C -1 ; WX 667 ; N uacute ; B 18 -13 649 754 ; +C -1 ; WX 612 ; N agrave ; B 28 -13 629 754 ; +C -1 ; WX 667 ; N ntilde ; B 18 0 649 728 ; +C -1 ; WX 612 ; N aring ; B 28 -13 629 792 ; +C -1 ; WX 612 ; N zcaron ; B 32 0 580 740 ; +C -1 ; WX 444 ; N Icircumflex ; B 35 0 409 911 ; +C -1 ; WX 778 ; N Ntilde ; B 20 0 758 899 ; +C -1 ; WX 667 ; N ucircumflex ; B 18 -13 649 740 ; +C -1 ; WX 778 ; N Ecircumflex ; B 20 0 764 911 ; +C -1 ; WX 444 ; N Iacute ; B 36 0 408 925 ; +C -1 ; WX 724 ; N Ccedilla ; B 36 -226 711 694 ; +C -1 ; WX 833 ; N Odieresis ; B 36 -13 797 891 ; +C -1 ; WX 724 ; N Scaron ; B 34 -13 690 911 ; +C -1 ; WX 778 ; N Edieresis ; B 20 0 764 891 ; +C -1 ; WX 444 ; N Igrave ; B 36 0 408 925 ; +C -1 ; WX 612 ; N adieresis ; B 28 -13 629 720 ; +C -1 ; WX 833 ; N Ograve ; B 36 -13 797 925 ; +C -1 ; WX 778 ; N Egrave ; B 20 0 764 925 ; +C -1 ; WX 724 ; N Ydieresis ; B 0 0 734 891 ; +C -1 ; WX 800 ; N registered ; B 47 -13 753 694 ; +C -1 ; WX 833 ; N Otilde ; B 36 -13 797 899 ; +C -1 ; WX 1083 ; N onequarter ; B 88 -16 1060 690 ; +C -1 ; WX 778 ; N Ugrave ; B 17 -13 761 925 ; +C -1 ; WX 778 ; N Ucircumflex ; B 17 -13 761 911 ; +C -1 ; WX 724 ; N Thorn ; B 20 0 704 681 ; +C -1 ; WX 600 ; N divide ; B 47 -62 553 568 ; +C -1 ; WX 778 ; N Atilde ; B -10 0 788 899 ; +C -1 ; WX 778 ; N Uacute ; B 17 -13 761 925 ; +C -1 ; WX 833 ; N Ocircumflex ; B 36 -13 797 911 ; +C -1 ; WX 600 ; N logicalnot ; B 47 102 553 430 ; +C -1 ; WX 778 ; N Aring ; B -10 0 788 968 ; +C -1 ; WX 388 ; N idieresis ; B 5 0 383 720 ; +C -1 ; WX 388 ; N iacute ; B 34 0 361 754 ; +C -1 ; WX 612 ; N aacute ; B 28 -13 629 754 ; +C -1 ; WX 600 ; N plusminus ; B 47 0 553 506 ; +C -1 ; WX 600 ; N multiply ; B 57 10 543 496 ; +C -1 ; WX 778 ; N Udieresis ; B 17 -13 761 891 ; +C -1 ; WX 600 ; N minus ; B 47 183 553 323 ; +C -1 ; WX 481 ; N onesuperior ; B 93 274 405 684 ; +C -1 ; WX 778 ; N Eacute ; B 20 0 764 925 ; +C -1 ; WX 778 ; N Acircumflex ; B -10 0 788 911 ; +C -1 ; WX 800 ; N copyright ; B 47 -13 753 694 ; +C -1 ; WX 778 ; N Agrave ; B -10 0 788 925 ; +C -1 ; WX 612 ; N odieresis ; B 28 -13 584 720 ; +C -1 ; WX 612 ; N oacute ; B 28 -13 584 754 ; +C -1 ; WX 400 ; N degree ; B 47 384 353 690 ; +C -1 ; WX 388 ; N igrave ; B 27 0 354 754 ; +C -1 ; WX 667 ; N mu ; B 18 -226 649 490 ; +C -1 ; WX 833 ; N Oacute ; B 36 -13 797 925 ; +C -1 ; WX 612 ; N eth ; B 28 -13 584 754 ; +C -1 ; WX 778 ; N Adieresis ; B -10 0 788 891 ; +C -1 ; WX 724 ; N Yacute ; B 0 0 734 925 ; +C -1 ; WX 222 ; N brokenbar ; B 41 -13 181 694 ; +C -1 ; WX 1083 ; N onehalf ; B 48 -16 1048 690 ; +EndCharMetrics +StartKernData +StartKernPairs 162 + +KPX A y -37 +KPX A w -27 +KPX A v -37 +KPX A quoteright -92 +KPX A quotedblright -92 +KPX A Y -74 +KPX A W -55 +KPX A V -90 +KPX A U -37 +KPX A T -74 +KPX A Q -18 +KPX A O -18 +KPX A G -18 +KPX A C -18 + +KPX B period -50 +KPX B comma -50 +KPX B U -18 +KPX B A -18 + +KPX D period -70 +KPX D comma -70 +KPX D Y -70 +KPX D W -37 +KPX D V -37 +KPX D A -30 + +KPX F r -30 +KPX F period -129 +KPX F o -70 +KPX F i -25 +KPX F e -70 +KPX F comma -129 +KPX F a -70 +KPX F A -120 + +KPX G period -55 +KPX G comma -55 + +KPX J u -18 +KPX J period -74 +KPX J o -18 +KPX J e -18 +KPX J comma -18 +KPX J a -18 +KPX J A -55 + +KPX K y -40 +KPX K u -30 +KPX K o -18 +KPX K e -18 +KPX K O -37 + +KPX L y -37 +KPX L quoteright -100 +KPX L quotedblright -74 +KPX L Y -120 +KPX L W -100 +KPX L V -120 +KPX L T -129 + +KPX N period -70 +KPX N comma -70 +KPX N A -18 + +KPX O period -70 +KPX O comma -70 +KPX O Y -37 +KPX O X -37 +KPX O W -18 +KPX O V -37 +KPX O T -37 +KPX O A -37 + +KPX P period -129 +KPX P o -55 +KPX P e -55 +KPX P comma -129 +KPX P a -55 +KPX P A -74 + +KPX Q period -18 +KPX Q comma -18 + +KPX R Y -18 +KPX R W -18 +KPX R V -18 +KPX R T -18 +KPX R O -18 + +KPX S period -62 +KPX S comma -62 + +KPX T y -55 +KPX T w -55 +KPX T u -55 +KPX T semicolon -60 +KPX T r -55 +KPX T period -111 +KPX T o -74 +KPX T i -37 +KPX T hyphen -92 +KPX T e -74 +KPX T comma -111 +KPX T colon -60 +KPX T a -74 +KPX T O -37 +KPX T A -55 + +KPX U period -75 +KPX U comma -75 + +KPX V u -37 +KPX V semicolon -74 +KPX V period -129 +KPX V o -55 +KPX V i -18 +KPX V hyphen -74 +KPX V e -55 +KPX V comma -129 +KPX V colon -74 +KPX V a -55 +KPX V A -55 + +KPX W u -18 +KPX W semicolon -55 +KPX W period -111 +KPX W o -37 +KPX W hyphen -55 +KPX W e -37 +KPX W comma -111 +KPX W colon -55 +KPX W a -37 +KPX W A -37 + +KPX Y u -37 +KPX Y semicolon -55 +KPX Y period -92 +KPX Y o -55 +KPX Y i -18 +KPX Y hyphen -55 +KPX Y e -55 +KPX Y comma -92 +KPX Y colon -55 +KPX Y a -55 +KPX Y O -18 +KPX Y A -74 + +KPX comma quoteright -55 +KPX comma quotedblright -55 + +KPX e period -55 +KPX e comma -55 + +KPX f quoteright 37 +KPX f quotedblright 45 +KPX f period -37 +KPX f comma -37 + +KPX g period -37 +KPX g comma -37 + +KPX period quoteright -55 +KPX period quotedblright -55 + +KPX quotedblleft A -37 + +KPX quoteleft quoteleft -22 +KPX quoteleft A -37 + +KPX quoteright s -37 +KPX quoteright quoteright -22 +KPX quoteright d -55 + +KPX r period -92 +KPX r hyphen -37 +KPX r comma -92 + +KPX space quotedblleft -37 +KPX space Y -37 +KPX space W -37 +KPX space V -37 +KPX space T -37 +KPX space A -37 + +KPX v period -74 +KPX v comma -74 + +KPX w period -55 +KPX w comma -55 + +KPX y period -74 +KPX y comma -74 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 223 171 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 223 171 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 223 171 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 223 171 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 223 176 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 223 171 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 196 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 223 171 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 223 171 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 223 171 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 223 171 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 56 171 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 56 171 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 56 171 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 56 171 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 223 171 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 251 171 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 251 171 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 251 171 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 251 171 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 251 171 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 196 171 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 223 171 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 223 171 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 223 171 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 223 171 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 196 171 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 216 171 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 196 171 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 140 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 140 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 140 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 140 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 140 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 140 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 112 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 112 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 112 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 112 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 112 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 28 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 28 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 28 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 28 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 168 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 140 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 140 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 140 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 140 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 140 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 112 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 168 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 168 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 168 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 168 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 112 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 132 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 140 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Bd+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Bd+ new file mode 100755 index 0000000000000..09d098428edf7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Bd+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 724 ; N Ccaron ; B 36 -13 711 927 ; +C -1 ; WX 556 ; N ccaron ; B 28 -13 542 740 ; +C -1 ; WX 833 ; N Dcaron ; B 29 0 797 927 ; +C -1 ; WX 796 ; N dcaron ; B 28 -13 856 777 ; +C -1 ; WX 778 ; N Ecaron ; B 20 0 764 927 ; +C -1 ; WX 556 ; N ecaron ; B 28 -13 528 740 ; +C -1 ; WX 724 ; N Lcaron ; B 20 0 708 749 ; +C -1 ; WX 724 ; N Lacute ; B 20 0 708 941 ; +C -1 ; WX 461 ; N lcaron ; B 6 0 528 777 ; +C -1 ; WX 332 ; N lacute ; B 6 0 358 941 ; +C -1 ; WX 778 ; N Ncaron ; B 20 0 758 927 ; +C -1 ; WX 667 ; N ncaron ; B 18 0 649 740 ; +C -1 ; WX 778 ; N Rcaron ; B 20 0 772 927 ; +C -1 ; WX 778 ; N Racute ; B 20 0 772 941 ; +C -1 ; WX 500 ; N rcaron ; B 18 0 501 740 ; +C -1 ; WX 500 ; N racute ; B 18 0 501 754 ; +C -1 ; WX 778 ; N Tcaron ; B 6 0 772 927 ; +C -1 ; WX 573 ; N tcaron ; B -4 -13 656 694 ; +C -1 ; WX 778 ; N Uring ; B 17 -13 761 927 ; +C -1 ; WX 667 ; N uring ; B 18 -13 649 792 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 264 187 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 138 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 250 187 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 625 83 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 223 187 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 112 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 379 55 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 196 187 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 297 83 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 25 187 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 223 187 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 167 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 223 187 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 271 187 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 84 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 109 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 223 187 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 425 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 223 135 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 167 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-BdIt b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-BdIt new file mode 100755 index 0000000000000..0c1c53d44d201 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-BdIt @@ -0,0 +1,509 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu Jun 28 15:13:31 1990 +Comment UniqueID 31732 +Comment VMusage 30421 37313 +FontName Bookman-BoldItalic +FullName ITC Bookman Bold Italic +FamilyName ITC Bookman +Weight Bold +ItalicAngle -12 +IsFixedPitch false +FontBBox -254 -236 1186 950 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved.ITC Bookman is a trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 681 +XHeight 503 +Ascender 706 +Descender -226 +StartCharMetrics 228 +C 32 ; WX 362 ; N space ; B 0 0 0 0 ; +C 33 ; WX 444 ; N exclam ; B 77 -13 413 694 ; +C 34 ; WX 556 ; N quotedbl ; B 165 371 496 694 ; +C 35 ; WX 724 ; N numbersign ; B 127 0 657 674 ; +C 36 ; WX 724 ; N dollar ; B 64 -98 674 778 ; +C 37 ; WX 870 ; N percent ; B 50 -16 851 690 ; +C 38 ; WX 944 ; N ampersand ; B 23 -13 954 694 ; +C 39 ; WX 278 ; N quoteright ; B 98 371 314 694 ; +C 40 ; WX 389 ; N parenleft ; B 67 -235 440 697 ; +C 41 ; WX 389 ; N parenright ; B -41 -235 332 697 ; +C 42 ; WX 500 ; N asterisk ; B 97 254 495 694 ; +C 43 ; WX 600 ; N plus ; B 72 0 578 506 ; +C 44 ; WX 362 ; N comma ; B 79 -116 295 207 ; +C 45 ; WX 333 ; N hyphen ; B 22 191 333 337 ; +C 46 ; WX 362 ; N period ; B 73 -13 295 207 ; +C 47 ; WX 278 ; N slash ; B -4 -13 335 694 ; +C 48 ; WX 724 ; N zero ; B 55 -16 724 690 ; +C 49 ; WX 724 ; N one ; B 106 0 587 674 ; +C 50 ; WX 724 ; N two ; B 66 0 687 690 ; +C 51 ; WX 724 ; N three ; B 52 -16 681 690 ; +C 52 ; WX 724 ; N four ; B 37 0 722 674 ; +C 53 ; WX 724 ; N five ; B 78 -16 671 674 ; +C 54 ; WX 724 ; N six ; B 77 -16 706 690 ; +C 55 ; WX 724 ; N seven ; B 76 0 725 674 ; +C 56 ; WX 724 ; N eight ; B 65 -16 684 690 ; +C 57 ; WX 724 ; N nine ; B 59 -16 706 690 ; +C 58 ; WX 362 ; N colon ; B 73 -13 336 503 ; +C 59 ; WX 362 ; N semicolon ; B 79 -116 336 503 ; +C 60 ; WX 600 ; N less ; B 72 -8 578 514 ; +C 61 ; WX 600 ; N equal ; B 72 76 578 430 ; +C 62 ; WX 600 ; N greater ; B 72 -8 578 514 ; +C 63 ; WX 667 ; N question ; B 74 -13 662 694 ; +C 64 ; WX 800 ; N at ; B 77 -13 783 694 ; +C 65 ; WX 778 ; N A ; B -34 0 770 681 ; +C 66 ; WX 778 ; N B ; B 12 0 785 681 ; +C 67 ; WX 778 ; N C ; B 56 -13 751 694 ; +C 68 ; WX 833 ; N D ; B -5 0 833 681 ; +C 69 ; WX 778 ; N E ; B -5 0 791 681 ; +C 70 ; WX 722 ; N F ; B -5 0 761 681 ; +C 71 ; WX 833 ; N G ; B 56 -13 849 694 ; +C 72 ; WX 833 ; N H ; B -5 0 885 681 ; +C 73 ; WX 444 ; N I ; B 3 0 488 681 ; +C 74 ; WX 667 ; N J ; B 32 -13 732 681 ; +C 75 ; WX 833 ; N K ; B -5 0 855 681 ; +C 76 ; WX 667 ; N L ; B -5 0 698 681 ; +C 77 ; WX 889 ; N M ; B -9 0 946 681 ; +C 78 ; WX 778 ; N N ; B -5 0 829 681 ; +C 79 ; WX 833 ; N O ; B 56 -13 833 694 ; +C 80 ; WX 722 ; N P ; B -5 0 743 681 ; +C 81 ; WX 833 ; N Q ; B -43 -226 833 694 ; +C 82 ; WX 778 ; N R ; B -5 0 773 681 ; +C 83 ; WX 722 ; N S ; B 40 -13 705 694 ; +C 84 ; WX 722 ; N T ; B 52 0 764 681 ; +C 85 ; WX 722 ; N U ; B 76 -13 806 681 ; +C 86 ; WX 722 ; N V ; B 60 -6 812 681 ; +C 87 ; WX 944 ; N W ; B 70 -6 1023 681 ; +C 88 ; WX 722 ; N X ; B -36 0 782 681 ; +C 89 ; WX 722 ; N Y ; B 72 0 801 681 ; +C 90 ; WX 722 ; N Z ; B 0 0 740 681 ; +C 91 ; WX 389 ; N bracketleft ; B 37 -219 382 681 ; +C 92 ; WX 278 ; N backslash ; B -4 -13 335 694 ; +C 93 ; WX 389 ; N bracketright ; B 22 -219 367 681 ; +C 94 ; WX 600 ; N asciicircum ; B 76 309 590 674 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 278 ; N quoteleft ; B 81 371 297 694 ; +C 97 ; WX 722 ; N a ; B 46 -13 737 503 ; +C 98 ; WX 667 ; N b ; B 38 -13 655 706 ; +C 99 ; WX 611 ; N c ; B 33 -13 600 503 ; +C 100 ; WX 722 ; N d ; B 33 -13 725 706 ; +C 101 ; WX 611 ; N e ; B 33 -13 606 503 ; +C 102 ; WX 389 ; N f ; B -254 -236 556 714 ; L i fi ; L l fl ; +C 103 ; WX 667 ; N g ; B -34 -236 667 503 ; +C 104 ; WX 722 ; N h ; B 53 -13 749 706 ; +C 105 ; WX 389 ; N i ; B 51 -13 425 706 ; +C 106 ; WX 389 ; N j ; B -197 -226 381 706 ; +C 107 ; WX 722 ; N k ; B 38 -13 734 706 ; +C 108 ; WX 389 ; N l ; B 64 -13 416 706 ; +C 109 ; WX 944 ; N m ; B 53 -13 963 503 ; +C 110 ; WX 722 ; N n ; B 53 -13 749 503 ; +C 111 ; WX 667 ; N o ; B 33 -13 647 503 ; +C 112 ; WX 667 ; N p ; B -52 -226 655 503 ; +C 113 ; WX 667 ; N q ; B 33 -226 632 503 ; +C 114 ; WX 500 ; N r ; B 49 0 562 503 ; +C 115 ; WX 611 ; N s ; B 10 -13 575 503 ; +C 116 ; WX 444 ; N t ; B 54 -13 461 637 ; +C 117 ; WX 722 ; N u ; B 69 -13 741 490 ; +C 118 ; WX 611 ; N v ; B 53 -13 592 503 ; +C 119 ; WX 889 ; N w ; B 53 -13 875 503 ; +C 120 ; WX 611 ; N x ; B -33 -13 637 503 ; +C 121 ; WX 667 ; N y ; B 5 -226 652 503 ; +C 122 ; WX 611 ; N z ; B 29 -13 596 503 ; +C 123 ; WX 389 ; N braceleft ; B 52 -219 419 681 ; +C 124 ; WX 222 ; N bar ; B 67 -13 207 694 ; +C 125 ; WX 389 ; N braceright ; B -14 -219 353 681 ; +C 126 ; WX 600 ; N asciitilde ; B 94 148 556 358 ; +C 161 ; WX 444 ; N exclamdown ; B 41 -204 377 503 ; +C 162 ; WX 724 ; N cent ; B 113 -36 680 699 ; +C 163 ; WX 724 ; N sterling ; B -26 -16 761 690 ; +C 164 ; WX 167 ; N fraction ; B -137 -16 368 690 ; +C 165 ; WX 724 ; N yen ; B 93 0 780 674 ; +C 166 ; WX 724 ; N florin ; B -24 -236 739 690 ; +C 167 ; WX 611 ; N section ; B 85 -13 551 694 ; +C 168 ; WX 724 ; N currency ; B 111 58 673 616 ; +C 169 ; WX 278 ; N quotesingle ; B 134 371 262 694 ; +C 170 ; WX 556 ; N quotedblleft ; B 89 371 587 694 ; +C 171 ; WX 556 ; N guillemotleft ; B 37 74 527 454 ; +C 172 ; WX 333 ; N guilsinglleft ; B 41 74 323 454 ; +C 173 ; WX 333 ; N guilsinglright ; B 23 74 305 454 ; +C 174 ; WX 667 ; N fi ; B -225 -236 703 714 ; +C 175 ; WX 667 ; N fl ; B -225 -236 703 714 ; +C 177 ; WX 500 ; N endash ; B -2 197 526 331 ; +C 178 ; WX 611 ; N dagger ; B 137 -13 553 694 ; +C 179 ; WX 611 ; N daggerdbl ; B 111 -13 539 694 ; +C 180 ; WX 362 ; N periodcentered ; B 76 151 292 367 ; +C 182 ; WX 620 ; N paragraph ; B 65 0 647 681 ; +C 183 ; WX 500 ; N bullet ; B 105 170 445 510 ; +C 184 ; WX 278 ; N quotesinglbase ; B 13 -116 229 207 ; +C 185 ; WX 556 ; N quotedblbase ; B 35 -116 530 207 ; +C 186 ; WX 556 ; N quotedblright ; B 86 371 584 694 ; +C 187 ; WX 556 ; N guillemotright ; B 52 74 535 454 ; +C 188 ; WX 1000 ; N ellipsis ; B 73 -13 961 207 ; +C 189 ; WX 1167 ; N perthousand ; B 33 -16 1186 690 ; +C 191 ; WX 667 ; N questiondown ; B 15 -204 603 503 ; +C 193 ; WX 333 ; N grave ; B 103 560 335 750 ; +C 194 ; WX 333 ; N acute ; B 150 560 409 750 ; +C 195 ; WX 333 ; N circumflex ; B 51 560 410 736 ; +C 196 ; WX 333 ; N tilde ; B 55 580 444 714 ; +C 197 ; WX 333 ; N macron ; B 60 604 431 690 ; +C 198 ; WX 333 ; N breve ; B 94 560 425 727 ; +C 199 ; WX 333 ; N dotaccent ; B 160 560 324 724 ; +C 200 ; WX 333 ; N dieresis ; B 56 560 435 724 ; +C 202 ; WX 333 ; N ring ; B 127 560 349 782 ; +C 203 ; WX 333 ; N cedilla ; B 11 -226 269 2 ; +C 205 ; WX 333 ; N hungarumlaut ; B 45 560 514 750 ; +C 206 ; WX 333 ; N ogonek ; B 55 -226 299 0 ; +C 207 ; WX 333 ; N caron ; B 87 560 442 736 ; +C 208 ; WX 1000 ; N emdash ; B -2 197 1026 331 ; +C 225 ; WX 1074 ; N AE ; B -61 0 1087 681 ; +C 227 ; WX 469 ; N ordfeminine ; B 74 378 523 690 ; +C 232 ; WX 667 ; N Lslash ; B -5 0 698 681 ; +C 233 ; WX 833 ; N Oslash ; B 51 -84 838 758 ; +C 234 ; WX 1130 ; N OE ; B 67 -13 1143 694 ; +C 235 ; WX 434 ; N ordmasculine ; B 74 378 473 690 ; +C 241 ; WX 889 ; N ae ; B 27 -13 892 503 ; +C 245 ; WX 389 ; N dotlessi ; B 51 -13 425 490 ; +C 248 ; WX 389 ; N lslash ; B 27 -13 419 706 ; +C 249 ; WX 667 ; N oslash ; B 33 -128 647 604 ; +C 250 ; WX 944 ; N oe ; B 33 -13 947 503 ; +C 251 ; WX 722 ; N germandbls ; B -225 -236 702 714 ; +C -1 ; WX 722 ; N Zcaron ; B 0 0 740 904 ; +C -1 ; WX 611 ; N ccedilla ; B 33 -226 600 503 ; +C -1 ; WX 667 ; N ydieresis ; B 5 -226 652 724 ; +C -1 ; WX 722 ; N atilde ; B 46 -13 737 714 ; +C -1 ; WX 389 ; N icircumflex ; B 51 -13 438 736 ; +C -1 ; WX 471 ; N threesuperior ; B 64 268 472 690 ; +C -1 ; WX 611 ; N ecircumflex ; B 33 -13 606 736 ; +C -1 ; WX 667 ; N thorn ; B -52 -226 655 706 ; +C -1 ; WX 611 ; N egrave ; B 33 -13 606 750 ; +C -1 ; WX 471 ; N twosuperior ; B 64 274 468 690 ; +C -1 ; WX 611 ; N eacute ; B 33 -13 606 750 ; +C -1 ; WX 667 ; N otilde ; B 33 -13 647 714 ; +C -1 ; WX 778 ; N Aacute ; B -34 0 770 918 ; +C -1 ; WX 667 ; N ocircumflex ; B 33 -13 647 736 ; +C -1 ; WX 667 ; N yacute ; B 5 -226 652 750 ; +C -1 ; WX 722 ; N udieresis ; B 69 -13 741 724 ; +C -1 ; WX 1083 ; N threequarters ; B 104 -16 1047 690 ; +C -1 ; WX 722 ; N acircumflex ; B 46 -13 737 736 ; +C -1 ; WX 833 ; N Eth ; B -5 0 833 681 ; +C -1 ; WX 611 ; N edieresis ; B 33 -13 606 724 ; +C -1 ; WX 722 ; N ugrave ; B 69 -13 741 750 ; +C -1 ; WX 1000 ; N trademark ; B 61 281 1053 681 ; +C -1 ; WX 667 ; N ograve ; B 33 -13 647 750 ; +C -1 ; WX 611 ; N scaron ; B 10 -13 581 736 ; +C -1 ; WX 444 ; N Idieresis ; B 3 0 511 892 ; +C -1 ; WX 722 ; N uacute ; B 69 -13 741 750 ; +C -1 ; WX 722 ; N agrave ; B 46 -13 737 750 ; +C -1 ; WX 722 ; N ntilde ; B 53 -13 749 714 ; +C -1 ; WX 722 ; N aring ; B 46 -13 737 782 ; +C -1 ; WX 611 ; N zcaron ; B 29 -13 596 736 ; +C -1 ; WX 444 ; N Icircumflex ; B 3 0 488 904 ; +C -1 ; WX 778 ; N Ntilde ; B -5 0 829 882 ; +C -1 ; WX 722 ; N ucircumflex ; B 69 -13 741 736 ; +C -1 ; WX 778 ; N Ecircumflex ; B -5 0 791 904 ; +C -1 ; WX 444 ; N Iacute ; B 3 0 488 918 ; +C -1 ; WX 778 ; N Ccedilla ; B 56 -226 751 694 ; +C -1 ; WX 833 ; N Odieresis ; B 56 -13 833 892 ; +C -1 ; WX 722 ; N Scaron ; B 40 -13 705 904 ; +C -1 ; WX 778 ; N Edieresis ; B -5 0 791 892 ; +C -1 ; WX 444 ; N Igrave ; B 3 0 488 918 ; +C -1 ; WX 722 ; N adieresis ; B 46 -13 737 724 ; +C -1 ; WX 833 ; N Ograve ; B 56 -13 833 918 ; +C -1 ; WX 778 ; N Egrave ; B -5 0 791 918 ; +C -1 ; WX 722 ; N Ydieresis ; B 72 0 801 892 ; +C -1 ; WX 800 ; N registered ; B 77 -13 783 694 ; +C -1 ; WX 833 ; N Otilde ; B 56 -13 833 882 ; +C -1 ; WX 1083 ; N onequarter ; B 104 -16 1047 690 ; +C -1 ; WX 722 ; N Ugrave ; B 76 -13 806 918 ; +C -1 ; WX 722 ; N Ucircumflex ; B 76 -13 806 904 ; +C -1 ; WX 722 ; N Thorn ; B -5 0 725 681 ; +C -1 ; WX 600 ; N divide ; B 72 -62 578 568 ; +C -1 ; WX 778 ; N Atilde ; B -34 0 770 882 ; +C -1 ; WX 722 ; N Uacute ; B 76 -13 806 918 ; +C -1 ; WX 833 ; N Ocircumflex ; B 56 -13 833 904 ; +C -1 ; WX 600 ; N logicalnot ; B 72 102 578 430 ; +C -1 ; WX 778 ; N Aring ; B -34 0 770 950 ; +C -1 ; WX 389 ; N idieresis ; B 51 -13 463 724 ; +C -1 ; WX 389 ; N iacute ; B 51 -13 437 750 ; +C -1 ; WX 722 ; N aacute ; B 46 -13 737 750 ; +C -1 ; WX 600 ; N plusminus ; B 72 0 578 506 ; +C -1 ; WX 600 ; N multiply ; B 82 10 568 496 ; +C -1 ; WX 722 ; N Udieresis ; B 76 -13 806 892 ; +C -1 ; WX 600 ; N minus ; B 72 183 578 323 ; +C -1 ; WX 471 ; N onesuperior ; B 104 274 417 684 ; +C -1 ; WX 778 ; N Eacute ; B -5 0 791 918 ; +C -1 ; WX 778 ; N Acircumflex ; B -34 0 770 904 ; +C -1 ; WX 800 ; N copyright ; B 77 -13 783 694 ; +C -1 ; WX 778 ; N Agrave ; B -34 0 770 918 ; +C -1 ; WX 667 ; N odieresis ; B 33 -13 647 724 ; +C -1 ; WX 667 ; N oacute ; B 33 -13 647 750 ; +C -1 ; WX 400 ; N degree ; B 107 384 413 690 ; +C -1 ; WX 389 ; N igrave ; B 51 -13 425 750 ; +C -1 ; WX 722 ; N mu ; B 6 -226 741 490 ; +C -1 ; WX 833 ; N Oacute ; B 56 -13 833 918 ; +C -1 ; WX 667 ; N eth ; B 33 -13 647 745 ; +C -1 ; WX 778 ; N Adieresis ; B -34 0 770 892 ; +C -1 ; WX 722 ; N Yacute ; B 72 0 801 918 ; +C -1 ; WX 222 ; N brokenbar ; B 67 -13 207 694 ; +C -1 ; WX 1083 ; N onehalf ; B 104 -16 1029 690 ; +EndCharMetrics +StartKernData +StartKernPairs 160 + +KPX A y -18 +KPX A w -18 +KPX A v -18 +KPX A u -18 +KPX A quoteright -92 +KPX A quotedblright -92 +KPX A Y -55 +KPX A W -55 +KPX A V -74 +KPX A U -10 +KPX A T -55 +KPX A Q -10 +KPX A O -18 +KPX A G -18 +KPX A C -18 + +KPX B period -74 +KPX B comma -74 +KPX B U 10 + +KPX D period -74 +KPX D comma -74 +KPX D Y -18 +KPX D W -18 +KPX D V -18 +KPX D A -18 + +KPX F r -15 +KPX F period -129 +KPX F o -54 +KPX F i -15 +KPX F e -54 +KPX F comma -129 +KPX F a -54 +KPX F A -55 + +KPX G period -74 +KPX G comma -74 + +KPX J period -100 +KPX J o -10 +KPX J e -10 +KPX J comma -100 +KPX J a -10 + +KPX K u -25 +KPX K o -25 +KPX K e -25 +KPX K O -37 + +KPX L y -18 +KPX L quoteright -111 +KPX L quotedblright -91 +KPX L Y -92 +KPX L W -92 +KPX L V -92 +KPX L T -92 + +KPX N period -91 +KPX N comma -91 + +KPX O period -74 +KPX O comma -74 +KPX O Y -37 +KPX O A -18 + +KPX P period -129 +KPX P o -15 +KPX P e -15 +KPX P comma -129 +KPX P a -15 +KPX P A -55 + +KPX Q period -37 +KPX Q comma -37 + +KPX R Y -37 +KPX R W -18 +KPX R V -18 +KPX R T -18 + +KPX T y -37 +KPX T w -55 +KPX T u -55 +KPX T semicolon -74 +KPX T r -55 +KPX T period -129 +KPX T o -74 +KPX T i -18 +KPX T hyphen -92 +KPX T e -74 +KPX T comma -129 +KPX T colon -74 +KPX T a -74 +KPX T A -55 + +KPX U period -74 +KPX U comma -74 + +KPX V u -37 +KPX V semicolon -74 +KPX V period -129 +KPX V o -55 +KPX V i -18 +KPX V hyphen -55 +KPX V e -55 +KPX V comma -129 +KPX V colon -74 +KPX V a -55 +KPX V A -37 + +KPX W y -18 +KPX W u -18 +KPX W semicolon -74 +KPX W period -129 +KPX W o -37 +KPX W hyphen -55 +KPX W e -37 +KPX W comma -129 +KPX W colon -74 +KPX W a -37 +KPX W A -37 + +KPX Y u -55 +KPX Y semicolon -92 +KPX Y period -129 +KPX Y o -74 +KPX Y i -37 +KPX Y hyphen -74 +KPX Y e -74 +KPX Y comma -129 +KPX Y colon -92 +KPX Y a -74 +KPX Y O -37 +KPX Y A -55 + +KPX b period -37 +KPX b comma -37 + +KPX c period -27 +KPX c comma -27 + +KPX d w -10 +KPX d v -10 +KPX d period -18 +KPX d comma -18 + +KPX e period -37 +KPX e comma -37 + +KPX f quoteright 54 +KPX f quotedblright 54 +KPX f period -37 +KPX f comma -37 + +KPX g period -74 +KPX g comma -74 + +KPX period quoteright -37 +KPX period quotedblright -37 + +KPX quoteleft quoteleft 4 +KPX quoteleft A -37 + +KPX quoteright s -37 +KPX quoteright quoteright 4 + +KPX r y 10 +KPX r period -129 +KPX r hyphen -37 +KPX r comma -129 + +KPX s w -10 + +KPX space quoteleft -37 +KPX space quotedblleft -37 +KPX space Y -37 +KPX space W -37 +KPX space V -37 +KPX space T -37 +KPX space A -37 + +KPX v period -74 +KPX v comma -74 + +KPX w period -74 +KPX w comma -74 + +KPX y period -74 +KPX y o -18 +KPX y comma -74 +KPX y a -18 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 223 168 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 223 168 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 233 168 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 223 168 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 253 168 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 223 168 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 223 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 223 168 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 223 168 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 243 168 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 223 168 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 56 168 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 56 168 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 76 168 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 56 168 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 223 168 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 250 168 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 250 168 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 270 168 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 250 168 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 250 168 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 195 168 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 195 168 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 195 168 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 215 168 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 195 168 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 195 168 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 215 168 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 195 168 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 195 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 195 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 195 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 195 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 195 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 195 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 139 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 139 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 139 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 139 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 139 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 28 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 28 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 28 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 28 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 195 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 167 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 167 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 167 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 167 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 167 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 139 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 195 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 195 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 195 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 195 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 167 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 167 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 139 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-BdIt+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-BdIt+ new file mode 100755 index 0000000000000..bfecd397059ef --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-BdIt+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 778 ; N Ccaron ; B 56 -13 772 919 ; +C -1 ; WX 611 ; N ccaron ; B 33 -13 609 736 ; +C -1 ; WX 833 ; N Dcaron ; B -5 0 833 919 ; +C -1 ; WX 873 ; N dcaron ; B 33 -13 963 777 ; +C -1 ; WX 778 ; N Ecaron ; B -5 0 791 919 ; +C -1 ; WX 611 ; N ecaron ; B 33 -13 606 736 ; +C -1 ; WX 667 ; N Lcaron ; B -5 0 726 749 ; +C -1 ; WX 667 ; N Lacute ; B -5 0 698 933 ; +C -1 ; WX 540 ; N lcaron ; B 64 -13 654 777 ; +C -1 ; WX 389 ; N lacute ; B 64 -13 501 933 ; +C -1 ; WX 778 ; N Ncaron ; B -5 0 829 919 ; +C -1 ; WX 722 ; N ncaron ; B 53 -13 749 736 ; +C -1 ; WX 778 ; N Rcaron ; B -5 0 773 919 ; +C -1 ; WX 778 ; N Racute ; B -5 0 773 933 ; +C -1 ; WX 500 ; N rcaron ; B 49 0 562 736 ; +C -1 ; WX 500 ; N racute ; B 49 0 562 750 ; +C -1 ; WX 722 ; N Tcaron ; B 52 0 764 919 ; +C -1 ; WX 595 ; N tcaron ; B 54 -13 699 694 ; +C -1 ; WX 722 ; N Uring ; B 76 -13 806 919 ; +C -1 ; WX 722 ; N uring ; B 69 -13 741 782 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 330 183 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 167 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 288 183 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 649 83 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 260 183 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 139 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 412 55 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 205 183 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 340 83 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 92 183 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 260 183 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 194 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 260 183 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 309 183 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 83 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 109 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 232 183 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 385 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 223 137 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 194 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Dm b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Dm new file mode 100755 index 0000000000000..036be6d8cd8f4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Dm @@ -0,0 +1,415 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1992 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Tue Jan 21 16:13:29 1992 +Comment UniqueID 37831 +Comment VMusage 31983 38875 +FontName Bookman-Demi +FullName ITC Bookman Demi +FamilyName ITC Bookman +Weight Demi +ItalicAngle 0 +IsFixedPitch false +FontBBox -194 -250 1346 934 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.004 +Notice Copyright (c) 1985, 1987, 1989, 1992 Adobe Systems Incorporated. All Rights Reserved.ITC Bookman is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 681 +XHeight 502 +Ascender 725 +Descender -212 +StartCharMetrics 228 +C 32 ; WX 340 ; N space ; B 0 0 0 0 ; +C 33 ; WX 360 ; N exclam ; B 82 -8 282 698 ; +C 34 ; WX 420 ; N quotedbl ; B 11 379 369 698 ; +C 35 ; WX 660 ; N numbersign ; B 84 0 576 681 ; +C 36 ; WX 660 ; N dollar ; B 48 -119 620 805 ; +C 37 ; WX 940 ; N percent ; B 12 -8 924 698 ; +C 38 ; WX 800 ; N ampersand ; B 21 -17 772 698 ; +C 39 ; WX 320 ; N quoteright ; B 82 440 242 698 ; +C 40 ; WX 320 ; N parenleft ; B 48 -150 289 749 ; +C 41 ; WX 320 ; N parenright ; B 20 -150 262 749 ; +C 42 ; WX 460 ; N asterisk ; B 62 317 405 697 ; +C 43 ; WX 600 ; N plus ; B 51 9 555 514 ; +C 44 ; WX 340 ; N comma ; B 78 -124 257 162 ; +C 45 ; WX 360 ; N hyphen ; B 20 210 340 318 ; +C 46 ; WX 340 ; N period ; B 76 -8 258 172 ; +C 47 ; WX 600 ; N slash ; B 50 -149 555 725 ; +C 48 ; WX 660 ; N zero ; B 30 -17 639 698 ; +C 49 ; WX 660 ; N one ; B 137 0 568 681 ; +C 50 ; WX 660 ; N two ; B 41 0 628 698 ; +C 51 ; WX 660 ; N three ; B 37 -17 631 698 ; +C 52 ; WX 660 ; N four ; B 19 0 649 681 ; +C 53 ; WX 660 ; N five ; B 44 -17 623 723 ; +C 54 ; WX 660 ; N six ; B 34 -17 634 698 ; +C 55 ; WX 660 ; N seven ; B 36 0 632 681 ; +C 56 ; WX 660 ; N eight ; B 36 -17 633 698 ; +C 57 ; WX 660 ; N nine ; B 33 -17 636 698 ; +C 58 ; WX 340 ; N colon ; B 76 -8 258 515 ; +C 59 ; WX 340 ; N semicolon ; B 75 -124 259 515 ; +C 60 ; WX 600 ; N less ; B 49 -9 558 542 ; +C 61 ; WX 600 ; N equal ; B 51 109 555 421 ; +C 62 ; WX 600 ; N greater ; B 48 -9 557 542 ; +C 63 ; WX 660 ; N question ; B 61 -8 608 698 ; +C 64 ; WX 820 ; N at ; B 60 -17 758 698 ; +C 65 ; WX 720 ; N A ; B -34 0 763 681 ; +C 66 ; WX 720 ; N B ; B 20 0 693 681 ; +C 67 ; WX 740 ; N C ; B 35 -17 724 698 ; +C 68 ; WX 780 ; N D ; B 20 0 748 681 ; +C 69 ; WX 720 ; N E ; B 20 0 724 681 ; +C 70 ; WX 680 ; N F ; B 20 0 686 681 ; +C 71 ; WX 780 ; N G ; B 35 -17 773 698 ; +C 72 ; WX 820 ; N H ; B 20 0 800 681 ; +C 73 ; WX 400 ; N I ; B 20 0 379 681 ; +C 74 ; WX 640 ; N J ; B -12 -17 622 681 ; +C 75 ; WX 800 ; N K ; B 20 0 796 681 ; +C 76 ; WX 640 ; N L ; B 20 0 668 681 ; +C 77 ; WX 940 ; N M ; B 20 0 924 681 ; +C 78 ; WX 740 ; N N ; B 20 0 724 681 ; +C 79 ; WX 800 ; N O ; B 35 -17 769 698 ; +C 80 ; WX 660 ; N P ; B 20 0 658 681 ; +C 81 ; WX 800 ; N Q ; B 35 -226 775 698 ; +C 82 ; WX 780 ; N R ; B 20 0 783 681 ; +C 83 ; WX 660 ; N S ; B 21 -17 639 698 ; +C 84 ; WX 700 ; N T ; B -4 0 703 681 ; +C 85 ; WX 740 ; N U ; B 15 -17 724 681 ; +C 86 ; WX 720 ; N V ; B -20 0 730 681 ; +C 87 ; WX 940 ; N W ; B -20 0 963 681 ; +C 88 ; WX 780 ; N X ; B 1 0 770 681 ; +C 89 ; WX 700 ; N Y ; B -20 0 718 681 ; +C 90 ; WX 640 ; N Z ; B 6 0 635 681 ; +C 91 ; WX 300 ; N bracketleft ; B 75 -138 285 725 ; +C 92 ; WX 600 ; N backslash ; B 50 0 555 725 ; +C 93 ; WX 300 ; N bracketright ; B 21 -138 231 725 ; +C 94 ; WX 600 ; N asciicircum ; B 52 281 554 681 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 320 ; N quoteleft ; B 82 440 242 698 ; +C 97 ; WX 580 ; N a ; B 28 -8 588 515 ; +C 98 ; WX 600 ; N b ; B -20 -8 568 725 ; +C 99 ; WX 580 ; N c ; B 31 -8 550 515 ; +C 100 ; WX 640 ; N d ; B 31 -8 622 725 ; +C 101 ; WX 580 ; N e ; B 31 -8 548 515 ; +C 102 ; WX 380 ; N f ; B 22 0 461 741 ; L i fi ; L l fl ; +C 103 ; WX 580 ; N g ; B 9 -243 583 595 ; +C 104 ; WX 680 ; N h ; B 22 0 654 725 ; +C 105 ; WX 360 ; N i ; B 22 0 335 729 ; +C 106 ; WX 340 ; N j ; B -94 -221 278 729 ; +C 107 ; WX 660 ; N k ; B 22 0 643 725 ; +C 108 ; WX 340 ; N l ; B 9 0 322 725 ; +C 109 ; WX 1000 ; N m ; B 22 0 980 515 ; +C 110 ; WX 680 ; N n ; B 22 0 652 515 ; +C 111 ; WX 620 ; N o ; B 31 -8 585 515 ; +C 112 ; WX 640 ; N p ; B 22 -212 611 515 ; +C 113 ; WX 620 ; N q ; B 31 -212 633 515 ; +C 114 ; WX 460 ; N r ; B 22 0 462 502 ; +C 115 ; WX 520 ; N s ; B 22 -8 492 515 ; +C 116 ; WX 460 ; N t ; B 22 -8 445 660 ; +C 117 ; WX 660 ; N u ; B 22 -8 653 502 ; +C 118 ; WX 600 ; N v ; B -6 0 593 502 ; +C 119 ; WX 800 ; N w ; B -6 0 810 502 ; +C 120 ; WX 600 ; N x ; B 8 0 591 502 ; +C 121 ; WX 620 ; N y ; B 6 -221 613 502 ; +C 122 ; WX 560 ; N z ; B 22 0 547 502 ; +C 123 ; WX 320 ; N braceleft ; B 14 -139 301 726 ; +C 124 ; WX 600 ; N bar ; B 243 -250 362 750 ; +C 125 ; WX 320 ; N braceright ; B 15 -140 302 725 ; +C 126 ; WX 600 ; N asciitilde ; B 51 162 555 368 ; +C 161 ; WX 360 ; N exclamdown ; B 84 -191 284 515 ; +C 162 ; WX 660 ; N cent ; B 133 17 535 674 ; +C 163 ; WX 660 ; N sterling ; B 10 -17 659 698 ; +C 164 ; WX 120 ; N fraction ; B -194 0 312 681 ; +C 165 ; WX 660 ; N yen ; B -28 0 696 681 ; +C 166 ; WX 660 ; N florin ; B -46 -209 674 749 ; +C 167 ; WX 600 ; N section ; B 36 -153 560 698 ; +C 168 ; WX 660 ; N currency ; B 77 88 584 593 ; +C 169 ; WX 240 ; N quotesingle ; B 42 379 178 698 ; +C 170 ; WX 540 ; N quotedblleft ; B 82 439 449 698 ; +C 171 ; WX 400 ; N guillemotleft ; B 34 101 360 457 ; +C 172 ; WX 220 ; N guilsinglleft ; B 34 101 188 457 ; +C 173 ; WX 220 ; N guilsinglright ; B 34 101 188 457 ; +C 174 ; WX 740 ; N fi ; B 22 0 710 741 ; +C 175 ; WX 740 ; N fl ; B 22 0 710 741 ; +C 177 ; WX 500 ; N endash ; B -25 212 525 318 ; +C 178 ; WX 440 ; N dagger ; B 33 -156 398 698 ; +C 179 ; WX 380 ; N daggerdbl ; B 8 -156 380 698 ; +C 180 ; WX 340 ; N periodcentered ; B 76 175 258 355 ; +C 182 ; WX 800 ; N paragraph ; B 51 0 698 681 ; +C 183 ; WX 460 ; N bullet ; B 60 170 404 511 ; +C 184 ; WX 320 ; N quotesinglbase ; B 82 -114 242 144 ; +C 185 ; WX 540 ; N quotedblbase ; B 82 -114 450 144 ; +C 186 ; WX 540 ; N quotedblright ; B 82 440 449 698 ; +C 187 ; WX 400 ; N guillemotright ; B 34 101 360 457 ; +C 188 ; WX 1000 ; N ellipsis ; B 76 -8 924 172 ; +C 189 ; WX 1360 ; N perthousand ; B 12 -8 1346 698 ; +C 191 ; WX 660 ; N questiondown ; B 62 -191 609 515 ; +C 193 ; WX 400 ; N grave ; B 68 547 327 730 ; +C 194 ; WX 400 ; N acute ; B 68 547 327 731 ; +C 195 ; WX 500 ; N circumflex ; B 68 555 430 731 ; +C 196 ; WX 480 ; N tilde ; B 69 556 421 691 ; +C 197 ; WX 460 ; N macron ; B 68 577 383 663 ; +C 198 ; WX 500 ; N breve ; B 68 553 429 722 ; +C 199 ; WX 320 ; N dotaccent ; B 68 536 259 730 ; +C 200 ; WX 500 ; N dieresis ; B 68 560 441 698 ; +C 202 ; WX 340 ; N ring ; B 68 552 275 755 ; +C 203 ; WX 360 ; N cedilla ; B 68 -213 284 0 ; +C 205 ; WX 440 ; N hungarumlaut ; B 68 554 365 741 ; +C 206 ; WX 320 ; N ogonek ; B 68 -163 246 0 ; +C 207 ; WX 500 ; N caron ; B 68 541 430 717 ; +C 208 ; WX 1000 ; N emdash ; B -25 212 1025 318 ; +C 225 ; WX 1140 ; N AE ; B -34 0 1149 681 ; +C 227 ; WX 400 ; N ordfeminine ; B 27 383 396 698 ; +C 232 ; WX 640 ; N Lslash ; B 20 0 668 681 ; +C 233 ; WX 800 ; N Oslash ; B 35 -110 771 781 ; +C 234 ; WX 1220 ; N OE ; B 35 -17 1219 698 ; +C 235 ; WX 400 ; N ordmasculine ; B 17 383 383 698 ; +C 241 ; WX 880 ; N ae ; B 28 -8 852 515 ; +C 245 ; WX 360 ; N dotlessi ; B 22 0 335 502 ; +C 248 ; WX 340 ; N lslash ; B 9 0 322 725 ; +C 249 ; WX 620 ; N oslash ; B 31 -40 586 551 ; +C 250 ; WX 940 ; N oe ; B 31 -8 908 515 ; +C 251 ; WX 660 ; N germandbls ; B -61 -91 644 699 ; +C -1 ; WX 580 ; N ecircumflex ; B 31 -8 548 731 ; +C -1 ; WX 580 ; N edieresis ; B 31 -8 548 698 ; +C -1 ; WX 580 ; N aacute ; B 28 -8 588 731 ; +C -1 ; WX 740 ; N registered ; B 23 -17 723 698 ; +C -1 ; WX 360 ; N icircumflex ; B -2 0 360 731 ; +C -1 ; WX 660 ; N udieresis ; B 22 -8 653 698 ; +C -1 ; WX 620 ; N ograve ; B 31 -8 585 730 ; +C -1 ; WX 660 ; N uacute ; B 22 -8 653 731 ; +C -1 ; WX 660 ; N ucircumflex ; B 22 -8 653 731 ; +C -1 ; WX 720 ; N Aacute ; B -34 0 763 910 ; +C -1 ; WX 360 ; N igrave ; B 22 0 335 730 ; +C -1 ; WX 400 ; N Icircumflex ; B 18 0 380 910 ; +C -1 ; WX 580 ; N ccedilla ; B 31 -213 550 515 ; +C -1 ; WX 580 ; N adieresis ; B 28 -8 588 698 ; +C -1 ; WX 720 ; N Ecircumflex ; B 20 0 724 910 ; +C -1 ; WX 520 ; N scaron ; B 22 -8 492 717 ; +C -1 ; WX 640 ; N thorn ; B 22 -212 611 725 ; +C -1 ; WX 980 ; N trademark ; B 42 277 982 681 ; +C -1 ; WX 580 ; N egrave ; B 31 -8 548 730 ; +C -1 ; WX 396 ; N threesuperior ; B 5 269 391 698 ; +C -1 ; WX 560 ; N zcaron ; B 22 0 547 717 ; +C -1 ; WX 580 ; N atilde ; B 28 -8 588 691 ; +C -1 ; WX 580 ; N aring ; B 28 -8 588 755 ; +C -1 ; WX 620 ; N ocircumflex ; B 31 -8 585 731 ; +C -1 ; WX 720 ; N Edieresis ; B 20 0 724 877 ; +C -1 ; WX 990 ; N threequarters ; B 15 0 967 692 ; +C -1 ; WX 620 ; N ydieresis ; B 6 -221 613 698 ; +C -1 ; WX 620 ; N yacute ; B 6 -221 613 731 ; +C -1 ; WX 360 ; N iacute ; B 22 0 335 731 ; +C -1 ; WX 720 ; N Acircumflex ; B -34 0 763 910 ; +C -1 ; WX 740 ; N Uacute ; B 15 -17 724 910 ; +C -1 ; WX 580 ; N eacute ; B 31 -8 548 731 ; +C -1 ; WX 800 ; N Ograve ; B 35 -17 769 909 ; +C -1 ; WX 580 ; N agrave ; B 28 -8 588 730 ; +C -1 ; WX 740 ; N Udieresis ; B 15 -17 724 877 ; +C -1 ; WX 580 ; N acircumflex ; B 28 -8 588 731 ; +C -1 ; WX 400 ; N Igrave ; B 20 0 379 909 ; +C -1 ; WX 396 ; N twosuperior ; B 14 279 396 698 ; +C -1 ; WX 740 ; N Ugrave ; B 15 -17 724 909 ; +C -1 ; WX 990 ; N onequarter ; B 65 0 967 681 ; +C -1 ; WX 740 ; N Ucircumflex ; B 15 -17 724 910 ; +C -1 ; WX 660 ; N Scaron ; B 21 -17 639 896 ; +C -1 ; WX 400 ; N Idieresis ; B 18 0 391 877 ; +C -1 ; WX 360 ; N idieresis ; B -2 0 371 698 ; +C -1 ; WX 720 ; N Egrave ; B 20 0 724 909 ; +C -1 ; WX 800 ; N Oacute ; B 35 -17 769 910 ; +C -1 ; WX 600 ; N divide ; B 51 9 555 521 ; +C -1 ; WX 720 ; N Atilde ; B -34 0 763 870 ; +C -1 ; WX 720 ; N Aring ; B -34 0 763 934 ; +C -1 ; WX 800 ; N Odieresis ; B 35 -17 769 877 ; +C -1 ; WX 720 ; N Adieresis ; B -34 0 763 877 ; +C -1 ; WX 740 ; N Ntilde ; B 20 0 724 870 ; +C -1 ; WX 640 ; N Zcaron ; B 6 0 635 896 ; +C -1 ; WX 660 ; N Thorn ; B 20 0 658 681 ; +C -1 ; WX 400 ; N Iacute ; B 20 0 379 910 ; +C -1 ; WX 600 ; N plusminus ; B 51 0 555 514 ; +C -1 ; WX 600 ; N multiply ; B 48 10 552 514 ; +C -1 ; WX 720 ; N Eacute ; B 20 0 724 910 ; +C -1 ; WX 700 ; N Ydieresis ; B -20 0 718 877 ; +C -1 ; WX 396 ; N onesuperior ; B 65 279 345 687 ; +C -1 ; WX 660 ; N ugrave ; B 22 -8 653 730 ; +C -1 ; WX 600 ; N logicalnot ; B 51 129 555 421 ; +C -1 ; WX 680 ; N ntilde ; B 22 0 652 691 ; +C -1 ; WX 800 ; N Otilde ; B 35 -17 769 870 ; +C -1 ; WX 620 ; N otilde ; B 31 -8 585 691 ; +C -1 ; WX 740 ; N Ccedilla ; B 35 -213 724 698 ; +C -1 ; WX 720 ; N Agrave ; B -34 0 763 909 ; +C -1 ; WX 990 ; N onehalf ; B 65 0 980 681 ; +C -1 ; WX 780 ; N Eth ; B 20 0 748 681 ; +C -1 ; WX 400 ; N degree ; B 50 398 350 698 ; +C -1 ; WX 700 ; N Yacute ; B -20 0 718 910 ; +C -1 ; WX 800 ; N Ocircumflex ; B 35 -17 769 910 ; +C -1 ; WX 620 ; N oacute ; B 31 -8 585 731 ; +C -1 ; WX 660 ; N mu ; B 22 -221 653 502 ; +C -1 ; WX 600 ; N minus ; B 51 207 555 323 ; +C -1 ; WX 620 ; N eth ; B 31 -8 585 741 ; +C -1 ; WX 620 ; N odieresis ; B 31 -8 585 698 ; +C -1 ; WX 740 ; N copyright ; B 23 -17 723 698 ; +C -1 ; WX 600 ; N brokenbar ; B 243 -175 362 675 ; +EndCharMetrics +StartKernData +StartKernPairs 90 + +KPX A y -1 +KPX A w -9 +KPX A v -8 +KPX A Y -52 +KPX A W -20 +KPX A V -68 +KPX A T -40 + +KPX F period -132 +KPX F comma -130 +KPX F A -59 + +KPX L y 19 +KPX L Y -35 +KPX L W -41 +KPX L V -50 +KPX L T -4 + +KPX P period -128 +KPX P comma -129 +KPX P A -46 + +KPX R y -8 +KPX R Y -20 +KPX R W -24 +KPX R V -29 +KPX R T -4 + +KPX T semicolon 5 +KPX T s -10 +KPX T r 27 +KPX T period -122 +KPX T o -28 +KPX T i 27 +KPX T hyphen -10 +KPX T e -29 +KPX T comma -122 +KPX T colon 7 +KPX T c -29 +KPX T a -24 +KPX T A -42 + +KPX V y 12 +KPX V u -11 +KPX V semicolon -38 +KPX V r -15 +KPX V period -105 +KPX V o -79 +KPX V i 15 +KPX V hyphen -10 +KPX V e -80 +KPX V comma -103 +KPX V colon -37 +KPX V a -74 +KPX V A -88 + +KPX W y 12 +KPX W u -11 +KPX W semicolon -38 +KPX W r -15 +KPX W period -105 +KPX W o -78 +KPX W i 15 +KPX W hyphen -10 +KPX W e -79 +KPX W comma -103 +KPX W colon -37 +KPX W a -73 +KPX W A -60 + +KPX Y v 24 +KPX Y u -13 +KPX Y semicolon -34 +KPX Y q -66 +KPX Y period -105 +KPX Y p -23 +KPX Y o -66 +KPX Y i 2 +KPX Y hyphen -10 +KPX Y e -67 +KPX Y comma -103 +KPX Y colon -32 +KPX Y a -60 +KPX Y A -56 + +KPX f f 21 + +KPX r q -9 +KPX r period -102 +KPX r o -9 +KPX r n 20 +KPX r m 20 +KPX r hyphen -10 +KPX r h -23 +KPX r g -9 +KPX r f 20 +KPX r e -10 +KPX r d -10 +KPX r comma -101 +KPX r c -9 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 160 179 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 110 179 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 110 179 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 160 179 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 190 179 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 120 179 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 160 179 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 110 179 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 110 179 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 160 179 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 0 179 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -50 179 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -50 179 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 179 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 130 179 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 200 179 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 150 179 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 150 179 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 200 179 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 160 179 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 80 179 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 170 179 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 120 179 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 120 179 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 170 179 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 150 179 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 100 179 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 70 179 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 90 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 40 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 40 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 90 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 100 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 30 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 90 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 40 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 40 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 90 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -20 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -70 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -70 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -20 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 80 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 110 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 60 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 60 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 110 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 50 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 10 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 130 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 80 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 80 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 130 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 110 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 60 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 30 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Dm+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Dm+ new file mode 100755 index 0000000000000..7c231e955cc01 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Dm+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 740 ; N Ccaron ; B 35 -17 724 919 ; +C -1 ; WX 580 ; N ccaron ; B 31 -8 550 717 ; +C -1 ; WX 780 ; N Dcaron ; B 20 0 748 919 ; +C -1 ; WX 752 ; N dcaron ; B 31 -8 798 798 ; +C -1 ; WX 720 ; N Ecaron ; B 20 0 724 919 ; +C -1 ; WX 580 ; N ecaron ; B 31 -8 548 717 ; +C -1 ; WX 640 ; N Lcaron ; B 20 0 668 749 ; +C -1 ; WX 640 ; N Lacute ; B 20 0 668 927 ; +C -1 ; WX 452 ; N lcaron ; B 9 0 498 798 ; +C -1 ; WX 340 ; N lacute ; B 9 0 323 927 ; +C -1 ; WX 740 ; N Ncaron ; B 20 0 724 919 ; +C -1 ; WX 680 ; N ncaron ; B 22 0 652 717 ; +C -1 ; WX 780 ; N Rcaron ; B 20 0 783 919 ; +C -1 ; WX 780 ; N Racute ; B 20 0 783 927 ; +C -1 ; WX 460 ; N rcaron ; B 22 0 462 717 ; +C -1 ; WX 460 ; N racute ; B 22 0 462 731 ; +C -1 ; WX 700 ; N Tcaron ; B -4 0 703 919 ; +C -1 ; WX 572 ; N tcaron ; B 22 -8 621 698 ; +C -1 ; WX 740 ; N Uring ; B 15 -17 724 919 ; +C -1 ; WX 660 ; N uring ; B 22 -8 653 755 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 189 202 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 66 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 140 202 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 556 100 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 110 202 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 40 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 313 51 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 120 196 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 256 100 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute -4 196 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 120 202 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 90 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 140 202 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 239 196 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron -20 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 56 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 100 202 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 379 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 200 164 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 160 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-DmIt b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-DmIt new file mode 100755 index 0000000000000..c2da47a2a4998 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-DmIt @@ -0,0 +1,417 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1992 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Tue Jan 21 16:12:43 1992 +Comment UniqueID 37832 +Comment VMusage 32139 39031 +FontName Bookman-DemiItalic +FullName ITC Bookman Demi Italic +FamilyName ITC Bookman +Weight Demi +ItalicAngle -10 +IsFixedPitch false +FontBBox -231 -250 1333 941 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.004 +Notice Copyright (c) 1985, 1987, 1989, 1992 Adobe Systems Incorporated. All Rights Reserved.ITC Bookman is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 681 +XHeight 515 +Ascender 732 +Descender -213 +StartCharMetrics 228 +C 32 ; WX 340 ; N space ; B 0 0 0 0 ; +C 33 ; WX 320 ; N exclam ; B 86 -8 366 698 ; +C 34 ; WX 380 ; N quotedbl ; B 140 371 507 697 ; +C 35 ; WX 680 ; N numbersign ; B 157 0 649 681 ; +C 36 ; WX 680 ; N dollar ; B 45 -164 697 790 ; +C 37 ; WX 880 ; N percent ; B 106 -17 899 698 ; +C 38 ; WX 980 ; N ampersand ; B 48 -17 1016 698 ; +C 39 ; WX 320 ; N quoteright ; B 171 420 349 698 ; +C 40 ; WX 260 ; N parenleft ; B 31 -134 388 741 ; +C 41 ; WX 260 ; N parenright ; B -35 -134 322 741 ; +C 42 ; WX 460 ; N asterisk ; B 126 346 508 698 ; +C 43 ; WX 600 ; N plus ; B 91 9 595 514 ; +C 44 ; WX 340 ; N comma ; B 100 -124 298 185 ; +C 45 ; WX 280 ; N hyphen ; B 59 218 319 313 ; +C 46 ; WX 340 ; N period ; B 106 -8 296 177 ; +C 47 ; WX 360 ; N slash ; B 9 -106 502 742 ; +C 48 ; WX 680 ; N zero ; B 87 -17 703 698 ; +C 49 ; WX 680 ; N one ; B 123 0 565 681 ; +C 50 ; WX 680 ; N two ; B 67 0 674 698 ; +C 51 ; WX 680 ; N three ; B 72 -17 683 698 ; +C 52 ; WX 680 ; N four ; B 63 0 708 681 ; +C 53 ; WX 680 ; N five ; B 78 -17 669 681 ; +C 54 ; WX 680 ; N six ; B 88 -17 704 698 ; +C 55 ; WX 680 ; N seven ; B 123 0 739 681 ; +C 56 ; WX 680 ; N eight ; B 68 -17 686 698 ; +C 57 ; WX 680 ; N nine ; B 71 -17 712 698 ; +C 58 ; WX 340 ; N colon ; B 106 -8 356 515 ; +C 59 ; WX 340 ; N semicolon ; B 100 -124 352 515 ; +C 60 ; WX 620 ; N less ; B 79 -9 588 540 ; +C 61 ; WX 600 ; N equal ; B 91 109 595 421 ; +C 62 ; WX 620 ; N greater ; B 89 -9 598 540 ; +C 63 ; WX 620 ; N question ; B 145 -8 668 698 ; +C 64 ; WX 780 ; N at ; B 80 -17 790 698 ; +C 65 ; WX 720 ; N A ; B -27 0 769 681 ; +C 66 ; WX 720 ; N B ; B 14 0 762 681 ; +C 67 ; WX 700 ; N C ; B 78 -17 754 698 ; +C 68 ; WX 760 ; N D ; B 14 0 805 681 ; +C 69 ; WX 720 ; N E ; B 14 0 777 681 ; +C 70 ; WX 660 ; N F ; B 14 0 763 681 ; +C 71 ; WX 760 ; N G ; B 77 -17 828 698 ; +C 72 ; WX 800 ; N H ; B 14 0 910 681 ; +C 73 ; WX 380 ; N I ; B 14 0 485 681 ; +C 74 ; WX 620 ; N J ; B 8 -17 721 681 ; +C 75 ; WX 780 ; N K ; B 14 0 879 681 ; +C 76 ; WX 640 ; N L ; B 14 0 725 681 ; +C 77 ; WX 860 ; N M ; B 14 0 970 681 ; +C 78 ; WX 740 ; N N ; B 14 0 845 681 ; +C 79 ; WX 760 ; N O ; B 78 -17 806 698 ; +C 80 ; WX 640 ; N P ; B -6 0 724 681 ; +C 81 ; WX 760 ; N Q ; B 37 -213 805 698 ; +C 82 ; WX 740 ; N R ; B 14 0 765 681 ; +C 83 ; WX 700 ; N S ; B 59 -17 731 698 ; +C 84 ; WX 700 ; N T ; B 70 0 802 681 ; +C 85 ; WX 740 ; N U ; B 112 -17 855 681 ; +C 86 ; WX 660 ; N V ; B 72 0 819 681 ; +C 87 ; WX 1000 ; N W ; B 72 0 1090 681 ; +C 88 ; WX 740 ; N X ; B -7 0 835 681 ; +C 89 ; WX 660 ; N Y ; B 72 0 817 681 ; +C 90 ; WX 680 ; N Z ; B 23 0 740 681 ; +C 91 ; WX 260 ; N bracketleft ; B 9 -118 374 741 ; +C 92 ; WX 580 ; N backslash ; B 73 0 575 741 ; +C 93 ; WX 260 ; N bracketright ; B -18 -118 347 741 ; +C 94 ; WX 620 ; N asciicircum ; B 92 281 594 681 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 320 ; N quoteleft ; B 155 420 333 698 ; +C 97 ; WX 680 ; N a ; B 84 -8 735 515 ; +C 98 ; WX 600 ; N b ; B 57 -8 633 732 ; +C 99 ; WX 560 ; N c ; B 58 -8 597 515 ; +C 100 ; WX 680 ; N d ; B 60 -8 714 732 ; +C 101 ; WX 560 ; N e ; B 59 -8 596 515 ; +C 102 ; WX 420 ; N f ; B -192 -213 641 741 ; L i fi ; L l fl ; +C 103 ; WX 620 ; N g ; B 21 -213 669 515 ; +C 104 ; WX 700 ; N h ; B 93 -8 736 732 ; +C 105 ; WX 380 ; N i ; B 83 -8 420 755 ; +C 106 ; WX 320 ; N j ; B -160 -213 392 755 ; +C 107 ; WX 700 ; N k ; B 97 -8 732 732 ; +C 108 ; WX 380 ; N l ; B 109 -8 410 732 ; +C 109 ; WX 960 ; N m ; B 83 -8 996 515 ; +C 110 ; WX 680 ; N n ; B 83 -8 715 515 ; +C 111 ; WX 600 ; N o ; B 59 -8 627 515 ; +C 112 ; WX 660 ; N p ; B -24 -213 682 515 ; +C 113 ; WX 620 ; N q ; B 60 -213 640 515 ; +C 114 ; WX 500 ; N r ; B 84 0 582 515 ; +C 115 ; WX 540 ; N s ; B 32 -8 573 515 ; +C 116 ; WX 440 ; N t ; B 106 -8 488 658 ; +C 117 ; WX 680 ; N u ; B 83 -8 720 507 ; +C 118 ; WX 540 ; N v ; B 56 -8 572 515 ; +C 119 ; WX 860 ; N w ; B 56 -8 891 515 ; +C 120 ; WX 620 ; N x ; B 10 -8 654 515 ; +C 121 ; WX 600 ; N y ; B 25 -213 642 507 ; +C 122 ; WX 560 ; N z ; B 36 -8 586 515 ; +C 123 ; WX 300 ; N braceleft ; B 49 -123 413 742 ; +C 124 ; WX 620 ; N bar ; B 303 -250 422 750 ; +C 125 ; WX 300 ; N braceright ; B -8 -114 356 751 ; +C 126 ; WX 620 ; N asciitilde ; B 101 162 605 368 ; +C 161 ; WX 320 ; N exclamdown ; B 64 -191 344 515 ; +C 162 ; WX 680 ; N cent ; B 161 25 616 718 ; +C 163 ; WX 680 ; N sterling ; B 0 -17 787 698 ; +C 164 ; WX 120 ; N fraction ; B -144 0 382 681 ; +C 165 ; WX 680 ; N yen ; B 92 0 782 681 ; +C 166 ; WX 680 ; N florin ; B -28 -199 743 741 ; +C 167 ; WX 620 ; N section ; B 46 -137 638 698 ; +C 168 ; WX 680 ; N currency ; B 148 85 637 571 ; +C 169 ; WX 180 ; N quotesingle ; B 126 370 295 696 ; +C 170 ; WX 520 ; N quotedblleft ; B 156 420 545 698 ; +C 171 ; WX 380 ; N guillemotleft ; B 62 84 406 503 ; +C 172 ; WX 220 ; N guilsinglleft ; B 62 84 249 503 ; +C 173 ; WX 220 ; N guilsinglright ; B 62 84 249 503 ; +C 174 ; WX 820 ; N fi ; B -191 -213 850 741 ; +C 175 ; WX 820 ; N fl ; B -191 -213 850 741 ; +C 177 ; WX 500 ; N endash ; B 40 219 573 311 ; +C 178 ; WX 420 ; N dagger ; B 89 -137 466 698 ; +C 179 ; WX 420 ; N daggerdbl ; B 79 -137 486 698 ; +C 180 ; WX 340 ; N periodcentered ; B 126 173 316 358 ; +C 182 ; WX 680 ; N paragraph ; B 137 0 715 681 ; +C 183 ; WX 360 ; N bullet ; B 60 170 404 511 ; +C 184 ; WX 300 ; N quotesinglbase ; B 106 -112 284 166 ; +C 185 ; WX 520 ; N quotedblbase ; B 106 -112 495 166 ; +C 186 ; WX 520 ; N quotedblright ; B 171 420 560 698 ; +C 187 ; WX 380 ; N guillemotright ; B 62 84 406 503 ; +C 188 ; WX 1000 ; N ellipsis ; B 86 -8 942 177 ; +C 189 ; WX 1360 ; N perthousand ; B 106 -17 1333 698 ; +C 191 ; WX 620 ; N questiondown ; B 83 -189 606 515 ; +C 193 ; WX 380 ; N grave ; B 193 566 424 771 ; +C 194 ; WX 340 ; N acute ; B 176 566 407 771 ; +C 195 ; WX 480 ; N circumflex ; B 183 582 523 749 ; +C 196 ; WX 480 ; N tilde ; B 178 587 533 709 ; +C 197 ; WX 480 ; N macron ; B 177 603 531 691 ; +C 198 ; WX 460 ; N breve ; B 177 577 516 707 ; +C 199 ; WX 380 ; N dotaccent ; B 180 570 345 734 ; +C 200 ; WX 520 ; N dieresis ; B 180 570 569 734 ; +C 202 ; WX 360 ; N ring ; B 185 558 406 775 ; +C 203 ; WX 360 ; N cedilla ; B 68 -220 289 -8 ; +C 205 ; WX 560 ; N hungarumlaut ; B 181 560 616 775 ; +C 206 ; WX 320 ; N ogonek ; B 68 -182 253 0 ; +C 207 ; WX 480 ; N caron ; B 183 582 523 749 ; +C 208 ; WX 1000 ; N emdash ; B 40 219 1073 311 ; +C 225 ; WX 1140 ; N AE ; B -27 0 1207 681 ; +C 227 ; WX 440 ; N ordfeminine ; B 118 400 495 685 ; +C 232 ; WX 640 ; N Lslash ; B 14 0 724 681 ; +C 233 ; WX 760 ; N Oslash ; B 21 -29 847 725 ; +C 234 ; WX 1180 ; N OE ; B 94 -17 1245 698 ; +C 235 ; WX 440 ; N ordmasculine ; B 127 400 455 685 ; +C 241 ; WX 880 ; N ae ; B 39 -8 913 515 ; +C 245 ; WX 380 ; N dotlessi ; B 83 -8 420 507 ; +C 248 ; WX 380 ; N lslash ; B 63 -8 412 732 ; +C 249 ; WX 600 ; N oslash ; B 17 -54 661 571 ; +C 250 ; WX 920 ; N oe ; B 48 -8 961 515 ; +C 251 ; WX 660 ; N germandbls ; B -231 -213 702 741 ; +C -1 ; WX 560 ; N ecircumflex ; B 59 -8 596 749 ; +C -1 ; WX 560 ; N edieresis ; B 59 -8 596 734 ; +C -1 ; WX 680 ; N aacute ; B 84 -8 735 771 ; +C -1 ; WX 780 ; N registered ; B 83 -17 783 698 ; +C -1 ; WX 380 ; N icircumflex ; B 83 -8 433 749 ; +C -1 ; WX 680 ; N udieresis ; B 83 -8 720 734 ; +C -1 ; WX 600 ; N ograve ; B 59 -8 627 771 ; +C -1 ; WX 680 ; N uacute ; B 83 -8 720 771 ; +C -1 ; WX 680 ; N ucircumflex ; B 83 -8 720 749 ; +C -1 ; WX 720 ; N Aacute ; B -27 0 769 937 ; +C -1 ; WX 380 ; N igrave ; B 83 -8 424 771 ; +C -1 ; WX 380 ; N Icircumflex ; B 14 0 493 915 ; +C -1 ; WX 560 ; N ccedilla ; B 58 -220 597 515 ; +C -1 ; WX 680 ; N adieresis ; B 84 -8 735 734 ; +C -1 ; WX 720 ; N Ecircumflex ; B 14 0 777 915 ; +C -1 ; WX 540 ; N scaron ; B 32 -8 573 749 ; +C -1 ; WX 660 ; N thorn ; B -24 -213 682 732 ; +C -1 ; WX 940 ; N trademark ; B 42 277 982 681 ; +C -1 ; WX 560 ; N egrave ; B 59 -8 596 771 ; +C -1 ; WX 408 ; N threesuperior ; B 86 269 483 698 ; +C -1 ; WX 560 ; N zcaron ; B 36 -8 586 749 ; +C -1 ; WX 680 ; N atilde ; B 84 -8 735 709 ; +C -1 ; WX 680 ; N aring ; B 84 -8 735 775 ; +C -1 ; WX 600 ; N ocircumflex ; B 59 -8 627 749 ; +C -1 ; WX 720 ; N Edieresis ; B 14 0 777 900 ; +C -1 ; WX 1020 ; N threequarters ; B 86 0 1054 691 ; +C -1 ; WX 600 ; N ydieresis ; B 25 -213 642 734 ; +C -1 ; WX 600 ; N yacute ; B 25 -213 642 771 ; +C -1 ; WX 380 ; N iacute ; B 83 -8 420 771 ; +C -1 ; WX 720 ; N Acircumflex ; B -27 0 769 915 ; +C -1 ; WX 740 ; N Uacute ; B 112 -17 855 937 ; +C -1 ; WX 560 ; N eacute ; B 59 -8 596 771 ; +C -1 ; WX 760 ; N Ograve ; B 78 -17 806 937 ; +C -1 ; WX 680 ; N agrave ; B 84 -8 735 771 ; +C -1 ; WX 740 ; N Udieresis ; B 112 -17 855 900 ; +C -1 ; WX 680 ; N acircumflex ; B 84 -8 735 749 ; +C -1 ; WX 380 ; N Igrave ; B 14 0 485 937 ; +C -1 ; WX 408 ; N twosuperior ; B 91 279 485 698 ; +C -1 ; WX 740 ; N Ugrave ; B 112 -17 855 937 ; +C -1 ; WX 1020 ; N onequarter ; B 118 0 1054 681 ; +C -1 ; WX 740 ; N Ucircumflex ; B 112 -17 855 915 ; +C -1 ; WX 700 ; N Scaron ; B 59 -17 731 915 ; +C -1 ; WX 380 ; N Idieresis ; B 14 0 499 900 ; +C -1 ; WX 380 ; N idieresis ; B 83 -8 479 734 ; +C -1 ; WX 720 ; N Egrave ; B 14 0 777 937 ; +C -1 ; WX 760 ; N Oacute ; B 78 -17 806 937 ; +C -1 ; WX 600 ; N divide ; B 91 9 595 521 ; +C -1 ; WX 720 ; N Atilde ; B -27 0 769 875 ; +C -1 ; WX 720 ; N Aring ; B -27 0 769 941 ; +C -1 ; WX 760 ; N Odieresis ; B 78 -17 806 900 ; +C -1 ; WX 720 ; N Adieresis ; B -27 0 769 900 ; +C -1 ; WX 740 ; N Ntilde ; B 14 0 845 875 ; +C -1 ; WX 680 ; N Zcaron ; B 23 0 740 915 ; +C -1 ; WX 640 ; N Thorn ; B -6 0 701 681 ; +C -1 ; WX 380 ; N Iacute ; B 14 0 485 937 ; +C -1 ; WX 600 ; N plusminus ; B 91 0 595 514 ; +C -1 ; WX 600 ; N multiply ; B 91 10 595 514 ; +C -1 ; WX 720 ; N Eacute ; B 14 0 777 937 ; +C -1 ; WX 660 ; N Ydieresis ; B 72 0 817 900 ; +C -1 ; WX 408 ; N onesuperior ; B 118 279 406 688 ; +C -1 ; WX 680 ; N ugrave ; B 83 -8 720 771 ; +C -1 ; WX 620 ; N logicalnot ; B 81 129 585 421 ; +C -1 ; WX 680 ; N ntilde ; B 83 -8 715 709 ; +C -1 ; WX 760 ; N Otilde ; B 78 -17 806 875 ; +C -1 ; WX 600 ; N otilde ; B 59 -8 627 709 ; +C -1 ; WX 700 ; N Ccedilla ; B 78 -220 754 698 ; +C -1 ; WX 720 ; N Agrave ; B -27 0 769 937 ; +C -1 ; WX 1020 ; N onehalf ; B 118 0 1036 681 ; +C -1 ; WX 760 ; N Eth ; B 14 0 805 681 ; +C -1 ; WX 400 ; N degree ; B 130 398 430 698 ; +C -1 ; WX 660 ; N Yacute ; B 72 0 817 937 ; +C -1 ; WX 760 ; N Ocircumflex ; B 78 -17 806 915 ; +C -1 ; WX 600 ; N oacute ; B 59 -8 627 771 ; +C -1 ; WX 680 ; N mu ; B 54 -213 720 507 ; +C -1 ; WX 600 ; N minus ; B 91 207 595 323 ; +C -1 ; WX 600 ; N eth ; B 59 -8 662 741 ; +C -1 ; WX 600 ; N odieresis ; B 59 -8 627 734 ; +C -1 ; WX 780 ; N copyright ; B 83 -17 783 698 ; +C -1 ; WX 620 ; N brokenbar ; B 303 -175 422 675 ; +EndCharMetrics +StartKernData +StartKernPairs 92 + +KPX A y 20 +KPX A w 20 +KPX A v 20 +KPX A Y -25 +KPX A W -35 +KPX A V -40 +KPX A T -17 + +KPX F period -105 +KPX F comma -98 +KPX F A -35 + +KPX L y 62 +KPX L Y -5 +KPX L W -15 +KPX L V -19 +KPX L T -26 + +KPX P period -105 +KPX P comma -98 +KPX P A -31 + +KPX R y 27 +KPX R Y 4 +KPX R W -4 +KPX R V -8 +KPX R T -3 + +KPX T y 56 +KPX T w 69 +KPX T u 42 +KPX T semicolon 31 +KPX T s -1 +KPX T r 41 +KPX T period -107 +KPX T o -5 +KPX T i 42 +KPX T hyphen -20 +KPX T e -10 +KPX T comma -100 +KPX T colon 26 +KPX T c -8 +KPX T a -8 +KPX T A -42 + +KPX V y 17 +KPX V u -1 +KPX V semicolon -22 +KPX V r 2 +KPX V period -115 +KPX V o -50 +KPX V i 32 +KPX V hyphen -20 +KPX V e -50 +KPX V comma -137 +KPX V colon -28 +KPX V a -50 +KPX V A -50 + +KPX W y -51 +KPX W u -69 +KPX W semicolon -81 +KPX W r -66 +KPX W period -183 +KPX W o -100 +KPX W i -36 +KPX W hyphen -22 +KPX W e -100 +KPX W comma -201 +KPX W colon -86 +KPX W a -100 +KPX W A -77 + +KPX Y v 26 +KPX Y u -1 +KPX Y semicolon -4 +KPX Y q -43 +KPX Y period -113 +KPX Y o -41 +KPX Y i 20 +KPX Y hyphen -20 +KPX Y e -46 +KPX Y comma -106 +KPX Y colon -9 +KPX Y a -45 +KPX Y A -30 + +KPX f f 10 + +KPX r q -3 +KPX r period -120 +KPX r o -1 +KPX r n 39 +KPX r m 39 +KPX r hyphen -20 +KPX r h -35 +KPX r g -23 +KPX r f 42 +KPX r e -6 +KPX r d -3 +KPX r comma -113 +KPX r c -5 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 190 166 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 120 166 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 100 166 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 170 166 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 200 166 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 120 166 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 190 166 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 120 166 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 100 166 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 170 166 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 20 166 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -30 166 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -70 166 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 166 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 130 166 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 210 166 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 140 166 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 140 166 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 190 166 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 140 166 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 110 166 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 200 166 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 130 166 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 130 166 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 180 166 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 160 166 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 70 166 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 100 166 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 170 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 100 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 80 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 150 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 160 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 100 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 110 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 60 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 20 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 90 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -90 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -90 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 60 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 130 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 60 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 40 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 110 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 60 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 30 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 170 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 100 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 80 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 150 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 130 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 40 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 40 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-DmIt+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-DmIt+ new file mode 100755 index 0000000000000..c7ad35cbedc5d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-DmIt+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 700 ; N Ccaron ; B 78 -17 754 910 ; +C -1 ; WX 560 ; N ccaron ; B 58 -8 597 749 ; +C -1 ; WX 760 ; N Dcaron ; B 14 0 805 910 ; +C -1 ; WX 805 ; N dcaron ; B 60 -8 910 805 ; +C -1 ; WX 720 ; N Ecaron ; B 14 0 777 910 ; +C -1 ; WX 560 ; N ecaron ; B 59 -8 596 749 ; +C -1 ; WX 640 ; N Lcaron ; B 14 0 725 749 ; +C -1 ; WX 640 ; N Lacute ; B 14 0 725 948 ; +C -1 ; WX 505 ; N lcaron ; B 109 -8 606 805 ; +C -1 ; WX 380 ; N lacute ; B 109 -8 481 948 ; +C -1 ; WX 740 ; N Ncaron ; B 14 0 845 910 ; +C -1 ; WX 680 ; N ncaron ; B 83 -8 715 749 ; +C -1 ; WX 740 ; N Rcaron ; B 14 0 765 910 ; +C -1 ; WX 740 ; N Racute ; B 14 0 765 948 ; +C -1 ; WX 500 ; N rcaron ; B 84 0 582 749 ; +C -1 ; WX 500 ; N racute ; B 84 0 582 771 ; +C -1 ; WX 700 ; N Tcaron ; B 70 0 802 910 ; +C -1 ; WX 565 ; N tcaron ; B 106 -8 684 698 ; +C -1 ; WX 740 ; N Uring ; B 112 -17 855 910 ; +C -1 ; WX 680 ; N uring ; B 83 -8 720 775 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 206 161 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 67 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 168 161 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 561 107 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 148 161 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 40 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 332 51 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 181 177 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 257 107 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 74 177 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 158 161 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 100 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 158 161 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 275 177 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 10 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 103 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 138 161 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 335 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 213 135 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 160 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Lt b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Lt new file mode 100755 index 0000000000000..8b79ea71060d6 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Lt @@ -0,0 +1,407 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1992 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Tue Jan 21 16:15:53 1992 +Comment UniqueID 37833 +Comment VMusage 32321 39213 +FontName Bookman-Light +FullName ITC Bookman Light +FamilyName ITC Bookman +Weight Light +ItalicAngle 0 +IsFixedPitch false +FontBBox -188 -251 1266 908 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.004 +Notice Copyright (c) 1985, 1987, 1989, 1992 Adobe Systems Incorporated. All Rights Reserved.ITC Bookman is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 681 +XHeight 484 +Ascender 717 +Descender -228 +StartCharMetrics 228 +C 32 ; WX 320 ; N space ; B 0 0 0 0 ; +C 33 ; WX 300 ; N exclam ; B 75 -8 219 698 ; +C 34 ; WX 380 ; N quotedbl ; B 56 458 323 698 ; +C 35 ; WX 620 ; N numbersign ; B 65 0 556 681 ; +C 36 ; WX 620 ; N dollar ; B 34 -109 593 791 ; +C 37 ; WX 900 ; N percent ; B 22 -8 873 698 ; +C 38 ; WX 800 ; N ampersand ; B 45 -17 787 698 ; +C 39 ; WX 220 ; N quoteright ; B 46 480 178 698 ; +C 40 ; WX 300 ; N parenleft ; B 76 -145 278 727 ; +C 41 ; WX 300 ; N parenright ; B 17 -146 219 727 ; +C 42 ; WX 440 ; N asterisk ; B 54 325 391 698 ; +C 43 ; WX 600 ; N plus ; B 51 8 555 513 ; +C 44 ; WX 320 ; N comma ; B 90 -114 223 114 ; +C 45 ; WX 400 ; N hyphen ; B 50 232 350 292 ; +C 46 ; WX 320 ; N period ; B 92 -8 220 123 ; +C 47 ; WX 600 ; N slash ; B 74 -149 532 717 ; +C 48 ; WX 620 ; N zero ; B 40 -17 586 698 ; +C 49 ; WX 620 ; N one ; B 160 0 501 681 ; +C 50 ; WX 620 ; N two ; B 42 0 576 698 ; +C 51 ; WX 620 ; N three ; B 40 -17 576 698 ; +C 52 ; WX 620 ; N four ; B 25 0 600 681 ; +C 53 ; WX 620 ; N five ; B 60 -17 584 717 ; +C 54 ; WX 620 ; N six ; B 45 -17 590 698 ; +C 55 ; WX 620 ; N seven ; B 60 0 586 681 ; +C 56 ; WX 620 ; N eight ; B 44 -17 583 698 ; +C 57 ; WX 620 ; N nine ; B 37 -17 576 698 ; +C 58 ; WX 320 ; N colon ; B 92 -8 220 494 ; +C 59 ; WX 320 ; N semicolon ; B 90 -114 223 494 ; +C 60 ; WX 600 ; N less ; B 49 -2 558 526 ; +C 61 ; WX 600 ; N equal ; B 51 126 555 398 ; +C 62 ; WX 600 ; N greater ; B 48 -2 557 526 ; +C 63 ; WX 540 ; N question ; B 27 -8 514 698 ; +C 64 ; WX 820 ; N at ; B 55 -17 755 698 ; +C 65 ; WX 680 ; N A ; B -37 0 714 681 ; +C 66 ; WX 740 ; N B ; B 31 0 702 681 ; +C 67 ; WX 740 ; N C ; B 44 -17 702 698 ; +C 68 ; WX 800 ; N D ; B 31 0 752 681 ; +C 69 ; WX 720 ; N E ; B 31 0 705 681 ; +C 70 ; WX 640 ; N F ; B 31 0 654 681 ; +C 71 ; WX 800 ; N G ; B 44 -17 778 698 ; +C 72 ; WX 800 ; N H ; B 31 0 769 681 ; +C 73 ; WX 340 ; N I ; B 31 0 301 681 ; +C 74 ; WX 600 ; N J ; B -23 -17 567 681 ; +C 75 ; WX 720 ; N K ; B 31 0 750 681 ; +C 76 ; WX 600 ; N L ; B 31 0 629 681 ; +C 77 ; WX 920 ; N M ; B 26 0 894 681 ; +C 78 ; WX 740 ; N N ; B 26 0 722 681 ; +C 79 ; WX 800 ; N O ; B 44 -17 758 698 ; +C 80 ; WX 620 ; N P ; B 31 0 613 681 ; +C 81 ; WX 820 ; N Q ; B 44 -189 769 698 ; +C 82 ; WX 720 ; N R ; B 31 0 757 681 ; +C 83 ; WX 660 ; N S ; B 28 -17 634 698 ; +C 84 ; WX 620 ; N T ; B -37 0 656 681 ; +C 85 ; WX 780 ; N U ; B 25 -17 754 681 ; +C 86 ; WX 700 ; N V ; B -30 0 725 681 ; +C 87 ; WX 960 ; N W ; B -30 0 984 681 ; +C 88 ; WX 720 ; N X ; B -30 0 755 681 ; +C 89 ; WX 640 ; N Y ; B -30 0 666 681 ; +C 90 ; WX 640 ; N Z ; B 10 0 656 681 ; +C 91 ; WX 300 ; N bracketleft ; B 92 -136 258 717 ; +C 92 ; WX 600 ; N backslash ; B 74 0 532 717 ; +C 93 ; WX 300 ; N bracketright ; B 41 -136 207 717 ; +C 94 ; WX 600 ; N asciicircum ; B 52 276 554 681 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 220 ; N quoteleft ; B 46 479 178 698 ; +C 97 ; WX 580 ; N a ; B 35 -8 587 494 ; +C 98 ; WX 620 ; N b ; B -2 -8 582 717 ; +C 99 ; WX 520 ; N c ; B 37 -8 498 494 ; +C 100 ; WX 620 ; N d ; B 37 -8 591 717 ; +C 101 ; WX 520 ; N e ; B 37 -8 491 494 ; +C 102 ; WX 320 ; N f ; B 20 0 414 734 ; L i fi ; L l fl ; +C 103 ; WX 540 ; N g ; B 17 -243 542 567 ; +C 104 ; WX 660 ; N h ; B 20 0 643 717 ; +C 105 ; WX 300 ; N i ; B 20 0 288 654 ; +C 106 ; WX 300 ; N j ; B -109 -251 214 654 ; +C 107 ; WX 620 ; N k ; B 20 0 628 717 ; +C 108 ; WX 300 ; N l ; B 20 0 286 717 ; +C 109 ; WX 940 ; N m ; B 17 0 928 494 ; +C 110 ; WX 660 ; N n ; B 20 0 649 494 ; +C 111 ; WX 560 ; N o ; B 37 -8 526 494 ; +C 112 ; WX 620 ; N p ; B 20 -228 583 494 ; +C 113 ; WX 580 ; N q ; B 37 -228 589 494 ; +C 114 ; WX 440 ; N r ; B 20 0 447 494 ; +C 115 ; WX 520 ; N s ; B 40 -8 487 494 ; +C 116 ; WX 380 ; N t ; B 20 -8 388 667 ; +C 117 ; WX 680 ; N u ; B 20 -8 653 484 ; +C 118 ; WX 520 ; N v ; B -23 0 534 484 ; +C 119 ; WX 780 ; N w ; B -19 0 804 484 ; +C 120 ; WX 560 ; N x ; B -16 0 576 484 ; +C 121 ; WX 540 ; N y ; B -23 -236 549 484 ; +C 122 ; WX 480 ; N z ; B 7 0 476 484 ; +C 123 ; WX 280 ; N braceleft ; B 21 -136 260 717 ; +C 124 ; WX 600 ; N bar ; B 264 -250 342 750 ; +C 125 ; WX 280 ; N braceright ; B 21 -136 260 717 ; +C 126 ; WX 600 ; N asciitilde ; B 52 173 556 352 ; +C 161 ; WX 300 ; N exclamdown ; B 75 -214 219 494 ; +C 162 ; WX 620 ; N cent ; B 116 20 511 651 ; +C 163 ; WX 620 ; N sterling ; B 8 -17 631 698 ; +C 164 ; WX 140 ; N fraction ; B -188 0 335 681 ; +C 165 ; WX 620 ; N yen ; B -22 0 647 681 ; +C 166 ; WX 620 ; N florin ; B -29 -155 633 749 ; +C 167 ; WX 520 ; N section ; B 33 -178 486 698 ; +C 168 ; WX 620 ; N currency ; B 58 89 563 591 ; +C 169 ; WX 220 ; N quotesingle ; B 67 458 153 698 ; +C 170 ; WX 400 ; N quotedblleft ; B 46 479 348 698 ; +C 171 ; WX 360 ; N guillemotleft ; B 51 89 312 437 ; +C 172 ; WX 240 ; N guilsinglleft ; B 51 89 189 437 ; +C 173 ; WX 240 ; N guilsinglright ; B 51 89 189 437 ; +C 174 ; WX 620 ; N fi ; B 20 0 608 734 ; +C 175 ; WX 620 ; N fl ; B 20 0 606 734 ; +C 177 ; WX 500 ; N endash ; B -15 232 515 292 ; +C 178 ; WX 540 ; N dagger ; B 79 -156 455 698 ; +C 179 ; WX 540 ; N daggerdbl ; B 79 -156 455 698 ; +C 180 ; WX 320 ; N periodcentered ; B 92 196 220 327 ; +C 182 ; WX 600 ; N paragraph ; B 14 0 577 681 ; +C 183 ; WX 460 ; N bullet ; B 60 170 404 511 ; +C 184 ; WX 220 ; N quotesinglbase ; B 46 -108 178 110 ; +C 185 ; WX 400 ; N quotedblbase ; B 46 -108 348 110 ; +C 186 ; WX 400 ; N quotedblright ; B 46 480 348 698 ; +C 187 ; WX 360 ; N guillemotright ; B 51 89 312 437 ; +C 188 ; WX 1000 ; N ellipsis ; B 101 -8 898 123 ; +C 189 ; WX 1280 ; N perthousand ; B 22 -8 1266 698 ; +C 191 ; WX 540 ; N questiondown ; B 23 -217 510 494 ; +C 193 ; WX 340 ; N grave ; B 68 571 274 689 ; +C 194 ; WX 340 ; N acute ; B 68 571 274 689 ; +C 195 ; WX 420 ; N circumflex ; B 68 567 352 685 ; +C 196 ; WX 440 ; N tilde ; B 68 572 375 661 ; +C 197 ; WX 440 ; N macron ; B 68 587 364 635 ; +C 198 ; WX 460 ; N breve ; B 68 568 396 687 ; +C 199 ; WX 260 ; N dotaccent ; B 68 552 186 672 ; +C 200 ; WX 420 ; N dieresis ; B 68 552 349 674 ; +C 202 ; WX 320 ; N ring ; B 68 546 252 731 ; +C 203 ; WX 320 ; N cedilla ; B 68 -200 257 0 ; +C 205 ; WX 380 ; N hungarumlaut ; B 68 538 311 698 ; +C 206 ; WX 320 ; N ogonek ; B 68 -145 245 0 ; +C 207 ; WX 420 ; N caron ; B 68 554 352 672 ; +C 208 ; WX 1000 ; N emdash ; B -15 232 1015 292 ; +C 225 ; WX 1260 ; N AE ; B -36 0 1250 681 ; +C 227 ; WX 420 ; N ordfeminine ; B 49 395 393 698 ; +C 232 ; WX 600 ; N Lslash ; B 31 0 629 681 ; +C 233 ; WX 800 ; N Oslash ; B 44 -53 758 733 ; +C 234 ; WX 1240 ; N OE ; B 44 -17 1214 698 ; +C 235 ; WX 420 ; N ordmasculine ; B 56 394 361 698 ; +C 241 ; WX 860 ; N ae ; B 35 -8 832 494 ; +C 245 ; WX 300 ; N dotlessi ; B 20 0 288 484 ; +C 248 ; WX 320 ; N lslash ; B 20 0 291 717 ; +C 249 ; WX 560 ; N oslash ; B 37 -40 526 534 ; +C 250 ; WX 900 ; N oe ; B 37 -8 876 494 ; +C 251 ; WX 660 ; N germandbls ; B -109 -110 614 698 ; +C -1 ; WX 520 ; N ecircumflex ; B 37 -8 491 685 ; +C -1 ; WX 520 ; N edieresis ; B 37 -8 491 674 ; +C -1 ; WX 580 ; N aacute ; B 35 -8 587 689 ; +C -1 ; WX 740 ; N registered ; B 23 -17 723 698 ; +C -1 ; WX 300 ; N icircumflex ; B 8 0 292 685 ; +C -1 ; WX 680 ; N udieresis ; B 20 -8 653 674 ; +C -1 ; WX 560 ; N ograve ; B 37 -8 526 689 ; +C -1 ; WX 680 ; N uacute ; B 20 -8 653 689 ; +C -1 ; WX 680 ; N ucircumflex ; B 20 -8 653 685 ; +C -1 ; WX 680 ; N Aacute ; B -37 0 714 866 ; +C -1 ; WX 300 ; N igrave ; B 20 0 288 689 ; +C -1 ; WX 340 ; N Icircumflex ; B 28 0 312 862 ; +C -1 ; WX 520 ; N ccedilla ; B 37 -200 498 494 ; +C -1 ; WX 580 ; N adieresis ; B 35 -8 587 674 ; +C -1 ; WX 720 ; N Ecircumflex ; B 31 0 705 862 ; +C -1 ; WX 520 ; N scaron ; B 40 -8 487 672 ; +C -1 ; WX 620 ; N thorn ; B 20 -228 583 717 ; +C -1 ; WX 980 ; N trademark ; B 34 277 930 681 ; +C -1 ; WX 520 ; N egrave ; B 37 -8 491 689 ; +C -1 ; WX 372 ; N threesuperior ; B 12 269 360 698 ; +C -1 ; WX 480 ; N zcaron ; B 7 0 476 672 ; +C -1 ; WX 580 ; N atilde ; B 35 -8 587 661 ; +C -1 ; WX 580 ; N aring ; B 35 -8 587 731 ; +C -1 ; WX 560 ; N ocircumflex ; B 37 -8 526 685 ; +C -1 ; WX 720 ; N Edieresis ; B 31 0 705 851 ; +C -1 ; WX 930 ; N threequarters ; B 52 0 889 691 ; +C -1 ; WX 540 ; N ydieresis ; B -23 -236 549 674 ; +C -1 ; WX 540 ; N yacute ; B -23 -236 549 689 ; +C -1 ; WX 300 ; N iacute ; B 20 0 288 689 ; +C -1 ; WX 680 ; N Acircumflex ; B -37 0 714 862 ; +C -1 ; WX 780 ; N Uacute ; B 25 -17 754 866 ; +C -1 ; WX 520 ; N eacute ; B 37 -8 491 689 ; +C -1 ; WX 800 ; N Ograve ; B 44 -17 758 866 ; +C -1 ; WX 580 ; N agrave ; B 35 -8 587 689 ; +C -1 ; WX 780 ; N Udieresis ; B 25 -17 754 851 ; +C -1 ; WX 580 ; N acircumflex ; B 35 -8 587 685 ; +C -1 ; WX 340 ; N Igrave ; B 31 0 301 866 ; +C -1 ; WX 372 ; N twosuperior ; B 20 279 367 698 ; +C -1 ; WX 780 ; N Ugrave ; B 25 -17 754 866 ; +C -1 ; WX 930 ; N onequarter ; B 80 0 869 681 ; +C -1 ; WX 780 ; N Ucircumflex ; B 25 -17 754 862 ; +C -1 ; WX 660 ; N Scaron ; B 28 -17 634 849 ; +C -1 ; WX 340 ; N Idieresis ; B 28 0 309 851 ; +C -1 ; WX 300 ; N idieresis ; B 8 0 289 674 ; +C -1 ; WX 720 ; N Egrave ; B 31 0 705 866 ; +C -1 ; WX 800 ; N Oacute ; B 44 -17 758 866 ; +C -1 ; WX 600 ; N divide ; B 51 10 555 514 ; +C -1 ; WX 680 ; N Atilde ; B -37 0 714 838 ; +C -1 ; WX 680 ; N Aring ; B -37 0 714 908 ; +C -1 ; WX 800 ; N Odieresis ; B 44 -17 758 851 ; +C -1 ; WX 680 ; N Adieresis ; B -37 0 714 851 ; +C -1 ; WX 740 ; N Ntilde ; B 26 0 722 838 ; +C -1 ; WX 640 ; N Zcaron ; B 10 0 656 849 ; +C -1 ; WX 620 ; N Thorn ; B 31 0 613 681 ; +C -1 ; WX 340 ; N Iacute ; B 31 0 301 866 ; +C -1 ; WX 600 ; N plusminus ; B 51 0 555 513 ; +C -1 ; WX 600 ; N multiply ; B 51 9 555 513 ; +C -1 ; WX 720 ; N Eacute ; B 31 0 705 866 ; +C -1 ; WX 640 ; N Ydieresis ; B -30 0 666 851 ; +C -1 ; WX 372 ; N onesuperior ; B 80 279 302 688 ; +C -1 ; WX 680 ; N ugrave ; B 20 -8 653 689 ; +C -1 ; WX 600 ; N logicalnot ; B 51 128 555 398 ; +C -1 ; WX 660 ; N ntilde ; B 20 0 649 661 ; +C -1 ; WX 800 ; N Otilde ; B 44 -17 758 838 ; +C -1 ; WX 560 ; N otilde ; B 37 -8 526 661 ; +C -1 ; WX 740 ; N Ccedilla ; B 44 -200 702 698 ; +C -1 ; WX 680 ; N Agrave ; B -37 0 714 866 ; +C -1 ; WX 930 ; N onehalf ; B 80 0 885 681 ; +C -1 ; WX 800 ; N Eth ; B 31 0 752 681 ; +C -1 ; WX 400 ; N degree ; B 50 398 350 698 ; +C -1 ; WX 640 ; N Yacute ; B -30 0 666 866 ; +C -1 ; WX 800 ; N Ocircumflex ; B 44 -17 758 862 ; +C -1 ; WX 560 ; N oacute ; B 37 -8 526 689 ; +C -1 ; WX 680 ; N mu ; B 20 -251 653 484 ; +C -1 ; WX 600 ; N minus ; B 51 224 555 300 ; +C -1 ; WX 560 ; N eth ; B 37 -8 526 734 ; +C -1 ; WX 560 ; N odieresis ; B 37 -8 526 674 ; +C -1 ; WX 740 ; N copyright ; B 24 -17 724 698 ; +C -1 ; WX 600 ; N brokenbar ; B 264 -175 342 675 ; +EndCharMetrics +StartKernData +StartKernPairs 82 + +KPX A y 32 +KPX A w 4 +KPX A v 7 +KPX A Y -35 +KPX A W -40 +KPX A V -56 +KPX A T 1 + +KPX F period -46 +KPX F comma -41 +KPX F A -21 + +KPX L y 79 +KPX L Y 13 +KPX L W 1 +KPX L V -4 +KPX L T 28 + +KPX P period -60 +KPX P comma -55 +KPX P A -8 + +KPX R y 59 +KPX R Y 26 +KPX R W 13 +KPX R V 8 +KPX R T 71 + +KPX T s 16 +KPX T r 38 +KPX T period -33 +KPX T o 15 +KPX T i 42 +KPX T hyphen 90 +KPX T e 13 +KPX T comma -28 +KPX T c 14 +KPX T a 17 +KPX T A 1 + +KPX V y 15 +KPX V u -38 +KPX V r -41 +KPX V period -40 +KPX V o -71 +KPX V i -20 +KPX V hyphen 11 +KPX V e -72 +KPX V comma -34 +KPX V a -69 +KPX V A -66 + +KPX W y 15 +KPX W u -38 +KPX W r -41 +KPX W period -40 +KPX W o -68 +KPX W i -20 +KPX W hyphen 11 +KPX W e -69 +KPX W comma -34 +KPX W a -66 +KPX W A -64 + +KPX Y v 15 +KPX Y u -38 +KPX Y q -55 +KPX Y period -40 +KPX Y p -31 +KPX Y o -57 +KPX Y i -37 +KPX Y hyphen 11 +KPX Y e -58 +KPX Y comma -34 +KPX Y a -54 +KPX Y A -53 + +KPX f f 29 + +KPX r q 9 +KPX r period -64 +KPX r o 8 +KPX r n 31 +KPX r m 31 +KPX r hyphen 70 +KPX r h -21 +KPX r g -4 +KPX r f 33 +KPX r e 7 +KPX r d 7 +KPX r comma -58 +KPX r c 7 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 200 177 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 130 177 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 130 177 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 140 177 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 180 177 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 120 177 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 220 177 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 150 177 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 150 177 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 160 177 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 20 177 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -40 177 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -40 177 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -20 177 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 150 177 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 260 177 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 190 177 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 190 177 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 200 177 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 180 177 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 120 177 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 250 177 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 180 177 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 180 177 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 190 177 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 150 177 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 110 177 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 110 177 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 120 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 80 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 80 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 120 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 130 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 70 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 90 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 50 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 50 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 90 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -20 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -60 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -60 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -20 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 110 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 110 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 70 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 70 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 110 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 60 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 50 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 170 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 130 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 130 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 170 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 100 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 60 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 30 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Lt+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Lt+ new file mode 100755 index 0000000000000..4aedf587b6658 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Lt+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 740 ; N Ccaron ; B 44 -17 702 861 ; +C -1 ; WX 520 ; N ccaron ; B 37 -8 498 672 ; +C -1 ; WX 800 ; N Dcaron ; B 31 0 752 861 ; +C -1 ; WX 712 ; N dcaron ; B 37 -8 736 789 ; +C -1 ; WX 720 ; N Ecaron ; B 31 0 705 861 ; +C -1 ; WX 520 ; N ecaron ; B 37 -8 491 672 ; +C -1 ; WX 600 ; N Lcaron ; B 31 0 629 749 ; +C -1 ; WX 600 ; N Lacute ; B 31 0 629 861 ; +C -1 ; WX 392 ; N lcaron ; B 20 0 431 789 ; +C -1 ; WX 300 ; N lacute ; B 20 0 286 861 ; +C -1 ; WX 740 ; N Ncaron ; B 26 0 722 861 ; +C -1 ; WX 660 ; N ncaron ; B 20 0 649 672 ; +C -1 ; WX 720 ; N Rcaron ; B 31 0 757 861 ; +C -1 ; WX 720 ; N Racute ; B 31 0 757 861 ; +C -1 ; WX 440 ; N rcaron ; B 20 0 447 672 ; +C -1 ; WX 440 ; N racute ; B 20 0 447 689 ; +C -1 ; WX 620 ; N Tcaron ; B -37 0 656 861 ; +C -1 ; WX 472 ; N tcaron ; B 20 -8 533 698 ; +C -1 ; WX 780 ; N Uring ; B 25 -17 754 861 ; +C -1 ; WX 680 ; N uring ; B 20 -8 653 731 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 226 189 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 73 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 190 189 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 558 91 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 150 189 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 50 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 268 51 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 130 172 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 253 91 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 1 172 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 160 189 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 120 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 150 189 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 229 172 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 10 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 71 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 100 189 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 355 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 230 130 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 180 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-LtIt b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-LtIt new file mode 100755 index 0000000000000..419c319a2573a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-LtIt @@ -0,0 +1,410 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1992 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Tue Jan 21 16:12:06 1992 +Comment UniqueID 37830 +Comment VMusage 33139 40031 +FontName Bookman-LightItalic +FullName ITC Bookman Light Italic +FamilyName ITC Bookman +Weight Light +ItalicAngle -10 +IsFixedPitch false +FontBBox -228 -250 1269 883 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.004 +Notice Copyright (c) 1985, 1987, 1989, 1992 Adobe Systems Incorporated. All Rights Reserved.ITC Bookman is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 681 +XHeight 494 +Ascender 717 +Descender -212 +StartCharMetrics 228 +C 32 ; WX 300 ; N space ; B 0 0 0 0 ; +C 33 ; WX 320 ; N exclam ; B 103 -8 342 698 ; +C 34 ; WX 360 ; N quotedbl ; B 107 468 402 698 ; +C 35 ; WX 620 ; N numbersign ; B 107 0 598 681 ; +C 36 ; WX 620 ; N dollar ; B 78 -85 619 762 ; +C 37 ; WX 800 ; N percent ; B 56 -8 811 691 ; +C 38 ; WX 820 ; N ampersand ; B 65 -18 848 698 ; +C 39 ; WX 280 ; N quoteright ; B 148 470 288 698 ; +C 40 ; WX 280 ; N parenleft ; B 96 -146 383 727 ; +C 41 ; WX 280 ; N parenright ; B -8 -146 279 727 ; +C 42 ; WX 440 ; N asterisk ; B 139 324 505 698 ; +C 43 ; WX 600 ; N plus ; B 91 43 595 548 ; +C 44 ; WX 300 ; N comma ; B 88 -115 227 112 ; +C 45 ; WX 320 ; N hyphen ; B 78 269 336 325 ; +C 46 ; WX 300 ; N period ; B 96 -8 231 127 ; +C 47 ; WX 600 ; N slash ; B 104 -149 562 717 ; +C 48 ; WX 620 ; N zero ; B 86 -17 646 698 ; +C 49 ; WX 620 ; N one ; B 154 0 500 681 ; +C 50 ; WX 620 ; N two ; B 66 0 636 698 ; +C 51 ; WX 620 ; N three ; B 55 -17 622 698 ; +C 52 ; WX 620 ; N four ; B 69 0 634 681 ; +C 53 ; WX 620 ; N five ; B 70 -17 614 681 ; +C 54 ; WX 620 ; N six ; B 89 -17 657 698 ; +C 55 ; WX 620 ; N seven ; B 143 0 672 681 ; +C 56 ; WX 620 ; N eight ; B 61 -17 655 698 ; +C 57 ; WX 620 ; N nine ; B 77 -17 649 698 ; +C 58 ; WX 300 ; N colon ; B 96 -8 292 494 ; +C 59 ; WX 300 ; N semicolon ; B 88 -114 292 494 ; +C 60 ; WX 600 ; N less ; B 79 33 588 561 ; +C 61 ; WX 600 ; N equal ; B 91 161 595 433 ; +C 62 ; WX 600 ; N greater ; B 93 33 602 561 ; +C 63 ; WX 540 ; N question ; B 114 -8 604 698 ; +C 64 ; WX 780 ; N at ; B 102 -17 802 698 ; +C 65 ; WX 700 ; N A ; B -25 0 720 681 ; +C 66 ; WX 720 ; N B ; B 21 0 746 681 ; +C 67 ; WX 720 ; N C ; B 88 -17 746 698 ; +C 68 ; WX 740 ; N D ; B 21 0 782 681 ; +C 69 ; WX 680 ; N E ; B 21 0 736 681 ; +C 70 ; WX 620 ; N F ; B 21 0 743 681 ; +C 71 ; WX 760 ; N G ; B 88 -17 813 698 ; +C 72 ; WX 800 ; N H ; B 21 0 888 681 ; +C 73 ; WX 320 ; N I ; B 21 0 412 681 ; +C 74 ; WX 560 ; N J ; B -2 -17 666 681 ; +C 75 ; WX 720 ; N K ; B 21 0 804 681 ; +C 76 ; WX 580 ; N L ; B 21 0 656 681 ; +C 77 ; WX 860 ; N M ; B 18 0 956 681 ; +C 78 ; WX 720 ; N N ; B 18 0 823 681 ; +C 79 ; WX 760 ; N O ; B 88 -17 799 698 ; +C 80 ; WX 600 ; N P ; B 21 0 681 681 ; +C 81 ; WX 780 ; N Q ; B 61 -191 812 698 ; +C 82 ; WX 700 ; N R ; B 21 0 736 681 ; +C 83 ; WX 640 ; N S ; B 61 -17 668 698 ; +C 84 ; WX 600 ; N T ; B 50 0 725 681 ; +C 85 ; WX 720 ; N U ; B 118 -17 842 681 ; +C 86 ; WX 680 ; N V ; B 87 0 815 681 ; +C 87 ; WX 960 ; N W ; B 87 0 1095 681 ; +C 88 ; WX 700 ; N X ; B -25 0 815 681 ; +C 89 ; WX 660 ; N Y ; B 87 0 809 681 ; +C 90 ; WX 580 ; N Z ; B 8 0 695 681 ; +C 91 ; WX 260 ; N bracketleft ; B 56 -136 351 717 ; +C 92 ; WX 600 ; N backslash ; B 84 0 542 717 ; +C 93 ; WX 260 ; N bracketright ; B 15 -136 309 717 ; +C 94 ; WX 600 ; N asciicircum ; B 97 276 599 681 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 280 ; N quoteleft ; B 191 470 330 698 ; +C 97 ; WX 620 ; N a ; B 71 -8 686 494 ; +C 98 ; WX 600 ; N b ; B 88 -8 621 717 ; +C 99 ; WX 480 ; N c ; B 65 -8 522 494 ; +C 100 ; WX 640 ; N d ; B 65 -8 695 717 ; +C 101 ; WX 540 ; N e ; B 65 -8 575 494 ; +C 102 ; WX 340 ; N f ; B -160 -218 557 725 ; L i fi ; L l fl ; +C 103 ; WX 560 ; N g ; B 4 -221 581 494 ; +C 104 ; WX 620 ; N h ; B 88 -8 689 717 ; +C 105 ; WX 280 ; N i ; B 88 -8 351 663 ; +C 106 ; WX 280 ; N j ; B -200 -221 308 663 ; +C 107 ; WX 600 ; N k ; B 88 -8 657 717 ; +C 108 ; WX 280 ; N l ; B 100 -8 342 717 ; +C 109 ; WX 880 ; N m ; B 88 -8 952 494 ; +C 110 ; WX 620 ; N n ; B 88 -8 673 494 ; +C 111 ; WX 540 ; N o ; B 65 -8 572 494 ; +C 112 ; WX 600 ; N p ; B -24 -212 620 494 ; +C 113 ; WX 560 ; N q ; B 65 -212 584 494 ; +C 114 ; WX 400 ; N r ; B 88 0 481 494 ; +C 115 ; WX 540 ; N s ; B 65 -8 547 494 ; +C 116 ; WX 340 ; N t ; B 88 -8 411 664 ; +C 117 ; WX 620 ; N u ; B 88 -8 686 484 ; +C 118 ; WX 540 ; N v ; B 88 -8 562 494 ; +C 119 ; WX 880 ; N w ; B 88 -8 893 494 ; +C 120 ; WX 540 ; N x ; B 9 -8 626 494 ; +C 121 ; WX 600 ; N y ; B 60 -221 609 484 ; +C 122 ; WX 520 ; N z ; B 38 -8 561 494 ; +C 123 ; WX 360 ; N braceleft ; B 122 -191 442 717 ; +C 124 ; WX 600 ; N bar ; B 294 -250 372 750 ; +C 125 ; WX 380 ; N braceright ; B 13 -191 333 717 ; +C 126 ; WX 600 ; N asciitilde ; B 91 207 595 386 ; +C 161 ; WX 320 ; N exclamdown ; B 73 -213 301 494 ; +C 162 ; WX 620 ; N cent ; B 148 -29 596 715 ; +C 163 ; WX 620 ; N sterling ; B 4 -17 702 698 ; +C 164 ; WX 20 ; N fraction ; B -228 0 323 681 ; +C 165 ; WX 620 ; N yen ; B 71 0 735 681 ; +C 166 ; WX 620 ; N florin ; B -26 -218 692 725 ; +C 167 ; WX 620 ; N section ; B 38 -178 638 698 ; +C 168 ; WX 620 ; N currency ; B 100 89 605 591 ; +C 169 ; WX 200 ; N quotesingle ; B 99 473 247 698 ; +C 170 ; WX 440 ; N quotedblleft ; B 191 470 493 698 ; +C 171 ; WX 300 ; N guillemotleft ; B 70 129 313 434 ; +C 172 ; WX 180 ; N guilsinglleft ; B 75 129 208 434 ; +C 173 ; WX 180 ; N guilsinglright ; B 70 129 203 434 ; +C 174 ; WX 640 ; N fi ; B -159 -222 709 725 ; +C 175 ; WX 660 ; N fl ; B -159 -218 713 725 ; +C 177 ; WX 500 ; N endash ; B 33 269 561 325 ; +C 178 ; WX 620 ; N dagger ; B 192 -130 570 698 ; +C 179 ; WX 620 ; N daggerdbl ; B 144 -122 566 698 ; +C 180 ; WX 300 ; N periodcentered ; B 137 229 272 364 ; +C 182 ; WX 620 ; N paragraph ; B 112 0 718 681 ; +C 183 ; WX 460 ; N bullet ; B 100 170 444 511 ; +C 184 ; WX 320 ; N quotesinglbase ; B 87 -114 226 113 ; +C 185 ; WX 480 ; N quotedblbase ; B 87 -114 390 113 ; +C 186 ; WX 440 ; N quotedblright ; B 148 470 451 698 ; +C 187 ; WX 300 ; N guillemotright ; B 60 129 303 434 ; +C 188 ; WX 1000 ; N ellipsis ; B 99 -8 900 127 ; +C 189 ; WX 1180 ; N perthousand ; B 56 -8 1199 691 ; +C 191 ; WX 540 ; N questiondown ; B 18 -212 508 494 ; +C 193 ; WX 340 ; N grave ; B 182 551 377 706 ; +C 194 ; WX 320 ; N acute ; B 178 551 373 706 ; +C 195 ; WX 440 ; N circumflex ; B 176 571 479 685 ; +C 196 ; WX 440 ; N tilde ; B 180 586 488 671 ; +C 197 ; WX 440 ; N macron ; B 178 599 484 658 ; +C 198 ; WX 440 ; N breve ; B 191 577 500 680 ; +C 199 ; WX 260 ; N dotaccent ; B 169 543 290 664 ; +C 200 ; WX 420 ; N dieresis ; B 185 569 467 688 ; +C 202 ; WX 300 ; N ring ; B 178 551 334 706 ; +C 203 ; WX 320 ; N cedilla ; B 45 -178 240 0 ; +C 205 ; WX 340 ; N hungarumlaut ; B 167 547 402 738 ; +C 206 ; WX 260 ; N ogonek ; B 51 -173 184 0 ; +C 207 ; WX 440 ; N caron ; B 178 571 481 684 ; +C 208 ; WX 1000 ; N emdash ; B 33 269 1061 325 ; +C 225 ; WX 1220 ; N AE ; B -45 0 1269 681 ; +C 227 ; WX 440 ; N ordfeminine ; B 130 396 513 698 ; +C 232 ; WX 580 ; N Lslash ; B 21 0 656 681 ; +C 233 ; WX 760 ; N Oslash ; B 88 -95 799 777 ; +C 234 ; WX 1180 ; N OE ; B 88 -17 1237 698 ; +C 235 ; WX 400 ; N ordmasculine ; B 139 396 455 698 ; +C 241 ; WX 880 ; N ae ; B 71 -8 918 494 ; +C 245 ; WX 280 ; N dotlessi ; B 88 -8 351 484 ; +C 248 ; WX 340 ; N lslash ; B 50 -8 398 717 ; +C 249 ; WX 540 ; N oslash ; B 65 -49 571 532 ; +C 250 ; WX 900 ; N oe ; B 65 -8 948 494 ; +C 251 ; WX 620 ; N germandbls ; B -121 -111 653 698 ; +C -1 ; WX 540 ; N ecircumflex ; B 65 -8 575 685 ; +C -1 ; WX 540 ; N edieresis ; B 65 -8 575 688 ; +C -1 ; WX 620 ; N aacute ; B 71 -8 686 706 ; +C -1 ; WX 740 ; N registered ; B 84 -17 784 698 ; +C -1 ; WX 280 ; N icircumflex ; B 76 -8 379 685 ; +C -1 ; WX 620 ; N udieresis ; B 88 -8 686 688 ; +C -1 ; WX 540 ; N ograve ; B 65 -8 572 706 ; +C -1 ; WX 620 ; N uacute ; B 88 -8 686 706 ; +C -1 ; WX 620 ; N ucircumflex ; B 88 -8 686 685 ; +C -1 ; WX 700 ; N Aacute ; B -25 0 720 883 ; +C -1 ; WX 280 ; N igrave ; B 88 -8 351 706 ; +C -1 ; WX 320 ; N Icircumflex ; B 21 0 449 862 ; +C -1 ; WX 480 ; N ccedilla ; B 65 -178 522 494 ; +C -1 ; WX 620 ; N adieresis ; B 71 -8 686 688 ; +C -1 ; WX 680 ; N Ecircumflex ; B 21 0 736 862 ; +C -1 ; WX 540 ; N scaron ; B 65 -8 547 684 ; +C -1 ; WX 600 ; N thorn ; B -24 -212 620 717 ; +C -1 ; WX 980 ; N trademark ; B 69 277 965 681 ; +C -1 ; WX 540 ; N egrave ; B 65 -8 575 706 ; +C -1 ; WX 372 ; N threesuperior ; B 70 269 439 698 ; +C -1 ; WX 520 ; N zcaron ; B 38 -8 561 684 ; +C -1 ; WX 620 ; N atilde ; B 71 -8 686 671 ; +C -1 ; WX 620 ; N aring ; B 71 -8 686 706 ; +C -1 ; WX 540 ; N ocircumflex ; B 65 -8 572 685 ; +C -1 ; WX 680 ; N Edieresis ; B 21 0 736 865 ; +C -1 ; WX 930 ; N threequarters ; B 99 0 913 691 ; +C -1 ; WX 600 ; N ydieresis ; B 60 -221 609 688 ; +C -1 ; WX 600 ; N yacute ; B 60 -221 609 706 ; +C -1 ; WX 280 ; N iacute ; B 88 -8 351 706 ; +C -1 ; WX 700 ; N Acircumflex ; B -25 0 720 862 ; +C -1 ; WX 720 ; N Uacute ; B 118 -17 842 883 ; +C -1 ; WX 540 ; N eacute ; B 65 -8 575 706 ; +C -1 ; WX 760 ; N Ograve ; B 88 -17 799 883 ; +C -1 ; WX 620 ; N agrave ; B 71 -8 686 706 ; +C -1 ; WX 720 ; N Udieresis ; B 118 -17 842 865 ; +C -1 ; WX 620 ; N acircumflex ; B 71 -8 686 685 ; +C -1 ; WX 320 ; N Igrave ; B 21 0 412 883 ; +C -1 ; WX 372 ; N twosuperior ; B 68 279 439 698 ; +C -1 ; WX 720 ; N Ugrave ; B 118 -17 842 883 ; +C -1 ; WX 930 ; N onequarter ; B 91 0 913 681 ; +C -1 ; WX 720 ; N Ucircumflex ; B 118 -17 842 862 ; +C -1 ; WX 640 ; N Scaron ; B 61 -17 668 861 ; +C -1 ; WX 320 ; N Idieresis ; B 21 0 447 865 ; +C -1 ; WX 280 ; N idieresis ; B 88 -8 377 688 ; +C -1 ; WX 680 ; N Egrave ; B 21 0 736 883 ; +C -1 ; WX 760 ; N Oacute ; B 88 -17 799 883 ; +C -1 ; WX 600 ; N divide ; B 91 46 595 548 ; +C -1 ; WX 700 ; N Atilde ; B -25 0 720 848 ; +C -1 ; WX 700 ; N Aring ; B -25 0 720 883 ; +C -1 ; WX 760 ; N Odieresis ; B 88 -17 799 865 ; +C -1 ; WX 700 ; N Adieresis ; B -25 0 720 865 ; +C -1 ; WX 720 ; N Ntilde ; B 18 0 823 848 ; +C -1 ; WX 580 ; N Zcaron ; B 8 0 695 861 ; +C -1 ; WX 600 ; N Thorn ; B 21 0 656 681 ; +C -1 ; WX 320 ; N Iacute ; B 21 0 412 883 ; +C -1 ; WX 600 ; N plusminus ; B 91 0 595 548 ; +C -1 ; WX 600 ; N multiply ; B 91 44 595 548 ; +C -1 ; WX 680 ; N Eacute ; B 21 0 736 883 ; +C -1 ; WX 660 ; N Ydieresis ; B 87 0 809 865 ; +C -1 ; WX 372 ; N onesuperior ; B 114 279 339 688 ; +C -1 ; WX 620 ; N ugrave ; B 88 -8 686 706 ; +C -1 ; WX 600 ; N logicalnot ; B 91 163 595 433 ; +C -1 ; WX 620 ; N ntilde ; B 88 -8 673 671 ; +C -1 ; WX 760 ; N Otilde ; B 88 -17 799 848 ; +C -1 ; WX 540 ; N otilde ; B 65 -8 572 671 ; +C -1 ; WX 720 ; N Ccedilla ; B 88 -178 746 698 ; +C -1 ; WX 700 ; N Agrave ; B -25 0 720 883 ; +C -1 ; WX 930 ; N onehalf ; B 91 0 925 681 ; +C -1 ; WX 740 ; N Eth ; B 21 0 782 681 ; +C -1 ; WX 400 ; N degree ; B 120 398 420 698 ; +C -1 ; WX 660 ; N Yacute ; B 87 0 809 883 ; +C -1 ; WX 760 ; N Ocircumflex ; B 88 -17 799 862 ; +C -1 ; WX 540 ; N oacute ; B 65 -8 572 706 ; +C -1 ; WX 620 ; N mu ; B 53 -221 686 484 ; +C -1 ; WX 600 ; N minus ; B 91 259 595 335 ; +C -1 ; WX 540 ; N eth ; B 65 -8 642 725 ; +C -1 ; WX 540 ; N odieresis ; B 65 -8 572 688 ; +C -1 ; WX 740 ; N copyright ; B 84 -17 784 698 ; +C -1 ; WX 600 ; N brokenbar ; B 294 -175 372 675 ; +EndCharMetrics +StartKernData +StartKernPairs 85 + +KPX A Y -62 +KPX A W -73 +KPX A V -78 +KPX A T -5 + +KPX F period -97 +KPX F comma -98 +KPX F A -16 + +KPX L y 20 +KPX L Y 7 +KPX L W 9 +KPX L V 4 + +KPX P period -105 +KPX P comma -106 +KPX P A -30 + +KPX R Y 11 +KPX R W 2 +KPX R V 2 +KPX R T 65 + +KPX T semicolon 48 +KPX T s -7 +KPX T r 67 +KPX T period -78 +KPX T o 14 +KPX T i 71 +KPX T hyphen 20 +KPX T e 10 +KPX T comma -79 +KPX T colon 48 +KPX T c 16 +KPX T a 9 +KPX T A -14 + +KPX V y -14 +KPX V u -10 +KPX V semicolon -44 +KPX V r -20 +KPX V period -100 +KPX V o -70 +KPX V i 3 +KPX V hyphen 20 +KPX V e -70 +KPX V comma -109 +KPX V colon -35 +KPX V a -70 +KPX V A -70 + +KPX W y -14 +KPX W u -20 +KPX W semicolon -42 +KPX W r -30 +KPX W period -100 +KPX W o -60 +KPX W i 3 +KPX W hyphen 20 +KPX W e -60 +KPX W comma -109 +KPX W colon -35 +KPX W a -60 +KPX W A -60 + +KPX Y v -19 +KPX Y u -31 +KPX Y semicolon -40 +KPX Y q -72 +KPX Y period -100 +KPX Y p -37 +KPX Y o -75 +KPX Y i -11 +KPX Y hyphen 20 +KPX Y e -78 +KPX Y comma -109 +KPX Y colon -35 +KPX Y a -79 +KPX Y A -82 + +KPX f f -19 + +KPX r q -14 +KPX r period -134 +KPX r o -10 +KPX r n 38 +KPX r m 37 +KPX r hyphen 20 +KPX r h -20 +KPX r g -3 +KPX r f -9 +KPX r e -15 +KPX r d -9 +KPX r comma -143 +KPX r c -8 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 200 177 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 130 177 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 140 177 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 160 177 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 220 177 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 130 177 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 210 177 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 140 177 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 150 177 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 150 177 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 30 177 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -30 177 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -20 177 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -30 177 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 130 177 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 250 177 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 190 177 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 200 177 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 210 177 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 190 177 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 100 177 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 230 177 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 170 177 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 180 177 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 170 177 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 200 177 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 140 177 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 70 177 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 120 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 70 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 80 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 110 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 140 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 60 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 90 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 30 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 40 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 80 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -40 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -100 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -90 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -60 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 60 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 80 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 20 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 40 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 80 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 30 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 30 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 120 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 60 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 70 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 110 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 140 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 70 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 20 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-LtIt+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-LtIt+ new file mode 100755 index 0000000000000..4626e554111e6 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-LtIt+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 720 ; N Ccaron ; B 88 -17 746 856 ; +C -1 ; WX 480 ; N ccaron ; B 65 -8 524 684 ; +C -1 ; WX 740 ; N Dcaron ; B 21 0 782 856 ; +C -1 ; WX 738 ; N dcaron ; B 65 -8 849 789 ; +C -1 ; WX 680 ; N Ecaron ; B 21 0 736 856 ; +C -1 ; WX 540 ; N ecaron ; B 65 -8 575 684 ; +C -1 ; WX 580 ; N Lcaron ; B 21 0 656 749 ; +C -1 ; WX 580 ; N Lacute ; B 21 0 656 898 ; +C -1 ; WX 378 ; N lcaron ; B 100 -8 496 789 ; +C -1 ; WX 280 ; N lacute ; B 100 -8 406 898 ; +C -1 ; WX 720 ; N Ncaron ; B 18 0 823 856 ; +C -1 ; WX 620 ; N ncaron ; B 88 -8 673 684 ; +C -1 ; WX 700 ; N Rcaron ; B 21 0 736 856 ; +C -1 ; WX 700 ; N Racute ; B 21 0 736 898 ; +C -1 ; WX 400 ; N rcaron ; B 88 0 481 684 ; +C -1 ; WX 400 ; N racute ; B 88 0 481 706 ; +C -1 ; WX 600 ; N Tcaron ; B 50 0 725 856 ; +C -1 ; WX 438 ; N tcaron ; B 88 -8 565 698 ; +C -1 ; WX 720 ; N Uring ; B 118 -17 842 856 ; +C -1 ; WX 620 ; N uring ; B 88 -8 686 706 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 236 172 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 43 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 180 172 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 561 91 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 150 172 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 50 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 278 51 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 163 192 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 208 91 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 33 192 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 170 172 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 90 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 160 172 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 260 192 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron -20 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 60 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 110 172 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 277 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 236 150 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 160 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Md b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Md new file mode 100755 index 0000000000000..be50ac5a1d4e2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Md @@ -0,0 +1,451 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu Jun 28 14:46:06 1990 +Comment UniqueID 31723 +Comment VMusage 29459 36351 +FontName Bookman-Medium +FullName ITC Bookman Medium +FamilyName ITC Bookman +Weight Medium +ItalicAngle 0 +IsFixedPitch false +FontBBox -174 -236 1138 928 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved.ITC Bookman is a trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 681 +XHeight 490 +Ascender 690 +Descender -226 +StartCharMetrics 228 +C 32 ; WX 306 ; N space ; B 0 0 0 0 ; +C 33 ; WX 334 ; N exclam ; B 82 -6 252 694 ; +C 34 ; WX 500 ; N quotedbl ; B 118 423 382 694 ; +C 35 ; WX 612 ; N numbersign ; B 56 0 556 674 ; +C 36 ; WX 612 ; N dollar ; B 39 -91 573 750 ; +C 37 ; WX 796 ; N percent ; B 35 -10 761 684 ; +C 38 ; WX 833 ; N ampersand ; B 52 -13 781 688 ; +C 39 ; WX 278 ; N quoteright ; B 60 423 218 694 ; +C 40 ; WX 333 ; N parenleft ; B 83 -174 276 690 ; +C 41 ; WX 333 ; N parenright ; B 57 -174 250 690 ; +C 42 ; WX 556 ; N asterisk ; B 93 282 463 694 ; +C 43 ; WX 600 ; N plus ; B 47 0 553 506 ; +C 44 ; WX 306 ; N comma ; B 77 -118 229 146 ; +C 45 ; WX 333 ; N hyphen ; B 20 212 313 316 ; +C 46 ; WX 306 ; N period ; B 77 -6 229 146 ; +C 47 ; WX 278 ; N slash ; B -22 -13 300 694 ; +C 48 ; WX 612 ; N zero ; B 39 -10 573 684 ; +C 49 ; WX 612 ; N one ; B 111 0 515 684 ; +C 50 ; WX 612 ; N two ; B 44 0 560 684 ; +C 51 ; WX 612 ; N three ; B 53 -10 559 684 ; +C 52 ; WX 612 ; N four ; B 24 0 588 674 ; +C 53 ; WX 612 ; N five ; B 50 -10 562 716 ; +C 54 ; WX 612 ; N six ; B 43 -10 569 684 ; +C 55 ; WX 612 ; N seven ; B 35 0 565 674 ; +C 56 ; WX 612 ; N eight ; B 34 -10 578 684 ; +C 57 ; WX 612 ; N nine ; B 43 -10 569 684 ; +C 58 ; WX 306 ; N colon ; B 77 -6 229 441 ; +C 59 ; WX 306 ; N semicolon ; B 77 -118 229 441 ; +C 60 ; WX 600 ; N less ; B 47 -8 553 514 ; +C 61 ; WX 600 ; N equal ; B 47 107 553 399 ; +C 62 ; WX 600 ; N greater ; B 47 -8 553 514 ; +C 63 ; WX 611 ; N question ; B 48 -6 563 694 ; +C 64 ; WX 800 ; N at ; B 47 -13 753 694 ; +C 65 ; WX 722 ; N A ; B -17 0 739 690 ; +C 66 ; WX 722 ; N B ; B 14 0 676 681 ; +C 67 ; WX 722 ; N C ; B 41 -13 681 694 ; +C 68 ; WX 778 ; N D ; B 26 0 737 681 ; +C 69 ; WX 722 ; N E ; B 26 0 686 681 ; +C 70 ; WX 611 ; N F ; B 26 0 632 681 ; +C 71 ; WX 778 ; N G ; B 41 -13 759 694 ; +C 72 ; WX 778 ; N H ; B 26 0 752 681 ; +C 73 ; WX 334 ; N I ; B 14 0 320 681 ; +C 74 ; WX 611 ; N J ; B -12 -13 589 681 ; +C 75 ; WX 778 ; N K ; B 26 0 783 681 ; +C 76 ; WX 667 ; N L ; B 26 0 662 681 ; +C 77 ; WX 889 ; N M ; B 26 0 863 681 ; +C 78 ; WX 722 ; N N ; B 26 0 696 681 ; +C 79 ; WX 778 ; N O ; B 41 -13 737 694 ; +C 80 ; WX 667 ; N P ; B 26 0 630 681 ; +C 81 ; WX 778 ; N Q ; B 41 -212 737 694 ; +C 82 ; WX 722 ; N R ; B 26 0 724 681 ; +C 83 ; WX 667 ; N S ; B 35 -13 632 694 ; +C 84 ; WX 668 ; N T ; B 5 0 663 681 ; +C 85 ; WX 722 ; N U ; B 14 -13 708 681 ; +C 86 ; WX 667 ; N V ; B -15 -6 682 681 ; +C 87 ; WX 944 ; N W ; B -5 -6 949 681 ; +C 88 ; WX 722 ; N X ; B -4 0 726 681 ; +C 89 ; WX 667 ; N Y ; B -4 0 671 681 ; +C 90 ; WX 667 ; N Z ; B 26 0 641 681 ; +C 91 ; WX 333 ; N bracketleft ; B 89 -165 254 681 ; +C 92 ; WX 278 ; N backslash ; B -22 -13 300 694 ; +C 93 ; WX 333 ; N bracketright ; B 79 -165 244 681 ; +C 94 ; WX 600 ; N asciicircum ; B 82 309 518 674 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 278 ; N quoteleft ; B 60 423 218 694 ; +C 97 ; WX 556 ; N a ; B 29 -10 561 500 ; +C 98 ; WX 611 ; N b ; B 30 -10 572 690 ; +C 99 ; WX 556 ; N c ; B 39 -10 535 500 ; +C 100 ; WX 611 ; N d ; B 30 -10 588 690 ; +C 101 ; WX 556 ; N e ; B 39 -10 526 500 ; +C 102 ; WX 333 ; N f ; B 30 0 399 680 ; L i fi ; L l fl ; +C 103 ; WX 556 ; N g ; B 13 -236 535 576 ; +C 104 ; WX 666 ; N h ; B 36 0 630 690 ; +C 105 ; WX 334 ; N i ; B 30 0 304 700 ; +C 106 ; WX 334 ; N j ; B -92 -236 254 700 ; +C 107 ; WX 667 ; N k ; B 30 0 619 690 ; +C 108 ; WX 334 ; N l ; B 30 0 304 690 ; +C 109 ; WX 944 ; N m ; B 30 0 914 500 ; +C 110 ; WX 666 ; N n ; B 36 0 630 500 ; +C 111 ; WX 612 ; N o ; B 39 -10 573 500 ; +C 112 ; WX 611 ; N p ; B 30 -226 572 500 ; +C 113 ; WX 611 ; N q ; B 39 -226 588 500 ; +C 114 ; WX 444 ; N r ; B 36 0 450 500 ; +C 115 ; WX 556 ; N s ; B 47 -10 509 500 ; +C 116 ; WX 389 ; N t ; B 30 -10 414 647 ; +C 117 ; WX 667 ; N u ; B 36 -10 631 490 ; +C 118 ; WX 500 ; N v ; B -15 -6 515 490 ; +C 119 ; WX 778 ; N w ; B 12 -6 766 490 ; +C 120 ; WX 556 ; N x ; B 0 0 556 490 ; +C 121 ; WX 556 ; N y ; B -4 -236 560 490 ; +C 122 ; WX 556 ; N z ; B 27 0 529 490 ; +C 123 ; WX 333 ; N braceleft ; B 41 -165 280 681 ; +C 124 ; WX 222 ; N bar ; B 67 -13 155 694 ; +C 125 ; WX 333 ; N braceright ; B 53 -165 292 681 ; +C 126 ; WX 600 ; N asciitilde ; B 69 174 531 332 ; +C 161 ; WX 334 ; N exclamdown ; B 82 -210 252 490 ; +C 162 ; WX 612 ; N cent ; B 58 -37 554 698 ; +C 163 ; WX 612 ; N sterling ; B 8 -10 590 690 ; +C 164 ; WX 167 ; N fraction ; B -174 -10 341 684 ; +C 165 ; WX 612 ; N yen ; B 2 0 610 674 ; +C 166 ; WX 612 ; N florin ; B 10 -226 602 694 ; +C 167 ; WX 556 ; N section ; B 52 -13 484 694 ; +C 168 ; WX 612 ; N currency ; B 52 83 560 591 ; +C 169 ; WX 278 ; N quotesingle ; B 92 423 186 694 ; +C 170 ; WX 500 ; N quotedblleft ; B 66 423 434 694 ; +C 171 ; WX 500 ; N guillemotleft ; B 42 77 458 451 ; +C 172 ; WX 333 ; N guilsinglleft ; B 51 77 282 451 ; +C 173 ; WX 333 ; N guilsinglright ; B 51 77 282 451 ; +C 174 ; WX 667 ; N fi ; B 30 0 637 680 ; +C 175 ; WX 667 ; N fl ; B 30 0 637 680 ; +C 177 ; WX 500 ; N endash ; B 0 226 500 302 ; +C 178 ; WX 556 ; N dagger ; B 90 0 466 694 ; +C 179 ; WX 556 ; N daggerdbl ; B 100 0 456 694 ; +C 180 ; WX 306 ; N periodcentered ; B 77 223 229 375 ; +C 182 ; WX 620 ; N paragraph ; B 64 0 556 681 ; +C 183 ; WX 500 ; N bullet ; B 82 169 418 505 ; +C 184 ; WX 278 ; N quotesinglbase ; B 60 -125 218 146 ; +C 185 ; WX 500 ; N quotedblbase ; B 65 -125 435 146 ; +C 186 ; WX 500 ; N quotedblright ; B 66 423 434 694 ; +C 187 ; WX 500 ; N guillemotright ; B 42 77 458 451 ; +C 188 ; WX 1000 ; N ellipsis ; B 91 -6 909 146 ; +C 189 ; WX 1167 ; N perthousand ; B 29 -10 1138 684 ; +C 191 ; WX 611 ; N questiondown ; B 48 -210 563 490 ; +C 193 ; WX 334 ; N grave ; B 8 547 246 733 ; +C 194 ; WX 334 ; N acute ; B 88 547 326 733 ; +C 195 ; WX 334 ; N circumflex ; B -2 547 336 723 ; +C 196 ; WX 334 ; N tilde ; B -16 564 350 690 ; +C 197 ; WX 334 ; N macron ; B 1 584 333 654 ; +C 198 ; WX 334 ; N breve ; B 15 547 319 711 ; +C 199 ; WX 334 ; N dotaccent ; B 103 557 231 685 ; +C 200 ; WX 334 ; N dieresis ; B -2 557 336 685 ; +C 202 ; WX 334 ; N ring ; B 60 547 274 761 ; +C 203 ; WX 334 ; N cedilla ; B 67 -218 295 0 ; +C 205 ; WX 334 ; N hungarumlaut ; B -16 547 430 733 ; +C 206 ; WX 334 ; N ogonek ; B 46 -218 278 0 ; +C 207 ; WX 334 ; N caron ; B -2 547 336 723 ; +C 208 ; WX 1000 ; N emdash ; B 0 226 1000 302 ; +C 225 ; WX 1000 ; N AE ; B -34 0 975 681 ; +C 227 ; WX 361 ; N ordfeminine ; B 15 372 369 684 ; +C 232 ; WX 667 ; N Lslash ; B 26 0 662 681 ; +C 233 ; WX 778 ; N Oslash ; B 41 -60 737 740 ; +C 234 ; WX 1000 ; N OE ; B 19 -13 991 694 ; +C 235 ; WX 398 ; N ordmasculine ; B 22 372 376 684 ; +C 241 ; WX 833 ; N ae ; B 26 -10 807 500 ; +C 245 ; WX 334 ; N dotlessi ; B 30 0 304 490 ; +C 248 ; WX 334 ; N lslash ; B 30 0 304 690 ; +C 249 ; WX 612 ; N oslash ; B 39 -95 573 597 ; +C 250 ; WX 889 ; N oe ; B 33 -10 856 500 ; +C 251 ; WX 667 ; N germandbls ; B 33 -10 632 680 ; +C -1 ; WX 667 ; N Zcaron ; B 26 0 641 894 ; +C -1 ; WX 556 ; N ccedilla ; B 39 -218 535 500 ; +C -1 ; WX 556 ; N ydieresis ; B -4 -236 560 685 ; +C -1 ; WX 556 ; N atilde ; B 29 -10 561 690 ; +C -1 ; WX 334 ; N icircumflex ; B -2 0 336 723 ; +C -1 ; WX 398 ; N threesuperior ; B 29 262 372 684 ; +C -1 ; WX 556 ; N ecircumflex ; B 39 -10 526 723 ; +C -1 ; WX 611 ; N thorn ; B 30 -226 572 690 ; +C -1 ; WX 556 ; N egrave ; B 39 -10 526 733 ; +C -1 ; WX 398 ; N twosuperior ; B 24 268 374 684 ; +C -1 ; WX 556 ; N eacute ; B 39 -10 526 733 ; +C -1 ; WX 612 ; N otilde ; B 39 -10 573 690 ; +C -1 ; WX 722 ; N Aacute ; B -17 0 739 904 ; +C -1 ; WX 612 ; N ocircumflex ; B 39 -10 573 723 ; +C -1 ; WX 556 ; N yacute ; B -4 -236 560 733 ; +C -1 ; WX 667 ; N udieresis ; B 36 -10 631 685 ; +C -1 ; WX 916 ; N threequarters ; B 29 -10 900 684 ; +C -1 ; WX 556 ; N acircumflex ; B 29 -10 561 723 ; +C -1 ; WX 778 ; N Eth ; B 26 0 737 681 ; +C -1 ; WX 556 ; N edieresis ; B 39 -10 526 685 ; +C -1 ; WX 667 ; N ugrave ; B 36 -10 631 733 ; +C -1 ; WX 1000 ; N trademark ; B 23 276 977 681 ; +C -1 ; WX 612 ; N ograve ; B 39 -10 573 733 ; +C -1 ; WX 556 ; N scaron ; B 47 -10 509 723 ; +C -1 ; WX 334 ; N Idieresis ; B -2 0 336 856 ; +C -1 ; WX 667 ; N uacute ; B 36 -10 631 733 ; +C -1 ; WX 556 ; N agrave ; B 29 -10 561 733 ; +C -1 ; WX 666 ; N ntilde ; B 36 0 630 690 ; +C -1 ; WX 556 ; N aring ; B 29 -10 561 761 ; +C -1 ; WX 556 ; N zcaron ; B 27 0 529 723 ; +C -1 ; WX 334 ; N Icircumflex ; B -2 0 336 894 ; +C -1 ; WX 722 ; N Ntilde ; B 26 0 696 861 ; +C -1 ; WX 667 ; N ucircumflex ; B 36 -10 631 723 ; +C -1 ; WX 722 ; N Ecircumflex ; B 26 0 686 894 ; +C -1 ; WX 334 ; N Iacute ; B 14 0 326 904 ; +C -1 ; WX 722 ; N Ccedilla ; B 41 -218 681 694 ; +C -1 ; WX 778 ; N Odieresis ; B 41 -13 737 856 ; +C -1 ; WX 667 ; N Scaron ; B 35 -13 632 894 ; +C -1 ; WX 722 ; N Edieresis ; B 26 0 686 856 ; +C -1 ; WX 334 ; N Igrave ; B 8 0 320 904 ; +C -1 ; WX 556 ; N adieresis ; B 29 -10 561 685 ; +C -1 ; WX 778 ; N Ograve ; B 41 -13 737 904 ; +C -1 ; WX 722 ; N Egrave ; B 26 0 686 904 ; +C -1 ; WX 667 ; N Ydieresis ; B -4 0 671 856 ; +C -1 ; WX 800 ; N registered ; B 47 -13 753 694 ; +C -1 ; WX 778 ; N Otilde ; B 41 -13 737 861 ; +C -1 ; WX 916 ; N onequarter ; B 61 -10 900 684 ; +C -1 ; WX 722 ; N Ugrave ; B 14 -13 708 904 ; +C -1 ; WX 722 ; N Ucircumflex ; B 14 -13 708 894 ; +C -1 ; WX 667 ; N Thorn ; B 26 0 630 681 ; +C -1 ; WX 600 ; N divide ; B 47 -31 553 537 ; +C -1 ; WX 722 ; N Atilde ; B -17 0 739 861 ; +C -1 ; WX 722 ; N Uacute ; B 14 -13 708 904 ; +C -1 ; WX 778 ; N Ocircumflex ; B 41 -13 737 894 ; +C -1 ; WX 600 ; N logicalnot ; B 47 108 553 399 ; +C -1 ; WX 722 ; N Aring ; B -17 0 739 928 ; +C -1 ; WX 334 ; N idieresis ; B -2 0 336 685 ; +C -1 ; WX 334 ; N iacute ; B 30 0 326 733 ; +C -1 ; WX 556 ; N aacute ; B 29 -10 561 733 ; +C -1 ; WX 600 ; N plusminus ; B 47 0 553 506 ; +C -1 ; WX 600 ; N multiply ; B 69 22 531 484 ; +C -1 ; WX 722 ; N Udieresis ; B 14 -13 708 856 ; +C -1 ; WX 600 ; N minus ; B 47 209 553 297 ; +C -1 ; WX 398 ; N onesuperior ; B 61 268 337 684 ; +C -1 ; WX 722 ; N Eacute ; B 26 0 686 904 ; +C -1 ; WX 722 ; N Acircumflex ; B -17 0 739 894 ; +C -1 ; WX 800 ; N copyright ; B 47 -13 753 694 ; +C -1 ; WX 722 ; N Agrave ; B -17 0 739 904 ; +C -1 ; WX 612 ; N odieresis ; B 39 -10 573 685 ; +C -1 ; WX 612 ; N oacute ; B 39 -10 573 733 ; +C -1 ; WX 400 ; N degree ; B 57 398 343 684 ; +C -1 ; WX 334 ; N igrave ; B 8 0 304 733 ; +C -1 ; WX 667 ; N mu ; B 36 -226 631 490 ; +C -1 ; WX 778 ; N Oacute ; B 41 -13 737 904 ; +C -1 ; WX 612 ; N eth ; B 39 -10 573 720 ; +C -1 ; WX 722 ; N Adieresis ; B -17 0 739 856 ; +C -1 ; WX 667 ; N Yacute ; B -4 0 671 904 ; +C -1 ; WX 222 ; N brokenbar ; B 67 -13 155 694 ; +C -1 ; WX 916 ; N onehalf ; B 61 -10 892 684 ; +EndCharMetrics +StartKernData +StartKernPairs 111 + +KPX A y -37 +KPX A w -37 +KPX A v -18 +KPX A quoteright -92 +KPX A quotedblright -92 +KPX A Y -74 +KPX A W -74 +KPX A V -74 +KPX A T -55 + +KPX F period -111 +KPX F comma -111 +KPX F A -55 + +KPX J period -37 +KPX J comma -37 + +KPX L y -55 +KPX L quoteright -129 +KPX L quotedblright -92 +KPX L Y -92 +KPX L W -92 +KPX L V -92 +KPX L T -92 + +KPX O period -18 +KPX O comma -18 +KPX O Y -18 +KPX O T -18 + +KPX P period -129 +KPX P comma -129 +KPX P A -55 + +KPX R Y -18 +KPX R W -18 +KPX R V -18 +KPX R T -18 + +KPX T y -92 +KPX T w -111 +KPX T u -92 +KPX T semicolon -92 +KPX T r -92 +KPX T period -92 +KPX T o -92 +KPX T i -55 +KPX T hyphen -92 +KPX T e -92 +KPX T comma -92 +KPX T colon -92 +KPX T a -92 +KPX T O -18 +KPX T A -55 + +KPX U period -18 +KPX U comma -18 + +KPX V u -18 +KPX V semicolon -74 +KPX V period -92 +KPX V o -55 +KPX V i -18 +KPX V hyphen -55 +KPX V e -37 +KPX V comma -92 +KPX V colon -74 +KPX V a -37 +KPX V A -74 + +KPX W y -18 +KPX W u -18 +KPX W semicolon -55 +KPX W period -74 +KPX W o -37 +KPX W i -18 +KPX W hyphen -55 +KPX W e -37 +KPX W comma -74 +KPX W colon -55 +KPX W a -37 +KPX W A -74 + +KPX Y u -37 +KPX Y semicolon -74 +KPX Y period -92 +KPX Y o -74 +KPX Y i -18 +KPX Y hyphen -74 +KPX Y e -55 +KPX Y comma -92 +KPX Y colon -74 +KPX Y a -55 +KPX Y A -37 + +KPX a w -18 + +KPX f quoteright 37 +KPX f l 18 +KPX f i 18 +KPX f f 18 +KPX f e 18 +KPX f dotlessi 18 +KPX f a 18 + +KPX k y -18 +KPX k o -25 +KPX k e -25 + +KPX m u -18 + +KPX n u -18 + +KPX quotedblleft A -25 + +KPX quoteleft quoteleft -68 +KPX quoteleft A -25 + +KPX quoteright s -55 +KPX quoteright quoteright -68 + +KPX r period -74 +KPX r hyphen -55 +KPX r comma -74 + +KPX v period -55 +KPX v o 18 +KPX v comma -55 + +KPX w period -37 +KPX w comma -55 + +KPX y period -55 +KPX y comma -55 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 194 171 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 194 171 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 194 171 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 194 171 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 194 167 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 194 171 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 214 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 174 171 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 174 171 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 174 171 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 174 171 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 0 171 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 0 171 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 0 171 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 171 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 194 171 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 222 171 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 222 171 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 222 171 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 222 171 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 222 171 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 167 171 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 194 171 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 194 171 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 194 171 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 194 171 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 167 171 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 167 171 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 167 171 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 101 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 101 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 101 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 101 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 101 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 101 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 111 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 121 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 121 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 121 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 121 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 166 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 139 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 139 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 139 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 139 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 139 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 111 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 167 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 167 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 167 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 167 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 111 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 111 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 111 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Md+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Md+ new file mode 100755 index 0000000000000..658252beb9714 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-Md+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 722 ; N Ccaron ; B 41 -13 681 919 ; +C -1 ; WX 556 ; N ccaron ; B 39 -10 535 723 ; +C -1 ; WX 778 ; N Dcaron ; B 26 0 737 919 ; +C -1 ; WX 722 ; N dcaron ; B 30 -10 762 759 ; +C -1 ; WX 722 ; N Ecaron ; B 26 0 686 919 ; +C -1 ; WX 556 ; N ecaron ; B 39 -10 526 723 ; +C -1 ; WX 667 ; N Lcaron ; B 26 0 662 749 ; +C -1 ; WX 667 ; N Lacute ; B 26 0 662 929 ; +C -1 ; WX 445 ; N lcaron ; B 30 0 478 759 ; +C -1 ; WX 334 ; N lacute ; B 30 0 350 929 ; +C -1 ; WX 722 ; N Ncaron ; B 26 0 696 919 ; +C -1 ; WX 666 ; N ncaron ; B 36 0 630 723 ; +C -1 ; WX 722 ; N Rcaron ; B 26 0 724 919 ; +C -1 ; WX 722 ; N Racute ; B 26 0 724 929 ; +C -1 ; WX 444 ; N rcaron ; B 36 0 450 723 ; +C -1 ; WX 444 ; N racute ; B 36 0 450 733 ; +C -1 ; WX 668 ; N Tcaron ; B 5 0 663 919 ; +C -1 ; WX 500 ; N tcaron ; B 30 -10 588 694 ; +C -1 ; WX 722 ; N Uring ; B 14 -13 708 919 ; +C -1 ; WX 667 ; N uring ; B 36 -10 631 761 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 258 196 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 136 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 222 196 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 544 65 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 194 196 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 111 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 276 55 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 166 196 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 260 65 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 24 196 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 194 196 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 166 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 194 196 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 239 196 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 55 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 79 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 167 196 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 370 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 194 158 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 166 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-MdIt b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-MdIt new file mode 100755 index 0000000000000..1e5fd0bf066d8 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-MdIt @@ -0,0 +1,509 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu Jun 28 15:04:32 1990 +Comment UniqueID 31729 +Comment VMusage 31120 38012 +FontName Bookman-MediumItalic +FullName ITC Bookman Medium Italic +FamilyName ITC Bookman +Weight Medium +ItalicAngle -12 +IsFixedPitch false +FontBBox -240 -236 1147 934 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved.ITC Bookman is a trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 681 +XHeight 500 +Ascender 690 +Descender -226 +StartCharMetrics 228 +C 32 ; WX 305 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 86 -6 325 694 ; +C 34 ; WX 333 ; N quotedbl ; B 102 417 352 694 ; +C 35 ; WX 612 ; N numbersign ; B 75 0 575 674 ; +C 36 ; WX 612 ; N dollar ; B 35 -89 604 750 ; +C 37 ; WX 796 ; N percent ; B 52 -10 776 684 ; +C 38 ; WX 944 ; N ampersand ; B 80 -13 917 694 ; +C 39 ; WX 222 ; N quoteright ; B 95 417 247 694 ; +C 40 ; WX 333 ; N parenleft ; B 31 -174 329 690 ; +C 41 ; WX 333 ; N parenright ; B 10 -174 308 690 ; +C 42 ; WX 500 ; N asterisk ; B 100 285 468 694 ; +C 43 ; WX 600 ; N plus ; B 47 0 553 506 ; +C 44 ; WX 306 ; N comma ; B 58 -125 210 152 ; +C 45 ; WX 333 ; N hyphen ; B 32 217 322 311 ; +C 46 ; WX 306 ; N period ; B 58 -6 210 152 ; +C 47 ; WX 278 ; N slash ; B 7 -13 321 694 ; +C 48 ; WX 612 ; N zero ; B 41 -10 602 684 ; +C 49 ; WX 612 ; N one ; B 104 0 495 684 ; +C 50 ; WX 612 ; N two ; B 37 0 584 684 ; +C 51 ; WX 612 ; N three ; B 16 -10 583 684 ; +C 52 ; WX 612 ; N four ; B 23 0 597 674 ; +C 53 ; WX 612 ; N five ; B 35 -10 580 674 ; +C 54 ; WX 612 ; N six ; B 48 -10 604 684 ; +C 55 ; WX 612 ; N seven ; B 73 0 632 674 ; +C 56 ; WX 612 ; N eight ; B 16 -10 590 684 ; +C 57 ; WX 612 ; N nine ; B 44 -10 600 684 ; +C 58 ; WX 306 ; N colon ; B 58 -6 261 429 ; +C 59 ; WX 306 ; N semicolon ; B 58 -125 261 429 ; +C 60 ; WX 600 ; N less ; B 47 -8 553 514 ; +C 61 ; WX 600 ; N equal ; B 47 107 553 399 ; +C 62 ; WX 600 ; N greater ; B 47 -8 553 514 ; +C 63 ; WX 612 ; N question ; B 95 -6 590 694 ; +C 64 ; WX 800 ; N at ; B 66 -13 772 694 ; +C 65 ; WX 722 ; N A ; B -34 0 688 690 ; +C 66 ; WX 722 ; N B ; B 2 0 701 681 ; +C 67 ; WX 722 ; N C ; B 50 -13 714 694 ; +C 68 ; WX 778 ; N D ; B 2 0 751 681 ; +C 69 ; WX 722 ; N E ; B -6 0 709 681 ; +C 70 ; WX 667 ; N F ; B -6 0 697 681 ; +C 71 ; WX 778 ; N G ; B 38 -13 777 694 ; +C 72 ; WX 778 ; N H ; B 2 0 820 681 ; +C 73 ; WX 333 ; N I ; B -16 0 392 681 ; +C 74 ; WX 611 ; N J ; B -2 -13 666 681 ; +C 75 ; WX 722 ; N K ; B 2 0 802 681 ; +C 76 ; WX 667 ; N L ; B 2 0 653 681 ; +C 77 ; WX 889 ; N M ; B 2 0 920 681 ; +C 78 ; WX 722 ; N N ; B 2 0 753 681 ; +C 79 ; WX 778 ; N O ; B 50 -13 764 694 ; +C 80 ; WX 667 ; N P ; B -6 0 688 681 ; +C 81 ; WX 778 ; N Q ; B 8 -196 764 694 ; +C 82 ; WX 722 ; N R ; B -6 0 704 681 ; +C 83 ; WX 667 ; N S ; B 32 -13 625 694 ; +C 84 ; WX 667 ; N T ; B 46 0 703 681 ; +C 85 ; WX 778 ; N U ; B 105 -13 818 681 ; +C 86 ; WX 667 ; N V ; B 35 -6 738 681 ; +C 87 ; WX 944 ; N W ; B 56 -6 1023 681 ; +C 88 ; WX 722 ; N X ; B -24 0 769 681 ; +C 89 ; WX 611 ; N Y ; B 44 0 685 681 ; +C 90 ; WX 667 ; N Z ; B 30 0 677 681 ; +C 91 ; WX 333 ; N bracketleft ; B 21 -165 340 681 ; +C 92 ; WX 278 ; N backslash ; B -4 -13 310 694 ; +C 93 ; WX 333 ; N bracketright ; B 2 -165 321 681 ; +C 94 ; WX 600 ; N asciicircum ; B 82 309 518 674 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 222 ; N quoteleft ; B 76 417 228 694 ; +C 97 ; WX 667 ; N a ; B 41 -10 684 500 ; +C 98 ; WX 611 ; N b ; B 57 -10 588 690 ; +C 99 ; WX 556 ; N c ; B 41 -10 530 500 ; +C 100 ; WX 611 ; N d ; B 41 -10 637 690 ; +C 101 ; WX 556 ; N e ; B 41 -10 547 500 ; +C 102 ; WX 333 ; N f ; B -222 -203 460 709 ; L i fi ; L l fl ; +C 103 ; WX 611 ; N g ; B -20 -226 583 500 ; +C 104 ; WX 667 ; N h ; B 57 -10 675 690 ; +C 105 ; WX 333 ; N i ; B 51 -10 338 700 ; +C 106 ; WX 333 ; N j ; B -181 -226 333 700 ; +C 107 ; WX 611 ; N k ; B 41 -10 600 690 ; +C 108 ; WX 333 ; N l ; B 74 -10 338 690 ; +C 109 ; WX 944 ; N m ; B 78 -10 942 500 ; +C 110 ; WX 667 ; N n ; B 68 -10 667 500 ; +C 111 ; WX 611 ; N o ; B 41 -10 588 500 ; +C 112 ; WX 611 ; N p ; B -42 -226 588 500 ; +C 113 ; WX 611 ; N q ; B 41 -226 571 500 ; +C 114 ; WX 444 ; N r ; B 67 0 466 500 ; +C 115 ; WX 556 ; N s ; B 20 -10 527 500 ; +C 116 ; WX 389 ; N t ; B 60 -10 387 648 ; +C 117 ; WX 667 ; N u ; B 67 -10 671 490 ; +C 118 ; WX 556 ; N v ; B 59 -10 543 500 ; +C 119 ; WX 833 ; N w ; B 59 -10 800 500 ; +C 120 ; WX 556 ; N x ; B -23 -10 583 500 ; +C 121 ; WX 611 ; N y ; B 35 -236 575 490 ; +C 122 ; WX 556 ; N z ; B 28 -10 536 500 ; +C 123 ; WX 333 ; N braceleft ; B 53 -165 372 681 ; +C 124 ; WX 222 ; N bar ; B 85 -13 173 694 ; +C 125 ; WX 333 ; N braceright ; B -39 -165 280 681 ; +C 126 ; WX 600 ; N asciitilde ; B 69 174 531 332 ; +C 161 ; WX 333 ; N exclamdown ; B 8 -210 247 490 ; +C 162 ; WX 612 ; N cent ; B 72 -31 561 690 ; +C 163 ; WX 612 ; N sterling ; B -24 -10 637 690 ; +C 164 ; WX 167 ; N fraction ; B -156 -10 356 684 ; +C 165 ; WX 612 ; N yen ; B 34 0 691 674 ; +C 166 ; WX 612 ; N florin ; B -31 -226 635 694 ; +C 167 ; WX 556 ; N section ; B 25 -13 532 694 ; +C 168 ; WX 612 ; N currency ; B 67 83 575 591 ; +C 169 ; WX 222 ; N quotesingle ; B 127 417 215 694 ; +C 170 ; WX 444 ; N quotedblleft ; B 76 417 450 694 ; +C 171 ; WX 500 ; N guillemotleft ; B 51 77 464 451 ; +C 172 ; WX 333 ; N guilsinglleft ; B 58 77 290 451 ; +C 173 ; WX 333 ; N guilsinglright ; B 54 77 286 451 ; +C 174 ; WX 667 ; N fi ; B -240 -203 660 709 ; +C 175 ; WX 667 ; N fl ; B -240 -203 660 709 ; +C 177 ; WX 500 ; N endash ; B 3 220 517 308 ; +C 178 ; WX 556 ; N dagger ; B 110 0 492 694 ; +C 179 ; WX 556 ; N daggerdbl ; B 96 0 486 694 ; +C 180 ; WX 306 ; N periodcentered ; B 91 223 243 375 ; +C 182 ; WX 620 ; N paragraph ; B 128 0 657 681 ; +C 183 ; WX 500 ; N bullet ; B 96 169 432 505 ; +C 184 ; WX 222 ; N quotesinglbase ; B 28 -125 180 152 ; +C 185 ; WX 444 ; N quotedblbase ; B 28 -125 403 152 ; +C 186 ; WX 444 ; N quotedblright ; B 95 417 469 694 ; +C 187 ; WX 500 ; N guillemotright ; B 47 77 460 451 ; +C 188 ; WX 1000 ; N ellipsis ; B 71 -6 889 152 ; +C 189 ; WX 1167 ; N perthousand ; B 52 -10 1147 684 ; +C 191 ; WX 612 ; N questiondown ; B 22 -210 517 490 ; +C 193 ; WX 333 ; N grave ; B 98 549 310 729 ; +C 194 ; WX 333 ; N acute ; B 153 549 392 729 ; +C 195 ; WX 333 ; N circumflex ; B 53 549 381 723 ; +C 196 ; WX 333 ; N tilde ; B 61 570 420 690 ; +C 197 ; WX 333 ; N macron ; B 65 586 406 656 ; +C 198 ; WX 333 ; N breve ; B 84 549 400 711 ; +C 199 ; WX 333 ; N dotaccent ; B 167 558 299 690 ; +C 200 ; WX 333 ; N dieresis ; B 67 558 412 690 ; +C 202 ; WX 333 ; N ring ; B 121 556 334 769 ; +C 203 ; WX 333 ; N cedilla ; B -22 -218 213 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B 42 549 501 729 ; +C 206 ; WX 333 ; N ogonek ; B -16 -218 234 0 ; +C 207 ; WX 333 ; N caron ; B 93 549 425 723 ; +C 208 ; WX 1000 ; N emdash ; B 3 220 1017 308 ; +C 225 ; WX 944 ; N AE ; B -59 0 931 681 ; +C 227 ; WX 434 ; N ordfeminine ; B 60 372 478 684 ; +C 232 ; WX 667 ; N Lslash ; B 2 0 653 681 ; +C 233 ; WX 778 ; N Oslash ; B 50 -112 764 790 ; +C 234 ; WX 963 ; N OE ; B 35 -13 956 694 ; +C 235 ; WX 397 ; N ordmasculine ; B 74 372 429 684 ; +C 241 ; WX 889 ; N ae ; B 34 -10 880 500 ; +C 245 ; WX 333 ; N dotlessi ; B 51 -10 338 500 ; +C 248 ; WX 333 ; N lslash ; B 30 -10 342 690 ; +C 249 ; WX 611 ; N oslash ; B 41 -115 588 597 ; +C 250 ; WX 944 ; N oe ; B 41 -10 935 500 ; +C 251 ; WX 667 ; N germandbls ; B -198 -203 644 709 ; +C -1 ; WX 667 ; N Zcaron ; B 30 0 677 898 ; +C -1 ; WX 556 ; N ccedilla ; B 41 -218 530 500 ; +C -1 ; WX 611 ; N ydieresis ; B 35 -236 575 690 ; +C -1 ; WX 667 ; N atilde ; B 41 -10 684 690 ; +C -1 ; WX 333 ; N icircumflex ; B 51 -10 381 723 ; +C -1 ; WX 398 ; N threesuperior ; B 35 262 404 684 ; +C -1 ; WX 556 ; N ecircumflex ; B 41 -10 547 723 ; +C -1 ; WX 611 ; N thorn ; B -42 -226 588 690 ; +C -1 ; WX 556 ; N egrave ; B 41 -10 547 729 ; +C -1 ; WX 398 ; N twosuperior ; B 41 268 403 684 ; +C -1 ; WX 556 ; N eacute ; B 41 -10 547 729 ; +C -1 ; WX 611 ; N otilde ; B 41 -10 588 690 ; +C -1 ; WX 722 ; N Aacute ; B -34 0 688 904 ; +C -1 ; WX 611 ; N ocircumflex ; B 41 -10 588 723 ; +C -1 ; WX 611 ; N yacute ; B 35 -236 575 729 ; +C -1 ; WX 667 ; N udieresis ; B 67 -10 671 690 ; +C -1 ; WX 916 ; N threequarters ; B 55 -10 894 684 ; +C -1 ; WX 667 ; N acircumflex ; B 41 -10 684 723 ; +C -1 ; WX 778 ; N Eth ; B 2 0 751 681 ; +C -1 ; WX 556 ; N edieresis ; B 41 -10 547 690 ; +C -1 ; WX 667 ; N ugrave ; B 67 -10 671 729 ; +C -1 ; WX 1000 ; N trademark ; B 94 275 1048 681 ; +C -1 ; WX 611 ; N ograve ; B 41 -10 588 729 ; +C -1 ; WX 556 ; N scaron ; B 20 -10 537 723 ; +C -1 ; WX 333 ; N Idieresis ; B -16 0 422 865 ; +C -1 ; WX 667 ; N uacute ; B 67 -10 671 729 ; +C -1 ; WX 667 ; N agrave ; B 41 -10 684 729 ; +C -1 ; WX 667 ; N ntilde ; B 68 -10 667 690 ; +C -1 ; WX 667 ; N aring ; B 41 -10 684 769 ; +C -1 ; WX 556 ; N zcaron ; B 28 -10 536 723 ; +C -1 ; WX 333 ; N Icircumflex ; B -16 0 392 898 ; +C -1 ; WX 722 ; N Ntilde ; B 2 0 753 865 ; +C -1 ; WX 667 ; N ucircumflex ; B 67 -10 671 723 ; +C -1 ; WX 722 ; N Ecircumflex ; B -6 0 709 898 ; +C -1 ; WX 333 ; N Iacute ; B -16 0 402 904 ; +C -1 ; WX 722 ; N Ccedilla ; B 50 -218 714 694 ; +C -1 ; WX 778 ; N Odieresis ; B 50 -13 764 865 ; +C -1 ; WX 667 ; N Scaron ; B 32 -13 625 898 ; +C -1 ; WX 722 ; N Edieresis ; B -6 0 709 865 ; +C -1 ; WX 333 ; N Igrave ; B -16 0 392 904 ; +C -1 ; WX 667 ; N adieresis ; B 41 -10 684 690 ; +C -1 ; WX 778 ; N Ograve ; B 50 -13 764 904 ; +C -1 ; WX 722 ; N Egrave ; B -6 0 709 904 ; +C -1 ; WX 611 ; N Ydieresis ; B 44 0 685 865 ; +C -1 ; WX 800 ; N registered ; B 62 -13 768 694 ; +C -1 ; WX 778 ; N Otilde ; B 50 -13 764 865 ; +C -1 ; WX 916 ; N onequarter ; B 72 -10 894 684 ; +C -1 ; WX 778 ; N Ugrave ; B 105 -13 818 904 ; +C -1 ; WX 778 ; N Ucircumflex ; B 105 -13 818 898 ; +C -1 ; WX 667 ; N Thorn ; B -6 0 660 681 ; +C -1 ; WX 600 ; N divide ; B 47 -31 553 537 ; +C -1 ; WX 722 ; N Atilde ; B -34 0 688 865 ; +C -1 ; WX 778 ; N Uacute ; B 105 -13 818 904 ; +C -1 ; WX 778 ; N Ocircumflex ; B 50 -13 764 898 ; +C -1 ; WX 600 ; N logicalnot ; B 47 108 553 399 ; +C -1 ; WX 722 ; N Aring ; B -34 0 688 934 ; +C -1 ; WX 333 ; N idieresis ; B 51 -10 412 690 ; +C -1 ; WX 333 ; N iacute ; B 51 -10 392 729 ; +C -1 ; WX 667 ; N aacute ; B 41 -10 684 729 ; +C -1 ; WX 600 ; N plusminus ; B 47 0 553 506 ; +C -1 ; WX 600 ; N multiply ; B 69 22 531 484 ; +C -1 ; WX 778 ; N Udieresis ; B 105 -13 818 865 ; +C -1 ; WX 600 ; N minus ; B 47 209 553 297 ; +C -1 ; WX 398 ; N onesuperior ; B 72 268 326 684 ; +C -1 ; WX 722 ; N Eacute ; B -6 0 709 904 ; +C -1 ; WX 722 ; N Acircumflex ; B -34 0 688 898 ; +C -1 ; WX 800 ; N copyright ; B 62 -13 768 694 ; +C -1 ; WX 722 ; N Agrave ; B -34 0 688 904 ; +C -1 ; WX 611 ; N odieresis ; B 41 -10 588 690 ; +C -1 ; WX 611 ; N oacute ; B 41 -10 588 729 ; +C -1 ; WX 400 ; N degree ; B 111 398 397 684 ; +C -1 ; WX 333 ; N igrave ; B 51 -10 338 729 ; +C -1 ; WX 667 ; N mu ; B 32 -226 671 490 ; +C -1 ; WX 778 ; N Oacute ; B 50 -13 764 904 ; +C -1 ; WX 611 ; N eth ; B 61 -10 573 722 ; +C -1 ; WX 722 ; N Adieresis ; B -34 0 688 865 ; +C -1 ; WX 611 ; N Yacute ; B 44 0 685 904 ; +C -1 ; WX 222 ; N brokenbar ; B 85 -13 173 694 ; +C -1 ; WX 916 ; N onehalf ; B 72 -10 902 684 ; +EndCharMetrics +StartKernData +StartKernPairs 157 + +KPX A y -18 +KPX A w -28 +KPX A v -18 +KPX A u -25 +KPX A quoteright -92 +KPX A quotedblright -92 +KPX A Y -55 +KPX A W -55 +KPX A V -55 +KPX A U -25 +KPX A T -55 +KPX A Q -25 +KPX A O -25 +KPX A G -25 +KPX A C -25 + +KPX B period -60 +KPX B comma -60 + +KPX D period -60 +KPX D comma -60 + +KPX F r -18 +KPX F period -129 +KPX F o -55 +KPX F e -55 +KPX F comma -129 +KPX F a -55 +KPX F A -55 + +KPX G period -60 +KPX G comma -60 + +KPX J period -60 +KPX J comma -60 + +KPX L y -18 +KPX L quoteright -111 +KPX L Y -92 +KPX L W -92 +KPX L V -92 +KPX L T -92 + +KPX O period -60 +KPX O comma -60 + +KPX P period -129 +KPX P comma -129 +KPX P A -55 + +KPX Q period -60 +KPX Q comma -60 + +KPX R Y -37 +KPX R W -37 +KPX R V -37 +KPX R T -18 + +KPX S period -60 +KPX S comma -60 + +KPX T y -37 +KPX T w -55 +KPX T u -55 +KPX T semicolon -92 +KPX T r -55 +KPX T period -129 +KPX T o -74 +KPX T i -18 +KPX T hyphen -92 +KPX T e -74 +KPX T comma -129 +KPX T colon -92 +KPX T a -74 +KPX T A -55 + +KPX U period -60 +KPX U comma -60 + +KPX V u -37 +KPX V semicolon -74 +KPX V period -129 +KPX V o -55 +KPX V i -18 +KPX V hyphen -55 +KPX V e -55 +KPX V comma -129 +KPX V colon -74 +KPX V a -55 +KPX V A -37 + +KPX W y -37 +KPX W u -37 +KPX W semicolon -74 +KPX W period -111 +KPX W o -37 +KPX W hyphen -55 +KPX W e -37 +KPX W comma -111 +KPX W colon -74 +KPX W a -37 +KPX W A -37 + +KPX Y u -55 +KPX Y semicolon -92 +KPX Y period -111 +KPX Y o -74 +KPX Y i -37 +KPX Y hyphen -74 +KPX Y e -74 +KPX Y comma -111 +KPX Y colon -92 +KPX Y a -74 +KPX Y A -55 + +KPX b period -50 +KPX b comma -50 + +KPX c period -50 +KPX c h -25 +KPX c comma -50 + +KPX colon space -37 + +KPX comma space -37 +KPX comma quoteright -37 +KPX comma quotedblright -37 + +KPX d w -10 +KPX d period 10 +KPX d comma 10 + +KPX e period -60 +KPX e comma -60 + +KPX f quoteright 37 +KPX f quotedblright 37 +KPX f period -60 +KPX f comma -60 + +KPX g period -60 +KPX g comma -60 + +KPX period quoteright -37 +KPX period quotedblright -37 + +KPX quotedblleft quoteleft 18 +KPX quotedblleft A -18 + +KPX quotedblright space -37 + +KPX quoteleft A -18 + +KPX quoteright v -18 +KPX quoteright s -37 +KPX quoteright r -18 +KPX quoteright quotedblright 18 +KPX quoteright d -37 + +KPX r s -18 +KPX r q -18 +KPX r period -92 +KPX r hyphen -37 +KPX r g -18 +KPX r e -18 +KPX r d -18 +KPX r comma -92 +KPX r c -18 +KPX r a -18 + +KPX s w -18 + +KPX space Y -37 +KPX space W -37 +KPX space V -37 +KPX space T -37 +KPX space A -37 + +KPX v period -37 +KPX v o 18 +KPX v e 18 +KPX v comma -37 +KPX v a 18 + +KPX w period -37 +KPX w o 18 +KPX w e 18 +KPX w comma -37 +KPX w a 18 + +KPX y period -37 +KPX y comma -37 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 195 175 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 195 175 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 195 175 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 195 175 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 220 165 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 195 175 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 225 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 195 175 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 195 175 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 195 175 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 195 175 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 10 175 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 10 175 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 10 175 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 10 175 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 215 175 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 243 175 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 243 175 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 243 175 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 243 175 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 243 175 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 167 175 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 243 175 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 243 175 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 243 175 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 243 175 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 139 175 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 139 175 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 187 175 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 167 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 167 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 167 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 167 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 167 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 167 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 132 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 112 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 112 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 112 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 112 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 167 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 139 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 139 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 139 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 139 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 139 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 112 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 167 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 167 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 167 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 167 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 139 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 139 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 97 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-MdIt+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-MdIt+ new file mode 100755 index 0000000000000..a9d09ffb54ecd --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Bk-MdIt+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 722 ; N Ccaron ; B 50 -13 726 917 ; +C -1 ; WX 556 ; N ccaron ; B 41 -10 560 723 ; +C -1 ; WX 778 ; N Dcaron ; B 2 0 751 917 ; +C -1 ; WX 717 ; N dcaron ; B 41 -10 804 759 ; +C -1 ; WX 722 ; N Ecaron ; B -6 0 709 917 ; +C -1 ; WX 556 ; N ecaron ; B 41 -10 547 723 ; +C -1 ; WX 667 ; N Lcaron ; B 2 0 653 749 ; +C -1 ; WX 667 ; N Lacute ; B 2 0 653 923 ; +C -1 ; WX 439 ; N lcaron ; B 74 -10 505 759 ; +C -1 ; WX 333 ; N lacute ; B 74 -10 457 923 ; +C -1 ; WX 722 ; N Ncaron ; B 2 0 753 917 ; +C -1 ; WX 667 ; N ncaron ; B 68 -10 667 723 ; +C -1 ; WX 722 ; N Rcaron ; B -6 0 704 917 ; +C -1 ; WX 722 ; N Racute ; B -6 0 704 923 ; +C -1 ; WX 444 ; N rcaron ; B 67 0 480 723 ; +C -1 ; WX 444 ; N racute ; B 67 0 471 729 ; +C -1 ; WX 667 ; N Tcaron ; B 46 0 703 917 ; +C -1 ; WX 495 ; N tcaron ; B 60 -10 554 694 ; +C -1 ; WX 778 ; N Uring ; B 105 -13 818 917 ; +C -1 ; WX 667 ; N uring ; B 67 -10 671 769 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 301 194 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 135 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 263 194 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 557 65 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 235 194 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 111 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 312 55 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 208 194 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 258 65 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 65 194 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 235 194 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 167 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 235 194 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 280 194 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 55 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 79 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 208 194 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 307 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 253 148 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 167 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr new file mode 100755 index 0000000000000..383939f8665ae --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr @@ -0,0 +1,345 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1989, 1990, 1991 Adobe Systems Incorporated. All rights reserved. +Comment Creation Date: Tue Sep 17 07:47:21 1991 +Comment UniqueID 36347 +Comment VMusage 31037 39405 +Comment Modified by Jeff Kingston 4 July 1994 (removed erroneous ligatures) +FontName Courier +FullName Courier +FamilyName Courier +Weight Medium +ItalicAngle 0 +IsFixedPitch true +FontBBox -28 -250 628 805 +UnderlinePosition -100 +UnderlineThickness 50 +Version 002.004 +Notice Copyright (c) 1989, 1990, 1991 Adobe Systems Incorporated. All rights reserved. +EncodingScheme AdobeStandardEncoding +CapHeight 562 +XHeight 426 +Ascender 629 +Descender -157 +StartCharMetrics 260 +C 32 ; WX 600 ; N space ; B 0 0 0 0 ; +C 33 ; WX 600 ; N exclam ; B 236 -15 364 572 ; +C 34 ; WX 600 ; N quotedbl ; B 187 328 413 562 ; +C 35 ; WX 600 ; N numbersign ; B 93 -32 507 639 ; +C 36 ; WX 600 ; N dollar ; B 105 -126 496 662 ; +C 37 ; WX 600 ; N percent ; B 81 -15 518 622 ; +C 38 ; WX 600 ; N ampersand ; B 63 -15 538 543 ; +C 39 ; WX 600 ; N quoteright ; B 213 328 376 562 ; +C 40 ; WX 600 ; N parenleft ; B 269 -108 440 622 ; +C 41 ; WX 600 ; N parenright ; B 160 -108 331 622 ; +C 42 ; WX 600 ; N asterisk ; B 116 257 484 607 ; +C 43 ; WX 600 ; N plus ; B 80 44 520 470 ; +C 44 ; WX 600 ; N comma ; B 181 -112 344 122 ; +C 45 ; WX 600 ; N hyphen ; B 103 231 497 285 ; +C 46 ; WX 600 ; N period ; B 229 -15 371 109 ; +C 47 ; WX 600 ; N slash ; B 125 -80 475 629 ; +C 48 ; WX 600 ; N zero ; B 106 -15 494 622 ; +C 49 ; WX 600 ; N one ; B 96 0 505 622 ; +C 50 ; WX 600 ; N two ; B 70 0 471 622 ; +C 51 ; WX 600 ; N three ; B 75 -15 466 622 ; +C 52 ; WX 600 ; N four ; B 78 0 500 622 ; +C 53 ; WX 600 ; N five ; B 92 -15 497 607 ; +C 54 ; WX 600 ; N six ; B 111 -15 497 622 ; +C 55 ; WX 600 ; N seven ; B 82 0 483 607 ; +C 56 ; WX 600 ; N eight ; B 102 -15 498 622 ; +C 57 ; WX 600 ; N nine ; B 96 -15 489 622 ; +C 58 ; WX 600 ; N colon ; B 229 -15 371 385 ; +C 59 ; WX 600 ; N semicolon ; B 181 -112 371 385 ; +C 60 ; WX 600 ; N less ; B 41 42 519 472 ; +C 61 ; WX 600 ; N equal ; B 80 138 520 376 ; +C 62 ; WX 600 ; N greater ; B 66 42 544 472 ; +C 63 ; WX 600 ; N question ; B 129 -15 492 572 ; +C 64 ; WX 600 ; N at ; B 77 -15 533 622 ; +C 65 ; WX 600 ; N A ; B 3 0 597 562 ; +C 66 ; WX 600 ; N B ; B 43 0 559 562 ; +C 67 ; WX 600 ; N C ; B 41 -18 540 580 ; +C 68 ; WX 600 ; N D ; B 43 0 574 562 ; +C 69 ; WX 600 ; N E ; B 53 0 550 562 ; +C 70 ; WX 600 ; N F ; B 53 0 545 562 ; +C 71 ; WX 600 ; N G ; B 31 -18 575 580 ; +C 72 ; WX 600 ; N H ; B 32 0 568 562 ; +C 73 ; WX 600 ; N I ; B 96 0 504 562 ; +C 74 ; WX 600 ; N J ; B 34 -18 566 562 ; +C 75 ; WX 600 ; N K ; B 38 0 582 562 ; +C 76 ; WX 600 ; N L ; B 47 0 554 562 ; +C 77 ; WX 600 ; N M ; B 4 0 596 562 ; +C 78 ; WX 600 ; N N ; B 7 -13 593 562 ; +C 79 ; WX 600 ; N O ; B 43 -18 557 580 ; +C 80 ; WX 600 ; N P ; B 79 0 558 562 ; +C 81 ; WX 600 ; N Q ; B 43 -138 557 580 ; +C 82 ; WX 600 ; N R ; B 38 0 588 562 ; +C 83 ; WX 600 ; N S ; B 72 -20 529 580 ; +C 84 ; WX 600 ; N T ; B 38 0 563 562 ; +C 85 ; WX 600 ; N U ; B 17 -18 583 562 ; +C 86 ; WX 600 ; N V ; B -4 -13 604 562 ; +C 87 ; WX 600 ; N W ; B -3 -13 603 562 ; +C 88 ; WX 600 ; N X ; B 23 0 577 562 ; +C 89 ; WX 600 ; N Y ; B 24 0 576 562 ; +C 90 ; WX 600 ; N Z ; B 86 0 514 562 ; +C 91 ; WX 600 ; N bracketleft ; B 269 -108 442 622 ; +C 92 ; WX 600 ; N backslash ; B 118 -80 482 629 ; +C 93 ; WX 600 ; N bracketright ; B 158 -108 331 622 ; +C 94 ; WX 600 ; N asciicircum ; B 94 354 506 622 ; +C 95 ; WX 600 ; N underscore ; B 0 -125 600 -75 ; +C 96 ; WX 600 ; N quoteleft ; B 224 328 387 562 ; +C 97 ; WX 600 ; N a ; B 53 -15 559 441 ; +C 98 ; WX 600 ; N b ; B 14 -15 575 629 ; +C 99 ; WX 600 ; N c ; B 66 -15 529 441 ; +C 100 ; WX 600 ; N d ; B 45 -15 591 629 ; +C 101 ; WX 600 ; N e ; B 66 -15 548 441 ; +C 102 ; WX 600 ; N f ; B 114 0 531 629 ; +C 103 ; WX 600 ; N g ; B 45 -157 566 441 ; +C 104 ; WX 600 ; N h ; B 18 0 582 629 ; +C 105 ; WX 600 ; N i ; B 95 0 505 657 ; +C 106 ; WX 600 ; N j ; B 82 -157 410 657 ; +C 107 ; WX 600 ; N k ; B 43 0 580 629 ; +C 108 ; WX 600 ; N l ; B 95 0 505 629 ; +C 109 ; WX 600 ; N m ; B -5 0 605 441 ; +C 110 ; WX 600 ; N n ; B 26 0 575 441 ; +C 111 ; WX 600 ; N o ; B 62 -15 538 441 ; +C 112 ; WX 600 ; N p ; B 9 -157 555 441 ; +C 113 ; WX 600 ; N q ; B 45 -157 591 441 ; +C 114 ; WX 600 ; N r ; B 60 0 559 441 ; +C 115 ; WX 600 ; N s ; B 80 -15 513 441 ; +C 116 ; WX 600 ; N t ; B 87 -15 530 561 ; +C 117 ; WX 600 ; N u ; B 21 -15 562 426 ; +C 118 ; WX 600 ; N v ; B 10 -10 590 426 ; +C 119 ; WX 600 ; N w ; B -4 -10 604 426 ; +C 120 ; WX 600 ; N x ; B 20 0 580 426 ; +C 121 ; WX 600 ; N y ; B 7 -157 592 426 ; +C 122 ; WX 600 ; N z ; B 99 0 502 426 ; +C 123 ; WX 600 ; N braceleft ; B 182 -108 437 622 ; +C 124 ; WX 600 ; N bar ; B 275 -250 326 750 ; +C 125 ; WX 600 ; N braceright ; B 163 -108 418 622 ; +C 126 ; WX 600 ; N asciitilde ; B 63 197 540 320 ; +C 161 ; WX 600 ; N exclamdown ; B 236 -157 364 430 ; +C 162 ; WX 600 ; N cent ; B 96 -49 500 614 ; +C 163 ; WX 600 ; N sterling ; B 84 -21 521 611 ; +C 164 ; WX 600 ; N fraction ; B 92 -57 509 665 ; +C 165 ; WX 600 ; N yen ; B 26 0 574 562 ; +C 166 ; WX 600 ; N florin ; B 4 -143 539 622 ; +C 167 ; WX 600 ; N section ; B 113 -78 488 580 ; +C 168 ; WX 600 ; N currency ; B 73 58 527 506 ; +C 169 ; WX 600 ; N quotesingle ; B 259 328 341 562 ; +C 170 ; WX 600 ; N quotedblleft ; B 143 328 471 562 ; +C 171 ; WX 600 ; N guillemotleft ; B 37 70 563 446 ; +C 172 ; WX 600 ; N guilsinglleft ; B 149 70 451 446 ; +C 173 ; WX 600 ; N guilsinglright ; B 149 70 451 446 ; +C 174 ; WX 600 ; N fi ; B 3 0 597 629 ; +C 175 ; WX 600 ; N fl ; B 3 0 597 629 ; +C 177 ; WX 600 ; N endash ; B 75 231 525 285 ; +C 178 ; WX 600 ; N dagger ; B 141 -78 459 580 ; +C 179 ; WX 600 ; N daggerdbl ; B 141 -78 459 580 ; +C 180 ; WX 600 ; N periodcentered ; B 222 189 378 327 ; +C 182 ; WX 600 ; N paragraph ; B 50 -78 511 562 ; +C 183 ; WX 600 ; N bullet ; B 172 130 428 383 ; +C 184 ; WX 600 ; N quotesinglbase ; B 213 -134 376 100 ; +C 185 ; WX 600 ; N quotedblbase ; B 143 -134 457 100 ; +C 186 ; WX 600 ; N quotedblright ; B 143 328 457 562 ; +C 187 ; WX 600 ; N guillemotright ; B 37 70 563 446 ; +C 188 ; WX 600 ; N ellipsis ; B 37 -15 563 111 ; +C 189 ; WX 600 ; N perthousand ; B 3 -15 600 622 ; +C 191 ; WX 600 ; N questiondown ; B 108 -157 471 430 ; +C 193 ; WX 600 ; N grave ; B 151 497 378 672 ; +C 194 ; WX 600 ; N acute ; B 242 497 469 672 ; +C 195 ; WX 600 ; N circumflex ; B 124 477 476 654 ; +C 196 ; WX 600 ; N tilde ; B 105 489 503 606 ; +C 197 ; WX 600 ; N macron ; B 120 525 480 565 ; +C 198 ; WX 600 ; N breve ; B 153 501 447 609 ; +C 199 ; WX 600 ; N dotaccent ; B 249 477 352 580 ; +C 200 ; WX 600 ; N dieresis ; B 148 492 453 595 ; +C 202 ; WX 600 ; N ring ; B 218 463 382 627 ; +C 203 ; WX 600 ; N cedilla ; B 224 -151 362 10 ; +C 205 ; WX 600 ; N hungarumlaut ; B 133 497 540 672 ; +C 206 ; WX 600 ; N ogonek ; B 227 -151 370 0 ; +C 207 ; WX 600 ; N caron ; B 124 492 476 669 ; +C 208 ; WX 600 ; N emdash ; B 0 231 600 285 ; +C 225 ; WX 600 ; N AE ; B 3 0 550 562 ; +C 227 ; WX 600 ; N ordfeminine ; B 156 249 442 580 ; +C 232 ; WX 600 ; N Lslash ; B 47 0 554 562 ; +C 233 ; WX 600 ; N Oslash ; B 43 -80 557 629 ; +C 234 ; WX 600 ; N OE ; B 7 0 567 562 ; +C 235 ; WX 600 ; N ordmasculine ; B 157 249 443 580 ; +C 241 ; WX 600 ; N ae ; B 19 -15 570 441 ; +C 245 ; WX 600 ; N dotlessi ; B 95 0 505 426 ; +C 248 ; WX 600 ; N lslash ; B 95 0 505 629 ; +C 249 ; WX 600 ; N oslash ; B 62 -80 538 506 ; +C 250 ; WX 600 ; N oe ; B 19 -15 559 441 ; +C 251 ; WX 600 ; N germandbls ; B 48 -15 588 629 ; +C -1 ; WX 600 ; N Odieresis ; B 43 -18 557 731 ; +C -1 ; WX 600 ; N logicalnot ; B 87 108 513 369 ; +C -1 ; WX 600 ; N minus ; B 80 232 520 283 ; +C -1 ; WX 600 ; N merge ; B 160 -15 440 436 ; +C -1 ; WX 600 ; N degree ; B 123 269 477 622 ; +C -1 ; WX 600 ; N dectab ; B 18 0 582 227 ; +C -1 ; WX 600 ; N ll ; B 18 0 567 629 ; +C -1 ; WX 600 ; N IJ ; B 32 -18 583 562 ; +C -1 ; WX 600 ; N Eacute ; B 53 0 550 793 ; +C -1 ; WX 600 ; N Ocircumflex ; B 43 -18 557 775 ; +C -1 ; WX 600 ; N ucircumflex ; B 21 -15 562 654 ; +C -1 ; WX 600 ; N left ; B 70 68 530 348 ; +C -1 ; WX 600 ; N threesuperior ; B 155 240 406 622 ; +C -1 ; WX 600 ; N up ; B 160 0 440 437 ; +C -1 ; WX 600 ; N multiply ; B 87 43 515 470 ; +C -1 ; WX 600 ; N Scaron ; B 72 -20 529 805 ; +C -1 ; WX 600 ; N tab ; B 19 0 581 562 ; +C -1 ; WX 600 ; N Ucircumflex ; B 17 -18 583 775 ; +C -1 ; WX 600 ; N divide ; B 87 48 513 467 ; +C -1 ; WX 600 ; N Acircumflex ; B 3 0 597 775 ; +C -1 ; WX 600 ; N eacute ; B 66 -15 548 672 ; +C -1 ; WX 600 ; N uacute ; B 21 -15 562 672 ; +C -1 ; WX 600 ; N Aacute ; B 3 0 597 793 ; +C -1 ; WX 600 ; N copyright ; B 0 -18 600 580 ; +C -1 ; WX 600 ; N twosuperior ; B 177 249 424 622 ; +C -1 ; WX 600 ; N Ecircumflex ; B 53 0 550 775 ; +C -1 ; WX 600 ; N ntilde ; B 26 0 575 606 ; +C -1 ; WX 600 ; N down ; B 160 -15 440 426 ; +C -1 ; WX 600 ; N center ; B 40 14 560 580 ; +C -1 ; WX 600 ; N onesuperior ; B 172 249 428 622 ; +C -1 ; WX 600 ; N ij ; B 37 -157 490 657 ; +C -1 ; WX 600 ; N edieresis ; B 66 -15 548 595 ; +C -1 ; WX 600 ; N graybox ; B 76 0 525 599 ; +C -1 ; WX 600 ; N odieresis ; B 62 -15 538 595 ; +C -1 ; WX 600 ; N Ograve ; B 43 -18 557 793 ; +C -1 ; WX 600 ; N threequarters ; B 8 -56 593 666 ; +C -1 ; WX 600 ; N plusminus ; B 87 44 513 558 ; +C -1 ; WX 600 ; N prescription ; B 27 -15 577 562 ; +C -1 ; WX 600 ; N eth ; B 62 -15 538 629 ; +C -1 ; WX 600 ; N largebullet ; B 261 220 339 297 ; +C -1 ; WX 600 ; N egrave ; B 66 -15 548 672 ; +C -1 ; WX 600 ; N ccedilla ; B 66 -151 529 441 ; +C -1 ; WX 600 ; N notegraphic ; B 136 -15 464 572 ; +C -1 ; WX 600 ; N Udieresis ; B 17 -18 583 731 ; +C -1 ; WX 600 ; N Gcaron ; B 31 -18 575 805 ; +C -1 ; WX 600 ; N arrowdown ; B 116 -15 484 608 ; +C -1 ; WX 600 ; N format ; B 5 -157 56 607 ; +C -1 ; WX 600 ; N Otilde ; B 43 -18 557 732 ; +C -1 ; WX 600 ; N Idieresis ; B 96 0 504 731 ; +C -1 ; WX 600 ; N adieresis ; B 53 -15 559 595 ; +C -1 ; WX 600 ; N ecircumflex ; B 66 -15 548 654 ; +C -1 ; WX 600 ; N Eth ; B 30 0 574 562 ; +C -1 ; WX 600 ; N onequarter ; B 0 -57 600 665 ; +C -1 ; WX 600 ; N LL ; B 8 0 592 562 ; +C -1 ; WX 600 ; N agrave ; B 53 -15 559 672 ; +C -1 ; WX 600 ; N Zcaron ; B 86 0 514 805 ; +C -1 ; WX 600 ; N Scedilla ; B 72 -151 529 580 ; +C -1 ; WX 600 ; N Idot ; B 96 0 504 716 ; +C -1 ; WX 600 ; N Iacute ; B 96 0 504 793 ; +C -1 ; WX 600 ; N indent ; B 70 68 530 348 ; +C -1 ; WX 600 ; N Ugrave ; B 17 -18 583 793 ; +C -1 ; WX 600 ; N scaron ; B 80 -15 513 669 ; +C -1 ; WX 600 ; N overscore ; B 0 579 600 629 ; +C -1 ; WX 600 ; N Aring ; B 3 0 597 753 ; +C -1 ; WX 600 ; N Ccedilla ; B 41 -151 540 580 ; +C -1 ; WX 600 ; N Igrave ; B 96 0 504 793 ; +C -1 ; WX 600 ; N brokenbar ; B 275 -175 326 675 ; +C -1 ; WX 600 ; N Oacute ; B 43 -18 557 793 ; +C -1 ; WX 600 ; N otilde ; B 62 -15 538 606 ; +C -1 ; WX 600 ; N Yacute ; B 24 0 576 793 ; +C -1 ; WX 600 ; N lira ; B 73 -21 521 611 ; +C -1 ; WX 600 ; N Icircumflex ; B 96 0 504 775 ; +C -1 ; WX 600 ; N Atilde ; B 3 0 597 732 ; +C -1 ; WX 600 ; N Uacute ; B 17 -18 583 793 ; +C -1 ; WX 600 ; N Ydieresis ; B 24 0 576 731 ; +C -1 ; WX 600 ; N ydieresis ; B 7 -157 592 595 ; +C -1 ; WX 600 ; N idieresis ; B 95 0 505 595 ; +C -1 ; WX 600 ; N Adieresis ; B 3 0 597 731 ; +C -1 ; WX 600 ; N mu ; B 21 -157 562 426 ; +C -1 ; WX 600 ; N trademark ; B -23 263 623 562 ; +C -1 ; WX 600 ; N oacute ; B 62 -15 538 672 ; +C -1 ; WX 600 ; N acircumflex ; B 53 -15 559 654 ; +C -1 ; WX 600 ; N Agrave ; B 3 0 597 793 ; +C -1 ; WX 600 ; N return ; B 19 0 581 562 ; +C -1 ; WX 600 ; N atilde ; B 53 -15 559 606 ; +C -1 ; WX 600 ; N square ; B 19 0 581 562 ; +C -1 ; WX 600 ; N registered ; B 0 -18 600 580 ; +C -1 ; WX 600 ; N stop ; B 19 0 581 562 ; +C -1 ; WX 600 ; N udieresis ; B 21 -15 562 595 ; +C -1 ; WX 600 ; N arrowup ; B 116 0 484 623 ; +C -1 ; WX 600 ; N igrave ; B 95 0 505 672 ; +C -1 ; WX 600 ; N Edieresis ; B 53 0 550 731 ; +C -1 ; WX 600 ; N zcaron ; B 99 0 502 669 ; +C -1 ; WX 600 ; N arrowboth ; B -28 115 628 483 ; +C -1 ; WX 600 ; N gcaron ; B 45 -157 566 669 ; +C -1 ; WX 600 ; N arrowleft ; B -24 115 624 483 ; +C -1 ; WX 600 ; N aacute ; B 53 -15 559 672 ; +C -1 ; WX 600 ; N ocircumflex ; B 62 -15 538 654 ; +C -1 ; WX 600 ; N scedilla ; B 80 -151 513 441 ; +C -1 ; WX 600 ; N ograve ; B 62 -15 538 672 ; +C -1 ; WX 600 ; N onehalf ; B 0 -57 611 665 ; +C -1 ; WX 600 ; N ugrave ; B 21 -15 562 672 ; +C -1 ; WX 600 ; N Ntilde ; B 7 -13 593 732 ; +C -1 ; WX 600 ; N iacute ; B 95 0 505 672 ; +C -1 ; WX 600 ; N arrowright ; B -24 115 624 483 ; +C -1 ; WX 600 ; N Thorn ; B 79 0 538 562 ; +C -1 ; WX 600 ; N Egrave ; B 53 0 550 793 ; +C -1 ; WX 600 ; N thorn ; B -6 -157 555 629 ; +C -1 ; WX 600 ; N aring ; B 53 -15 559 627 ; +C -1 ; WX 600 ; N yacute ; B 7 -157 592 672 ; +C -1 ; WX 600 ; N icircumflex ; B 94 0 505 654 ; +EndCharMetrics +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 20 121 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex -30 121 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis -30 136 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave -30 121 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring -15 126 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 0 126 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 30 121 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 0 121 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 0 136 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 0 121 ; +CC Gcaron 2 ; PCC G 0 0 ; PCC caron 0 136 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 0 121 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 0 121 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 0 136 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 121 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 0 126 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 0 121 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 0 121 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 0 136 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 0 121 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 0 126 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 30 136 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 30 121 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 0 121 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 0 136 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave -30 121 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 30 121 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 0 136 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 0 136 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 0 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 0 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 0 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 0 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 0 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 0 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 0 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 0 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 0 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 0 0 ; +CC gcaron 2 ; PCC g 0 0 ; PCC caron -30 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -30 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -30 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -30 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 0 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 0 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 0 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 0 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 0 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 0 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 0 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute -10 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex -10 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 0 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave -30 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute -20 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis -10 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 10 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr+ new file mode 100755 index 0000000000000..63b36ec7ef811 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 600 ; N Ccaron ; B 41 -18 540 790 ; +C -1 ; WX 600 ; N ccaron ; B 66 -15 529 669 ; +C -1 ; WX 600 ; N Dcaron ; B 43 0 574 790 ; +C -1 ; WX 600 ; N dcaron ; B 45 -15 770 692 ; +C -1 ; WX 600 ; N Ecaron ; B 53 0 550 790 ; +C -1 ; WX 600 ; N ecaron ; B 66 -15 548 669 ; +C -1 ; WX 600 ; N Lcaron ; B 47 0 683 618 ; +C -1 ; WX 600 ; N Lacute ; B 47 0 554 788 ; +C -1 ; WX 600 ; N lcaron ; B 95 0 684 692 ; +C -1 ; WX 600 ; N lacute ; B 95 0 505 788 ; +C -1 ; WX 600 ; N Ncaron ; B 7 -13 593 790 ; +C -1 ; WX 600 ; N ncaron ; B 26 0 575 669 ; +C -1 ; WX 600 ; N Rcaron ; B 38 0 588 790 ; +C -1 ; WX 600 ; N Racute ; B 38 0 588 788 ; +C -1 ; WX 600 ; N rcaron ; B 60 0 559 669 ; +C -1 ; WX 600 ; N racute ; B 60 0 559 672 ; +C -1 ; WX 600 ; N Tcaron ; B 38 0 563 790 ; +C -1 ; WX 600 ; N tcaron ; B 87 -15 709 562 ; +C -1 ; WX 600 ; N Uring ; B 17 -18 583 790 ; +C -1 ; WX 600 ; N uring ; B 21 -15 562 627 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 50 121 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 23 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 0 121 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 394 130 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 0 121 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 0 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 307 56 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 0 116 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 308 130 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 23 116 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 0 121 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 0 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 0 121 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 43 116 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 23 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 0 121 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 333 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 0 163 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 0 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr-Bd b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr-Bd new file mode 100755 index 0000000000000..13cd30343698b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr-Bd @@ -0,0 +1,345 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1989, 1990, 1991, Adobe Systems Incorporated. All rights reserved. +Comment Creation Date: Tue Sep 17 14:02:41 1991 +Comment UniqueID 36384 +Comment VMusage 31992 40360 +Comment Modified by Jeff Kingston 4 July 1994 (removed erroneous ligatures) +FontName Courier-Bold +FullName Courier Bold +FamilyName Courier +Weight Bold +ItalicAngle 0 +IsFixedPitch true +FontBBox -113 -250 749 801 +UnderlinePosition -100 +UnderlineThickness 50 +Version 002.004 +Notice Copyright (c) 1989, 1990, 1991, Adobe Systems Incorporated. All rights reserved. +EncodingScheme AdobeStandardEncoding +CapHeight 562 +XHeight 439 +Ascender 626 +Descender -142 +StartCharMetrics 260 +C 32 ; WX 600 ; N space ; B 0 0 0 0 ; +C 33 ; WX 600 ; N exclam ; B 202 -15 398 572 ; +C 34 ; WX 600 ; N quotedbl ; B 135 277 465 562 ; +C 35 ; WX 600 ; N numbersign ; B 56 -45 544 651 ; +C 36 ; WX 600 ; N dollar ; B 82 -126 519 666 ; +C 37 ; WX 600 ; N percent ; B 5 -15 595 616 ; +C 38 ; WX 600 ; N ampersand ; B 36 -15 546 543 ; +C 39 ; WX 600 ; N quoteright ; B 171 277 423 562 ; +C 40 ; WX 600 ; N parenleft ; B 219 -102 461 616 ; +C 41 ; WX 600 ; N parenright ; B 139 -102 381 616 ; +C 42 ; WX 600 ; N asterisk ; B 91 219 509 601 ; +C 43 ; WX 600 ; N plus ; B 71 39 529 478 ; +C 44 ; WX 600 ; N comma ; B 123 -111 393 174 ; +C 45 ; WX 600 ; N hyphen ; B 100 203 500 313 ; +C 46 ; WX 600 ; N period ; B 192 -15 408 171 ; +C 47 ; WX 600 ; N slash ; B 98 -77 502 626 ; +C 48 ; WX 600 ; N zero ; B 87 -15 513 616 ; +C 49 ; WX 600 ; N one ; B 81 0 539 616 ; +C 50 ; WX 600 ; N two ; B 61 0 499 616 ; +C 51 ; WX 600 ; N three ; B 63 -15 501 616 ; +C 52 ; WX 600 ; N four ; B 53 0 507 616 ; +C 53 ; WX 600 ; N five ; B 70 -15 521 601 ; +C 54 ; WX 600 ; N six ; B 90 -15 521 616 ; +C 55 ; WX 600 ; N seven ; B 55 0 494 601 ; +C 56 ; WX 600 ; N eight ; B 83 -15 517 616 ; +C 57 ; WX 600 ; N nine ; B 79 -15 510 616 ; +C 58 ; WX 600 ; N colon ; B 191 -15 407 425 ; +C 59 ; WX 600 ; N semicolon ; B 123 -111 408 425 ; +C 60 ; WX 600 ; N less ; B 66 15 523 501 ; +C 61 ; WX 600 ; N equal ; B 71 118 529 398 ; +C 62 ; WX 600 ; N greater ; B 77 15 534 501 ; +C 63 ; WX 600 ; N question ; B 98 -14 501 580 ; +C 64 ; WX 600 ; N at ; B 16 -15 584 616 ; +C 65 ; WX 600 ; N A ; B -9 0 609 562 ; +C 66 ; WX 600 ; N B ; B 30 0 573 562 ; +C 67 ; WX 600 ; N C ; B 22 -18 560 580 ; +C 68 ; WX 600 ; N D ; B 30 0 594 562 ; +C 69 ; WX 600 ; N E ; B 25 0 560 562 ; +C 70 ; WX 600 ; N F ; B 39 0 570 562 ; +C 71 ; WX 600 ; N G ; B 22 -18 594 580 ; +C 72 ; WX 600 ; N H ; B 20 0 580 562 ; +C 73 ; WX 600 ; N I ; B 77 0 523 562 ; +C 74 ; WX 600 ; N J ; B 37 -18 601 562 ; +C 75 ; WX 600 ; N K ; B 21 0 599 562 ; +C 76 ; WX 600 ; N L ; B 39 0 578 562 ; +C 77 ; WX 600 ; N M ; B -2 0 602 562 ; +C 78 ; WX 600 ; N N ; B 8 -12 610 562 ; +C 79 ; WX 600 ; N O ; B 22 -18 578 580 ; +C 80 ; WX 600 ; N P ; B 48 0 559 562 ; +C 81 ; WX 600 ; N Q ; B 32 -138 578 580 ; +C 82 ; WX 600 ; N R ; B 24 0 599 562 ; +C 83 ; WX 600 ; N S ; B 47 -22 553 582 ; +C 84 ; WX 600 ; N T ; B 21 0 579 562 ; +C 85 ; WX 600 ; N U ; B 4 -18 596 562 ; +C 86 ; WX 600 ; N V ; B -13 0 613 562 ; +C 87 ; WX 600 ; N W ; B -18 0 618 562 ; +C 88 ; WX 600 ; N X ; B 12 0 588 562 ; +C 89 ; WX 600 ; N Y ; B 12 0 589 562 ; +C 90 ; WX 600 ; N Z ; B 62 0 539 562 ; +C 91 ; WX 600 ; N bracketleft ; B 245 -102 475 616 ; +C 92 ; WX 600 ; N backslash ; B 99 -77 503 626 ; +C 93 ; WX 600 ; N bracketright ; B 125 -102 355 616 ; +C 94 ; WX 600 ; N asciicircum ; B 108 250 492 616 ; +C 95 ; WX 600 ; N underscore ; B 0 -125 600 -75 ; +C 96 ; WX 600 ; N quoteleft ; B 178 277 428 562 ; +C 97 ; WX 600 ; N a ; B 35 -15 570 454 ; +C 98 ; WX 600 ; N b ; B 0 -15 584 626 ; +C 99 ; WX 600 ; N c ; B 40 -15 545 459 ; +C 100 ; WX 600 ; N d ; B 20 -15 591 626 ; +C 101 ; WX 600 ; N e ; B 40 -15 563 454 ; +C 102 ; WX 600 ; N f ; B 83 0 547 626 ; +C 103 ; WX 600 ; N g ; B 30 -146 580 454 ; +C 104 ; WX 600 ; N h ; B 5 0 592 626 ; +C 105 ; WX 600 ; N i ; B 77 0 523 658 ; +C 106 ; WX 600 ; N j ; B 63 -146 440 658 ; +C 107 ; WX 600 ; N k ; B 20 0 585 626 ; +C 108 ; WX 600 ; N l ; B 77 0 523 626 ; +C 109 ; WX 600 ; N m ; B -22 0 626 454 ; +C 110 ; WX 600 ; N n ; B 18 0 592 454 ; +C 111 ; WX 600 ; N o ; B 30 -15 570 454 ; +C 112 ; WX 600 ; N p ; B -1 -142 570 454 ; +C 113 ; WX 600 ; N q ; B 20 -142 591 454 ; +C 114 ; WX 600 ; N r ; B 47 0 580 454 ; +C 115 ; WX 600 ; N s ; B 68 -17 535 459 ; +C 116 ; WX 600 ; N t ; B 47 -15 532 562 ; +C 117 ; WX 600 ; N u ; B -1 -15 569 439 ; +C 118 ; WX 600 ; N v ; B -1 0 601 439 ; +C 119 ; WX 600 ; N w ; B -18 0 618 439 ; +C 120 ; WX 600 ; N x ; B 6 0 594 439 ; +C 121 ; WX 600 ; N y ; B -4 -142 601 439 ; +C 122 ; WX 600 ; N z ; B 81 0 520 439 ; +C 123 ; WX 600 ; N braceleft ; B 160 -102 464 616 ; +C 124 ; WX 600 ; N bar ; B 255 -250 345 750 ; +C 125 ; WX 600 ; N braceright ; B 136 -102 440 616 ; +C 126 ; WX 600 ; N asciitilde ; B 71 153 530 356 ; +C 161 ; WX 600 ; N exclamdown ; B 202 -146 398 449 ; +C 162 ; WX 600 ; N cent ; B 66 -49 518 614 ; +C 163 ; WX 600 ; N sterling ; B 72 -28 558 611 ; +C 164 ; WX 600 ; N fraction ; B 25 -60 576 661 ; +C 165 ; WX 600 ; N yen ; B 10 0 590 562 ; +C 166 ; WX 600 ; N florin ; B -30 -131 572 616 ; +C 167 ; WX 600 ; N section ; B 83 -70 517 580 ; +C 168 ; WX 600 ; N currency ; B 54 49 546 517 ; +C 169 ; WX 600 ; N quotesingle ; B 227 277 373 562 ; +C 170 ; WX 600 ; N quotedblleft ; B 71 277 535 562 ; +C 171 ; WX 600 ; N guillemotleft ; B 8 70 553 446 ; +C 172 ; WX 600 ; N guilsinglleft ; B 141 70 459 446 ; +C 173 ; WX 600 ; N guilsinglright ; B 141 70 459 446 ; +C 174 ; WX 600 ; N fi ; B 12 0 593 626 ; +C 175 ; WX 600 ; N fl ; B 12 0 593 626 ; +C 177 ; WX 600 ; N endash ; B 65 203 535 313 ; +C 178 ; WX 600 ; N dagger ; B 106 -70 494 580 ; +C 179 ; WX 600 ; N daggerdbl ; B 106 -70 494 580 ; +C 180 ; WX 600 ; N periodcentered ; B 196 165 404 351 ; +C 182 ; WX 600 ; N paragraph ; B 6 -70 576 580 ; +C 183 ; WX 600 ; N bullet ; B 140 132 460 430 ; +C 184 ; WX 600 ; N quotesinglbase ; B 175 -142 427 143 ; +C 185 ; WX 600 ; N quotedblbase ; B 65 -142 529 143 ; +C 186 ; WX 600 ; N quotedblright ; B 61 277 525 562 ; +C 187 ; WX 600 ; N guillemotright ; B 47 70 592 446 ; +C 188 ; WX 600 ; N ellipsis ; B 26 -15 574 116 ; +C 189 ; WX 600 ; N perthousand ; B -113 -15 713 616 ; +C 191 ; WX 600 ; N questiondown ; B 99 -146 502 449 ; +C 193 ; WX 600 ; N grave ; B 132 508 395 661 ; +C 194 ; WX 600 ; N acute ; B 205 508 468 661 ; +C 195 ; WX 600 ; N circumflex ; B 103 483 497 657 ; +C 196 ; WX 600 ; N tilde ; B 89 493 512 636 ; +C 197 ; WX 600 ; N macron ; B 88 505 512 585 ; +C 198 ; WX 600 ; N breve ; B 83 468 517 631 ; +C 199 ; WX 600 ; N dotaccent ; B 230 485 370 625 ; +C 200 ; WX 600 ; N dieresis ; B 128 485 472 625 ; +C 202 ; WX 600 ; N ring ; B 198 481 402 678 ; +C 203 ; WX 600 ; N cedilla ; B 205 -206 387 0 ; +C 205 ; WX 600 ; N hungarumlaut ; B 68 488 588 661 ; +C 206 ; WX 600 ; N ogonek ; B 169 -199 367 0 ; +C 207 ; WX 600 ; N caron ; B 103 493 497 667 ; +C 208 ; WX 600 ; N emdash ; B -10 203 610 313 ; +C 225 ; WX 600 ; N AE ; B -29 0 602 562 ; +C 227 ; WX 600 ; N ordfeminine ; B 147 196 453 580 ; +C 232 ; WX 600 ; N Lslash ; B 39 0 578 562 ; +C 233 ; WX 600 ; N Oslash ; B 22 -22 578 584 ; +C 234 ; WX 600 ; N OE ; B -25 0 595 562 ; +C 235 ; WX 600 ; N ordmasculine ; B 147 196 453 580 ; +C 241 ; WX 600 ; N ae ; B -4 -15 601 454 ; +C 245 ; WX 600 ; N dotlessi ; B 77 0 523 439 ; +C 248 ; WX 600 ; N lslash ; B 77 0 523 626 ; +C 249 ; WX 600 ; N oslash ; B 30 -24 570 463 ; +C 250 ; WX 600 ; N oe ; B -18 -15 611 454 ; +C 251 ; WX 600 ; N germandbls ; B 22 -15 596 626 ; +C -1 ; WX 600 ; N Odieresis ; B 22 -18 578 748 ; +C -1 ; WX 600 ; N logicalnot ; B 71 103 529 413 ; +C -1 ; WX 600 ; N minus ; B 71 203 529 313 ; +C -1 ; WX 600 ; N merge ; B 137 -15 464 487 ; +C -1 ; WX 600 ; N degree ; B 86 243 474 616 ; +C -1 ; WX 600 ; N dectab ; B 8 0 592 320 ; +C -1 ; WX 600 ; N ll ; B -12 0 600 626 ; +C -1 ; WX 600 ; N IJ ; B -8 -18 622 562 ; +C -1 ; WX 600 ; N Eacute ; B 25 0 560 784 ; +C -1 ; WX 600 ; N Ocircumflex ; B 22 -18 578 780 ; +C -1 ; WX 600 ; N ucircumflex ; B -1 -15 569 657 ; +C -1 ; WX 600 ; N left ; B 65 44 535 371 ; +C -1 ; WX 600 ; N threesuperior ; B 138 222 433 616 ; +C -1 ; WX 600 ; N up ; B 136 0 463 447 ; +C -1 ; WX 600 ; N multiply ; B 81 39 520 478 ; +C -1 ; WX 600 ; N Scaron ; B 47 -22 553 790 ; +C -1 ; WX 600 ; N tab ; B 19 0 581 562 ; +C -1 ; WX 600 ; N Ucircumflex ; B 4 -18 596 780 ; +C -1 ; WX 600 ; N divide ; B 71 16 529 500 ; +C -1 ; WX 600 ; N Acircumflex ; B -9 0 609 780 ; +C -1 ; WX 600 ; N eacute ; B 40 -15 563 661 ; +C -1 ; WX 600 ; N uacute ; B -1 -15 569 661 ; +C -1 ; WX 600 ; N Aacute ; B -9 0 609 784 ; +C -1 ; WX 600 ; N copyright ; B 0 -18 600 580 ; +C -1 ; WX 600 ; N twosuperior ; B 143 230 436 616 ; +C -1 ; WX 600 ; N Ecircumflex ; B 25 0 560 780 ; +C -1 ; WX 600 ; N ntilde ; B 18 0 592 636 ; +C -1 ; WX 600 ; N down ; B 137 -15 464 439 ; +C -1 ; WX 600 ; N center ; B 40 14 560 580 ; +C -1 ; WX 600 ; N onesuperior ; B 153 230 447 616 ; +C -1 ; WX 600 ; N ij ; B 6 -146 574 658 ; +C -1 ; WX 600 ; N edieresis ; B 40 -15 563 625 ; +C -1 ; WX 600 ; N graybox ; B 76 0 525 599 ; +C -1 ; WX 600 ; N odieresis ; B 30 -15 570 625 ; +C -1 ; WX 600 ; N Ograve ; B 22 -18 578 784 ; +C -1 ; WX 600 ; N threequarters ; B -47 -60 648 661 ; +C -1 ; WX 600 ; N plusminus ; B 71 24 529 515 ; +C -1 ; WX 600 ; N prescription ; B 24 -15 599 562 ; +C -1 ; WX 600 ; N eth ; B 58 -27 543 626 ; +C -1 ; WX 600 ; N largebullet ; B 248 229 352 333 ; +C -1 ; WX 600 ; N egrave ; B 40 -15 563 661 ; +C -1 ; WX 600 ; N ccedilla ; B 40 -206 545 459 ; +C -1 ; WX 600 ; N notegraphic ; B 77 -15 523 572 ; +C -1 ; WX 600 ; N Udieresis ; B 4 -18 596 748 ; +C -1 ; WX 600 ; N Gcaron ; B 22 -18 594 790 ; +C -1 ; WX 600 ; N arrowdown ; B 144 -15 456 608 ; +C -1 ; WX 600 ; N format ; B 5 -146 115 601 ; +C -1 ; WX 600 ; N Otilde ; B 22 -18 578 759 ; +C -1 ; WX 600 ; N Idieresis ; B 77 0 523 748 ; +C -1 ; WX 600 ; N adieresis ; B 35 -15 570 625 ; +C -1 ; WX 600 ; N ecircumflex ; B 40 -15 563 657 ; +C -1 ; WX 600 ; N Eth ; B 30 0 594 562 ; +C -1 ; WX 600 ; N onequarter ; B -56 -60 656 661 ; +C -1 ; WX 600 ; N LL ; B -45 0 645 562 ; +C -1 ; WX 600 ; N agrave ; B 35 -15 570 661 ; +C -1 ; WX 600 ; N Zcaron ; B 62 0 539 790 ; +C -1 ; WX 600 ; N Scedilla ; B 47 -206 553 582 ; +C -1 ; WX 600 ; N Idot ; B 77 0 523 748 ; +C -1 ; WX 600 ; N Iacute ; B 77 0 523 784 ; +C -1 ; WX 600 ; N indent ; B 65 45 535 372 ; +C -1 ; WX 600 ; N Ugrave ; B 4 -18 596 784 ; +C -1 ; WX 600 ; N scaron ; B 68 -17 535 667 ; +C -1 ; WX 600 ; N overscore ; B 0 579 600 629 ; +C -1 ; WX 600 ; N Aring ; B -9 0 609 801 ; +C -1 ; WX 600 ; N Ccedilla ; B 22 -206 560 580 ; +C -1 ; WX 600 ; N Igrave ; B 77 0 523 784 ; +C -1 ; WX 600 ; N brokenbar ; B 255 -175 345 675 ; +C -1 ; WX 600 ; N Oacute ; B 22 -18 578 784 ; +C -1 ; WX 600 ; N otilde ; B 30 -15 570 636 ; +C -1 ; WX 600 ; N Yacute ; B 12 0 589 784 ; +C -1 ; WX 600 ; N lira ; B 72 -28 558 611 ; +C -1 ; WX 600 ; N Icircumflex ; B 77 0 523 780 ; +C -1 ; WX 600 ; N Atilde ; B -9 0 609 759 ; +C -1 ; WX 600 ; N Uacute ; B 4 -18 596 784 ; +C -1 ; WX 600 ; N Ydieresis ; B 12 0 589 748 ; +C -1 ; WX 600 ; N ydieresis ; B -4 -142 601 625 ; +C -1 ; WX 600 ; N idieresis ; B 77 0 523 625 ; +C -1 ; WX 600 ; N Adieresis ; B -9 0 609 748 ; +C -1 ; WX 600 ; N mu ; B -1 -142 569 439 ; +C -1 ; WX 600 ; N trademark ; B -9 230 749 562 ; +C -1 ; WX 600 ; N oacute ; B 30 -15 570 661 ; +C -1 ; WX 600 ; N acircumflex ; B 35 -15 570 657 ; +C -1 ; WX 600 ; N Agrave ; B -9 0 609 784 ; +C -1 ; WX 600 ; N return ; B 19 0 581 562 ; +C -1 ; WX 600 ; N atilde ; B 35 -15 570 636 ; +C -1 ; WX 600 ; N square ; B 19 0 581 562 ; +C -1 ; WX 600 ; N registered ; B 0 -18 600 580 ; +C -1 ; WX 600 ; N stop ; B 19 0 581 562 ; +C -1 ; WX 600 ; N udieresis ; B -1 -15 569 625 ; +C -1 ; WX 600 ; N arrowup ; B 144 3 456 626 ; +C -1 ; WX 600 ; N igrave ; B 77 0 523 661 ; +C -1 ; WX 600 ; N Edieresis ; B 25 0 560 748 ; +C -1 ; WX 600 ; N zcaron ; B 81 0 520 667 ; +C -1 ; WX 600 ; N arrowboth ; B -24 143 624 455 ; +C -1 ; WX 600 ; N gcaron ; B 30 -146 580 667 ; +C -1 ; WX 600 ; N arrowleft ; B -24 143 634 455 ; +C -1 ; WX 600 ; N aacute ; B 35 -15 570 661 ; +C -1 ; WX 600 ; N ocircumflex ; B 30 -15 570 657 ; +C -1 ; WX 600 ; N scedilla ; B 68 -206 535 459 ; +C -1 ; WX 600 ; N ograve ; B 30 -15 570 661 ; +C -1 ; WX 600 ; N onehalf ; B -47 -60 648 661 ; +C -1 ; WX 600 ; N ugrave ; B -1 -15 569 661 ; +C -1 ; WX 600 ; N Ntilde ; B 8 -12 610 759 ; +C -1 ; WX 600 ; N iacute ; B 77 0 523 661 ; +C -1 ; WX 600 ; N arrowright ; B -34 143 624 455 ; +C -1 ; WX 600 ; N Thorn ; B 48 0 557 562 ; +C -1 ; WX 600 ; N Egrave ; B 25 0 560 784 ; +C -1 ; WX 600 ; N thorn ; B -14 -142 570 626 ; +C -1 ; WX 600 ; N aring ; B 35 -15 570 678 ; +C -1 ; WX 600 ; N yacute ; B -4 -142 601 661 ; +C -1 ; WX 600 ; N icircumflex ; B 63 0 523 657 ; +EndCharMetrics +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 30 123 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex -30 123 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis -20 123 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave -50 123 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring -10 123 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde -30 123 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 30 123 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 0 123 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 0 123 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 0 123 ; +CC Gcaron 2 ; PCC G 0 0 ; PCC caron 10 123 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 0 123 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 0 123 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 0 123 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 123 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 0 123 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 0 123 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 0 123 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 0 123 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 0 123 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 0 123 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 0 123 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 30 123 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 0 123 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 0 123 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave -30 123 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 30 123 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 0 123 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 0 123 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 0 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex -20 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis -10 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave -30 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 0 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 0 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 0 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 0 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 0 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 0 0 ; +CC gcaron 2 ; PCC g 0 0 ; PCC caron -40 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -40 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -40 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 0 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 0 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 0 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 0 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 0 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 0 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 0 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 0 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex -20 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis -20 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave -30 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 30 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 10 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 0 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr-Bd+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr-Bd+ new file mode 100755 index 0000000000000..d8f718c92b9ab --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr-Bd+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 600 ; N Ccaron ; B 22 -18 560 787 ; +C -1 ; WX 600 ; N ccaron ; B 40 -15 545 667 ; +C -1 ; WX 600 ; N Dcaron ; B 30 0 594 787 ; +C -1 ; WX 600 ; N dcaron ; B 20 -15 868 689 ; +C -1 ; WX 600 ; N Ecaron ; B 25 0 560 787 ; +C -1 ; WX 600 ; N ecaron ; B 40 -15 563 667 ; +C -1 ; WX 600 ; N Lcaron ; B 39 0 800 618 ; +C -1 ; WX 600 ; N Lacute ; B 39 0 578 766 ; +C -1 ; WX 600 ; N lcaron ; B 77 0 800 689 ; +C -1 ; WX 600 ; N lacute ; B 77 0 523 766 ; +C -1 ; WX 600 ; N Ncaron ; B 8 -12 610 787 ; +C -1 ; WX 600 ; N ncaron ; B 18 0 592 667 ; +C -1 ; WX 600 ; N Rcaron ; B 24 0 599 787 ; +C -1 ; WX 600 ; N Racute ; B 24 0 599 766 ; +C -1 ; WX 600 ; N rcaron ; B 47 0 580 667 ; +C -1 ; WX 600 ; N racute ; B 47 0 580 661 ; +C -1 ; WX 600 ; N Tcaron ; B 21 0 579 787 ; +C -1 ; WX 600 ; N tcaron ; B 47 -15 809 562 ; +C -1 ; WX 600 ; N Uring ; B 4 -18 596 787 ; +C -1 ; WX 600 ; N uring ; B -1 -15 569 678 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 54 120 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 25 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 0 120 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 445 127 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 0 120 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 0 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 377 56 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 0 105 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 377 127 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 26 105 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 0 120 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 0 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 0 120 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 50 105 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 26 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 0 120 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 386 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 0 109 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 0 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr-BdO b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr-BdO new file mode 100755 index 0000000000000..36fdd79feb1e9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr-BdO @@ -0,0 +1,345 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1989, 1990, 1991, Adobe Systems Incorporated. All rights reserved. +Comment Creation Date: Tue Sep 17 14:13:24 1991 +Comment UniqueID 36389 +Comment VMusage 10055 54684 +Comment Modified by Jeff Kingston 4 July 1994 (removed erroneous ligatures) +FontName Courier-BoldOblique +FullName Courier Bold Oblique +FamilyName Courier +Weight Bold +ItalicAngle -12 +IsFixedPitch true +FontBBox -56 -250 868 801 +UnderlinePosition -100 +UnderlineThickness 50 +Version 002.004 +Notice Copyright (c) 1989, 1990, 1991, Adobe Systems Incorporated. All rights reserved. +EncodingScheme AdobeStandardEncoding +CapHeight 562 +XHeight 439 +Ascender 626 +Descender -142 +StartCharMetrics 260 +C 32 ; WX 600 ; N space ; B 0 0 0 0 ; +C 33 ; WX 600 ; N exclam ; B 216 -15 495 572 ; +C 34 ; WX 600 ; N quotedbl ; B 212 277 584 562 ; +C 35 ; WX 600 ; N numbersign ; B 88 -45 640 651 ; +C 36 ; WX 600 ; N dollar ; B 87 -126 629 666 ; +C 37 ; WX 600 ; N percent ; B 102 -15 624 616 ; +C 38 ; WX 600 ; N ampersand ; B 62 -15 594 543 ; +C 39 ; WX 600 ; N quoteright ; B 230 277 542 562 ; +C 40 ; WX 600 ; N parenleft ; B 266 -102 592 616 ; +C 41 ; WX 600 ; N parenright ; B 117 -102 444 616 ; +C 42 ; WX 600 ; N asterisk ; B 179 219 597 601 ; +C 43 ; WX 600 ; N plus ; B 114 39 596 478 ; +C 44 ; WX 600 ; N comma ; B 99 -111 430 174 ; +C 45 ; WX 600 ; N hyphen ; B 143 203 567 313 ; +C 46 ; WX 600 ; N period ; B 207 -15 426 171 ; +C 47 ; WX 600 ; N slash ; B 91 -77 626 626 ; +C 48 ; WX 600 ; N zero ; B 136 -15 592 616 ; +C 49 ; WX 600 ; N one ; B 93 0 561 616 ; +C 50 ; WX 600 ; N two ; B 61 0 593 616 ; +C 51 ; WX 600 ; N three ; B 72 -15 571 616 ; +C 52 ; WX 600 ; N four ; B 82 0 558 616 ; +C 53 ; WX 600 ; N five ; B 77 -15 621 601 ; +C 54 ; WX 600 ; N six ; B 136 -15 652 616 ; +C 55 ; WX 600 ; N seven ; B 147 0 622 601 ; +C 56 ; WX 600 ; N eight ; B 115 -15 604 616 ; +C 57 ; WX 600 ; N nine ; B 76 -15 592 616 ; +C 58 ; WX 600 ; N colon ; B 206 -15 479 425 ; +C 59 ; WX 600 ; N semicolon ; B 99 -111 480 425 ; +C 60 ; WX 600 ; N less ; B 121 15 612 501 ; +C 61 ; WX 600 ; N equal ; B 96 118 614 398 ; +C 62 ; WX 600 ; N greater ; B 97 15 589 501 ; +C 63 ; WX 600 ; N question ; B 183 -14 591 580 ; +C 64 ; WX 600 ; N at ; B 66 -15 641 616 ; +C 65 ; WX 600 ; N A ; B -9 0 631 562 ; +C 66 ; WX 600 ; N B ; B 30 0 629 562 ; +C 67 ; WX 600 ; N C ; B 75 -18 674 580 ; +C 68 ; WX 600 ; N D ; B 30 0 664 562 ; +C 69 ; WX 600 ; N E ; B 25 0 669 562 ; +C 70 ; WX 600 ; N F ; B 39 0 683 562 ; +C 71 ; WX 600 ; N G ; B 75 -18 674 580 ; +C 72 ; WX 600 ; N H ; B 20 0 699 562 ; +C 73 ; WX 600 ; N I ; B 77 0 642 562 ; +C 74 ; WX 600 ; N J ; B 59 -18 720 562 ; +C 75 ; WX 600 ; N K ; B 21 0 691 562 ; +C 76 ; WX 600 ; N L ; B 39 0 635 562 ; +C 77 ; WX 600 ; N M ; B -2 0 721 562 ; +C 78 ; WX 600 ; N N ; B 8 -12 729 562 ; +C 79 ; WX 600 ; N O ; B 74 -18 645 580 ; +C 80 ; WX 600 ; N P ; B 48 0 642 562 ; +C 81 ; WX 600 ; N Q ; B 84 -138 636 580 ; +C 82 ; WX 600 ; N R ; B 24 0 617 562 ; +C 83 ; WX 600 ; N S ; B 54 -22 672 582 ; +C 84 ; WX 600 ; N T ; B 86 0 678 562 ; +C 85 ; WX 600 ; N U ; B 101 -18 715 562 ; +C 86 ; WX 600 ; N V ; B 84 0 732 562 ; +C 87 ; WX 600 ; N W ; B 84 0 737 562 ; +C 88 ; WX 600 ; N X ; B 12 0 689 562 ; +C 89 ; WX 600 ; N Y ; B 109 0 708 562 ; +C 90 ; WX 600 ; N Z ; B 62 0 636 562 ; +C 91 ; WX 600 ; N bracketleft ; B 223 -102 606 616 ; +C 92 ; WX 600 ; N backslash ; B 223 -77 496 626 ; +C 93 ; WX 600 ; N bracketright ; B 103 -102 486 616 ; +C 94 ; WX 600 ; N asciicircum ; B 171 250 555 616 ; +C 95 ; WX 600 ; N underscore ; B -27 -125 584 -75 ; +C 96 ; WX 600 ; N quoteleft ; B 297 277 487 562 ; +C 97 ; WX 600 ; N a ; B 62 -15 592 454 ; +C 98 ; WX 600 ; N b ; B 13 -15 636 626 ; +C 99 ; WX 600 ; N c ; B 81 -15 631 459 ; +C 100 ; WX 600 ; N d ; B 61 -15 644 626 ; +C 101 ; WX 600 ; N e ; B 81 -15 604 454 ; +C 102 ; WX 600 ; N f ; B 83 0 677 626 ; +C 103 ; WX 600 ; N g ; B 41 -146 673 454 ; +C 104 ; WX 600 ; N h ; B 18 0 614 626 ; +C 105 ; WX 600 ; N i ; B 77 0 545 658 ; +C 106 ; WX 600 ; N j ; B 37 -146 580 658 ; +C 107 ; WX 600 ; N k ; B 33 0 642 626 ; +C 108 ; WX 600 ; N l ; B 77 0 545 626 ; +C 109 ; WX 600 ; N m ; B -22 0 648 454 ; +C 110 ; WX 600 ; N n ; B 18 0 614 454 ; +C 111 ; WX 600 ; N o ; B 71 -15 622 454 ; +C 112 ; WX 600 ; N p ; B -31 -142 622 454 ; +C 113 ; WX 600 ; N q ; B 61 -142 684 454 ; +C 114 ; WX 600 ; N r ; B 47 0 654 454 ; +C 115 ; WX 600 ; N s ; B 67 -17 607 459 ; +C 116 ; WX 600 ; N t ; B 118 -15 566 562 ; +C 117 ; WX 600 ; N u ; B 70 -15 591 439 ; +C 118 ; WX 600 ; N v ; B 70 0 694 439 ; +C 119 ; WX 600 ; N w ; B 53 0 711 439 ; +C 120 ; WX 600 ; N x ; B 6 0 670 439 ; +C 121 ; WX 600 ; N y ; B -20 -142 694 439 ; +C 122 ; WX 600 ; N z ; B 81 0 613 439 ; +C 123 ; WX 600 ; N braceleft ; B 204 -102 595 616 ; +C 124 ; WX 600 ; N bar ; B 202 -250 504 750 ; +C 125 ; WX 600 ; N braceright ; B 114 -102 506 616 ; +C 126 ; WX 600 ; N asciitilde ; B 120 153 589 356 ; +C 161 ; WX 600 ; N exclamdown ; B 197 -146 477 449 ; +C 162 ; WX 600 ; N cent ; B 121 -49 604 614 ; +C 163 ; WX 600 ; N sterling ; B 107 -28 650 611 ; +C 164 ; WX 600 ; N fraction ; B 22 -60 707 661 ; +C 165 ; WX 600 ; N yen ; B 98 0 709 562 ; +C 166 ; WX 600 ; N florin ; B -56 -131 701 616 ; +C 167 ; WX 600 ; N section ; B 74 -70 619 580 ; +C 168 ; WX 600 ; N currency ; B 77 49 643 517 ; +C 169 ; WX 600 ; N quotesingle ; B 304 277 492 562 ; +C 170 ; WX 600 ; N quotedblleft ; B 190 277 594 562 ; +C 171 ; WX 600 ; N guillemotleft ; B 63 70 638 446 ; +C 172 ; WX 600 ; N guilsinglleft ; B 196 70 544 446 ; +C 173 ; WX 600 ; N guilsinglright ; B 166 70 514 446 ; +C 174 ; WX 600 ; N fi ; B 12 0 643 626 ; +C 175 ; WX 600 ; N fl ; B 12 0 643 626 ; +C 177 ; WX 600 ; N endash ; B 108 203 602 313 ; +C 178 ; WX 600 ; N dagger ; B 176 -70 586 580 ; +C 179 ; WX 600 ; N daggerdbl ; B 122 -70 586 580 ; +C 180 ; WX 600 ; N periodcentered ; B 249 165 461 351 ; +C 182 ; WX 600 ; N paragraph ; B 61 -70 699 580 ; +C 183 ; WX 600 ; N bullet ; B 197 132 523 430 ; +C 184 ; WX 600 ; N quotesinglbase ; B 145 -142 457 143 ; +C 185 ; WX 600 ; N quotedblbase ; B 35 -142 559 143 ; +C 186 ; WX 600 ; N quotedblright ; B 120 277 644 562 ; +C 187 ; WX 600 ; N guillemotright ; B 72 70 647 446 ; +C 188 ; WX 600 ; N ellipsis ; B 35 -15 586 116 ; +C 189 ; WX 600 ; N perthousand ; B -44 -15 742 616 ; +C 191 ; WX 600 ; N questiondown ; B 101 -146 509 449 ; +C 193 ; WX 600 ; N grave ; B 272 508 503 661 ; +C 194 ; WX 600 ; N acute ; B 313 508 608 661 ; +C 195 ; WX 600 ; N circumflex ; B 212 483 606 657 ; +C 196 ; WX 600 ; N tilde ; B 200 493 642 636 ; +C 197 ; WX 600 ; N macron ; B 195 505 636 585 ; +C 198 ; WX 600 ; N breve ; B 217 468 651 631 ; +C 199 ; WX 600 ; N dotaccent ; B 346 485 490 625 ; +C 200 ; WX 600 ; N dieresis ; B 244 485 592 625 ; +C 202 ; WX 600 ; N ring ; B 319 481 528 678 ; +C 203 ; WX 600 ; N cedilla ; B 169 -206 367 0 ; +C 205 ; WX 600 ; N hungarumlaut ; B 172 488 728 661 ; +C 206 ; WX 600 ; N ogonek ; B 144 -199 350 0 ; +C 207 ; WX 600 ; N caron ; B 238 493 632 667 ; +C 208 ; WX 600 ; N emdash ; B 33 203 677 313 ; +C 225 ; WX 600 ; N AE ; B -29 0 707 562 ; +C 227 ; WX 600 ; N ordfeminine ; B 189 196 526 580 ; +C 232 ; WX 600 ; N Lslash ; B 39 0 635 562 ; +C 233 ; WX 600 ; N Oslash ; B 48 -22 672 584 ; +C 234 ; WX 600 ; N OE ; B 26 0 700 562 ; +C 235 ; WX 600 ; N ordmasculine ; B 189 196 542 580 ; +C 241 ; WX 600 ; N ae ; B 21 -15 651 454 ; +C 245 ; WX 600 ; N dotlessi ; B 77 0 545 439 ; +C 248 ; WX 600 ; N lslash ; B 77 0 578 626 ; +C 249 ; WX 600 ; N oslash ; B 55 -24 637 463 ; +C 250 ; WX 600 ; N oe ; B 19 -15 661 454 ; +C 251 ; WX 600 ; N germandbls ; B 22 -15 628 626 ; +C -1 ; WX 600 ; N Odieresis ; B 74 -18 645 748 ; +C -1 ; WX 600 ; N logicalnot ; B 135 103 617 413 ; +C -1 ; WX 600 ; N minus ; B 114 203 596 313 ; +C -1 ; WX 600 ; N merge ; B 168 -15 533 487 ; +C -1 ; WX 600 ; N degree ; B 173 243 569 616 ; +C -1 ; WX 600 ; N dectab ; B 8 0 615 320 ; +C -1 ; WX 600 ; N ll ; B 1 0 653 626 ; +C -1 ; WX 600 ; N IJ ; B -8 -18 741 562 ; +C -1 ; WX 600 ; N Eacute ; B 25 0 669 784 ; +C -1 ; WX 600 ; N Ocircumflex ; B 74 -18 645 780 ; +C -1 ; WX 600 ; N ucircumflex ; B 70 -15 591 657 ; +C -1 ; WX 600 ; N left ; B 109 44 589 371 ; +C -1 ; WX 600 ; N threesuperior ; B 193 222 525 616 ; +C -1 ; WX 600 ; N up ; B 196 0 523 447 ; +C -1 ; WX 600 ; N multiply ; B 105 39 606 478 ; +C -1 ; WX 600 ; N Scaron ; B 54 -22 672 790 ; +C -1 ; WX 600 ; N tab ; B 19 0 641 562 ; +C -1 ; WX 600 ; N Ucircumflex ; B 101 -18 715 780 ; +C -1 ; WX 600 ; N divide ; B 114 16 596 500 ; +C -1 ; WX 600 ; N Acircumflex ; B -9 0 631 780 ; +C -1 ; WX 600 ; N eacute ; B 81 -15 608 661 ; +C -1 ; WX 600 ; N uacute ; B 70 -15 608 661 ; +C -1 ; WX 600 ; N Aacute ; B -9 0 665 784 ; +C -1 ; WX 600 ; N copyright ; B 53 -18 667 580 ; +C -1 ; WX 600 ; N twosuperior ; B 192 230 541 616 ; +C -1 ; WX 600 ; N Ecircumflex ; B 25 0 669 780 ; +C -1 ; WX 600 ; N ntilde ; B 18 0 642 636 ; +C -1 ; WX 600 ; N down ; B 168 -15 496 439 ; +C -1 ; WX 600 ; N center ; B 103 14 623 580 ; +C -1 ; WX 600 ; N onesuperior ; B 213 230 514 616 ; +C -1 ; WX 600 ; N ij ; B 6 -146 714 658 ; +C -1 ; WX 600 ; N edieresis ; B 81 -15 604 625 ; +C -1 ; WX 600 ; N graybox ; B 76 0 652 599 ; +C -1 ; WX 600 ; N odieresis ; B 71 -15 622 625 ; +C -1 ; WX 600 ; N Ograve ; B 74 -18 645 784 ; +C -1 ; WX 600 ; N threequarters ; B 8 -60 698 661 ; +C -1 ; WX 600 ; N plusminus ; B 76 24 614 515 ; +C -1 ; WX 600 ; N prescription ; B 24 -15 632 562 ; +C -1 ; WX 600 ; N eth ; B 93 -27 661 626 ; +C -1 ; WX 600 ; N largebullet ; B 307 229 413 333 ; +C -1 ; WX 600 ; N egrave ; B 81 -15 604 661 ; +C -1 ; WX 600 ; N ccedilla ; B 81 -206 631 459 ; +C -1 ; WX 600 ; N notegraphic ; B 91 -15 619 572 ; +C -1 ; WX 600 ; N Udieresis ; B 101 -18 715 748 ; +C -1 ; WX 600 ; N Gcaron ; B 75 -18 674 790 ; +C -1 ; WX 600 ; N arrowdown ; B 174 -15 486 608 ; +C -1 ; WX 600 ; N format ; B -26 -146 243 601 ; +C -1 ; WX 600 ; N Otilde ; B 74 -18 668 759 ; +C -1 ; WX 600 ; N Idieresis ; B 77 0 642 748 ; +C -1 ; WX 600 ; N adieresis ; B 62 -15 592 625 ; +C -1 ; WX 600 ; N ecircumflex ; B 81 -15 606 657 ; +C -1 ; WX 600 ; N Eth ; B 30 0 664 562 ; +C -1 ; WX 600 ; N onequarter ; B 14 -60 706 661 ; +C -1 ; WX 600 ; N LL ; B -45 0 694 562 ; +C -1 ; WX 600 ; N agrave ; B 62 -15 592 661 ; +C -1 ; WX 600 ; N Zcaron ; B 62 0 659 790 ; +C -1 ; WX 600 ; N Scedilla ; B 54 -206 672 582 ; +C -1 ; WX 600 ; N Idot ; B 77 0 642 748 ; +C -1 ; WX 600 ; N Iacute ; B 77 0 642 784 ; +C -1 ; WX 600 ; N indent ; B 99 45 579 372 ; +C -1 ; WX 600 ; N Ugrave ; B 101 -18 715 784 ; +C -1 ; WX 600 ; N scaron ; B 67 -17 632 667 ; +C -1 ; WX 600 ; N overscore ; B 123 579 734 629 ; +C -1 ; WX 600 ; N Aring ; B -9 0 631 801 ; +C -1 ; WX 600 ; N Ccedilla ; B 74 -206 674 580 ; +C -1 ; WX 600 ; N Igrave ; B 77 0 642 784 ; +C -1 ; WX 600 ; N brokenbar ; B 218 -175 488 675 ; +C -1 ; WX 600 ; N Oacute ; B 74 -18 645 784 ; +C -1 ; WX 600 ; N otilde ; B 71 -15 642 636 ; +C -1 ; WX 600 ; N Yacute ; B 109 0 708 784 ; +C -1 ; WX 600 ; N lira ; B 107 -28 650 611 ; +C -1 ; WX 600 ; N Icircumflex ; B 77 0 642 780 ; +C -1 ; WX 600 ; N Atilde ; B -9 0 638 759 ; +C -1 ; WX 600 ; N Uacute ; B 101 -18 715 784 ; +C -1 ; WX 600 ; N Ydieresis ; B 109 0 708 748 ; +C -1 ; WX 600 ; N ydieresis ; B -20 -142 694 625 ; +C -1 ; WX 600 ; N idieresis ; B 77 0 552 625 ; +C -1 ; WX 600 ; N Adieresis ; B -9 0 631 748 ; +C -1 ; WX 600 ; N mu ; B 50 -142 591 439 ; +C -1 ; WX 600 ; N trademark ; B 86 230 868 562 ; +C -1 ; WX 600 ; N oacute ; B 71 -15 622 661 ; +C -1 ; WX 600 ; N acircumflex ; B 62 -15 592 657 ; +C -1 ; WX 600 ; N Agrave ; B -9 0 631 784 ; +C -1 ; WX 600 ; N return ; B 79 0 700 562 ; +C -1 ; WX 600 ; N atilde ; B 62 -15 642 636 ; +C -1 ; WX 600 ; N square ; B 19 0 700 562 ; +C -1 ; WX 600 ; N registered ; B 53 -18 667 580 ; +C -1 ; WX 600 ; N stop ; B 19 0 700 562 ; +C -1 ; WX 600 ; N udieresis ; B 70 -15 591 625 ; +C -1 ; WX 600 ; N arrowup ; B 244 3 556 626 ; +C -1 ; WX 600 ; N igrave ; B 77 0 545 661 ; +C -1 ; WX 600 ; N Edieresis ; B 25 0 669 748 ; +C -1 ; WX 600 ; N zcaron ; B 81 0 632 667 ; +C -1 ; WX 600 ; N arrowboth ; B 40 143 688 455 ; +C -1 ; WX 600 ; N gcaron ; B 41 -146 673 667 ; +C -1 ; WX 600 ; N arrowleft ; B 40 143 708 455 ; +C -1 ; WX 600 ; N aacute ; B 62 -15 608 661 ; +C -1 ; WX 600 ; N ocircumflex ; B 71 -15 622 657 ; +C -1 ; WX 600 ; N scedilla ; B 67 -206 607 459 ; +C -1 ; WX 600 ; N ograve ; B 71 -15 622 661 ; +C -1 ; WX 600 ; N onehalf ; B 23 -60 715 661 ; +C -1 ; WX 600 ; N ugrave ; B 70 -15 591 661 ; +C -1 ; WX 600 ; N Ntilde ; B 8 -12 729 759 ; +C -1 ; WX 600 ; N iacute ; B 77 0 608 661 ; +C -1 ; WX 600 ; N arrowright ; B 20 143 688 455 ; +C -1 ; WX 600 ; N Thorn ; B 48 0 619 562 ; +C -1 ; WX 600 ; N Egrave ; B 25 0 669 784 ; +C -1 ; WX 600 ; N thorn ; B -31 -142 622 626 ; +C -1 ; WX 600 ; N aring ; B 62 -15 592 678 ; +C -1 ; WX 600 ; N yacute ; B -20 -142 694 661 ; +C -1 ; WX 600 ; N icircumflex ; B 77 0 566 657 ; +EndCharMetrics +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 56 123 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex -4 123 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 6 123 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave -24 123 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 16 123 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde -4 123 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 56 123 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 26 123 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 26 123 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 26 123 ; +CC Gcaron 2 ; PCC G 0 0 ; PCC caron 36 123 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 26 123 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 26 123 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 26 123 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 26 123 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 26 123 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 26 123 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 26 123 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 26 123 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 26 123 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 26 123 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 26 123 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 56 123 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 26 123 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 26 123 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave -4 123 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 56 123 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 26 123 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 26 123 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 0 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex -20 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis -10 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave -30 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 0 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 0 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 0 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 0 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 0 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 0 0 ; +CC gcaron 2 ; PCC g 0 0 ; PCC caron -40 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -40 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -40 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 0 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 0 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 0 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 0 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 0 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 0 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 0 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 0 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex -20 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis -20 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave -30 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 30 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 10 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 0 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr-BdO+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr-BdO+ new file mode 100755 index 0000000000000..c08e04180d2fd --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr-BdO+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 600 ; N Ccaron ; B 75 -18 717 787 ; +C -1 ; WX 600 ; N ccaron ; B 81 -15 660 667 ; +C -1 ; WX 600 ; N Dcaron ; B 30 0 664 787 ; +C -1 ; WX 600 ; N dcaron ; B 61 -15 987 689 ; +C -1 ; WX 600 ; N Ecaron ; B 25 0 669 787 ; +C -1 ; WX 600 ; N ecaron ; B 81 -15 632 667 ; +C -1 ; WX 600 ; N Lcaron ; B 39 0 985 618 ; +C -1 ; WX 600 ; N Lacute ; B 39 0 635 766 ; +C -1 ; WX 600 ; N lcaron ; B 77 0 888 689 ; +C -1 ; WX 600 ; N lacute ; B 77 0 660 766 ; +C -1 ; WX 600 ; N Ncaron ; B 8 -12 729 787 ; +C -1 ; WX 600 ; N ncaron ; B 18 0 632 667 ; +C -1 ; WX 600 ; N Rcaron ; B 24 0 657 787 ; +C -1 ; WX 600 ; N Racute ; B 24 0 686 766 ; +C -1 ; WX 600 ; N rcaron ; B 47 0 654 667 ; +C -1 ; WX 600 ; N racute ; B 47 0 654 661 ; +C -1 ; WX 600 ; N Tcaron ; B 86 0 678 787 ; +C -1 ; WX 600 ; N tcaron ; B 118 -15 909 562 ; +C -1 ; WX 600 ; N Uring ; B 101 -18 715 787 ; +C -1 ; WX 600 ; N uring ; B 70 -15 591 678 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 85 120 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 28 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 25 120 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 445 127 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 25 120 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 0 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 443 56 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 22 105 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 346 127 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 52 105 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 25 120 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 0 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 25 120 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 78 105 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 30 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 25 120 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 367 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 23 109 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 0 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr-O b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr-O new file mode 100755 index 0000000000000..5f802924925ee --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr-O @@ -0,0 +1,345 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1989, 1990, 1991 Adobe Systems Incorporated. All rights reserved. +Comment Creation Date: Tue Sep 17 09:42:19 1991 +Comment UniqueID 36350 +Comment VMusage 9174 52297 +Comment Modified by Jeff Kingston 4 July 1994 (removed erroneous ligatures) +FontName Courier-Oblique +FullName Courier Oblique +FamilyName Courier +Weight Medium +ItalicAngle -12 +IsFixedPitch true +FontBBox -28 -250 742 805 +UnderlinePosition -100 +UnderlineThickness 50 +Version 002.004 +Notice Copyright (c) 1989, 1990, 1991 Adobe Systems Incorporated. All rights reserved. +EncodingScheme AdobeStandardEncoding +CapHeight 562 +XHeight 426 +Ascender 629 +Descender -157 +StartCharMetrics 260 +C 32 ; WX 600 ; N space ; B 0 0 0 0 ; +C 33 ; WX 600 ; N exclam ; B 243 -15 464 572 ; +C 34 ; WX 600 ; N quotedbl ; B 273 328 532 562 ; +C 35 ; WX 600 ; N numbersign ; B 133 -32 596 639 ; +C 36 ; WX 600 ; N dollar ; B 108 -126 596 662 ; +C 37 ; WX 600 ; N percent ; B 134 -15 599 622 ; +C 38 ; WX 600 ; N ampersand ; B 87 -15 580 543 ; +C 39 ; WX 600 ; N quoteright ; B 283 328 495 562 ; +C 40 ; WX 600 ; N parenleft ; B 313 -108 572 622 ; +C 41 ; WX 600 ; N parenright ; B 137 -108 396 622 ; +C 42 ; WX 600 ; N asterisk ; B 212 257 580 607 ; +C 43 ; WX 600 ; N plus ; B 129 44 580 470 ; +C 44 ; WX 600 ; N comma ; B 157 -112 370 122 ; +C 45 ; WX 600 ; N hyphen ; B 152 231 558 285 ; +C 46 ; WX 600 ; N period ; B 238 -15 382 109 ; +C 47 ; WX 600 ; N slash ; B 112 -80 604 629 ; +C 48 ; WX 600 ; N zero ; B 154 -15 575 622 ; +C 49 ; WX 600 ; N one ; B 98 0 515 622 ; +C 50 ; WX 600 ; N two ; B 70 0 568 622 ; +C 51 ; WX 600 ; N three ; B 82 -15 538 622 ; +C 52 ; WX 600 ; N four ; B 108 0 541 622 ; +C 53 ; WX 600 ; N five ; B 99 -15 589 607 ; +C 54 ; WX 600 ; N six ; B 155 -15 629 622 ; +C 55 ; WX 600 ; N seven ; B 182 0 612 607 ; +C 56 ; WX 600 ; N eight ; B 132 -15 588 622 ; +C 57 ; WX 600 ; N nine ; B 93 -15 574 622 ; +C 58 ; WX 600 ; N colon ; B 238 -15 441 385 ; +C 59 ; WX 600 ; N semicolon ; B 157 -112 441 385 ; +C 60 ; WX 600 ; N less ; B 96 42 610 472 ; +C 61 ; WX 600 ; N equal ; B 109 138 600 376 ; +C 62 ; WX 600 ; N greater ; B 85 42 599 472 ; +C 63 ; WX 600 ; N question ; B 222 -15 583 572 ; +C 64 ; WX 600 ; N at ; B 127 -15 582 622 ; +C 65 ; WX 600 ; N A ; B 3 0 607 562 ; +C 66 ; WX 600 ; N B ; B 43 0 616 562 ; +C 67 ; WX 600 ; N C ; B 93 -18 655 580 ; +C 68 ; WX 600 ; N D ; B 43 0 645 562 ; +C 69 ; WX 600 ; N E ; B 53 0 660 562 ; +C 70 ; WX 600 ; N F ; B 53 0 660 562 ; +C 71 ; WX 600 ; N G ; B 83 -18 645 580 ; +C 72 ; WX 600 ; N H ; B 32 0 687 562 ; +C 73 ; WX 600 ; N I ; B 96 0 623 562 ; +C 74 ; WX 600 ; N J ; B 52 -18 685 562 ; +C 75 ; WX 600 ; N K ; B 38 0 671 562 ; +C 76 ; WX 600 ; N L ; B 47 0 607 562 ; +C 77 ; WX 600 ; N M ; B 4 0 715 562 ; +C 78 ; WX 600 ; N N ; B 7 -13 712 562 ; +C 79 ; WX 600 ; N O ; B 94 -18 625 580 ; +C 80 ; WX 600 ; N P ; B 79 0 644 562 ; +C 81 ; WX 600 ; N Q ; B 95 -138 625 580 ; +C 82 ; WX 600 ; N R ; B 38 0 598 562 ; +C 83 ; WX 600 ; N S ; B 76 -20 650 580 ; +C 84 ; WX 600 ; N T ; B 108 0 665 562 ; +C 85 ; WX 600 ; N U ; B 125 -18 702 562 ; +C 86 ; WX 600 ; N V ; B 105 -13 723 562 ; +C 87 ; WX 600 ; N W ; B 106 -13 722 562 ; +C 88 ; WX 600 ; N X ; B 23 0 675 562 ; +C 89 ; WX 600 ; N Y ; B 133 0 695 562 ; +C 90 ; WX 600 ; N Z ; B 86 0 610 562 ; +C 91 ; WX 600 ; N bracketleft ; B 246 -108 574 622 ; +C 92 ; WX 600 ; N backslash ; B 249 -80 468 629 ; +C 93 ; WX 600 ; N bracketright ; B 135 -108 463 622 ; +C 94 ; WX 600 ; N asciicircum ; B 175 354 587 622 ; +C 95 ; WX 600 ; N underscore ; B -27 -125 584 -75 ; +C 96 ; WX 600 ; N quoteleft ; B 343 328 457 562 ; +C 97 ; WX 600 ; N a ; B 76 -15 569 441 ; +C 98 ; WX 600 ; N b ; B 29 -15 625 629 ; +C 99 ; WX 600 ; N c ; B 106 -15 608 441 ; +C 100 ; WX 600 ; N d ; B 85 -15 640 629 ; +C 101 ; WX 600 ; N e ; B 106 -15 598 441 ; +C 102 ; WX 600 ; N f ; B 114 0 662 629 ; +C 103 ; WX 600 ; N g ; B 61 -157 657 441 ; +C 104 ; WX 600 ; N h ; B 33 0 592 629 ; +C 105 ; WX 600 ; N i ; B 95 0 515 657 ; +C 106 ; WX 600 ; N j ; B 52 -157 550 657 ; +C 107 ; WX 600 ; N k ; B 58 0 633 629 ; +C 108 ; WX 600 ; N l ; B 95 0 515 629 ; +C 109 ; WX 600 ; N m ; B -5 0 615 441 ; +C 110 ; WX 600 ; N n ; B 26 0 585 441 ; +C 111 ; WX 600 ; N o ; B 102 -15 588 441 ; +C 112 ; WX 600 ; N p ; B -24 -157 605 441 ; +C 113 ; WX 600 ; N q ; B 85 -157 682 441 ; +C 114 ; WX 600 ; N r ; B 60 0 636 441 ; +C 115 ; WX 600 ; N s ; B 78 -15 584 441 ; +C 116 ; WX 600 ; N t ; B 167 -15 561 561 ; +C 117 ; WX 600 ; N u ; B 101 -15 572 426 ; +C 118 ; WX 600 ; N v ; B 90 -10 681 426 ; +C 119 ; WX 600 ; N w ; B 76 -10 695 426 ; +C 120 ; WX 600 ; N x ; B 20 0 655 426 ; +C 121 ; WX 600 ; N y ; B -4 -157 683 426 ; +C 122 ; WX 600 ; N z ; B 99 0 593 426 ; +C 123 ; WX 600 ; N braceleft ; B 233 -108 569 622 ; +C 124 ; WX 600 ; N bar ; B 222 -250 485 750 ; +C 125 ; WX 600 ; N braceright ; B 140 -108 477 622 ; +C 126 ; WX 600 ; N asciitilde ; B 116 197 600 320 ; +C 161 ; WX 600 ; N exclamdown ; B 225 -157 445 430 ; +C 162 ; WX 600 ; N cent ; B 151 -49 588 614 ; +C 163 ; WX 600 ; N sterling ; B 124 -21 621 611 ; +C 164 ; WX 600 ; N fraction ; B 84 -57 646 665 ; +C 165 ; WX 600 ; N yen ; B 120 0 693 562 ; +C 166 ; WX 600 ; N florin ; B -26 -143 671 622 ; +C 167 ; WX 600 ; N section ; B 104 -78 590 580 ; +C 168 ; WX 600 ; N currency ; B 94 58 628 506 ; +C 169 ; WX 600 ; N quotesingle ; B 345 328 460 562 ; +C 170 ; WX 600 ; N quotedblleft ; B 262 328 541 562 ; +C 171 ; WX 600 ; N guillemotleft ; B 92 70 652 446 ; +C 172 ; WX 600 ; N guilsinglleft ; B 204 70 540 446 ; +C 173 ; WX 600 ; N guilsinglright ; B 170 70 506 446 ; +C 174 ; WX 600 ; N fi ; B 3 0 619 629 ; +C 175 ; WX 600 ; N fl ; B 3 0 619 629 ; +C 177 ; WX 600 ; N endash ; B 124 231 586 285 ; +C 178 ; WX 600 ; N dagger ; B 217 -78 546 580 ; +C 179 ; WX 600 ; N daggerdbl ; B 163 -78 546 580 ; +C 180 ; WX 600 ; N periodcentered ; B 275 189 434 327 ; +C 182 ; WX 600 ; N paragraph ; B 100 -78 630 562 ; +C 183 ; WX 600 ; N bullet ; B 224 130 485 383 ; +C 184 ; WX 600 ; N quotesinglbase ; B 185 -134 397 100 ; +C 185 ; WX 600 ; N quotedblbase ; B 115 -134 478 100 ; +C 186 ; WX 600 ; N quotedblright ; B 213 328 576 562 ; +C 187 ; WX 600 ; N guillemotright ; B 58 70 618 446 ; +C 188 ; WX 600 ; N ellipsis ; B 46 -15 575 111 ; +C 189 ; WX 600 ; N perthousand ; B 59 -15 627 622 ; +C 191 ; WX 600 ; N questiondown ; B 105 -157 466 430 ; +C 193 ; WX 600 ; N grave ; B 294 497 484 672 ; +C 194 ; WX 600 ; N acute ; B 348 497 612 672 ; +C 195 ; WX 600 ; N circumflex ; B 229 477 581 654 ; +C 196 ; WX 600 ; N tilde ; B 212 489 629 606 ; +C 197 ; WX 600 ; N macron ; B 232 525 600 565 ; +C 198 ; WX 600 ; N breve ; B 279 501 576 609 ; +C 199 ; WX 600 ; N dotaccent ; B 360 477 466 580 ; +C 200 ; WX 600 ; N dieresis ; B 262 492 570 595 ; +C 202 ; WX 600 ; N ring ; B 332 463 500 627 ; +C 203 ; WX 600 ; N cedilla ; B 197 -151 344 10 ; +C 205 ; WX 600 ; N hungarumlaut ; B 239 497 683 672 ; +C 206 ; WX 600 ; N ogonek ; B 207 -151 348 0 ; +C 207 ; WX 600 ; N caron ; B 262 492 614 669 ; +C 208 ; WX 600 ; N emdash ; B 49 231 661 285 ; +C 225 ; WX 600 ; N AE ; B 3 0 655 562 ; +C 227 ; WX 600 ; N ordfeminine ; B 209 249 512 580 ; +C 232 ; WX 600 ; N Lslash ; B 47 0 607 562 ; +C 233 ; WX 600 ; N Oslash ; B 94 -80 625 629 ; +C 234 ; WX 600 ; N OE ; B 59 0 672 562 ; +C 235 ; WX 600 ; N ordmasculine ; B 210 249 535 580 ; +C 241 ; WX 600 ; N ae ; B 41 -15 626 441 ; +C 245 ; WX 600 ; N dotlessi ; B 95 0 515 426 ; +C 248 ; WX 600 ; N lslash ; B 95 0 583 629 ; +C 249 ; WX 600 ; N oslash ; B 102 -80 588 506 ; +C 250 ; WX 600 ; N oe ; B 54 -15 615 441 ; +C 251 ; WX 600 ; N germandbls ; B 48 -15 617 629 ; +C -1 ; WX 600 ; N Odieresis ; B 94 -18 625 731 ; +C -1 ; WX 600 ; N logicalnot ; B 155 108 591 369 ; +C -1 ; WX 600 ; N minus ; B 129 232 580 283 ; +C -1 ; WX 600 ; N merge ; B 187 -15 503 436 ; +C -1 ; WX 600 ; N degree ; B 214 269 576 622 ; +C -1 ; WX 600 ; N dectab ; B 18 0 593 227 ; +C -1 ; WX 600 ; N ll ; B 33 0 616 629 ; +C -1 ; WX 600 ; N IJ ; B 32 -18 702 562 ; +C -1 ; WX 600 ; N Eacute ; B 53 0 668 793 ; +C -1 ; WX 600 ; N Ocircumflex ; B 94 -18 625 775 ; +C -1 ; WX 600 ; N ucircumflex ; B 101 -15 572 654 ; +C -1 ; WX 600 ; N left ; B 114 68 580 348 ; +C -1 ; WX 600 ; N threesuperior ; B 213 240 501 622 ; +C -1 ; WX 600 ; N up ; B 223 0 503 437 ; +C -1 ; WX 600 ; N multiply ; B 103 43 607 470 ; +C -1 ; WX 600 ; N Scaron ; B 76 -20 673 805 ; +C -1 ; WX 600 ; N tab ; B 19 0 641 562 ; +C -1 ; WX 600 ; N Ucircumflex ; B 125 -18 702 775 ; +C -1 ; WX 600 ; N divide ; B 136 48 573 467 ; +C -1 ; WX 600 ; N Acircumflex ; B 3 0 607 775 ; +C -1 ; WX 600 ; N eacute ; B 106 -15 612 672 ; +C -1 ; WX 600 ; N uacute ; B 101 -15 602 672 ; +C -1 ; WX 600 ; N Aacute ; B 3 0 658 793 ; +C -1 ; WX 600 ; N copyright ; B 53 -18 667 580 ; +C -1 ; WX 600 ; N twosuperior ; B 230 249 535 622 ; +C -1 ; WX 600 ; N Ecircumflex ; B 53 0 660 775 ; +C -1 ; WX 600 ; N ntilde ; B 26 0 629 606 ; +C -1 ; WX 600 ; N down ; B 187 -15 467 426 ; +C -1 ; WX 600 ; N center ; B 103 14 623 580 ; +C -1 ; WX 600 ; N onesuperior ; B 231 249 491 622 ; +C -1 ; WX 600 ; N ij ; B 37 -157 630 657 ; +C -1 ; WX 600 ; N edieresis ; B 106 -15 598 595 ; +C -1 ; WX 600 ; N graybox ; B 76 0 652 599 ; +C -1 ; WX 600 ; N odieresis ; B 102 -15 588 595 ; +C -1 ; WX 600 ; N Ograve ; B 94 -18 625 793 ; +C -1 ; WX 600 ; N threequarters ; B 73 -56 659 666 ; +C -1 ; WX 600 ; N plusminus ; B 96 44 594 558 ; +C -1 ; WX 600 ; N prescription ; B 27 -15 617 562 ; +C -1 ; WX 600 ; N eth ; B 102 -15 639 629 ; +C -1 ; WX 600 ; N largebullet ; B 315 220 395 297 ; +C -1 ; WX 600 ; N egrave ; B 106 -15 598 672 ; +C -1 ; WX 600 ; N ccedilla ; B 106 -151 614 441 ; +C -1 ; WX 600 ; N notegraphic ; B 143 -15 564 572 ; +C -1 ; WX 600 ; N Udieresis ; B 125 -18 702 731 ; +C -1 ; WX 600 ; N Gcaron ; B 83 -18 645 805 ; +C -1 ; WX 600 ; N arrowdown ; B 152 -15 520 608 ; +C -1 ; WX 600 ; N format ; B -28 -157 185 607 ; +C -1 ; WX 600 ; N Otilde ; B 94 -18 656 732 ; +C -1 ; WX 600 ; N Idieresis ; B 96 0 623 731 ; +C -1 ; WX 600 ; N adieresis ; B 76 -15 570 595 ; +C -1 ; WX 600 ; N ecircumflex ; B 106 -15 598 654 ; +C -1 ; WX 600 ; N Eth ; B 43 0 645 562 ; +C -1 ; WX 600 ; N onequarter ; B 65 -57 674 665 ; +C -1 ; WX 600 ; N LL ; B 8 0 647 562 ; +C -1 ; WX 600 ; N agrave ; B 76 -15 569 672 ; +C -1 ; WX 600 ; N Zcaron ; B 86 0 643 805 ; +C -1 ; WX 600 ; N Scedilla ; B 76 -151 650 580 ; +C -1 ; WX 600 ; N Idot ; B 96 0 623 716 ; +C -1 ; WX 600 ; N Iacute ; B 96 0 638 793 ; +C -1 ; WX 600 ; N indent ; B 108 68 574 348 ; +C -1 ; WX 600 ; N Ugrave ; B 125 -18 702 793 ; +C -1 ; WX 600 ; N scaron ; B 78 -15 614 669 ; +C -1 ; WX 600 ; N overscore ; B 123 579 734 629 ; +C -1 ; WX 600 ; N Aring ; B 3 0 607 753 ; +C -1 ; WX 600 ; N Ccedilla ; B 93 -151 658 580 ; +C -1 ; WX 600 ; N Igrave ; B 96 0 623 793 ; +C -1 ; WX 600 ; N brokenbar ; B 238 -175 469 675 ; +C -1 ; WX 600 ; N Oacute ; B 94 -18 638 793 ; +C -1 ; WX 600 ; N otilde ; B 102 -15 629 606 ; +C -1 ; WX 600 ; N Yacute ; B 133 0 695 793 ; +C -1 ; WX 600 ; N lira ; B 118 -21 621 611 ; +C -1 ; WX 600 ; N Icircumflex ; B 96 0 623 775 ; +C -1 ; WX 600 ; N Atilde ; B 3 0 656 732 ; +C -1 ; WX 600 ; N Uacute ; B 125 -18 702 793 ; +C -1 ; WX 600 ; N Ydieresis ; B 133 0 695 731 ; +C -1 ; WX 600 ; N ydieresis ; B -4 -157 683 595 ; +C -1 ; WX 600 ; N idieresis ; B 95 0 540 595 ; +C -1 ; WX 600 ; N Adieresis ; B 3 0 607 731 ; +C -1 ; WX 600 ; N mu ; B 72 -157 572 426 ; +C -1 ; WX 600 ; N trademark ; B 75 263 742 562 ; +C -1 ; WX 600 ; N oacute ; B 102 -15 612 672 ; +C -1 ; WX 600 ; N acircumflex ; B 76 -15 581 654 ; +C -1 ; WX 600 ; N Agrave ; B 3 0 607 793 ; +C -1 ; WX 600 ; N return ; B 79 0 700 562 ; +C -1 ; WX 600 ; N atilde ; B 76 -15 629 606 ; +C -1 ; WX 600 ; N square ; B 19 0 700 562 ; +C -1 ; WX 600 ; N registered ; B 53 -18 667 580 ; +C -1 ; WX 600 ; N stop ; B 19 0 700 562 ; +C -1 ; WX 600 ; N udieresis ; B 101 -15 572 595 ; +C -1 ; WX 600 ; N arrowup ; B 209 0 577 623 ; +C -1 ; WX 600 ; N igrave ; B 95 0 515 672 ; +C -1 ; WX 600 ; N Edieresis ; B 53 0 660 731 ; +C -1 ; WX 600 ; N zcaron ; B 99 0 624 669 ; +C -1 ; WX 600 ; N arrowboth ; B 36 115 692 483 ; +C -1 ; WX 600 ; N gcaron ; B 61 -157 657 669 ; +C -1 ; WX 600 ; N arrowleft ; B 40 115 693 483 ; +C -1 ; WX 600 ; N aacute ; B 76 -15 612 672 ; +C -1 ; WX 600 ; N ocircumflex ; B 102 -15 588 654 ; +C -1 ; WX 600 ; N scedilla ; B 78 -151 584 441 ; +C -1 ; WX 600 ; N ograve ; B 102 -15 588 672 ; +C -1 ; WX 600 ; N onehalf ; B 65 -57 669 665 ; +C -1 ; WX 600 ; N ugrave ; B 101 -15 572 672 ; +C -1 ; WX 600 ; N Ntilde ; B 7 -13 712 732 ; +C -1 ; WX 600 ; N iacute ; B 95 0 612 672 ; +C -1 ; WX 600 ; N arrowright ; B 34 115 688 483 ; +C -1 ; WX 600 ; N Thorn ; B 79 0 606 562 ; +C -1 ; WX 600 ; N Egrave ; B 53 0 660 793 ; +C -1 ; WX 600 ; N thorn ; B -24 -157 605 629 ; +C -1 ; WX 600 ; N aring ; B 76 -15 569 627 ; +C -1 ; WX 600 ; N yacute ; B -4 -157 683 672 ; +C -1 ; WX 600 ; N icircumflex ; B 95 0 551 654 ; +EndCharMetrics +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 46 121 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex -4 121 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis -1 136 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave -4 121 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 12 126 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 27 126 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 56 121 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 26 121 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 29 136 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 26 121 ; +CC Gcaron 2 ; PCC G 0 0 ; PCC caron 29 136 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 26 121 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 26 121 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 29 136 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 26 121 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 27 126 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 26 121 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 26 121 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 29 136 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 26 121 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 27 126 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 59 136 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 56 121 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 26 121 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 29 136 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave -4 121 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 56 121 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 29 136 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 29 136 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 0 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 0 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 0 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 0 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 0 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 0 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 0 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 0 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 0 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 0 0 ; +CC gcaron 2 ; PCC g 0 0 ; PCC caron -30 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -30 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -30 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -30 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 0 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 0 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 0 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 0 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 0 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 0 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 0 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute -10 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex -10 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 0 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave -30 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute -20 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis -10 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 10 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr-O+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr-O+ new file mode 100755 index 0000000000000..267c38e6114d7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Cr-O+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 600 ; N Ccaron ; B 93 -18 695 790 ; +C -1 ; WX 600 ; N ccaron ; B 106 -15 639 669 ; +C -1 ; WX 600 ; N Dcaron ; B 43 0 645 790 ; +C -1 ; WX 600 ; N dcaron ; B 85 -15 873 692 ; +C -1 ; WX 600 ; N Ecaron ; B 53 0 660 790 ; +C -1 ; WX 600 ; N ecaron ; B 106 -15 614 669 ; +C -1 ; WX 600 ; N Lcaron ; B 47 0 856 618 ; +C -1 ; WX 600 ; N Lacute ; B 47 0 636 788 ; +C -1 ; WX 600 ; N lcaron ; B 95 0 748 692 ; +C -1 ; WX 600 ; N lacute ; B 95 0 662 788 ; +C -1 ; WX 600 ; N Ncaron ; B 7 -13 712 790 ; +C -1 ; WX 600 ; N ncaron ; B 26 0 614 669 ; +C -1 ; WX 600 ; N Rcaron ; B 38 0 639 790 ; +C -1 ; WX 600 ; N Racute ; B 38 0 686 788 ; +C -1 ; WX 600 ; N rcaron ; B 60 0 636 669 ; +C -1 ; WX 600 ; N racute ; B 60 0 638 672 ; +C -1 ; WX 600 ; N Tcaron ; B 108 0 665 790 ; +C -1 ; WX 600 ; N tcaron ; B 167 -15 794 562 ; +C -1 ; WX 600 ; N Uring ; B 125 -18 702 790 ; +C -1 ; WX 600 ; N uring ; B 101 -15 572 627 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 81 121 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 25 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 25 121 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 378 130 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 25 121 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 0 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 361 56 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 24 116 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 253 130 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 50 116 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 25 121 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 0 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 25 121 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 74 116 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 26 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 25 121 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 299 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 34 163 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 0 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He new file mode 100755 index 0000000000000..1eb3b448569c9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He @@ -0,0 +1,612 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All rights reserved. +Comment Creation Date: Thu Mar 15 08:58:00 1990 +Comment UniqueID 28352 +Comment VMusage 26389 33281 +FontName Helvetica +FullName Helvetica +FamilyName Helvetica +Weight Medium +ItalicAngle 0 +IsFixedPitch false +FontBBox -166 -225 1000 931 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.006 +Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All rights reserved.Helvetica is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 718 +XHeight 523 +Ascender 718 +Descender -207 +StartCharMetrics 228 +C 32 ; WX 278 ; N space ; B 0 0 0 0 ; +C 33 ; WX 278 ; N exclam ; B 90 0 187 718 ; +C 34 ; WX 355 ; N quotedbl ; B 70 463 285 718 ; +C 35 ; WX 556 ; N numbersign ; B 28 0 529 688 ; +C 36 ; WX 556 ; N dollar ; B 32 -115 520 775 ; +C 37 ; WX 889 ; N percent ; B 39 -19 850 703 ; +C 38 ; WX 667 ; N ampersand ; B 44 -15 645 718 ; +C 39 ; WX 222 ; N quoteright ; B 53 463 157 718 ; +C 40 ; WX 333 ; N parenleft ; B 68 -207 299 733 ; +C 41 ; WX 333 ; N parenright ; B 34 -207 265 733 ; +C 42 ; WX 389 ; N asterisk ; B 39 431 349 718 ; +C 43 ; WX 584 ; N plus ; B 39 0 545 505 ; +C 44 ; WX 278 ; N comma ; B 87 -147 191 106 ; +C 45 ; WX 333 ; N hyphen ; B 44 232 289 322 ; +C 46 ; WX 278 ; N period ; B 87 0 191 106 ; +C 47 ; WX 278 ; N slash ; B -17 -19 295 737 ; +C 48 ; WX 556 ; N zero ; B 37 -19 519 703 ; +C 49 ; WX 556 ; N one ; B 101 0 359 703 ; +C 50 ; WX 556 ; N two ; B 26 0 507 703 ; +C 51 ; WX 556 ; N three ; B 34 -19 522 703 ; +C 52 ; WX 556 ; N four ; B 25 0 523 703 ; +C 53 ; WX 556 ; N five ; B 32 -19 514 688 ; +C 54 ; WX 556 ; N six ; B 38 -19 518 703 ; +C 55 ; WX 556 ; N seven ; B 37 0 523 688 ; +C 56 ; WX 556 ; N eight ; B 38 -19 517 703 ; +C 57 ; WX 556 ; N nine ; B 42 -19 514 703 ; +C 58 ; WX 278 ; N colon ; B 87 0 191 516 ; +C 59 ; WX 278 ; N semicolon ; B 87 -147 191 516 ; +C 60 ; WX 584 ; N less ; B 48 11 536 495 ; +C 61 ; WX 584 ; N equal ; B 39 115 545 390 ; +C 62 ; WX 584 ; N greater ; B 48 11 536 495 ; +C 63 ; WX 556 ; N question ; B 56 0 492 727 ; +C 64 ; WX 1015 ; N at ; B 147 -19 868 737 ; +C 65 ; WX 667 ; N A ; B 14 0 654 718 ; +C 66 ; WX 667 ; N B ; B 74 0 627 718 ; +C 67 ; WX 722 ; N C ; B 44 -19 681 737 ; +C 68 ; WX 722 ; N D ; B 81 0 674 718 ; +C 69 ; WX 667 ; N E ; B 86 0 616 718 ; +C 70 ; WX 611 ; N F ; B 86 0 583 718 ; +C 71 ; WX 778 ; N G ; B 48 -19 704 737 ; +C 72 ; WX 722 ; N H ; B 77 0 646 718 ; +C 73 ; WX 278 ; N I ; B 91 0 188 718 ; +C 74 ; WX 500 ; N J ; B 17 -19 428 718 ; +C 75 ; WX 667 ; N K ; B 76 0 663 718 ; +C 76 ; WX 556 ; N L ; B 76 0 537 718 ; +C 77 ; WX 833 ; N M ; B 73 0 761 718 ; +C 78 ; WX 722 ; N N ; B 76 0 646 718 ; +C 79 ; WX 778 ; N O ; B 39 -19 739 737 ; +C 80 ; WX 667 ; N P ; B 86 0 622 718 ; +C 81 ; WX 778 ; N Q ; B 39 -56 739 737 ; +C 82 ; WX 722 ; N R ; B 88 0 684 718 ; +C 83 ; WX 667 ; N S ; B 49 -19 620 737 ; +C 84 ; WX 611 ; N T ; B 14 0 597 718 ; +C 85 ; WX 722 ; N U ; B 79 -19 644 718 ; +C 86 ; WX 667 ; N V ; B 20 0 647 718 ; +C 87 ; WX 944 ; N W ; B 16 0 928 718 ; +C 88 ; WX 667 ; N X ; B 19 0 648 718 ; +C 89 ; WX 667 ; N Y ; B 14 0 653 718 ; +C 90 ; WX 611 ; N Z ; B 23 0 588 718 ; +C 91 ; WX 278 ; N bracketleft ; B 63 -196 250 722 ; +C 92 ; WX 278 ; N backslash ; B -17 -19 295 737 ; +C 93 ; WX 278 ; N bracketright ; B 28 -196 215 722 ; +C 94 ; WX 469 ; N asciicircum ; B -14 264 483 688 ; +C 95 ; WX 556 ; N underscore ; B 0 -125 556 -75 ; +C 96 ; WX 222 ; N quoteleft ; B 65 470 169 725 ; +C 97 ; WX 556 ; N a ; B 36 -15 530 538 ; +C 98 ; WX 556 ; N b ; B 58 -15 517 718 ; +C 99 ; WX 500 ; N c ; B 30 -15 477 538 ; +C 100 ; WX 556 ; N d ; B 35 -15 499 718 ; +C 101 ; WX 556 ; N e ; B 40 -15 516 538 ; +C 102 ; WX 278 ; N f ; B 14 0 262 728 ; L i fi ; L l fl ; +C 103 ; WX 556 ; N g ; B 40 -220 499 538 ; +C 104 ; WX 556 ; N h ; B 65 0 491 718 ; +C 105 ; WX 222 ; N i ; B 67 0 155 718 ; +C 106 ; WX 222 ; N j ; B -16 -210 155 718 ; +C 107 ; WX 500 ; N k ; B 67 0 501 718 ; +C 108 ; WX 222 ; N l ; B 67 0 155 718 ; +C 109 ; WX 833 ; N m ; B 65 0 769 538 ; +C 110 ; WX 556 ; N n ; B 65 0 491 538 ; +C 111 ; WX 556 ; N o ; B 35 -14 521 538 ; +C 112 ; WX 556 ; N p ; B 58 -207 517 538 ; +C 113 ; WX 556 ; N q ; B 35 -207 494 538 ; +C 114 ; WX 333 ; N r ; B 77 0 332 538 ; +C 115 ; WX 500 ; N s ; B 32 -15 464 538 ; +C 116 ; WX 278 ; N t ; B 14 -7 257 669 ; +C 117 ; WX 556 ; N u ; B 68 -15 489 523 ; +C 118 ; WX 500 ; N v ; B 8 0 492 523 ; +C 119 ; WX 722 ; N w ; B 14 0 709 523 ; +C 120 ; WX 500 ; N x ; B 11 0 490 523 ; +C 121 ; WX 500 ; N y ; B 11 -214 489 523 ; +C 122 ; WX 500 ; N z ; B 31 0 469 523 ; +C 123 ; WX 334 ; N braceleft ; B 42 -196 292 722 ; +C 124 ; WX 260 ; N bar ; B 94 -19 167 737 ; +C 125 ; WX 334 ; N braceright ; B 42 -196 292 722 ; +C 126 ; WX 584 ; N asciitilde ; B 61 180 523 326 ; +C 161 ; WX 333 ; N exclamdown ; B 118 -195 215 523 ; +C 162 ; WX 556 ; N cent ; B 51 -115 513 623 ; +C 163 ; WX 556 ; N sterling ; B 33 -16 539 718 ; +C 164 ; WX 167 ; N fraction ; B -166 -19 333 703 ; +C 165 ; WX 556 ; N yen ; B 3 0 553 688 ; +C 166 ; WX 556 ; N florin ; B -11 -207 501 737 ; +C 167 ; WX 556 ; N section ; B 43 -191 512 737 ; +C 168 ; WX 556 ; N currency ; B 28 99 528 603 ; +C 169 ; WX 191 ; N quotesingle ; B 59 463 132 718 ; +C 170 ; WX 333 ; N quotedblleft ; B 38 470 307 725 ; +C 171 ; WX 556 ; N guillemotleft ; B 97 108 459 446 ; +C 172 ; WX 333 ; N guilsinglleft ; B 88 108 245 446 ; +C 173 ; WX 333 ; N guilsinglright ; B 88 108 245 446 ; +C 174 ; WX 500 ; N fi ; B 14 0 434 728 ; +C 175 ; WX 500 ; N fl ; B 14 0 432 728 ; +C 177 ; WX 556 ; N endash ; B 0 240 556 313 ; +C 178 ; WX 556 ; N dagger ; B 43 -159 514 718 ; +C 179 ; WX 556 ; N daggerdbl ; B 43 -159 514 718 ; +C 180 ; WX 278 ; N periodcentered ; B 77 190 202 315 ; +C 182 ; WX 537 ; N paragraph ; B 18 -173 497 718 ; +C 183 ; WX 350 ; N bullet ; B 18 202 333 517 ; +C 184 ; WX 222 ; N quotesinglbase ; B 53 -149 157 106 ; +C 185 ; WX 333 ; N quotedblbase ; B 26 -149 295 106 ; +C 186 ; WX 333 ; N quotedblright ; B 26 463 295 718 ; +C 187 ; WX 556 ; N guillemotright ; B 97 108 459 446 ; +C 188 ; WX 1000 ; N ellipsis ; B 115 0 885 106 ; +C 189 ; WX 1000 ; N perthousand ; B 7 -19 994 703 ; +C 191 ; WX 611 ; N questiondown ; B 91 -201 527 525 ; +C 193 ; WX 333 ; N grave ; B 14 593 211 734 ; +C 194 ; WX 333 ; N acute ; B 122 593 319 734 ; +C 195 ; WX 333 ; N circumflex ; B 21 593 312 734 ; +C 196 ; WX 333 ; N tilde ; B -4 606 337 722 ; +C 197 ; WX 333 ; N macron ; B 10 627 323 684 ; +C 198 ; WX 333 ; N breve ; B 13 595 321 731 ; +C 199 ; WX 333 ; N dotaccent ; B 121 604 212 706 ; +C 200 ; WX 333 ; N dieresis ; B 40 604 293 706 ; +C 202 ; WX 333 ; N ring ; B 75 572 259 756 ; +C 203 ; WX 333 ; N cedilla ; B 45 -225 259 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B 31 593 409 734 ; +C 206 ; WX 333 ; N ogonek ; B 73 -225 287 0 ; +C 207 ; WX 333 ; N caron ; B 21 593 312 734 ; +C 208 ; WX 1000 ; N emdash ; B 0 240 1000 313 ; +C 225 ; WX 1000 ; N AE ; B 8 0 951 718 ; +C 227 ; WX 370 ; N ordfeminine ; B 24 304 346 737 ; +C 232 ; WX 556 ; N Lslash ; B -20 0 537 718 ; +C 233 ; WX 778 ; N Oslash ; B 39 -19 740 737 ; +C 234 ; WX 1000 ; N OE ; B 36 -19 965 737 ; +C 235 ; WX 365 ; N ordmasculine ; B 25 304 341 737 ; +C 241 ; WX 889 ; N ae ; B 36 -15 847 538 ; +C 245 ; WX 278 ; N dotlessi ; B 95 0 183 523 ; +C 248 ; WX 222 ; N lslash ; B -20 0 242 718 ; +C 249 ; WX 611 ; N oslash ; B 28 -22 537 545 ; +C 250 ; WX 944 ; N oe ; B 35 -15 902 538 ; +C 251 ; WX 611 ; N germandbls ; B 67 -15 571 728 ; +C -1 ; WX 611 ; N Zcaron ; B 23 0 588 929 ; +C -1 ; WX 500 ; N ccedilla ; B 30 -225 477 538 ; +C -1 ; WX 500 ; N ydieresis ; B 11 -214 489 706 ; +C -1 ; WX 556 ; N atilde ; B 36 -15 530 722 ; +C -1 ; WX 278 ; N icircumflex ; B -6 0 285 734 ; +C -1 ; WX 333 ; N threesuperior ; B 5 270 325 703 ; +C -1 ; WX 556 ; N ecircumflex ; B 40 -15 516 734 ; +C -1 ; WX 556 ; N thorn ; B 58 -207 517 718 ; +C -1 ; WX 556 ; N egrave ; B 40 -15 516 734 ; +C -1 ; WX 333 ; N twosuperior ; B 4 281 323 703 ; +C -1 ; WX 556 ; N eacute ; B 40 -15 516 734 ; +C -1 ; WX 556 ; N otilde ; B 35 -14 521 722 ; +C -1 ; WX 667 ; N Aacute ; B 14 0 654 929 ; +C -1 ; WX 556 ; N ocircumflex ; B 35 -14 521 734 ; +C -1 ; WX 500 ; N yacute ; B 11 -214 489 734 ; +C -1 ; WX 556 ; N udieresis ; B 68 -15 489 706 ; +C -1 ; WX 834 ; N threequarters ; B 45 -19 810 703 ; +C -1 ; WX 556 ; N acircumflex ; B 36 -15 530 734 ; +C -1 ; WX 722 ; N Eth ; B 0 0 674 718 ; +C -1 ; WX 556 ; N edieresis ; B 40 -15 516 706 ; +C -1 ; WX 556 ; N ugrave ; B 68 -15 489 734 ; +C -1 ; WX 1000 ; N trademark ; B 46 306 903 718 ; +C -1 ; WX 556 ; N ograve ; B 35 -14 521 734 ; +C -1 ; WX 500 ; N scaron ; B 32 -15 464 734 ; +C -1 ; WX 278 ; N Idieresis ; B 13 0 266 901 ; +C -1 ; WX 556 ; N uacute ; B 68 -15 489 734 ; +C -1 ; WX 556 ; N agrave ; B 36 -15 530 734 ; +C -1 ; WX 556 ; N ntilde ; B 65 0 491 722 ; +C -1 ; WX 556 ; N aring ; B 36 -15 530 756 ; +C -1 ; WX 500 ; N zcaron ; B 31 0 469 734 ; +C -1 ; WX 278 ; N Icircumflex ; B -6 0 285 929 ; +C -1 ; WX 722 ; N Ntilde ; B 76 0 646 917 ; +C -1 ; WX 556 ; N ucircumflex ; B 68 -15 489 734 ; +C -1 ; WX 667 ; N Ecircumflex ; B 86 0 616 929 ; +C -1 ; WX 278 ; N Iacute ; B 91 0 292 929 ; +C -1 ; WX 722 ; N Ccedilla ; B 44 -225 681 737 ; +C -1 ; WX 778 ; N Odieresis ; B 39 -19 739 901 ; +C -1 ; WX 667 ; N Scaron ; B 49 -19 620 929 ; +C -1 ; WX 667 ; N Edieresis ; B 86 0 616 901 ; +C -1 ; WX 278 ; N Igrave ; B -13 0 188 929 ; +C -1 ; WX 556 ; N adieresis ; B 36 -15 530 706 ; +C -1 ; WX 778 ; N Ograve ; B 39 -19 739 929 ; +C -1 ; WX 667 ; N Egrave ; B 86 0 616 929 ; +C -1 ; WX 667 ; N Ydieresis ; B 14 0 653 901 ; +C -1 ; WX 737 ; N registered ; B -14 -19 752 737 ; +C -1 ; WX 778 ; N Otilde ; B 39 -19 739 917 ; +C -1 ; WX 834 ; N onequarter ; B 73 -19 756 703 ; +C -1 ; WX 722 ; N Ugrave ; B 79 -19 644 929 ; +C -1 ; WX 722 ; N Ucircumflex ; B 79 -19 644 929 ; +C -1 ; WX 667 ; N Thorn ; B 86 0 622 718 ; +C -1 ; WX 584 ; N divide ; B 39 -19 545 524 ; +C -1 ; WX 667 ; N Atilde ; B 14 0 654 917 ; +C -1 ; WX 722 ; N Uacute ; B 79 -19 644 929 ; +C -1 ; WX 778 ; N Ocircumflex ; B 39 -19 739 929 ; +C -1 ; WX 584 ; N logicalnot ; B 39 108 545 390 ; +C -1 ; WX 667 ; N Aring ; B 14 0 654 931 ; +C -1 ; WX 278 ; N idieresis ; B 13 0 266 706 ; +C -1 ; WX 278 ; N iacute ; B 95 0 292 734 ; +C -1 ; WX 556 ; N aacute ; B 36 -15 530 734 ; +C -1 ; WX 584 ; N plusminus ; B 39 0 545 506 ; +C -1 ; WX 584 ; N multiply ; B 39 0 545 506 ; +C -1 ; WX 722 ; N Udieresis ; B 79 -19 644 901 ; +C -1 ; WX 584 ; N minus ; B 39 216 545 289 ; +C -1 ; WX 333 ; N onesuperior ; B 43 281 222 703 ; +C -1 ; WX 667 ; N Eacute ; B 86 0 616 929 ; +C -1 ; WX 667 ; N Acircumflex ; B 14 0 654 929 ; +C -1 ; WX 737 ; N copyright ; B -14 -19 752 737 ; +C -1 ; WX 667 ; N Agrave ; B 14 0 654 929 ; +C -1 ; WX 556 ; N odieresis ; B 35 -14 521 706 ; +C -1 ; WX 556 ; N oacute ; B 35 -14 521 734 ; +C -1 ; WX 400 ; N degree ; B 54 411 346 703 ; +C -1 ; WX 278 ; N igrave ; B -13 0 184 734 ; +C -1 ; WX 556 ; N mu ; B 68 -207 489 523 ; +C -1 ; WX 778 ; N Oacute ; B 39 -19 739 929 ; +C -1 ; WX 556 ; N eth ; B 35 -15 522 737 ; +C -1 ; WX 667 ; N Adieresis ; B 14 0 654 901 ; +C -1 ; WX 667 ; N Yacute ; B 14 0 653 929 ; +C -1 ; WX 260 ; N brokenbar ; B 94 -19 167 737 ; +C -1 ; WX 834 ; N onehalf ; B 43 -19 773 703 ; +EndCharMetrics +StartKernData +StartKernPairs 250 + +KPX A y -40 +KPX A w -40 +KPX A v -40 +KPX A u -30 +KPX A Y -100 +KPX A W -50 +KPX A V -70 +KPX A U -50 +KPX A T -120 +KPX A Q -30 +KPX A O -30 +KPX A G -30 +KPX A C -30 + +KPX B period -20 +KPX B comma -20 +KPX B U -10 + +KPX C period -30 +KPX C comma -30 + +KPX D period -70 +KPX D comma -70 +KPX D Y -90 +KPX D W -40 +KPX D V -70 +KPX D A -40 + +KPX F r -45 +KPX F period -150 +KPX F o -30 +KPX F e -30 +KPX F comma -150 +KPX F a -50 +KPX F A -80 + +KPX J u -20 +KPX J period -30 +KPX J comma -30 +KPX J a -20 +KPX J A -20 + +KPX K y -50 +KPX K u -30 +KPX K o -40 +KPX K e -40 +KPX K O -50 + +KPX L y -30 +KPX L quoteright -160 +KPX L quotedblright -140 +KPX L Y -140 +KPX L W -70 +KPX L V -110 +KPX L T -110 + +KPX O period -40 +KPX O comma -40 +KPX O Y -70 +KPX O X -60 +KPX O W -30 +KPX O V -50 +KPX O T -40 +KPX O A -20 + +KPX P period -180 +KPX P o -50 +KPX P e -50 +KPX P comma -180 +KPX P a -40 +KPX P A -120 + +KPX Q U -10 + +KPX R Y -50 +KPX R W -30 +KPX R V -50 +KPX R U -40 +KPX R T -30 +KPX R O -20 + +KPX S period -20 +KPX S comma -20 + +KPX T y -120 +KPX T w -120 +KPX T u -120 +KPX T semicolon -20 +KPX T r -120 +KPX T period -120 +KPX T o -120 +KPX T hyphen -140 +KPX T e -120 +KPX T comma -120 +KPX T colon -20 +KPX T a -120 +KPX T O -40 +KPX T A -120 + +KPX U period -40 +KPX U comma -40 +KPX U A -40 + +KPX V u -70 +KPX V semicolon -40 +KPX V period -125 +KPX V o -80 +KPX V hyphen -80 +KPX V e -80 +KPX V comma -125 +KPX V colon -40 +KPX V a -70 +KPX V O -40 +KPX V G -40 +KPX V A -80 + +KPX W y -20 +KPX W u -30 +KPX W period -80 +KPX W o -30 +KPX W hyphen -40 +KPX W e -30 +KPX W comma -80 +KPX W a -40 +KPX W O -20 +KPX W A -50 + +KPX Y u -110 +KPX Y semicolon -60 +KPX Y period -140 +KPX Y o -140 +KPX Y i -20 +KPX Y hyphen -140 +KPX Y e -140 +KPX Y comma -140 +KPX Y colon -60 +KPX Y a -140 +KPX Y O -85 +KPX Y A -110 + +KPX a y -30 +KPX a w -20 +KPX a v -20 + +KPX b y -20 +KPX b v -20 +KPX b u -20 +KPX b period -40 +KPX b l -20 +KPX b comma -40 +KPX b b -10 + +KPX c k -20 +KPX c comma -15 + +KPX colon space -50 + +KPX comma quoteright -100 +KPX comma quotedblright -100 + +KPX e y -20 +KPX e x -30 +KPX e w -20 +KPX e v -30 +KPX e period -15 +KPX e comma -15 + +KPX f quoteright 50 +KPX f quotedblright 60 +KPX f period -30 +KPX f o -30 +KPX f e -30 +KPX f dotlessi -28 +KPX f comma -30 +KPX f a -30 + +KPX g r -10 + +KPX h y -30 + +KPX k o -20 +KPX k e -20 + +KPX m y -15 +KPX m u -10 + +KPX n y -15 +KPX n v -20 +KPX n u -10 + +KPX o y -30 +KPX o x -30 +KPX o w -15 +KPX o v -15 +KPX o period -40 +KPX o comma -40 + +KPX oslash z -55 +KPX oslash y -70 +KPX oslash x -85 +KPX oslash w -70 +KPX oslash v -70 +KPX oslash u -55 +KPX oslash t -55 +KPX oslash s -55 +KPX oslash r -55 +KPX oslash q -55 +KPX oslash period -95 +KPX oslash p -55 +KPX oslash o -55 +KPX oslash n -55 +KPX oslash m -55 +KPX oslash l -55 +KPX oslash k -55 +KPX oslash j -55 +KPX oslash i -55 +KPX oslash h -55 +KPX oslash g -55 +KPX oslash f -55 +KPX oslash e -55 +KPX oslash d -55 +KPX oslash comma -95 +KPX oslash c -55 +KPX oslash b -55 +KPX oslash a -55 + +KPX p y -30 +KPX p period -35 +KPX p comma -35 + +KPX period space -60 +KPX period quoteright -100 +KPX period quotedblright -100 + +KPX quotedblright space -40 + +KPX quoteleft quoteleft -57 + +KPX quoteright space -70 +KPX quoteright s -50 +KPX quoteright r -50 +KPX quoteright quoteright -57 +KPX quoteright d -50 + +KPX r y 30 +KPX r v 30 +KPX r u 15 +KPX r t 40 +KPX r semicolon 30 +KPX r period -50 +KPX r p 30 +KPX r n 25 +KPX r m 25 +KPX r l 15 +KPX r k 15 +KPX r i 15 +KPX r comma -50 +KPX r colon 30 +KPX r a -10 + +KPX s w -30 +KPX s period -15 +KPX s comma -15 + +KPX semicolon space -50 + +KPX space quoteleft -60 +KPX space quotedblleft -30 +KPX space Y -90 +KPX space W -40 +KPX space V -50 +KPX space T -50 + +KPX v period -80 +KPX v o -25 +KPX v e -25 +KPX v comma -80 +KPX v a -25 + +KPX w period -60 +KPX w o -10 +KPX w e -10 +KPX w comma -60 +KPX w a -15 + +KPX x e -30 + +KPX y period -100 +KPX y o -20 +KPX y e -20 +KPX y comma -100 +KPX y a -20 + +KPX z o -15 +KPX z e -15 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 167 195 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 167 195 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 167 195 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 167 195 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 167 175 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 167 195 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 195 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 167 195 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 167 195 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 167 195 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 167 195 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute -27 195 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -27 195 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -27 195 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -27 195 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 205 195 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 223 195 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 223 195 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 223 195 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 223 195 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 223 195 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 167 195 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 195 195 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 195 195 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 195 195 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 195 195 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 167 195 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 167 195 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 195 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 112 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 112 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 112 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 112 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 112 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 102 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 84 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 112 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 112 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 112 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 112 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -27 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 102 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 112 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 112 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 112 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 112 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 112 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 84 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 112 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 112 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 112 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 112 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 84 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 84 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 84 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He+ new file mode 100755 index 0000000000000..df34ce4df68f6 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 722 ; N Ccaron ; B 44 -19 681 925 ; +C -1 ; WX 500 ; N ccaron ; B 30 -15 477 734 ; +C -1 ; WX 722 ; N Dcaron ; B 81 0 674 925 ; +C -1 ; WX 629 ; N dcaron ; B 35 -15 613 790 ; +C -1 ; WX 667 ; N Ecaron ; B 86 0 616 925 ; +C -1 ; WX 556 ; N ecaron ; B 40 -15 516 734 ; +C -1 ; WX 556 ; N Lcaron ; B 76 0 537 790 ; +C -1 ; WX 556 ; N Lacute ; B 76 0 537 925 ; +C -1 ; WX 295 ; N lcaron ; B 67 0 269 790 ; +C -1 ; WX 222 ; N lacute ; B 67 0 284 925 ; +C -1 ; WX 722 ; N Ncaron ; B 76 0 646 925 ; +C -1 ; WX 556 ; N ncaron ; B 65 0 491 734 ; +C -1 ; WX 722 ; N Rcaron ; B 88 0 684 925 ; +C -1 ; WX 722 ; N Racute ; B 88 0 684 925 ; +C -1 ; WX 333 ; N rcaron ; B 21 0 332 734 ; +C -1 ; WX 333 ; N racute ; B 77 0 339 734 ; +C -1 ; WX 611 ; N Tcaron ; B 14 0 597 925 ; +C -1 ; WX 351 ; N tcaron ; B 14 -7 371 718 ; +C -1 ; WX 722 ; N Uring ; B 79 -19 644 925 ; +C -1 ; WX 556 ; N uring ; B 68 -15 489 756 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 258 191 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 105 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 194 191 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 456 72 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 167 191 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 111 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 145 72 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 111 191 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 112 72 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute -35 191 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 194 191 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 111 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 194 191 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 231 191 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 20 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 139 191 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 214 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 194 169 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 111 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Bd b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Bd new file mode 100755 index 0000000000000..a1e1b33c403a0 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Bd @@ -0,0 +1,570 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu Mar 15 09:43:00 1990 +Comment UniqueID 28357 +Comment VMusage 26878 33770 +FontName Helvetica-Bold +FullName Helvetica Bold +FamilyName Helvetica +Weight Bold +ItalicAngle 0 +IsFixedPitch false +FontBBox -170 -228 1003 962 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.007 +Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 718 +XHeight 532 +Ascender 718 +Descender -207 +StartCharMetrics 228 +C 32 ; WX 278 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 90 0 244 718 ; +C 34 ; WX 474 ; N quotedbl ; B 98 447 376 718 ; +C 35 ; WX 556 ; N numbersign ; B 18 0 538 698 ; +C 36 ; WX 556 ; N dollar ; B 30 -115 523 775 ; +C 37 ; WX 889 ; N percent ; B 28 -19 861 710 ; +C 38 ; WX 722 ; N ampersand ; B 54 -19 701 718 ; +C 39 ; WX 278 ; N quoteright ; B 69 445 209 718 ; +C 40 ; WX 333 ; N parenleft ; B 35 -208 314 734 ; +C 41 ; WX 333 ; N parenright ; B 19 -208 298 734 ; +C 42 ; WX 389 ; N asterisk ; B 27 387 362 718 ; +C 43 ; WX 584 ; N plus ; B 40 0 544 506 ; +C 44 ; WX 278 ; N comma ; B 64 -168 214 146 ; +C 45 ; WX 333 ; N hyphen ; B 27 215 306 345 ; +C 46 ; WX 278 ; N period ; B 64 0 214 146 ; +C 47 ; WX 278 ; N slash ; B -33 -19 311 737 ; +C 48 ; WX 556 ; N zero ; B 32 -19 524 710 ; +C 49 ; WX 556 ; N one ; B 69 0 378 710 ; +C 50 ; WX 556 ; N two ; B 26 0 511 710 ; +C 51 ; WX 556 ; N three ; B 27 -19 516 710 ; +C 52 ; WX 556 ; N four ; B 27 0 526 710 ; +C 53 ; WX 556 ; N five ; B 27 -19 516 698 ; +C 54 ; WX 556 ; N six ; B 31 -19 520 710 ; +C 55 ; WX 556 ; N seven ; B 25 0 528 698 ; +C 56 ; WX 556 ; N eight ; B 32 -19 524 710 ; +C 57 ; WX 556 ; N nine ; B 30 -19 522 710 ; +C 58 ; WX 333 ; N colon ; B 92 0 242 512 ; +C 59 ; WX 333 ; N semicolon ; B 92 -168 242 512 ; +C 60 ; WX 584 ; N less ; B 38 -8 546 514 ; +C 61 ; WX 584 ; N equal ; B 40 87 544 419 ; +C 62 ; WX 584 ; N greater ; B 38 -8 546 514 ; +C 63 ; WX 611 ; N question ; B 60 0 556 727 ; +C 64 ; WX 975 ; N at ; B 118 -19 856 737 ; +C 65 ; WX 722 ; N A ; B 20 0 702 718 ; +C 66 ; WX 722 ; N B ; B 76 0 669 718 ; +C 67 ; WX 722 ; N C ; B 44 -19 684 737 ; +C 68 ; WX 722 ; N D ; B 76 0 685 718 ; +C 69 ; WX 667 ; N E ; B 76 0 621 718 ; +C 70 ; WX 611 ; N F ; B 76 0 587 718 ; +C 71 ; WX 778 ; N G ; B 44 -19 713 737 ; +C 72 ; WX 722 ; N H ; B 71 0 651 718 ; +C 73 ; WX 278 ; N I ; B 64 0 214 718 ; +C 74 ; WX 556 ; N J ; B 22 -18 484 718 ; +C 75 ; WX 722 ; N K ; B 87 0 722 718 ; +C 76 ; WX 611 ; N L ; B 76 0 583 718 ; +C 77 ; WX 833 ; N M ; B 69 0 765 718 ; +C 78 ; WX 722 ; N N ; B 69 0 654 718 ; +C 79 ; WX 778 ; N O ; B 44 -19 734 737 ; +C 80 ; WX 667 ; N P ; B 76 0 627 718 ; +C 81 ; WX 778 ; N Q ; B 44 -52 737 737 ; +C 82 ; WX 722 ; N R ; B 76 0 677 718 ; +C 83 ; WX 667 ; N S ; B 39 -19 629 737 ; +C 84 ; WX 611 ; N T ; B 14 0 598 718 ; +C 85 ; WX 722 ; N U ; B 72 -19 651 718 ; +C 86 ; WX 667 ; N V ; B 19 0 648 718 ; +C 87 ; WX 944 ; N W ; B 16 0 929 718 ; +C 88 ; WX 667 ; N X ; B 14 0 653 718 ; +C 89 ; WX 667 ; N Y ; B 15 0 653 718 ; +C 90 ; WX 611 ; N Z ; B 25 0 586 718 ; +C 91 ; WX 333 ; N bracketleft ; B 63 -196 309 722 ; +C 92 ; WX 278 ; N backslash ; B -33 -19 311 737 ; +C 93 ; WX 333 ; N bracketright ; B 24 -196 270 722 ; +C 94 ; WX 584 ; N asciicircum ; B 62 323 522 698 ; +C 95 ; WX 556 ; N underscore ; B 0 -125 556 -75 ; +C 96 ; WX 278 ; N quoteleft ; B 69 454 209 727 ; +C 97 ; WX 556 ; N a ; B 29 -14 527 546 ; +C 98 ; WX 611 ; N b ; B 61 -14 578 718 ; +C 99 ; WX 556 ; N c ; B 34 -14 524 546 ; +C 100 ; WX 611 ; N d ; B 34 -14 551 718 ; +C 101 ; WX 556 ; N e ; B 23 -14 528 546 ; +C 102 ; WX 333 ; N f ; B 10 0 318 727 ; L i fi ; L l fl ; +C 103 ; WX 611 ; N g ; B 40 -217 553 546 ; +C 104 ; WX 611 ; N h ; B 65 0 546 718 ; +C 105 ; WX 278 ; N i ; B 69 0 209 725 ; +C 106 ; WX 278 ; N j ; B 3 -214 209 725 ; +C 107 ; WX 556 ; N k ; B 69 0 562 718 ; +C 108 ; WX 278 ; N l ; B 69 0 209 718 ; +C 109 ; WX 889 ; N m ; B 64 0 826 546 ; +C 110 ; WX 611 ; N n ; B 65 0 546 546 ; +C 111 ; WX 611 ; N o ; B 34 -14 578 546 ; +C 112 ; WX 611 ; N p ; B 62 -207 578 546 ; +C 113 ; WX 611 ; N q ; B 34 -207 552 546 ; +C 114 ; WX 389 ; N r ; B 64 0 373 546 ; +C 115 ; WX 556 ; N s ; B 30 -14 519 546 ; +C 116 ; WX 333 ; N t ; B 10 -6 309 676 ; +C 117 ; WX 611 ; N u ; B 66 -14 545 532 ; +C 118 ; WX 556 ; N v ; B 13 0 543 532 ; +C 119 ; WX 778 ; N w ; B 10 0 769 532 ; +C 120 ; WX 556 ; N x ; B 15 0 541 532 ; +C 121 ; WX 556 ; N y ; B 10 -214 539 532 ; +C 122 ; WX 500 ; N z ; B 20 0 480 532 ; +C 123 ; WX 389 ; N braceleft ; B 48 -196 365 722 ; +C 124 ; WX 280 ; N bar ; B 84 -19 196 737 ; +C 125 ; WX 389 ; N braceright ; B 24 -196 341 722 ; +C 126 ; WX 584 ; N asciitilde ; B 61 163 523 343 ; +C 161 ; WX 333 ; N exclamdown ; B 90 -186 244 532 ; +C 162 ; WX 556 ; N cent ; B 34 -118 524 628 ; +C 163 ; WX 556 ; N sterling ; B 28 -16 541 718 ; +C 164 ; WX 167 ; N fraction ; B -170 -19 336 710 ; +C 165 ; WX 556 ; N yen ; B -9 0 565 698 ; +C 166 ; WX 556 ; N florin ; B -10 -210 516 737 ; +C 167 ; WX 556 ; N section ; B 34 -184 522 727 ; +C 168 ; WX 556 ; N currency ; B -3 76 559 636 ; +C 169 ; WX 238 ; N quotesingle ; B 70 447 168 718 ; +C 170 ; WX 500 ; N quotedblleft ; B 64 454 436 727 ; +C 171 ; WX 556 ; N guillemotleft ; B 88 76 468 484 ; +C 172 ; WX 333 ; N guilsinglleft ; B 83 76 250 484 ; +C 173 ; WX 333 ; N guilsinglright ; B 83 76 250 484 ; +C 174 ; WX 611 ; N fi ; B 10 0 542 727 ; +C 175 ; WX 611 ; N fl ; B 10 0 542 727 ; +C 177 ; WX 556 ; N endash ; B 0 227 556 333 ; +C 178 ; WX 556 ; N dagger ; B 36 -171 520 718 ; +C 179 ; WX 556 ; N daggerdbl ; B 36 -171 520 718 ; +C 180 ; WX 278 ; N periodcentered ; B 58 172 220 334 ; +C 182 ; WX 556 ; N paragraph ; B -8 -191 539 700 ; +C 183 ; WX 350 ; N bullet ; B 10 194 340 524 ; +C 184 ; WX 278 ; N quotesinglbase ; B 69 -146 209 127 ; +C 185 ; WX 500 ; N quotedblbase ; B 64 -146 436 127 ; +C 186 ; WX 500 ; N quotedblright ; B 64 445 436 718 ; +C 187 ; WX 556 ; N guillemotright ; B 88 76 468 484 ; +C 188 ; WX 1000 ; N ellipsis ; B 92 0 908 146 ; +C 189 ; WX 1000 ; N perthousand ; B -3 -19 1003 710 ; +C 191 ; WX 611 ; N questiondown ; B 55 -195 551 532 ; +C 193 ; WX 333 ; N grave ; B -23 604 225 750 ; +C 194 ; WX 333 ; N acute ; B 108 604 356 750 ; +C 195 ; WX 333 ; N circumflex ; B -10 604 343 750 ; +C 196 ; WX 333 ; N tilde ; B -17 610 350 737 ; +C 197 ; WX 333 ; N macron ; B -6 604 339 678 ; +C 198 ; WX 333 ; N breve ; B -2 604 335 750 ; +C 199 ; WX 333 ; N dotaccent ; B 104 614 230 729 ; +C 200 ; WX 333 ; N dieresis ; B 6 614 327 729 ; +C 202 ; WX 333 ; N ring ; B 59 568 275 776 ; +C 203 ; WX 333 ; N cedilla ; B 6 -228 245 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B 9 604 486 750 ; +C 206 ; WX 333 ; N ogonek ; B 71 -228 304 0 ; +C 207 ; WX 333 ; N caron ; B -10 604 343 750 ; +C 208 ; WX 1000 ; N emdash ; B 0 227 1000 333 ; +C 225 ; WX 1000 ; N AE ; B 5 0 954 718 ; +C 227 ; WX 370 ; N ordfeminine ; B 22 276 347 737 ; +C 232 ; WX 611 ; N Lslash ; B -20 0 583 718 ; +C 233 ; WX 778 ; N Oslash ; B 33 -27 744 745 ; +C 234 ; WX 1000 ; N OE ; B 37 -19 961 737 ; +C 235 ; WX 365 ; N ordmasculine ; B 6 276 360 737 ; +C 241 ; WX 889 ; N ae ; B 29 -14 858 546 ; +C 245 ; WX 278 ; N dotlessi ; B 69 0 209 532 ; +C 248 ; WX 278 ; N lslash ; B -18 0 296 718 ; +C 249 ; WX 611 ; N oslash ; B 22 -29 589 560 ; +C 250 ; WX 944 ; N oe ; B 34 -14 912 546 ; +C 251 ; WX 611 ; N germandbls ; B 69 -14 579 731 ; +C -1 ; WX 611 ; N Zcaron ; B 25 0 586 936 ; +C -1 ; WX 556 ; N ccedilla ; B 34 -228 524 546 ; +C -1 ; WX 556 ; N ydieresis ; B 10 -214 539 729 ; +C -1 ; WX 556 ; N atilde ; B 29 -14 527 737 ; +C -1 ; WX 278 ; N icircumflex ; B -37 0 316 750 ; +C -1 ; WX 333 ; N threesuperior ; B 8 271 326 710 ; +C -1 ; WX 556 ; N ecircumflex ; B 23 -14 528 750 ; +C -1 ; WX 611 ; N thorn ; B 62 -208 578 718 ; +C -1 ; WX 556 ; N egrave ; B 23 -14 528 750 ; +C -1 ; WX 333 ; N twosuperior ; B 9 283 324 710 ; +C -1 ; WX 556 ; N eacute ; B 23 -14 528 750 ; +C -1 ; WX 611 ; N otilde ; B 34 -14 578 737 ; +C -1 ; WX 722 ; N Aacute ; B 20 0 702 936 ; +C -1 ; WX 611 ; N ocircumflex ; B 34 -14 578 750 ; +C -1 ; WX 556 ; N yacute ; B 10 -214 539 750 ; +C -1 ; WX 611 ; N udieresis ; B 66 -14 545 729 ; +C -1 ; WX 834 ; N threequarters ; B 16 -19 799 710 ; +C -1 ; WX 556 ; N acircumflex ; B 29 -14 527 750 ; +C -1 ; WX 722 ; N Eth ; B -5 0 685 718 ; +C -1 ; WX 556 ; N edieresis ; B 23 -14 528 729 ; +C -1 ; WX 611 ; N ugrave ; B 66 -14 545 750 ; +C -1 ; WX 1000 ; N trademark ; B 44 306 956 718 ; +C -1 ; WX 611 ; N ograve ; B 34 -14 578 750 ; +C -1 ; WX 556 ; N scaron ; B 30 -14 519 750 ; +C -1 ; WX 278 ; N Idieresis ; B -21 0 300 915 ; +C -1 ; WX 611 ; N uacute ; B 66 -14 545 750 ; +C -1 ; WX 556 ; N agrave ; B 29 -14 527 750 ; +C -1 ; WX 611 ; N ntilde ; B 65 0 546 737 ; +C -1 ; WX 556 ; N aring ; B 29 -14 527 776 ; +C -1 ; WX 500 ; N zcaron ; B 20 0 480 750 ; +C -1 ; WX 278 ; N Icircumflex ; B -37 0 316 936 ; +C -1 ; WX 722 ; N Ntilde ; B 69 0 654 923 ; +C -1 ; WX 611 ; N ucircumflex ; B 66 -14 545 750 ; +C -1 ; WX 667 ; N Ecircumflex ; B 76 0 621 936 ; +C -1 ; WX 278 ; N Iacute ; B 64 0 329 936 ; +C -1 ; WX 722 ; N Ccedilla ; B 44 -228 684 737 ; +C -1 ; WX 778 ; N Odieresis ; B 44 -19 734 915 ; +C -1 ; WX 667 ; N Scaron ; B 39 -19 629 936 ; +C -1 ; WX 667 ; N Edieresis ; B 76 0 621 915 ; +C -1 ; WX 278 ; N Igrave ; B -50 0 214 936 ; +C -1 ; WX 556 ; N adieresis ; B 29 -14 527 729 ; +C -1 ; WX 778 ; N Ograve ; B 44 -19 734 936 ; +C -1 ; WX 667 ; N Egrave ; B 76 0 621 936 ; +C -1 ; WX 667 ; N Ydieresis ; B 15 0 653 915 ; +C -1 ; WX 737 ; N registered ; B -11 -19 748 737 ; +C -1 ; WX 778 ; N Otilde ; B 44 -19 734 923 ; +C -1 ; WX 834 ; N onequarter ; B 26 -19 766 710 ; +C -1 ; WX 722 ; N Ugrave ; B 72 -19 651 936 ; +C -1 ; WX 722 ; N Ucircumflex ; B 72 -19 651 936 ; +C -1 ; WX 667 ; N Thorn ; B 76 0 627 718 ; +C -1 ; WX 584 ; N divide ; B 40 -42 544 548 ; +C -1 ; WX 722 ; N Atilde ; B 20 0 702 923 ; +C -1 ; WX 722 ; N Uacute ; B 72 -19 651 936 ; +C -1 ; WX 778 ; N Ocircumflex ; B 44 -19 734 936 ; +C -1 ; WX 584 ; N logicalnot ; B 40 108 544 419 ; +C -1 ; WX 722 ; N Aring ; B 20 0 702 962 ; +C -1 ; WX 278 ; N idieresis ; B -21 0 300 729 ; +C -1 ; WX 278 ; N iacute ; B 69 0 329 750 ; +C -1 ; WX 556 ; N aacute ; B 29 -14 527 750 ; +C -1 ; WX 584 ; N plusminus ; B 40 0 544 506 ; +C -1 ; WX 584 ; N multiply ; B 40 1 545 505 ; +C -1 ; WX 722 ; N Udieresis ; B 72 -19 651 915 ; +C -1 ; WX 584 ; N minus ; B 40 197 544 309 ; +C -1 ; WX 333 ; N onesuperior ; B 26 283 237 710 ; +C -1 ; WX 667 ; N Eacute ; B 76 0 621 936 ; +C -1 ; WX 722 ; N Acircumflex ; B 20 0 702 936 ; +C -1 ; WX 737 ; N copyright ; B -11 -19 749 737 ; +C -1 ; WX 722 ; N Agrave ; B 20 0 702 936 ; +C -1 ; WX 611 ; N odieresis ; B 34 -14 578 729 ; +C -1 ; WX 611 ; N oacute ; B 34 -14 578 750 ; +C -1 ; WX 400 ; N degree ; B 57 426 343 712 ; +C -1 ; WX 278 ; N igrave ; B -50 0 209 750 ; +C -1 ; WX 611 ; N mu ; B 66 -207 545 532 ; +C -1 ; WX 778 ; N Oacute ; B 44 -19 734 936 ; +C -1 ; WX 611 ; N eth ; B 34 -14 578 737 ; +C -1 ; WX 722 ; N Adieresis ; B 20 0 702 915 ; +C -1 ; WX 667 ; N Yacute ; B 15 0 653 936 ; +C -1 ; WX 280 ; N brokenbar ; B 84 -19 196 737 ; +C -1 ; WX 834 ; N onehalf ; B 26 -19 794 710 ; +EndCharMetrics +StartKernData +StartKernPairs 209 + +KPX A y -30 +KPX A w -30 +KPX A v -40 +KPX A u -30 +KPX A Y -110 +KPX A W -60 +KPX A V -80 +KPX A U -50 +KPX A T -90 +KPX A Q -40 +KPX A O -40 +KPX A G -50 +KPX A C -40 + +KPX B U -10 +KPX B A -30 + +KPX D period -30 +KPX D comma -30 +KPX D Y -70 +KPX D W -40 +KPX D V -40 +KPX D A -40 + +KPX F period -100 +KPX F comma -100 +KPX F a -20 +KPX F A -80 + +KPX J u -20 +KPX J period -20 +KPX J comma -20 +KPX J A -20 + +KPX K y -40 +KPX K u -30 +KPX K o -35 +KPX K e -15 +KPX K O -30 + +KPX L y -30 +KPX L quoteright -140 +KPX L quotedblright -140 +KPX L Y -120 +KPX L W -80 +KPX L V -110 +KPX L T -90 + +KPX O period -40 +KPX O comma -40 +KPX O Y -70 +KPX O X -50 +KPX O W -50 +KPX O V -50 +KPX O T -40 +KPX O A -50 + +KPX P period -120 +KPX P o -40 +KPX P e -30 +KPX P comma -120 +KPX P a -30 +KPX P A -100 + +KPX Q period 20 +KPX Q comma 20 +KPX Q U -10 + +KPX R Y -50 +KPX R W -40 +KPX R V -50 +KPX R U -20 +KPX R T -20 +KPX R O -20 + +KPX T y -60 +KPX T w -60 +KPX T u -90 +KPX T semicolon -40 +KPX T r -80 +KPX T period -80 +KPX T o -80 +KPX T hyphen -120 +KPX T e -60 +KPX T comma -80 +KPX T colon -40 +KPX T a -80 +KPX T O -40 +KPX T A -90 + +KPX U period -30 +KPX U comma -30 +KPX U A -50 + +KPX V u -60 +KPX V semicolon -40 +KPX V period -120 +KPX V o -90 +KPX V hyphen -80 +KPX V e -50 +KPX V comma -120 +KPX V colon -40 +KPX V a -60 +KPX V O -50 +KPX V G -50 +KPX V A -80 + +KPX W y -20 +KPX W u -45 +KPX W semicolon -10 +KPX W period -80 +KPX W o -60 +KPX W hyphen -40 +KPX W e -35 +KPX W comma -80 +KPX W colon -10 +KPX W a -40 +KPX W O -20 +KPX W A -60 + +KPX Y u -100 +KPX Y semicolon -50 +KPX Y period -100 +KPX Y o -100 +KPX Y e -80 +KPX Y comma -100 +KPX Y colon -50 +KPX Y a -90 +KPX Y O -70 +KPX Y A -110 + +KPX a y -20 +KPX a w -15 +KPX a v -15 +KPX a g -10 + +KPX b y -20 +KPX b v -20 +KPX b u -20 +KPX b l -10 + +KPX c y -10 +KPX c l -20 +KPX c k -20 +KPX c h -10 + +KPX colon space -40 + +KPX comma space -40 +KPX comma quoteright -120 +KPX comma quotedblright -120 + +KPX d y -15 +KPX d w -15 +KPX d v -15 +KPX d d -10 + +KPX e y -15 +KPX e x -15 +KPX e w -15 +KPX e v -15 +KPX e period 20 +KPX e comma 10 + +KPX f quoteright 30 +KPX f quotedblright 30 +KPX f period -10 +KPX f o -20 +KPX f e -10 +KPX f comma -10 + +KPX g g -10 +KPX g e 10 + +KPX h y -20 + +KPX k o -15 + +KPX l y -15 +KPX l w -15 + +KPX m y -30 +KPX m u -20 + +KPX n y -20 +KPX n v -40 +KPX n u -10 + +KPX o y -20 +KPX o x -30 +KPX o w -15 +KPX o v -20 + +KPX p y -15 + +KPX period space -40 +KPX period quoteright -120 +KPX period quotedblright -120 + +KPX quotedblright space -80 + +KPX quoteleft quoteleft -46 + +KPX quoteright v -20 +KPX quoteright space -80 +KPX quoteright s -60 +KPX quoteright r -40 +KPX quoteright quoteright -46 +KPX quoteright l -20 +KPX quoteright d -80 + +KPX r y 10 +KPX r v 10 +KPX r t 20 +KPX r s -15 +KPX r q -20 +KPX r period -60 +KPX r o -20 +KPX r hyphen -20 +KPX r g -15 +KPX r d -20 +KPX r comma -60 +KPX r c -20 + +KPX s w -15 + +KPX semicolon space -40 + +KPX space quoteleft -60 +KPX space quotedblleft -80 +KPX space Y -120 +KPX space W -80 +KPX space V -80 +KPX space T -100 + +KPX v period -80 +KPX v o -30 +KPX v comma -80 +KPX v a -20 + +KPX w period -40 +KPX w o -20 +KPX w comma -40 + +KPX x e -10 + +KPX y period -80 +KPX y o -25 +KPX y e -10 +KPX y comma -80 +KPX y a -30 + +KPX z e 10 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 195 186 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 195 186 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 195 186 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 195 186 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 195 186 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 195 186 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 215 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 167 186 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 167 186 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 167 186 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 167 186 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute -27 186 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -27 186 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -27 186 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -27 186 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 195 186 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 223 186 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 223 186 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 223 186 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 223 186 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 223 186 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 167 186 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 195 186 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 195 186 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 195 186 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 195 186 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 167 186 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 167 186 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 186 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 112 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 112 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 112 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 112 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 112 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 112 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 132 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 112 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 112 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 112 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 112 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -27 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 139 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 139 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 139 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 139 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 139 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 139 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 112 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 139 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 139 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 139 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 139 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 112 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 112 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 84 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Bd+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Bd+ new file mode 100755 index 0000000000000..1641465e664f4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Bd+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 722 ; N Ccaron ; B 44 -19 684 930 ; +C -1 ; WX 556 ; N ccaron ; B 34 -14 524 750 ; +C -1 ; WX 722 ; N Dcaron ; B 76 0 685 930 ; +C -1 ; WX 709 ; N dcaron ; B 34 -14 705 790 ; +C -1 ; WX 667 ; N Ecaron ; B 76 0 621 930 ; +C -1 ; WX 556 ; N ecaron ; B 23 -14 528 750 ; +C -1 ; WX 611 ; N Lcaron ; B 76 0 583 790 ; +C -1 ; WX 611 ; N Lacute ; B 76 0 583 930 ; +C -1 ; WX 376 ; N lcaron ; B 69 0 363 790 ; +C -1 ; WX 278 ; N lacute ; B 69 0 354 930 ; +C -1 ; WX 722 ; N Ncaron ; B 69 0 654 930 ; +C -1 ; WX 611 ; N ncaron ; B 65 0 546 750 ; +C -1 ; WX 722 ; N Rcaron ; B 76 0 677 930 ; +C -1 ; WX 722 ; N Racute ; B 76 0 677 930 ; +C -1 ; WX 389 ; N rcaron ; B 18 0 373 750 ; +C -1 ; WX 389 ; N racute ; B 64 0 409 750 ; +C -1 ; WX 611 ; N Tcaron ; B 14 0 598 930 ; +C -1 ; WX 431 ; N tcaron ; B 10 -6 463 718 ; +C -1 ; WX 722 ; N Uring ; B 72 -19 651 930 ; +C -1 ; WX 611 ; N uring ; B 66 -14 545 776 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 258 180 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 136 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 194 180 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 496 72 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 167 180 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 111 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 159 72 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 139 180 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 154 72 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute -2 180 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 194 180 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 139 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 194 180 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 241 180 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 28 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 53 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 139 180 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 254 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 194 154 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 139 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-BdO b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-BdO new file mode 100755 index 0000000000000..b6cff415fd0cf --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-BdO @@ -0,0 +1,570 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu Mar 15 10:44:33 1990 +Comment UniqueID 28371 +Comment VMusage 7614 43068 +FontName Helvetica-BoldOblique +FullName Helvetica Bold Oblique +FamilyName Helvetica +Weight Bold +ItalicAngle -12 +IsFixedPitch false +FontBBox -174 -228 1114 962 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.007 +Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 718 +XHeight 532 +Ascender 718 +Descender -207 +StartCharMetrics 228 +C 32 ; WX 278 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 94 0 397 718 ; +C 34 ; WX 474 ; N quotedbl ; B 193 447 529 718 ; +C 35 ; WX 556 ; N numbersign ; B 60 0 644 698 ; +C 36 ; WX 556 ; N dollar ; B 67 -115 622 775 ; +C 37 ; WX 889 ; N percent ; B 136 -19 901 710 ; +C 38 ; WX 722 ; N ampersand ; B 89 -19 732 718 ; +C 39 ; WX 278 ; N quoteright ; B 167 445 362 718 ; +C 40 ; WX 333 ; N parenleft ; B 76 -208 470 734 ; +C 41 ; WX 333 ; N parenright ; B -25 -208 369 734 ; +C 42 ; WX 389 ; N asterisk ; B 146 387 481 718 ; +C 43 ; WX 584 ; N plus ; B 82 0 610 506 ; +C 44 ; WX 278 ; N comma ; B 28 -168 245 146 ; +C 45 ; WX 333 ; N hyphen ; B 73 215 379 345 ; +C 46 ; WX 278 ; N period ; B 64 0 245 146 ; +C 47 ; WX 278 ; N slash ; B -37 -19 468 737 ; +C 48 ; WX 556 ; N zero ; B 86 -19 617 710 ; +C 49 ; WX 556 ; N one ; B 173 0 529 710 ; +C 50 ; WX 556 ; N two ; B 26 0 619 710 ; +C 51 ; WX 556 ; N three ; B 65 -19 608 710 ; +C 52 ; WX 556 ; N four ; B 60 0 598 710 ; +C 53 ; WX 556 ; N five ; B 64 -19 636 698 ; +C 54 ; WX 556 ; N six ; B 85 -19 619 710 ; +C 55 ; WX 556 ; N seven ; B 125 0 676 698 ; +C 56 ; WX 556 ; N eight ; B 69 -19 616 710 ; +C 57 ; WX 556 ; N nine ; B 78 -19 615 710 ; +C 58 ; WX 333 ; N colon ; B 92 0 351 512 ; +C 59 ; WX 333 ; N semicolon ; B 56 -168 351 512 ; +C 60 ; WX 584 ; N less ; B 82 -8 655 514 ; +C 61 ; WX 584 ; N equal ; B 58 87 633 419 ; +C 62 ; WX 584 ; N greater ; B 36 -8 609 514 ; +C 63 ; WX 611 ; N question ; B 165 0 671 727 ; +C 64 ; WX 975 ; N at ; B 186 -19 954 737 ; +C 65 ; WX 722 ; N A ; B 20 0 702 718 ; +C 66 ; WX 722 ; N B ; B 76 0 764 718 ; +C 67 ; WX 722 ; N C ; B 107 -19 789 737 ; +C 68 ; WX 722 ; N D ; B 76 0 777 718 ; +C 69 ; WX 667 ; N E ; B 76 0 757 718 ; +C 70 ; WX 611 ; N F ; B 76 0 740 718 ; +C 71 ; WX 778 ; N G ; B 108 -19 817 737 ; +C 72 ; WX 722 ; N H ; B 71 0 804 718 ; +C 73 ; WX 278 ; N I ; B 64 0 367 718 ; +C 74 ; WX 556 ; N J ; B 60 -18 637 718 ; +C 75 ; WX 722 ; N K ; B 87 0 858 718 ; +C 76 ; WX 611 ; N L ; B 76 0 611 718 ; +C 77 ; WX 833 ; N M ; B 69 0 918 718 ; +C 78 ; WX 722 ; N N ; B 69 0 807 718 ; +C 79 ; WX 778 ; N O ; B 107 -19 823 737 ; +C 80 ; WX 667 ; N P ; B 76 0 738 718 ; +C 81 ; WX 778 ; N Q ; B 107 -52 823 737 ; +C 82 ; WX 722 ; N R ; B 76 0 778 718 ; +C 83 ; WX 667 ; N S ; B 81 -19 718 737 ; +C 84 ; WX 611 ; N T ; B 140 0 751 718 ; +C 85 ; WX 722 ; N U ; B 116 -19 804 718 ; +C 86 ; WX 667 ; N V ; B 172 0 801 718 ; +C 87 ; WX 944 ; N W ; B 169 0 1082 718 ; +C 88 ; WX 667 ; N X ; B 14 0 791 718 ; +C 89 ; WX 667 ; N Y ; B 168 0 806 718 ; +C 90 ; WX 611 ; N Z ; B 25 0 737 718 ; +C 91 ; WX 333 ; N bracketleft ; B 21 -196 462 722 ; +C 92 ; WX 278 ; N backslash ; B 124 -19 307 737 ; +C 93 ; WX 333 ; N bracketright ; B -18 -196 423 722 ; +C 94 ; WX 584 ; N asciicircum ; B 131 323 591 698 ; +C 95 ; WX 556 ; N underscore ; B -27 -125 540 -75 ; +C 96 ; WX 278 ; N quoteleft ; B 165 454 361 727 ; +C 97 ; WX 556 ; N a ; B 55 -14 583 546 ; +C 98 ; WX 611 ; N b ; B 61 -14 645 718 ; +C 99 ; WX 556 ; N c ; B 79 -14 599 546 ; +C 100 ; WX 611 ; N d ; B 82 -14 704 718 ; +C 101 ; WX 556 ; N e ; B 70 -14 593 546 ; +C 102 ; WX 333 ; N f ; B 87 0 469 727 ; L i fi ; L l fl ; +C 103 ; WX 611 ; N g ; B 38 -217 666 546 ; +C 104 ; WX 611 ; N h ; B 65 0 629 718 ; +C 105 ; WX 278 ; N i ; B 69 0 363 725 ; +C 106 ; WX 278 ; N j ; B -42 -214 363 725 ; +C 107 ; WX 556 ; N k ; B 69 0 670 718 ; +C 108 ; WX 278 ; N l ; B 69 0 362 718 ; +C 109 ; WX 889 ; N m ; B 64 0 909 546 ; +C 110 ; WX 611 ; N n ; B 65 0 629 546 ; +C 111 ; WX 611 ; N o ; B 82 -14 643 546 ; +C 112 ; WX 611 ; N p ; B 18 -207 645 546 ; +C 113 ; WX 611 ; N q ; B 80 -207 665 546 ; +C 114 ; WX 389 ; N r ; B 64 0 489 546 ; +C 115 ; WX 556 ; N s ; B 63 -14 584 546 ; +C 116 ; WX 333 ; N t ; B 100 -6 422 676 ; +C 117 ; WX 611 ; N u ; B 98 -14 658 532 ; +C 118 ; WX 556 ; N v ; B 126 0 656 532 ; +C 119 ; WX 778 ; N w ; B 123 0 882 532 ; +C 120 ; WX 556 ; N x ; B 15 0 648 532 ; +C 121 ; WX 556 ; N y ; B 42 -214 652 532 ; +C 122 ; WX 500 ; N z ; B 20 0 583 532 ; +C 123 ; WX 389 ; N braceleft ; B 94 -196 518 722 ; +C 124 ; WX 280 ; N bar ; B 80 -19 353 737 ; +C 125 ; WX 389 ; N braceright ; B -18 -196 407 722 ; +C 126 ; WX 584 ; N asciitilde ; B 115 163 577 343 ; +C 161 ; WX 333 ; N exclamdown ; B 50 -186 353 532 ; +C 162 ; WX 556 ; N cent ; B 79 -118 599 628 ; +C 163 ; WX 556 ; N sterling ; B 50 -16 635 718 ; +C 164 ; WX 167 ; N fraction ; B -174 -19 487 710 ; +C 165 ; WX 556 ; N yen ; B 60 0 713 698 ; +C 166 ; WX 556 ; N florin ; B -50 -210 669 737 ; +C 167 ; WX 556 ; N section ; B 61 -184 598 727 ; +C 168 ; WX 556 ; N currency ; B 27 76 680 636 ; +C 169 ; WX 238 ; N quotesingle ; B 165 447 321 718 ; +C 170 ; WX 500 ; N quotedblleft ; B 160 454 588 727 ; +C 171 ; WX 556 ; N guillemotleft ; B 135 76 571 484 ; +C 172 ; WX 333 ; N guilsinglleft ; B 130 76 353 484 ; +C 173 ; WX 333 ; N guilsinglright ; B 99 76 322 484 ; +C 174 ; WX 611 ; N fi ; B 87 0 696 727 ; +C 175 ; WX 611 ; N fl ; B 87 0 695 727 ; +C 177 ; WX 556 ; N endash ; B 48 227 627 333 ; +C 178 ; WX 556 ; N dagger ; B 118 -171 626 718 ; +C 179 ; WX 556 ; N daggerdbl ; B 46 -171 628 718 ; +C 180 ; WX 278 ; N periodcentered ; B 110 172 276 334 ; +C 182 ; WX 556 ; N paragraph ; B 98 -191 688 700 ; +C 183 ; WX 350 ; N bullet ; B 83 194 420 524 ; +C 184 ; WX 278 ; N quotesinglbase ; B 41 -146 236 127 ; +C 185 ; WX 500 ; N quotedblbase ; B 36 -146 463 127 ; +C 186 ; WX 500 ; N quotedblright ; B 162 445 589 718 ; +C 187 ; WX 556 ; N guillemotright ; B 104 76 540 484 ; +C 188 ; WX 1000 ; N ellipsis ; B 92 0 939 146 ; +C 189 ; WX 1000 ; N perthousand ; B 76 -19 1038 710 ; +C 191 ; WX 611 ; N questiondown ; B 53 -195 559 532 ; +C 193 ; WX 333 ; N grave ; B 136 604 353 750 ; +C 194 ; WX 333 ; N acute ; B 236 604 515 750 ; +C 195 ; WX 333 ; N circumflex ; B 118 604 471 750 ; +C 196 ; WX 333 ; N tilde ; B 113 610 507 737 ; +C 197 ; WX 333 ; N macron ; B 122 604 483 678 ; +C 198 ; WX 333 ; N breve ; B 156 604 494 750 ; +C 199 ; WX 333 ; N dotaccent ; B 235 614 385 729 ; +C 200 ; WX 333 ; N dieresis ; B 137 614 482 729 ; +C 202 ; WX 333 ; N ring ; B 200 568 420 776 ; +C 203 ; WX 333 ; N cedilla ; B -37 -228 220 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B 137 604 645 750 ; +C 206 ; WX 333 ; N ogonek ; B 41 -228 264 0 ; +C 207 ; WX 333 ; N caron ; B 149 604 502 750 ; +C 208 ; WX 1000 ; N emdash ; B 48 227 1071 333 ; +C 225 ; WX 1000 ; N AE ; B 5 0 1100 718 ; +C 227 ; WX 370 ; N ordfeminine ; B 92 276 465 737 ; +C 232 ; WX 611 ; N Lslash ; B 34 0 611 718 ; +C 233 ; WX 778 ; N Oslash ; B 35 -27 894 745 ; +C 234 ; WX 1000 ; N OE ; B 99 -19 1114 737 ; +C 235 ; WX 365 ; N ordmasculine ; B 92 276 485 737 ; +C 241 ; WX 889 ; N ae ; B 56 -14 923 546 ; +C 245 ; WX 278 ; N dotlessi ; B 69 0 322 532 ; +C 248 ; WX 278 ; N lslash ; B 40 0 407 718 ; +C 249 ; WX 611 ; N oslash ; B 22 -29 701 560 ; +C 250 ; WX 944 ; N oe ; B 82 -14 977 546 ; +C 251 ; WX 611 ; N germandbls ; B 69 -14 657 731 ; +C -1 ; WX 611 ; N Zcaron ; B 25 0 737 936 ; +C -1 ; WX 556 ; N ccedilla ; B 79 -228 599 546 ; +C -1 ; WX 556 ; N ydieresis ; B 42 -214 652 729 ; +C -1 ; WX 556 ; N atilde ; B 55 -14 619 737 ; +C -1 ; WX 278 ; N icircumflex ; B 69 0 444 750 ; +C -1 ; WX 333 ; N threesuperior ; B 91 271 441 710 ; +C -1 ; WX 556 ; N ecircumflex ; B 70 -14 593 750 ; +C -1 ; WX 611 ; N thorn ; B 18 -208 645 718 ; +C -1 ; WX 556 ; N egrave ; B 70 -14 593 750 ; +C -1 ; WX 333 ; N twosuperior ; B 69 283 449 710 ; +C -1 ; WX 556 ; N eacute ; B 70 -14 627 750 ; +C -1 ; WX 611 ; N otilde ; B 82 -14 646 737 ; +C -1 ; WX 722 ; N Aacute ; B 20 0 750 936 ; +C -1 ; WX 611 ; N ocircumflex ; B 82 -14 643 750 ; +C -1 ; WX 556 ; N yacute ; B 42 -214 652 750 ; +C -1 ; WX 611 ; N udieresis ; B 98 -14 658 729 ; +C -1 ; WX 834 ; N threequarters ; B 99 -19 839 710 ; +C -1 ; WX 556 ; N acircumflex ; B 55 -14 583 750 ; +C -1 ; WX 722 ; N Eth ; B 62 0 777 718 ; +C -1 ; WX 556 ; N edieresis ; B 70 -14 594 729 ; +C -1 ; WX 611 ; N ugrave ; B 98 -14 658 750 ; +C -1 ; WX 1000 ; N trademark ; B 179 306 1109 718 ; +C -1 ; WX 611 ; N ograve ; B 82 -14 643 750 ; +C -1 ; WX 556 ; N scaron ; B 63 -14 614 750 ; +C -1 ; WX 278 ; N Idieresis ; B 64 0 494 915 ; +C -1 ; WX 611 ; N uacute ; B 98 -14 658 750 ; +C -1 ; WX 556 ; N agrave ; B 55 -14 583 750 ; +C -1 ; WX 611 ; N ntilde ; B 65 0 646 737 ; +C -1 ; WX 556 ; N aring ; B 55 -14 583 776 ; +C -1 ; WX 500 ; N zcaron ; B 20 0 586 750 ; +C -1 ; WX 278 ; N Icircumflex ; B 64 0 484 936 ; +C -1 ; WX 722 ; N Ntilde ; B 69 0 807 923 ; +C -1 ; WX 611 ; N ucircumflex ; B 98 -14 658 750 ; +C -1 ; WX 667 ; N Ecircumflex ; B 76 0 757 936 ; +C -1 ; WX 278 ; N Iacute ; B 64 0 528 936 ; +C -1 ; WX 722 ; N Ccedilla ; B 107 -228 789 737 ; +C -1 ; WX 778 ; N Odieresis ; B 107 -19 823 915 ; +C -1 ; WX 667 ; N Scaron ; B 81 -19 718 936 ; +C -1 ; WX 667 ; N Edieresis ; B 76 0 757 915 ; +C -1 ; WX 278 ; N Igrave ; B 64 0 367 936 ; +C -1 ; WX 556 ; N adieresis ; B 55 -14 594 729 ; +C -1 ; WX 778 ; N Ograve ; B 107 -19 823 936 ; +C -1 ; WX 667 ; N Egrave ; B 76 0 757 936 ; +C -1 ; WX 667 ; N Ydieresis ; B 168 0 806 915 ; +C -1 ; WX 737 ; N registered ; B 55 -19 834 737 ; +C -1 ; WX 778 ; N Otilde ; B 107 -19 823 923 ; +C -1 ; WX 834 ; N onequarter ; B 132 -19 806 710 ; +C -1 ; WX 722 ; N Ugrave ; B 116 -19 804 936 ; +C -1 ; WX 722 ; N Ucircumflex ; B 116 -19 804 936 ; +C -1 ; WX 667 ; N Thorn ; B 76 0 716 718 ; +C -1 ; WX 584 ; N divide ; B 82 -42 610 548 ; +C -1 ; WX 722 ; N Atilde ; B 20 0 741 923 ; +C -1 ; WX 722 ; N Uacute ; B 116 -19 804 936 ; +C -1 ; WX 778 ; N Ocircumflex ; B 107 -19 823 936 ; +C -1 ; WX 584 ; N logicalnot ; B 105 108 633 419 ; +C -1 ; WX 722 ; N Aring ; B 20 0 702 962 ; +C -1 ; WX 278 ; N idieresis ; B 69 0 455 729 ; +C -1 ; WX 278 ; N iacute ; B 69 0 488 750 ; +C -1 ; WX 556 ; N aacute ; B 55 -14 627 750 ; +C -1 ; WX 584 ; N plusminus ; B 40 0 625 506 ; +C -1 ; WX 584 ; N multiply ; B 57 1 635 505 ; +C -1 ; WX 722 ; N Udieresis ; B 116 -19 804 915 ; +C -1 ; WX 584 ; N minus ; B 82 197 610 309 ; +C -1 ; WX 333 ; N onesuperior ; B 148 283 388 710 ; +C -1 ; WX 667 ; N Eacute ; B 76 0 757 936 ; +C -1 ; WX 722 ; N Acircumflex ; B 20 0 706 936 ; +C -1 ; WX 737 ; N copyright ; B 56 -19 835 737 ; +C -1 ; WX 722 ; N Agrave ; B 20 0 702 936 ; +C -1 ; WX 611 ; N odieresis ; B 82 -14 643 729 ; +C -1 ; WX 611 ; N oacute ; B 82 -14 654 750 ; +C -1 ; WX 400 ; N degree ; B 175 426 467 712 ; +C -1 ; WX 278 ; N igrave ; B 69 0 326 750 ; +C -1 ; WX 611 ; N mu ; B 22 -207 658 532 ; +C -1 ; WX 778 ; N Oacute ; B 107 -19 823 936 ; +C -1 ; WX 611 ; N eth ; B 82 -14 670 737 ; +C -1 ; WX 722 ; N Adieresis ; B 20 0 716 915 ; +C -1 ; WX 667 ; N Yacute ; B 168 0 806 936 ; +C -1 ; WX 280 ; N brokenbar ; B 80 -19 353 737 ; +C -1 ; WX 834 ; N onehalf ; B 132 -19 858 710 ; +EndCharMetrics +StartKernData +StartKernPairs 209 + +KPX A y -30 +KPX A w -30 +KPX A v -40 +KPX A u -30 +KPX A Y -110 +KPX A W -60 +KPX A V -80 +KPX A U -50 +KPX A T -90 +KPX A Q -40 +KPX A O -40 +KPX A G -50 +KPX A C -40 + +KPX B U -10 +KPX B A -30 + +KPX D period -30 +KPX D comma -30 +KPX D Y -70 +KPX D W -40 +KPX D V -40 +KPX D A -40 + +KPX F period -100 +KPX F comma -100 +KPX F a -20 +KPX F A -80 + +KPX J u -20 +KPX J period -20 +KPX J comma -20 +KPX J A -20 + +KPX K y -40 +KPX K u -30 +KPX K o -35 +KPX K e -15 +KPX K O -30 + +KPX L y -30 +KPX L quoteright -140 +KPX L quotedblright -140 +KPX L Y -120 +KPX L W -80 +KPX L V -110 +KPX L T -90 + +KPX O period -40 +KPX O comma -40 +KPX O Y -70 +KPX O X -50 +KPX O W -50 +KPX O V -50 +KPX O T -40 +KPX O A -50 + +KPX P period -120 +KPX P o -40 +KPX P e -30 +KPX P comma -120 +KPX P a -30 +KPX P A -100 + +KPX Q period 20 +KPX Q comma 20 +KPX Q U -10 + +KPX R Y -50 +KPX R W -40 +KPX R V -50 +KPX R U -20 +KPX R T -20 +KPX R O -20 + +KPX T y -60 +KPX T w -60 +KPX T u -90 +KPX T semicolon -40 +KPX T r -80 +KPX T period -80 +KPX T o -80 +KPX T hyphen -120 +KPX T e -60 +KPX T comma -80 +KPX T colon -40 +KPX T a -80 +KPX T O -40 +KPX T A -90 + +KPX U period -30 +KPX U comma -30 +KPX U A -50 + +KPX V u -60 +KPX V semicolon -40 +KPX V period -120 +KPX V o -90 +KPX V hyphen -80 +KPX V e -50 +KPX V comma -120 +KPX V colon -40 +KPX V a -60 +KPX V O -50 +KPX V G -50 +KPX V A -80 + +KPX W y -20 +KPX W u -45 +KPX W semicolon -10 +KPX W period -80 +KPX W o -60 +KPX W hyphen -40 +KPX W e -35 +KPX W comma -80 +KPX W colon -10 +KPX W a -40 +KPX W O -20 +KPX W A -60 + +KPX Y u -100 +KPX Y semicolon -50 +KPX Y period -100 +KPX Y o -100 +KPX Y e -80 +KPX Y comma -100 +KPX Y colon -50 +KPX Y a -90 +KPX Y O -70 +KPX Y A -110 + +KPX a y -20 +KPX a w -15 +KPX a v -15 +KPX a g -10 + +KPX b y -20 +KPX b v -20 +KPX b u -20 +KPX b l -10 + +KPX c y -10 +KPX c l -20 +KPX c k -20 +KPX c h -10 + +KPX colon space -40 + +KPX comma space -40 +KPX comma quoteright -120 +KPX comma quotedblright -120 + +KPX d y -15 +KPX d w -15 +KPX d v -15 +KPX d d -10 + +KPX e y -15 +KPX e x -15 +KPX e w -15 +KPX e v -15 +KPX e period 20 +KPX e comma 10 + +KPX f quoteright 30 +KPX f quotedblright 30 +KPX f period -10 +KPX f o -20 +KPX f e -10 +KPX f comma -10 + +KPX g g -10 +KPX g e 10 + +KPX h y -20 + +KPX k o -15 + +KPX l y -15 +KPX l w -15 + +KPX m y -30 +KPX m u -20 + +KPX n y -20 +KPX n v -40 +KPX n u -10 + +KPX o y -20 +KPX o x -30 +KPX o w -15 +KPX o v -20 + +KPX p y -15 + +KPX period space -40 +KPX period quoteright -120 +KPX period quotedblright -120 + +KPX quotedblright space -80 + +KPX quoteleft quoteleft -46 + +KPX quoteright v -20 +KPX quoteright space -80 +KPX quoteright s -60 +KPX quoteright r -40 +KPX quoteright quoteright -46 +KPX quoteright l -20 +KPX quoteright d -80 + +KPX r y 10 +KPX r v 10 +KPX r t 20 +KPX r s -15 +KPX r q -20 +KPX r period -60 +KPX r o -20 +KPX r hyphen -20 +KPX r g -15 +KPX r d -20 +KPX r comma -60 +KPX r c -20 + +KPX s w -15 + +KPX semicolon space -40 + +KPX space quoteleft -60 +KPX space quotedblleft -80 +KPX space Y -120 +KPX space W -80 +KPX space V -80 +KPX space T -100 + +KPX v period -80 +KPX v o -30 +KPX v comma -80 +KPX v a -20 + +KPX w period -40 +KPX w o -20 +KPX w comma -40 + +KPX x e -10 + +KPX y period -80 +KPX y o -25 +KPX y e -10 +KPX y comma -80 +KPX y a -30 + +KPX z e 10 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 235 186 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 235 186 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 235 186 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 235 186 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 235 186 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 235 186 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 215 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 207 186 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 207 186 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 207 186 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 207 186 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 13 186 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 13 186 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 13 186 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 13 186 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 235 186 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 263 186 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 263 186 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 263 186 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 263 186 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 263 186 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 207 186 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 235 186 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 235 186 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 235 186 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 235 186 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 207 186 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 207 186 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 179 186 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 112 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 112 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 112 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 112 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 112 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 112 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 132 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 112 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 112 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 112 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 112 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -27 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 139 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 139 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 139 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 139 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 139 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 139 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 112 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 139 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 139 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 139 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 139 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 112 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 112 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 84 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-BdO+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-BdO+ new file mode 100755 index 0000000000000..10e94dcb510f2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-BdO+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 722 ; N Ccaron ; B 107 -19 802 930 ; +C -1 ; WX 556 ; N ccaron ; B 79 -14 639 750 ; +C -1 ; WX 722 ; N Dcaron ; B 76 0 777 930 ; +C -1 ; WX 748 ; N dcaron ; B 82 -14 919 790 ; +C -1 ; WX 667 ; N Ecaron ; B 76 0 757 930 ; +C -1 ; WX 556 ; N ecaron ; B 70 -14 613 750 ; +C -1 ; WX 611 ; N Lcaron ; B 76 0 611 790 ; +C -1 ; WX 611 ; N Lacute ; B 76 0 692 930 ; +C -1 ; WX 415 ; N lcaron ; B 69 0 577 790 ; +C -1 ; WX 278 ; N lacute ; B 69 0 554 930 ; +C -1 ; WX 722 ; N Ncaron ; B 69 0 807 930 ; +C -1 ; WX 611 ; N ncaron ; B 65 0 641 750 ; +C -1 ; WX 722 ; N Rcaron ; B 76 0 778 930 ; +C -1 ; WX 722 ; N Racute ; B 76 0 800 930 ; +C -1 ; WX 389 ; N rcaron ; B 64 0 530 750 ; +C -1 ; WX 389 ; N racute ; B 64 0 571 750 ; +C -1 ; WX 611 ; N Tcaron ; B 140 0 751 930 ; +C -1 ; WX 470 ; N tcaron ; B 100 -6 637 718 ; +C -1 ; WX 722 ; N Uring ; B 116 -19 804 930 ; +C -1 ; WX 611 ; N uring ; B 98 -14 658 776 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 300 180 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 137 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 232 180 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 557 72 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 205 180 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 111 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 220 72 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 177 180 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 215 72 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 39 180 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 232 180 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 139 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 232 180 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 285 180 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 28 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 56 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 177 180 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 275 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 226 154 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 139 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Bl b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Bl new file mode 100755 index 0000000000000..c28daaf393aff --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Bl @@ -0,0 +1,445 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1984 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date:Thu Feb 12 17:25:06 PST 1987 +FontName Helvetica-Black +EncodingScheme AdobeStandardEncoding +FullName Helvetica Black +FamilyName Helvetica +Weight Black +ItalicAngle 0.0 +IsFixedPitch false +UnderlinePosition -90 +UnderlineThickness 58 +Version 001.001 +Notice Helvetica is a trademark of Allied Corporation. +FontBBox -167 -232 1007 1013 +CapHeight 720 +XHeight 524 +Descender -178 +Ascender 720 +StartCharMetrics 228 +C 32 ; WX 333 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 60 0 273 720 ; +C 34 ; WX 500 ; N quotedbl ; B 99 449 401 720 ; +C 35 ; WX 660 ; N numbersign ; B 84 0 576 705 ; +C 36 ; WX 667 ; N dollar ; B 23 -112 636 777 ; +C 37 ; WX 1000 ; N percent ; B 6 -31 993 747 ; +C 38 ; WX 889 ; N ampersand ; B 45 -19 844 720 ; +C 39 ; WX 278 ; N quoteright ; B 42 359 225 720 ; +C 40 ; WX 389 ; N parenleft ; B 47 -178 334 720 ; +C 41 ; WX 389 ; N parenright ; B 55 -178 342 720 ; +C 42 ; WX 556 ; N asterisk ; B 54 295 502 720 ; +C 43 ; WX 660 ; N plus ; B 78 0 582 505 ; +C 44 ; WX 333 ; N comma ; B 58 -176 270 206 ; +C 45 ; WX 333 ; N hyphen ; B 32 165 300 347 ; +C 46 ; WX 333 ; N period ; B 60 0 272 206 ; +C 47 ; WX 278 ; N slash ; B -32 -90 310 720 ; +C 48 ; WX 667 ; N zero ; B 28 -15 639 715 ; +C 49 ; WX 667 ; N one ; B 98 0 469 715 ; +C 50 ; WX 667 ; N two ; B 56 0 651 715 ; +C 51 ; WX 667 ; N three ; B 35 -15 632 715 ; +C 52 ; WX 667 ; N four ; B 25 0 636 705 ; +C 53 ; WX 667 ; N five ; B 23 -15 633 705 ; +C 54 ; WX 667 ; N six ; B 27 -15 640 715 ; +C 55 ; WX 667 ; N seven ; B 56 0 623 705 ; +C 56 ; WX 667 ; N eight ; B 29 -15 637 715 ; +C 57 ; WX 667 ; N nine ; B 25 -15 638 715 ; +C 58 ; WX 333 ; N colon ; B 60 0 272 524 ; +C 59 ; WX 333 ; N semicolon ; B 58 -176 270 524 ; +C 60 ; WX 660 ; N less ; B 75 -20 584 532 ; +C 61 ; WX 660 ; N equal ; B 78 100 582 412 ; +C 62 ; WX 660 ; N greater ; B 74 -20 583 532 ; +C 63 ; WX 611 ; N question ; B 27 0 581 739 ; +C 64 ; WX 740 ; N at ; B 5 -19 734 739 ; +C 65 ; WX 778 ; N A ; B 11 0 767 720 ; +C 66 ; WX 778 ; N B ; B 72 0 733 720 ; +C 67 ; WX 778 ; N C ; B 22 -19 748 739 ; +C 68 ; WX 778 ; N D ; B 65 0 757 720 ; +C 69 ; WX 722 ; N E ; B 76 0 677 720 ; +C 70 ; WX 667 ; N F ; B 74 0 634 720 ; +C 71 ; WX 833 ; N G ; B 39 -19 766 739 ; +C 72 ; WX 833 ; N H ; B 69 0 764 720 ; +C 73 ; WX 389 ; N I ; B 76 0 312 720 ; +C 74 ; WX 667 ; N J ; B 25 -19 595 720 ; +C 75 ; WX 833 ; N K ; B 75 0 823 720 ; +C 76 ; WX 667 ; N L ; B 76 0 636 720 ; +C 77 ; WX 944 ; N M ; B 60 0 884 720 ; +C 78 ; WX 833 ; N N ; B 69 0 764 720 ; +C 79 ; WX 833 ; N O ; B 39 -19 794 739 ; +C 80 ; WX 722 ; N P ; B 57 0 711 720 ; +C 81 ; WX 833 ; N Q ; B 39 -81 794 739 ; +C 82 ; WX 778 ; N R ; B 61 0 746 720 ; +C 83 ; WX 722 ; N S ; B 33 -19 689 739 ; +C 84 ; WX 722 ; N T ; B 31 0 691 720 ; +C 85 ; WX 833 ; N U ; B 70 -19 763 720 ; +C 86 ; WX 778 ; N V ; B 22 0 755 720 ; +C 87 ; WX 1000 ; N W ; B 5 0 994 720 ; +C 88 ; WX 778 ; N X ; B 8 0 770 720 ; +C 89 ; WX 778 ; N Y ; B 3 0 775 720 ; +C 90 ; WX 722 ; N Z ; B 36 0 685 720 ; +C 91 ; WX 389 ; N bracketleft ; B 44 -178 356 720 ; +C 92 ; WX 278 ; N backslash ; B -107 0 385 720 ; +C 93 ; WX 389 ; N bracketright ; B 33 -178 345 720 ; +C 94 ; WX 660 ; N asciicircum ; B 90 291 570 715 ; +C 95 ; WX 500 ; N underscore ; B 0 -119 500 -61 ; +C 96 ; WX 278 ; N quoteleft ; B 53 378 236 739 ; +C 97 ; WX 667 ; N a ; B 25 -15 634 539 ; +C 98 ; WX 667 ; N b ; B 48 -15 635 720 ; +C 99 ; WX 667 ; N c ; B 32 -15 622 539 ; +C 100 ; WX 667 ; N d ; B 33 -15 619 720 ; +C 101 ; WX 667 ; N e ; B 31 -15 636 539 ; +C 102 ; WX 389 ; N f ; B 9 0 373 739 ; L i fi ; L l fl ; +C 103 ; WX 667 ; N g ; B 34 -178 610 539 ; +C 104 ; WX 667 ; N h ; B 48 0 618 720 ; +C 105 ; WX 333 ; N i ; B 62 0 270 739 ; +C 106 ; WX 333 ; N j ; B -20 -178 282 739 ; +C 107 ; WX 667 ; N k ; B 53 0 662 720 ; +C 108 ; WX 333 ; N l ; B 62 0 270 720 ; +C 109 ; WX 1000 ; N m ; B 45 0 955 539 ; +C 110 ; WX 667 ; N n ; B 48 0 618 539 ; +C 111 ; WX 667 ; N o ; B 35 -15 631 539 ; +C 112 ; WX 667 ; N p ; B 44 -178 631 539 ; +C 113 ; WX 667 ; N q ; B 27 -178 616 539 ; +C 114 ; WX 444 ; N r ; B 52 0 431 538 ; +C 115 ; WX 611 ; N s ; B 33 -15 578 539 ; +C 116 ; WX 444 ; N t ; B 14 -4 396 687 ; +C 117 ; WX 667 ; N u ; B 48 -15 618 524 ; +C 118 ; WX 611 ; N v ; B 10 0 601 524 ; +C 119 ; WX 944 ; N w ; B 21 0 923 524 ; +C 120 ; WX 667 ; N x ; B 27 0 639 524 ; +C 121 ; WX 611 ; N y ; B 6 -178 598 524 ; +C 122 ; WX 556 ; N z ; B 26 0 530 524 ; +C 123 ; WX 389 ; N braceleft ; B 25 -181 367 741 ; +C 124 ; WX 278 ; N bar ; B 79 0 198 739 ; +C 125 ; WX 389 ; N braceright ; B 22 -180 364 742 ; +C 126 ; WX 660 ; N asciitilde ; B 78 153 582 359 ; +C 161 ; WX 333 ; N exclamdown ; B 60 -193 273 524 ; +C 162 ; WX 667 ; N cent ; B 35 -147 628 655 ; +C 163 ; WX 667 ; N sterling ; B 33 -12 644 727 ; +C 164 ; WX 167 ; N fraction ; B -167 -15 334 715 ; +C 165 ; WX 667 ; N yen ; B -1 0 668 720 ; +C 166 ; WX 667 ; N florin ; B 48 -184 622 747 ; +C 167 ; WX 667 ; N section ; B 73 -171 593 739 ; +C 168 ; WX 660 ; N currency ; B 76 58 583 563 ; +C 169 ; WX 278 ; N quotesingle ; B 79 449 198 720 ; +C 170 ; WX 500 ; N quotedblleft ; B 41 378 471 739 ; +C 171 ; WX 667 ; N guillemotleft ; B 120 64 547 448 ; +C 172 ; WX 333 ; N guilsinglleft ; B 75 64 258 448 ; +C 173 ; WX 333 ; N guilsinglright ; B 75 64 258 448 ; +C 174 ; WX 667 ; N fi ; B 9 0 622 739 ; +C 175 ; WX 667 ; N fl ; B 9 0 622 739 ; +C 177 ; WX 500 ; N endash ; B 0 187 500 325 ; +C 178 ; WX 667 ; N dagger ; B 82 -178 584 720 ; +C 179 ; WX 667 ; N daggerdbl ; B 82 -178 584 720 ; +C 180 ; WX 333 ; N periodcentered ; B 36 126 296 386 ; +C 182 ; WX 850 ; N paragraph ; B 54 -178 707 720 ; +C 183 ; WX 500 ; N bullet ; B 81 192 418 529 ; +C 184 ; WX 278 ; N quotesinglbase ; B 42 -178 225 183 ; +C 185 ; WX 500 ; N quotedblbase ; B 29 -178 459 183 ; +C 186 ; WX 500 ; N quotedblright ; B 29 359 459 720 ; +C 187 ; WX 667 ; N guillemotright ; B 120 64 547 448 ; +C 188 ; WX 1000 ; N ellipsis ; B 61 0 939 206 ; +C 189 ; WX 1000 ; N perthousand ; B -7 -32 1007 751 ; +C 191 ; WX 611 ; N questiondown ; B 30 -216 584 524 ; +C 193 ; WX 333 ; N grave ; B -36 591 272 739 ; +C 194 ; WX 333 ; N acute ; B 66 591 375 739 ; +C 195 ; WX 333 ; N circumflex ; B -34 591 373 739 ; +C 196 ; WX 333 ; N tilde ; B -27 590 365 731 ; +C 197 ; WX 333 ; N macron ; B -19 619 358 709 ; +C 198 ; WX 333 ; N breve ; B -12 590 351 743 ; +C 199 ; WX 333 ; N dotaccent ; B 82 596 251 726 ; +C 200 ; WX 333 ; N dieresis ; B -29 596 368 726 ; +C 202 ; WX 333 ; N ring ; B 54 593 279 817 ; +C 203 ; WX 333 ; N cedilla ; B 28 -232 287 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B 66 591 627 739 ; +C 206 ; WX 333 ; N ogonek ; B 73 -205 278 0 ; +C 207 ; WX 333 ; N caron ; B -34 591 373 739 ; +C 208 ; WX 1000 ; N emdash ; B 0 187 1000 325 ; +C 225 ; WX 1000 ; N AE ; B 3 0 981 720 ; +C 227 ; WX 400 ; N ordfeminine ; B 2 262 398 739 ; +C 232 ; WX 667 ; N Lslash ; B -20 0 627 720 ; +C 233 ; WX 833 ; N Oslash ; B 39 -76 794 784 ; +C 234 ; WX 1000 ; N OE ; B 6 -19 981 739 ; +C 235 ; WX 400 ; N ordmasculine ; B 6 262 394 739 ; +C 241 ; WX 1000 ; N ae ; B 38 -15 957 539 ; +C 245 ; WX 333 ; N dotlessi ; B 62 0 270 524 ; +C 248 ; WX 333 ; N lslash ; B -1 0 333 720 ; +C 249 ; WX 667 ; N oslash ; B 35 -72 631 581 ; +C 250 ; WX 1000 ; N oe ; B 35 -15 961 539 ; +C 251 ; WX 667 ; N germandbls ; B 48 -15 627 739 ; +C -1 ; WX 778 ; N Aacute ; B 11 0 767 935 ; +C -1 ; WX 778 ; N Acircumflex ; B 11 0 767 935 ; +C -1 ; WX 778 ; N Adieresis ; B 11 0 767 922 ; +C -1 ; WX 778 ; N Agrave ; B 11 0 767 935 ; +C -1 ; WX 778 ; N Aring ; B 11 0 767 1013 ; +C -1 ; WX 778 ; N Atilde ; B 11 0 767 927 ; +C -1 ; WX 778 ; N Ccedilla ; B 22 -232 748 739 ; +C -1 ; WX 722 ; N Eacute ; B 76 0 677 935 ; +C -1 ; WX 722 ; N Ecircumflex ; B 76 0 677 935 ; +C -1 ; WX 722 ; N Edieresis ; B 76 0 677 922 ; +C -1 ; WX 722 ; N Egrave ; B 76 0 677 935 ; +C -1 ; WX 778 ; N Eth ; B 0 0 757 720 ; +C -1 ; WX 389 ; N Iacute ; B 76 0 403 935 ; +C -1 ; WX 389 ; N Icircumflex ; B -6 0 401 935 ; +C -1 ; WX 389 ; N Idieresis ; B -1 0 396 922 ; +C -1 ; WX 389 ; N Igrave ; B -8 0 312 935 ; +C -1 ; WX 833 ; N Ntilde ; B 69 0 764 927 ; +C -1 ; WX 833 ; N Oacute ; B 39 -19 794 935 ; +C -1 ; WX 833 ; N Ocircumflex ; B 39 -19 794 935 ; +C -1 ; WX 833 ; N Odieresis ; B 39 -19 794 922 ; +C -1 ; WX 833 ; N Ograve ; B 39 -19 794 935 ; +C -1 ; WX 833 ; N Otilde ; B 39 -19 794 927 ; +C -1 ; WX 722 ; N Scaron ; B 33 -19 689 935 ; +C -1 ; WX 722 ; N Thorn ; B 57 0 711 720 ; +C -1 ; WX 833 ; N Uacute ; B 70 -19 763 935 ; +C -1 ; WX 833 ; N Ucircumflex ; B 70 -19 763 935 ; +C -1 ; WX 833 ; N Udieresis ; B 70 -19 763 922 ; +C -1 ; WX 833 ; N Ugrave ; B 70 -19 763 935 ; +C -1 ; WX 778 ; N Yacute ; B 3 0 775 935 ; +C -1 ; WX 778 ; N Ydieresis ; B 3 0 775 922 ; +C -1 ; WX 722 ; N Zcaron ; B 36 0 685 935 ; +C -1 ; WX 667 ; N aacute ; B 25 -15 634 739 ; +C -1 ; WX 667 ; N acircumflex ; B 25 -15 634 739 ; +C -1 ; WX 667 ; N adieresis ; B 25 -15 634 726 ; +C -1 ; WX 667 ; N agrave ; B 25 -15 634 739 ; +C -1 ; WX 667 ; N aring ; B 25 -15 634 817 ; +C -1 ; WX 667 ; N atilde ; B 25 -15 634 731 ; +C -1 ; WX 278 ; N brokenbar ; B 79 0 198 739 ; +C -1 ; WX 667 ; N ccedilla ; B 32 -232 622 539 ; +C -1 ; WX 800 ; N copyright ; B 21 -19 779 739 ; +C -1 ; WX 400 ; N degree ; B 50 415 350 715 ; +C -1 ; WX 660 ; N divide ; B 78 7 582 505 ; +C -1 ; WX 667 ; N eacute ; B 31 -15 636 739 ; +C -1 ; WX 667 ; N ecircumflex ; B 31 -15 636 739 ; +C -1 ; WX 667 ; N edieresis ; B 31 -15 636 726 ; +C -1 ; WX 667 ; N egrave ; B 31 -15 636 739 ; +C -1 ; WX 667 ; N eth ; B 35 -15 631 739 ; +C -1 ; WX 333 ; N iacute ; B 62 0 375 739 ; +C -1 ; WX 333 ; N icircumflex ; B -34 0 373 739 ; +C -1 ; WX 333 ; N idieresis ; B -29 0 368 726 ; +C -1 ; WX 333 ; N igrave ; B -36 0 272 739 ; +C -1 ; WX 660 ; N logicalnot ; B 78 120 582 412 ; +C -1 ; WX 660 ; N minus ; B 78 198 582 314 ; +C -1 ; WX 667 ; N mu ; B 48 -178 618 524 ; +C -1 ; WX 660 ; N multiply ; B 79 3 581 505 ; +C -1 ; WX 667 ; N ntilde ; B 48 0 618 731 ; +C -1 ; WX 667 ; N oacute ; B 35 -15 631 739 ; +C -1 ; WX 667 ; N ocircumflex ; B 35 -15 631 739 ; +C -1 ; WX 667 ; N odieresis ; B 35 -15 631 726 ; +C -1 ; WX 667 ; N ograve ; B 35 -15 631 739 ; +C -1 ; WX 1000 ; N onehalf ; B 40 -15 960 739 ; +C -1 ; WX 1000 ; N onequarter ; B 40 -15 960 739 ; +C -1 ; WX 400 ; N onesuperior ; B 80 310 321 739 ; +C -1 ; WX 667 ; N otilde ; B 35 -15 631 731 ; +C -1 ; WX 660 ; N plusminus ; B 78 0 582 603 ; +C -1 ; WX 800 ; N registered ; B 21 -19 779 739 ; +C -1 ; WX 611 ; N scaron ; B 33 -15 578 739 ; +C -1 ; WX 667 ; N thorn ; B 44 -178 631 739 ; +C -1 ; WX 1000 ; N threequarters ; B 40 -15 960 715 ; +C -1 ; WX 400 ; N threesuperior ; B 6 277 395 715 ; +C -1 ; WX 950 ; N trademark ; B 28 316 886 720 ; +C -1 ; WX 400 ; N twosuperior ; B 7 310 394 739 ; +C -1 ; WX 667 ; N uacute ; B 48 -15 618 739 ; +C -1 ; WX 667 ; N ucircumflex ; B 48 -15 618 739 ; +C -1 ; WX 667 ; N udieresis ; B 48 -15 618 726 ; +C -1 ; WX 667 ; N ugrave ; B 48 -15 618 739 ; +C -1 ; WX 611 ; N yacute ; B 6 -178 598 739 ; +C -1 ; WX 611 ; N ydieresis ; B 6 -178 598 726 ; +C -1 ; WX 556 ; N zcaron ; B 26 0 530 739 ; +EndCharMetrics +StartKernData +StartKernPairs 115 + +KPX A y -18 +KPX A w -18 +KPX A v -18 +KPX A quoteright -74 +KPX A Y -74 +KPX A W -37 +KPX A V -74 +KPX A T -92 + +KPX F period -129 +KPX F comma -129 +KPX F A -55 + +KPX L y -37 +KPX L quoteright -74 +KPX L Y -92 +KPX L W -55 +KPX L V -92 +KPX L T -92 + +KPX P period -129 +KPX P comma -129 +KPX P A -74 + +KPX R y 0 +KPX R Y -37 +KPX R W -18 +KPX R V -18 +KPX R T -18 + +KPX T y -92 +KPX T w -92 +KPX T u -92 +KPX T semicolon -68 +KPX T s -111 +KPX T r -92 +KPX T period -111 +KPX T o -111 +KPX T i 0 +KPX T hyphen -100 +KPX T e -111 +KPX T comma -111 +KPX T colon -68 +KPX T c -111 +KPX T a -111 +KPX T A -74 + +KPX V y -18 +KPX V u -37 +KPX V semicolon -74 +KPX V r -37 +KPX V period -129 +KPX V o -55 +KPX V i -18 +KPX V hyphen -55 +KPX V e -55 +KPX V comma -129 +KPX V colon -74 +KPX V a -55 +KPX V A -74 + +KPX W y 0 +KPX W u -18 +KPX W semicolon -18 +KPX W r -18 +KPX W period -74 +KPX W o -18 +KPX W i 0 +KPX W hyphen 0 +KPX W e -18 +KPX W comma -74 +KPX W colon -18 +KPX W a -37 +KPX W A -37 + +KPX Y v -55 +KPX Y u -74 +KPX Y semicolon -74 +KPX Y q -92 +KPX Y period -111 +KPX Y p -74 +KPX Y o -92 +KPX Y i -20 +KPX Y hyphen -92 +KPX Y e -92 +KPX Y comma -111 +KPX Y colon -74 +KPX Y a -92 +KPX Y A -74 + +KPX f quoteright 24 +KPX f f -18 + +KPX quoteleft quoteleft -18 + +KPX quoteright t -18 +KPX quoteright s -62 +KPX quoteright quoteright -18 + +KPX r z 0 +KPX r y 18 +KPX r x 0 +KPX r w 0 +KPX r v 18 +KPX r u 0 +KPX r t 18 +KPX r r 0 +KPX r quoteright 0 +KPX r q -18 +KPX r period -92 +KPX r o -18 +KPX r n 18 +KPX r m 18 +KPX r hyphen -12 +KPX r h 0 +KPX r g 18 +KPX r f 18 +KPX r e -18 +KPX r d -18 +KPX r comma -92 +KPX r c -18 + +KPX v period -74 +KPX v comma -74 + +KPX w period -55 +KPX w comma -55 + +KPX y period -92 +KPX y comma -92 +EndKernPairs +EndKernData +StartComposites 58 +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 194 196 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 111 0 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 194 196 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 139 0 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 222 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 167 0 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 222 196 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 139 0 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 222 196 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 139 0 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 250 196 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 250 196 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 250 196 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 250 196 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 167 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 167 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 167 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 167 0 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 28 196 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 28 196 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 28 196 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 28 196 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 194 196 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 194 196 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 194 196 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 194 196 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 167 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 167 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 167 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 167 0 ; +CC Aacute 2 ; PCC A 0 0 ; PCC acute 222 196 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 222 196 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 222 196 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 222 196 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 167 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 167 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 167 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 167 0 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 250 196 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 250 196 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 250 196 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 250 196 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 167 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 167 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 167 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 167 0 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 222 196 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 167 0 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 250 196 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 167 0 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 250 196 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 167 0 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 222 196 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 167 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Bl+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Bl+ new file mode 100755 index 0000000000000..ca7ce67eb6780 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Bl+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 778 ; N Ccaron ; B 22 -19 748 934 ; +C -1 ; WX 667 ; N ccaron ; B 32 -15 622 739 ; +C -1 ; WX 778 ; N Dcaron ; B 65 0 757 934 ; +C -1 ; WX 795 ; N dcaron ; B 33 -15 820 792 ; +C -1 ; WX 722 ; N Ecaron ; B 76 0 677 934 ; +C -1 ; WX 667 ; N ecaron ; B 31 -15 636 739 ; +C -1 ; WX 667 ; N Lcaron ; B 76 0 636 792 ; +C -1 ; WX 667 ; N Lacute ; B 76 0 636 934 ; +C -1 ; WX 461 ; N lcaron ; B 62 0 471 792 ; +C -1 ; WX 333 ; N lacute ; B 62 0 406 934 ; +C -1 ; WX 833 ; N Ncaron ; B 69 0 764 934 ; +C -1 ; WX 667 ; N ncaron ; B 48 0 618 739 ; +C -1 ; WX 778 ; N Rcaron ; B 61 0 746 934 ; +C -1 ; WX 778 ; N Racute ; B 61 0 746 934 ; +C -1 ; WX 444 ; N rcaron ; B 21 0 431 739 ; +C -1 ; WX 444 ; N racute ; B 52 0 461 739 ; +C -1 ; WX 722 ; N Tcaron ; B 31 0 691 934 ; +C -1 ; WX 572 ; N tcaron ; B 14 -4 597 720 ; +C -1 ; WX 833 ; N Uring ; B 70 -19 763 934 ; +C -1 ; WX 667 ; N uring ; B 48 -15 618 817 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 295 195 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 197 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 222 195 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 595 72 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 194 195 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 167 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 288 72 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 167 195 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 246 72 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 31 195 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 250 195 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 167 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 222 195 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 281 195 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 55 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 86 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 194 195 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 372 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 250 117 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 167 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-BlO b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-BlO new file mode 100755 index 0000000000000..913d2cc1cab70 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-BlO @@ -0,0 +1,445 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1984 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date:Fri Feb 13 09:53:49 PST 1987 +FontName Helvetica-BlackOblique +EncodingScheme AdobeStandardEncoding +FullName Helvetica.Black Oblique +FamilyName Helvetica +Weight Black +ItalicAngle -10.0 +IsFixedPitch false +UnderlinePosition -90 +UnderlineThickness 58 +Version 001.001 +Notice Helvetica is a trademark of Allied Corporation. +FontBBox -170 -232 1121 1013 +CapHeight 720 +XHeight 524 +Descender -178 +Ascender 720 +StartCharMetrics 228 +C 32 ; WX 333 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 61 0 400 720 ; +C 34 ; WX 500 ; N quotedbl ; B 178 449 528 720 ; +C 35 ; WX 660 ; N numbersign ; B 123 0 663 705 ; +C 36 ; WX 667 ; N dollar ; B 59 -112 718 777 ; +C 37 ; WX 1000 ; N percent ; B 95 -31 1031 747 ; +C 38 ; WX 889 ; N ampersand ; B 74 -19 862 720 ; +C 39 ; WX 278 ; N quoteright ; B 105 359 352 720 ; +C 40 ; WX 389 ; N parenleft ; B 80 -178 461 720 ; +C 41 ; WX 389 ; N parenright ; B 24 -178 405 720 ; +C 42 ; WX 556 ; N asterisk ; B 145 295 595 720 ; +C 43 ; WX 660 ; N plus ; B 113 0 637 505 ; +C 44 ; WX 333 ; N comma ; B 27 -176 306 206 ; +C 45 ; WX 333 ; N hyphen ; B 61 165 361 347 ; +C 46 ; WX 333 ; N period ; B 60 0 308 206 ; +C 47 ; WX 278 ; N slash ; B -48 -90 437 720 ; +C 48 ; WX 667 ; N zero ; B 81 -15 711 715 ; +C 49 ; WX 667 ; N one ; B 170 0 595 715 ; +C 50 ; WX 667 ; N two ; B 56 0 741 715 ; +C 51 ; WX 667 ; N three ; B 72 -15 707 715 ; +C 52 ; WX 667 ; N four ; B 51 0 689 705 ; +C 53 ; WX 667 ; N five ; B 55 -15 700 705 ; +C 54 ; WX 667 ; N six ; B 79 -15 716 715 ; +C 55 ; WX 667 ; N seven ; B 150 0 747 705 ; +C 56 ; WX 667 ; N eight ; B 63 -15 706 715 ; +C 57 ; WX 667 ; N nine ; B 72 -15 709 715 ; +C 58 ; WX 333 ; N colon ; B 60 0 364 524 ; +C 59 ; WX 333 ; N semicolon ; B 27 -176 362 524 ; +C 60 ; WX 660 ; N less ; B 111 -20 678 532 ; +C 61 ; WX 660 ; N equal ; B 96 100 655 412 ; +C 62 ; WX 660 ; N greater ; B 70 -20 637 532 ; +C 63 ; WX 611 ; N question ; B 116 0 678 739 ; +C 64 ; WX 740 ; N at ; B 62 -19 814 739 ; +C 65 ; WX 778 ; N A ; B 11 0 767 720 ; +C 66 ; WX 778 ; N B ; B 72 0 805 720 ; +C 67 ; WX 778 ; N C ; B 78 -19 823 739 ; +C 68 ; WX 778 ; N D ; B 65 0 831 720 ; +C 69 ; WX 722 ; N E ; B 76 0 790 720 ; +C 70 ; WX 667 ; N F ; B 74 0 761 720 ; +C 71 ; WX 833 ; N G ; B 93 -19 840 739 ; +C 72 ; WX 833 ; N H ; B 69 0 891 720 ; +C 73 ; WX 389 ; N I ; B 76 0 439 720 ; +C 74 ; WX 667 ; N J ; B 64 -19 722 720 ; +C 75 ; WX 833 ; N K ; B 75 0 922 720 ; +C 76 ; WX 667 ; N L ; B 76 0 666 720 ; +C 77 ; WX 944 ; N M ; B 60 0 1011 720 ; +C 78 ; WX 833 ; N N ; B 69 0 891 720 ; +C 79 ; WX 833 ; N O ; B 95 -19 865 739 ; +C 80 ; WX 722 ; N P ; B 57 0 800 720 ; +C 81 ; WX 833 ; N Q ; B 95 -81 865 739 ; +C 82 ; WX 778 ; N R ; B 61 0 816 720 ; +C 83 ; WX 722 ; N S ; B 70 -19 759 739 ; +C 84 ; WX 722 ; N T ; B 125 0 818 720 ; +C 85 ; WX 833 ; N U ; B 116 -19 890 720 ; +C 86 ; WX 778 ; N V ; B 149 0 882 720 ; +C 87 ; WX 1000 ; N W ; B 132 0 1121 720 ; +C 88 ; WX 778 ; N X ; B 8 0 895 720 ; +C 89 ; WX 778 ; N Y ; B 130 0 902 720 ; +C 90 ; WX 722 ; N Z ; B 36 0 798 720 ; +C 91 ; WX 389 ; N bracketleft ; B 13 -178 483 720 ; +C 92 ; WX 278 ; N backslash ; B 20 0 385 720 ; +C 93 ; WX 389 ; N bracketright ; B 2 -178 472 720 ; +C 94 ; WX 660 ; N asciicircum ; B 150 291 630 715 ; +C 95 ; WX 500 ; N underscore ; B -21 -119 489 -61 ; +C 96 ; WX 278 ; N quoteleft ; B 120 378 366 739 ; +C 97 ; WX 667 ; N a ; B 47 -15 672 539 ; +C 98 ; WX 667 ; N b ; B 48 -15 688 720 ; +C 99 ; WX 667 ; N c ; B 72 -15 676 539 ; +C 100 ; WX 667 ; N d ; B 72 -15 746 720 ; +C 101 ; WX 667 ; N e ; B 71 -15 682 539 ; +C 102 ; WX 389 ; N f ; B 78 0 503 739 ; L i fi ; L l fl ; +C 103 ; WX 667 ; N g ; B 56 -178 702 539 ; +C 104 ; WX 667 ; N h ; B 48 0 680 720 ; +C 105 ; WX 333 ; N i ; B 62 0 400 739 ; +C 106 ; WX 333 ; N j ; B -51 -178 412 739 ; +C 107 ; WX 667 ; N k ; B 53 0 729 720 ; +C 108 ; WX 333 ; N l ; B 62 0 397 720 ; +C 109 ; WX 1000 ; N m ; B 45 0 1017 539 ; +C 110 ; WX 667 ; N n ; B 48 0 680 539 ; +C 111 ; WX 667 ; N o ; B 75 -15 683 539 ; +C 112 ; WX 667 ; N p ; B 13 -178 684 539 ; +C 113 ; WX 667 ; N q ; B 68 -178 708 539 ; +C 114 ; WX 444 ; N r ; B 52 0 525 538 ; +C 115 ; WX 611 ; N s ; B 61 -15 624 539 ; +C 116 ; WX 444 ; N t ; B 85 -4 488 687 ; +C 117 ; WX 667 ; N u ; B 78 -15 710 524 ; +C 118 ; WX 611 ; N v ; B 102 0 693 524 ; +C 119 ; WX 944 ; N w ; B 113 0 1015 524 ; +C 120 ; WX 667 ; N x ; B 27 0 729 524 ; +C 121 ; WX 611 ; N y ; B 45 -178 690 524 ; +C 122 ; WX 556 ; N z ; B 26 0 611 524 ; +C 123 ; WX 389 ; N braceleft ; B 74 -181 497 741 ; +C 124 ; WX 278 ; N bar ; B 79 0 328 739 ; +C 125 ; WX 389 ; N braceright ; B -9 -180 414 742 ; +C 126 ; WX 660 ; N asciitilde ; B 118 153 632 359 ; +C 161 ; WX 333 ; N exclamdown ; B 26 -193 362 524 ; +C 162 ; WX 667 ; N cent ; B 76 -147 707 655 ; +C 163 ; WX 667 ; N sterling ; B 63 -12 719 727 ; +C 164 ; WX 167 ; N fraction ; B -170 -15 460 715 ; +C 165 ; WX 667 ; N yen ; B 33 0 795 720 ; +C 166 ; WX 667 ; N florin ; B 19 -184 751 747 ; +C 167 ; WX 667 ; N section ; B 106 -171 655 739 ; +C 168 ; WX 660 ; N currency ; B 100 58 668 563 ; +C 169 ; WX 278 ; N quotesingle ; B 158 449 325 720 ; +C 170 ; WX 500 ; N quotedblleft ; B 108 378 601 739 ; +C 171 ; WX 667 ; N guillemotleft ; B 152 64 626 448 ; +C 172 ; WX 333 ; N guilsinglleft ; B 107 64 337 448 ; +C 173 ; WX 333 ; N guilsinglright ; B 86 64 316 448 ; +C 174 ; WX 667 ; N fi ; B 78 0 752 739 ; +C 175 ; WX 667 ; N fl ; B 78 0 749 739 ; +C 177 ; WX 500 ; N endash ; B 33 187 557 325 ; +C 178 ; WX 667 ; N dagger ; B 145 -178 675 720 ; +C 179 ; WX 667 ; N daggerdbl ; B 83 -178 679 720 ; +C 180 ; WX 333 ; N periodcentered ; B 79 126 343 386 ; +C 182 ; WX 850 ; N paragraph ; B 146 -178 834 720 ; +C 183 ; WX 500 ; N bullet ; B 142 192 484 529 ; +C 184 ; WX 278 ; N quotesinglbase ; B 11 -178 257 183 ; +C 185 ; WX 500 ; N quotedblbase ; B -2 -178 491 183 ; +C 186 ; WX 500 ; N quotedblright ; B 92 359 586 720 ; +C 187 ; WX 667 ; N guillemotright ; B 131 64 605 448 ; +C 188 ; WX 1000 ; N ellipsis ; B 61 0 975 206 ; +C 189 ; WX 1000 ; N perthousand ; B 57 -32 1033 751 ; +C 191 ; WX 611 ; N questiondown ; B 25 -216 587 524 ; +C 193 ; WX 333 ; N grave ; B 94 591 376 739 ; +C 194 ; WX 333 ; N acute ; B 170 591 505 739 ; +C 195 ; WX 333 ; N circumflex ; B 70 591 477 739 ; +C 196 ; WX 333 ; N tilde ; B 77 590 494 731 ; +C 197 ; WX 333 ; N macron ; B 90 619 483 709 ; +C 198 ; WX 333 ; N breve ; B 118 590 482 743 ; +C 199 ; WX 333 ; N dotaccent ; B 187 596 379 726 ; +C 200 ; WX 333 ; N dieresis ; B 76 596 496 726 ; +C 202 ; WX 333 ; N ring ; B 177 593 405 817 ; +C 203 ; WX 333 ; N cedilla ; B -8 -232 264 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B 170 591 757 739 ; +C 206 ; WX 333 ; N ogonek ; B 53 -205 260 0 ; +C 207 ; WX 333 ; N caron ; B 96 591 503 739 ; +C 208 ; WX 1000 ; N emdash ; B 33 187 1057 325 ; +C 225 ; WX 1000 ; N AE ; B 3 0 1094 720 ; +C 227 ; WX 400 ; N ordfeminine ; B 58 262 492 739 ; +C 232 ; WX 667 ; N Lslash ; B 27 0 657 720 ; +C 233 ; WX 833 ; N Oslash ; B 79 -76 879 784 ; +C 234 ; WX 1000 ; N OE ; B 59 -19 1095 739 ; +C 235 ; WX 400 ; N ordmasculine ; B 62 262 498 739 ; +C 241 ; WX 1000 ; N ae ; B 61 -15 1005 539 ; +C 245 ; WX 333 ; N dotlessi ; B 62 0 362 524 ; +C 248 ; WX 333 ; N lslash ; B 40 0 432 720 ; +C 249 ; WX 667 ; N oslash ; B 75 -72 683 581 ; +C 250 ; WX 1000 ; N oe ; B 75 -15 1009 539 ; +C 251 ; WX 667 ; N germandbls ; B 48 -15 685 739 ; +C -1 ; WX 778 ; N Aacute ; B 11 0 767 935 ; +C -1 ; WX 778 ; N Acircumflex ; B 11 0 767 935 ; +C -1 ; WX 778 ; N Adieresis ; B 11 0 767 922 ; +C -1 ; WX 778 ; N Agrave ; B 11 0 767 935 ; +C -1 ; WX 778 ; N Aring ; B 11 0 767 1013 ; +C -1 ; WX 778 ; N Atilde ; B 11 0 767 927 ; +C -1 ; WX 778 ; N Ccedilla ; B 78 -232 823 739 ; +C -1 ; WX 722 ; N Eacute ; B 76 0 790 935 ; +C -1 ; WX 722 ; N Ecircumflex ; B 76 0 790 935 ; +C -1 ; WX 722 ; N Edieresis ; B 76 0 790 922 ; +C -1 ; WX 722 ; N Egrave ; B 76 0 790 935 ; +C -1 ; WX 778 ; N Eth ; B 49 0 831 720 ; +C -1 ; WX 389 ; N Iacute ; B 76 0 568 935 ; +C -1 ; WX 389 ; N Icircumflex ; B 76 0 540 935 ; +C -1 ; WX 389 ; N Idieresis ; B 76 0 559 922 ; +C -1 ; WX 389 ; N Igrave ; B 76 0 439 935 ; +C -1 ; WX 833 ; N Ntilde ; B 69 0 891 927 ; +C -1 ; WX 833 ; N Oacute ; B 95 -19 865 935 ; +C -1 ; WX 833 ; N Ocircumflex ; B 95 -19 865 935 ; +C -1 ; WX 833 ; N Odieresis ; B 95 -19 865 922 ; +C -1 ; WX 833 ; N Ograve ; B 95 -19 865 935 ; +C -1 ; WX 833 ; N Otilde ; B 95 -19 865 927 ; +C -1 ; WX 722 ; N Scaron ; B 70 -19 759 935 ; +C -1 ; WX 722 ; N Thorn ; B 57 0 782 720 ; +C -1 ; WX 833 ; N Uacute ; B 116 -19 890 935 ; +C -1 ; WX 833 ; N Ucircumflex ; B 116 -19 890 935 ; +C -1 ; WX 833 ; N Udieresis ; B 116 -19 890 922 ; +C -1 ; WX 833 ; N Ugrave ; B 116 -19 890 935 ; +C -1 ; WX 778 ; N Yacute ; B 130 0 902 935 ; +C -1 ; WX 778 ; N Ydieresis ; B 130 0 902 922 ; +C -1 ; WX 722 ; N Zcaron ; B 36 0 798 935 ; +C -1 ; WX 667 ; N aacute ; B 47 -15 672 739 ; +C -1 ; WX 667 ; N acircumflex ; B 47 -15 672 739 ; +C -1 ; WX 667 ; N adieresis ; B 47 -15 672 726 ; +C -1 ; WX 667 ; N agrave ; B 47 -15 672 739 ; +C -1 ; WX 667 ; N aring ; B 47 -15 672 817 ; +C -1 ; WX 667 ; N atilde ; B 47 -15 672 731 ; +C -1 ; WX 278 ; N brokenbar ; B 79 0 328 739 ; +C -1 ; WX 667 ; N ccedilla ; B 72 -232 676 539 ; +C -1 ; WX 800 ; N copyright ; B 79 -19 848 739 ; +C -1 ; WX 400 ; N degree ; B 147 415 452 715 ; +C -1 ; WX 660 ; N divide ; B 113 7 637 505 ; +C -1 ; WX 667 ; N eacute ; B 71 -15 682 739 ; +C -1 ; WX 667 ; N ecircumflex ; B 71 -15 682 739 ; +C -1 ; WX 667 ; N edieresis ; B 71 -15 682 726 ; +C -1 ; WX 667 ; N egrave ; B 71 -15 682 739 ; +C -1 ; WX 667 ; N eth ; B 75 -15 683 739 ; +C -1 ; WX 333 ; N iacute ; B 62 0 505 739 ; +C -1 ; WX 333 ; N icircumflex ; B 62 0 477 739 ; +C -1 ; WX 333 ; N idieresis ; B 62 0 496 726 ; +C -1 ; WX 333 ; N igrave ; B 62 0 376 739 ; +C -1 ; WX 660 ; N logicalnot ; B 130 120 655 412 ; +C -1 ; WX 660 ; N minus ; B 113 198 637 314 ; +C -1 ; WX 667 ; N mu ; B 17 -178 710 524 ; +C -1 ; WX 660 ; N multiply ; B 94 3 656 505 ; +C -1 ; WX 667 ; N ntilde ; B 48 0 680 731 ; +C -1 ; WX 667 ; N oacute ; B 75 -15 683 739 ; +C -1 ; WX 667 ; N ocircumflex ; B 75 -15 683 739 ; +C -1 ; WX 667 ; N odieresis ; B 75 -15 683 726 ; +C -1 ; WX 667 ; N ograve ; B 75 -15 683 739 ; +C -1 ; WX 1000 ; N onehalf ; B 138 -15 1014 739 ; +C -1 ; WX 1000 ; N onequarter ; B 138 -15 992 739 ; +C -1 ; WX 400 ; N onesuperior ; B 178 310 451 739 ; +C -1 ; WX 667 ; N otilde ; B 75 -15 683 731 ; +C -1 ; WX 660 ; N plusminus ; B 78 0 660 603 ; +C -1 ; WX 800 ; N registered ; B 79 -19 848 739 ; +C -1 ; WX 611 ; N scaron ; B 61 -15 642 739 ; +C -1 ; WX 667 ; N thorn ; B 13 -178 684 739 ; +C -1 ; WX 1000 ; N threequarters ; B 113 -15 992 715 ; +C -1 ; WX 400 ; N threesuperior ; B 79 277 489 715 ; +C -1 ; WX 950 ; N trademark ; B 141 316 1013 720 ; +C -1 ; WX 400 ; N twosuperior ; B 62 310 502 739 ; +C -1 ; WX 667 ; N uacute ; B 78 -15 710 739 ; +C -1 ; WX 667 ; N ucircumflex ; B 78 -15 710 739 ; +C -1 ; WX 667 ; N udieresis ; B 78 -15 710 726 ; +C -1 ; WX 667 ; N ugrave ; B 78 -15 710 739 ; +C -1 ; WX 611 ; N yacute ; B 45 -178 690 739 ; +C -1 ; WX 611 ; N ydieresis ; B 45 -178 690 726 ; +C -1 ; WX 556 ; N zcaron ; B 26 0 615 739 ; +EndCharMetrics +StartKernData +StartKernPairs 115 + +KPX A y -18 +KPX A w -18 +KPX A v -18 +KPX A quoteright -74 +KPX A Y -74 +KPX A W -37 +KPX A V -74 +KPX A T -92 + +KPX F period -129 +KPX F comma -129 +KPX F A -55 + +KPX L y -37 +KPX L quoteright -74 +KPX L Y -92 +KPX L W -55 +KPX L V -92 +KPX L T -92 + +KPX P period -129 +KPX P comma -129 +KPX P A -74 + +KPX R y 0 +KPX R Y -37 +KPX R W -18 +KPX R V -18 +KPX R T -18 + +KPX T y -92 +KPX T w -92 +KPX T u -92 +KPX T semicolon -68 +KPX T s -111 +KPX T r -92 +KPX T period -111 +KPX T o -111 +KPX T i 0 +KPX T hyphen -100 +KPX T e -111 +KPX T comma -111 +KPX T colon -68 +KPX T c -111 +KPX T a -111 +KPX T A -74 + +KPX V y -18 +KPX V u -37 +KPX V semicolon -74 +KPX V r -37 +KPX V period -129 +KPX V o -55 +KPX V i -18 +KPX V hyphen -55 +KPX V e -55 +KPX V comma -129 +KPX V colon -74 +KPX V a -55 +KPX V A -74 + +KPX W y 0 +KPX W u -18 +KPX W semicolon -18 +KPX W r -18 +KPX W period -74 +KPX W o -18 +KPX W i 0 +KPX W hyphen 0 +KPX W e -18 +KPX W comma -74 +KPX W colon -18 +KPX W a -37 +KPX W A -37 + +KPX Y v -55 +KPX Y u -74 +KPX Y semicolon -74 +KPX Y q -92 +KPX Y period -111 +KPX Y p -74 +KPX Y o -92 +KPX Y i -20 +KPX Y hyphen -92 +KPX Y e -92 +KPX Y comma -111 +KPX Y colon -74 +KPX Y a -92 +KPX Y A -74 + +KPX f quoteright 24 +KPX f f -18 + +KPX quoteleft quoteleft -18 + +KPX quoteright t -18 +KPX quoteright s -62 +KPX quoteright quoteright -18 + +KPX r z 0 +KPX r y 18 +KPX r x 0 +KPX r w 0 +KPX r v 18 +KPX r u 0 +KPX r t 18 +KPX r r 0 +KPX r quoteright 0 +KPX r q -18 +KPX r period -92 +KPX r o -18 +KPX r n 18 +KPX r m 18 +KPX r hyphen -12 +KPX r h 0 +KPX r g 18 +KPX r f 18 +KPX r e -18 +KPX r d -18 +KPX r comma -92 +KPX r c -18 + +KPX v period -74 +KPX v comma -74 + +KPX w period -55 +KPX w comma -55 + +KPX y period -92 +KPX y comma -92 +EndKernPairs +EndKernData +StartComposites 58 +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 194 196 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 111 0 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 194 196 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 139 0 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 222 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 167 0 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 222 196 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 139 0 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 222 196 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 139 0 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 250 196 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 250 196 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 250 196 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 250 196 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 167 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 167 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 167 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 167 0 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 28 196 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 28 196 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 28 196 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 28 196 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 194 196 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 194 196 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 194 196 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 194 196 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 167 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 167 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 167 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 167 0 ; +CC Aacute 2 ; PCC A 0 0 ; PCC acute 222 196 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 222 196 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 222 196 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 222 196 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 167 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 167 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 167 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 167 0 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 250 196 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 250 196 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 250 196 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 250 196 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 167 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 167 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 167 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 167 0 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 222 196 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 167 0 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 250 196 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 167 0 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 250 196 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 167 0 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 222 196 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 167 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-BlO+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-BlO+ new file mode 100755 index 0000000000000..806f7fb8f6d9d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-BlO+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 778 ; N Ccaron ; B 78 -19 834 934 ; +C -1 ; WX 667 ; N ccaron ; B 72 -15 700 739 ; +C -1 ; WX 778 ; N Dcaron ; B 65 0 831 934 ; +C -1 ; WX 840 ; N dcaron ; B 72 -15 1018 792 ; +C -1 ; WX 722 ; N Ecaron ; B 76 0 790 934 ; +C -1 ; WX 667 ; N ecaron ; B 71 -15 682 739 ; +C -1 ; WX 667 ; N Lcaron ; B 76 0 711 792 ; +C -1 ; WX 667 ; N Lacute ; B 76 0 706 934 ; +C -1 ; WX 506 ; N lcaron ; B 62 0 669 792 ; +C -1 ; WX 333 ; N lacute ; B 62 0 573 934 ; +C -1 ; WX 833 ; N Ncaron ; B 69 0 891 934 ; +C -1 ; WX 667 ; N ncaron ; B 48 0 680 739 ; +C -1 ; WX 778 ; N Rcaron ; B 61 0 816 934 ; +C -1 ; WX 778 ; N Racute ; B 61 0 825 934 ; +C -1 ; WX 444 ; N rcaron ; B 52 0 558 739 ; +C -1 ; WX 444 ; N racute ; B 52 0 594 739 ; +C -1 ; WX 722 ; N Tcaron ; B 125 0 818 934 ; +C -1 ; WX 617 ; N tcaron ; B 85 -4 760 720 ; +C -1 ; WX 833 ; N Uring ; B 116 -19 890 934 ; +C -1 ; WX 667 ; N uring ; B 78 -15 710 817 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 331 195 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 197 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 256 195 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 666 72 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 228 195 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 167 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 359 72 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 201 195 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 317 72 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 68 195 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 284 195 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 167 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 256 195 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 320 195 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 55 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 89 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 228 195 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 408 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 270 117 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 167 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Cm b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Cm new file mode 100755 index 0000000000000..117b4924148af --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Cm @@ -0,0 +1,418 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1988, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Fri Dec 13 16:12:38 1991 +Comment UniqueID 37154 +Comment VMusage 24500 31392 +FontName Helvetica-Compressed +FullName Helvetica Compressed +FamilyName Helvetica +Weight Bold +ItalicAngle 0 +IsFixedPitch false +FontBBox -120 -250 1000 990 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.002 +Notice Copyright (c) 1988, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 712 +XHeight 572 +Ascender 712 +Descender -128 +StartCharMetrics 228 +C 32 ; WX 232 ; N space ; B 0 0 0 0 ; +C 33 ; WX 259 ; N exclam ; B 52 0 207 712 ; +C 34 ; WX 333 ; N quotedbl ; B 15 441 318 712 ; +C 35 ; WX 464 ; N numbersign ; B 21 0 442 712 ; +C 36 ; WX 464 ; N dollar ; B 22 -74 443 775 ; +C 37 ; WX 630 ; N percent ; B 17 -14 613 726 ; +C 38 ; WX 593 ; N ampersand ; B 21 -14 590 726 ; +C 39 ; WX 204 ; N quoteright ; B 12 461 192 712 ; +C 40 ; WX 296 ; N parenleft ; B 14 -62 281 726 ; +C 41 ; WX 296 ; N parenright ; B 15 -62 282 726 ; +C 42 ; WX 464 ; N asterisk ; B 65 392 398 712 ; +C 43 ; WX 600 ; N plus ; B 46 32 554 540 ; +C 44 ; WX 232 ; N comma ; B 17 -128 214 168 ; +C 45 ; WX 259 ; N hyphen ; B 18 259 240 377 ; +C 46 ; WX 232 ; N period ; B 38 0 193 168 ; +C 47 ; WX 259 ; N slash ; B 2 -14 257 726 ; +C 48 ; WX 464 ; N zero ; B 21 -14 442 726 ; +C 49 ; WX 464 ; N one ; B 44 0 327 712 ; +C 50 ; WX 464 ; N two ; B 16 0 438 726 ; +C 51 ; WX 464 ; N three ; B 23 -14 440 726 ; +C 52 ; WX 464 ; N four ; B 3 0 453 712 ; +C 53 ; WX 464 ; N five ; B 20 -14 443 712 ; +C 54 ; WX 464 ; N six ; B 22 -14 441 726 ; +C 55 ; WX 464 ; N seven ; B 9 0 447 712 ; +C 56 ; WX 464 ; N eight ; B 17 -14 447 726 ; +C 57 ; WX 464 ; N nine ; B 22 -14 441 726 ; +C 58 ; WX 232 ; N colon ; B 38 0 193 572 ; +C 59 ; WX 232 ; N semicolon ; B 17 -128 214 572 ; +C 60 ; WX 600 ; N less ; B 75 54 525 518 ; +C 61 ; WX 600 ; N equal ; B 46 98 554 474 ; +C 62 ; WX 600 ; N greater ; B 75 54 525 518 ; +C 63 ; WX 464 ; N question ; B 43 0 421 726 ; +C 64 ; WX 800 ; N at ; B 44 -14 756 726 ; +C 65 ; WX 464 ; N A ; B 11 0 452 712 ; +C 66 ; WX 464 ; N B ; B 22 0 442 712 ; +C 67 ; WX 464 ; N C ; B 22 -14 442 726 ; +C 68 ; WX 464 ; N D ; B 22 0 442 712 ; +C 69 ; WX 370 ; N E ; B 20 0 364 712 ; +C 70 ; WX 370 ; N F ; B 20 0 364 712 ; +C 71 ; WX 464 ; N G ; B 22 -14 443 726 ; +C 72 ; WX 464 ; N H ; B 22 0 442 712 ; +C 73 ; WX 204 ; N I ; B 19 0 185 712 ; +C 74 ; WX 464 ; N J ; B 17 -14 435 712 ; +C 75 ; WX 464 ; N K ; B 22 0 454 712 ; +C 76 ; WX 370 ; N L ; B 20 0 366 712 ; +C 77 ; WX 667 ; N M ; B 21 0 646 712 ; +C 78 ; WX 500 ; N N ; B 16 0 484 712 ; +C 79 ; WX 464 ; N O ; B 22 -14 442 726 ; +C 80 ; WX 464 ; N P ; B 22 0 442 712 ; +C 81 ; WX 464 ; N Q ; B 22 -128 442 726 ; +C 82 ; WX 464 ; N R ; B 20 0 464 712 ; +C 83 ; WX 464 ; N S ; B 22 -14 442 726 ; +C 84 ; WX 426 ; N T ; B 14 0 412 712 ; +C 85 ; WX 464 ; N U ; B 22 -14 442 712 ; +C 86 ; WX 464 ; N V ; B 8 0 455 712 ; +C 87 ; WX 704 ; N W ; B 3 0 700 712 ; +C 88 ; WX 464 ; N X ; B 8 0 456 712 ; +C 89 ; WX 464 ; N Y ; B 8 0 456 712 ; +C 90 ; WX 370 ; N Z ; B 5 0 365 712 ; +C 91 ; WX 296 ; N bracketleft ; B 28 -62 268 726 ; +C 92 ; WX 278 ; N backslash ; B -48 -14 326 726 ; +C 93 ; WX 296 ; N bracketright ; B 28 -62 268 726 ; +C 94 ; WX 600 ; N asciicircum ; B 73 347 527 712 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 204 ; N quoteleft ; B 12 461 192 712 ; +C 97 ; WX 426 ; N a ; B 22 -7 404 579 ; +C 98 ; WX 426 ; N b ; B 22 -7 404 712 ; +C 99 ; WX 426 ; N c ; B 22 -7 404 579 ; +C 100 ; WX 426 ; N d ; B 22 -7 404 712 ; +C 101 ; WX 426 ; N e ; B 22 -7 404 579 ; +C 102 ; WX 259 ; N f ; B 7 0 245 712 ; L i fi ; L l fl ; +C 103 ; WX 426 ; N g ; B 22 -128 404 579 ; +C 104 ; WX 426 ; N h ; B 22 0 404 712 ; +C 105 ; WX 204 ; N i ; B 23 0 181 712 ; +C 106 ; WX 204 ; N j ; B -48 -128 181 712 ; +C 107 ; WX 426 ; N k ; B 22 0 424 712 ; +C 108 ; WX 204 ; N l ; B 23 0 181 712 ; +C 109 ; WX 630 ; N m ; B 24 0 606 579 ; +C 110 ; WX 426 ; N n ; B 22 0 404 579 ; +C 111 ; WX 426 ; N o ; B 22 -7 404 579 ; +C 112 ; WX 426 ; N p ; B 22 -128 404 579 ; +C 113 ; WX 426 ; N q ; B 22 -128 404 579 ; +C 114 ; WX 426 ; N r ; B 22 0 404 579 ; +C 115 ; WX 426 ; N s ; B 22 -7 404 579 ; +C 116 ; WX 296 ; N t ; B 8 0 288 675 ; +C 117 ; WX 426 ; N u ; B 22 -7 404 572 ; +C 118 ; WX 426 ; N v ; B 11 0 415 572 ; +C 119 ; WX 667 ; N w ; B 5 0 661 572 ; +C 120 ; WX 426 ; N x ; B 4 0 422 572 ; +C 121 ; WX 426 ; N y ; B 12 -128 413 572 ; +C 122 ; WX 333 ; N z ; B 3 0 330 572 ; +C 123 ; WX 333 ; N braceleft ; B 28 -62 305 726 ; +C 124 ; WX 222 ; N bar ; B 43 -250 179 750 ; +C 125 ; WX 333 ; N braceright ; B 28 -62 305 726 ; +C 126 ; WX 600 ; N asciitilde ; B 69 160 531 346 ; +C 161 ; WX 259 ; N exclamdown ; B 52 -114 207 598 ; +C 162 ; WX 464 ; N cent ; B 41 -128 423 674 ; +C 163 ; WX 464 ; N sterling ; B 9 -14 455 726 ; +C 164 ; WX 130 ; N fraction ; B -120 -14 250 726 ; +C 165 ; WX 464 ; N yen ; B 8 0 456 712 ; +C 166 ; WX 464 ; N florin ; B 9 -128 454 726 ; +C 167 ; WX 426 ; N section ; B 28 -64 398 726 ; +C 168 ; WX 464 ; N currency ; B 13 173 451 611 ; +C 169 ; WX 222 ; N quotesingle ; B 51 441 171 712 ; +C 170 ; WX 426 ; N quotedblleft ; B 33 461 417 712 ; +C 171 ; WX 370 ; N guillemotleft ; B 15 99 355 537 ; +C 172 ; WX 204 ; N guilsinglleft ; B 38 99 189 537 ; +C 173 ; WX 204 ; N guilsinglright ; B 15 99 166 537 ; +C 174 ; WX 463 ; N fi ; B 7 0 437 712 ; +C 175 ; WX 463 ; N fl ; B 7 0 437 712 ; +C 177 ; WX 500 ; N endash ; B 0 262 500 374 ; +C 178 ; WX 426 ; N dagger ; B 20 -64 406 712 ; +C 179 ; WX 426 ; N daggerdbl ; B 20 -64 406 712 ; +C 180 ; WX 232 ; N periodcentered ; B 33 204 199 370 ; +C 182 ; WX 620 ; N paragraph ; B 1 -179 619 712 ; +C 183 ; WX 500 ; N bullet ; B 72 178 428 534 ; +C 184 ; WX 204 ; N quotesinglbase ; B 12 -95 192 156 ; +C 185 ; WX 426 ; N quotedblbase ; B 9 -95 393 156 ; +C 186 ; WX 426 ; N quotedblright ; B 9 461 393 712 ; +C 187 ; WX 370 ; N guillemotright ; B 15 99 355 537 ; +C 188 ; WX 1000 ; N ellipsis ; B 89 0 910 168 ; +C 189 ; WX 759 ; N perthousand ; B 14 -14 745 726 ; +C 191 ; WX 464 ; N questiondown ; B 43 -128 421 598 ; +C 193 ; WX 204 ; N grave ; B -39 639 174 780 ; +C 194 ; WX 204 ; N acute ; B 30 639 243 780 ; +C 195 ; WX 204 ; N circumflex ; B -48 639 251 780 ; +C 196 ; WX 204 ; N tilde ; B -44 653 247 766 ; +C 197 ; WX 204 ; N macron ; B -38 676 243 750 ; +C 198 ; WX 204 ; N breve ; B -44 640 249 773 ; +C 199 ; WX 204 ; N dotaccent ; B 46 650 158 773 ; +C 200 ; WX 204 ; N dieresis ; B -37 650 241 773 ; +C 202 ; WX 204 ; N ring ; B -4 650 236 875 ; +C 203 ; WX 204 ; N cedilla ; B -18 -244 237 -4 ; +C 205 ; WX 204 ; N hungarumlaut ; B -65 639 291 780 ; +C 206 ; WX 204 ; N ogonek ; B -22 -244 229 0 ; +C 207 ; WX 204 ; N caron ; B -47 639 252 780 ; +C 208 ; WX 1000 ; N emdash ; B 0 262 1000 374 ; +C 225 ; WX 667 ; N AE ; B 7 0 653 712 ; +C 227 ; WX 256 ; N ordfeminine ; B 3 374 253 726 ; +C 232 ; WX 370 ; N Lslash ; B -11 0 366 712 ; +C 233 ; WX 464 ; N Oslash ; B 22 -41 442 759 ; +C 234 ; WX 630 ; N OE ; B 22 -14 624 726 ; +C 235 ; WX 256 ; N ordmasculine ; B 3 374 252 725 ; +C 241 ; WX 630 ; N ae ; B 15 -7 615 579 ; +C 245 ; WX 204 ; N dotlessi ; B 23 0 181 572 ; +C 248 ; WX 204 ; N lslash ; B -12 0 217 712 ; +C 249 ; WX 426 ; N oslash ; B 22 -52 404 616 ; +C 250 ; WX 630 ; N oe ; B 15 -7 615 579 ; +C 251 ; WX 426 ; N germandbls ; B 22 -7 404 726 ; +C -1 ; WX 426 ; N ecircumflex ; B 22 -7 404 780 ; +C -1 ; WX 426 ; N edieresis ; B 22 -7 404 773 ; +C -1 ; WX 426 ; N aacute ; B 22 -7 404 780 ; +C -1 ; WX 800 ; N registered ; B 13 -14 787 726 ; +C -1 ; WX 204 ; N icircumflex ; B -48 0 251 780 ; +C -1 ; WX 426 ; N udieresis ; B 22 -7 404 773 ; +C -1 ; WX 426 ; N ograve ; B 22 -7 404 780 ; +C -1 ; WX 426 ; N uacute ; B 22 -7 404 780 ; +C -1 ; WX 426 ; N ucircumflex ; B 22 -7 404 780 ; +C -1 ; WX 464 ; N Aacute ; B 11 0 452 895 ; +C -1 ; WX 204 ; N igrave ; B -39 0 181 780 ; +C -1 ; WX 204 ; N Icircumflex ; B -48 0 251 895 ; +C -1 ; WX 426 ; N ccedilla ; B 22 -244 404 579 ; +C -1 ; WX 426 ; N adieresis ; B 22 -7 404 773 ; +C -1 ; WX 370 ; N Ecircumflex ; B 20 0 364 895 ; +C -1 ; WX 426 ; N scaron ; B 22 -7 404 780 ; +C -1 ; WX 426 ; N thorn ; B 22 -128 404 712 ; +C -1 ; WX 1000 ; N trademark ; B 36 300 964 712 ; +C -1 ; WX 426 ; N egrave ; B 22 -7 404 780 ; +C -1 ; WX 277 ; N threesuperior ; B 3 281 274 726 ; +C -1 ; WX 333 ; N zcaron ; B 3 0 330 780 ; +C -1 ; WX 426 ; N atilde ; B 22 -7 404 766 ; +C -1 ; WX 426 ; N aring ; B 22 -7 404 875 ; +C -1 ; WX 426 ; N ocircumflex ; B 22 -7 404 780 ; +C -1 ; WX 370 ; N Edieresis ; B 20 0 364 888 ; +C -1 ; WX 694 ; N threequarters ; B 22 -14 672 726 ; +C -1 ; WX 426 ; N ydieresis ; B 12 -128 413 773 ; +C -1 ; WX 426 ; N yacute ; B 12 -128 413 780 ; +C -1 ; WX 204 ; N iacute ; B 23 0 243 780 ; +C -1 ; WX 464 ; N Acircumflex ; B 11 0 452 895 ; +C -1 ; WX 464 ; N Uacute ; B 22 -14 442 895 ; +C -1 ; WX 426 ; N eacute ; B 22 -7 404 780 ; +C -1 ; WX 464 ; N Ograve ; B 22 -14 442 895 ; +C -1 ; WX 426 ; N agrave ; B 22 -7 404 780 ; +C -1 ; WX 464 ; N Udieresis ; B 22 -14 442 888 ; +C -1 ; WX 426 ; N acircumflex ; B 22 -7 404 780 ; +C -1 ; WX 204 ; N Igrave ; B -39 0 185 895 ; +C -1 ; WX 277 ; N twosuperior ; B 1 290 276 726 ; +C -1 ; WX 464 ; N Ugrave ; B 22 -14 442 895 ; +C -1 ; WX 694 ; N onequarter ; B 22 -14 672 726 ; +C -1 ; WX 464 ; N Ucircumflex ; B 22 -14 442 895 ; +C -1 ; WX 464 ; N Scaron ; B 22 -14 442 895 ; +C -1 ; WX 204 ; N Idieresis ; B -37 0 241 888 ; +C -1 ; WX 204 ; N idieresis ; B -37 0 241 773 ; +C -1 ; WX 370 ; N Egrave ; B 20 0 364 895 ; +C -1 ; WX 464 ; N Oacute ; B 22 -14 442 895 ; +C -1 ; WX 600 ; N divide ; B 46 -14 554 586 ; +C -1 ; WX 464 ; N Atilde ; B 11 0 452 881 ; +C -1 ; WX 464 ; N Aring ; B 11 0 452 990 ; +C -1 ; WX 464 ; N Odieresis ; B 22 -14 442 888 ; +C -1 ; WX 464 ; N Adieresis ; B 11 0 452 888 ; +C -1 ; WX 500 ; N Ntilde ; B 16 0 484 881 ; +C -1 ; WX 370 ; N Zcaron ; B 5 0 365 895 ; +C -1 ; WX 464 ; N Thorn ; B 22 0 442 712 ; +C -1 ; WX 204 ; N Iacute ; B 19 0 243 895 ; +C -1 ; WX 600 ; N plusminus ; B 46 32 554 540 ; +C -1 ; WX 600 ; N multiply ; B 46 5 554 511 ; +C -1 ; WX 370 ; N Eacute ; B 20 0 364 895 ; +C -1 ; WX 464 ; N Ydieresis ; B 8 0 456 888 ; +C -1 ; WX 277 ; N onesuperior ; B 5 290 189 717 ; +C -1 ; WX 426 ; N ugrave ; B 22 -7 404 780 ; +C -1 ; WX 600 ; N logicalnot ; B 46 162 554 459 ; +C -1 ; WX 426 ; N ntilde ; B 22 0 404 766 ; +C -1 ; WX 464 ; N Otilde ; B 22 -14 442 881 ; +C -1 ; WX 426 ; N otilde ; B 22 -7 404 766 ; +C -1 ; WX 464 ; N Ccedilla ; B 22 -244 442 726 ; +C -1 ; WX 464 ; N Agrave ; B 11 0 452 895 ; +C -1 ; WX 694 ; N onehalf ; B 22 -14 673 726 ; +C -1 ; WX 464 ; N Eth ; B -3 0 442 712 ; +C -1 ; WX 400 ; N degree ; B 57 426 343 712 ; +C -1 ; WX 464 ; N Yacute ; B 8 0 456 895 ; +C -1 ; WX 464 ; N Ocircumflex ; B 22 -14 442 895 ; +C -1 ; WX 426 ; N oacute ; B 22 -7 404 780 ; +C -1 ; WX 426 ; N mu ; B 22 -128 404 572 ; +C -1 ; WX 600 ; N minus ; B 46 218 554 354 ; +C -1 ; WX 426 ; N eth ; B 22 -7 404 751 ; +C -1 ; WX 426 ; N odieresis ; B 22 -7 404 773 ; +C -1 ; WX 800 ; N copyright ; B 13 -14 787 726 ; +C -1 ; WX 222 ; N brokenbar ; B 43 -175 179 675 ; +EndCharMetrics +StartKernData +StartKernPairs 90 + +KPX A y -55 +KPX A w -37 +KPX A v -55 +KPX A quoteright -55 +KPX A Y -74 +KPX A W -55 +KPX A V -55 +KPX A T -74 + +KPX F period -129 +KPX F comma -129 +KPX F A -37 + +KPX L y -74 +KPX L quoteright -129 +KPX L Y -111 +KPX L W -74 +KPX L V -92 +KPX L T -92 + +KPX P period -129 +KPX P comma -129 +KPX P A -55 + +KPX R Y -18 +KPX R W -18 +KPX R V -18 +KPX R T -18 + +KPX T y -92 +KPX T w -92 +KPX T u -92 +KPX T semicolon -111 +KPX T s -92 +KPX T r -92 +KPX T period -111 +KPX T o -92 +KPX T i -92 +KPX T hyphen -92 +KPX T e -92 +KPX T comma -111 +KPX T colon -111 +KPX T c -92 +KPX T a -92 +KPX T A -92 + +KPX V y -18 +KPX V u -18 +KPX V semicolon -37 +KPX V r -18 +KPX V period -92 +KPX V o -37 +KPX V i -18 +KPX V hyphen -37 +KPX V e -37 +KPX V comma -92 +KPX V colon -55 +KPX V a -37 +KPX V A -74 + +KPX W y -18 +KPX W u -18 +KPX W semicolon -37 +KPX W r -18 +KPX W period -74 +KPX W o -37 +KPX W i -18 +KPX W hyphen -37 +KPX W e -37 +KPX W comma -74 +KPX W colon -37 +KPX W a -37 +KPX W A -74 + +KPX Y v -37 +KPX Y u -37 +KPX Y semicolon -55 +KPX Y q -55 +KPX Y period -111 +KPX Y p -37 +KPX Y o -55 +KPX Y i -37 +KPX Y hyphen -74 +KPX Y e -55 +KPX Y comma -111 +KPX Y colon -55 +KPX Y a -55 +KPX Y A -92 + +KPX quoteright t -18 +KPX quoteright s -74 + +KPX r period -129 +KPX r comma -129 + +KPX v period -92 +KPX v comma -92 + +KPX w period -74 +KPX w comma -74 + +KPX y period -111 +KPX y comma -111 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 130 115 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 130 115 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 130 115 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 130 115 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 130 115 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 130 115 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 83 115 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 83 115 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 83 115 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 83 115 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 0 115 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 0 115 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 0 115 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 115 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 148 115 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 130 115 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 130 115 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 130 115 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 130 115 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 130 115 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 130 115 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 130 115 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 130 115 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 130 115 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 130 115 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 130 115 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 130 115 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 83 115 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 111 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 111 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 111 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 111 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 111 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 111 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 111 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 111 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 111 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 111 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 111 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 111 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 111 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 111 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 111 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 111 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 111 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 111 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 111 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 111 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 111 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 111 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 111 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 65 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Cm+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Cm+ new file mode 100755 index 0000000000000..b45e5a8c7adfa --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Cm+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 464 ; N Ccaron ; B 22 -14 442 918 ; +C -1 ; WX 426 ; N ccaron ; B 22 -7 404 780 ; +C -1 ; WX 464 ; N Dcaron ; B 22 0 442 918 ; +C -1 ; WX 552 ; N dcaron ; B 22 -7 602 783 ; +C -1 ; WX 370 ; N Ecaron ; B 20 0 364 918 ; +C -1 ; WX 426 ; N ecaron ; B 22 -7 404 780 ; +C -1 ; WX 370 ; N Lcaron ; B 20 0 383 783 ; +C -1 ; WX 370 ; N Lacute ; B 20 0 366 918 ; +C -1 ; WX 330 ; N lcaron ; B 23 0 379 783 ; +C -1 ; WX 204 ; N lacute ; B 23 0 264 918 ; +C -1 ; WX 500 ; N Ncaron ; B 16 0 484 918 ; +C -1 ; WX 426 ; N ncaron ; B 22 0 404 780 ; +C -1 ; WX 464 ; N Rcaron ; B 20 0 464 918 ; +C -1 ; WX 464 ; N Racute ; B 20 0 464 918 ; +C -1 ; WX 426 ; N rcaron ; B 22 0 404 780 ; +C -1 ; WX 426 ; N racute ; B 22 0 404 780 ; +C -1 ; WX 426 ; N Tcaron ; B 14 0 412 918 ; +C -1 ; WX 422 ; N tcaron ; B 8 0 486 712 ; +C -1 ; WX 464 ; N Uring ; B 22 -14 442 918 ; +C -1 ; WX 426 ; N uring ; B 22 -7 404 875 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 172 138 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 130 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 130 138 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 410 71 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 83 138 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 111 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 191 71 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 83 138 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 187 71 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 21 138 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 148 138 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 111 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 130 138 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 170 138 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 111 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 132 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 111 138 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 294 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 130 43 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 111 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Cn b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Cn new file mode 100755 index 0000000000000..954636a5e8e54 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Cn @@ -0,0 +1,447 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989 Adobe Systems Incorporated. All rights reserved. +Comment Creation Date: Tue Dec 5 16:28:05 1989 +Comment UniqueID 26316 +Comment VMusage 25458 32350 +FontName Helvetica-Condensed +FullName Helvetica Condensed Medium +FamilyName Helvetica +Weight MediumCondensed +ItalicAngle 0 +IsFixedPitch false +FontBBox -174 -224 1071 990 +UnderlinePosition -90 +UnderlineThickness 58 +Version 001.002 +Notice Copyright (c) 1985, 1987, 1989 Adobe Systems Incorporated. All rights reserved.Helvetica is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 750 +XHeight 556 +Ascender 750 +Descender -188 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 121 0 212 750 ; +C 34 ; WX 250 ; N quotedbl ; B 44 513 207 739 ; +C 35 ; WX 500 ; N numbersign ; B 5 0 495 750 ; +C 36 ; WX 500 ; N dollar ; B 35 -116 465 815 ; +C 37 ; WX 833 ; N percent ; B 55 -15 756 750 ; +C 38 ; WX 667 ; N ampersand ; B 75 -18 620 750 ; +C 39 ; WX 222 ; N quoteright ; B 64 504 158 750 ; +C 40 ; WX 333 ; N parenleft ; B 76 -215 289 750 ; +C 41 ; WX 333 ; N parenright ; B 44 -215 257 750 ; +C 42 ; WX 500 ; N asterisk ; B 96 455 405 750 ; +C 43 ; WX 500 ; N plus ; B 44 0 457 505 ; +C 44 ; WX 250 ; N comma ; B 80 -146 171 100 ; +C 45 ; WX 333 ; N hyphen ; B 45 275 288 358 ; +C 46 ; WX 250 ; N period ; B 80 0 171 100 ; +C 47 ; WX 278 ; N slash ; B -13 -27 291 750 ; +C 48 ; WX 500 ; N zero ; B 46 -15 455 750 ; +C 49 ; WX 500 ; N one ; B 74 0 317 750 ; +C 50 ; WX 500 ; N two ; B 44 0 447 750 ; +C 51 ; WX 500 ; N three ; B 38 -15 447 750 ; +C 52 ; WX 500 ; N four ; B 28 0 451 750 ; +C 53 ; WX 500 ; N five ; B 43 -15 446 735 ; +C 54 ; WX 500 ; N six ; B 43 -15 458 750 ; +C 55 ; WX 500 ; N seven ; B 44 0 456 735 ; +C 56 ; WX 500 ; N eight ; B 46 -15 454 750 ; +C 57 ; WX 500 ; N nine ; B 43 -15 458 750 ; +C 58 ; WX 250 ; N colon ; B 80 0 171 547 ; +C 59 ; WX 250 ; N semicolon ; B 80 -146 171 547 ; +C 60 ; WX 500 ; N less ; B 42 -10 459 518 ; +C 61 ; WX 500 ; N equal ; B 44 124 457 384 ; +C 62 ; WX 500 ; N greater ; B 42 -10 459 518 ; +C 63 ; WX 500 ; N question ; B 60 0 462 750 ; +C 64 ; WX 800 ; N at ; B 36 -15 764 750 ; +C 65 ; WX 556 ; N A ; B 11 0 546 750 ; +C 66 ; WX 556 ; N B ; B 80 0 503 750 ; +C 67 ; WX 556 ; N C ; B 53 -18 503 765 ; +C 68 ; WX 611 ; N D ; B 82 0 548 750 ; +C 69 ; WX 500 ; N E ; B 74 0 451 750 ; +C 70 ; WX 444 ; N F ; B 74 0 426 750 ; +C 71 ; WX 611 ; N G ; B 54 -18 532 765 ; +C 72 ; WX 611 ; N H ; B 79 0 532 750 ; +C 73 ; WX 278 ; N I ; B 98 0 181 750 ; +C 74 ; WX 444 ; N J ; B 21 -15 368 750 ; +C 75 ; WX 556 ; N K ; B 79 0 546 750 ; +C 76 ; WX 500 ; N L ; B 83 0 472 750 ; +C 77 ; WX 778 ; N M ; B 76 0 702 750 ; +C 78 ; WX 611 ; N N ; B 77 0 534 750 ; +C 79 ; WX 611 ; N O ; B 59 -18 553 765 ; +C 80 ; WX 556 ; N P ; B 86 0 519 750 ; +C 81 ; WX 611 ; N Q ; B 59 -34 582 765 ; +C 82 ; WX 611 ; N R ; B 86 0 565 750 ; +C 83 ; WX 556 ; N S ; B 51 -18 505 765 ; +C 84 ; WX 500 ; N T ; B 15 0 486 750 ; +C 85 ; WX 611 ; N U ; B 81 -18 531 750 ; +C 86 ; WX 556 ; N V ; B 11 0 545 750 ; +C 87 ; WX 833 ; N W ; B 17 0 816 750 ; +C 88 ; WX 556 ; N X ; B 17 0 539 750 ; +C 89 ; WX 556 ; N Y ; B 11 0 546 750 ; +C 90 ; WX 500 ; N Z ; B 28 0 473 750 ; +C 91 ; WX 333 ; N bracketleft ; B 100 -209 275 750 ; +C 92 ; WX 250 ; N backslash ; B -31 0 281 750 ; +C 93 ; WX 333 ; N bracketright ; B 58 -209 233 750 ; +C 94 ; WX 500 ; N asciicircum ; B 70 333 431 750 ; +C 95 ; WX 500 ; N underscore ; B 0 -119 500 -61 ; +C 96 ; WX 222 ; N quoteleft ; B 64 521 158 767 ; +C 97 ; WX 444 ; N a ; B 31 -15 417 571 ; +C 98 ; WX 500 ; N b ; B 75 -15 447 750 ; +C 99 ; WX 444 ; N c ; B 44 -15 405 571 ; +C 100 ; WX 500 ; N d ; B 48 -15 424 750 ; +C 101 ; WX 444 ; N e ; B 43 -15 395 571 ; +C 102 ; WX 278 ; N f ; B 12 0 259 752 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B 45 -189 426 571 ; +C 104 ; WX 500 ; N h ; B 73 0 428 750 ; +C 105 ; WX 222 ; N i ; B 72 0 151 750 ; +C 106 ; WX 222 ; N j ; B 13 -190 154 750 ; +C 107 ; WX 444 ; N k ; B 69 0 439 750 ; +C 108 ; WX 222 ; N l ; B 72 0 151 750 ; +C 109 ; WX 778 ; N m ; B 76 0 703 571 ; +C 110 ; WX 500 ; N n ; B 73 0 428 571 ; +C 111 ; WX 500 ; N o ; B 51 -15 449 571 ; +C 112 ; WX 500 ; N p ; B 72 -188 447 571 ; +C 113 ; WX 500 ; N q ; B 55 -184 426 571 ; +C 114 ; WX 333 ; N r ; B 81 0 322 563 ; +C 115 ; WX 444 ; N s ; B 43 -15 400 571 ; +C 116 ; WX 278 ; N t ; B 9 0 257 707 ; +C 117 ; WX 500 ; N u ; B 77 -15 424 556 ; +C 118 ; WX 444 ; N v ; B 13 0 431 556 ; +C 119 ; WX 667 ; N w ; B 19 0 649 556 ; +C 120 ; WX 444 ; N x ; B 9 0 436 556 ; +C 121 ; WX 444 ; N y ; B 5 -190 425 556 ; +C 122 ; WX 389 ; N z ; B 24 0 366 556 ; +C 123 ; WX 274 ; N braceleft ; B 7 -95 266 750 ; +C 124 ; WX 250 ; N bar ; B 93 0 157 750 ; +C 125 ; WX 274 ; N braceright ; B 8 -95 267 750 ; +C 126 ; WX 500 ; N asciitilde ; B 44 166 457 345 ; +C 161 ; WX 333 ; N exclamdown ; B 121 -179 212 571 ; +C 162 ; WX 500 ; N cent ; B 58 -137 418 667 ; +C 163 ; WX 500 ; N sterling ; B 30 -15 485 750 ; +C 164 ; WX 167 ; N fraction ; B -174 0 341 750 ; +C 165 ; WX 500 ; N yen ; B -17 0 518 750 ; +C 166 ; WX 500 ; N florin ; B 10 -192 488 750 ; +C 167 ; WX 500 ; N section ; B 35 -208 466 750 ; +C 168 ; WX 500 ; N currency ; B 24 50 475 553 ; +C 169 ; WX 250 ; N quotesingle ; B 99 513 151 739 ; +C 170 ; WX 389 ; N quotedblleft ; B 62 521 327 767 ; +C 171 ; WX 500 ; N guillemotleft ; B 85 125 415 495 ; +C 172 ; WX 278 ; N guilsinglleft ; B 64 125 215 495 ; +C 173 ; WX 278 ; N guilsinglright ; B 63 125 214 495 ; +C 174 ; WX 500 ; N fi ; B 12 0 427 752 ; +C 175 ; WX 500 ; N fl ; B 12 0 425 752 ; +C 177 ; WX 500 ; N endash ; B 0 275 500 345 ; +C 178 ; WX 500 ; N dagger ; B 40 -176 461 750 ; +C 179 ; WX 500 ; N daggerdbl ; B 39 -176 462 750 ; +C 180 ; WX 250 ; N periodcentered ; B 80 204 171 304 ; +C 182 ; WX 440 ; N paragraph ; B 0 -116 391 750 ; +C 183 ; WX 333 ; N bullet ; B 15 222 318 529 ; +C 184 ; WX 222 ; N quotesinglbase ; B 64 -146 158 100 ; +C 185 ; WX 389 ; N quotedblbase ; B 62 -146 327 100 ; +C 186 ; WX 389 ; N quotedblright ; B 62 504 327 750 ; +C 187 ; WX 500 ; N guillemotright ; B 85 125 415 495 ; +C 188 ; WX 1000 ; N ellipsis ; B 121 0 878 100 ; +C 189 ; WX 1111 ; N perthousand ; B 47 -16 1071 750 ; +C 191 ; WX 500 ; N questiondown ; B 38 -190 440 559 ; +C 193 ; WX 333 ; N grave ; B 35 624 233 765 ; +C 194 ; WX 333 ; N acute ; B 100 624 298 765 ; +C 195 ; WX 333 ; N circumflex ; B 21 624 313 765 ; +C 196 ; WX 333 ; N tilde ; B -3 633 337 749 ; +C 197 ; WX 333 ; N macron ; B 10 657 323 715 ; +C 198 ; WX 333 ; N breve ; B 12 629 321 765 ; +C 199 ; WX 250 ; N dotaccent ; B 86 650 165 750 ; +C 200 ; WX 333 ; N dieresis ; B 52 650 281 750 ; +C 202 ; WX 250 ; N ring ; B 23 593 227 796 ; +C 203 ; WX 333 ; N cedilla ; B 66 -224 281 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B 61 624 440 765 ; +C 206 ; WX 333 ; N ogonek ; B 0 -191 208 13 ; +C 207 ; WX 333 ; N caron ; B 21 624 313 765 ; +C 208 ; WX 1000 ; N emdash ; B 0 275 1000 345 ; +C 225 ; WX 833 ; N AE ; B 0 0 785 750 ; +C 227 ; WX 300 ; N ordfeminine ; B 25 305 276 765 ; +C 232 ; WX 500 ; N Lslash ; B -13 0 472 750 ; +C 233 ; WX 611 ; N Oslash ; B 29 -43 573 796 ; +C 234 ; WX 833 ; N OE ; B 56 -18 787 765 ; +C 235 ; WX 300 ; N ordmasculine ; B 20 305 279 765 ; +C 241 ; WX 667 ; N ae ; B 26 -15 630 571 ; +C 245 ; WX 222 ; N dotlessi ; B 72 0 151 556 ; +C 248 ; WX 222 ; N lslash ; B -8 0 231 750 ; +C 249 ; WX 500 ; N oslash ; B 25 -46 472 582 ; +C 250 ; WX 722 ; N oe ; B 40 -15 676 571 ; +C 251 ; WX 500 ; N germandbls ; B 71 -5 445 765 ; +C -1 ; WX 500 ; N Zcaron ; B 28 0 473 959 ; +C -1 ; WX 444 ; N ccedilla ; B 44 -224 405 571 ; +C -1 ; WX 444 ; N ydieresis ; B 5 -190 425 750 ; +C -1 ; WX 444 ; N atilde ; B 31 -15 417 749 ; +C -1 ; WX 222 ; N icircumflex ; B -34 0 258 765 ; +C -1 ; WX 300 ; N threesuperior ; B 17 291 283 750 ; +C -1 ; WX 444 ; N ecircumflex ; B 43 -15 395 765 ; +C -1 ; WX 500 ; N thorn ; B 72 -188 447 750 ; +C -1 ; WX 444 ; N egrave ; B 43 -15 395 765 ; +C -1 ; WX 300 ; N twosuperior ; B 19 300 281 750 ; +C -1 ; WX 444 ; N eacute ; B 43 -15 395 765 ; +C -1 ; WX 500 ; N otilde ; B 51 -15 449 749 ; +C -1 ; WX 556 ; N Aacute ; B 11 0 546 959 ; +C -1 ; WX 500 ; N ocircumflex ; B 51 -15 449 765 ; +C -1 ; WX 444 ; N yacute ; B 5 -190 425 765 ; +C -1 ; WX 500 ; N udieresis ; B 77 -15 424 750 ; +C -1 ; WX 750 ; N threequarters ; B 21 0 730 750 ; +C -1 ; WX 444 ; N acircumflex ; B 31 -15 417 765 ; +C -1 ; WX 611 ; N Eth ; B -6 0 548 750 ; +C -1 ; WX 444 ; N edieresis ; B 43 -15 395 750 ; +C -1 ; WX 500 ; N ugrave ; B 77 -15 424 765 ; +C -1 ; WX 750 ; N trademark ; B 0 329 719 750 ; +C -1 ; WX 500 ; N ograve ; B 51 -15 449 765 ; +C -1 ; WX 444 ; N scaron ; B 43 -15 400 765 ; +C -1 ; WX 278 ; N Idieresis ; B 25 0 254 944 ; +C -1 ; WX 500 ; N uacute ; B 77 -15 424 765 ; +C -1 ; WX 444 ; N agrave ; B 31 -15 417 765 ; +C -1 ; WX 500 ; N ntilde ; B 73 0 428 749 ; +C -1 ; WX 444 ; N aring ; B 31 -15 417 796 ; +C -1 ; WX 389 ; N zcaron ; B 24 0 366 765 ; +C -1 ; WX 278 ; N Icircumflex ; B -6 0 286 959 ; +C -1 ; WX 611 ; N Ntilde ; B 77 0 534 943 ; +C -1 ; WX 500 ; N ucircumflex ; B 77 -15 424 765 ; +C -1 ; WX 500 ; N Ecircumflex ; B 74 0 451 959 ; +C -1 ; WX 278 ; N Iacute ; B 73 0 271 959 ; +C -1 ; WX 556 ; N Ccedilla ; B 53 -224 503 765 ; +C -1 ; WX 611 ; N Odieresis ; B 59 -18 553 944 ; +C -1 ; WX 556 ; N Scaron ; B 51 -18 505 959 ; +C -1 ; WX 500 ; N Edieresis ; B 74 0 451 944 ; +C -1 ; WX 278 ; N Igrave ; B 8 0 206 959 ; +C -1 ; WX 444 ; N adieresis ; B 31 -15 417 750 ; +C -1 ; WX 611 ; N Ograve ; B 59 -18 553 959 ; +C -1 ; WX 500 ; N Egrave ; B 74 0 451 959 ; +C -1 ; WX 556 ; N Ydieresis ; B 11 0 546 944 ; +C -1 ; WX 800 ; N registered ; B 8 -18 792 765 ; +C -1 ; WX 611 ; N Otilde ; B 59 -18 553 943 ; +C -1 ; WX 750 ; N onequarter ; B 34 0 716 750 ; +C -1 ; WX 611 ; N Ugrave ; B 81 -18 531 959 ; +C -1 ; WX 611 ; N Ucircumflex ; B 81 -18 531 959 ; +C -1 ; WX 556 ; N Thorn ; B 86 0 519 750 ; +C -1 ; WX 500 ; N divide ; B 44 3 457 505 ; +C -1 ; WX 556 ; N Atilde ; B 11 0 546 943 ; +C -1 ; WX 611 ; N Uacute ; B 81 -18 531 959 ; +C -1 ; WX 611 ; N Ocircumflex ; B 59 -18 553 959 ; +C -1 ; WX 500 ; N logicalnot ; B 44 117 457 384 ; +C -1 ; WX 556 ; N Aring ; B 11 0 546 990 ; +C -1 ; WX 222 ; N idieresis ; B -3 0 226 750 ; +C -1 ; WX 222 ; N iacute ; B 45 0 243 765 ; +C -1 ; WX 444 ; N aacute ; B 31 -15 417 765 ; +C -1 ; WX 500 ; N plusminus ; B 44 0 457 505 ; +C -1 ; WX 500 ; N multiply ; B 44 48 457 461 ; +C -1 ; WX 611 ; N Udieresis ; B 81 -18 531 944 ; +C -1 ; WX 500 ; N minus ; B 44 219 457 289 ; +C -1 ; WX 300 ; N onesuperior ; B 67 300 233 750 ; +C -1 ; WX 500 ; N Eacute ; B 74 0 451 959 ; +C -1 ; WX 556 ; N Acircumflex ; B 11 0 546 959 ; +C -1 ; WX 800 ; N copyright ; B 8 -18 792 765 ; +C -1 ; WX 556 ; N Agrave ; B 11 0 546 959 ; +C -1 ; WX 500 ; N odieresis ; B 51 -15 449 750 ; +C -1 ; WX 500 ; N oacute ; B 51 -15 449 765 ; +C -1 ; WX 400 ; N degree ; B 50 450 350 750 ; +C -1 ; WX 222 ; N igrave ; B -20 0 178 765 ; +C -1 ; WX 500 ; N mu ; B 75 -189 422 556 ; +C -1 ; WX 611 ; N Oacute ; B 59 -18 553 959 ; +C -1 ; WX 500 ; N eth ; B 42 -15 440 770 ; +C -1 ; WX 556 ; N Adieresis ; B 11 0 546 944 ; +C -1 ; WX 556 ; N Yacute ; B 11 0 546 959 ; +C -1 ; WX 250 ; N brokenbar ; B 93 0 157 750 ; +C -1 ; WX 750 ; N onehalf ; B 42 0 709 750 ; +EndCharMetrics +StartKernData +StartKernPairs 115 + +KPX A y -18 +KPX A w -18 +KPX A v -18 +KPX A quoteright -55 +KPX A Y -55 +KPX A W -37 +KPX A V -37 +KPX A T -55 + +KPX F period -111 +KPX F comma -111 +KPX F A -37 + +KPX L y -37 +KPX L quoteright -92 +KPX L Y -92 +KPX L W -74 +KPX L V -74 +KPX L T -74 + +KPX P period -129 +KPX P comma -129 +KPX P A -37 + +KPX R y 0 +KPX R Y -18 +KPX R W 0 +KPX R V 0 +KPX R T -18 + +KPX T y -55 +KPX T w -74 +KPX T u -74 +KPX T semicolon -74 +KPX T s -74 +KPX T r -74 +KPX T period -92 +KPX T o -74 +KPX T i -18 +KPX T hyphen -55 +KPX T e -74 +KPX T comma -92 +KPX T colon -74 +KPX T c -74 +KPX T a -74 +KPX T A -55 + +KPX V y 0 +KPX V u -18 +KPX V semicolon -18 +KPX V r -18 +KPX V period -92 +KPX V o -18 +KPX V i 0 +KPX V hyphen -18 +KPX V e -18 +KPX V comma -92 +KPX V colon -18 +KPX V a -18 +KPX V A -37 + +KPX W y 0 +KPX W u 0 +KPX W semicolon 0 +KPX W r 0 +KPX W period -74 +KPX W o -18 +KPX W i 0 +KPX W hyphen -18 +KPX W e -18 +KPX W comma -74 +KPX W colon 0 +KPX W a -18 +KPX W A -18 + +KPX Y v -18 +KPX Y u -37 +KPX Y semicolon -37 +KPX Y q -55 +KPX Y period -111 +KPX Y p -37 +KPX Y o -55 +KPX Y i -18 +KPX Y hyphen -74 +KPX Y e -55 +KPX Y comma -111 +KPX Y colon -37 +KPX Y a -55 +KPX Y A -55 + +KPX f quoteright 18 +KPX f f 0 + +KPX quoteleft quoteleft -18 + +KPX quoteright t 0 +KPX quoteright s -55 +KPX quoteright quoteright -18 + +KPX r z 20 +KPX r y 18 +KPX r x 20 +KPX r w 18 +KPX r v 18 +KPX r u 0 +KPX r t 0 +KPX r r 0 +KPX r quoteright 0 +KPX r q 0 +KPX r period -74 +KPX r o 0 +KPX r n 0 +KPX r m 0 +KPX r hyphen -37 +KPX r h 0 +KPX r g 0 +KPX r f 20 +KPX r e 0 +KPX r d 0 +KPX r comma -74 +KPX r c -20 + +KPX v period -55 +KPX v comma -55 + +KPX w period -37 +KPX w comma -37 + +KPX y period -55 +KPX y comma -55 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 112 194 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 112 194 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 112 194 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 112 194 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 153 194 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 112 194 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 112 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 84 194 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 84 194 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 84 194 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 84 194 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute -27 194 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -27 194 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -27 194 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -27 194 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 139 194 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 139 194 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 139 194 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 139 194 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 139 194 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 139 194 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 112 194 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 139 194 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 139 194 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 139 194 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 139 194 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 112 194 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 112 194 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 84 194 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 56 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 56 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 56 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 56 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 97 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 56 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 56 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 56 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 56 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 56 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 56 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -55 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -55 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -55 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -55 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 84 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 84 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 84 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 84 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 84 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 84 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 56 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 84 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 84 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 84 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 84 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 56 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 56 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 28 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Cn+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Cn+ new file mode 100755 index 0000000000000..cadc80349106a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Cn+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 556 ; N Ccaron ; B 53 -18 503 960 ; +C -1 ; WX 444 ; N ccaron ; B 44 -15 405 765 ; +C -1 ; WX 611 ; N Dcaron ; B 82 0 548 960 ; +C -1 ; WX 566 ; N dcaron ; B 48 -15 527 825 ; +C -1 ; WX 500 ; N Ecaron ; B 74 0 451 960 ; +C -1 ; WX 444 ; N ecaron ; B 43 -15 395 765 ; +C -1 ; WX 500 ; N Lcaron ; B 83 0 472 825 ; +C -1 ; WX 500 ; N Lacute ; B 83 0 472 960 ; +C -1 ; WX 288 ; N lcaron ; B 72 0 254 825 ; +C -1 ; WX 222 ; N lacute ; B 65 0 263 960 ; +C -1 ; WX 611 ; N Ncaron ; B 77 0 534 960 ; +C -1 ; WX 500 ; N ncaron ; B 73 0 428 765 ; +C -1 ; WX 611 ; N Rcaron ; B 86 0 565 960 ; +C -1 ; WX 611 ; N Racute ; B 86 0 565 960 ; +C -1 ; WX 333 ; N rcaron ; B 21 0 322 765 ; +C -1 ; WX 333 ; N racute ; B 81 0 322 765 ; +C -1 ; WX 500 ; N Tcaron ; B 15 0 486 960 ; +C -1 ; WX 344 ; N tcaron ; B 9 0 360 750 ; +C -1 ; WX 611 ; N Uring ; B 81 -18 531 960 ; +C -1 ; WX 500 ; N uring ; B 77 -15 424 796 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 156 195 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 73 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 139 195 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 369 75 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 83 195 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 55 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 126 75 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 83 195 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 96 75 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute -35 195 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 139 195 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 83 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 139 195 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 177 195 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 20 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 83 195 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 202 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 180 164 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 125 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBd b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBd new file mode 100755 index 0000000000000..d194cbce44169 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBd @@ -0,0 +1,447 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989 Adobe Systems Incorporated. All rights reserved. +Comment Creation Date: Tue Dec 5 16:31:49 1989 +Comment UniqueID 26320 +Comment VMusage 26214 33106 +FontName Helvetica-Condensed-Bold +FullName Helvetica Condensed Bold +FamilyName Helvetica +Weight BoldCondensed +ItalicAngle 0 +IsFixedPitch false +FontBBox -169 -228 1091 971 +UnderlinePosition -90 +UnderlineThickness 58 +Version 001.003 +Notice Copyright (c) 1985, 1987, 1989 Adobe Systems Incorporated. All rights reserved.Helvetica is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 750 +XHeight 564 +Ascender 750 +Descender -189 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 101 0 232 750 ; +C 34 ; WX 333 ; N quotedbl ; B 16 468 318 739 ; +C 35 ; WX 500 ; N numbersign ; B 31 0 469 738 ; +C 36 ; WX 500 ; N dollar ; B 35 -124 466 803 ; +C 37 ; WX 833 ; N percent ; B 31 -15 803 750 ; +C 38 ; WX 667 ; N ampersand ; B 63 -18 615 768 ; +C 39 ; WX 278 ; N quoteright ; B 81 479 202 750 ; +C 40 ; WX 333 ; N parenleft ; B 52 -198 281 768 ; +C 41 ; WX 333 ; N parenright ; B 52 -198 281 768 ; +C 42 ; WX 500 ; N asterisk ; B 79 412 422 738 ; +C 43 ; WX 500 ; N plus ; B 26 0 475 492 ; +C 44 ; WX 333 ; N comma ; B 101 -145 233 132 ; +C 45 ; WX 333 ; N hyphen ; B 48 255 286 370 ; +C 46 ; WX 333 ; N period ; B 101 0 233 132 ; +C 47 ; WX 278 ; N slash ; B -11 -94 312 750 ; +C 48 ; WX 500 ; N zero ; B 48 -15 453 753 ; +C 49 ; WX 500 ; N one ; B 44 0 353 750 ; +C 50 ; WX 500 ; N two ; B 32 0 453 753 ; +C 51 ; WX 500 ; N three ; B 28 -15 453 753 ; +C 52 ; WX 500 ; N four ; B 23 0 470 738 ; +C 53 ; WX 500 ; N five ; B 37 -15 458 738 ; +C 54 ; WX 500 ; N six ; B 42 -15 459 753 ; +C 55 ; WX 500 ; N seven ; B 32 0 454 738 ; +C 56 ; WX 500 ; N eight ; B 41 -15 460 753 ; +C 57 ; WX 500 ; N nine ; B 42 -15 459 753 ; +C 58 ; WX 278 ; N colon ; B 73 0 205 556 ; +C 59 ; WX 278 ; N semicolon ; B 73 -145 205 556 ; +C 60 ; WX 500 ; N less ; B 42 -24 459 527 ; +C 61 ; WX 500 ; N equal ; B 26 96 475 401 ; +C 62 ; WX 500 ; N greater ; B 42 -24 459 527 ; +C 63 ; WX 500 ; N question ; B 51 0 440 768 ; +C 64 ; WX 833 ; N at ; B 38 -18 795 768 ; +C 65 ; WX 556 ; N A ; B 9 0 547 750 ; +C 66 ; WX 556 ; N B ; B 65 0 506 750 ; +C 67 ; WX 556 ; N C ; B 55 -18 512 768 ; +C 68 ; WX 611 ; N D ; B 72 0 550 750 ; +C 69 ; WX 500 ; N E ; B 64 0 458 750 ; +C 70 ; WX 500 ; N F ; B 73 0 470 750 ; +C 71 ; WX 611 ; N G ; B 55 -18 542 768 ; +C 72 ; WX 611 ; N H ; B 68 0 544 750 ; +C 73 ; WX 278 ; N I ; B 69 0 209 750 ; +C 74 ; WX 444 ; N J ; B 7 -18 384 750 ; +C 75 ; WX 556 ; N K ; B 68 0 547 750 ; +C 76 ; WX 500 ; N L ; B 68 0 468 750 ; +C 77 ; WX 778 ; N M ; B 67 0 712 750 ; +C 78 ; WX 611 ; N N ; B 68 0 543 750 ; +C 79 ; WX 611 ; N O ; B 61 -18 551 768 ; +C 80 ; WX 556 ; N P ; B 68 0 529 750 ; +C 81 ; WX 611 ; N Q ; B 61 -71 587 768 ; +C 82 ; WX 611 ; N R ; B 66 0 567 750 ; +C 83 ; WX 556 ; N S ; B 49 -18 508 768 ; +C 84 ; WX 500 ; N T ; B 17 0 484 750 ; +C 85 ; WX 611 ; N U ; B 68 -18 544 750 ; +C 86 ; WX 556 ; N V ; B 21 0 536 750 ; +C 87 ; WX 833 ; N W ; B 24 0 810 750 ; +C 88 ; WX 556 ; N X ; B 11 0 545 750 ; +C 89 ; WX 556 ; N Y ; B 12 0 545 750 ; +C 90 ; WX 500 ; N Z ; B 33 0 468 750 ; +C 91 ; WX 333 ; N bracketleft ; B 81 -94 280 750 ; +C 92 ; WX 250 ; N backslash ; B -89 0 340 750 ; +C 93 ; WX 333 ; N bracketright ; B 53 -94 252 750 ; +C 94 ; WX 500 ; N asciicircum ; B 10 326 490 750 ; +C 95 ; WX 500 ; N underscore ; B 0 -119 500 -61 ; +C 96 ; WX 278 ; N quoteleft ; B 76 495 197 766 ; +C 97 ; WX 500 ; N a ; B 42 -15 440 579 ; +C 98 ; WX 500 ; N b ; B 64 -15 444 750 ; +C 99 ; WX 444 ; N c ; B 49 -15 403 579 ; +C 100 ; WX 500 ; N d ; B 53 -15 433 750 ; +C 101 ; WX 500 ; N e ; B 53 -15 443 579 ; +C 102 ; WX 278 ; N f ; B 21 0 257 750 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B 53 -190 433 579 ; +C 104 ; WX 500 ; N h ; B 61 0 440 750 ; +C 105 ; WX 278 ; N i ; B 74 0 204 750 ; +C 106 ; WX 278 ; N j ; B 31 -192 210 750 ; +C 107 ; WX 444 ; N k ; B 48 0 443 750 ; +C 108 ; WX 278 ; N l ; B 74 0 204 750 ; +C 109 ; WX 778 ; N m ; B 66 0 712 579 ; +C 110 ; WX 500 ; N n ; B 61 0 440 579 ; +C 111 ; WX 500 ; N o ; B 53 -15 447 579 ; +C 112 ; WX 500 ; N p ; B 58 -189 438 579 ; +C 113 ; WX 500 ; N q ; B 50 -188 430 579 ; +C 114 ; WX 333 ; N r ; B 60 0 319 574 ; +C 115 ; WX 444 ; N s ; B 28 -15 407 579 ; +C 116 ; WX 278 ; N t ; B 14 -7 252 719 ; +C 117 ; WX 500 ; N u ; B 58 -15 431 564 ; +C 118 ; WX 444 ; N v ; B 10 0 434 564 ; +C 119 ; WX 667 ; N w ; B 11 0 645 564 ; +C 120 ; WX 444 ; N x ; B 8 0 436 564 ; +C 121 ; WX 444 ; N y ; B 5 -195 429 564 ; +C 122 ; WX 389 ; N z ; B 23 0 367 564 ; +C 123 ; WX 274 ; N braceleft ; B -32 -92 240 750 ; +C 124 ; WX 250 ; N bar ; B 75 0 175 750 ; +C 125 ; WX 274 ; N braceright ; B 34 -94 306 750 ; +C 126 ; WX 500 ; N asciitilde ; B 26 153 475 359 ; +C 161 ; WX 333 ; N exclamdown ; B 102 -170 232 579 ; +C 162 ; WX 500 ; N cent ; B 72 -122 428 671 ; +C 163 ; WX 500 ; N sterling ; B 35 -15 487 768 ; +C 164 ; WX 167 ; N fraction ; B -169 0 331 738 ; +C 165 ; WX 500 ; N yen ; B -18 0 518 750 ; +C 166 ; WX 500 ; N florin ; B 9 -185 492 763 ; +C 167 ; WX 500 ; N section ; B 37 -183 463 768 ; +C 168 ; WX 500 ; N currency ; B 9 58 492 560 ; +C 169 ; WX 250 ; N quotesingle ; B 66 468 185 739 ; +C 170 ; WX 500 ; N quotedblleft ; B 87 495 405 766 ; +C 171 ; WX 500 ; N guillemotleft ; B 74 62 419 447 ; +C 172 ; WX 278 ; N guilsinglleft ; B 58 62 215 447 ; +C 173 ; WX 278 ; N guilsinglright ; B 63 62 220 447 ; +C 174 ; WX 500 ; N fi ; B 10 0 446 750 ; +C 175 ; WX 500 ; N fl ; B 10 0 443 750 ; +C 177 ; WX 500 ; N endash ; B 0 259 500 369 ; +C 178 ; WX 500 ; N dagger ; B 37 -155 463 768 ; +C 179 ; WX 500 ; N daggerdbl ; B 35 -161 466 768 ; +C 180 ; WX 333 ; N periodcentered ; B 101 183 233 315 ; +C 182 ; WX 550 ; N paragraph ; B 23 -116 526 750 ; +C 183 ; WX 420 ; N bullet ; B 22 186 398 562 ; +C 184 ; WX 278 ; N quotesinglbase ; B 87 -138 207 132 ; +C 185 ; WX 500 ; N quotedblbase ; B 96 -138 413 132 ; +C 186 ; WX 500 ; N quotedblright ; B 95 479 413 750 ; +C 187 ; WX 500 ; N guillemotright ; B 81 62 426 447 ; +C 188 ; WX 1000 ; N ellipsis ; B 101 0 899 132 ; +C 189 ; WX 1111 ; N perthousand ; B 21 -18 1091 748 ; +C 191 ; WX 500 ; N questiondown ; B 60 -190 449 579 ; +C 193 ; WX 333 ; N grave ; B 1 629 250 775 ; +C 194 ; WX 333 ; N acute ; B 83 629 332 775 ; +C 195 ; WX 333 ; N circumflex ; B -10 644 343 790 ; +C 196 ; WX 333 ; N tilde ; B -16 636 350 764 ; +C 197 ; WX 333 ; N macron ; B -6 666 340 740 ; +C 198 ; WX 333 ; N breve ; B -1 635 335 780 ; +C 199 ; WX 333 ; N dotaccent ; B 103 644 230 759 ; +C 200 ; WX 333 ; N dieresis ; B 5 644 328 759 ; +C 202 ; WX 333 ; N ring ; B 60 632 273 845 ; +C 203 ; WX 333 ; N cedilla ; B 39 -228 275 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B -17 634 447 780 ; +C 206 ; WX 333 ; N ogonek ; B 88 -205 278 0 ; +C 207 ; WX 333 ; N caron ; B -10 634 343 780 ; +C 208 ; WX 1000 ; N emdash ; B 0 259 1000 369 ; +C 225 ; WX 778 ; N AE ; B -22 0 750 750 ; +C 227 ; WX 300 ; N ordfeminine ; B 20 291 281 768 ; +C 232 ; WX 500 ; N Lslash ; B 0 0 474 750 ; +C 233 ; WX 611 ; N Oslash ; B 36 -38 578 779 ; +C 234 ; WX 833 ; N OE ; B 61 -18 792 768 ; +C 235 ; WX 300 ; N ordmasculine ; B 22 291 278 768 ; +C 241 ; WX 722 ; N ae ; B 44 -15 672 579 ; +C 245 ; WX 278 ; N dotlessi ; B 74 0 204 564 ; +C 248 ; WX 278 ; N lslash ; B 2 0 272 750 ; +C 249 ; WX 500 ; N oslash ; B 7 -58 492 617 ; +C 250 ; WX 722 ; N oe ; B 46 -15 678 579 ; +C 251 ; WX 500 ; N germandbls ; B 60 -15 445 768 ; +C -1 ; WX 500 ; N Zcaron ; B 33 0 468 946 ; +C -1 ; WX 444 ; N ccedilla ; B 49 -228 403 579 ; +C -1 ; WX 444 ; N ydieresis ; B 5 -195 429 759 ; +C -1 ; WX 500 ; N atilde ; B 42 -15 440 744 ; +C -1 ; WX 278 ; N icircumflex ; B -47 0 306 770 ; +C -1 ; WX 300 ; N threesuperior ; B 12 290 288 751 ; +C -1 ; WX 500 ; N ecircumflex ; B 53 -15 443 770 ; +C -1 ; WX 500 ; N thorn ; B 58 -189 438 750 ; +C -1 ; WX 500 ; N egrave ; B 53 -15 443 775 ; +C -1 ; WX 300 ; N twosuperior ; B 13 300 287 752 ; +C -1 ; WX 500 ; N eacute ; B 53 -15 443 775 ; +C -1 ; WX 500 ; N otilde ; B 53 -15 447 744 ; +C -1 ; WX 556 ; N Aacute ; B 9 0 547 961 ; +C -1 ; WX 500 ; N ocircumflex ; B 53 -15 447 770 ; +C -1 ; WX 444 ; N yacute ; B 5 -195 429 775 ; +C -1 ; WX 500 ; N udieresis ; B 58 -15 431 759 ; +C -1 ; WX 750 ; N threequarters ; B 12 0 739 751 ; +C -1 ; WX 500 ; N acircumflex ; B 42 -15 440 770 ; +C -1 ; WX 611 ; N Eth ; B -6 0 550 750 ; +C -1 ; WX 500 ; N edieresis ; B 53 -15 443 759 ; +C -1 ; WX 500 ; N ugrave ; B 58 -15 431 775 ; +C -1 ; WX 860 ; N trademark ; B 1 346 774 750 ; +C -1 ; WX 500 ; N ograve ; B 53 -15 447 775 ; +C -1 ; WX 444 ; N scaron ; B 28 -15 407 760 ; +C -1 ; WX 278 ; N Idieresis ; B -22 0 301 945 ; +C -1 ; WX 500 ; N uacute ; B 58 -15 431 775 ; +C -1 ; WX 500 ; N agrave ; B 42 -15 440 775 ; +C -1 ; WX 500 ; N ntilde ; B 61 0 440 744 ; +C -1 ; WX 500 ; N aring ; B 42 -15 440 845 ; +C -1 ; WX 389 ; N zcaron ; B 18 0 371 760 ; +C -1 ; WX 278 ; N Icircumflex ; B -37 0 316 956 ; +C -1 ; WX 611 ; N Ntilde ; B 68 0 543 930 ; +C -1 ; WX 500 ; N ucircumflex ; B 58 -15 431 780 ; +C -1 ; WX 500 ; N Ecircumflex ; B 64 0 458 956 ; +C -1 ; WX 278 ; N Iacute ; B 56 0 305 961 ; +C -1 ; WX 556 ; N Ccedilla ; B 55 -228 512 768 ; +C -1 ; WX 611 ; N Odieresis ; B 61 -18 551 945 ; +C -1 ; WX 556 ; N Scaron ; B 49 -18 508 946 ; +C -1 ; WX 500 ; N Edieresis ; B 64 0 458 945 ; +C -1 ; WX 278 ; N Igrave ; B -26 0 223 961 ; +C -1 ; WX 500 ; N adieresis ; B 42 -15 440 759 ; +C -1 ; WX 611 ; N Ograve ; B 61 -18 551 961 ; +C -1 ; WX 500 ; N Egrave ; B 64 0 458 961 ; +C -1 ; WX 556 ; N Ydieresis ; B 12 0 545 945 ; +C -1 ; WX 830 ; N registered ; B 22 -18 808 768 ; +C -1 ; WX 611 ; N Otilde ; B 61 -18 551 930 ; +C -1 ; WX 750 ; N onequarter ; B 20 0 729 750 ; +C -1 ; WX 611 ; N Ugrave ; B 68 -18 544 961 ; +C -1 ; WX 611 ; N Ucircumflex ; B 68 -18 544 956 ; +C -1 ; WX 556 ; N Thorn ; B 68 0 529 750 ; +C -1 ; WX 500 ; N divide ; B 26 6 475 492 ; +C -1 ; WX 556 ; N Atilde ; B 9 0 547 930 ; +C -1 ; WX 611 ; N Uacute ; B 68 -18 544 961 ; +C -1 ; WX 611 ; N Ocircumflex ; B 61 -18 551 956 ; +C -1 ; WX 500 ; N logicalnot ; B 26 105 475 401 ; +C -1 ; WX 556 ; N Aring ; B 9 0 547 971 ; +C -1 ; WX 278 ; N idieresis ; B -22 0 301 759 ; +C -1 ; WX 278 ; N iacute ; B 56 0 305 775 ; +C -1 ; WX 500 ; N aacute ; B 42 -15 440 775 ; +C -1 ; WX 500 ; N plusminus ; B 26 -15 475 513 ; +C -1 ; WX 500 ; N multiply ; B 26 22 475 476 ; +C -1 ; WX 611 ; N Udieresis ; B 68 -18 544 945 ; +C -1 ; WX 500 ; N minus ; B 26 194 475 304 ; +C -1 ; WX 300 ; N onesuperior ; B 50 300 251 750 ; +C -1 ; WX 500 ; N Eacute ; B 64 0 458 961 ; +C -1 ; WX 556 ; N Acircumflex ; B 9 0 547 956 ; +C -1 ; WX 830 ; N copyright ; B 22 -18 808 768 ; +C -1 ; WX 556 ; N Agrave ; B 9 0 547 961 ; +C -1 ; WX 500 ; N odieresis ; B 53 -15 447 759 ; +C -1 ; WX 500 ; N oacute ; B 53 -15 447 775 ; +C -1 ; WX 400 ; N degree ; B 50 450 350 750 ; +C -1 ; WX 278 ; N igrave ; B -26 0 223 775 ; +C -1 ; WX 500 ; N mu ; B 58 -189 431 564 ; +C -1 ; WX 611 ; N Oacute ; B 61 -18 551 961 ; +C -1 ; WX 500 ; N eth ; B 46 -15 443 776 ; +C -1 ; WX 556 ; N Adieresis ; B 9 0 547 945 ; +C -1 ; WX 556 ; N Yacute ; B 12 0 545 961 ; +C -1 ; WX 250 ; N brokenbar ; B 75 0 175 750 ; +C -1 ; WX 750 ; N onehalf ; B 12 0 739 750 ; +EndCharMetrics +StartKernData +StartKernPairs 115 + +KPX A y -18 +KPX A w -18 +KPX A v -18 +KPX A quoteright -55 +KPX A Y -55 +KPX A W -37 +KPX A V -37 +KPX A T -55 + +KPX F period -111 +KPX F comma -111 +KPX F A -37 + +KPX L y -37 +KPX L quoteright -92 +KPX L Y -92 +KPX L W -74 +KPX L V -74 +KPX L T -74 + +KPX P period -129 +KPX P comma -129 +KPX P A -37 + +KPX R y 0 +KPX R Y -18 +KPX R W 0 +KPX R V 0 +KPX R T -18 + +KPX T y -55 +KPX T w -74 +KPX T u -74 +KPX T semicolon -74 +KPX T s -74 +KPX T r -74 +KPX T period -92 +KPX T o -74 +KPX T i -18 +KPX T hyphen -55 +KPX T e -74 +KPX T comma -92 +KPX T colon -74 +KPX T c -74 +KPX T a -74 +KPX T A -55 + +KPX V y 0 +KPX V u -18 +KPX V semicolon -18 +KPX V r -18 +KPX V period -92 +KPX V o -18 +KPX V i 0 +KPX V hyphen -18 +KPX V e -18 +KPX V comma -92 +KPX V colon -18 +KPX V a -18 +KPX V A -37 + +KPX W y 0 +KPX W u 0 +KPX W semicolon 0 +KPX W r 0 +KPX W period -74 +KPX W o -18 +KPX W i 0 +KPX W hyphen -18 +KPX W e -18 +KPX W comma -74 +KPX W colon 0 +KPX W a -18 +KPX W A -18 + +KPX Y v -18 +KPX Y u -37 +KPX Y semicolon -37 +KPX Y q -55 +KPX Y period -111 +KPX Y p -37 +KPX Y o -55 +KPX Y i -18 +KPX Y hyphen -74 +KPX Y e -55 +KPX Y comma -111 +KPX Y colon -37 +KPX Y a -55 +KPX Y A -55 + +KPX f quoteright 18 +KPX f f 0 + +KPX quoteleft quoteleft -18 + +KPX quoteright t 0 +KPX quoteright s -55 +KPX quoteright quoteright -18 + +KPX r z 20 +KPX r y 18 +KPX r x 20 +KPX r w 18 +KPX r v 18 +KPX r u 0 +KPX r t 0 +KPX r r 0 +KPX r quoteright 0 +KPX r q 0 +KPX r period -74 +KPX r o 0 +KPX r n 0 +KPX r m 0 +KPX r hyphen -37 +KPX r h 0 +KPX r g 0 +KPX r f 0 +KPX r e 0 +KPX r d 0 +KPX r comma -74 +KPX r c 0 + +KPX v period -55 +KPX v comma -55 + +KPX w period -37 +KPX w comma -37 + +KPX y period -55 +KPX y comma -55 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 112 186 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 102 166 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 112 186 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 112 186 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 112 126 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 112 166 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 112 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 84 186 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 84 166 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 84 186 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 84 186 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute -27 186 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -27 166 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -27 186 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -27 186 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 139 166 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 139 186 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 139 166 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 139 186 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 139 186 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 139 166 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 112 166 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 139 186 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 139 166 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 139 186 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 139 186 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 112 186 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 112 186 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 84 166 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 84 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 84 -20 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 84 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 84 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 84 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 84 -20 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 56 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 84 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 84 -20 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 84 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 84 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -37 -20 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 84 -20 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 84 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 84 -20 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 84 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 84 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 84 -20 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 46 -20 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 84 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 84 -10 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 84 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 84 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 56 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 56 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 28 -20 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBd+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBd+ new file mode 100755 index 0000000000000..9af1668b47ab9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBd+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 556 ; N Ccaron ; B 55 -18 512 965 ; +C -1 ; WX 444 ; N ccaron ; B 49 -15 416 780 ; +C -1 ; WX 611 ; N Dcaron ; B 72 0 550 965 ; +C -1 ; WX 585 ; N dcaron ; B 53 -15 566 825 ; +C -1 ; WX 500 ; N Ecaron ; B 64 0 458 965 ; +C -1 ; WX 500 ; N ecaron ; B 53 -15 443 780 ; +C -1 ; WX 500 ; N Lcaron ; B 68 0 468 825 ; +C -1 ; WX 500 ; N Lacute ; B 68 0 468 965 ; +C -1 ; WX 363 ; N lcaron ; B 74 0 337 825 ; +C -1 ; WX 278 ; N lacute ; B 74 0 330 965 ; +C -1 ; WX 611 ; N Ncaron ; B 68 0 543 965 ; +C -1 ; WX 500 ; N ncaron ; B 61 0 440 780 ; +C -1 ; WX 611 ; N Rcaron ; B 66 0 567 965 ; +C -1 ; WX 611 ; N Racute ; B 66 0 567 965 ; +C -1 ; WX 333 ; N rcaron ; B -10 0 343 780 ; +C -1 ; WX 333 ; N racute ; B 60 0 357 775 ; +C -1 ; WX 500 ; N Tcaron ; B 17 0 484 965 ; +C -1 ; WX 363 ; N tcaron ; B 14 -7 385 750 ; +C -1 ; WX 611 ; N Uring ; B 68 -18 544 965 ; +C -1 ; WX 500 ; N uring ; B 58 -15 431 845 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 157 185 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 73 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 139 185 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 364 75 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 83 185 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 83 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 140 75 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 83 190 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 135 75 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute -2 190 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 139 185 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 83 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 139 185 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 186 190 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 25 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 83 185 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 183 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 139 120 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 83 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBdO b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBdO new file mode 100755 index 0000000000000..3512c9dc58d98 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBdO @@ -0,0 +1,447 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989 Adobe Systems Incorporated. All rights reserved. +Comment Creation Date: Tue Dec 5 16:32:56 1989 +Comment UniqueID 26321 +Comment VMusage 6334 40142 +FontName Helvetica-Condensed-BoldObl +FullName Helvetica Condensed Bold Oblique +FamilyName Helvetica +Weight BoldCondensed +ItalicAngle -12 +IsFixedPitch false +FontBBox -169 -228 1141 971 +UnderlinePosition -90 +UnderlineThickness 58 +Version 001.003 +Notice Copyright (c) 1985, 1987, 1989 Adobe Systems Incorporated. All rights reserved.Helvetica is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 750 +XHeight 564 +Ascender 750 +Descender -189 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 102 0 390 750 ; +C 34 ; WX 333 ; N quotedbl ; B 115 468 475 739 ; +C 35 ; WX 500 ; N numbersign ; B 81 0 580 738 ; +C 36 ; WX 500 ; N dollar ; B 68 -124 576 803 ; +C 37 ; WX 833 ; N percent ; B 138 -15 853 750 ; +C 38 ; WX 667 ; N ampersand ; B 101 -18 676 768 ; +C 39 ; WX 278 ; N quoteright ; B 183 479 361 750 ; +C 40 ; WX 333 ; N parenleft ; B 91 -198 442 768 ; +C 41 ; WX 333 ; N parenright ; B 12 -198 363 768 ; +C 42 ; WX 500 ; N asterisk ; B 203 412 546 738 ; +C 43 ; WX 500 ; N plus ; B 67 0 540 492 ; +C 44 ; WX 333 ; N comma ; B 70 -145 261 132 ; +C 45 ; WX 333 ; N hyphen ; B 102 255 365 370 ; +C 46 ; WX 333 ; N period ; B 101 0 261 132 ; +C 47 ; WX 278 ; N slash ; B -31 -94 471 750 ; +C 48 ; WX 500 ; N zero ; B 82 -15 576 753 ; +C 49 ; WX 500 ; N one ; B 155 0 512 750 ; +C 50 ; WX 500 ; N two ; B 32 0 577 753 ; +C 51 ; WX 500 ; N three ; B 61 -15 563 753 ; +C 52 ; WX 500 ; N four ; B 55 0 563 738 ; +C 53 ; WX 500 ; N five ; B 72 -15 581 738 ; +C 54 ; WX 500 ; N six ; B 83 -15 575 753 ; +C 55 ; WX 500 ; N seven ; B 126 0 611 738 ; +C 56 ; WX 500 ; N eight ; B 76 -15 570 753 ; +C 57 ; WX 500 ; N nine ; B 84 -15 575 753 ; +C 58 ; WX 278 ; N colon ; B 73 0 323 556 ; +C 59 ; WX 278 ; N semicolon ; B 42 -145 323 556 ; +C 60 ; WX 500 ; N less ; B 85 -24 571 527 ; +C 61 ; WX 500 ; N equal ; B 46 96 560 401 ; +C 62 ; WX 500 ; N greater ; B 37 -24 523 527 ; +C 63 ; WX 500 ; N question ; B 147 0 569 768 ; +C 64 ; WX 833 ; N at ; B 109 -18 897 768 ; +C 65 ; WX 556 ; N A ; B 9 0 547 750 ; +C 66 ; WX 556 ; N B ; B 65 0 615 750 ; +C 67 ; WX 556 ; N C ; B 99 -18 630 768 ; +C 68 ; WX 611 ; N D ; B 72 0 662 750 ; +C 69 ; WX 500 ; N E ; B 64 0 617 750 ; +C 70 ; WX 500 ; N F ; B 73 0 629 750 ; +C 71 ; WX 611 ; N G ; B 99 -18 664 768 ; +C 72 ; WX 611 ; N H ; B 68 0 703 750 ; +C 73 ; WX 278 ; N I ; B 69 0 368 750 ; +C 74 ; WX 444 ; N J ; B 36 -18 543 750 ; +C 75 ; WX 556 ; N K ; B 68 0 697 750 ; +C 76 ; WX 500 ; N L ; B 68 0 491 750 ; +C 77 ; WX 778 ; N M ; B 67 0 871 750 ; +C 78 ; WX 611 ; N N ; B 68 0 702 750 ; +C 79 ; WX 611 ; N O ; B 105 -18 664 768 ; +C 80 ; WX 556 ; N P ; B 68 0 651 750 ; +C 81 ; WX 611 ; N Q ; B 105 -71 664 768 ; +C 82 ; WX 611 ; N R ; B 66 0 671 750 ; +C 83 ; WX 556 ; N S ; B 85 -18 613 768 ; +C 84 ; WX 500 ; N T ; B 153 0 643 750 ; +C 85 ; WX 611 ; N U ; B 105 -18 703 750 ; +C 86 ; WX 556 ; N V ; B 180 0 695 750 ; +C 87 ; WX 833 ; N W ; B 167 0 969 750 ; +C 88 ; WX 556 ; N X ; B 11 0 698 750 ; +C 89 ; WX 556 ; N Y ; B 171 0 704 750 ; +C 90 ; WX 500 ; N Z ; B 33 0 618 750 ; +C 91 ; WX 333 ; N bracketleft ; B 61 -94 439 750 ; +C 92 ; WX 250 ; N backslash ; B 70 0 340 750 ; +C 93 ; WX 333 ; N bracketright ; B 33 -94 411 750 ; +C 94 ; WX 500 ; N asciicircum ; B 89 326 569 750 ; +C 95 ; WX 500 ; N underscore ; B -25 -119 487 -61 ; +C 96 ; WX 278 ; N quoteleft ; B 181 495 360 766 ; +C 97 ; WX 500 ; N a ; B 68 -15 525 579 ; +C 98 ; WX 500 ; N b ; B 64 -15 534 750 ; +C 99 ; WX 444 ; N c ; B 79 -15 496 579 ; +C 100 ; WX 500 ; N d ; B 83 -15 592 750 ; +C 101 ; WX 500 ; N e ; B 88 -15 530 579 ; +C 102 ; WX 278 ; N f ; B 71 0 416 750 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B 44 -190 553 579 ; +C 104 ; WX 500 ; N h ; B 61 0 539 750 ; +C 105 ; WX 278 ; N i ; B 74 0 363 750 ; +C 106 ; WX 278 ; N j ; B -9 -192 368 750 ; +C 107 ; WX 444 ; N k ; B 48 0 563 750 ; +C 108 ; WX 278 ; N l ; B 74 0 363 750 ; +C 109 ; WX 778 ; N m ; B 66 0 812 579 ; +C 110 ; WX 500 ; N n ; B 61 0 539 579 ; +C 111 ; WX 500 ; N o ; B 88 -15 531 579 ; +C 112 ; WX 500 ; N p ; B 18 -189 528 579 ; +C 113 ; WX 500 ; N q ; B 80 -188 550 579 ; +C 114 ; WX 333 ; N r ; B 60 0 441 574 ; +C 115 ; WX 444 ; N s ; B 56 -15 498 579 ; +C 116 ; WX 278 ; N t ; B 83 -7 372 719 ; +C 117 ; WX 500 ; N u ; B 78 -15 551 564 ; +C 118 ; WX 444 ; N v ; B 130 0 554 564 ; +C 119 ; WX 667 ; N w ; B 127 0 765 564 ; +C 120 ; WX 444 ; N x ; B 8 0 553 564 ; +C 121 ; WX 444 ; N y ; B 36 -195 549 564 ; +C 122 ; WX 389 ; N z ; B 23 0 487 564 ; +C 123 ; WX 274 ; N braceleft ; B 37 -92 399 750 ; +C 124 ; WX 250 ; N bar ; B 75 0 334 750 ; +C 125 ; WX 274 ; N braceright ; B 14 -94 375 750 ; +C 126 ; WX 500 ; N asciitilde ; B 74 153 536 359 ; +C 161 ; WX 333 ; N exclamdown ; B 66 -170 355 579 ; +C 162 ; WX 500 ; N cent ; B 103 -122 521 671 ; +C 163 ; WX 500 ; N sterling ; B 52 -15 603 768 ; +C 164 ; WX 167 ; N fraction ; B -169 0 488 738 ; +C 165 ; WX 500 ; N yen ; B 89 0 677 750 ; +C 166 ; WX 500 ; N florin ; B -28 -185 651 763 ; +C 167 ; WX 500 ; N section ; B 48 -183 572 768 ; +C 168 ; WX 500 ; N currency ; B 38 58 594 560 ; +C 169 ; WX 250 ; N quotesingle ; B 165 468 342 739 ; +C 170 ; WX 500 ; N quotedblleft ; B 192 495 568 766 ; +C 171 ; WX 500 ; N guillemotleft ; B 117 62 514 447 ; +C 172 ; WX 278 ; N guilsinglleft ; B 101 62 310 447 ; +C 173 ; WX 278 ; N guilsinglright ; B 76 62 285 447 ; +C 174 ; WX 500 ; N fi ; B 60 0 605 750 ; +C 175 ; WX 500 ; N fl ; B 60 0 602 750 ; +C 177 ; WX 500 ; N endash ; B 55 259 578 369 ; +C 178 ; WX 500 ; N dagger ; B 127 -155 577 768 ; +C 179 ; WX 500 ; N daggerdbl ; B 51 -161 579 768 ; +C 180 ; WX 333 ; N periodcentered ; B 140 183 300 315 ; +C 182 ; WX 550 ; N paragraph ; B 139 -116 685 750 ; +C 183 ; WX 420 ; N bullet ; B 97 186 482 562 ; +C 184 ; WX 278 ; N quotesinglbase ; B 58 -138 235 132 ; +C 185 ; WX 500 ; N quotedblbase ; B 67 -138 441 132 ; +C 186 ; WX 500 ; N quotedblright ; B 197 479 572 750 ; +C 187 ; WX 500 ; N guillemotright ; B 94 62 491 447 ; +C 188 ; WX 1000 ; N ellipsis ; B 101 0 927 132 ; +C 189 ; WX 1111 ; N perthousand ; B 128 -18 1141 748 ; +C 191 ; WX 500 ; N questiondown ; B 54 -190 476 579 ; +C 193 ; WX 333 ; N grave ; B 166 629 384 775 ; +C 194 ; WX 333 ; N acute ; B 217 629 497 775 ; +C 195 ; WX 333 ; N circumflex ; B 127 644 480 790 ; +C 196 ; WX 333 ; N tilde ; B 119 636 512 764 ; +C 197 ; WX 333 ; N macron ; B 136 666 497 740 ; +C 198 ; WX 333 ; N breve ; B 161 635 501 780 ; +C 199 ; WX 333 ; N dotaccent ; B 240 644 391 759 ; +C 200 ; WX 333 ; N dieresis ; B 142 644 489 759 ; +C 202 ; WX 333 ; N ring ; B 215 632 432 845 ; +C 203 ; WX 333 ; N cedilla ; B -4 -228 248 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B 118 634 613 780 ; +C 206 ; WX 333 ; N ogonek ; B 63 -205 256 0 ; +C 207 ; WX 333 ; N caron ; B 156 634 509 780 ; +C 208 ; WX 1000 ; N emdash ; B 55 259 1078 369 ; +C 225 ; WX 778 ; N AE ; B -22 0 909 750 ; +C 227 ; WX 300 ; N ordfeminine ; B 82 291 421 768 ; +C 232 ; WX 500 ; N Lslash ; B 49 0 497 750 ; +C 233 ; WX 611 ; N Oslash ; B 34 -38 736 779 ; +C 234 ; WX 833 ; N OE ; B 111 -18 951 768 ; +C 235 ; WX 300 ; N ordmasculine ; B 84 291 417 768 ; +C 241 ; WX 722 ; N ae ; B 69 -15 762 579 ; +C 245 ; WX 278 ; N dotlessi ; B 74 0 324 564 ; +C 248 ; WX 278 ; N lslash ; B 68 0 391 750 ; +C 249 ; WX 500 ; N oslash ; B 2 -58 616 617 ; +C 250 ; WX 722 ; N oe ; B 81 -15 763 579 ; +C 251 ; WX 500 ; N germandbls ; B 60 -15 561 768 ; +C -1 ; WX 500 ; N Zcaron ; B 33 0 628 946 ; +C -1 ; WX 444 ; N ccedilla ; B 52 -228 496 579 ; +C -1 ; WX 444 ; N ydieresis ; B 36 -195 549 759 ; +C -1 ; WX 500 ; N atilde ; B 68 -15 592 744 ; +C -1 ; WX 278 ; N icircumflex ; B 74 0 439 770 ; +C -1 ; WX 300 ; N threesuperior ; B 96 290 416 751 ; +C -1 ; WX 500 ; N ecircumflex ; B 88 -15 560 770 ; +C -1 ; WX 500 ; N thorn ; B 18 -189 528 750 ; +C -1 ; WX 500 ; N egrave ; B 88 -15 530 775 ; +C -1 ; WX 300 ; N twosuperior ; B 77 300 425 752 ; +C -1 ; WX 500 ; N eacute ; B 88 -15 581 775 ; +C -1 ; WX 500 ; N otilde ; B 88 -15 592 744 ; +C -1 ; WX 556 ; N Aacute ; B 9 0 648 961 ; +C -1 ; WX 500 ; N ocircumflex ; B 88 -15 560 770 ; +C -1 ; WX 444 ; N yacute ; B 36 -195 553 775 ; +C -1 ; WX 500 ; N udieresis ; B 78 -15 573 759 ; +C -1 ; WX 750 ; N threequarters ; B 96 0 816 751 ; +C -1 ; WX 500 ; N acircumflex ; B 68 -15 560 770 ; +C -1 ; WX 611 ; N Eth ; B 64 0 662 750 ; +C -1 ; WX 500 ; N edieresis ; B 88 -15 573 759 ; +C -1 ; WX 500 ; N ugrave ; B 78 -15 551 775 ; +C -1 ; WX 860 ; N trademark ; B 144 346 933 750 ; +C -1 ; WX 500 ; N ograve ; B 88 -15 531 775 ; +C -1 ; WX 444 ; N scaron ; B 56 -15 551 760 ; +C -1 ; WX 278 ; N Idieresis ; B 69 0 502 945 ; +C -1 ; WX 500 ; N uacute ; B 78 -15 581 775 ; +C -1 ; WX 500 ; N agrave ; B 68 -15 525 775 ; +C -1 ; WX 500 ; N ntilde ; B 61 0 592 744 ; +C -1 ; WX 500 ; N aring ; B 68 -15 525 845 ; +C -1 ; WX 389 ; N zcaron ; B 23 0 533 760 ; +C -1 ; WX 278 ; N Icircumflex ; B 69 0 488 956 ; +C -1 ; WX 611 ; N Ntilde ; B 68 0 702 930 ; +C -1 ; WX 500 ; N ucircumflex ; B 78 -15 562 780 ; +C -1 ; WX 500 ; N Ecircumflex ; B 64 0 617 956 ; +C -1 ; WX 278 ; N Iacute ; B 69 0 509 961 ; +C -1 ; WX 556 ; N Ccedilla ; B 99 -228 630 768 ; +C -1 ; WX 611 ; N Odieresis ; B 105 -18 668 945 ; +C -1 ; WX 556 ; N Scaron ; B 85 -18 656 946 ; +C -1 ; WX 500 ; N Edieresis ; B 64 0 617 945 ; +C -1 ; WX 278 ; N Igrave ; B 69 0 396 961 ; +C -1 ; WX 500 ; N adieresis ; B 68 -15 573 759 ; +C -1 ; WX 611 ; N Ograve ; B 105 -18 664 961 ; +C -1 ; WX 500 ; N Egrave ; B 64 0 617 961 ; +C -1 ; WX 556 ; N Ydieresis ; B 171 0 704 945 ; +C -1 ; WX 830 ; N registered ; B 93 -18 897 768 ; +C -1 ; WX 611 ; N Otilde ; B 105 -18 687 930 ; +C -1 ; WX 750 ; N onequarter ; B 131 0 788 750 ; +C -1 ; WX 611 ; N Ugrave ; B 105 -18 703 961 ; +C -1 ; WX 611 ; N Ucircumflex ; B 105 -18 703 956 ; +C -1 ; WX 556 ; N Thorn ; B 68 0 618 750 ; +C -1 ; WX 500 ; N divide ; B 67 6 540 492 ; +C -1 ; WX 556 ; N Atilde ; B 9 0 660 930 ; +C -1 ; WX 611 ; N Uacute ; B 105 -18 703 961 ; +C -1 ; WX 611 ; N Ocircumflex ; B 105 -18 664 956 ; +C -1 ; WX 500 ; N logicalnot ; B 88 105 560 401 ; +C -1 ; WX 556 ; N Aring ; B 9 0 571 971 ; +C -1 ; WX 278 ; N idieresis ; B 74 0 462 759 ; +C -1 ; WX 278 ; N iacute ; B 74 0 470 775 ; +C -1 ; WX 500 ; N aacute ; B 68 -15 581 775 ; +C -1 ; WX 500 ; N plusminus ; B 23 -15 556 513 ; +C -1 ; WX 500 ; N multiply ; B 48 22 560 476 ; +C -1 ; WX 611 ; N Udieresis ; B 105 -18 703 945 ; +C -1 ; WX 500 ; N minus ; B 67 194 540 304 ; +C -1 ; WX 300 ; N onesuperior ; B 180 300 410 750 ; +C -1 ; WX 500 ; N Eacute ; B 64 0 620 961 ; +C -1 ; WX 556 ; N Acircumflex ; B 9 0 617 956 ; +C -1 ; WX 830 ; N copyright ; B 93 -18 897 768 ; +C -1 ; WX 556 ; N Agrave ; B 9 0 547 961 ; +C -1 ; WX 500 ; N odieresis ; B 88 -15 573 759 ; +C -1 ; WX 500 ; N oacute ; B 88 -15 581 775 ; +C -1 ; WX 400 ; N degree ; B 174 450 481 750 ; +C -1 ; WX 278 ; N igrave ; B 74 0 357 775 ; +C -1 ; WX 500 ; N mu ; B 18 -189 551 564 ; +C -1 ; WX 611 ; N Oacute ; B 105 -18 675 961 ; +C -1 ; WX 500 ; N eth ; B 81 -15 538 776 ; +C -1 ; WX 556 ; N Adieresis ; B 9 0 641 945 ; +C -1 ; WX 556 ; N Yacute ; B 171 0 704 961 ; +C -1 ; WX 250 ; N brokenbar ; B 75 0 334 750 ; +C -1 ; WX 750 ; N onehalf ; B 108 0 813 750 ; +EndCharMetrics +StartKernData +StartKernPairs 115 + +KPX A y -18 +KPX A w -18 +KPX A v -18 +KPX A quoteright -55 +KPX A Y -55 +KPX A W -37 +KPX A V -37 +KPX A T -55 + +KPX F period -111 +KPX F comma -111 +KPX F A -37 + +KPX L y -37 +KPX L quoteright -92 +KPX L Y -92 +KPX L W -74 +KPX L V -74 +KPX L T -74 + +KPX P period -129 +KPX P comma -129 +KPX P A -37 + +KPX R y 0 +KPX R Y -18 +KPX R W 0 +KPX R V 0 +KPX R T -18 + +KPX T y -55 +KPX T w -74 +KPX T u -74 +KPX T semicolon -74 +KPX T s -74 +KPX T r -74 +KPX T period -92 +KPX T o -74 +KPX T i -18 +KPX T hyphen -55 +KPX T e -74 +KPX T comma -92 +KPX T colon -74 +KPX T c -74 +KPX T a -74 +KPX T A -55 + +KPX V y 0 +KPX V u -18 +KPX V semicolon -18 +KPX V r -18 +KPX V period -92 +KPX V o -18 +KPX V i 0 +KPX V hyphen -18 +KPX V e -18 +KPX V comma -92 +KPX V colon -18 +KPX V a -18 +KPX V A -37 + +KPX W y 0 +KPX W u 0 +KPX W semicolon 0 +KPX W r 0 +KPX W period -74 +KPX W o -18 +KPX W i 0 +KPX W hyphen -18 +KPX W e -18 +KPX W comma -74 +KPX W colon 0 +KPX W a -18 +KPX W A -18 + +KPX Y v -18 +KPX Y u -37 +KPX Y semicolon -37 +KPX Y q -55 +KPX Y period -111 +KPX Y p -37 +KPX Y o -55 +KPX Y i -18 +KPX Y hyphen -74 +KPX Y e -55 +KPX Y comma -111 +KPX Y colon -37 +KPX Y a -55 +KPX Y A -55 + +KPX f quoteright 18 +KPX f f 0 + +KPX quoteleft quoteleft -18 + +KPX quoteright t 0 +KPX quoteright s -55 +KPX quoteright quoteright -18 + +KPX r z 20 +KPX r y 18 +KPX r x 20 +KPX r w 18 +KPX r v 18 +KPX r u 0 +KPX r t 0 +KPX r r 0 +KPX r quoteright 0 +KPX r q 0 +KPX r period -74 +KPX r o 0 +KPX r n 0 +KPX r m 0 +KPX r hyphen -37 +KPX r h 0 +KPX r g 0 +KPX r f 0 +KPX r e 0 +KPX r d 0 +KPX r comma -74 +KPX r c 0 + +KPX v period -55 +KPX v comma -55 + +KPX w period -37 +KPX w comma -37 + +KPX y period -55 +KPX y comma -55 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 152 186 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 137 166 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 152 186 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 152 186 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 139 126 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 147 166 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 112 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 124 186 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 119 166 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 124 186 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 124 186 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 13 186 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 8 166 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 13 186 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 13 186 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 174 166 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 179 186 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 174 166 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 179 186 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 179 186 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 174 166 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 147 166 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 179 186 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 174 166 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 179 186 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 179 186 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 152 186 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 152 186 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 119 166 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 84 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 80 -20 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 84 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 84 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 84 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 80 -20 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 56 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 84 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 80 -20 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 84 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 84 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -41 -20 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 80 -20 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 84 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 80 -20 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 84 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 84 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 80 -20 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 42 -20 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 84 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 82 -10 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 84 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 84 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 56 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 56 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 24 -20 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBdO+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBdO+ new file mode 100755 index 0000000000000..cdafb94c77b43 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBdO+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 556 ; N Ccaron ; B 99 -18 712 965 ; +C -1 ; WX 444 ; N ccaron ; B 79 -15 585 780 ; +C -1 ; WX 611 ; N Dcaron ; B 72 0 687 965 ; +C -1 ; WX 625 ; N dcaron ; B 83 -15 788 825 ; +C -1 ; WX 500 ; N Ecaron ; B 64 0 631 965 ; +C -1 ; WX 500 ; N ecaron ; B 88 -15 592 780 ; +C -1 ; WX 500 ; N Lcaron ; B 68 0 564 825 ; +C -1 ; WX 500 ; N Lacute ; B 68 0 620 965 ; +C -1 ; WX 403 ; N lcaron ; B 74 0 559 825 ; +C -1 ; WX 278 ; N lacute ; B 74 0 538 965 ; +C -1 ; WX 611 ; N Ncaron ; B 68 0 702 965 ; +C -1 ; WX 500 ; N ncaron ; B 61 0 592 780 ; +C -1 ; WX 611 ; N Rcaron ; B 66 0 687 965 ; +C -1 ; WX 611 ; N Racute ; B 66 0 729 965 ; +C -1 ; WX 333 ; N rcaron ; B 60 0 509 780 ; +C -1 ; WX 333 ; N racute ; B 60 0 525 775 ; +C -1 ; WX 500 ; N Tcaron ; B 153 0 643 965 ; +C -1 ; WX 403 ; N tcaron ; B 83 -7 568 750 ; +C -1 ; WX 611 ; N Uring ; B 105 -18 703 965 ; +C -1 ; WX 500 ; N uring ; B 78 -15 551 845 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 203 185 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 76 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 178 185 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 427 75 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 122 185 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 83 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 203 75 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 123 190 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 198 75 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 41 190 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 178 185 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 83 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 178 185 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 232 190 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 28 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 122 185 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 207 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 164 120 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 83 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBl b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBl new file mode 100755 index 0000000000000..ba31b182513a4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBl @@ -0,0 +1,445 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987 Adobe Systems Incorporated. All rights reserved. +Comment Creation Date:Thu Aug 13 17:02:44 PDT 1987 +FontName Helvetica-Condensed-Black +EncodingScheme AdobeStandardEncoding +FullName Helvetica Condensed Black +FamilyName Helvetica +Weight BlackCondensed +ItalicAngle 0.0 +IsFixedPitch false +UnderlinePosition -90 +UnderlineThickness 58 +Version 001.002 +Notice Copyright (c) 1985, 1987 Adobe Systems Incorporated. All rights reserved. Helvetica is a trademark of Allied Corporation. +FontBBox -168 -232 1113 990 +CapHeight 750 +XHeight 560 +Descender -189 +Ascender 750 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 79 0 255 750 ; +C 34 ; WX 333 ; N quotedbl ; B 16 468 318 739 ; +C 35 ; WX 500 ; N numbersign ; B 9 0 491 750 ; +C 36 ; WX 500 ; N dollar ; B 14 -126 484 786 ; +C 37 ; WX 833 ; N percent ; B 24 -18 810 750 ; +C 38 ; WX 667 ; N ampersand ; B 47 -18 645 768 ; +C 39 ; WX 278 ; N quoteright ; B 58 437 216 750 ; +C 40 ; WX 278 ; N parenleft ; B 24 -187 262 750 ; +C 41 ; WX 278 ; N parenright ; B 16 -187 254 750 ; +C 42 ; WX 500 ; N asterisk ; B 64 393 437 750 ; +C 43 ; WX 500 ; N plus ; B 26 0 475 492 ; +C 44 ; WX 333 ; N comma ; B 82 -156 251 171 ; +C 45 ; WX 333 ; N hyphen ; B 43 237 291 387 ; +C 46 ; WX 333 ; N period ; B 82 0 251 171 ; +C 47 ; WX 278 ; N slash ; B -28 -94 307 750 ; +C 48 ; WX 500 ; N zero ; B 28 -18 472 750 ; +C 49 ; WX 500 ; N one ; B 37 0 349 734 ; +C 50 ; WX 500 ; N two ; B 23 0 472 750 ; +C 51 ; WX 500 ; N three ; B 19 -18 469 750 ; +C 52 ; WX 500 ; N four ; B 9 0 484 734 ; +C 53 ; WX 500 ; N five ; B 30 -18 473 734 ; +C 54 ; WX 500 ; N six ; B 27 -18 474 750 ; +C 55 ; WX 500 ; N seven ; B 24 0 456 734 ; +C 56 ; WX 500 ; N eight ; B 29 -18 471 750 ; +C 57 ; WX 500 ; N nine ; B 27 -18 474 750 ; +C 58 ; WX 278 ; N colon ; B 55 0 224 555 ; +C 59 ; WX 278 ; N semicolon ; B 55 -156 224 555 ; +C 60 ; WX 500 ; N less ; B 42 -23 459 528 ; +C 61 ; WX 500 ; N equal ; B 26 95 475 405 ; +C 62 ; WX 500 ; N greater ; B 42 -23 459 528 ; +C 63 ; WX 500 ; N question ; B 20 0 471 768 ; +C 64 ; WX 830 ; N at ; B 37 -18 794 768 ; +C 65 ; WX 556 ; N A ; B 9 0 548 750 ; +C 66 ; WX 556 ; N B ; B 44 0 521 750 ; +C 67 ; WX 556 ; N C ; B 39 -18 518 768 ; +C 68 ; WX 556 ; N D ; B 46 0 514 750 ; +C 69 ; WX 500 ; N E ; B 46 0 461 750 ; +C 70 ; WX 500 ; N F ; B 49 0 463 750 ; +C 71 ; WX 556 ; N G ; B 33 -18 512 768 ; +C 72 ; WX 556 ; N H ; B 41 0 515 750 ; +C 73 ; WX 278 ; N I ; B 51 0 227 750 ; +C 74 ; WX 444 ; N J ; B 7 -18 395 750 ; +C 75 ; WX 556 ; N K ; B 44 0 542 750 ; +C 76 ; WX 444 ; N L ; B 37 0 428 750 ; +C 77 ; WX 778 ; N M ; B 49 0 730 750 ; +C 78 ; WX 556 ; N N ; B 43 0 513 750 ; +C 79 ; WX 556 ; N O ; B 40 -18 517 768 ; +C 80 ; WX 556 ; N P ; B 53 0 526 750 ; +C 81 ; WX 556 ; N Q ; B 40 -123 550 768 ; +C 82 ; WX 556 ; N R ; B 42 0 542 750 ; +C 83 ; WX 500 ; N S ; B 16 -18 471 768 ; +C 84 ; WX 500 ; N T ; B 22 0 478 750 ; +C 85 ; WX 556 ; N U ; B 42 -18 515 750 ; +C 86 ; WX 556 ; N V ; B 11 0 545 750 ; +C 87 ; WX 778 ; N W ; B 10 0 768 750 ; +C 88 ; WX 556 ; N X ; B 13 0 544 750 ; +C 89 ; WX 556 ; N Y ; B 11 0 545 750 ; +C 90 ; WX 444 ; N Z ; B 10 0 434 750 ; +C 91 ; WX 278 ; N bracketleft ; B 42 -187 262 750 ; +C 92 ; WX 250 ; N backslash ; B -99 0 350 750 ; +C 93 ; WX 278 ; N bracketright ; B 16 -187 236 750 ; +C 94 ; WX 500 ; N asciicircum ; B 15 326 485 750 ; +C 95 ; WX 500 ; N underscore ; B 0 -119 500 -61 ; +C 96 ; WX 278 ; N quoteleft ; B 62 455 220 768 ; +C 97 ; WX 500 ; N a ; B 24 -18 473 576 ; +C 98 ; WX 500 ; N b ; B 48 -18 464 750 ; +C 99 ; WX 500 ; N c ; B 49 -18 462 576 ; +C 100 ; WX 500 ; N d ; B 41 -18 454 750 ; +C 101 ; WX 500 ; N e ; B 38 -18 466 576 ; +C 102 ; WX 333 ; N f ; B 19 0 310 750 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B 36 -189 453 576 ; +C 104 ; WX 500 ; N h ; B 46 0 455 750 ; +C 105 ; WX 278 ; N i ; B 60 0 219 750 ; +C 106 ; WX 278 ; N j ; B 14 -189 223 750 ; +C 107 ; WX 500 ; N k ; B 40 0 486 750 ; +C 108 ; WX 278 ; N l ; B 60 0 219 750 ; +C 109 ; WX 722 ; N m ; B 38 0 685 576 ; +C 110 ; WX 500 ; N n ; B 49 0 452 576 ; +C 111 ; WX 500 ; N o ; B 42 -18 458 576 ; +C 112 ; WX 500 ; N p ; B 42 -189 458 576 ; +C 113 ; WX 500 ; N q ; B 35 -188 451 576 ; +C 114 ; WX 333 ; N r ; B 42 0 315 576 ; +C 115 ; WX 444 ; N s ; B 11 -18 431 576 ; +C 116 ; WX 333 ; N t ; B 12 -8 310 720 ; +C 117 ; WX 500 ; N u ; B 46 -18 449 560 ; +C 118 ; WX 444 ; N v ; B 9 0 436 560 ; +C 119 ; WX 667 ; N w ; B 9 0 659 560 ; +C 120 ; WX 444 ; N x ; B 9 0 435 560 ; +C 121 ; WX 444 ; N y ; B 6 -189 433 560 ; +C 122 ; WX 389 ; N z ; B 14 0 375 560 ; +C 123 ; WX 274 ; N braceleft ; B -9 -95 283 750 ; +C 124 ; WX 250 ; N bar ; B 54 0 196 750 ; +C 125 ; WX 274 ; N braceright ; B -9 -95 283 750 ; +C 126 ; WX 500 ; N asciitilde ; B 26 153 475 359 ; +C 161 ; WX 333 ; N exclamdown ; B 79 -189 255 560 ; +C 162 ; WX 500 ; N cent ; B 46 -147 462 685 ; +C 163 ; WX 500 ; N sterling ; B 0 -18 473 768 ; +C 164 ; WX 167 ; N fraction ; B -168 0 326 750 ; +C 165 ; WX 500 ; N yen ; B -17 0 517 750 ; +C 166 ; WX 500 ; N florin ; B 4 -193 488 763 ; +C 167 ; WX 500 ; N section ; B 27 -184 474 768 ; +C 168 ; WX 500 ; N currency ; B 0 58 509 563 ; +C 169 ; WX 250 ; N quotesingle ; B 66 468 185 739 ; +C 170 ; WX 500 ; N quotedblleft ; B 53 455 451 768 ; +C 171 ; WX 500 ; N guillemotleft ; B 37 123 457 505 ; +C 172 ; WX 278 ; N guilsinglleft ; B 53 123 234 505 ; +C 173 ; WX 278 ; N guilsinglright ; B 44 123 225 505 ; +C 174 ; WX 556 ; N fi ; B 19 0 503 750 ; +C 175 ; WX 556 ; N fl ; B 19 0 503 750 ; +C 177 ; WX 500 ; N endash ; B 0 253 500 368 ; +C 178 ; WX 500 ; N dagger ; B 29 -173 472 750 ; +C 179 ; WX 500 ; N daggerdbl ; B 27 -171 474 750 ; +C 180 ; WX 333 ; N periodcentered ; B 82 164 251 335 ; +C 182 ; WX 550 ; N paragraph ; B 11 -116 553 750 ; +C 183 ; WX 420 ; N bullet ; B 22 186 398 562 ; +C 184 ; WX 278 ; N quotesinglbase ; B 60 -152 218 161 ; +C 185 ; WX 500 ; N quotedblbase ; B 51 -152 450 161 ; +C 186 ; WX 500 ; N quotedblright ; B 49 437 447 750 ; +C 187 ; WX 500 ; N guillemotright ; B 43 123 463 505 ; +C 188 ; WX 1000 ; N ellipsis ; B 82 0 918 171 ; +C 189 ; WX 1111 ; N perthousand ; B -1 -18 1113 752 ; +C 191 ; WX 500 ; N questiondown ; B 28 -189 479 576 ; +C 193 ; WX 333 ; N grave ; B -38 634 270 782 ; +C 194 ; WX 333 ; N acute ; B 63 634 371 782 ; +C 195 ; WX 333 ; N circumflex ; B -36 634 370 782 ; +C 196 ; WX 333 ; N tilde ; B -29 634 362 775 ; +C 197 ; WX 333 ; N macron ; B -21 663 355 753 ; +C 198 ; WX 333 ; N breve ; B -14 634 348 787 ; +C 199 ; WX 333 ; N dotaccent ; B 87 640 246 770 ; +C 200 ; WX 333 ; N dieresis ; B -20 640 354 770 ; +C 202 ; WX 333 ; N ring ; B 54 635 279 860 ; +C 203 ; WX 333 ; N cedilla ; B 38 -232 296 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B -86 634 521 782 ; +C 206 ; WX 333 ; N ogonek ; B 73 -205 278 0 ; +C 207 ; WX 333 ; N caron ; B -36 634 370 782 ; +C 208 ; WX 1000 ; N emdash ; B 0 253 1000 368 ; +C 225 ; WX 778 ; N AE ; B -23 0 745 750 ; +C 227 ; WX 300 ; N ordfeminine ; B 10 277 291 768 ; +C 232 ; WX 444 ; N Lslash ; B -22 0 428 750 ; +C 233 ; WX 556 ; N Oslash ; B 5 -85 578 819 ; +C 234 ; WX 778 ; N OE ; B 33 -18 743 768 ; +C 235 ; WX 300 ; N ordmasculine ; B 15 277 285 768 ; +C 241 ; WX 722 ; N ae ; B 20 -18 718 576 ; +C 245 ; WX 278 ; N dotlessi ; B 60 0 219 560 ; +C 248 ; WX 278 ; N lslash ; B -7 0 282 750 ; +C 249 ; WX 500 ; N oslash ; B -11 -74 503 633 ; +C 250 ; WX 722 ; N oe ; B 35 -18 716 576 ; +C 251 ; WX 500 ; N germandbls ; B 44 -18 461 768 ; +C -1 ; WX 556 ; N Aacute ; B 9 0 548 972 ; +C -1 ; WX 556 ; N Acircumflex ; B 9 0 548 952 ; +C -1 ; WX 556 ; N Adieresis ; B 9 0 548 960 ; +C -1 ; WX 556 ; N Agrave ; B 9 0 548 972 ; +C -1 ; WX 556 ; N Aring ; B 9 0 548 990 ; +C -1 ; WX 556 ; N Atilde ; B 9 0 548 945 ; +C -1 ; WX 556 ; N Ccedilla ; B 39 -232 518 768 ; +C -1 ; WX 500 ; N Eacute ; B 46 0 461 972 ; +C -1 ; WX 500 ; N Ecircumflex ; B 46 0 461 952 ; +C -1 ; WX 500 ; N Edieresis ; B 46 0 461 960 ; +C -1 ; WX 500 ; N Egrave ; B 46 0 461 972 ; +C -1 ; WX 556 ; N Eth ; B 10 0 534 750 ; +C -1 ; WX 278 ; N Iacute ; B 36 0 344 972 ; +C -1 ; WX 278 ; N Icircumflex ; B -63 0 343 952 ; +C -1 ; WX 278 ; N Idieresis ; B -47 0 327 960 ; +C -1 ; WX 278 ; N Igrave ; B -65 0 243 972 ; +C -1 ; WX 556 ; N Ntilde ; B 43 0 513 945 ; +C -1 ; WX 556 ; N Oacute ; B 40 -18 517 972 ; +C -1 ; WX 556 ; N Ocircumflex ; B 40 -18 517 952 ; +C -1 ; WX 556 ; N Odieresis ; B 40 -18 517 960 ; +C -1 ; WX 556 ; N Ograve ; B 40 -18 517 972 ; +C -1 ; WX 556 ; N Otilde ; B 40 -18 517 945 ; +C -1 ; WX 500 ; N Scaron ; B 16 -18 471 952 ; +C -1 ; WX 556 ; N Thorn ; B 53 0 526 750 ; +C -1 ; WX 556 ; N Uacute ; B 42 -18 515 972 ; +C -1 ; WX 556 ; N Ucircumflex ; B 42 -18 515 952 ; +C -1 ; WX 556 ; N Udieresis ; B 42 -18 515 960 ; +C -1 ; WX 556 ; N Ugrave ; B 42 -18 515 972 ; +C -1 ; WX 556 ; N Yacute ; B 11 0 545 972 ; +C -1 ; WX 556 ; N Ydieresis ; B 11 0 545 960 ; +C -1 ; WX 444 ; N Zcaron ; B 10 0 434 952 ; +C -1 ; WX 500 ; N aacute ; B 24 -18 473 782 ; +C -1 ; WX 500 ; N acircumflex ; B 24 -18 473 762 ; +C -1 ; WX 500 ; N adieresis ; B 24 -18 473 770 ; +C -1 ; WX 500 ; N agrave ; B 24 -18 473 782 ; +C -1 ; WX 500 ; N aring ; B 24 -18 473 860 ; +C -1 ; WX 500 ; N atilde ; B 24 -18 473 755 ; +C -1 ; WX 250 ; N brokenbar ; B 54 0 196 750 ; +C -1 ; WX 500 ; N ccedilla ; B 49 -232 462 576 ; +C -1 ; WX 830 ; N copyright ; B 21 -18 809 768 ; +C -1 ; WX 400 ; N degree ; B 50 450 350 750 ; +C -1 ; WX 500 ; N divide ; B 26 7 475 492 ; +C -1 ; WX 500 ; N eacute ; B 38 -18 466 782 ; +C -1 ; WX 500 ; N ecircumflex ; B 38 -18 466 762 ; +C -1 ; WX 500 ; N edieresis ; B 38 -18 466 770 ; +C -1 ; WX 500 ; N egrave ; B 38 -18 466 782 ; +C -1 ; WX 500 ; N eth ; B 38 -18 454 776 ; +C -1 ; WX 278 ; N iacute ; B 36 0 344 782 ; +C -1 ; WX 278 ; N icircumflex ; B -73 0 333 762 ; +C -1 ; WX 278 ; N idieresis ; B -47 0 327 770 ; +C -1 ; WX 278 ; N igrave ; B -65 0 243 782 ; +C -1 ; WX 500 ; N logicalnot ; B 26 115 475 405 ; +C -1 ; WX 500 ; N minus ; B 26 192 475 307 ; +C -1 ; WX 500 ; N mu ; B 46 -189 449 560 ; +C -1 ; WX 500 ; N multiply ; B 33 38 467 472 ; +C -1 ; WX 500 ; N ntilde ; B 49 0 452 755 ; +C -1 ; WX 500 ; N oacute ; B 42 -18 458 782 ; +C -1 ; WX 500 ; N ocircumflex ; B 42 -18 458 762 ; +C -1 ; WX 500 ; N odieresis ; B 42 -18 458 770 ; +C -1 ; WX 500 ; N ograve ; B 42 -18 458 782 ; +C -1 ; WX 750 ; N onehalf ; B 10 0 740 750 ; +C -1 ; WX 750 ; N onequarter ; B 14 0 736 750 ; +C -1 ; WX 300 ; N onesuperior ; B 49 310 251 750 ; +C -1 ; WX 500 ; N otilde ; B 42 -18 458 755 ; +C -1 ; WX 500 ; N plusminus ; B 26 -12 475 510 ; +C -1 ; WX 830 ; N registered ; B 21 -18 809 768 ; +C -1 ; WX 444 ; N scaron ; B 10 -18 431 762 ; +C -1 ; WX 500 ; N thorn ; B 42 -189 458 750 ; +C -1 ; WX 750 ; N threequarters ; B 1 0 743 750 ; +C -1 ; WX 300 ; N threesuperior ; B 4 289 296 750 ; +C -1 ; WX 860 ; N trademark ; B 3 346 858 750 ; +C -1 ; WX 300 ; N twosuperior ; B 4 300 296 750 ; +C -1 ; WX 500 ; N uacute ; B 46 -18 455 782 ; +C -1 ; WX 500 ; N ucircumflex ; B 46 -18 454 772 ; +C -1 ; WX 500 ; N udieresis ; B 46 -18 449 770 ; +C -1 ; WX 500 ; N ugrave ; B 46 -18 449 782 ; +C -1 ; WX 444 ; N yacute ; B 6 -189 433 782 ; +C -1 ; WX 444 ; N ydieresis ; B 6 -189 433 770 ; +C -1 ; WX 389 ; N zcaron ; B -8 0 398 762 ; +EndCharMetrics +StartKernData +StartKernPairs 115 + +KPX A y -18 +KPX A w -18 +KPX A v -18 +KPX A quoteright -55 +KPX A Y -55 +KPX A W -37 +KPX A V -37 +KPX A T -55 + +KPX F period -111 +KPX F comma -111 +KPX F A -37 + +KPX L y -37 +KPX L quoteright -92 +KPX L Y -92 +KPX L W -74 +KPX L V -74 +KPX L T -74 + +KPX P period -129 +KPX P comma -129 +KPX P A -37 + +KPX R y 0 +KPX R Y -18 +KPX R W 0 +KPX R V 0 +KPX R T -18 + +KPX T y -55 +KPX T w -74 +KPX T u -74 +KPX T semicolon -74 +KPX T s -74 +KPX T r -74 +KPX T period -92 +KPX T o -74 +KPX T i -18 +KPX T hyphen -55 +KPX T e -74 +KPX T comma -92 +KPX T colon -74 +KPX T c -74 +KPX T a -74 +KPX T A -55 + +KPX V y 0 +KPX V u -18 +KPX V semicolon -18 +KPX V r -18 +KPX V period -92 +KPX V o -18 +KPX V i 0 +KPX V hyphen -18 +KPX V e -18 +KPX V comma -92 +KPX V colon -18 +KPX V a -18 +KPX V A -37 + +KPX W y 0 +KPX W u 0 +KPX W semicolon 0 +KPX W r 0 +KPX W period -74 +KPX W o -18 +KPX W i 0 +KPX W hyphen -18 +KPX W e -18 +KPX W comma -74 +KPX W colon 0 +KPX W a -18 +KPX W A -18 + +KPX Y v -18 +KPX Y u -37 +KPX Y semicolon -37 +KPX Y q -75 +KPX Y period -111 +KPX Y p -37 +KPX Y o -55 +KPX Y i -18 +KPX Y hyphen -74 +KPX Y e -55 +KPX Y comma -111 +KPX Y colon -37 +KPX Y a -55 +KPX Y A -55 + +KPX f quoteright 18 +KPX f f 0 + +KPX quoteleft quoteleft -18 + +KPX quoteright t 0 +KPX quoteright s -55 +KPX quoteright quoteright -18 + +KPX r z 0 +KPX r y 18 +KPX r x 0 +KPX r w 18 +KPX r v 18 +KPX r u 0 +KPX r t 0 +KPX r r 0 +KPX r quoteright 0 +KPX r q 0 +KPX r period -74 +KPX r o 0 +KPX r n 0 +KPX r m 0 +KPX r hyphen -37 +KPX r h 0 +KPX r g 0 +KPX r f 0 +KPX r e 0 +KPX r d 0 +KPX r comma -74 +KPX r c 0 + +KPX v period -55 +KPX v comma -55 + +KPX w period -37 +KPX w comma -37 + +KPX y period -55 +KPX y comma -55 +EndKernPairs +EndKernData +StartComposites 58 +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 55 170 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 28 -20 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 83 170 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 45 -20 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 111 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 83 0 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 111 190 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 55 0 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 111 190 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 55 0 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 111 190 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 111 170 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 111 190 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 111 190 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 83 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 83 -10 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 83 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 83 0 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute -27 190 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -27 170 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -27 190 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -27 190 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -37 -20 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 83 190 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 83 170 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 83 190 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 83 190 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 83 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 83 -20 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 83 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 83 0 ; +CC Aacute 2 ; PCC A 0 0 ; PCC acute 111 190 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 101 170 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 111 190 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 111 190 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 83 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 83 -20 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 83 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 83 0 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 111 190 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 111 170 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 111 190 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 111 190 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 83 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 83 -20 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 83 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 83 0 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 111 170 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 83 -20 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 111 170 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 83 -20 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 111 170 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 83 -20 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 111 130 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 83 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBl+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBl+ new file mode 100755 index 0000000000000..1bfc2f4574538 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBl+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 556 ; N Ccaron ; B 39 -18 529 967 ; +C -1 ; WX 500 ; N ccaron ; B 49 -18 474 782 ; +C -1 ; WX 556 ; N Dcaron ; B 46 0 514 967 ; +C -1 ; WX 611 ; N dcaron ; B 41 -18 628 825 ; +C -1 ; WX 500 ; N Ecaron ; B 46 0 461 967 ; +C -1 ; WX 500 ; N ecaron ; B 38 -18 466 782 ; +C -1 ; WX 444 ; N Lcaron ; B 37 0 428 825 ; +C -1 ; WX 444 ; N Lacute ; B 37 0 428 967 ; +C -1 ; WX 389 ; N lcaron ; B 60 0 393 825 ; +C -1 ; WX 278 ; N lacute ; B 60 0 375 967 ; +C -1 ; WX 556 ; N Ncaron ; B 43 0 513 967 ; +C -1 ; WX 500 ; N ncaron ; B 47 0 453 782 ; +C -1 ; WX 556 ; N Rcaron ; B 42 0 542 967 ; +C -1 ; WX 556 ; N Racute ; B 42 0 542 967 ; +C -1 ; WX 333 ; N rcaron ; B -36 0 370 782 ; +C -1 ; WX 333 ; N racute ; B 42 0 402 782 ; +C -1 ; WX 500 ; N Tcaron ; B 22 0 478 967 ; +C -1 ; WX 444 ; N tcaron ; B 12 -8 484 750 ; +C -1 ; WX 556 ; N Uring ; B 42 -18 515 967 ; +C -1 ; WX 500 ; N uring ; B 46 -18 449 860 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 159 185 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 104 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 111 185 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 412 75 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 83 185 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 83 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 185 75 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 55 185 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 177 75 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 4 185 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 111 185 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 83 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 111 185 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 170 185 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 31 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 83 185 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 268 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 111 107 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 83 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBlO b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBlO new file mode 100755 index 0000000000000..db91ef37ef86f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBlO @@ -0,0 +1,445 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987 Adobe Systems Incorporated. All rights reserved. +Comment Creation Date:Thu Aug 13 18:13:24 PDT 1987 +FontName Helvetica-Condensed-BlackObl +EncodingScheme AdobeStandardEncoding +FullName Helvetica.Condensed Black Oblique +FamilyName Helvetica +Weight BlackCondensed +ItalicAngle -12.0 +IsFixedPitch false +UnderlinePosition -90 +UnderlineThickness 58 +Version 001.002 +Notice Copyright (c) 1985, 1987 Adobe Systems Incorporated. All rights reserved. Helvetica is a trademark of Allied Corporation. +FontBBox -168 -232 1161 990 +CapHeight 750 +XHeight 560 +Descender -189 +Ascender 750 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 83 0 414 750 ; +C 34 ; WX 333 ; N quotedbl ; B 115 468 475 739 ; +C 35 ; WX 500 ; N numbersign ; B 56 0 607 750 ; +C 36 ; WX 500 ; N dollar ; B 50 -126 596 786 ; +C 37 ; WX 833 ; N percent ; B 131 -18 858 750 ; +C 38 ; WX 667 ; N ampersand ; B 84 -18 694 768 ; +C 39 ; WX 278 ; N quoteright ; B 151 437 375 750 ; +C 40 ; WX 278 ; N parenleft ; B 61 -187 417 750 ; +C 41 ; WX 278 ; N parenright ; B -20 -187 337 750 ; +C 42 ; WX 500 ; N asterisk ; B 188 393 562 750 ; +C 43 ; WX 500 ; N plus ; B 67 0 540 492 ; +C 44 ; WX 333 ; N comma ; B 49 -156 287 171 ; +C 45 ; WX 333 ; N hyphen ; B 93 237 373 387 ; +C 46 ; WX 333 ; N period ; B 82 0 287 171 ; +C 47 ; WX 278 ; N slash ; B -48 -94 466 750 ; +C 48 ; WX 500 ; N zero ; B 61 -18 593 750 ; +C 49 ; WX 500 ; N one ; B 145 0 505 734 ; +C 50 ; WX 500 ; N two ; B 23 0 593 750 ; +C 51 ; WX 500 ; N three ; B 56 -18 576 750 ; +C 52 ; WX 500 ; N four ; B 39 0 574 734 ; +C 53 ; WX 500 ; N five ; B 65 -18 598 734 ; +C 54 ; WX 500 ; N six ; B 67 -18 587 750 ; +C 55 ; WX 500 ; N seven ; B 104 0 612 734 ; +C 56 ; WX 500 ; N eight ; B 66 -18 591 750 ; +C 57 ; WX 500 ; N nine ; B 70 -18 589 750 ; +C 58 ; WX 278 ; N colon ; B 55 0 342 555 ; +C 59 ; WX 278 ; N semicolon ; B 22 -156 342 555 ; +C 60 ; WX 500 ; N less ; B 85 -23 571 528 ; +C 61 ; WX 500 ; N equal ; B 46 95 561 405 ; +C 62 ; WX 500 ; N greater ; B 37 -23 523 528 ; +C 63 ; WX 500 ; N question ; B 133 0 599 768 ; +C 64 ; WX 830 ; N at ; B 108 -18 896 768 ; +C 65 ; WX 556 ; N A ; B 9 0 548 750 ; +C 66 ; WX 556 ; N B ; B 44 0 633 750 ; +C 67 ; WX 556 ; N C ; B 76 -18 639 768 ; +C 68 ; WX 556 ; N D ; B 46 0 637 750 ; +C 69 ; WX 500 ; N E ; B 46 0 608 750 ; +C 70 ; WX 500 ; N F ; B 49 0 622 750 ; +C 71 ; WX 556 ; N G ; B 70 -18 632 768 ; +C 72 ; WX 556 ; N H ; B 41 0 674 750 ; +C 73 ; WX 278 ; N I ; B 51 0 386 750 ; +C 74 ; WX 444 ; N J ; B 38 -18 554 750 ; +C 75 ; WX 556 ; N K ; B 44 0 691 750 ; +C 76 ; WX 444 ; N L ; B 37 0 460 750 ; +C 77 ; WX 778 ; N M ; B 49 0 889 750 ; +C 78 ; WX 556 ; N N ; B 43 0 672 750 ; +C 79 ; WX 556 ; N O ; B 79 -18 640 768 ; +C 80 ; WX 556 ; N P ; B 53 0 647 750 ; +C 81 ; WX 556 ; N Q ; B 79 -123 640 768 ; +C 82 ; WX 556 ; N R ; B 42 0 639 750 ; +C 83 ; WX 500 ; N S ; B 48 -18 593 768 ; +C 84 ; WX 500 ; N T ; B 150 0 637 750 ; +C 85 ; WX 556 ; N U ; B 78 -18 674 750 ; +C 86 ; WX 556 ; N V ; B 170 0 704 750 ; +C 87 ; WX 778 ; N W ; B 136 0 927 750 ; +C 88 ; WX 556 ; N X ; B 13 0 696 750 ; +C 89 ; WX 556 ; N Y ; B 170 0 704 750 ; +C 90 ; WX 444 ; N Z ; B 10 0 583 750 ; +C 91 ; WX 278 ; N bracketleft ; B 2 -187 421 750 ; +C 92 ; WX 250 ; N backslash ; B 60 0 350 750 ; +C 93 ; WX 278 ; N bracketright ; B -24 -187 395 750 ; +C 94 ; WX 500 ; N asciicircum ; B 94 326 564 750 ; +C 95 ; WX 500 ; N underscore ; B -25 -119 487 -61 ; +C 96 ; WX 278 ; N quoteleft ; B 159 455 383 768 ; +C 97 ; WX 500 ; N a ; B 48 -18 553 576 ; +C 98 ; WX 500 ; N b ; B 48 -18 553 750 ; +C 99 ; WX 500 ; N c ; B 77 -18 545 576 ; +C 100 ; WX 500 ; N d ; B 71 -18 613 750 ; +C 101 ; WX 500 ; N e ; B 66 -18 558 576 ; +C 102 ; WX 333 ; N f ; B 83 0 469 750 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B 25 -189 572 576 ; +C 104 ; WX 500 ; N h ; B 46 0 554 750 ; +C 105 ; WX 278 ; N i ; B 60 0 378 750 ; +C 106 ; WX 278 ; N j ; B -26 -189 382 750 ; +C 107 ; WX 500 ; N k ; B 40 0 603 750 ; +C 108 ; WX 278 ; N l ; B 60 0 378 750 ; +C 109 ; WX 722 ; N m ; B 38 0 785 576 ; +C 110 ; WX 500 ; N n ; B 49 0 552 576 ; +C 111 ; WX 500 ; N o ; B 70 -18 546 576 ; +C 112 ; WX 500 ; N p ; B 2 -189 547 576 ; +C 113 ; WX 500 ; N q ; B 65 -188 570 576 ; +C 114 ; WX 333 ; N r ; B 42 0 437 576 ; +C 115 ; WX 444 ; N s ; B 39 -18 514 576 ; +C 116 ; WX 333 ; N t ; B 96 -8 429 720 ; +C 117 ; WX 500 ; N u ; B 64 -18 568 560 ; +C 118 ; WX 444 ; N v ; B 128 0 555 560 ; +C 119 ; WX 667 ; N w ; B 116 0 778 560 ; +C 120 ; WX 444 ; N x ; B 9 0 550 560 ; +C 121 ; WX 444 ; N y ; B 17 -189 552 560 ; +C 122 ; WX 389 ; N z ; B 14 0 494 560 ; +C 123 ; WX 274 ; N braceleft ; B 60 -95 442 750 ; +C 124 ; WX 250 ; N bar ; B 54 0 355 750 ; +C 125 ; WX 274 ; N braceright ; B -29 -95 352 750 ; +C 126 ; WX 500 ; N asciitilde ; B 74 153 536 359 ; +C 161 ; WX 333 ; N exclamdown ; B 39 -189 370 560 ; +C 162 ; WX 500 ; N cent ; B 77 -147 545 685 ; +C 163 ; WX 500 ; N sterling ; B 19 -18 586 768 ; +C 164 ; WX 167 ; N fraction ; B -168 0 485 750 ; +C 165 ; WX 500 ; N yen ; B 92 0 676 750 ; +C 166 ; WX 500 ; N florin ; B -33 -193 647 763 ; +C 167 ; WX 500 ; N section ; B 37 -184 580 768 ; +C 168 ; WX 500 ; N currency ; B 29 58 612 563 ; +C 169 ; WX 250 ; N quotesingle ; B 165 468 342 739 ; +C 170 ; WX 500 ; N quotedblleft ; B 150 455 614 768 ; +C 171 ; WX 500 ; N guillemotleft ; B 88 123 564 505 ; +C 172 ; WX 278 ; N guilsinglleft ; B 104 123 341 505 ; +C 173 ; WX 278 ; N guilsinglright ; B 70 123 307 505 ; +C 174 ; WX 556 ; N fi ; B 83 0 662 750 ; +C 175 ; WX 556 ; N fl ; B 83 0 662 750 ; +C 177 ; WX 500 ; N endash ; B 54 253 578 368 ; +C 178 ; WX 500 ; N dagger ; B 111 -173 583 750 ; +C 179 ; WX 500 ; N daggerdbl ; B 35 -171 585 750 ; +C 180 ; WX 333 ; N periodcentered ; B 117 164 322 335 ; +C 182 ; WX 550 ; N paragraph ; B 128 -116 712 750 ; +C 183 ; WX 420 ; N bullet ; B 97 186 482 562 ; +C 184 ; WX 278 ; N quotesinglbase ; B 28 -152 252 161 ; +C 185 ; WX 500 ; N quotedblbase ; B 19 -152 484 161 ; +C 186 ; WX 500 ; N quotedblright ; B 142 437 606 750 ; +C 187 ; WX 500 ; N guillemotright ; B 69 123 545 505 ; +C 188 ; WX 1000 ; N ellipsis ; B 82 0 954 171 ; +C 189 ; WX 1111 ; N perthousand ; B 110 -18 1161 752 ; +C 191 ; WX 500 ; N questiondown ; B 23 -189 489 576 ; +C 193 ; WX 333 ; N grave ; B 128 634 405 782 ; +C 194 ; WX 333 ; N acute ; B 198 634 537 782 ; +C 195 ; WX 333 ; N circumflex ; B 99 634 505 782 ; +C 196 ; WX 333 ; N tilde ; B 106 634 526 775 ; +C 197 ; WX 333 ; N macron ; B 120 663 515 753 ; +C 198 ; WX 333 ; N breve ; B 151 634 515 787 ; +C 199 ; WX 333 ; N dotaccent ; B 223 640 410 770 ; +C 200 ; WX 333 ; N dieresis ; B 116 640 518 770 ; +C 202 ; WX 333 ; N ring ; B 210 635 440 860 ; +C 203 ; WX 333 ; N cedilla ; B -5 -232 269 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B 49 634 687 782 ; +C 206 ; WX 333 ; N ogonek ; B 48 -205 256 0 ; +C 207 ; WX 333 ; N caron ; B 130 634 536 782 ; +C 208 ; WX 1000 ; N emdash ; B 54 253 1078 368 ; +C 225 ; WX 778 ; N AE ; B -23 0 897 750 ; +C 227 ; WX 300 ; N ordfeminine ; B 77 277 429 768 ; +C 232 ; WX 444 ; N Lslash ; B 30 0 460 750 ; +C 233 ; WX 556 ; N Oslash ; B -3 -85 742 819 ; +C 234 ; WX 778 ; N OE ; B 72 -18 895 768 ; +C 235 ; WX 300 ; N ordmasculine ; B 74 277 427 768 ; +C 241 ; WX 722 ; N ae ; B 45 -18 804 576 ; +C 245 ; WX 278 ; N dotlessi ; B 60 0 338 560 ; +C 248 ; WX 278 ; N lslash ; B 50 0 396 750 ; +C 249 ; WX 500 ; N oslash ; B -17 -74 628 633 ; +C 250 ; WX 722 ; N oe ; B 67 -18 806 576 ; +C 251 ; WX 500 ; N germandbls ; B 44 -18 577 768 ; +C -1 ; WX 556 ; N Aacute ; B 9 0 689 972 ; +C -1 ; WX 556 ; N Acircumflex ; B 9 0 643 952 ; +C -1 ; WX 556 ; N Adieresis ; B 9 0 670 960 ; +C -1 ; WX 556 ; N Agrave ; B 9 0 557 972 ; +C -1 ; WX 556 ; N Aring ; B 9 0 580 990 ; +C -1 ; WX 556 ; N Atilde ; B 9 0 674 945 ; +C -1 ; WX 556 ; N Ccedilla ; B 76 -232 639 768 ; +C -1 ; WX 500 ; N Eacute ; B 46 0 661 972 ; +C -1 ; WX 500 ; N Ecircumflex ; B 46 0 625 952 ; +C -1 ; WX 500 ; N Edieresis ; B 46 0 642 960 ; +C -1 ; WX 500 ; N Egrave ; B 46 0 608 972 ; +C -1 ; WX 556 ; N Eth ; B 66 0 657 750 ; +C -1 ; WX 278 ; N Iacute ; B 51 0 550 972 ; +C -1 ; WX 278 ; N Icircumflex ; B 51 0 514 952 ; +C -1 ; WX 278 ; N Idieresis ; B 51 0 531 960 ; +C -1 ; WX 278 ; N Igrave ; B 51 0 418 972 ; +C -1 ; WX 556 ; N Ntilde ; B 43 0 674 945 ; +C -1 ; WX 556 ; N Oacute ; B 79 -18 689 972 ; +C -1 ; WX 556 ; N Ocircumflex ; B 79 -18 653 952 ; +C -1 ; WX 556 ; N Odieresis ; B 79 -18 670 960 ; +C -1 ; WX 556 ; N Ograve ; B 79 -18 640 972 ; +C -1 ; WX 556 ; N Otilde ; B 79 -18 674 945 ; +C -1 ; WX 500 ; N Scaron ; B 48 -18 656 952 ; +C -1 ; WX 556 ; N Thorn ; B 53 0 616 750 ; +C -1 ; WX 556 ; N Uacute ; B 78 -18 689 972 ; +C -1 ; WX 556 ; N Ucircumflex ; B 78 -18 674 952 ; +C -1 ; WX 556 ; N Udieresis ; B 78 -18 674 960 ; +C -1 ; WX 556 ; N Ugrave ; B 78 -18 674 972 ; +C -1 ; WX 556 ; N Yacute ; B 170 0 704 972 ; +C -1 ; WX 556 ; N Ydieresis ; B 170 0 704 960 ; +C -1 ; WX 444 ; N Zcaron ; B 10 0 628 952 ; +C -1 ; WX 500 ; N aacute ; B 48 -18 621 782 ; +C -1 ; WX 500 ; N acircumflex ; B 48 -18 585 762 ; +C -1 ; WX 500 ; N adieresis ; B 48 -18 602 770 ; +C -1 ; WX 500 ; N agrave ; B 48 -18 553 782 ; +C -1 ; WX 500 ; N aring ; B 48 -18 553 860 ; +C -1 ; WX 500 ; N atilde ; B 48 -18 606 755 ; +C -1 ; WX 250 ; N brokenbar ; B 54 0 355 750 ; +C -1 ; WX 500 ; N ccedilla ; B 77 -232 545 576 ; +C -1 ; WX 830 ; N copyright ; B 91 -18 899 768 ; +C -1 ; WX 400 ; N degree ; B 174 450 481 750 ; +C -1 ; WX 500 ; N divide ; B 67 7 540 492 ; +C -1 ; WX 500 ; N eacute ; B 66 -18 621 782 ; +C -1 ; WX 500 ; N ecircumflex ; B 66 -18 585 762 ; +C -1 ; WX 500 ; N edieresis ; B 66 -18 602 770 ; +C -1 ; WX 500 ; N egrave ; B 66 -18 558 782 ; +C -1 ; WX 500 ; N eth ; B 66 -18 553 776 ; +C -1 ; WX 278 ; N iacute ; B 60 0 510 782 ; +C -1 ; WX 278 ; N icircumflex ; B 58 0 464 762 ; +C -1 ; WX 278 ; N idieresis ; B 60 0 491 770 ; +C -1 ; WX 278 ; N igrave ; B 60 0 378 782 ; +C -1 ; WX 500 ; N logicalnot ; B 88 115 561 405 ; +C -1 ; WX 500 ; N minus ; B 67 192 540 307 ; +C -1 ; WX 500 ; N mu ; B 6 -189 568 560 ; +C -1 ; WX 500 ; N multiply ; B 58 38 550 472 ; +C -1 ; WX 500 ; N ntilde ; B 49 0 606 755 ; +C -1 ; WX 500 ; N oacute ; B 70 -18 621 782 ; +C -1 ; WX 500 ; N ocircumflex ; B 70 -18 585 762 ; +C -1 ; WX 500 ; N odieresis ; B 70 -18 602 770 ; +C -1 ; WX 500 ; N ograve ; B 70 -18 546 782 ; +C -1 ; WX 750 ; N onehalf ; B 108 0 812 750 ; +C -1 ; WX 750 ; N onequarter ; B 130 0 787 750 ; +C -1 ; WX 300 ; N onesuperior ; B 180 310 410 750 ; +C -1 ; WX 500 ; N otilde ; B 70 -18 606 755 ; +C -1 ; WX 500 ; N plusminus ; B 23 -12 558 510 ; +C -1 ; WX 830 ; N registered ; B 91 -18 899 768 ; +C -1 ; WX 444 ; N scaron ; B 39 -18 578 762 ; +C -1 ; WX 500 ; N thorn ; B 2 -189 547 750 ; +C -1 ; WX 750 ; N threequarters ; B 85 0 813 750 ; +C -1 ; WX 300 ; N threesuperior ; B 88 289 423 750 ; +C -1 ; WX 860 ; N trademark ; B 144 346 1017 750 ; +C -1 ; WX 300 ; N twosuperior ; B 68 300 432 750 ; +C -1 ; WX 500 ; N uacute ; B 64 -18 621 782 ; +C -1 ; WX 500 ; N ucircumflex ; B 64 -18 587 772 ; +C -1 ; WX 500 ; N udieresis ; B 64 -18 602 770 ; +C -1 ; WX 500 ; N ugrave ; B 64 -18 568 782 ; +C -1 ; WX 444 ; N yacute ; B 17 -189 593 782 ; +C -1 ; WX 444 ; N ydieresis ; B 17 -189 574 770 ; +C -1 ; WX 389 ; N zcaron ; B 14 0 560 762 ; +EndCharMetrics +StartKernData +StartKernPairs 115 + +KPX A y -18 +KPX A w -18 +KPX A v -18 +KPX A quoteright -55 +KPX A Y -55 +KPX A W -37 +KPX A V -37 +KPX A T -55 + +KPX F period -111 +KPX F comma -111 +KPX F A -37 + +KPX L y -37 +KPX L quoteright -92 +KPX L Y -92 +KPX L W -74 +KPX L V -74 +KPX L T -74 + +KPX P period -129 +KPX P comma -129 +KPX P A -37 + +KPX R y 0 +KPX R Y -18 +KPX R W 0 +KPX R V 0 +KPX R T -18 + +KPX T y -55 +KPX T w -74 +KPX T u -74 +KPX T semicolon -74 +KPX T s -74 +KPX T r -74 +KPX T period -92 +KPX T o -74 +KPX T i -18 +KPX T hyphen -55 +KPX T e -74 +KPX T comma -92 +KPX T colon -74 +KPX T c -74 +KPX T a -74 +KPX T A -55 + +KPX V y 0 +KPX V u -18 +KPX V semicolon -18 +KPX V r -18 +KPX V period -92 +KPX V o -18 +KPX V i 0 +KPX V hyphen -18 +KPX V e -18 +KPX V comma -92 +KPX V colon -18 +KPX V a -18 +KPX V A -37 + +KPX W y 0 +KPX W u 0 +KPX W semicolon 0 +KPX W r 0 +KPX W period -74 +KPX W o -18 +KPX W i 0 +KPX W hyphen -18 +KPX W e -18 +KPX W comma -74 +KPX W colon 0 +KPX W a -18 +KPX W A -18 + +KPX Y v -18 +KPX Y u -37 +KPX Y semicolon -37 +KPX Y q -75 +KPX Y period -111 +KPX Y p -37 +KPX Y o -55 +KPX Y i -18 +KPX Y hyphen -74 +KPX Y e -55 +KPX Y comma -111 +KPX Y colon -37 +KPX Y a -55 +KPX Y A -55 + +KPX f quoteright 18 +KPX f f 0 + +KPX quoteleft quoteleft -18 + +KPX quoteright t 0 +KPX quoteright s -55 +KPX quoteright quoteright -18 + +KPX r z 0 +KPX r y 18 +KPX r x 0 +KPX r w 18 +KPX r v 18 +KPX r u 0 +KPX r t 0 +KPX r r 0 +KPX r quoteright 0 +KPX r q 0 +KPX r period -74 +KPX r o 0 +KPX r n 0 +KPX r m 0 +KPX r hyphen -37 +KPX r h 0 +KPX r g 0 +KPX r f 0 +KPX r e 0 +KPX r d 0 +KPX r comma -74 +KPX r c 0 + +KPX v period -55 +KPX v comma -55 + +KPX w period -37 +KPX w comma -37 + +KPX y period -55 +KPX y comma -55 +EndKernPairs +EndKernData +StartComposites 58 +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 55 170 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 28 -20 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 83 170 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 45 -20 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 111 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 83 0 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 111 190 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 55 0 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 111 190 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 55 0 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 111 190 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 111 170 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 111 190 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 111 190 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 83 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 83 -10 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 83 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 83 0 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute -27 190 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -27 170 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -27 190 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -27 190 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -37 -20 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 83 190 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 83 170 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 83 190 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 83 190 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 83 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 83 -20 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 83 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 83 0 ; +CC Aacute 2 ; PCC A 0 0 ; PCC acute 111 190 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 101 170 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 111 190 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 111 190 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 83 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 83 -20 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 83 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 83 0 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 111 190 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 111 170 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 111 190 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 111 190 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 83 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 83 -20 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 83 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 83 0 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 111 170 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 83 -20 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 111 170 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 83 -20 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 111 170 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 83 -20 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 111 130 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 83 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBlO+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBlO+ new file mode 100755 index 0000000000000..057f767a2029f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnBlO+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 556 ; N Ccaron ; B 76 -18 742 967 ; +C -1 ; WX 500 ; N ccaron ; B 77 -18 642 782 ; +C -1 ; WX 556 ; N Dcaron ; B 46 0 686 967 ; +C -1 ; WX 657 ; N dcaron ; B 71 -18 859 825 ; +C -1 ; WX 500 ; N Ecaron ; B 46 0 658 967 ; +C -1 ; WX 500 ; N ecaron ; B 66 -18 619 782 ; +C -1 ; WX 444 ; N Lcaron ; B 37 0 632 825 ; +C -1 ; WX 444 ; N Lacute ; B 37 0 631 967 ; +C -1 ; WX 435 ; N lcaron ; B 60 0 624 825 ; +C -1 ; WX 278 ; N lacute ; B 60 0 583 967 ; +C -1 ; WX 556 ; N Ncaron ; B 43 0 686 967 ; +C -1 ; WX 500 ; N ncaron ; B 49 0 619 782 ; +C -1 ; WX 556 ; N Rcaron ; B 42 0 686 967 ; +C -1 ; WX 556 ; N Racute ; B 42 0 751 967 ; +C -1 ; WX 333 ; N rcaron ; B 42 0 536 782 ; +C -1 ; WX 333 ; N racute ; B 42 0 571 782 ; +C -1 ; WX 500 ; N Tcaron ; B 150 0 658 967 ; +C -1 ; WX 490 ; N tcaron ; B 96 -8 675 750 ; +C -1 ; WX 556 ; N Uring ; B 78 -18 674 967 ; +C -1 ; WX 500 ; N uring ; B 64 -18 568 860 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 206 185 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 106 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 150 185 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 484 75 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 122 185 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 83 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 257 75 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 94 185 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 249 75 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 46 185 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 150 185 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 83 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 150 185 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 214 185 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 34 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 122 185 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 300 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 133 107 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 83 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnLi b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnLi new file mode 100755 index 0000000000000..3655ad483cd7d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnLi @@ -0,0 +1,445 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1984 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date:Mon Mar 30 18:00:00 PST 1987 +FontName Helvetica-Condensed-Light +EncodingScheme AdobeStandardEncoding +FullName Helvetica Condensed Light +FamilyName Helvetica +Weight LightCondensed +ItalicAngle 0.0 +IsFixedPitch false +UnderlinePosition -90 +UnderlineThickness 58 +Version 001.001 +Notice Helvetica is a trademark of Allied Corporation. +FontBBox -170 -207 1000 944 +CapHeight 750 +XHeight 552 +Descender -190 +Ascender 750 +StartCharMetrics 228 +C 32 ; WX 222 ; N space ; B 0 0 0 0 ; +C 33 ; WX 222 ; N exclam ; B 77 13 146 750 ; +C 34 ; WX 309 ; N quotedbl ; B 73 524 236 750 ; +C 35 ; WX 444 ; N numbersign ; B 13 0 431 744 ; +C 36 ; WX 444 ; N dollar ; B 26 -96 420 778 ; +C 37 ; WX 778 ; N percent ; B 73 -15 706 741 ; +C 38 ; WX 611 ; N ampersand ; B 63 -18 573 768 ; +C 39 ; WX 160 ; N quoteright ; B 49 526 118 750 ; +C 40 ; WX 278 ; N parenleft ; B 52 -191 244 768 ; +C 41 ; WX 278 ; N parenright ; B 34 -191 226 768 ; +C 42 ; WX 389 ; N asterisk ; B 48 462 342 744 ; +C 43 ; WX 444 ; N plus ; B 21 0 424 490 ; +C 44 ; WX 222 ; N comma ; B 77 -136 146 88 ; +C 45 ; WX 333 ; N hyphen ; B 35 269 294 327 ; +C 46 ; WX 222 ; N period ; B 77 0 146 88 ; +C 47 ; WX 278 ; N slash ; B -10 -94 289 750 ; +C 48 ; WX 444 ; N zero ; B 37 -14 407 744 ; +C 49 ; WX 444 ; N one ; B 60 0 284 744 ; +C 50 ; WX 444 ; N two ; B 34 0 396 744 ; +C 51 ; WX 444 ; N three ; B 30 -14 401 744 ; +C 52 ; WX 444 ; N four ; B 28 0 412 744 ; +C 53 ; WX 444 ; N five ; B 27 -14 398 730 ; +C 54 ; WX 444 ; N six ; B 37 -14 408 744 ; +C 55 ; WX 444 ; N seven ; B 51 0 412 730 ; +C 56 ; WX 444 ; N eight ; B 36 -14 409 744 ; +C 57 ; WX 444 ; N nine ; B 40 -14 405 744 ; +C 58 ; WX 222 ; N colon ; B 77 0 146 521 ; +C 59 ; WX 222 ; N semicolon ; B 77 -136 146 521 ; +C 60 ; WX 444 ; N less ; B 19 -12 426 501 ; +C 61 ; WX 444 ; N equal ; B 21 131 424 360 ; +C 62 ; WX 444 ; N greater ; B 19 -11 426 502 ; +C 63 ; WX 389 ; N question ; B 20 0 361 750 ; +C 64 ; WX 800 ; N at ; B 26 -18 774 768 ; +C 65 ; WX 500 ; N A ; B 12 0 489 750 ; +C 66 ; WX 500 ; N B ; B 62 0 454 750 ; +C 67 ; WX 556 ; N C ; B 63 -18 492 768 ; +C 68 ; WX 556 ; N D ; B 72 0 500 750 ; +C 69 ; WX 444 ; N E ; B 67 0 412 750 ; +C 70 ; WX 444 ; N F ; B 69 0 414 750 ; +C 71 ; WX 556 ; N G ; B 46 -18 483 768 ; +C 72 ; WX 556 ; N H ; B 68 0 488 750 ; +C 73 ; WX 222 ; N I ; B 79 0 144 750 ; +C 74 ; WX 389 ; N J ; B 12 -18 316 750 ; +C 75 ; WX 500 ; N K ; B 67 0 491 750 ; +C 76 ; WX 444 ; N L ; B 74 0 417 750 ; +C 77 ; WX 722 ; N M ; B 73 0 650 750 ; +C 78 ; WX 556 ; N N ; B 66 0 490 750 ; +C 79 ; WX 556 ; N O ; B 58 -18 499 768 ; +C 80 ; WX 500 ; N P ; B 76 0 462 750 ; +C 81 ; WX 556 ; N Q ; B 58 -42 527 768 ; +C 82 ; WX 500 ; N R ; B 63 0 463 750 ; +C 83 ; WX 500 ; N S ; B 40 -18 461 768 ; +C 84 ; WX 444 ; N T ; B 20 0 425 750 ; +C 85 ; WX 556 ; N U ; B 73 -18 483 750 ; +C 86 ; WX 500 ; N V ; B 14 0 487 750 ; +C 87 ; WX 722 ; N W ; B 17 0 705 750 ; +C 88 ; WX 500 ; N X ; B 18 0 482 750 ; +C 89 ; WX 500 ; N Y ; B 19 0 482 750 ; +C 90 ; WX 444 ; N Z ; B 34 0 411 750 ; +C 91 ; WX 278 ; N bracketleft ; B 74 -104 229 768 ; +C 92 ; WX 222 ; N backslash ; B -40 0 262 750 ; +C 93 ; WX 278 ; N bracketright ; B 49 -104 204 768 ; +C 94 ; WX 444 ; N asciicircum ; B 66 340 377 750 ; +C 95 ; WX 500 ; N underscore ; B 0 -119 500 -61 ; +C 96 ; WX 160 ; N quoteleft ; B 42 526 111 750 ; +C 97 ; WX 389 ; N a ; B 26 -14 369 566 ; +C 98 ; WX 444 ; N b ; B 64 -14 402 750 ; +C 99 ; WX 389 ; N c ; B 37 -14 358 566 ; +C 100 ; WX 444 ; N d ; B 44 -14 382 750 ; +C 101 ; WX 389 ; N e ; B 35 -14 352 566 ; +C 102 ; WX 222 ; N f ; B 18 0 206 750 ; L i fi ; L l fl ; +C 103 ; WX 444 ; N g ; B 46 -189 382 566 ; +C 104 ; WX 444 ; N h ; B 63 0 381 750 ; +C 105 ; WX 222 ; N i ; B 78 0 145 750 ; +C 106 ; WX 222 ; N j ; B 21 -189 150 750 ; +C 107 ; WX 389 ; N k ; B 62 0 375 750 ; +C 108 ; WX 222 ; N l ; B 82 0 140 750 ; +C 109 ; WX 667 ; N m ; B 58 0 610 566 ; +C 110 ; WX 444 ; N n ; B 65 0 379 566 ; +C 111 ; WX 444 ; N o ; B 49 -14 396 566 ; +C 112 ; WX 444 ; N p ; B 58 -190 394 566 ; +C 113 ; WX 444 ; N q ; B 46 -189 382 566 ; +C 114 ; WX 278 ; N r ; B 69 0 257 566 ; +C 115 ; WX 389 ; N s ; B 32 -14 350 566 ; +C 116 ; WX 222 ; N t ; B 16 -10 201 714 ; +C 117 ; WX 444 ; N u ; B 60 -14 379 552 ; +C 118 ; WX 389 ; N v ; B 17 0 373 552 ; +C 119 ; WX 556 ; N w ; B 11 0 545 552 ; +C 120 ; WX 389 ; N x ; B 13 0 376 552 ; +C 121 ; WX 389 ; N y ; B 17 -191 373 552 ; +C 122 ; WX 333 ; N z ; B 18 0 315 552 ; +C 123 ; WX 351 ; N braceleft ; B 48 -93 277 768 ; +C 124 ; WX 222 ; N bar ; B 85 0 137 750 ; +C 125 ; WX 351 ; N braceright ; B 74 -93 303 768 ; +C 126 ; WX 444 ; N asciitilde ; B 21 179 424 309 ; +C 161 ; WX 222 ; N exclamdown ; B 77 -185 146 552 ; +C 162 ; WX 444 ; N cent ; B 62 -143 384 671 ; +C 163 ; WX 444 ; N sterling ; B 19 -21 428 737 ; +C 164 ; WX 167 ; N fraction ; B -170 0 332 744 ; +C 165 ; WX 444 ; N yen ; B -9 0 454 738 ; +C 166 ; WX 444 ; N florin ; B 12 -189 435 744 ; +C 167 ; WX 444 ; N section ; B 26 -147 419 768 ; +C 168 ; WX 444 ; N currency ; B -3 50 448 503 ; +C 169 ; WX 198 ; N quotesingle ; B 73 524 125 750 ; +C 170 ; WX 333 ; N quotedblleft ; B 85 526 284 750 ; +C 171 ; WX 500 ; N guillemotleft ; B 83 130 411 412 ; +C 172 ; WX 333 ; N guilsinglleft ; B 90 130 231 412 ; +C 173 ; WX 333 ; N guilsinglright ; B 102 130 243 412 ; +C 174 ; WX 444 ; N fi ; B 25 0 376 750 ; +C 175 ; WX 444 ; N fl ; B 25 0 372 750 ; +C 177 ; WX 500 ; N endash ; B 0 273 500 324 ; +C 178 ; WX 444 ; N dagger ; B 32 -117 412 768 ; +C 179 ; WX 444 ; N daggerdbl ; B 31 -117 413 768 ; +C 180 ; WX 222 ; N periodcentered ; B 77 201 146 289 ; +C 182 ; WX 564 ; N paragraph ; B 53 -116 443 750 ; +C 183 ; WX 606 ; N bullet ; B 116 189 490 563 ; +C 184 ; WX 222 ; N quotesinglbase ; B 77 -136 146 88 ; +C 185 ; WX 330 ; N quotedblbase ; B 66 -136 265 88 ; +C 186 ; WX 333 ; N quotedblright ; B 49 526 248 750 ; +C 187 ; WX 500 ; N guillemotright ; B 89 130 417 412 ; +C 188 ; WX 1000 ; N ellipsis ; B 133 0 868 88 ; +C 189 ; WX 1000 ; N perthousand ; B 34 -15 966 741 ; +C 191 ; WX 389 ; N questiondown ; B 20 -202 361 552 ; +C 193 ; WX 333 ; N grave ; B 40 605 229 744 ; +C 194 ; WX 333 ; N acute ; B 104 605 293 744 ; +C 195 ; WX 333 ; N circumflex ; B 20 605 314 744 ; +C 196 ; WX 333 ; N tilde ; B 10 618 324 720 ; +C 197 ; WX 333 ; N macron ; B 19 645 315 690 ; +C 198 ; WX 333 ; N breve ; B 23 612 311 738 ; +C 199 ; WX 333 ; N dotaccent ; B 135 617 199 719 ; +C 200 ; WX 333 ; N dieresis ; B 56 617 278 719 ; +C 202 ; WX 333 ; N ring ; B 67 596 266 796 ; +C 203 ; WX 333 ; N cedilla ; B 57 -207 259 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B 64 605 382 744 ; +C 206 ; WX 333 ; N ogonek ; B 0 -191 208 13 ; +C 207 ; WX 333 ; N caron ; B 20 606 314 745 ; +C 208 ; WX 1000 ; N emdash ; B 0 273 1000 324 ; +C 225 ; WX 722 ; N AE ; B 6 0 688 750 ; +C 227 ; WX 266 ; N ordfeminine ; B 21 334 245 768 ; +C 232 ; WX 444 ; N Lslash ; B -13 0 417 750 ; +C 233 ; WX 556 ; N Oslash ; B 26 -29 529 770 ; +C 234 ; WX 778 ; N OE ; B 56 -18 738 768 ; +C 235 ; WX 266 ; N ordmasculine ; B 19 333 246 768 ; +C 241 ; WX 611 ; N ae ; B 24 -14 583 566 ; +C 245 ; WX 200 ; N dotlessi ; B 71 0 129 552 ; +C 248 ; WX 222 ; N lslash ; B 6 0 213 750 ; +C 249 ; WX 444 ; N oslash ; B -3 -42 429 578 ; +C 250 ; WX 667 ; N oe ; B 37 -14 625 566 ; +C 251 ; WX 444 ; N germandbls ; B 66 -14 394 768 ; +C -1 ; WX 500 ; N Aacute ; B 12 0 489 942 ; +C -1 ; WX 500 ; N Acircumflex ; B 12 0 489 942 ; +C -1 ; WX 500 ; N Adieresis ; B 12 0 489 917 ; +C -1 ; WX 500 ; N Agrave ; B 12 0 489 942 ; +C -1 ; WX 500 ; N Aring ; B 12 0 489 944 ; +C -1 ; WX 500 ; N Atilde ; B 12 0 489 918 ; +C -1 ; WX 556 ; N Ccedilla ; B 63 -207 492 768 ; +C -1 ; WX 444 ; N Eacute ; B 67 0 412 942 ; +C -1 ; WX 444 ; N Ecircumflex ; B 67 0 412 942 ; +C -1 ; WX 444 ; N Edieresis ; B 67 0 412 917 ; +C -1 ; WX 444 ; N Egrave ; B 67 0 412 942 ; +C -1 ; WX 556 ; N Eth ; B -22 0 500 750 ; +C -1 ; WX 222 ; N Iacute ; B 49 0 238 942 ; +C -1 ; WX 222 ; N Icircumflex ; B -35 0 259 942 ; +C -1 ; WX 222 ; N Idieresis ; B 1 0 223 917 ; +C -1 ; WX 222 ; N Igrave ; B -15 0 174 942 ; +C -1 ; WX 556 ; N Ntilde ; B 66 0 490 918 ; +C -1 ; WX 556 ; N Oacute ; B 58 -18 499 942 ; +C -1 ; WX 556 ; N Ocircumflex ; B 58 -18 499 942 ; +C -1 ; WX 556 ; N Odieresis ; B 58 -18 499 917 ; +C -1 ; WX 556 ; N Ograve ; B 58 -18 499 942 ; +C -1 ; WX 556 ; N Otilde ; B 58 -18 499 918 ; +C -1 ; WX 500 ; N Scaron ; B 40 -18 461 923 ; +C -1 ; WX 500 ; N Thorn ; B 76 0 462 750 ; +C -1 ; WX 556 ; N Uacute ; B 73 -18 483 942 ; +C -1 ; WX 556 ; N Ucircumflex ; B 73 -18 483 942 ; +C -1 ; WX 556 ; N Udieresis ; B 73 -18 483 917 ; +C -1 ; WX 556 ; N Ugrave ; B 73 -18 483 942 ; +C -1 ; WX 500 ; N Yacute ; B 19 0 482 942 ; +C -1 ; WX 500 ; N Ydieresis ; B 19 0 482 917 ; +C -1 ; WX 444 ; N Zcaron ; B 34 0 411 923 ; +C -1 ; WX 389 ; N aacute ; B 26 -14 369 744 ; +C -1 ; WX 389 ; N acircumflex ; B 26 -14 369 744 ; +C -1 ; WX 389 ; N adieresis ; B 26 -14 369 719 ; +C -1 ; WX 389 ; N agrave ; B 26 -14 369 744 ; +C -1 ; WX 389 ; N aring ; B 26 -14 369 796 ; +C -1 ; WX 389 ; N atilde ; B 26 -14 369 720 ; +C -1 ; WX 222 ; N brokenbar ; B 85 0 137 750 ; +C -1 ; WX 389 ; N ccedilla ; B 37 -207 358 566 ; +C -1 ; WX 800 ; N copyright ; B 17 -18 783 768 ; +C -1 ; WX 400 ; N degree ; B 50 444 350 744 ; +C -1 ; WX 444 ; N divide ; B 21 0 424 491 ; +C -1 ; WX 389 ; N eacute ; B 35 -14 352 744 ; +C -1 ; WX 389 ; N ecircumflex ; B 35 -14 352 744 ; +C -1 ; WX 389 ; N edieresis ; B 35 -14 352 719 ; +C -1 ; WX 389 ; N egrave ; B 35 -14 352 744 ; +C -1 ; WX 444 ; N eth ; B 48 -14 397 765 ; +C -1 ; WX 200 ; N iacute ; B 38 0 227 744 ; +C -1 ; WX 200 ; N icircumflex ; B -56 0 238 744 ; +C -1 ; WX 200 ; N idieresis ; B -10 0 212 719 ; +C -1 ; WX 200 ; N igrave ; B -26 0 163 744 ; +C -1 ; WX 444 ; N logicalnot ; B 21 93 424 360 ; +C -1 ; WX 444 ; N minus ; B 21 220 424 271 ; +C -1 ; WX 444 ; N mu ; B 60 -189 379 552 ; +C -1 ; WX 444 ; N multiply ; B 21 38 424 441 ; +C -1 ; WX 444 ; N ntilde ; B 65 0 380 720 ; +C -1 ; WX 444 ; N oacute ; B 49 -14 396 744 ; +C -1 ; WX 444 ; N ocircumflex ; B 49 -14 396 744 ; +C -1 ; WX 444 ; N odieresis ; B 49 -14 396 719 ; +C -1 ; WX 444 ; N ograve ; B 49 -14 396 744 ; +C -1 ; WX 666 ; N onehalf ; B 2 0 664 744 ; +C -1 ; WX 666 ; N onequarter ; B 19 0 648 744 ; +C -1 ; WX 266 ; N onesuperior ; B 57 298 210 744 ; +C -1 ; WX 444 ; N otilde ; B 49 -14 396 720 ; +C -1 ; WX 444 ; N plusminus ; B 21 0 424 490 ; +C -1 ; WX 800 ; N registered ; B 17 -18 783 768 ; +C -1 ; WX 389 ; N scaron ; B 32 -14 350 725 ; +C -1 ; WX 444 ; N thorn ; B 58 -190 394 750 ; +C -1 ; WX 666 ; N threequarters ; B 16 0 650 744 ; +C -1 ; WX 266 ; N threesuperior ; B 12 290 254 744 ; +C -1 ; WX 722 ; N trademark ; B 57 329 666 750 ; +C -1 ; WX 266 ; N twosuperior ; B 16 298 251 744 ; +C -1 ; WX 444 ; N uacute ; B 60 -14 379 744 ; +C -1 ; WX 444 ; N ucircumflex ; B 60 -14 379 734 ; +C -1 ; WX 444 ; N udieresis ; B 60 -14 379 719 ; +C -1 ; WX 444 ; N ugrave ; B 60 -14 379 744 ; +C -1 ; WX 389 ; N yacute ; B 17 -191 373 744 ; +C -1 ; WX 389 ; N ydieresis ; B 17 -191 373 719 ; +C -1 ; WX 333 ; N zcaron ; B 18 0 315 725 ; +EndCharMetrics +StartKernData +StartKernPairs 115 + +KPX A y -18 +KPX A w -18 +KPX A v -18 +KPX A quoteright -55 +KPX A Y -55 +KPX A W -37 +KPX A V -37 +KPX A T -55 + +KPX F period -111 +KPX F comma -111 +KPX F A -37 + +KPX L y -37 +KPX L quoteright -92 +KPX L Y -92 +KPX L W -74 +KPX L V -74 +KPX L T -74 + +KPX P period -129 +KPX P comma -129 +KPX P A -37 + +KPX R y 0 +KPX R Y -18 +KPX R W 0 +KPX R V 0 +KPX R T -18 + +KPX T y -55 +KPX T w -74 +KPX T u -74 +KPX T semicolon -74 +KPX T s -74 +KPX T r -74 +KPX T period -92 +KPX T o -74 +KPX T i -18 +KPX T hyphen -55 +KPX T e -74 +KPX T comma -92 +KPX T colon -74 +KPX T c -74 +KPX T a -74 +KPX T A -55 + +KPX V y 0 +KPX V u -18 +KPX V semicolon -18 +KPX V r -18 +KPX V period -92 +KPX V o -18 +KPX V i 0 +KPX V hyphen -18 +KPX V e -18 +KPX V comma -92 +KPX V colon -18 +KPX V a -18 +KPX V A -37 + +KPX W y 0 +KPX W u 0 +KPX W semicolon 0 +KPX W r 0 +KPX W period -74 +KPX W o -18 +KPX W i 0 +KPX W hyphen -18 +KPX W e -18 +KPX W comma -74 +KPX W colon 0 +KPX W a -18 +KPX W A -18 + +KPX Y v -18 +KPX Y u -37 +KPX Y semicolon -37 +KPX Y q -55 +KPX Y period -111 +KPX Y p -37 +KPX Y o -55 +KPX Y i -18 +KPX Y hyphen -74 +KPX Y e -55 +KPX Y comma -111 +KPX Y colon -37 +KPX Y a -55 +KPX Y A -55 + +KPX f quoteright 28 +KPX f f 0 + +KPX quoteleft quoteleft -18 + +KPX quoteright t 0 +KPX quoteright s -55 +KPX quoteright quoteright -18 + +KPX r z 0 +KPX r y 18 +KPX r x 0 +KPX r w 18 +KPX r v 18 +KPX r u 0 +KPX r t 0 +KPX r r 0 +KPX r quoteright 0 +KPX r q 0 +KPX r period -74 +KPX r o 0 +KPX r n 0 +KPX r m 0 +KPX r hyphen -37 +KPX r h 0 +KPX r g 0 +KPX r f 0 +KPX r e 0 +KPX r d 0 +KPX r comma -74 +KPX r c 0 + +KPX v period -55 +KPX v comma -55 + +KPX w period -37 +KPX w comma -37 + +KPX y period -55 +KPX y comma -55 +EndKernPairs +EndKernData +StartComposites 58 +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 55 178 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 0 -20 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 83 178 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 18 -20 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 111 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 28 0 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 83 198 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 28 0 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 83 198 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 28 0 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 111 198 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 111 198 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 111 198 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 111 198 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 55 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 55 -10 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 55 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 55 0 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute -55 198 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -55 198 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -55 198 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -55 198 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -66 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -76 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -66 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -66 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 55 198 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 55 198 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 55 198 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 55 198 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 28 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 28 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 28 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 28 0 ; +CC Aacute 2 ; PCC A 0 0 ; PCC acute 83 198 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 73 198 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 83 198 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 83 198 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 28 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 28 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 28 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 28 0 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 111 198 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 111 198 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 111 198 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 111 198 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 55 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 55 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 55 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 55 0 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 83 198 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 28 0 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 111 198 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 55 0 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 111 198 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 55 0 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 83 148 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 28 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnLi+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnLi+ new file mode 100755 index 0000000000000..094a7c6942cf2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnLi+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 556 ; N Ccaron ; B 63 -18 492 958 ; +C -1 ; WX 389 ; N ccaron ; B 37 -14 358 745 ; +C -1 ; WX 556 ; N Dcaron ; B 72 0 500 958 ; +C -1 ; WX 492 ; N dcaron ; B 44 -14 458 825 ; +C -1 ; WX 444 ; N Ecaron ; B 67 0 412 958 ; +C -1 ; WX 389 ; N ecaron ; B 35 -14 352 745 ; +C -1 ; WX 444 ; N Lcaron ; B 74 0 417 825 ; +C -1 ; WX 444 ; N Lacute ; B 74 0 417 958 ; +C -1 ; WX 270 ; N lcaron ; B 82 0 216 825 ; +C -1 ; WX 222 ; N lacute ; B 68 0 257 958 ; +C -1 ; WX 556 ; N Ncaron ; B 66 0 490 958 ; +C -1 ; WX 444 ; N ncaron ; B 65 0 379 745 ; +C -1 ; WX 500 ; N Rcaron ; B 63 0 463 958 ; +C -1 ; WX 500 ; N Racute ; B 63 0 463 958 ; +C -1 ; WX 278 ; N rcaron ; B -7 0 287 745 ; +C -1 ; WX 278 ; N racute ; B 69 0 285 744 ; +C -1 ; WX 444 ; N Tcaron ; B 20 0 425 958 ; +C -1 ; WX 270 ; N tcaron ; B 16 -10 277 750 ; +C -1 ; WX 556 ; N Uring ; B 73 -18 483 958 ; +C -1 ; WX 444 ; N uring ; B 60 -14 379 796 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 154 213 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 44 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 111 213 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 340 75 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 55 213 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 28 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 102 75 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 55 214 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 98 75 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute -36 214 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 111 213 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 55 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 83 213 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 119 214 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron -27 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute -8 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 55 213 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 159 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 111 162 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 55 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnLiO b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnLiO new file mode 100755 index 0000000000000..55dc32102e612 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnLiO @@ -0,0 +1,445 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1984 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date:Tue Mar 31 08:44:31 PST 1987 +FontName Helvetica-Condensed-LightObl +EncodingScheme AdobeStandardEncoding +FullName Helvetica.Condensed Light Oblique +FamilyName Helvetica +Weight LightCondensed +ItalicAngle -12.0 +IsFixedPitch false +UnderlinePosition -90 +UnderlineThickness 58 +Version 001.001 +Notice Helvetica is a trademark of Allied Corporation. +FontBBox -170 -207 1069 944 +CapHeight 750 +XHeight 552 +Descender -190 +Ascender 750 +StartCharMetrics 228 +C 32 ; WX 222 ; N space ; B 0 0 0 0 ; +C 33 ; WX 222 ; N exclam ; B 80 13 304 750 ; +C 34 ; WX 309 ; N quotedbl ; B 184 524 395 750 ; +C 35 ; WX 444 ; N numbersign ; B 49 0 558 744 ; +C 36 ; WX 444 ; N dollar ; B 59 -96 516 778 ; +C 37 ; WX 778 ; N percent ; B 180 -15 752 741 ; +C 38 ; WX 611 ; N ampersand ; B 98 -18 613 768 ; +C 39 ; WX 160 ; N quoteright ; B 161 526 277 750 ; +C 40 ; WX 278 ; N parenleft ; B 94 -191 407 768 ; +C 41 ; WX 278 ; N parenright ; B -7 -191 307 768 ; +C 42 ; WX 389 ; N asterisk ; B 182 462 475 744 ; +C 43 ; WX 444 ; N plus ; B 68 0 482 490 ; +C 44 ; WX 222 ; N comma ; B 48 -136 165 88 ; +C 45 ; WX 333 ; N hyphen ; B 92 269 364 327 ; +C 46 ; WX 222 ; N period ; B 77 0 165 88 ; +C 47 ; WX 278 ; N slash ; B -30 -94 448 750 ; +C 48 ; WX 444 ; N zero ; B 85 -14 515 744 ; +C 49 ; WX 444 ; N one ; B 179 0 442 744 ; +C 50 ; WX 444 ; N two ; B 34 0 518 744 ; +C 51 ; WX 444 ; N three ; B 63 -14 505 744 ; +C 52 ; WX 444 ; N four ; B 71 0 504 744 ; +C 53 ; WX 444 ; N five ; B 60 -14 523 730 ; +C 54 ; WX 444 ; N six ; B 85 -14 521 744 ; +C 55 ; WX 444 ; N seven ; B 112 0 567 730 ; +C 56 ; WX 444 ; N eight ; B 72 -14 508 744 ; +C 57 ; WX 444 ; N nine ; B 81 -14 514 744 ; +C 58 ; WX 222 ; N colon ; B 77 0 257 521 ; +C 59 ; WX 222 ; N semicolon ; B 48 -136 257 521 ; +C 60 ; WX 444 ; N less ; B 66 -12 532 501 ; +C 61 ; WX 444 ; N equal ; B 49 131 501 360 ; +C 62 ; WX 444 ; N greater ; B 17 -11 483 502 ; +C 63 ; WX 389 ; N question ; B 134 0 488 750 ; +C 64 ; WX 800 ; N at ; B 97 -18 875 768 ; +C 65 ; WX 500 ; N A ; B 12 0 489 750 ; +C 66 ; WX 500 ; N B ; B 62 0 559 750 ; +C 67 ; WX 556 ; N C ; B 116 -18 606 768 ; +C 68 ; WX 556 ; N D ; B 72 0 602 750 ; +C 69 ; WX 444 ; N E ; B 67 0 566 750 ; +C 70 ; WX 444 ; N F ; B 69 0 573 750 ; +C 71 ; WX 556 ; N G ; B 99 -18 594 768 ; +C 72 ; WX 556 ; N H ; B 68 0 647 750 ; +C 73 ; WX 222 ; N I ; B 79 0 303 750 ; +C 74 ; WX 389 ; N J ; B 41 -18 475 750 ; +C 75 ; WX 500 ; N K ; B 67 0 639 750 ; +C 76 ; WX 444 ; N L ; B 74 0 429 750 ; +C 77 ; WX 722 ; N M ; B 73 0 809 750 ; +C 78 ; WX 556 ; N N ; B 66 0 649 750 ; +C 79 ; WX 556 ; N O ; B 111 -18 606 768 ; +C 80 ; WX 500 ; N P ; B 76 0 587 750 ; +C 81 ; WX 556 ; N Q ; B 111 -42 606 768 ; +C 82 ; WX 500 ; N R ; B 63 0 564 750 ; +C 83 ; WX 500 ; N S ; B 76 -18 569 768 ; +C 84 ; WX 444 ; N T ; B 167 0 584 750 ; +C 85 ; WX 556 ; N U ; B 107 -18 642 750 ; +C 86 ; WX 500 ; N V ; B 173 0 646 750 ; +C 87 ; WX 722 ; N W ; B 162 0 864 750 ; +C 88 ; WX 500 ; N X ; B 18 0 633 750 ; +C 89 ; WX 500 ; N Y ; B 178 0 641 750 ; +C 90 ; WX 444 ; N Z ; B 34 0 570 750 ; +C 91 ; WX 278 ; N bracketleft ; B 52 -104 390 768 ; +C 92 ; WX 222 ; N backslash ; B 119 0 262 750 ; +C 93 ; WX 278 ; N bracketright ; B 27 -104 367 768 ; +C 94 ; WX 444 ; N asciicircum ; B 138 340 449 750 ; +C 95 ; WX 500 ; N underscore ; B -25 -119 487 -61 ; +C 96 ; WX 160 ; N quoteleft ; B 154 526 270 750 ; +C 97 ; WX 389 ; N a ; B 49 -14 425 566 ; +C 98 ; WX 444 ; N b ; B 64 -14 478 750 ; +C 99 ; WX 389 ; N c ; B 75 -14 441 566 ; +C 100 ; WX 444 ; N d ; B 84 -14 541 750 ; +C 101 ; WX 389 ; N e ; B 74 -14 434 566 ; +C 102 ; WX 222 ; N f ; B 77 0 365 750 ; L i fi ; L l fl ; +C 103 ; WX 444 ; N g ; B 42 -189 499 566 ; +C 104 ; WX 444 ; N h ; B 63 0 476 750 ; +C 105 ; WX 222 ; N i ; B 82 0 304 750 ; +C 106 ; WX 222 ; N j ; B -19 -189 309 750 ; +C 107 ; WX 389 ; N k ; B 62 0 489 750 ; +C 108 ; WX 222 ; N l ; B 82 0 299 750 ; +C 109 ; WX 667 ; N m ; B 58 0 705 566 ; +C 110 ; WX 444 ; N n ; B 65 0 476 566 ; +C 111 ; WX 444 ; N o ; B 88 -14 472 566 ; +C 112 ; WX 444 ; N p ; B 18 -190 473 566 ; +C 113 ; WX 444 ; N q ; B 84 -189 499 566 ; +C 114 ; WX 278 ; N r ; B 69 0 377 566 ; +C 115 ; WX 389 ; N s ; B 58 -14 428 566 ; +C 116 ; WX 222 ; N t ; B 80 -10 318 714 ; +C 117 ; WX 444 ; N u ; B 83 -14 496 552 ; +C 118 ; WX 389 ; N v ; B 134 0 490 552 ; +C 119 ; WX 556 ; N w ; B 128 0 662 552 ; +C 120 ; WX 389 ; N x ; B 13 0 484 552 ; +C 121 ; WX 389 ; N y ; B -12 -191 490 552 ; +C 122 ; WX 333 ; N z ; B 18 0 427 552 ; +C 123 ; WX 351 ; N braceleft ; B 119 -93 440 768 ; +C 124 ; WX 222 ; N bar ; B 85 0 296 750 ; +C 125 ; WX 351 ; N braceright ; B 54 -93 375 768 ; +C 126 ; WX 444 ; N asciitilde ; B 66 179 482 309 ; +C 161 ; WX 222 ; N exclamdown ; B 38 -185 263 552 ; +C 162 ; WX 444 ; N cent ; B 87 -143 479 671 ; +C 163 ; WX 444 ; N sterling ; B 28 -21 528 737 ; +C 164 ; WX 167 ; N fraction ; B -170 0 490 744 ; +C 165 ; WX 444 ; N yen ; B 80 0 611 738 ; +C 166 ; WX 444 ; N florin ; B -26 -189 590 744 ; +C 167 ; WX 444 ; N section ; B 65 -147 511 768 ; +C 168 ; WX 444 ; N currency ; B 23 50 540 503 ; +C 169 ; WX 198 ; N quotesingle ; B 184 524 284 750 ; +C 170 ; WX 333 ; N quotedblleft ; B 197 526 443 750 ; +C 171 ; WX 500 ; N guillemotleft ; B 133 130 499 412 ; +C 172 ; WX 333 ; N guilsinglleft ; B 140 130 319 412 ; +C 173 ; WX 333 ; N guilsinglright ; B 130 130 308 412 ; +C 174 ; WX 444 ; N fi ; B 84 0 535 750 ; +C 175 ; WX 444 ; N fl ; B 84 0 531 750 ; +C 177 ; WX 500 ; N endash ; B 58 273 569 324 ; +C 178 ; WX 444 ; N dagger ; B 136 -117 527 768 ; +C 179 ; WX 444 ; N daggerdbl ; B 54 -117 529 768 ; +C 180 ; WX 222 ; N periodcentered ; B 120 201 207 289 ; +C 182 ; WX 564 ; N paragraph ; B 167 -116 602 750 ; +C 183 ; WX 606 ; N bullet ; B 192 189 574 563 ; +C 184 ; WX 222 ; N quotesinglbase ; B 48 -136 165 88 ; +C 185 ; WX 330 ; N quotedblbase ; B 37 -136 284 88 ; +C 186 ; WX 333 ; N quotedblright ; B 161 526 407 750 ; +C 187 ; WX 500 ; N guillemotright ; B 117 130 482 412 ; +C 188 ; WX 1000 ; N ellipsis ; B 133 0 887 88 ; +C 189 ; WX 1000 ; N perthousand ; B 141 -15 1012 741 ; +C 191 ; WX 389 ; N questiondown ; B 9 -202 364 552 ; +C 193 ; WX 333 ; N grave ; B 198 605 358 744 ; +C 194 ; WX 333 ; N acute ; B 233 605 451 744 ; +C 195 ; WX 333 ; N circumflex ; B 149 605 443 744 ; +C 196 ; WX 333 ; N tilde ; B 141 618 477 720 ; +C 197 ; WX 333 ; N macron ; B 156 645 462 690 ; +C 198 ; WX 333 ; N breve ; B 179 612 468 738 ; +C 199 ; WX 333 ; N dotaccent ; B 266 617 352 719 ; +C 200 ; WX 333 ; N dieresis ; B 187 617 431 719 ; +C 202 ; WX 333 ; N ring ; B 213 596 416 796 ; +C 203 ; WX 333 ; N cedilla ; B 17 -207 234 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B 193 605 540 744 ; +C 206 ; WX 333 ; N ogonek ; B -23 -191 184 13 ; +C 207 ; WX 333 ; N caron ; B 178 606 472 745 ; +C 208 ; WX 1000 ; N emdash ; B 58 273 1069 324 ; +C 225 ; WX 722 ; N AE ; B 6 0 844 750 ; +C 227 ; WX 266 ; N ordfeminine ; B 113 334 367 768 ; +C 232 ; WX 444 ; N Lslash ; B 49 0 429 750 ; +C 233 ; WX 556 ; N Oslash ; B 26 -29 688 770 ; +C 234 ; WX 778 ; N OE ; B 109 -18 893 768 ; +C 235 ; WX 266 ; N ordmasculine ; B 103 333 382 768 ; +C 241 ; WX 611 ; N ae ; B 46 -14 665 566 ; +C 245 ; WX 200 ; N dotlessi ; B 71 0 246 552 ; +C 248 ; WX 222 ; N lslash ; B 77 0 324 750 ; +C 249 ; WX 444 ; N oslash ; B -7 -42 547 578 ; +C 250 ; WX 667 ; N oe ; B 75 -14 708 566 ; +C 251 ; WX 444 ; N germandbls ; B 66 -14 505 768 ; +C -1 ; WX 500 ; N Aacute ; B 12 0 577 942 ; +C -1 ; WX 500 ; N Acircumflex ; B 12 0 559 942 ; +C -1 ; WX 500 ; N Adieresis ; B 12 0 557 917 ; +C -1 ; WX 500 ; N Agrave ; B 12 0 489 942 ; +C -1 ; WX 500 ; N Aring ; B 12 0 531 944 ; +C -1 ; WX 500 ; N Atilde ; B 12 0 603 918 ; +C -1 ; WX 556 ; N Ccedilla ; B 116 -207 606 768 ; +C -1 ; WX 444 ; N Eacute ; B 67 0 566 942 ; +C -1 ; WX 444 ; N Ecircumflex ; B 67 0 566 942 ; +C -1 ; WX 444 ; N Edieresis ; B 67 0 566 917 ; +C -1 ; WX 444 ; N Egrave ; B 67 0 566 942 ; +C -1 ; WX 556 ; N Eth ; B 54 0 602 750 ; +C -1 ; WX 222 ; N Iacute ; B 79 0 438 942 ; +C -1 ; WX 222 ; N Icircumflex ; B 79 0 430 942 ; +C -1 ; WX 222 ; N Idieresis ; B 79 0 418 917 ; +C -1 ; WX 222 ; N Igrave ; B 79 0 345 942 ; +C -1 ; WX 556 ; N Ntilde ; B 66 0 649 918 ; +C -1 ; WX 556 ; N Oacute ; B 111 -18 606 942 ; +C -1 ; WX 556 ; N Ocircumflex ; B 111 -18 606 942 ; +C -1 ; WX 556 ; N Odieresis ; B 111 -18 606 917 ; +C -1 ; WX 556 ; N Ograve ; B 111 -18 606 942 ; +C -1 ; WX 556 ; N Otilde ; B 111 -18 631 918 ; +C -1 ; WX 500 ; N Scaron ; B 76 -18 594 923 ; +C -1 ; WX 500 ; N Thorn ; B 76 0 551 750 ; +C -1 ; WX 556 ; N Uacute ; B 107 -18 642 942 ; +C -1 ; WX 556 ; N Ucircumflex ; B 107 -18 642 942 ; +C -1 ; WX 556 ; N Udieresis ; B 107 -18 642 917 ; +C -1 ; WX 556 ; N Ugrave ; B 107 -18 642 942 ; +C -1 ; WX 500 ; N Yacute ; B 178 0 641 942 ; +C -1 ; WX 500 ; N Ydieresis ; B 178 0 641 917 ; +C -1 ; WX 444 ; N Zcaron ; B 34 0 570 923 ; +C -1 ; WX 389 ; N aacute ; B 49 -14 479 744 ; +C -1 ; WX 389 ; N acircumflex ; B 49 -14 471 744 ; +C -1 ; WX 389 ; N adieresis ; B 49 -14 459 719 ; +C -1 ; WX 389 ; N agrave ; B 49 -14 425 744 ; +C -1 ; WX 389 ; N aring ; B 49 -14 444 796 ; +C -1 ; WX 389 ; N atilde ; B 49 -14 505 720 ; +C -1 ; WX 222 ; N brokenbar ; B 85 0 296 750 ; +C -1 ; WX 389 ; N ccedilla ; B 45 -207 441 566 ; +C -1 ; WX 800 ; N copyright ; B 88 -18 872 768 ; +C -1 ; WX 400 ; N degree ; B 173 444 480 744 ; +C -1 ; WX 444 ; N divide ; B 68 0 482 491 ; +C -1 ; WX 389 ; N eacute ; B 74 -14 479 744 ; +C -1 ; WX 389 ; N ecircumflex ; B 74 -14 471 744 ; +C -1 ; WX 389 ; N edieresis ; B 74 -14 459 719 ; +C -1 ; WX 389 ; N egrave ; B 74 -14 434 744 ; +C -1 ; WX 444 ; N eth ; B 87 -14 504 765 ; +C -1 ; WX 200 ; N iacute ; B 71 0 385 744 ; +C -1 ; WX 200 ; N icircumflex ; B 71 0 367 744 ; +C -1 ; WX 200 ; N idieresis ; B 71 0 365 719 ; +C -1 ; WX 200 ; N igrave ; B 71 0 292 744 ; +C -1 ; WX 444 ; N logicalnot ; B 87 93 501 360 ; +C -1 ; WX 444 ; N minus ; B 68 220 482 271 ; +C -1 ; WX 444 ; N mu ; B 20 -189 496 552 ; +C -1 ; WX 444 ; N multiply ; B 37 38 510 441 ; +C -1 ; WX 444 ; N ntilde ; B 65 0 533 720 ; +C -1 ; WX 444 ; N oacute ; B 88 -14 507 744 ; +C -1 ; WX 444 ; N ocircumflex ; B 88 -14 499 744 ; +C -1 ; WX 444 ; N odieresis ; B 88 -14 487 719 ; +C -1 ; WX 444 ; N ograve ; B 88 -14 472 744 ; +C -1 ; WX 666 ; N onehalf ; B 75 0 737 744 ; +C -1 ; WX 666 ; N onequarter ; B 92 0 752 744 ; +C -1 ; WX 266 ; N onesuperior ; B 192 298 368 744 ; +C -1 ; WX 444 ; N otilde ; B 88 -14 533 720 ; +C -1 ; WX 444 ; N plusminus ; B 21 0 492 490 ; +C -1 ; WX 800 ; N registered ; B 88 -18 872 768 ; +C -1 ; WX 389 ; N scaron ; B 58 -14 486 725 ; +C -1 ; WX 444 ; N thorn ; B 18 -190 473 750 ; +C -1 ; WX 666 ; N threequarters ; B 99 0 784 744 ; +C -1 ; WX 266 ; N threesuperior ; B 95 290 378 744 ; +C -1 ; WX 722 ; N trademark ; B 206 329 825 750 ; +C -1 ; WX 266 ; N twosuperior ; B 79 298 387 744 ; +C -1 ; WX 444 ; N uacute ; B 83 -14 507 744 ; +C -1 ; WX 444 ; N ucircumflex ; B 83 -14 497 734 ; +C -1 ; WX 444 ; N udieresis ; B 83 -14 496 719 ; +C -1 ; WX 444 ; N ugrave ; B 83 -14 496 744 ; +C -1 ; WX 389 ; N yacute ; B -12 -191 490 744 ; +C -1 ; WX 389 ; N ydieresis ; B -12 -191 490 719 ; +C -1 ; WX 333 ; N zcaron ; B 18 0 468 725 ; +EndCharMetrics +StartKernData +StartKernPairs 115 + +KPX A y -18 +KPX A w -18 +KPX A v -18 +KPX A quoteright -55 +KPX A Y -55 +KPX A W -37 +KPX A V -37 +KPX A T -55 + +KPX F period -111 +KPX F comma -111 +KPX F A -37 + +KPX L y -37 +KPX L quoteright -92 +KPX L Y -92 +KPX L W -74 +KPX L V -74 +KPX L T -74 + +KPX P period -129 +KPX P comma -129 +KPX P A -37 + +KPX R y 0 +KPX R Y -18 +KPX R W 0 +KPX R V 0 +KPX R T -18 + +KPX T y -55 +KPX T w -74 +KPX T u -74 +KPX T semicolon -74 +KPX T s -74 +KPX T r -74 +KPX T period -92 +KPX T o -74 +KPX T i -18 +KPX T hyphen -55 +KPX T e -74 +KPX T comma -92 +KPX T colon -74 +KPX T c -74 +KPX T a -74 +KPX T A -55 + +KPX V y 0 +KPX V u -18 +KPX V semicolon -18 +KPX V r -18 +KPX V period -92 +KPX V o -18 +KPX V i 0 +KPX V hyphen -18 +KPX V e -18 +KPX V comma -92 +KPX V colon -18 +KPX V a -18 +KPX V A -37 + +KPX W y 0 +KPX W u 0 +KPX W semicolon 0 +KPX W r 0 +KPX W period -74 +KPX W o -18 +KPX W i 0 +KPX W hyphen -18 +KPX W e -18 +KPX W comma -74 +KPX W colon 0 +KPX W a -18 +KPX W A -18 + +KPX Y v -18 +KPX Y u -37 +KPX Y semicolon -37 +KPX Y q -55 +KPX Y period -111 +KPX Y p -37 +KPX Y o -55 +KPX Y i -18 +KPX Y hyphen -74 +KPX Y e -55 +KPX Y comma -111 +KPX Y colon -37 +KPX Y a -55 +KPX Y A -55 + +KPX f quoteright 28 +KPX f f 0 + +KPX quoteleft quoteleft -18 + +KPX quoteright t 0 +KPX quoteright s -55 +KPX quoteright quoteright -18 + +KPX r z 0 +KPX r y 18 +KPX r x 0 +KPX r w 18 +KPX r v 18 +KPX r u 0 +KPX r t 0 +KPX r r 0 +KPX r quoteright 0 +KPX r q 0 +KPX r period -74 +KPX r o 0 +KPX r n 0 +KPX r m 0 +KPX r hyphen -37 +KPX r h 0 +KPX r g 0 +KPX r f 0 +KPX r e 0 +KPX r d 0 +KPX r comma -74 +KPX r c 0 + +KPX v period -55 +KPX v comma -55 + +KPX w period -37 +KPX w comma -37 + +KPX y period -55 +KPX y comma -55 +EndKernPairs +EndKernData +StartComposites 58 +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 55 178 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 0 -20 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 83 178 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 18 -20 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 111 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 28 0 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 83 198 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 28 0 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 83 198 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 28 0 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 111 198 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 111 198 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 111 198 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 111 198 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 55 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 55 -10 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 55 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 55 0 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute -55 198 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -55 198 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -55 198 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -55 198 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -66 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -76 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -66 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -66 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 55 198 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 55 198 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 55 198 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 55 198 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 28 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 28 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 28 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 28 0 ; +CC Aacute 2 ; PCC A 0 0 ; PCC acute 83 198 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 73 198 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 83 198 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 83 198 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 28 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 28 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 28 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 28 0 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 111 198 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 111 198 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 111 198 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 111 198 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 55 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 55 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 55 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 55 0 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 83 198 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 28 0 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 111 198 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 55 0 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 111 198 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 55 0 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 83 148 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 28 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnLiO+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnLiO+ new file mode 100755 index 0000000000000..ffd0483208a0c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnLiO+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 556 ; N Ccaron ; B 116 -18 677 958 ; +C -1 ; WX 389 ; N ccaron ; B 75 -14 518 745 ; +C -1 ; WX 556 ; N Dcaron ; B 72 0 628 958 ; +C -1 ; WX 525 ; N dcaron ; B 84 -14 669 825 ; +C -1 ; WX 444 ; N Ecaron ; B 67 0 572 958 ; +C -1 ; WX 389 ; N ecaron ; B 74 -14 500 745 ; +C -1 ; WX 444 ; N Lcaron ; B 74 0 431 825 ; +C -1 ; WX 444 ; N Lacute ; B 74 0 551 958 ; +C -1 ; WX 303 ; N lcaron ; B 82 0 427 825 ; +C -1 ; WX 222 ; N lacute ; B 82 0 463 958 ; +C -1 ; WX 556 ; N Ncaron ; B 66 0 649 958 ; +C -1 ; WX 444 ; N ncaron ; B 65 0 527 745 ; +C -1 ; WX 500 ; N Rcaron ; B 63 0 600 958 ; +C -1 ; WX 500 ; N Racute ; B 63 0 620 958 ; +C -1 ; WX 278 ; N rcaron ; B 69 0 445 745 ; +C -1 ; WX 278 ; N racute ; B 69 0 446 744 ; +C -1 ; WX 444 ; N Tcaron ; B 167 0 584 958 ; +C -1 ; WX 303 ; N tcaron ; B 80 -10 446 750 ; +C -1 ; WX 556 ; N Uring ; B 107 -18 642 958 ; +C -1 ; WX 444 ; N uring ; B 83 -14 496 796 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 205 213 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 46 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 156 213 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 392 75 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 100 213 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 28 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 154 75 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 100 214 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 150 75 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 12 214 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 156 213 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 55 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 128 213 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 169 214 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron -27 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute -5 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 100 213 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 169 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 145 162 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 55 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnO b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnO new file mode 100755 index 0000000000000..b6d02189ce2b2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnO @@ -0,0 +1,447 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989 Adobe Systems Incorporated. All rights reserved. +Comment Creation Date: Tue Dec 5 16:29:02 1989 +Comment UniqueID 26319 +Comment VMusage 6239 39252 +FontName Helvetica-Condensed-Oblique +FullName Helvetica Condensed Oblique +FamilyName Helvetica +Weight MediumCondensed +ItalicAngle -12 +IsFixedPitch false +FontBBox -174 -224 1118 990 +UnderlinePosition -90 +UnderlineThickness 58 +Version 001.002 +Notice Copyright (c) 1985, 1987, 1989 Adobe Systems Incorporated. All rights reserved.Helvetica is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 750 +XHeight 556 +Ascender 750 +Descender -188 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 121 0 371 750 ; +C 34 ; WX 250 ; N quotedbl ; B 153 513 364 739 ; +C 35 ; WX 500 ; N numbersign ; B 33 0 621 750 ; +C 36 ; WX 500 ; N dollar ; B 69 -116 569 815 ; +C 37 ; WX 833 ; N percent ; B 164 -15 803 750 ; +C 38 ; WX 667 ; N ampersand ; B 111 -18 648 750 ; +C 39 ; WX 222 ; N quoteright ; B 171 504 317 750 ; +C 40 ; WX 333 ; N parenleft ; B 115 -215 443 750 ; +C 41 ; WX 333 ; N parenright ; B 3 -215 331 750 ; +C 42 ; WX 500 ; N asterisk ; B 229 455 537 750 ; +C 43 ; WX 500 ; N plus ; B 91 0 518 505 ; +C 44 ; WX 250 ; N comma ; B 49 -146 192 100 ; +C 45 ; WX 333 ; N hyphen ; B 103 275 364 358 ; +C 46 ; WX 250 ; N period ; B 80 0 192 100 ; +C 47 ; WX 278 ; N slash ; B -19 -27 450 750 ; +C 48 ; WX 500 ; N zero ; B 98 -15 563 750 ; +C 49 ; WX 500 ; N one ; B 190 0 476 750 ; +C 50 ; WX 500 ; N two ; B 44 0 562 750 ; +C 51 ; WX 500 ; N three ; B 73 -15 552 750 ; +C 52 ; WX 500 ; N four ; B 68 0 543 750 ; +C 53 ; WX 500 ; N five ; B 75 -15 575 735 ; +C 54 ; WX 500 ; N six ; B 91 -15 566 750 ; +C 55 ; WX 500 ; N seven ; B 116 0 612 735 ; +C 56 ; WX 500 ; N eight ; B 83 -15 559 750 ; +C 57 ; WX 500 ; N nine ; B 91 -15 566 750 ; +C 58 ; WX 250 ; N colon ; B 80 0 287 547 ; +C 59 ; WX 250 ; N semicolon ; B 49 -146 287 547 ; +C 60 ; WX 500 ; N less ; B 89 -10 569 518 ; +C 61 ; WX 500 ; N equal ; B 70 124 539 384 ; +C 62 ; WX 500 ; N greater ; B 40 -10 520 518 ; +C 63 ; WX 500 ; N question ; B 169 0 586 750 ; +C 64 ; WX 800 ; N at ; B 106 -15 863 750 ; +C 65 ; WX 556 ; N A ; B 11 0 546 750 ; +C 66 ; WX 556 ; N B ; B 80 0 610 750 ; +C 67 ; WX 556 ; N C ; B 106 -18 624 765 ; +C 68 ; WX 611 ; N D ; B 82 0 653 750 ; +C 69 ; WX 500 ; N E ; B 74 0 608 750 ; +C 70 ; WX 444 ; N F ; B 74 0 585 750 ; +C 71 ; WX 611 ; N G ; B 109 -18 646 765 ; +C 72 ; WX 611 ; N H ; B 79 0 691 750 ; +C 73 ; WX 278 ; N I ; B 98 0 340 750 ; +C 74 ; WX 444 ; N J ; B 52 -15 527 750 ; +C 75 ; WX 556 ; N K ; B 79 0 698 750 ; +C 76 ; WX 500 ; N L ; B 83 0 488 750 ; +C 77 ; WX 778 ; N M ; B 76 0 861 750 ; +C 78 ; WX 611 ; N N ; B 77 0 693 750 ; +C 79 ; WX 611 ; N O ; B 116 -18 658 765 ; +C 80 ; WX 556 ; N P ; B 86 0 641 750 ; +C 81 ; WX 611 ; N Q ; B 116 -34 659 765 ; +C 82 ; WX 611 ; N R ; B 86 0 655 750 ; +C 83 ; WX 556 ; N S ; B 86 -18 611 765 ; +C 84 ; WX 500 ; N T ; B 158 0 645 750 ; +C 85 ; WX 611 ; N U ; B 114 -18 690 750 ; +C 86 ; WX 556 ; N V ; B 170 0 704 750 ; +C 87 ; WX 833 ; N W ; B 176 0 975 750 ; +C 88 ; WX 556 ; N X ; B 17 0 692 750 ; +C 89 ; WX 556 ; N Y ; B 170 0 705 750 ; +C 90 ; WX 500 ; N Z ; B 28 0 627 750 ; +C 91 ; WX 333 ; N bracketleft ; B 56 -209 434 750 ; +C 92 ; WX 250 ; N backslash ; B 128 0 281 750 ; +C 93 ; WX 333 ; N bracketright ; B 14 -209 392 750 ; +C 94 ; WX 500 ; N asciicircum ; B 141 333 502 750 ; +C 95 ; WX 500 ; N underscore ; B -25 -119 487 -61 ; +C 96 ; WX 222 ; N quoteleft ; B 175 521 321 767 ; +C 97 ; WX 444 ; N a ; B 55 -15 465 571 ; +C 98 ; WX 500 ; N b ; B 75 -15 525 750 ; +C 99 ; WX 444 ; N c ; B 85 -15 488 571 ; +C 100 ; WX 500 ; N d ; B 88 -15 583 750 ; +C 101 ; WX 444 ; N e ; B 86 -15 476 571 ; +C 102 ; WX 278 ; N f ; B 93 0 418 752 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B 53 -189 544 571 ; +C 104 ; WX 500 ; N h ; B 73 0 524 750 ; +C 105 ; WX 222 ; N i ; B 72 0 310 750 ; +C 106 ; WX 222 ; N j ; B -27 -190 313 750 ; +C 107 ; WX 444 ; N k ; B 69 0 552 750 ; +C 108 ; WX 222 ; N l ; B 72 0 310 750 ; +C 109 ; WX 778 ; N m ; B 76 0 799 571 ; +C 110 ; WX 500 ; N n ; B 73 0 524 571 ; +C 111 ; WX 500 ; N o ; B 96 -15 524 571 ; +C 112 ; WX 500 ; N p ; B 32 -188 524 571 ; +C 113 ; WX 500 ; N q ; B 100 -184 544 571 ; +C 114 ; WX 333 ; N r ; B 81 0 441 563 ; +C 115 ; WX 444 ; N s ; B 68 -15 473 571 ; +C 116 ; WX 278 ; N t ; B 101 0 375 707 ; +C 117 ; WX 500 ; N u ; B 99 -15 542 556 ; +C 118 ; WX 444 ; N v ; B 131 0 549 556 ; +C 119 ; WX 667 ; N w ; B 137 0 767 556 ; +C 120 ; WX 444 ; N x ; B 9 0 548 556 ; +C 121 ; WX 444 ; N y ; B -13 -190 543 556 ; +C 122 ; WX 389 ; N z ; B 24 0 482 556 ; +C 123 ; WX 274 ; N braceleft ; B 77 -95 425 750 ; +C 124 ; WX 250 ; N bar ; B 93 0 316 750 ; +C 125 ; WX 274 ; N braceright ; B -12 -95 337 750 ; +C 126 ; WX 500 ; N asciitilde ; B 89 166 520 345 ; +C 161 ; WX 333 ; N exclamdown ; B 83 -179 333 571 ; +C 162 ; WX 500 ; N cent ; B 94 -137 499 667 ; +C 163 ; WX 500 ; N sterling ; B 40 -15 589 750 ; +C 164 ; WX 167 ; N fraction ; B -174 0 500 750 ; +C 165 ; WX 500 ; N yen ; B 88 0 677 750 ; +C 166 ; WX 500 ; N florin ; B -28 -192 645 750 ; +C 167 ; WX 500 ; N section ; B 51 -208 552 750 ; +C 168 ; WX 500 ; N currency ; B 51 50 576 553 ; +C 169 ; WX 250 ; N quotesingle ; B 208 513 308 739 ; +C 170 ; WX 389 ; N quotedblleft ; B 173 521 490 767 ; +C 171 ; WX 500 ; N guillemotleft ; B 145 125 520 495 ; +C 172 ; WX 278 ; N guilsinglleft ; B 124 125 320 495 ; +C 173 ; WX 278 ; N guilsinglright ; B 90 125 286 495 ; +C 174 ; WX 500 ; N fi ; B 93 0 584 752 ; +C 175 ; WX 500 ; N fl ; B 93 0 584 752 ; +C 177 ; WX 500 ; N endash ; B 58 275 573 345 ; +C 178 ; WX 500 ; N dagger ; B 137 -176 573 750 ; +C 179 ; WX 500 ; N daggerdbl ; B 50 -176 572 750 ; +C 180 ; WX 250 ; N periodcentered ; B 123 204 236 304 ; +C 182 ; WX 440 ; N paragraph ; B 113 -116 550 750 ; +C 183 ; WX 333 ; N bullet ; B 91 222 401 529 ; +C 184 ; WX 222 ; N quotesinglbase ; B 33 -146 179 100 ; +C 185 ; WX 389 ; N quotedblbase ; B 31 -146 348 100 ; +C 186 ; WX 389 ; N quotedblright ; B 169 504 486 750 ; +C 187 ; WX 500 ; N guillemotright ; B 112 125 487 495 ; +C 188 ; WX 1000 ; N ellipsis ; B 121 0 899 100 ; +C 189 ; WX 1111 ; N perthousand ; B 157 -16 1118 750 ; +C 191 ; WX 500 ; N questiondown ; B 33 -190 450 559 ; +C 193 ; WX 333 ; N grave ; B 198 624 366 765 ; +C 194 ; WX 333 ; N acute ; B 233 624 461 765 ; +C 195 ; WX 333 ; N circumflex ; B 154 624 446 765 ; +C 196 ; WX 333 ; N tilde ; B 132 633 496 749 ; +C 197 ; WX 333 ; N macron ; B 150 657 475 715 ; +C 198 ; WX 333 ; N breve ; B 172 629 484 765 ; +C 199 ; WX 250 ; N dotaccent ; B 224 650 324 750 ; +C 200 ; WX 333 ; N dieresis ; B 190 650 440 750 ; +C 202 ; WX 250 ; N ring ; B 169 593 377 796 ; +C 203 ; WX 333 ; N cedilla ; B 23 -224 255 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B 194 624 603 765 ; +C 206 ; WX 333 ; N ogonek ; B -23 -191 188 13 ; +C 207 ; WX 333 ; N caron ; B 184 624 476 765 ; +C 208 ; WX 1000 ; N emdash ; B 58 275 1073 345 ; +C 225 ; WX 833 ; N AE ; B 0 0 944 750 ; +C 227 ; WX 300 ; N ordfeminine ; B 90 305 392 765 ; +C 232 ; WX 500 ; N Lslash ; B 39 0 488 750 ; +C 233 ; WX 611 ; N Oslash ; B 25 -43 738 796 ; +C 234 ; WX 833 ; N OE ; B 113 -18 946 765 ; +C 235 ; WX 300 ; N ordmasculine ; B 85 305 413 765 ; +C 241 ; WX 667 ; N ae ; B 50 -15 711 571 ; +C 245 ; WX 222 ; N dotlessi ; B 72 0 269 556 ; +C 248 ; WX 222 ; N lslash ; B 59 0 347 750 ; +C 249 ; WX 500 ; N oslash ; B 19 -46 591 582 ; +C 250 ; WX 722 ; N oe ; B 81 -15 758 571 ; +C 251 ; WX 500 ; N germandbls ; B 71 -5 548 765 ; +C -1 ; WX 500 ; N Zcaron ; B 28 0 627 959 ; +C -1 ; WX 444 ; N ccedilla ; B 79 -224 488 571 ; +C -1 ; WX 444 ; N ydieresis ; B -13 -190 543 750 ; +C -1 ; WX 444 ; N atilde ; B 55 -15 552 749 ; +C -1 ; WX 222 ; N icircumflex ; B 72 0 391 765 ; +C -1 ; WX 300 ; N threesuperior ; B 102 291 409 750 ; +C -1 ; WX 444 ; N ecircumflex ; B 86 -15 502 765 ; +C -1 ; WX 500 ; N thorn ; B 32 -188 524 750 ; +C -1 ; WX 444 ; N egrave ; B 86 -15 476 765 ; +C -1 ; WX 300 ; N twosuperior ; B 83 300 413 750 ; +C -1 ; WX 444 ; N eacute ; B 86 -15 517 765 ; +C -1 ; WX 500 ; N otilde ; B 96 -15 580 749 ; +C -1 ; WX 556 ; N Aacute ; B 11 0 614 959 ; +C -1 ; WX 500 ; N ocircumflex ; B 96 -15 530 765 ; +C -1 ; WX 444 ; N yacute ; B -13 -190 543 765 ; +C -1 ; WX 500 ; N udieresis ; B 99 -15 542 750 ; +C -1 ; WX 750 ; N threequarters ; B 106 0 831 750 ; +C -1 ; WX 444 ; N acircumflex ; B 55 -15 502 765 ; +C -1 ; WX 611 ; N Eth ; B 67 0 653 750 ; +C -1 ; WX 444 ; N edieresis ; B 86 -15 496 750 ; +C -1 ; WX 500 ; N ugrave ; B 99 -15 542 765 ; +C -1 ; WX 750 ; N trademark ; B 147 329 878 750 ; +C -1 ; WX 500 ; N ograve ; B 96 -15 524 765 ; +C -1 ; WX 444 ; N scaron ; B 68 -15 532 765 ; +C -1 ; WX 278 ; N Idieresis ; B 98 0 455 944 ; +C -1 ; WX 500 ; N uacute ; B 99 -15 545 765 ; +C -1 ; WX 444 ; N agrave ; B 55 -15 465 765 ; +C -1 ; WX 500 ; N ntilde ; B 73 0 580 749 ; +C -1 ; WX 444 ; N aring ; B 55 -15 474 796 ; +C -1 ; WX 389 ; N zcaron ; B 24 0 504 765 ; +C -1 ; WX 278 ; N Icircumflex ; B 98 0 460 959 ; +C -1 ; WX 611 ; N Ntilde ; B 77 0 693 943 ; +C -1 ; WX 500 ; N ucircumflex ; B 99 -15 542 765 ; +C -1 ; WX 500 ; N Ecircumflex ; B 74 0 608 959 ; +C -1 ; WX 278 ; N Iacute ; B 98 0 475 959 ; +C -1 ; WX 556 ; N Ccedilla ; B 106 -224 624 765 ; +C -1 ; WX 611 ; N Odieresis ; B 116 -18 658 944 ; +C -1 ; WX 556 ; N Scaron ; B 86 -18 629 959 ; +C -1 ; WX 500 ; N Edieresis ; B 74 0 608 944 ; +C -1 ; WX 278 ; N Igrave ; B 98 0 380 959 ; +C -1 ; WX 444 ; N adieresis ; B 55 -15 496 750 ; +C -1 ; WX 611 ; N Ograve ; B 116 -18 658 959 ; +C -1 ; WX 500 ; N Egrave ; B 74 0 608 959 ; +C -1 ; WX 556 ; N Ydieresis ; B 170 0 705 944 ; +C -1 ; WX 800 ; N registered ; B 79 -18 881 765 ; +C -1 ; WX 611 ; N Otilde ; B 116 -18 676 943 ; +C -1 ; WX 750 ; N onequarter ; B 143 0 817 750 ; +C -1 ; WX 611 ; N Ugrave ; B 114 -18 690 959 ; +C -1 ; WX 611 ; N Ucircumflex ; B 114 -18 690 959 ; +C -1 ; WX 556 ; N Thorn ; B 86 0 607 750 ; +C -1 ; WX 500 ; N divide ; B 91 3 518 505 ; +C -1 ; WX 556 ; N Atilde ; B 11 0 649 943 ; +C -1 ; WX 611 ; N Uacute ; B 114 -18 690 959 ; +C -1 ; WX 611 ; N Ocircumflex ; B 116 -18 658 959 ; +C -1 ; WX 500 ; N logicalnot ; B 111 117 539 384 ; +C -1 ; WX 556 ; N Aring ; B 11 0 571 990 ; +C -1 ; WX 222 ; N idieresis ; B 72 0 385 750 ; +C -1 ; WX 222 ; N iacute ; B 72 0 406 765 ; +C -1 ; WX 444 ; N aacute ; B 55 -15 517 765 ; +C -1 ; WX 500 ; N plusminus ; B 44 0 531 505 ; +C -1 ; WX 500 ; N multiply ; B 65 48 544 461 ; +C -1 ; WX 611 ; N Udieresis ; B 114 -18 690 944 ; +C -1 ; WX 500 ; N minus ; B 91 219 518 289 ; +C -1 ; WX 300 ; N onesuperior ; B 200 300 392 750 ; +C -1 ; WX 500 ; N Eacute ; B 74 0 608 959 ; +C -1 ; WX 556 ; N Acircumflex ; B 11 0 599 959 ; +C -1 ; WX 800 ; N copyright ; B 79 -18 880 765 ; +C -1 ; WX 556 ; N Agrave ; B 11 0 546 959 ; +C -1 ; WX 500 ; N odieresis ; B 96 -15 524 750 ; +C -1 ; WX 500 ; N oacute ; B 96 -15 545 765 ; +C -1 ; WX 400 ; N degree ; B 174 450 481 750 ; +C -1 ; WX 222 ; N igrave ; B 72 0 311 765 ; +C -1 ; WX 500 ; N mu ; B 35 -189 540 556 ; +C -1 ; WX 611 ; N Oacute ; B 116 -18 658 959 ; +C -1 ; WX 500 ; N eth ; B 87 -15 548 770 ; +C -1 ; WX 556 ; N Adieresis ; B 11 0 594 944 ; +C -1 ; WX 556 ; N Yacute ; B 170 0 705 959 ; +C -1 ; WX 250 ; N brokenbar ; B 93 0 316 750 ; +C -1 ; WX 750 ; N onehalf ; B 91 0 777 750 ; +EndCharMetrics +StartKernData +StartKernPairs 115 + +KPX A y -18 +KPX A w -18 +KPX A v -18 +KPX A quoteright -55 +KPX A Y -55 +KPX A W -37 +KPX A V -37 +KPX A T -55 + +KPX F period -111 +KPX F comma -111 +KPX F A -37 + +KPX L y -37 +KPX L quoteright -92 +KPX L Y -92 +KPX L W -74 +KPX L V -74 +KPX L T -74 + +KPX P period -129 +KPX P comma -129 +KPX P A -37 + +KPX R y 0 +KPX R Y -18 +KPX R W 0 +KPX R V 0 +KPX R T -18 + +KPX T y -55 +KPX T w -74 +KPX T u -74 +KPX T semicolon -74 +KPX T s -74 +KPX T r -74 +KPX T period -92 +KPX T o -74 +KPX T i -18 +KPX T hyphen -55 +KPX T e -74 +KPX T comma -92 +KPX T colon -74 +KPX T c -74 +KPX T a -74 +KPX T A -55 + +KPX V y 0 +KPX V u -18 +KPX V semicolon -18 +KPX V r -18 +KPX V period -92 +KPX V o -18 +KPX V i 0 +KPX V hyphen -18 +KPX V e -18 +KPX V comma -92 +KPX V colon -18 +KPX V a -18 +KPX V A -37 + +KPX W y 0 +KPX W u 0 +KPX W semicolon 0 +KPX W r 0 +KPX W period -74 +KPX W o -18 +KPX W i 0 +KPX W hyphen -18 +KPX W e -18 +KPX W comma -74 +KPX W colon 0 +KPX W a -18 +KPX W A -18 + +KPX Y v -18 +KPX Y u -37 +KPX Y semicolon -37 +KPX Y q -55 +KPX Y period -111 +KPX Y p -37 +KPX Y o -55 +KPX Y i -18 +KPX Y hyphen -74 +KPX Y e -55 +KPX Y comma -111 +KPX Y colon -37 +KPX Y a -55 +KPX Y A -55 + +KPX f quoteright 18 +KPX f f 0 + +KPX quoteleft quoteleft -18 + +KPX quoteright t 0 +KPX quoteright s -55 +KPX quoteright quoteright -18 + +KPX r z 20 +KPX r y 18 +KPX r x 20 +KPX r w 18 +KPX r v 18 +KPX r u 0 +KPX r t 0 +KPX r r 0 +KPX r quoteright 0 +KPX r q 0 +KPX r period -74 +KPX r o 0 +KPX r n 0 +KPX r m 0 +KPX r hyphen -37 +KPX r h 0 +KPX r g 0 +KPX r f 20 +KPX r e 0 +KPX r d 0 +KPX r comma -74 +KPX r c -20 + +KPX v period -55 +KPX v comma -55 + +KPX w period -37 +KPX w comma -37 + +KPX y period -55 +KPX y comma -55 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 153 194 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 153 194 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 153 194 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 153 194 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 194 194 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 153 194 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 112 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 125 194 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 125 194 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 125 194 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 125 194 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 14 194 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 14 194 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 14 194 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 14 194 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 180 194 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 180 194 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 180 194 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 180 194 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 180 194 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 180 194 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 153 194 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 180 194 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 180 194 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 180 194 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 180 194 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 153 194 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 153 194 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 125 194 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 56 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 56 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 56 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 56 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 97 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 56 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 56 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 56 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 56 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 56 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 56 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -55 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -55 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -55 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -55 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 84 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 84 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 84 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 84 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 84 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 84 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 56 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 84 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 84 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 84 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 84 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 56 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 56 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 28 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnO+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnO+ new file mode 100755 index 0000000000000..e2306a01c07e6 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-CnO+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 556 ; N Ccaron ; B 106 -18 680 960 ; +C -1 ; WX 444 ; N ccaron ; B 85 -15 551 765 ; +C -1 ; WX 611 ; N Dcaron ; B 82 0 656 960 ; +C -1 ; WX 602 ; N dcaron ; B 88 -15 744 825 ; +C -1 ; WX 500 ; N Ecaron ; B 74 0 608 960 ; +C -1 ; WX 444 ; N ecaron ; B 86 -15 531 765 ; +C -1 ; WX 500 ; N Lcaron ; B 83 0 501 825 ; +C -1 ; WX 500 ; N Lacute ; B 83 0 585 960 ; +C -1 ; WX 324 ; N lcaron ; B 72 0 471 825 ; +C -1 ; WX 222 ; N lacute ; B 72 0 470 960 ; +C -1 ; WX 611 ; N Ncaron ; B 77 0 693 960 ; +C -1 ; WX 500 ; N ncaron ; B 73 0 559 765 ; +C -1 ; WX 611 ; N Rcaron ; B 86 0 656 960 ; +C -1 ; WX 611 ; N Racute ; B 86 0 684 960 ; +C -1 ; WX 333 ; N rcaron ; B 81 0 476 765 ; +C -1 ; WX 333 ; N racute ; B 81 0 484 765 ; +C -1 ; WX 500 ; N Tcaron ; B 158 0 645 960 ; +C -1 ; WX 380 ; N tcaron ; B 101 0 536 750 ; +C -1 ; WX 611 ; N Uring ; B 114 -18 690 960 ; +C -1 ; WX 500 ; N uring ; B 99 -15 542 796 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 204 195 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 75 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 180 195 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 427 75 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 124 195 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 55 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 184 75 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 124 195 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 154 75 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 9 195 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 180 195 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 83 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 180 195 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 223 195 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 23 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 124 195 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 219 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 214 164 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 125 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-ExtC b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-ExtC new file mode 100755 index 0000000000000..4e14e988bd9b4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-ExtC @@ -0,0 +1,415 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1988, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Fri Dec 13 16:18:46 1991 +Comment UniqueID 37157 +Comment VMusage 24443 31335 +FontName Helvetica-ExtraCompressed +FullName Helvetica Extra Compressed +FamilyName Helvetica +Weight Bold +ItalicAngle 0 +IsFixedPitch false +FontBBox -123 -250 1000 956 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.002 +Notice Copyright (c) 1988, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 712 +XHeight 572 +Ascender 712 +Descender -128 +StartCharMetrics 228 +C 32 ; WX 185 ; N space ; B 0 0 0 0 ; +C 33 ; WX 259 ; N exclam ; B 66 0 193 712 ; +C 34 ; WX 333 ; N quotedbl ; B 15 441 318 712 ; +C 35 ; WX 370 ; N numbersign ; B 12 0 358 712 ; +C 36 ; WX 370 ; N dollar ; B 17 -66 354 778 ; +C 37 ; WX 537 ; N percent ; B 19 -14 518 726 ; +C 38 ; WX 426 ; N ampersand ; B 14 -14 424 726 ; +C 39 ; WX 167 ; N quoteright ; B 9 457 158 712 ; +C 40 ; WX 296 ; N parenleft ; B 26 -94 270 726 ; +C 41 ; WX 296 ; N parenright ; B 26 -94 270 726 ; +C 42 ; WX 370 ; N asterisk ; B 22 399 347 712 ; +C 43 ; WX 556 ; N plus ; B 33 40 523 532 ; +C 44 ; WX 185 ; N comma ; B 9 -126 175 148 ; +C 45 ; WX 259 ; N hyphen ; B 43 264 216 356 ; +C 46 ; WX 185 ; N period ; B 29 0 156 148 ; +C 47 ; WX 204 ; N slash ; B -5 -14 210 726 ; +C 48 ; WX 370 ; N zero ; B 19 -14 351 726 ; +C 49 ; WX 370 ; N one ; B 39 0 260 712 ; +C 50 ; WX 370 ; N two ; B 19 0 351 726 ; +C 51 ; WX 370 ; N three ; B 19 -14 351 726 ; +C 52 ; WX 370 ; N four ; B -3 0 369 712 ; +C 53 ; WX 370 ; N five ; B 19 -14 351 712 ; +C 54 ; WX 370 ; N six ; B 19 -14 351 726 ; +C 55 ; WX 370 ; N seven ; B 9 0 366 712 ; +C 56 ; WX 370 ; N eight ; B 19 -14 351 726 ; +C 57 ; WX 370 ; N nine ; B 19 -14 351 726 ; +C 58 ; WX 185 ; N colon ; B 29 0 156 572 ; +C 59 ; WX 185 ; N semicolon ; B 9 -126 175 572 ; +C 60 ; WX 556 ; N less ; B 60 62 497 510 ; +C 61 ; WX 556 ; N equal ; B 33 112 523 460 ; +C 62 ; WX 556 ; N greater ; B 59 62 496 510 ; +C 63 ; WX 426 ; N question ; B 63 0 363 726 ; +C 64 ; WX 800 ; N at ; B 36 -14 764 726 ; +C 65 ; WX 370 ; N A ; B -4 0 374 712 ; +C 66 ; WX 370 ; N B ; B 19 0 351 712 ; +C 67 ; WX 370 ; N C ; B 19 -14 351 726 ; +C 68 ; WX 370 ; N D ; B 19 0 351 712 ; +C 69 ; WX 296 ; N E ; B 23 0 287 712 ; +C 70 ; WX 296 ; N F ; B 23 0 287 712 ; +C 71 ; WX 370 ; N G ; B 19 -14 351 726 ; +C 72 ; WX 370 ; N H ; B 19 0 351 712 ; +C 73 ; WX 204 ; N I ; B 31 0 172 712 ; +C 74 ; WX 370 ; N J ; B 19 -14 351 712 ; +C 75 ; WX 370 ; N K ; B 13 0 367 712 ; +C 76 ; WX 296 ; N L ; B 19 0 285 712 ; +C 77 ; WX 593 ; N M ; B 23 0 570 712 ; +C 78 ; WX 426 ; N N ; B 23 0 403 712 ; +C 79 ; WX 370 ; N O ; B 19 -14 351 726 ; +C 80 ; WX 370 ; N P ; B 19 0 351 712 ; +C 81 ; WX 370 ; N Q ; B 19 -128 351 726 ; +C 82 ; WX 370 ; N R ; B 19 0 372 712 ; +C 83 ; WX 370 ; N S ; B 17 -14 354 726 ; +C 84 ; WX 333 ; N T ; B 1 0 332 712 ; +C 85 ; WX 370 ; N U ; B 19 -14 351 712 ; +C 86 ; WX 370 ; N V ; B 2 0 368 712 ; +C 87 ; WX 593 ; N W ; B -1 0 594 712 ; +C 88 ; WX 370 ; N X ; B -5 0 374 712 ; +C 89 ; WX 370 ; N Y ; B 2 0 368 712 ; +C 90 ; WX 296 ; N Z ; B 4 0 291 712 ; +C 91 ; WX 296 ; N bracketleft ; B 38 -95 258 726 ; +C 92 ; WX 278 ; N backslash ; B -54 -14 332 726 ; +C 93 ; WX 296 ; N bracketright ; B 38 -95 258 726 ; +C 94 ; WX 556 ; N asciicircum ; B 51 347 505 712 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 167 ; N quoteleft ; B 9 457 158 712 ; +C 97 ; WX 333 ; N a ; B 17 -7 325 579 ; +C 98 ; WX 333 ; N b ; B 17 -7 316 712 ; +C 99 ; WX 333 ; N c ; B 17 -7 316 579 ; +C 100 ; WX 333 ; N d ; B 17 -7 316 712 ; +C 101 ; WX 333 ; N e ; B 17 -7 316 579 ; +C 102 ; WX 204 ; N f ; B 6 0 202 712 ; L i fi ; L l fl ; +C 103 ; WX 333 ; N g ; B 17 -128 316 579 ; +C 104 ; WX 333 ; N h ; B 17 0 316 712 ; +C 105 ; WX 167 ; N i ; B 20 0 147 712 ; +C 106 ; WX 167 ; N j ; B -28 -128 152 712 ; +C 107 ; WX 333 ; N k ; B 19 0 331 712 ; +C 108 ; WX 167 ; N l ; B 20 0 147 712 ; +C 109 ; WX 500 ; N m ; B 14 0 485 579 ; +C 110 ; WX 333 ; N n ; B 17 0 316 579 ; +C 111 ; WX 333 ; N o ; B 17 -7 316 579 ; +C 112 ; WX 333 ; N p ; B 19 -128 318 579 ; +C 113 ; WX 333 ; N q ; B 17 -128 316 579 ; +C 114 ; WX 333 ; N r ; B 17 0 316 579 ; +C 115 ; WX 333 ; N s ; B 14 -7 319 579 ; +C 116 ; WX 204 ; N t ; B 3 0 201 676 ; +C 117 ; WX 333 ; N u ; B 17 -7 316 572 ; +C 118 ; WX 333 ; N v ; B 5 0 327 572 ; +C 119 ; WX 537 ; N w ; B 3 0 535 572 ; +C 120 ; WX 333 ; N x ; B 1 0 332 572 ; +C 121 ; WX 333 ; N y ; B 4 -128 328 572 ; +C 122 ; WX 259 ; N z ; B 9 0 250 572 ; +C 123 ; WX 333 ; N braceleft ; B 38 -95 295 726 ; +C 124 ; WX 222 ; N bar ; B 53 -250 169 750 ; +C 125 ; WX 333 ; N braceright ; B 38 -102 295 719 ; +C 126 ; WX 556 ; N asciitilde ; B 47 200 509 386 ; +C 161 ; WX 259 ; N exclamdown ; B 66 -114 193 598 ; +C 162 ; WX 370 ; N cent ; B 34 -68 333 630 ; +C 163 ; WX 370 ; N sterling ; B 7 -14 362 726 ; +C 164 ; WX 130 ; N fraction ; B -123 -14 266 726 ; +C 165 ; WX 370 ; N yen ; B 2 0 368 712 ; +C 166 ; WX 370 ; N florin ; B -13 -128 383 726 ; +C 167 ; WX 426 ; N section ; B 24 -62 401 726 ; +C 168 ; WX 370 ; N currency ; B 4 113 366 477 ; +C 169 ; WX 222 ; N quotesingle ; B 51 441 171 712 ; +C 170 ; WX 333 ; N quotedblleft ; B 8 457 324 712 ; +C 171 ; WX 333 ; N guillemotleft ; B 12 85 316 535 ; +C 172 ; WX 167 ; N guilsinglleft ; B 13 85 154 535 ; +C 173 ; WX 167 ; N guilsinglright ; B 13 85 154 535 ; +C 174 ; WX 370 ; N fi ; B 9 0 360 712 ; +C 175 ; WX 370 ; N fl ; B 9 0 360 712 ; +C 177 ; WX 500 ; N endash ; B 0 266 500 354 ; +C 178 ; WX 426 ; N dagger ; B 20 -73 406 712 ; +C 179 ; WX 426 ; N daggerdbl ; B 20 -62 406 712 ; +C 180 ; WX 185 ; N periodcentered ; B 8 200 176 367 ; +C 182 ; WX 620 ; N paragraph ; B 75 -179 604 712 ; +C 183 ; WX 500 ; N bullet ; B 75 181 425 531 ; +C 184 ; WX 167 ; N quotesinglbase ; B 9 -107 158 148 ; +C 185 ; WX 333 ; N quotedblbase ; B 9 -107 325 148 ; +C 186 ; WX 333 ; N quotedblright ; B 9 457 325 712 ; +C 187 ; WX 333 ; N guillemotright ; B 17 85 321 535 ; +C 188 ; WX 1000 ; N ellipsis ; B 103 0 896 148 ; +C 189 ; WX 759 ; N perthousand ; B 11 -14 747 726 ; +C 191 ; WX 426 ; N questiondown ; B 63 -128 363 598 ; +C 193 ; WX 167 ; N grave ; B -45 620 147 755 ; +C 194 ; WX 167 ; N acute ; B 41 620 233 755 ; +C 195 ; WX 167 ; N circumflex ; B -60 620 226 755 ; +C 196 ; WX 167 ; N tilde ; B -52 632 220 738 ; +C 197 ; WX 167 ; N macron ; B -48 653 220 718 ; +C 198 ; WX 167 ; N breve ; B -56 623 227 752 ; +C 199 ; WX 167 ; N dotaccent ; B 36 632 130 741 ; +C 200 ; WX 167 ; N dieresis ; B -46 632 213 741 ; +C 202 ; WX 167 ; N ring ; B -9 633 176 822 ; +C 203 ; WX 167 ; N cedilla ; B -38 -235 211 0 ; +C 205 ; WX 167 ; N hungarumlaut ; B -36 620 307 755 ; +C 206 ; WX 167 ; N ogonek ; B -48 -188 140 0 ; +C 207 ; WX 167 ; N caron ; B -58 620 231 755 ; +C 208 ; WX 1000 ; N emdash ; B 0 266 1000 354 ; +C 225 ; WX 500 ; N AE ; B -2 0 491 712 ; +C 227 ; WX 200 ; N ordfeminine ; B 7 375 194 726 ; +C 232 ; WX 296 ; N Lslash ; B -12 0 285 712 ; +C 233 ; WX 370 ; N Oslash ; B 6 -62 360 745 ; +C 234 ; WX 463 ; N OE ; B 18 -14 454 726 ; +C 235 ; WX 200 ; N ordmasculine ; B 10 375 179 726 ; +C 241 ; WX 500 ; N ae ; B 14 -7 485 579 ; +C 245 ; WX 167 ; N dotlessi ; B 20 0 147 572 ; +C 248 ; WX 167 ; N lslash ; B -12 0 182 712 ; +C 249 ; WX 333 ; N oslash ; B 3 -68 324 641 ; +C 250 ; WX 500 ; N oe ; B 14 -7 485 579 ; +C 251 ; WX 333 ; N germandbls ; B 17 -7 316 726 ; +C -1 ; WX 333 ; N ecircumflex ; B 17 -7 316 755 ; +C -1 ; WX 333 ; N edieresis ; B 17 -7 316 741 ; +C -1 ; WX 333 ; N aacute ; B 17 -7 325 755 ; +C -1 ; WX 800 ; N registered ; B 16 -14 784 726 ; +C -1 ; WX 167 ; N icircumflex ; B -60 0 226 755 ; +C -1 ; WX 333 ; N udieresis ; B 17 -7 316 741 ; +C -1 ; WX 333 ; N ograve ; B 17 -7 316 755 ; +C -1 ; WX 333 ; N uacute ; B 17 -7 316 755 ; +C -1 ; WX 333 ; N ucircumflex ; B 17 -7 316 755 ; +C -1 ; WX 370 ; N Aacute ; B -4 0 374 889 ; +C -1 ; WX 167 ; N igrave ; B -45 0 147 755 ; +C -1 ; WX 204 ; N Icircumflex ; B -41 0 245 889 ; +C -1 ; WX 333 ; N ccedilla ; B 17 -235 316 579 ; +C -1 ; WX 333 ; N adieresis ; B 17 -7 325 741 ; +C -1 ; WX 296 ; N Ecircumflex ; B 5 0 291 889 ; +C -1 ; WX 333 ; N scaron ; B 14 -7 319 755 ; +C -1 ; WX 333 ; N thorn ; B 19 -128 318 712 ; +C -1 ; WX 1000 ; N trademark ; B 36 300 964 712 ; +C -1 ; WX 333 ; N egrave ; B 17 -7 316 755 ; +C -1 ; WX 240 ; N threesuperior ; B 12 282 228 726 ; +C -1 ; WX 259 ; N zcaron ; B -12 0 277 755 ; +C -1 ; WX 333 ; N atilde ; B 17 -7 325 738 ; +C -1 ; WX 333 ; N aring ; B 17 -7 325 822 ; +C -1 ; WX 333 ; N ocircumflex ; B 17 -7 316 755 ; +C -1 ; WX 296 ; N Edieresis ; B 19 0 287 875 ; +C -1 ; WX 555 ; N threequarters ; B 7 -14 547 726 ; +C -1 ; WX 333 ; N ydieresis ; B 4 -128 328 741 ; +C -1 ; WX 333 ; N yacute ; B 4 -128 328 755 ; +C -1 ; WX 167 ; N iacute ; B 20 0 233 755 ; +C -1 ; WX 370 ; N Acircumflex ; B -4 0 374 889 ; +C -1 ; WX 370 ; N Uacute ; B 19 -14 351 889 ; +C -1 ; WX 333 ; N eacute ; B 17 -7 316 755 ; +C -1 ; WX 370 ; N Ograve ; B 19 -14 351 889 ; +C -1 ; WX 333 ; N agrave ; B 17 -7 325 755 ; +C -1 ; WX 370 ; N Udieresis ; B 19 -14 351 875 ; +C -1 ; WX 333 ; N acircumflex ; B 17 -7 325 755 ; +C -1 ; WX 204 ; N Igrave ; B -26 0 172 889 ; +C -1 ; WX 240 ; N twosuperior ; B 12 290 228 726 ; +C -1 ; WX 370 ; N Ugrave ; B 19 -14 351 889 ; +C -1 ; WX 555 ; N onequarter ; B 20 -14 547 726 ; +C -1 ; WX 370 ; N Ucircumflex ; B 19 -14 351 889 ; +C -1 ; WX 370 ; N Scaron ; B 17 -14 354 889 ; +C -1 ; WX 204 ; N Idieresis ; B -27 0 232 875 ; +C -1 ; WX 167 ; N idieresis ; B -46 0 213 741 ; +C -1 ; WX 296 ; N Egrave ; B 20 0 287 889 ; +C -1 ; WX 370 ; N Oacute ; B 19 -14 351 889 ; +C -1 ; WX 556 ; N divide ; B 33 16 523 556 ; +C -1 ; WX 370 ; N Atilde ; B -4 0 374 872 ; +C -1 ; WX 370 ; N Aring ; B -4 0 374 956 ; +C -1 ; WX 370 ; N Odieresis ; B 19 -14 351 875 ; +C -1 ; WX 370 ; N Adieresis ; B -4 0 374 875 ; +C -1 ; WX 426 ; N Ntilde ; B 23 0 403 872 ; +C -1 ; WX 296 ; N Zcaron ; B 4 0 296 889 ; +C -1 ; WX 370 ; N Thorn ; B 19 0 351 712 ; +C -1 ; WX 204 ; N Iacute ; B 31 0 252 889 ; +C -1 ; WX 556 ; N plusminus ; B 33 40 523 532 ; +C -1 ; WX 556 ; N multiply ; B 33 40 523 532 ; +C -1 ; WX 296 ; N Eacute ; B 23 0 298 889 ; +C -1 ; WX 370 ; N Ydieresis ; B 2 0 368 875 ; +C -1 ; WX 240 ; N onesuperior ; B 49 290 193 717 ; +C -1 ; WX 333 ; N ugrave ; B 17 -7 316 755 ; +C -1 ; WX 556 ; N logicalnot ; B 33 149 523 460 ; +C -1 ; WX 333 ; N ntilde ; B 17 0 316 738 ; +C -1 ; WX 370 ; N Otilde ; B 19 -14 351 872 ; +C -1 ; WX 333 ; N otilde ; B 17 -7 316 738 ; +C -1 ; WX 370 ; N Ccedilla ; B 19 -235 351 726 ; +C -1 ; WX 370 ; N Agrave ; B -4 0 374 889 ; +C -1 ; WX 555 ; N onehalf ; B 20 -14 547 726 ; +C -1 ; WX 370 ; N Eth ; B -10 0 351 712 ; +C -1 ; WX 400 ; N degree ; B 57 426 343 712 ; +C -1 ; WX 370 ; N Yacute ; B 2 0 368 889 ; +C -1 ; WX 370 ; N Ocircumflex ; B 19 -14 351 889 ; +C -1 ; WX 333 ; N oacute ; B 17 -7 316 755 ; +C -1 ; WX 333 ; N mu ; B 17 -128 316 572 ; +C -1 ; WX 556 ; N minus ; B 33 228 523 344 ; +C -1 ; WX 333 ; N eth ; B 17 -7 316 751 ; +C -1 ; WX 333 ; N odieresis ; B 17 -7 316 741 ; +C -1 ; WX 800 ; N copyright ; B 16 -14 784 726 ; +C -1 ; WX 222 ; N brokenbar ; B 53 -175 169 675 ; +EndCharMetrics +StartKernData +StartKernPairs 87 + +KPX A y -37 +KPX A w -37 +KPX A v -37 +KPX A quoteright -37 +KPX A Y -55 +KPX A W -37 +KPX A V -37 +KPX A T -55 + +KPX F period -92 +KPX F comma -111 +KPX F A -37 + +KPX L y -55 +KPX L quoteright -92 +KPX L Y -92 +KPX L W -55 +KPX L V -55 +KPX L T -74 + +KPX P period -129 +KPX P comma -150 +KPX P A -37 + +KPX R Y -18 +KPX R W -18 +KPX R V -18 +KPX R T -18 + +KPX T y -74 +KPX T w -74 +KPX T u -74 +KPX T semicolon -74 +KPX T s -74 +KPX T r -74 +KPX T period -74 +KPX T o -74 +KPX T i -74 +KPX T hyphen -92 +KPX T e -74 +KPX T comma -74 +KPX T colon -74 +KPX T c -74 +KPX T a -74 +KPX T A -74 + +KPX V y -18 +KPX V u -18 +KPX V semicolon -18 +KPX V r -18 +KPX V period -55 +KPX V o -18 +KPX V i -18 +KPX V hyphen -55 +KPX V e -18 +KPX V comma -74 +KPX V colon -18 +KPX V a -18 +KPX V A -55 + +KPX W semicolon -18 +KPX W period -37 +KPX W o -18 +KPX W hyphen -55 +KPX W e -18 +KPX W comma -55 +KPX W colon -18 +KPX W a -18 +KPX W A -55 + +KPX Y v -18 +KPX Y u -18 +KPX Y semicolon -37 +KPX Y q -55 +KPX Y period -74 +KPX Y p -18 +KPX Y o -55 +KPX Y i -18 +KPX Y hyphen -92 +KPX Y e -55 +KPX Y comma -92 +KPX Y colon -37 +KPX Y a -55 +KPX Y A -55 + +KPX quoteright t -18 +KPX quoteright s -55 + +KPX r period -129 +KPX r hyphen -18 +KPX r comma -129 + +KPX v period -55 +KPX v comma -55 + +KPX w period -55 +KPX w comma -55 + +KPX y period -55 +KPX y comma -55 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 102 134 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 102 134 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 102 134 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 102 134 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 102 134 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 102 134 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 65 134 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 65 134 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 65 134 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 65 134 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 19 134 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 19 134 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 19 134 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 19 134 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 130 134 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 102 134 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 102 134 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 102 134 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 102 134 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 102 134 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 102 134 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 102 134 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 102 134 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 102 134 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 102 134 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 102 134 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 102 134 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 65 134 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 83 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 83 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 83 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 83 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 83 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 83 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 83 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 83 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 83 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 83 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 83 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 83 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 83 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 83 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 83 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 83 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 83 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 83 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 83 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 83 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 83 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 83 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 83 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 46 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-ExtC+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-ExtC+ new file mode 100755 index 0000000000000..f3610ca15afbb --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-ExtC+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 370 ; N Ccaron ; B 19 -14 365 912 ; +C -1 ; WX 333 ; N ccaron ; B 17 -7 329 755 ; +C -1 ; WX 370 ; N Dcaron ; B 19 0 351 912 ; +C -1 ; WX 437 ; N dcaron ; B 17 -7 480 783 ; +C -1 ; WX 296 ; N Ecaron ; B 6 0 295 912 ; +C -1 ; WX 333 ; N ecaron ; B 17 -7 316 755 ; +C -1 ; WX 296 ; N Lcaron ; B 19 0 336 783 ; +C -1 ; WX 296 ; N Lacute ; B 19 0 297 912 ; +C -1 ; WX 271 ; N lcaron ; B 20 0 311 783 ; +C -1 ; WX 167 ; N lacute ; B 20 0 252 912 ; +C -1 ; WX 426 ; N Ncaron ; B 23 0 403 912 ; +C -1 ; WX 333 ; N ncaron ; B 17 0 316 755 ; +C -1 ; WX 370 ; N Rcaron ; B 19 0 372 912 ; +C -1 ; WX 370 ; N Racute ; B 19 0 372 912 ; +C -1 ; WX 333 ; N rcaron ; B 17 0 316 755 ; +C -1 ; WX 333 ; N racute ; B 17 0 335 755 ; +C -1 ; WX 333 ; N Tcaron ; B 1 0 332 912 ; +C -1 ; WX 308 ; N tcaron ; B 3 0 365 712 ; +C -1 ; WX 370 ; N Uring ; B 19 -14 351 912 ; +C -1 ; WX 333 ; N uring ; B 17 -7 316 822 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 134 157 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 98 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 101 157 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 322 71 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 64 157 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 83 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 178 71 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 64 157 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 153 71 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 19 157 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 129 157 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 83 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 101 157 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 137 157 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 83 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 102 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 83 157 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 207 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 101 90 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 83 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Lt b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Lt new file mode 100755 index 0000000000000..b02ffacbf9d91 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Lt @@ -0,0 +1,445 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1988 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date:Mon Jan 11 16:46:06 PST 1988 +FontName Helvetica-Light +EncodingScheme AdobeStandardEncoding +FullName Helvetica Light +FamilyName Helvetica +Weight Light +ItalicAngle 0.0 +IsFixedPitch false +UnderlinePosition -90 +UnderlineThickness 58 +Version 001.002 +Notice Copyright (c) 1985, 1987, 1988 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype Company. +FontBBox -164 -212 1000 979 +CapHeight 720 +XHeight 518 +Descender -204 +Ascender 720 +StartCharMetrics 228 +C 32 ; WX 278 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 130 0 203 720 ; +C 34 ; WX 278 ; N quotedbl ; B 57 494 220 720 ; +C 35 ; WX 556 ; N numbersign ; B 27 0 530 698 ; +C 36 ; WX 556 ; N dollar ; B 37 -95 518 766 ; +C 37 ; WX 889 ; N percent ; B 67 -14 821 705 ; +C 38 ; WX 667 ; N ampersand ; B 41 -19 644 720 ; +C 39 ; WX 222 ; N quoteright ; B 80 495 153 720 ; +C 40 ; WX 333 ; N parenleft ; B 55 -191 277 739 ; +C 41 ; WX 333 ; N parenright ; B 56 -191 278 739 ; +C 42 ; WX 389 ; N asterisk ; B 44 434 344 720 ; +C 43 ; WX 660 ; N plus ; B 80 0 580 500 ; +C 44 ; WX 278 ; N comma ; B 102 -137 175 88 ; +C 45 ; WX 333 ; N hyphen ; B 40 229 293 291 ; +C 46 ; WX 278 ; N period ; B 102 0 175 88 ; +C 47 ; WX 278 ; N slash ; B -3 -90 288 739 ; +C 48 ; WX 556 ; N zero ; B 39 -14 516 705 ; +C 49 ; WX 556 ; N one ; B 120 0 366 705 ; +C 50 ; WX 556 ; N two ; B 48 0 515 705 ; +C 51 ; WX 556 ; N three ; B 34 -14 512 705 ; +C 52 ; WX 556 ; N four ; B 36 0 520 698 ; +C 53 ; WX 556 ; N five ; B 35 -14 506 698 ; +C 54 ; WX 556 ; N six ; B 41 -14 514 705 ; +C 55 ; WX 556 ; N seven ; B 59 0 508 698 ; +C 56 ; WX 556 ; N eight ; B 44 -14 512 705 ; +C 57 ; WX 556 ; N nine ; B 41 -14 515 705 ; +C 58 ; WX 278 ; N colon ; B 102 0 175 492 ; +C 59 ; WX 278 ; N semicolon ; B 102 -137 175 492 ; +C 60 ; WX 660 ; N less ; B 80 -6 580 505 ; +C 61 ; WX 660 ; N equal ; B 80 124 580 378 ; +C 62 ; WX 660 ; N greater ; B 80 -6 580 505 ; +C 63 ; WX 500 ; N question ; B 37 0 472 739 ; +C 64 ; WX 800 ; N at ; B 40 -19 760 739 ; +C 65 ; WX 667 ; N A ; B 15 0 651 720 ; +C 66 ; WX 667 ; N B ; B 81 0 610 720 ; +C 67 ; WX 722 ; N C ; B 48 -19 670 739 ; +C 68 ; WX 722 ; N D ; B 81 0 669 720 ; +C 69 ; WX 611 ; N E ; B 81 0 570 720 ; +C 70 ; WX 556 ; N F ; B 74 0 538 720 ; +C 71 ; WX 778 ; N G ; B 53 -19 695 739 ; +C 72 ; WX 722 ; N H ; B 80 0 642 720 ; +C 73 ; WX 278 ; N I ; B 105 0 173 720 ; +C 74 ; WX 500 ; N J ; B 22 -19 415 720 ; +C 75 ; WX 667 ; N K ; B 85 0 649 720 ; +C 76 ; WX 556 ; N L ; B 81 0 535 720 ; +C 77 ; WX 833 ; N M ; B 78 0 755 720 ; +C 78 ; WX 722 ; N N ; B 79 0 642 720 ; +C 79 ; WX 778 ; N O ; B 53 -19 724 739 ; +C 80 ; WX 611 ; N P ; B 78 0 576 720 ; +C 81 ; WX 778 ; N Q ; B 48 -52 719 739 ; +C 82 ; WX 667 ; N R ; B 80 0 612 720 ; +C 83 ; WX 611 ; N S ; B 43 -19 567 739 ; +C 84 ; WX 556 ; N T ; B 16 0 540 720 ; +C 85 ; WX 722 ; N U ; B 82 -19 640 720 ; +C 86 ; WX 611 ; N V ; B 18 0 593 720 ; +C 87 ; WX 889 ; N W ; B 14 0 875 720 ; +C 88 ; WX 611 ; N X ; B 18 0 592 720 ; +C 89 ; WX 611 ; N Y ; B 12 0 598 720 ; +C 90 ; WX 611 ; N Z ; B 31 0 579 720 ; +C 91 ; WX 333 ; N bracketleft ; B 91 -191 282 739 ; +C 92 ; WX 278 ; N backslash ; B -46 0 324 739 ; +C 93 ; WX 333 ; N bracketright ; B 51 -191 242 739 ; +C 94 ; WX 660 ; N asciicircum ; B 73 245 586 698 ; +C 95 ; WX 500 ; N underscore ; B 0 -119 500 -61 ; +C 96 ; WX 222 ; N quoteleft ; B 69 495 142 720 ; +C 97 ; WX 556 ; N a ; B 46 -14 534 532 ; +C 98 ; WX 611 ; N b ; B 79 -14 555 720 ; +C 99 ; WX 556 ; N c ; B 47 -14 508 532 ; +C 100 ; WX 611 ; N d ; B 56 -14 532 720 ; +C 101 ; WX 556 ; N e ; B 45 -14 511 532 ; +C 102 ; WX 278 ; N f ; B 20 0 257 734 ; L i fi ; L l fl ; +C 103 ; WX 611 ; N g ; B 56 -212 532 532 ; +C 104 ; WX 556 ; N h ; B 72 0 483 720 ; +C 105 ; WX 222 ; N i ; B 78 0 144 720 ; +C 106 ; WX 222 ; N j ; B 5 -204 151 720 ; +C 107 ; WX 500 ; N k ; B 68 0 487 720 ; +C 108 ; WX 222 ; N l ; B 81 0 141 720 ; +C 109 ; WX 833 ; N m ; B 64 0 768 532 ; +C 110 ; WX 556 ; N n ; B 72 0 483 532 ; +C 111 ; WX 556 ; N o ; B 38 -14 518 532 ; +C 112 ; WX 611 ; N p ; B 79 -204 555 532 ; +C 113 ; WX 611 ; N q ; B 56 -204 532 532 ; +C 114 ; WX 333 ; N r ; B 75 0 306 532 ; +C 115 ; WX 500 ; N s ; B 46 -14 454 532 ; +C 116 ; WX 278 ; N t ; B 20 -14 254 662 ; +C 117 ; WX 556 ; N u ; B 72 -14 483 518 ; +C 118 ; WX 500 ; N v ; B 17 0 483 518 ; +C 119 ; WX 722 ; N w ; B 15 0 707 518 ; +C 120 ; WX 500 ; N x ; B 18 0 481 518 ; +C 121 ; WX 500 ; N y ; B 18 -204 482 518 ; +C 122 ; WX 500 ; N z ; B 33 0 467 518 ; +C 123 ; WX 333 ; N braceleft ; B 45 -191 279 739 ; +C 124 ; WX 222 ; N bar ; B 81 0 141 739 ; +C 125 ; WX 333 ; N braceright ; B 51 -187 285 743 ; +C 126 ; WX 660 ; N asciitilde ; B 80 174 580 339 ; +C 161 ; WX 333 ; N exclamdown ; B 130 -187 203 532 ; +C 162 ; WX 556 ; N cent ; B 45 -141 506 647 ; +C 163 ; WX 556 ; N sterling ; B 25 -14 530 705 ; +C 164 ; WX 167 ; N fraction ; B -164 -14 331 705 ; +C 165 ; WX 556 ; N yen ; B 4 0 552 720 ; +C 166 ; WX 556 ; N florin ; B 13 -196 539 734 ; +C 167 ; WX 556 ; N section ; B 48 -181 508 739 ; +C 168 ; WX 556 ; N currency ; B 27 50 529 553 ; +C 169 ; WX 222 ; N quotesingle ; B 85 494 137 720 ; +C 170 ; WX 389 ; N quotedblleft ; B 86 495 310 720 ; +C 171 ; WX 556 ; N guillemotleft ; B 113 117 443 404 ; +C 172 ; WX 389 ; N guilsinglleft ; B 121 117 267 404 ; +C 173 ; WX 389 ; N guilsinglright ; B 122 117 268 404 ; +C 174 ; WX 500 ; N fi ; B 13 0 435 734 ; +C 175 ; WX 500 ; N fl ; B 13 0 432 734 ; +C 177 ; WX 500 ; N endash ; B 0 238 500 282 ; +C 178 ; WX 556 ; N dagger ; B 37 -166 519 720 ; +C 179 ; WX 556 ; N daggerdbl ; B 37 -166 519 720 ; +C 180 ; WX 278 ; N periodcentered ; B 90 301 187 398 ; +C 182 ; WX 650 ; N paragraph ; B 66 -146 506 720 ; +C 183 ; WX 500 ; N bullet ; B 70 180 430 540 ; +C 184 ; WX 222 ; N quotesinglbase ; B 80 -137 153 88 ; +C 185 ; WX 389 ; N quotedblbase ; B 79 -137 303 88 ; +C 186 ; WX 389 ; N quotedblright ; B 79 495 303 720 ; +C 187 ; WX 556 ; N guillemotright ; B 113 117 443 404 ; +C 188 ; WX 1000 ; N ellipsis ; B 131 0 870 88 ; +C 189 ; WX 1000 ; N perthousand ; B 14 -14 985 705 ; +C 191 ; WX 500 ; N questiondown ; B 28 -207 463 532 ; +C 193 ; WX 333 ; N grave ; B 45 574 234 713 ; +C 194 ; WX 333 ; N acute ; B 109 574 297 713 ; +C 195 ; WX 333 ; N circumflex ; B 24 574 318 713 ; +C 196 ; WX 333 ; N tilde ; B 16 586 329 688 ; +C 197 ; WX 333 ; N macron ; B 23 612 319 657 ; +C 198 ; WX 333 ; N breve ; B 28 580 316 706 ; +C 199 ; WX 333 ; N dotaccent ; B 134 584 199 686 ; +C 200 ; WX 333 ; N dieresis ; B 60 584 284 686 ; +C 202 ; WX 333 ; N ring ; B 67 578 266 777 ; +C 203 ; WX 333 ; N cedilla ; B 54 -207 257 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B 109 574 459 713 ; +C 206 ; WX 333 ; N ogonek ; B 74 -190 228 0 ; +C 207 ; WX 333 ; N caron ; B 24 574 318 713 ; +C 208 ; WX 1000 ; N emdash ; B 0 238 1000 282 ; +C 225 ; WX 1000 ; N AE ; B 5 0 960 720 ; +C 227 ; WX 334 ; N ordfeminine ; B 8 307 325 739 ; +C 232 ; WX 556 ; N Lslash ; B 0 0 535 720 ; +C 233 ; WX 778 ; N Oslash ; B 42 -37 736 747 ; +C 234 ; WX 1000 ; N OE ; B 41 -19 967 739 ; +C 235 ; WX 334 ; N ordmasculine ; B 11 307 323 739 ; +C 241 ; WX 889 ; N ae ; B 39 -14 847 532 ; +C 245 ; WX 222 ; N dotlessi ; B 78 0 138 518 ; +C 248 ; WX 222 ; N lslash ; B 10 0 212 720 ; +C 249 ; WX 556 ; N oslash ; B 35 -23 521 541 ; +C 250 ; WX 944 ; N oe ; B 36 -14 904 532 ; +C 251 ; WX 500 ; N germandbls ; B 52 -14 459 734 ; +C -1 ; WX 667 ; N Aacute ; B 15 0 651 915 ; +C -1 ; WX 667 ; N Acircumflex ; B 15 0 651 915 ; +C -1 ; WX 667 ; N Adieresis ; B 15 0 651 888 ; +C -1 ; WX 667 ; N Agrave ; B 15 0 651 915 ; +C -1 ; WX 667 ; N Aring ; B 15 0 651 979 ; +C -1 ; WX 667 ; N Atilde ; B 15 0 651 890 ; +C -1 ; WX 722 ; N Ccedilla ; B 48 -207 670 739 ; +C -1 ; WX 611 ; N Eacute ; B 81 0 570 915 ; +C -1 ; WX 611 ; N Ecircumflex ; B 81 0 570 915 ; +C -1 ; WX 611 ; N Edieresis ; B 81 0 570 888 ; +C -1 ; WX 611 ; N Egrave ; B 81 0 570 915 ; +C -1 ; WX 722 ; N Eth ; B 10 0 669 720 ; +C -1 ; WX 278 ; N Iacute ; B 62 0 250 915 ; +C -1 ; WX 278 ; N Icircumflex ; B -23 0 271 915 ; +C -1 ; WX 278 ; N Idieresis ; B 13 0 237 888 ; +C -1 ; WX 278 ; N Igrave ; B 18 0 207 915 ; +C -1 ; WX 722 ; N Ntilde ; B 79 0 642 890 ; +C -1 ; WX 778 ; N Oacute ; B 53 -19 724 915 ; +C -1 ; WX 778 ; N Ocircumflex ; B 53 -19 724 915 ; +C -1 ; WX 778 ; N Odieresis ; B 53 -19 724 888 ; +C -1 ; WX 778 ; N Ograve ; B 53 -19 724 915 ; +C -1 ; WX 778 ; N Otilde ; B 53 -19 724 890 ; +C -1 ; WX 611 ; N Scaron ; B 43 -19 567 915 ; +C -1 ; WX 611 ; N Thorn ; B 78 0 576 720 ; +C -1 ; WX 722 ; N Uacute ; B 82 -19 640 915 ; +C -1 ; WX 722 ; N Ucircumflex ; B 82 -19 640 915 ; +C -1 ; WX 722 ; N Udieresis ; B 82 -19 640 888 ; +C -1 ; WX 722 ; N Ugrave ; B 82 -19 640 915 ; +C -1 ; WX 611 ; N Yacute ; B 12 0 598 915 ; +C -1 ; WX 611 ; N Ydieresis ; B 12 0 598 888 ; +C -1 ; WX 611 ; N Zcaron ; B 31 0 579 915 ; +C -1 ; WX 556 ; N aacute ; B 46 -14 534 713 ; +C -1 ; WX 556 ; N acircumflex ; B 46 -14 534 713 ; +C -1 ; WX 556 ; N adieresis ; B 46 -14 534 686 ; +C -1 ; WX 556 ; N agrave ; B 46 -14 534 713 ; +C -1 ; WX 556 ; N aring ; B 46 -14 534 777 ; +C -1 ; WX 556 ; N atilde ; B 46 -14 534 688 ; +C -1 ; WX 222 ; N brokenbar ; B 81 0 141 739 ; +C -1 ; WX 556 ; N ccedilla ; B 47 -207 508 532 ; +C -1 ; WX 800 ; N copyright ; B 21 -19 779 739 ; +C -1 ; WX 400 ; N degree ; B 50 405 350 705 ; +C -1 ; WX 660 ; N divide ; B 80 0 580 500 ; +C -1 ; WX 556 ; N eacute ; B 45 -14 511 713 ; +C -1 ; WX 556 ; N ecircumflex ; B 45 -14 511 713 ; +C -1 ; WX 556 ; N edieresis ; B 45 -14 511 686 ; +C -1 ; WX 556 ; N egrave ; B 45 -14 511 713 ; +C -1 ; WX 556 ; N eth ; B 38 -14 518 739 ; +C -1 ; WX 222 ; N iacute ; B 34 0 222 713 ; +C -1 ; WX 222 ; N icircumflex ; B -51 0 243 713 ; +C -1 ; WX 222 ; N idieresis ; B -15 0 209 686 ; +C -1 ; WX 222 ; N igrave ; B -10 0 179 713 ; +C -1 ; WX 660 ; N logicalnot ; B 80 112 580 378 ; +C -1 ; WX 660 ; N minus ; B 80 220 580 280 ; +C -1 ; WX 556 ; N mu ; B 72 -204 483 518 ; +C -1 ; WX 660 ; N multiply ; B 83 6 578 500 ; +C -1 ; WX 556 ; N ntilde ; B 72 0 483 688 ; +C -1 ; WX 556 ; N oacute ; B 38 -14 518 713 ; +C -1 ; WX 556 ; N ocircumflex ; B 38 -14 518 713 ; +C -1 ; WX 556 ; N odieresis ; B 38 -14 518 686 ; +C -1 ; WX 556 ; N ograve ; B 38 -14 518 713 ; +C -1 ; WX 834 ; N onehalf ; B 40 -14 794 739 ; +C -1 ; WX 834 ; N onequarter ; B 40 -14 794 739 ; +C -1 ; WX 333 ; N onesuperior ; B 87 316 247 739 ; +C -1 ; WX 556 ; N otilde ; B 38 -14 518 688 ; +C -1 ; WX 660 ; N plusminus ; B 80 0 580 500 ; +C -1 ; WX 800 ; N registered ; B 21 -19 779 739 ; +C -1 ; WX 500 ; N scaron ; B 46 -14 454 713 ; +C -1 ; WX 611 ; N thorn ; B 79 -204 555 720 ; +C -1 ; WX 834 ; N threequarters ; B 40 -14 794 739 ; +C -1 ; WX 333 ; N threesuperior ; B 11 308 322 739 ; +C -1 ; WX 940 ; N trademark ; B 29 299 859 720 ; +C -1 ; WX 333 ; N twosuperior ; B 15 316 318 739 ; +C -1 ; WX 556 ; N uacute ; B 72 -14 483 713 ; +C -1 ; WX 556 ; N ucircumflex ; B 72 -14 483 713 ; +C -1 ; WX 556 ; N udieresis ; B 72 -14 483 686 ; +C -1 ; WX 556 ; N ugrave ; B 72 -14 483 713 ; +C -1 ; WX 500 ; N yacute ; B 18 -204 482 713 ; +C -1 ; WX 500 ; N ydieresis ; B 18 -204 482 686 ; +C -1 ; WX 500 ; N zcaron ; B 33 0 467 713 ; +EndCharMetrics +StartKernData +StartKernPairs 115 + +KPX A y -18 +KPX A w -18 +KPX A v -18 +KPX A quoteright -74 +KPX A Y -74 +KPX A W -37 +KPX A V -74 +KPX A T -92 + +KPX F period -129 +KPX F comma -129 +KPX F A -55 + +KPX L y -37 +KPX L quoteright -74 +KPX L Y -111 +KPX L W -55 +KPX L V -92 +KPX L T -92 + +KPX P period -129 +KPX P comma -129 +KPX P A -74 + +KPX R y 0 +KPX R Y -37 +KPX R W -18 +KPX R V -18 +KPX R T -18 + +KPX T y -84 +KPX T w -84 +KPX T u -92 +KPX T semicolon -111 +KPX T s -111 +KPX T r -92 +KPX T period -111 +KPX T o -111 +KPX T i 0 +KPX T hyphen -129 +KPX T e -111 +KPX T comma -111 +KPX T colon -111 +KPX T c -111 +KPX T a -111 +KPX T A -92 + +KPX V y -18 +KPX V u -37 +KPX V semicolon -74 +KPX V r -37 +KPX V period -129 +KPX V o -55 +KPX V i -18 +KPX V hyphen -55 +KPX V e -55 +KPX V comma -129 +KPX V colon -74 +KPX V a -55 +KPX V A -74 + +KPX W y 0 +KPX W u -18 +KPX W semicolon -18 +KPX W r -18 +KPX W period -74 +KPX W o -18 +KPX W i 0 +KPX W hyphen 0 +KPX W e -18 +KPX W comma -74 +KPX W colon -18 +KPX W a -37 +KPX W A -37 + +KPX Y v -40 +KPX Y u -37 +KPX Y semicolon -92 +KPX Y q -92 +KPX Y period -111 +KPX Y p -37 +KPX Y o -92 +KPX Y i -20 +KPX Y hyphen -111 +KPX Y e -92 +KPX Y comma -111 +KPX Y colon -92 +KPX Y a -92 +KPX Y A -74 + +KPX f quoteright 18 +KPX f f -18 + +KPX quoteleft quoteleft -18 + +KPX quoteright t -18 +KPX quoteright s -74 +KPX quoteright quoteright -18 + +KPX r z 0 +KPX r y 18 +KPX r x 0 +KPX r w 0 +KPX r v 0 +KPX r u 0 +KPX r t 18 +KPX r r 0 +KPX r quoteright 0 +KPX r q -18 +KPX r period -92 +KPX r o -18 +KPX r n 18 +KPX r m 18 +KPX r hyphen -55 +KPX r h 0 +KPX r g 0 +KPX r f 18 +KPX r e -18 +KPX r d -18 +KPX r comma -92 +KPX r c -18 + +KPX v period -74 +KPX v comma -74 + +KPX w period -55 +KPX w comma -55 + +KPX y period -92 +KPX y comma -92 +EndKernPairs +EndKernData +StartComposites 58 +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 202 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 83 0 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 139 202 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 83 0 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 194 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 111 0 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 139 202 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 83 0 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 139 202 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 83 0 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 194 202 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 194 202 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 194 202 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 194 202 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 111 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 111 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 111 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 111 0 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute -47 202 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -47 202 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -47 202 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -27 202 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -75 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -75 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -75 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -55 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 139 202 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 139 202 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 139 202 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 139 202 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 111 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 111 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 111 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 111 0 ; +CC Aacute 2 ; PCC A 0 0 ; PCC acute 167 202 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 167 202 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 167 202 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 167 202 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 111 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 111 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 111 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 111 0 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 222 202 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 222 202 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 222 202 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 222 202 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 111 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 111 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 111 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 111 0 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 167 202 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 111 0 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 194 202 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 111 0 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 222 202 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 111 0 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 187 202 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 111 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Lt+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Lt+ new file mode 100755 index 0000000000000..49e014cab5f15 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Lt+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 722 ; N Ccaron ; B 48 -19 670 925 ; +C -1 ; WX 556 ; N ccaron ; B 47 -14 508 713 ; +C -1 ; WX 722 ; N Dcaron ; B 81 0 669 925 ; +C -1 ; WX 662 ; N dcaron ; B 56 -14 612 792 ; +C -1 ; WX 611 ; N Ecaron ; B 81 0 570 925 ; +C -1 ; WX 556 ; N ecaron ; B 45 -14 511 713 ; +C -1 ; WX 556 ; N Lcaron ; B 81 0 535 792 ; +C -1 ; WX 556 ; N Lacute ; B 81 0 535 925 ; +C -1 ; WX 273 ; N lcaron ; B 81 0 221 792 ; +C -1 ; WX 222 ; N lacute ; B 73 0 261 925 ; +C -1 ; WX 722 ; N Ncaron ; B 79 0 642 925 ; +C -1 ; WX 556 ; N ncaron ; B 72 0 483 713 ; +C -1 ; WX 667 ; N Rcaron ; B 80 0 612 925 ; +C -1 ; WX 667 ; N Racute ; B 80 0 612 925 ; +C -1 ; WX 333 ; N rcaron ; B 24 0 318 713 ; +C -1 ; WX 333 ; N racute ; B 75 0 316 713 ; +C -1 ; WX 556 ; N Tcaron ; B 16 0 540 925 ; +C -1 ; WX 329 ; N tcaron ; B 20 -14 334 720 ; +C -1 ; WX 722 ; N Uring ; B 82 -19 640 925 ; +C -1 ; WX 556 ; N uring ; B 72 -14 483 777 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 256 212 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 134 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 194 212 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 459 72 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 139 212 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 111 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 100 72 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 111 212 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 68 72 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute -36 212 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 194 212 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 111 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 167 212 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 203 212 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 19 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 111 212 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 181 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 194 148 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 111 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-LtO b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-LtO new file mode 100755 index 0000000000000..96612d12ff51d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-LtO @@ -0,0 +1,445 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1988 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date:Mon Jan 11 17:38:44 PST 1988 +FontName Helvetica-LightOblique +EncodingScheme AdobeStandardEncoding +FullName Helvetica Light Oblique +FamilyName Helvetica +Weight Light +ItalicAngle -12.0 +IsFixedPitch false +UnderlinePosition -90 +UnderlineThickness 58 +Version 001.002 +Notice Copyright (c) 1985, 1987, 1988 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype Company. +FontBBox -167 -212 1110 979 +CapHeight 720 +XHeight 518 +Descender -204 +Ascender 720 +StartCharMetrics 228 +C 32 ; WX 278 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 130 0 356 720 ; +C 34 ; WX 278 ; N quotedbl ; B 162 494 373 720 ; +C 35 ; WX 556 ; N numbersign ; B 75 0 633 698 ; +C 36 ; WX 556 ; N dollar ; B 75 -95 613 766 ; +C 37 ; WX 889 ; N percent ; B 176 -14 860 705 ; +C 38 ; WX 667 ; N ampersand ; B 77 -19 646 720 ; +C 39 ; WX 222 ; N quoteright ; B 185 495 306 720 ; +C 40 ; WX 333 ; N parenleft ; B 97 -191 434 739 ; +C 41 ; WX 333 ; N parenright ; B 15 -191 353 739 ; +C 42 ; WX 389 ; N asterisk ; B 172 434 472 720 ; +C 43 ; WX 660 ; N plus ; B 127 0 640 500 ; +C 44 ; WX 278 ; N comma ; B 73 -137 194 88 ; +C 45 ; WX 333 ; N hyphen ; B 89 229 355 291 ; +C 46 ; WX 278 ; N period ; B 102 0 194 88 ; +C 47 ; WX 278 ; N slash ; B -22 -90 445 739 ; +C 48 ; WX 556 ; N zero ; B 93 -14 609 705 ; +C 49 ; WX 556 ; N one ; B 231 0 516 705 ; +C 50 ; WX 556 ; N two ; B 48 0 628 705 ; +C 51 ; WX 556 ; N three ; B 74 -14 605 705 ; +C 52 ; WX 556 ; N four ; B 73 0 570 698 ; +C 53 ; WX 556 ; N five ; B 71 -14 616 698 ; +C 54 ; WX 556 ; N six ; B 94 -14 617 705 ; +C 55 ; WX 556 ; N seven ; B 152 0 656 698 ; +C 56 ; WX 556 ; N eight ; B 80 -14 601 705 ; +C 57 ; WX 556 ; N nine ; B 84 -14 607 705 ; +C 58 ; WX 278 ; N colon ; B 102 0 280 492 ; +C 59 ; WX 278 ; N semicolon ; B 73 -137 280 492 ; +C 60 ; WX 660 ; N less ; B 129 -6 687 505 ; +C 61 ; WX 660 ; N equal ; B 106 124 660 378 ; +C 62 ; WX 660 ; N greater ; B 79 -6 640 505 ; +C 63 ; WX 500 ; N question ; B 148 0 594 739 ; +C 64 ; WX 800 ; N at ; B 108 -19 857 739 ; +C 65 ; WX 667 ; N A ; B 15 0 651 720 ; +C 66 ; WX 667 ; N B ; B 81 0 697 720 ; +C 67 ; WX 722 ; N C ; B 111 -19 771 739 ; +C 68 ; WX 722 ; N D ; B 81 0 758 720 ; +C 69 ; WX 611 ; N E ; B 81 0 713 720 ; +C 70 ; WX 556 ; N F ; B 74 0 691 720 ; +C 71 ; WX 778 ; N G ; B 116 -19 796 739 ; +C 72 ; WX 722 ; N H ; B 80 0 795 720 ; +C 73 ; WX 278 ; N I ; B 105 0 326 720 ; +C 74 ; WX 500 ; N J ; B 58 -19 568 720 ; +C 75 ; WX 667 ; N K ; B 85 0 752 720 ; +C 76 ; WX 556 ; N L ; B 81 0 547 720 ; +C 77 ; WX 833 ; N M ; B 78 0 908 720 ; +C 78 ; WX 722 ; N N ; B 79 0 795 720 ; +C 79 ; WX 778 ; N O ; B 117 -19 812 739 ; +C 80 ; WX 611 ; N P ; B 78 0 693 720 ; +C 81 ; WX 778 ; N Q ; B 112 -52 808 739 ; +C 82 ; WX 667 ; N R ; B 80 0 726 720 ; +C 83 ; WX 611 ; N S ; B 82 -19 663 739 ; +C 84 ; WX 556 ; N T ; B 157 0 693 720 ; +C 85 ; WX 722 ; N U ; B 129 -19 793 720 ; +C 86 ; WX 611 ; N V ; B 171 0 746 720 ; +C 87 ; WX 889 ; N W ; B 167 0 1028 720 ; +C 88 ; WX 611 ; N X ; B 18 0 734 720 ; +C 89 ; WX 611 ; N Y ; B 165 0 751 720 ; +C 90 ; WX 611 ; N Z ; B 31 0 729 720 ; +C 91 ; WX 333 ; N bracketleft ; B 50 -191 439 739 ; +C 92 ; WX 278 ; N backslash ; B 111 0 324 739 ; +C 93 ; WX 333 ; N bracketright ; B 10 -191 399 739 ; +C 94 ; WX 660 ; N asciicircum ; B 125 245 638 698 ; +C 95 ; WX 500 ; N underscore ; B -25 -119 487 -61 ; +C 96 ; WX 222 ; N quoteleft ; B 174 495 295 720 ; +C 97 ; WX 556 ; N a ; B 71 -14 555 532 ; +C 98 ; WX 611 ; N b ; B 79 -14 619 720 ; +C 99 ; WX 556 ; N c ; B 92 -14 576 532 ; +C 100 ; WX 611 ; N d ; B 101 -14 685 720 ; +C 101 ; WX 556 ; N e ; B 90 -14 575 532 ; +C 102 ; WX 278 ; N f ; B 97 0 412 734 ; L i fi ; L l fl ; +C 103 ; WX 611 ; N g ; B 56 -212 642 532 ; +C 104 ; WX 556 ; N h ; B 72 0 565 720 ; +C 105 ; WX 222 ; N i ; B 81 0 297 720 ; +C 106 ; WX 222 ; N j ; B -38 -204 304 720 ; +C 107 ; WX 500 ; N k ; B 68 0 574 720 ; +C 108 ; WX 222 ; N l ; B 81 0 294 720 ; +C 109 ; WX 833 ; N m ; B 64 0 848 532 ; +C 110 ; WX 556 ; N n ; B 72 0 565 532 ; +C 111 ; WX 556 ; N o ; B 84 -14 582 532 ; +C 112 ; WX 611 ; N p ; B 36 -204 620 532 ; +C 113 ; WX 611 ; N q ; B 102 -204 642 532 ; +C 114 ; WX 333 ; N r ; B 75 0 419 532 ; +C 115 ; WX 500 ; N s ; B 78 -14 519 532 ; +C 116 ; WX 278 ; N t ; B 108 -14 360 662 ; +C 117 ; WX 556 ; N u ; B 103 -14 593 518 ; +C 118 ; WX 500 ; N v ; B 127 0 593 518 ; +C 119 ; WX 722 ; N w ; B 125 0 817 518 ; +C 120 ; WX 500 ; N x ; B 18 0 584 518 ; +C 121 ; WX 500 ; N y ; B 26 -204 592 518 ; +C 122 ; WX 500 ; N z ; B 33 0 564 518 ; +C 123 ; WX 333 ; N braceleft ; B 103 -191 436 739 ; +C 124 ; WX 222 ; N bar ; B 81 0 298 739 ; +C 125 ; WX 333 ; N braceright ; B 12 -187 344 743 ; +C 126 ; WX 660 ; N asciitilde ; B 127 174 645 339 ; +C 161 ; WX 333 ; N exclamdown ; B 90 -187 316 532 ; +C 162 ; WX 556 ; N cent ; B 90 -141 574 647 ; +C 163 ; WX 556 ; N sterling ; B 51 -14 613 705 ; +C 164 ; WX 167 ; N fraction ; B -167 -14 481 705 ; +C 165 ; WX 556 ; N yen ; B 110 0 705 720 ; +C 166 ; WX 556 ; N florin ; B -26 -196 691 734 ; +C 167 ; WX 556 ; N section ; B 91 -181 581 739 ; +C 168 ; WX 556 ; N currency ; B 55 50 629 553 ; +C 169 ; WX 222 ; N quotesingle ; B 190 494 290 720 ; +C 170 ; WX 389 ; N quotedblleft ; B 191 495 463 720 ; +C 171 ; WX 556 ; N guillemotleft ; B 161 117 529 404 ; +C 172 ; WX 389 ; N guilsinglleft ; B 169 117 353 404 ; +C 173 ; WX 389 ; N guilsinglright ; B 147 117 330 404 ; +C 174 ; WX 500 ; N fi ; B 92 0 588 734 ; +C 175 ; WX 500 ; N fl ; B 92 0 585 734 ; +C 177 ; WX 500 ; N endash ; B 51 238 560 282 ; +C 178 ; WX 556 ; N dagger ; B 130 -166 623 720 ; +C 179 ; WX 556 ; N daggerdbl ; B 49 -166 625 720 ; +C 180 ; WX 278 ; N periodcentered ; B 163 301 262 398 ; +C 182 ; WX 650 ; N paragraph ; B 174 -146 659 720 ; +C 183 ; WX 500 ; N bullet ; B 142 180 510 540 ; +C 184 ; WX 222 ; N quotesinglbase ; B 51 -137 172 88 ; +C 185 ; WX 389 ; N quotedblbase ; B 50 -137 322 88 ; +C 186 ; WX 389 ; N quotedblright ; B 184 495 456 720 ; +C 187 ; WX 556 ; N guillemotright ; B 138 117 505 404 ; +C 188 ; WX 1000 ; N ellipsis ; B 131 0 889 88 ; +C 189 ; WX 1000 ; N perthousand ; B 83 -14 1020 705 ; +C 191 ; WX 500 ; N questiondown ; B 19 -207 465 532 ; +C 193 ; WX 333 ; N grave ; B 197 574 356 713 ; +C 194 ; WX 333 ; N acute ; B 231 574 449 713 ; +C 195 ; WX 333 ; N circumflex ; B 146 574 440 713 ; +C 196 ; WX 333 ; N tilde ; B 141 586 475 688 ; +C 197 ; WX 333 ; N macron ; B 153 612 459 657 ; +C 198 ; WX 333 ; N breve ; B 177 580 466 706 ; +C 199 ; WX 333 ; N dotaccent ; B 258 584 345 686 ; +C 200 ; WX 333 ; N dieresis ; B 184 584 430 686 ; +C 202 ; WX 333 ; N ring ; B 209 578 412 777 ; +C 203 ; WX 333 ; N cedilla ; B 14 -207 233 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B 231 574 611 713 ; +C 206 ; WX 333 ; N ogonek ; B 50 -190 199 0 ; +C 207 ; WX 333 ; N caron ; B 176 574 470 713 ; +C 208 ; WX 1000 ; N emdash ; B 51 238 1060 282 ; +C 225 ; WX 1000 ; N AE ; B 5 0 1101 720 ; +C 227 ; WX 334 ; N ordfeminine ; B 73 307 423 739 ; +C 232 ; WX 556 ; N Lslash ; B 68 0 547 720 ; +C 233 ; WX 778 ; N Oslash ; B 41 -37 887 747 ; +C 234 ; WX 1000 ; N OE ; B 104 -19 1110 739 ; +C 235 ; WX 334 ; N ordmasculine ; B 76 307 450 739 ; +C 241 ; WX 889 ; N ae ; B 63 -14 913 532 ; +C 245 ; WX 222 ; N dotlessi ; B 78 0 248 518 ; +C 248 ; WX 222 ; N lslash ; B 74 0 316 720 ; +C 249 ; WX 556 ; N oslash ; B 36 -23 629 541 ; +C 250 ; WX 944 ; N oe ; B 82 -14 970 532 ; +C 251 ; WX 500 ; N germandbls ; B 52 -14 554 734 ; +C -1 ; WX 667 ; N Aacute ; B 15 0 659 915 ; +C -1 ; WX 667 ; N Acircumflex ; B 15 0 651 915 ; +C -1 ; WX 667 ; N Adieresis ; B 15 0 651 888 ; +C -1 ; WX 667 ; N Agrave ; B 15 0 651 915 ; +C -1 ; WX 667 ; N Aring ; B 15 0 651 979 ; +C -1 ; WX 667 ; N Atilde ; B 15 0 685 890 ; +C -1 ; WX 722 ; N Ccedilla ; B 111 -207 771 739 ; +C -1 ; WX 611 ; N Eacute ; B 81 0 713 915 ; +C -1 ; WX 611 ; N Ecircumflex ; B 81 0 713 915 ; +C -1 ; WX 611 ; N Edieresis ; B 81 0 713 888 ; +C -1 ; WX 611 ; N Egrave ; B 81 0 713 915 ; +C -1 ; WX 722 ; N Eth ; B 81 0 758 720 ; +C -1 ; WX 278 ; N Iacute ; B 105 0 445 915 ; +C -1 ; WX 278 ; N Icircumflex ; B 105 0 436 915 ; +C -1 ; WX 278 ; N Idieresis ; B 105 0 426 888 ; +C -1 ; WX 278 ; N Igrave ; B 105 0 372 915 ; +C -1 ; WX 722 ; N Ntilde ; B 79 0 795 890 ; +C -1 ; WX 778 ; N Oacute ; B 117 -19 812 915 ; +C -1 ; WX 778 ; N Ocircumflex ; B 117 -19 812 915 ; +C -1 ; WX 778 ; N Odieresis ; B 117 -19 812 888 ; +C -1 ; WX 778 ; N Ograve ; B 117 -19 812 915 ; +C -1 ; WX 778 ; N Otilde ; B 117 -19 812 890 ; +C -1 ; WX 611 ; N Scaron ; B 82 -19 663 915 ; +C -1 ; WX 611 ; N Thorn ; B 78 0 661 720 ; +C -1 ; WX 722 ; N Uacute ; B 129 -19 793 915 ; +C -1 ; WX 722 ; N Ucircumflex ; B 129 -19 793 915 ; +C -1 ; WX 722 ; N Udieresis ; B 129 -19 793 888 ; +C -1 ; WX 722 ; N Ugrave ; B 129 -19 793 915 ; +C -1 ; WX 611 ; N Yacute ; B 165 0 751 915 ; +C -1 ; WX 611 ; N Ydieresis ; B 165 0 751 888 ; +C -1 ; WX 611 ; N Zcaron ; B 31 0 729 915 ; +C -1 ; WX 556 ; N aacute ; B 71 -14 561 713 ; +C -1 ; WX 556 ; N acircumflex ; B 71 -14 555 713 ; +C -1 ; WX 556 ; N adieresis ; B 71 -14 555 686 ; +C -1 ; WX 556 ; N agrave ; B 71 -14 555 713 ; +C -1 ; WX 556 ; N aring ; B 71 -14 555 777 ; +C -1 ; WX 556 ; N atilde ; B 71 -14 587 688 ; +C -1 ; WX 222 ; N brokenbar ; B 81 0 298 739 ; +C -1 ; WX 556 ; N ccedilla ; B 92 -207 576 532 ; +C -1 ; WX 800 ; N copyright ; B 89 -19 864 739 ; +C -1 ; WX 400 ; N degree ; B 165 405 471 705 ; +C -1 ; WX 660 ; N divide ; B 127 0 640 500 ; +C -1 ; WX 556 ; N eacute ; B 90 -14 575 713 ; +C -1 ; WX 556 ; N ecircumflex ; B 90 -14 575 713 ; +C -1 ; WX 556 ; N edieresis ; B 90 -14 575 686 ; +C -1 ; WX 556 ; N egrave ; B 90 -14 575 713 ; +C -1 ; WX 556 ; N eth ; B 84 -14 582 739 ; +C -1 ; WX 222 ; N iacute ; B 78 0 374 713 ; +C -1 ; WX 222 ; N icircumflex ; B 71 0 365 713 ; +C -1 ; WX 222 ; N idieresis ; B 78 0 355 686 ; +C -1 ; WX 222 ; N igrave ; B 78 0 301 713 ; +C -1 ; WX 660 ; N logicalnot ; B 148 112 660 378 ; +C -1 ; WX 660 ; N minus ; B 127 220 640 280 ; +C -1 ; WX 556 ; N mu ; B 29 -204 593 518 ; +C -1 ; WX 660 ; N multiply ; B 92 6 677 500 ; +C -1 ; WX 556 ; N ntilde ; B 72 0 587 688 ; +C -1 ; WX 556 ; N oacute ; B 84 -14 582 713 ; +C -1 ; WX 556 ; N ocircumflex ; B 84 -14 582 713 ; +C -1 ; WX 556 ; N odieresis ; B 84 -14 582 686 ; +C -1 ; WX 556 ; N ograve ; B 84 -14 582 713 ; +C -1 ; WX 834 ; N onehalf ; B 125 -14 862 739 ; +C -1 ; WX 834 ; N onequarter ; B 165 -14 823 739 ; +C -1 ; WX 333 ; N onesuperior ; B 221 316 404 739 ; +C -1 ; WX 556 ; N otilde ; B 84 -14 587 688 ; +C -1 ; WX 660 ; N plusminus ; B 80 0 650 500 ; +C -1 ; WX 800 ; N registered ; B 89 -19 864 739 ; +C -1 ; WX 500 ; N scaron ; B 78 -14 554 713 ; +C -1 ; WX 611 ; N thorn ; B 36 -204 620 720 ; +C -1 ; WX 834 ; N threequarters ; B 131 -14 853 739 ; +C -1 ; WX 333 ; N threesuperior ; B 102 308 444 739 ; +C -1 ; WX 940 ; N trademark ; B 174 299 1012 720 ; +C -1 ; WX 333 ; N twosuperior ; B 82 316 453 739 ; +C -1 ; WX 556 ; N uacute ; B 103 -14 593 713 ; +C -1 ; WX 556 ; N ucircumflex ; B 103 -14 593 713 ; +C -1 ; WX 556 ; N udieresis ; B 103 -14 593 686 ; +C -1 ; WX 556 ; N ugrave ; B 103 -14 593 713 ; +C -1 ; WX 500 ; N yacute ; B 26 -204 592 713 ; +C -1 ; WX 500 ; N ydieresis ; B 26 -204 592 686 ; +C -1 ; WX 500 ; N zcaron ; B 33 0 564 713 ; +EndCharMetrics +StartKernData +StartKernPairs 115 + +KPX A y -18 +KPX A w -18 +KPX A v -18 +KPX A quoteright -74 +KPX A Y -74 +KPX A W -37 +KPX A V -74 +KPX A T -92 + +KPX F period -129 +KPX F comma -129 +KPX F A -55 + +KPX L y -37 +KPX L quoteright -74 +KPX L Y -111 +KPX L W -55 +KPX L V -92 +KPX L T -92 + +KPX P period -129 +KPX P comma -129 +KPX P A -74 + +KPX R y 0 +KPX R Y -37 +KPX R W -18 +KPX R V -18 +KPX R T -18 + +KPX T y -84 +KPX T w -84 +KPX T u -92 +KPX T semicolon -111 +KPX T s -111 +KPX T r -92 +KPX T period -111 +KPX T o -111 +KPX T i 0 +KPX T hyphen -129 +KPX T e -111 +KPX T comma -111 +KPX T colon -111 +KPX T c -111 +KPX T a -111 +KPX T A -92 + +KPX V y -18 +KPX V u -37 +KPX V semicolon -74 +KPX V r -37 +KPX V period -129 +KPX V o -55 +KPX V i -18 +KPX V hyphen -55 +KPX V e -55 +KPX V comma -129 +KPX V colon -74 +KPX V a -55 +KPX V A -74 + +KPX W y 0 +KPX W u -18 +KPX W semicolon -18 +KPX W r -18 +KPX W period -74 +KPX W o -18 +KPX W i 0 +KPX W hyphen 0 +KPX W e -18 +KPX W comma -74 +KPX W colon -18 +KPX W a -37 +KPX W A -37 + +KPX Y v -40 +KPX Y u -37 +KPX Y semicolon -92 +KPX Y q -92 +KPX Y period -111 +KPX Y p -37 +KPX Y o -92 +KPX Y i -20 +KPX Y hyphen -111 +KPX Y e -92 +KPX Y comma -111 +KPX Y colon -92 +KPX Y a -92 +KPX Y A -74 + +KPX f quoteright 18 +KPX f f -18 + +KPX quoteleft quoteleft -18 + +KPX quoteright t -18 +KPX quoteright s -74 +KPX quoteright quoteright -18 + +KPX r z 0 +KPX r y 18 +KPX r x 0 +KPX r w 0 +KPX r v 0 +KPX r u 0 +KPX r t 18 +KPX r r 0 +KPX r quoteright 0 +KPX r q -18 +KPX r period -92 +KPX r o -18 +KPX r n 18 +KPX r m 18 +KPX r hyphen -55 +KPX r h 0 +KPX r g 0 +KPX r f 18 +KPX r e -18 +KPX r d -18 +KPX r comma -92 +KPX r c -18 + +KPX v period -74 +KPX v comma -74 + +KPX w period -55 +KPX w comma -55 + +KPX y period -92 +KPX y comma -92 +EndKernPairs +EndKernData +StartComposites 58 +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 202 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 83 0 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 139 202 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 83 0 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 194 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 111 0 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 139 202 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 83 0 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 139 202 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 83 0 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 194 202 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 194 202 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 194 202 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 194 202 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 111 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 111 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 111 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 111 0 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute -47 202 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -47 202 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -47 202 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -27 202 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -75 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -75 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -75 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -55 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 139 202 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 139 202 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 139 202 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 139 202 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 111 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 111 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 111 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 111 0 ; +CC Aacute 2 ; PCC A 0 0 ; PCC acute 167 202 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 167 202 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 167 202 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 167 202 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 111 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 111 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 111 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 111 0 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 222 202 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 222 202 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 222 202 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 222 202 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 111 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 111 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 111 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 111 0 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 167 202 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 111 0 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 194 202 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 111 0 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 222 202 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 111 0 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 187 202 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 111 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-LtO+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-LtO+ new file mode 100755 index 0000000000000..49c6ac25d3874 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-LtO+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 722 ; N Ccaron ; B 111 -19 775 925 ; +C -1 ; WX 556 ; N ccaron ; B 92 -14 605 713 ; +C -1 ; WX 722 ; N Dcaron ; B 81 0 758 925 ; +C -1 ; WX 696 ; N dcaron ; B 101 -14 818 792 ; +C -1 ; WX 611 ; N Ecaron ; B 81 0 713 925 ; +C -1 ; WX 556 ; N ecaron ; B 90 -14 581 713 ; +C -1 ; WX 556 ; N Lcaron ; B 81 0 547 792 ; +C -1 ; WX 556 ; N Lacute ; B 81 0 605 925 ; +C -1 ; WX 307 ; N lcaron ; B 81 0 427 792 ; +C -1 ; WX 222 ; N lacute ; B 81 0 461 925 ; +C -1 ; WX 722 ; N Ncaron ; B 79 0 795 925 ; +C -1 ; WX 556 ; N ncaron ; B 72 0 581 713 ; +C -1 ; WX 667 ; N Rcaron ; B 80 0 726 925 ; +C -1 ; WX 667 ; N Racute ; B 80 0 726 925 ; +C -1 ; WX 333 ; N rcaron ; B 75 0 470 713 ; +C -1 ; WX 333 ; N racute ; B 75 0 471 713 ; +C -1 ; WX 556 ; N Tcaron ; B 157 0 693 925 ; +C -1 ; WX 363 ; N tcaron ; B 108 -14 493 720 ; +C -1 ; WX 722 ; N Uring ; B 129 -19 793 925 ; +C -1 ; WX 556 ; N uring ; B 103 -14 593 777 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 305 212 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 135 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 239 212 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 512 72 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 184 212 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 111 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 153 72 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 156 212 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 121 72 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 12 212 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 239 212 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 111 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 212 212 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 253 212 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 22 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 156 212 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 187 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 225 148 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 111 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Nr b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Nr new file mode 100755 index 0000000000000..5a08aa8c99a0a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Nr @@ -0,0 +1,612 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All rights reserved. +Comment Creation Date: Thu Mar 15 11:04:57 1990 +Comment UniqueID 28380 +Comment VMusage 7572 42473 +FontName Helvetica-Narrow +FullName Helvetica Narrow +FamilyName Helvetica +Weight Medium +ItalicAngle 0 +IsFixedPitch false +FontBBox -136 -225 820 931 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.006 +Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All rights reserved.Helvetica is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 718 +XHeight 523 +Ascender 718 +Descender -207 +StartCharMetrics 228 +C 32 ; WX 228 ; N space ; B 0 0 0 0 ; +C 33 ; WX 228 ; N exclam ; B 74 0 153 718 ; +C 34 ; WX 291 ; N quotedbl ; B 57 463 234 718 ; +C 35 ; WX 456 ; N numbersign ; B 23 0 434 688 ; +C 36 ; WX 456 ; N dollar ; B 26 -115 426 775 ; +C 37 ; WX 729 ; N percent ; B 32 -19 697 703 ; +C 38 ; WX 547 ; N ampersand ; B 36 -15 529 718 ; +C 39 ; WX 182 ; N quoteright ; B 43 463 129 718 ; +C 40 ; WX 273 ; N parenleft ; B 56 -207 245 733 ; +C 41 ; WX 273 ; N parenright ; B 28 -207 217 733 ; +C 42 ; WX 319 ; N asterisk ; B 32 431 286 718 ; +C 43 ; WX 479 ; N plus ; B 32 0 447 505 ; +C 44 ; WX 228 ; N comma ; B 71 -147 157 106 ; +C 45 ; WX 273 ; N hyphen ; B 36 232 237 322 ; +C 46 ; WX 228 ; N period ; B 71 0 157 106 ; +C 47 ; WX 228 ; N slash ; B -14 -19 242 737 ; +C 48 ; WX 456 ; N zero ; B 30 -19 426 703 ; +C 49 ; WX 456 ; N one ; B 83 0 294 703 ; +C 50 ; WX 456 ; N two ; B 21 0 416 703 ; +C 51 ; WX 456 ; N three ; B 28 -19 428 703 ; +C 52 ; WX 456 ; N four ; B 20 0 429 703 ; +C 53 ; WX 456 ; N five ; B 26 -19 421 688 ; +C 54 ; WX 456 ; N six ; B 31 -19 425 703 ; +C 55 ; WX 456 ; N seven ; B 30 0 429 688 ; +C 56 ; WX 456 ; N eight ; B 31 -19 424 703 ; +C 57 ; WX 456 ; N nine ; B 34 -19 421 703 ; +C 58 ; WX 228 ; N colon ; B 71 0 157 516 ; +C 59 ; WX 228 ; N semicolon ; B 71 -147 157 516 ; +C 60 ; WX 479 ; N less ; B 39 11 440 495 ; +C 61 ; WX 479 ; N equal ; B 32 115 447 390 ; +C 62 ; WX 479 ; N greater ; B 39 11 440 495 ; +C 63 ; WX 456 ; N question ; B 46 0 403 727 ; +C 64 ; WX 832 ; N at ; B 121 -19 712 737 ; +C 65 ; WX 547 ; N A ; B 11 0 536 718 ; +C 66 ; WX 547 ; N B ; B 61 0 514 718 ; +C 67 ; WX 592 ; N C ; B 36 -19 558 737 ; +C 68 ; WX 592 ; N D ; B 66 0 553 718 ; +C 69 ; WX 547 ; N E ; B 71 0 505 718 ; +C 70 ; WX 501 ; N F ; B 71 0 478 718 ; +C 71 ; WX 638 ; N G ; B 39 -19 577 737 ; +C 72 ; WX 592 ; N H ; B 63 0 530 718 ; +C 73 ; WX 228 ; N I ; B 75 0 154 718 ; +C 74 ; WX 410 ; N J ; B 14 -19 351 718 ; +C 75 ; WX 547 ; N K ; B 62 0 544 718 ; +C 76 ; WX 456 ; N L ; B 62 0 440 718 ; +C 77 ; WX 683 ; N M ; B 60 0 624 718 ; +C 78 ; WX 592 ; N N ; B 62 0 530 718 ; +C 79 ; WX 638 ; N O ; B 32 -19 606 737 ; +C 80 ; WX 547 ; N P ; B 71 0 510 718 ; +C 81 ; WX 638 ; N Q ; B 32 -56 606 737 ; +C 82 ; WX 592 ; N R ; B 72 0 561 718 ; +C 83 ; WX 547 ; N S ; B 40 -19 508 737 ; +C 84 ; WX 501 ; N T ; B 11 0 490 718 ; +C 85 ; WX 592 ; N U ; B 65 -19 528 718 ; +C 86 ; WX 547 ; N V ; B 16 0 531 718 ; +C 87 ; WX 774 ; N W ; B 13 0 761 718 ; +C 88 ; WX 547 ; N X ; B 16 0 531 718 ; +C 89 ; WX 547 ; N Y ; B 11 0 535 718 ; +C 90 ; WX 501 ; N Z ; B 19 0 482 718 ; +C 91 ; WX 228 ; N bracketleft ; B 52 -196 205 722 ; +C 92 ; WX 228 ; N backslash ; B -14 -19 242 737 ; +C 93 ; WX 228 ; N bracketright ; B 23 -196 176 722 ; +C 94 ; WX 385 ; N asciicircum ; B -11 264 396 688 ; +C 95 ; WX 456 ; N underscore ; B 0 -125 456 -75 ; +C 96 ; WX 182 ; N quoteleft ; B 53 470 139 725 ; +C 97 ; WX 456 ; N a ; B 30 -15 435 538 ; +C 98 ; WX 456 ; N b ; B 48 -15 424 718 ; +C 99 ; WX 410 ; N c ; B 25 -15 391 538 ; +C 100 ; WX 456 ; N d ; B 29 -15 409 718 ; +C 101 ; WX 456 ; N e ; B 33 -15 423 538 ; +C 102 ; WX 228 ; N f ; B 11 0 215 728 ; L i fi ; L l fl ; +C 103 ; WX 456 ; N g ; B 33 -220 409 538 ; +C 104 ; WX 456 ; N h ; B 53 0 403 718 ; +C 105 ; WX 182 ; N i ; B 55 0 127 718 ; +C 106 ; WX 182 ; N j ; B -13 -210 127 718 ; +C 107 ; WX 410 ; N k ; B 55 0 411 718 ; +C 108 ; WX 182 ; N l ; B 55 0 127 718 ; +C 109 ; WX 683 ; N m ; B 53 0 631 538 ; +C 110 ; WX 456 ; N n ; B 53 0 403 538 ; +C 111 ; WX 456 ; N o ; B 29 -14 427 538 ; +C 112 ; WX 456 ; N p ; B 48 -207 424 538 ; +C 113 ; WX 456 ; N q ; B 29 -207 405 538 ; +C 114 ; WX 273 ; N r ; B 63 0 272 538 ; +C 115 ; WX 410 ; N s ; B 26 -15 380 538 ; +C 116 ; WX 228 ; N t ; B 11 -7 211 669 ; +C 117 ; WX 456 ; N u ; B 56 -15 401 523 ; +C 118 ; WX 410 ; N v ; B 7 0 403 523 ; +C 119 ; WX 592 ; N w ; B 11 0 581 523 ; +C 120 ; WX 410 ; N x ; B 9 0 402 523 ; +C 121 ; WX 410 ; N y ; B 9 -214 401 523 ; +C 122 ; WX 410 ; N z ; B 25 0 385 523 ; +C 123 ; WX 274 ; N braceleft ; B 34 -196 239 722 ; +C 124 ; WX 213 ; N bar ; B 77 -19 137 737 ; +C 125 ; WX 274 ; N braceright ; B 34 -196 239 722 ; +C 126 ; WX 479 ; N asciitilde ; B 50 180 429 326 ; +C 161 ; WX 273 ; N exclamdown ; B 97 -195 176 523 ; +C 162 ; WX 456 ; N cent ; B 42 -115 421 623 ; +C 163 ; WX 456 ; N sterling ; B 27 -16 442 718 ; +C 164 ; WX 137 ; N fraction ; B -136 -19 273 703 ; +C 165 ; WX 456 ; N yen ; B 2 0 453 688 ; +C 166 ; WX 456 ; N florin ; B -9 -207 411 737 ; +C 167 ; WX 456 ; N section ; B 35 -191 420 737 ; +C 168 ; WX 456 ; N currency ; B 23 99 433 603 ; +C 169 ; WX 157 ; N quotesingle ; B 48 463 108 718 ; +C 170 ; WX 273 ; N quotedblleft ; B 31 470 252 725 ; +C 171 ; WX 456 ; N guillemotleft ; B 80 108 376 446 ; +C 172 ; WX 273 ; N guilsinglleft ; B 72 108 201 446 ; +C 173 ; WX 273 ; N guilsinglright ; B 72 108 201 446 ; +C 174 ; WX 410 ; N fi ; B 11 0 356 728 ; +C 175 ; WX 410 ; N fl ; B 11 0 354 728 ; +C 177 ; WX 456 ; N endash ; B 0 240 456 313 ; +C 178 ; WX 456 ; N dagger ; B 35 -159 421 718 ; +C 179 ; WX 456 ; N daggerdbl ; B 35 -159 421 718 ; +C 180 ; WX 228 ; N periodcentered ; B 63 190 166 315 ; +C 182 ; WX 440 ; N paragraph ; B 15 -173 408 718 ; +C 183 ; WX 287 ; N bullet ; B 15 202 273 517 ; +C 184 ; WX 182 ; N quotesinglbase ; B 43 -149 129 106 ; +C 185 ; WX 273 ; N quotedblbase ; B 21 -149 242 106 ; +C 186 ; WX 273 ; N quotedblright ; B 21 463 242 718 ; +C 187 ; WX 456 ; N guillemotright ; B 80 108 376 446 ; +C 188 ; WX 820 ; N ellipsis ; B 94 0 726 106 ; +C 189 ; WX 820 ; N perthousand ; B 6 -19 815 703 ; +C 191 ; WX 501 ; N questiondown ; B 75 -201 432 525 ; +C 193 ; WX 273 ; N grave ; B 11 593 173 734 ; +C 194 ; WX 273 ; N acute ; B 100 593 262 734 ; +C 195 ; WX 273 ; N circumflex ; B 17 593 256 734 ; +C 196 ; WX 273 ; N tilde ; B -3 606 276 722 ; +C 197 ; WX 273 ; N macron ; B 8 627 265 684 ; +C 198 ; WX 273 ; N breve ; B 11 595 263 731 ; +C 199 ; WX 273 ; N dotaccent ; B 99 604 174 706 ; +C 200 ; WX 273 ; N dieresis ; B 33 604 240 706 ; +C 202 ; WX 273 ; N ring ; B 61 572 212 756 ; +C 203 ; WX 273 ; N cedilla ; B 37 -225 212 0 ; +C 205 ; WX 273 ; N hungarumlaut ; B 25 593 335 734 ; +C 206 ; WX 273 ; N ogonek ; B 60 -225 235 0 ; +C 207 ; WX 273 ; N caron ; B 17 593 256 734 ; +C 208 ; WX 820 ; N emdash ; B 0 240 820 313 ; +C 225 ; WX 820 ; N AE ; B 7 0 780 718 ; +C 227 ; WX 303 ; N ordfeminine ; B 20 304 284 737 ; +C 232 ; WX 456 ; N Lslash ; B -16 0 440 718 ; +C 233 ; WX 638 ; N Oslash ; B 32 -19 607 737 ; +C 234 ; WX 820 ; N OE ; B 30 -19 791 737 ; +C 235 ; WX 299 ; N ordmasculine ; B 20 304 280 737 ; +C 241 ; WX 729 ; N ae ; B 30 -15 695 538 ; +C 245 ; WX 228 ; N dotlessi ; B 78 0 150 523 ; +C 248 ; WX 182 ; N lslash ; B -16 0 198 718 ; +C 249 ; WX 501 ; N oslash ; B 23 -22 440 545 ; +C 250 ; WX 774 ; N oe ; B 29 -15 740 538 ; +C 251 ; WX 501 ; N germandbls ; B 55 -15 468 728 ; +C -1 ; WX 501 ; N Zcaron ; B 19 0 482 929 ; +C -1 ; WX 410 ; N ccedilla ; B 25 -225 391 538 ; +C -1 ; WX 410 ; N ydieresis ; B 9 -214 401 706 ; +C -1 ; WX 456 ; N atilde ; B 30 -15 435 722 ; +C -1 ; WX 228 ; N icircumflex ; B -5 0 234 734 ; +C -1 ; WX 273 ; N threesuperior ; B 4 270 266 703 ; +C -1 ; WX 456 ; N ecircumflex ; B 33 -15 423 734 ; +C -1 ; WX 456 ; N thorn ; B 48 -207 424 718 ; +C -1 ; WX 456 ; N egrave ; B 33 -15 423 734 ; +C -1 ; WX 273 ; N twosuperior ; B 3 281 265 703 ; +C -1 ; WX 456 ; N eacute ; B 33 -15 423 734 ; +C -1 ; WX 456 ; N otilde ; B 29 -14 427 722 ; +C -1 ; WX 547 ; N Aacute ; B 11 0 536 929 ; +C -1 ; WX 456 ; N ocircumflex ; B 29 -14 427 734 ; +C -1 ; WX 410 ; N yacute ; B 9 -214 401 734 ; +C -1 ; WX 456 ; N udieresis ; B 56 -15 401 706 ; +C -1 ; WX 684 ; N threequarters ; B 37 -19 664 703 ; +C -1 ; WX 456 ; N acircumflex ; B 30 -15 435 734 ; +C -1 ; WX 592 ; N Eth ; B 0 0 553 718 ; +C -1 ; WX 456 ; N edieresis ; B 33 -15 423 706 ; +C -1 ; WX 456 ; N ugrave ; B 56 -15 401 734 ; +C -1 ; WX 820 ; N trademark ; B 38 306 740 718 ; +C -1 ; WX 456 ; N ograve ; B 29 -14 427 734 ; +C -1 ; WX 410 ; N scaron ; B 26 -15 380 734 ; +C -1 ; WX 228 ; N Idieresis ; B 11 0 218 901 ; +C -1 ; WX 456 ; N uacute ; B 56 -15 401 734 ; +C -1 ; WX 456 ; N agrave ; B 30 -15 435 734 ; +C -1 ; WX 456 ; N ntilde ; B 53 0 403 722 ; +C -1 ; WX 456 ; N aring ; B 30 -15 435 756 ; +C -1 ; WX 410 ; N zcaron ; B 25 0 385 734 ; +C -1 ; WX 228 ; N Icircumflex ; B -5 0 234 929 ; +C -1 ; WX 592 ; N Ntilde ; B 62 0 530 917 ; +C -1 ; WX 456 ; N ucircumflex ; B 56 -15 401 734 ; +C -1 ; WX 547 ; N Ecircumflex ; B 71 0 505 929 ; +C -1 ; WX 228 ; N Iacute ; B 75 0 239 929 ; +C -1 ; WX 592 ; N Ccedilla ; B 36 -225 558 737 ; +C -1 ; WX 638 ; N Odieresis ; B 32 -19 606 901 ; +C -1 ; WX 547 ; N Scaron ; B 40 -19 508 929 ; +C -1 ; WX 547 ; N Edieresis ; B 71 0 505 901 ; +C -1 ; WX 228 ; N Igrave ; B -11 0 154 929 ; +C -1 ; WX 456 ; N adieresis ; B 30 -15 435 706 ; +C -1 ; WX 638 ; N Ograve ; B 32 -19 606 929 ; +C -1 ; WX 547 ; N Egrave ; B 71 0 505 929 ; +C -1 ; WX 547 ; N Ydieresis ; B 11 0 535 901 ; +C -1 ; WX 604 ; N registered ; B -11 -19 617 737 ; +C -1 ; WX 638 ; N Otilde ; B 32 -19 606 917 ; +C -1 ; WX 684 ; N onequarter ; B 60 -19 620 703 ; +C -1 ; WX 592 ; N Ugrave ; B 65 -19 528 929 ; +C -1 ; WX 592 ; N Ucircumflex ; B 65 -19 528 929 ; +C -1 ; WX 547 ; N Thorn ; B 71 0 510 718 ; +C -1 ; WX 479 ; N divide ; B 32 -19 447 524 ; +C -1 ; WX 547 ; N Atilde ; B 11 0 536 917 ; +C -1 ; WX 592 ; N Uacute ; B 65 -19 528 929 ; +C -1 ; WX 638 ; N Ocircumflex ; B 32 -19 606 929 ; +C -1 ; WX 479 ; N logicalnot ; B 32 108 447 390 ; +C -1 ; WX 547 ; N Aring ; B 11 0 536 931 ; +C -1 ; WX 228 ; N idieresis ; B 11 0 218 706 ; +C -1 ; WX 228 ; N iacute ; B 78 0 239 734 ; +C -1 ; WX 456 ; N aacute ; B 30 -15 435 734 ; +C -1 ; WX 479 ; N plusminus ; B 32 0 447 506 ; +C -1 ; WX 479 ; N multiply ; B 32 0 447 506 ; +C -1 ; WX 592 ; N Udieresis ; B 65 -19 528 901 ; +C -1 ; WX 479 ; N minus ; B 32 216 447 289 ; +C -1 ; WX 273 ; N onesuperior ; B 35 281 182 703 ; +C -1 ; WX 547 ; N Eacute ; B 71 0 505 929 ; +C -1 ; WX 547 ; N Acircumflex ; B 11 0 536 929 ; +C -1 ; WX 604 ; N copyright ; B -11 -19 617 737 ; +C -1 ; WX 547 ; N Agrave ; B 11 0 536 929 ; +C -1 ; WX 456 ; N odieresis ; B 29 -14 427 706 ; +C -1 ; WX 456 ; N oacute ; B 29 -14 427 734 ; +C -1 ; WX 328 ; N degree ; B 44 411 284 703 ; +C -1 ; WX 228 ; N igrave ; B -11 0 151 734 ; +C -1 ; WX 456 ; N mu ; B 56 -207 401 523 ; +C -1 ; WX 638 ; N Oacute ; B 32 -19 606 929 ; +C -1 ; WX 456 ; N eth ; B 29 -15 428 737 ; +C -1 ; WX 547 ; N Adieresis ; B 11 0 536 901 ; +C -1 ; WX 547 ; N Yacute ; B 11 0 535 929 ; +C -1 ; WX 213 ; N brokenbar ; B 77 -19 137 737 ; +C -1 ; WX 684 ; N onehalf ; B 35 -19 634 703 ; +EndCharMetrics +StartKernData +StartKernPairs 250 + +KPX A y -32 +KPX A w -32 +KPX A v -32 +KPX A u -24 +KPX A Y -81 +KPX A W -40 +KPX A V -56 +KPX A U -40 +KPX A T -97 +KPX A Q -24 +KPX A O -24 +KPX A G -24 +KPX A C -24 + +KPX B period -15 +KPX B comma -15 +KPX B U -7 + +KPX C period -24 +KPX C comma -24 + +KPX D period -56 +KPX D comma -56 +KPX D Y -73 +KPX D W -32 +KPX D V -56 +KPX D A -32 + +KPX F r -36 +KPX F period -122 +KPX F o -24 +KPX F e -24 +KPX F comma -122 +KPX F a -40 +KPX F A -65 + +KPX J u -15 +KPX J period -24 +KPX J comma -24 +KPX J a -15 +KPX J A -15 + +KPX K y -40 +KPX K u -24 +KPX K o -32 +KPX K e -32 +KPX K O -40 + +KPX L y -24 +KPX L quoteright -130 +KPX L quotedblright -114 +KPX L Y -114 +KPX L W -56 +KPX L V -89 +KPX L T -89 + +KPX O period -32 +KPX O comma -32 +KPX O Y -56 +KPX O X -48 +KPX O W -24 +KPX O V -40 +KPX O T -32 +KPX O A -15 + +KPX P period -147 +KPX P o -40 +KPX P e -40 +KPX P comma -147 +KPX P a -32 +KPX P A -97 + +KPX Q U -7 + +KPX R Y -40 +KPX R W -24 +KPX R V -40 +KPX R U -32 +KPX R T -24 +KPX R O -15 + +KPX S period -15 +KPX S comma -15 + +KPX T y -97 +KPX T w -97 +KPX T u -97 +KPX T semicolon -15 +KPX T r -97 +KPX T period -97 +KPX T o -97 +KPX T hyphen -114 +KPX T e -97 +KPX T comma -97 +KPX T colon -15 +KPX T a -97 +KPX T O -32 +KPX T A -97 + +KPX U period -32 +KPX U comma -32 +KPX U A -32 + +KPX V u -56 +KPX V semicolon -32 +KPX V period -102 +KPX V o -65 +KPX V hyphen -65 +KPX V e -65 +KPX V comma -102 +KPX V colon -32 +KPX V a -56 +KPX V O -32 +KPX V G -32 +KPX V A -65 + +KPX W y -15 +KPX W u -24 +KPX W period -65 +KPX W o -24 +KPX W hyphen -32 +KPX W e -24 +KPX W comma -65 +KPX W a -32 +KPX W O -15 +KPX W A -40 + +KPX Y u -89 +KPX Y semicolon -48 +KPX Y period -114 +KPX Y o -114 +KPX Y i -15 +KPX Y hyphen -114 +KPX Y e -114 +KPX Y comma -114 +KPX Y colon -48 +KPX Y a -114 +KPX Y O -69 +KPX Y A -89 + +KPX a y -24 +KPX a w -15 +KPX a v -15 + +KPX b y -15 +KPX b v -15 +KPX b u -15 +KPX b period -32 +KPX b l -15 +KPX b comma -32 +KPX b b -7 + +KPX c k -15 +KPX c comma -11 + +KPX colon space -40 + +KPX comma quoteright -81 +KPX comma quotedblright -81 + +KPX e y -15 +KPX e x -24 +KPX e w -15 +KPX e v -24 +KPX e period -11 +KPX e comma -11 + +KPX f quoteright 41 +KPX f quotedblright 49 +KPX f period -24 +KPX f o -24 +KPX f e -24 +KPX f dotlessi -22 +KPX f comma -24 +KPX f a -24 + +KPX g r -7 + +KPX h y -24 + +KPX k o -15 +KPX k e -15 + +KPX m y -11 +KPX m u -7 + +KPX n y -11 +KPX n v -15 +KPX n u -7 + +KPX o y -24 +KPX o x -24 +KPX o w -11 +KPX o v -11 +KPX o period -32 +KPX o comma -32 + +KPX oslash z -44 +KPX oslash y -56 +KPX oslash x -69 +KPX oslash w -56 +KPX oslash v -56 +KPX oslash u -44 +KPX oslash t -44 +KPX oslash s -44 +KPX oslash r -44 +KPX oslash q -44 +KPX oslash period -77 +KPX oslash p -44 +KPX oslash o -44 +KPX oslash n -44 +KPX oslash m -44 +KPX oslash l -44 +KPX oslash k -44 +KPX oslash j -44 +KPX oslash i -44 +KPX oslash h -44 +KPX oslash g -44 +KPX oslash f -44 +KPX oslash e -44 +KPX oslash d -44 +KPX oslash comma -77 +KPX oslash c -44 +KPX oslash b -44 +KPX oslash a -44 + +KPX p y -24 +KPX p period -28 +KPX p comma -28 + +KPX period space -48 +KPX period quoteright -81 +KPX period quotedblright -81 + +KPX quotedblright space -32 + +KPX quoteleft quoteleft -46 + +KPX quoteright space -56 +KPX quoteright s -40 +KPX quoteright r -40 +KPX quoteright quoteright -46 +KPX quoteright d -40 + +KPX r y 25 +KPX r v 25 +KPX r u 12 +KPX r t 33 +KPX r semicolon 25 +KPX r period -40 +KPX r p 25 +KPX r n 21 +KPX r m 21 +KPX r l 12 +KPX r k 12 +KPX r i 12 +KPX r comma -40 +KPX r colon 25 +KPX r a -7 + +KPX s w -24 +KPX s period -11 +KPX s comma -11 + +KPX semicolon space -40 + +KPX space quoteleft -48 +KPX space quotedblleft -24 +KPX space Y -73 +KPX space W -32 +KPX space V -40 +KPX space T -40 + +KPX v period -65 +KPX v o -20 +KPX v e -20 +KPX v comma -65 +KPX v a -20 + +KPX w period -48 +KPX w o -7 +KPX w e -7 +KPX w comma -48 +KPX w a -11 + +KPX x e -24 + +KPX y period -81 +KPX y o -15 +KPX y e -15 +KPX y comma -81 +KPX y a -15 + +KPX z o -11 +KPX z e -11 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 137 195 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 137 195 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 137 195 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 137 195 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 137 175 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 137 195 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 160 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 137 195 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 137 195 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 137 195 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 137 195 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute -22 195 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -22 195 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -22 195 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -22 195 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 168 195 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 183 195 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 183 195 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 183 195 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 183 195 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 183 195 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 137 195 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 160 195 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 160 195 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 160 195 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 160 195 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 137 195 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 137 195 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 114 195 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 92 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 92 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 92 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 92 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 92 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 84 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 69 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 92 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 92 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 92 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 92 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -22 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -22 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -22 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -22 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 84 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 92 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 92 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 92 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 92 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 92 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 69 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 92 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 92 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 92 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 92 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 69 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 69 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 69 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Nr+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Nr+ new file mode 100755 index 0000000000000..5a34333f913bc --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-Nr+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 592 ; N Ccaron ; B 36 -19 558 925 ; +C -1 ; WX 410 ; N ccaron ; B 25 -15 391 734 ; +C -1 ; WX 592 ; N Dcaron ; B 66 0 553 925 ; +C -1 ; WX 516 ; N dcaron ; B 29 -15 504 790 ; +C -1 ; WX 547 ; N Ecaron ; B 71 0 505 925 ; +C -1 ; WX 456 ; N ecaron ; B 33 -15 423 734 ; +C -1 ; WX 456 ; N Lcaron ; B 62 0 440 790 ; +C -1 ; WX 456 ; N Lacute ; B 62 0 440 925 ; +C -1 ; WX 242 ; N lcaron ; B 55 0 222 790 ; +C -1 ; WX 182 ; N lacute ; B 55 0 233 925 ; +C -1 ; WX 592 ; N Ncaron ; B 62 0 530 925 ; +C -1 ; WX 456 ; N ncaron ; B 53 0 403 734 ; +C -1 ; WX 592 ; N Rcaron ; B 72 0 561 925 ; +C -1 ; WX 592 ; N Racute ; B 72 0 561 925 ; +C -1 ; WX 273 ; N rcaron ; B 17 0 272 734 ; +C -1 ; WX 273 ; N racute ; B 63 0 278 734 ; +C -1 ; WX 501 ; N Tcaron ; B 11 0 490 925 ; +C -1 ; WX 288 ; N tcaron ; B 11 -7 306 718 ; +C -1 ; WX 592 ; N Uring ; B 65 -19 528 925 ; +C -1 ; WX 456 ; N uring ; B 56 -15 401 756 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 211 191 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 86 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 159 191 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 375 72 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 137 191 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 91 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 120 72 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 91 191 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 93 72 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute -29 191 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 159 191 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 91 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 159 191 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 190 191 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 16 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 114 191 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 177 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 159 169 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 91 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-NrBd b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-NrBd new file mode 100755 index 0000000000000..b7c69698bb23e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-NrBd @@ -0,0 +1,570 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu Mar 15 11:47:27 1990 +Comment UniqueID 28398 +Comment VMusage 7614 43068 +FontName Helvetica-Narrow-Bold +FullName Helvetica Narrow Bold +FamilyName Helvetica +Weight Bold +ItalicAngle 0 +IsFixedPitch false +FontBBox -139 -228 822 962 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.007 +Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 718 +XHeight 532 +Ascender 718 +Descender -207 +StartCharMetrics 228 +C 32 ; WX 228 ; N space ; B 0 0 0 0 ; +C 33 ; WX 273 ; N exclam ; B 74 0 200 718 ; +C 34 ; WX 389 ; N quotedbl ; B 80 447 308 718 ; +C 35 ; WX 456 ; N numbersign ; B 15 0 441 698 ; +C 36 ; WX 456 ; N dollar ; B 25 -115 429 775 ; +C 37 ; WX 729 ; N percent ; B 23 -19 706 710 ; +C 38 ; WX 592 ; N ampersand ; B 44 -19 575 718 ; +C 39 ; WX 228 ; N quoteright ; B 57 445 171 718 ; +C 40 ; WX 273 ; N parenleft ; B 29 -208 257 734 ; +C 41 ; WX 273 ; N parenright ; B 16 -208 244 734 ; +C 42 ; WX 319 ; N asterisk ; B 22 387 297 718 ; +C 43 ; WX 479 ; N plus ; B 33 0 446 506 ; +C 44 ; WX 228 ; N comma ; B 52 -168 175 146 ; +C 45 ; WX 273 ; N hyphen ; B 22 215 251 345 ; +C 46 ; WX 228 ; N period ; B 52 0 175 146 ; +C 47 ; WX 228 ; N slash ; B -27 -19 255 737 ; +C 48 ; WX 456 ; N zero ; B 26 -19 430 710 ; +C 49 ; WX 456 ; N one ; B 57 0 310 710 ; +C 50 ; WX 456 ; N two ; B 21 0 419 710 ; +C 51 ; WX 456 ; N three ; B 22 -19 423 710 ; +C 52 ; WX 456 ; N four ; B 22 0 431 710 ; +C 53 ; WX 456 ; N five ; B 22 -19 423 698 ; +C 54 ; WX 456 ; N six ; B 25 -19 426 710 ; +C 55 ; WX 456 ; N seven ; B 20 0 433 698 ; +C 56 ; WX 456 ; N eight ; B 26 -19 430 710 ; +C 57 ; WX 456 ; N nine ; B 25 -19 428 710 ; +C 58 ; WX 273 ; N colon ; B 75 0 198 512 ; +C 59 ; WX 273 ; N semicolon ; B 75 -168 198 512 ; +C 60 ; WX 479 ; N less ; B 31 -8 448 514 ; +C 61 ; WX 479 ; N equal ; B 33 87 446 419 ; +C 62 ; WX 479 ; N greater ; B 31 -8 448 514 ; +C 63 ; WX 501 ; N question ; B 49 0 456 727 ; +C 64 ; WX 800 ; N at ; B 97 -19 702 737 ; +C 65 ; WX 592 ; N A ; B 16 0 576 718 ; +C 66 ; WX 592 ; N B ; B 62 0 549 718 ; +C 67 ; WX 592 ; N C ; B 36 -19 561 737 ; +C 68 ; WX 592 ; N D ; B 62 0 562 718 ; +C 69 ; WX 547 ; N E ; B 62 0 509 718 ; +C 70 ; WX 501 ; N F ; B 62 0 481 718 ; +C 71 ; WX 638 ; N G ; B 36 -19 585 737 ; +C 72 ; WX 592 ; N H ; B 58 0 534 718 ; +C 73 ; WX 228 ; N I ; B 52 0 175 718 ; +C 74 ; WX 456 ; N J ; B 18 -18 397 718 ; +C 75 ; WX 592 ; N K ; B 71 0 592 718 ; +C 76 ; WX 501 ; N L ; B 62 0 478 718 ; +C 77 ; WX 683 ; N M ; B 57 0 627 718 ; +C 78 ; WX 592 ; N N ; B 57 0 536 718 ; +C 79 ; WX 638 ; N O ; B 36 -19 602 737 ; +C 80 ; WX 547 ; N P ; B 62 0 514 718 ; +C 81 ; WX 638 ; N Q ; B 36 -52 604 737 ; +C 82 ; WX 592 ; N R ; B 62 0 555 718 ; +C 83 ; WX 547 ; N S ; B 32 -19 516 737 ; +C 84 ; WX 501 ; N T ; B 11 0 490 718 ; +C 85 ; WX 592 ; N U ; B 59 -19 534 718 ; +C 86 ; WX 547 ; N V ; B 16 0 531 718 ; +C 87 ; WX 774 ; N W ; B 13 0 762 718 ; +C 88 ; WX 547 ; N X ; B 11 0 535 718 ; +C 89 ; WX 547 ; N Y ; B 12 0 535 718 ; +C 90 ; WX 501 ; N Z ; B 20 0 481 718 ; +C 91 ; WX 273 ; N bracketleft ; B 52 -196 253 722 ; +C 92 ; WX 228 ; N backslash ; B -27 -19 255 737 ; +C 93 ; WX 273 ; N bracketright ; B 20 -196 221 722 ; +C 94 ; WX 479 ; N asciicircum ; B 51 323 428 698 ; +C 95 ; WX 456 ; N underscore ; B 0 -125 456 -75 ; +C 96 ; WX 228 ; N quoteleft ; B 57 454 171 727 ; +C 97 ; WX 456 ; N a ; B 24 -14 432 546 ; +C 98 ; WX 501 ; N b ; B 50 -14 474 718 ; +C 99 ; WX 456 ; N c ; B 28 -14 430 546 ; +C 100 ; WX 501 ; N d ; B 28 -14 452 718 ; +C 101 ; WX 456 ; N e ; B 19 -14 433 546 ; +C 102 ; WX 273 ; N f ; B 8 0 261 727 ; L i fi ; L l fl ; +C 103 ; WX 501 ; N g ; B 33 -217 453 546 ; +C 104 ; WX 501 ; N h ; B 53 0 448 718 ; +C 105 ; WX 228 ; N i ; B 57 0 171 725 ; +C 106 ; WX 228 ; N j ; B 2 -214 171 725 ; +C 107 ; WX 456 ; N k ; B 57 0 461 718 ; +C 108 ; WX 228 ; N l ; B 57 0 171 718 ; +C 109 ; WX 729 ; N m ; B 52 0 677 546 ; +C 110 ; WX 501 ; N n ; B 53 0 448 546 ; +C 111 ; WX 501 ; N o ; B 28 -14 474 546 ; +C 112 ; WX 501 ; N p ; B 51 -207 474 546 ; +C 113 ; WX 501 ; N q ; B 28 -207 453 546 ; +C 114 ; WX 319 ; N r ; B 52 0 306 546 ; +C 115 ; WX 456 ; N s ; B 25 -14 426 546 ; +C 116 ; WX 273 ; N t ; B 8 -6 253 676 ; +C 117 ; WX 501 ; N u ; B 54 -14 447 532 ; +C 118 ; WX 456 ; N v ; B 11 0 445 532 ; +C 119 ; WX 638 ; N w ; B 8 0 631 532 ; +C 120 ; WX 456 ; N x ; B 12 0 444 532 ; +C 121 ; WX 456 ; N y ; B 8 -214 442 532 ; +C 122 ; WX 410 ; N z ; B 16 0 394 532 ; +C 123 ; WX 319 ; N braceleft ; B 39 -196 299 722 ; +C 124 ; WX 230 ; N bar ; B 69 -19 161 737 ; +C 125 ; WX 319 ; N braceright ; B 20 -196 280 722 ; +C 126 ; WX 479 ; N asciitilde ; B 50 163 429 343 ; +C 161 ; WX 273 ; N exclamdown ; B 74 -186 200 532 ; +C 162 ; WX 456 ; N cent ; B 28 -118 430 628 ; +C 163 ; WX 456 ; N sterling ; B 23 -16 444 718 ; +C 164 ; WX 137 ; N fraction ; B -139 -19 276 710 ; +C 165 ; WX 456 ; N yen ; B -7 0 463 698 ; +C 166 ; WX 456 ; N florin ; B -8 -210 423 737 ; +C 167 ; WX 456 ; N section ; B 28 -184 428 727 ; +C 168 ; WX 456 ; N currency ; B -2 76 458 636 ; +C 169 ; WX 195 ; N quotesingle ; B 57 447 138 718 ; +C 170 ; WX 410 ; N quotedblleft ; B 52 454 358 727 ; +C 171 ; WX 456 ; N guillemotleft ; B 72 76 384 484 ; +C 172 ; WX 273 ; N guilsinglleft ; B 68 76 205 484 ; +C 173 ; WX 273 ; N guilsinglright ; B 68 76 205 484 ; +C 174 ; WX 501 ; N fi ; B 8 0 444 727 ; +C 175 ; WX 501 ; N fl ; B 8 0 444 727 ; +C 177 ; WX 456 ; N endash ; B 0 227 456 333 ; +C 178 ; WX 456 ; N dagger ; B 30 -171 426 718 ; +C 179 ; WX 456 ; N daggerdbl ; B 30 -171 426 718 ; +C 180 ; WX 228 ; N periodcentered ; B 48 172 180 334 ; +C 182 ; WX 456 ; N paragraph ; B -7 -191 442 700 ; +C 183 ; WX 287 ; N bullet ; B 8 194 279 524 ; +C 184 ; WX 228 ; N quotesinglbase ; B 57 -146 171 127 ; +C 185 ; WX 410 ; N quotedblbase ; B 52 -146 358 127 ; +C 186 ; WX 410 ; N quotedblright ; B 52 445 358 718 ; +C 187 ; WX 456 ; N guillemotright ; B 72 76 384 484 ; +C 188 ; WX 820 ; N ellipsis ; B 75 0 745 146 ; +C 189 ; WX 820 ; N perthousand ; B -2 -19 822 710 ; +C 191 ; WX 501 ; N questiondown ; B 45 -195 452 532 ; +C 193 ; WX 273 ; N grave ; B -19 604 184 750 ; +C 194 ; WX 273 ; N acute ; B 89 604 292 750 ; +C 195 ; WX 273 ; N circumflex ; B -8 604 281 750 ; +C 196 ; WX 273 ; N tilde ; B -14 610 287 737 ; +C 197 ; WX 273 ; N macron ; B -5 604 278 678 ; +C 198 ; WX 273 ; N breve ; B -2 604 275 750 ; +C 199 ; WX 273 ; N dotaccent ; B 85 614 189 729 ; +C 200 ; WX 273 ; N dieresis ; B 5 614 268 729 ; +C 202 ; WX 273 ; N ring ; B 48 568 225 776 ; +C 203 ; WX 273 ; N cedilla ; B 5 -228 201 0 ; +C 205 ; WX 273 ; N hungarumlaut ; B 7 604 399 750 ; +C 206 ; WX 273 ; N ogonek ; B 58 -228 249 0 ; +C 207 ; WX 273 ; N caron ; B -8 604 281 750 ; +C 208 ; WX 820 ; N emdash ; B 0 227 820 333 ; +C 225 ; WX 820 ; N AE ; B 4 0 782 718 ; +C 227 ; WX 303 ; N ordfeminine ; B 18 276 285 737 ; +C 232 ; WX 501 ; N Lslash ; B -16 0 478 718 ; +C 233 ; WX 638 ; N Oslash ; B 27 -27 610 745 ; +C 234 ; WX 820 ; N OE ; B 30 -19 788 737 ; +C 235 ; WX 299 ; N ordmasculine ; B 5 276 295 737 ; +C 241 ; WX 729 ; N ae ; B 24 -14 704 546 ; +C 245 ; WX 228 ; N dotlessi ; B 57 0 171 532 ; +C 248 ; WX 228 ; N lslash ; B -15 0 243 718 ; +C 249 ; WX 501 ; N oslash ; B 18 -29 483 560 ; +C 250 ; WX 774 ; N oe ; B 28 -14 748 546 ; +C 251 ; WX 501 ; N germandbls ; B 57 -14 475 731 ; +C -1 ; WX 501 ; N Zcaron ; B 20 0 481 936 ; +C -1 ; WX 456 ; N ccedilla ; B 28 -228 430 546 ; +C -1 ; WX 456 ; N ydieresis ; B 8 -214 442 729 ; +C -1 ; WX 456 ; N atilde ; B 24 -14 432 737 ; +C -1 ; WX 228 ; N icircumflex ; B -30 0 259 750 ; +C -1 ; WX 273 ; N threesuperior ; B 7 271 267 710 ; +C -1 ; WX 456 ; N ecircumflex ; B 19 -14 433 750 ; +C -1 ; WX 501 ; N thorn ; B 51 -208 474 718 ; +C -1 ; WX 456 ; N egrave ; B 19 -14 433 750 ; +C -1 ; WX 273 ; N twosuperior ; B 7 283 266 710 ; +C -1 ; WX 456 ; N eacute ; B 19 -14 433 750 ; +C -1 ; WX 501 ; N otilde ; B 28 -14 474 737 ; +C -1 ; WX 592 ; N Aacute ; B 16 0 576 936 ; +C -1 ; WX 501 ; N ocircumflex ; B 28 -14 474 750 ; +C -1 ; WX 456 ; N yacute ; B 8 -214 442 750 ; +C -1 ; WX 501 ; N udieresis ; B 54 -14 447 729 ; +C -1 ; WX 684 ; N threequarters ; B 13 -19 655 710 ; +C -1 ; WX 456 ; N acircumflex ; B 24 -14 432 750 ; +C -1 ; WX 592 ; N Eth ; B -4 0 562 718 ; +C -1 ; WX 456 ; N edieresis ; B 19 -14 433 729 ; +C -1 ; WX 501 ; N ugrave ; B 54 -14 447 750 ; +C -1 ; WX 820 ; N trademark ; B 36 306 784 718 ; +C -1 ; WX 501 ; N ograve ; B 28 -14 474 750 ; +C -1 ; WX 456 ; N scaron ; B 25 -14 426 750 ; +C -1 ; WX 228 ; N Idieresis ; B -17 0 246 915 ; +C -1 ; WX 501 ; N uacute ; B 54 -14 447 750 ; +C -1 ; WX 456 ; N agrave ; B 24 -14 432 750 ; +C -1 ; WX 501 ; N ntilde ; B 53 0 448 737 ; +C -1 ; WX 456 ; N aring ; B 24 -14 432 776 ; +C -1 ; WX 410 ; N zcaron ; B 16 0 394 750 ; +C -1 ; WX 228 ; N Icircumflex ; B -30 0 259 936 ; +C -1 ; WX 592 ; N Ntilde ; B 57 0 536 923 ; +C -1 ; WX 501 ; N ucircumflex ; B 54 -14 447 750 ; +C -1 ; WX 547 ; N Ecircumflex ; B 62 0 509 936 ; +C -1 ; WX 228 ; N Iacute ; B 52 0 270 936 ; +C -1 ; WX 592 ; N Ccedilla ; B 36 -228 561 737 ; +C -1 ; WX 638 ; N Odieresis ; B 36 -19 602 915 ; +C -1 ; WX 547 ; N Scaron ; B 32 -19 516 936 ; +C -1 ; WX 547 ; N Edieresis ; B 62 0 509 915 ; +C -1 ; WX 228 ; N Igrave ; B -41 0 175 936 ; +C -1 ; WX 456 ; N adieresis ; B 24 -14 432 729 ; +C -1 ; WX 638 ; N Ograve ; B 36 -19 602 936 ; +C -1 ; WX 547 ; N Egrave ; B 62 0 509 936 ; +C -1 ; WX 547 ; N Ydieresis ; B 12 0 535 915 ; +C -1 ; WX 604 ; N registered ; B -9 -19 613 737 ; +C -1 ; WX 638 ; N Otilde ; B 36 -19 602 923 ; +C -1 ; WX 684 ; N onequarter ; B 21 -19 628 710 ; +C -1 ; WX 592 ; N Ugrave ; B 59 -19 534 936 ; +C -1 ; WX 592 ; N Ucircumflex ; B 59 -19 534 936 ; +C -1 ; WX 547 ; N Thorn ; B 62 0 514 718 ; +C -1 ; WX 479 ; N divide ; B 33 -42 446 548 ; +C -1 ; WX 592 ; N Atilde ; B 16 0 576 923 ; +C -1 ; WX 592 ; N Uacute ; B 59 -19 534 936 ; +C -1 ; WX 638 ; N Ocircumflex ; B 36 -19 602 936 ; +C -1 ; WX 479 ; N logicalnot ; B 33 108 446 419 ; +C -1 ; WX 592 ; N Aring ; B 16 0 576 962 ; +C -1 ; WX 228 ; N idieresis ; B -17 0 246 729 ; +C -1 ; WX 228 ; N iacute ; B 57 0 270 750 ; +C -1 ; WX 456 ; N aacute ; B 24 -14 432 750 ; +C -1 ; WX 479 ; N plusminus ; B 33 0 446 506 ; +C -1 ; WX 479 ; N multiply ; B 33 1 447 505 ; +C -1 ; WX 592 ; N Udieresis ; B 59 -19 534 915 ; +C -1 ; WX 479 ; N minus ; B 33 197 446 309 ; +C -1 ; WX 273 ; N onesuperior ; B 21 283 194 710 ; +C -1 ; WX 547 ; N Eacute ; B 62 0 509 936 ; +C -1 ; WX 592 ; N Acircumflex ; B 16 0 576 936 ; +C -1 ; WX 604 ; N copyright ; B -9 -19 614 737 ; +C -1 ; WX 592 ; N Agrave ; B 16 0 576 936 ; +C -1 ; WX 501 ; N odieresis ; B 28 -14 474 729 ; +C -1 ; WX 501 ; N oacute ; B 28 -14 474 750 ; +C -1 ; WX 328 ; N degree ; B 47 426 281 712 ; +C -1 ; WX 228 ; N igrave ; B -41 0 171 750 ; +C -1 ; WX 501 ; N mu ; B 54 -207 447 532 ; +C -1 ; WX 638 ; N Oacute ; B 36 -19 602 936 ; +C -1 ; WX 501 ; N eth ; B 28 -14 474 737 ; +C -1 ; WX 592 ; N Adieresis ; B 16 0 576 915 ; +C -1 ; WX 547 ; N Yacute ; B 12 0 535 936 ; +C -1 ; WX 230 ; N brokenbar ; B 69 -19 161 737 ; +C -1 ; WX 684 ; N onehalf ; B 21 -19 651 710 ; +EndCharMetrics +StartKernData +StartKernPairs 209 + +KPX A y -24 +KPX A w -24 +KPX A v -32 +KPX A u -24 +KPX A Y -89 +KPX A W -48 +KPX A V -65 +KPX A U -40 +KPX A T -73 +KPX A Q -32 +KPX A O -32 +KPX A G -40 +KPX A C -32 + +KPX B U -7 +KPX B A -24 + +KPX D period -24 +KPX D comma -24 +KPX D Y -56 +KPX D W -32 +KPX D V -32 +KPX D A -32 + +KPX F period -81 +KPX F comma -81 +KPX F a -15 +KPX F A -65 + +KPX J u -15 +KPX J period -15 +KPX J comma -15 +KPX J A -15 + +KPX K y -32 +KPX K u -24 +KPX K o -28 +KPX K e -11 +KPX K O -24 + +KPX L y -24 +KPX L quoteright -114 +KPX L quotedblright -114 +KPX L Y -97 +KPX L W -65 +KPX L V -89 +KPX L T -73 + +KPX O period -32 +KPX O comma -32 +KPX O Y -56 +KPX O X -40 +KPX O W -40 +KPX O V -40 +KPX O T -32 +KPX O A -40 + +KPX P period -97 +KPX P o -32 +KPX P e -24 +KPX P comma -97 +KPX P a -24 +KPX P A -81 + +KPX Q period 16 +KPX Q comma 16 +KPX Q U -7 + +KPX R Y -40 +KPX R W -32 +KPX R V -40 +KPX R U -15 +KPX R T -15 +KPX R O -15 + +KPX T y -48 +KPX T w -48 +KPX T u -73 +KPX T semicolon -32 +KPX T r -65 +KPX T period -65 +KPX T o -65 +KPX T hyphen -97 +KPX T e -48 +KPX T comma -65 +KPX T colon -32 +KPX T a -65 +KPX T O -32 +KPX T A -73 + +KPX U period -24 +KPX U comma -24 +KPX U A -40 + +KPX V u -48 +KPX V semicolon -32 +KPX V period -97 +KPX V o -73 +KPX V hyphen -65 +KPX V e -40 +KPX V comma -97 +KPX V colon -32 +KPX V a -48 +KPX V O -40 +KPX V G -40 +KPX V A -65 + +KPX W y -15 +KPX W u -36 +KPX W semicolon -7 +KPX W period -65 +KPX W o -48 +KPX W hyphen -32 +KPX W e -28 +KPX W comma -65 +KPX W colon -7 +KPX W a -32 +KPX W O -15 +KPX W A -48 + +KPX Y u -81 +KPX Y semicolon -40 +KPX Y period -81 +KPX Y o -81 +KPX Y e -65 +KPX Y comma -81 +KPX Y colon -40 +KPX Y a -73 +KPX Y O -56 +KPX Y A -89 + +KPX a y -15 +KPX a w -11 +KPX a v -11 +KPX a g -7 + +KPX b y -15 +KPX b v -15 +KPX b u -15 +KPX b l -7 + +KPX c y -7 +KPX c l -15 +KPX c k -15 +KPX c h -7 + +KPX colon space -32 + +KPX comma space -32 +KPX comma quoteright -97 +KPX comma quotedblright -97 + +KPX d y -11 +KPX d w -11 +KPX d v -11 +KPX d d -7 + +KPX e y -11 +KPX e x -11 +KPX e w -11 +KPX e v -11 +KPX e period 16 +KPX e comma 8 + +KPX f quoteright 25 +KPX f quotedblright 25 +KPX f period -7 +KPX f o -15 +KPX f e -7 +KPX f comma -7 + +KPX g g -7 +KPX g e 8 + +KPX h y -15 + +KPX k o -11 + +KPX l y -11 +KPX l w -11 + +KPX m y -24 +KPX m u -15 + +KPX n y -15 +KPX n v -32 +KPX n u -7 + +KPX o y -15 +KPX o x -24 +KPX o w -11 +KPX o v -15 + +KPX p y -11 + +KPX period space -32 +KPX period quoteright -97 +KPX period quotedblright -97 + +KPX quotedblright space -65 + +KPX quoteleft quoteleft -37 + +KPX quoteright v -15 +KPX quoteright space -65 +KPX quoteright s -48 +KPX quoteright r -32 +KPX quoteright quoteright -37 +KPX quoteright l -15 +KPX quoteright d -65 + +KPX r y 8 +KPX r v 8 +KPX r t 16 +KPX r s -11 +KPX r q -15 +KPX r period -48 +KPX r o -15 +KPX r hyphen -15 +KPX r g -11 +KPX r d -15 +KPX r comma -48 +KPX r c -15 + +KPX s w -11 + +KPX semicolon space -32 + +KPX space quoteleft -48 +KPX space quotedblleft -65 +KPX space Y -97 +KPX space W -65 +KPX space V -65 +KPX space T -81 + +KPX v period -65 +KPX v o -24 +KPX v comma -65 +KPX v a -15 + +KPX w period -32 +KPX w o -15 +KPX w comma -32 + +KPX x e -7 + +KPX y period -65 +KPX y o -20 +KPX y e -7 +KPX y comma -65 +KPX y a -24 + +KPX z e 8 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 160 186 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 160 186 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 160 186 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 160 186 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 160 186 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 160 186 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 176 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 137 186 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 137 186 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 137 186 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 137 186 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute -22 186 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -22 186 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -22 186 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave -22 186 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 160 186 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 183 186 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 183 186 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 183 186 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 183 186 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 183 186 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 137 186 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 160 186 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 160 186 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 160 186 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 160 186 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 137 186 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 137 186 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 114 186 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 92 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 92 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 92 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 92 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 92 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 92 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 108 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 92 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 92 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 92 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 92 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -22 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -22 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -22 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -22 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 114 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 114 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 114 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 114 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 114 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 114 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 92 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 114 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 114 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 114 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 114 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 92 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 92 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 69 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-NrBd+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-NrBd+ new file mode 100755 index 0000000000000..41f7f8e11d91b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-NrBd+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 592 ; N Ccaron ; B 36 -19 561 930 ; +C -1 ; WX 456 ; N ccaron ; B 28 -14 430 750 ; +C -1 ; WX 592 ; N Dcaron ; B 62 0 562 930 ; +C -1 ; WX 581 ; N dcaron ; B 28 -14 577 790 ; +C -1 ; WX 547 ; N Ecaron ; B 62 0 509 930 ; +C -1 ; WX 456 ; N ecaron ; B 19 -14 433 750 ; +C -1 ; WX 501 ; N Lcaron ; B 62 0 478 790 ; +C -1 ; WX 501 ; N Lacute ; B 62 0 478 930 ; +C -1 ; WX 308 ; N lcaron ; B 57 0 296 790 ; +C -1 ; WX 228 ; N lacute ; B 57 0 290 930 ; +C -1 ; WX 592 ; N Ncaron ; B 57 0 536 930 ; +C -1 ; WX 501 ; N ncaron ; B 53 0 448 750 ; +C -1 ; WX 592 ; N Rcaron ; B 62 0 555 930 ; +C -1 ; WX 592 ; N Racute ; B 62 0 555 930 ; +C -1 ; WX 319 ; N rcaron ; B 15 0 306 750 ; +C -1 ; WX 319 ; N racute ; B 52 0 335 750 ; +C -1 ; WX 501 ; N Tcaron ; B 11 0 490 930 ; +C -1 ; WX 353 ; N tcaron ; B 8 -6 378 718 ; +C -1 ; WX 592 ; N Uring ; B 59 -19 534 930 ; +C -1 ; WX 501 ; N uring ; B 54 -14 447 776 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 212 180 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 111 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 159 180 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 406 72 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 137 180 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 91 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 129 72 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 114 180 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 125 72 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute -2 180 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 159 180 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 114 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 159 180 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 198 180 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 23 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 43 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 114 180 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 207 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 159 154 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 114 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-NrBdO b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-NrBdO new file mode 100755 index 0000000000000..1a3800194d518 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-NrBdO @@ -0,0 +1,570 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu Mar 15 12:08:57 1990 +Comment UniqueID 28407 +Comment VMusage 7614 43068 +FontName Helvetica-Narrow-BoldOblique +FullName Helvetica Narrow Bold Oblique +FamilyName Helvetica +Weight Bold +ItalicAngle -12 +IsFixedPitch false +FontBBox -143 -228 913 962 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.007 +Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 718 +XHeight 532 +Ascender 718 +Descender -207 +StartCharMetrics 228 +C 32 ; WX 228 ; N space ; B 0 0 0 0 ; +C 33 ; WX 273 ; N exclam ; B 77 0 325 718 ; +C 34 ; WX 389 ; N quotedbl ; B 158 447 433 718 ; +C 35 ; WX 456 ; N numbersign ; B 49 0 528 698 ; +C 36 ; WX 456 ; N dollar ; B 55 -115 510 775 ; +C 37 ; WX 729 ; N percent ; B 112 -19 739 710 ; +C 38 ; WX 592 ; N ampersand ; B 73 -19 600 718 ; +C 39 ; WX 228 ; N quoteright ; B 137 445 297 718 ; +C 40 ; WX 273 ; N parenleft ; B 62 -208 385 734 ; +C 41 ; WX 273 ; N parenright ; B -21 -208 302 734 ; +C 42 ; WX 319 ; N asterisk ; B 120 387 394 718 ; +C 43 ; WX 479 ; N plus ; B 67 0 500 506 ; +C 44 ; WX 228 ; N comma ; B 23 -168 201 146 ; +C 45 ; WX 273 ; N hyphen ; B 60 215 311 345 ; +C 46 ; WX 228 ; N period ; B 52 0 201 146 ; +C 47 ; WX 228 ; N slash ; B -30 -19 383 737 ; +C 48 ; WX 456 ; N zero ; B 71 -19 506 710 ; +C 49 ; WX 456 ; N one ; B 142 0 434 710 ; +C 50 ; WX 456 ; N two ; B 21 0 508 710 ; +C 51 ; WX 456 ; N three ; B 54 -19 499 710 ; +C 52 ; WX 456 ; N four ; B 50 0 490 710 ; +C 53 ; WX 456 ; N five ; B 53 -19 522 698 ; +C 54 ; WX 456 ; N six ; B 70 -19 507 710 ; +C 55 ; WX 456 ; N seven ; B 102 0 555 698 ; +C 56 ; WX 456 ; N eight ; B 57 -19 505 710 ; +C 57 ; WX 456 ; N nine ; B 64 -19 504 710 ; +C 58 ; WX 273 ; N colon ; B 75 0 288 512 ; +C 59 ; WX 273 ; N semicolon ; B 46 -168 288 512 ; +C 60 ; WX 479 ; N less ; B 67 -8 537 514 ; +C 61 ; WX 479 ; N equal ; B 48 87 519 419 ; +C 62 ; WX 479 ; N greater ; B 30 -8 500 514 ; +C 63 ; WX 501 ; N question ; B 135 0 550 727 ; +C 64 ; WX 800 ; N at ; B 152 -19 782 737 ; +C 65 ; WX 592 ; N A ; B 16 0 576 718 ; +C 66 ; WX 592 ; N B ; B 62 0 626 718 ; +C 67 ; WX 592 ; N C ; B 88 -19 647 737 ; +C 68 ; WX 592 ; N D ; B 62 0 637 718 ; +C 69 ; WX 547 ; N E ; B 62 0 620 718 ; +C 70 ; WX 501 ; N F ; B 62 0 606 718 ; +C 71 ; WX 638 ; N G ; B 89 -19 670 737 ; +C 72 ; WX 592 ; N H ; B 58 0 659 718 ; +C 73 ; WX 228 ; N I ; B 52 0 301 718 ; +C 74 ; WX 456 ; N J ; B 49 -18 522 718 ; +C 75 ; WX 592 ; N K ; B 71 0 703 718 ; +C 76 ; WX 501 ; N L ; B 62 0 501 718 ; +C 77 ; WX 683 ; N M ; B 57 0 752 718 ; +C 78 ; WX 592 ; N N ; B 57 0 661 718 ; +C 79 ; WX 638 ; N O ; B 88 -19 675 737 ; +C 80 ; WX 547 ; N P ; B 62 0 605 718 ; +C 81 ; WX 638 ; N Q ; B 88 -52 675 737 ; +C 82 ; WX 592 ; N R ; B 62 0 638 718 ; +C 83 ; WX 547 ; N S ; B 66 -19 588 737 ; +C 84 ; WX 501 ; N T ; B 114 0 615 718 ; +C 85 ; WX 592 ; N U ; B 96 -19 659 718 ; +C 86 ; WX 547 ; N V ; B 141 0 656 718 ; +C 87 ; WX 774 ; N W ; B 138 0 887 718 ; +C 88 ; WX 547 ; N X ; B 11 0 648 718 ; +C 89 ; WX 547 ; N Y ; B 137 0 661 718 ; +C 90 ; WX 501 ; N Z ; B 20 0 604 718 ; +C 91 ; WX 273 ; N bracketleft ; B 17 -196 379 722 ; +C 92 ; WX 228 ; N backslash ; B 101 -19 252 737 ; +C 93 ; WX 273 ; N bracketright ; B -14 -196 347 722 ; +C 94 ; WX 479 ; N asciicircum ; B 107 323 484 698 ; +C 95 ; WX 456 ; N underscore ; B -22 -125 443 -75 ; +C 96 ; WX 228 ; N quoteleft ; B 136 454 296 727 ; +C 97 ; WX 456 ; N a ; B 45 -14 478 546 ; +C 98 ; WX 501 ; N b ; B 50 -14 529 718 ; +C 99 ; WX 456 ; N c ; B 65 -14 491 546 ; +C 100 ; WX 501 ; N d ; B 67 -14 577 718 ; +C 101 ; WX 456 ; N e ; B 58 -14 486 546 ; +C 102 ; WX 273 ; N f ; B 71 0 385 727 ; L i fi ; L l fl ; +C 103 ; WX 501 ; N g ; B 31 -217 546 546 ; +C 104 ; WX 501 ; N h ; B 53 0 516 718 ; +C 105 ; WX 228 ; N i ; B 57 0 298 725 ; +C 106 ; WX 228 ; N j ; B -35 -214 298 725 ; +C 107 ; WX 456 ; N k ; B 57 0 549 718 ; +C 108 ; WX 228 ; N l ; B 57 0 297 718 ; +C 109 ; WX 729 ; N m ; B 52 0 746 546 ; +C 110 ; WX 501 ; N n ; B 53 0 516 546 ; +C 111 ; WX 501 ; N o ; B 67 -14 527 546 ; +C 112 ; WX 501 ; N p ; B 15 -207 529 546 ; +C 113 ; WX 501 ; N q ; B 66 -207 545 546 ; +C 114 ; WX 319 ; N r ; B 52 0 401 546 ; +C 115 ; WX 456 ; N s ; B 52 -14 479 546 ; +C 116 ; WX 273 ; N t ; B 82 -6 346 676 ; +C 117 ; WX 501 ; N u ; B 80 -14 540 532 ; +C 118 ; WX 456 ; N v ; B 103 0 538 532 ; +C 119 ; WX 638 ; N w ; B 101 0 723 532 ; +C 120 ; WX 456 ; N x ; B 12 0 531 532 ; +C 121 ; WX 456 ; N y ; B 34 -214 535 532 ; +C 122 ; WX 410 ; N z ; B 16 0 478 532 ; +C 123 ; WX 319 ; N braceleft ; B 77 -196 425 722 ; +C 124 ; WX 230 ; N bar ; B 66 -19 289 737 ; +C 125 ; WX 319 ; N braceright ; B -14 -196 333 722 ; +C 126 ; WX 479 ; N asciitilde ; B 94 163 473 343 ; +C 161 ; WX 273 ; N exclamdown ; B 41 -186 290 532 ; +C 162 ; WX 456 ; N cent ; B 65 -118 491 628 ; +C 163 ; WX 456 ; N sterling ; B 41 -16 520 718 ; +C 164 ; WX 137 ; N fraction ; B -143 -19 399 710 ; +C 165 ; WX 456 ; N yen ; B 49 0 585 698 ; +C 166 ; WX 456 ; N florin ; B -41 -210 548 737 ; +C 167 ; WX 456 ; N section ; B 50 -184 491 727 ; +C 168 ; WX 456 ; N currency ; B 22 76 558 636 ; +C 169 ; WX 195 ; N quotesingle ; B 135 447 263 718 ; +C 170 ; WX 410 ; N quotedblleft ; B 132 454 482 727 ; +C 171 ; WX 456 ; N guillemotleft ; B 111 76 468 484 ; +C 172 ; WX 273 ; N guilsinglleft ; B 106 76 289 484 ; +C 173 ; WX 273 ; N guilsinglright ; B 81 76 264 484 ; +C 174 ; WX 501 ; N fi ; B 71 0 571 727 ; +C 175 ; WX 501 ; N fl ; B 71 0 570 727 ; +C 177 ; WX 456 ; N endash ; B 40 227 514 333 ; +C 178 ; WX 456 ; N dagger ; B 97 -171 513 718 ; +C 179 ; WX 456 ; N daggerdbl ; B 38 -171 515 718 ; +C 180 ; WX 228 ; N periodcentered ; B 90 172 226 334 ; +C 182 ; WX 456 ; N paragraph ; B 80 -191 564 700 ; +C 183 ; WX 287 ; N bullet ; B 68 194 345 524 ; +C 184 ; WX 228 ; N quotesinglbase ; B 34 -146 194 127 ; +C 185 ; WX 410 ; N quotedblbase ; B 29 -146 380 127 ; +C 186 ; WX 410 ; N quotedblright ; B 132 445 483 718 ; +C 187 ; WX 456 ; N guillemotright ; B 85 76 443 484 ; +C 188 ; WX 820 ; N ellipsis ; B 75 0 770 146 ; +C 189 ; WX 820 ; N perthousand ; B 62 -19 851 710 ; +C 191 ; WX 501 ; N questiondown ; B 44 -195 459 532 ; +C 193 ; WX 273 ; N grave ; B 112 604 290 750 ; +C 194 ; WX 273 ; N acute ; B 194 604 423 750 ; +C 195 ; WX 273 ; N circumflex ; B 97 604 387 750 ; +C 196 ; WX 273 ; N tilde ; B 92 610 415 737 ; +C 197 ; WX 273 ; N macron ; B 100 604 396 678 ; +C 198 ; WX 273 ; N breve ; B 128 604 405 750 ; +C 199 ; WX 273 ; N dotaccent ; B 192 614 316 729 ; +C 200 ; WX 273 ; N dieresis ; B 112 614 395 729 ; +C 202 ; WX 273 ; N ring ; B 164 568 344 776 ; +C 203 ; WX 273 ; N cedilla ; B -30 -228 180 0 ; +C 205 ; WX 273 ; N hungarumlaut ; B 113 604 529 750 ; +C 206 ; WX 273 ; N ogonek ; B 33 -228 216 0 ; +C 207 ; WX 273 ; N caron ; B 123 604 412 750 ; +C 208 ; WX 820 ; N emdash ; B 40 227 878 333 ; +C 225 ; WX 820 ; N AE ; B 4 0 902 718 ; +C 227 ; WX 303 ; N ordfeminine ; B 75 276 381 737 ; +C 232 ; WX 501 ; N Lslash ; B 28 0 501 718 ; +C 233 ; WX 638 ; N Oslash ; B 29 -27 733 745 ; +C 234 ; WX 820 ; N OE ; B 81 -19 913 737 ; +C 235 ; WX 299 ; N ordmasculine ; B 75 276 398 737 ; +C 241 ; WX 729 ; N ae ; B 46 -14 757 546 ; +C 245 ; WX 228 ; N dotlessi ; B 57 0 264 532 ; +C 248 ; WX 228 ; N lslash ; B 33 0 334 718 ; +C 249 ; WX 501 ; N oslash ; B 18 -29 575 560 ; +C 250 ; WX 774 ; N oe ; B 67 -14 801 546 ; +C 251 ; WX 501 ; N germandbls ; B 57 -14 539 731 ; +C -1 ; WX 501 ; N Zcaron ; B 20 0 604 936 ; +C -1 ; WX 456 ; N ccedilla ; B 65 -228 491 546 ; +C -1 ; WX 456 ; N ydieresis ; B 34 -214 535 729 ; +C -1 ; WX 456 ; N atilde ; B 45 -14 507 737 ; +C -1 ; WX 228 ; N icircumflex ; B 57 0 364 750 ; +C -1 ; WX 273 ; N threesuperior ; B 75 271 361 710 ; +C -1 ; WX 456 ; N ecircumflex ; B 58 -14 486 750 ; +C -1 ; WX 501 ; N thorn ; B 15 -208 529 718 ; +C -1 ; WX 456 ; N egrave ; B 58 -14 486 750 ; +C -1 ; WX 273 ; N twosuperior ; B 57 283 368 710 ; +C -1 ; WX 456 ; N eacute ; B 58 -14 514 750 ; +C -1 ; WX 501 ; N otilde ; B 67 -14 529 737 ; +C -1 ; WX 592 ; N Aacute ; B 16 0 615 936 ; +C -1 ; WX 501 ; N ocircumflex ; B 67 -14 527 750 ; +C -1 ; WX 456 ; N yacute ; B 34 -214 535 750 ; +C -1 ; WX 501 ; N udieresis ; B 80 -14 540 729 ; +C -1 ; WX 684 ; N threequarters ; B 82 -19 688 710 ; +C -1 ; WX 456 ; N acircumflex ; B 45 -14 478 750 ; +C -1 ; WX 592 ; N Eth ; B 51 0 637 718 ; +C -1 ; WX 456 ; N edieresis ; B 58 -14 487 729 ; +C -1 ; WX 501 ; N ugrave ; B 80 -14 540 750 ; +C -1 ; WX 820 ; N trademark ; B 146 306 909 718 ; +C -1 ; WX 501 ; N ograve ; B 67 -14 527 750 ; +C -1 ; WX 456 ; N scaron ; B 52 -14 504 750 ; +C -1 ; WX 228 ; N Idieresis ; B 52 0 405 915 ; +C -1 ; WX 501 ; N uacute ; B 80 -14 540 750 ; +C -1 ; WX 456 ; N agrave ; B 45 -14 478 750 ; +C -1 ; WX 501 ; N ntilde ; B 53 0 529 737 ; +C -1 ; WX 456 ; N aring ; B 45 -14 478 776 ; +C -1 ; WX 410 ; N zcaron ; B 16 0 481 750 ; +C -1 ; WX 228 ; N Icircumflex ; B 52 0 397 936 ; +C -1 ; WX 592 ; N Ntilde ; B 57 0 661 923 ; +C -1 ; WX 501 ; N ucircumflex ; B 80 -14 540 750 ; +C -1 ; WX 547 ; N Ecircumflex ; B 62 0 620 936 ; +C -1 ; WX 228 ; N Iacute ; B 52 0 433 936 ; +C -1 ; WX 592 ; N Ccedilla ; B 88 -228 647 737 ; +C -1 ; WX 638 ; N Odieresis ; B 88 -19 675 915 ; +C -1 ; WX 547 ; N Scaron ; B 66 -19 588 936 ; +C -1 ; WX 547 ; N Edieresis ; B 62 0 620 915 ; +C -1 ; WX 228 ; N Igrave ; B 52 0 301 936 ; +C -1 ; WX 456 ; N adieresis ; B 45 -14 487 729 ; +C -1 ; WX 638 ; N Ograve ; B 88 -19 675 936 ; +C -1 ; WX 547 ; N Egrave ; B 62 0 620 936 ; +C -1 ; WX 547 ; N Ydieresis ; B 137 0 661 915 ; +C -1 ; WX 604 ; N registered ; B 45 -19 684 737 ; +C -1 ; WX 638 ; N Otilde ; B 88 -19 675 923 ; +C -1 ; WX 684 ; N onequarter ; B 108 -19 661 710 ; +C -1 ; WX 592 ; N Ugrave ; B 96 -19 659 936 ; +C -1 ; WX 592 ; N Ucircumflex ; B 96 -19 659 936 ; +C -1 ; WX 547 ; N Thorn ; B 62 0 588 718 ; +C -1 ; WX 479 ; N divide ; B 67 -42 500 548 ; +C -1 ; WX 592 ; N Atilde ; B 16 0 608 923 ; +C -1 ; WX 592 ; N Uacute ; B 96 -19 659 936 ; +C -1 ; WX 638 ; N Ocircumflex ; B 88 -19 675 936 ; +C -1 ; WX 479 ; N logicalnot ; B 86 108 519 419 ; +C -1 ; WX 592 ; N Aring ; B 16 0 576 962 ; +C -1 ; WX 228 ; N idieresis ; B 57 0 373 729 ; +C -1 ; WX 228 ; N iacute ; B 57 0 400 750 ; +C -1 ; WX 456 ; N aacute ; B 45 -14 514 750 ; +C -1 ; WX 479 ; N plusminus ; B 33 0 512 506 ; +C -1 ; WX 479 ; N multiply ; B 47 1 520 505 ; +C -1 ; WX 592 ; N Udieresis ; B 96 -19 659 915 ; +C -1 ; WX 479 ; N minus ; B 67 197 500 309 ; +C -1 ; WX 273 ; N onesuperior ; B 121 283 318 710 ; +C -1 ; WX 547 ; N Eacute ; B 62 0 620 936 ; +C -1 ; WX 592 ; N Acircumflex ; B 16 0 579 936 ; +C -1 ; WX 604 ; N copyright ; B 46 -19 685 737 ; +C -1 ; WX 592 ; N Agrave ; B 16 0 576 936 ; +C -1 ; WX 501 ; N odieresis ; B 67 -14 527 729 ; +C -1 ; WX 501 ; N oacute ; B 67 -14 537 750 ; +C -1 ; WX 328 ; N degree ; B 143 426 383 712 ; +C -1 ; WX 228 ; N igrave ; B 57 0 268 750 ; +C -1 ; WX 501 ; N mu ; B 18 -207 540 532 ; +C -1 ; WX 638 ; N Oacute ; B 88 -19 675 936 ; +C -1 ; WX 501 ; N eth ; B 67 -14 549 737 ; +C -1 ; WX 592 ; N Adieresis ; B 16 0 588 915 ; +C -1 ; WX 547 ; N Yacute ; B 137 0 661 936 ; +C -1 ; WX 230 ; N brokenbar ; B 66 -19 289 737 ; +C -1 ; WX 684 ; N onehalf ; B 108 -19 704 710 ; +EndCharMetrics +StartKernData +StartKernPairs 209 + +KPX A y -30 +KPX A w -30 +KPX A v -40 +KPX A u -30 +KPX A Y -110 +KPX A W -60 +KPX A V -80 +KPX A U -50 +KPX A T -90 +KPX A Q -40 +KPX A O -40 +KPX A G -50 +KPX A C -40 + +KPX B U -10 +KPX B A -30 + +KPX D period -30 +KPX D comma -30 +KPX D Y -70 +KPX D W -40 +KPX D V -40 +KPX D A -40 + +KPX F period -100 +KPX F comma -100 +KPX F a -20 +KPX F A -80 + +KPX J u -20 +KPX J period -20 +KPX J comma -20 +KPX J A -20 + +KPX K y -40 +KPX K u -30 +KPX K o -35 +KPX K e -15 +KPX K O -30 + +KPX L y -30 +KPX L quoteright -140 +KPX L quotedblright -140 +KPX L Y -120 +KPX L W -80 +KPX L V -110 +KPX L T -90 + +KPX O period -40 +KPX O comma -40 +KPX O Y -70 +KPX O X -50 +KPX O W -50 +KPX O V -50 +KPX O T -40 +KPX O A -50 + +KPX P period -120 +KPX P o -40 +KPX P e -30 +KPX P comma -120 +KPX P a -30 +KPX P A -100 + +KPX Q period 20 +KPX Q comma 20 +KPX Q U -10 + +KPX R Y -50 +KPX R W -40 +KPX R V -50 +KPX R U -20 +KPX R T -20 +KPX R O -20 + +KPX T y -60 +KPX T w -60 +KPX T u -90 +KPX T semicolon -40 +KPX T r -80 +KPX T period -80 +KPX T o -80 +KPX T hyphen -120 +KPX T e -60 +KPX T comma -80 +KPX T colon -40 +KPX T a -80 +KPX T O -40 +KPX T A -90 + +KPX U period -30 +KPX U comma -30 +KPX U A -50 + +KPX V u -60 +KPX V semicolon -40 +KPX V period -120 +KPX V o -90 +KPX V hyphen -80 +KPX V e -50 +KPX V comma -120 +KPX V colon -40 +KPX V a -60 +KPX V O -50 +KPX V G -50 +KPX V A -80 + +KPX W y -20 +KPX W u -45 +KPX W semicolon -10 +KPX W period -80 +KPX W o -60 +KPX W hyphen -40 +KPX W e -35 +KPX W comma -80 +KPX W colon -10 +KPX W a -40 +KPX W O -20 +KPX W A -60 + +KPX Y u -100 +KPX Y semicolon -50 +KPX Y period -100 +KPX Y o -100 +KPX Y e -80 +KPX Y comma -100 +KPX Y colon -50 +KPX Y a -90 +KPX Y O -70 +KPX Y A -110 + +KPX a y -20 +KPX a w -15 +KPX a v -15 +KPX a g -10 + +KPX b y -20 +KPX b v -20 +KPX b u -20 +KPX b l -10 + +KPX c y -10 +KPX c l -20 +KPX c k -20 +KPX c h -10 + +KPX colon space -40 + +KPX comma space -40 +KPX comma quoteright -120 +KPX comma quotedblright -120 + +KPX d y -15 +KPX d w -15 +KPX d v -15 +KPX d d -10 + +KPX e y -15 +KPX e x -15 +KPX e w -15 +KPX e v -15 +KPX e period 20 +KPX e comma 10 + +KPX f quoteright 30 +KPX f quotedblright 30 +KPX f period -10 +KPX f o -20 +KPX f e -10 +KPX f comma -10 + +KPX g g -10 +KPX g e 10 + +KPX h y -20 + +KPX k o -15 + +KPX l y -15 +KPX l w -15 + +KPX m y -30 +KPX m u -20 + +KPX n y -20 +KPX n v -40 +KPX n u -10 + +KPX o y -20 +KPX o x -30 +KPX o w -15 +KPX o v -20 + +KPX p y -15 + +KPX period space -40 +KPX period quoteright -120 +KPX period quotedblright -120 + +KPX quotedblright space -80 + +KPX quoteleft quoteleft -46 + +KPX quoteright v -20 +KPX quoteright space -80 +KPX quoteright s -60 +KPX quoteright r -40 +KPX quoteright quoteright -46 +KPX quoteright l -20 +KPX quoteright d -80 + +KPX r y 10 +KPX r v 10 +KPX r t 20 +KPX r s -15 +KPX r q -20 +KPX r period -60 +KPX r o -20 +KPX r hyphen -20 +KPX r g -15 +KPX r d -20 +KPX r comma -60 +KPX r c -20 + +KPX s w -15 + +KPX semicolon space -40 + +KPX space quoteleft -60 +KPX space quotedblleft -80 +KPX space Y -120 +KPX space W -80 +KPX space V -80 +KPX space T -100 + +KPX v period -80 +KPX v o -30 +KPX v comma -80 +KPX v a -20 + +KPX w period -40 +KPX w o -20 +KPX w comma -40 + +KPX x e -10 + +KPX y period -80 +KPX y o -25 +KPX y e -10 +KPX y comma -80 +KPX y a -30 + +KPX z e 10 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 192 186 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 192 186 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 192 186 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 192 186 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 192 186 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 192 186 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 176 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 169 186 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 169 186 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 169 186 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 169 186 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 10 186 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 10 186 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 10 186 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 10 186 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 192 186 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 215 186 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 215 186 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 215 186 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 215 186 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 215 186 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 169 186 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 192 186 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 192 186 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 192 186 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 192 186 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 169 186 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 169 186 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 146 186 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 92 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 92 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 92 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 92 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 92 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 92 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 108 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 92 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 92 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 92 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 92 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -22 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -22 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -22 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -22 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 114 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 114 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 114 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 114 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 114 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 114 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 92 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 114 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 114 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 114 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 114 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 92 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 92 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 69 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-NrBdO+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-NrBdO+ new file mode 100755 index 0000000000000..12e78ce1d4d77 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-NrBdO+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 592 ; N Ccaron ; B 88 -19 665 930 ; +C -1 ; WX 456 ; N ccaron ; B 65 -14 524 750 ; +C -1 ; WX 592 ; N Dcaron ; B 62 0 637 930 ; +C -1 ; WX 613 ; N dcaron ; B 67 -14 753 790 ; +C -1 ; WX 547 ; N Ecaron ; B 62 0 620 930 ; +C -1 ; WX 456 ; N ecaron ; B 58 -14 503 750 ; +C -1 ; WX 501 ; N Lcaron ; B 62 0 501 790 ; +C -1 ; WX 501 ; N Lacute ; B 62 0 575 930 ; +C -1 ; WX 340 ; N lcaron ; B 57 0 473 790 ; +C -1 ; WX 228 ; N lacute ; B 57 0 462 930 ; +C -1 ; WX 592 ; N Ncaron ; B 57 0 661 930 ; +C -1 ; WX 501 ; N ncaron ; B 53 0 526 750 ; +C -1 ; WX 592 ; N Rcaron ; B 62 0 638 930 ; +C -1 ; WX 592 ; N Racute ; B 62 0 664 930 ; +C -1 ; WX 319 ; N rcaron ; B 52 0 435 750 ; +C -1 ; WX 319 ; N racute ; B 52 0 469 750 ; +C -1 ; WX 501 ; N Tcaron ; B 114 0 615 930 ; +C -1 ; WX 385 ; N tcaron ; B 82 -6 522 718 ; +C -1 ; WX 592 ; N Uring ; B 96 -19 659 930 ; +C -1 ; WX 501 ; N uring ; B 80 -14 540 776 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 253 180 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 112 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 197 180 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 456 72 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 175 180 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 91 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 180 72 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 152 180 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 176 72 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 39 180 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 197 180 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 114 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 197 180 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 241 180 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 23 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 46 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 152 180 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 225 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 191 154 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 114 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-NrO b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-NrO new file mode 100755 index 0000000000000..f757319a4c3db --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-NrO @@ -0,0 +1,612 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All rights reserved. +Comment Creation Date: Thu Mar 15 11:25:48 1990 +Comment UniqueID 28389 +Comment VMusage 7572 42473 +FontName Helvetica-Narrow-Oblique +FullName Helvetica Narrow Oblique +FamilyName Helvetica +Weight Medium +ItalicAngle -12 +IsFixedPitch false +FontBBox -139 -225 915 931 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.006 +Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All rights reserved.Helvetica is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 718 +XHeight 523 +Ascender 718 +Descender -207 +StartCharMetrics 228 +C 32 ; WX 228 ; N space ; B 0 0 0 0 ; +C 33 ; WX 228 ; N exclam ; B 74 0 278 718 ; +C 34 ; WX 291 ; N quotedbl ; B 138 463 359 718 ; +C 35 ; WX 456 ; N numbersign ; B 60 0 517 688 ; +C 36 ; WX 456 ; N dollar ; B 57 -115 506 775 ; +C 37 ; WX 729 ; N percent ; B 120 -19 729 703 ; +C 38 ; WX 547 ; N ampersand ; B 63 -15 530 718 ; +C 39 ; WX 182 ; N quoteright ; B 124 463 254 718 ; +C 40 ; WX 273 ; N parenleft ; B 89 -207 372 733 ; +C 41 ; WX 273 ; N parenright ; B -7 -207 276 733 ; +C 42 ; WX 319 ; N asterisk ; B 135 431 389 718 ; +C 43 ; WX 479 ; N plus ; B 70 0 497 505 ; +C 44 ; WX 228 ; N comma ; B 46 -147 175 106 ; +C 45 ; WX 273 ; N hyphen ; B 77 232 293 322 ; +C 46 ; WX 228 ; N period ; B 71 0 175 106 ; +C 47 ; WX 228 ; N slash ; B -17 -19 370 737 ; +C 48 ; WX 456 ; N zero ; B 77 -19 499 703 ; +C 49 ; WX 456 ; N one ; B 170 0 417 703 ; +C 50 ; WX 456 ; N two ; B 21 0 506 703 ; +C 51 ; WX 456 ; N three ; B 61 -19 500 703 ; +C 52 ; WX 456 ; N four ; B 50 0 472 703 ; +C 53 ; WX 456 ; N five ; B 55 -19 509 688 ; +C 54 ; WX 456 ; N six ; B 74 -19 504 703 ; +C 55 ; WX 456 ; N seven ; B 112 0 549 688 ; +C 56 ; WX 456 ; N eight ; B 60 -19 497 703 ; +C 57 ; WX 456 ; N nine ; B 67 -19 499 703 ; +C 58 ; WX 228 ; N colon ; B 71 0 247 516 ; +C 59 ; WX 228 ; N semicolon ; B 46 -147 247 516 ; +C 60 ; WX 479 ; N less ; B 77 11 526 495 ; +C 61 ; WX 479 ; N equal ; B 52 115 515 390 ; +C 62 ; WX 479 ; N greater ; B 41 11 490 495 ; +C 63 ; WX 456 ; N question ; B 132 0 500 727 ; +C 64 ; WX 832 ; N at ; B 176 -19 791 737 ; +C 65 ; WX 547 ; N A ; B 11 0 536 718 ; +C 66 ; WX 547 ; N B ; B 61 0 583 718 ; +C 67 ; WX 592 ; N C ; B 88 -19 640 737 ; +C 68 ; WX 592 ; N D ; B 66 0 626 718 ; +C 69 ; WX 547 ; N E ; B 71 0 625 718 ; +C 70 ; WX 501 ; N F ; B 71 0 603 718 ; +C 71 ; WX 638 ; N G ; B 91 -19 655 737 ; +C 72 ; WX 592 ; N H ; B 63 0 655 718 ; +C 73 ; WX 228 ; N I ; B 75 0 279 718 ; +C 74 ; WX 410 ; N J ; B 39 -19 476 718 ; +C 75 ; WX 547 ; N K ; B 62 0 662 718 ; +C 76 ; WX 456 ; N L ; B 62 0 455 718 ; +C 77 ; WX 683 ; N M ; B 60 0 749 718 ; +C 78 ; WX 592 ; N N ; B 62 0 655 718 ; +C 79 ; WX 638 ; N O ; B 86 -19 677 737 ; +C 80 ; WX 547 ; N P ; B 71 0 604 718 ; +C 81 ; WX 638 ; N Q ; B 86 -56 677 737 ; +C 82 ; WX 592 ; N R ; B 72 0 634 718 ; +C 83 ; WX 547 ; N S ; B 74 -19 584 737 ; +C 84 ; WX 501 ; N T ; B 122 0 615 718 ; +C 85 ; WX 592 ; N U ; B 101 -19 653 718 ; +C 86 ; WX 547 ; N V ; B 142 0 656 718 ; +C 87 ; WX 774 ; N W ; B 138 0 886 718 ; +C 88 ; WX 547 ; N X ; B 16 0 647 718 ; +C 89 ; WX 547 ; N Y ; B 137 0 661 718 ; +C 90 ; WX 501 ; N Z ; B 19 0 607 718 ; +C 91 ; WX 228 ; N bracketleft ; B 17 -196 331 722 ; +C 92 ; WX 228 ; N backslash ; B 115 -19 239 737 ; +C 93 ; WX 228 ; N bracketright ; B -11 -196 302 722 ; +C 94 ; WX 385 ; N asciicircum ; B 35 264 442 688 ; +C 95 ; WX 456 ; N underscore ; B -22 -125 443 -75 ; +C 96 ; WX 182 ; N quoteleft ; B 135 470 265 725 ; +C 97 ; WX 456 ; N a ; B 50 -15 458 538 ; +C 98 ; WX 456 ; N b ; B 48 -15 479 718 ; +C 99 ; WX 410 ; N c ; B 61 -15 454 538 ; +C 100 ; WX 456 ; N d ; B 69 -15 534 718 ; +C 101 ; WX 456 ; N e ; B 69 -15 474 538 ; +C 102 ; WX 228 ; N f ; B 71 0 341 728 ; L i fi ; L l fl ; +C 103 ; WX 456 ; N g ; B 34 -220 500 538 ; +C 104 ; WX 456 ; N h ; B 53 0 470 718 ; +C 105 ; WX 182 ; N i ; B 55 0 252 718 ; +C 106 ; WX 182 ; N j ; B -49 -210 252 718 ; +C 107 ; WX 410 ; N k ; B 55 0 492 718 ; +C 108 ; WX 182 ; N l ; B 55 0 252 718 ; +C 109 ; WX 683 ; N m ; B 53 0 699 538 ; +C 110 ; WX 456 ; N n ; B 53 0 470 538 ; +C 111 ; WX 456 ; N o ; B 68 -14 479 538 ; +C 112 ; WX 456 ; N p ; B 11 -207 479 538 ; +C 113 ; WX 456 ; N q ; B 69 -207 496 538 ; +C 114 ; WX 273 ; N r ; B 63 0 365 538 ; +C 115 ; WX 410 ; N s ; B 52 -15 434 538 ; +C 116 ; WX 228 ; N t ; B 84 -7 302 669 ; +C 117 ; WX 456 ; N u ; B 77 -15 492 523 ; +C 118 ; WX 410 ; N v ; B 98 0 495 523 ; +C 119 ; WX 592 ; N w ; B 103 0 673 523 ; +C 120 ; WX 410 ; N x ; B 9 0 487 523 ; +C 121 ; WX 410 ; N y ; B 12 -214 492 523 ; +C 122 ; WX 410 ; N z ; B 25 0 468 523 ; +C 123 ; WX 274 ; N braceleft ; B 75 -196 365 722 ; +C 124 ; WX 213 ; N bar ; B 74 -19 265 737 ; +C 125 ; WX 274 ; N braceright ; B 0 -196 291 722 ; +C 126 ; WX 479 ; N asciitilde ; B 91 180 476 326 ; +C 161 ; WX 273 ; N exclamdown ; B 63 -195 267 523 ; +C 162 ; WX 456 ; N cent ; B 78 -115 479 623 ; +C 163 ; WX 456 ; N sterling ; B 40 -16 520 718 ; +C 164 ; WX 137 ; N fraction ; B -139 -19 396 703 ; +C 165 ; WX 456 ; N yen ; B 67 0 573 688 ; +C 166 ; WX 456 ; N florin ; B -43 -207 537 737 ; +C 167 ; WX 456 ; N section ; B 63 -191 479 737 ; +C 168 ; WX 456 ; N currency ; B 49 99 530 603 ; +C 169 ; WX 157 ; N quotesingle ; B 129 463 233 718 ; +C 170 ; WX 273 ; N quotedblleft ; B 113 470 378 725 ; +C 171 ; WX 456 ; N guillemotleft ; B 120 108 454 446 ; +C 172 ; WX 273 ; N guilsinglleft ; B 112 108 279 446 ; +C 173 ; WX 273 ; N guilsinglright ; B 91 108 257 446 ; +C 174 ; WX 410 ; N fi ; B 71 0 481 728 ; +C 175 ; WX 410 ; N fl ; B 71 0 479 728 ; +C 177 ; WX 456 ; N endash ; B 42 240 510 313 ; +C 178 ; WX 456 ; N dagger ; B 110 -159 510 718 ; +C 179 ; WX 456 ; N daggerdbl ; B 43 -159 511 718 ; +C 180 ; WX 228 ; N periodcentered ; B 106 190 211 315 ; +C 182 ; WX 440 ; N paragraph ; B 103 -173 533 718 ; +C 183 ; WX 287 ; N bullet ; B 74 202 339 517 ; +C 184 ; WX 182 ; N quotesinglbase ; B 17 -149 147 106 ; +C 185 ; WX 273 ; N quotedblbase ; B -5 -149 260 106 ; +C 186 ; WX 273 ; N quotedblright ; B 102 463 367 718 ; +C 187 ; WX 456 ; N guillemotright ; B 98 108 433 446 ; +C 188 ; WX 820 ; N ellipsis ; B 94 0 744 106 ; +C 189 ; WX 820 ; N perthousand ; B 72 -19 844 703 ; +C 191 ; WX 501 ; N questiondown ; B 70 -201 438 525 ; +C 193 ; WX 273 ; N grave ; B 139 593 276 734 ; +C 194 ; WX 273 ; N acute ; B 203 593 390 734 ; +C 195 ; WX 273 ; N circumflex ; B 121 593 359 734 ; +C 196 ; WX 273 ; N tilde ; B 102 606 402 722 ; +C 197 ; WX 273 ; N macron ; B 117 627 384 684 ; +C 198 ; WX 273 ; N breve ; B 137 595 391 731 ; +C 199 ; WX 273 ; N dotaccent ; B 204 604 297 706 ; +C 200 ; WX 273 ; N dieresis ; B 138 604 363 706 ; +C 202 ; WX 273 ; N ring ; B 175 572 330 756 ; +C 203 ; WX 273 ; N cedilla ; B 2 -225 191 0 ; +C 205 ; WX 273 ; N hungarumlaut ; B 129 593 463 734 ; +C 206 ; WX 273 ; N ogonek ; B 35 -225 204 0 ; +C 207 ; WX 273 ; N caron ; B 145 593 384 734 ; +C 208 ; WX 820 ; N emdash ; B 42 240 875 313 ; +C 225 ; WX 820 ; N AE ; B 7 0 899 718 ; +C 227 ; WX 303 ; N ordfeminine ; B 82 304 368 737 ; +C 232 ; WX 456 ; N Lslash ; B 34 0 455 718 ; +C 233 ; WX 638 ; N Oslash ; B 35 -19 730 737 ; +C 234 ; WX 820 ; N OE ; B 80 -19 915 737 ; +C 235 ; WX 299 ; N ordmasculine ; B 82 304 384 737 ; +C 241 ; WX 729 ; N ae ; B 50 -15 746 538 ; +C 245 ; WX 228 ; N dotlessi ; B 78 0 241 523 ; +C 248 ; WX 182 ; N lslash ; B 34 0 284 718 ; +C 249 ; WX 501 ; N oslash ; B 24 -22 531 545 ; +C 250 ; WX 774 ; N oe ; B 68 -15 791 538 ; +C 251 ; WX 501 ; N germandbls ; B 55 -15 539 728 ; +C -1 ; WX 501 ; N Zcaron ; B 19 0 607 929 ; +C -1 ; WX 410 ; N ccedilla ; B 61 -225 454 538 ; +C -1 ; WX 410 ; N ydieresis ; B 12 -214 492 706 ; +C -1 ; WX 456 ; N atilde ; B 50 -15 486 722 ; +C -1 ; WX 228 ; N icircumflex ; B 78 0 337 734 ; +C -1 ; WX 273 ; N threesuperior ; B 74 270 358 703 ; +C -1 ; WX 456 ; N ecircumflex ; B 69 -15 474 734 ; +C -1 ; WX 456 ; N thorn ; B 11 -207 479 718 ; +C -1 ; WX 456 ; N egrave ; B 69 -15 474 734 ; +C -1 ; WX 273 ; N twosuperior ; B 52 281 368 703 ; +C -1 ; WX 456 ; N eacute ; B 69 -15 481 734 ; +C -1 ; WX 456 ; N otilde ; B 68 -14 494 722 ; +C -1 ; WX 547 ; N Aacute ; B 11 0 560 929 ; +C -1 ; WX 456 ; N ocircumflex ; B 68 -14 479 734 ; +C -1 ; WX 410 ; N yacute ; B 12 -214 492 734 ; +C -1 ; WX 456 ; N udieresis ; B 77 -15 492 706 ; +C -1 ; WX 684 ; N threequarters ; B 106 -19 706 703 ; +C -1 ; WX 456 ; N acircumflex ; B 50 -15 458 734 ; +C -1 ; WX 592 ; N Eth ; B 57 0 626 718 ; +C -1 ; WX 456 ; N edieresis ; B 69 -15 474 706 ; +C -1 ; WX 456 ; N ugrave ; B 77 -15 492 734 ; +C -1 ; WX 820 ; N trademark ; B 152 306 866 718 ; +C -1 ; WX 456 ; N ograve ; B 68 -14 479 734 ; +C -1 ; WX 410 ; N scaron ; B 52 -15 453 734 ; +C -1 ; WX 228 ; N Idieresis ; B 75 0 375 901 ; +C -1 ; WX 456 ; N uacute ; B 77 -15 492 734 ; +C -1 ; WX 456 ; N agrave ; B 50 -15 458 734 ; +C -1 ; WX 456 ; N ntilde ; B 53 0 486 722 ; +C -1 ; WX 456 ; N aring ; B 50 -15 458 756 ; +C -1 ; WX 410 ; N zcaron ; B 25 0 468 734 ; +C -1 ; WX 228 ; N Icircumflex ; B 75 0 371 929 ; +C -1 ; WX 592 ; N Ntilde ; B 62 0 655 917 ; +C -1 ; WX 456 ; N ucircumflex ; B 77 -15 492 734 ; +C -1 ; WX 547 ; N Ecircumflex ; B 71 0 625 929 ; +C -1 ; WX 228 ; N Iacute ; B 75 0 401 929 ; +C -1 ; WX 592 ; N Ccedilla ; B 88 -225 640 737 ; +C -1 ; WX 638 ; N Odieresis ; B 86 -19 677 901 ; +C -1 ; WX 547 ; N Scaron ; B 74 -19 584 929 ; +C -1 ; WX 547 ; N Edieresis ; B 71 0 625 901 ; +C -1 ; WX 228 ; N Igrave ; B 75 0 288 929 ; +C -1 ; WX 456 ; N adieresis ; B 50 -15 458 706 ; +C -1 ; WX 638 ; N Ograve ; B 86 -19 677 929 ; +C -1 ; WX 547 ; N Egrave ; B 71 0 625 929 ; +C -1 ; WX 547 ; N Ydieresis ; B 137 0 661 901 ; +C -1 ; WX 604 ; N registered ; B 44 -19 687 737 ; +C -1 ; WX 638 ; N Otilde ; B 86 -19 677 917 ; +C -1 ; WX 684 ; N onequarter ; B 123 -19 658 703 ; +C -1 ; WX 592 ; N Ugrave ; B 101 -19 653 929 ; +C -1 ; WX 592 ; N Ucircumflex ; B 101 -19 653 929 ; +C -1 ; WX 547 ; N Thorn ; B 71 0 584 718 ; +C -1 ; WX 479 ; N divide ; B 70 -19 497 524 ; +C -1 ; WX 547 ; N Atilde ; B 11 0 573 917 ; +C -1 ; WX 592 ; N Uacute ; B 101 -19 653 929 ; +C -1 ; WX 638 ; N Ocircumflex ; B 86 -19 677 929 ; +C -1 ; WX 479 ; N logicalnot ; B 87 108 515 390 ; +C -1 ; WX 547 ; N Aring ; B 11 0 536 931 ; +C -1 ; WX 228 ; N idieresis ; B 78 0 341 706 ; +C -1 ; WX 228 ; N iacute ; B 78 0 367 734 ; +C -1 ; WX 456 ; N aacute ; B 50 -15 481 734 ; +C -1 ; WX 479 ; N plusminus ; B 32 0 507 506 ; +C -1 ; WX 479 ; N multiply ; B 41 0 526 506 ; +C -1 ; WX 592 ; N Udieresis ; B 101 -19 653 901 ; +C -1 ; WX 479 ; N minus ; B 70 216 497 289 ; +C -1 ; WX 273 ; N onesuperior ; B 136 281 305 703 ; +C -1 ; WX 547 ; N Eacute ; B 71 0 625 929 ; +C -1 ; WX 547 ; N Acircumflex ; B 11 0 536 929 ; +C -1 ; WX 604 ; N copyright ; B 44 -19 687 737 ; +C -1 ; WX 547 ; N Agrave ; B 11 0 536 929 ; +C -1 ; WX 456 ; N odieresis ; B 68 -14 479 706 ; +C -1 ; WX 456 ; N oacute ; B 68 -14 481 734 ; +C -1 ; WX 328 ; N degree ; B 138 411 384 703 ; +C -1 ; WX 228 ; N igrave ; B 78 0 254 734 ; +C -1 ; WX 456 ; N mu ; B 20 -207 492 523 ; +C -1 ; WX 638 ; N Oacute ; B 86 -19 677 929 ; +C -1 ; WX 456 ; N eth ; B 67 -15 506 737 ; +C -1 ; WX 547 ; N Adieresis ; B 11 0 536 901 ; +C -1 ; WX 547 ; N Yacute ; B 137 0 661 929 ; +C -1 ; WX 213 ; N brokenbar ; B 74 -19 265 737 ; +C -1 ; WX 684 ; N onehalf ; B 93 -19 688 703 ; +EndCharMetrics +StartKernData +StartKernPairs 250 + +KPX A y -40 +KPX A w -40 +KPX A v -40 +KPX A u -30 +KPX A Y -100 +KPX A W -50 +KPX A V -70 +KPX A U -50 +KPX A T -120 +KPX A Q -30 +KPX A O -30 +KPX A G -30 +KPX A C -30 + +KPX B period -20 +KPX B comma -20 +KPX B U -10 + +KPX C period -30 +KPX C comma -30 + +KPX D period -70 +KPX D comma -70 +KPX D Y -90 +KPX D W -40 +KPX D V -70 +KPX D A -40 + +KPX F r -45 +KPX F period -150 +KPX F o -30 +KPX F e -30 +KPX F comma -150 +KPX F a -50 +KPX F A -80 + +KPX J u -20 +KPX J period -30 +KPX J comma -30 +KPX J a -20 +KPX J A -20 + +KPX K y -50 +KPX K u -30 +KPX K o -40 +KPX K e -40 +KPX K O -50 + +KPX L y -30 +KPX L quoteright -160 +KPX L quotedblright -140 +KPX L Y -140 +KPX L W -70 +KPX L V -110 +KPX L T -110 + +KPX O period -40 +KPX O comma -40 +KPX O Y -70 +KPX O X -60 +KPX O W -30 +KPX O V -50 +KPX O T -40 +KPX O A -20 + +KPX P period -180 +KPX P o -50 +KPX P e -50 +KPX P comma -180 +KPX P a -40 +KPX P A -120 + +KPX Q U -10 + +KPX R Y -50 +KPX R W -30 +KPX R V -50 +KPX R U -40 +KPX R T -30 +KPX R O -20 + +KPX S period -20 +KPX S comma -20 + +KPX T y -120 +KPX T w -120 +KPX T u -120 +KPX T semicolon -20 +KPX T r -120 +KPX T period -120 +KPX T o -120 +KPX T hyphen -140 +KPX T e -120 +KPX T comma -120 +KPX T colon -20 +KPX T a -120 +KPX T O -40 +KPX T A -120 + +KPX U period -40 +KPX U comma -40 +KPX U A -40 + +KPX V u -70 +KPX V semicolon -40 +KPX V period -125 +KPX V o -80 +KPX V hyphen -80 +KPX V e -80 +KPX V comma -125 +KPX V colon -40 +KPX V a -70 +KPX V O -40 +KPX V G -40 +KPX V A -80 + +KPX W y -20 +KPX W u -30 +KPX W period -80 +KPX W o -30 +KPX W hyphen -40 +KPX W e -30 +KPX W comma -80 +KPX W a -40 +KPX W O -20 +KPX W A -50 + +KPX Y u -110 +KPX Y semicolon -60 +KPX Y period -140 +KPX Y o -140 +KPX Y i -20 +KPX Y hyphen -140 +KPX Y e -140 +KPX Y comma -140 +KPX Y colon -60 +KPX Y a -140 +KPX Y O -85 +KPX Y A -110 + +KPX a y -30 +KPX a w -20 +KPX a v -20 + +KPX b y -20 +KPX b v -20 +KPX b u -20 +KPX b period -40 +KPX b l -20 +KPX b comma -40 +KPX b b -10 + +KPX c k -20 +KPX c comma -15 + +KPX colon space -50 + +KPX comma quoteright -100 +KPX comma quotedblright -100 + +KPX e y -20 +KPX e x -30 +KPX e w -20 +KPX e v -30 +KPX e period -15 +KPX e comma -15 + +KPX f quoteright 50 +KPX f quotedblright 60 +KPX f period -30 +KPX f o -30 +KPX f e -30 +KPX f dotlessi -28 +KPX f comma -30 +KPX f a -30 + +KPX g r -10 + +KPX h y -30 + +KPX k o -20 +KPX k e -20 + +KPX m y -15 +KPX m u -10 + +KPX n y -15 +KPX n v -20 +KPX n u -10 + +KPX o y -30 +KPX o x -30 +KPX o w -15 +KPX o v -15 +KPX o period -40 +KPX o comma -40 + +KPX oslash z -55 +KPX oslash y -70 +KPX oslash x -85 +KPX oslash w -70 +KPX oslash v -70 +KPX oslash u -55 +KPX oslash t -55 +KPX oslash s -55 +KPX oslash r -55 +KPX oslash q -55 +KPX oslash period -95 +KPX oslash p -55 +KPX oslash o -55 +KPX oslash n -55 +KPX oslash m -55 +KPX oslash l -55 +KPX oslash k -55 +KPX oslash j -55 +KPX oslash i -55 +KPX oslash h -55 +KPX oslash g -55 +KPX oslash f -55 +KPX oslash e -55 +KPX oslash d -55 +KPX oslash comma -95 +KPX oslash c -55 +KPX oslash b -55 +KPX oslash a -55 + +KPX p y -30 +KPX p period -35 +KPX p comma -35 + +KPX period space -60 +KPX period quoteright -100 +KPX period quotedblright -100 + +KPX quotedblright space -40 + +KPX quoteleft quoteleft -57 + +KPX quoteright space -70 +KPX quoteright s -50 +KPX quoteright r -50 +KPX quoteright quoteright -57 +KPX quoteright d -50 + +KPX r y 30 +KPX r v 30 +KPX r u 15 +KPX r t 40 +KPX r semicolon 30 +KPX r period -50 +KPX r p 30 +KPX r n 25 +KPX r m 25 +KPX r l 15 +KPX r k 15 +KPX r i 15 +KPX r comma -50 +KPX r colon 30 +KPX r a -10 + +KPX s w -30 +KPX s period -15 +KPX s comma -15 + +KPX semicolon space -50 + +KPX space quoteleft -60 +KPX space quotedblleft -30 +KPX space Y -90 +KPX space W -40 +KPX space V -50 +KPX space T -50 + +KPX v period -80 +KPX v o -25 +KPX v e -25 +KPX v comma -80 +KPX v a -25 + +KPX w period -60 +KPX w o -10 +KPX w e -10 +KPX w comma -60 +KPX w a -15 + +KPX x e -30 + +KPX y period -100 +KPX y o -20 +KPX y e -20 +KPX y comma -100 +KPX y a -20 + +KPX z o -15 +KPX z e -15 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 171 195 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 171 195 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 171 195 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 171 195 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 167 175 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 171 195 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 160 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 171 195 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 171 195 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 171 195 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 171 195 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 12 195 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 12 195 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 12 195 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 12 195 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 202 195 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 217 195 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 217 195 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 217 195 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 217 195 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 217 195 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 171 195 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 194 195 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 194 195 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 194 195 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 194 195 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 171 195 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 171 195 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 148 195 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 92 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 92 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 92 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 92 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 92 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 84 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 69 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 92 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 92 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 92 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 92 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -22 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -22 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -22 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -22 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 84 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 92 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 92 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 92 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 92 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 92 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 69 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 92 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 92 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 92 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 92 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 69 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 69 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 69 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-NrO+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-NrO+ new file mode 100755 index 0000000000000..3695c9b083ab7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-NrO+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 592 ; N Ccaron ; B 88 -19 640 925 ; +C -1 ; WX 410 ; N ccaron ; B 61 -15 472 734 ; +C -1 ; WX 592 ; N Dcaron ; B 66 0 626 925 ; +C -1 ; WX 547 ; N dcaron ; B 69 -15 677 790 ; +C -1 ; WX 547 ; N Ecaron ; B 71 0 625 925 ; +C -1 ; WX 456 ; N ecaron ; B 69 -15 475 734 ; +C -1 ; WX 456 ; N Lcaron ; B 62 0 455 790 ; +C -1 ; WX 456 ; N Lacute ; B 62 0 521 925 ; +C -1 ; WX 273 ; N lcaron ; B 55 0 395 790 ; +C -1 ; WX 182 ; N lacute ; B 55 0 404 925 ; +C -1 ; WX 592 ; N Ncaron ; B 62 0 655 925 ; +C -1 ; WX 456 ; N ncaron ; B 53 0 475 734 ; +C -1 ; WX 592 ; N Rcaron ; B 72 0 634 925 ; +C -1 ; WX 592 ; N Racute ; B 72 0 634 925 ; +C -1 ; WX 273 ; N rcaron ; B 63 0 384 734 ; +C -1 ; WX 273 ; N racute ; B 63 0 409 734 ; +C -1 ; WX 501 ; N Tcaron ; B 122 0 615 925 ; +C -1 ; WX 319 ; N tcaron ; B 84 -7 445 718 ; +C -1 ; WX 592 ; N Uring ; B 101 -19 653 925 ; +C -1 ; WX 456 ; N uring ; B 77 -15 492 756 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 254 191 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 88 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 199 191 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 423 72 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 177 191 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 91 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 168 72 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 131 191 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 141 72 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 14 191 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 199 191 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 91 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 199 191 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 235 191 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 19 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 154 191 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 191 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 194 169 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 91 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-O b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-O new file mode 100755 index 0000000000000..3d69eb7c8e03f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-O @@ -0,0 +1,612 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All rights reserved. +Comment Creation Date: Thu Mar 15 10:24:18 1990 +Comment UniqueID 28362 +Comment VMusage 7572 42473 +FontName Helvetica-Oblique +FullName Helvetica Oblique +FamilyName Helvetica +Weight Medium +ItalicAngle -12 +IsFixedPitch false +FontBBox -170 -225 1116 931 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.006 +Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All rights reserved.Helvetica is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 718 +XHeight 523 +Ascender 718 +Descender -207 +StartCharMetrics 228 +C 32 ; WX 278 ; N space ; B 0 0 0 0 ; +C 33 ; WX 278 ; N exclam ; B 90 0 340 718 ; +C 34 ; WX 355 ; N quotedbl ; B 168 463 438 718 ; +C 35 ; WX 556 ; N numbersign ; B 73 0 631 688 ; +C 36 ; WX 556 ; N dollar ; B 69 -115 617 775 ; +C 37 ; WX 889 ; N percent ; B 147 -19 889 703 ; +C 38 ; WX 667 ; N ampersand ; B 77 -15 647 718 ; +C 39 ; WX 222 ; N quoteright ; B 151 463 310 718 ; +C 40 ; WX 333 ; N parenleft ; B 108 -207 454 733 ; +C 41 ; WX 333 ; N parenright ; B -9 -207 337 733 ; +C 42 ; WX 389 ; N asterisk ; B 165 431 475 718 ; +C 43 ; WX 584 ; N plus ; B 85 0 606 505 ; +C 44 ; WX 278 ; N comma ; B 56 -147 214 106 ; +C 45 ; WX 333 ; N hyphen ; B 93 232 357 322 ; +C 46 ; WX 278 ; N period ; B 87 0 214 106 ; +C 47 ; WX 278 ; N slash ; B -21 -19 452 737 ; +C 48 ; WX 556 ; N zero ; B 93 -19 608 703 ; +C 49 ; WX 556 ; N one ; B 207 0 508 703 ; +C 50 ; WX 556 ; N two ; B 26 0 617 703 ; +C 51 ; WX 556 ; N three ; B 75 -19 610 703 ; +C 52 ; WX 556 ; N four ; B 61 0 576 703 ; +C 53 ; WX 556 ; N five ; B 68 -19 621 688 ; +C 54 ; WX 556 ; N six ; B 91 -19 615 703 ; +C 55 ; WX 556 ; N seven ; B 137 0 669 688 ; +C 56 ; WX 556 ; N eight ; B 74 -19 607 703 ; +C 57 ; WX 556 ; N nine ; B 82 -19 609 703 ; +C 58 ; WX 278 ; N colon ; B 87 0 301 516 ; +C 59 ; WX 278 ; N semicolon ; B 56 -147 301 516 ; +C 60 ; WX 584 ; N less ; B 94 11 641 495 ; +C 61 ; WX 584 ; N equal ; B 63 115 628 390 ; +C 62 ; WX 584 ; N greater ; B 50 11 597 495 ; +C 63 ; WX 556 ; N question ; B 161 0 610 727 ; +C 64 ; WX 1015 ; N at ; B 215 -19 965 737 ; +C 65 ; WX 667 ; N A ; B 14 0 654 718 ; +C 66 ; WX 667 ; N B ; B 74 0 712 718 ; +C 67 ; WX 722 ; N C ; B 108 -19 782 737 ; +C 68 ; WX 722 ; N D ; B 81 0 764 718 ; +C 69 ; WX 667 ; N E ; B 86 0 762 718 ; +C 70 ; WX 611 ; N F ; B 86 0 736 718 ; +C 71 ; WX 778 ; N G ; B 111 -19 799 737 ; +C 72 ; WX 722 ; N H ; B 77 0 799 718 ; +C 73 ; WX 278 ; N I ; B 91 0 341 718 ; +C 74 ; WX 500 ; N J ; B 47 -19 581 718 ; +C 75 ; WX 667 ; N K ; B 76 0 808 718 ; +C 76 ; WX 556 ; N L ; B 76 0 555 718 ; +C 77 ; WX 833 ; N M ; B 73 0 914 718 ; +C 78 ; WX 722 ; N N ; B 76 0 799 718 ; +C 79 ; WX 778 ; N O ; B 105 -19 826 737 ; +C 80 ; WX 667 ; N P ; B 86 0 737 718 ; +C 81 ; WX 778 ; N Q ; B 105 -56 826 737 ; +C 82 ; WX 722 ; N R ; B 88 0 773 718 ; +C 83 ; WX 667 ; N S ; B 90 -19 713 737 ; +C 84 ; WX 611 ; N T ; B 148 0 750 718 ; +C 85 ; WX 722 ; N U ; B 123 -19 797 718 ; +C 86 ; WX 667 ; N V ; B 173 0 800 718 ; +C 87 ; WX 944 ; N W ; B 169 0 1081 718 ; +C 88 ; WX 667 ; N X ; B 19 0 790 718 ; +C 89 ; WX 667 ; N Y ; B 167 0 806 718 ; +C 90 ; WX 611 ; N Z ; B 23 0 741 718 ; +C 91 ; WX 278 ; N bracketleft ; B 21 -196 403 722 ; +C 92 ; WX 278 ; N backslash ; B 140 -19 291 737 ; +C 93 ; WX 278 ; N bracketright ; B -14 -196 368 722 ; +C 94 ; WX 469 ; N asciicircum ; B 42 264 539 688 ; +C 95 ; WX 556 ; N underscore ; B -27 -125 540 -75 ; +C 96 ; WX 222 ; N quoteleft ; B 165 470 323 725 ; +C 97 ; WX 556 ; N a ; B 61 -15 559 538 ; +C 98 ; WX 556 ; N b ; B 58 -15 584 718 ; +C 99 ; WX 500 ; N c ; B 74 -15 553 538 ; +C 100 ; WX 556 ; N d ; B 84 -15 652 718 ; +C 101 ; WX 556 ; N e ; B 84 -15 578 538 ; +C 102 ; WX 278 ; N f ; B 86 0 416 728 ; L i fi ; L l fl ; +C 103 ; WX 556 ; N g ; B 42 -220 610 538 ; +C 104 ; WX 556 ; N h ; B 65 0 573 718 ; +C 105 ; WX 222 ; N i ; B 67 0 308 718 ; +C 106 ; WX 222 ; N j ; B -60 -210 308 718 ; +C 107 ; WX 500 ; N k ; B 67 0 600 718 ; +C 108 ; WX 222 ; N l ; B 67 0 308 718 ; +C 109 ; WX 833 ; N m ; B 65 0 852 538 ; +C 110 ; WX 556 ; N n ; B 65 0 573 538 ; +C 111 ; WX 556 ; N o ; B 83 -14 585 538 ; +C 112 ; WX 556 ; N p ; B 14 -207 584 538 ; +C 113 ; WX 556 ; N q ; B 84 -207 605 538 ; +C 114 ; WX 333 ; N r ; B 77 0 446 538 ; +C 115 ; WX 500 ; N s ; B 63 -15 529 538 ; +C 116 ; WX 278 ; N t ; B 102 -7 368 669 ; +C 117 ; WX 556 ; N u ; B 94 -15 600 523 ; +C 118 ; WX 500 ; N v ; B 119 0 603 523 ; +C 119 ; WX 722 ; N w ; B 125 0 820 523 ; +C 120 ; WX 500 ; N x ; B 11 0 594 523 ; +C 121 ; WX 500 ; N y ; B 15 -214 600 523 ; +C 122 ; WX 500 ; N z ; B 31 0 571 523 ; +C 123 ; WX 334 ; N braceleft ; B 92 -196 445 722 ; +C 124 ; WX 260 ; N bar ; B 90 -19 324 737 ; +C 125 ; WX 334 ; N braceright ; B 0 -196 354 722 ; +C 126 ; WX 584 ; N asciitilde ; B 111 180 580 326 ; +C 161 ; WX 333 ; N exclamdown ; B 77 -195 326 523 ; +C 162 ; WX 556 ; N cent ; B 95 -115 584 623 ; +C 163 ; WX 556 ; N sterling ; B 49 -16 634 718 ; +C 164 ; WX 167 ; N fraction ; B -170 -19 482 703 ; +C 165 ; WX 556 ; N yen ; B 81 0 699 688 ; +C 166 ; WX 556 ; N florin ; B -52 -207 654 737 ; +C 167 ; WX 556 ; N section ; B 76 -191 584 737 ; +C 168 ; WX 556 ; N currency ; B 60 99 646 603 ; +C 169 ; WX 191 ; N quotesingle ; B 157 463 285 718 ; +C 170 ; WX 333 ; N quotedblleft ; B 138 470 461 725 ; +C 171 ; WX 556 ; N guillemotleft ; B 146 108 554 446 ; +C 172 ; WX 333 ; N guilsinglleft ; B 137 108 340 446 ; +C 173 ; WX 333 ; N guilsinglright ; B 111 108 314 446 ; +C 174 ; WX 500 ; N fi ; B 86 0 587 728 ; +C 175 ; WX 500 ; N fl ; B 86 0 585 728 ; +C 177 ; WX 556 ; N endash ; B 51 240 623 313 ; +C 178 ; WX 556 ; N dagger ; B 135 -159 622 718 ; +C 179 ; WX 556 ; N daggerdbl ; B 52 -159 623 718 ; +C 180 ; WX 278 ; N periodcentered ; B 129 190 257 315 ; +C 182 ; WX 537 ; N paragraph ; B 126 -173 650 718 ; +C 183 ; WX 350 ; N bullet ; B 91 202 413 517 ; +C 184 ; WX 222 ; N quotesinglbase ; B 21 -149 180 106 ; +C 185 ; WX 333 ; N quotedblbase ; B -6 -149 318 106 ; +C 186 ; WX 333 ; N quotedblright ; B 124 463 448 718 ; +C 187 ; WX 556 ; N guillemotright ; B 120 108 528 446 ; +C 188 ; WX 1000 ; N ellipsis ; B 115 0 908 106 ; +C 189 ; WX 1000 ; N perthousand ; B 88 -19 1029 703 ; +C 191 ; WX 611 ; N questiondown ; B 85 -201 534 525 ; +C 193 ; WX 333 ; N grave ; B 170 593 337 734 ; +C 194 ; WX 333 ; N acute ; B 248 593 475 734 ; +C 195 ; WX 333 ; N circumflex ; B 147 593 438 734 ; +C 196 ; WX 333 ; N tilde ; B 125 606 490 722 ; +C 197 ; WX 333 ; N macron ; B 143 627 468 684 ; +C 198 ; WX 333 ; N breve ; B 167 595 476 731 ; +C 199 ; WX 333 ; N dotaccent ; B 249 604 362 706 ; +C 200 ; WX 333 ; N dieresis ; B 168 604 443 706 ; +C 202 ; WX 333 ; N ring ; B 214 572 402 756 ; +C 203 ; WX 333 ; N cedilla ; B 2 -225 232 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B 157 593 565 734 ; +C 206 ; WX 333 ; N ogonek ; B 43 -225 249 0 ; +C 207 ; WX 333 ; N caron ; B 177 593 468 734 ; +C 208 ; WX 1000 ; N emdash ; B 51 240 1067 313 ; +C 225 ; WX 1000 ; N AE ; B 8 0 1097 718 ; +C 227 ; WX 370 ; N ordfeminine ; B 100 304 449 737 ; +C 232 ; WX 556 ; N Lslash ; B 41 0 555 718 ; +C 233 ; WX 778 ; N Oslash ; B 43 -19 890 737 ; +C 234 ; WX 1000 ; N OE ; B 98 -19 1116 737 ; +C 235 ; WX 365 ; N ordmasculine ; B 100 304 468 737 ; +C 241 ; WX 889 ; N ae ; B 61 -15 909 538 ; +C 245 ; WX 278 ; N dotlessi ; B 95 0 294 523 ; +C 248 ; WX 222 ; N lslash ; B 41 0 347 718 ; +C 249 ; WX 611 ; N oslash ; B 29 -22 647 545 ; +C 250 ; WX 944 ; N oe ; B 83 -15 964 538 ; +C 251 ; WX 611 ; N germandbls ; B 67 -15 658 728 ; +C -1 ; WX 611 ; N Zcaron ; B 23 0 741 929 ; +C -1 ; WX 500 ; N ccedilla ; B 74 -225 553 538 ; +C -1 ; WX 500 ; N ydieresis ; B 15 -214 600 706 ; +C -1 ; WX 556 ; N atilde ; B 61 -15 592 722 ; +C -1 ; WX 278 ; N icircumflex ; B 95 0 411 734 ; +C -1 ; WX 333 ; N threesuperior ; B 90 270 436 703 ; +C -1 ; WX 556 ; N ecircumflex ; B 84 -15 578 734 ; +C -1 ; WX 556 ; N thorn ; B 14 -207 584 718 ; +C -1 ; WX 556 ; N egrave ; B 84 -15 578 734 ; +C -1 ; WX 333 ; N twosuperior ; B 64 281 449 703 ; +C -1 ; WX 556 ; N eacute ; B 84 -15 587 734 ; +C -1 ; WX 556 ; N otilde ; B 83 -14 602 722 ; +C -1 ; WX 667 ; N Aacute ; B 14 0 683 929 ; +C -1 ; WX 556 ; N ocircumflex ; B 83 -14 585 734 ; +C -1 ; WX 500 ; N yacute ; B 15 -214 600 734 ; +C -1 ; WX 556 ; N udieresis ; B 94 -15 600 706 ; +C -1 ; WX 834 ; N threequarters ; B 130 -19 861 703 ; +C -1 ; WX 556 ; N acircumflex ; B 61 -15 559 734 ; +C -1 ; WX 722 ; N Eth ; B 69 0 764 718 ; +C -1 ; WX 556 ; N edieresis ; B 84 -15 578 706 ; +C -1 ; WX 556 ; N ugrave ; B 94 -15 600 734 ; +C -1 ; WX 1000 ; N trademark ; B 186 306 1056 718 ; +C -1 ; WX 556 ; N ograve ; B 83 -14 585 734 ; +C -1 ; WX 500 ; N scaron ; B 63 -15 552 734 ; +C -1 ; WX 278 ; N Idieresis ; B 91 0 458 901 ; +C -1 ; WX 556 ; N uacute ; B 94 -15 600 734 ; +C -1 ; WX 556 ; N agrave ; B 61 -15 559 734 ; +C -1 ; WX 556 ; N ntilde ; B 65 0 592 722 ; +C -1 ; WX 556 ; N aring ; B 61 -15 559 756 ; +C -1 ; WX 500 ; N zcaron ; B 31 0 571 734 ; +C -1 ; WX 278 ; N Icircumflex ; B 91 0 452 929 ; +C -1 ; WX 722 ; N Ntilde ; B 76 0 799 917 ; +C -1 ; WX 556 ; N ucircumflex ; B 94 -15 600 734 ; +C -1 ; WX 667 ; N Ecircumflex ; B 86 0 762 929 ; +C -1 ; WX 278 ; N Iacute ; B 91 0 489 929 ; +C -1 ; WX 722 ; N Ccedilla ; B 108 -225 782 737 ; +C -1 ; WX 778 ; N Odieresis ; B 105 -19 826 901 ; +C -1 ; WX 667 ; N Scaron ; B 90 -19 713 929 ; +C -1 ; WX 667 ; N Edieresis ; B 86 0 762 901 ; +C -1 ; WX 278 ; N Igrave ; B 91 0 351 929 ; +C -1 ; WX 556 ; N adieresis ; B 61 -15 559 706 ; +C -1 ; WX 778 ; N Ograve ; B 105 -19 826 929 ; +C -1 ; WX 667 ; N Egrave ; B 86 0 762 929 ; +C -1 ; WX 667 ; N Ydieresis ; B 167 0 806 901 ; +C -1 ; WX 737 ; N registered ; B 54 -19 837 737 ; +C -1 ; WX 778 ; N Otilde ; B 105 -19 826 917 ; +C -1 ; WX 834 ; N onequarter ; B 150 -19 802 703 ; +C -1 ; WX 722 ; N Ugrave ; B 123 -19 797 929 ; +C -1 ; WX 722 ; N Ucircumflex ; B 123 -19 797 929 ; +C -1 ; WX 667 ; N Thorn ; B 86 0 712 718 ; +C -1 ; WX 584 ; N divide ; B 85 -19 606 524 ; +C -1 ; WX 667 ; N Atilde ; B 14 0 699 917 ; +C -1 ; WX 722 ; N Uacute ; B 123 -19 797 929 ; +C -1 ; WX 778 ; N Ocircumflex ; B 105 -19 826 929 ; +C -1 ; WX 584 ; N logicalnot ; B 106 108 628 390 ; +C -1 ; WX 667 ; N Aring ; B 14 0 654 931 ; +C -1 ; WX 278 ; N idieresis ; B 95 0 416 706 ; +C -1 ; WX 278 ; N iacute ; B 95 0 448 734 ; +C -1 ; WX 556 ; N aacute ; B 61 -15 587 734 ; +C -1 ; WX 584 ; N plusminus ; B 39 0 618 506 ; +C -1 ; WX 584 ; N multiply ; B 50 0 642 506 ; +C -1 ; WX 722 ; N Udieresis ; B 123 -19 797 901 ; +C -1 ; WX 584 ; N minus ; B 85 216 606 289 ; +C -1 ; WX 333 ; N onesuperior ; B 166 281 371 703 ; +C -1 ; WX 667 ; N Eacute ; B 86 0 762 929 ; +C -1 ; WX 667 ; N Acircumflex ; B 14 0 654 929 ; +C -1 ; WX 737 ; N copyright ; B 54 -19 837 737 ; +C -1 ; WX 667 ; N Agrave ; B 14 0 654 929 ; +C -1 ; WX 556 ; N odieresis ; B 83 -14 585 706 ; +C -1 ; WX 556 ; N oacute ; B 83 -14 587 734 ; +C -1 ; WX 400 ; N degree ; B 169 411 468 703 ; +C -1 ; WX 278 ; N igrave ; B 95 0 310 734 ; +C -1 ; WX 556 ; N mu ; B 24 -207 600 523 ; +C -1 ; WX 778 ; N Oacute ; B 105 -19 826 929 ; +C -1 ; WX 556 ; N eth ; B 81 -15 617 737 ; +C -1 ; WX 667 ; N Adieresis ; B 14 0 654 901 ; +C -1 ; WX 667 ; N Yacute ; B 167 0 806 929 ; +C -1 ; WX 260 ; N brokenbar ; B 90 -19 324 737 ; +C -1 ; WX 834 ; N onehalf ; B 114 -19 839 703 ; +EndCharMetrics +StartKernData +StartKernPairs 250 + +KPX A y -40 +KPX A w -40 +KPX A v -40 +KPX A u -30 +KPX A Y -100 +KPX A W -50 +KPX A V -70 +KPX A U -50 +KPX A T -120 +KPX A Q -30 +KPX A O -30 +KPX A G -30 +KPX A C -30 + +KPX B period -20 +KPX B comma -20 +KPX B U -10 + +KPX C period -30 +KPX C comma -30 + +KPX D period -70 +KPX D comma -70 +KPX D Y -90 +KPX D W -40 +KPX D V -70 +KPX D A -40 + +KPX F r -45 +KPX F period -150 +KPX F o -30 +KPX F e -30 +KPX F comma -150 +KPX F a -50 +KPX F A -80 + +KPX J u -20 +KPX J period -30 +KPX J comma -30 +KPX J a -20 +KPX J A -20 + +KPX K y -50 +KPX K u -30 +KPX K o -40 +KPX K e -40 +KPX K O -50 + +KPX L y -30 +KPX L quoteright -160 +KPX L quotedblright -140 +KPX L Y -140 +KPX L W -70 +KPX L V -110 +KPX L T -110 + +KPX O period -40 +KPX O comma -40 +KPX O Y -70 +KPX O X -60 +KPX O W -30 +KPX O V -50 +KPX O T -40 +KPX O A -20 + +KPX P period -180 +KPX P o -50 +KPX P e -50 +KPX P comma -180 +KPX P a -40 +KPX P A -120 + +KPX Q U -10 + +KPX R Y -50 +KPX R W -30 +KPX R V -50 +KPX R U -40 +KPX R T -30 +KPX R O -20 + +KPX S period -20 +KPX S comma -20 + +KPX T y -120 +KPX T w -120 +KPX T u -120 +KPX T semicolon -20 +KPX T r -120 +KPX T period -120 +KPX T o -120 +KPX T hyphen -140 +KPX T e -120 +KPX T comma -120 +KPX T colon -20 +KPX T a -120 +KPX T O -40 +KPX T A -120 + +KPX U period -40 +KPX U comma -40 +KPX U A -40 + +KPX V u -70 +KPX V semicolon -40 +KPX V period -125 +KPX V o -80 +KPX V hyphen -80 +KPX V e -80 +KPX V comma -125 +KPX V colon -40 +KPX V a -70 +KPX V O -40 +KPX V G -40 +KPX V A -80 + +KPX W y -20 +KPX W u -30 +KPX W period -80 +KPX W o -30 +KPX W hyphen -40 +KPX W e -30 +KPX W comma -80 +KPX W a -40 +KPX W O -20 +KPX W A -50 + +KPX Y u -110 +KPX Y semicolon -60 +KPX Y period -140 +KPX Y o -140 +KPX Y i -20 +KPX Y hyphen -140 +KPX Y e -140 +KPX Y comma -140 +KPX Y colon -60 +KPX Y a -140 +KPX Y O -85 +KPX Y A -110 + +KPX a y -30 +KPX a w -20 +KPX a v -20 + +KPX b y -20 +KPX b v -20 +KPX b u -20 +KPX b period -40 +KPX b l -20 +KPX b comma -40 +KPX b b -10 + +KPX c k -20 +KPX c comma -15 + +KPX colon space -50 + +KPX comma quoteright -100 +KPX comma quotedblright -100 + +KPX e y -20 +KPX e x -30 +KPX e w -20 +KPX e v -30 +KPX e period -15 +KPX e comma -15 + +KPX f quoteright 50 +KPX f quotedblright 60 +KPX f period -30 +KPX f o -30 +KPX f e -30 +KPX f dotlessi -28 +KPX f comma -30 +KPX f a -30 + +KPX g r -10 + +KPX h y -30 + +KPX k o -20 +KPX k e -20 + +KPX m y -15 +KPX m u -10 + +KPX n y -15 +KPX n v -20 +KPX n u -10 + +KPX o y -30 +KPX o x -30 +KPX o w -15 +KPX o v -15 +KPX o period -40 +KPX o comma -40 + +KPX oslash z -55 +KPX oslash y -70 +KPX oslash x -85 +KPX oslash w -70 +KPX oslash v -70 +KPX oslash u -55 +KPX oslash t -55 +KPX oslash s -55 +KPX oslash r -55 +KPX oslash q -55 +KPX oslash period -95 +KPX oslash p -55 +KPX oslash o -55 +KPX oslash n -55 +KPX oslash m -55 +KPX oslash l -55 +KPX oslash k -55 +KPX oslash j -55 +KPX oslash i -55 +KPX oslash h -55 +KPX oslash g -55 +KPX oslash f -55 +KPX oslash e -55 +KPX oslash d -55 +KPX oslash comma -95 +KPX oslash c -55 +KPX oslash b -55 +KPX oslash a -55 + +KPX p y -30 +KPX p period -35 +KPX p comma -35 + +KPX period space -60 +KPX period quoteright -100 +KPX period quotedblright -100 + +KPX quotedblright space -40 + +KPX quoteleft quoteleft -57 + +KPX quoteright space -70 +KPX quoteright s -50 +KPX quoteright r -50 +KPX quoteright quoteright -57 +KPX quoteright d -50 + +KPX r y 30 +KPX r v 30 +KPX r u 15 +KPX r t 40 +KPX r semicolon 30 +KPX r period -50 +KPX r p 30 +KPX r n 25 +KPX r m 25 +KPX r l 15 +KPX r k 15 +KPX r i 15 +KPX r comma -50 +KPX r colon 30 +KPX r a -10 + +KPX s w -30 +KPX s period -15 +KPX s comma -15 + +KPX semicolon space -50 + +KPX space quoteleft -60 +KPX space quotedblleft -30 +KPX space Y -90 +KPX space W -40 +KPX space V -50 +KPX space T -50 + +KPX v period -80 +KPX v o -25 +KPX v e -25 +KPX v comma -80 +KPX v a -25 + +KPX w period -60 +KPX w o -10 +KPX w e -10 +KPX w comma -60 +KPX w a -15 + +KPX x e -30 + +KPX y period -100 +KPX y o -20 +KPX y e -20 +KPX y comma -100 +KPX y a -20 + +KPX z o -15 +KPX z e -15 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 208 195 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 208 195 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 208 195 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 208 195 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 204 175 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 208 195 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 195 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 208 195 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 208 195 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 208 195 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 208 195 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 14 195 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 14 195 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 14 195 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 14 195 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 246 195 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 264 195 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 264 195 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 264 195 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 264 195 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 264 195 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 208 195 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 236 195 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 236 195 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 236 195 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 236 195 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 208 195 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 208 195 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 180 195 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 112 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 112 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 112 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 112 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 112 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 102 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 84 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 112 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 112 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 112 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 112 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -27 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 102 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 112 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 112 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 112 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 112 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 112 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 84 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 112 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 112 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 112 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 112 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 84 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 84 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 84 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-O+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-O+ new file mode 100755 index 0000000000000..ca1a52afd6e6e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-O+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 722 ; N Ccaron ; B 108 -19 782 925 ; +C -1 ; WX 500 ; N ccaron ; B 74 -15 575 734 ; +C -1 ; WX 722 ; N Dcaron ; B 81 0 764 925 ; +C -1 ; WX 667 ; N dcaron ; B 84 -15 827 790 ; +C -1 ; WX 667 ; N Ecaron ; B 86 0 762 925 ; +C -1 ; WX 556 ; N ecaron ; B 84 -15 579 734 ; +C -1 ; WX 556 ; N Lcaron ; B 76 0 555 790 ; +C -1 ; WX 556 ; N Lacute ; B 76 0 626 925 ; +C -1 ; WX 333 ; N lcaron ; B 67 0 483 790 ; +C -1 ; WX 222 ; N lacute ; B 67 0 483 925 ; +C -1 ; WX 722 ; N Ncaron ; B 76 0 799 925 ; +C -1 ; WX 556 ; N ncaron ; B 65 0 579 734 ; +C -1 ; WX 722 ; N Rcaron ; B 88 0 773 925 ; +C -1 ; WX 722 ; N Racute ; B 88 0 773 925 ; +C -1 ; WX 333 ; N rcaron ; B 77 0 468 734 ; +C -1 ; WX 333 ; N racute ; B 77 0 498 734 ; +C -1 ; WX 611 ; N Tcaron ; B 148 0 750 925 ; +C -1 ; WX 389 ; N tcaron ; B 102 -7 543 718 ; +C -1 ; WX 722 ; N Uring ; B 123 -19 797 925 ; +C -1 ; WX 556 ; N uring ; B 94 -15 600 756 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 301 191 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 107 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 234 191 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 517 72 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 207 191 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 111 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 206 72 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 151 191 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 173 72 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 8 191 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 234 191 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 111 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 234 191 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 277 191 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 23 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 179 191 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 233 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 229 169 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 111 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-UlCm b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-UlCm new file mode 100755 index 0000000000000..4dd03b4ecdbea --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-UlCm @@ -0,0 +1,417 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1988, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Fri Dec 13 16:24:33 1991 +Comment UniqueID 37160 +Comment VMusage 24329 31221 +FontName Helvetica-UltraCompressed +FullName Helvetica Ultra Compressed +FamilyName Helvetica +Weight Bold +ItalicAngle 0 +IsFixedPitch false +FontBBox -167 -250 1000 925 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.002 +Notice Copyright (c) 1988, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 712 +XHeight 572 +Ascender 712 +Descender -128 +StartCharMetrics 228 +C 32 ; WX 166 ; N space ; B 0 0 0 0 ; +C 33 ; WX 204 ; N exclam ; B 52 0 152 712 ; +C 34 ; WX 333 ; N quotedbl ; B 47 441 285 712 ; +C 35 ; WX 333 ; N numbersign ; B -34 0 367 712 ; +C 36 ; WX 333 ; N dollar ; B 26 -51 306 740 ; +C 37 ; WX 500 ; N percent ; B 16 -8 484 720 ; +C 38 ; WX 389 ; N ampersand ; B 32 -14 380 726 ; +C 39 ; WX 167 ; N quoteright ; B 28 503 154 712 ; +C 40 ; WX 167 ; N parenleft ; B 13 -97 190 712 ; +C 41 ; WX 167 ; N parenright ; B -23 -97 154 712 ; +C 42 ; WX 315 ; N asterisk ; B 15 454 300 712 ; +C 43 ; WX 500 ; N plus ; B 5 41 495 531 ; +C 44 ; WX 166 ; N comma ; B 15 -125 147 111 ; +C 45 ; WX 166 ; N hyphen ; B 20 264 147 336 ; +C 46 ; WX 166 ; N period ; B 33 0 133 111 ; +C 47 ; WX 278 ; N slash ; B -10 -14 287 726 ; +C 48 ; WX 333 ; N zero ; B 28 -8 305 720 ; +C 49 ; WX 333 ; N one ; B 48 0 232 712 ; +C 50 ; WX 333 ; N two ; B 28 0 305 720 ; +C 51 ; WX 333 ; N three ; B 28 -8 305 720 ; +C 52 ; WX 333 ; N four ; B 6 0 327 712 ; +C 53 ; WX 333 ; N five ; B 28 -8 305 712 ; +C 54 ; WX 333 ; N six ; B 28 -8 305 720 ; +C 55 ; WX 333 ; N seven ; B 20 0 314 712 ; +C 56 ; WX 333 ; N eight ; B 28 -8 305 720 ; +C 57 ; WX 333 ; N nine ; B 28 -2 305 726 ; +C 58 ; WX 166 ; N colon ; B 33 0 133 521 ; +C 59 ; WX 166 ; N semicolon ; B 8 -125 140 521 ; +C 60 ; WX 500 ; N less ; B 32 62 469 510 ; +C 61 ; WX 500 ; N equal ; B 5 140 495 432 ; +C 62 ; WX 500 ; N greater ; B 31 61 468 510 ; +C 63 ; WX 333 ; N question ; B 44 0 289 726 ; +C 64 ; WX 800 ; N at ; B 42 -14 757 726 ; +C 65 ; WX 333 ; N A ; B 6 0 327 712 ; +C 66 ; WX 333 ; N B ; B 28 0 305 712 ; +C 67 ; WX 333 ; N C ; B 28 -14 305 726 ; +C 68 ; WX 333 ; N D ; B 28 0 305 712 ; +C 69 ; WX 278 ; N E ; B 31 0 269 712 ; +C 70 ; WX 278 ; N F ; B 31 0 269 712 ; +C 71 ; WX 333 ; N G ; B 28 -14 305 726 ; +C 72 ; WX 333 ; N H ; B 31 0 302 712 ; +C 73 ; WX 167 ; N I ; B 30 0 136 712 ; +C 74 ; WX 333 ; N J ; B 31 -14 302 712 ; +C 75 ; WX 333 ; N K ; B 31 0 326 712 ; +C 76 ; WX 278 ; N L ; B 31 0 272 712 ; +C 77 ; WX 481 ; N M ; B 36 0 445 712 ; +C 78 ; WX 389 ; N N ; B 31 0 358 712 ; +C 79 ; WX 333 ; N O ; B 28 -14 305 726 ; +C 80 ; WX 333 ; N P ; B 28 0 305 712 ; +C 81 ; WX 333 ; N Q ; B 28 -79 315 726 ; +C 82 ; WX 333 ; N R ; B 28 0 318 712 ; +C 83 ; WX 333 ; N S ; B 28 -14 305 726 ; +C 84 ; WX 315 ; N T ; B 12 0 303 712 ; +C 85 ; WX 333 ; N U ; B 28 -14 305 712 ; +C 86 ; WX 333 ; N V ; B 4 0 328 712 ; +C 87 ; WX 481 ; N W ; B 10 0 470 712 ; +C 88 ; WX 333 ; N X ; B 1 0 332 712 ; +C 89 ; WX 333 ; N Y ; B 4 0 328 712 ; +C 90 ; WX 259 ; N Z ; B 11 0 247 712 ; +C 91 ; WX 222 ; N bracketleft ; B 30 -97 208 712 ; +C 92 ; WX 278 ; N backslash ; B -57 -14 335 726 ; +C 93 ; WX 222 ; N bracketright ; B 14 -97 192 712 ; +C 94 ; WX 500 ; N asciicircum ; B 10 308 490 712 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 167 ; N quoteleft ; B 13 503 139 712 ; +C 97 ; WX 278 ; N a ; B 20 -7 258 579 ; +C 98 ; WX 278 ; N b ; B 20 -7 258 712 ; +C 99 ; WX 278 ; N c ; B 20 -7 258 579 ; +C 100 ; WX 278 ; N d ; B 20 -7 258 712 ; +C 101 ; WX 278 ; N e ; B 20 -7 258 579 ; +C 102 ; WX 167 ; N f ; B 5 0 161 712 ; L i fi ; L l fl ; +C 103 ; WX 278 ; N g ; B 20 -128 258 579 ; +C 104 ; WX 278 ; N h ; B 20 0 258 712 ; +C 105 ; WX 148 ; N i ; B 26 0 122 712 ; +C 106 ; WX 148 ; N j ; B -17 -128 122 712 ; +C 107 ; WX 278 ; N k ; B 22 0 273 712 ; +C 108 ; WX 148 ; N l ; B 26 0 122 712 ; +C 109 ; WX 426 ; N m ; B 25 0 401 579 ; +C 110 ; WX 278 ; N n ; B 20 0 258 579 ; +C 111 ; WX 278 ; N o ; B 20 -7 258 579 ; +C 112 ; WX 278 ; N p ; B 20 -128 258 579 ; +C 113 ; WX 278 ; N q ; B 20 -128 258 579 ; +C 114 ; WX 278 ; N r ; B 20 0 258 579 ; +C 115 ; WX 278 ; N s ; B 20 -7 258 579 ; +C 116 ; WX 167 ; N t ; B 6 0 161 675 ; +C 117 ; WX 278 ; N u ; B 20 -7 258 572 ; +C 118 ; WX 278 ; N v ; B 2 0 275 572 ; +C 119 ; WX 444 ; N w ; B 3 0 440 572 ; +C 120 ; WX 259 ; N x ; B 4 0 255 572 ; +C 121 ; WX 278 ; N y ; B 4 -128 273 572 ; +C 122 ; WX 222 ; N z ; B 4 0 217 572 ; +C 123 ; WX 333 ; N braceleft ; B 37 -97 314 712 ; +C 124 ; WX 222 ; N bar ; B 67 -250 155 750 ; +C 125 ; WX 333 ; N braceright ; B 19 -97 296 712 ; +C 126 ; WX 500 ; N asciitilde ; B 19 205 481 365 ; +C 161 ; WX 204 ; N exclamdown ; B 52 -112 152 598 ; +C 162 ; WX 333 ; N cent ; B 51 -83 289 648 ; +C 163 ; WX 333 ; N sterling ; B 19 -4 322 720 ; +C 164 ; WX 167 ; N fraction ; B -167 -8 334 720 ; +C 165 ; WX 333 ; N yen ; B 4 0 328 712 ; +C 166 ; WX 333 ; N florin ; B -1 -128 334 720 ; +C 167 ; WX 333 ; N section ; B 23 -128 310 726 ; +C 168 ; WX 333 ; N currency ; B 25 253 309 536 ; +C 169 ; WX 222 ; N quotesingle ; B 67 441 155 712 ; +C 170 ; WX 315 ; N quotedblleft ; B 20 503 276 712 ; +C 171 ; WX 333 ; N guillemotleft ; B 16 68 316 501 ; +C 172 ; WX 185 ; N guilsinglleft ; B 24 68 161 501 ; +C 173 ; WX 185 ; N guilsinglright ; B 24 68 161 501 ; +C 174 ; WX 315 ; N fi ; B 5 0 296 712 ; +C 175 ; WX 315 ; N fl ; B 5 0 296 712 ; +C 177 ; WX 500 ; N endash ; B 0 266 500 333 ; +C 178 ; WX 333 ; N dagger ; B 10 -116 323 712 ; +C 179 ; WX 333 ; N daggerdbl ; B 10 -116 323 712 ; +C 180 ; WX 166 ; N periodcentered ; B 30 232 137 339 ; +C 182 ; WX 600 ; N paragraph ; B 27 -179 566 712 ; +C 183 ; WX 500 ; N bullet ; B 75 175 425 525 ; +C 184 ; WX 167 ; N quotesinglbase ; B 28 -98 154 111 ; +C 185 ; WX 315 ; N quotedblbase ; B 39 -98 295 111 ; +C 186 ; WX 315 ; N quotedblright ; B 39 503 295 712 ; +C 187 ; WX 333 ; N guillemotright ; B 16 68 316 501 ; +C 188 ; WX 1000 ; N ellipsis ; B 116 0 884 111 ; +C 189 ; WX 778 ; N perthousand ; B 33 -8 753 720 ; +C 191 ; WX 333 ; N questiondown ; B 44 -128 289 598 ; +C 193 ; WX 148 ; N grave ; B -51 633 141 804 ; +C 194 ; WX 148 ; N acute ; B 7 633 199 804 ; +C 195 ; WX 148 ; N circumflex ; B -53 633 201 804 ; +C 196 ; WX 148 ; N tilde ; B -55 656 211 774 ; +C 197 ; WX 148 ; N macron ; B -40 677 189 741 ; +C 198 ; WX 148 ; N breve ; B -50 652 199 778 ; +C 199 ; WX 148 ; N dotaccent ; B 29 666 119 763 ; +C 200 ; WX 148 ; N dieresis ; B -41 666 189 763 ; +C 202 ; WX 148 ; N ring ; B -9 626 157 796 ; +C 203 ; WX 148 ; N cedilla ; B -34 -207 176 -6 ; +C 205 ; WX 148 ; N hungarumlaut ; B -57 633 262 804 ; +C 206 ; WX 148 ; N ogonek ; B -24 -207 187 0 ; +C 207 ; WX 148 ; N caron ; B -53 633 201 804 ; +C 208 ; WX 1000 ; N emdash ; B 0 266 1000 333 ; +C 225 ; WX 481 ; N AE ; B 0 0 472 712 ; +C 227 ; WX 167 ; N ordfeminine ; B 6 375 160 726 ; +C 232 ; WX 278 ; N Lslash ; B -6 0 272 712 ; +C 233 ; WX 333 ; N Oslash ; B -2 -45 335 748 ; +C 234 ; WX 444 ; N OE ; B 27 -14 442 726 ; +C 235 ; WX 167 ; N ordmasculine ; B 6 375 160 726 ; +C 241 ; WX 426 ; N ae ; B 23 -7 403 579 ; +C 245 ; WX 148 ; N dotlessi ; B 26 0 122 572 ; +C 248 ; WX 148 ; N lslash ; B -10 0 158 712 ; +C 249 ; WX 278 ; N oslash ; B 1 -36 280 609 ; +C 250 ; WX 426 ; N oe ; B 23 -7 403 579 ; +C 251 ; WX 278 ; N germandbls ; B 20 -8 262 712 ; +C -1 ; WX 278 ; N ecircumflex ; B 12 -7 266 804 ; +C -1 ; WX 278 ; N edieresis ; B 20 -7 258 763 ; +C -1 ; WX 278 ; N aacute ; B 20 -7 264 804 ; +C -1 ; WX 800 ; N registered ; B 22 -14 778 726 ; +C -1 ; WX 148 ; N icircumflex ; B -53 0 201 804 ; +C -1 ; WX 278 ; N udieresis ; B 20 -7 258 763 ; +C -1 ; WX 278 ; N ograve ; B 14 -7 258 804 ; +C -1 ; WX 278 ; N uacute ; B 20 -7 264 804 ; +C -1 ; WX 278 ; N ucircumflex ; B 12 -7 266 804 ; +C -1 ; WX 333 ; N Aacute ; B 6 0 327 925 ; +C -1 ; WX 148 ; N igrave ; B -51 0 141 804 ; +C -1 ; WX 167 ; N Icircumflex ; B -43 0 211 925 ; +C -1 ; WX 278 ; N ccedilla ; B 20 -207 258 579 ; +C -1 ; WX 278 ; N adieresis ; B 20 -7 258 763 ; +C -1 ; WX 278 ; N Ecircumflex ; B 12 0 269 925 ; +C -1 ; WX 278 ; N scaron ; B 12 -7 266 804 ; +C -1 ; WX 278 ; N thorn ; B 20 -128 258 712 ; +C -1 ; WX 990 ; N trademark ; B 51 300 939 712 ; +C -1 ; WX 278 ; N egrave ; B 14 -7 258 804 ; +C -1 ; WX 199 ; N threesuperior ; B 11 283 191 720 ; +C -1 ; WX 222 ; N zcaron ; B -16 0 238 804 ; +C -1 ; WX 278 ; N atilde ; B 10 -7 276 774 ; +C -1 ; WX 278 ; N aring ; B 20 -7 258 796 ; +C -1 ; WX 278 ; N ocircumflex ; B 12 -7 266 804 ; +C -1 ; WX 278 ; N Edieresis ; B 24 0 269 884 ; +C -1 ; WX 499 ; N threequarters ; B 16 -8 485 720 ; +C -1 ; WX 278 ; N ydieresis ; B 4 -128 273 763 ; +C -1 ; WX 278 ; N yacute ; B 4 -128 273 804 ; +C -1 ; WX 148 ; N iacute ; B 7 0 199 804 ; +C -1 ; WX 333 ; N Acircumflex ; B 6 0 327 925 ; +C -1 ; WX 333 ; N Uacute ; B 28 -14 305 925 ; +C -1 ; WX 278 ; N eacute ; B 20 -7 264 804 ; +C -1 ; WX 333 ; N Ograve ; B 28 -14 305 925 ; +C -1 ; WX 278 ; N agrave ; B 14 -7 258 804 ; +C -1 ; WX 333 ; N Udieresis ; B 28 -14 305 884 ; +C -1 ; WX 278 ; N acircumflex ; B 12 -7 266 804 ; +C -1 ; WX 167 ; N Igrave ; B -41 0 151 925 ; +C -1 ; WX 199 ; N twosuperior ; B 11 288 191 720 ; +C -1 ; WX 333 ; N Ugrave ; B 28 -14 305 925 ; +C -1 ; WX 499 ; N onequarter ; B 24 -8 475 720 ; +C -1 ; WX 333 ; N Ucircumflex ; B 28 -14 305 925 ; +C -1 ; WX 333 ; N Scaron ; B 28 -14 305 925 ; +C -1 ; WX 167 ; N Idieresis ; B -31 0 199 884 ; +C -1 ; WX 148 ; N idieresis ; B -41 0 189 763 ; +C -1 ; WX 278 ; N Egrave ; B 14 0 269 925 ; +C -1 ; WX 333 ; N Oacute ; B 28 -14 305 925 ; +C -1 ; WX 500 ; N divide ; B 5 0 495 572 ; +C -1 ; WX 333 ; N Atilde ; B 6 0 327 895 ; +C -1 ; WX 333 ; N Aring ; B 6 0 327 917 ; +C -1 ; WX 333 ; N Odieresis ; B 28 -14 305 884 ; +C -1 ; WX 333 ; N Adieresis ; B 6 0 327 884 ; +C -1 ; WX 389 ; N Ntilde ; B 31 0 358 895 ; +C -1 ; WX 259 ; N Zcaron ; B 3 0 257 925 ; +C -1 ; WX 333 ; N Thorn ; B 28 0 305 712 ; +C -1 ; WX 167 ; N Iacute ; B 17 0 209 925 ; +C -1 ; WX 500 ; N plusminus ; B 5 41 495 531 ; +C -1 ; WX 500 ; N multiply ; B 5 21 495 514 ; +C -1 ; WX 278 ; N Eacute ; B 31 0 269 925 ; +C -1 ; WX 333 ; N Ydieresis ; B 4 0 328 884 ; +C -1 ; WX 199 ; N onesuperior ; B 19 288 139 715 ; +C -1 ; WX 278 ; N ugrave ; B 14 -7 258 804 ; +C -1 ; WX 500 ; N logicalnot ; B 5 154 495 432 ; +C -1 ; WX 278 ; N ntilde ; B 10 0 276 774 ; +C -1 ; WX 333 ; N Otilde ; B 28 -14 305 895 ; +C -1 ; WX 278 ; N otilde ; B 10 -7 276 774 ; +C -1 ; WX 333 ; N Ccedilla ; B 28 -207 305 726 ; +C -1 ; WX 333 ; N Agrave ; B 6 0 327 925 ; +C -1 ; WX 499 ; N onehalf ; B 18 -8 481 720 ; +C -1 ; WX 333 ; N Eth ; B -6 0 305 712 ; +C -1 ; WX 400 ; N degree ; B 54 420 346 712 ; +C -1 ; WX 333 ; N Yacute ; B 4 0 328 925 ; +C -1 ; WX 333 ; N Ocircumflex ; B 28 -14 305 925 ; +C -1 ; WX 278 ; N oacute ; B 20 -7 264 804 ; +C -1 ; WX 278 ; N mu ; B 20 -128 258 572 ; +C -1 ; WX 500 ; N minus ; B 5 242 495 330 ; +C -1 ; WX 278 ; N eth ; B 20 -7 258 751 ; +C -1 ; WX 278 ; N odieresis ; B 20 -7 258 763 ; +C -1 ; WX 800 ; N copyright ; B 22 -14 778 726 ; +C -1 ; WX 222 ; N brokenbar ; B 67 -175 155 675 ; +EndCharMetrics +StartKernData +StartKernPairs 88 + +KPX A y -37 +KPX A w -37 +KPX A v -37 +KPX A quoteright -74 +KPX A Y -55 +KPX A W -37 +KPX A V -37 +KPX A T -55 + +KPX F period -129 +KPX F comma -129 +KPX F A -37 + +KPX L y -37 +KPX L quoteright -129 +KPX L Y -74 +KPX L W -55 +KPX L V -55 +KPX L T -74 + +KPX P period -129 +KPX P comma -129 +KPX P A -37 + +KPX R Y -18 +KPX R W -18 +KPX R V -18 +KPX R T -18 + +KPX T y -92 +KPX T w -92 +KPX T u -92 +KPX T semicolon -92 +KPX T s -92 +KPX T r -92 +KPX T period -92 +KPX T o -92 +KPX T i -92 +KPX T hyphen -92 +KPX T e -92 +KPX T comma -92 +KPX T colon -92 +KPX T c -92 +KPX T a -92 +KPX T A -55 + +KPX V u -18 +KPX V semicolon -18 +KPX V r -18 +KPX V period -74 +KPX V o -18 +KPX V i -18 +KPX V hyphen -37 +KPX V e -18 +KPX V comma -74 +KPX V colon -18 +KPX V a -18 +KPX V A -37 + +KPX W semicolon -18 +KPX W period -74 +KPX W o -18 +KPX W hyphen -37 +KPX W e -18 +KPX W comma -74 +KPX W colon -18 +KPX W a -18 +KPX W A -37 + +KPX Y v -37 +KPX Y u -37 +KPX Y semicolon -55 +KPX Y q -37 +KPX Y period -111 +KPX Y p -37 +KPX Y o -55 +KPX Y i -18 +KPX Y hyphen -92 +KPX Y e -55 +KPX Y comma -92 +KPX Y colon -55 +KPX Y a -37 +KPX Y A -55 + +KPX quoteleft quoteleft -37 + +KPX quoteright t -18 +KPX quoteright s -74 +KPX quoteright quoteright -37 + +KPX r period -129 +KPX r hyphen -18 +KPX r comma -129 + +KPX v period -55 +KPX v comma -55 + +KPX w period -55 +KPX w comma -55 + +KPX y period -74 +KPX y comma -74 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 93 121 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 93 121 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 93 121 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 93 121 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 93 121 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 93 121 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 65 121 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 65 121 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 65 121 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 65 121 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 10 121 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 10 121 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 10 121 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 10 121 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 121 121 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 93 121 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 93 121 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 93 121 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 93 121 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 93 121 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 93 121 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 93 121 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 93 121 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 93 121 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 93 121 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 93 121 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 93 121 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 56 121 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 65 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 65 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 65 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 65 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 65 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 65 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 65 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 65 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 65 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 65 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 65 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 65 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 65 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 65 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 65 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 65 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 65 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 65 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 65 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 65 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 65 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 65 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 65 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 37 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-UlCm+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-UlCm+ new file mode 100755 index 0000000000000..ad55e634a8fda --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/He-UlCm+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 333 ; N Ccaron ; B 28 -14 321 948 ; +C -1 ; WX 278 ; N ccaron ; B 20 -7 278 804 ; +C -1 ; WX 333 ; N Dcaron ; B 28 0 305 948 ; +C -1 ; WX 366 ; N dcaron ; B 20 -7 397 783 ; +C -1 ; WX 278 ; N Ecaron ; B 12 0 269 948 ; +C -1 ; WX 278 ; N ecaron ; B 12 -7 266 804 ; +C -1 ; WX 278 ; N Lcaron ; B 31 0 275 783 ; +C -1 ; WX 278 ; N Lacute ; B 31 0 272 948 ; +C -1 ; WX 236 ; N lcaron ; B 26 0 261 783 ; +C -1 ; WX 148 ; N lacute ; B 26 0 218 948 ; +C -1 ; WX 389 ; N Ncaron ; B 31 0 358 948 ; +C -1 ; WX 278 ; N ncaron ; B 12 0 266 804 ; +C -1 ; WX 333 ; N Rcaron ; B 28 0 318 948 ; +C -1 ; WX 333 ; N Racute ; B 28 0 327 948 ; +C -1 ; WX 278 ; N rcaron ; B 12 0 266 804 ; +C -1 ; WX 278 ; N racute ; B 20 0 283 804 ; +C -1 ; WX 315 ; N Tcaron ; B 12 0 303 948 ; +C -1 ; WX 255 ; N tcaron ; B 6 0 300 712 ; +C -1 ; WX 333 ; N Uring ; B 28 -14 305 948 ; +C -1 ; WX 278 ; N uring ; B 20 -7 258 796 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 120 144 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 77 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 92 144 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 243 71 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 65 144 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 65 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 121 71 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 65 144 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 107 71 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 19 144 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 120 144 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 65 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 92 144 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 128 144 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 65 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 84 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 83 144 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 146 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 92 152 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 65 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-Bd b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-Bd new file mode 100755 index 0000000000000..ba1fed6d9a3bc --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-Bd @@ -0,0 +1,472 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1988, 1991 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Tue May 28 16:48:12 1991 +Comment UniqueID 35031 +Comment VMusage 30773 37665 +FontName NewCenturySchlbk-Bold +FullName New Century Schoolbook Bold +FamilyName New Century Schoolbook +Weight Bold +ItalicAngle 0 +IsFixedPitch false +FontBBox -165 -250 1000 988 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.009 +Notice Copyright (c) 1985, 1987, 1988, 1991 Adobe Systems Incorporated. All Rights Reserved. +EncodingScheme AdobeStandardEncoding +CapHeight 722 +XHeight 475 +Ascender 737 +Descender -205 +StartCharMetrics 228 +C 32 ; WX 287 ; N space ; B 0 0 0 0 ; +C 33 ; WX 296 ; N exclam ; B 53 -15 243 737 ; +C 34 ; WX 333 ; N quotedbl ; B 0 378 333 737 ; +C 35 ; WX 574 ; N numbersign ; B 36 0 538 690 ; +C 36 ; WX 574 ; N dollar ; B 25 -141 549 810 ; +C 37 ; WX 833 ; N percent ; B 14 -15 819 705 ; +C 38 ; WX 852 ; N ampersand ; B 34 -15 818 737 ; +C 39 ; WX 241 ; N quoteright ; B 22 378 220 737 ; +C 40 ; WX 389 ; N parenleft ; B 77 -117 345 745 ; +C 41 ; WX 389 ; N parenright ; B 44 -117 312 745 ; +C 42 ; WX 500 ; N asterisk ; B 54 302 446 737 ; +C 43 ; WX 606 ; N plus ; B 50 0 556 506 ; +C 44 ; WX 278 ; N comma ; B 40 -184 238 175 ; +C 45 ; WX 333 ; N hyphen ; B 42 174 291 302 ; +C 46 ; WX 278 ; N period ; B 44 -15 234 175 ; +C 47 ; WX 278 ; N slash ; B -42 -15 320 737 ; +C 48 ; WX 574 ; N zero ; B 27 -15 547 705 ; +C 49 ; WX 574 ; N one ; B 83 0 491 705 ; +C 50 ; WX 574 ; N two ; B 19 0 531 705 ; +C 51 ; WX 574 ; N three ; B 23 -15 531 705 ; +C 52 ; WX 574 ; N four ; B 19 0 547 705 ; +C 53 ; WX 574 ; N five ; B 32 -15 534 705 ; +C 54 ; WX 574 ; N six ; B 27 -15 547 705 ; +C 55 ; WX 574 ; N seven ; B 45 -15 547 705 ; +C 56 ; WX 574 ; N eight ; B 27 -15 548 705 ; +C 57 ; WX 574 ; N nine ; B 27 -15 547 705 ; +C 58 ; WX 278 ; N colon ; B 44 -15 234 485 ; +C 59 ; WX 278 ; N semicolon ; B 40 -184 238 485 ; +C 60 ; WX 606 ; N less ; B 50 -9 556 515 ; +C 61 ; WX 606 ; N equal ; B 50 103 556 403 ; +C 62 ; WX 606 ; N greater ; B 50 -9 556 515 ; +C 63 ; WX 500 ; N question ; B 23 -15 477 737 ; +C 64 ; WX 747 ; N at ; B -2 -15 750 737 ; +C 65 ; WX 759 ; N A ; B -19 0 778 737 ; +C 66 ; WX 778 ; N B ; B 19 0 739 722 ; +C 67 ; WX 778 ; N C ; B 39 -15 723 737 ; +C 68 ; WX 833 ; N D ; B 19 0 794 722 ; +C 69 ; WX 759 ; N E ; B 19 0 708 722 ; +C 70 ; WX 722 ; N F ; B 19 0 697 722 ; +C 71 ; WX 833 ; N G ; B 39 -15 818 737 ; +C 72 ; WX 870 ; N H ; B 19 0 851 722 ; +C 73 ; WX 444 ; N I ; B 29 0 415 722 ; +C 74 ; WX 648 ; N J ; B 6 -15 642 722 ; +C 75 ; WX 815 ; N K ; B 19 0 822 722 ; +C 76 ; WX 722 ; N L ; B 19 0 703 722 ; +C 77 ; WX 981 ; N M ; B 10 0 971 722 ; +C 78 ; WX 833 ; N N ; B 5 -10 828 722 ; +C 79 ; WX 833 ; N O ; B 39 -15 794 737 ; +C 80 ; WX 759 ; N P ; B 24 0 735 722 ; +C 81 ; WX 833 ; N Q ; B 39 -189 808 737 ; +C 82 ; WX 815 ; N R ; B 19 -15 815 722 ; +C 83 ; WX 667 ; N S ; B 51 -15 634 737 ; +C 84 ; WX 722 ; N T ; B 16 0 706 722 ; +C 85 ; WX 833 ; N U ; B 14 -15 825 722 ; +C 86 ; WX 759 ; N V ; B -19 -10 778 722 ; +C 87 ; WX 981 ; N W ; B 7 -10 974 722 ; +C 88 ; WX 722 ; N X ; B -12 0 734 722 ; +C 89 ; WX 722 ; N Y ; B -12 0 734 722 ; +C 90 ; WX 667 ; N Z ; B 28 0 639 722 ; +C 91 ; WX 389 ; N bracketleft ; B 84 -109 339 737 ; +C 92 ; WX 606 ; N backslash ; B 122 -15 484 737 ; +C 93 ; WX 389 ; N bracketright ; B 50 -109 305 737 ; +C 94 ; WX 606 ; N asciicircum ; B 66 325 540 690 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 241 ; N quoteleft ; B 22 378 220 737 ; +C 97 ; WX 611 ; N a ; B 40 -15 601 485 ; +C 98 ; WX 648 ; N b ; B 4 -15 616 737 ; +C 99 ; WX 556 ; N c ; B 32 -15 524 485 ; +C 100 ; WX 667 ; N d ; B 32 -15 644 737 ; +C 101 ; WX 574 ; N e ; B 32 -15 542 485 ; +C 102 ; WX 389 ; N f ; B 11 0 461 737 ; L i fi ; L l fl ; +C 103 ; WX 611 ; N g ; B 30 -205 623 535 ; +C 104 ; WX 685 ; N h ; B 17 0 662 737 ; +C 105 ; WX 370 ; N i ; B 26 0 338 737 ; +C 106 ; WX 352 ; N j ; B -86 -205 271 737 ; +C 107 ; WX 667 ; N k ; B 17 0 662 737 ; +C 108 ; WX 352 ; N l ; B 17 0 329 737 ; +C 109 ; WX 963 ; N m ; B 17 0 940 485 ; +C 110 ; WX 685 ; N n ; B 17 0 662 485 ; +C 111 ; WX 611 ; N o ; B 32 -15 579 485 ; +C 112 ; WX 667 ; N p ; B 17 -205 629 485 ; +C 113 ; WX 648 ; N q ; B 32 -205 638 485 ; +C 114 ; WX 519 ; N r ; B 17 0 516 485 ; +C 115 ; WX 500 ; N s ; B 48 -15 476 485 ; +C 116 ; WX 426 ; N t ; B 21 -15 405 675 ; +C 117 ; WX 685 ; N u ; B 17 -15 668 475 ; +C 118 ; WX 611 ; N v ; B 12 -10 599 475 ; +C 119 ; WX 889 ; N w ; B 16 -10 873 475 ; +C 120 ; WX 611 ; N x ; B 12 0 599 475 ; +C 121 ; WX 611 ; N y ; B 12 -205 599 475 ; +C 122 ; WX 537 ; N z ; B 38 0 499 475 ; +C 123 ; WX 389 ; N braceleft ; B 36 -109 313 737 ; +C 124 ; WX 606 ; N bar ; B 249 -250 357 750 ; +C 125 ; WX 389 ; N braceright ; B 76 -109 353 737 ; +C 126 ; WX 606 ; N asciitilde ; B 72 160 534 346 ; +C 161 ; WX 296 ; N exclamdown ; B 53 -205 243 547 ; +C 162 ; WX 574 ; N cent ; B 32 -102 528 572 ; +C 163 ; WX 574 ; N sterling ; B 16 -15 558 705 ; +C 164 ; WX 167 ; N fraction ; B -165 -15 332 705 ; +C 165 ; WX 574 ; N yen ; B -10 0 584 690 ; +C 166 ; WX 574 ; N florin ; B 14 -205 548 737 ; +C 167 ; WX 500 ; N section ; B 62 -86 438 737 ; +C 168 ; WX 574 ; N currency ; B 27 84 547 605 ; +C 169 ; WX 241 ; N quotesingle ; B 53 378 189 737 ; +C 170 ; WX 481 ; N quotedblleft ; B 22 378 459 737 ; +C 171 ; WX 500 ; N guillemotleft ; B 46 79 454 397 ; +C 172 ; WX 333 ; N guilsinglleft ; B 62 79 271 397 ; +C 173 ; WX 333 ; N guilsinglright ; B 62 79 271 397 ; +C 174 ; WX 685 ; N fi ; B 11 0 666 737 ; +C 175 ; WX 685 ; N fl ; B 11 0 666 737 ; +C 177 ; WX 500 ; N endash ; B 0 184 500 292 ; +C 178 ; WX 500 ; N dagger ; B 39 -101 461 737 ; +C 179 ; WX 500 ; N daggerdbl ; B 39 -89 461 737 ; +C 180 ; WX 278 ; N periodcentered ; B 53 200 225 372 ; +C 182 ; WX 747 ; N paragraph ; B 96 -71 631 722 ; +C 183 ; WX 606 ; N bullet ; B 122 180 484 542 ; +C 184 ; WX 241 ; N quotesinglbase ; B 22 -184 220 175 ; +C 185 ; WX 481 ; N quotedblbase ; B 22 -184 459 175 ; +C 186 ; WX 481 ; N quotedblright ; B 22 378 459 737 ; +C 187 ; WX 500 ; N guillemotright ; B 46 79 454 397 ; +C 188 ; WX 1000 ; N ellipsis ; B 72 -15 928 175 ; +C 189 ; WX 1000 ; N perthousand ; B 7 -15 993 705 ; +C 191 ; WX 500 ; N questiondown ; B 23 -205 477 547 ; +C 193 ; WX 333 ; N grave ; B 2 547 249 737 ; +C 194 ; WX 333 ; N acute ; B 84 547 331 737 ; +C 195 ; WX 333 ; N circumflex ; B -10 547 344 725 ; +C 196 ; WX 333 ; N tilde ; B -24 563 357 705 ; +C 197 ; WX 333 ; N macron ; B -6 582 339 664 ; +C 198 ; WX 333 ; N breve ; B 9 547 324 714 ; +C 199 ; WX 333 ; N dotaccent ; B 95 552 237 694 ; +C 200 ; WX 333 ; N dieresis ; B -12 552 345 694 ; +C 202 ; WX 333 ; N ring ; B 58 545 274 761 ; +C 203 ; WX 333 ; N cedilla ; B 17 -224 248 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B -16 547 431 737 ; +C 206 ; WX 333 ; N ogonek ; B 168 -163 346 3 ; +C 207 ; WX 333 ; N caron ; B -10 547 344 725 ; +C 208 ; WX 1000 ; N emdash ; B 0 184 1000 292 ; +C 225 ; WX 981 ; N AE ; B -29 0 963 722 ; +C 227 ; WX 367 ; N ordfeminine ; B 1 407 393 705 ; +C 232 ; WX 722 ; N Lslash ; B 19 0 703 722 ; +C 233 ; WX 833 ; N Oslash ; B 39 -53 794 775 ; +C 234 ; WX 1000 ; N OE ; B 0 0 982 722 ; +C 235 ; WX 367 ; N ordmasculine ; B 1 407 366 705 ; +C 241 ; WX 870 ; N ae ; B 32 -15 838 485 ; +C 245 ; WX 370 ; N dotlessi ; B 26 0 338 475 ; +C 248 ; WX 352 ; N lslash ; B 17 0 329 737 ; +C 249 ; WX 611 ; N oslash ; B 32 -103 579 573 ; +C 250 ; WX 907 ; N oe ; B 32 -15 875 485 ; +C 251 ; WX 611 ; N germandbls ; B -2 -15 580 737 ; +C -1 ; WX 574 ; N ecircumflex ; B 32 -15 542 725 ; +C -1 ; WX 574 ; N edieresis ; B 32 -15 542 694 ; +C -1 ; WX 611 ; N aacute ; B 40 -15 601 737 ; +C -1 ; WX 747 ; N registered ; B -2 -15 750 737 ; +C -1 ; WX 370 ; N icircumflex ; B 9 0 363 725 ; +C -1 ; WX 685 ; N udieresis ; B 17 -15 668 694 ; +C -1 ; WX 611 ; N ograve ; B 32 -15 579 737 ; +C -1 ; WX 685 ; N uacute ; B 17 -15 668 737 ; +C -1 ; WX 685 ; N ucircumflex ; B 17 -15 668 725 ; +C -1 ; WX 759 ; N Aacute ; B -19 0 778 964 ; +C -1 ; WX 370 ; N igrave ; B 21 0 338 737 ; +C -1 ; WX 444 ; N Icircumflex ; B 29 0 415 952 ; +C -1 ; WX 556 ; N ccedilla ; B 32 -224 524 485 ; +C -1 ; WX 611 ; N adieresis ; B 40 -15 601 694 ; +C -1 ; WX 759 ; N Ecircumflex ; B 19 0 708 952 ; +C -1 ; WX 500 ; N scaron ; B 48 -15 476 725 ; +C -1 ; WX 667 ; N thorn ; B 17 -205 629 737 ; +C -1 ; WX 1000 ; N trademark ; B 6 317 982 722 ; +C -1 ; WX 574 ; N egrave ; B 32 -15 542 737 ; +C -1 ; WX 344 ; N threesuperior ; B -3 273 355 705 ; +C -1 ; WX 537 ; N zcaron ; B 38 0 499 725 ; +C -1 ; WX 611 ; N atilde ; B 40 -15 601 705 ; +C -1 ; WX 611 ; N aring ; B 40 -15 601 761 ; +C -1 ; WX 611 ; N ocircumflex ; B 32 -15 579 725 ; +C -1 ; WX 759 ; N Edieresis ; B 19 0 708 921 ; +C -1 ; WX 861 ; N threequarters ; B 15 -15 838 705 ; +C -1 ; WX 611 ; N ydieresis ; B 12 -205 599 694 ; +C -1 ; WX 611 ; N yacute ; B 12 -205 599 737 ; +C -1 ; WX 370 ; N iacute ; B 26 0 350 737 ; +C -1 ; WX 759 ; N Acircumflex ; B -19 0 778 952 ; +C -1 ; WX 833 ; N Uacute ; B 14 -15 825 964 ; +C -1 ; WX 574 ; N eacute ; B 32 -15 542 737 ; +C -1 ; WX 833 ; N Ograve ; B 39 -15 794 964 ; +C -1 ; WX 611 ; N agrave ; B 40 -15 601 737 ; +C -1 ; WX 833 ; N Udieresis ; B 14 -15 825 921 ; +C -1 ; WX 611 ; N acircumflex ; B 40 -15 601 725 ; +C -1 ; WX 444 ; N Igrave ; B 29 0 415 964 ; +C -1 ; WX 344 ; N twosuperior ; B -3 282 350 705 ; +C -1 ; WX 833 ; N Ugrave ; B 14 -15 825 964 ; +C -1 ; WX 861 ; N onequarter ; B 31 -15 838 705 ; +C -1 ; WX 833 ; N Ucircumflex ; B 14 -15 825 952 ; +C -1 ; WX 667 ; N Scaron ; B 51 -15 634 952 ; +C -1 ; WX 444 ; N Idieresis ; B 29 0 415 921 ; +C -1 ; WX 370 ; N idieresis ; B 7 0 364 694 ; +C -1 ; WX 759 ; N Egrave ; B 19 0 708 964 ; +C -1 ; WX 833 ; N Oacute ; B 39 -15 794 964 ; +C -1 ; WX 606 ; N divide ; B 50 -40 556 546 ; +C -1 ; WX 759 ; N Atilde ; B -19 0 778 932 ; +C -1 ; WX 759 ; N Aring ; B -19 0 778 988 ; +C -1 ; WX 833 ; N Odieresis ; B 39 -15 794 921 ; +C -1 ; WX 759 ; N Adieresis ; B -19 0 778 921 ; +C -1 ; WX 833 ; N Ntilde ; B 5 -10 828 932 ; +C -1 ; WX 667 ; N Zcaron ; B 28 0 639 952 ; +C -1 ; WX 759 ; N Thorn ; B 24 0 735 722 ; +C -1 ; WX 444 ; N Iacute ; B 29 0 415 964 ; +C -1 ; WX 606 ; N plusminus ; B 50 0 556 506 ; +C -1 ; WX 606 ; N multiply ; B 65 15 541 491 ; +C -1 ; WX 759 ; N Eacute ; B 19 0 708 964 ; +C -1 ; WX 722 ; N Ydieresis ; B -12 0 734 921 ; +C -1 ; WX 344 ; N onesuperior ; B 31 282 309 705 ; +C -1 ; WX 685 ; N ugrave ; B 17 -15 668 737 ; +C -1 ; WX 606 ; N logicalnot ; B 50 103 556 403 ; +C -1 ; WX 685 ; N ntilde ; B 17 0 662 705 ; +C -1 ; WX 833 ; N Otilde ; B 39 -15 794 932 ; +C -1 ; WX 611 ; N otilde ; B 32 -15 579 705 ; +C -1 ; WX 778 ; N Ccedilla ; B 39 -224 723 737 ; +C -1 ; WX 759 ; N Agrave ; B -19 0 778 964 ; +C -1 ; WX 861 ; N onehalf ; B 31 -15 838 705 ; +C -1 ; WX 833 ; N Eth ; B 19 0 794 722 ; +C -1 ; WX 400 ; N degree ; B 57 419 343 705 ; +C -1 ; WX 722 ; N Yacute ; B -12 0 734 964 ; +C -1 ; WX 833 ; N Ocircumflex ; B 39 -15 794 952 ; +C -1 ; WX 611 ; N oacute ; B 32 -15 579 737 ; +C -1 ; WX 685 ; N mu ; B 17 -205 668 475 ; +C -1 ; WX 606 ; N minus ; B 50 199 556 307 ; +C -1 ; WX 611 ; N eth ; B 32 -15 579 737 ; +C -1 ; WX 611 ; N odieresis ; B 32 -15 579 694 ; +C -1 ; WX 747 ; N copyright ; B -2 -15 750 737 ; +C -1 ; WX 606 ; N brokenbar ; B 249 -175 357 675 ; +EndCharMetrics +StartKernData +StartKernPairs 128 + +KPX A y -18 +KPX A w -18 +KPX A v -18 +KPX A quoteright -74 +KPX A quotedblright -74 +KPX A Y -91 +KPX A W -74 +KPX A V -74 +KPX A U -18 +KPX A T -55 + +KPX C period -18 +KPX C comma -18 + +KPX D period -25 +KPX D comma -25 + +KPX F r -18 +KPX F period -125 +KPX F o -55 +KPX F i -18 +KPX F e -55 +KPX F comma -125 +KPX F a -74 + +KPX J u -18 +KPX J period -55 +KPX J o -18 +KPX J e -18 +KPX J comma -55 +KPX J a -18 +KPX J A -18 + +KPX K y -25 +KPX K u -18 + +KPX L y -25 +KPX L quoteright -100 +KPX L quotedblright -100 +KPX L Y -74 +KPX L W -74 +KPX L V -100 +KPX L T -100 + +KPX N period -18 +KPX N comma -18 + +KPX O period -25 +KPX O comma -25 +KPX O T 10 + +KPX P period -150 +KPX P o -55 +KPX P e -55 +KPX P comma -150 +KPX P a -55 +KPX P A -74 + +KPX S period -18 +KPX S comma -18 + +KPX T u -18 +KPX T r -18 +KPX T period -100 +KPX T o -74 +KPX T i -18 +KPX T hyphen -125 +KPX T e -74 +KPX T comma -100 +KPX T a -74 +KPX T O 10 +KPX T A -55 + +KPX U period -25 +KPX U comma -25 +KPX U A -18 + +KPX V u -55 +KPX V semicolon -37 +KPX V period -125 +KPX V o -74 +KPX V i -18 +KPX V hyphen -100 +KPX V e -74 +KPX V comma -125 +KPX V colon -37 +KPX V a -74 +KPX V A -74 + +KPX W y -25 +KPX W u -37 +KPX W semicolon -55 +KPX W period -100 +KPX W o -74 +KPX W i -18 +KPX W hyphen -100 +KPX W e -74 +KPX W comma -100 +KPX W colon -55 +KPX W a -74 +KPX W A -74 + +KPX Y u -55 +KPX Y semicolon -25 +KPX Y period -100 +KPX Y o -100 +KPX Y i -18 +KPX Y hyphen -125 +KPX Y e -100 +KPX Y comma -100 +KPX Y colon -25 +KPX Y a -100 +KPX Y A -91 + +KPX colon space -18 + +KPX comma space -18 +KPX comma quoteright -18 +KPX comma quotedblright -18 + +KPX f quoteright 75 +KPX f quotedblright 75 + +KPX period space -18 +KPX period quoteright -18 +KPX period quotedblright -18 + +KPX quotedblleft A -74 + +KPX quotedblright space -18 + +KPX quoteleft A -74 + +KPX quoteright s -25 +KPX quoteright d -25 + +KPX r period -74 +KPX r comma -74 + +KPX semicolon space -18 + +KPX space quoteleft -18 +KPX space quotedblleft -18 +KPX space Y -18 +KPX space W -18 +KPX space V -18 +KPX space T -18 +KPX space A -18 + +KPX v period -100 +KPX v comma -100 + +KPX w period -100 +KPX w comma -100 + +KPX y period -100 +KPX y comma -100 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 213 227 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 213 227 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 213 227 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 213 227 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 213 227 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 213 227 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 213 227 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 213 227 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 213 227 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 213 227 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 56 227 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 56 227 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 56 227 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 56 227 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 250 227 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 250 227 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 250 227 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 250 227 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 250 227 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 250 227 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 167 227 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 250 227 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 250 227 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 250 227 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 250 227 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 195 227 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 195 227 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 167 227 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 139 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 139 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 139 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 139 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 139 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 139 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 121 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 121 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 121 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 121 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 19 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 19 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 19 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 19 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 176 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 139 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 139 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 139 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 139 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 139 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 84 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 176 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 176 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 176 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 176 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 139 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 139 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 102 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-Bd+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-Bd+ new file mode 100755 index 0000000000000..d5e3a42f33402 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-Bd+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 778 ; N Ccaron ; B 39 -15 723 966 ; +C -1 ; WX 556 ; N ccaron ; B 32 -15 524 725 ; +C -1 ; WX 833 ; N Dcaron ; B 19 0 794 966 ; +C -1 ; WX 806 ; N dcaron ; B 32 -15 862 811 ; +C -1 ; WX 759 ; N Ecaron ; B 19 0 708 966 ; +C -1 ; WX 574 ; N ecaron ; B 32 -15 542 725 ; +C -1 ; WX 722 ; N Lcaron ; B 19 0 703 794 ; +C -1 ; WX 722 ; N Lacute ; B 19 0 703 978 ; +C -1 ; WX 491 ; N lcaron ; B 17 0 547 811 ; +C -1 ; WX 352 ; N lacute ; B 17 0 365 978 ; +C -1 ; WX 833 ; N Ncaron ; B 5 -10 828 966 ; +C -1 ; WX 685 ; N ncaron ; B 17 0 662 725 ; +C -1 ; WX 815 ; N Rcaron ; B 19 -15 815 966 ; +C -1 ; WX 815 ; N Racute ; B 19 -15 815 978 ; +C -1 ; WX 519 ; N rcaron ; B 17 0 516 725 ; +C -1 ; WX 519 ; N racute ; B 17 0 516 737 ; +C -1 ; WX 722 ; N Tcaron ; B 16 0 706 966 ; +C -1 ; WX 565 ; N tcaron ; B 21 -15 623 737 ; +C -1 ; WX 833 ; N Uring ; B 14 -15 825 966 ; +C -1 ; WX 685 ; N uring ; B 17 -15 668 761 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 290 241 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 136 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 250 241 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 642 74 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 213 241 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 120 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 413 57 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 194 241 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 327 74 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 34 241 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 250 241 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 176 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 241 241 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 288 241 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 93 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 118 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 194 241 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 403 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 250 205 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 176 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-BdIt b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-BdIt new file mode 100755 index 0000000000000..7871147e0f7bc --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-BdIt @@ -0,0 +1,602 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1991 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Tue May 28 16:56:07 1991 +Comment UniqueID 35034 +Comment VMusage 31030 37922 +FontName NewCenturySchlbk-BoldItalic +FullName New Century Schoolbook Bold Italic +FamilyName New Century Schoolbook +Weight Bold +ItalicAngle -16 +IsFixedPitch false +FontBBox -205 -250 1147 991 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.007 +Notice Copyright (c) 1985, 1987, 1989, 1991 Adobe Systems Incorporated. All Rights Reserved. +EncodingScheme AdobeStandardEncoding +CapHeight 722 +XHeight 477 +Ascender 737 +Descender -205 +StartCharMetrics 228 +C 32 ; WX 287 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 0 -15 333 737 ; +C 34 ; WX 400 ; N quotedbl ; B 66 388 428 737 ; +C 35 ; WX 574 ; N numbersign ; B 30 0 544 690 ; +C 36 ; WX 574 ; N dollar ; B 9 -120 565 810 ; +C 37 ; WX 889 ; N percent ; B 54 -28 835 727 ; +C 38 ; WX 889 ; N ampersand ; B 32 -15 823 737 ; +C 39 ; WX 259 ; N quoteright ; B 48 388 275 737 ; +C 40 ; WX 407 ; N parenleft ; B 72 -117 454 745 ; +C 41 ; WX 407 ; N parenright ; B -70 -117 310 745 ; +C 42 ; WX 500 ; N asterisk ; B 58 301 498 737 ; +C 43 ; WX 606 ; N plus ; B 50 0 556 506 ; +C 44 ; WX 287 ; N comma ; B -57 -192 170 157 ; +C 45 ; WX 333 ; N hyphen ; B 2 177 263 299 ; +C 46 ; WX 287 ; N period ; B -20 -15 152 157 ; +C 47 ; WX 278 ; N slash ; B -41 -15 320 737 ; +C 48 ; WX 574 ; N zero ; B 21 -15 553 705 ; +C 49 ; WX 574 ; N one ; B 25 0 489 705 ; +C 50 ; WX 574 ; N two ; B -38 -3 538 705 ; +C 51 ; WX 574 ; N three ; B -7 -15 536 705 ; +C 52 ; WX 574 ; N four ; B -13 0 544 705 ; +C 53 ; WX 574 ; N five ; B 0 -15 574 705 ; +C 54 ; WX 574 ; N six ; B 31 -15 574 705 ; +C 55 ; WX 574 ; N seven ; B 64 -15 593 705 ; +C 56 ; WX 574 ; N eight ; B 0 -15 552 705 ; +C 57 ; WX 574 ; N nine ; B 0 -15 543 705 ; +C 58 ; WX 287 ; N colon ; B -20 -15 237 477 ; +C 59 ; WX 287 ; N semicolon ; B -57 -192 237 477 ; +C 60 ; WX 606 ; N less ; B 50 -9 556 515 ; +C 61 ; WX 606 ; N equal ; B 50 103 556 403 ; +C 62 ; WX 606 ; N greater ; B 50 -8 556 514 ; +C 63 ; WX 481 ; N question ; B 79 -15 451 737 ; +C 64 ; WX 747 ; N at ; B -4 -15 751 737 ; +C 65 ; WX 741 ; N A ; B -75 0 716 737 ; +C 66 ; WX 759 ; N B ; B -50 0 721 722 ; +C 67 ; WX 759 ; N C ; B 37 -15 759 737 ; +C 68 ; WX 833 ; N D ; B -47 0 796 722 ; +C 69 ; WX 741 ; N E ; B -41 0 730 722 ; +C 70 ; WX 704 ; N F ; B -41 0 730 722 ; +C 71 ; WX 815 ; N G ; B 37 -15 805 737 ; +C 72 ; WX 870 ; N H ; B -41 0 911 722 ; +C 73 ; WX 444 ; N I ; B -41 0 485 722 ; +C 74 ; WX 667 ; N J ; B -20 -15 708 722 ; +C 75 ; WX 778 ; N K ; B -41 0 832 722 ; +C 76 ; WX 704 ; N L ; B -41 0 670 722 ; +C 77 ; WX 944 ; N M ; B -44 0 988 722 ; +C 78 ; WX 852 ; N N ; B -61 -10 913 722 ; +C 79 ; WX 833 ; N O ; B 37 -15 796 737 ; +C 80 ; WX 741 ; N P ; B -41 0 730 722 ; +C 81 ; WX 833 ; N Q ; B 37 -189 796 737 ; +C 82 ; WX 796 ; N R ; B -41 -15 749 722 ; +C 83 ; WX 685 ; N S ; B 1 -15 666 737 ; +C 84 ; WX 722 ; N T ; B 41 0 759 722 ; +C 85 ; WX 833 ; N U ; B 88 -15 900 722 ; +C 86 ; WX 741 ; N V ; B 32 -10 802 722 ; +C 87 ; WX 944 ; N W ; B 40 -10 1000 722 ; +C 88 ; WX 741 ; N X ; B -82 0 801 722 ; +C 89 ; WX 704 ; N Y ; B 13 0 775 722 ; +C 90 ; WX 704 ; N Z ; B -33 0 711 722 ; +C 91 ; WX 407 ; N bracketleft ; B 1 -109 464 737 ; +C 92 ; WX 606 ; N backslash ; B 161 -15 445 737 ; +C 93 ; WX 407 ; N bracketright ; B -101 -109 362 737 ; +C 94 ; WX 606 ; N asciicircum ; B 66 325 540 690 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 259 ; N quoteleft ; B 47 388 274 737 ; +C 97 ; WX 667 ; N a ; B 6 -15 636 477 ; +C 98 ; WX 611 ; N b ; B 29 -15 557 737 ; +C 99 ; WX 537 ; N c ; B 0 -15 482 477 ; +C 100 ; WX 667 ; N d ; B 0 -15 660 737 ; +C 101 ; WX 519 ; N e ; B 0 -15 479 477 ; +C 102 ; WX 389 ; N f ; B -48 -205 550 737 ; L i fi ; L l fl ; +C 103 ; WX 611 ; N g ; B -63 -205 604 528 ; +C 104 ; WX 685 ; N h ; B 0 -15 639 737 ; +C 105 ; WX 389 ; N i ; B 32 -15 345 737 ; +C 106 ; WX 370 ; N j ; B -205 -205 347 737 ; +C 107 ; WX 648 ; N k ; B -11 -15 578 737 ; +C 108 ; WX 389 ; N l ; B 32 -15 375 737 ; +C 109 ; WX 944 ; N m ; B 0 -15 909 477 ; +C 110 ; WX 685 ; N n ; B 0 -15 639 477 ; +C 111 ; WX 574 ; N o ; B 0 -15 530 477 ; +C 112 ; WX 648 ; N p ; B -119 -205 590 477 ; +C 113 ; WX 630 ; N q ; B 0 -205 587 477 ; +C 114 ; WX 519 ; N r ; B 0 0 527 486 ; +C 115 ; WX 481 ; N s ; B 0 -15 435 477 ; +C 116 ; WX 407 ; N t ; B 24 -15 403 650 ; +C 117 ; WX 685 ; N u ; B 30 -15 635 477 ; +C 118 ; WX 556 ; N v ; B 30 -15 496 477 ; +C 119 ; WX 833 ; N w ; B 30 -15 773 477 ; +C 120 ; WX 574 ; N x ; B -46 -15 574 477 ; +C 121 ; WX 519 ; N y ; B -66 -205 493 477 ; +C 122 ; WX 519 ; N z ; B -19 -15 473 477 ; +C 123 ; WX 407 ; N braceleft ; B 52 -109 408 737 ; +C 124 ; WX 606 ; N bar ; B 249 -250 357 750 ; +C 125 ; WX 407 ; N braceright ; B -25 -109 331 737 ; +C 126 ; WX 606 ; N asciitilde ; B 72 160 534 346 ; +C 161 ; WX 333 ; N exclamdown ; B -44 -205 289 547 ; +C 162 ; WX 574 ; N cent ; B 30 -144 512 578 ; +C 163 ; WX 574 ; N sterling ; B -18 -15 566 705 ; +C 164 ; WX 167 ; N fraction ; B -166 -15 333 705 ; +C 165 ; WX 574 ; N yen ; B 17 0 629 690 ; +C 166 ; WX 574 ; N florin ; B -43 -205 575 737 ; +C 167 ; WX 500 ; N section ; B -30 -146 515 737 ; +C 168 ; WX 574 ; N currency ; B 27 84 547 605 ; +C 169 ; WX 287 ; N quotesingle ; B 112 388 250 737 ; +C 170 ; WX 481 ; N quotedblleft ; B 54 388 521 737 ; +C 171 ; WX 481 ; N guillemotleft ; B -35 69 449 407 ; +C 172 ; WX 278 ; N guilsinglleft ; B -25 69 244 407 ; +C 173 ; WX 278 ; N guilsinglright ; B -26 69 243 407 ; +C 174 ; WX 685 ; N fi ; B -70 -205 641 737 ; +C 175 ; WX 685 ; N fl ; B -70 -205 671 737 ; +C 177 ; WX 500 ; N endash ; B -47 189 479 287 ; +C 178 ; WX 500 ; N dagger ; B 48 -146 508 737 ; +C 179 ; WX 500 ; N daggerdbl ; B -60 -150 508 737 ; +C 180 ; WX 287 ; N periodcentered ; B 57 200 229 372 ; +C 182 ; WX 650 ; N paragraph ; B 25 -131 681 722 ; +C 183 ; WX 606 ; N bullet ; B 122 180 484 542 ; +C 184 ; WX 259 ; N quotesinglbase ; B -57 -192 170 157 ; +C 185 ; WX 481 ; N quotedblbase ; B -57 -192 412 157 ; +C 186 ; WX 481 ; N quotedblright ; B 43 388 510 737 ; +C 187 ; WX 481 ; N guillemotright ; B -31 69 453 407 ; +C 188 ; WX 1000 ; N ellipsis ; B 81 -15 919 157 ; +C 189 ; WX 1167 ; N perthousand ; B 20 -28 1147 727 ; +C 191 ; WX 481 ; N questiondown ; B 0 -205 372 547 ; +C 193 ; WX 333 ; N grave ; B 74 538 294 722 ; +C 194 ; WX 333 ; N acute ; B 123 538 372 722 ; +C 195 ; WX 333 ; N circumflex ; B 23 533 365 705 ; +C 196 ; WX 333 ; N tilde ; B 28 561 398 690 ; +C 197 ; WX 333 ; N macron ; B 47 573 404 649 ; +C 198 ; WX 333 ; N breve ; B 67 535 390 698 ; +C 199 ; WX 333 ; N dotaccent ; B 145 546 289 690 ; +C 200 ; WX 333 ; N dieresis ; B 33 546 393 690 ; +C 202 ; WX 333 ; N ring ; B 111 522 335 746 ; +C 203 ; WX 333 ; N cedilla ; B -21 -220 225 3 ; +C 205 ; WX 333 ; N hungarumlaut ; B 15 538 480 722 ; +C 206 ; WX 333 ; N ogonek ; B 68 -155 246 -10 ; +C 207 ; WX 333 ; N caron ; B 60 531 403 705 ; +C 208 ; WX 1000 ; N emdash ; B -47 189 979 287 ; +C 225 ; WX 889 ; N AE ; B -86 0 915 722 ; +C 227 ; WX 412 ; N ordfeminine ; B 47 407 460 705 ; +C 232 ; WX 704 ; N Lslash ; B -41 0 670 722 ; +C 233 ; WX 833 ; N Oslash ; B 35 -68 798 790 ; +C 234 ; WX 963 ; N OE ; B 29 0 989 722 ; +C 235 ; WX 356 ; N ordmasculine ; B 42 407 394 705 ; +C 241 ; WX 815 ; N ae ; B -18 -15 775 477 ; +C 245 ; WX 389 ; N dotlessi ; B 32 -15 345 477 ; +C 248 ; WX 389 ; N lslash ; B 5 -15 390 737 ; +C 249 ; WX 574 ; N oslash ; B 0 -121 530 583 ; +C 250 ; WX 852 ; N oe ; B -6 -15 812 477 ; +C 251 ; WX 574 ; N germandbls ; B -91 -205 540 737 ; +C -1 ; WX 519 ; N ecircumflex ; B 0 -15 479 705 ; +C -1 ; WX 519 ; N edieresis ; B 0 -15 486 690 ; +C -1 ; WX 667 ; N aacute ; B 6 -15 636 722 ; +C -1 ; WX 747 ; N registered ; B -2 -15 750 737 ; +C -1 ; WX 389 ; N icircumflex ; B 21 -15 363 698 ; +C -1 ; WX 685 ; N udieresis ; B 30 -15 635 690 ; +C -1 ; WX 574 ; N ograve ; B 0 -15 530 722 ; +C -1 ; WX 685 ; N uacute ; B 30 -15 635 722 ; +C -1 ; WX 685 ; N ucircumflex ; B 30 -15 635 705 ; +C -1 ; WX 741 ; N Aacute ; B -75 0 716 947 ; +C -1 ; WX 389 ; N igrave ; B 32 -15 345 715 ; +C -1 ; WX 444 ; N Icircumflex ; B -41 0 485 930 ; +C -1 ; WX 537 ; N ccedilla ; B 0 -220 482 477 ; +C -1 ; WX 667 ; N adieresis ; B 6 -15 636 690 ; +C -1 ; WX 741 ; N Ecircumflex ; B -41 0 730 930 ; +C -1 ; WX 481 ; N scaron ; B 0 -15 477 705 ; +C -1 ; WX 648 ; N thorn ; B -119 -205 590 737 ; +C -1 ; WX 950 ; N trademark ; B 42 317 1017 722 ; +C -1 ; WX 519 ; N egrave ; B 0 -15 479 722 ; +C -1 ; WX 344 ; N threesuperior ; B 3 273 361 705 ; +C -1 ; WX 519 ; N zcaron ; B -19 -15 473 695 ; +C -1 ; WX 667 ; N atilde ; B 6 -15 636 690 ; +C -1 ; WX 667 ; N aring ; B 6 -15 636 746 ; +C -1 ; WX 574 ; N ocircumflex ; B 0 -15 530 705 ; +C -1 ; WX 741 ; N Edieresis ; B -41 0 730 915 ; +C -1 ; WX 861 ; N threequarters ; B 35 -15 789 705 ; +C -1 ; WX 519 ; N ydieresis ; B -66 -205 493 690 ; +C -1 ; WX 519 ; N yacute ; B -66 -205 493 722 ; +C -1 ; WX 389 ; N iacute ; B 32 -15 370 715 ; +C -1 ; WX 741 ; N Acircumflex ; B -75 0 716 930 ; +C -1 ; WX 833 ; N Uacute ; B 88 -15 900 947 ; +C -1 ; WX 519 ; N eacute ; B 0 -15 479 722 ; +C -1 ; WX 833 ; N Ograve ; B 37 -15 796 947 ; +C -1 ; WX 667 ; N agrave ; B 6 -15 636 722 ; +C -1 ; WX 833 ; N Udieresis ; B 88 -15 900 915 ; +C -1 ; WX 667 ; N acircumflex ; B 6 -15 636 705 ; +C -1 ; WX 444 ; N Igrave ; B -41 0 485 947 ; +C -1 ; WX 344 ; N twosuperior ; B -17 280 362 705 ; +C -1 ; WX 833 ; N Ugrave ; B 88 -15 900 947 ; +C -1 ; WX 861 ; N onequarter ; B 17 -15 789 705 ; +C -1 ; WX 833 ; N Ucircumflex ; B 88 -15 900 930 ; +C -1 ; WX 685 ; N Scaron ; B 1 -15 666 930 ; +C -1 ; WX 444 ; N Idieresis ; B -41 0 509 915 ; +C -1 ; WX 389 ; N idieresis ; B 31 -15 391 683 ; +C -1 ; WX 741 ; N Egrave ; B -41 0 730 947 ; +C -1 ; WX 833 ; N Oacute ; B 37 -15 796 947 ; +C -1 ; WX 606 ; N divide ; B 50 -40 556 546 ; +C -1 ; WX 741 ; N Atilde ; B -75 0 716 915 ; +C -1 ; WX 741 ; N Aring ; B -75 0 716 991 ; +C -1 ; WX 833 ; N Odieresis ; B 37 -15 796 915 ; +C -1 ; WX 741 ; N Adieresis ; B -75 0 716 915 ; +C -1 ; WX 852 ; N Ntilde ; B -61 -10 913 915 ; +C -1 ; WX 704 ; N Zcaron ; B -33 0 711 930 ; +C -1 ; WX 741 ; N Thorn ; B -41 0 690 722 ; +C -1 ; WX 444 ; N Iacute ; B -41 0 488 947 ; +C -1 ; WX 606 ; N plusminus ; B 50 0 556 506 ; +C -1 ; WX 606 ; N multiply ; B 65 15 541 491 ; +C -1 ; WX 741 ; N Eacute ; B -41 0 730 947 ; +C -1 ; WX 704 ; N Ydieresis ; B 13 0 775 915 ; +C -1 ; WX 344 ; N onesuperior ; B 19 282 326 705 ; +C -1 ; WX 685 ; N ugrave ; B 30 -15 635 722 ; +C -1 ; WX 606 ; N logicalnot ; B 50 103 556 403 ; +C -1 ; WX 685 ; N ntilde ; B 0 -15 639 690 ; +C -1 ; WX 833 ; N Otilde ; B 37 -15 796 915 ; +C -1 ; WX 574 ; N otilde ; B 0 -15 530 690 ; +C -1 ; WX 759 ; N Ccedilla ; B 37 -220 759 737 ; +C -1 ; WX 741 ; N Agrave ; B -75 0 716 947 ; +C -1 ; WX 861 ; N onehalf ; B 17 -15 798 705 ; +C -1 ; WX 833 ; N Eth ; B -47 0 796 722 ; +C -1 ; WX 400 ; N degree ; B 86 419 372 705 ; +C -1 ; WX 704 ; N Yacute ; B 13 0 775 947 ; +C -1 ; WX 833 ; N Ocircumflex ; B 37 -15 796 930 ; +C -1 ; WX 574 ; N oacute ; B 0 -15 530 722 ; +C -1 ; WX 685 ; N mu ; B -89 -205 635 477 ; +C -1 ; WX 606 ; N minus ; B 50 199 556 307 ; +C -1 ; WX 574 ; N eth ; B 0 -15 530 752 ; +C -1 ; WX 574 ; N odieresis ; B 0 -15 530 690 ; +C -1 ; WX 747 ; N copyright ; B -2 -15 750 737 ; +C -1 ; WX 606 ; N brokenbar ; B 249 -175 357 675 ; +EndCharMetrics +StartKernData +StartKernPairs 239 + +KPX A y -33 +KPX A w -25 +KPX A v -10 +KPX A u -15 +KPX A quoteright -95 +KPX A quotedblright -95 +KPX A Y -70 +KPX A W -84 +KPX A V -100 +KPX A U -32 +KPX A T 5 +KPX A Q 5 +KPX A O 5 +KPX A G 5 +KPX A C 5 + +KPX B period 15 +KPX B comma 15 +KPX B U 15 +KPX B A -11 + +KPX C A -5 + +KPX D period -11 +KPX D comma -11 +KPX D Y 6 +KPX D W -11 +KPX D V -18 + +KPX F r -27 +KPX F period -91 +KPX F o -47 +KPX F i -41 +KPX F e -41 +KPX F comma -91 +KPX F a -47 +KPX F A -79 + +KPX J u -39 +KPX J period -74 +KPX J o -40 +KPX J e -33 +KPX J comma -74 +KPX J a -40 +KPX J A -30 + +KPX K y -48 +KPX K u -4 +KPX K o -4 +KPX K e 18 + +KPX L y -30 +KPX L quoteright -100 +KPX L quotedblright -100 +KPX L Y -55 +KPX L W -69 +KPX L V -97 +KPX L T -75 + +KPX N period -49 +KPX N comma -49 + +KPX O period -18 +KPX O comma -18 +KPX O X -18 +KPX O W -15 +KPX O V -24 +KPX O A -5 + +KPX P period -100 +KPX P o -40 +KPX P e -33 +KPX P comma -100 +KPX P a -40 +KPX P A -80 + +KPX R W -14 +KPX R V -24 + +KPX S period -18 +KPX S comma -18 + +KPX T y -30 +KPX T w -30 +KPX T u -22 +KPX T r -9 +KPX T period -55 +KPX T o -40 +KPX T i -22 +KPX T hyphen -75 +KPX T h -9 +KPX T e -33 +KPX T comma -55 +KPX T a -40 +KPX T O 11 +KPX T A -60 + +KPX U period -25 +KPX U comma -25 +KPX U A -42 + +KPX V u -70 +KPX V semicolon 6 +KPX V period -94 +KPX V o -71 +KPX V i -35 +KPX V hyphen -94 +KPX V e -66 +KPX V comma -94 +KPX V colon -49 +KPX V a -55 +KPX V O -19 +KPX V G -12 +KPX V A -100 + +KPX W y -41 +KPX W u -25 +KPX W semicolon -22 +KPX W period -86 +KPX W o -33 +KPX W i -27 +KPX W hyphen -61 +KPX W h 5 +KPX W e -39 +KPX W comma -86 +KPX W colon -22 +KPX W a -33 +KPX W O -11 +KPX W A -66 + +KPX Y u -58 +KPX Y semicolon -55 +KPX Y period -91 +KPX Y o -77 +KPX Y i -22 +KPX Y hyphen -91 +KPX Y e -71 +KPX Y comma -91 +KPX Y colon -55 +KPX Y a -77 +KPX Y A -79 + +KPX a y -8 +KPX a w -8 +KPX a v 6 + +KPX b y -6 +KPX b v 8 +KPX b period 6 +KPX b comma 6 + +KPX c y -20 +KPX c period -8 +KPX c l -13 +KPX c k -8 +KPX c h -18 +KPX c comma -8 + +KPX colon space -18 + +KPX comma space -18 +KPX comma quoteright -18 +KPX comma quotedblright -18 + +KPX d y -15 +KPX d w -15 + +KPX e y -15 +KPX e x -5 +KPX e w -15 +KPX e p -11 +KPX e g -4 +KPX e b -8 + +KPX f quoteright 105 +KPX f quotedblright 105 +KPX f period -28 +KPX f o 7 +KPX f l 7 +KPX f i 7 +KPX f e 14 +KPX f dotlessi 7 +KPX f comma -28 +KPX f a 8 + +KPX g y -11 +KPX g r 11 +KPX g period -5 +KPX g comma -5 + +KPX h y -20 + +KPX i v 7 + +KPX k y -15 +KPX k o -22 +KPX k e -16 + +KPX l y -7 +KPX l w -7 + +KPX m y -20 +KPX m u -11 + +KPX n y -20 +KPX n v -7 +KPX n u -11 + +KPX o y -11 +KPX o w -8 +KPX o v 6 + +KPX p y -4 +KPX p period 8 +KPX p comma 8 + +KPX period space -18 +KPX period quoteright -18 +KPX period quotedblright -18 + +KPX quotedblleft quoteleft 20 +KPX quotedblleft A -60 + +KPX quotedblright space -18 + +KPX quoteleft A -80 + +KPX quoteright v -16 +KPX quoteright t -22 +KPX quoteright s -46 +KPX quoteright r -9 +KPX quoteright l -22 +KPX quoteright d -41 + +KPX r y -20 +KPX r v -7 +KPX r u -11 +KPX r t -11 +KPX r semicolon 9 +KPX r s -20 +KPX r quoteright 9 +KPX r period -90 +KPX r p -17 +KPX r o -11 +KPX r l -14 +KPX r k 9 +KPX r i -14 +KPX r hyphen -16 +KPX r g -11 +KPX r e -7 +KPX r d -7 +KPX r comma -90 +KPX r colon 9 +KPX r a -11 + +KPX s period 11 +KPX s comma 11 + +KPX semicolon space -18 + +KPX space quotedblleft -18 +KPX space Y -18 +KPX space W -33 +KPX space V -24 +KPX space T -18 +KPX space A -22 + +KPX v period -11 +KPX v o -6 +KPX v comma -11 +KPX v a -6 + +KPX w period -17 +KPX w o -14 +KPX w e -8 +KPX w comma -17 +KPX w a -14 + +KPX x e 5 + +KPX y period -25 +KPX y o 8 +KPX y e 15 +KPX y comma -25 +KPX y a 8 + +KPX z e 4 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 259 225 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 259 225 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 259 225 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 259 225 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 229 245 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 259 225 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 296 225 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 296 225 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 296 225 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 296 225 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 116 225 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 116 225 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 116 225 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 116 225 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 326 225 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 315 225 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 315 225 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 315 225 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 315 225 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 315 225 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 206 225 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 340 225 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 340 225 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 340 225 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 340 225 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 246 225 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 236 225 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 226 225 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 167 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 167 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 167 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 167 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 167 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 167 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 93 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 93 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 93 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 93 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -2 -7 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -2 -7 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -2 -7 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -2 -7 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 176 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 121 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 121 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 121 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 121 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 121 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 74 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 176 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 176 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 176 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 176 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 93 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 93 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 63 -10 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-BdIt+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-BdIt+ new file mode 100755 index 0000000000000..bb4b48c617366 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-BdIt+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 759 ; N Ccaron ; B 37 -15 761 962 ; +C -1 ; WX 537 ; N ccaron ; B 0 -15 529 705 ; +C -1 ; WX 833 ; N Dcaron ; B -47 0 796 962 ; +C -1 ; WX 826 ; N dcaron ; B 0 -15 910 811 ; +C -1 ; WX 741 ; N Ecaron ; B -41 0 730 962 ; +C -1 ; WX 519 ; N ecaron ; B 0 -15 496 705 ; +C -1 ; WX 704 ; N Lcaron ; B -41 0 735 794 ; +C -1 ; WX 704 ; N Lacute ; B -41 0 670 972 ; +C -1 ; WX 548 ; N lcaron ; B 32 -15 625 811 ; +C -1 ; WX 389 ; N lacute ; B 32 -15 496 972 ; +C -1 ; WX 852 ; N Ncaron ; B -61 -10 913 962 ; +C -1 ; WX 685 ; N ncaron ; B 0 -15 639 705 ; +C -1 ; WX 796 ; N Rcaron ; B -41 -15 749 962 ; +C -1 ; WX 796 ; N Racute ; B -41 -15 749 972 ; +C -1 ; WX 519 ; N rcaron ; B 0 0 527 705 ; +C -1 ; WX 519 ; N racute ; B 0 0 527 722 ; +C -1 ; WX 722 ; N Tcaron ; B 41 0 759 962 ; +C -1 ; WX 566 ; N tcaron ; B 24 -15 653 737 ; +C -1 ; WX 833 ; N Uring ; B 88 -15 900 962 ; +C -1 ; WX 685 ; N uring ; B 30 -15 635 746 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 358 257 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 126 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 323 257 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 635 74 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 277 257 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 93 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 460 57 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 256 250 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 350 74 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 124 250 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 332 257 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 176 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 304 257 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 349 250 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 93 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 118 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 267 257 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 378 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 311 216 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 176 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-It b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-It new file mode 100755 index 0000000000000..6dfd6a254d468 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-It @@ -0,0 +1,536 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1991 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Tue May 28 16:40:04 1991 +Comment UniqueID 35028 +Comment VMusage 31423 38315 +FontName NewCenturySchlbk-Italic +FullName New Century Schoolbook Italic +FamilyName New Century Schoolbook +Weight Medium +ItalicAngle -16 +IsFixedPitch false +FontBBox -166 -250 994 958 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.006 +Notice Copyright (c) 1985, 1987, 1989, 1991 Adobe Systems Incorporated. All Rights Reserved. +EncodingScheme AdobeStandardEncoding +CapHeight 722 +XHeight 466 +Ascender 737 +Descender -205 +StartCharMetrics 228 +C 32 ; WX 278 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 17 -15 303 737 ; +C 34 ; WX 400 ; N quotedbl ; B 127 463 363 737 ; +C 35 ; WX 556 ; N numbersign ; B 28 0 528 690 ; +C 36 ; WX 556 ; N dollar ; B 4 -142 536 808 ; +C 37 ; WX 833 ; N percent ; B 43 -15 790 705 ; +C 38 ; WX 852 ; N ampersand ; B 24 -15 773 737 ; +C 39 ; WX 204 ; N quoteright ; B 39 463 229 737 ; +C 40 ; WX 333 ; N parenleft ; B 53 -117 411 745 ; +C 41 ; WX 333 ; N parenright ; B -93 -117 265 745 ; +C 42 ; WX 500 ; N asterisk ; B 80 318 500 737 ; +C 43 ; WX 606 ; N plus ; B 50 0 556 506 ; +C 44 ; WX 278 ; N comma ; B -39 -165 151 109 ; +C 45 ; WX 333 ; N hyphen ; B 32 202 259 274 ; +C 46 ; WX 278 ; N period ; B 17 -15 141 109 ; +C 47 ; WX 606 ; N slash ; B 132 -15 474 737 ; +C 48 ; WX 556 ; N zero ; B 30 -15 526 705 ; +C 49 ; WX 556 ; N one ; B 50 0 459 705 ; +C 50 ; WX 556 ; N two ; B -37 0 506 705 ; +C 51 ; WX 556 ; N three ; B -2 -15 506 705 ; +C 52 ; WX 556 ; N four ; B -8 0 512 705 ; +C 53 ; WX 556 ; N five ; B 4 -15 540 705 ; +C 54 ; WX 556 ; N six ; B 36 -15 548 705 ; +C 55 ; WX 556 ; N seven ; B 69 -15 561 705 ; +C 56 ; WX 556 ; N eight ; B 6 -15 526 705 ; +C 57 ; WX 556 ; N nine ; B 8 -15 520 705 ; +C 58 ; WX 278 ; N colon ; B 17 -15 229 466 ; +C 59 ; WX 278 ; N semicolon ; B -39 -165 229 466 ; +C 60 ; WX 606 ; N less ; B 36 -8 542 514 ; +C 61 ; WX 606 ; N equal ; B 50 117 556 389 ; +C 62 ; WX 606 ; N greater ; B 64 -8 570 514 ; +C 63 ; WX 444 ; N question ; B 102 -15 417 737 ; +C 64 ; WX 747 ; N at ; B -2 -15 750 737 ; +C 65 ; WX 704 ; N A ; B -87 0 668 737 ; +C 66 ; WX 722 ; N B ; B -33 0 670 722 ; +C 67 ; WX 722 ; N C ; B 40 -15 712 737 ; +C 68 ; WX 778 ; N D ; B -33 0 738 722 ; +C 69 ; WX 722 ; N E ; B -33 0 700 722 ; +C 70 ; WX 667 ; N F ; B -33 0 700 722 ; +C 71 ; WX 778 ; N G ; B 40 -15 763 737 ; +C 72 ; WX 833 ; N H ; B -33 0 866 722 ; +C 73 ; WX 407 ; N I ; B -33 0 435 722 ; +C 74 ; WX 611 ; N J ; B -14 -15 651 722 ; +C 75 ; WX 741 ; N K ; B -33 0 816 722 ; +C 76 ; WX 667 ; N L ; B -33 0 627 722 ; +C 77 ; WX 944 ; N M ; B -33 0 977 722 ; +C 78 ; WX 815 ; N N ; B -51 -15 866 722 ; +C 79 ; WX 778 ; N O ; B 40 -15 738 737 ; +C 80 ; WX 667 ; N P ; B -33 0 667 722 ; +C 81 ; WX 778 ; N Q ; B 40 -190 738 737 ; +C 82 ; WX 741 ; N R ; B -45 -15 692 722 ; +C 83 ; WX 667 ; N S ; B -6 -15 638 737 ; +C 84 ; WX 685 ; N T ; B 40 0 725 722 ; +C 85 ; WX 815 ; N U ; B 93 -15 867 722 ; +C 86 ; WX 704 ; N V ; B 36 -10 779 722 ; +C 87 ; WX 926 ; N W ; B 53 -10 978 722 ; +C 88 ; WX 704 ; N X ; B -75 0 779 722 ; +C 89 ; WX 685 ; N Y ; B 31 0 760 722 ; +C 90 ; WX 667 ; N Z ; B -25 0 667 722 ; +C 91 ; WX 333 ; N bracketleft ; B -55 -109 388 737 ; +C 92 ; WX 606 ; N backslash ; B 132 -15 474 737 ; +C 93 ; WX 333 ; N bracketright ; B -77 -109 366 737 ; +C 94 ; WX 606 ; N asciicircum ; B 89 325 517 690 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 204 ; N quoteleft ; B 39 463 229 737 ; +C 97 ; WX 574 ; N a ; B 2 -15 524 466 ; +C 98 ; WX 556 ; N b ; B 32 -15 488 737 ; +C 99 ; WX 444 ; N c ; B 2 -15 394 466 ; +C 100 ; WX 611 ; N d ; B 2 -15 585 737 ; +C 101 ; WX 444 ; N e ; B -6 -15 388 466 ; +C 102 ; WX 333 ; N f ; B -68 -205 470 737 ; L i fi ; L l fl ; +C 103 ; WX 537 ; N g ; B -79 -205 523 497 ; +C 104 ; WX 611 ; N h ; B 14 -15 562 737 ; +C 105 ; WX 333 ; N i ; B 29 -15 282 715 ; +C 106 ; WX 315 ; N j ; B -166 -205 318 715 ; +C 107 ; WX 556 ; N k ; B 0 -15 497 737 ; +C 108 ; WX 333 ; N l ; B 14 -15 292 737 ; +C 109 ; WX 889 ; N m ; B 14 -15 840 466 ; +C 110 ; WX 611 ; N n ; B 14 -15 562 466 ; +C 111 ; WX 500 ; N o ; B 2 -15 450 466 ; +C 112 ; WX 574 ; N p ; B -101 -205 506 466 ; +C 113 ; WX 556 ; N q ; B 2 -205 500 466 ; +C 114 ; WX 444 ; N r ; B 10 0 434 466 ; +C 115 ; WX 444 ; N s ; B 2 -15 394 466 ; +C 116 ; WX 352 ; N t ; B 24 -15 328 619 ; +C 117 ; WX 611 ; N u ; B 44 -15 556 466 ; +C 118 ; WX 519 ; N v ; B 31 -15 447 466 ; +C 119 ; WX 778 ; N w ; B 31 -15 706 466 ; +C 120 ; WX 500 ; N x ; B -33 -15 471 466 ; +C 121 ; WX 500 ; N y ; B -83 -205 450 466 ; +C 122 ; WX 463 ; N z ; B -33 -15 416 466 ; +C 123 ; WX 333 ; N braceleft ; B 38 -109 394 737 ; +C 124 ; WX 606 ; N bar ; B 267 -250 339 750 ; +C 125 ; WX 333 ; N braceright ; B -87 -109 269 737 ; +C 126 ; WX 606 ; N asciitilde ; B 72 184 534 322 ; +C 161 ; WX 333 ; N exclamdown ; B -22 -205 264 547 ; +C 162 ; WX 556 ; N cent ; B 62 -144 486 580 ; +C 163 ; WX 556 ; N sterling ; B -13 -15 544 705 ; +C 164 ; WX 167 ; N fraction ; B -134 -15 301 705 ; +C 165 ; WX 556 ; N yen ; B 40 0 624 690 ; +C 166 ; WX 556 ; N florin ; B -58 -205 569 737 ; +C 167 ; WX 500 ; N section ; B -10 -147 480 737 ; +C 168 ; WX 556 ; N currency ; B 26 93 530 597 ; +C 169 ; WX 278 ; N quotesingle ; B 151 463 237 737 ; +C 170 ; WX 389 ; N quotedblleft ; B 39 463 406 737 ; +C 171 ; WX 426 ; N guillemotleft ; B -15 74 402 402 ; +C 172 ; WX 333 ; N guilsinglleft ; B 40 74 259 402 ; +C 173 ; WX 333 ; N guilsinglright ; B 40 74 259 402 ; +C 174 ; WX 611 ; N fi ; B -68 -205 555 737 ; +C 175 ; WX 611 ; N fl ; B -68 -205 587 737 ; +C 177 ; WX 500 ; N endash ; B -27 208 487 268 ; +C 178 ; WX 500 ; N dagger ; B 51 -147 506 737 ; +C 179 ; WX 500 ; N daggerdbl ; B -54 -147 506 737 ; +C 180 ; WX 278 ; N periodcentered ; B 71 238 207 374 ; +C 182 ; WX 650 ; N paragraph ; B 48 -132 665 722 ; +C 183 ; WX 606 ; N bullet ; B 122 180 484 542 ; +C 184 ; WX 204 ; N quotesinglbase ; B -78 -165 112 109 ; +C 185 ; WX 389 ; N quotedblbase ; B -78 -165 289 109 ; +C 186 ; WX 389 ; N quotedblright ; B 39 463 406 737 ; +C 187 ; WX 426 ; N guillemotright ; B -15 74 402 402 ; +C 188 ; WX 1000 ; N ellipsis ; B 59 -15 849 109 ; +C 189 ; WX 1000 ; N perthousand ; B 6 -15 994 705 ; +C 191 ; WX 444 ; N questiondown ; B -3 -205 312 547 ; +C 193 ; WX 333 ; N grave ; B 71 518 262 690 ; +C 194 ; WX 333 ; N acute ; B 132 518 355 690 ; +C 195 ; WX 333 ; N circumflex ; B 37 518 331 690 ; +C 196 ; WX 333 ; N tilde ; B 52 547 383 649 ; +C 197 ; WX 333 ; N macron ; B 52 560 363 610 ; +C 198 ; WX 333 ; N breve ; B 69 518 370 677 ; +C 199 ; WX 333 ; N dotaccent ; B 146 544 248 646 ; +C 200 ; WX 333 ; N dieresis ; B 59 544 359 646 ; +C 202 ; WX 333 ; N ring ; B 114 512 314 712 ; +C 203 ; WX 333 ; N cedilla ; B 3 -215 215 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B 32 518 455 690 ; +C 206 ; WX 333 ; N ogonek ; B 68 -215 254 0 ; +C 207 ; WX 333 ; N caron ; B 73 518 378 690 ; +C 208 ; WX 1000 ; N emdash ; B -27 208 987 268 ; +C 225 ; WX 870 ; N AE ; B -87 0 888 722 ; +C 227 ; WX 422 ; N ordfeminine ; B 72 416 420 705 ; +C 232 ; WX 667 ; N Lslash ; B -33 0 627 722 ; +C 233 ; WX 778 ; N Oslash ; B 16 -68 748 780 ; +C 234 ; WX 981 ; N OE ; B 40 0 975 722 ; +C 235 ; WX 372 ; N ordmasculine ; B 66 416 370 705 ; +C 241 ; WX 722 ; N ae ; B -18 -15 666 466 ; +C 245 ; WX 333 ; N dotlessi ; B 29 -15 282 466 ; +C 248 ; WX 333 ; N lslash ; B -25 -15 340 737 ; +C 249 ; WX 500 ; N oslash ; B 2 -121 450 549 ; +C 250 ; WX 778 ; N oe ; B 2 -15 722 466 ; +C 251 ; WX 556 ; N germandbls ; B -76 -205 525 737 ; +C -1 ; WX 444 ; N ecircumflex ; B -6 -15 388 690 ; +C -1 ; WX 444 ; N edieresis ; B -6 -15 415 646 ; +C -1 ; WX 574 ; N aacute ; B 2 -15 524 690 ; +C -1 ; WX 747 ; N registered ; B -2 -15 750 737 ; +C -1 ; WX 333 ; N icircumflex ; B 29 -15 331 690 ; +C -1 ; WX 611 ; N udieresis ; B 44 -15 556 646 ; +C -1 ; WX 500 ; N ograve ; B 2 -15 450 690 ; +C -1 ; WX 611 ; N uacute ; B 44 -15 556 690 ; +C -1 ; WX 611 ; N ucircumflex ; B 44 -15 556 690 ; +C -1 ; WX 704 ; N Aacute ; B -87 0 668 946 ; +C -1 ; WX 333 ; N igrave ; B 29 -15 282 690 ; +C -1 ; WX 407 ; N Icircumflex ; B -33 0 435 946 ; +C -1 ; WX 444 ; N ccedilla ; B 2 -215 394 466 ; +C -1 ; WX 574 ; N adieresis ; B 2 -15 524 646 ; +C -1 ; WX 722 ; N Ecircumflex ; B -33 0 700 946 ; +C -1 ; WX 444 ; N scaron ; B 2 -15 434 690 ; +C -1 ; WX 574 ; N thorn ; B -101 -205 506 737 ; +C -1 ; WX 950 ; N trademark ; B 32 318 968 722 ; +C -1 ; WX 444 ; N egrave ; B -6 -15 388 690 ; +C -1 ; WX 333 ; N threesuperior ; B 22 273 359 705 ; +C -1 ; WX 463 ; N zcaron ; B -33 -15 443 690 ; +C -1 ; WX 574 ; N atilde ; B 2 -15 524 649 ; +C -1 ; WX 574 ; N aring ; B 2 -15 524 712 ; +C -1 ; WX 500 ; N ocircumflex ; B 2 -15 450 690 ; +C -1 ; WX 722 ; N Edieresis ; B -33 0 700 902 ; +C -1 ; WX 834 ; N threequarters ; B 22 -15 782 705 ; +C -1 ; WX 500 ; N ydieresis ; B -83 -205 450 646 ; +C -1 ; WX 500 ; N yacute ; B -83 -205 450 690 ; +C -1 ; WX 333 ; N iacute ; B 29 -15 355 690 ; +C -1 ; WX 704 ; N Acircumflex ; B -87 0 668 946 ; +C -1 ; WX 815 ; N Uacute ; B 93 -15 867 946 ; +C -1 ; WX 444 ; N eacute ; B -6 -15 411 690 ; +C -1 ; WX 778 ; N Ograve ; B 40 -15 738 946 ; +C -1 ; WX 574 ; N agrave ; B 2 -15 524 690 ; +C -1 ; WX 815 ; N Udieresis ; B 93 -15 867 902 ; +C -1 ; WX 574 ; N acircumflex ; B 2 -15 524 690 ; +C -1 ; WX 407 ; N Igrave ; B -33 0 435 946 ; +C -1 ; WX 333 ; N twosuperior ; B 0 282 359 705 ; +C -1 ; WX 815 ; N Ugrave ; B 93 -15 867 946 ; +C -1 ; WX 834 ; N onequarter ; B 34 -15 782 705 ; +C -1 ; WX 815 ; N Ucircumflex ; B 93 -15 867 946 ; +C -1 ; WX 667 ; N Scaron ; B -6 -15 638 946 ; +C -1 ; WX 407 ; N Idieresis ; B -33 0 456 902 ; +C -1 ; WX 333 ; N idieresis ; B 29 -15 359 646 ; +C -1 ; WX 722 ; N Egrave ; B -33 0 700 946 ; +C -1 ; WX 778 ; N Oacute ; B 40 -15 738 946 ; +C -1 ; WX 606 ; N divide ; B 50 -22 556 528 ; +C -1 ; WX 704 ; N Atilde ; B -87 0 668 905 ; +C -1 ; WX 704 ; N Aring ; B -87 0 668 958 ; +C -1 ; WX 778 ; N Odieresis ; B 40 -15 738 902 ; +C -1 ; WX 704 ; N Adieresis ; B -87 0 668 902 ; +C -1 ; WX 815 ; N Ntilde ; B -51 -15 866 905 ; +C -1 ; WX 667 ; N Zcaron ; B -25 0 667 946 ; +C -1 ; WX 667 ; N Thorn ; B -33 0 627 722 ; +C -1 ; WX 407 ; N Iacute ; B -33 0 452 946 ; +C -1 ; WX 606 ; N plusminus ; B 50 0 556 506 ; +C -1 ; WX 606 ; N multiply ; B 74 24 532 482 ; +C -1 ; WX 722 ; N Eacute ; B -33 0 700 946 ; +C -1 ; WX 685 ; N Ydieresis ; B 31 0 760 902 ; +C -1 ; WX 333 ; N onesuperior ; B 34 282 311 705 ; +C -1 ; WX 611 ; N ugrave ; B 44 -15 556 690 ; +C -1 ; WX 606 ; N logicalnot ; B 50 108 556 389 ; +C -1 ; WX 611 ; N ntilde ; B 14 -15 562 649 ; +C -1 ; WX 778 ; N Otilde ; B 40 -15 738 905 ; +C -1 ; WX 500 ; N otilde ; B 2 -15 467 649 ; +C -1 ; WX 722 ; N Ccedilla ; B 40 -215 712 737 ; +C -1 ; WX 704 ; N Agrave ; B -87 0 668 946 ; +C -1 ; WX 834 ; N onehalf ; B 34 -15 776 705 ; +C -1 ; WX 778 ; N Eth ; B -33 0 738 722 ; +C -1 ; WX 400 ; N degree ; B 86 419 372 705 ; +C -1 ; WX 685 ; N Yacute ; B 31 0 760 946 ; +C -1 ; WX 778 ; N Ocircumflex ; B 40 -15 738 946 ; +C -1 ; WX 500 ; N oacute ; B 2 -15 450 690 ; +C -1 ; WX 611 ; N mu ; B -60 -205 556 466 ; +C -1 ; WX 606 ; N minus ; B 50 217 556 289 ; +C -1 ; WX 500 ; N eth ; B 2 -15 450 737 ; +C -1 ; WX 500 ; N odieresis ; B 2 -15 450 646 ; +C -1 ; WX 747 ; N copyright ; B -2 -15 750 737 ; +C -1 ; WX 606 ; N brokenbar ; B 267 -175 339 675 ; +EndCharMetrics +StartKernData +StartKernPairs 181 + +KPX A y -55 +KPX A w -18 +KPX A v -18 +KPX A u -18 +KPX A quoteright -125 +KPX A quotedblright -125 +KPX A Y -55 +KPX A W -74 +KPX A V -74 +KPX A U -37 +KPX A T -30 +KPX A Q -18 +KPX A O -18 +KPX A G -18 +KPX A C -18 + +KPX B period -50 +KPX B comma -50 + +KPX C period -50 +KPX C comma -50 + +KPX D period -50 +KPX D comma -50 +KPX D Y -18 +KPX D W -18 +KPX D V -18 + +KPX F r -55 +KPX F period -125 +KPX F o -55 +KPX F i -10 +KPX F e -55 +KPX F comma -125 +KPX F a -55 +KPX F A -35 + +KPX G period -50 +KPX G comma -50 + +KPX J u -18 +KPX J period -100 +KPX J o -37 +KPX J e -37 +KPX J comma -100 +KPX J a -37 +KPX J A -18 + +KPX L y -50 +KPX L quoteright -125 +KPX L quotedblright -125 +KPX L Y -100 +KPX L W -100 +KPX L V -100 +KPX L T -100 + +KPX N period -60 +KPX N comma -60 + +KPX O period -50 +KPX O comma -50 +KPX O Y -18 +KPX O X -18 +KPX O V -18 +KPX O T 18 + +KPX P period -125 +KPX P o -55 +KPX P e -55 +KPX P comma -125 +KPX P a -55 +KPX P A -50 + +KPX Q period -20 +KPX Q comma -20 + +KPX R Y -18 +KPX R W -18 +KPX R V -18 +KPX R U -18 + +KPX S period -50 +KPX S comma -50 + +KPX T y -50 +KPX T w -50 +KPX T u -50 +KPX T semicolon -50 +KPX T r -50 +KPX T period -100 +KPX T o -74 +KPX T i -18 +KPX T hyphen -100 +KPX T h -25 +KPX T e -74 +KPX T comma -100 +KPX T colon -50 +KPX T a -74 +KPX T O 18 + +KPX U period -100 +KPX U comma -100 +KPX U A -18 + +KPX V u -75 +KPX V semicolon -75 +KPX V period -100 +KPX V o -75 +KPX V i -50 +KPX V hyphen -100 +KPX V e -75 +KPX V comma -100 +KPX V colon -75 +KPX V a -75 +KPX V A -37 + +KPX W y -55 +KPX W u -55 +KPX W semicolon -75 +KPX W period -100 +KPX W o -55 +KPX W i -20 +KPX W hyphen -75 +KPX W h -20 +KPX W e -55 +KPX W comma -100 +KPX W colon -75 +KPX W a -55 +KPX W A -55 + +KPX Y u -100 +KPX Y semicolon -75 +KPX Y period -100 +KPX Y o -100 +KPX Y i -25 +KPX Y hyphen -100 +KPX Y e -100 +KPX Y comma -100 +KPX Y colon -75 +KPX Y a -100 +KPX Y A -55 + +KPX b period -50 +KPX b comma -50 +KPX b b -10 + +KPX c period -50 +KPX c k -18 +KPX c h -18 +KPX c comma -50 + +KPX colon space -37 + +KPX comma space -37 +KPX comma quoteright -37 +KPX comma quotedblright -37 + +KPX e period -37 +KPX e comma -37 + +KPX f quoteright 75 +KPX f quotedblright 75 +KPX f period -75 +KPX f o -10 +KPX f comma -75 + +KPX g period -50 +KPX g comma -50 + +KPX l y -10 + +KPX o period -50 +KPX o comma -50 + +KPX p period -50 +KPX p comma -50 + +KPX period space -37 +KPX period quoteright -37 +KPX period quotedblright -37 + +KPX quotedblleft A -75 + +KPX quotedblright space -37 + +KPX quoteleft quoteleft -37 +KPX quoteleft A -75 + +KPX quoteright s -25 +KPX quoteright quoteright -37 +KPX quoteright d -37 + +KPX r semicolon -25 +KPX r s -10 +KPX r period -125 +KPX r k -18 +KPX r hyphen -75 +KPX r comma -125 +KPX r colon -25 + +KPX s period -50 +KPX s comma -50 + +KPX semicolon space -37 + +KPX space quoteleft -37 +KPX space quotedblleft -37 +KPX space Y -37 +KPX space W -37 +KPX space V -37 +KPX space T -37 +KPX space A -37 + +KPX v period -75 +KPX v comma -75 + +KPX w period -75 +KPX w comma -75 + +KPX y period -75 +KPX y comma -75 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 246 256 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 246 256 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 231 256 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 246 256 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 216 246 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 231 256 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 255 256 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 255 256 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 255 256 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 255 256 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 97 256 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 97 256 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 97 256 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 97 256 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 301 256 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 283 256 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 283 256 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 283 256 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 283 256 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 283 256 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 227 256 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 301 256 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 301 256 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 301 256 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 301 256 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 256 256 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 236 256 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 227 256 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 121 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 121 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 121 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 121 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 121 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 121 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 56 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 56 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 56 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 56 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 139 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 84 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 84 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 84 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 84 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 84 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 56 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 139 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 139 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 139 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 139 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 84 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 84 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 65 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-It+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-It+ new file mode 100755 index 0000000000000..48d6672b06825 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-It+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 722 ; N Ccaron ; B 40 -15 716 960 ; +C -1 ; WX 444 ; N ccaron ; B 2 -15 453 690 ; +C -1 ; WX 778 ; N Dcaron ; B -33 0 738 960 ; +C -1 ; WX 744 ; N dcaron ; B 2 -15 794 811 ; +C -1 ; WX 722 ; N Ecaron ; B -33 0 700 960 ; +C -1 ; WX 444 ; N ecaron ; B -6 -15 433 690 ; +C -1 ; WX 667 ; N Lcaron ; B -33 0 644 794 ; +C -1 ; WX 667 ; N Lacute ; B -33 0 627 960 ; +C -1 ; WX 466 ; N lcaron ; B 14 -15 501 811 ; +C -1 ; WX 333 ; N lacute ; B 14 -15 454 960 ; +C -1 ; WX 815 ; N Ncaron ; B -51 -15 866 960 ; +C -1 ; WX 611 ; N ncaron ; B 14 -15 562 690 ; +C -1 ; WX 741 ; N Rcaron ; B -45 -15 692 960 ; +C -1 ; WX 741 ; N Racute ; B -45 -15 692 960 ; +C -1 ; WX 444 ; N rcaron ; B 10 0 434 690 ; +C -1 ; WX 444 ; N racute ; B 10 0 434 690 ; +C -1 ; WX 685 ; N Tcaron ; B 40 0 725 960 ; +C -1 ; WX 485 ; N tcaron ; B 24 -15 537 737 ; +C -1 ; WX 815 ; N Uring ; B 93 -15 867 960 ; +C -1 ; WX 611 ; N uring ; B 44 -15 556 712 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 338 270 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 75 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 299 270 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 565 74 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 271 270 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 55 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 415 57 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 244 270 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 272 74 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 99 270 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 318 270 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 139 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 281 270 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 323 270 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 55 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 77 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 253 270 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 308 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 312 248 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 139 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-Rm b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-Rm new file mode 100755 index 0000000000000..b9f616cb5a203 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-Rm @@ -0,0 +1,524 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1991 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Tue May 28 16:31:51 1991 +Comment UniqueID 35025 +Comment VMusage 30420 37312 +FontName NewCenturySchlbk-Roman +FullName New Century Schoolbook Roman +FamilyName New Century Schoolbook +Weight Roman +ItalicAngle 0 +IsFixedPitch false +FontBBox -195 -250 1000 965 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.007 +Notice Copyright (c) 1985, 1987, 1989, 1991 Adobe Systems Incorporated. All Rights Reserved. +EncodingScheme AdobeStandardEncoding +CapHeight 722 +XHeight 464 +Ascender 737 +Descender -205 +StartCharMetrics 228 +C 32 ; WX 278 ; N space ; B 0 0 0 0 ; +C 33 ; WX 296 ; N exclam ; B 86 -15 210 737 ; +C 34 ; WX 389 ; N quotedbl ; B 61 443 328 737 ; +C 35 ; WX 556 ; N numbersign ; B 28 0 528 690 ; +C 36 ; WX 556 ; N dollar ; B 45 -138 511 813 ; +C 37 ; WX 833 ; N percent ; B 43 -15 790 705 ; +C 38 ; WX 815 ; N ampersand ; B 51 -15 775 737 ; +C 39 ; WX 204 ; N quoteright ; B 25 443 179 737 ; +C 40 ; WX 333 ; N parenleft ; B 40 -117 279 745 ; +C 41 ; WX 333 ; N parenright ; B 54 -117 293 745 ; +C 42 ; WX 500 ; N asterisk ; B 57 306 443 737 ; +C 43 ; WX 606 ; N plus ; B 50 0 556 506 ; +C 44 ; WX 278 ; N comma ; B 62 -185 216 109 ; +C 45 ; WX 333 ; N hyphen ; B 42 199 291 277 ; +C 46 ; WX 278 ; N period ; B 77 -15 201 109 ; +C 47 ; WX 278 ; N slash ; B -32 -15 310 737 ; +C 48 ; WX 556 ; N zero ; B 42 -15 514 705 ; +C 49 ; WX 556 ; N one ; B 100 0 496 705 ; +C 50 ; WX 556 ; N two ; B 35 0 505 705 ; +C 51 ; WX 556 ; N three ; B 42 -15 498 705 ; +C 52 ; WX 556 ; N four ; B 28 0 528 705 ; +C 53 ; WX 556 ; N five ; B 46 -15 502 705 ; +C 54 ; WX 556 ; N six ; B 41 -15 515 705 ; +C 55 ; WX 556 ; N seven ; B 59 -15 508 705 ; +C 56 ; WX 556 ; N eight ; B 42 -15 514 705 ; +C 57 ; WX 556 ; N nine ; B 41 -15 515 705 ; +C 58 ; WX 278 ; N colon ; B 77 -15 201 474 ; +C 59 ; WX 278 ; N semicolon ; B 62 -185 216 474 ; +C 60 ; WX 606 ; N less ; B 50 -8 556 514 ; +C 61 ; WX 606 ; N equal ; B 50 117 556 389 ; +C 62 ; WX 606 ; N greater ; B 50 -8 556 514 ; +C 63 ; WX 444 ; N question ; B 29 -15 415 737 ; +C 64 ; WX 737 ; N at ; B -8 -15 744 737 ; +C 65 ; WX 722 ; N A ; B -8 0 730 737 ; +C 66 ; WX 722 ; N B ; B 29 0 669 722 ; +C 67 ; WX 722 ; N C ; B 45 -15 668 737 ; +C 68 ; WX 778 ; N D ; B 29 0 733 722 ; +C 69 ; WX 722 ; N E ; B 29 0 663 722 ; +C 70 ; WX 667 ; N F ; B 29 0 638 722 ; +C 71 ; WX 778 ; N G ; B 45 -15 775 737 ; +C 72 ; WX 833 ; N H ; B 29 0 804 722 ; +C 73 ; WX 407 ; N I ; B 38 0 369 722 ; +C 74 ; WX 556 ; N J ; B 5 -15 540 722 ; +C 75 ; WX 778 ; N K ; B 29 0 803 722 ; +C 76 ; WX 667 ; N L ; B 29 0 644 722 ; +C 77 ; WX 944 ; N M ; B 29 0 915 722 ; +C 78 ; WX 815 ; N N ; B 24 -15 791 722 ; +C 79 ; WX 778 ; N O ; B 45 -15 733 737 ; +C 80 ; WX 667 ; N P ; B 29 0 650 722 ; +C 81 ; WX 778 ; N Q ; B 45 -190 748 737 ; +C 82 ; WX 722 ; N R ; B 29 -15 713 722 ; +C 83 ; WX 630 ; N S ; B 47 -15 583 737 ; +C 84 ; WX 667 ; N T ; B 19 0 648 722 ; +C 85 ; WX 815 ; N U ; B 16 -15 799 722 ; +C 86 ; WX 722 ; N V ; B -8 -10 730 722 ; +C 87 ; WX 981 ; N W ; B 5 -10 976 722 ; +C 88 ; WX 704 ; N X ; B -8 0 712 722 ; +C 89 ; WX 704 ; N Y ; B -11 0 715 722 ; +C 90 ; WX 611 ; N Z ; B 24 0 576 722 ; +C 91 ; WX 333 ; N bracketleft ; B 126 -109 315 737 ; +C 92 ; WX 606 ; N backslash ; B 132 -15 474 737 ; +C 93 ; WX 333 ; N bracketright ; B 18 -109 207 737 ; +C 94 ; WX 606 ; N asciicircum ; B 89 325 517 690 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 204 ; N quoteleft ; B 25 443 179 737 ; +C 97 ; WX 556 ; N a ; B 44 -15 542 479 ; +C 98 ; WX 556 ; N b ; B 10 -15 522 737 ; +C 99 ; WX 444 ; N c ; B 34 -15 426 479 ; +C 100 ; WX 574 ; N d ; B 34 -15 552 737 ; +C 101 ; WX 500 ; N e ; B 34 -15 466 479 ; +C 102 ; WX 333 ; N f ; B 18 0 437 737 ; L i fi ; L l fl ; +C 103 ; WX 537 ; N g ; B 23 -205 542 494 ; +C 104 ; WX 611 ; N h ; B 7 0 592 737 ; +C 105 ; WX 315 ; N i ; B 18 0 286 722 ; +C 106 ; WX 296 ; N j ; B -86 -205 216 722 ; +C 107 ; WX 593 ; N k ; B 10 0 589 737 ; +C 108 ; WX 315 ; N l ; B 18 0 286 737 ; +C 109 ; WX 889 ; N m ; B 26 0 863 479 ; +C 110 ; WX 611 ; N n ; B 22 0 589 479 ; +C 111 ; WX 500 ; N o ; B 34 -15 466 479 ; +C 112 ; WX 574 ; N p ; B 22 -205 540 479 ; +C 113 ; WX 556 ; N q ; B 34 -205 552 479 ; +C 114 ; WX 444 ; N r ; B 18 0 434 479 ; +C 115 ; WX 463 ; N s ; B 46 -15 417 479 ; +C 116 ; WX 389 ; N t ; B 18 -15 371 666 ; +C 117 ; WX 611 ; N u ; B 22 -15 589 464 ; +C 118 ; WX 537 ; N v ; B -6 -10 515 464 ; +C 119 ; WX 778 ; N w ; B 1 -10 749 464 ; +C 120 ; WX 537 ; N x ; B 8 0 529 464 ; +C 121 ; WX 537 ; N y ; B 4 -205 533 464 ; +C 122 ; WX 481 ; N z ; B 42 0 439 464 ; +C 123 ; WX 333 ; N braceleft ; B 54 -109 279 737 ; +C 124 ; WX 606 ; N bar ; B 267 -250 339 750 ; +C 125 ; WX 333 ; N braceright ; B 54 -109 279 737 ; +C 126 ; WX 606 ; N asciitilde ; B 72 184 534 322 ; +C 161 ; WX 296 ; N exclamdown ; B 86 -205 210 547 ; +C 162 ; WX 556 ; N cent ; B 74 -141 482 584 ; +C 163 ; WX 556 ; N sterling ; B 18 -15 538 705 ; +C 164 ; WX 167 ; N fraction ; B -195 -15 362 705 ; +C 165 ; WX 556 ; N yen ; B -1 0 557 690 ; +C 166 ; WX 556 ; N florin ; B 0 -205 538 737 ; +C 167 ; WX 500 ; N section ; B 55 -147 445 737 ; +C 168 ; WX 556 ; N currency ; B 26 93 530 597 ; +C 169 ; WX 204 ; N quotesingle ; B 59 443 145 737 ; +C 170 ; WX 389 ; N quotedblleft ; B 25 443 364 737 ; +C 171 ; WX 426 ; N guillemotleft ; B 39 78 387 398 ; +C 172 ; WX 259 ; N guilsinglleft ; B 39 78 220 398 ; +C 173 ; WX 259 ; N guilsinglright ; B 39 78 220 398 ; +C 174 ; WX 611 ; N fi ; B 18 0 582 737 ; +C 175 ; WX 611 ; N fl ; B 18 0 582 737 ; +C 177 ; WX 556 ; N endash ; B 0 208 556 268 ; +C 178 ; WX 500 ; N dagger ; B 42 -147 458 737 ; +C 179 ; WX 500 ; N daggerdbl ; B 42 -149 458 737 ; +C 180 ; WX 278 ; N periodcentered ; B 71 238 207 374 ; +C 182 ; WX 606 ; N paragraph ; B 60 -132 546 722 ; +C 183 ; WX 606 ; N bullet ; B 122 180 484 542 ; +C 184 ; WX 204 ; N quotesinglbase ; B 25 -185 179 109 ; +C 185 ; WX 389 ; N quotedblbase ; B 25 -185 364 109 ; +C 186 ; WX 389 ; N quotedblright ; B 25 443 364 737 ; +C 187 ; WX 426 ; N guillemotright ; B 39 78 387 398 ; +C 188 ; WX 1000 ; N ellipsis ; B 105 -15 895 109 ; +C 189 ; WX 1000 ; N perthousand ; B 6 -15 994 705 ; +C 191 ; WX 444 ; N questiondown ; B 29 -205 415 547 ; +C 193 ; WX 333 ; N grave ; B 17 528 242 699 ; +C 194 ; WX 333 ; N acute ; B 91 528 316 699 ; +C 195 ; WX 333 ; N circumflex ; B 10 528 323 695 ; +C 196 ; WX 333 ; N tilde ; B 1 553 332 655 ; +C 197 ; WX 333 ; N macron ; B 10 568 323 623 ; +C 198 ; WX 333 ; N breve ; B 25 528 308 685 ; +C 199 ; WX 333 ; N dotaccent ; B 116 543 218 645 ; +C 200 ; WX 333 ; N dieresis ; B 16 543 317 645 ; +C 202 ; WX 333 ; N ring ; B 66 522 266 722 ; +C 203 ; WX 333 ; N cedilla ; B 29 -215 237 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B -9 528 416 699 ; +C 206 ; WX 333 ; N ogonek ; B 68 -215 254 0 ; +C 207 ; WX 333 ; N caron ; B 10 528 323 695 ; +C 208 ; WX 1000 ; N emdash ; B 0 208 1000 268 ; +C 225 ; WX 1000 ; N AE ; B 0 0 962 722 ; +C 227 ; WX 334 ; N ordfeminine ; B -4 407 338 705 ; +C 232 ; WX 667 ; N Lslash ; B 29 0 644 722 ; +C 233 ; WX 778 ; N Oslash ; B 45 -56 733 778 ; +C 234 ; WX 1000 ; N OE ; B 21 0 979 722 ; +C 235 ; WX 300 ; N ordmasculine ; B 4 407 296 705 ; +C 241 ; WX 796 ; N ae ; B 34 -15 762 479 ; +C 245 ; WX 315 ; N dotlessi ; B 18 0 286 464 ; +C 248 ; WX 315 ; N lslash ; B 18 0 286 737 ; +C 249 ; WX 500 ; N oslash ; B 34 -97 466 561 ; +C 250 ; WX 833 ; N oe ; B 34 -15 799 479 ; +C 251 ; WX 574 ; N germandbls ; B 30 -15 537 737 ; +C -1 ; WX 500 ; N ecircumflex ; B 34 -15 466 695 ; +C -1 ; WX 500 ; N edieresis ; B 34 -15 466 645 ; +C -1 ; WX 556 ; N aacute ; B 44 -15 542 699 ; +C -1 ; WX 737 ; N registered ; B -8 -15 744 737 ; +C -1 ; WX 315 ; N icircumflex ; B 1 0 314 695 ; +C -1 ; WX 611 ; N udieresis ; B 22 -15 589 645 ; +C -1 ; WX 500 ; N ograve ; B 34 -15 466 699 ; +C -1 ; WX 611 ; N uacute ; B 22 -15 589 699 ; +C -1 ; WX 611 ; N ucircumflex ; B 22 -15 589 695 ; +C -1 ; WX 722 ; N Aacute ; B -8 0 730 937 ; +C -1 ; WX 315 ; N igrave ; B 8 0 286 699 ; +C -1 ; WX 407 ; N Icircumflex ; B 38 0 369 933 ; +C -1 ; WX 444 ; N ccedilla ; B 34 -215 426 479 ; +C -1 ; WX 556 ; N adieresis ; B 44 -15 542 645 ; +C -1 ; WX 722 ; N Ecircumflex ; B 29 0 663 933 ; +C -1 ; WX 463 ; N scaron ; B 46 -15 417 695 ; +C -1 ; WX 574 ; N thorn ; B 22 -205 540 737 ; +C -1 ; WX 1000 ; N trademark ; B 32 318 968 722 ; +C -1 ; WX 500 ; N egrave ; B 34 -15 466 699 ; +C -1 ; WX 333 ; N threesuperior ; B 18 273 315 705 ; +C -1 ; WX 481 ; N zcaron ; B 42 0 439 695 ; +C -1 ; WX 556 ; N atilde ; B 44 -15 542 655 ; +C -1 ; WX 556 ; N aring ; B 44 -15 542 732 ; +C -1 ; WX 500 ; N ocircumflex ; B 34 -15 466 695 ; +C -1 ; WX 722 ; N Edieresis ; B 29 0 663 883 ; +C -1 ; WX 834 ; N threequarters ; B 28 -15 795 705 ; +C -1 ; WX 537 ; N ydieresis ; B 4 -205 533 645 ; +C -1 ; WX 537 ; N yacute ; B 4 -205 533 699 ; +C -1 ; WX 315 ; N iacute ; B 18 0 307 699 ; +C -1 ; WX 722 ; N Acircumflex ; B -8 0 730 933 ; +C -1 ; WX 815 ; N Uacute ; B 16 -15 799 937 ; +C -1 ; WX 500 ; N eacute ; B 34 -15 466 699 ; +C -1 ; WX 778 ; N Ograve ; B 45 -15 733 937 ; +C -1 ; WX 556 ; N agrave ; B 44 -15 542 699 ; +C -1 ; WX 815 ; N Udieresis ; B 16 -15 799 883 ; +C -1 ; WX 556 ; N acircumflex ; B 44 -15 542 695 ; +C -1 ; WX 407 ; N Igrave ; B 38 0 369 937 ; +C -1 ; WX 333 ; N twosuperior ; B 14 282 319 705 ; +C -1 ; WX 815 ; N Ugrave ; B 16 -15 799 937 ; +C -1 ; WX 834 ; N onequarter ; B 39 -15 795 705 ; +C -1 ; WX 815 ; N Ucircumflex ; B 16 -15 799 933 ; +C -1 ; WX 630 ; N Scaron ; B 47 -15 583 933 ; +C -1 ; WX 407 ; N Idieresis ; B 38 0 369 883 ; +C -1 ; WX 315 ; N idieresis ; B 7 0 308 645 ; +C -1 ; WX 722 ; N Egrave ; B 29 0 663 937 ; +C -1 ; WX 778 ; N Oacute ; B 45 -15 733 937 ; +C -1 ; WX 606 ; N divide ; B 50 -22 556 528 ; +C -1 ; WX 722 ; N Atilde ; B -8 0 730 893 ; +C -1 ; WX 722 ; N Aring ; B -8 0 730 965 ; +C -1 ; WX 778 ; N Odieresis ; B 45 -15 733 883 ; +C -1 ; WX 722 ; N Adieresis ; B -8 0 730 883 ; +C -1 ; WX 815 ; N Ntilde ; B 24 -15 791 893 ; +C -1 ; WX 611 ; N Zcaron ; B 24 0 576 933 ; +C -1 ; WX 667 ; N Thorn ; B 29 0 650 722 ; +C -1 ; WX 407 ; N Iacute ; B 38 0 369 937 ; +C -1 ; WX 606 ; N plusminus ; B 50 0 556 506 ; +C -1 ; WX 606 ; N multiply ; B 74 24 532 482 ; +C -1 ; WX 722 ; N Eacute ; B 29 0 663 937 ; +C -1 ; WX 704 ; N Ydieresis ; B -11 0 715 883 ; +C -1 ; WX 333 ; N onesuperior ; B 39 282 294 705 ; +C -1 ; WX 611 ; N ugrave ; B 22 -15 589 699 ; +C -1 ; WX 606 ; N logicalnot ; B 50 108 556 389 ; +C -1 ; WX 611 ; N ntilde ; B 22 0 589 655 ; +C -1 ; WX 778 ; N Otilde ; B 45 -15 733 893 ; +C -1 ; WX 500 ; N otilde ; B 34 -15 466 655 ; +C -1 ; WX 722 ; N Ccedilla ; B 45 -215 668 737 ; +C -1 ; WX 722 ; N Agrave ; B -8 0 730 937 ; +C -1 ; WX 834 ; N onehalf ; B 39 -15 820 705 ; +C -1 ; WX 778 ; N Eth ; B 29 0 733 722 ; +C -1 ; WX 400 ; N degree ; B 57 419 343 705 ; +C -1 ; WX 704 ; N Yacute ; B -11 0 715 937 ; +C -1 ; WX 778 ; N Ocircumflex ; B 45 -15 733 933 ; +C -1 ; WX 500 ; N oacute ; B 34 -15 466 699 ; +C -1 ; WX 611 ; N mu ; B 22 -205 589 464 ; +C -1 ; WX 606 ; N minus ; B 50 217 556 289 ; +C -1 ; WX 500 ; N eth ; B 34 -15 466 752 ; +C -1 ; WX 500 ; N odieresis ; B 34 -15 466 645 ; +C -1 ; WX 737 ; N copyright ; B -8 -15 744 737 ; +C -1 ; WX 606 ; N brokenbar ; B 267 -175 339 675 ; +EndCharMetrics +StartKernData +StartKernPairs 169 + +KPX A y -37 +KPX A w -25 +KPX A v -37 +KPX A quoteright -74 +KPX A quotedblright -74 +KPX A Y -75 +KPX A W -50 +KPX A V -75 +KPX A U -30 +KPX A T -18 + +KPX B period -37 +KPX B comma -37 +KPX B A -18 + +KPX C period -37 +KPX C comma -37 +KPX C A -18 + +KPX D period -37 +KPX D comma -37 +KPX D Y -18 +KPX D V -18 + +KPX F r -10 +KPX F period -125 +KPX F o -55 +KPX F i -10 +KPX F e -55 +KPX F comma -125 +KPX F a -65 +KPX F A -50 + +KPX G period -37 +KPX G comma -37 + +KPX J u -25 +KPX J period -74 +KPX J o -25 +KPX J e -25 +KPX J comma -74 +KPX J a -25 +KPX J A -18 + +KPX K y -25 +KPX K o 10 +KPX K e 10 + +KPX L y -25 +KPX L quoteright -100 +KPX L quotedblright -100 +KPX L Y -74 +KPX L W -74 +KPX L V -91 +KPX L T -75 + +KPX N period -55 +KPX N comma -55 + +KPX O period -37 +KPX O comma -37 +KPX O Y -18 +KPX O V -18 +KPX O T 10 + +KPX P period -125 +KPX P o -37 +KPX P e -37 +KPX P comma -125 +KPX P a -37 +KPX P A -55 + +KPX Q period -25 +KPX Q comma -25 + +KPX S period -37 +KPX S comma -37 + +KPX T semicolon -37 +KPX T period -125 +KPX T o -55 +KPX T hyphen -100 +KPX T e -55 +KPX T comma -125 +KPX T colon -37 +KPX T a -55 +KPX T O 10 +KPX T A -18 + +KPX U period -100 +KPX U comma -100 +KPX U A -30 + +KPX V u -75 +KPX V semicolon -75 +KPX V period -125 +KPX V o -75 +KPX V i -18 +KPX V hyphen -100 +KPX V e -75 +KPX V comma -125 +KPX V colon -75 +KPX V a -85 +KPX V O -18 +KPX V A -74 + +KPX W y -55 +KPX W u -55 +KPX W semicolon -100 +KPX W period -125 +KPX W o -60 +KPX W i -18 +KPX W hyphen -100 +KPX W e -60 +KPX W comma -125 +KPX W colon -100 +KPX W a -75 +KPX W A -50 + +KPX Y u -91 +KPX Y semicolon -75 +KPX Y period -100 +KPX Y o -100 +KPX Y i -18 +KPX Y hyphen -125 +KPX Y e -100 +KPX Y comma -100 +KPX Y colon -75 +KPX Y a -100 +KPX Y O -18 +KPX Y A -75 + +KPX a y -10 +KPX a w -10 +KPX a v -10 + +KPX b period -18 +KPX b comma -18 + +KPX c period -18 +KPX c l -7 +KPX c k -7 +KPX c h -7 +KPX c comma -18 + +KPX colon space -37 + +KPX comma space -37 +KPX comma quoteright -37 +KPX comma quotedblright -37 + +KPX e period -18 +KPX e comma -18 + +KPX f quoteright 100 +KPX f quotedblright 100 +KPX f period -37 +KPX f comma -37 + +KPX g period -25 +KPX g comma -25 + +KPX o period -18 +KPX o comma -18 + +KPX p period -18 +KPX p comma -18 + +KPX period space -37 +KPX period quoteright -37 +KPX period quotedblright -37 + +KPX quotedblleft A -74 + +KPX quotedblright space -37 + +KPX quoteleft quoteleft -25 +KPX quoteleft A -74 + +KPX quoteright s -25 +KPX quoteright quoteright -25 +KPX quoteright d -37 + +KPX r period -100 +KPX r hyphen -37 +KPX r comma -100 + +KPX s period -25 +KPX s comma -25 + +KPX semicolon space -37 + +KPX space quoteleft -37 +KPX space quotedblleft -37 +KPX space Y -37 +KPX space W -37 +KPX space V -37 +KPX space T -37 +KPX space A -37 + +KPX v period -125 +KPX v comma -125 + +KPX w period -125 +KPX w comma -125 +KPX w a -18 + +KPX y period -125 +KPX y comma -125 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 195 238 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 195 238 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 195 238 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 195 238 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 195 243 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 195 238 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 195 238 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 195 238 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 195 238 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 195 238 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 37 238 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 37 238 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 37 238 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 37 238 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 241 238 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 223 238 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 223 238 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 223 238 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 223 238 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 223 238 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 149 238 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 241 238 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 241 238 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 241 238 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 241 238 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 216 238 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 186 238 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 238 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 112 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 112 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 112 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 112 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 112 10 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 112 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 84 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 84 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 84 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 84 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -9 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -9 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -9 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -9 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 139 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 84 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 84 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 84 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 84 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 84 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 65 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 139 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 139 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 139 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 139 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 102 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 102 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 74 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-Rm+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-Rm+ new file mode 100755 index 0000000000000..257ffff224d73 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/NCS-Rm+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 722 ; N Ccaron ; B 45 -15 668 955 ; +C -1 ; WX 444 ; N ccaron ; B 34 -15 426 695 ; +C -1 ; WX 778 ; N Dcaron ; B 29 0 733 955 ; +C -1 ; WX 682 ; N dcaron ; B 34 -15 721 811 ; +C -1 ; WX 722 ; N Ecaron ; B 29 0 663 955 ; +C -1 ; WX 500 ; N ecaron ; B 34 -15 466 695 ; +C -1 ; WX 667 ; N Lcaron ; B 29 0 644 794 ; +C -1 ; WX 667 ; N Lacute ; B 29 0 644 959 ; +C -1 ; WX 423 ; N lcaron ; B 18 0 455 811 ; +C -1 ; WX 315 ; N lacute ; B 18 0 330 959 ; +C -1 ; WX 815 ; N Ncaron ; B 24 -15 791 955 ; +C -1 ; WX 611 ; N ncaron ; B 22 0 589 695 ; +C -1 ; WX 722 ; N Rcaron ; B 29 -15 713 955 ; +C -1 ; WX 722 ; N Racute ; B 29 -15 713 959 ; +C -1 ; WX 444 ; N rcaron ; B 18 0 434 695 ; +C -1 ; WX 444 ; N racute ; B 18 0 434 699 ; +C -1 ; WX 667 ; N Tcaron ; B 19 0 648 955 ; +C -1 ; WX 497 ; N tcaron ; B 18 -15 540 737 ; +C -1 ; WX 815 ; N Uring ; B 16 -15 799 955 ; +C -1 ; WX 611 ; N uring ; B 22 -15 589 722 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 256 260 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 75 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 222 260 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 542 74 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 194 260 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 83 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 359 57 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 167 260 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 276 74 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 14 260 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 241 260 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 139 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 194 260 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 237 260 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 55 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 78 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 167 260 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 361 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 241 233 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 139 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-Bd b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-Bd new file mode 100755 index 0000000000000..de7698d29d186 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-Bd @@ -0,0 +1,434 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Mon Jul 2 22:26:30 1990 +Comment UniqueID 31793 +Comment VMusage 36031 46923 +FontName Palatino-Bold +FullName Palatino Bold +FamilyName Palatino +Weight Bold +ItalicAngle 0 +IsFixedPitch false +FontBBox -152 -266 1000 924 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.005 +Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Palatino is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 681 +XHeight 471 +Ascender 720 +Descender -258 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 278 ; N exclam ; B 63 -12 219 688 ; +C 34 ; WX 402 ; N quotedbl ; B 22 376 380 695 ; +C 35 ; WX 500 ; N numbersign ; B 4 0 496 673 ; +C 36 ; WX 500 ; N dollar ; B 28 -114 472 721 ; +C 37 ; WX 889 ; N percent ; B 61 -9 828 714 ; +C 38 ; WX 833 ; N ampersand ; B 52 -17 813 684 ; +C 39 ; WX 278 ; N quoteright ; B 29 405 249 695 ; +C 40 ; WX 333 ; N parenleft ; B 65 -104 305 723 ; +C 41 ; WX 333 ; N parenright ; B 28 -104 268 723 ; +C 42 ; WX 444 ; N asterisk ; B 44 332 399 695 ; +C 43 ; WX 606 ; N plus ; B 51 0 555 505 ; +C 44 ; WX 250 ; N comma ; B -6 -166 227 141 ; +C 45 ; WX 333 ; N hyphen ; B 16 195 317 305 ; +C 46 ; WX 250 ; N period ; B 47 -12 203 144 ; +C 47 ; WX 296 ; N slash ; B -9 -17 305 720 ; +C 48 ; WX 500 ; N zero ; B 33 -17 468 660 ; +C 49 ; WX 500 ; N one ; B 35 -3 455 670 ; +C 50 ; WX 500 ; N two ; B 25 -3 472 660 ; +C 51 ; WX 500 ; N three ; B 22 -17 458 660 ; +C 52 ; WX 500 ; N four ; B 12 -3 473 672 ; +C 53 ; WX 500 ; N five ; B 42 -17 472 656 ; +C 54 ; WX 500 ; N six ; B 37 -17 469 660 ; +C 55 ; WX 500 ; N seven ; B 46 -3 493 656 ; +C 56 ; WX 500 ; N eight ; B 34 -17 467 660 ; +C 57 ; WX 500 ; N nine ; B 31 -17 463 660 ; +C 58 ; WX 250 ; N colon ; B 47 -12 203 454 ; +C 59 ; WX 250 ; N semicolon ; B -6 -166 227 454 ; +C 60 ; WX 606 ; N less ; B 49 -15 558 519 ; +C 61 ; WX 606 ; N equal ; B 51 114 555 396 ; +C 62 ; WX 606 ; N greater ; B 49 -15 558 519 ; +C 63 ; WX 444 ; N question ; B 43 -12 411 687 ; +C 64 ; WX 747 ; N at ; B 42 -12 704 681 ; +C 65 ; WX 778 ; N A ; B 24 -3 757 686 ; +C 66 ; WX 667 ; N B ; B 39 -3 611 681 ; +C 67 ; WX 722 ; N C ; B 44 -17 695 695 ; +C 68 ; WX 833 ; N D ; B 35 -3 786 681 ; +C 69 ; WX 611 ; N E ; B 39 -4 577 681 ; +C 70 ; WX 556 ; N F ; B 28 -3 539 681 ; +C 71 ; WX 833 ; N G ; B 47 -17 776 695 ; +C 72 ; WX 833 ; N H ; B 36 -3 796 681 ; +C 73 ; WX 389 ; N I ; B 39 -3 350 681 ; +C 74 ; WX 389 ; N J ; B -11 -213 350 681 ; +C 75 ; WX 778 ; N K ; B 39 -3 763 681 ; +C 76 ; WX 611 ; N L ; B 39 -4 577 681 ; +C 77 ; WX 1000 ; N M ; B 32 -10 968 681 ; +C 78 ; WX 833 ; N N ; B 35 -16 798 681 ; +C 79 ; WX 833 ; N O ; B 47 -17 787 695 ; +C 80 ; WX 611 ; N P ; B 39 -3 594 681 ; +C 81 ; WX 833 ; N Q ; B 47 -184 787 695 ; +C 82 ; WX 722 ; N R ; B 39 -3 708 681 ; +C 83 ; WX 611 ; N S ; B 57 -17 559 695 ; +C 84 ; WX 667 ; N T ; B 17 -3 650 681 ; +C 85 ; WX 778 ; N U ; B 26 -17 760 681 ; +C 86 ; WX 778 ; N V ; B 20 -3 763 681 ; +C 87 ; WX 1000 ; N W ; B 17 -3 988 686 ; +C 88 ; WX 667 ; N X ; B 17 -3 650 695 ; +C 89 ; WX 667 ; N Y ; B 15 -3 660 695 ; +C 90 ; WX 667 ; N Z ; B 24 -3 627 681 ; +C 91 ; WX 333 ; N bracketleft ; B 73 -104 291 720 ; +C 92 ; WX 606 ; N backslash ; B 72 0 534 720 ; +C 93 ; WX 333 ; N bracketright ; B 42 -104 260 720 ; +C 94 ; WX 606 ; N asciicircum ; B 52 275 554 678 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 278 ; N quoteleft ; B 29 405 249 695 ; +C 97 ; WX 500 ; N a ; B 40 -17 478 471 ; +C 98 ; WX 611 ; N b ; B 10 -17 556 720 ; +C 99 ; WX 444 ; N c ; B 37 -17 414 471 ; +C 100 ; WX 611 ; N d ; B 42 -17 577 720 ; +C 101 ; WX 500 ; N e ; B 42 -17 461 471 ; +C 102 ; WX 389 ; N f ; B 34 -3 381 720 ; L i fi ; L l fl ; +C 103 ; WX 556 ; N g ; B 26 -266 535 471 ; +C 104 ; WX 611 ; N h ; B 24 -3 587 720 ; +C 105 ; WX 333 ; N i ; B 34 -3 298 706 ; +C 106 ; WX 333 ; N j ; B 3 -266 241 706 ; +C 107 ; WX 611 ; N k ; B 21 -3 597 720 ; +C 108 ; WX 333 ; N l ; B 24 -3 296 720 ; +C 109 ; WX 889 ; N m ; B 24 -3 864 471 ; +C 110 ; WX 611 ; N n ; B 24 -3 587 471 ; +C 111 ; WX 556 ; N o ; B 40 -17 517 471 ; +C 112 ; WX 611 ; N p ; B 29 -258 567 471 ; +C 113 ; WX 611 ; N q ; B 52 -258 589 471 ; +C 114 ; WX 389 ; N r ; B 30 -3 389 471 ; +C 115 ; WX 444 ; N s ; B 39 -17 405 471 ; +C 116 ; WX 333 ; N t ; B 22 -17 324 632 ; +C 117 ; WX 611 ; N u ; B 25 -17 583 471 ; +C 118 ; WX 556 ; N v ; B 11 -3 545 459 ; +C 119 ; WX 833 ; N w ; B 13 -3 820 471 ; +C 120 ; WX 500 ; N x ; B 20 -3 483 471 ; +C 121 ; WX 556 ; N y ; B 10 -266 546 459 ; +C 122 ; WX 500 ; N z ; B 16 -3 464 459 ; +C 123 ; WX 310 ; N braceleft ; B 5 -117 288 725 ; +C 124 ; WX 606 ; N bar ; B 260 0 346 720 ; +C 125 ; WX 310 ; N braceright ; B 22 -117 305 725 ; +C 126 ; WX 606 ; N asciitilde ; B 51 155 555 342 ; +C 161 ; WX 278 ; N exclamdown ; B 59 -227 215 471 ; +C 162 ; WX 500 ; N cent ; B 73 -106 450 554 ; +C 163 ; WX 500 ; N sterling ; B -2 -19 501 676 ; +C 164 ; WX 167 ; N fraction ; B -152 0 320 660 ; +C 165 ; WX 500 ; N yen ; B 17 -3 483 695 ; +C 166 ; WX 500 ; N florin ; B 11 -242 490 703 ; +C 167 ; WX 500 ; N section ; B 30 -217 471 695 ; +C 168 ; WX 500 ; N currency ; B 32 96 468 533 ; +C 169 ; WX 227 ; N quotesingle ; B 45 376 181 695 ; +C 170 ; WX 500 ; N quotedblleft ; B 34 405 466 695 ; +C 171 ; WX 500 ; N guillemotleft ; B 36 44 463 438 ; +C 172 ; WX 389 ; N guilsinglleft ; B 82 44 307 438 ; +C 173 ; WX 389 ; N guilsinglright ; B 82 44 307 438 ; +C 174 ; WX 611 ; N fi ; B 10 -3 595 720 ; +C 175 ; WX 611 ; N fl ; B 17 -3 593 720 ; +C 177 ; WX 500 ; N endash ; B 0 208 500 291 ; +C 178 ; WX 500 ; N dagger ; B 29 -6 472 682 ; +C 179 ; WX 500 ; N daggerdbl ; B 32 -245 468 682 ; +C 180 ; WX 250 ; N periodcentered ; B 47 179 203 335 ; +C 182 ; WX 641 ; N paragraph ; B 19 -161 599 683 ; +C 183 ; WX 606 ; N bullet ; B 131 172 475 516 ; +C 184 ; WX 333 ; N quotesinglbase ; B 56 -160 276 130 ; +C 185 ; WX 500 ; N quotedblbase ; B 34 -160 466 130 ; +C 186 ; WX 500 ; N quotedblright ; B 34 405 466 695 ; +C 187 ; WX 500 ; N guillemotright ; B 37 44 464 438 ; +C 188 ; WX 1000 ; N ellipsis ; B 89 -12 911 144 ; +C 189 ; WX 1000 ; N perthousand ; B 33 -9 982 724 ; +C 191 ; WX 444 ; N questiondown ; B 33 -231 401 471 ; +C 193 ; WX 333 ; N grave ; B 18 506 256 691 ; +C 194 ; WX 333 ; N acute ; B 78 506 316 691 ; +C 195 ; WX 333 ; N circumflex ; B -2 506 335 681 ; +C 196 ; WX 333 ; N tilde ; B -16 535 349 661 ; +C 197 ; WX 333 ; N macron ; B 1 538 332 609 ; +C 198 ; WX 333 ; N breve ; B 15 506 318 669 ; +C 199 ; WX 333 ; N dotaccent ; B 100 537 234 671 ; +C 200 ; WX 333 ; N dieresis ; B -8 537 341 671 ; +C 202 ; WX 333 ; N ring ; B 67 500 267 700 ; +C 203 ; WX 333 ; N cedilla ; B 73 -225 300 -7 ; +C 205 ; WX 333 ; N hungarumlaut ; B -56 506 390 691 ; +C 206 ; WX 333 ; N ogonek ; B 60 -246 274 -17 ; +C 207 ; WX 333 ; N caron ; B -2 510 335 685 ; +C 208 ; WX 1000 ; N emdash ; B 0 208 1000 291 ; +C 225 ; WX 1000 ; N AE ; B 12 -4 954 681 ; +C 227 ; WX 438 ; N ordfeminine ; B 77 367 361 660 ; +C 232 ; WX 611 ; N Lslash ; B 16 -4 577 681 ; +C 233 ; WX 833 ; N Oslash ; B 32 -20 808 698 ; +C 234 ; WX 1000 ; N OE ; B 43 -17 985 695 ; +C 235 ; WX 488 ; N ordmasculine ; B 89 367 399 660 ; +C 241 ; WX 778 ; N ae ; B 46 -17 731 471 ; +C 245 ; WX 333 ; N dotlessi ; B 34 -3 298 471 ; +C 248 ; WX 333 ; N lslash ; B -4 -3 334 720 ; +C 249 ; WX 556 ; N oslash ; B 23 -18 534 471 ; +C 250 ; WX 833 ; N oe ; B 48 -17 799 471 ; +C 251 ; WX 611 ; N germandbls ; B 30 -17 565 720 ; +C -1 ; WX 667 ; N Zcaron ; B 24 -3 627 909 ; +C -1 ; WX 444 ; N ccedilla ; B 37 -225 414 471 ; +C -1 ; WX 556 ; N ydieresis ; B 10 -266 546 691 ; +C -1 ; WX 500 ; N atilde ; B 40 -17 478 673 ; +C -1 ; WX 333 ; N icircumflex ; B -2 -3 335 701 ; +C -1 ; WX 300 ; N threesuperior ; B 9 261 292 667 ; +C -1 ; WX 500 ; N ecircumflex ; B 42 -17 461 701 ; +C -1 ; WX 611 ; N thorn ; B 17 -258 563 720 ; +C -1 ; WX 500 ; N egrave ; B 42 -17 461 711 ; +C -1 ; WX 300 ; N twosuperior ; B 5 261 295 660 ; +C -1 ; WX 500 ; N eacute ; B 42 -17 461 711 ; +C -1 ; WX 556 ; N otilde ; B 40 -17 517 673 ; +C -1 ; WX 778 ; N Aacute ; B 24 -3 757 915 ; +C -1 ; WX 556 ; N ocircumflex ; B 40 -17 517 701 ; +C -1 ; WX 556 ; N yacute ; B 10 -266 546 711 ; +C -1 ; WX 611 ; N udieresis ; B 25 -17 583 691 ; +C -1 ; WX 750 ; N threequarters ; B 15 -2 735 667 ; +C -1 ; WX 500 ; N acircumflex ; B 40 -17 478 701 ; +C -1 ; WX 833 ; N Eth ; B 10 -3 786 681 ; +C -1 ; WX 500 ; N edieresis ; B 42 -17 461 691 ; +C -1 ; WX 611 ; N ugrave ; B 25 -17 583 711 ; +C -1 ; WX 998 ; N trademark ; B 38 274 961 678 ; +C -1 ; WX 556 ; N ograve ; B 40 -17 517 711 ; +C -1 ; WX 444 ; N scaron ; B 39 -17 405 693 ; +C -1 ; WX 389 ; N Idieresis ; B 20 -3 369 895 ; +C -1 ; WX 611 ; N uacute ; B 25 -17 583 711 ; +C -1 ; WX 500 ; N agrave ; B 40 -17 478 711 ; +C -1 ; WX 611 ; N ntilde ; B 24 -3 587 673 ; +C -1 ; WX 500 ; N aring ; B 40 -17 478 700 ; +C -1 ; WX 500 ; N zcaron ; B 16 -3 464 693 ; +C -1 ; WX 389 ; N Icircumflex ; B 26 -3 363 905 ; +C -1 ; WX 833 ; N Ntilde ; B 35 -16 798 885 ; +C -1 ; WX 611 ; N ucircumflex ; B 25 -17 583 701 ; +C -1 ; WX 611 ; N Ecircumflex ; B 39 -4 577 905 ; +C -1 ; WX 389 ; N Iacute ; B 39 -3 350 915 ; +C -1 ; WX 722 ; N Ccedilla ; B 44 -225 695 695 ; +C -1 ; WX 833 ; N Odieresis ; B 47 -17 787 895 ; +C -1 ; WX 611 ; N Scaron ; B 57 -17 559 909 ; +C -1 ; WX 611 ; N Edieresis ; B 39 -4 577 895 ; +C -1 ; WX 389 ; N Igrave ; B 39 -3 350 915 ; +C -1 ; WX 500 ; N adieresis ; B 40 -17 478 691 ; +C -1 ; WX 833 ; N Ograve ; B 47 -17 787 915 ; +C -1 ; WX 611 ; N Egrave ; B 39 -4 577 915 ; +C -1 ; WX 667 ; N Ydieresis ; B 15 -3 660 895 ; +C -1 ; WX 747 ; N registered ; B 26 -17 720 695 ; +C -1 ; WX 833 ; N Otilde ; B 47 -17 787 885 ; +C -1 ; WX 750 ; N onequarter ; B 19 -2 735 665 ; +C -1 ; WX 778 ; N Ugrave ; B 26 -17 760 915 ; +C -1 ; WX 778 ; N Ucircumflex ; B 26 -17 760 905 ; +C -1 ; WX 611 ; N Thorn ; B 39 -3 574 681 ; +C -1 ; WX 606 ; N divide ; B 51 0 555 510 ; +C -1 ; WX 778 ; N Atilde ; B 24 -3 757 885 ; +C -1 ; WX 778 ; N Uacute ; B 26 -17 760 915 ; +C -1 ; WX 833 ; N Ocircumflex ; B 47 -17 787 905 ; +C -1 ; WX 606 ; N logicalnot ; B 51 114 555 396 ; +C -1 ; WX 778 ; N Aring ; B 24 -3 757 924 ; +C -1 ; WX 333 ; N idieresis ; B -8 -3 341 691 ; +C -1 ; WX 333 ; N iacute ; B 34 -3 316 711 ; +C -1 ; WX 500 ; N aacute ; B 40 -17 478 711 ; +C -1 ; WX 606 ; N plusminus ; B 51 0 555 505 ; +C -1 ; WX 606 ; N multiply ; B 72 21 534 483 ; +C -1 ; WX 778 ; N Udieresis ; B 26 -17 760 895 ; +C -1 ; WX 606 ; N minus ; B 51 212 555 298 ; +C -1 ; WX 300 ; N onesuperior ; B 14 261 287 665 ; +C -1 ; WX 611 ; N Eacute ; B 39 -4 577 915 ; +C -1 ; WX 778 ; N Acircumflex ; B 24 -3 757 905 ; +C -1 ; WX 747 ; N copyright ; B 26 -17 720 695 ; +C -1 ; WX 778 ; N Agrave ; B 24 -3 757 915 ; +C -1 ; WX 556 ; N odieresis ; B 40 -17 517 691 ; +C -1 ; WX 556 ; N oacute ; B 40 -17 517 711 ; +C -1 ; WX 400 ; N degree ; B 50 360 350 660 ; +C -1 ; WX 333 ; N igrave ; B 18 -3 298 711 ; +C -1 ; WX 611 ; N mu ; B 25 -225 583 471 ; +C -1 ; WX 833 ; N Oacute ; B 47 -17 787 915 ; +C -1 ; WX 556 ; N eth ; B 40 -17 517 720 ; +C -1 ; WX 778 ; N Adieresis ; B 24 -3 757 895 ; +C -1 ; WX 667 ; N Yacute ; B 15 -3 660 915 ; +C -1 ; WX 606 ; N brokenbar ; B 260 0 346 720 ; +C -1 ; WX 750 ; N onehalf ; B 9 -2 745 665 ; +EndCharMetrics +StartKernData +StartKernPairs 101 + +KPX A y -70 +KPX A w -70 +KPX A v -70 +KPX A space -18 +KPX A quoteright -92 +KPX A Y -111 +KPX A W -90 +KPX A V -129 +KPX A T -92 + +KPX F period -111 +KPX F comma -111 +KPX F A -55 + +KPX L y -74 +KPX L space -18 +KPX L quoteright -74 +KPX L Y -92 +KPX L W -92 +KPX L V -92 +KPX L T -74 + +KPX P period -129 +KPX P comma -129 +KPX P A -74 + +KPX R y -30 +KPX R Y -55 +KPX R W -37 +KPX R V -74 +KPX R T -55 + +KPX T y -90 +KPX T w -90 +KPX T u -129 +KPX T semicolon -74 +KPX T s -111 +KPX T r -111 +KPX T period -92 +KPX T o -111 +KPX T i -55 +KPX T hyphen -92 +KPX T e -111 +KPX T comma -92 +KPX T colon -74 +KPX T c -129 +KPX T a -111 +KPX T A -92 + +KPX V y -90 +KPX V u -92 +KPX V semicolon -74 +KPX V r -111 +KPX V period -129 +KPX V o -111 +KPX V i -55 +KPX V hyphen -92 +KPX V e -111 +KPX V comma -129 +KPX V colon -74 +KPX V a -111 +KPX V A -129 + +KPX W y -74 +KPX W u -74 +KPX W semicolon -37 +KPX W r -74 +KPX W period -37 +KPX W o -74 +KPX W i -37 +KPX W hyphen -37 +KPX W e -74 +KPX W comma -92 +KPX W colon -37 +KPX W a -74 +KPX W A -90 + +KPX Y v -74 +KPX Y u -74 +KPX Y semicolon -55 +KPX Y q -92 +KPX Y period -74 +KPX Y p -74 +KPX Y o -74 +KPX Y i -55 +KPX Y hyphen -74 +KPX Y e -74 +KPX Y comma -74 +KPX Y colon -55 +KPX Y a -74 +KPX Y A -55 + +KPX f quoteright 37 +KPX f f -18 + +KPX one one -37 + +KPX quoteleft quoteleft -55 + +KPX quoteright t -18 +KPX quoteright space -55 +KPX quoteright s -55 +KPX quoteright quoteright -55 + +KPX r quoteright 55 +KPX r period -55 +KPX r hyphen -18 +KPX r comma -55 + +KPX v period -111 +KPX v comma -111 + +KPX w period -92 +KPX w comma -92 + +KPX y period -92 +KPX y comma -92 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 223 224 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 211 224 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 223 224 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 215 224 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 223 224 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 223 224 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 195 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 139 224 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 139 224 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 139 224 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 139 224 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 28 224 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 28 224 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 28 224 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 28 224 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 250 224 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 250 224 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 250 224 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 250 224 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 250 224 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 250 224 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 139 224 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 235 224 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 235 224 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 235 224 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 223 224 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 211 224 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 199 224 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 167 224 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 84 20 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 84 20 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 84 20 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 84 20 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 84 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 84 12 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 56 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 84 20 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 96 20 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 92 20 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 84 20 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 20 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 20 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 20 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 20 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 139 12 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 112 20 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 112 20 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 112 20 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 112 20 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 112 12 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 56 8 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 151 20 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 139 20 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 139 20 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 131 20 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 144 20 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 124 20 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 84 8 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-Bd+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-Bd+ new file mode 100755 index 0000000000000..985d761da9546 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-Bd+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 722 ; N Ccaron ; B 44 -17 695 918 ; +C -1 ; WX 444 ; N ccaron ; B 37 -17 414 685 ; +C -1 ; WX 833 ; N Dcaron ; B 35 -3 786 918 ; +C -1 ; WX 765 ; N dcaron ; B 42 -17 819 792 ; +C -1 ; WX 611 ; N Ecaron ; B 39 -4 577 918 ; +C -1 ; WX 500 ; N ecaron ; B 42 -17 461 685 ; +C -1 ; WX 611 ; N Lcaron ; B 39 -4 592 749 ; +C -1 ; WX 611 ; N Lacute ; B 39 -4 577 928 ; +C -1 ; WX 487 ; N lcaron ; B 24 -3 538 792 ; +C -1 ; WX 333 ; N lacute ; B 24 -3 340 928 ; +C -1 ; WX 833 ; N Ncaron ; B 35 -16 798 918 ; +C -1 ; WX 611 ; N ncaron ; B 24 -3 587 685 ; +C -1 ; WX 722 ; N Rcaron ; B 39 -3 708 918 ; +C -1 ; WX 722 ; N Racute ; B 39 -3 708 928 ; +C -1 ; WX 389 ; N rcaron ; B 26 -3 389 685 ; +C -1 ; WX 389 ; N racute ; B 30 -3 389 691 ; +C -1 ; WX 667 ; N Tcaron ; B 17 -3 650 918 ; +C -1 ; WX 487 ; N tcaron ; B 22 -17 566 695 ; +C -1 ; WX 778 ; N Uring ; B 26 -17 760 918 ; +C -1 ; WX 611 ; N uring ; B 25 -17 583 700 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 259 233 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 74 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 250 233 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 570 97 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 139 233 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 83 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 343 54 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 139 237 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 289 97 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 24 237 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 250 233 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 139 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 194 233 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 239 237 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 28 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 52 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 167 233 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 317 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 222 218 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 139 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-BdF b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-BdF new file mode 100755 index 0000000000000..7abf9ac5df12b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-BdF @@ -0,0 +1,432 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Wed Apr 24 13:46:21 1991 +Comment UniqueID 34739 +Comment VMusage 36532 47424 +FontName Palatino-BoldOsF +FullName Palatino Bold Old Style Figures +FamilyName Palatino +Weight Bold +ItalicAngle 0 +IsFixedPitch false +FontBBox -152 -266 988 924 +UnderlinePosition -131 +UnderlineThickness 58 +Version 001.001 +Notice Copyright (c) 1985, 1987, 1989, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved.Palatino is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 681 +XHeight 471 +Ascender 720 +Descender -258 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 278 ; N exclam ; B 63 -12 219 688 ; +C 34 ; WX 402 ; N quotedbl ; B 22 376 380 695 ; +C 35 ; WX 500 ; N numbersign ; B 4 0 496 673 ; +C 36 ; WX 500 ; N dollar ; B 28 -114 472 721 ; +C 37 ; WX 889 ; N percent ; B 61 -9 828 714 ; +C 38 ; WX 833 ; N ampersand ; B 52 -17 813 684 ; +C 39 ; WX 278 ; N quoteright ; B 29 405 249 695 ; +C 40 ; WX 333 ; N parenleft ; B 65 -104 305 723 ; +C 41 ; WX 333 ; N parenright ; B 28 -104 268 723 ; +C 42 ; WX 444 ; N asterisk ; B 44 332 399 695 ; +C 43 ; WX 606 ; N plus ; B 51 0 555 505 ; +C 44 ; WX 250 ; N comma ; B -6 -166 227 141 ; +C 45 ; WX 333 ; N hyphen ; B 16 195 317 305 ; +C 46 ; WX 250 ; N period ; B 47 -12 203 144 ; +C 47 ; WX 296 ; N slash ; B -9 -17 305 720 ; +C 48 ; WX 500 ; N zero ; B 42 -10 476 481 ; +C 49 ; WX 500 ; N one ; B 28 -8 454 480 ; +C 50 ; WX 500 ; N two ; B 18 -8 462 473 ; +C 51 ; WX 500 ; N three ; B 8 -236 440 481 ; +C 52 ; WX 500 ; N four ; B 6 -236 460 488 ; +C 53 ; WX 500 ; N five ; B 2 -236 434 477 ; +C 54 ; WX 500 ; N six ; B 38 -10 470 668 ; +C 55 ; WX 500 ; N seven ; B 46 -236 488 474 ; +C 56 ; WX 500 ; N eight ; B 34 -10 468 668 ; +C 57 ; WX 500 ; N nine ; B 24 -236 458 481 ; +C 58 ; WX 250 ; N colon ; B 47 -12 203 454 ; +C 59 ; WX 250 ; N semicolon ; B -6 -166 227 454 ; +C 60 ; WX 606 ; N less ; B 49 -15 558 519 ; +C 61 ; WX 606 ; N equal ; B 51 114 555 396 ; +C 62 ; WX 606 ; N greater ; B 49 -15 558 519 ; +C 63 ; WX 444 ; N question ; B 43 -12 411 687 ; +C 64 ; WX 747 ; N at ; B 42 -12 704 681 ; +C 65 ; WX 778 ; N A ; B 24 -3 757 686 ; +C 66 ; WX 667 ; N B ; B 39 -3 611 681 ; +C 67 ; WX 722 ; N C ; B 44 -17 695 695 ; +C 68 ; WX 833 ; N D ; B 35 -3 786 681 ; +C 69 ; WX 611 ; N E ; B 39 -4 577 681 ; +C 70 ; WX 556 ; N F ; B 28 -3 539 681 ; +C 71 ; WX 833 ; N G ; B 47 -17 776 695 ; +C 72 ; WX 833 ; N H ; B 36 -3 796 681 ; +C 73 ; WX 389 ; N I ; B 39 -3 350 681 ; +C 74 ; WX 389 ; N J ; B -11 -213 350 681 ; +C 75 ; WX 778 ; N K ; B 39 -3 763 681 ; +C 76 ; WX 611 ; N L ; B 39 -4 577 681 ; +C 77 ; WX 1000 ; N M ; B 32 -10 968 681 ; +C 78 ; WX 833 ; N N ; B 35 -16 798 681 ; +C 79 ; WX 833 ; N O ; B 47 -17 787 695 ; +C 80 ; WX 611 ; N P ; B 39 -3 594 681 ; +C 81 ; WX 833 ; N Q ; B 47 -184 787 695 ; +C 82 ; WX 722 ; N R ; B 39 -3 708 681 ; +C 83 ; WX 611 ; N S ; B 57 -17 559 695 ; +C 84 ; WX 667 ; N T ; B 17 -3 650 681 ; +C 85 ; WX 778 ; N U ; B 26 -17 760 681 ; +C 86 ; WX 778 ; N V ; B 20 -3 763 681 ; +C 87 ; WX 1000 ; N W ; B 17 -3 988 686 ; +C 88 ; WX 667 ; N X ; B 17 -3 650 695 ; +C 89 ; WX 667 ; N Y ; B 15 -3 660 695 ; +C 90 ; WX 667 ; N Z ; B 24 -3 627 681 ; +C 91 ; WX 333 ; N bracketleft ; B 73 -104 291 720 ; +C 92 ; WX 606 ; N backslash ; B 72 0 534 720 ; +C 93 ; WX 333 ; N bracketright ; B 42 -104 260 720 ; +C 94 ; WX 606 ; N asciicircum ; B 52 275 554 678 ; +C 95 ; WX 500 ; N underscore ; B 0 -160 500 -102 ; +C 96 ; WX 278 ; N quoteleft ; B 29 405 249 695 ; +C 97 ; WX 500 ; N a ; B 40 -17 478 471 ; +C 98 ; WX 611 ; N b ; B 10 -17 556 720 ; +C 99 ; WX 444 ; N c ; B 37 -17 414 471 ; +C 100 ; WX 611 ; N d ; B 42 -17 577 720 ; +C 101 ; WX 500 ; N e ; B 42 -17 461 471 ; +C 102 ; WX 389 ; N f ; B 34 -3 381 720 ; L i fi ; L l fl ; +C 103 ; WX 556 ; N g ; B 26 -266 535 471 ; +C 104 ; WX 611 ; N h ; B 24 -3 587 720 ; +C 105 ; WX 333 ; N i ; B 34 -3 298 706 ; +C 106 ; WX 333 ; N j ; B 3 -266 241 706 ; +C 107 ; WX 611 ; N k ; B 21 -3 597 720 ; +C 108 ; WX 333 ; N l ; B 24 -3 296 720 ; +C 109 ; WX 889 ; N m ; B 24 -3 864 471 ; +C 110 ; WX 611 ; N n ; B 24 -3 587 471 ; +C 111 ; WX 556 ; N o ; B 40 -17 517 471 ; +C 112 ; WX 611 ; N p ; B 29 -258 567 471 ; +C 113 ; WX 611 ; N q ; B 52 -258 589 471 ; +C 114 ; WX 389 ; N r ; B 30 -3 389 471 ; +C 115 ; WX 444 ; N s ; B 39 -17 405 471 ; +C 116 ; WX 333 ; N t ; B 22 -17 324 632 ; +C 117 ; WX 611 ; N u ; B 25 -17 583 471 ; +C 118 ; WX 556 ; N v ; B 11 -3 545 459 ; +C 119 ; WX 833 ; N w ; B 13 -3 820 471 ; +C 120 ; WX 500 ; N x ; B 20 -3 483 471 ; +C 121 ; WX 556 ; N y ; B 10 -266 546 459 ; +C 122 ; WX 500 ; N z ; B 16 -3 464 459 ; +C 123 ; WX 310 ; N braceleft ; B 5 -117 288 725 ; +C 124 ; WX 606 ; N bar ; B 260 0 346 720 ; +C 125 ; WX 310 ; N braceright ; B 22 -117 305 725 ; +C 126 ; WX 606 ; N asciitilde ; B 51 155 555 342 ; +C 161 ; WX 278 ; N exclamdown ; B 59 -227 215 471 ; +C 162 ; WX 500 ; N cent ; B 73 -106 450 554 ; +C 163 ; WX 500 ; N sterling ; B -2 -19 501 676 ; +C 164 ; WX 167 ; N fraction ; B -152 0 320 660 ; +C 165 ; WX 500 ; N yen ; B 17 -3 483 695 ; +C 166 ; WX 500 ; N florin ; B 11 -242 490 703 ; +C 167 ; WX 500 ; N section ; B 30 -217 471 695 ; +C 168 ; WX 500 ; N currency ; B 32 96 468 533 ; +C 169 ; WX 227 ; N quotesingle ; B 45 376 181 695 ; +C 170 ; WX 500 ; N quotedblleft ; B 34 405 466 695 ; +C 171 ; WX 500 ; N guillemotleft ; B 36 44 463 438 ; +C 172 ; WX 389 ; N guilsinglleft ; B 82 44 307 438 ; +C 173 ; WX 389 ; N guilsinglright ; B 82 44 307 438 ; +C 174 ; WX 611 ; N fi ; B 10 -3 595 720 ; +C 175 ; WX 611 ; N fl ; B 17 -3 593 720 ; +C 177 ; WX 500 ; N endash ; B 0 208 500 291 ; +C 178 ; WX 500 ; N dagger ; B 29 -6 472 682 ; +C 179 ; WX 500 ; N daggerdbl ; B 32 -245 468 682 ; +C 180 ; WX 250 ; N periodcentered ; B 47 179 203 335 ; +C 182 ; WX 641 ; N paragraph ; B 19 -161 599 683 ; +C 183 ; WX 606 ; N bullet ; B 131 172 475 516 ; +C 184 ; WX 333 ; N quotesinglbase ; B 56 -160 276 130 ; +C 185 ; WX 500 ; N quotedblbase ; B 34 -160 466 130 ; +C 186 ; WX 500 ; N quotedblright ; B 34 405 466 695 ; +C 187 ; WX 500 ; N guillemotright ; B 37 44 464 438 ; +C 188 ; WX 1000 ; N ellipsis ; B 89 -12 911 144 ; +C 189 ; WX 1000 ; N perthousand ; B 33 -9 982 724 ; +C 191 ; WX 444 ; N questiondown ; B 33 -231 401 471 ; +C 193 ; WX 333 ; N grave ; B 18 506 256 691 ; +C 194 ; WX 333 ; N acute ; B 78 506 316 691 ; +C 195 ; WX 333 ; N circumflex ; B -2 506 335 681 ; +C 196 ; WX 333 ; N tilde ; B -16 535 349 661 ; +C 197 ; WX 333 ; N macron ; B 1 538 332 609 ; +C 198 ; WX 333 ; N breve ; B 15 506 318 669 ; +C 199 ; WX 333 ; N dotaccent ; B 100 537 234 671 ; +C 200 ; WX 333 ; N dieresis ; B -8 537 341 671 ; +C 202 ; WX 333 ; N ring ; B 67 500 267 700 ; +C 203 ; WX 333 ; N cedilla ; B 73 -225 300 -7 ; +C 205 ; WX 333 ; N hungarumlaut ; B -56 506 390 691 ; +C 206 ; WX 333 ; N ogonek ; B 60 -246 274 -17 ; +C 207 ; WX 333 ; N caron ; B -2 510 335 685 ; +C 208 ; WX 1000 ; N emdash ; B 125 208 875 291 ; +C 225 ; WX 1000 ; N AE ; B 12 -4 954 681 ; +C 227 ; WX 438 ; N ordfeminine ; B 77 367 361 660 ; +C 232 ; WX 611 ; N Lslash ; B 16 -4 577 681 ; +C 233 ; WX 833 ; N Oslash ; B 32 -20 808 698 ; +C 234 ; WX 1000 ; N OE ; B 43 -17 985 695 ; +C 235 ; WX 488 ; N ordmasculine ; B 89 367 399 660 ; +C 241 ; WX 778 ; N ae ; B 46 -17 731 471 ; +C 245 ; WX 333 ; N dotlessi ; B 34 -3 298 471 ; +C 248 ; WX 333 ; N lslash ; B -4 -3 334 720 ; +C 249 ; WX 556 ; N oslash ; B 23 -18 534 471 ; +C 250 ; WX 833 ; N oe ; B 48 -17 799 471 ; +C 251 ; WX 611 ; N germandbls ; B 30 -17 565 720 ; +C -1 ; WX 500 ; N ecircumflex ; B 42 -17 461 701 ; +C -1 ; WX 500 ; N edieresis ; B 42 -17 461 691 ; +C -1 ; WX 500 ; N aacute ; B 40 -17 478 711 ; +C -1 ; WX 747 ; N registered ; B 26 -17 720 695 ; +C -1 ; WX 333 ; N icircumflex ; B -2 -3 335 701 ; +C -1 ; WX 611 ; N udieresis ; B 25 -17 583 691 ; +C -1 ; WX 556 ; N ograve ; B 40 -17 517 711 ; +C -1 ; WX 611 ; N uacute ; B 25 -17 583 711 ; +C -1 ; WX 611 ; N ucircumflex ; B 25 -17 583 701 ; +C -1 ; WX 778 ; N Aacute ; B 24 -3 757 915 ; +C -1 ; WX 333 ; N igrave ; B 18 -3 298 711 ; +C -1 ; WX 389 ; N Icircumflex ; B 26 -3 363 905 ; +C -1 ; WX 444 ; N ccedilla ; B 37 -225 414 471 ; +C -1 ; WX 500 ; N adieresis ; B 40 -17 478 691 ; +C -1 ; WX 611 ; N Ecircumflex ; B 39 -4 577 905 ; +C -1 ; WX 444 ; N scaron ; B 39 -17 405 693 ; +C -1 ; WX 611 ; N thorn ; B 17 -258 563 720 ; +C -1 ; WX 998 ; N trademark ; B 38 274 961 678 ; +C -1 ; WX 500 ; N egrave ; B 42 -17 461 711 ; +C -1 ; WX 300 ; N threesuperior ; B 9 261 292 667 ; +C -1 ; WX 500 ; N zcaron ; B 16 -3 464 693 ; +C -1 ; WX 500 ; N atilde ; B 40 -17 478 673 ; +C -1 ; WX 500 ; N aring ; B 40 -17 478 700 ; +C -1 ; WX 556 ; N ocircumflex ; B 40 -17 517 701 ; +C -1 ; WX 611 ; N Edieresis ; B 39 -4 577 895 ; +C -1 ; WX 750 ; N threequarters ; B 15 -2 735 667 ; +C -1 ; WX 556 ; N ydieresis ; B 10 -266 546 691 ; +C -1 ; WX 556 ; N yacute ; B 10 -266 546 711 ; +C -1 ; WX 333 ; N iacute ; B 34 -3 316 711 ; +C -1 ; WX 778 ; N Acircumflex ; B 24 -3 757 905 ; +C -1 ; WX 778 ; N Uacute ; B 26 -17 760 915 ; +C -1 ; WX 500 ; N eacute ; B 42 -17 461 711 ; +C -1 ; WX 833 ; N Ograve ; B 47 -17 787 915 ; +C -1 ; WX 500 ; N agrave ; B 40 -17 478 711 ; +C -1 ; WX 778 ; N Udieresis ; B 26 -17 760 895 ; +C -1 ; WX 500 ; N acircumflex ; B 40 -17 478 701 ; +C -1 ; WX 389 ; N Igrave ; B 39 -3 350 915 ; +C -1 ; WX 300 ; N twosuperior ; B 5 261 295 660 ; +C -1 ; WX 778 ; N Ugrave ; B 26 -17 760 915 ; +C -1 ; WX 750 ; N onequarter ; B 19 -2 735 665 ; +C -1 ; WX 778 ; N Ucircumflex ; B 26 -17 760 905 ; +C -1 ; WX 611 ; N Scaron ; B 57 -17 559 909 ; +C -1 ; WX 389 ; N Idieresis ; B 20 -3 369 895 ; +C -1 ; WX 333 ; N idieresis ; B -8 -3 341 691 ; +C -1 ; WX 611 ; N Egrave ; B 39 -4 577 915 ; +C -1 ; WX 833 ; N Oacute ; B 47 -17 787 915 ; +C -1 ; WX 606 ; N divide ; B 51 0 555 510 ; +C -1 ; WX 778 ; N Atilde ; B 24 -3 757 885 ; +C -1 ; WX 778 ; N Aring ; B 24 -3 757 924 ; +C -1 ; WX 833 ; N Odieresis ; B 47 -17 787 895 ; +C -1 ; WX 778 ; N Adieresis ; B 24 -3 757 895 ; +C -1 ; WX 833 ; N Ntilde ; B 35 -16 798 885 ; +C -1 ; WX 667 ; N Zcaron ; B 24 -3 627 909 ; +C -1 ; WX 611 ; N Thorn ; B 39 -3 574 681 ; +C -1 ; WX 389 ; N Iacute ; B 39 -3 350 915 ; +C -1 ; WX 606 ; N plusminus ; B 51 0 555 505 ; +C -1 ; WX 606 ; N multiply ; B 72 21 534 483 ; +C -1 ; WX 611 ; N Eacute ; B 39 -4 577 915 ; +C -1 ; WX 667 ; N Ydieresis ; B 15 -3 660 895 ; +C -1 ; WX 300 ; N onesuperior ; B 14 261 287 665 ; +C -1 ; WX 611 ; N ugrave ; B 25 -17 583 711 ; +C -1 ; WX 606 ; N logicalnot ; B 51 114 555 396 ; +C -1 ; WX 611 ; N ntilde ; B 24 -3 587 673 ; +C -1 ; WX 833 ; N Otilde ; B 47 -17 787 885 ; +C -1 ; WX 556 ; N otilde ; B 40 -17 517 673 ; +C -1 ; WX 722 ; N Ccedilla ; B 44 -225 695 695 ; +C -1 ; WX 778 ; N Agrave ; B 24 -3 757 915 ; +C -1 ; WX 750 ; N onehalf ; B 9 -2 745 665 ; +C -1 ; WX 833 ; N Eth ; B 10 -3 786 681 ; +C -1 ; WX 400 ; N degree ; B 50 360 350 660 ; +C -1 ; WX 667 ; N Yacute ; B 15 -3 660 915 ; +C -1 ; WX 833 ; N Ocircumflex ; B 47 -17 787 905 ; +C -1 ; WX 556 ; N oacute ; B 40 -17 517 711 ; +C -1 ; WX 611 ; N mu ; B 25 -225 583 471 ; +C -1 ; WX 606 ; N minus ; B 51 212 555 298 ; +C -1 ; WX 556 ; N eth ; B 40 -17 517 720 ; +C -1 ; WX 556 ; N odieresis ; B 40 -17 517 691 ; +C -1 ; WX 747 ; N copyright ; B 26 -17 720 695 ; +C -1 ; WX 606 ; N brokenbar ; B 260 0 346 720 ; +EndCharMetrics +StartKernData +StartKernPairs 101 + +KPX A y -70 +KPX A w -70 +KPX A v -70 +KPX A space -18 +KPX A quoteright -92 +KPX A Y -111 +KPX A W -90 +KPX A V -129 +KPX A T -92 + +KPX F period -111 +KPX F comma -111 +KPX F A -55 + +KPX L y -74 +KPX L space -18 +KPX L quoteright -74 +KPX L Y -92 +KPX L W -92 +KPX L V -92 +KPX L T -74 + +KPX P period -129 +KPX P comma -129 +KPX P A -74 + +KPX R y -30 +KPX R Y -55 +KPX R W -37 +KPX R V -74 +KPX R T -55 + +KPX T y -90 +KPX T w -90 +KPX T u -129 +KPX T semicolon -74 +KPX T s -111 +KPX T r -111 +KPX T period -92 +KPX T o -111 +KPX T i -55 +KPX T hyphen -92 +KPX T e -111 +KPX T comma -92 +KPX T colon -74 +KPX T c -129 +KPX T a -111 +KPX T A -92 + +KPX V y -90 +KPX V u -92 +KPX V semicolon -74 +KPX V r -111 +KPX V period -129 +KPX V o -111 +KPX V i -55 +KPX V hyphen -92 +KPX V e -111 +KPX V comma -129 +KPX V colon -74 +KPX V a -111 +KPX V A -129 + +KPX W y -74 +KPX W u -74 +KPX W semicolon -37 +KPX W r -74 +KPX W period -37 +KPX W o -74 +KPX W i -37 +KPX W hyphen -37 +KPX W e -74 +KPX W comma -92 +KPX W colon -37 +KPX W a -74 +KPX W A -90 + +KPX Y v -74 +KPX Y u -74 +KPX Y semicolon -55 +KPX Y q -92 +KPX Y period -74 +KPX Y p -74 +KPX Y o -74 +KPX Y i -55 +KPX Y hyphen -74 +KPX Y e -74 +KPX Y comma -74 +KPX Y colon -55 +KPX Y a -74 +KPX Y A -55 + +KPX f quoteright 37 +KPX f f -18 + +KPX one one -37 + +KPX quoteleft quoteleft -55 + +KPX quoteright t -18 +KPX quoteright space -55 +KPX quoteright s -55 +KPX quoteright quoteright -55 + +KPX r quoteright 55 +KPX r period -55 +KPX r hyphen -18 +KPX r comma -55 + +KPX v period -111 +KPX v comma -111 + +KPX w period -92 +KPX w comma -92 + +KPX y period -92 +KPX y comma -92 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 223 224 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 211 224 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 223 224 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 215 224 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 223 224 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 223 224 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 139 224 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 139 224 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 139 224 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 139 224 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 28 224 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 28 224 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 28 224 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 28 224 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 250 224 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 250 224 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 250 224 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 250 224 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 250 224 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 250 224 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 139 224 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 235 224 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 235 224 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 235 224 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 223 224 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 211 224 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 199 224 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 167 224 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 84 20 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 84 20 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 84 20 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 84 20 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 84 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 84 12 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 84 20 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 96 20 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 92 20 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 84 20 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 20 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 20 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 20 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 20 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 139 12 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 112 20 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 112 20 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 112 20 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 112 20 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 112 12 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 56 8 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 151 20 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 139 20 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 139 20 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 131 20 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 144 20 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 124 20 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 84 8 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-BdF+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-BdF+ new file mode 100755 index 0000000000000..985d761da9546 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-BdF+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 722 ; N Ccaron ; B 44 -17 695 918 ; +C -1 ; WX 444 ; N ccaron ; B 37 -17 414 685 ; +C -1 ; WX 833 ; N Dcaron ; B 35 -3 786 918 ; +C -1 ; WX 765 ; N dcaron ; B 42 -17 819 792 ; +C -1 ; WX 611 ; N Ecaron ; B 39 -4 577 918 ; +C -1 ; WX 500 ; N ecaron ; B 42 -17 461 685 ; +C -1 ; WX 611 ; N Lcaron ; B 39 -4 592 749 ; +C -1 ; WX 611 ; N Lacute ; B 39 -4 577 928 ; +C -1 ; WX 487 ; N lcaron ; B 24 -3 538 792 ; +C -1 ; WX 333 ; N lacute ; B 24 -3 340 928 ; +C -1 ; WX 833 ; N Ncaron ; B 35 -16 798 918 ; +C -1 ; WX 611 ; N ncaron ; B 24 -3 587 685 ; +C -1 ; WX 722 ; N Rcaron ; B 39 -3 708 918 ; +C -1 ; WX 722 ; N Racute ; B 39 -3 708 928 ; +C -1 ; WX 389 ; N rcaron ; B 26 -3 389 685 ; +C -1 ; WX 389 ; N racute ; B 30 -3 389 691 ; +C -1 ; WX 667 ; N Tcaron ; B 17 -3 650 918 ; +C -1 ; WX 487 ; N tcaron ; B 22 -17 566 695 ; +C -1 ; WX 778 ; N Uring ; B 26 -17 760 918 ; +C -1 ; WX 611 ; N uring ; B 25 -17 583 700 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 259 233 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 74 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 250 233 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 570 97 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 139 233 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 83 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 343 54 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 139 237 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 289 97 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 24 237 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 250 233 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 139 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 194 233 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 239 237 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 28 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 52 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 167 233 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 317 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 222 218 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 139 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-BdIt b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-BdIt new file mode 100755 index 0000000000000..e161d049090f6 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-BdIt @@ -0,0 +1,441 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Mon Jul 2 22:48:39 1990 +Comment UniqueID 31799 +Comment VMusage 37656 48548 +FontName Palatino-BoldItalic +FullName Palatino Bold Italic +FamilyName Palatino +Weight Bold +ItalicAngle -10 +IsFixedPitch false +FontBBox -170 -271 1073 926 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.005 +Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Palatino is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 681 +XHeight 469 +Ascender 726 +Descender -271 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 58 -17 322 695 ; +C 34 ; WX 500 ; N quotedbl ; B 137 467 493 720 ; +C 35 ; WX 500 ; N numbersign ; B 4 0 496 673 ; +C 36 ; WX 500 ; N dollar ; B 20 -108 477 737 ; +C 37 ; WX 889 ; N percent ; B 56 -17 790 697 ; +C 38 ; WX 833 ; N ampersand ; B 74 -17 811 695 ; +C 39 ; WX 278 ; N quoteright ; B 76 431 302 720 ; +C 40 ; WX 333 ; N parenleft ; B 58 -129 368 723 ; +C 41 ; WX 333 ; N parenright ; B -12 -129 298 723 ; +C 42 ; WX 444 ; N asterisk ; B 84 332 439 695 ; +C 43 ; WX 606 ; N plus ; B 50 -5 556 501 ; +C 44 ; WX 250 ; N comma ; B -33 -164 208 147 ; +C 45 ; WX 389 ; N hyphen ; B 37 198 362 300 ; +C 46 ; WX 250 ; N period ; B 48 -17 187 135 ; +C 47 ; WX 315 ; N slash ; B 1 -17 315 720 ; +C 48 ; WX 500 ; N zero ; B 42 -17 490 683 ; +C 49 ; WX 500 ; N one ; B 41 -3 434 678 ; +C 50 ; WX 500 ; N two ; B 1 -3 454 683 ; +C 51 ; WX 500 ; N three ; B 8 -17 450 683 ; +C 52 ; WX 500 ; N four ; B 3 -3 487 683 ; +C 53 ; WX 500 ; N five ; B 14 -17 481 675 ; +C 54 ; WX 500 ; N six ; B 39 -17 488 683 ; +C 55 ; WX 500 ; N seven ; B 69 -3 544 674 ; +C 56 ; WX 500 ; N eight ; B 26 -17 484 683 ; +C 57 ; WX 500 ; N nine ; B 27 -17 491 683 ; +C 58 ; WX 250 ; N colon ; B 38 -17 236 452 ; +C 59 ; WX 250 ; N semicolon ; B -33 -164 247 452 ; +C 60 ; WX 606 ; N less ; B 49 -21 558 517 ; +C 61 ; WX 606 ; N equal ; B 51 106 555 390 ; +C 62 ; WX 606 ; N greater ; B 48 -21 557 517 ; +C 63 ; WX 444 ; N question ; B 91 -17 450 695 ; +C 64 ; WX 833 ; N at ; B 82 -12 744 681 ; +C 65 ; WX 722 ; N A ; B -35 -3 685 683 ; +C 66 ; WX 667 ; N B ; B 8 -3 629 681 ; +C 67 ; WX 685 ; N C ; B 69 -17 695 695 ; +C 68 ; WX 778 ; N D ; B 0 -3 747 682 ; +C 69 ; WX 611 ; N E ; B 11 -3 606 681 ; +C 70 ; WX 556 ; N F ; B -6 -3 593 681 ; +C 71 ; WX 778 ; N G ; B 72 -17 750 695 ; +C 72 ; WX 778 ; N H ; B -12 -3 826 681 ; +C 73 ; WX 389 ; N I ; B -1 -3 412 681 ; +C 74 ; WX 389 ; N J ; B -29 -207 417 681 ; +C 75 ; WX 722 ; N K ; B -10 -3 746 681 ; +C 76 ; WX 611 ; N L ; B 26 -3 578 681 ; +C 77 ; WX 944 ; N M ; B -23 -17 985 681 ; +C 78 ; WX 778 ; N N ; B -2 -3 829 681 ; +C 79 ; WX 833 ; N O ; B 76 -17 794 695 ; +C 80 ; WX 667 ; N P ; B 11 -3 673 681 ; +C 81 ; WX 833 ; N Q ; B 76 -222 794 695 ; +C 82 ; WX 722 ; N R ; B 4 -3 697 681 ; +C 83 ; WX 556 ; N S ; B 50 -17 517 695 ; +C 84 ; WX 611 ; N T ; B 56 -3 674 681 ; +C 85 ; WX 778 ; N U ; B 83 -17 825 681 ; +C 86 ; WX 667 ; N V ; B 67 -3 745 681 ; +C 87 ; WX 1000 ; N W ; B 67 -3 1073 689 ; +C 88 ; WX 722 ; N X ; B -9 -3 772 681 ; +C 89 ; WX 611 ; N Y ; B 54 -3 675 695 ; +C 90 ; WX 667 ; N Z ; B 1 -3 676 681 ; +C 91 ; WX 333 ; N bracketleft ; B 45 -102 381 723 ; +C 92 ; WX 606 ; N backslash ; B 72 0 534 720 ; +C 93 ; WX 333 ; N bracketright ; B -21 -102 315 723 ; +C 94 ; WX 606 ; N asciicircum ; B 63 275 543 678 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 278 ; N quoteleft ; B 65 431 291 720 ; +C 97 ; WX 556 ; N a ; B 44 -17 519 470 ; +C 98 ; WX 537 ; N b ; B 44 -17 494 726 ; +C 99 ; WX 444 ; N c ; B 32 -17 436 469 ; +C 100 ; WX 556 ; N d ; B 38 -17 550 726 ; +C 101 ; WX 444 ; N e ; B 28 -17 418 469 ; +C 102 ; WX 333 ; N f ; B -130 -271 449 726 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B -50 -271 529 469 ; +C 104 ; WX 556 ; N h ; B 22 -17 522 726 ; +C 105 ; WX 333 ; N i ; B 26 -17 312 695 ; +C 106 ; WX 333 ; N j ; B -64 -271 323 695 ; +C 107 ; WX 556 ; N k ; B 34 -17 528 726 ; +C 108 ; WX 333 ; N l ; B 64 -17 318 726 ; +C 109 ; WX 833 ; N m ; B 19 -17 803 469 ; +C 110 ; WX 556 ; N n ; B 17 -17 521 469 ; +C 111 ; WX 556 ; N o ; B 48 -17 502 469 ; +C 112 ; WX 556 ; N p ; B -21 -271 516 469 ; +C 113 ; WX 537 ; N q ; B 32 -271 513 469 ; +C 114 ; WX 389 ; N r ; B 20 -17 411 469 ; +C 115 ; WX 444 ; N s ; B 25 -17 406 469 ; +C 116 ; WX 389 ; N t ; B 42 -17 409 636 ; +C 117 ; WX 556 ; N u ; B 22 -17 521 469 ; +C 118 ; WX 556 ; N v ; B 19 -17 513 469 ; +C 119 ; WX 833 ; N w ; B 27 -17 802 469 ; +C 120 ; WX 500 ; N x ; B -8 -17 500 469 ; +C 121 ; WX 556 ; N y ; B 13 -271 541 469 ; +C 122 ; WX 500 ; N z ; B 31 -17 470 469 ; +C 123 ; WX 333 ; N braceleft ; B 18 -105 334 720 ; +C 124 ; WX 606 ; N bar ; B 259 0 347 720 ; +C 125 ; WX 333 ; N braceright ; B -1 -105 315 720 ; +C 126 ; WX 606 ; N asciitilde ; B 51 151 555 346 ; +C 161 ; WX 333 ; N exclamdown ; B 2 -225 259 479 ; +C 162 ; WX 500 ; N cent ; B 52 -105 456 547 ; +C 163 ; WX 500 ; N sterling ; B 21 -5 501 683 ; +C 164 ; WX 167 ; N fraction ; B -170 0 338 683 ; +C 165 ; WX 500 ; N yen ; B 11 -3 538 695 ; +C 166 ; WX 500 ; N florin ; B 8 -242 479 690 ; +C 167 ; WX 556 ; N section ; B 47 -151 497 695 ; +C 168 ; WX 500 ; N currency ; B 32 96 468 533 ; +C 169 ; WX 250 ; N quotesingle ; B 127 467 293 720 ; +C 170 ; WX 500 ; N quotedblleft ; B 65 431 511 720 ; +C 171 ; WX 500 ; N guillemotleft ; B 35 43 458 446 ; +C 172 ; WX 333 ; N guilsinglleft ; B 60 43 292 446 ; +C 173 ; WX 333 ; N guilsinglright ; B 35 40 267 443 ; +C 174 ; WX 611 ; N fi ; B -130 -271 588 726 ; +C 175 ; WX 611 ; N fl ; B -130 -271 631 726 ; +C 177 ; WX 500 ; N endash ; B -12 214 512 282 ; +C 178 ; WX 556 ; N dagger ; B 67 -3 499 685 ; +C 179 ; WX 556 ; N daggerdbl ; B 33 -153 537 693 ; +C 180 ; WX 250 ; N periodcentered ; B 67 172 206 324 ; +C 182 ; WX 556 ; N paragraph ; B 14 -204 629 681 ; +C 183 ; WX 606 ; N bullet ; B 131 172 475 516 ; +C 184 ; WX 250 ; N quotesinglbase ; B -3 -144 220 145 ; +C 185 ; WX 500 ; N quotedblbase ; B -18 -144 424 145 ; +C 186 ; WX 500 ; N quotedblright ; B 73 431 519 720 ; +C 187 ; WX 500 ; N guillemotright ; B 35 40 458 443 ; +C 188 ; WX 1000 ; N ellipsis ; B 91 -17 896 135 ; +C 189 ; WX 1000 ; N perthousand ; B 65 -17 912 691 ; +C 191 ; WX 444 ; N questiondown ; B -12 -226 347 479 ; +C 193 ; WX 333 ; N grave ; B 110 518 322 699 ; +C 194 ; WX 333 ; N acute ; B 153 518 392 699 ; +C 195 ; WX 333 ; N circumflex ; B 88 510 415 684 ; +C 196 ; WX 333 ; N tilde ; B 82 535 441 654 ; +C 197 ; WX 333 ; N macron ; B 76 538 418 608 ; +C 198 ; WX 333 ; N breve ; B 96 518 412 680 ; +C 199 ; WX 333 ; N dotaccent ; B 202 537 325 668 ; +C 200 ; WX 333 ; N dieresis ; B 90 537 426 668 ; +C 202 ; WX 556 ; N ring ; B 277 514 477 714 ; +C 203 ; WX 333 ; N cedilla ; B 12 -218 248 5 ; +C 205 ; WX 333 ; N hungarumlaut ; B -28 518 409 699 ; +C 206 ; WX 333 ; N ogonek ; B 32 -206 238 -17 ; +C 207 ; WX 333 ; N caron ; B 113 510 445 684 ; +C 208 ; WX 1000 ; N emdash ; B -12 214 1012 282 ; +C 225 ; WX 944 ; N AE ; B -29 -3 927 681 ; +C 227 ; WX 333 ; N ordfeminine ; B 47 391 355 684 ; +C 232 ; WX 611 ; N Lslash ; B 6 -3 578 681 ; +C 233 ; WX 833 ; N Oslash ; B 57 -54 797 730 ; +C 234 ; WX 944 ; N OE ; B 39 -17 961 695 ; +C 235 ; WX 333 ; N ordmasculine ; B 51 391 346 683 ; +C 241 ; WX 738 ; N ae ; B 44 -17 711 469 ; +C 245 ; WX 333 ; N dotlessi ; B 26 -17 293 469 ; +C 248 ; WX 333 ; N lslash ; B 13 -17 365 726 ; +C 249 ; WX 556 ; N oslash ; B 14 -50 522 506 ; +C 250 ; WX 778 ; N oe ; B 48 -17 755 469 ; +C 251 ; WX 556 ; N germandbls ; B -131 -271 549 726 ; +C -1 ; WX 667 ; N Zcaron ; B 1 -3 676 896 ; +C -1 ; WX 444 ; N ccedilla ; B 32 -218 436 469 ; +C -1 ; WX 556 ; N ydieresis ; B 13 -271 541 688 ; +C -1 ; WX 556 ; N atilde ; B 44 -17 553 666 ; +C -1 ; WX 333 ; N icircumflex ; B 26 -17 403 704 ; +C -1 ; WX 300 ; N threesuperior ; B 23 263 310 683 ; +C -1 ; WX 444 ; N ecircumflex ; B 28 -17 471 704 ; +C -1 ; WX 556 ; N thorn ; B -21 -271 516 726 ; +C -1 ; WX 444 ; N egrave ; B 28 -17 418 719 ; +C -1 ; WX 300 ; N twosuperior ; B 26 271 321 683 ; +C -1 ; WX 444 ; N eacute ; B 28 -17 448 719 ; +C -1 ; WX 556 ; N otilde ; B 48 -17 553 666 ; +C -1 ; WX 722 ; N Aacute ; B -35 -3 685 911 ; +C -1 ; WX 556 ; N ocircumflex ; B 48 -17 515 704 ; +C -1 ; WX 556 ; N yacute ; B 13 -271 541 719 ; +C -1 ; WX 556 ; N udieresis ; B 22 -17 538 688 ; +C -1 ; WX 750 ; N threequarters ; B 18 -2 732 683 ; +C -1 ; WX 556 ; N acircumflex ; B 44 -17 527 704 ; +C -1 ; WX 778 ; N Eth ; B 0 -3 747 682 ; +C -1 ; WX 444 ; N edieresis ; B 28 -17 482 688 ; +C -1 ; WX 556 ; N ugrave ; B 22 -17 521 719 ; +C -1 ; WX 1000 ; N trademark ; B 38 274 961 678 ; +C -1 ; WX 556 ; N ograve ; B 48 -17 502 719 ; +C -1 ; WX 444 ; N scaron ; B 25 -17 489 692 ; +C -1 ; WX 389 ; N Idieresis ; B -1 -3 454 880 ; +C -1 ; WX 556 ; N uacute ; B 22 -17 521 719 ; +C -1 ; WX 556 ; N agrave ; B 44 -17 519 719 ; +C -1 ; WX 556 ; N ntilde ; B 17 -17 553 666 ; +C -1 ; WX 556 ; N aring ; B 44 -17 519 714 ; +C -1 ; WX 500 ; N zcaron ; B 31 -17 517 692 ; +C -1 ; WX 389 ; N Icircumflex ; B -1 -3 443 896 ; +C -1 ; WX 778 ; N Ntilde ; B -2 -3 829 866 ; +C -1 ; WX 556 ; N ucircumflex ; B 22 -17 521 704 ; +C -1 ; WX 611 ; N Ecircumflex ; B 11 -3 606 896 ; +C -1 ; WX 389 ; N Iacute ; B -1 -3 420 911 ; +C -1 ; WX 685 ; N Ccedilla ; B 69 -218 695 695 ; +C -1 ; WX 833 ; N Odieresis ; B 76 -17 794 880 ; +C -1 ; WX 556 ; N Scaron ; B 50 -17 557 896 ; +C -1 ; WX 611 ; N Edieresis ; B 11 -3 606 880 ; +C -1 ; WX 389 ; N Igrave ; B -1 -3 412 911 ; +C -1 ; WX 556 ; N adieresis ; B 44 -17 538 688 ; +C -1 ; WX 833 ; N Ograve ; B 76 -17 794 911 ; +C -1 ; WX 611 ; N Egrave ; B 11 -3 606 911 ; +C -1 ; WX 611 ; N Ydieresis ; B 54 -3 675 880 ; +C -1 ; WX 747 ; N registered ; B 26 -17 720 695 ; +C -1 ; WX 833 ; N Otilde ; B 76 -17 794 866 ; +C -1 ; WX 750 ; N onequarter ; B 18 -2 732 683 ; +C -1 ; WX 778 ; N Ugrave ; B 83 -17 825 911 ; +C -1 ; WX 778 ; N Ucircumflex ; B 83 -17 825 896 ; +C -1 ; WX 667 ; N Thorn ; B 11 -3 644 681 ; +C -1 ; WX 606 ; N divide ; B 50 -5 556 501 ; +C -1 ; WX 722 ; N Atilde ; B -35 -3 685 866 ; +C -1 ; WX 778 ; N Uacute ; B 83 -17 825 911 ; +C -1 ; WX 833 ; N Ocircumflex ; B 76 -17 794 896 ; +C -1 ; WX 606 ; N logicalnot ; B 51 107 555 390 ; +C -1 ; WX 722 ; N Aring ; B -35 -3 685 926 ; +C -1 ; WX 333 ; N idieresis ; B 26 -17 426 688 ; +C -1 ; WX 333 ; N iacute ; B 26 -17 392 719 ; +C -1 ; WX 556 ; N aacute ; B 44 -17 519 719 ; +C -1 ; WX 606 ; N plusminus ; B 50 0 556 501 ; +C -1 ; WX 606 ; N multiply ; B 72 17 534 479 ; +C -1 ; WX 778 ; N Udieresis ; B 83 -17 825 880 ; +C -1 ; WX 606 ; N minus ; B 51 204 555 292 ; +C -1 ; WX 300 ; N onesuperior ; B 41 271 298 680 ; +C -1 ; WX 611 ; N Eacute ; B 11 -3 606 911 ; +C -1 ; WX 722 ; N Acircumflex ; B -35 -3 685 896 ; +C -1 ; WX 747 ; N copyright ; B 26 -17 720 695 ; +C -1 ; WX 722 ; N Agrave ; B -35 -3 685 911 ; +C -1 ; WX 556 ; N odieresis ; B 48 -17 538 688 ; +C -1 ; WX 556 ; N oacute ; B 48 -17 504 719 ; +C -1 ; WX 400 ; N degree ; B 50 383 350 683 ; +C -1 ; WX 333 ; N igrave ; B 26 -17 322 719 ; +C -1 ; WX 556 ; N mu ; B -15 -232 521 469 ; +C -1 ; WX 833 ; N Oacute ; B 76 -17 794 911 ; +C -1 ; WX 556 ; N eth ; B 48 -17 546 726 ; +C -1 ; WX 722 ; N Adieresis ; B -35 -3 685 880 ; +C -1 ; WX 611 ; N Yacute ; B 54 -3 675 911 ; +C -1 ; WX 606 ; N brokenbar ; B 259 0 347 720 ; +C -1 ; WX 750 ; N onehalf ; B 14 -2 736 683 ; +EndCharMetrics +StartKernData +StartKernPairs 108 + +KPX A y -55 +KPX A w -37 +KPX A v -55 +KPX A space -55 +KPX A quoteright -55 +KPX A Y -74 +KPX A W -74 +KPX A V -74 +KPX A T -55 + +KPX F space -18 +KPX F period -111 +KPX F comma -111 +KPX F A -74 + +KPX L y -37 +KPX L space -18 +KPX L quoteright -55 +KPX L Y -74 +KPX L W -74 +KPX L V -74 +KPX L T -74 + +KPX P space -55 +KPX P period -129 +KPX P comma -129 +KPX P A -92 + +KPX R y -20 +KPX R Y -37 +KPX R W -55 +KPX R V -55 +KPX R T -37 + +KPX T y -80 +KPX T w -50 +KPX T u -92 +KPX T semicolon -55 +KPX T s -92 +KPX T r -92 +KPX T period -55 +KPX T o -111 +KPX T i -74 +KPX T hyphen -92 +KPX T e -111 +KPX T comma -55 +KPX T colon -55 +KPX T c -92 +KPX T a -111 +KPX T O -18 +KPX T A -55 + +KPX V y -50 +KPX V u -50 +KPX V semicolon -37 +KPX V r -74 +KPX V period -111 +KPX V o -74 +KPX V i -50 +KPX V hyphen -37 +KPX V e -74 +KPX V comma -111 +KPX V colon -37 +KPX V a -92 +KPX V A -74 + +KPX W y -30 +KPX W u -30 +KPX W semicolon -18 +KPX W r -30 +KPX W period -55 +KPX W o -55 +KPX W i -30 +KPX W e -55 +KPX W comma -55 +KPX W colon -28 +KPX W a -74 +KPX W A -74 + +KPX Y v -30 +KPX Y u -50 +KPX Y semicolon -55 +KPX Y q -92 +KPX Y period -55 +KPX Y p -74 +KPX Y o -111 +KPX Y i -54 +KPX Y hyphen -55 +KPX Y e -92 +KPX Y comma -55 +KPX Y colon -55 +KPX Y a -111 +KPX Y A -55 + +KPX f quoteright 37 +KPX f f -37 + +KPX one one -55 + +KPX quoteleft quoteleft -55 + +KPX quoteright t -18 +KPX quoteright space -37 +KPX quoteright s -37 +KPX quoteright quoteright -55 + +KPX r quoteright 55 +KPX r q -18 +KPX r period -55 +KPX r o -18 +KPX r h -18 +KPX r g -18 +KPX r e -18 +KPX r comma -55 +KPX r c -18 + +KPX v period -55 +KPX v comma -55 + +KPX w period -55 +KPX w comma -55 + +KPX y period -37 +KPX y comma -37 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 195 212 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 195 212 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 195 212 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 195 212 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 83 212 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 195 212 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 176 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 139 212 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 139 212 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 139 212 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 139 212 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 28 212 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 28 212 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 28 212 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 28 212 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 223 212 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 250 212 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 250 212 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 250 212 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 250 212 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 250 212 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 112 212 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 223 212 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 223 212 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 223 212 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 211 212 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 151 212 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 139 212 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 167 212 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 112 20 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 112 20 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 112 20 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 112 20 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 0 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 112 12 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 56 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 56 20 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 56 20 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 56 20 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 56 20 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 20 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -12 20 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 20 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 20 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 112 12 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 112 20 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 100 20 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 112 20 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 112 20 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 112 12 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 44 8 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 112 20 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 100 20 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 112 20 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 112 20 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 112 20 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 112 20 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 72 8 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-BdIt+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-BdIt+ new file mode 100755 index 0000000000000..62fe1402d6149 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-BdIt+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 685 ; N Ccaron ; B 69 -17 725 917 ; +C -1 ; WX 444 ; N ccaron ; B 32 -17 520 684 ; +C -1 ; WX 778 ; N Dcaron ; B 0 -3 747 917 ; +C -1 ; WX 714 ; N dcaron ; B 38 -17 799 799 ; +C -1 ; WX 611 ; N Ecaron ; B 11 -3 625 917 ; +C -1 ; WX 444 ; N ecaron ; B 28 -17 500 684 ; +C -1 ; WX 611 ; N Lcaron ; B 26 -3 661 749 ; +C -1 ; WX 611 ; N Lacute ; B 26 -3 578 924 ; +C -1 ; WX 491 ; N lcaron ; B 64 -17 567 799 ; +C -1 ; WX 333 ; N lacute ; B 64 -17 455 924 ; +C -1 ; WX 778 ; N Ncaron ; B -2 -3 829 917 ; +C -1 ; WX 556 ; N ncaron ; B 17 -17 556 684 ; +C -1 ; WX 722 ; N Rcaron ; B 4 -3 697 917 ; +C -1 ; WX 722 ; N Racute ; B 4 -3 697 924 ; +C -1 ; WX 389 ; N rcaron ; B 20 -17 473 684 ; +C -1 ; WX 389 ; N racute ; B 20 -17 444 699 ; +C -1 ; WX 611 ; N Tcaron ; B 56 -3 674 917 ; +C -1 ; WX 547 ; N tcaron ; B 42 -17 658 720 ; +C -1 ; WX 778 ; N Uring ; B 83 -17 825 917 ; +C -1 ; WX 556 ; N uring ; B 22 -17 521 714 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 280 233 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 75 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 263 233 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 497 79 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 180 233 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 55 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 359 29 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 178 225 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 265 79 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 63 225 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 263 233 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 111 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 235 233 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 278 225 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 28 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 52 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 180 233 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 356 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 146 203 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 0 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-BdItF b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-BdItF new file mode 100755 index 0000000000000..a2b3a49d2dfde --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-BdItF @@ -0,0 +1,439 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Wed Apr 24 14:37:49 1991 +Comment UniqueID 34742 +Comment VMusage 38760 49652 +FontName Palatino-BoldItalicOsF +FullName Palatino Bold Italic Old Style Figures +FamilyName Palatino +Weight Bold +ItalicAngle -10 +IsFixedPitch false +FontBBox -170 -271 1073 926 +UnderlinePosition -131 +UnderlineThickness 58 +Version 001.001 +Notice Copyright (c) 1985, 1987, 1989, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved.Palatino is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 681 +XHeight 469 +Ascender 726 +Descender -271 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 58 -17 322 695 ; +C 34 ; WX 500 ; N quotedbl ; B 137 467 493 720 ; +C 35 ; WX 500 ; N numbersign ; B 4 0 496 673 ; +C 36 ; WX 500 ; N dollar ; B 20 -108 477 737 ; +C 37 ; WX 889 ; N percent ; B 56 -17 790 697 ; +C 38 ; WX 833 ; N ampersand ; B 74 -17 811 695 ; +C 39 ; WX 278 ; N quoteright ; B 76 431 302 720 ; +C 40 ; WX 333 ; N parenleft ; B 58 -129 368 723 ; +C 41 ; WX 333 ; N parenright ; B -12 -129 298 723 ; +C 42 ; WX 444 ; N asterisk ; B 84 332 439 695 ; +C 43 ; WX 606 ; N plus ; B 50 -5 556 501 ; +C 44 ; WX 250 ; N comma ; B -33 -164 208 147 ; +C 45 ; WX 389 ; N hyphen ; B 37 198 362 300 ; +C 46 ; WX 250 ; N period ; B 48 -17 187 135 ; +C 47 ; WX 315 ; N slash ; B 1 -17 315 720 ; +C 48 ; WX 500 ; N zero ; B 26 -12 466 477 ; +C 49 ; WX 500 ; N one ; B 48 -4 462 488 ; +C 50 ; WX 500 ; N two ; B 8 -6 434 477 ; +C 51 ; WX 500 ; N three ; B -40 -256 410 477 ; +C 52 ; WX 500 ; N four ; B -18 -270 462 486 ; +C 53 ; WX 500 ; N five ; B -30 -256 446 471 ; +C 54 ; WX 500 ; N six ; B 34 -12 484 686 ; +C 55 ; WX 500 ; N seven ; B 8 -249 508 473 ; +C 56 ; WX 500 ; N eight ; B 26 -12 484 686 ; +C 57 ; WX 500 ; N nine ; B 0 -256 458 477 ; +C 58 ; WX 250 ; N colon ; B 38 -17 236 452 ; +C 59 ; WX 250 ; N semicolon ; B -33 -164 247 452 ; +C 60 ; WX 606 ; N less ; B 49 -21 558 517 ; +C 61 ; WX 606 ; N equal ; B 51 106 555 390 ; +C 62 ; WX 606 ; N greater ; B 48 -21 557 517 ; +C 63 ; WX 444 ; N question ; B 91 -17 450 695 ; +C 64 ; WX 833 ; N at ; B 82 -12 744 681 ; +C 65 ; WX 722 ; N A ; B -35 -3 685 683 ; +C 66 ; WX 667 ; N B ; B 8 -3 629 681 ; +C 67 ; WX 685 ; N C ; B 69 -17 695 695 ; +C 68 ; WX 778 ; N D ; B 0 -3 747 682 ; +C 69 ; WX 611 ; N E ; B 11 -3 606 681 ; +C 70 ; WX 556 ; N F ; B -6 -3 593 681 ; +C 71 ; WX 778 ; N G ; B 72 -17 750 695 ; +C 72 ; WX 778 ; N H ; B -12 -3 826 681 ; +C 73 ; WX 389 ; N I ; B -1 -3 412 681 ; +C 74 ; WX 389 ; N J ; B -29 -207 417 681 ; +C 75 ; WX 722 ; N K ; B -10 -3 746 681 ; +C 76 ; WX 611 ; N L ; B 26 -3 578 681 ; +C 77 ; WX 944 ; N M ; B -23 -17 985 681 ; +C 78 ; WX 778 ; N N ; B -2 -3 829 681 ; +C 79 ; WX 833 ; N O ; B 76 -17 794 695 ; +C 80 ; WX 667 ; N P ; B 11 -3 673 681 ; +C 81 ; WX 833 ; N Q ; B 76 -222 794 695 ; +C 82 ; WX 722 ; N R ; B 4 -3 697 681 ; +C 83 ; WX 556 ; N S ; B 50 -17 517 695 ; +C 84 ; WX 611 ; N T ; B 56 -3 674 681 ; +C 85 ; WX 778 ; N U ; B 83 -17 825 681 ; +C 86 ; WX 667 ; N V ; B 67 -3 745 681 ; +C 87 ; WX 1000 ; N W ; B 67 -3 1073 689 ; +C 88 ; WX 722 ; N X ; B -9 -3 772 681 ; +C 89 ; WX 611 ; N Y ; B 54 -3 675 695 ; +C 90 ; WX 667 ; N Z ; B 1 -3 676 681 ; +C 91 ; WX 333 ; N bracketleft ; B 45 -102 381 723 ; +C 92 ; WX 606 ; N backslash ; B 72 0 534 720 ; +C 93 ; WX 333 ; N bracketright ; B -21 -102 315 723 ; +C 94 ; WX 606 ; N asciicircum ; B 63 275 543 678 ; +C 95 ; WX 500 ; N underscore ; B 0 -160 500 -102 ; +C 96 ; WX 278 ; N quoteleft ; B 65 431 291 720 ; +C 97 ; WX 556 ; N a ; B 44 -17 519 470 ; +C 98 ; WX 537 ; N b ; B 44 -17 494 726 ; +C 99 ; WX 444 ; N c ; B 32 -17 436 469 ; +C 100 ; WX 556 ; N d ; B 38 -17 550 726 ; +C 101 ; WX 444 ; N e ; B 28 -17 418 469 ; +C 102 ; WX 333 ; N f ; B -130 -271 449 726 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B -50 -271 529 469 ; +C 104 ; WX 556 ; N h ; B 22 -17 522 726 ; +C 105 ; WX 333 ; N i ; B 26 -17 312 695 ; +C 106 ; WX 333 ; N j ; B -64 -271 323 695 ; +C 107 ; WX 556 ; N k ; B 34 -17 528 726 ; +C 108 ; WX 333 ; N l ; B 64 -17 318 726 ; +C 109 ; WX 833 ; N m ; B 19 -17 803 469 ; +C 110 ; WX 556 ; N n ; B 17 -17 521 469 ; +C 111 ; WX 556 ; N o ; B 48 -17 502 469 ; +C 112 ; WX 556 ; N p ; B -21 -271 516 469 ; +C 113 ; WX 537 ; N q ; B 32 -271 513 469 ; +C 114 ; WX 389 ; N r ; B 20 -17 411 469 ; +C 115 ; WX 444 ; N s ; B 25 -17 406 469 ; +C 116 ; WX 389 ; N t ; B 42 -17 409 636 ; +C 117 ; WX 556 ; N u ; B 22 -17 521 469 ; +C 118 ; WX 556 ; N v ; B 19 -17 513 469 ; +C 119 ; WX 833 ; N w ; B 27 -17 802 469 ; +C 120 ; WX 500 ; N x ; B -8 -17 500 469 ; +C 121 ; WX 556 ; N y ; B 13 -271 541 469 ; +C 122 ; WX 500 ; N z ; B 31 -17 470 469 ; +C 123 ; WX 333 ; N braceleft ; B 18 -105 334 720 ; +C 124 ; WX 606 ; N bar ; B 259 0 347 720 ; +C 125 ; WX 333 ; N braceright ; B -1 -105 315 720 ; +C 126 ; WX 606 ; N asciitilde ; B 51 151 555 346 ; +C 161 ; WX 333 ; N exclamdown ; B 2 -225 259 479 ; +C 162 ; WX 500 ; N cent ; B 52 -105 456 547 ; +C 163 ; WX 500 ; N sterling ; B 21 -5 501 683 ; +C 164 ; WX 167 ; N fraction ; B -170 0 338 683 ; +C 165 ; WX 500 ; N yen ; B 11 -3 538 695 ; +C 166 ; WX 500 ; N florin ; B 8 -242 479 690 ; +C 167 ; WX 556 ; N section ; B 47 -151 497 695 ; +C 168 ; WX 500 ; N currency ; B 32 96 468 533 ; +C 169 ; WX 250 ; N quotesingle ; B 127 467 293 720 ; +C 170 ; WX 500 ; N quotedblleft ; B 65 431 511 720 ; +C 171 ; WX 500 ; N guillemotleft ; B 35 43 458 446 ; +C 172 ; WX 333 ; N guilsinglleft ; B 60 43 292 446 ; +C 173 ; WX 333 ; N guilsinglright ; B 35 40 267 443 ; +C 174 ; WX 611 ; N fi ; B -130 -271 588 726 ; +C 175 ; WX 611 ; N fl ; B -130 -271 631 726 ; +C 177 ; WX 500 ; N endash ; B -12 214 512 282 ; +C 178 ; WX 556 ; N dagger ; B 67 -3 499 685 ; +C 179 ; WX 556 ; N daggerdbl ; B 33 -153 537 693 ; +C 180 ; WX 250 ; N periodcentered ; B 67 172 206 324 ; +C 182 ; WX 556 ; N paragraph ; B 14 -204 629 681 ; +C 183 ; WX 606 ; N bullet ; B 131 172 475 516 ; +C 184 ; WX 250 ; N quotesinglbase ; B -3 -144 220 145 ; +C 185 ; WX 500 ; N quotedblbase ; B -18 -144 424 145 ; +C 186 ; WX 500 ; N quotedblright ; B 73 431 519 720 ; +C 187 ; WX 500 ; N guillemotright ; B 35 40 458 443 ; +C 188 ; WX 1000 ; N ellipsis ; B 91 -17 896 135 ; +C 189 ; WX 1000 ; N perthousand ; B 65 -17 912 691 ; +C 191 ; WX 444 ; N questiondown ; B -12 -226 347 479 ; +C 193 ; WX 333 ; N grave ; B 110 518 322 699 ; +C 194 ; WX 333 ; N acute ; B 153 518 392 699 ; +C 195 ; WX 333 ; N circumflex ; B 88 510 415 684 ; +C 196 ; WX 333 ; N tilde ; B 82 535 441 654 ; +C 197 ; WX 333 ; N macron ; B 76 538 418 608 ; +C 198 ; WX 333 ; N breve ; B 96 518 412 680 ; +C 199 ; WX 333 ; N dotaccent ; B 202 537 325 668 ; +C 200 ; WX 333 ; N dieresis ; B 90 537 426 668 ; +C 202 ; WX 556 ; N ring ; B 277 514 477 714 ; +C 203 ; WX 333 ; N cedilla ; B 12 -218 248 5 ; +C 205 ; WX 333 ; N hungarumlaut ; B -28 518 409 699 ; +C 206 ; WX 333 ; N ogonek ; B 32 -206 238 -17 ; +C 207 ; WX 333 ; N caron ; B 113 510 445 684 ; +C 208 ; WX 1000 ; N emdash ; B 113 214 887 282 ; +C 225 ; WX 944 ; N AE ; B -29 -3 927 681 ; +C 227 ; WX 333 ; N ordfeminine ; B 47 391 355 684 ; +C 232 ; WX 611 ; N Lslash ; B 6 -3 578 681 ; +C 233 ; WX 833 ; N Oslash ; B 57 -54 797 730 ; +C 234 ; WX 944 ; N OE ; B 39 -17 961 695 ; +C 235 ; WX 333 ; N ordmasculine ; B 51 391 346 683 ; +C 241 ; WX 738 ; N ae ; B 44 -17 711 469 ; +C 245 ; WX 333 ; N dotlessi ; B 26 -17 293 469 ; +C 248 ; WX 333 ; N lslash ; B 13 -17 365 726 ; +C 249 ; WX 556 ; N oslash ; B 14 -50 522 506 ; +C 250 ; WX 778 ; N oe ; B 48 -17 755 469 ; +C 251 ; WX 556 ; N germandbls ; B -131 -271 549 726 ; +C -1 ; WX 444 ; N ecircumflex ; B 28 -17 471 704 ; +C -1 ; WX 444 ; N edieresis ; B 28 -17 482 688 ; +C -1 ; WX 556 ; N aacute ; B 44 -17 519 719 ; +C -1 ; WX 747 ; N registered ; B 26 -17 720 695 ; +C -1 ; WX 333 ; N icircumflex ; B 26 -17 403 704 ; +C -1 ; WX 556 ; N udieresis ; B 22 -17 538 688 ; +C -1 ; WX 556 ; N ograve ; B 48 -17 502 719 ; +C -1 ; WX 556 ; N uacute ; B 22 -17 521 719 ; +C -1 ; WX 556 ; N ucircumflex ; B 22 -17 521 704 ; +C -1 ; WX 722 ; N Aacute ; B -35 -3 685 911 ; +C -1 ; WX 333 ; N igrave ; B 26 -17 322 719 ; +C -1 ; WX 389 ; N Icircumflex ; B -1 -3 443 896 ; +C -1 ; WX 444 ; N ccedilla ; B 32 -218 436 469 ; +C -1 ; WX 556 ; N adieresis ; B 44 -17 538 688 ; +C -1 ; WX 611 ; N Ecircumflex ; B 11 -3 606 896 ; +C -1 ; WX 444 ; N scaron ; B 25 -17 489 692 ; +C -1 ; WX 556 ; N thorn ; B -21 -271 516 726 ; +C -1 ; WX 1000 ; N trademark ; B 38 274 961 678 ; +C -1 ; WX 444 ; N egrave ; B 28 -17 418 719 ; +C -1 ; WX 300 ; N threesuperior ; B 23 263 310 683 ; +C -1 ; WX 500 ; N zcaron ; B 31 -17 517 692 ; +C -1 ; WX 556 ; N atilde ; B 44 -17 553 666 ; +C -1 ; WX 556 ; N aring ; B 44 -17 519 714 ; +C -1 ; WX 556 ; N ocircumflex ; B 48 -17 515 704 ; +C -1 ; WX 611 ; N Edieresis ; B 11 -3 606 880 ; +C -1 ; WX 750 ; N threequarters ; B 18 -2 732 683 ; +C -1 ; WX 556 ; N ydieresis ; B 13 -271 541 688 ; +C -1 ; WX 556 ; N yacute ; B 13 -271 541 719 ; +C -1 ; WX 333 ; N iacute ; B 26 -17 392 719 ; +C -1 ; WX 722 ; N Acircumflex ; B -35 -3 685 896 ; +C -1 ; WX 778 ; N Uacute ; B 83 -17 825 911 ; +C -1 ; WX 444 ; N eacute ; B 28 -17 448 719 ; +C -1 ; WX 833 ; N Ograve ; B 76 -17 794 911 ; +C -1 ; WX 556 ; N agrave ; B 44 -17 519 719 ; +C -1 ; WX 778 ; N Udieresis ; B 83 -17 825 880 ; +C -1 ; WX 556 ; N acircumflex ; B 44 -17 527 704 ; +C -1 ; WX 389 ; N Igrave ; B -1 -3 412 911 ; +C -1 ; WX 300 ; N twosuperior ; B 26 271 321 683 ; +C -1 ; WX 778 ; N Ugrave ; B 83 -17 825 911 ; +C -1 ; WX 750 ; N onequarter ; B 18 -2 732 683 ; +C -1 ; WX 778 ; N Ucircumflex ; B 83 -17 825 896 ; +C -1 ; WX 556 ; N Scaron ; B 50 -17 557 896 ; +C -1 ; WX 389 ; N Idieresis ; B -1 -3 454 880 ; +C -1 ; WX 333 ; N idieresis ; B 26 -17 426 688 ; +C -1 ; WX 611 ; N Egrave ; B 11 -3 606 911 ; +C -1 ; WX 833 ; N Oacute ; B 76 -17 794 911 ; +C -1 ; WX 606 ; N divide ; B 50 -5 556 501 ; +C -1 ; WX 722 ; N Atilde ; B -35 -3 685 866 ; +C -1 ; WX 722 ; N Aring ; B -35 -3 685 926 ; +C -1 ; WX 833 ; N Odieresis ; B 76 -17 794 880 ; +C -1 ; WX 722 ; N Adieresis ; B -35 -3 685 880 ; +C -1 ; WX 778 ; N Ntilde ; B -2 -3 829 866 ; +C -1 ; WX 667 ; N Zcaron ; B 1 -3 676 896 ; +C -1 ; WX 667 ; N Thorn ; B 11 -3 644 681 ; +C -1 ; WX 389 ; N Iacute ; B -1 -3 420 911 ; +C -1 ; WX 606 ; N plusminus ; B 50 0 556 501 ; +C -1 ; WX 606 ; N multiply ; B 72 17 534 479 ; +C -1 ; WX 611 ; N Eacute ; B 11 -3 606 911 ; +C -1 ; WX 611 ; N Ydieresis ; B 54 -3 675 880 ; +C -1 ; WX 300 ; N onesuperior ; B 41 271 298 680 ; +C -1 ; WX 556 ; N ugrave ; B 22 -17 521 719 ; +C -1 ; WX 606 ; N logicalnot ; B 51 107 555 390 ; +C -1 ; WX 556 ; N ntilde ; B 17 -17 553 666 ; +C -1 ; WX 833 ; N Otilde ; B 76 -17 794 866 ; +C -1 ; WX 556 ; N otilde ; B 48 -17 553 666 ; +C -1 ; WX 685 ; N Ccedilla ; B 69 -218 695 695 ; +C -1 ; WX 722 ; N Agrave ; B -35 -3 685 911 ; +C -1 ; WX 750 ; N onehalf ; B 14 -2 736 683 ; +C -1 ; WX 778 ; N Eth ; B 0 -3 747 682 ; +C -1 ; WX 400 ; N degree ; B 50 383 350 683 ; +C -1 ; WX 611 ; N Yacute ; B 54 -3 675 911 ; +C -1 ; WX 833 ; N Ocircumflex ; B 76 -17 794 896 ; +C -1 ; WX 556 ; N oacute ; B 48 -17 504 719 ; +C -1 ; WX 556 ; N mu ; B -15 -232 521 469 ; +C -1 ; WX 606 ; N minus ; B 51 204 555 292 ; +C -1 ; WX 556 ; N eth ; B 48 -17 546 726 ; +C -1 ; WX 556 ; N odieresis ; B 48 -17 538 688 ; +C -1 ; WX 747 ; N copyright ; B 26 -17 720 695 ; +C -1 ; WX 606 ; N brokenbar ; B 259 0 347 720 ; +EndCharMetrics +StartKernData +StartKernPairs 108 + +KPX A y -55 +KPX A w -37 +KPX A v -55 +KPX A space -55 +KPX A quoteright -55 +KPX A Y -74 +KPX A W -74 +KPX A V -74 +KPX A T -55 + +KPX F space -18 +KPX F period -111 +KPX F comma -111 +KPX F A -74 + +KPX L y -37 +KPX L space -18 +KPX L quoteright -55 +KPX L Y -74 +KPX L W -74 +KPX L V -74 +KPX L T -74 + +KPX P space -55 +KPX P period -129 +KPX P comma -129 +KPX P A -92 + +KPX R y -20 +KPX R Y -37 +KPX R W -55 +KPX R V -55 +KPX R T -37 + +KPX T y -80 +KPX T w -50 +KPX T u -92 +KPX T semicolon -55 +KPX T s -92 +KPX T r -92 +KPX T period -55 +KPX T o -111 +KPX T i -74 +KPX T hyphen -92 +KPX T e -111 +KPX T comma -55 +KPX T colon -55 +KPX T c -92 +KPX T a -111 +KPX T O -18 +KPX T A -55 + +KPX V y -50 +KPX V u -50 +KPX V semicolon -37 +KPX V r -74 +KPX V period -111 +KPX V o -74 +KPX V i -50 +KPX V hyphen -37 +KPX V e -74 +KPX V comma -111 +KPX V colon -37 +KPX V a -92 +KPX V A -74 + +KPX W y -30 +KPX W u -30 +KPX W semicolon -18 +KPX W r -30 +KPX W period -55 +KPX W o -55 +KPX W i -30 +KPX W e -55 +KPX W comma -55 +KPX W colon -28 +KPX W a -74 +KPX W A -74 + +KPX Y v -30 +KPX Y u -50 +KPX Y semicolon -55 +KPX Y q -92 +KPX Y period -55 +KPX Y p -74 +KPX Y o -111 +KPX Y i -54 +KPX Y hyphen -55 +KPX Y e -92 +KPX Y comma -55 +KPX Y colon -55 +KPX Y a -111 +KPX Y A -55 + +KPX f quoteright 37 +KPX f f -37 + +KPX one one -55 + +KPX quoteleft quoteleft -55 + +KPX quoteright t -18 +KPX quoteright space -37 +KPX quoteright s -37 +KPX quoteright quoteright -55 + +KPX r quoteright 55 +KPX r q -18 +KPX r period -55 +KPX r o -18 +KPX r h -18 +KPX r g -18 +KPX r e -18 +KPX r comma -55 +KPX r c -18 + +KPX v period -55 +KPX v comma -55 + +KPX w period -55 +KPX w comma -55 + +KPX y period -37 +KPX y comma -37 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 195 212 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 195 212 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 195 212 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 195 212 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 83 212 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 195 212 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 139 212 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 139 212 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 139 212 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 139 212 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 28 212 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 28 212 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 28 212 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 28 212 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 223 212 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 250 212 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 250 212 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 250 212 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 250 212 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 250 212 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 112 212 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 223 212 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 223 212 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 223 212 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 211 212 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 151 212 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 139 212 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 167 212 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 112 20 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 112 20 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 112 20 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 112 20 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 0 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 112 12 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 56 20 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 56 20 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 56 20 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 56 20 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 20 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -12 20 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 20 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 20 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 112 12 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 112 20 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 100 20 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 112 20 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 112 20 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 112 12 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 44 8 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 112 20 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 100 20 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 112 20 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 112 20 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 112 20 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 112 20 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 72 8 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-BdItF+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-BdItF+ new file mode 100755 index 0000000000000..62fe1402d6149 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-BdItF+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 685 ; N Ccaron ; B 69 -17 725 917 ; +C -1 ; WX 444 ; N ccaron ; B 32 -17 520 684 ; +C -1 ; WX 778 ; N Dcaron ; B 0 -3 747 917 ; +C -1 ; WX 714 ; N dcaron ; B 38 -17 799 799 ; +C -1 ; WX 611 ; N Ecaron ; B 11 -3 625 917 ; +C -1 ; WX 444 ; N ecaron ; B 28 -17 500 684 ; +C -1 ; WX 611 ; N Lcaron ; B 26 -3 661 749 ; +C -1 ; WX 611 ; N Lacute ; B 26 -3 578 924 ; +C -1 ; WX 491 ; N lcaron ; B 64 -17 567 799 ; +C -1 ; WX 333 ; N lacute ; B 64 -17 455 924 ; +C -1 ; WX 778 ; N Ncaron ; B -2 -3 829 917 ; +C -1 ; WX 556 ; N ncaron ; B 17 -17 556 684 ; +C -1 ; WX 722 ; N Rcaron ; B 4 -3 697 917 ; +C -1 ; WX 722 ; N Racute ; B 4 -3 697 924 ; +C -1 ; WX 389 ; N rcaron ; B 20 -17 473 684 ; +C -1 ; WX 389 ; N racute ; B 20 -17 444 699 ; +C -1 ; WX 611 ; N Tcaron ; B 56 -3 674 917 ; +C -1 ; WX 547 ; N tcaron ; B 42 -17 658 720 ; +C -1 ; WX 778 ; N Uring ; B 83 -17 825 917 ; +C -1 ; WX 556 ; N uring ; B 22 -17 521 714 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 280 233 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 75 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 263 233 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 497 79 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 180 233 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 55 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 359 29 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 178 225 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 265 79 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 63 225 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 263 233 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 111 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 235 233 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 278 225 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 28 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 52 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 180 233 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 356 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 146 203 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 0 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-It b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-It new file mode 100755 index 0000000000000..01bdcf0568e36 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-It @@ -0,0 +1,439 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Mon Jul 2 22:37:33 1990 +Comment UniqueID 31796 +Comment VMusage 37415 48307 +FontName Palatino-Italic +FullName Palatino Italic +FamilyName Palatino +Weight Medium +ItalicAngle -10 +IsFixedPitch false +FontBBox -170 -276 1010 918 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.005 +Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Palatino is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 692 +XHeight 482 +Ascender 733 +Descender -276 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 76 -8 292 733 ; +C 34 ; WX 500 ; N quotedbl ; B 140 508 455 733 ; +C 35 ; WX 500 ; N numbersign ; B 4 0 495 692 ; +C 36 ; WX 500 ; N dollar ; B 15 -113 452 733 ; +C 37 ; WX 889 ; N percent ; B 74 -7 809 710 ; +C 38 ; WX 778 ; N ampersand ; B 47 -18 766 692 ; +C 39 ; WX 278 ; N quoteright ; B 78 488 258 733 ; +C 40 ; WX 333 ; N parenleft ; B 54 -106 331 733 ; +C 41 ; WX 333 ; N parenright ; B 2 -106 279 733 ; +C 42 ; WX 389 ; N asterisk ; B 76 368 400 706 ; +C 43 ; WX 606 ; N plus ; B 51 0 555 504 ; +C 44 ; WX 250 ; N comma ; B 8 -143 203 123 ; +C 45 ; WX 333 ; N hyphen ; B 19 223 304 281 ; +C 46 ; WX 250 ; N period ; B 53 -5 158 112 ; +C 47 ; WX 296 ; N slash ; B -40 -119 392 733 ; +C 48 ; WX 500 ; N zero ; B 36 -11 480 699 ; +C 49 ; WX 500 ; N one ; B 54 -3 398 699 ; +C 50 ; WX 500 ; N two ; B 12 -3 437 699 ; +C 51 ; WX 500 ; N three ; B 22 -11 447 699 ; +C 52 ; WX 500 ; N four ; B 15 -3 478 699 ; +C 53 ; WX 500 ; N five ; B 14 -11 491 693 ; +C 54 ; WX 500 ; N six ; B 49 -11 469 699 ; +C 55 ; WX 500 ; N seven ; B 53 -3 502 692 ; +C 56 ; WX 500 ; N eight ; B 36 -11 469 699 ; +C 57 ; WX 500 ; N nine ; B 32 -11 468 699 ; +C 58 ; WX 250 ; N colon ; B 44 -5 207 458 ; +C 59 ; WX 250 ; N semicolon ; B -9 -146 219 456 ; +C 60 ; WX 606 ; N less ; B 53 -6 554 516 ; +C 61 ; WX 606 ; N equal ; B 51 126 555 378 ; +C 62 ; WX 606 ; N greater ; B 53 -6 554 516 ; +C 63 ; WX 500 ; N question ; B 114 -8 427 706 ; +C 64 ; WX 747 ; N at ; B 27 -18 718 706 ; +C 65 ; WX 722 ; N A ; B -19 -3 677 705 ; +C 66 ; WX 611 ; N B ; B 26 -6 559 692 ; +C 67 ; WX 667 ; N C ; B 45 -18 651 706 ; +C 68 ; WX 778 ; N D ; B 28 -3 741 692 ; +C 69 ; WX 611 ; N E ; B 30 -3 570 692 ; +C 70 ; WX 556 ; N F ; B 0 -3 548 692 ; +C 71 ; WX 722 ; N G ; B 50 -18 694 706 ; +C 72 ; WX 778 ; N H ; B -3 -3 800 692 ; +C 73 ; WX 333 ; N I ; B 7 -3 354 692 ; +C 74 ; WX 333 ; N J ; B -35 -206 358 692 ; +C 75 ; WX 667 ; N K ; B 13 -3 683 692 ; +C 76 ; WX 556 ; N L ; B 16 -3 523 692 ; +C 77 ; WX 944 ; N M ; B -19 -18 940 692 ; +C 78 ; WX 778 ; N N ; B 2 -11 804 692 ; +C 79 ; WX 778 ; N O ; B 53 -18 748 706 ; +C 80 ; WX 611 ; N P ; B 9 -3 594 692 ; +C 81 ; WX 778 ; N Q ; B 53 -201 748 706 ; +C 82 ; WX 667 ; N R ; B 9 -3 639 692 ; +C 83 ; WX 556 ; N S ; B 42 -18 506 706 ; +C 84 ; WX 611 ; N T ; B 53 -3 635 692 ; +C 85 ; WX 778 ; N U ; B 88 -18 798 692 ; +C 86 ; WX 722 ; N V ; B 75 -8 754 692 ; +C 87 ; WX 944 ; N W ; B 71 -8 980 700 ; +C 88 ; WX 722 ; N X ; B 20 -3 734 692 ; +C 89 ; WX 667 ; N Y ; B 52 -3 675 705 ; +C 90 ; WX 667 ; N Z ; B 20 -3 637 692 ; +C 91 ; WX 333 ; N bracketleft ; B 18 -100 326 733 ; +C 92 ; WX 606 ; N backslash ; B 81 0 513 733 ; +C 93 ; WX 333 ; N bracketright ; B 7 -100 315 733 ; +C 94 ; WX 606 ; N asciicircum ; B 51 283 554 689 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 278 ; N quoteleft ; B 78 488 258 733 ; +C 97 ; WX 444 ; N a ; B 4 -11 406 482 ; +C 98 ; WX 463 ; N b ; B 37 -11 433 733 ; +C 99 ; WX 407 ; N c ; B 25 -11 389 482 ; +C 100 ; WX 500 ; N d ; B 17 -11 483 733 ; +C 101 ; WX 389 ; N e ; B 15 -11 374 482 ; +C 102 ; WX 278 ; N f ; B -162 -276 413 733 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B -37 -276 498 482 ; +C 104 ; WX 500 ; N h ; B 10 -9 471 733 ; +C 105 ; WX 278 ; N i ; B 34 -9 264 712 ; +C 106 ; WX 278 ; N j ; B -70 -276 265 712 ; +C 107 ; WX 444 ; N k ; B 8 -9 449 733 ; +C 108 ; WX 278 ; N l ; B 36 -9 251 733 ; +C 109 ; WX 778 ; N m ; B 24 -9 740 482 ; +C 110 ; WX 556 ; N n ; B 24 -9 514 482 ; +C 111 ; WX 444 ; N o ; B 17 -11 411 482 ; +C 112 ; WX 500 ; N p ; B -7 -276 465 482 ; +C 113 ; WX 463 ; N q ; B 24 -276 432 482 ; +C 114 ; WX 389 ; N r ; B 26 -9 384 482 ; +C 115 ; WX 389 ; N s ; B 9 -11 345 482 ; +C 116 ; WX 333 ; N t ; B 41 -9 310 646 ; +C 117 ; WX 556 ; N u ; B 32 -11 512 482 ; +C 118 ; WX 500 ; N v ; B 21 -11 477 482 ; +C 119 ; WX 722 ; N w ; B 21 -11 699 482 ; +C 120 ; WX 500 ; N x ; B 9 -11 484 482 ; +C 121 ; WX 500 ; N y ; B -8 -276 490 482 ; +C 122 ; WX 444 ; N z ; B -1 -11 416 482 ; +C 123 ; WX 333 ; N braceleft ; B 15 -100 319 733 ; +C 124 ; WX 606 ; N bar ; B 275 0 331 733 ; +C 125 ; WX 333 ; N braceright ; B 14 -100 318 733 ; +C 126 ; WX 606 ; N asciitilde ; B 51 168 555 339 ; +C 161 ; WX 333 ; N exclamdown ; B 15 -276 233 467 ; +C 162 ; WX 500 ; N cent ; B 56 -96 418 551 ; +C 163 ; WX 500 ; N sterling ; B 2 -18 479 708 ; +C 164 ; WX 167 ; N fraction ; B -170 0 337 699 ; +C 165 ; WX 500 ; N yen ; B 35 -3 512 699 ; +C 166 ; WX 500 ; N florin ; B 5 -276 470 708 ; +C 167 ; WX 500 ; N section ; B 14 -220 463 706 ; +C 168 ; WX 500 ; N currency ; B 14 115 486 577 ; +C 169 ; WX 333 ; N quotesingle ; B 140 508 288 733 ; +C 170 ; WX 500 ; N quotedblleft ; B 98 488 475 733 ; +C 171 ; WX 500 ; N guillemotleft ; B 57 70 437 440 ; +C 172 ; WX 333 ; N guilsinglleft ; B 57 70 270 440 ; +C 173 ; WX 333 ; N guilsinglright ; B 63 70 276 440 ; +C 174 ; WX 528 ; N fi ; B -162 -276 502 733 ; +C 175 ; WX 545 ; N fl ; B -162 -276 520 733 ; +C 177 ; WX 500 ; N endash ; B -10 228 510 278 ; +C 178 ; WX 500 ; N dagger ; B 48 0 469 692 ; +C 179 ; WX 500 ; N daggerdbl ; B 10 -162 494 692 ; +C 180 ; WX 250 ; N periodcentered ; B 53 195 158 312 ; +C 182 ; WX 500 ; N paragraph ; B 33 -224 611 692 ; +C 183 ; WX 500 ; N bullet ; B 86 182 430 526 ; +C 184 ; WX 278 ; N quotesinglbase ; B 27 -122 211 120 ; +C 185 ; WX 500 ; N quotedblbase ; B 43 -122 424 120 ; +C 186 ; WX 500 ; N quotedblright ; B 98 488 475 733 ; +C 187 ; WX 500 ; N guillemotright ; B 63 70 443 440 ; +C 188 ; WX 1000 ; N ellipsis ; B 102 -5 873 112 ; +C 189 ; WX 1000 ; N perthousand ; B 72 -6 929 717 ; +C 191 ; WX 500 ; N questiondown ; B 57 -246 370 467 ; +C 193 ; WX 333 ; N grave ; B 86 518 310 687 ; +C 194 ; WX 333 ; N acute ; B 122 518 346 687 ; +C 195 ; WX 333 ; N circumflex ; B 56 510 350 679 ; +C 196 ; WX 333 ; N tilde ; B 63 535 390 638 ; +C 197 ; WX 333 ; N macron ; B 74 538 386 589 ; +C 198 ; WX 333 ; N breve ; B 92 518 393 677 ; +C 199 ; WX 333 ; N dotaccent ; B 175 537 283 645 ; +C 200 ; WX 333 ; N dieresis ; B 78 537 378 637 ; +C 202 ; WX 333 ; N ring ; B 159 508 359 708 ; +C 203 ; WX 333 ; N cedilla ; B -9 -216 202 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B 46 518 385 730 ; +C 206 ; WX 333 ; N ogonek ; B 38 -207 196 -18 ; +C 207 ; WX 333 ; N caron ; B 104 510 409 679 ; +C 208 ; WX 1000 ; N emdash ; B -10 228 1010 278 ; +C 225 ; WX 941 ; N AE ; B -4 -3 902 692 ; +C 227 ; WX 333 ; N ordfeminine ; B 60 404 321 699 ; +C 232 ; WX 556 ; N Lslash ; B -16 -3 523 692 ; +C 233 ; WX 778 ; N Oslash ; B 32 -39 762 721 ; +C 234 ; WX 1028 ; N OE ; B 56 -18 989 706 ; +C 235 ; WX 333 ; N ordmasculine ; B 66 404 322 699 ; +C 241 ; WX 638 ; N ae ; B 1 -11 623 482 ; +C 245 ; WX 278 ; N dotlessi ; B 34 -9 241 482 ; +C 248 ; WX 278 ; N lslash ; B -10 -9 302 733 ; +C 249 ; WX 444 ; N oslash ; B -18 -24 460 510 ; +C 250 ; WX 669 ; N oe ; B 17 -11 654 482 ; +C 251 ; WX 500 ; N germandbls ; B -160 -276 488 733 ; +C -1 ; WX 667 ; N Zcaron ; B 20 -3 637 907 ; +C -1 ; WX 407 ; N ccedilla ; B 25 -216 389 482 ; +C -1 ; WX 500 ; N ydieresis ; B -8 -276 490 657 ; +C -1 ; WX 444 ; N atilde ; B 4 -11 446 650 ; +C -1 ; WX 278 ; N icircumflex ; B 29 -9 323 699 ; +C -1 ; WX 300 ; N threesuperior ; B 28 273 304 699 ; +C -1 ; WX 389 ; N ecircumflex ; B 15 -11 398 699 ; +C -1 ; WX 500 ; N thorn ; B -39 -276 433 733 ; +C -1 ; WX 389 ; N egrave ; B 15 -11 374 707 ; +C -1 ; WX 300 ; N twosuperior ; B 13 278 290 699 ; +C -1 ; WX 389 ; N eacute ; B 15 -11 394 707 ; +C -1 ; WX 444 ; N otilde ; B 17 -11 446 650 ; +C -1 ; WX 722 ; N Aacute ; B -19 -3 677 897 ; +C -1 ; WX 444 ; N ocircumflex ; B 17 -11 411 699 ; +C -1 ; WX 500 ; N yacute ; B -8 -276 490 707 ; +C -1 ; WX 556 ; N udieresis ; B 32 -11 512 657 ; +C -1 ; WX 750 ; N threequarters ; B 35 -2 715 699 ; +C -1 ; WX 444 ; N acircumflex ; B 4 -11 406 699 ; +C -1 ; WX 778 ; N Eth ; B 19 -3 741 692 ; +C -1 ; WX 389 ; N edieresis ; B 15 -11 406 657 ; +C -1 ; WX 556 ; N ugrave ; B 32 -11 512 707 ; +C -1 ; WX 1000 ; N trademark ; B 52 285 951 689 ; +C -1 ; WX 444 ; N ograve ; B 17 -11 411 707 ; +C -1 ; WX 389 ; N scaron ; B 9 -11 419 687 ; +C -1 ; WX 333 ; N Idieresis ; B 7 -3 418 847 ; +C -1 ; WX 556 ; N uacute ; B 32 -11 512 707 ; +C -1 ; WX 444 ; N agrave ; B 4 -11 406 707 ; +C -1 ; WX 556 ; N ntilde ; B 24 -9 514 650 ; +C -1 ; WX 444 ; N aring ; B 4 -11 406 728 ; +C -1 ; WX 444 ; N zcaron ; B -1 -11 447 687 ; +C -1 ; WX 333 ; N Icircumflex ; B 7 -3 390 889 ; +C -1 ; WX 778 ; N Ntilde ; B 2 -11 804 866 ; +C -1 ; WX 556 ; N ucircumflex ; B 32 -11 512 699 ; +C -1 ; WX 611 ; N Ecircumflex ; B 30 -3 570 889 ; +C -1 ; WX 333 ; N Iacute ; B 7 -3 406 897 ; +C -1 ; WX 667 ; N Ccedilla ; B 45 -216 651 706 ; +C -1 ; WX 778 ; N Odieresis ; B 53 -18 748 847 ; +C -1 ; WX 556 ; N Scaron ; B 42 -18 539 907 ; +C -1 ; WX 611 ; N Edieresis ; B 30 -3 570 847 ; +C -1 ; WX 333 ; N Igrave ; B 7 -3 354 897 ; +C -1 ; WX 444 ; N adieresis ; B 4 -11 434 657 ; +C -1 ; WX 778 ; N Ograve ; B 53 -18 748 897 ; +C -1 ; WX 611 ; N Egrave ; B 30 -3 570 897 ; +C -1 ; WX 667 ; N Ydieresis ; B 52 -3 675 847 ; +C -1 ; WX 747 ; N registered ; B 11 -18 736 706 ; +C -1 ; WX 778 ; N Otilde ; B 53 -18 748 866 ; +C -1 ; WX 750 ; N onequarter ; B 31 -2 715 699 ; +C -1 ; WX 778 ; N Ugrave ; B 88 -18 798 897 ; +C -1 ; WX 778 ; N Ucircumflex ; B 88 -18 798 889 ; +C -1 ; WX 611 ; N Thorn ; B 9 -3 570 692 ; +C -1 ; WX 606 ; N divide ; B 51 0 555 504 ; +C -1 ; WX 722 ; N Atilde ; B -19 -3 677 866 ; +C -1 ; WX 778 ; N Uacute ; B 88 -18 798 897 ; +C -1 ; WX 778 ; N Ocircumflex ; B 53 -18 748 889 ; +C -1 ; WX 606 ; N logicalnot ; B 51 118 555 378 ; +C -1 ; WX 722 ; N Aring ; B -19 -3 677 918 ; +C -1 ; WX 278 ; N idieresis ; B 34 -9 351 657 ; +C -1 ; WX 278 ; N iacute ; B 34 -9 331 707 ; +C -1 ; WX 444 ; N aacute ; B 4 -11 414 707 ; +C -1 ; WX 606 ; N plusminus ; B 51 0 555 504 ; +C -1 ; WX 606 ; N multiply ; B 83 36 523 474 ; +C -1 ; WX 778 ; N Udieresis ; B 88 -18 798 847 ; +C -1 ; WX 606 ; N minus ; B 51 224 555 280 ; +C -1 ; WX 300 ; N onesuperior ; B 61 278 285 699 ; +C -1 ; WX 611 ; N Eacute ; B 30 -3 570 897 ; +C -1 ; WX 722 ; N Acircumflex ; B -19 -3 677 889 ; +C -1 ; WX 747 ; N copyright ; B 11 -18 736 706 ; +C -1 ; WX 722 ; N Agrave ; B -19 -3 677 897 ; +C -1 ; WX 444 ; N odieresis ; B 17 -11 434 657 ; +C -1 ; WX 444 ; N oacute ; B 17 -11 414 707 ; +C -1 ; WX 400 ; N degree ; B 90 389 390 689 ; +C -1 ; WX 278 ; N igrave ; B 34 -9 271 707 ; +C -1 ; WX 556 ; N mu ; B 15 -226 512 482 ; +C -1 ; WX 778 ; N Oacute ; B 53 -18 748 897 ; +C -1 ; WX 444 ; N eth ; B 17 -11 478 733 ; +C -1 ; WX 722 ; N Adieresis ; B -19 -3 677 847 ; +C -1 ; WX 667 ; N Yacute ; B 52 -3 675 897 ; +C -1 ; WX 606 ; N brokenbar ; B 275 0 331 733 ; +C -1 ; WX 750 ; N onehalf ; B 31 -2 721 699 ; +EndCharMetrics +StartKernData +StartKernPairs 106 + +KPX A y -55 +KPX A w -37 +KPX A v -37 +KPX A space -37 +KPX A quoteright -55 +KPX A Y -55 +KPX A W -55 +KPX A V -74 +KPX A T -55 + +KPX F period -111 +KPX F comma -111 +KPX F A -111 + +KPX L y -37 +KPX L space -18 +KPX L quoteright -37 +KPX L Y -74 +KPX L W -74 +KPX L V -74 +KPX L T -74 + +KPX P period -129 +KPX P comma -129 +KPX P A -129 + +KPX R y -37 +KPX R Y -55 +KPX R W -55 +KPX R V -74 +KPX R T -55 + +KPX T y -92 +KPX T w -92 +KPX T u -111 +KPX T semicolon -74 +KPX T s -111 +KPX T r -111 +KPX T period -74 +KPX T o -111 +KPX T i -55 +KPX T hyphen -55 +KPX T e -111 +KPX T comma -74 +KPX T colon -74 +KPX T c -111 +KPX T a -111 +KPX T O -18 +KPX T A -92 + +KPX V y -74 +KPX V u -74 +KPX V semicolon -37 +KPX V r -92 +KPX V period -129 +KPX V o -74 +KPX V i -74 +KPX V hyphen -55 +KPX V e -92 +KPX V comma -129 +KPX V colon -37 +KPX V a -74 +KPX V A -210 + +KPX W y -20 +KPX W u -20 +KPX W semicolon -18 +KPX W r -20 +KPX W period -55 +KPX W o -20 +KPX W i -20 +KPX W hyphen -18 +KPX W e -20 +KPX W comma -55 +KPX W colon -18 +KPX W a -20 +KPX W A -92 + +KPX Y v -74 +KPX Y u -92 +KPX Y semicolon -74 +KPX Y q -92 +KPX Y period -92 +KPX Y p -74 +KPX Y o -111 +KPX Y i -55 +KPX Y hyphen -74 +KPX Y e -111 +KPX Y comma -92 +KPX Y colon -74 +KPX Y a -92 +KPX Y A -92 + +KPX f quoteright 55 + +KPX one one -55 + +KPX quoteleft quoteleft -74 + +KPX quoteright t -37 +KPX quoteright space -55 +KPX quoteright s -55 +KPX quoteright quoteright -74 + +KPX r quoteright 37 +KPX r q -18 +KPX r period -74 +KPX r o -18 +KPX r h -18 +KPX r g -18 +KPX r e -18 +KPX r comma -74 +KPX r c -18 + +KPX v period -55 +KPX v comma -55 + +KPX w period -55 +KPX w comma -55 + +KPX y period -37 +KPX y comma -37 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 271 210 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 261 210 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 255 210 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 235 210 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 235 210 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 255 228 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 207 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 199 210 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 179 210 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 179 210 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 167 210 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 60 210 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 40 210 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 40 210 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 28 210 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 263 228 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 283 210 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 263 210 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 255 210 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 251 210 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 263 228 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 130 228 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 277 210 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 255 210 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 235 210 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 235 210 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 227 210 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 187 210 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 179 228 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 68 20 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 56 20 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 56 20 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 44 20 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 36 20 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 56 12 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 37 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 48 20 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 48 20 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 28 20 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 16 20 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -15 20 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -27 20 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 20 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -39 20 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 112 12 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 68 20 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 56 20 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 56 20 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 36 20 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 56 12 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 10 8 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 124 20 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 112 20 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 112 20 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 100 20 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 96 20 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 84 20 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 38 8 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-It+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-It+ new file mode 100755 index 0000000000000..b98042e049df0 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-It+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 667 ; N Ccaron ; B 45 -18 680 924 ; +C -1 ; WX 407 ; N ccaron ; B 25 -11 464 679 ; +C -1 ; WX 778 ; N Dcaron ; B 28 -3 741 924 ; +C -1 ; WX 626 ; N dcaron ; B 17 -11 681 806 ; +C -1 ; WX 611 ; N Ecaron ; B 30 -3 591 924 ; +C -1 ; WX 389 ; N ecaron ; B 15 -11 437 679 ; +C -1 ; WX 556 ; N Lcaron ; B 16 -3 552 761 ; +C -1 ; WX 556 ; N Lacute ; B 16 -3 523 924 ; +C -1 ; WX 404 ; N lcaron ; B 36 -9 449 806 ; +C -1 ; WX 278 ; N lacute ; B 36 -9 382 924 ; +C -1 ; WX 778 ; N Ncaron ; B 2 -11 804 924 ; +C -1 ; WX 556 ; N ncaron ; B 24 -9 520 679 ; +C -1 ; WX 667 ; N Rcaron ; B 9 -3 639 924 ; +C -1 ; WX 667 ; N Racute ; B 9 -3 639 924 ; +C -1 ; WX 389 ; N rcaron ; B 26 -9 437 679 ; +C -1 ; WX 389 ; N racute ; B 26 -9 396 687 ; +C -1 ; WX 611 ; N Tcaron ; B 53 -3 635 924 ; +C -1 ; WX 459 ; N tcaron ; B 41 -9 508 733 ; +C -1 ; WX 778 ; N Uring ; B 88 -18 798 924 ; +C -1 ; WX 556 ; N uring ; B 32 -11 512 708 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 271 245 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 55 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 265 245 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 423 73 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 182 245 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 28 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 294 28 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 152 237 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 191 73 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 36 237 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 265 245 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 111 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 210 245 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 251 237 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 28 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 50 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 182 245 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 250 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 260 216 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 111 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-ItF b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-ItF new file mode 100755 index 0000000000000..fec6226b814ec --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-ItF @@ -0,0 +1,437 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Wed Apr 24 13:28:10 1991 +Comment UniqueID 34736 +Comment VMusage 37767 48659 +FontName Palatino-ItalicOsF +FullName Palatino Italic Old Style Figures +FamilyName Palatino +Weight Medium +ItalicAngle -10 +IsFixedPitch false +FontBBox -170 -276 989 918 +UnderlinePosition -131 +UnderlineThickness 58 +Version 001.001 +Notice Copyright (c) 1985, 1987, 1989, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved.Palatino is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 692 +XHeight 482 +Ascender 733 +Descender -276 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 76 -8 292 733 ; +C 34 ; WX 500 ; N quotedbl ; B 140 508 455 733 ; +C 35 ; WX 500 ; N numbersign ; B 4 0 495 692 ; +C 36 ; WX 500 ; N dollar ; B 15 -113 452 733 ; +C 37 ; WX 889 ; N percent ; B 74 -7 809 710 ; +C 38 ; WX 778 ; N ampersand ; B 47 -18 766 692 ; +C 39 ; WX 278 ; N quoteright ; B 78 488 258 733 ; +C 40 ; WX 333 ; N parenleft ; B 54 -106 331 733 ; +C 41 ; WX 333 ; N parenright ; B 2 -106 279 733 ; +C 42 ; WX 389 ; N asterisk ; B 76 368 400 706 ; +C 43 ; WX 606 ; N plus ; B 51 0 555 504 ; +C 44 ; WX 250 ; N comma ; B 8 -143 203 123 ; +C 45 ; WX 333 ; N hyphen ; B 19 223 304 281 ; +C 46 ; WX 250 ; N period ; B 53 -5 158 112 ; +C 47 ; WX 296 ; N slash ; B -40 -119 392 733 ; +C 48 ; WX 500 ; N zero ; B 36 -14 456 478 ; +C 49 ; WX 500 ; N one ; B 60 -8 398 482 ; +C 50 ; WX 500 ; N two ; B 26 -10 426 478 ; +C 51 ; WX 500 ; N three ; B 6 -226 394 478 ; +C 52 ; WX 500 ; N four ; B 6 -226 462 478 ; +C 53 ; WX 500 ; N five ; B 6 -226 442 478 ; +C 54 ; WX 500 ; N six ; B 49 -14 479 684 ; +C 55 ; WX 500 ; N seven ; B 28 -226 488 478 ; +C 56 ; WX 500 ; N eight ; B 32 -14 456 672 ; +C 57 ; WX 500 ; N nine ; B 12 -232 446 478 ; +C 58 ; WX 250 ; N colon ; B 44 -5 207 458 ; +C 59 ; WX 250 ; N semicolon ; B -9 -146 219 456 ; +C 60 ; WX 606 ; N less ; B 53 -6 554 516 ; +C 61 ; WX 606 ; N equal ; B 51 126 555 378 ; +C 62 ; WX 606 ; N greater ; B 53 -6 554 516 ; +C 63 ; WX 500 ; N question ; B 114 -8 427 706 ; +C 64 ; WX 747 ; N at ; B 27 -18 718 706 ; +C 65 ; WX 722 ; N A ; B -19 -3 677 705 ; +C 66 ; WX 611 ; N B ; B 26 -6 559 692 ; +C 67 ; WX 667 ; N C ; B 45 -18 651 706 ; +C 68 ; WX 778 ; N D ; B 28 -3 741 692 ; +C 69 ; WX 611 ; N E ; B 30 -3 570 692 ; +C 70 ; WX 556 ; N F ; B 0 -3 548 692 ; +C 71 ; WX 722 ; N G ; B 50 -18 694 706 ; +C 72 ; WX 778 ; N H ; B -3 -3 800 692 ; +C 73 ; WX 333 ; N I ; B 7 -3 354 692 ; +C 74 ; WX 333 ; N J ; B -35 -206 358 692 ; +C 75 ; WX 667 ; N K ; B 13 -3 683 692 ; +C 76 ; WX 556 ; N L ; B 16 -3 523 692 ; +C 77 ; WX 944 ; N M ; B -19 -18 940 692 ; +C 78 ; WX 778 ; N N ; B 2 -11 804 692 ; +C 79 ; WX 778 ; N O ; B 53 -18 748 706 ; +C 80 ; WX 611 ; N P ; B 9 -3 594 692 ; +C 81 ; WX 778 ; N Q ; B 53 -201 748 706 ; +C 82 ; WX 667 ; N R ; B 9 -3 639 692 ; +C 83 ; WX 556 ; N S ; B 42 -18 506 706 ; +C 84 ; WX 611 ; N T ; B 53 -3 635 692 ; +C 85 ; WX 778 ; N U ; B 88 -18 798 692 ; +C 86 ; WX 722 ; N V ; B 75 -8 754 692 ; +C 87 ; WX 944 ; N W ; B 71 -8 980 700 ; +C 88 ; WX 722 ; N X ; B 20 -3 734 692 ; +C 89 ; WX 667 ; N Y ; B 52 -3 675 705 ; +C 90 ; WX 667 ; N Z ; B 20 -3 637 692 ; +C 91 ; WX 333 ; N bracketleft ; B 18 -100 326 733 ; +C 92 ; WX 606 ; N backslash ; B 81 0 513 733 ; +C 93 ; WX 333 ; N bracketright ; B 7 -100 315 733 ; +C 94 ; WX 606 ; N asciicircum ; B 51 283 554 689 ; +C 95 ; WX 500 ; N underscore ; B 0 -160 500 -102 ; +C 96 ; WX 278 ; N quoteleft ; B 78 488 258 733 ; +C 97 ; WX 444 ; N a ; B 4 -11 406 482 ; +C 98 ; WX 463 ; N b ; B 37 -11 433 733 ; +C 99 ; WX 407 ; N c ; B 25 -11 389 482 ; +C 100 ; WX 500 ; N d ; B 17 -11 483 733 ; +C 101 ; WX 389 ; N e ; B 15 -11 374 482 ; +C 102 ; WX 278 ; N f ; B -162 -276 413 733 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B -37 -276 498 482 ; +C 104 ; WX 500 ; N h ; B 10 -9 471 733 ; +C 105 ; WX 278 ; N i ; B 34 -9 264 712 ; +C 106 ; WX 278 ; N j ; B -70 -276 265 712 ; +C 107 ; WX 444 ; N k ; B 8 -9 449 733 ; +C 108 ; WX 278 ; N l ; B 36 -9 251 733 ; +C 109 ; WX 778 ; N m ; B 24 -9 740 482 ; +C 110 ; WX 556 ; N n ; B 24 -9 514 482 ; +C 111 ; WX 444 ; N o ; B 17 -11 411 482 ; +C 112 ; WX 500 ; N p ; B -7 -276 465 482 ; +C 113 ; WX 463 ; N q ; B 24 -276 432 482 ; +C 114 ; WX 389 ; N r ; B 26 -9 384 482 ; +C 115 ; WX 389 ; N s ; B 9 -11 345 482 ; +C 116 ; WX 333 ; N t ; B 41 -9 310 646 ; +C 117 ; WX 556 ; N u ; B 32 -11 512 482 ; +C 118 ; WX 500 ; N v ; B 21 -11 477 482 ; +C 119 ; WX 722 ; N w ; B 21 -11 699 482 ; +C 120 ; WX 500 ; N x ; B 9 -11 484 482 ; +C 121 ; WX 500 ; N y ; B -8 -276 490 482 ; +C 122 ; WX 444 ; N z ; B -1 -11 416 482 ; +C 123 ; WX 333 ; N braceleft ; B 15 -100 319 733 ; +C 124 ; WX 606 ; N bar ; B 275 0 331 733 ; +C 125 ; WX 333 ; N braceright ; B 14 -100 318 733 ; +C 126 ; WX 606 ; N asciitilde ; B 51 168 555 339 ; +C 161 ; WX 333 ; N exclamdown ; B 15 -276 233 467 ; +C 162 ; WX 500 ; N cent ; B 56 -96 418 551 ; +C 163 ; WX 500 ; N sterling ; B 2 -18 479 708 ; +C 164 ; WX 167 ; N fraction ; B -170 0 337 699 ; +C 165 ; WX 500 ; N yen ; B 35 -3 512 699 ; +C 166 ; WX 500 ; N florin ; B 5 -276 470 708 ; +C 167 ; WX 500 ; N section ; B 14 -220 463 706 ; +C 168 ; WX 500 ; N currency ; B 14 115 486 577 ; +C 169 ; WX 333 ; N quotesingle ; B 140 508 288 733 ; +C 170 ; WX 500 ; N quotedblleft ; B 98 488 475 733 ; +C 171 ; WX 500 ; N guillemotleft ; B 57 70 437 440 ; +C 172 ; WX 333 ; N guilsinglleft ; B 57 70 270 440 ; +C 173 ; WX 333 ; N guilsinglright ; B 63 70 276 440 ; +C 174 ; WX 528 ; N fi ; B -162 -276 502 733 ; +C 175 ; WX 545 ; N fl ; B -162 -276 520 733 ; +C 177 ; WX 500 ; N endash ; B -10 228 510 278 ; +C 178 ; WX 500 ; N dagger ; B 48 0 469 692 ; +C 179 ; WX 500 ; N daggerdbl ; B 10 -162 494 692 ; +C 180 ; WX 250 ; N periodcentered ; B 53 195 158 312 ; +C 182 ; WX 500 ; N paragraph ; B 33 -224 611 692 ; +C 183 ; WX 500 ; N bullet ; B 86 182 430 526 ; +C 184 ; WX 278 ; N quotesinglbase ; B 27 -122 211 120 ; +C 185 ; WX 500 ; N quotedblbase ; B 43 -122 424 120 ; +C 186 ; WX 500 ; N quotedblright ; B 98 488 475 733 ; +C 187 ; WX 500 ; N guillemotright ; B 63 70 443 440 ; +C 188 ; WX 1000 ; N ellipsis ; B 102 -5 873 112 ; +C 189 ; WX 1000 ; N perthousand ; B 72 -6 929 717 ; +C 191 ; WX 500 ; N questiondown ; B 57 -246 370 467 ; +C 193 ; WX 333 ; N grave ; B 86 518 310 687 ; +C 194 ; WX 333 ; N acute ; B 122 518 346 687 ; +C 195 ; WX 333 ; N circumflex ; B 56 510 350 679 ; +C 196 ; WX 333 ; N tilde ; B 63 535 390 638 ; +C 197 ; WX 333 ; N macron ; B 74 538 386 589 ; +C 198 ; WX 333 ; N breve ; B 92 518 393 677 ; +C 199 ; WX 333 ; N dotaccent ; B 125 537 233 645 ; +C 200 ; WX 333 ; N dieresis ; B 78 537 378 637 ; +C 202 ; WX 333 ; N ring ; B 159 508 359 708 ; +C 203 ; WX 333 ; N cedilla ; B -9 -216 202 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B 46 518 385 730 ; +C 206 ; WX 333 ; N ogonek ; B 38 -207 196 -18 ; +C 207 ; WX 333 ; N caron ; B 104 510 409 679 ; +C 208 ; WX 1000 ; N emdash ; B 115 228 885 278 ; +C 225 ; WX 941 ; N AE ; B -4 -3 902 692 ; +C 227 ; WX 333 ; N ordfeminine ; B 60 404 321 699 ; +C 232 ; WX 556 ; N Lslash ; B -16 -3 523 692 ; +C 233 ; WX 778 ; N Oslash ; B 32 -39 762 721 ; +C 234 ; WX 1028 ; N OE ; B 56 -18 989 706 ; +C 235 ; WX 333 ; N ordmasculine ; B 66 404 322 699 ; +C 241 ; WX 638 ; N ae ; B 1 -11 623 482 ; +C 245 ; WX 278 ; N dotlessi ; B 34 -9 241 482 ; +C 248 ; WX 278 ; N lslash ; B -10 -9 302 733 ; +C 249 ; WX 444 ; N oslash ; B -18 -24 460 510 ; +C 250 ; WX 669 ; N oe ; B 17 -11 654 482 ; +C 251 ; WX 500 ; N germandbls ; B -160 -276 488 733 ; +C -1 ; WX 389 ; N ecircumflex ; B 15 -11 398 699 ; +C -1 ; WX 389 ; N edieresis ; B 15 -11 406 657 ; +C -1 ; WX 444 ; N aacute ; B 4 -11 414 707 ; +C -1 ; WX 747 ; N registered ; B 11 -18 736 706 ; +C -1 ; WX 278 ; N icircumflex ; B 29 -9 323 699 ; +C -1 ; WX 556 ; N udieresis ; B 32 -11 512 657 ; +C -1 ; WX 444 ; N ograve ; B 17 -11 411 707 ; +C -1 ; WX 556 ; N uacute ; B 32 -11 512 707 ; +C -1 ; WX 556 ; N ucircumflex ; B 32 -11 512 699 ; +C -1 ; WX 722 ; N Aacute ; B -19 -3 677 897 ; +C -1 ; WX 278 ; N igrave ; B 34 -9 271 707 ; +C -1 ; WX 333 ; N Icircumflex ; B 7 -3 390 889 ; +C -1 ; WX 407 ; N ccedilla ; B 25 -216 389 482 ; +C -1 ; WX 444 ; N adieresis ; B 4 -11 434 657 ; +C -1 ; WX 611 ; N Ecircumflex ; B 30 -3 570 889 ; +C -1 ; WX 389 ; N scaron ; B 9 -11 419 687 ; +C -1 ; WX 500 ; N thorn ; B -39 -276 433 733 ; +C -1 ; WX 1000 ; N trademark ; B 52 285 951 689 ; +C -1 ; WX 389 ; N egrave ; B 15 -11 374 707 ; +C -1 ; WX 300 ; N threesuperior ; B 28 273 304 699 ; +C -1 ; WX 444 ; N zcaron ; B -1 -11 447 687 ; +C -1 ; WX 444 ; N atilde ; B 4 -11 446 650 ; +C -1 ; WX 444 ; N aring ; B 4 -11 406 728 ; +C -1 ; WX 444 ; N ocircumflex ; B 17 -11 411 699 ; +C -1 ; WX 611 ; N Edieresis ; B 30 -3 570 847 ; +C -1 ; WX 750 ; N threequarters ; B 35 -2 715 699 ; +C -1 ; WX 500 ; N ydieresis ; B -8 -276 490 657 ; +C -1 ; WX 500 ; N yacute ; B -8 -276 490 707 ; +C -1 ; WX 278 ; N iacute ; B 34 -9 331 707 ; +C -1 ; WX 722 ; N Acircumflex ; B -19 -3 677 889 ; +C -1 ; WX 778 ; N Uacute ; B 88 -18 798 897 ; +C -1 ; WX 389 ; N eacute ; B 15 -11 394 707 ; +C -1 ; WX 778 ; N Ograve ; B 53 -18 748 897 ; +C -1 ; WX 444 ; N agrave ; B 4 -11 406 707 ; +C -1 ; WX 778 ; N Udieresis ; B 88 -18 798 847 ; +C -1 ; WX 444 ; N acircumflex ; B 4 -11 406 699 ; +C -1 ; WX 333 ; N Igrave ; B 7 -3 354 897 ; +C -1 ; WX 300 ; N twosuperior ; B 13 278 290 699 ; +C -1 ; WX 778 ; N Ugrave ; B 88 -18 798 897 ; +C -1 ; WX 750 ; N onequarter ; B 31 -2 715 699 ; +C -1 ; WX 778 ; N Ucircumflex ; B 88 -18 798 889 ; +C -1 ; WX 556 ; N Scaron ; B 42 -18 539 907 ; +C -1 ; WX 333 ; N Idieresis ; B 7 -3 418 847 ; +C -1 ; WX 278 ; N idieresis ; B 34 -9 351 657 ; +C -1 ; WX 611 ; N Egrave ; B 30 -3 570 897 ; +C -1 ; WX 778 ; N Oacute ; B 53 -18 748 897 ; +C -1 ; WX 606 ; N divide ; B 51 0 555 504 ; +C -1 ; WX 722 ; N Atilde ; B -19 -3 677 866 ; +C -1 ; WX 722 ; N Aring ; B -19 -3 677 918 ; +C -1 ; WX 778 ; N Odieresis ; B 53 -18 748 847 ; +C -1 ; WX 722 ; N Adieresis ; B -19 -3 677 847 ; +C -1 ; WX 778 ; N Ntilde ; B 2 -11 804 866 ; +C -1 ; WX 667 ; N Zcaron ; B 20 -3 637 907 ; +C -1 ; WX 611 ; N Thorn ; B 9 -3 570 692 ; +C -1 ; WX 333 ; N Iacute ; B 7 -3 406 897 ; +C -1 ; WX 606 ; N plusminus ; B 51 0 555 504 ; +C -1 ; WX 606 ; N multiply ; B 83 36 523 474 ; +C -1 ; WX 611 ; N Eacute ; B 30 -3 570 897 ; +C -1 ; WX 667 ; N Ydieresis ; B 52 -3 675 847 ; +C -1 ; WX 300 ; N onesuperior ; B 61 278 285 699 ; +C -1 ; WX 556 ; N ugrave ; B 32 -11 512 707 ; +C -1 ; WX 606 ; N logicalnot ; B 51 118 555 378 ; +C -1 ; WX 556 ; N ntilde ; B 24 -9 514 650 ; +C -1 ; WX 778 ; N Otilde ; B 53 -18 748 866 ; +C -1 ; WX 444 ; N otilde ; B 17 -11 446 650 ; +C -1 ; WX 667 ; N Ccedilla ; B 45 -216 651 706 ; +C -1 ; WX 722 ; N Agrave ; B -19 -3 677 897 ; +C -1 ; WX 750 ; N onehalf ; B 31 -2 721 699 ; +C -1 ; WX 778 ; N Eth ; B 19 -3 741 692 ; +C -1 ; WX 400 ; N degree ; B 90 389 390 689 ; +C -1 ; WX 667 ; N Yacute ; B 52 -3 675 897 ; +C -1 ; WX 778 ; N Ocircumflex ; B 53 -18 748 889 ; +C -1 ; WX 444 ; N oacute ; B 17 -11 414 707 ; +C -1 ; WX 556 ; N mu ; B 15 -226 512 482 ; +C -1 ; WX 606 ; N minus ; B 51 224 555 280 ; +C -1 ; WX 444 ; N eth ; B 17 -11 478 733 ; +C -1 ; WX 444 ; N odieresis ; B 17 -11 434 657 ; +C -1 ; WX 747 ; N copyright ; B 11 -18 736 706 ; +C -1 ; WX 606 ; N brokenbar ; B 275 0 331 733 ; +EndCharMetrics +StartKernData +StartKernPairs 106 + +KPX A y -55 +KPX A w -37 +KPX A v -37 +KPX A space -37 +KPX A quoteright -55 +KPX A Y -55 +KPX A W -55 +KPX A V -74 +KPX A T -55 + +KPX F period -111 +KPX F comma -111 +KPX F A -111 + +KPX L y -37 +KPX L space -18 +KPX L quoteright -37 +KPX L Y -74 +KPX L W -74 +KPX L V -74 +KPX L T -74 + +KPX P period -129 +KPX P comma -129 +KPX P A -129 + +KPX R y -37 +KPX R Y -55 +KPX R W -55 +KPX R V -74 +KPX R T -55 + +KPX T y -92 +KPX T w -92 +KPX T u -111 +KPX T semicolon -74 +KPX T s -111 +KPX T r -111 +KPX T period -74 +KPX T o -111 +KPX T i -55 +KPX T hyphen -55 +KPX T e -111 +KPX T comma -74 +KPX T colon -74 +KPX T c -111 +KPX T a -111 +KPX T O -18 +KPX T A -92 + +KPX V y -74 +KPX V u -74 +KPX V semicolon -37 +KPX V r -92 +KPX V period -129 +KPX V o -74 +KPX V i -74 +KPX V hyphen -55 +KPX V e -92 +KPX V comma -129 +KPX V colon -37 +KPX V a -74 +KPX V A -210 + +KPX W y -20 +KPX W u -20 +KPX W semicolon -18 +KPX W r -20 +KPX W period -55 +KPX W o -20 +KPX W i -20 +KPX W hyphen -18 +KPX W e -20 +KPX W comma -55 +KPX W colon -18 +KPX W a -20 +KPX W A -92 + +KPX Y v -74 +KPX Y u -92 +KPX Y semicolon -74 +KPX Y q -92 +KPX Y period -92 +KPX Y p -74 +KPX Y o -111 +KPX Y i -55 +KPX Y hyphen -74 +KPX Y e -111 +KPX Y comma -92 +KPX Y colon -74 +KPX Y a -92 +KPX Y A -92 + +KPX f quoteright 55 + +KPX one one -55 + +KPX quoteleft quoteleft -74 + +KPX quoteright t -37 +KPX quoteright space -55 +KPX quoteright s -55 +KPX quoteright quoteright -74 + +KPX r quoteright 37 +KPX r q -18 +KPX r period -74 +KPX r o -18 +KPX r h -18 +KPX r g -18 +KPX r e -18 +KPX r comma -74 +KPX r c -18 + +KPX v period -55 +KPX v comma -55 + +KPX w period -55 +KPX w comma -55 + +KPX y period -37 +KPX y comma -37 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 271 210 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 261 210 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 255 210 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 235 210 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 235 210 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 255 228 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 199 210 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 179 210 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 179 210 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 167 210 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 60 210 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 40 210 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 40 210 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 28 210 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 263 228 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 283 210 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 263 210 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 255 210 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 251 210 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 263 228 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 130 228 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 277 210 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 255 210 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 235 210 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 235 210 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 227 210 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 187 210 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 179 228 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 68 20 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 56 20 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 56 20 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 44 20 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 36 20 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 56 12 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 48 20 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 48 20 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 28 20 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 16 20 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -15 20 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -27 20 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 20 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -39 20 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 112 12 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 68 20 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 56 20 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 56 20 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 36 20 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 56 12 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 10 8 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 124 20 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 112 20 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 112 20 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 100 20 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 96 20 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 84 20 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 38 8 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-ItF+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-ItF+ new file mode 100755 index 0000000000000..b98042e049df0 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-ItF+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 667 ; N Ccaron ; B 45 -18 680 924 ; +C -1 ; WX 407 ; N ccaron ; B 25 -11 464 679 ; +C -1 ; WX 778 ; N Dcaron ; B 28 -3 741 924 ; +C -1 ; WX 626 ; N dcaron ; B 17 -11 681 806 ; +C -1 ; WX 611 ; N Ecaron ; B 30 -3 591 924 ; +C -1 ; WX 389 ; N ecaron ; B 15 -11 437 679 ; +C -1 ; WX 556 ; N Lcaron ; B 16 -3 552 761 ; +C -1 ; WX 556 ; N Lacute ; B 16 -3 523 924 ; +C -1 ; WX 404 ; N lcaron ; B 36 -9 449 806 ; +C -1 ; WX 278 ; N lacute ; B 36 -9 382 924 ; +C -1 ; WX 778 ; N Ncaron ; B 2 -11 804 924 ; +C -1 ; WX 556 ; N ncaron ; B 24 -9 520 679 ; +C -1 ; WX 667 ; N Rcaron ; B 9 -3 639 924 ; +C -1 ; WX 667 ; N Racute ; B 9 -3 639 924 ; +C -1 ; WX 389 ; N rcaron ; B 26 -9 437 679 ; +C -1 ; WX 389 ; N racute ; B 26 -9 396 687 ; +C -1 ; WX 611 ; N Tcaron ; B 53 -3 635 924 ; +C -1 ; WX 459 ; N tcaron ; B 41 -9 508 733 ; +C -1 ; WX 778 ; N Uring ; B 88 -18 798 924 ; +C -1 ; WX 556 ; N uring ; B 32 -11 512 708 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 271 245 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 55 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 265 245 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 423 73 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 182 245 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 28 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 294 28 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 152 237 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 191 73 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 36 237 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 265 245 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 111 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 210 245 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 251 237 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 28 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 50 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 182 245 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 250 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 260 216 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 111 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-Rm b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-Rm new file mode 100755 index 0000000000000..6566b16ed78c2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-Rm @@ -0,0 +1,445 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Mon Jul 2 22:14:17 1990 +Comment UniqueID 31790 +Comment VMusage 36445 47337 +FontName Palatino-Roman +FullName Palatino Roman +FamilyName Palatino +Weight Roman +ItalicAngle 0 +IsFixedPitch false +FontBBox -166 -283 1021 927 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.005 +Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Palatino is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 692 +XHeight 469 +Ascender 726 +Descender -281 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 278 ; N exclam ; B 81 -5 197 694 ; +C 34 ; WX 371 ; N quotedbl ; B 52 469 319 709 ; +C 35 ; WX 500 ; N numbersign ; B 4 0 495 684 ; +C 36 ; WX 500 ; N dollar ; B 30 -116 471 731 ; +C 37 ; WX 840 ; N percent ; B 39 -20 802 709 ; +C 38 ; WX 778 ; N ampersand ; B 43 -20 753 689 ; +C 39 ; WX 278 ; N quoteright ; B 45 446 233 709 ; +C 40 ; WX 333 ; N parenleft ; B 60 -215 301 726 ; +C 41 ; WX 333 ; N parenright ; B 32 -215 273 726 ; +C 42 ; WX 389 ; N asterisk ; B 32 342 359 689 ; +C 43 ; WX 606 ; N plus ; B 51 7 555 512 ; +C 44 ; WX 250 ; N comma ; B 16 -155 218 123 ; +C 45 ; WX 333 ; N hyphen ; B 17 215 312 287 ; +C 46 ; WX 250 ; N period ; B 67 -5 183 111 ; +C 47 ; WX 606 ; N slash ; B 87 -119 519 726 ; +C 48 ; WX 500 ; N zero ; B 29 -20 465 689 ; +C 49 ; WX 500 ; N one ; B 60 -3 418 694 ; +C 50 ; WX 500 ; N two ; B 16 -3 468 689 ; +C 51 ; WX 500 ; N three ; B 15 -20 462 689 ; +C 52 ; WX 500 ; N four ; B 2 -3 472 694 ; +C 53 ; WX 500 ; N five ; B 13 -20 459 689 ; +C 54 ; WX 500 ; N six ; B 32 -20 468 689 ; +C 55 ; WX 500 ; N seven ; B 44 -3 497 689 ; +C 56 ; WX 500 ; N eight ; B 30 -20 464 689 ; +C 57 ; WX 500 ; N nine ; B 20 -20 457 689 ; +C 58 ; WX 250 ; N colon ; B 66 -5 182 456 ; +C 59 ; WX 250 ; N semicolon ; B 16 -153 218 456 ; +C 60 ; WX 606 ; N less ; B 57 0 558 522 ; +C 61 ; WX 606 ; N equal ; B 51 136 555 386 ; +C 62 ; WX 606 ; N greater ; B 48 0 549 522 ; +C 63 ; WX 444 ; N question ; B 43 -5 395 694 ; +C 64 ; WX 747 ; N at ; B 24 -20 724 694 ; +C 65 ; WX 778 ; N A ; B 15 -3 756 700 ; +C 66 ; WX 611 ; N B ; B 26 -3 576 692 ; +C 67 ; WX 709 ; N C ; B 22 -20 670 709 ; +C 68 ; WX 774 ; N D ; B 22 -3 751 692 ; +C 69 ; WX 611 ; N E ; B 22 -3 572 692 ; +C 70 ; WX 556 ; N F ; B 22 -3 536 692 ; +C 71 ; WX 763 ; N G ; B 22 -20 728 709 ; +C 72 ; WX 832 ; N H ; B 22 -3 810 692 ; +C 73 ; WX 337 ; N I ; B 22 -3 315 692 ; +C 74 ; WX 333 ; N J ; B -15 -194 311 692 ; +C 75 ; WX 726 ; N K ; B 22 -3 719 692 ; +C 76 ; WX 611 ; N L ; B 22 -3 586 692 ; +C 77 ; WX 946 ; N M ; B 16 -13 926 692 ; +C 78 ; WX 831 ; N N ; B 17 -20 813 692 ; +C 79 ; WX 786 ; N O ; B 22 -20 764 709 ; +C 80 ; WX 604 ; N P ; B 22 -3 580 692 ; +C 81 ; WX 786 ; N Q ; B 22 -176 764 709 ; +C 82 ; WX 668 ; N R ; B 22 -3 669 692 ; +C 83 ; WX 525 ; N S ; B 24 -20 503 709 ; +C 84 ; WX 613 ; N T ; B 18 -3 595 692 ; +C 85 ; WX 778 ; N U ; B 12 -20 759 692 ; +C 86 ; WX 722 ; N V ; B 8 -9 706 692 ; +C 87 ; WX 1000 ; N W ; B 8 -9 984 700 ; +C 88 ; WX 667 ; N X ; B 14 -3 648 700 ; +C 89 ; WX 667 ; N Y ; B 9 -3 654 704 ; +C 90 ; WX 667 ; N Z ; B 15 -3 638 692 ; +C 91 ; WX 333 ; N bracketleft ; B 79 -184 288 726 ; +C 92 ; WX 606 ; N backslash ; B 81 0 512 726 ; +C 93 ; WX 333 ; N bracketright ; B 45 -184 254 726 ; +C 94 ; WX 606 ; N asciicircum ; B 51 283 554 689 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 278 ; N quoteleft ; B 45 446 233 709 ; +C 97 ; WX 500 ; N a ; B 32 -12 471 469 ; +C 98 ; WX 553 ; N b ; B -15 -12 508 726 ; +C 99 ; WX 444 ; N c ; B 26 -20 413 469 ; +C 100 ; WX 611 ; N d ; B 35 -12 579 726 ; +C 101 ; WX 479 ; N e ; B 26 -20 448 469 ; +C 102 ; WX 333 ; N f ; B 23 -3 341 728 ; L i fi ; L l fl ; +C 103 ; WX 556 ; N g ; B 32 -283 544 469 ; +C 104 ; WX 582 ; N h ; B 6 -3 572 726 ; +C 105 ; WX 291 ; N i ; B 21 -3 271 687 ; +C 106 ; WX 234 ; N j ; B -40 -283 167 688 ; +C 107 ; WX 556 ; N k ; B 21 -12 549 726 ; +C 108 ; WX 291 ; N l ; B 21 -3 271 726 ; +C 109 ; WX 883 ; N m ; B 16 -3 869 469 ; +C 110 ; WX 582 ; N n ; B 6 -3 572 469 ; +C 111 ; WX 546 ; N o ; B 32 -20 514 469 ; +C 112 ; WX 601 ; N p ; B 8 -281 554 469 ; +C 113 ; WX 560 ; N q ; B 35 -281 560 469 ; +C 114 ; WX 395 ; N r ; B 21 -3 374 469 ; +C 115 ; WX 424 ; N s ; B 30 -20 391 469 ; +C 116 ; WX 326 ; N t ; B 22 -12 319 621 ; +C 117 ; WX 603 ; N u ; B 18 -12 581 469 ; +C 118 ; WX 565 ; N v ; B 6 -7 539 459 ; +C 119 ; WX 834 ; N w ; B 6 -7 808 469 ; +C 120 ; WX 516 ; N x ; B 20 -3 496 469 ; +C 121 ; WX 556 ; N y ; B 12 -283 544 459 ; +C 122 ; WX 500 ; N z ; B 16 -3 466 462 ; +C 123 ; WX 333 ; N braceleft ; B 58 -175 289 726 ; +C 124 ; WX 606 ; N bar ; B 275 0 331 726 ; +C 125 ; WX 333 ; N braceright ; B 44 -175 275 726 ; +C 126 ; WX 606 ; N asciitilde ; B 51 176 555 347 ; +C 161 ; WX 278 ; N exclamdown ; B 81 -225 197 469 ; +C 162 ; WX 500 ; N cent ; B 61 -101 448 562 ; +C 163 ; WX 500 ; N sterling ; B 12 -13 478 694 ; +C 164 ; WX 167 ; N fraction ; B -166 0 337 689 ; +C 165 ; WX 500 ; N yen ; B 5 -3 496 701 ; +C 166 ; WX 500 ; N florin ; B 0 -262 473 706 ; +C 167 ; WX 500 ; N section ; B 26 -219 465 709 ; +C 168 ; WX 500 ; N currency ; B 30 96 470 531 ; +C 169 ; WX 208 ; N quotesingle ; B 61 469 147 709 ; +C 170 ; WX 500 ; N quotedblleft ; B 51 446 449 709 ; +C 171 ; WX 500 ; N guillemotleft ; B 50 71 450 428 ; +C 172 ; WX 331 ; N guilsinglleft ; B 66 71 265 428 ; +C 173 ; WX 331 ; N guilsinglright ; B 66 71 265 428 ; +C 174 ; WX 605 ; N fi ; B 23 -3 587 728 ; +C 175 ; WX 608 ; N fl ; B 23 -3 590 728 ; +C 177 ; WX 500 ; N endash ; B 0 219 500 277 ; +C 178 ; WX 500 ; N dagger ; B 34 -5 466 694 ; +C 179 ; WX 500 ; N daggerdbl ; B 34 -249 466 694 ; +C 180 ; WX 250 ; N periodcentered ; B 67 203 183 319 ; +C 182 ; WX 628 ; N paragraph ; B 39 -150 589 694 ; +C 183 ; WX 606 ; N bullet ; B 131 172 475 516 ; +C 184 ; WX 278 ; N quotesinglbase ; B 22 -153 210 110 ; +C 185 ; WX 500 ; N quotedblbase ; B 51 -153 449 110 ; +C 186 ; WX 500 ; N quotedblright ; B 51 446 449 709 ; +C 187 ; WX 500 ; N guillemotright ; B 50 71 450 428 ; +C 188 ; WX 1000 ; N ellipsis ; B 109 -5 891 111 ; +C 189 ; WX 1144 ; N perthousand ; B 123 -20 1021 709 ; +C 191 ; WX 444 ; N questiondown ; B 43 -231 395 469 ; +C 193 ; WX 333 ; N grave ; B 31 506 255 677 ; +C 194 ; WX 333 ; N acute ; B 78 506 302 677 ; +C 195 ; WX 333 ; N circumflex ; B 11 510 323 677 ; +C 196 ; WX 333 ; N tilde ; B 2 535 332 640 ; +C 197 ; WX 333 ; N macron ; B 11 538 323 591 ; +C 198 ; WX 333 ; N breve ; B 26 506 308 664 ; +C 199 ; WX 250 ; N dotaccent ; B 75 537 175 637 ; +C 200 ; WX 333 ; N dieresis ; B 17 537 316 637 ; +C 202 ; WX 333 ; N ring ; B 67 496 267 696 ; +C 203 ; WX 333 ; N cedilla ; B 96 -225 304 -10 ; +C 205 ; WX 380 ; N hungarumlaut ; B 3 506 377 687 ; +C 206 ; WX 313 ; N ogonek ; B 68 -165 245 -20 ; +C 207 ; WX 333 ; N caron ; B 11 510 323 677 ; +C 208 ; WX 1000 ; N emdash ; B 0 219 1000 277 ; +C 225 ; WX 944 ; N AE ; B -10 -3 908 692 ; +C 227 ; WX 333 ; N ordfeminine ; B 24 422 310 709 ; +C 232 ; WX 611 ; N Lslash ; B 6 -3 586 692 ; +C 233 ; WX 833 ; N Oslash ; B 30 -20 797 709 ; +C 234 ; WX 998 ; N OE ; B 22 -20 962 709 ; +C 235 ; WX 333 ; N ordmasculine ; B 10 416 323 709 ; +C 241 ; WX 758 ; N ae ; B 30 -20 732 469 ; +C 245 ; WX 287 ; N dotlessi ; B 21 -3 271 469 ; +C 248 ; WX 291 ; N lslash ; B -14 -3 306 726 ; +C 249 ; WX 556 ; N oslash ; B 16 -23 530 474 ; +C 250 ; WX 827 ; N oe ; B 32 -20 800 469 ; +C 251 ; WX 556 ; N germandbls ; B 23 -9 519 731 ; +C -1 ; WX 667 ; N Zcaron ; B 15 -3 638 908 ; +C -1 ; WX 444 ; N ccedilla ; B 26 -225 413 469 ; +C -1 ; WX 556 ; N ydieresis ; B 12 -283 544 657 ; +C -1 ; WX 500 ; N atilde ; B 32 -12 471 652 ; +C -1 ; WX 287 ; N icircumflex ; B -12 -3 300 697 ; +C -1 ; WX 300 ; N threesuperior ; B 1 266 299 689 ; +C -1 ; WX 479 ; N ecircumflex ; B 26 -20 448 697 ; +C -1 ; WX 601 ; N thorn ; B -2 -281 544 726 ; +C -1 ; WX 479 ; N egrave ; B 26 -20 448 697 ; +C -1 ; WX 300 ; N twosuperior ; B 0 273 301 689 ; +C -1 ; WX 479 ; N eacute ; B 26 -20 448 697 ; +C -1 ; WX 546 ; N otilde ; B 32 -20 514 652 ; +C -1 ; WX 778 ; N Aacute ; B 15 -3 756 908 ; +C -1 ; WX 546 ; N ocircumflex ; B 32 -20 514 697 ; +C -1 ; WX 556 ; N yacute ; B 12 -283 544 697 ; +C -1 ; WX 603 ; N udieresis ; B 18 -12 581 657 ; +C -1 ; WX 750 ; N threequarters ; B 15 -3 735 689 ; +C -1 ; WX 500 ; N acircumflex ; B 32 -12 471 697 ; +C -1 ; WX 774 ; N Eth ; B 14 -3 751 692 ; +C -1 ; WX 479 ; N edieresis ; B 26 -20 448 657 ; +C -1 ; WX 603 ; N ugrave ; B 18 -12 581 697 ; +C -1 ; WX 979 ; N trademark ; B 40 285 939 689 ; +C -1 ; WX 546 ; N ograve ; B 32 -20 514 697 ; +C -1 ; WX 424 ; N scaron ; B 30 -20 391 685 ; +C -1 ; WX 337 ; N Idieresis ; B 19 -3 318 868 ; +C -1 ; WX 603 ; N uacute ; B 18 -12 581 697 ; +C -1 ; WX 500 ; N agrave ; B 32 -12 471 697 ; +C -1 ; WX 582 ; N ntilde ; B 6 -3 572 652 ; +C -1 ; WX 500 ; N aring ; B 32 -12 471 716 ; +C -1 ; WX 500 ; N zcaron ; B 16 -3 466 685 ; +C -1 ; WX 337 ; N Icircumflex ; B 13 -3 325 908 ; +C -1 ; WX 831 ; N Ntilde ; B 17 -20 813 871 ; +C -1 ; WX 603 ; N ucircumflex ; B 18 -12 581 697 ; +C -1 ; WX 611 ; N Ecircumflex ; B 22 -3 572 908 ; +C -1 ; WX 337 ; N Iacute ; B 22 -3 315 908 ; +C -1 ; WX 709 ; N Ccedilla ; B 22 -225 670 709 ; +C -1 ; WX 786 ; N Odieresis ; B 22 -20 764 868 ; +C -1 ; WX 525 ; N Scaron ; B 24 -20 503 908 ; +C -1 ; WX 611 ; N Edieresis ; B 22 -3 572 868 ; +C -1 ; WX 337 ; N Igrave ; B 22 -3 315 908 ; +C -1 ; WX 500 ; N adieresis ; B 32 -12 471 657 ; +C -1 ; WX 786 ; N Ograve ; B 22 -20 764 908 ; +C -1 ; WX 611 ; N Egrave ; B 22 -3 572 908 ; +C -1 ; WX 667 ; N Ydieresis ; B 9 -3 654 868 ; +C -1 ; WX 747 ; N registered ; B 11 -18 736 706 ; +C -1 ; WX 786 ; N Otilde ; B 22 -20 764 883 ; +C -1 ; WX 750 ; N onequarter ; B 30 -3 727 692 ; +C -1 ; WX 778 ; N Ugrave ; B 12 -20 759 908 ; +C -1 ; WX 778 ; N Ucircumflex ; B 12 -20 759 908 ; +C -1 ; WX 604 ; N Thorn ; B 32 -3 574 692 ; +C -1 ; WX 606 ; N divide ; B 51 10 555 512 ; +C -1 ; WX 778 ; N Atilde ; B 15 -3 756 871 ; +C -1 ; WX 778 ; N Uacute ; B 12 -20 759 908 ; +C -1 ; WX 786 ; N Ocircumflex ; B 22 -20 764 908 ; +C -1 ; WX 606 ; N logicalnot ; B 51 120 551 386 ; +C -1 ; WX 778 ; N Aring ; B 15 -3 756 927 ; +C -1 ; WX 287 ; N idieresis ; B -6 -3 293 657 ; +C -1 ; WX 287 ; N iacute ; B 21 -3 279 697 ; +C -1 ; WX 500 ; N aacute ; B 32 -12 471 697 ; +C -1 ; WX 606 ; N plusminus ; B 51 0 555 512 ; +C -1 ; WX 606 ; N multiply ; B 83 36 523 474 ; +C -1 ; WX 778 ; N Udieresis ; B 12 -20 759 868 ; +C -1 ; WX 606 ; N minus ; B 51 233 555 289 ; +C -1 ; WX 300 ; N onesuperior ; B 31 273 269 692 ; +C -1 ; WX 611 ; N Eacute ; B 22 -3 572 908 ; +C -1 ; WX 778 ; N Acircumflex ; B 15 -3 756 908 ; +C -1 ; WX 747 ; N copyright ; B 11 -18 736 706 ; +C -1 ; WX 778 ; N Agrave ; B 15 -3 756 908 ; +C -1 ; WX 546 ; N odieresis ; B 32 -20 514 657 ; +C -1 ; WX 546 ; N oacute ; B 32 -20 514 697 ; +C -1 ; WX 400 ; N degree ; B 50 389 350 689 ; +C -1 ; WX 287 ; N igrave ; B 8 -3 271 697 ; +C -1 ; WX 603 ; N mu ; B 18 -236 581 469 ; +C -1 ; WX 786 ; N Oacute ; B 22 -20 764 908 ; +C -1 ; WX 546 ; N eth ; B 32 -20 504 728 ; +C -1 ; WX 778 ; N Adieresis ; B 15 -3 756 868 ; +C -1 ; WX 667 ; N Yacute ; B 9 -3 654 908 ; +C -1 ; WX 606 ; N brokenbar ; B 275 0 331 726 ; +C -1 ; WX 750 ; N onehalf ; B 15 -3 735 692 ; +EndCharMetrics +StartKernData +StartKernPairs 111 + +KPX A y -74 +KPX A w -74 +KPX A v -92 +KPX A space -55 +KPX A quoteright -74 +KPX A Y -111 +KPX A W -74 +KPX A V -111 +KPX A T -74 + +KPX F period -92 +KPX F comma -92 +KPX F A -74 + +KPX L y -55 +KPX L space -37 +KPX L quoteright -74 +KPX L Y -92 +KPX L W -74 +KPX L V -92 +KPX L T -74 + +KPX P space -18 +KPX P period -129 +KPX P comma -129 +KPX P A -92 + +KPX R y -37 +KPX R Y -37 +KPX R W -37 +KPX R V -55 +KPX R T -37 + +KPX T y -90 +KPX T w -90 +KPX T u -90 +KPX T semicolon -55 +KPX T s -90 +KPX T r -90 +KPX T period -74 +KPX T o -92 +KPX T i -55 +KPX T hyphen -55 +KPX T e -92 +KPX T comma -74 +KPX T colon -55 +KPX T c -111 +KPX T a -92 +KPX T O -18 +KPX T A -74 + +KPX V y -92 +KPX V u -92 +KPX V semicolon -55 +KPX V r -92 +KPX V period -129 +KPX V o -111 +KPX V i -55 +KPX V hyphen -74 +KPX V e -111 +KPX V comma -129 +KPX V colon -55 +KPX V a -92 +KPX V A -111 + +KPX W y -50 +KPX W u -50 +KPX W semicolon -18 +KPX W r -74 +KPX W period -92 +KPX W o -92 +KPX W i -55 +KPX W hyphen -55 +KPX W e -92 +KPX W comma -92 +KPX W colon -18 +KPX W a -92 +KPX W A -92 + +KPX Y v -90 +KPX Y u -90 +KPX Y space -18 +KPX Y semicolon -74 +KPX Y q -90 +KPX Y period -111 +KPX Y p -111 +KPX Y o -92 +KPX Y i -55 +KPX Y hyphen -92 +KPX Y e -92 +KPX Y comma -111 +KPX Y colon -74 +KPX Y a -92 +KPX Y A -92 + +KPX f quoteright 55 +KPX f f -18 + +KPX one one -55 + +KPX quoteleft quoteleft -37 + +KPX quoteright quoteright -37 + +KPX r u -8 +KPX r quoteright 74 +KPX r q -18 +KPX r period -74 +KPX r o -18 +KPX r hyphen -18 +KPX r h -18 +KPX r g -18 +KPX r e -18 +KPX r d -18 +KPX r comma -74 +KPX r c -18 + +KPX space Y -18 +KPX space A -37 + +KPX v period -111 +KPX v comma -111 + +KPX w period -92 +KPX w comma -92 + +KPX y period -111 +KPX y comma -111 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 229 231 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 223 231 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 223 231 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 215 231 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 223 231 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 223 231 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 188 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 139 231 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 139 231 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 139 231 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 139 231 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 2 231 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 2 231 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 2 231 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 2 231 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 249 231 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 227 231 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 227 231 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 227 231 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 227 231 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 227 243 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 96 231 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 255 231 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 247 231 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 223 231 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 223 231 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 203 231 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 191 231 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 179 231 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 84 20 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 72 20 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 72 20 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 60 20 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 72 20 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 72 12 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 56 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 97 20 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 85 20 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 73 20 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 73 20 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -23 20 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -23 20 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -23 20 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -23 20 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 113 12 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 107 20 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 107 20 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 107 20 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 95 20 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 107 12 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 46 8 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 159 20 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 135 20 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 135 20 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 111 20 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 144 20 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 112 20 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 84 8 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-Rm+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-Rm+ new file mode 100755 index 0000000000000..b50adb96f90b2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-Rm+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 709 ; N Ccaron ; B 22 -20 670 922 ; +C -1 ; WX 444 ; N ccaron ; B 26 -20 413 677 ; +C -1 ; WX 774 ; N Dcaron ; B 22 -3 751 922 ; +C -1 ; WX 743 ; N dcaron ; B 35 -12 786 799 ; +C -1 ; WX 611 ; N Ecaron ; B 22 -3 572 922 ; +C -1 ; WX 479 ; N ecaron ; B 26 -20 448 677 ; +C -1 ; WX 611 ; N Lcaron ; B 22 -3 586 761 ; +C -1 ; WX 611 ; N Lacute ; B 22 -3 586 926 ; +C -1 ; WX 423 ; N lcaron ; B 21 -3 478 799 ; +C -1 ; WX 291 ; N lacute ; B 21 -3 303 926 ; +C -1 ; WX 831 ; N Ncaron ; B 17 -20 813 922 ; +C -1 ; WX 582 ; N ncaron ; B 6 -3 572 677 ; +C -1 ; WX 668 ; N Rcaron ; B 22 -3 669 922 ; +C -1 ; WX 668 ; N Racute ; B 22 -3 669 926 ; +C -1 ; WX 395 ; N rcaron ; B 21 -3 374 677 ; +C -1 ; WX 395 ; N racute ; B 21 -3 374 677 ; +C -1 ; WX 613 ; N Tcaron ; B 18 -3 595 922 ; +C -1 ; WX 458 ; N tcaron ; B 22 -12 526 709 ; +C -1 ; WX 778 ; N Uring ; B 12 -20 759 922 ; +C -1 ; WX 603 ; N uring ; B 18 -12 581 696 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 253 245 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 74 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 220 245 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 553 90 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 139 245 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 73 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 289 52 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 139 249 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 245 90 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 1 249 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 249 245 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 124 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 167 245 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 210 249 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 31 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 53 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 140 245 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 293 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 222 226 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 135 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-SC b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-SC new file mode 100755 index 0000000000000..5d85bd66e2adf --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-SC @@ -0,0 +1,511 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu Apr 25 10:03:17 1991 +Comment UniqueID 34745 +Comment VMusage 38816 49708 +FontName Palatino-SC +FullName Palatino Small Caps & Old Style Figures +FamilyName Palatino +Weight Roman +ItalicAngle 0 +IsFixedPitch false +FontBBox -166 -262 1021 928 +UnderlinePosition -131 +UnderlineThickness 58 +Version 001.001 +Notice Copyright (c) 1985, 1987, 1989, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved.Palatino is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 692 +XHeight 493 +Ascender 486 +Descender -3 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 278 ; N exclam ; B 81 -5 197 694 ; +C 34 ; WX 371 ; N quotedbl ; B 52 469 319 709 ; +C 35 ; WX 500 ; N numbersign ; B 4 0 495 684 ; +C 36 ; WX 500 ; N dollar ; B 30 -116 471 731 ; +C 37 ; WX 840 ; N percent ; B 39 -20 802 709 ; +C 38 ; WX 778 ; N ampersand ; B 43 -20 753 689 ; +C 39 ; WX 278 ; N quoteright ; B 45 446 233 709 ; +C 40 ; WX 333 ; N parenleft ; B 60 -215 301 726 ; +C 41 ; WX 333 ; N parenright ; B 32 -215 273 726 ; +C 42 ; WX 389 ; N asterisk ; B 32 342 359 689 ; +C 43 ; WX 606 ; N plus ; B 51 7 555 512 ; +C 44 ; WX 250 ; N comma ; B 16 -155 218 123 ; +C 45 ; WX 333 ; N hyphen ; B 17 215 312 287 ; +C 46 ; WX 250 ; N period ; B 67 -5 183 111 ; +C 47 ; WX 606 ; N slash ; B 87 -119 519 726 ; +C 48 ; WX 500 ; N zero ; B 22 -20 478 478 ; +C 49 ; WX 500 ; N one ; B 72 -3 430 484 ; +C 50 ; WX 500 ; N two ; B 23 -9 468 478 ; +C 51 ; WX 500 ; N three ; B 14 -236 438 478 ; +C 52 ; WX 500 ; N four ; B 4 -236 468 478 ; +C 53 ; WX 500 ; N five ; B 14 -236 444 472 ; +C 54 ; WX 500 ; N six ; B 32 -14 468 700 ; +C 55 ; WX 500 ; N seven ; B 42 -236 494 470 ; +C 56 ; WX 500 ; N eight ; B 30 -14 464 694 ; +C 57 ; WX 500 ; N nine ; B 30 -238 466 478 ; +C 58 ; WX 250 ; N colon ; B 66 -5 182 456 ; +C 59 ; WX 250 ; N semicolon ; B 16 -153 218 456 ; +C 60 ; WX 606 ; N less ; B 57 0 558 522 ; +C 61 ; WX 606 ; N equal ; B 51 136 555 386 ; +C 62 ; WX 606 ; N greater ; B 48 0 549 522 ; +C 63 ; WX 444 ; N question ; B 43 -5 395 694 ; +C 64 ; WX 747 ; N at ; B 24 -20 724 694 ; +C 65 ; WX 778 ; N A ; B 15 -3 756 700 ; +C 66 ; WX 611 ; N B ; B 26 -3 576 692 ; +C 67 ; WX 709 ; N C ; B 22 -20 670 709 ; +C 68 ; WX 774 ; N D ; B 22 -3 751 692 ; +C 69 ; WX 611 ; N E ; B 22 -3 572 692 ; +C 70 ; WX 556 ; N F ; B 22 -3 536 692 ; +C 71 ; WX 763 ; N G ; B 22 -20 728 709 ; +C 72 ; WX 832 ; N H ; B 22 -3 810 692 ; +C 73 ; WX 337 ; N I ; B 22 -3 315 692 ; +C 74 ; WX 333 ; N J ; B -15 -194 311 692 ; +C 75 ; WX 726 ; N K ; B 22 -3 719 692 ; +C 76 ; WX 611 ; N L ; B 22 -3 586 692 ; +C 77 ; WX 946 ; N M ; B 16 -13 926 692 ; +C 78 ; WX 831 ; N N ; B 17 -20 813 692 ; +C 79 ; WX 786 ; N O ; B 22 -20 764 709 ; +C 80 ; WX 604 ; N P ; B 22 -3 580 692 ; +C 81 ; WX 786 ; N Q ; B 22 -176 764 709 ; +C 82 ; WX 668 ; N R ; B 22 -3 669 692 ; +C 83 ; WX 525 ; N S ; B 24 -20 503 709 ; +C 84 ; WX 613 ; N T ; B 18 -3 595 692 ; +C 85 ; WX 778 ; N U ; B 12 -20 759 692 ; +C 86 ; WX 722 ; N V ; B 8 -9 706 692 ; +C 87 ; WX 1000 ; N W ; B 8 -9 984 700 ; +C 88 ; WX 667 ; N X ; B 14 -3 648 700 ; +C 89 ; WX 667 ; N Y ; B 9 -3 654 704 ; +C 90 ; WX 667 ; N Z ; B 15 -3 638 692 ; +C 91 ; WX 333 ; N bracketleft ; B 79 -184 288 726 ; +C 92 ; WX 606 ; N backslash ; B 81 0 512 726 ; +C 93 ; WX 333 ; N bracketright ; B 45 -184 254 726 ; +C 94 ; WX 606 ; N asciicircum ; B 51 283 554 689 ; +C 95 ; WX 500 ; N underscore ; B 0 -160 500 -102 ; +C 96 ; WX 278 ; N quoteleft ; B 45 446 233 709 ; +C 97 ; WX 611 ; N a ; B 18 -3 592 498 ; +C 98 ; WX 500 ; N b ; B 28 -2 466 486 ; +C 99 ; WX 556 ; N c ; B 44 -14 528 498 ; +C 100 ; WX 611 ; N d ; B 36 -2 566 486 ; +C 101 ; WX 500 ; N e ; B 23 -3 458 492 ; +C 102 ; WX 444 ; N f ; B 18 -3 420 492 ; L i fi ; L l fl ; +C 103 ; WX 556 ; N g ; B 28 -14 528 497 ; +C 104 ; WX 667 ; N h ; B 24 -3 650 487 ; +C 105 ; WX 333 ; N i ; B 30 -3 300 487 ; +C 106 ; WX 333 ; N j ; B 12 -147 300 487 ; +C 107 ; WX 556 ; N k ; B 28 -3 552 487 ; +C 108 ; WX 500 ; N l ; B 20 -3 468 487 ; +C 109 ; WX 778 ; N m ; B 34 -12 738 487 ; +C 110 ; WX 667 ; N n ; B 24 -14 644 487 ; +C 111 ; WX 611 ; N o ; B 40 -14 570 498 ; +C 112 ; WX 500 ; N p ; B 24 -3 468 492 ; +C 113 ; WX 611 ; N q ; B 40 -138 570 498 ; +C 114 ; WX 556 ; N r ; B 24 -3 552 487 ; +C 115 ; WX 444 ; N s ; B 44 -14 400 498 ; +C 116 ; WX 500 ; N t ; B 18 -3 474 487 ; +C 117 ; WX 611 ; N u ; B 20 -14 590 487 ; +C 118 ; WX 556 ; N v ; B 12 -8 542 487 ; +C 119 ; WX 778 ; N w ; B 12 -8 762 488 ; +C 120 ; WX 500 ; N x ; B 16 -2 484 493 ; +C 121 ; WX 500 ; N y ; B 14 -3 480 493 ; +C 122 ; WX 500 ; N z ; B 20 -3 477 487 ; +C 123 ; WX 333 ; N braceleft ; B 58 -175 289 726 ; +C 124 ; WX 606 ; N bar ; B 275 0 331 726 ; +C 125 ; WX 333 ; N braceright ; B 44 -175 275 726 ; +C 126 ; WX 606 ; N asciitilde ; B 51 176 555 347 ; +C 161 ; WX 278 ; N exclamdown ; B 81 -225 197 469 ; +C 162 ; WX 500 ; N cent ; B 61 -101 448 562 ; +C 163 ; WX 500 ; N sterling ; B 12 -13 478 694 ; +C 164 ; WX 167 ; N fraction ; B -166 0 337 689 ; +C 165 ; WX 500 ; N yen ; B 5 -3 496 701 ; +C 166 ; WX 500 ; N florin ; B 0 -262 473 706 ; +C 167 ; WX 500 ; N section ; B 26 -219 465 709 ; +C 168 ; WX 611 ; N currency ; B 50 -14 586 484 ; +C 169 ; WX 208 ; N quotesingle ; B 61 469 147 709 ; +C 170 ; WX 500 ; N quotedblleft ; B 51 446 449 709 ; +C 171 ; WX 500 ; N guillemotleft ; B 50 71 450 428 ; +C 172 ; WX 331 ; N guilsinglleft ; B 66 71 265 428 ; +C 173 ; WX 331 ; N guilsinglright ; B 66 71 265 428 ; +C 174 ; WX 777 ; N fi ; B 18 -3 744 492 ; +C 175 ; WX 944 ; N fl ; B 18 -3 912 492 ; +C 177 ; WX 500 ; N endash ; B 0 219 500 277 ; +C 178 ; WX 500 ; N dagger ; B 34 -5 466 694 ; +C 179 ; WX 500 ; N daggerdbl ; B 34 -249 466 694 ; +C 180 ; WX 250 ; N periodcentered ; B 67 203 183 319 ; +C 182 ; WX 628 ; N paragraph ; B 39 -150 589 694 ; +C 183 ; WX 606 ; N bullet ; B 131 172 475 516 ; +C 184 ; WX 278 ; N quotesinglbase ; B 22 -153 210 110 ; +C 185 ; WX 500 ; N quotedblbase ; B 51 -153 449 110 ; +C 186 ; WX 500 ; N quotedblright ; B 51 446 449 709 ; +C 187 ; WX 500 ; N guillemotright ; B 50 71 450 428 ; +C 188 ; WX 1000 ; N ellipsis ; B 109 -5 891 111 ; +C 189 ; WX 1144 ; N perthousand ; B 123 -20 1021 709 ; +C 191 ; WX 444 ; N questiondown ; B 43 -231 395 469 ; +C 193 ; WX 333 ; N grave ; B 31 531 255 702 ; +C 194 ; WX 333 ; N acute ; B 78 531 302 702 ; +C 195 ; WX 333 ; N circumflex ; B 11 531 323 698 ; +C 196 ; WX 333 ; N tilde ; B 2 560 332 665 ; +C 197 ; WX 333 ; N macron ; B 11 563 323 616 ; +C 198 ; WX 333 ; N breve ; B 26 531 308 689 ; +C 199 ; WX 250 ; N dotaccent ; B 75 562 175 662 ; +C 200 ; WX 333 ; N dieresis ; B 17 562 316 662 ; +C 202 ; WX 333 ; N ring ; B 67 521 267 721 ; +C 203 ; WX 333 ; N cedilla ; B 96 -225 304 -10 ; +C 205 ; WX 380 ; N hungarumlaut ; B 3 531 377 712 ; +C 206 ; WX 313 ; N ogonek ; B 68 -165 245 -20 ; +C 207 ; WX 333 ; N caron ; B 11 531 323 698 ; +C 208 ; WX 1000 ; N emdash ; B 125 219 875 277 ; +C 225 ; WX 944 ; N AE ; B -10 -3 908 692 ; +C 227 ; WX 333 ; N ordfeminine ; B 24 422 310 709 ; +C 232 ; WX 611 ; N Lslash ; B 6 -3 586 692 ; +C 233 ; WX 833 ; N Oslash ; B 30 -20 797 709 ; +C 234 ; WX 998 ; N OE ; B 22 -20 962 709 ; +C 235 ; WX 333 ; N ordmasculine ; B 10 416 323 709 ; +C 241 ; WX 778 ; N ae ; B 8 0 736 488 ; +C 245 ; WX 333 ; N dotlessi ; B 30 -3 300 487 ; +C 248 ; WX 500 ; N lslash ; B 20 -3 468 487 ; +C 249 ; WX 611 ; N oslash ; B 32 -22 570 506 ; +C 250 ; WX 833 ; N oe ; B 42 -14 794 498 ; +C 251 ; WX 888 ; N germandbls ; B 44 -14 844 498 ; +C -1 ; WX 500 ; N ecircumflex ; B 23 -3 458 718 ; +C -1 ; WX 500 ; N edieresis ; B 23 -3 458 682 ; +C -1 ; WX 611 ; N aacute ; B 18 -3 592 722 ; +C -1 ; WX 747 ; N registered ; B 11 -18 736 706 ; +C -1 ; WX 333 ; N icircumflex ; B 23 -3 335 718 ; +C -1 ; WX 611 ; N udieresis ; B 20 -14 590 682 ; +C -1 ; WX 611 ; N ograve ; B 40 -14 570 722 ; +C -1 ; WX 611 ; N uacute ; B 20 -14 590 722 ; +C -1 ; WX 611 ; N ucircumflex ; B 20 -14 590 718 ; +C -1 ; WX 778 ; N Aacute ; B 15 -3 756 909 ; +C -1 ; WX 333 ; N igrave ; B 30 -3 300 722 ; +C -1 ; WX 337 ; N Icircumflex ; B 13 -3 325 905 ; +C -1 ; WX 556 ; N ccedilla ; B 44 -225 528 498 ; +C -1 ; WX 611 ; N adieresis ; B 18 -3 592 682 ; +C -1 ; WX 611 ; N Ecircumflex ; B 22 -3 572 905 ; +C -1 ; WX 444 ; N scaron ; B 44 -14 400 706 ; +C -1 ; WX 500 ; N thorn ; B 24 -3 468 487 ; +C -1 ; WX 979 ; N trademark ; B 40 285 939 689 ; +C -1 ; WX 500 ; N egrave ; B 23 -3 458 722 ; +C -1 ; WX 300 ; N threesuperior ; B 1 266 299 689 ; +C -1 ; WX 500 ; N zcaron ; B 20 -3 477 706 ; +C -1 ; WX 611 ; N atilde ; B 18 -3 592 677 ; +C -1 ; WX 611 ; N aring ; B 18 -3 592 741 ; +C -1 ; WX 611 ; N ocircumflex ; B 40 -14 570 718 ; +C -1 ; WX 611 ; N Edieresis ; B 22 -3 572 869 ; +C -1 ; WX 750 ; N threequarters ; B 15 -3 735 689 ; +C -1 ; WX 500 ; N ydieresis ; B 14 -3 480 682 ; +C -1 ; WX 500 ; N yacute ; B 14 -3 480 722 ; +C -1 ; WX 333 ; N iacute ; B 30 -3 314 722 ; +C -1 ; WX 778 ; N Acircumflex ; B 15 -3 756 905 ; +C -1 ; WX 778 ; N Uacute ; B 12 -20 759 909 ; +C -1 ; WX 500 ; N eacute ; B 23 -3 458 722 ; +C -1 ; WX 786 ; N Ograve ; B 22 -20 764 909 ; +C -1 ; WX 611 ; N agrave ; B 18 -3 592 722 ; +C -1 ; WX 778 ; N Udieresis ; B 12 -20 759 869 ; +C -1 ; WX 611 ; N acircumflex ; B 18 -3 592 718 ; +C -1 ; WX 337 ; N Igrave ; B 22 -3 315 909 ; +C -1 ; WX 300 ; N twosuperior ; B 0 273 301 689 ; +C -1 ; WX 778 ; N Ugrave ; B 12 -20 759 909 ; +C -1 ; WX 750 ; N onequarter ; B 30 -3 727 692 ; +C -1 ; WX 778 ; N Ucircumflex ; B 12 -20 759 905 ; +C -1 ; WX 525 ; N Scaron ; B 24 -20 503 905 ; +C -1 ; WX 337 ; N Idieresis ; B 19 -3 318 869 ; +C -1 ; WX 333 ; N idieresis ; B 29 -3 328 682 ; +C -1 ; WX 611 ; N Egrave ; B 22 -3 572 909 ; +C -1 ; WX 786 ; N Oacute ; B 22 -20 764 909 ; +C -1 ; WX 606 ; N divide ; B 51 10 555 512 ; +C -1 ; WX 778 ; N Atilde ; B 15 -3 756 872 ; +C -1 ; WX 778 ; N Aring ; B 15 -3 756 928 ; +C -1 ; WX 786 ; N Odieresis ; B 22 -20 764 869 ; +C -1 ; WX 778 ; N Adieresis ; B 15 -3 756 869 ; +C -1 ; WX 831 ; N Ntilde ; B 17 -20 813 872 ; +C -1 ; WX 667 ; N Zcaron ; B 15 -3 638 905 ; +C -1 ; WX 604 ; N Thorn ; B 32 -3 574 692 ; +C -1 ; WX 337 ; N Iacute ; B 22 -3 315 909 ; +C -1 ; WX 606 ; N plusminus ; B 51 0 555 512 ; +C -1 ; WX 606 ; N multiply ; B 83 36 523 474 ; +C -1 ; WX 611 ; N Eacute ; B 22 -3 572 909 ; +C -1 ; WX 667 ; N Ydieresis ; B 9 -3 654 869 ; +C -1 ; WX 300 ; N onesuperior ; B 31 273 269 692 ; +C -1 ; WX 611 ; N ugrave ; B 20 -14 590 722 ; +C -1 ; WX 606 ; N logicalnot ; B 51 120 551 386 ; +C -1 ; WX 667 ; N ntilde ; B 24 -14 644 677 ; +C -1 ; WX 786 ; N Otilde ; B 22 -20 764 884 ; +C -1 ; WX 611 ; N otilde ; B 40 -14 570 677 ; +C -1 ; WX 709 ; N Ccedilla ; B 22 -225 670 709 ; +C -1 ; WX 778 ; N Agrave ; B 15 -3 756 909 ; +C -1 ; WX 750 ; N onehalf ; B 15 -3 735 692 ; +C -1 ; WX 774 ; N Eth ; B 14 -3 751 692 ; +C -1 ; WX 400 ; N degree ; B 50 389 350 689 ; +C -1 ; WX 667 ; N Yacute ; B 9 -3 654 909 ; +C -1 ; WX 786 ; N Ocircumflex ; B 22 -20 764 905 ; +C -1 ; WX 611 ; N oacute ; B 40 -14 570 722 ; +C -1 ; WX 603 ; N mu ; B 18 -236 581 469 ; +C -1 ; WX 606 ; N minus ; B 51 233 555 289 ; +C -1 ; WX 611 ; N eth ; B 36 -2 566 486 ; +C -1 ; WX 611 ; N odieresis ; B 40 -14 570 682 ; +C -1 ; WX 747 ; N copyright ; B 11 -18 736 706 ; +C -1 ; WX 606 ; N brokenbar ; B 275 0 331 726 ; +EndCharMetrics +StartKernData +StartKernPairs 164 + +KPX A y -74 +KPX A w -74 +KPX A v -92 +KPX A u -55 +KPX A t -55 +KPX A quoteright -74 +KPX A q -55 +KPX A o -55 +KPX A g -37 +KPX A c -55 +KPX A Y -111 +KPX A W -74 +KPX A V -111 +KPX A U -37 +KPX A T -74 + +KPX B a -37 + +KPX D a -55 + +KPX F period -92 +KPX F comma -92 +KPX F a -74 +KPX F A -74 + +KPX L y -55 +KPX L quoteright -74 +KPX L Y -92 +KPX L W -74 +KPX L V -92 +KPX L T -74 + +KPX O a -55 + +KPX P period -129 +KPX P o -37 +KPX P comma -129 +KPX P a -92 +KPX P A -92 + +KPX R y -37 +KPX R Y -37 +KPX R W -37 +KPX R V -55 +KPX R T -37 + +KPX T y -74 +KPX T w -74 +KPX T u -74 +KPX T semicolon -55 +KPX T r -74 +KPX T period -74 +KPX T o -92 +KPX T i -55 +KPX T hyphen -55 +KPX T h -55 +KPX T e -55 +KPX T comma -74 +KPX T colon -55 +KPX T a -92 +KPX T O -18 +KPX T A -74 + +KPX U a -55 +KPX U A -55 + +KPX V u -74 +KPX V semicolon -55 +KPX V period -129 +KPX V o -111 +KPX V i -55 +KPX V hyphen -74 +KPX V g -55 +KPX V e -111 +KPX V comma -129 +KPX V colon -55 +KPX V a -129 +KPX V A -129 + +KPX W y -50 +KPX W u -50 +KPX W semicolon -18 +KPX W period -92 +KPX W o -92 +KPX W i -55 +KPX W hyphen -55 +KPX W h -55 +KPX W e -92 +KPX W comma -92 +KPX W colon -18 +KPX W a -111 +KPX W A -111 + +KPX Y u -90 +KPX Y semicolon -74 +KPX Y s -37 +KPX Y period -111 +KPX Y o -92 +KPX Y i -55 +KPX Y hyphen -92 +KPX Y e -92 +KPX Y comma -111 +KPX Y colon -74 +KPX Y c -111 +KPX Y a -92 +KPX Y A -92 + +KPX a y -55 +KPX a w -55 +KPX a v -74 +KPX a u -55 +KPX a t -37 +KPX a quoteright -37 +KPX a quotedblright -18 +KPX a o -18 +KPX a g -18 +KPX a c -18 + +KPX d y -18 +KPX d w -18 +KPX d u -18 +KPX d period -37 +KPX d comma -37 +KPX d a -18 + +KPX f period -55 +KPX f comma -55 +KPX f a -37 + +KPX j period -37 +KPX j comma -37 +KPX j a -37 + +KPX l y -55 +KPX l w -55 +KPX l v -55 +KPX l t -37 +KPX l quoteright -55 + +KPX n period -18 +KPX n comma -18 +KPX n a -37 + +KPX o y -18 +KPX o x -18 +KPX o v -37 +KPX o period -18 +KPX o comma -18 +KPX o a -55 + +KPX p period -74 +KPX p comma -74 +KPX p a -55 + +KPX quotedblleft a -18 + +KPX quoteleft quoteleft -37 +KPX quoteleft a -37 + +KPX quoteright quoteright -37 + +KPX r v -18 +KPX r u -8 +KPX r q -18 +KPX r o -18 +KPX r hyphen -18 +KPX r c -18 + +KPX s a -18 + +KPX space Y -18 +KPX space A -37 + +KPX t period -55 +KPX t comma -55 +KPX t a -37 + +KPX u period -37 +KPX u comma -37 +KPX u a -55 + +KPX v period -111 +KPX v comma -111 +KPX v a -92 + +KPX w period -92 +KPX w comma -92 +KPX w a -74 + +KPX x c -18 + +KPX y period -111 +KPX y o -18 +KPX y comma -111 +KPX y c -18 +KPX y a -55 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 229 207 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 223 207 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 223 207 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 215 207 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 223 207 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 223 207 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 139 207 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 139 207 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 139 207 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 139 207 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 2 207 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 2 207 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 2 207 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 2 207 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 249 207 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 227 207 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 227 207 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 227 207 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 227 207 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 227 219 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 96 207 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 255 207 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 247 207 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 223 207 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 223 207 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 203 207 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 191 207 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 179 207 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 139 20 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 127 20 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 127 20 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 115 20 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 127 20 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 127 12 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 108 20 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 96 20 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 84 20 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 84 20 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 12 20 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 12 20 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 12 20 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 12 20 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 155 12 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 139 20 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 139 20 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 139 20 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 127 20 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 139 12 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 56 8 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 163 20 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 139 20 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 139 20 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 115 20 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 116 20 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 84 20 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 84 8 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-SC+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-SC+ new file mode 100755 index 0000000000000..d30e094fb6491 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Pa-SC+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 709 ; N Ccaron ; B 22 -20 670 922 ; +C -1 ; WX 556 ; N ccaron ; B 44 -14 528 698 ; +C -1 ; WX 774 ; N Dcaron ; B 22 -3 751 922 ; +C -1 ; WX 743 ; N dcaron ; B 36 -2 773 535 ; +C -1 ; WX 611 ; N Ecaron ; B 22 -3 572 922 ; +C -1 ; WX 500 ; N ecaron ; B 23 -3 458 698 ; +C -1 ; WX 611 ; N Lcaron ; B 22 -3 586 761 ; +C -1 ; WX 611 ; N Lacute ; B 22 -3 586 926 ; +C -1 ; WX 632 ; N lcaron ; B 20 -3 675 536 ; +C -1 ; WX 500 ; N lacute ; B 20 -3 468 926 ; +C -1 ; WX 831 ; N Ncaron ; B 17 -20 813 922 ; +C -1 ; WX 667 ; N ncaron ; B 24 -14 644 698 ; +C -1 ; WX 668 ; N Rcaron ; B 22 -3 669 922 ; +C -1 ; WX 668 ; N Racute ; B 22 -3 669 926 ; +C -1 ; WX 556 ; N rcaron ; B 24 -3 552 698 ; +C -1 ; WX 556 ; N racute ; B 24 -3 552 702 ; +C -1 ; WX 613 ; N Tcaron ; B 18 -3 595 922 ; +C -1 ; WX 632 ; N tcaron ; B 18 -3 681 709 ; +C -1 ; WX 778 ; N Uring ; B 12 -20 759 922 ; +C -1 ; WX 611 ; N uring ; B 20 -14 590 721 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 253 224 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 135 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 220 224 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 540 -174 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 139 224 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 83 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 289 52 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 139 224 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 442 -173 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 105 224 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 249 224 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 167 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 167 224 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 210 224 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 111 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 133 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 140 224 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 448 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 222 201 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 139 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Symbol b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Symbol new file mode 100755 index 0000000000000..1cdbdae695f0a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Symbol @@ -0,0 +1,209 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All rights reserved. +Comment Creation Date: Wed Jan 17 21:48:26 1990 +Comment UniqueID 27004 +Comment VMusage 28489 37622 +FontName Symbol +FullName Symbol +FamilyName Symbol +Weight Medium +ItalicAngle 0 +IsFixedPitch false +FontBBox -180 -293 1090 1010 +UnderlinePosition -98 +UnderlineThickness 54 +Version 001.007 +Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All rights reserved. +EncodingScheme FontSpecific +StartCharMetrics 189 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 128 -17 240 672 ; +C 34 ; WX 713 ; N universal ; B 31 0 681 705 ; +C 35 ; WX 500 ; N numbersign ; B 20 -16 481 673 ; +C 36 ; WX 549 ; N existential ; B 25 0 478 707 ; +C 37 ; WX 833 ; N percent ; B 63 -36 771 655 ; +C 38 ; WX 778 ; N ampersand ; B 41 -18 750 661 ; +C 39 ; WX 439 ; N suchthat ; B 48 -17 414 500 ; +C 40 ; WX 333 ; N parenleft ; B 53 -191 300 673 ; +C 41 ; WX 333 ; N parenright ; B 30 -191 277 673 ; +C 42 ; WX 500 ; N asteriskmath ; B 65 134 427 551 ; +C 43 ; WX 549 ; N plus ; B 10 0 539 533 ; +C 44 ; WX 250 ; N comma ; B 56 -152 194 104 ; +C 45 ; WX 549 ; N minus ; B 11 233 535 288 ; +C 46 ; WX 250 ; N period ; B 69 -17 181 95 ; +C 47 ; WX 278 ; N slash ; B 0 -18 254 646 ; +C 48 ; WX 500 ; N zero ; B 23 -17 471 685 ; +C 49 ; WX 500 ; N one ; B 117 0 390 673 ; +C 50 ; WX 500 ; N two ; B 25 0 475 686 ; +C 51 ; WX 500 ; N three ; B 39 -17 435 685 ; +C 52 ; WX 500 ; N four ; B 16 0 469 685 ; +C 53 ; WX 500 ; N five ; B 29 -17 443 685 ; +C 54 ; WX 500 ; N six ; B 36 -17 467 685 ; +C 55 ; WX 500 ; N seven ; B 24 -16 448 673 ; +C 56 ; WX 500 ; N eight ; B 54 -18 440 685 ; +C 57 ; WX 500 ; N nine ; B 31 -18 460 685 ; +C 58 ; WX 278 ; N colon ; B 81 -17 193 460 ; +C 59 ; WX 278 ; N semicolon ; B 83 -152 221 460 ; +C 60 ; WX 549 ; N less ; B 26 0 523 522 ; +C 61 ; WX 549 ; N equal ; B 11 141 537 390 ; +C 62 ; WX 549 ; N greater ; B 26 0 523 522 ; +C 63 ; WX 444 ; N question ; B 70 -17 412 686 ; +C 64 ; WX 549 ; N congruent ; B 11 0 537 475 ; +C 65 ; WX 722 ; N Alpha ; B 4 0 684 673 ; +C 66 ; WX 667 ; N Beta ; B 29 0 592 673 ; +C 67 ; WX 722 ; N Chi ; B -9 0 704 673 ; +C 68 ; WX 612 ; N Delta ; B 6 0 608 688 ; +C 69 ; WX 611 ; N Epsilon ; B 32 0 617 673 ; +C 70 ; WX 763 ; N Phi ; B 26 0 741 673 ; +C 71 ; WX 603 ; N Gamma ; B 24 0 609 673 ; +C 72 ; WX 722 ; N Eta ; B 39 0 729 673 ; +C 73 ; WX 333 ; N Iota ; B 32 0 316 673 ; +C 74 ; WX 631 ; N theta1 ; B 18 -18 623 689 ; +C 75 ; WX 722 ; N Kappa ; B 35 0 722 673 ; +C 76 ; WX 686 ; N Lambda ; B 6 0 680 688 ; +C 77 ; WX 889 ; N Mu ; B 28 0 887 673 ; +C 78 ; WX 722 ; N Nu ; B 29 -8 720 673 ; +C 79 ; WX 722 ; N Omicron ; B 41 -17 715 685 ; +C 80 ; WX 768 ; N Pi ; B 25 0 745 673 ; +C 81 ; WX 741 ; N Theta ; B 41 -17 715 685 ; +C 82 ; WX 556 ; N Rho ; B 28 0 563 673 ; +C 83 ; WX 592 ; N Sigma ; B 5 0 589 673 ; +C 84 ; WX 611 ; N Tau ; B 33 0 607 673 ; +C 85 ; WX 690 ; N Upsilon ; B -8 0 694 673 ; +C 86 ; WX 439 ; N sigma1 ; B 40 -233 436 500 ; +C 87 ; WX 768 ; N Omega ; B 34 0 736 688 ; +C 88 ; WX 645 ; N Xi ; B 40 0 599 673 ; +C 89 ; WX 795 ; N Psi ; B 15 0 781 684 ; +C 90 ; WX 611 ; N Zeta ; B 44 0 636 673 ; +C 91 ; WX 333 ; N bracketleft ; B 86 -155 299 674 ; +C 92 ; WX 863 ; N therefore ; B 163 0 701 478 ; +C 93 ; WX 333 ; N bracketright ; B 33 -155 246 674 ; +C 94 ; WX 658 ; N perpendicular ; B 15 0 652 674 ; +C 95 ; WX 500 ; N underscore ; B -2 -252 502 -206 ; +C 96 ; WX 500 ; N radicalex ; B 480 881 1090 917 ; +C 97 ; WX 631 ; N alpha ; B 41 -18 622 500 ; +C 98 ; WX 549 ; N beta ; B 61 -223 515 741 ; +C 99 ; WX 549 ; N chi ; B 12 -231 522 499 ; +C 100 ; WX 494 ; N delta ; B 40 -19 481 740 ; +C 101 ; WX 439 ; N epsilon ; B 22 -19 427 502 ; +C 102 ; WX 521 ; N phi ; B 27 -224 490 671 ; +C 103 ; WX 411 ; N gamma ; B 5 -225 484 499 ; +C 104 ; WX 603 ; N eta ; B 0 -202 527 514 ; +C 105 ; WX 329 ; N iota ; B 0 -17 301 503 ; +C 106 ; WX 603 ; N phi1 ; B 36 -224 587 499 ; +C 107 ; WX 549 ; N kappa ; B 33 0 558 501 ; +C 108 ; WX 549 ; N lambda ; B 24 -17 548 739 ; +C 109 ; WX 576 ; N mu ; B 33 -223 567 500 ; +C 110 ; WX 521 ; N nu ; B -9 -16 475 507 ; +C 111 ; WX 549 ; N omicron ; B 35 -19 501 499 ; +C 112 ; WX 549 ; N pi ; B 10 -19 530 487 ; +C 113 ; WX 521 ; N theta ; B 43 -17 485 690 ; +C 114 ; WX 549 ; N rho ; B 50 -230 490 499 ; +C 115 ; WX 603 ; N sigma ; B 30 -21 588 500 ; +C 116 ; WX 439 ; N tau ; B 10 -19 418 500 ; +C 117 ; WX 576 ; N upsilon ; B 7 -18 535 507 ; +C 118 ; WX 713 ; N omega1 ; B 12 -18 671 583 ; +C 119 ; WX 686 ; N omega ; B 42 -17 684 500 ; +C 120 ; WX 493 ; N xi ; B 27 -224 469 766 ; +C 121 ; WX 686 ; N psi ; B 12 -228 701 500 ; +C 122 ; WX 494 ; N zeta ; B 60 -225 467 756 ; +C 123 ; WX 480 ; N braceleft ; B 58 -183 397 673 ; +C 124 ; WX 200 ; N bar ; B 65 -177 135 673 ; +C 125 ; WX 480 ; N braceright ; B 79 -183 418 673 ; +C 126 ; WX 549 ; N similar ; B 17 203 529 307 ; +C 161 ; WX 620 ; N Upsilon1 ; B -2 0 610 685 ; +C 162 ; WX 247 ; N minute ; B 27 459 228 735 ; +C 163 ; WX 549 ; N lessequal ; B 29 0 526 639 ; +C 164 ; WX 167 ; N fraction ; B -180 -12 340 677 ; +C 165 ; WX 713 ; N infinity ; B 26 124 688 404 ; +C 166 ; WX 500 ; N florin ; B 2 -193 494 686 ; +C 167 ; WX 753 ; N club ; B 86 -26 660 533 ; +C 168 ; WX 753 ; N diamond ; B 142 -36 600 550 ; +C 169 ; WX 753 ; N heart ; B 117 -33 631 532 ; +C 170 ; WX 753 ; N spade ; B 113 -36 629 548 ; +C 171 ; WX 1042 ; N arrowboth ; B 24 -15 1024 511 ; +C 172 ; WX 987 ; N arrowleft ; B 32 -15 942 511 ; +C 173 ; WX 603 ; N arrowup ; B 45 0 571 910 ; +C 174 ; WX 987 ; N arrowright ; B 49 -15 959 511 ; +C 175 ; WX 603 ; N arrowdown ; B 45 -22 571 888 ; +C 176 ; WX 400 ; N degree ; B 50 385 350 685 ; +C 177 ; WX 549 ; N plusminus ; B 10 0 539 645 ; +C 178 ; WX 411 ; N second ; B 20 459 413 737 ; +C 179 ; WX 549 ; N greaterequal ; B 29 0 526 639 ; +C 180 ; WX 549 ; N multiply ; B 17 8 533 524 ; +C 181 ; WX 713 ; N proportional ; B 27 123 639 404 ; +C 182 ; WX 494 ; N partialdiff ; B 26 -20 462 746 ; +C 183 ; WX 460 ; N bullet ; B 50 113 410 473 ; +C 184 ; WX 549 ; N divide ; B 10 71 536 456 ; +C 185 ; WX 549 ; N notequal ; B 15 -25 540 549 ; +C 186 ; WX 549 ; N equivalence ; B 14 82 538 443 ; +C 187 ; WX 549 ; N approxequal ; B 14 135 527 394 ; +C 188 ; WX 1000 ; N ellipsis ; B 111 -17 889 95 ; +C 189 ; WX 603 ; N arrowvertex ; B 280 -120 336 1010 ; +C 190 ; WX 1000 ; N arrowhorizex ; B -60 220 1050 276 ; +C 191 ; WX 658 ; N carriagereturn ; B 15 -16 602 629 ; +C 192 ; WX 823 ; N aleph ; B 175 -18 661 658 ; +C 193 ; WX 686 ; N Ifraktur ; B 10 -53 578 740 ; +C 194 ; WX 795 ; N Rfraktur ; B 26 -15 759 734 ; +C 195 ; WX 987 ; N weierstrass ; B 159 -211 870 573 ; +C 196 ; WX 768 ; N circlemultiply ; B 43 -17 733 673 ; +C 197 ; WX 768 ; N circleplus ; B 43 -15 733 675 ; +C 198 ; WX 823 ; N emptyset ; B 39 -24 781 719 ; +C 199 ; WX 768 ; N intersection ; B 40 0 732 509 ; +C 200 ; WX 768 ; N union ; B 40 -17 732 492 ; +C 201 ; WX 713 ; N propersuperset ; B 20 0 673 470 ; +C 202 ; WX 713 ; N reflexsuperset ; B 20 -125 673 470 ; +C 203 ; WX 713 ; N notsubset ; B 36 -70 690 540 ; +C 204 ; WX 713 ; N propersubset ; B 37 0 690 470 ; +C 205 ; WX 713 ; N reflexsubset ; B 37 -125 690 470 ; +C 206 ; WX 713 ; N element ; B 45 0 505 468 ; +C 207 ; WX 713 ; N notelement ; B 45 -58 505 555 ; +C 208 ; WX 768 ; N angle ; B 26 0 738 673 ; +C 209 ; WX 713 ; N gradient ; B 36 -19 681 718 ; +C 210 ; WX 790 ; N registerserif ; B 50 -17 740 673 ; +C 211 ; WX 790 ; N copyrightserif ; B 51 -15 741 675 ; +C 212 ; WX 890 ; N trademarkserif ; B 18 293 855 673 ; +C 213 ; WX 823 ; N product ; B 25 -101 803 751 ; +C 214 ; WX 549 ; N radical ; B 10 -38 515 917 ; +C 215 ; WX 250 ; N dotmath ; B 69 210 169 310 ; +C 216 ; WX 713 ; N logicalnot ; B 15 0 680 288 ; +C 217 ; WX 603 ; N logicaland ; B 23 0 583 454 ; +C 218 ; WX 603 ; N logicalor ; B 30 0 578 477 ; +C 219 ; WX 1042 ; N arrowdblboth ; B 27 -20 1023 510 ; +C 220 ; WX 987 ; N arrowdblleft ; B 30 -15 939 513 ; +C 221 ; WX 603 ; N arrowdblup ; B 39 2 567 911 ; +C 222 ; WX 987 ; N arrowdblright ; B 45 -20 954 508 ; +C 223 ; WX 603 ; N arrowdbldown ; B 44 -19 572 890 ; +C 224 ; WX 494 ; N lozenge ; B 18 0 466 745 ; +C 225 ; WX 329 ; N angleleft ; B 25 -198 306 746 ; +C 226 ; WX 790 ; N registersans ; B 50 -20 740 670 ; +C 227 ; WX 790 ; N copyrightsans ; B 49 -15 739 675 ; +C 228 ; WX 786 ; N trademarksans ; B 5 293 725 673 ; +C 229 ; WX 713 ; N summation ; B 14 -108 695 752 ; +C 230 ; WX 384 ; N parenlefttp ; B 40 -293 436 926 ; +C 231 ; WX 384 ; N parenleftex ; B 40 -85 92 925 ; +C 232 ; WX 384 ; N parenleftbt ; B 40 -293 436 926 ; +C 233 ; WX 384 ; N bracketlefttp ; B 0 -80 341 926 ; +C 234 ; WX 384 ; N bracketleftex ; B 0 -79 55 925 ; +C 235 ; WX 384 ; N bracketleftbt ; B 0 -80 340 926 ; +C 236 ; WX 494 ; N bracelefttp ; B 201 -75 439 926 ; +C 237 ; WX 494 ; N braceleftmid ; B 14 -85 255 935 ; +C 238 ; WX 494 ; N braceleftbt ; B 201 -70 439 926 ; +C 239 ; WX 494 ; N braceex ; B 201 -80 255 935 ; +C 241 ; WX 329 ; N angleright ; B 21 -198 302 746 ; +C 242 ; WX 274 ; N integral ; B 2 -107 291 916 ; +C 243 ; WX 686 ; N integraltp ; B 332 -83 715 921 ; +C 244 ; WX 686 ; N integralex ; B 332 -88 415 975 ; +C 245 ; WX 686 ; N integralbt ; B 39 -81 415 921 ; +C 246 ; WX 384 ; N parenrighttp ; B 54 -293 450 926 ; +C 247 ; WX 384 ; N parenrightex ; B 398 -85 450 925 ; +C 248 ; WX 384 ; N parenrightbt ; B 54 -293 450 926 ; +C 249 ; WX 384 ; N bracketrighttp ; B 22 -80 360 926 ; +C 250 ; WX 384 ; N bracketrightex ; B 305 -79 360 925 ; +C 251 ; WX 384 ; N bracketrightbt ; B 20 -80 360 926 ; +C 252 ; WX 494 ; N bracerighttp ; B 17 -75 255 926 ; +C 253 ; WX 494 ; N bracerightmid ; B 201 -85 442 935 ; +C 254 ; WX 494 ; N bracerightbt ; B 17 -70 255 926 ; +C -1 ; WX 790 ; N apple ; B 56 -3 733 808 ; +EndCharMetrics +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-Bd b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-Bd new file mode 100755 index 0000000000000..55207f94d1e10 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-Bd @@ -0,0 +1,648 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Tue Mar 20 12:17:14 1990 +Comment UniqueID 28417 +Comment VMusage 30458 37350 +FontName Times-Bold +FullName Times Bold +FamilyName Times +Weight Bold +ItalicAngle 0 +IsFixedPitch false +FontBBox -168 -218 1000 935 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.007 +Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 676 +XHeight 461 +Ascender 676 +Descender -205 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 81 -13 251 691 ; +C 34 ; WX 555 ; N quotedbl ; B 83 404 472 691 ; +C 35 ; WX 500 ; N numbersign ; B 4 0 496 700 ; +C 36 ; WX 500 ; N dollar ; B 29 -99 472 750 ; +C 37 ; WX 1000 ; N percent ; B 124 -14 877 692 ; +C 38 ; WX 833 ; N ampersand ; B 62 -16 787 691 ; +C 39 ; WX 333 ; N quoteright ; B 79 356 263 691 ; +C 40 ; WX 333 ; N parenleft ; B 46 -168 306 694 ; +C 41 ; WX 333 ; N parenright ; B 27 -168 287 694 ; +C 42 ; WX 500 ; N asterisk ; B 56 255 447 691 ; +C 43 ; WX 570 ; N plus ; B 33 0 537 506 ; +C 44 ; WX 250 ; N comma ; B 39 -180 223 155 ; +C 45 ; WX 333 ; N hyphen ; B 44 171 287 287 ; +C 46 ; WX 250 ; N period ; B 41 -13 210 156 ; +C 47 ; WX 278 ; N slash ; B -24 -19 302 691 ; +C 48 ; WX 500 ; N zero ; B 24 -13 476 688 ; +C 49 ; WX 500 ; N one ; B 65 0 442 688 ; +C 50 ; WX 500 ; N two ; B 17 0 478 688 ; +C 51 ; WX 500 ; N three ; B 16 -14 468 688 ; +C 52 ; WX 500 ; N four ; B 19 0 475 688 ; +C 53 ; WX 500 ; N five ; B 22 -8 470 676 ; +C 54 ; WX 500 ; N six ; B 28 -13 475 688 ; +C 55 ; WX 500 ; N seven ; B 17 0 477 676 ; +C 56 ; WX 500 ; N eight ; B 28 -13 472 688 ; +C 57 ; WX 500 ; N nine ; B 26 -13 473 688 ; +C 58 ; WX 333 ; N colon ; B 82 -13 251 472 ; +C 59 ; WX 333 ; N semicolon ; B 82 -180 266 472 ; +C 60 ; WX 570 ; N less ; B 31 -8 539 514 ; +C 61 ; WX 570 ; N equal ; B 33 107 537 399 ; +C 62 ; WX 570 ; N greater ; B 31 -8 539 514 ; +C 63 ; WX 500 ; N question ; B 57 -13 445 689 ; +C 64 ; WX 930 ; N at ; B 108 -19 822 691 ; +C 65 ; WX 722 ; N A ; B 9 0 689 690 ; +C 66 ; WX 667 ; N B ; B 16 0 619 676 ; +C 67 ; WX 722 ; N C ; B 49 -19 687 691 ; +C 68 ; WX 722 ; N D ; B 14 0 690 676 ; +C 69 ; WX 667 ; N E ; B 16 0 641 676 ; +C 70 ; WX 611 ; N F ; B 16 0 583 676 ; +C 71 ; WX 778 ; N G ; B 37 -19 755 691 ; +C 72 ; WX 778 ; N H ; B 21 0 759 676 ; +C 73 ; WX 389 ; N I ; B 20 0 370 676 ; +C 74 ; WX 500 ; N J ; B 3 -96 479 676 ; +C 75 ; WX 778 ; N K ; B 30 0 769 676 ; +C 76 ; WX 667 ; N L ; B 19 0 638 676 ; +C 77 ; WX 944 ; N M ; B 14 0 921 676 ; +C 78 ; WX 722 ; N N ; B 16 -18 701 676 ; +C 79 ; WX 778 ; N O ; B 35 -19 743 691 ; +C 80 ; WX 611 ; N P ; B 16 0 600 676 ; +C 81 ; WX 778 ; N Q ; B 35 -176 743 691 ; +C 82 ; WX 722 ; N R ; B 26 0 715 676 ; +C 83 ; WX 556 ; N S ; B 35 -19 513 692 ; +C 84 ; WX 667 ; N T ; B 31 0 636 676 ; +C 85 ; WX 722 ; N U ; B 16 -19 701 676 ; +C 86 ; WX 722 ; N V ; B 16 -18 701 676 ; +C 87 ; WX 1000 ; N W ; B 19 -15 981 676 ; +C 88 ; WX 722 ; N X ; B 16 0 699 676 ; +C 89 ; WX 722 ; N Y ; B 15 0 699 676 ; +C 90 ; WX 667 ; N Z ; B 28 0 634 676 ; +C 91 ; WX 333 ; N bracketleft ; B 67 -149 301 678 ; +C 92 ; WX 278 ; N backslash ; B -25 -19 303 691 ; +C 93 ; WX 333 ; N bracketright ; B 32 -149 266 678 ; +C 94 ; WX 581 ; N asciicircum ; B 73 311 509 676 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 333 ; N quoteleft ; B 70 356 254 691 ; +C 97 ; WX 500 ; N a ; B 25 -14 488 473 ; +C 98 ; WX 556 ; N b ; B 17 -14 521 676 ; +C 99 ; WX 444 ; N c ; B 25 -14 430 473 ; +C 100 ; WX 556 ; N d ; B 25 -14 534 676 ; +C 101 ; WX 444 ; N e ; B 25 -14 426 473 ; +C 102 ; WX 333 ; N f ; B 14 0 389 691 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B 28 -206 483 473 ; +C 104 ; WX 556 ; N h ; B 16 0 534 676 ; +C 105 ; WX 278 ; N i ; B 16 0 255 691 ; +C 106 ; WX 333 ; N j ; B -57 -203 263 691 ; +C 107 ; WX 556 ; N k ; B 22 0 543 676 ; +C 108 ; WX 278 ; N l ; B 16 0 255 676 ; +C 109 ; WX 833 ; N m ; B 16 0 814 473 ; +C 110 ; WX 556 ; N n ; B 21 0 539 473 ; +C 111 ; WX 500 ; N o ; B 25 -14 476 473 ; +C 112 ; WX 556 ; N p ; B 19 -205 524 473 ; +C 113 ; WX 556 ; N q ; B 34 -205 536 473 ; +C 114 ; WX 444 ; N r ; B 29 0 434 473 ; +C 115 ; WX 389 ; N s ; B 25 -14 361 473 ; +C 116 ; WX 333 ; N t ; B 20 -12 332 630 ; +C 117 ; WX 556 ; N u ; B 16 -14 537 461 ; +C 118 ; WX 500 ; N v ; B 21 -14 485 461 ; +C 119 ; WX 722 ; N w ; B 23 -14 707 461 ; +C 120 ; WX 500 ; N x ; B 12 0 484 461 ; +C 121 ; WX 500 ; N y ; B 16 -205 480 461 ; +C 122 ; WX 444 ; N z ; B 21 0 420 461 ; +C 123 ; WX 394 ; N braceleft ; B 22 -175 340 698 ; +C 124 ; WX 220 ; N bar ; B 66 -19 154 691 ; +C 125 ; WX 394 ; N braceright ; B 54 -175 372 698 ; +C 126 ; WX 520 ; N asciitilde ; B 29 173 491 333 ; +C 161 ; WX 333 ; N exclamdown ; B 82 -203 252 501 ; +C 162 ; WX 500 ; N cent ; B 53 -140 458 588 ; +C 163 ; WX 500 ; N sterling ; B 21 -14 477 684 ; +C 164 ; WX 167 ; N fraction ; B -168 -12 329 688 ; +C 165 ; WX 500 ; N yen ; B -64 0 547 676 ; +C 166 ; WX 500 ; N florin ; B 0 -155 498 706 ; +C 167 ; WX 500 ; N section ; B 57 -132 443 691 ; +C 168 ; WX 500 ; N currency ; B -26 61 526 613 ; +C 169 ; WX 278 ; N quotesingle ; B 75 404 204 691 ; +C 170 ; WX 500 ; N quotedblleft ; B 32 356 486 691 ; +C 171 ; WX 500 ; N guillemotleft ; B 23 36 473 415 ; +C 172 ; WX 333 ; N guilsinglleft ; B 51 36 305 415 ; +C 173 ; WX 333 ; N guilsinglright ; B 28 36 282 415 ; +C 174 ; WX 556 ; N fi ; B 14 0 536 691 ; +C 175 ; WX 556 ; N fl ; B 14 0 536 691 ; +C 177 ; WX 500 ; N endash ; B 0 181 500 271 ; +C 178 ; WX 500 ; N dagger ; B 47 -134 453 691 ; +C 179 ; WX 500 ; N daggerdbl ; B 45 -132 456 691 ; +C 180 ; WX 250 ; N periodcentered ; B 41 248 210 417 ; +C 182 ; WX 540 ; N paragraph ; B 0 -186 519 676 ; +C 183 ; WX 350 ; N bullet ; B 35 198 315 478 ; +C 184 ; WX 333 ; N quotesinglbase ; B 79 -180 263 155 ; +C 185 ; WX 500 ; N quotedblbase ; B 14 -180 468 155 ; +C 186 ; WX 500 ; N quotedblright ; B 14 356 468 691 ; +C 187 ; WX 500 ; N guillemotright ; B 27 36 477 415 ; +C 188 ; WX 1000 ; N ellipsis ; B 82 -13 917 156 ; +C 189 ; WX 1000 ; N perthousand ; B 7 -29 995 706 ; +C 191 ; WX 500 ; N questiondown ; B 55 -201 443 501 ; +C 193 ; WX 333 ; N grave ; B 8 528 246 713 ; +C 194 ; WX 333 ; N acute ; B 86 528 324 713 ; +C 195 ; WX 333 ; N circumflex ; B -2 528 335 704 ; +C 196 ; WX 333 ; N tilde ; B -16 547 349 674 ; +C 197 ; WX 333 ; N macron ; B 1 565 331 637 ; +C 198 ; WX 333 ; N breve ; B 15 528 318 691 ; +C 199 ; WX 333 ; N dotaccent ; B 103 537 230 667 ; +C 200 ; WX 333 ; N dieresis ; B -2 537 335 667 ; +C 202 ; WX 333 ; N ring ; B 60 527 273 740 ; +C 203 ; WX 333 ; N cedilla ; B 68 -218 294 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B -13 528 425 713 ; +C 206 ; WX 333 ; N ogonek ; B 90 -173 319 44 ; +C 207 ; WX 333 ; N caron ; B -2 528 335 704 ; +C 208 ; WX 1000 ; N emdash ; B 0 181 1000 271 ; +C 225 ; WX 1000 ; N AE ; B 4 0 951 676 ; +C 227 ; WX 300 ; N ordfeminine ; B -1 397 301 688 ; +C 232 ; WX 667 ; N Lslash ; B 19 0 638 676 ; +C 233 ; WX 778 ; N Oslash ; B 35 -74 743 737 ; +C 234 ; WX 1000 ; N OE ; B 22 -5 981 684 ; +C 235 ; WX 330 ; N ordmasculine ; B 18 397 312 688 ; +C 241 ; WX 722 ; N ae ; B 33 -14 693 473 ; +C 245 ; WX 278 ; N dotlessi ; B 16 0 255 461 ; +C 248 ; WX 278 ; N lslash ; B -22 0 303 676 ; +C 249 ; WX 500 ; N oslash ; B 25 -92 476 549 ; +C 250 ; WX 722 ; N oe ; B 22 -14 696 473 ; +C 251 ; WX 556 ; N germandbls ; B 19 -12 517 691 ; +C -1 ; WX 667 ; N Zcaron ; B 28 0 634 914 ; +C -1 ; WX 444 ; N ccedilla ; B 25 -218 430 473 ; +C -1 ; WX 500 ; N ydieresis ; B 16 -205 480 667 ; +C -1 ; WX 500 ; N atilde ; B 25 -14 488 674 ; +C -1 ; WX 278 ; N icircumflex ; B -36 0 301 704 ; +C -1 ; WX 300 ; N threesuperior ; B 3 268 297 688 ; +C -1 ; WX 444 ; N ecircumflex ; B 25 -14 426 704 ; +C -1 ; WX 556 ; N thorn ; B 19 -205 524 676 ; +C -1 ; WX 444 ; N egrave ; B 25 -14 426 713 ; +C -1 ; WX 300 ; N twosuperior ; B 0 275 300 688 ; +C -1 ; WX 444 ; N eacute ; B 25 -14 426 713 ; +C -1 ; WX 500 ; N otilde ; B 25 -14 476 674 ; +C -1 ; WX 722 ; N Aacute ; B 9 0 689 923 ; +C -1 ; WX 500 ; N ocircumflex ; B 25 -14 476 704 ; +C -1 ; WX 500 ; N yacute ; B 16 -205 480 713 ; +C -1 ; WX 556 ; N udieresis ; B 16 -14 537 667 ; +C -1 ; WX 750 ; N threequarters ; B 23 -12 733 688 ; +C -1 ; WX 500 ; N acircumflex ; B 25 -14 488 704 ; +C -1 ; WX 722 ; N Eth ; B 6 0 690 676 ; +C -1 ; WX 444 ; N edieresis ; B 25 -14 426 667 ; +C -1 ; WX 556 ; N ugrave ; B 16 -14 537 713 ; +C -1 ; WX 1000 ; N trademark ; B 24 271 977 676 ; +C -1 ; WX 500 ; N ograve ; B 25 -14 476 713 ; +C -1 ; WX 389 ; N scaron ; B 25 -14 363 704 ; +C -1 ; WX 389 ; N Idieresis ; B 20 0 370 877 ; +C -1 ; WX 556 ; N uacute ; B 16 -14 537 713 ; +C -1 ; WX 500 ; N agrave ; B 25 -14 488 713 ; +C -1 ; WX 556 ; N ntilde ; B 21 0 539 674 ; +C -1 ; WX 500 ; N aring ; B 25 -14 488 740 ; +C -1 ; WX 444 ; N zcaron ; B 21 0 420 704 ; +C -1 ; WX 389 ; N Icircumflex ; B 20 0 370 914 ; +C -1 ; WX 722 ; N Ntilde ; B 16 -18 701 884 ; +C -1 ; WX 556 ; N ucircumflex ; B 16 -14 537 704 ; +C -1 ; WX 667 ; N Ecircumflex ; B 16 0 641 914 ; +C -1 ; WX 389 ; N Iacute ; B 20 0 370 923 ; +C -1 ; WX 722 ; N Ccedilla ; B 49 -218 687 691 ; +C -1 ; WX 778 ; N Odieresis ; B 35 -19 743 877 ; +C -1 ; WX 556 ; N Scaron ; B 35 -19 513 914 ; +C -1 ; WX 667 ; N Edieresis ; B 16 0 641 877 ; +C -1 ; WX 389 ; N Igrave ; B 20 0 370 923 ; +C -1 ; WX 500 ; N adieresis ; B 25 -14 488 667 ; +C -1 ; WX 778 ; N Ograve ; B 35 -19 743 923 ; +C -1 ; WX 667 ; N Egrave ; B 16 0 641 923 ; +C -1 ; WX 722 ; N Ydieresis ; B 15 0 699 877 ; +C -1 ; WX 747 ; N registered ; B 26 -19 721 691 ; +C -1 ; WX 778 ; N Otilde ; B 35 -19 743 884 ; +C -1 ; WX 750 ; N onequarter ; B 28 -12 743 688 ; +C -1 ; WX 722 ; N Ugrave ; B 16 -19 701 923 ; +C -1 ; WX 722 ; N Ucircumflex ; B 16 -19 701 914 ; +C -1 ; WX 611 ; N Thorn ; B 16 0 600 676 ; +C -1 ; WX 570 ; N divide ; B 33 -31 537 537 ; +C -1 ; WX 722 ; N Atilde ; B 9 0 689 884 ; +C -1 ; WX 722 ; N Uacute ; B 16 -19 701 923 ; +C -1 ; WX 778 ; N Ocircumflex ; B 35 -19 743 914 ; +C -1 ; WX 570 ; N logicalnot ; B 33 108 537 399 ; +C -1 ; WX 722 ; N Aring ; B 9 0 689 935 ; +C -1 ; WX 278 ; N idieresis ; B -36 0 301 667 ; +C -1 ; WX 278 ; N iacute ; B 16 0 290 713 ; +C -1 ; WX 500 ; N aacute ; B 25 -14 488 713 ; +C -1 ; WX 570 ; N plusminus ; B 33 0 537 506 ; +C -1 ; WX 570 ; N multiply ; B 48 16 522 490 ; +C -1 ; WX 722 ; N Udieresis ; B 16 -19 701 877 ; +C -1 ; WX 570 ; N minus ; B 33 209 537 297 ; +C -1 ; WX 300 ; N onesuperior ; B 28 275 273 688 ; +C -1 ; WX 667 ; N Eacute ; B 16 0 641 923 ; +C -1 ; WX 722 ; N Acircumflex ; B 9 0 689 914 ; +C -1 ; WX 747 ; N copyright ; B 26 -19 721 691 ; +C -1 ; WX 722 ; N Agrave ; B 9 0 689 923 ; +C -1 ; WX 500 ; N odieresis ; B 25 -14 476 667 ; +C -1 ; WX 500 ; N oacute ; B 25 -14 476 713 ; +C -1 ; WX 400 ; N degree ; B 57 402 343 688 ; +C -1 ; WX 278 ; N igrave ; B -26 0 255 713 ; +C -1 ; WX 556 ; N mu ; B 33 -206 536 461 ; +C -1 ; WX 778 ; N Oacute ; B 35 -19 743 923 ; +C -1 ; WX 500 ; N eth ; B 25 -14 476 691 ; +C -1 ; WX 722 ; N Adieresis ; B 9 0 689 877 ; +C -1 ; WX 722 ; N Yacute ; B 15 0 699 928 ; +C -1 ; WX 220 ; N brokenbar ; B 66 -19 154 691 ; +C -1 ; WX 750 ; N onehalf ; B -7 -12 775 688 ; +EndCharMetrics +StartKernData +StartKernPairs 283 + +KPX A y -74 +KPX A w -90 +KPX A v -100 +KPX A u -50 +KPX A quoteright -74 +KPX A quotedblright 0 +KPX A p -25 +KPX A Y -100 +KPX A W -130 +KPX A V -145 +KPX A U -50 +KPX A T -95 +KPX A Q -45 +KPX A O -45 +KPX A G -55 +KPX A C -55 + +KPX B period 0 +KPX B comma 0 +KPX B U -10 +KPX B A -30 + +KPX D period -20 +KPX D comma 0 +KPX D Y -40 +KPX D W -40 +KPX D V -40 +KPX D A -35 + +KPX F r 0 +KPX F period -110 +KPX F o -25 +KPX F i 0 +KPX F e -25 +KPX F comma -92 +KPX F a -25 +KPX F A -90 + +KPX G period 0 +KPX G comma 0 + +KPX J u -15 +KPX J period -20 +KPX J o -15 +KPX J e -15 +KPX J comma 0 +KPX J a -15 +KPX J A -30 + +KPX K y -45 +KPX K u -15 +KPX K o -25 +KPX K e -25 +KPX K O -30 + +KPX L y -55 +KPX L quoteright -110 +KPX L quotedblright -20 +KPX L Y -92 +KPX L W -92 +KPX L V -92 +KPX L T -92 + +KPX N period 0 +KPX N comma 0 +KPX N A -20 + +KPX O period 0 +KPX O comma 0 +KPX O Y -50 +KPX O X -40 +KPX O W -50 +KPX O V -50 +KPX O T -40 +KPX O A -40 + +KPX P period -110 +KPX P o -20 +KPX P e -20 +KPX P comma -92 +KPX P a -10 +KPX P A -74 + +KPX Q period -20 +KPX Q comma 0 +KPX Q U -10 + +KPX R Y -35 +KPX R W -35 +KPX R V -55 +KPX R U -30 +KPX R T -40 +KPX R O -30 + +KPX S period 0 +KPX S comma 0 + +KPX T y -74 +KPX T w -74 +KPX T u -92 +KPX T semicolon -74 +KPX T r -74 +KPX T period -90 +KPX T o -92 +KPX T i -18 +KPX T hyphen -92 +KPX T h 0 +KPX T e -92 +KPX T comma -74 +KPX T colon -74 +KPX T a -92 +KPX T O -18 +KPX T A -90 + +KPX U period -50 +KPX U comma -50 +KPX U A -60 + +KPX V u -92 +KPX V semicolon -92 +KPX V period -145 +KPX V o -100 +KPX V i -37 +KPX V hyphen -74 +KPX V e -100 +KPX V comma -129 +KPX V colon -92 +KPX V a -92 +KPX V O -45 +KPX V G -30 +KPX V A -135 + +KPX W y -60 +KPX W u -50 +KPX W semicolon -55 +KPX W period -92 +KPX W o -75 +KPX W i -18 +KPX W hyphen -37 +KPX W h 0 +KPX W e -65 +KPX W comma -92 +KPX W colon -55 +KPX W a -65 +KPX W O -10 +KPX W A -120 + +KPX Y u -92 +KPX Y semicolon -92 +KPX Y period -92 +KPX Y o -111 +KPX Y i -37 +KPX Y hyphen -92 +KPX Y e -111 +KPX Y comma -92 +KPX Y colon -92 +KPX Y a -85 +KPX Y O -35 +KPX Y A -110 + +KPX a y 0 +KPX a w 0 +KPX a v -25 +KPX a t 0 +KPX a p 0 +KPX a g 0 +KPX a b 0 + +KPX b y 0 +KPX b v -15 +KPX b u -20 +KPX b period -40 +KPX b l 0 +KPX b comma 0 +KPX b b -10 + +KPX c y 0 +KPX c period 0 +KPX c l 0 +KPX c k 0 +KPX c h 0 +KPX c comma 0 + +KPX colon space 0 + +KPX comma space 0 +KPX comma quoteright -55 +KPX comma quotedblright -45 + +KPX d y 0 +KPX d w -15 +KPX d v 0 +KPX d period 0 +KPX d d 0 +KPX d comma 0 + +KPX e y 0 +KPX e x 0 +KPX e w 0 +KPX e v -15 +KPX e period 0 +KPX e p 0 +KPX e g 0 +KPX e comma 0 +KPX e b 0 + +KPX f quoteright 55 +KPX f quotedblright 50 +KPX f period -15 +KPX f o -25 +KPX f l 0 +KPX f i -25 +KPX f f 0 +KPX f e 0 +KPX f dotlessi -35 +KPX f comma -15 +KPX f a 0 + +KPX g y 0 +KPX g r 0 +KPX g period -15 +KPX g o 0 +KPX g i 0 +KPX g g 0 +KPX g e 0 +KPX g comma 0 +KPX g a 0 + +KPX h y -15 + +KPX i v -10 + +KPX k y -15 +KPX k o -15 +KPX k e -10 + +KPX l y 0 +KPX l w 0 + +KPX m y 0 +KPX m u 0 + +KPX n y 0 +KPX n v -40 +KPX n u 0 + +KPX o y 0 +KPX o x 0 +KPX o w -10 +KPX o v -10 +KPX o g 0 + +KPX p y 0 + +KPX period quoteright -55 +KPX period quotedblright -55 + +KPX quotedblleft quoteleft 0 +KPX quotedblleft A -10 + +KPX quotedblright space 0 + +KPX quoteleft quoteleft -63 +KPX quoteleft A -10 + +KPX quoteright v -20 +KPX quoteright t 0 +KPX quoteright space -74 +KPX quoteright s -37 +KPX quoteright r -20 +KPX quoteright quoteright -63 +KPX quoteright quotedblright 0 +KPX quoteright l 0 +KPX quoteright d -20 + +KPX r y 0 +KPX r v -10 +KPX r u 0 +KPX r t 0 +KPX r s 0 +KPX r r 0 +KPX r q -18 +KPX r period -100 +KPX r p -10 +KPX r o -18 +KPX r n -15 +KPX r m 0 +KPX r l 0 +KPX r k 0 +KPX r i 0 +KPX r hyphen -37 +KPX r g -10 +KPX r e -18 +KPX r d 0 +KPX r comma -92 +KPX r c -18 +KPX r a 0 + +KPX s w 0 + +KPX space quoteleft 0 +KPX space quotedblleft 0 +KPX space Y -55 +KPX space W -30 +KPX space V -45 +KPX space T -30 +KPX space A -55 + +KPX v period -70 +KPX v o -10 +KPX v e -10 +KPX v comma -55 +KPX v a -10 + +KPX w period -70 +KPX w o -10 +KPX w h 0 +KPX w e 0 +KPX w comma -55 +KPX w a 0 + +KPX x e 0 + +KPX y period -70 +KPX y o -25 +KPX y e -10 +KPX y comma -55 +KPX y a 0 + +KPX z o 0 +KPX z e 0 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 188 210 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 188 210 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 188 210 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 188 210 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 180 195 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 188 210 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 208 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 174 210 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 174 210 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 174 210 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 174 210 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 28 210 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 28 210 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 28 210 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 28 210 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 195 210 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 223 210 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 223 210 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 223 210 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 223 210 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 223 210 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 112 210 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 222 210 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 222 210 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 222 210 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 222 210 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 210 215 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 215 210 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 167 210 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 77 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 77 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 77 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 77 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 77 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 77 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 69 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 62 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 62 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 62 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 62 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -34 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -34 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -34 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -34 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 112 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 84 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 84 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 84 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 84 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 84 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 28 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 105 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 105 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 105 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 105 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 84 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 84 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 56 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-Bd+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-Bd+ new file mode 100755 index 0000000000000..efa6d43c6a038 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-Bd+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 722 ; N Ccaron ; B 49 -19 687 914 ; +C -1 ; WX 444 ; N ccaron ; B 25 -14 430 704 ; +C -1 ; WX 722 ; N Dcaron ; B 14 0 690 914 ; +C -1 ; WX 685 ; N dcaron ; B 25 -14 736 744 ; +C -1 ; WX 667 ; N Ecaron ; B 16 0 641 914 ; +C -1 ; WX 444 ; N ecaron ; B 25 -14 426 704 ; +C -1 ; WX 667 ; N Lcaron ; B 19 0 638 744 ; +C -1 ; WX 667 ; N Lacute ; B 19 0 638 923 ; +C -1 ; WX 407 ; N lcaron ; B 16 0 457 744 ; +C -1 ; WX 278 ; N lacute ; B 16 0 321 923 ; +C -1 ; WX 722 ; N Ncaron ; B 16 -18 701 914 ; +C -1 ; WX 556 ; N ncaron ; B 21 0 539 704 ; +C -1 ; WX 722 ; N Rcaron ; B 26 0 715 914 ; +C -1 ; WX 722 ; N Racute ; B 26 0 715 923 ; +C -1 ; WX 444 ; N rcaron ; B 29 0 434 704 ; +C -1 ; WX 444 ; N racute ; B 29 0 434 713 ; +C -1 ; WX 667 ; N Tcaron ; B 31 0 636 914 ; +C -1 ; WX 462 ; N tcaron ; B 20 -12 534 691 ; +C -1 ; WX 722 ; N Uring ; B 16 -19 701 914 ; +C -1 ; WX 556 ; N uring ; B 16 -14 537 740 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 258 210 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 75 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 194 210 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 473 53 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 167 210 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 55 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 309 53 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 167 210 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 194 53 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute -3 210 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 194 210 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 111 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 194 210 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 239 210 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 55 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 79 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 167 210 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 271 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 194 174 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 111 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-BdIt b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-BdIt new file mode 100755 index 0000000000000..25ab54ea816bb --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-BdIt @@ -0,0 +1,648 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Tue Mar 20 13:14:55 1990 +Comment UniqueID 28425 +Comment VMusage 32721 39613 +FontName Times-BoldItalic +FullName Times Bold Italic +FamilyName Times +Weight Bold +ItalicAngle -15 +IsFixedPitch false +FontBBox -200 -218 996 921 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.009 +Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 669 +XHeight 462 +Ascender 699 +Descender -205 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 389 ; N exclam ; B 67 -13 370 684 ; +C 34 ; WX 555 ; N quotedbl ; B 136 398 536 685 ; +C 35 ; WX 500 ; N numbersign ; B -33 0 533 700 ; +C 36 ; WX 500 ; N dollar ; B -20 -100 497 733 ; +C 37 ; WX 833 ; N percent ; B 39 -10 793 692 ; +C 38 ; WX 778 ; N ampersand ; B 5 -19 699 682 ; +C 39 ; WX 333 ; N quoteright ; B 98 369 302 685 ; +C 40 ; WX 333 ; N parenleft ; B 28 -179 344 685 ; +C 41 ; WX 333 ; N parenright ; B -44 -179 271 685 ; +C 42 ; WX 500 ; N asterisk ; B 65 249 456 685 ; +C 43 ; WX 570 ; N plus ; B 33 0 537 506 ; +C 44 ; WX 250 ; N comma ; B -60 -182 144 134 ; +C 45 ; WX 333 ; N hyphen ; B 2 166 271 282 ; +C 46 ; WX 250 ; N period ; B -9 -13 139 135 ; +C 47 ; WX 278 ; N slash ; B -64 -18 342 685 ; +C 48 ; WX 500 ; N zero ; B 17 -14 477 683 ; +C 49 ; WX 500 ; N one ; B 5 0 419 683 ; +C 50 ; WX 500 ; N two ; B -27 0 446 683 ; +C 51 ; WX 500 ; N three ; B -15 -13 450 683 ; +C 52 ; WX 500 ; N four ; B -15 0 503 683 ; +C 53 ; WX 500 ; N five ; B -11 -13 487 669 ; +C 54 ; WX 500 ; N six ; B 23 -15 509 679 ; +C 55 ; WX 500 ; N seven ; B 52 0 525 669 ; +C 56 ; WX 500 ; N eight ; B 3 -13 476 683 ; +C 57 ; WX 500 ; N nine ; B -12 -10 475 683 ; +C 58 ; WX 333 ; N colon ; B 23 -13 264 459 ; +C 59 ; WX 333 ; N semicolon ; B -25 -183 264 459 ; +C 60 ; WX 570 ; N less ; B 31 -8 539 514 ; +C 61 ; WX 570 ; N equal ; B 33 107 537 399 ; +C 62 ; WX 570 ; N greater ; B 31 -8 539 514 ; +C 63 ; WX 500 ; N question ; B 79 -13 470 684 ; +C 64 ; WX 832 ; N at ; B 63 -18 770 685 ; +C 65 ; WX 667 ; N A ; B -67 0 593 683 ; +C 66 ; WX 667 ; N B ; B -24 0 624 669 ; +C 67 ; WX 667 ; N C ; B 32 -18 677 685 ; +C 68 ; WX 722 ; N D ; B -46 0 685 669 ; +C 69 ; WX 667 ; N E ; B -27 0 653 669 ; +C 70 ; WX 667 ; N F ; B -13 0 660 669 ; +C 71 ; WX 722 ; N G ; B 21 -18 706 685 ; +C 72 ; WX 778 ; N H ; B -24 0 799 669 ; +C 73 ; WX 389 ; N I ; B -32 0 406 669 ; +C 74 ; WX 500 ; N J ; B -46 -99 524 669 ; +C 75 ; WX 667 ; N K ; B -21 0 702 669 ; +C 76 ; WX 611 ; N L ; B -22 0 590 669 ; +C 77 ; WX 889 ; N M ; B -29 -12 917 669 ; +C 78 ; WX 722 ; N N ; B -27 -15 748 669 ; +C 79 ; WX 722 ; N O ; B 27 -18 691 685 ; +C 80 ; WX 611 ; N P ; B -27 0 613 669 ; +C 81 ; WX 722 ; N Q ; B 27 -208 691 685 ; +C 82 ; WX 667 ; N R ; B -29 0 623 669 ; +C 83 ; WX 556 ; N S ; B 2 -18 526 685 ; +C 84 ; WX 611 ; N T ; B 50 0 650 669 ; +C 85 ; WX 722 ; N U ; B 67 -18 744 669 ; +C 86 ; WX 667 ; N V ; B 65 -18 715 669 ; +C 87 ; WX 889 ; N W ; B 65 -18 940 669 ; +C 88 ; WX 667 ; N X ; B -24 0 694 669 ; +C 89 ; WX 611 ; N Y ; B 73 0 659 669 ; +C 90 ; WX 611 ; N Z ; B -11 0 590 669 ; +C 91 ; WX 333 ; N bracketleft ; B -37 -159 362 674 ; +C 92 ; WX 278 ; N backslash ; B -1 -18 279 685 ; +C 93 ; WX 333 ; N bracketright ; B -56 -157 343 674 ; +C 94 ; WX 570 ; N asciicircum ; B 67 304 503 669 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 333 ; N quoteleft ; B 128 369 332 685 ; +C 97 ; WX 500 ; N a ; B -21 -14 455 462 ; +C 98 ; WX 500 ; N b ; B -14 -13 444 699 ; +C 99 ; WX 444 ; N c ; B -5 -13 392 462 ; +C 100 ; WX 500 ; N d ; B -21 -13 517 699 ; +C 101 ; WX 444 ; N e ; B 5 -13 398 462 ; +C 102 ; WX 333 ; N f ; B -169 -205 446 698 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B -52 -203 478 462 ; +C 104 ; WX 556 ; N h ; B -13 -9 498 699 ; +C 105 ; WX 278 ; N i ; B 2 -9 263 684 ; +C 106 ; WX 278 ; N j ; B -189 -207 279 684 ; +C 107 ; WX 500 ; N k ; B -23 -8 483 699 ; +C 108 ; WX 278 ; N l ; B 2 -9 290 699 ; +C 109 ; WX 778 ; N m ; B -14 -9 722 462 ; +C 110 ; WX 556 ; N n ; B -6 -9 493 462 ; +C 111 ; WX 500 ; N o ; B -3 -13 441 462 ; +C 112 ; WX 500 ; N p ; B -120 -205 446 462 ; +C 113 ; WX 500 ; N q ; B 1 -205 471 462 ; +C 114 ; WX 389 ; N r ; B -21 0 389 462 ; +C 115 ; WX 389 ; N s ; B -19 -13 333 462 ; +C 116 ; WX 278 ; N t ; B -11 -9 281 594 ; +C 117 ; WX 556 ; N u ; B 15 -9 492 462 ; +C 118 ; WX 444 ; N v ; B 16 -13 401 462 ; +C 119 ; WX 667 ; N w ; B 16 -13 614 462 ; +C 120 ; WX 500 ; N x ; B -46 -13 469 462 ; +C 121 ; WX 444 ; N y ; B -94 -205 392 462 ; +C 122 ; WX 389 ; N z ; B -43 -78 368 449 ; +C 123 ; WX 348 ; N braceleft ; B 5 -187 436 686 ; +C 124 ; WX 220 ; N bar ; B 66 -18 154 685 ; +C 125 ; WX 348 ; N braceright ; B -129 -187 302 686 ; +C 126 ; WX 570 ; N asciitilde ; B 54 173 516 333 ; +C 161 ; WX 389 ; N exclamdown ; B 19 -205 322 492 ; +C 162 ; WX 500 ; N cent ; B 42 -143 439 576 ; +C 163 ; WX 500 ; N sterling ; B -32 -12 510 683 ; +C 164 ; WX 167 ; N fraction ; B -169 -14 324 683 ; +C 165 ; WX 500 ; N yen ; B 33 0 628 669 ; +C 166 ; WX 500 ; N florin ; B -87 -156 537 707 ; +C 167 ; WX 500 ; N section ; B 36 -143 459 685 ; +C 168 ; WX 500 ; N currency ; B -26 34 526 586 ; +C 169 ; WX 278 ; N quotesingle ; B 128 398 268 685 ; +C 170 ; WX 500 ; N quotedblleft ; B 53 369 513 685 ; +C 171 ; WX 500 ; N guillemotleft ; B 12 32 468 415 ; +C 172 ; WX 333 ; N guilsinglleft ; B 32 32 303 415 ; +C 173 ; WX 333 ; N guilsinglright ; B 10 32 281 415 ; +C 174 ; WX 556 ; N fi ; B -188 -205 514 703 ; +C 175 ; WX 556 ; N fl ; B -186 -205 553 704 ; +C 177 ; WX 500 ; N endash ; B -40 178 477 269 ; +C 178 ; WX 500 ; N dagger ; B 91 -145 494 685 ; +C 179 ; WX 500 ; N daggerdbl ; B 10 -139 493 685 ; +C 180 ; WX 250 ; N periodcentered ; B 51 257 199 405 ; +C 182 ; WX 500 ; N paragraph ; B -57 -193 562 669 ; +C 183 ; WX 350 ; N bullet ; B 0 175 350 525 ; +C 184 ; WX 333 ; N quotesinglbase ; B -5 -182 199 134 ; +C 185 ; WX 500 ; N quotedblbase ; B -57 -182 403 134 ; +C 186 ; WX 500 ; N quotedblright ; B 53 369 513 685 ; +C 187 ; WX 500 ; N guillemotright ; B 12 32 468 415 ; +C 188 ; WX 1000 ; N ellipsis ; B 40 -13 852 135 ; +C 189 ; WX 1000 ; N perthousand ; B 7 -29 996 706 ; +C 191 ; WX 500 ; N questiondown ; B 30 -205 421 492 ; +C 193 ; WX 333 ; N grave ; B 85 516 297 697 ; +C 194 ; WX 333 ; N acute ; B 139 516 379 697 ; +C 195 ; WX 333 ; N circumflex ; B 40 516 367 690 ; +C 196 ; WX 333 ; N tilde ; B 48 536 407 655 ; +C 197 ; WX 333 ; N macron ; B 51 553 393 623 ; +C 198 ; WX 333 ; N breve ; B 71 516 387 678 ; +C 199 ; WX 333 ; N dotaccent ; B 163 525 293 655 ; +C 200 ; WX 333 ; N dieresis ; B 55 525 397 655 ; +C 202 ; WX 333 ; N ring ; B 127 516 340 729 ; +C 203 ; WX 333 ; N cedilla ; B -80 -218 156 5 ; +C 205 ; WX 333 ; N hungarumlaut ; B 69 516 498 697 ; +C 206 ; WX 333 ; N ogonek ; B -40 -173 189 44 ; +C 207 ; WX 333 ; N caron ; B 79 516 411 690 ; +C 208 ; WX 1000 ; N emdash ; B -40 178 977 269 ; +C 225 ; WX 944 ; N AE ; B -64 0 918 669 ; +C 227 ; WX 266 ; N ordfeminine ; B 16 399 330 685 ; +C 232 ; WX 611 ; N Lslash ; B -22 0 590 669 ; +C 233 ; WX 722 ; N Oslash ; B 27 -125 691 764 ; +C 234 ; WX 944 ; N OE ; B 23 -8 946 677 ; +C 235 ; WX 300 ; N ordmasculine ; B 56 400 347 685 ; +C 241 ; WX 722 ; N ae ; B -5 -13 673 462 ; +C 245 ; WX 278 ; N dotlessi ; B 2 -9 238 462 ; +C 248 ; WX 278 ; N lslash ; B -13 -9 301 699 ; +C 249 ; WX 500 ; N oslash ; B -3 -119 441 560 ; +C 250 ; WX 722 ; N oe ; B 6 -13 674 462 ; +C 251 ; WX 500 ; N germandbls ; B -200 -200 473 705 ; +C -1 ; WX 611 ; N Zcaron ; B -11 0 590 897 ; +C -1 ; WX 444 ; N ccedilla ; B -24 -218 392 462 ; +C -1 ; WX 444 ; N ydieresis ; B -94 -205 438 655 ; +C -1 ; WX 500 ; N atilde ; B -21 -14 491 655 ; +C -1 ; WX 278 ; N icircumflex ; B -2 -9 325 690 ; +C -1 ; WX 300 ; N threesuperior ; B 17 265 321 683 ; +C -1 ; WX 444 ; N ecircumflex ; B 5 -13 423 690 ; +C -1 ; WX 500 ; N thorn ; B -120 -205 446 699 ; +C -1 ; WX 444 ; N egrave ; B 5 -13 398 697 ; +C -1 ; WX 300 ; N twosuperior ; B 2 274 313 683 ; +C -1 ; WX 444 ; N eacute ; B 5 -13 435 697 ; +C -1 ; WX 500 ; N otilde ; B -3 -13 491 655 ; +C -1 ; WX 667 ; N Aacute ; B -67 0 593 904 ; +C -1 ; WX 500 ; N ocircumflex ; B -3 -13 451 690 ; +C -1 ; WX 444 ; N yacute ; B -94 -205 435 697 ; +C -1 ; WX 556 ; N udieresis ; B 15 -9 494 655 ; +C -1 ; WX 750 ; N threequarters ; B 7 -14 726 683 ; +C -1 ; WX 500 ; N acircumflex ; B -21 -14 455 690 ; +C -1 ; WX 722 ; N Eth ; B -31 0 700 669 ; +C -1 ; WX 444 ; N edieresis ; B 5 -13 443 655 ; +C -1 ; WX 556 ; N ugrave ; B 15 -9 492 697 ; +C -1 ; WX 1000 ; N trademark ; B 32 263 968 669 ; +C -1 ; WX 500 ; N ograve ; B -3 -13 441 697 ; +C -1 ; WX 389 ; N scaron ; B -19 -13 439 690 ; +C -1 ; WX 389 ; N Idieresis ; B -32 0 445 862 ; +C -1 ; WX 556 ; N uacute ; B 15 -9 492 697 ; +C -1 ; WX 500 ; N agrave ; B -21 -14 455 697 ; +C -1 ; WX 556 ; N ntilde ; B -6 -9 504 655 ; +C -1 ; WX 500 ; N aring ; B -21 -14 455 729 ; +C -1 ; WX 389 ; N zcaron ; B -43 -78 424 690 ; +C -1 ; WX 389 ; N Icircumflex ; B -32 0 420 897 ; +C -1 ; WX 722 ; N Ntilde ; B -27 -15 748 862 ; +C -1 ; WX 556 ; N ucircumflex ; B 15 -9 492 690 ; +C -1 ; WX 667 ; N Ecircumflex ; B -27 0 653 897 ; +C -1 ; WX 389 ; N Iacute ; B -32 0 412 904 ; +C -1 ; WX 667 ; N Ccedilla ; B 32 -218 677 685 ; +C -1 ; WX 722 ; N Odieresis ; B 27 -18 691 862 ; +C -1 ; WX 556 ; N Scaron ; B 2 -18 526 897 ; +C -1 ; WX 667 ; N Edieresis ; B -27 0 653 862 ; +C -1 ; WX 389 ; N Igrave ; B -32 0 406 904 ; +C -1 ; WX 500 ; N adieresis ; B -21 -14 471 655 ; +C -1 ; WX 722 ; N Ograve ; B 27 -18 691 904 ; +C -1 ; WX 667 ; N Egrave ; B -27 0 653 904 ; +C -1 ; WX 611 ; N Ydieresis ; B 73 0 659 862 ; +C -1 ; WX 747 ; N registered ; B 30 -18 718 685 ; +C -1 ; WX 722 ; N Otilde ; B 27 -18 691 862 ; +C -1 ; WX 750 ; N onequarter ; B 7 -14 721 683 ; +C -1 ; WX 722 ; N Ugrave ; B 67 -18 744 904 ; +C -1 ; WX 722 ; N Ucircumflex ; B 67 -18 744 897 ; +C -1 ; WX 611 ; N Thorn ; B -27 0 573 669 ; +C -1 ; WX 570 ; N divide ; B 33 -29 537 535 ; +C -1 ; WX 667 ; N Atilde ; B -67 0 593 862 ; +C -1 ; WX 722 ; N Uacute ; B 67 -18 744 904 ; +C -1 ; WX 722 ; N Ocircumflex ; B 27 -18 691 897 ; +C -1 ; WX 606 ; N logicalnot ; B 51 108 555 399 ; +C -1 ; WX 667 ; N Aring ; B -67 0 593 921 ; +C -1 ; WX 278 ; N idieresis ; B 2 -9 360 655 ; +C -1 ; WX 278 ; N iacute ; B 2 -9 352 697 ; +C -1 ; WX 500 ; N aacute ; B -21 -14 463 697 ; +C -1 ; WX 570 ; N plusminus ; B 33 0 537 506 ; +C -1 ; WX 570 ; N multiply ; B 48 16 522 490 ; +C -1 ; WX 722 ; N Udieresis ; B 67 -18 744 862 ; +C -1 ; WX 606 ; N minus ; B 51 209 555 297 ; +C -1 ; WX 300 ; N onesuperior ; B 30 274 301 683 ; +C -1 ; WX 667 ; N Eacute ; B -27 0 653 904 ; +C -1 ; WX 667 ; N Acircumflex ; B -67 0 593 897 ; +C -1 ; WX 747 ; N copyright ; B 30 -18 718 685 ; +C -1 ; WX 667 ; N Agrave ; B -67 0 593 904 ; +C -1 ; WX 500 ; N odieresis ; B -3 -13 466 655 ; +C -1 ; WX 500 ; N oacute ; B -3 -13 463 697 ; +C -1 ; WX 400 ; N degree ; B 83 397 369 683 ; +C -1 ; WX 278 ; N igrave ; B 2 -9 260 697 ; +C -1 ; WX 576 ; N mu ; B -60 -207 516 449 ; +C -1 ; WX 722 ; N Oacute ; B 27 -18 691 904 ; +C -1 ; WX 500 ; N eth ; B -3 -13 454 699 ; +C -1 ; WX 667 ; N Adieresis ; B -67 0 593 862 ; +C -1 ; WX 611 ; N Yacute ; B 73 0 659 904 ; +C -1 ; WX 220 ; N brokenbar ; B 66 -18 154 685 ; +C -1 ; WX 750 ; N onehalf ; B -9 -14 723 683 ; +EndCharMetrics +StartKernData +StartKernPairs 283 + +KPX A y -74 +KPX A w -74 +KPX A v -74 +KPX A u -30 +KPX A quoteright -74 +KPX A quotedblright 0 +KPX A p 0 +KPX A Y -70 +KPX A W -100 +KPX A V -95 +KPX A U -50 +KPX A T -55 +KPX A Q -55 +KPX A O -50 +KPX A G -60 +KPX A C -65 + +KPX B period 0 +KPX B comma 0 +KPX B U -10 +KPX B A -25 + +KPX D period 0 +KPX D comma 0 +KPX D Y -50 +KPX D W -40 +KPX D V -50 +KPX D A -25 + +KPX F r -50 +KPX F period -129 +KPX F o -70 +KPX F i -40 +KPX F e -100 +KPX F comma -129 +KPX F a -95 +KPX F A -100 + +KPX G period 0 +KPX G comma 0 + +KPX J u -40 +KPX J period -10 +KPX J o -40 +KPX J e -40 +KPX J comma -10 +KPX J a -40 +KPX J A -25 + +KPX K y -20 +KPX K u -20 +KPX K o -25 +KPX K e -25 +KPX K O -30 + +KPX L y -37 +KPX L quoteright -55 +KPX L quotedblright 0 +KPX L Y -37 +KPX L W -37 +KPX L V -37 +KPX L T -18 + +KPX N period 0 +KPX N comma 0 +KPX N A -30 + +KPX O period 0 +KPX O comma 0 +KPX O Y -50 +KPX O X -40 +KPX O W -50 +KPX O V -50 +KPX O T -40 +KPX O A -40 + +KPX P period -129 +KPX P o -55 +KPX P e -50 +KPX P comma -129 +KPX P a -40 +KPX P A -85 + +KPX Q period 0 +KPX Q comma 0 +KPX Q U -10 + +KPX R Y -18 +KPX R W -18 +KPX R V -18 +KPX R U -40 +KPX R T -30 +KPX R O -40 + +KPX S period 0 +KPX S comma 0 + +KPX T y -37 +KPX T w -37 +KPX T u -37 +KPX T semicolon -74 +KPX T r -37 +KPX T period -92 +KPX T o -95 +KPX T i -37 +KPX T hyphen -92 +KPX T h 0 +KPX T e -92 +KPX T comma -92 +KPX T colon -74 +KPX T a -92 +KPX T O -18 +KPX T A -55 + +KPX U period 0 +KPX U comma 0 +KPX U A -45 + +KPX V u -55 +KPX V semicolon -74 +KPX V period -129 +KPX V o -111 +KPX V i -55 +KPX V hyphen -70 +KPX V e -111 +KPX V comma -129 +KPX V colon -74 +KPX V a -111 +KPX V O -30 +KPX V G -10 +KPX V A -85 + +KPX W y -55 +KPX W u -55 +KPX W semicolon -55 +KPX W period -74 +KPX W o -80 +KPX W i -37 +KPX W hyphen -50 +KPX W h 0 +KPX W e -90 +KPX W comma -74 +KPX W colon -55 +KPX W a -85 +KPX W O -15 +KPX W A -74 + +KPX Y u -92 +KPX Y semicolon -92 +KPX Y period -74 +KPX Y o -111 +KPX Y i -55 +KPX Y hyphen -92 +KPX Y e -111 +KPX Y comma -92 +KPX Y colon -92 +KPX Y a -92 +KPX Y O -25 +KPX Y A -74 + +KPX a y 0 +KPX a w 0 +KPX a v 0 +KPX a t 0 +KPX a p 0 +KPX a g 0 +KPX a b 0 + +KPX b y 0 +KPX b v 0 +KPX b u -20 +KPX b period -40 +KPX b l 0 +KPX b comma 0 +KPX b b -10 + +KPX c y 0 +KPX c period 0 +KPX c l 0 +KPX c k -10 +KPX c h -10 +KPX c comma 0 + +KPX colon space 0 + +KPX comma space 0 +KPX comma quoteright -95 +KPX comma quotedblright -95 + +KPX d y 0 +KPX d w 0 +KPX d v 0 +KPX d period 0 +KPX d d 0 +KPX d comma 0 + +KPX e y 0 +KPX e x 0 +KPX e w 0 +KPX e v 0 +KPX e period 0 +KPX e p 0 +KPX e g 0 +KPX e comma 0 +KPX e b -10 + +KPX f quoteright 55 +KPX f quotedblright 0 +KPX f period -10 +KPX f o -10 +KPX f l 0 +KPX f i 0 +KPX f f -18 +KPX f e -10 +KPX f dotlessi -30 +KPX f comma -10 +KPX f a 0 + +KPX g y 0 +KPX g r 0 +KPX g period 0 +KPX g o 0 +KPX g i 0 +KPX g g 0 +KPX g e 0 +KPX g comma 0 +KPX g a 0 + +KPX h y 0 + +KPX i v 0 + +KPX k y 0 +KPX k o -10 +KPX k e -30 + +KPX l y 0 +KPX l w 0 + +KPX m y 0 +KPX m u 0 + +KPX n y 0 +KPX n v -40 +KPX n u 0 + +KPX o y -10 +KPX o x -10 +KPX o w -25 +KPX o v -15 +KPX o g 0 + +KPX p y 0 + +KPX period quoteright -95 +KPX period quotedblright -95 + +KPX quotedblleft quoteleft 0 +KPX quotedblleft A 0 + +KPX quotedblright space 0 + +KPX quoteleft quoteleft -74 +KPX quoteleft A 0 + +KPX quoteright v -15 +KPX quoteright t -37 +KPX quoteright space -74 +KPX quoteright s -74 +KPX quoteright r -15 +KPX quoteright quoteright -74 +KPX quoteright quotedblright 0 +KPX quoteright l 0 +KPX quoteright d -15 + +KPX r y 0 +KPX r v 0 +KPX r u 0 +KPX r t 0 +KPX r s 0 +KPX r r 0 +KPX r q 0 +KPX r period -65 +KPX r p 0 +KPX r o 0 +KPX r n 0 +KPX r m 0 +KPX r l 0 +KPX r k 0 +KPX r i 0 +KPX r hyphen 0 +KPX r g 0 +KPX r e 0 +KPX r d 0 +KPX r comma -65 +KPX r c 0 +KPX r a 0 + +KPX s w 0 + +KPX space quoteleft 0 +KPX space quotedblleft 0 +KPX space Y -70 +KPX space W -70 +KPX space V -70 +KPX space T 0 +KPX space A -37 + +KPX v period -37 +KPX v o -15 +KPX v e -15 +KPX v comma -37 +KPX v a 0 + +KPX w period -37 +KPX w o -15 +KPX w h 0 +KPX w e -10 +KPX w comma -37 +KPX w a -10 + +KPX x e -10 + +KPX y period -37 +KPX y o 0 +KPX y e 0 +KPX y comma -37 +KPX y a 0 + +KPX z o 0 +KPX z e 0 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 172 207 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 187 207 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 167 207 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 172 207 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 157 192 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 167 207 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 167 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 172 207 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 187 207 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 187 207 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 172 207 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 33 207 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 53 207 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 48 207 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 33 207 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 210 207 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 200 207 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 230 207 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 215 207 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 200 207 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 215 207 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 112 207 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 210 207 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 230 207 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 230 207 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 200 207 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 154 207 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 169 207 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 207 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 84 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 84 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 74 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 74 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 84 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 84 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 56 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 56 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 56 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 46 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 46 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -42 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -37 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -37 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 97 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 84 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 84 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 69 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 74 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 84 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 28 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 112 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 112 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 97 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 102 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 56 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 41 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 13 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-BdIt+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-BdIt+ new file mode 100755 index 0000000000000..23f3f8c5dcc5f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-BdIt+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 667 ; N Ccaron ; B 32 -18 700 904 ; +C -1 ; WX 444 ; N ccaron ; B -5 -13 486 690 ; +C -1 ; WX 722 ; N Dcaron ; B -46 0 685 904 ; +C -1 ; WX 643 ; N dcaron ; B -21 -13 741 769 ; +C -1 ; WX 667 ; N Ecaron ; B -27 0 653 904 ; +C -1 ; WX 444 ; N ecaron ; B 5 -13 466 690 ; +C -1 ; WX 611 ; N Lcaron ; B -22 0 630 736 ; +C -1 ; WX 611 ; N Lacute ; B -22 0 590 911 ; +C -1 ; WX 421 ; N lcaron ; B 2 -9 514 769 ; +C -1 ; WX 278 ; N lacute ; B 2 -9 433 911 ; +C -1 ; WX 722 ; N Ncaron ; B -27 -15 748 904 ; +C -1 ; WX 556 ; N ncaron ; B -6 -9 522 690 ; +C -1 ; WX 667 ; N Rcaron ; B -29 0 635 904 ; +C -1 ; WX 667 ; N Racute ; B -29 0 649 911 ; +C -1 ; WX 389 ; N rcaron ; B -21 0 439 690 ; +C -1 ; WX 389 ; N racute ; B -21 0 431 697 ; +C -1 ; WX 611 ; N Tcaron ; B 50 0 650 904 ; +C -1 ; WX 421 ; N tcaron ; B -11 -9 505 685 ; +C -1 ; WX 722 ; N Uring ; B 67 -18 744 904 ; +C -1 ; WX 556 ; N uring ; B 15 -9 492 729 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 289 214 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 75 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 251 214 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 439 84 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 224 214 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 55 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 328 51 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 196 214 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 212 84 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 54 214 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 251 214 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 111 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 224 214 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 270 214 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 28 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 52 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 196 214 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 203 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 240 175 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 111 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-BdItF b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-BdItF new file mode 100755 index 0000000000000..3e513cc1dbb2f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-BdItF @@ -0,0 +1,518 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Tue Dec 4 12:07:03 1990 +Comment UniqueID 33656 +Comment VMusage 33137 40029 +FontName Times-BoldItalicOsF +FullName Times Bold Italic Old Style Figures +FamilyName Times +Weight Bold +ItalicAngle -15 +IsFixedPitch false +FontBBox -200 -218 996 921 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 669 +XHeight 462 +Ascender 699 +Descender -205 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 389 ; N exclam ; B 67 -13 370 684 ; +C 34 ; WX 555 ; N quotedbl ; B 136 398 536 685 ; +C 35 ; WX 500 ; N numbersign ; B -33 0 533 700 ; +C 36 ; WX 500 ; N dollar ; B -20 -100 497 733 ; +C 37 ; WX 833 ; N percent ; B 39 -10 793 692 ; +C 38 ; WX 778 ; N ampersand ; B 5 -19 699 682 ; +C 39 ; WX 333 ; N quoteright ; B 98 369 302 685 ; +C 40 ; WX 333 ; N parenleft ; B 28 -179 344 685 ; +C 41 ; WX 333 ; N parenright ; B -44 -179 271 685 ; +C 42 ; WX 500 ; N asterisk ; B 65 249 456 685 ; +C 43 ; WX 570 ; N plus ; B 33 0 537 506 ; +C 44 ; WX 250 ; N comma ; B -60 -182 144 134 ; +C 45 ; WX 333 ; N hyphen ; B 2 166 271 282 ; +C 46 ; WX 250 ; N period ; B -9 -13 139 135 ; +C 47 ; WX 278 ; N slash ; B -64 -18 342 685 ; +C 48 ; WX 500 ; N zero ; B 20 -12 472 502 ; +C 49 ; WX 500 ; N one ; B 22 0 468 486 ; +C 50 ; WX 500 ; N two ; B 0 0 430 498 ; +C 51 ; WX 500 ; N three ; B -29 -194 432 498 ; +C 52 ; WX 500 ; N four ; B -26 -168 486 513 ; +C 53 ; WX 500 ; N five ; B -22 -194 477 486 ; +C 54 ; WX 500 ; N six ; B 32 -12 516 680 ; +C 55 ; WX 500 ; N seven ; B 44 -182 508 486 ; +C 56 ; WX 500 ; N eight ; B 24 -12 496 682 ; +C 57 ; WX 500 ; N nine ; B -24 -190 460 502 ; +C 58 ; WX 333 ; N colon ; B 23 -13 264 459 ; +C 59 ; WX 333 ; N semicolon ; B -25 -183 264 459 ; +C 60 ; WX 570 ; N less ; B 31 -8 539 514 ; +C 61 ; WX 570 ; N equal ; B 33 107 537 399 ; +C 62 ; WX 570 ; N greater ; B 31 -8 539 514 ; +C 63 ; WX 500 ; N question ; B 79 -13 470 684 ; +C 64 ; WX 832 ; N at ; B 63 -18 770 685 ; +C 65 ; WX 667 ; N A ; B -67 0 593 683 ; +C 66 ; WX 667 ; N B ; B -24 0 624 669 ; +C 67 ; WX 667 ; N C ; B 32 -18 677 685 ; +C 68 ; WX 722 ; N D ; B -46 0 685 669 ; +C 69 ; WX 667 ; N E ; B -27 0 653 669 ; +C 70 ; WX 667 ; N F ; B -13 0 660 669 ; +C 71 ; WX 722 ; N G ; B 21 -18 706 685 ; +C 72 ; WX 778 ; N H ; B -24 0 799 669 ; +C 73 ; WX 389 ; N I ; B -32 0 406 669 ; +C 74 ; WX 500 ; N J ; B -46 -99 524 669 ; +C 75 ; WX 667 ; N K ; B -21 0 702 669 ; +C 76 ; WX 611 ; N L ; B -22 0 590 669 ; +C 77 ; WX 889 ; N M ; B -29 -12 917 669 ; +C 78 ; WX 722 ; N N ; B -27 -15 748 669 ; +C 79 ; WX 722 ; N O ; B 27 -18 691 685 ; +C 80 ; WX 611 ; N P ; B -27 0 613 669 ; +C 81 ; WX 722 ; N Q ; B 27 -208 691 685 ; +C 82 ; WX 667 ; N R ; B -29 0 623 669 ; +C 83 ; WX 556 ; N S ; B 2 -18 526 685 ; +C 84 ; WX 611 ; N T ; B 50 0 650 669 ; +C 85 ; WX 722 ; N U ; B 67 -18 744 669 ; +C 86 ; WX 667 ; N V ; B 65 -18 715 669 ; +C 87 ; WX 889 ; N W ; B 65 -18 940 669 ; +C 88 ; WX 667 ; N X ; B -24 0 694 669 ; +C 89 ; WX 611 ; N Y ; B 73 0 659 669 ; +C 90 ; WX 611 ; N Z ; B -11 0 590 669 ; +C 91 ; WX 333 ; N bracketleft ; B -37 -159 362 674 ; +C 92 ; WX 278 ; N backslash ; B -1 -18 279 685 ; +C 93 ; WX 333 ; N bracketright ; B -56 -157 343 674 ; +C 94 ; WX 570 ; N asciicircum ; B 67 304 503 669 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 333 ; N quoteleft ; B 128 369 332 685 ; +C 97 ; WX 500 ; N a ; B -21 -14 455 462 ; +C 98 ; WX 500 ; N b ; B -14 -13 444 699 ; +C 99 ; WX 444 ; N c ; B -5 -13 392 462 ; +C 100 ; WX 500 ; N d ; B -21 -13 517 699 ; +C 101 ; WX 444 ; N e ; B 5 -13 398 462 ; +C 102 ; WX 333 ; N f ; B -169 -205 446 698 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B -52 -203 478 462 ; +C 104 ; WX 556 ; N h ; B -13 -9 498 699 ; +C 105 ; WX 278 ; N i ; B 2 -9 263 684 ; +C 106 ; WX 278 ; N j ; B -189 -207 279 684 ; +C 107 ; WX 500 ; N k ; B -23 -8 483 699 ; +C 108 ; WX 278 ; N l ; B 2 -9 290 699 ; +C 109 ; WX 778 ; N m ; B -14 -9 722 462 ; +C 110 ; WX 556 ; N n ; B -6 -9 493 462 ; +C 111 ; WX 500 ; N o ; B -3 -13 441 462 ; +C 112 ; WX 500 ; N p ; B -120 -205 446 462 ; +C 113 ; WX 500 ; N q ; B 1 -205 471 462 ; +C 114 ; WX 389 ; N r ; B -21 0 389 462 ; +C 115 ; WX 389 ; N s ; B -19 -13 333 462 ; +C 116 ; WX 278 ; N t ; B -11 -9 281 594 ; +C 117 ; WX 556 ; N u ; B 15 -9 492 462 ; +C 118 ; WX 444 ; N v ; B 16 -13 401 462 ; +C 119 ; WX 667 ; N w ; B 16 -13 614 462 ; +C 120 ; WX 500 ; N x ; B -46 -13 469 462 ; +C 121 ; WX 444 ; N y ; B -94 -205 392 462 ; +C 122 ; WX 389 ; N z ; B -43 -78 368 449 ; +C 123 ; WX 348 ; N braceleft ; B 5 -187 436 686 ; +C 124 ; WX 220 ; N bar ; B 66 -18 154 685 ; +C 125 ; WX 348 ; N braceright ; B -129 -187 302 686 ; +C 126 ; WX 570 ; N asciitilde ; B 54 173 516 333 ; +C 161 ; WX 389 ; N exclamdown ; B 19 -205 322 492 ; +C 162 ; WX 500 ; N cent ; B 42 -143 439 576 ; +C 163 ; WX 500 ; N sterling ; B -32 -12 510 683 ; +C 164 ; WX 167 ; N fraction ; B -169 -14 324 683 ; +C 165 ; WX 500 ; N yen ; B 33 0 628 669 ; +C 166 ; WX 500 ; N florin ; B -87 -156 537 707 ; +C 167 ; WX 500 ; N section ; B 36 -143 459 685 ; +C 168 ; WX 500 ; N currency ; B -26 34 526 586 ; +C 169 ; WX 278 ; N quotesingle ; B 128 398 268 685 ; +C 170 ; WX 500 ; N quotedblleft ; B 53 369 513 685 ; +C 171 ; WX 500 ; N guillemotleft ; B 12 32 468 415 ; +C 172 ; WX 333 ; N guilsinglleft ; B 32 32 303 415 ; +C 173 ; WX 333 ; N guilsinglright ; B 10 32 281 415 ; +C 174 ; WX 556 ; N fi ; B -188 -205 514 703 ; +C 175 ; WX 556 ; N fl ; B -186 -205 553 704 ; +C 177 ; WX 500 ; N endash ; B -40 178 477 269 ; +C 178 ; WX 500 ; N dagger ; B 91 -145 494 685 ; +C 179 ; WX 500 ; N daggerdbl ; B 10 -139 493 685 ; +C 180 ; WX 250 ; N periodcentered ; B 51 257 199 405 ; +C 182 ; WX 500 ; N paragraph ; B -57 -193 562 669 ; +C 183 ; WX 350 ; N bullet ; B 0 175 350 525 ; +C 184 ; WX 333 ; N quotesinglbase ; B -5 -182 199 134 ; +C 185 ; WX 500 ; N quotedblbase ; B -57 -182 403 134 ; +C 186 ; WX 500 ; N quotedblright ; B 53 369 513 685 ; +C 187 ; WX 500 ; N guillemotright ; B 12 32 468 415 ; +C 188 ; WX 1000 ; N ellipsis ; B 40 -13 852 135 ; +C 189 ; WX 1000 ; N perthousand ; B 7 -29 996 706 ; +C 191 ; WX 500 ; N questiondown ; B 30 -205 421 492 ; +C 193 ; WX 333 ; N grave ; B 85 516 297 697 ; +C 194 ; WX 333 ; N acute ; B 139 516 379 697 ; +C 195 ; WX 333 ; N circumflex ; B 40 516 367 690 ; +C 196 ; WX 333 ; N tilde ; B 48 536 407 655 ; +C 197 ; WX 333 ; N macron ; B 51 553 393 623 ; +C 198 ; WX 333 ; N breve ; B 71 516 387 678 ; +C 199 ; WX 333 ; N dotaccent ; B 163 525 293 655 ; +C 200 ; WX 333 ; N dieresis ; B 55 525 397 655 ; +C 202 ; WX 333 ; N ring ; B 127 516 340 729 ; +C 203 ; WX 333 ; N cedilla ; B -80 -218 156 5 ; +C 205 ; WX 333 ; N hungarumlaut ; B 69 516 498 697 ; +C 206 ; WX 333 ; N ogonek ; B -40 -173 189 44 ; +C 207 ; WX 333 ; N caron ; B 79 516 411 690 ; +C 208 ; WX 1000 ; N emdash ; B 84 178 852 269 ; +C 225 ; WX 944 ; N AE ; B -64 0 918 669 ; +C 227 ; WX 266 ; N ordfeminine ; B 16 399 330 685 ; +C 232 ; WX 611 ; N Lslash ; B -22 0 590 669 ; +C 233 ; WX 722 ; N Oslash ; B 27 -125 691 764 ; +C 234 ; WX 944 ; N OE ; B 23 -8 946 677 ; +C 235 ; WX 300 ; N ordmasculine ; B 56 400 347 685 ; +C 241 ; WX 722 ; N ae ; B -5 -13 673 462 ; +C 245 ; WX 278 ; N dotlessi ; B 2 -9 238 462 ; +C 248 ; WX 278 ; N lslash ; B -13 -9 301 699 ; +C 249 ; WX 500 ; N oslash ; B -3 -119 441 560 ; +C 250 ; WX 722 ; N oe ; B 6 -13 674 462 ; +C 251 ; WX 500 ; N germandbls ; B -200 -200 473 705 ; +C -1 ; WX 444 ; N ecircumflex ; B 5 -13 423 690 ; +C -1 ; WX 444 ; N edieresis ; B 5 -13 443 655 ; +C -1 ; WX 500 ; N aacute ; B -21 -14 463 697 ; +C -1 ; WX 747 ; N registered ; B 30 -18 718 685 ; +C -1 ; WX 278 ; N icircumflex ; B -2 -9 325 690 ; +C -1 ; WX 556 ; N udieresis ; B 15 -9 494 655 ; +C -1 ; WX 500 ; N ograve ; B -3 -13 441 697 ; +C -1 ; WX 556 ; N uacute ; B 15 -9 492 697 ; +C -1 ; WX 556 ; N ucircumflex ; B 15 -9 492 690 ; +C -1 ; WX 667 ; N Aacute ; B -67 0 593 904 ; +C -1 ; WX 278 ; N igrave ; B 2 -9 260 697 ; +C -1 ; WX 389 ; N Icircumflex ; B -32 0 420 897 ; +C -1 ; WX 444 ; N ccedilla ; B -25 -218 392 462 ; +C -1 ; WX 500 ; N adieresis ; B -21 -14 471 655 ; +C -1 ; WX 667 ; N Ecircumflex ; B -27 0 653 897 ; +C -1 ; WX 389 ; N scaron ; B -19 -13 439 690 ; +C -1 ; WX 500 ; N thorn ; B -120 -205 446 699 ; +C -1 ; WX 1000 ; N trademark ; B 32 263 968 669 ; +C -1 ; WX 444 ; N egrave ; B 5 -13 398 697 ; +C -1 ; WX 300 ; N threesuperior ; B 17 265 321 683 ; +C -1 ; WX 389 ; N zcaron ; B -43 -78 424 690 ; +C -1 ; WX 500 ; N atilde ; B -21 -14 491 655 ; +C -1 ; WX 500 ; N aring ; B -21 -14 455 729 ; +C -1 ; WX 500 ; N ocircumflex ; B -3 -13 451 690 ; +C -1 ; WX 667 ; N Edieresis ; B -27 0 653 862 ; +C -1 ; WX 750 ; N threequarters ; B 7 -14 726 683 ; +C -1 ; WX 444 ; N ydieresis ; B -94 -205 438 655 ; +C -1 ; WX 444 ; N yacute ; B -94 -205 435 697 ; +C -1 ; WX 278 ; N iacute ; B 2 -9 352 697 ; +C -1 ; WX 667 ; N Acircumflex ; B -67 0 593 897 ; +C -1 ; WX 722 ; N Uacute ; B 67 -18 744 904 ; +C -1 ; WX 444 ; N eacute ; B 5 -13 435 697 ; +C -1 ; WX 722 ; N Ograve ; B 27 -18 691 904 ; +C -1 ; WX 500 ; N agrave ; B -21 -14 455 697 ; +C -1 ; WX 722 ; N Udieresis ; B 67 -18 744 862 ; +C -1 ; WX 500 ; N acircumflex ; B -21 -14 455 690 ; +C -1 ; WX 389 ; N Igrave ; B -32 0 406 904 ; +C -1 ; WX 300 ; N twosuperior ; B 2 274 313 683 ; +C -1 ; WX 722 ; N Ugrave ; B 67 -18 744 904 ; +C -1 ; WX 750 ; N onequarter ; B 7 -14 721 683 ; +C -1 ; WX 722 ; N Ucircumflex ; B 67 -18 744 897 ; +C -1 ; WX 556 ; N Scaron ; B 2 -18 526 897 ; +C -1 ; WX 389 ; N Idieresis ; B -32 0 445 862 ; +C -1 ; WX 278 ; N idieresis ; B 2 -9 360 655 ; +C -1 ; WX 667 ; N Egrave ; B -27 0 653 904 ; +C -1 ; WX 722 ; N Oacute ; B 27 -18 691 904 ; +C -1 ; WX 570 ; N divide ; B 33 -29 537 535 ; +C -1 ; WX 667 ; N Atilde ; B -67 0 593 862 ; +C -1 ; WX 667 ; N Aring ; B -67 0 593 921 ; +C -1 ; WX 722 ; N Odieresis ; B 27 -18 691 862 ; +C -1 ; WX 667 ; N Adieresis ; B -67 0 593 862 ; +C -1 ; WX 722 ; N Ntilde ; B -27 -15 748 862 ; +C -1 ; WX 611 ; N Zcaron ; B -11 0 590 897 ; +C -1 ; WX 611 ; N Thorn ; B -27 0 573 669 ; +C -1 ; WX 389 ; N Iacute ; B -32 0 412 904 ; +C -1 ; WX 570 ; N plusminus ; B 33 0 537 506 ; +C -1 ; WX 570 ; N multiply ; B 48 16 522 490 ; +C -1 ; WX 667 ; N Eacute ; B -27 0 653 904 ; +C -1 ; WX 611 ; N Ydieresis ; B 73 0 659 862 ; +C -1 ; WX 300 ; N onesuperior ; B 30 274 301 683 ; +C -1 ; WX 556 ; N ugrave ; B 15 -9 492 697 ; +C -1 ; WX 606 ; N logicalnot ; B 51 108 555 399 ; +C -1 ; WX 556 ; N ntilde ; B -6 -9 504 655 ; +C -1 ; WX 722 ; N Otilde ; B 27 -18 691 862 ; +C -1 ; WX 500 ; N otilde ; B -3 -13 491 655 ; +C -1 ; WX 667 ; N Ccedilla ; B 32 -218 677 685 ; +C -1 ; WX 667 ; N Agrave ; B -67 0 593 904 ; +C -1 ; WX 750 ; N onehalf ; B -9 -14 723 683 ; +C -1 ; WX 722 ; N Eth ; B -31 0 700 669 ; +C -1 ; WX 400 ; N degree ; B 83 397 369 683 ; +C -1 ; WX 611 ; N Yacute ; B 73 0 659 904 ; +C -1 ; WX 722 ; N Ocircumflex ; B 27 -18 691 897 ; +C -1 ; WX 500 ; N oacute ; B -3 -13 463 697 ; +C -1 ; WX 576 ; N mu ; B -60 -207 516 449 ; +C -1 ; WX 606 ; N minus ; B 51 209 555 297 ; +C -1 ; WX 500 ; N eth ; B -3 -13 454 699 ; +C -1 ; WX 500 ; N odieresis ; B -3 -13 466 655 ; +C -1 ; WX 747 ; N copyright ; B 30 -18 718 685 ; +C -1 ; WX 220 ; N brokenbar ; B 66 -18 154 685 ; +EndCharMetrics +StartKernData +StartKernPairs 170 + +KPX A y -74 +KPX A w -74 +KPX A v -74 +KPX A u -30 +KPX A quoteright -74 +KPX A Y -70 +KPX A W -100 +KPX A V -95 +KPX A U -50 +KPX A T -55 +KPX A Q -55 +KPX A O -50 +KPX A G -60 +KPX A C -65 + +KPX B U -10 +KPX B A -25 + +KPX D Y -50 +KPX D W -40 +KPX D V -50 +KPX D A -25 + +KPX F r -50 +KPX F period -129 +KPX F o -70 +KPX F i -40 +KPX F e -100 +KPX F comma -129 +KPX F a -95 +KPX F A -100 + +KPX J u -40 +KPX J period -10 +KPX J o -40 +KPX J e -40 +KPX J comma -10 +KPX J a -40 +KPX J A -25 + +KPX K y -20 +KPX K u -20 +KPX K o -25 +KPX K e -25 +KPX K O -30 + +KPX L y -37 +KPX L quoteright -55 +KPX L Y -37 +KPX L W -37 +KPX L V -37 +KPX L T -18 + +KPX N A -30 + +KPX O Y -50 +KPX O X -40 +KPX O W -50 +KPX O V -50 +KPX O T -40 +KPX O A -40 + +KPX P period -129 +KPX P o -55 +KPX P e -50 +KPX P comma -129 +KPX P a -40 +KPX P A -85 + +KPX Q U -10 + +KPX R Y -18 +KPX R W -18 +KPX R V -18 +KPX R U -40 +KPX R T -30 +KPX R O -40 + +KPX T y -37 +KPX T w -37 +KPX T u -37 +KPX T semicolon -74 +KPX T r -37 +KPX T period -92 +KPX T o -95 +KPX T i -37 +KPX T hyphen -92 +KPX T e -92 +KPX T comma -92 +KPX T colon -74 +KPX T a -92 +KPX T O -18 +KPX T A -55 + +KPX U A -45 + +KPX V u -55 +KPX V semicolon -74 +KPX V period -129 +KPX V o -111 +KPX V i -55 +KPX V hyphen -70 +KPX V e -111 +KPX V comma -129 +KPX V colon -74 +KPX V a -111 +KPX V O -30 +KPX V G -10 +KPX V A -85 + +KPX W y -55 +KPX W u -55 +KPX W semicolon -55 +KPX W period -74 +KPX W o -80 +KPX W i -37 +KPX W hyphen -50 +KPX W e -90 +KPX W comma -74 +KPX W colon -55 +KPX W a -85 +KPX W O -15 +KPX W A -74 + +KPX Y u -92 +KPX Y semicolon -92 +KPX Y period -74 +KPX Y o -111 +KPX Y i -55 +KPX Y hyphen -92 +KPX Y e -111 +KPX Y comma -92 +KPX Y colon -92 +KPX Y a -92 +KPX Y O -25 +KPX Y A -74 + +KPX b u -20 +KPX b period -40 +KPX b b -10 + +KPX c k -10 +KPX c h -10 + +KPX comma quoteright -95 +KPX comma quotedblright -95 + +KPX e b -10 + +KPX f quoteright 55 +KPX f period -10 +KPX f o -10 +KPX f f -18 +KPX f e -10 +KPX f dotlessi -30 +KPX f comma -10 + +KPX k o -10 +KPX k e -30 + +KPX n v -40 + +KPX o y -10 +KPX o x -10 +KPX o w -25 +KPX o v -15 + +KPX period quoteright -95 +KPX period quotedblright -95 + +KPX quoteleft quoteleft -74 + +KPX quoteright v -15 +KPX quoteright t -37 +KPX quoteright space -74 +KPX quoteright s -74 +KPX quoteright r -15 +KPX quoteright quoteright -74 +KPX quoteright d -15 + +KPX r period -65 +KPX r comma -65 + +KPX space Y -70 +KPX space W -70 +KPX space V -70 +KPX space A -37 + +KPX v period -37 +KPX v o -15 +KPX v e -15 +KPX v comma -37 + +KPX w period -37 +KPX w o -15 +KPX w e -10 +KPX w comma -37 +KPX w a -10 + +KPX x e -10 + +KPX y period -37 +KPX y comma -37 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 172 207 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 187 207 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 167 207 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 172 207 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 157 192 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 167 207 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 172 207 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 187 207 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 187 207 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 172 207 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 33 207 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 53 207 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 48 207 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 33 207 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 210 207 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 200 207 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 230 207 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 215 207 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 200 207 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 215 207 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 112 207 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 210 207 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 230 207 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 230 207 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 200 207 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 154 207 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 169 207 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 207 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 84 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 84 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 74 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 74 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 84 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 84 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 56 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 56 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 46 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 46 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -42 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -37 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -37 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 97 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 84 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 84 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 69 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 74 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 84 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 28 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 112 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 112 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 97 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 102 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 56 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 41 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 13 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-BdItF+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-BdItF+ new file mode 100755 index 0000000000000..23f3f8c5dcc5f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-BdItF+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 667 ; N Ccaron ; B 32 -18 700 904 ; +C -1 ; WX 444 ; N ccaron ; B -5 -13 486 690 ; +C -1 ; WX 722 ; N Dcaron ; B -46 0 685 904 ; +C -1 ; WX 643 ; N dcaron ; B -21 -13 741 769 ; +C -1 ; WX 667 ; N Ecaron ; B -27 0 653 904 ; +C -1 ; WX 444 ; N ecaron ; B 5 -13 466 690 ; +C -1 ; WX 611 ; N Lcaron ; B -22 0 630 736 ; +C -1 ; WX 611 ; N Lacute ; B -22 0 590 911 ; +C -1 ; WX 421 ; N lcaron ; B 2 -9 514 769 ; +C -1 ; WX 278 ; N lacute ; B 2 -9 433 911 ; +C -1 ; WX 722 ; N Ncaron ; B -27 -15 748 904 ; +C -1 ; WX 556 ; N ncaron ; B -6 -9 522 690 ; +C -1 ; WX 667 ; N Rcaron ; B -29 0 635 904 ; +C -1 ; WX 667 ; N Racute ; B -29 0 649 911 ; +C -1 ; WX 389 ; N rcaron ; B -21 0 439 690 ; +C -1 ; WX 389 ; N racute ; B -21 0 431 697 ; +C -1 ; WX 611 ; N Tcaron ; B 50 0 650 904 ; +C -1 ; WX 421 ; N tcaron ; B -11 -9 505 685 ; +C -1 ; WX 722 ; N Uring ; B 67 -18 744 904 ; +C -1 ; WX 556 ; N uring ; B 15 -9 492 729 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 289 214 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 75 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 251 214 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 439 84 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 224 214 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 55 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 328 51 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 196 214 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 212 84 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 54 214 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 251 214 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 111 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 224 214 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 270 214 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 28 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 52 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 196 214 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 203 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 240 175 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 111 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-BdSC b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-BdSC new file mode 100755 index 0000000000000..3199d0922f733 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-BdSC @@ -0,0 +1,570 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Tue Dec 4 11:50:51 1990 +Comment UniqueID 33653 +Comment VMusage 30950 37842 +FontName Times-BoldSC +FullName Times Bold Small Caps & Old Style Figures +FamilyName Times +Weight Bold +ItalicAngle 0 +IsFixedPitch false +FontBBox -168 -218 1012 935 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 676 +XHeight 494 +Ascender 494 +Descender 0 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 81 -13 251 691 ; +C 34 ; WX 555 ; N quotedbl ; B 83 404 472 691 ; +C 35 ; WX 500 ; N numbersign ; B 4 0 496 700 ; +C 36 ; WX 500 ; N dollar ; B 29 -99 472 750 ; +C 37 ; WX 1000 ; N percent ; B 124 -14 877 692 ; +C 38 ; WX 833 ; N ampersand ; B 62 -16 787 691 ; +C 39 ; WX 333 ; N quoteright ; B 79 356 263 691 ; +C 40 ; WX 333 ; N parenleft ; B 46 -168 306 694 ; +C 41 ; WX 333 ; N parenright ; B 27 -168 287 694 ; +C 42 ; WX 500 ; N asterisk ; B 56 255 447 691 ; +C 43 ; WX 570 ; N plus ; B 33 0 537 506 ; +C 44 ; WX 250 ; N comma ; B 39 -180 223 155 ; +C 45 ; WX 333 ; N hyphen ; B 44 171 287 287 ; +C 46 ; WX 250 ; N period ; B 41 -13 210 156 ; +C 47 ; WX 278 ; N slash ; B -24 -19 302 691 ; +C 48 ; WX 500 ; N zero ; B 20 -12 470 506 ; +C 49 ; WX 500 ; N one ; B 70 0 420 494 ; +C 50 ; WX 500 ; N two ; B 32 0 451 506 ; +C 51 ; WX 500 ; N three ; B 16 -190 466 506 ; +C 52 ; WX 500 ; N four ; B 20 -168 476 519 ; +C 53 ; WX 500 ; N five ; B 16 -190 462 494 ; +C 54 ; WX 500 ; N six ; B 26 -12 468 690 ; +C 55 ; WX 500 ; N seven ; B 24 -174 476 494 ; +C 56 ; WX 500 ; N eight ; B 26 -12 470 690 ; +C 57 ; WX 500 ; N nine ; B 22 -190 464 506 ; +C 58 ; WX 333 ; N colon ; B 82 -13 251 472 ; +C 59 ; WX 333 ; N semicolon ; B 82 -180 266 472 ; +C 60 ; WX 570 ; N less ; B 31 -8 539 514 ; +C 61 ; WX 570 ; N equal ; B 33 107 537 399 ; +C 62 ; WX 570 ; N greater ; B 31 -8 539 514 ; +C 63 ; WX 500 ; N question ; B 57 -13 445 689 ; +C 64 ; WX 930 ; N at ; B 108 -19 822 691 ; +C 65 ; WX 722 ; N A ; B 9 0 689 690 ; +C 66 ; WX 667 ; N B ; B 16 0 619 676 ; +C 67 ; WX 722 ; N C ; B 49 -19 687 691 ; +C 68 ; WX 722 ; N D ; B 14 0 690 676 ; +C 69 ; WX 667 ; N E ; B 16 0 641 676 ; +C 70 ; WX 611 ; N F ; B 16 0 583 676 ; +C 71 ; WX 778 ; N G ; B 37 -19 755 691 ; +C 72 ; WX 778 ; N H ; B 21 0 759 676 ; +C 73 ; WX 389 ; N I ; B 20 0 370 676 ; +C 74 ; WX 500 ; N J ; B 3 -96 479 676 ; +C 75 ; WX 778 ; N K ; B 30 0 769 676 ; +C 76 ; WX 667 ; N L ; B 19 0 638 676 ; +C 77 ; WX 944 ; N M ; B 14 0 921 676 ; +C 78 ; WX 722 ; N N ; B 16 -18 701 676 ; +C 79 ; WX 778 ; N O ; B 35 -19 743 691 ; +C 80 ; WX 611 ; N P ; B 16 0 600 676 ; +C 81 ; WX 778 ; N Q ; B 35 -176 743 691 ; +C 82 ; WX 722 ; N R ; B 26 0 715 676 ; +C 83 ; WX 556 ; N S ; B 35 -19 513 692 ; +C 84 ; WX 667 ; N T ; B 31 0 636 676 ; +C 85 ; WX 722 ; N U ; B 16 -19 701 676 ; +C 86 ; WX 722 ; N V ; B 16 -18 701 676 ; +C 87 ; WX 1000 ; N W ; B 19 -15 981 676 ; +C 88 ; WX 722 ; N X ; B 16 0 699 676 ; +C 89 ; WX 722 ; N Y ; B 15 0 699 676 ; +C 90 ; WX 667 ; N Z ; B 28 0 634 676 ; +C 91 ; WX 333 ; N bracketleft ; B 67 -149 301 678 ; +C 92 ; WX 278 ; N backslash ; B -25 -19 303 691 ; +C 93 ; WX 333 ; N bracketright ; B 32 -149 266 678 ; +C 94 ; WX 581 ; N asciicircum ; B 73 311 509 676 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 333 ; N quoteleft ; B 70 356 254 691 ; +C 97 ; WX 556 ; N a ; B 16 0 530 506 ; +C 98 ; WX 556 ; N b ; B 20 0 512 494 ; +C 99 ; WX 556 ; N c ; B 26 -12 513 506 ; +C 100 ; WX 611 ; N d ; B 20 0 568 494 ; +C 101 ; WX 556 ; N e ; B 19 0 509 494 ; +C 102 ; WX 500 ; N f ; B 16 0 462 494 ; L i fi ; L l fl ; +C 103 ; WX 611 ; N g ; B 32 -12 563 509 ; +C 104 ; WX 611 ; N h ; B 14 0 589 494 ; +C 105 ; WX 333 ; N i ; B 28 0 301 494 ; +C 106 ; WX 444 ; N j ; B 14 -80 412 494 ; +C 107 ; WX 611 ; N k ; B 16 0 590 494 ; +C 108 ; WX 556 ; N l ; B 18 0 512 494 ; +C 109 ; WX 722 ; N m ; B 14 0 699 494 ; +C 110 ; WX 556 ; N n ; B 14 -12 530 494 ; +C 111 ; WX 611 ; N o ; B 30 -12 572 506 ; +C 112 ; WX 500 ; N p ; B 16 0 484 494 ; +C 113 ; WX 611 ; N q ; B 30 -170 572 506 ; +C 114 ; WX 611 ; N r ; B 22 0 590 494 ; +C 115 ; WX 444 ; N s ; B 30 -12 408 506 ; +C 116 ; WX 556 ; N t ; B 22 0 524 494 ; +C 117 ; WX 611 ; N u ; B 21 -12 579 494 ; +C 118 ; WX 556 ; N v ; B 16 -12 530 494 ; +C 119 ; WX 778 ; N w ; B 8 -12 752 494 ; +C 120 ; WX 556 ; N x ; B 16 0 534 494 ; +C 121 ; WX 556 ; N y ; B 16 0 532 494 ; +C 122 ; WX 500 ; N z ; B 14 0 468 494 ; +C 123 ; WX 394 ; N braceleft ; B 22 -175 340 698 ; +C 124 ; WX 220 ; N bar ; B 66 -19 154 691 ; +C 125 ; WX 394 ; N braceright ; B 54 -175 372 698 ; +C 126 ; WX 520 ; N asciitilde ; B 29 173 491 333 ; +C 161 ; WX 333 ; N exclamdown ; B 82 -203 252 501 ; +C 162 ; WX 500 ; N cent ; B 53 -140 458 588 ; +C 163 ; WX 500 ; N sterling ; B 21 -14 477 684 ; +C 164 ; WX 167 ; N fraction ; B -168 -12 329 688 ; +C 165 ; WX 500 ; N yen ; B -64 0 547 676 ; +C 166 ; WX 500 ; N florin ; B 0 -155 498 706 ; +C 167 ; WX 500 ; N section ; B 57 -132 443 691 ; +C 168 ; WX 667 ; N currency ; B 34 -12 624 512 ; +C 169 ; WX 278 ; N quotesingle ; B 75 404 204 691 ; +C 170 ; WX 500 ; N quotedblleft ; B 32 356 486 691 ; +C 171 ; WX 500 ; N guillemotleft ; B 23 36 473 415 ; +C 172 ; WX 333 ; N guilsinglleft ; B 51 36 305 415 ; +C 173 ; WX 333 ; N guilsinglright ; B 28 36 282 415 ; +C 174 ; WX 833 ; N fi ; B 16 0 801 494 ; +C 175 ; WX 1056 ; N fl ; B 16 0 1012 494 ; +C 177 ; WX 500 ; N endash ; B 0 181 500 271 ; +C 178 ; WX 500 ; N dagger ; B 47 -134 453 691 ; +C 179 ; WX 500 ; N daggerdbl ; B 45 -132 456 691 ; +C 180 ; WX 250 ; N periodcentered ; B 41 248 210 417 ; +C 182 ; WX 540 ; N paragraph ; B 0 -186 519 676 ; +C 183 ; WX 350 ; N bullet ; B 35 198 315 478 ; +C 184 ; WX 333 ; N quotesinglbase ; B 79 -180 263 155 ; +C 185 ; WX 500 ; N quotedblbase ; B 14 -180 468 155 ; +C 186 ; WX 500 ; N quotedblright ; B 14 356 468 691 ; +C 187 ; WX 500 ; N guillemotright ; B 27 36 477 415 ; +C 188 ; WX 1000 ; N ellipsis ; B 82 -13 917 156 ; +C 189 ; WX 1000 ; N perthousand ; B 7 -29 995 706 ; +C 191 ; WX 500 ; N questiondown ; B 55 -201 443 501 ; +C 193 ; WX 333 ; N grave ; B 8 561 246 746 ; +C 194 ; WX 333 ; N acute ; B 86 561 324 746 ; +C 195 ; WX 333 ; N circumflex ; B -2 561 335 737 ; +C 196 ; WX 333 ; N tilde ; B -16 580 349 707 ; +C 197 ; WX 333 ; N macron ; B 1 598 331 670 ; +C 198 ; WX 333 ; N breve ; B 15 561 318 724 ; +C 199 ; WX 333 ; N dotaccent ; B 103 570 230 700 ; +C 200 ; WX 333 ; N dieresis ; B -2 570 335 700 ; +C 202 ; WX 333 ; N ring ; B 60 560 273 773 ; +C 203 ; WX 333 ; N cedilla ; B 68 -218 294 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B -13 561 425 746 ; +C 206 ; WX 333 ; N ogonek ; B 90 -173 319 44 ; +C 207 ; WX 333 ; N caron ; B -2 561 335 737 ; +C 208 ; WX 1000 ; N emdash ; B 125 181 875 271 ; +C 225 ; WX 1000 ; N AE ; B 4 0 951 676 ; +C 227 ; WX 300 ; N ordfeminine ; B -1 397 301 688 ; +C 232 ; WX 667 ; N Lslash ; B 19 0 638 676 ; +C 233 ; WX 778 ; N Oslash ; B 35 -74 743 737 ; +C 234 ; WX 1000 ; N OE ; B 22 -5 981 684 ; +C 235 ; WX 330 ; N ordmasculine ; B 18 397 312 688 ; +C 241 ; WX 778 ; N ae ; B 14 0 745 494 ; +C 245 ; WX 333 ; N dotlessi ; B 28 0 301 494 ; +C 248 ; WX 556 ; N lslash ; B -4 0 512 494 ; +C 249 ; WX 611 ; N oslash ; B 30 -92 572 569 ; +C 250 ; WX 833 ; N oe ; B 32 -8 798 502 ; +C 251 ; WX 888 ; N germandbls ; B 30 -12 852 506 ; +C -1 ; WX 556 ; N ecircumflex ; B 19 0 509 737 ; +C -1 ; WX 556 ; N edieresis ; B 19 0 509 700 ; +C -1 ; WX 556 ; N aacute ; B 16 0 530 746 ; +C -1 ; WX 747 ; N registered ; B 26 -19 721 691 ; +C -1 ; WX 333 ; N icircumflex ; B -9 0 328 737 ; +C -1 ; WX 611 ; N udieresis ; B 21 -12 579 700 ; +C -1 ; WX 611 ; N ograve ; B 30 -12 572 746 ; +C -1 ; WX 611 ; N uacute ; B 21 -12 579 746 ; +C -1 ; WX 611 ; N ucircumflex ; B 21 -12 579 737 ; +C -1 ; WX 722 ; N Aacute ; B 9 0 689 923 ; +C -1 ; WX 333 ; N igrave ; B 1 0 301 746 ; +C -1 ; WX 389 ; N Icircumflex ; B 20 0 370 914 ; +C -1 ; WX 556 ; N ccedilla ; B 26 -218 513 506 ; +C -1 ; WX 556 ; N adieresis ; B 16 0 530 700 ; +C -1 ; WX 667 ; N Ecircumflex ; B 16 0 641 914 ; +C -1 ; WX 444 ; N scaron ; B 30 -12 408 737 ; +C -1 ; WX 500 ; N thorn ; B 28 0 514 494 ; +C -1 ; WX 1000 ; N trademark ; B 24 271 977 676 ; +C -1 ; WX 556 ; N egrave ; B 19 0 509 746 ; +C -1 ; WX 300 ; N threesuperior ; B 3 268 297 688 ; +C -1 ; WX 500 ; N zcaron ; B 14 0 468 737 ; +C -1 ; WX 556 ; N atilde ; B 16 0 530 707 ; +C -1 ; WX 556 ; N aring ; B 16 0 530 773 ; +C -1 ; WX 611 ; N ocircumflex ; B 30 -12 572 737 ; +C -1 ; WX 667 ; N Edieresis ; B 16 0 641 877 ; +C -1 ; WX 750 ; N threequarters ; B 23 -12 733 688 ; +C -1 ; WX 556 ; N ydieresis ; B 16 0 532 700 ; +C -1 ; WX 556 ; N yacute ; B 16 0 532 746 ; +C -1 ; WX 333 ; N iacute ; B 28 0 317 746 ; +C -1 ; WX 722 ; N Acircumflex ; B 9 0 689 914 ; +C -1 ; WX 722 ; N Uacute ; B 16 -19 701 923 ; +C -1 ; WX 556 ; N eacute ; B 19 0 509 746 ; +C -1 ; WX 778 ; N Ograve ; B 35 -19 743 923 ; +C -1 ; WX 556 ; N agrave ; B 16 0 530 746 ; +C -1 ; WX 722 ; N Udieresis ; B 16 -19 701 877 ; +C -1 ; WX 556 ; N acircumflex ; B 16 0 530 737 ; +C -1 ; WX 389 ; N Igrave ; B 20 0 370 923 ; +C -1 ; WX 300 ; N twosuperior ; B 0 275 300 688 ; +C -1 ; WX 722 ; N Ugrave ; B 16 -19 701 923 ; +C -1 ; WX 750 ; N onequarter ; B 28 -12 743 688 ; +C -1 ; WX 722 ; N Ucircumflex ; B 16 -19 701 914 ; +C -1 ; WX 556 ; N Scaron ; B 35 -19 513 914 ; +C -1 ; WX 389 ; N Idieresis ; B 20 0 370 877 ; +C -1 ; WX 333 ; N idieresis ; B -9 0 328 700 ; +C -1 ; WX 667 ; N Egrave ; B 16 0 641 923 ; +C -1 ; WX 778 ; N Oacute ; B 35 -19 743 923 ; +C -1 ; WX 570 ; N divide ; B 33 -31 537 537 ; +C -1 ; WX 722 ; N Atilde ; B 9 0 689 884 ; +C -1 ; WX 722 ; N Aring ; B 9 0 689 935 ; +C -1 ; WX 778 ; N Odieresis ; B 35 -19 743 877 ; +C -1 ; WX 722 ; N Adieresis ; B 9 0 689 877 ; +C -1 ; WX 722 ; N Ntilde ; B 16 -18 701 884 ; +C -1 ; WX 667 ; N Zcaron ; B 28 0 634 914 ; +C -1 ; WX 611 ; N Thorn ; B 16 0 600 676 ; +C -1 ; WX 389 ; N Iacute ; B 20 0 370 923 ; +C -1 ; WX 570 ; N plusminus ; B 33 0 537 506 ; +C -1 ; WX 570 ; N multiply ; B 48 16 522 490 ; +C -1 ; WX 667 ; N Eacute ; B 16 0 641 923 ; +C -1 ; WX 722 ; N Ydieresis ; B 15 0 699 877 ; +C -1 ; WX 300 ; N onesuperior ; B 28 275 273 688 ; +C -1 ; WX 611 ; N ugrave ; B 21 -12 579 746 ; +C -1 ; WX 570 ; N logicalnot ; B 33 108 537 399 ; +C -1 ; WX 556 ; N ntilde ; B 14 -12 530 707 ; +C -1 ; WX 778 ; N Otilde ; B 35 -19 743 884 ; +C -1 ; WX 611 ; N otilde ; B 30 -12 572 707 ; +C -1 ; WX 722 ; N Ccedilla ; B 49 -218 687 691 ; +C -1 ; WX 722 ; N Agrave ; B 9 0 689 923 ; +C -1 ; WX 750 ; N onehalf ; B -7 -12 775 688 ; +C -1 ; WX 722 ; N Eth ; B 6 0 690 676 ; +C -1 ; WX 400 ; N degree ; B 57 402 343 688 ; +C -1 ; WX 722 ; N Yacute ; B 15 0 699 928 ; +C -1 ; WX 778 ; N Ocircumflex ; B 35 -19 743 914 ; +C -1 ; WX 611 ; N oacute ; B 30 -12 572 746 ; +C -1 ; WX 556 ; N mu ; B 33 -206 536 461 ; +C -1 ; WX 570 ; N minus ; B 33 209 537 297 ; +C -1 ; WX 611 ; N eth ; B 14 0 568 494 ; +C -1 ; WX 611 ; N odieresis ; B 30 -12 572 700 ; +C -1 ; WX 747 ; N copyright ; B 26 -19 721 691 ; +C -1 ; WX 220 ; N brokenbar ; B 66 -19 154 691 ; +EndCharMetrics +StartKernData +StartKernPairs 213 + +KPX A y -74 +KPX A w -90 +KPX A v -100 +KPX A u -50 +KPX A t -37 +KPX A quoteright -74 +KPX A q -18 +KPX A o -18 +KPX A g -18 +KPX A c -18 +KPX A Y -100 +KPX A W -130 +KPX A V -145 +KPX A U -50 +KPX A T -95 +KPX A Q -45 +KPX A O -45 +KPX A G -45 +KPX A C -45 + +KPX B a -18 +KPX B U -10 +KPX B A -30 + +KPX C a -18 + +KPX D period -20 +KPX D a -37 +KPX D Y -40 +KPX D W -40 +KPX D V -40 +KPX D A -35 + +KPX F period -110 +KPX F o -25 +KPX F j -18 +KPX F e -25 +KPX F comma -92 +KPX F a -55 +KPX F J -18 +KPX F A -72 + +KPX J u -15 +KPX J period -20 +KPX J o -15 +KPX J a -15 +KPX J A -30 + +KPX K y -45 +KPX K u -15 +KPX K o -25 +KPX K O -30 + +KPX L y -55 +KPX L w -18 +KPX L v -18 +KPX L t -18 +KPX L quoteright -110 +KPX L quotedblright -20 +KPX L Y -92 +KPX L W -92 +KPX L V -92 +KPX L T -92 + +KPX N A -20 + +KPX O a -18 +KPX O Y -37 +KPX O X -40 +KPX O W -37 +KPX O V -37 +KPX O T -37 +KPX O A -40 + +KPX P period -110 +KPX P comma -92 +KPX P a -55 +KPX P A -55 + +KPX Q period -20 +KPX Q U -10 + +KPX R Y -35 +KPX R W -35 +KPX R V -55 +KPX R U -18 +KPX R T -40 + +KPX S V -18 + +KPX T y -74 +KPX T w -74 +KPX T u -74 +KPX T semicolon -74 +KPX T r -55 +KPX T period -90 +KPX T o -55 +KPX T j -37 +KPX T i -18 +KPX T hyphen -92 +KPX T e -37 +KPX T comma -74 +KPX T colon -74 +KPX T a -92 +KPX T J -18 +KPX T A -74 + +KPX U period -50 +KPX U comma -50 +KPX U a -37 +KPX U A -60 + +KPX V u -92 +KPX V semicolon -92 +KPX V period -145 +KPX V o -74 +KPX V i -37 +KPX V hyphen -74 +KPX V g -74 +KPX V e -100 +KPX V comma -129 +KPX V colon -92 +KPX V a -142 +KPX V O -45 +KPX V G -45 +KPX V A -135 + +KPX W y -60 +KPX W u -50 +KPX W semicolon -55 +KPX W period -92 +KPX W o -75 +KPX W i -37 +KPX W hyphen -37 +KPX W h -37 +KPX W e -55 +KPX W comma -92 +KPX W colon -55 +KPX W a -111 +KPX W O -18 +KPX W A -120 + +KPX Y u -92 +KPX Y semicolon -92 +KPX Y s -55 +KPX Y period -92 +KPX Y o -111 +KPX Y i -55 +KPX Y hyphen -92 +KPX Y e -92 +KPX Y comma -92 +KPX Y colon -92 +KPX Y c -37 +KPX Y a -111 +KPX Y O -35 +KPX Y C -35 +KPX Y A -110 + +KPX a y -74 +KPX a w -74 +KPX a v -74 +KPX a u -18 +KPX a t -37 +KPX a quoteright -37 +KPX a o -18 +KPX a g -18 +KPX a c -18 + +KPX b u -20 +KPX b period -40 + +KPX c a -18 + +KPX comma quoteright -55 +KPX comma quotedblright -45 + +KPX d y -18 +KPX d w -15 +KPX d v -18 +KPX d a -18 + +KPX f period -37 +KPX f comma -37 +KPX f a -55 + +KPX g period -15 + +KPX j a -18 + +KPX k o -15 + +KPX l y -37 +KPX l w -37 +KPX l t -18 +KPX l quoteright -55 + +KPX n a -18 + +KPX o y -18 +KPX o w -18 +KPX o v -18 +KPX o a -18 + +KPX p period -37 +KPX p comma -37 +KPX p a -18 + +KPX period quoteright -55 +KPX period quotedblright -55 + +KPX quotedblleft A -10 + +KPX quoteleft quoteleft -63 +KPX quoteleft A -10 + +KPX quoteright quoteright -63 + +KPX r y -18 +KPX r v -10 +KPX r q -18 +KPX r o -18 +KPX r hyphen -37 + +KPX space Y -55 +KPX space W -30 +KPX space V -45 +KPX space T -30 +KPX space A -55 + +KPX t period -37 +KPX t j -18 +KPX t hyphen -37 +KPX t comma -37 +KPX t a -18 + +KPX u a -37 + +KPX v period -70 +KPX v o -37 +KPX v hyphen -37 +KPX v g -37 +KPX v comma -55 +KPX v a -74 + +KPX w period -70 +KPX w o -37 +KPX w hyphen -37 +KPX w comma -55 +KPX w a -74 + +KPX y period -70 +KPX y o -25 +KPX y hyphen -37 +KPX y comma -55 +KPX y a -74 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 188 177 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 188 177 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 188 177 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 188 177 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 180 162 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 188 177 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 174 177 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 174 177 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 174 177 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 174 177 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 28 177 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 28 177 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 28 177 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 28 177 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 195 177 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 223 177 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 223 177 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 223 177 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 223 177 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 223 177 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 112 177 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 222 177 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 222 177 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 222 177 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 222 177 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 210 182 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 215 177 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 167 177 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 105 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 105 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 105 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 105 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 105 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 105 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 118 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 118 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 118 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 118 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -7 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -7 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -7 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -7 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 112 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 139 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 139 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 139 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 139 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 139 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 56 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 132 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 132 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 132 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 132 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 112 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 112 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 84 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-BdSC+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-BdSC+ new file mode 100755 index 0000000000000..7809474625ea1 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-BdSC+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 722 ; N Ccaron ; B 49 -19 687 914 ; +C -1 ; WX 556 ; N ccaron ; B 26 -12 513 737 ; +C -1 ; WX 722 ; N Dcaron ; B 14 0 690 914 ; +C -1 ; WX 740 ; N dcaron ; B 20 0 770 543 ; +C -1 ; WX 667 ; N Ecaron ; B 16 0 641 914 ; +C -1 ; WX 556 ; N ecaron ; B 19 0 509 737 ; +C -1 ; WX 667 ; N Lcaron ; B 19 0 638 744 ; +C -1 ; WX 667 ; N Lacute ; B 19 0 638 923 ; +C -1 ; WX 685 ; N lcaron ; B 18 0 714 543 ; +C -1 ; WX 556 ; N lacute ; B 18 0 512 923 ; +C -1 ; WX 722 ; N Ncaron ; B 16 -18 701 914 ; +C -1 ; WX 556 ; N ncaron ; B 14 -12 530 737 ; +C -1 ; WX 722 ; N Rcaron ; B 26 0 715 914 ; +C -1 ; WX 722 ; N Racute ; B 26 0 715 923 ; +C -1 ; WX 611 ; N rcaron ; B 22 0 590 737 ; +C -1 ; WX 611 ; N racute ; B 22 0 590 746 ; +C -1 ; WX 667 ; N Tcaron ; B 31 0 636 914 ; +C -1 ; WX 685 ; N tcaron ; B 22 0 726 691 ; +C -1 ; WX 722 ; N Uring ; B 16 -19 701 914 ; +C -1 ; WX 611 ; N uring ; B 21 -12 579 773 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 258 177 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 135 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 194 177 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 507 -148 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 167 177 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 111 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 309 53 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 167 177 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 451 -148 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 135 177 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 194 177 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 111 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 194 177 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 239 177 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 139 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 163 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 167 177 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 463 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 194 141 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 139 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-ExBd b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-ExBd new file mode 100755 index 0000000000000..49cf056a394b7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-ExBd @@ -0,0 +1,420 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Mon Oct 29 15:49:23 1990 +Comment UniqueID 33198 +Comment VMusage 29419 36311 +FontName Times-ExtraBold +FullName Times Extra Bold +FamilyName Times +Weight ExtraBold +ItalicAngle 0 +IsFixedPitch false +FontBBox -167 -224 1032 972 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 712 +XHeight 488 +Ascender 712 +Descender -166 +StartCharMetrics 228 +C 32 ; WX 259 ; N space ; B 0 0 0 0 ; +C 33 ; WX 278 ; N exclam ; B 42 -12 236 724 ; +C 34 ; WX 333 ; N quotedbl ; B 25 408 308 724 ; +C 35 ; WX 519 ; N numbersign ; B 8 0 512 712 ; +C 36 ; WX 519 ; N dollar ; B 12 -105 494 784 ; +C 37 ; WX 833 ; N percent ; B 40 -12 793 724 ; +C 38 ; WX 722 ; N ampersand ; B 16 -12 727 724 ; +C 39 ; WX 259 ; N quoteright ; B 19 338 239 724 ; +C 40 ; WX 370 ; N parenleft ; B 40 -166 364 724 ; +C 41 ; WX 370 ; N parenright ; B 6 -166 330 724 ; +C 42 ; WX 481 ; N asterisk ; B 38 280 442 724 ; +C 43 ; WX 600 ; N plus ; B 56 0 544 488 ; +C 44 ; WX 259 ; N comma ; B 18 -200 238 186 ; +C 45 ; WX 333 ; N hyphen ; B 36 184 297 304 ; +C 46 ; WX 259 ; N period ; B 28 -12 232 192 ; +C 47 ; WX 278 ; N slash ; B -30 -12 308 724 ; +C 48 ; WX 519 ; N zero ; B 24 -12 496 724 ; +C 49 ; WX 407 ; N one ; B -10 0 390 728 ; +C 50 ; WX 500 ; N two ; B -16 0 490 724 ; +C 51 ; WX 519 ; N three ; B -14 -12 488 724 ; +C 52 ; WX 519 ; N four ; B 0 0 519 712 ; +C 53 ; WX 500 ; N five ; B 14 -12 472 712 ; +C 54 ; WX 519 ; N six ; B 14 -12 510 724 ; +C 55 ; WX 444 ; N seven ; B 6 0 470 712 ; +C 56 ; WX 500 ; N eight ; B 20 -12 477 724 ; +C 57 ; WX 519 ; N nine ; B 12 -12 508 724 ; +C 58 ; WX 259 ; N colon ; B 28 -12 232 500 ; +C 59 ; WX 259 ; N semicolon ; B 18 -200 238 500 ; +C 60 ; WX 600 ; N less ; B 44 -8 534 496 ; +C 61 ; WX 600 ; N equal ; B 56 82 544 406 ; +C 62 ; WX 600 ; N greater ; B 66 -8 556 496 ; +C 63 ; WX 444 ; N question ; B 19 -12 424 724 ; +C 64 ; WX 800 ; N at ; B 36 -12 764 724 ; +C 65 ; WX 630 ; N A ; B -42 0 656 712 ; +C 66 ; WX 722 ; N B ; B 0 0 664 712 ; +C 67 ; WX 685 ; N C ; B 32 -12 640 724 ; +C 68 ; WX 778 ; N D ; B 0 0 754 712 ; +C 69 ; WX 722 ; N E ; B 10 0 675 712 ; +C 70 ; WX 630 ; N F ; B 0 0 618 712 ; +C 71 ; WX 722 ; N G ; B 20 -12 734 724 ; +C 72 ; WX 852 ; N H ; B 1 0 851 712 ; +C 73 ; WX 407 ; N I ; B 0 0 407 712 ; +C 74 ; WX 537 ; N J ; B -4 -12 550 712 ; +C 75 ; WX 741 ; N K ; B -4 0 790 712 ; +C 76 ; WX 611 ; N L ; B 0 0 611 712 ; +C 77 ; WX 981 ; N M ; B -2 0 983 712 ; +C 78 ; WX 778 ; N N ; B -2 0 780 712 ; +C 79 ; WX 815 ; N O ; B 20 -12 796 724 ; +C 80 ; WX 648 ; N P ; B -2 0 650 712 ; +C 81 ; WX 815 ; N Q ; B 20 -178 796 724 ; +C 82 ; WX 741 ; N R ; B 0 0 778 712 ; +C 83 ; WX 611 ; N S ; B 28 -12 594 724 ; +C 84 ; WX 704 ; N T ; B 28 0 676 712 ; +C 85 ; WX 741 ; N U ; B -10 -12 740 712 ; +C 86 ; WX 630 ; N V ; B -38 -12 682 712 ; +C 87 ; WX 1000 ; N W ; B -32 -12 1032 712 ; +C 88 ; WX 685 ; N X ; B -8 0 708 712 ; +C 89 ; WX 648 ; N Y ; B -44 0 664 712 ; +C 90 ; WX 648 ; N Z ; B -9 0 650 712 ; +C 91 ; WX 315 ; N bracketleft ; B 50 -166 272 712 ; +C 92 ; WX 278 ; N backslash ; B -74 -12 352 724 ; +C 93 ; WX 315 ; N bracketright ; B 43 -166 265 712 ; +C 94 ; WX 600 ; N asciicircum ; B 73 346 527 712 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 259 ; N quoteleft ; B 20 338 240 724 ; +C 97 ; WX 519 ; N a ; B 16 -12 518 500 ; +C 98 ; WX 556 ; N b ; B -12 -12 524 712 ; +C 99 ; WX 463 ; N c ; B 14 -12 476 500 ; +C 100 ; WX 574 ; N d ; B 32 -12 566 712 ; +C 101 ; WX 481 ; N e ; B 14 -12 468 500 ; +C 102 ; WX 333 ; N f ; B 12 0 414 724 ; L i fi ; L l fl ; +C 103 ; WX 519 ; N g ; B 24 -166 516 500 ; +C 104 ; WX 593 ; N h ; B 12 0 582 712 ; +C 105 ; WX 315 ; N i ; B 13 0 303 724 ; +C 106 ; WX 315 ; N j ; B -95 -178 252 724 ; +C 107 ; WX 574 ; N k ; B 13 0 601 712 ; +C 108 ; WX 315 ; N l ; B 13 0 303 712 ; +C 109 ; WX 852 ; N m ; B 12 0 840 500 ; +C 110 ; WX 593 ; N n ; B 12 0 582 500 ; +C 111 ; WX 537 ; N o ; B 15 -12 523 500 ; +C 112 ; WX 574 ; N p ; B -2 -166 542 500 ; +C 113 ; WX 556 ; N q ; B 32 -166 573 500 ; +C 114 ; WX 426 ; N r ; B 14 0 436 500 ; +C 115 ; WX 426 ; N s ; B 26 -12 410 500 ; +C 116 ; WX 352 ; N t ; B 12 -12 352 658 ; +C 117 ; WX 593 ; N u ; B 12 -12 582 488 ; +C 118 ; WX 426 ; N v ; B -16 -12 442 488 ; +C 119 ; WX 685 ; N w ; B -16 -12 700 488 ; +C 120 ; WX 500 ; N x ; B -31 0 531 488 ; +C 121 ; WX 444 ; N y ; B -30 -166 466 488 ; +C 122 ; WX 444 ; N z ; B 8 0 436 488 ; +C 123 ; WX 370 ; N braceleft ; B 43 -166 348 724 ; +C 124 ; WX 222 ; N bar ; B 51 0 171 712 ; +C 125 ; WX 370 ; N braceright ; B 22 -166 327 724 ; +C 126 ; WX 600 ; N asciitilde ; B 68 154 531 334 ; +C 161 ; WX 278 ; N exclamdown ; B 42 -178 236 558 ; +C 162 ; WX 519 ; N cent ; B 29 -112 491 598 ; +C 163 ; WX 519 ; N sterling ; B 20 -12 522 724 ; +C 164 ; WX 167 ; N fraction ; B -167 -12 334 724 ; +C 165 ; WX 519 ; N yen ; B -102 0 606 712 ; +C 166 ; WX 519 ; N florin ; B -2 -178 512 724 ; +C 167 ; WX 519 ; N section ; B 16 -166 504 724 ; +C 168 ; WX 519 ; N currency ; B -2 96 520 614 ; +C 169 ; WX 222 ; N quotesingle ; B 59 408 163 724 ; +C 170 ; WX 500 ; N quotedblleft ; B 11 338 490 724 ; +C 171 ; WX 500 ; N guillemotleft ; B 30 55 475 433 ; +C 172 ; WX 333 ; N guilsinglleft ; B 53 55 303 433 ; +C 173 ; WX 333 ; N guilsinglright ; B 30 55 280 433 ; +C 174 ; WX 648 ; N fi ; B 21 0 627 724 ; +C 175 ; WX 648 ; N fl ; B 21 0 628 724 ; +C 177 ; WX 500 ; N endash ; B 0 198 500 290 ; +C 178 ; WX 519 ; N dagger ; B 18 -166 500 724 ; +C 179 ; WX 519 ; N daggerdbl ; B 18 -166 500 724 ; +C 180 ; WX 259 ; N periodcentered ; B 28 142 232 346 ; +C 182 ; WX 620 ; N paragraph ; B 40 -166 565 712 ; +C 183 ; WX 500 ; N bullet ; B 72 178 428 534 ; +C 184 ; WX 259 ; N quotesinglbase ; B 18 -200 238 186 ; +C 185 ; WX 500 ; N quotedblbase ; B 10 -200 489 186 ; +C 186 ; WX 500 ; N quotedblright ; B 10 338 489 724 ; +C 187 ; WX 500 ; N guillemotright ; B 25 55 470 433 ; +C 188 ; WX 1000 ; N ellipsis ; B 65 -12 935 192 ; +C 189 ; WX 907 ; N perthousand ; B 22 -12 884 724 ; +C 191 ; WX 444 ; N questiondown ; B 20 -178 425 558 ; +C 193 ; WX 315 ; N grave ; B -6 556 240 746 ; +C 194 ; WX 315 ; N acute ; B 75 556 321 746 ; +C 195 ; WX 315 ; N circumflex ; B -18 556 333 734 ; +C 196 ; WX 315 ; N tilde ; B -32 576 348 710 ; +C 197 ; WX 315 ; N macron ; B -14 595 330 675 ; +C 198 ; WX 315 ; N breve ; B 0 556 314 724 ; +C 199 ; WX 315 ; N dotaccent ; B 87 563 227 703 ; +C 200 ; WX 315 ; N dieresis ; B -20 563 336 703 ; +C 202 ; WX 315 ; N ring ; B 50 556 266 772 ; +C 203 ; WX 315 ; N cedilla ; B 24 -220 258 0 ; +C 205 ; WX 315 ; N hungarumlaut ; B -30 556 414 746 ; +C 206 ; WX 315 ; N ogonek ; B 16 -224 282 21 ; +C 207 ; WX 315 ; N caron ; B -18 556 333 734 ; +C 208 ; WX 1000 ; N emdash ; B 0 198 1000 290 ; +C 225 ; WX 1000 ; N AE ; B -75 0 964 712 ; +C 227 ; WX 311 ; N ordfeminine ; B -8 416 319 724 ; +C 232 ; WX 611 ; N Lslash ; B 0 0 611 712 ; +C 233 ; WX 815 ; N Oslash ; B 20 -58 796 766 ; +C 234 ; WX 1000 ; N OE ; B 6 0 1006 712 ; +C 235 ; WX 322 ; N ordmasculine ; B -4 416 326 724 ; +C 241 ; WX 759 ; N ae ; B 19 -12 739 500 ; +C 245 ; WX 315 ; N dotlessi ; B 13 0 303 488 ; +C 248 ; WX 315 ; N lslash ; B -5 0 321 712 ; +C 249 ; WX 537 ; N oslash ; B 15 -50 523 544 ; +C 250 ; WX 796 ; N oe ; B 14 -12 782 500 ; +C 251 ; WX 556 ; N germandbls ; B 0 0 542 724 ; +C -1 ; WX 481 ; N ecircumflex ; B 14 -12 468 734 ; +C -1 ; WX 481 ; N edieresis ; B 14 -12 468 703 ; +C -1 ; WX 519 ; N aacute ; B 16 -12 518 746 ; +C -1 ; WX 800 ; N registered ; B 40 -12 760 724 ; +C -1 ; WX 315 ; N icircumflex ; B -18 0 333 734 ; +C -1 ; WX 593 ; N udieresis ; B 12 -12 582 703 ; +C -1 ; WX 537 ; N ograve ; B 15 -12 523 746 ; +C -1 ; WX 593 ; N uacute ; B 12 -12 582 746 ; +C -1 ; WX 593 ; N ucircumflex ; B 12 -12 582 734 ; +C -1 ; WX 630 ; N Aacute ; B -42 0 656 946 ; +C -1 ; WX 315 ; N igrave ; B -6 0 303 746 ; +C -1 ; WX 407 ; N Icircumflex ; B 0 0 407 934 ; +C -1 ; WX 463 ; N ccedilla ; B 14 -220 476 500 ; +C -1 ; WX 519 ; N adieresis ; B 16 -12 518 703 ; +C -1 ; WX 722 ; N Ecircumflex ; B 10 0 675 934 ; +C -1 ; WX 426 ; N scaron ; B 26 -12 410 734 ; +C -1 ; WX 574 ; N thorn ; B -2 -166 542 712 ; +C -1 ; WX 1000 ; N trademark ; B 6 308 994 712 ; +C -1 ; WX 481 ; N egrave ; B 14 -12 468 746 ; +C -1 ; WX 311 ; N threesuperior ; B -7 282 319 724 ; +C -1 ; WX 444 ; N zcaron ; B 8 0 436 734 ; +C -1 ; WX 519 ; N atilde ; B 16 -12 518 710 ; +C -1 ; WX 519 ; N aring ; B 16 -12 518 772 ; +C -1 ; WX 537 ; N ocircumflex ; B 15 -12 523 734 ; +C -1 ; WX 722 ; N Edieresis ; B 10 0 675 903 ; +C -1 ; WX 778 ; N threequarters ; B -7 -12 787 724 ; +C -1 ; WX 444 ; N ydieresis ; B -30 -166 466 703 ; +C -1 ; WX 444 ; N yacute ; B -30 -166 466 746 ; +C -1 ; WX 315 ; N iacute ; B 13 0 321 746 ; +C -1 ; WX 630 ; N Acircumflex ; B -42 0 656 934 ; +C -1 ; WX 741 ; N Uacute ; B -10 -12 740 946 ; +C -1 ; WX 481 ; N eacute ; B 14 -12 468 746 ; +C -1 ; WX 815 ; N Ograve ; B 20 -12 796 946 ; +C -1 ; WX 519 ; N agrave ; B 16 -12 518 746 ; +C -1 ; WX 741 ; N Udieresis ; B -10 -12 740 903 ; +C -1 ; WX 519 ; N acircumflex ; B 16 -12 518 734 ; +C -1 ; WX 407 ; N Igrave ; B 0 0 407 946 ; +C -1 ; WX 311 ; N twosuperior ; B -9 290 320 724 ; +C -1 ; WX 741 ; N Ugrave ; B -10 -12 740 946 ; +C -1 ; WX 778 ; N onequarter ; B 26 -12 787 726 ; +C -1 ; WX 741 ; N Ucircumflex ; B -10 -12 740 934 ; +C -1 ; WX 611 ; N Scaron ; B 28 -12 594 934 ; +C -1 ; WX 407 ; N Idieresis ; B 0 0 407 903 ; +C -1 ; WX 315 ; N idieresis ; B -20 0 336 703 ; +C -1 ; WX 722 ; N Egrave ; B 10 0 675 946 ; +C -1 ; WX 815 ; N Oacute ; B 20 -12 796 946 ; +C -1 ; WX 600 ; N divide ; B 56 -44 544 532 ; +C -1 ; WX 630 ; N Atilde ; B -42 0 656 910 ; +C -1 ; WX 630 ; N Aring ; B -42 0 656 972 ; +C -1 ; WX 815 ; N Odieresis ; B 20 -12 796 903 ; +C -1 ; WX 630 ; N Adieresis ; B -42 0 656 903 ; +C -1 ; WX 778 ; N Ntilde ; B -2 0 780 910 ; +C -1 ; WX 648 ; N Zcaron ; B -9 0 650 934 ; +C -1 ; WX 648 ; N Thorn ; B -2 0 650 712 ; +C -1 ; WX 407 ; N Iacute ; B 0 0 407 946 ; +C -1 ; WX 600 ; N plusminus ; B 56 0 544 488 ; +C -1 ; WX 600 ; N multiply ; B 56 0 544 488 ; +C -1 ; WX 722 ; N Eacute ; B 10 0 675 946 ; +C -1 ; WX 648 ; N Ydieresis ; B -44 0 664 903 ; +C -1 ; WX 311 ; N onesuperior ; B 26 290 286 726 ; +C -1 ; WX 593 ; N ugrave ; B 12 -12 582 746 ; +C -1 ; WX 600 ; N logicalnot ; B 56 82 544 406 ; +C -1 ; WX 593 ; N ntilde ; B 12 0 582 710 ; +C -1 ; WX 815 ; N Otilde ; B 20 -12 796 910 ; +C -1 ; WX 537 ; N otilde ; B 15 -12 523 710 ; +C -1 ; WX 685 ; N Ccedilla ; B 32 -220 640 724 ; +C -1 ; WX 630 ; N Agrave ; B -42 0 656 946 ; +C -1 ; WX 778 ; N onehalf ; B 26 -12 787 726 ; +C -1 ; WX 778 ; N Eth ; B 0 0 754 712 ; +C -1 ; WX 400 ; N degree ; B 57 438 343 724 ; +C -1 ; WX 648 ; N Yacute ; B -44 0 664 946 ; +C -1 ; WX 815 ; N Ocircumflex ; B 20 -12 796 934 ; +C -1 ; WX 537 ; N oacute ; B 15 -12 523 746 ; +C -1 ; WX 593 ; N mu ; B 6 -166 582 488 ; +C -1 ; WX 600 ; N minus ; B 56 184 544 304 ; +C -1 ; WX 537 ; N eth ; B 15 -12 523 712 ; +C -1 ; WX 537 ; N odieresis ; B 15 -12 523 703 ; +C -1 ; WX 800 ; N copyright ; B 40 -12 760 724 ; +C -1 ; WX 222 ; N brokenbar ; B 51 0 171 712 ; +EndCharMetrics +StartKernData +StartKernPairs 91 + +KPX A y -18 +KPX A w -37 +KPX A v -37 +KPX A quoteright -74 +KPX A quotedblright -74 +KPX A Y -55 +KPX A W -74 +KPX A V -74 +KPX A T -74 + +KPX F r -55 +KPX F period -111 +KPX F o -55 +KPX F i -37 +KPX F e -55 +KPX F comma -111 +KPX F a -55 +KPX F A -55 + +KPX L y -37 +KPX L quoteright -37 +KPX L quotedblright -37 +KPX L Y -74 +KPX L W -74 +KPX L V -74 +KPX L T -92 + +KPX P period -129 +KPX P comma -129 +KPX P A -37 + +KPX R Y -18 +KPX R W -18 +KPX R V -18 +KPX R T -18 + +KPX T y -92 +KPX T w -92 +KPX T u -92 +KPX T semicolon -92 +KPX T r -92 +KPX T period -92 +KPX T o -92 +KPX T i -55 +KPX T hyphen -92 +KPX T e -92 +KPX T comma -92 +KPX T colon -92 +KPX T a -92 +KPX T A -74 + +KPX V u -55 +KPX V semicolon -55 +KPX V period -111 +KPX V o -74 +KPX V i -37 +KPX V hyphen -74 +KPX V e -74 +KPX V comma -111 +KPX V colon -55 +KPX V a -74 +KPX V A -55 + +KPX W y -18 +KPX W u -37 +KPX W semicolon -55 +KPX W period -111 +KPX W o -55 +KPX W i -37 +KPX W hyphen -55 +KPX W e -55 +KPX W comma -111 +KPX W colon -55 +KPX W a -55 +KPX W A -55 + +KPX Y u -55 +KPX Y semicolon -55 +KPX Y period -74 +KPX Y o -74 +KPX Y i -37 +KPX Y hyphen -92 +KPX Y e -74 +KPX Y comma -74 +KPX Y colon -55 +KPX Y a -74 +KPX Y A -37 + +KPX f quoteright 74 +KPX f quotedblright 74 + +KPX quoteright s -37 + +KPX r period -74 +KPX r hyphen -74 +KPX r comma -74 + +KPX v period -55 +KPX v comma -55 + +KPX w period -55 +KPX w comma -55 + +KPX y period -55 +KPX y comma -55 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 151 200 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 151 200 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 151 200 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 151 200 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 151 200 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 151 200 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 204 200 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 204 200 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 204 200 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 204 200 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 51 200 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 51 200 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 51 200 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 51 200 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 255 200 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 250 200 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 250 200 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 250 200 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 250 200 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 250 200 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 148 200 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 242 200 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 242 200 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 242 200 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 242 200 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 167 200 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 167 200 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 167 200 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 107 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 107 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 107 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 107 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 107 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 107 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 118 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 118 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 118 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 118 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 139 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 111 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 111 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 111 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 111 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 111 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 56 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 139 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 139 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 139 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 139 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 65 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 65 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 65 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-ExBd+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-ExBd+ new file mode 100755 index 0000000000000..e7086d38e65e4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-ExBd+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 685 ; N Ccaron ; B 32 -12 640 955 ; +C -1 ; WX 463 ; N ccaron ; B 14 -12 476 734 ; +C -1 ; WX 778 ; N Dcaron ; B 0 0 754 955 ; +C -1 ; WX 728 ; N dcaron ; B 32 -12 808 783 ; +C -1 ; WX 722 ; N Ecaron ; B 10 0 675 955 ; +C -1 ; WX 481 ; N ecaron ; B 14 -12 468 734 ; +C -1 ; WX 611 ; N Lcaron ; B 0 0 649 783 ; +C -1 ; WX 611 ; N Lacute ; B 0 0 611 967 ; +C -1 ; WX 469 ; N lcaron ; B 13 0 545 783 ; +C -1 ; WX 315 ; N lacute ; B 13 0 346 967 ; +C -1 ; WX 778 ; N Ncaron ; B -2 0 780 955 ; +C -1 ; WX 593 ; N ncaron ; B 12 0 582 734 ; +C -1 ; WX 741 ; N Rcaron ; B 0 0 778 955 ; +C -1 ; WX 741 ; N Racute ; B 0 0 778 967 ; +C -1 ; WX 426 ; N rcaron ; B 14 0 436 734 ; +C -1 ; WX 426 ; N racute ; B 14 0 436 746 ; +C -1 ; WX 704 ; N Tcaron ; B 28 0 676 955 ; +C -1 ; WX 506 ; N tcaron ; B 12 -12 594 724 ; +C -1 ; WX 741 ; N Uring ; B -10 -12 740 955 ; +C -1 ; WX 593 ; N uring ; B 12 -12 582 772 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 246 221 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 97 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 231 221 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 569 59 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 203 221 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 83 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 410 59 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 148 221 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 306 59 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 25 221 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 231 221 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 139 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 213 221 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 260 221 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 55 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 80 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 194 221 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 355 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 213 183 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 139 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-It b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-It new file mode 100755 index 0000000000000..6d7a003ba8342 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-It @@ -0,0 +1,648 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Tue Mar 20 13:14:56 1990 +Comment UniqueID 28427 +Comment VMusage 32912 39804 +FontName Times-Italic +FullName Times Italic +FamilyName Times +Weight Medium +ItalicAngle -15.5 +IsFixedPitch false +FontBBox -169 -217 1010 883 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.007 +Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 653 +XHeight 441 +Ascender 683 +Descender -205 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 39 -11 302 667 ; +C 34 ; WX 420 ; N quotedbl ; B 144 421 432 666 ; +C 35 ; WX 500 ; N numbersign ; B 2 0 540 676 ; +C 36 ; WX 500 ; N dollar ; B 31 -89 497 731 ; +C 37 ; WX 833 ; N percent ; B 79 -13 790 676 ; +C 38 ; WX 778 ; N ampersand ; B 76 -18 723 666 ; +C 39 ; WX 333 ; N quoteright ; B 151 436 290 666 ; +C 40 ; WX 333 ; N parenleft ; B 42 -181 315 669 ; +C 41 ; WX 333 ; N parenright ; B 16 -180 289 669 ; +C 42 ; WX 500 ; N asterisk ; B 128 255 492 666 ; +C 43 ; WX 675 ; N plus ; B 86 0 590 506 ; +C 44 ; WX 250 ; N comma ; B -4 -129 135 101 ; +C 45 ; WX 333 ; N hyphen ; B 49 192 282 255 ; +C 46 ; WX 250 ; N period ; B 27 -11 138 100 ; +C 47 ; WX 278 ; N slash ; B -65 -18 386 666 ; +C 48 ; WX 500 ; N zero ; B 32 -7 497 676 ; +C 49 ; WX 500 ; N one ; B 49 0 409 676 ; +C 50 ; WX 500 ; N two ; B 12 0 452 676 ; +C 51 ; WX 500 ; N three ; B 15 -7 465 676 ; +C 52 ; WX 500 ; N four ; B 1 0 479 676 ; +C 53 ; WX 500 ; N five ; B 15 -7 491 666 ; +C 54 ; WX 500 ; N six ; B 30 -7 521 686 ; +C 55 ; WX 500 ; N seven ; B 75 -8 537 666 ; +C 56 ; WX 500 ; N eight ; B 30 -7 493 676 ; +C 57 ; WX 500 ; N nine ; B 23 -17 492 676 ; +C 58 ; WX 333 ; N colon ; B 50 -11 261 441 ; +C 59 ; WX 333 ; N semicolon ; B 27 -129 261 441 ; +C 60 ; WX 675 ; N less ; B 84 -8 592 514 ; +C 61 ; WX 675 ; N equal ; B 86 120 590 386 ; +C 62 ; WX 675 ; N greater ; B 84 -8 592 514 ; +C 63 ; WX 500 ; N question ; B 132 -12 472 664 ; +C 64 ; WX 920 ; N at ; B 118 -18 806 666 ; +C 65 ; WX 611 ; N A ; B -51 0 564 668 ; +C 66 ; WX 611 ; N B ; B -8 0 588 653 ; +C 67 ; WX 667 ; N C ; B 66 -18 689 666 ; +C 68 ; WX 722 ; N D ; B -8 0 700 653 ; +C 69 ; WX 611 ; N E ; B -1 0 634 653 ; +C 70 ; WX 611 ; N F ; B 8 0 645 653 ; +C 71 ; WX 722 ; N G ; B 52 -18 722 666 ; +C 72 ; WX 722 ; N H ; B -8 0 767 653 ; +C 73 ; WX 333 ; N I ; B -8 0 384 653 ; +C 74 ; WX 444 ; N J ; B -6 -18 491 653 ; +C 75 ; WX 667 ; N K ; B 7 0 722 653 ; +C 76 ; WX 556 ; N L ; B -8 0 559 653 ; +C 77 ; WX 833 ; N M ; B -18 0 873 653 ; +C 78 ; WX 667 ; N N ; B -20 -15 727 653 ; +C 79 ; WX 722 ; N O ; B 60 -18 699 666 ; +C 80 ; WX 611 ; N P ; B 0 0 605 653 ; +C 81 ; WX 722 ; N Q ; B 59 -182 699 666 ; +C 82 ; WX 611 ; N R ; B -13 0 588 653 ; +C 83 ; WX 500 ; N S ; B 17 -18 508 667 ; +C 84 ; WX 556 ; N T ; B 59 0 633 653 ; +C 85 ; WX 722 ; N U ; B 102 -18 765 653 ; +C 86 ; WX 611 ; N V ; B 76 -18 688 653 ; +C 87 ; WX 833 ; N W ; B 71 -18 906 653 ; +C 88 ; WX 611 ; N X ; B -29 0 655 653 ; +C 89 ; WX 556 ; N Y ; B 78 0 633 653 ; +C 90 ; WX 556 ; N Z ; B -6 0 606 653 ; +C 91 ; WX 389 ; N bracketleft ; B 21 -153 391 663 ; +C 92 ; WX 278 ; N backslash ; B -41 -18 319 666 ; +C 93 ; WX 389 ; N bracketright ; B 12 -153 382 663 ; +C 94 ; WX 422 ; N asciicircum ; B 0 301 422 666 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 333 ; N quoteleft ; B 171 436 310 666 ; +C 97 ; WX 500 ; N a ; B 17 -11 476 441 ; +C 98 ; WX 500 ; N b ; B 23 -11 473 683 ; +C 99 ; WX 444 ; N c ; B 30 -11 425 441 ; +C 100 ; WX 500 ; N d ; B 15 -13 527 683 ; +C 101 ; WX 444 ; N e ; B 31 -11 412 441 ; +C 102 ; WX 278 ; N f ; B -147 -207 424 678 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B 8 -206 472 441 ; +C 104 ; WX 500 ; N h ; B 19 -9 478 683 ; +C 105 ; WX 278 ; N i ; B 49 -11 264 654 ; +C 106 ; WX 278 ; N j ; B -124 -207 276 654 ; +C 107 ; WX 444 ; N k ; B 14 -11 461 683 ; +C 108 ; WX 278 ; N l ; B 41 -11 279 683 ; +C 109 ; WX 722 ; N m ; B 12 -9 704 441 ; +C 110 ; WX 500 ; N n ; B 14 -9 474 441 ; +C 111 ; WX 500 ; N o ; B 27 -11 468 441 ; +C 112 ; WX 500 ; N p ; B -75 -205 469 441 ; +C 113 ; WX 500 ; N q ; B 25 -209 483 441 ; +C 114 ; WX 389 ; N r ; B 45 0 412 441 ; +C 115 ; WX 389 ; N s ; B 16 -13 366 442 ; +C 116 ; WX 278 ; N t ; B 37 -11 296 546 ; +C 117 ; WX 500 ; N u ; B 42 -11 475 441 ; +C 118 ; WX 444 ; N v ; B 21 -18 426 441 ; +C 119 ; WX 667 ; N w ; B 16 -18 648 441 ; +C 120 ; WX 444 ; N x ; B -27 -11 447 441 ; +C 121 ; WX 444 ; N y ; B -24 -206 426 441 ; +C 122 ; WX 389 ; N z ; B -2 -81 380 428 ; +C 123 ; WX 400 ; N braceleft ; B 51 -177 407 687 ; +C 124 ; WX 275 ; N bar ; B 105 -18 171 666 ; +C 125 ; WX 400 ; N braceright ; B -7 -177 349 687 ; +C 126 ; WX 541 ; N asciitilde ; B 40 183 502 323 ; +C 161 ; WX 389 ; N exclamdown ; B 59 -205 322 473 ; +C 162 ; WX 500 ; N cent ; B 77 -143 472 560 ; +C 163 ; WX 500 ; N sterling ; B 10 -6 517 670 ; +C 164 ; WX 167 ; N fraction ; B -169 -10 337 676 ; +C 165 ; WX 500 ; N yen ; B 27 0 603 653 ; +C 166 ; WX 500 ; N florin ; B 25 -182 507 682 ; +C 167 ; WX 500 ; N section ; B 53 -162 461 666 ; +C 168 ; WX 500 ; N currency ; B -22 53 522 597 ; +C 169 ; WX 214 ; N quotesingle ; B 132 421 241 666 ; +C 170 ; WX 556 ; N quotedblleft ; B 166 436 514 666 ; +C 171 ; WX 500 ; N guillemotleft ; B 53 37 445 403 ; +C 172 ; WX 333 ; N guilsinglleft ; B 51 37 281 403 ; +C 173 ; WX 333 ; N guilsinglright ; B 52 37 282 403 ; +C 174 ; WX 500 ; N fi ; B -141 -207 481 681 ; +C 175 ; WX 500 ; N fl ; B -141 -204 518 682 ; +C 177 ; WX 500 ; N endash ; B -6 197 505 243 ; +C 178 ; WX 500 ; N dagger ; B 101 -159 488 666 ; +C 179 ; WX 500 ; N daggerdbl ; B 22 -143 491 666 ; +C 180 ; WX 250 ; N periodcentered ; B 70 199 181 310 ; +C 182 ; WX 523 ; N paragraph ; B 55 -123 616 653 ; +C 183 ; WX 350 ; N bullet ; B 40 191 310 461 ; +C 184 ; WX 333 ; N quotesinglbase ; B 44 -129 183 101 ; +C 185 ; WX 556 ; N quotedblbase ; B 57 -129 405 101 ; +C 186 ; WX 556 ; N quotedblright ; B 151 436 499 666 ; +C 187 ; WX 500 ; N guillemotright ; B 55 37 447 403 ; +C 188 ; WX 889 ; N ellipsis ; B 57 -11 762 100 ; +C 189 ; WX 1000 ; N perthousand ; B 25 -19 1010 706 ; +C 191 ; WX 500 ; N questiondown ; B 28 -205 368 471 ; +C 193 ; WX 333 ; N grave ; B 121 492 311 664 ; +C 194 ; WX 333 ; N acute ; B 180 494 403 664 ; +C 195 ; WX 333 ; N circumflex ; B 91 492 385 661 ; +C 196 ; WX 333 ; N tilde ; B 100 517 427 624 ; +C 197 ; WX 333 ; N macron ; B 99 532 411 583 ; +C 198 ; WX 333 ; N breve ; B 117 492 418 650 ; +C 199 ; WX 333 ; N dotaccent ; B 207 508 305 606 ; +C 200 ; WX 333 ; N dieresis ; B 107 508 405 606 ; +C 202 ; WX 333 ; N ring ; B 155 492 355 691 ; +C 203 ; WX 333 ; N cedilla ; B -30 -217 182 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B 93 494 486 664 ; +C 206 ; WX 333 ; N ogonek ; B -20 -169 200 40 ; +C 207 ; WX 333 ; N caron ; B 121 492 426 661 ; +C 208 ; WX 889 ; N emdash ; B -6 197 894 243 ; +C 225 ; WX 889 ; N AE ; B -27 0 911 653 ; +C 227 ; WX 276 ; N ordfeminine ; B 42 406 352 676 ; +C 232 ; WX 556 ; N Lslash ; B -8 0 559 653 ; +C 233 ; WX 722 ; N Oslash ; B 60 -105 699 722 ; +C 234 ; WX 944 ; N OE ; B 49 -8 964 666 ; +C 235 ; WX 310 ; N ordmasculine ; B 67 406 362 676 ; +C 241 ; WX 667 ; N ae ; B 23 -11 640 441 ; +C 245 ; WX 278 ; N dotlessi ; B 49 -11 235 441 ; +C 248 ; WX 278 ; N lslash ; B 37 -11 307 683 ; +C 249 ; WX 500 ; N oslash ; B 28 -135 469 554 ; +C 250 ; WX 667 ; N oe ; B 20 -12 646 441 ; +C 251 ; WX 500 ; N germandbls ; B -168 -207 493 679 ; +C -1 ; WX 556 ; N Zcaron ; B -6 0 606 873 ; +C -1 ; WX 444 ; N ccedilla ; B 26 -217 425 441 ; +C -1 ; WX 444 ; N ydieresis ; B -24 -206 441 606 ; +C -1 ; WX 500 ; N atilde ; B 17 -11 511 624 ; +C -1 ; WX 278 ; N icircumflex ; B 34 -11 328 661 ; +C -1 ; WX 300 ; N threesuperior ; B 43 268 339 676 ; +C -1 ; WX 444 ; N ecircumflex ; B 31 -11 441 661 ; +C -1 ; WX 500 ; N thorn ; B -75 -205 469 683 ; +C -1 ; WX 444 ; N egrave ; B 31 -11 412 664 ; +C -1 ; WX 300 ; N twosuperior ; B 33 271 324 676 ; +C -1 ; WX 444 ; N eacute ; B 31 -11 459 664 ; +C -1 ; WX 500 ; N otilde ; B 27 -11 496 624 ; +C -1 ; WX 611 ; N Aacute ; B -51 0 564 876 ; +C -1 ; WX 500 ; N ocircumflex ; B 27 -11 468 661 ; +C -1 ; WX 444 ; N yacute ; B -24 -206 459 664 ; +C -1 ; WX 500 ; N udieresis ; B 42 -11 479 606 ; +C -1 ; WX 750 ; N threequarters ; B 23 -10 736 676 ; +C -1 ; WX 500 ; N acircumflex ; B 17 -11 476 661 ; +C -1 ; WX 722 ; N Eth ; B -8 0 700 653 ; +C -1 ; WX 444 ; N edieresis ; B 31 -11 451 606 ; +C -1 ; WX 500 ; N ugrave ; B 42 -11 475 664 ; +C -1 ; WX 980 ; N trademark ; B 30 247 957 653 ; +C -1 ; WX 500 ; N ograve ; B 27 -11 468 664 ; +C -1 ; WX 389 ; N scaron ; B 16 -13 454 661 ; +C -1 ; WX 333 ; N Idieresis ; B -8 0 435 818 ; +C -1 ; WX 500 ; N uacute ; B 42 -11 477 664 ; +C -1 ; WX 500 ; N agrave ; B 17 -11 476 664 ; +C -1 ; WX 500 ; N ntilde ; B 14 -9 476 624 ; +C -1 ; WX 500 ; N aring ; B 17 -11 476 691 ; +C -1 ; WX 389 ; N zcaron ; B -2 -81 434 661 ; +C -1 ; WX 333 ; N Icircumflex ; B -8 0 425 873 ; +C -1 ; WX 667 ; N Ntilde ; B -20 -15 727 836 ; +C -1 ; WX 500 ; N ucircumflex ; B 42 -11 475 661 ; +C -1 ; WX 611 ; N Ecircumflex ; B -1 0 634 873 ; +C -1 ; WX 333 ; N Iacute ; B -8 0 413 876 ; +C -1 ; WX 667 ; N Ccedilla ; B 66 -217 689 666 ; +C -1 ; WX 722 ; N Odieresis ; B 60 -18 699 818 ; +C -1 ; WX 500 ; N Scaron ; B 17 -18 520 873 ; +C -1 ; WX 611 ; N Edieresis ; B -1 0 634 818 ; +C -1 ; WX 333 ; N Igrave ; B -8 0 384 876 ; +C -1 ; WX 500 ; N adieresis ; B 17 -11 489 606 ; +C -1 ; WX 722 ; N Ograve ; B 60 -18 699 876 ; +C -1 ; WX 611 ; N Egrave ; B -1 0 634 876 ; +C -1 ; WX 556 ; N Ydieresis ; B 78 0 633 818 ; +C -1 ; WX 760 ; N registered ; B 41 -18 719 666 ; +C -1 ; WX 722 ; N Otilde ; B 60 -18 699 836 ; +C -1 ; WX 750 ; N onequarter ; B 33 -10 736 676 ; +C -1 ; WX 722 ; N Ugrave ; B 102 -18 765 876 ; +C -1 ; WX 722 ; N Ucircumflex ; B 102 -18 765 873 ; +C -1 ; WX 611 ; N Thorn ; B 0 0 569 653 ; +C -1 ; WX 675 ; N divide ; B 86 -11 590 517 ; +C -1 ; WX 611 ; N Atilde ; B -51 0 566 836 ; +C -1 ; WX 722 ; N Uacute ; B 102 -18 765 876 ; +C -1 ; WX 722 ; N Ocircumflex ; B 60 -18 699 873 ; +C -1 ; WX 675 ; N logicalnot ; B 86 108 590 386 ; +C -1 ; WX 611 ; N Aring ; B -51 0 564 883 ; +C -1 ; WX 278 ; N idieresis ; B 49 -11 353 606 ; +C -1 ; WX 278 ; N iacute ; B 49 -11 356 664 ; +C -1 ; WX 500 ; N aacute ; B 17 -11 487 664 ; +C -1 ; WX 675 ; N plusminus ; B 86 0 590 506 ; +C -1 ; WX 675 ; N multiply ; B 93 8 582 497 ; +C -1 ; WX 722 ; N Udieresis ; B 102 -18 765 818 ; +C -1 ; WX 675 ; N minus ; B 86 220 590 286 ; +C -1 ; WX 300 ; N onesuperior ; B 43 271 284 676 ; +C -1 ; WX 611 ; N Eacute ; B -1 0 634 876 ; +C -1 ; WX 611 ; N Acircumflex ; B -51 0 564 873 ; +C -1 ; WX 760 ; N copyright ; B 41 -18 719 666 ; +C -1 ; WX 611 ; N Agrave ; B -51 0 564 876 ; +C -1 ; WX 500 ; N odieresis ; B 27 -11 489 606 ; +C -1 ; WX 500 ; N oacute ; B 27 -11 487 664 ; +C -1 ; WX 400 ; N degree ; B 101 390 387 676 ; +C -1 ; WX 278 ; N igrave ; B 49 -11 284 664 ; +C -1 ; WX 500 ; N mu ; B -30 -209 497 428 ; +C -1 ; WX 722 ; N Oacute ; B 60 -18 699 876 ; +C -1 ; WX 500 ; N eth ; B 27 -11 482 683 ; +C -1 ; WX 611 ; N Adieresis ; B -51 0 564 818 ; +C -1 ; WX 556 ; N Yacute ; B 78 0 633 876 ; +C -1 ; WX 275 ; N brokenbar ; B 105 -18 171 666 ; +C -1 ; WX 750 ; N onehalf ; B 34 -10 749 676 ; +EndCharMetrics +StartKernData +StartKernPairs 283 + +KPX A y -55 +KPX A w -55 +KPX A v -55 +KPX A u -20 +KPX A quoteright -37 +KPX A quotedblright 0 +KPX A p 0 +KPX A Y -55 +KPX A W -95 +KPX A V -105 +KPX A U -50 +KPX A T -37 +KPX A Q -40 +KPX A O -40 +KPX A G -35 +KPX A C -30 + +KPX B period 0 +KPX B comma 0 +KPX B U -10 +KPX B A -25 + +KPX D period 0 +KPX D comma 0 +KPX D Y -40 +KPX D W -40 +KPX D V -40 +KPX D A -35 + +KPX F r -55 +KPX F period -135 +KPX F o -105 +KPX F i -45 +KPX F e -75 +KPX F comma -135 +KPX F a -75 +KPX F A -115 + +KPX G period 0 +KPX G comma 0 + +KPX J u -35 +KPX J period -25 +KPX J o -25 +KPX J e -25 +KPX J comma -25 +KPX J a -35 +KPX J A -40 + +KPX K y -40 +KPX K u -40 +KPX K o -40 +KPX K e -35 +KPX K O -50 + +KPX L y -30 +KPX L quoteright -37 +KPX L quotedblright 0 +KPX L Y -20 +KPX L W -55 +KPX L V -55 +KPX L T -20 + +KPX N period 0 +KPX N comma 0 +KPX N A -27 + +KPX O period 0 +KPX O comma 0 +KPX O Y -50 +KPX O X -40 +KPX O W -50 +KPX O V -50 +KPX O T -40 +KPX O A -55 + +KPX P period -135 +KPX P o -80 +KPX P e -80 +KPX P comma -135 +KPX P a -80 +KPX P A -90 + +KPX Q period 0 +KPX Q comma 0 +KPX Q U -10 + +KPX R Y -18 +KPX R W -18 +KPX R V -18 +KPX R U -40 +KPX R T 0 +KPX R O -40 + +KPX S period 0 +KPX S comma 0 + +KPX T y -74 +KPX T w -74 +KPX T u -55 +KPX T semicolon -65 +KPX T r -55 +KPX T period -74 +KPX T o -92 +KPX T i -55 +KPX T hyphen -74 +KPX T h 0 +KPX T e -92 +KPX T comma -74 +KPX T colon -55 +KPX T a -92 +KPX T O -18 +KPX T A -50 + +KPX U period -25 +KPX U comma -25 +KPX U A -40 + +KPX V u -74 +KPX V semicolon -74 +KPX V period -129 +KPX V o -111 +KPX V i -74 +KPX V hyphen -55 +KPX V e -111 +KPX V comma -129 +KPX V colon -65 +KPX V a -111 +KPX V O -30 +KPX V G 0 +KPX V A -60 + +KPX W y -70 +KPX W u -55 +KPX W semicolon -65 +KPX W period -92 +KPX W o -92 +KPX W i -55 +KPX W hyphen -37 +KPX W h 0 +KPX W e -92 +KPX W comma -92 +KPX W colon -65 +KPX W a -92 +KPX W O -25 +KPX W A -60 + +KPX Y u -92 +KPX Y semicolon -65 +KPX Y period -92 +KPX Y o -92 +KPX Y i -74 +KPX Y hyphen -74 +KPX Y e -92 +KPX Y comma -92 +KPX Y colon -65 +KPX Y a -92 +KPX Y O -15 +KPX Y A -50 + +KPX a y 0 +KPX a w 0 +KPX a v 0 +KPX a t 0 +KPX a p 0 +KPX a g -10 +KPX a b 0 + +KPX b y 0 +KPX b v 0 +KPX b u -20 +KPX b period -40 +KPX b l 0 +KPX b comma 0 +KPX b b 0 + +KPX c y 0 +KPX c period 0 +KPX c l 0 +KPX c k -20 +KPX c h -15 +KPX c comma 0 + +KPX colon space 0 + +KPX comma space 0 +KPX comma quoteright -140 +KPX comma quotedblright -140 + +KPX d y 0 +KPX d w 0 +KPX d v 0 +KPX d period 0 +KPX d d 0 +KPX d comma 0 + +KPX e y -30 +KPX e x -20 +KPX e w -15 +KPX e v -15 +KPX e period -15 +KPX e p 0 +KPX e g -40 +KPX e comma -10 +KPX e b 0 + +KPX f quoteright 92 +KPX f quotedblright 0 +KPX f period -15 +KPX f o 0 +KPX f l 0 +KPX f i -20 +KPX f f -18 +KPX f e 0 +KPX f dotlessi -60 +KPX f comma -10 +KPX f a 0 + +KPX g y 0 +KPX g r 0 +KPX g period -15 +KPX g o 0 +KPX g i 0 +KPX g g -10 +KPX g e -10 +KPX g comma -10 +KPX g a 0 + +KPX h y 0 + +KPX i v 0 + +KPX k y -10 +KPX k o -10 +KPX k e -10 + +KPX l y 0 +KPX l w 0 + +KPX m y 0 +KPX m u 0 + +KPX n y 0 +KPX n v -40 +KPX n u 0 + +KPX o y 0 +KPX o x 0 +KPX o w 0 +KPX o v -10 +KPX o g -10 + +KPX p y 0 + +KPX period quoteright -140 +KPX period quotedblright -140 + +KPX quotedblleft quoteleft 0 +KPX quotedblleft A 0 + +KPX quotedblright space 0 + +KPX quoteleft quoteleft -111 +KPX quoteleft A 0 + +KPX quoteright v -10 +KPX quoteright t -30 +KPX quoteright space -111 +KPX quoteright s -40 +KPX quoteright r -25 +KPX quoteright quoteright -111 +KPX quoteright quotedblright 0 +KPX quoteright l 0 +KPX quoteright d -25 + +KPX r y 0 +KPX r v 0 +KPX r u 0 +KPX r t 0 +KPX r s -10 +KPX r r 0 +KPX r q -37 +KPX r period -111 +KPX r p 0 +KPX r o -45 +KPX r n 0 +KPX r m 0 +KPX r l 0 +KPX r k 0 +KPX r i 0 +KPX r hyphen -20 +KPX r g -37 +KPX r e -37 +KPX r d -37 +KPX r comma -111 +KPX r c -37 +KPX r a -15 + +KPX s w 0 + +KPX space quoteleft 0 +KPX space quotedblleft 0 +KPX space Y -75 +KPX space W -40 +KPX space V -35 +KPX space T -18 +KPX space A -18 + +KPX v period -74 +KPX v o 0 +KPX v e 0 +KPX v comma -74 +KPX v a 0 + +KPX w period -74 +KPX w o 0 +KPX w h 0 +KPX w e 0 +KPX w comma -74 +KPX w a 0 + +KPX x e 0 + +KPX y period -55 +KPX y o 0 +KPX y e 0 +KPX y comma -55 +KPX y a 0 + +KPX z o 0 +KPX z e 0 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 139 212 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 144 212 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 139 212 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 149 212 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 129 192 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 139 212 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 167 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 149 212 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 169 212 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 159 212 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 149 212 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 10 212 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 40 212 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 30 212 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 10 212 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 177 212 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 195 212 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 230 212 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 230 212 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 205 212 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 215 212 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 94 212 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 195 212 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 215 212 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 225 212 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 215 212 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 132 212 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 142 212 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 112 212 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 84 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 84 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 84 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 84 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 84 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 84 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 56 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 56 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 56 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 46 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 56 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -47 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -57 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -52 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 49 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 84 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 74 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 84 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 84 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 69 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 28 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 74 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 74 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 74 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 84 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 56 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 36 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 8 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-It+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-It+ new file mode 100755 index 0000000000000..b234707149b5f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-It+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 667 ; N Ccaron ; B 66 -18 714 882 ; +C -1 ; WX 444 ; N ccaron ; B 30 -11 501 661 ; +C -1 ; WX 722 ; N Dcaron ; B -8 0 700 882 ; +C -1 ; WX 597 ; N dcaron ; B 15 -13 680 751 ; +C -1 ; WX 611 ; N Ecaron ; B -1 0 634 882 ; +C -1 ; WX 444 ; N ecaron ; B 31 -11 481 661 ; +C -1 ; WX 556 ; N Lcaron ; B -8 0 559 718 ; +C -1 ; WX 556 ; N Lacute ; B -8 0 572 883 ; +C -1 ; WX 375 ; N lcaron ; B 41 -11 432 751 ; +C -1 ; WX 278 ; N lacute ; B 41 -11 456 883 ; +C -1 ; WX 667 ; N Ncaron ; B -20 -15 727 882 ; +C -1 ; WX 500 ; N ncaron ; B 14 -9 509 661 ; +C -1 ; WX 611 ; N Rcaron ; B -13 0 624 882 ; +C -1 ; WX 611 ; N Racute ; B -13 0 642 883 ; +C -1 ; WX 389 ; N rcaron ; B 45 0 454 661 ; +C -1 ; WX 389 ; N racute ; B 45 0 453 664 ; +C -1 ; WX 556 ; N Tcaron ; B 59 0 633 882 ; +C -1 ; WX 375 ; N tcaron ; B 37 -11 449 666 ; +C -1 ; WX 722 ; N Uring ; B 102 -18 765 882 ; +C -1 ; WX 500 ; N uring ; B 42 -11 475 691 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 288 221 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 75 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 253 221 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 390 85 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 198 221 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 55 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 247 52 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 169 219 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 142 85 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 53 219 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 226 221 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 83 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 198 221 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 239 219 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 28 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 50 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 170 221 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 159 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 245 191 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 83 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-ItF b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-ItF new file mode 100755 index 0000000000000..82cc2420e089f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-ItF @@ -0,0 +1,531 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Tue Dec 4 11:35:02 1990 +Comment UniqueID 33650 +Comment VMusage 33130 40022 +FontName Times-ItalicOsF +FullName Times Italic Old Style Figures +FamilyName Times +Weight Medium +ItalicAngle -15.5 +IsFixedPitch false +FontBBox -169 -217 1010 883 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 653 +XHeight 441 +Ascender 683 +Descender -205 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 39 -11 302 667 ; +C 34 ; WX 420 ; N quotedbl ; B 144 421 432 666 ; +C 35 ; WX 500 ; N numbersign ; B 2 0 540 676 ; +C 36 ; WX 500 ; N dollar ; B 31 -89 497 731 ; +C 37 ; WX 833 ; N percent ; B 79 -13 790 676 ; +C 38 ; WX 778 ; N ampersand ; B 76 -18 723 666 ; +C 39 ; WX 333 ; N quoteright ; B 151 436 290 666 ; +C 40 ; WX 333 ; N parenleft ; B 42 -181 315 669 ; +C 41 ; WX 333 ; N parenright ; B 16 -180 289 669 ; +C 42 ; WX 500 ; N asterisk ; B 128 255 492 666 ; +C 43 ; WX 675 ; N plus ; B 86 0 590 506 ; +C 44 ; WX 250 ; N comma ; B -4 -129 135 101 ; +C 45 ; WX 333 ; N hyphen ; B 49 192 282 255 ; +C 46 ; WX 250 ; N period ; B 27 -11 138 100 ; +C 47 ; WX 278 ; N slash ; B -65 -18 386 666 ; +C 48 ; WX 500 ; N zero ; B 16 -8 484 494 ; +C 49 ; WX 500 ; N one ; B 56 0 438 486 ; +C 50 ; WX 500 ; N two ; B 19 0 422 494 ; +C 51 ; WX 500 ; N three ; B -18 -190 434 494 ; +C 52 ; WX 500 ; N four ; B -16 -172 458 494 ; +C 53 ; WX 500 ; N five ; B -14 -190 462 486 ; +C 54 ; WX 500 ; N six ; B 28 -8 521 684 ; +C 55 ; WX 500 ; N seven ; B 48 -190 520 486 ; +C 56 ; WX 500 ; N eight ; B 10 -8 476 670 ; +C 57 ; WX 500 ; N nine ; B -12 -196 462 494 ; +C 58 ; WX 333 ; N colon ; B 50 -11 261 441 ; +C 59 ; WX 333 ; N semicolon ; B 27 -129 261 441 ; +C 60 ; WX 675 ; N less ; B 84 -8 592 514 ; +C 61 ; WX 675 ; N equal ; B 86 120 590 386 ; +C 62 ; WX 675 ; N greater ; B 84 -8 592 514 ; +C 63 ; WX 500 ; N question ; B 132 -12 472 664 ; +C 64 ; WX 920 ; N at ; B 118 -18 806 666 ; +C 65 ; WX 611 ; N A ; B -51 0 564 668 ; +C 66 ; WX 611 ; N B ; B -8 0 588 653 ; +C 67 ; WX 667 ; N C ; B 66 -18 689 666 ; +C 68 ; WX 722 ; N D ; B -8 0 700 653 ; +C 69 ; WX 611 ; N E ; B -1 0 634 653 ; +C 70 ; WX 611 ; N F ; B 8 0 645 653 ; +C 71 ; WX 722 ; N G ; B 52 -18 722 666 ; +C 72 ; WX 722 ; N H ; B -8 0 767 653 ; +C 73 ; WX 333 ; N I ; B -8 0 384 653 ; +C 74 ; WX 444 ; N J ; B -6 -18 491 653 ; +C 75 ; WX 667 ; N K ; B 7 0 722 653 ; +C 76 ; WX 556 ; N L ; B -8 0 559 653 ; +C 77 ; WX 833 ; N M ; B -18 0 873 653 ; +C 78 ; WX 667 ; N N ; B -20 -15 727 653 ; +C 79 ; WX 722 ; N O ; B 60 -18 699 666 ; +C 80 ; WX 611 ; N P ; B 0 0 605 653 ; +C 81 ; WX 722 ; N Q ; B 59 -182 699 666 ; +C 82 ; WX 611 ; N R ; B -13 0 588 653 ; +C 83 ; WX 500 ; N S ; B 17 -18 508 667 ; +C 84 ; WX 556 ; N T ; B 59 0 633 653 ; +C 85 ; WX 722 ; N U ; B 102 -18 765 653 ; +C 86 ; WX 611 ; N V ; B 76 -18 688 653 ; +C 87 ; WX 833 ; N W ; B 71 -18 906 653 ; +C 88 ; WX 611 ; N X ; B -29 0 655 653 ; +C 89 ; WX 556 ; N Y ; B 78 0 633 653 ; +C 90 ; WX 556 ; N Z ; B -6 0 606 653 ; +C 91 ; WX 389 ; N bracketleft ; B 21 -153 391 663 ; +C 92 ; WX 278 ; N backslash ; B -41 -18 319 666 ; +C 93 ; WX 389 ; N bracketright ; B 12 -153 382 663 ; +C 94 ; WX 422 ; N asciicircum ; B 0 301 422 666 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 333 ; N quoteleft ; B 171 436 310 666 ; +C 97 ; WX 500 ; N a ; B 17 -11 476 441 ; +C 98 ; WX 500 ; N b ; B 23 -11 473 683 ; +C 99 ; WX 444 ; N c ; B 30 -11 425 441 ; +C 100 ; WX 500 ; N d ; B 15 -13 527 683 ; +C 101 ; WX 444 ; N e ; B 31 -11 412 441 ; +C 102 ; WX 278 ; N f ; B -147 -207 424 678 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B 8 -206 472 441 ; +C 104 ; WX 500 ; N h ; B 19 -9 478 683 ; +C 105 ; WX 278 ; N i ; B 49 -11 264 654 ; +C 106 ; WX 278 ; N j ; B -124 -207 276 654 ; +C 107 ; WX 444 ; N k ; B 14 -11 461 683 ; +C 108 ; WX 278 ; N l ; B 41 -11 279 683 ; +C 109 ; WX 722 ; N m ; B 12 -9 704 441 ; +C 110 ; WX 500 ; N n ; B 14 -9 474 441 ; +C 111 ; WX 500 ; N o ; B 27 -11 468 441 ; +C 112 ; WX 500 ; N p ; B -75 -205 469 441 ; +C 113 ; WX 500 ; N q ; B 25 -209 483 441 ; +C 114 ; WX 389 ; N r ; B 45 0 412 441 ; +C 115 ; WX 389 ; N s ; B 16 -13 366 442 ; +C 116 ; WX 278 ; N t ; B 37 -11 296 546 ; +C 117 ; WX 500 ; N u ; B 42 -11 475 441 ; +C 118 ; WX 444 ; N v ; B 21 -18 426 441 ; +C 119 ; WX 667 ; N w ; B 16 -18 648 441 ; +C 120 ; WX 444 ; N x ; B -27 -11 447 441 ; +C 121 ; WX 444 ; N y ; B -24 -206 426 441 ; +C 122 ; WX 389 ; N z ; B -2 -81 380 428 ; +C 123 ; WX 400 ; N braceleft ; B 51 -177 407 687 ; +C 124 ; WX 275 ; N bar ; B 105 -18 171 666 ; +C 125 ; WX 400 ; N braceright ; B -7 -177 349 687 ; +C 126 ; WX 541 ; N asciitilde ; B 40 183 502 323 ; +C 161 ; WX 389 ; N exclamdown ; B 59 -205 322 473 ; +C 162 ; WX 500 ; N cent ; B 77 -143 472 560 ; +C 163 ; WX 500 ; N sterling ; B 10 -6 517 670 ; +C 164 ; WX 167 ; N fraction ; B -169 -10 337 676 ; +C 165 ; WX 500 ; N yen ; B 27 0 603 653 ; +C 166 ; WX 500 ; N florin ; B 25 -182 507 682 ; +C 167 ; WX 500 ; N section ; B 53 -162 461 666 ; +C 168 ; WX 500 ; N currency ; B -22 53 522 597 ; +C 169 ; WX 214 ; N quotesingle ; B 132 421 241 666 ; +C 170 ; WX 556 ; N quotedblleft ; B 166 436 514 666 ; +C 171 ; WX 500 ; N guillemotleft ; B 53 37 445 403 ; +C 172 ; WX 333 ; N guilsinglleft ; B 51 37 281 403 ; +C 173 ; WX 333 ; N guilsinglright ; B 52 37 282 403 ; +C 174 ; WX 500 ; N fi ; B -141 -207 481 681 ; +C 175 ; WX 500 ; N fl ; B -141 -204 518 682 ; +C 177 ; WX 500 ; N endash ; B -6 197 505 243 ; +C 178 ; WX 500 ; N dagger ; B 101 -159 488 666 ; +C 179 ; WX 500 ; N daggerdbl ; B 22 -143 491 666 ; +C 180 ; WX 250 ; N periodcentered ; B 70 199 181 310 ; +C 182 ; WX 523 ; N paragraph ; B 55 -123 616 653 ; +C 183 ; WX 350 ; N bullet ; B 40 191 310 461 ; +C 184 ; WX 333 ; N quotesinglbase ; B 44 -129 183 101 ; +C 185 ; WX 556 ; N quotedblbase ; B 57 -129 405 101 ; +C 186 ; WX 556 ; N quotedblright ; B 151 436 499 666 ; +C 187 ; WX 500 ; N guillemotright ; B 55 37 447 403 ; +C 188 ; WX 889 ; N ellipsis ; B 57 -11 762 100 ; +C 189 ; WX 1000 ; N perthousand ; B 25 -19 1010 706 ; +C 191 ; WX 500 ; N questiondown ; B 28 -205 368 471 ; +C 193 ; WX 333 ; N grave ; B 121 492 311 664 ; +C 194 ; WX 333 ; N acute ; B 180 494 403 664 ; +C 195 ; WX 333 ; N circumflex ; B 91 492 385 661 ; +C 196 ; WX 333 ; N tilde ; B 100 517 427 624 ; +C 197 ; WX 333 ; N macron ; B 99 532 411 583 ; +C 198 ; WX 333 ; N breve ; B 117 492 418 650 ; +C 199 ; WX 333 ; N dotaccent ; B 207 508 305 606 ; +C 200 ; WX 333 ; N dieresis ; B 107 508 405 606 ; +C 202 ; WX 333 ; N ring ; B 155 492 355 691 ; +C 203 ; WX 333 ; N cedilla ; B -30 -217 182 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B 93 494 486 664 ; +C 206 ; WX 333 ; N ogonek ; B -20 -169 200 40 ; +C 207 ; WX 333 ; N caron ; B 121 492 426 661 ; +C 208 ; WX 889 ; N emdash ; B 119 197 769 243 ; +C 225 ; WX 889 ; N AE ; B -27 0 911 653 ; +C 227 ; WX 276 ; N ordfeminine ; B 42 406 352 676 ; +C 232 ; WX 556 ; N Lslash ; B -8 0 559 653 ; +C 233 ; WX 722 ; N Oslash ; B 60 -105 699 722 ; +C 234 ; WX 944 ; N OE ; B 49 -8 964 666 ; +C 235 ; WX 310 ; N ordmasculine ; B 67 406 362 676 ; +C 241 ; WX 667 ; N ae ; B 23 -11 640 441 ; +C 245 ; WX 278 ; N dotlessi ; B 49 -11 235 441 ; +C 248 ; WX 278 ; N lslash ; B 37 -11 307 683 ; +C 249 ; WX 500 ; N oslash ; B 28 -135 469 554 ; +C 250 ; WX 667 ; N oe ; B 20 -12 646 441 ; +C 251 ; WX 500 ; N germandbls ; B -168 -207 493 679 ; +C -1 ; WX 444 ; N ecircumflex ; B 31 -11 441 661 ; +C -1 ; WX 444 ; N edieresis ; B 31 -11 451 606 ; +C -1 ; WX 500 ; N aacute ; B 17 -11 487 664 ; +C -1 ; WX 760 ; N registered ; B 41 -18 719 666 ; +C -1 ; WX 278 ; N icircumflex ; B 34 -11 328 661 ; +C -1 ; WX 500 ; N udieresis ; B 42 -11 479 606 ; +C -1 ; WX 500 ; N ograve ; B 27 -11 468 664 ; +C -1 ; WX 500 ; N uacute ; B 42 -11 477 664 ; +C -1 ; WX 500 ; N ucircumflex ; B 42 -11 475 661 ; +C -1 ; WX 611 ; N Aacute ; B -51 0 564 876 ; +C -1 ; WX 278 ; N igrave ; B 49 -11 284 664 ; +C -1 ; WX 333 ; N Icircumflex ; B -8 0 425 873 ; +C -1 ; WX 444 ; N ccedilla ; B 26 -217 425 441 ; +C -1 ; WX 500 ; N adieresis ; B 17 -11 489 606 ; +C -1 ; WX 611 ; N Ecircumflex ; B -1 0 634 873 ; +C -1 ; WX 389 ; N scaron ; B 16 -13 454 661 ; +C -1 ; WX 500 ; N thorn ; B -75 -205 469 683 ; +C -1 ; WX 980 ; N trademark ; B 30 247 957 653 ; +C -1 ; WX 444 ; N egrave ; B 31 -11 412 664 ; +C -1 ; WX 300 ; N threesuperior ; B 43 268 339 676 ; +C -1 ; WX 389 ; N zcaron ; B -2 -81 434 661 ; +C -1 ; WX 500 ; N atilde ; B 17 -11 511 624 ; +C -1 ; WX 500 ; N aring ; B 17 -11 476 691 ; +C -1 ; WX 500 ; N ocircumflex ; B 27 -11 468 661 ; +C -1 ; WX 611 ; N Edieresis ; B -1 0 634 818 ; +C -1 ; WX 750 ; N threequarters ; B 23 -10 736 676 ; +C -1 ; WX 444 ; N ydieresis ; B -24 -206 441 606 ; +C -1 ; WX 444 ; N yacute ; B -24 -206 459 664 ; +C -1 ; WX 278 ; N iacute ; B 49 -11 356 664 ; +C -1 ; WX 611 ; N Acircumflex ; B -51 0 564 873 ; +C -1 ; WX 722 ; N Uacute ; B 102 -18 765 876 ; +C -1 ; WX 444 ; N eacute ; B 31 -11 459 664 ; +C -1 ; WX 722 ; N Ograve ; B 60 -18 699 876 ; +C -1 ; WX 500 ; N agrave ; B 17 -11 476 664 ; +C -1 ; WX 722 ; N Udieresis ; B 102 -18 765 818 ; +C -1 ; WX 500 ; N acircumflex ; B 17 -11 476 661 ; +C -1 ; WX 333 ; N Igrave ; B -8 0 384 876 ; +C -1 ; WX 300 ; N twosuperior ; B 33 271 324 676 ; +C -1 ; WX 722 ; N Ugrave ; B 102 -18 765 876 ; +C -1 ; WX 750 ; N onequarter ; B 33 -10 736 676 ; +C -1 ; WX 722 ; N Ucircumflex ; B 102 -18 765 873 ; +C -1 ; WX 500 ; N Scaron ; B 17 -18 520 873 ; +C -1 ; WX 333 ; N Idieresis ; B -8 0 435 818 ; +C -1 ; WX 278 ; N idieresis ; B 49 -11 353 606 ; +C -1 ; WX 611 ; N Egrave ; B -1 0 634 876 ; +C -1 ; WX 722 ; N Oacute ; B 60 -18 699 876 ; +C -1 ; WX 675 ; N divide ; B 86 -11 590 517 ; +C -1 ; WX 611 ; N Atilde ; B -51 0 566 836 ; +C -1 ; WX 611 ; N Aring ; B -51 0 564 883 ; +C -1 ; WX 722 ; N Odieresis ; B 60 -18 699 818 ; +C -1 ; WX 611 ; N Adieresis ; B -51 0 564 818 ; +C -1 ; WX 667 ; N Ntilde ; B -20 -15 727 836 ; +C -1 ; WX 556 ; N Zcaron ; B -6 0 606 873 ; +C -1 ; WX 611 ; N Thorn ; B 0 0 569 653 ; +C -1 ; WX 333 ; N Iacute ; B -8 0 413 876 ; +C -1 ; WX 675 ; N plusminus ; B 86 0 590 506 ; +C -1 ; WX 675 ; N multiply ; B 93 8 582 497 ; +C -1 ; WX 611 ; N Eacute ; B -1 0 634 876 ; +C -1 ; WX 556 ; N Ydieresis ; B 78 0 633 818 ; +C -1 ; WX 300 ; N onesuperior ; B 43 271 284 676 ; +C -1 ; WX 500 ; N ugrave ; B 42 -11 475 664 ; +C -1 ; WX 675 ; N logicalnot ; B 86 108 590 386 ; +C -1 ; WX 500 ; N ntilde ; B 14 -9 476 624 ; +C -1 ; WX 722 ; N Otilde ; B 60 -18 699 836 ; +C -1 ; WX 500 ; N otilde ; B 27 -11 496 624 ; +C -1 ; WX 667 ; N Ccedilla ; B 66 -217 689 666 ; +C -1 ; WX 611 ; N Agrave ; B -51 0 564 876 ; +C -1 ; WX 750 ; N onehalf ; B 34 -10 749 676 ; +C -1 ; WX 722 ; N Eth ; B -8 0 700 653 ; +C -1 ; WX 400 ; N degree ; B 101 390 387 676 ; +C -1 ; WX 556 ; N Yacute ; B 78 0 633 876 ; +C -1 ; WX 722 ; N Ocircumflex ; B 60 -18 699 873 ; +C -1 ; WX 500 ; N oacute ; B 27 -11 487 664 ; +C -1 ; WX 500 ; N mu ; B -30 -209 497 428 ; +C -1 ; WX 675 ; N minus ; B 86 220 590 286 ; +C -1 ; WX 500 ; N eth ; B 27 -11 482 683 ; +C -1 ; WX 500 ; N odieresis ; B 27 -11 489 606 ; +C -1 ; WX 760 ; N copyright ; B 41 -18 719 666 ; +C -1 ; WX 275 ; N brokenbar ; B 105 -18 171 666 ; +EndCharMetrics +StartKernData +StartKernPairs 182 + +KPX A y -55 +KPX A w -55 +KPX A v -55 +KPX A u -20 +KPX A quoteright -37 +KPX A Y -55 +KPX A W -95 +KPX A V -105 +KPX A U -50 +KPX A T -37 +KPX A Q -40 +KPX A O -40 +KPX A G -35 +KPX A C -30 + +KPX B U -10 +KPX B A -25 + +KPX D Y -40 +KPX D W -40 +KPX D V -40 +KPX D A -35 + +KPX F r -55 +KPX F period -135 +KPX F o -105 +KPX F i -45 +KPX F e -75 +KPX F comma -135 +KPX F a -75 +KPX F A -115 + +KPX J u -35 +KPX J period -25 +KPX J o -25 +KPX J e -25 +KPX J comma -25 +KPX J a -35 +KPX J A -40 + +KPX K y -40 +KPX K u -40 +KPX K o -40 +KPX K e -35 +KPX K O -50 + +KPX L y -30 +KPX L quoteright -37 +KPX L Y -20 +KPX L W -55 +KPX L V -55 +KPX L T -20 + +KPX N A -27 + +KPX O Y -50 +KPX O X -40 +KPX O W -50 +KPX O V -50 +KPX O T -40 +KPX O A -55 + +KPX P period -135 +KPX P o -80 +KPX P e -80 +KPX P comma -135 +KPX P a -80 +KPX P A -90 + +KPX Q U -10 + +KPX R Y -18 +KPX R W -18 +KPX R V -18 +KPX R U -40 +KPX R O -40 + +KPX T y -74 +KPX T w -74 +KPX T u -55 +KPX T semicolon -65 +KPX T r -55 +KPX T period -74 +KPX T o -92 +KPX T i -55 +KPX T hyphen -74 +KPX T e -92 +KPX T comma -74 +KPX T colon -55 +KPX T a -92 +KPX T O -18 +KPX T A -50 + +KPX U period -25 +KPX U comma -25 +KPX U A -40 + +KPX V u -74 +KPX V semicolon -74 +KPX V period -129 +KPX V o -111 +KPX V i -74 +KPX V hyphen -55 +KPX V e -111 +KPX V comma -129 +KPX V colon -65 +KPX V a -111 +KPX V O -30 +KPX V A -60 + +KPX W y -70 +KPX W u -55 +KPX W semicolon -65 +KPX W period -92 +KPX W o -92 +KPX W i -55 +KPX W hyphen -37 +KPX W e -92 +KPX W comma -92 +KPX W colon -65 +KPX W a -92 +KPX W O -25 +KPX W A -60 + +KPX Y u -92 +KPX Y semicolon -65 +KPX Y period -92 +KPX Y o -92 +KPX Y i -74 +KPX Y hyphen -74 +KPX Y e -92 +KPX Y comma -92 +KPX Y colon -65 +KPX Y a -92 +KPX Y O -15 +KPX Y A -50 + +KPX a g -10 + +KPX b u -20 +KPX b period -40 + +KPX c k -20 +KPX c h -15 + +KPX comma quoteright -140 +KPX comma quotedblright -140 + +KPX e y -30 +KPX e x -20 +KPX e w -15 +KPX e v -15 +KPX e period -15 +KPX e g -40 +KPX e comma -10 + +KPX f quoteright 92 +KPX f period -15 +KPX f i -20 +KPX f f -18 +KPX f dotlessi -60 +KPX f comma -10 + +KPX g period -15 +KPX g g -10 +KPX g e -10 +KPX g comma -10 + +KPX k y -10 +KPX k o -10 +KPX k e -10 + +KPX n v -40 + +KPX o v -10 +KPX o g -10 + +KPX period quoteright -140 +KPX period quotedblright -140 + +KPX quoteleft quoteleft -111 + +KPX quoteright v -10 +KPX quoteright t -30 +KPX quoteright space -111 +KPX quoteright s -40 +KPX quoteright r -25 +KPX quoteright quoteright -111 +KPX quoteright d -25 + +KPX r s -10 +KPX r q -37 +KPX r period -111 +KPX r o -45 +KPX r hyphen -20 +KPX r g -37 +KPX r e -37 +KPX r d -37 +KPX r comma -111 +KPX r c -37 +KPX r a -15 + +KPX space Y -75 +KPX space W -40 +KPX space V -35 +KPX space T -18 +KPX space A -18 + +KPX v period -74 +KPX v comma -74 + +KPX w period -74 +KPX w comma -74 + +KPX y period -55 +KPX y comma -55 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 139 212 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 144 212 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 139 212 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 149 212 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 129 192 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 139 212 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 149 212 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 169 212 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 159 212 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 149 212 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 10 212 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 40 212 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 30 212 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 10 212 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 177 212 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 195 212 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 230 212 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 230 212 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 205 212 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 215 212 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 94 212 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 195 212 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 215 212 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 225 212 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 215 212 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 132 212 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 142 212 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 112 212 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 84 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 84 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 84 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 84 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 84 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 84 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 56 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 56 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 46 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 56 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -47 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -57 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -52 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 49 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 84 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 74 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 84 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 84 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 69 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 28 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 74 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 74 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 74 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 84 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 56 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 36 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 8 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-ItF+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-ItF+ new file mode 100755 index 0000000000000..b234707149b5f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-ItF+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 667 ; N Ccaron ; B 66 -18 714 882 ; +C -1 ; WX 444 ; N ccaron ; B 30 -11 501 661 ; +C -1 ; WX 722 ; N Dcaron ; B -8 0 700 882 ; +C -1 ; WX 597 ; N dcaron ; B 15 -13 680 751 ; +C -1 ; WX 611 ; N Ecaron ; B -1 0 634 882 ; +C -1 ; WX 444 ; N ecaron ; B 31 -11 481 661 ; +C -1 ; WX 556 ; N Lcaron ; B -8 0 559 718 ; +C -1 ; WX 556 ; N Lacute ; B -8 0 572 883 ; +C -1 ; WX 375 ; N lcaron ; B 41 -11 432 751 ; +C -1 ; WX 278 ; N lacute ; B 41 -11 456 883 ; +C -1 ; WX 667 ; N Ncaron ; B -20 -15 727 882 ; +C -1 ; WX 500 ; N ncaron ; B 14 -9 509 661 ; +C -1 ; WX 611 ; N Rcaron ; B -13 0 624 882 ; +C -1 ; WX 611 ; N Racute ; B -13 0 642 883 ; +C -1 ; WX 389 ; N rcaron ; B 45 0 454 661 ; +C -1 ; WX 389 ; N racute ; B 45 0 453 664 ; +C -1 ; WX 556 ; N Tcaron ; B 59 0 633 882 ; +C -1 ; WX 375 ; N tcaron ; B 37 -11 449 666 ; +C -1 ; WX 722 ; N Uring ; B 102 -18 765 882 ; +C -1 ; WX 500 ; N uring ; B 42 -11 475 691 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 288 221 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 75 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 253 221 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 390 85 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 198 221 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 55 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 247 52 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 169 219 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 142 85 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 53 219 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 226 221 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 83 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 198 221 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 239 219 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 28 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 50 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 170 221 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 159 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 245 191 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 83 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-Rm b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-Rm new file mode 100755 index 0000000000000..e5092b5c85076 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-Rm @@ -0,0 +1,648 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Tue Mar 20 12:15:44 1990 +Comment UniqueID 28416 +Comment VMusage 30487 37379 +FontName Times-Roman +FullName Times Roman +FamilyName Times +Weight Roman +ItalicAngle 0 +IsFixedPitch false +FontBBox -168 -218 1000 898 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.007 +Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 662 +XHeight 450 +Ascender 683 +Descender -217 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 130 -9 238 676 ; +C 34 ; WX 408 ; N quotedbl ; B 77 431 331 676 ; +C 35 ; WX 500 ; N numbersign ; B 5 0 496 662 ; +C 36 ; WX 500 ; N dollar ; B 44 -87 457 727 ; +C 37 ; WX 833 ; N percent ; B 61 -13 772 676 ; +C 38 ; WX 778 ; N ampersand ; B 42 -13 750 676 ; +C 39 ; WX 333 ; N quoteright ; B 79 433 218 676 ; +C 40 ; WX 333 ; N parenleft ; B 48 -177 304 676 ; +C 41 ; WX 333 ; N parenright ; B 29 -177 285 676 ; +C 42 ; WX 500 ; N asterisk ; B 69 265 432 676 ; +C 43 ; WX 564 ; N plus ; B 30 0 534 506 ; +C 44 ; WX 250 ; N comma ; B 56 -141 195 102 ; +C 45 ; WX 333 ; N hyphen ; B 39 194 285 257 ; +C 46 ; WX 250 ; N period ; B 70 -11 181 100 ; +C 47 ; WX 278 ; N slash ; B -9 -14 287 676 ; +C 48 ; WX 500 ; N zero ; B 24 -14 476 676 ; +C 49 ; WX 500 ; N one ; B 111 0 394 676 ; +C 50 ; WX 500 ; N two ; B 30 0 475 676 ; +C 51 ; WX 500 ; N three ; B 43 -14 431 676 ; +C 52 ; WX 500 ; N four ; B 12 0 472 676 ; +C 53 ; WX 500 ; N five ; B 32 -14 438 688 ; +C 54 ; WX 500 ; N six ; B 34 -14 468 684 ; +C 55 ; WX 500 ; N seven ; B 20 -8 449 662 ; +C 56 ; WX 500 ; N eight ; B 56 -14 445 676 ; +C 57 ; WX 500 ; N nine ; B 30 -22 459 676 ; +C 58 ; WX 278 ; N colon ; B 81 -11 192 459 ; +C 59 ; WX 278 ; N semicolon ; B 80 -141 219 459 ; +C 60 ; WX 564 ; N less ; B 28 -8 536 514 ; +C 61 ; WX 564 ; N equal ; B 30 120 534 386 ; +C 62 ; WX 564 ; N greater ; B 28 -8 536 514 ; +C 63 ; WX 444 ; N question ; B 68 -8 414 676 ; +C 64 ; WX 921 ; N at ; B 116 -14 809 676 ; +C 65 ; WX 722 ; N A ; B 15 0 706 674 ; +C 66 ; WX 667 ; N B ; B 17 0 593 662 ; +C 67 ; WX 667 ; N C ; B 28 -14 633 676 ; +C 68 ; WX 722 ; N D ; B 16 0 685 662 ; +C 69 ; WX 611 ; N E ; B 12 0 597 662 ; +C 70 ; WX 556 ; N F ; B 12 0 546 662 ; +C 71 ; WX 722 ; N G ; B 32 -14 709 676 ; +C 72 ; WX 722 ; N H ; B 19 0 702 662 ; +C 73 ; WX 333 ; N I ; B 18 0 315 662 ; +C 74 ; WX 389 ; N J ; B 10 -14 370 662 ; +C 75 ; WX 722 ; N K ; B 34 0 723 662 ; +C 76 ; WX 611 ; N L ; B 12 0 598 662 ; +C 77 ; WX 889 ; N M ; B 12 0 863 662 ; +C 78 ; WX 722 ; N N ; B 12 -11 707 662 ; +C 79 ; WX 722 ; N O ; B 34 -14 688 676 ; +C 80 ; WX 556 ; N P ; B 16 0 542 662 ; +C 81 ; WX 722 ; N Q ; B 34 -178 701 676 ; +C 82 ; WX 667 ; N R ; B 17 0 659 662 ; +C 83 ; WX 556 ; N S ; B 42 -14 491 676 ; +C 84 ; WX 611 ; N T ; B 17 0 593 662 ; +C 85 ; WX 722 ; N U ; B 14 -14 705 662 ; +C 86 ; WX 722 ; N V ; B 16 -11 697 662 ; +C 87 ; WX 944 ; N W ; B 5 -11 932 662 ; +C 88 ; WX 722 ; N X ; B 10 0 704 662 ; +C 89 ; WX 722 ; N Y ; B 22 0 703 662 ; +C 90 ; WX 611 ; N Z ; B 9 0 597 662 ; +C 91 ; WX 333 ; N bracketleft ; B 88 -156 299 662 ; +C 92 ; WX 278 ; N backslash ; B -9 -14 287 676 ; +C 93 ; WX 333 ; N bracketright ; B 34 -156 245 662 ; +C 94 ; WX 469 ; N asciicircum ; B 24 297 446 662 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 333 ; N quoteleft ; B 115 433 254 676 ; +C 97 ; WX 444 ; N a ; B 37 -10 442 460 ; +C 98 ; WX 500 ; N b ; B 3 -10 468 683 ; +C 99 ; WX 444 ; N c ; B 25 -10 412 460 ; +C 100 ; WX 500 ; N d ; B 27 -10 491 683 ; +C 101 ; WX 444 ; N e ; B 25 -10 424 460 ; +C 102 ; WX 333 ; N f ; B 20 0 383 683 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B 28 -218 470 460 ; +C 104 ; WX 500 ; N h ; B 9 0 487 683 ; +C 105 ; WX 278 ; N i ; B 16 0 253 683 ; +C 106 ; WX 278 ; N j ; B -70 -218 194 683 ; +C 107 ; WX 500 ; N k ; B 7 0 505 683 ; +C 108 ; WX 278 ; N l ; B 19 0 257 683 ; +C 109 ; WX 778 ; N m ; B 16 0 775 460 ; +C 110 ; WX 500 ; N n ; B 16 0 485 460 ; +C 111 ; WX 500 ; N o ; B 29 -10 470 460 ; +C 112 ; WX 500 ; N p ; B 5 -217 470 460 ; +C 113 ; WX 500 ; N q ; B 24 -217 488 460 ; +C 114 ; WX 333 ; N r ; B 5 0 335 460 ; +C 115 ; WX 389 ; N s ; B 51 -10 348 460 ; +C 116 ; WX 278 ; N t ; B 13 -10 279 579 ; +C 117 ; WX 500 ; N u ; B 9 -10 479 450 ; +C 118 ; WX 500 ; N v ; B 19 -14 477 450 ; +C 119 ; WX 722 ; N w ; B 21 -14 694 450 ; +C 120 ; WX 500 ; N x ; B 17 0 479 450 ; +C 121 ; WX 500 ; N y ; B 14 -218 475 450 ; +C 122 ; WX 444 ; N z ; B 27 0 418 450 ; +C 123 ; WX 480 ; N braceleft ; B 100 -181 350 680 ; +C 124 ; WX 200 ; N bar ; B 67 -14 133 676 ; +C 125 ; WX 480 ; N braceright ; B 130 -181 380 680 ; +C 126 ; WX 541 ; N asciitilde ; B 40 183 502 323 ; +C 161 ; WX 333 ; N exclamdown ; B 97 -218 205 467 ; +C 162 ; WX 500 ; N cent ; B 53 -138 448 579 ; +C 163 ; WX 500 ; N sterling ; B 12 -8 490 676 ; +C 164 ; WX 167 ; N fraction ; B -168 -14 331 676 ; +C 165 ; WX 500 ; N yen ; B -53 0 512 662 ; +C 166 ; WX 500 ; N florin ; B 7 -189 490 676 ; +C 167 ; WX 500 ; N section ; B 70 -148 426 676 ; +C 168 ; WX 500 ; N currency ; B -22 58 522 602 ; +C 169 ; WX 180 ; N quotesingle ; B 48 431 133 676 ; +C 170 ; WX 444 ; N quotedblleft ; B 43 433 414 676 ; +C 171 ; WX 500 ; N guillemotleft ; B 42 33 456 416 ; +C 172 ; WX 333 ; N guilsinglleft ; B 63 33 285 416 ; +C 173 ; WX 333 ; N guilsinglright ; B 48 33 270 416 ; +C 174 ; WX 556 ; N fi ; B 31 0 521 683 ; +C 175 ; WX 556 ; N fl ; B 32 0 521 683 ; +C 177 ; WX 500 ; N endash ; B 0 201 500 250 ; +C 178 ; WX 500 ; N dagger ; B 59 -149 442 676 ; +C 179 ; WX 500 ; N daggerdbl ; B 58 -153 442 676 ; +C 180 ; WX 250 ; N periodcentered ; B 70 199 181 310 ; +C 182 ; WX 453 ; N paragraph ; B -22 -154 450 662 ; +C 183 ; WX 350 ; N bullet ; B 40 196 310 466 ; +C 184 ; WX 333 ; N quotesinglbase ; B 79 -141 218 102 ; +C 185 ; WX 444 ; N quotedblbase ; B 45 -141 416 102 ; +C 186 ; WX 444 ; N quotedblright ; B 30 433 401 676 ; +C 187 ; WX 500 ; N guillemotright ; B 44 33 458 416 ; +C 188 ; WX 1000 ; N ellipsis ; B 111 -11 888 100 ; +C 189 ; WX 1000 ; N perthousand ; B 7 -19 994 706 ; +C 191 ; WX 444 ; N questiondown ; B 30 -218 376 466 ; +C 193 ; WX 333 ; N grave ; B 19 507 242 678 ; +C 194 ; WX 333 ; N acute ; B 93 507 317 678 ; +C 195 ; WX 333 ; N circumflex ; B 11 507 322 674 ; +C 196 ; WX 333 ; N tilde ; B 1 532 331 638 ; +C 197 ; WX 333 ; N macron ; B 11 547 322 601 ; +C 198 ; WX 333 ; N breve ; B 26 507 307 664 ; +C 199 ; WX 333 ; N dotaccent ; B 118 523 216 623 ; +C 200 ; WX 333 ; N dieresis ; B 18 523 315 623 ; +C 202 ; WX 333 ; N ring ; B 67 512 266 711 ; +C 203 ; WX 333 ; N cedilla ; B 52 -215 261 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B -3 507 377 678 ; +C 206 ; WX 333 ; N ogonek ; B 64 -165 249 0 ; +C 207 ; WX 333 ; N caron ; B 11 507 322 674 ; +C 208 ; WX 1000 ; N emdash ; B 0 201 1000 250 ; +C 225 ; WX 889 ; N AE ; B 0 0 863 662 ; +C 227 ; WX 276 ; N ordfeminine ; B 4 394 270 676 ; +C 232 ; WX 611 ; N Lslash ; B 12 0 598 662 ; +C 233 ; WX 722 ; N Oslash ; B 34 -80 688 734 ; +C 234 ; WX 889 ; N OE ; B 30 -6 885 668 ; +C 235 ; WX 310 ; N ordmasculine ; B 6 394 304 676 ; +C 241 ; WX 667 ; N ae ; B 38 -10 632 460 ; +C 245 ; WX 278 ; N dotlessi ; B 16 0 253 460 ; +C 248 ; WX 278 ; N lslash ; B 19 0 259 683 ; +C 249 ; WX 500 ; N oslash ; B 29 -112 470 551 ; +C 250 ; WX 722 ; N oe ; B 30 -10 690 460 ; +C 251 ; WX 500 ; N germandbls ; B 12 -9 468 683 ; +C -1 ; WX 611 ; N Zcaron ; B 9 0 597 886 ; +C -1 ; WX 444 ; N ccedilla ; B 25 -215 412 460 ; +C -1 ; WX 500 ; N ydieresis ; B 14 -218 475 623 ; +C -1 ; WX 444 ; N atilde ; B 37 -10 442 638 ; +C -1 ; WX 278 ; N icircumflex ; B -16 0 295 674 ; +C -1 ; WX 300 ; N threesuperior ; B 15 262 291 676 ; +C -1 ; WX 444 ; N ecircumflex ; B 25 -10 424 674 ; +C -1 ; WX 500 ; N thorn ; B 5 -217 470 683 ; +C -1 ; WX 444 ; N egrave ; B 25 -10 424 678 ; +C -1 ; WX 300 ; N twosuperior ; B 1 270 296 676 ; +C -1 ; WX 444 ; N eacute ; B 25 -10 424 678 ; +C -1 ; WX 500 ; N otilde ; B 29 -10 470 638 ; +C -1 ; WX 722 ; N Aacute ; B 15 0 706 890 ; +C -1 ; WX 500 ; N ocircumflex ; B 29 -10 470 674 ; +C -1 ; WX 500 ; N yacute ; B 14 -218 475 678 ; +C -1 ; WX 500 ; N udieresis ; B 9 -10 479 623 ; +C -1 ; WX 750 ; N threequarters ; B 15 -14 718 676 ; +C -1 ; WX 444 ; N acircumflex ; B 37 -10 442 674 ; +C -1 ; WX 722 ; N Eth ; B 16 0 685 662 ; +C -1 ; WX 444 ; N edieresis ; B 25 -10 424 623 ; +C -1 ; WX 500 ; N ugrave ; B 9 -10 479 678 ; +C -1 ; WX 980 ; N trademark ; B 30 256 957 662 ; +C -1 ; WX 500 ; N ograve ; B 29 -10 470 678 ; +C -1 ; WX 389 ; N scaron ; B 39 -10 350 674 ; +C -1 ; WX 333 ; N Idieresis ; B 18 0 315 835 ; +C -1 ; WX 500 ; N uacute ; B 9 -10 479 678 ; +C -1 ; WX 444 ; N agrave ; B 37 -10 442 678 ; +C -1 ; WX 500 ; N ntilde ; B 16 0 485 638 ; +C -1 ; WX 444 ; N aring ; B 37 -10 442 711 ; +C -1 ; WX 444 ; N zcaron ; B 27 0 418 674 ; +C -1 ; WX 333 ; N Icircumflex ; B 11 0 322 886 ; +C -1 ; WX 722 ; N Ntilde ; B 12 -11 707 850 ; +C -1 ; WX 500 ; N ucircumflex ; B 9 -10 479 674 ; +C -1 ; WX 611 ; N Ecircumflex ; B 12 0 597 886 ; +C -1 ; WX 333 ; N Iacute ; B 18 0 317 890 ; +C -1 ; WX 667 ; N Ccedilla ; B 28 -215 633 676 ; +C -1 ; WX 722 ; N Odieresis ; B 34 -14 688 835 ; +C -1 ; WX 556 ; N Scaron ; B 42 -14 491 886 ; +C -1 ; WX 611 ; N Edieresis ; B 12 0 597 835 ; +C -1 ; WX 333 ; N Igrave ; B 18 0 315 890 ; +C -1 ; WX 444 ; N adieresis ; B 37 -10 442 623 ; +C -1 ; WX 722 ; N Ograve ; B 34 -14 688 890 ; +C -1 ; WX 611 ; N Egrave ; B 12 0 597 890 ; +C -1 ; WX 722 ; N Ydieresis ; B 22 0 703 835 ; +C -1 ; WX 760 ; N registered ; B 38 -14 722 676 ; +C -1 ; WX 722 ; N Otilde ; B 34 -14 688 850 ; +C -1 ; WX 750 ; N onequarter ; B 37 -14 718 676 ; +C -1 ; WX 722 ; N Ugrave ; B 14 -14 705 890 ; +C -1 ; WX 722 ; N Ucircumflex ; B 14 -14 705 886 ; +C -1 ; WX 556 ; N Thorn ; B 16 0 542 662 ; +C -1 ; WX 564 ; N divide ; B 30 -10 534 516 ; +C -1 ; WX 722 ; N Atilde ; B 15 0 706 850 ; +C -1 ; WX 722 ; N Uacute ; B 14 -14 705 890 ; +C -1 ; WX 722 ; N Ocircumflex ; B 34 -14 688 886 ; +C -1 ; WX 564 ; N logicalnot ; B 30 108 534 386 ; +C -1 ; WX 722 ; N Aring ; B 15 0 706 898 ; +C -1 ; WX 278 ; N idieresis ; B -9 0 288 623 ; +C -1 ; WX 278 ; N iacute ; B 16 0 290 678 ; +C -1 ; WX 444 ; N aacute ; B 37 -10 442 678 ; +C -1 ; WX 564 ; N plusminus ; B 30 0 534 506 ; +C -1 ; WX 564 ; N multiply ; B 38 8 527 497 ; +C -1 ; WX 722 ; N Udieresis ; B 14 -14 705 835 ; +C -1 ; WX 564 ; N minus ; B 30 220 534 286 ; +C -1 ; WX 300 ; N onesuperior ; B 57 270 248 676 ; +C -1 ; WX 611 ; N Eacute ; B 12 0 597 890 ; +C -1 ; WX 722 ; N Acircumflex ; B 15 0 706 886 ; +C -1 ; WX 760 ; N copyright ; B 38 -14 722 676 ; +C -1 ; WX 722 ; N Agrave ; B 15 0 706 890 ; +C -1 ; WX 500 ; N odieresis ; B 29 -10 470 623 ; +C -1 ; WX 500 ; N oacute ; B 29 -10 470 678 ; +C -1 ; WX 400 ; N degree ; B 57 390 343 676 ; +C -1 ; WX 278 ; N igrave ; B -8 0 253 678 ; +C -1 ; WX 500 ; N mu ; B 36 -218 512 450 ; +C -1 ; WX 722 ; N Oacute ; B 34 -14 688 890 ; +C -1 ; WX 500 ; N eth ; B 29 -10 471 686 ; +C -1 ; WX 722 ; N Adieresis ; B 15 0 706 835 ; +C -1 ; WX 722 ; N Yacute ; B 22 0 703 890 ; +C -1 ; WX 200 ; N brokenbar ; B 67 -14 133 676 ; +C -1 ; WX 750 ; N onehalf ; B 31 -14 746 676 ; +EndCharMetrics +StartKernData +StartKernPairs 283 + +KPX A y -92 +KPX A w -92 +KPX A v -74 +KPX A u 0 +KPX A quoteright -111 +KPX A quotedblright 0 +KPX A p 0 +KPX A Y -105 +KPX A W -90 +KPX A V -135 +KPX A U -55 +KPX A T -111 +KPX A Q -55 +KPX A O -55 +KPX A G -40 +KPX A C -40 + +KPX B period 0 +KPX B comma 0 +KPX B U -10 +KPX B A -35 + +KPX D period 0 +KPX D comma 0 +KPX D Y -55 +KPX D W -30 +KPX D V -40 +KPX D A -40 + +KPX F r 0 +KPX F period -80 +KPX F o -15 +KPX F i 0 +KPX F e 0 +KPX F comma -80 +KPX F a -15 +KPX F A -74 + +KPX G period 0 +KPX G comma 0 + +KPX J u 0 +KPX J period 0 +KPX J o 0 +KPX J e 0 +KPX J comma 0 +KPX J a 0 +KPX J A -60 + +KPX K y -25 +KPX K u -15 +KPX K o -35 +KPX K e -25 +KPX K O -30 + +KPX L y -55 +KPX L quoteright -92 +KPX L quotedblright 0 +KPX L Y -100 +KPX L W -74 +KPX L V -100 +KPX L T -92 + +KPX N period 0 +KPX N comma 0 +KPX N A -35 + +KPX O period 0 +KPX O comma 0 +KPX O Y -50 +KPX O X -40 +KPX O W -35 +KPX O V -50 +KPX O T -40 +KPX O A -35 + +KPX P period -111 +KPX P o 0 +KPX P e 0 +KPX P comma -111 +KPX P a -15 +KPX P A -92 + +KPX Q period 0 +KPX Q comma 0 +KPX Q U -10 + +KPX R Y -65 +KPX R W -55 +KPX R V -80 +KPX R U -40 +KPX R T -60 +KPX R O -40 + +KPX S period 0 +KPX S comma 0 + +KPX T y -80 +KPX T w -80 +KPX T u -45 +KPX T semicolon -55 +KPX T r -35 +KPX T period -74 +KPX T o -80 +KPX T i -35 +KPX T hyphen -92 +KPX T h 0 +KPX T e -70 +KPX T comma -74 +KPX T colon -50 +KPX T a -80 +KPX T O -18 +KPX T A -93 + +KPX U period 0 +KPX U comma 0 +KPX U A -40 + +KPX V u -75 +KPX V semicolon -74 +KPX V period -129 +KPX V o -129 +KPX V i -60 +KPX V hyphen -100 +KPX V e -111 +KPX V comma -129 +KPX V colon -74 +KPX V a -111 +KPX V O -40 +KPX V G -15 +KPX V A -135 + +KPX W y -73 +KPX W u -50 +KPX W semicolon -37 +KPX W period -92 +KPX W o -80 +KPX W i -40 +KPX W hyphen -65 +KPX W h 0 +KPX W e -80 +KPX W comma -92 +KPX W colon -37 +KPX W a -80 +KPX W O -10 +KPX W A -120 + +KPX Y u -111 +KPX Y semicolon -92 +KPX Y period -129 +KPX Y o -110 +KPX Y i -55 +KPX Y hyphen -111 +KPX Y e -100 +KPX Y comma -129 +KPX Y colon -92 +KPX Y a -100 +KPX Y O -30 +KPX Y A -120 + +KPX a y 0 +KPX a w -15 +KPX a v -20 +KPX a t 0 +KPX a p 0 +KPX a g 0 +KPX a b 0 + +KPX b y 0 +KPX b v -15 +KPX b u -20 +KPX b period -40 +KPX b l 0 +KPX b comma 0 +KPX b b 0 + +KPX c y -15 +KPX c period 0 +KPX c l 0 +KPX c k 0 +KPX c h 0 +KPX c comma 0 + +KPX colon space 0 + +KPX comma space 0 +KPX comma quoteright -70 +KPX comma quotedblright -70 + +KPX d y 0 +KPX d w 0 +KPX d v 0 +KPX d period 0 +KPX d d 0 +KPX d comma 0 + +KPX e y -15 +KPX e x -15 +KPX e w -25 +KPX e v -25 +KPX e period 0 +KPX e p 0 +KPX e g -15 +KPX e comma 0 +KPX e b 0 + +KPX f quoteright 55 +KPX f quotedblright 0 +KPX f period 0 +KPX f o 0 +KPX f l 0 +KPX f i -20 +KPX f f -25 +KPX f e 0 +KPX f dotlessi -50 +KPX f comma 0 +KPX f a -10 + +KPX g y 0 +KPX g r 0 +KPX g period 0 +KPX g o 0 +KPX g i 0 +KPX g g 0 +KPX g e 0 +KPX g comma 0 +KPX g a -5 + +KPX h y -5 + +KPX i v -25 + +KPX k y -15 +KPX k o -10 +KPX k e -10 + +KPX l y 0 +KPX l w -10 + +KPX m y 0 +KPX m u 0 + +KPX n y -15 +KPX n v -40 +KPX n u 0 + +KPX o y -10 +KPX o x 0 +KPX o w -25 +KPX o v -15 +KPX o g 0 + +KPX p y -10 + +KPX period quoteright -70 +KPX period quotedblright -70 + +KPX quotedblleft quoteleft 0 +KPX quotedblleft A -80 + +KPX quotedblright space 0 + +KPX quoteleft quoteleft -74 +KPX quoteleft A -80 + +KPX quoteright v -50 +KPX quoteright t -18 +KPX quoteright space -74 +KPX quoteright s -55 +KPX quoteright r -50 +KPX quoteright quoteright -74 +KPX quoteright quotedblright 0 +KPX quoteright l -10 +KPX quoteright d -50 + +KPX r y 0 +KPX r v 0 +KPX r u 0 +KPX r t 0 +KPX r s 0 +KPX r r 0 +KPX r q 0 +KPX r period -55 +KPX r p 0 +KPX r o 0 +KPX r n 0 +KPX r m 0 +KPX r l 0 +KPX r k 0 +KPX r i 0 +KPX r hyphen -20 +KPX r g -18 +KPX r e 0 +KPX r d 0 +KPX r comma -40 +KPX r c 0 +KPX r a 0 + +KPX s w 0 + +KPX space quoteleft 0 +KPX space quotedblleft 0 +KPX space Y -90 +KPX space W -30 +KPX space V -50 +KPX space T -18 +KPX space A -55 + +KPX v period -65 +KPX v o -20 +KPX v e -15 +KPX v comma -65 +KPX v a -25 + +KPX w period -65 +KPX w o -10 +KPX w h 0 +KPX w e 0 +KPX w comma -65 +KPX w a -10 + +KPX x e -15 + +KPX y period -65 +KPX y o 0 +KPX y e 0 +KPX y comma -65 +KPX y a 0 + +KPX z o 0 +KPX z e 0 +EndKernPairs +EndKernData +StartComposites 58 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 195 212 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 195 212 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 195 212 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 195 212 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 185 187 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 195 212 ; +CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 167 0 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 139 212 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 139 212 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 139 212 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 139 212 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 0 212 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 0 212 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 0 212 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 212 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 195 212 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 195 212 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 195 212 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 195 212 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 195 212 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 195 212 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 112 212 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 195 212 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 195 212 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 195 212 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 195 212 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 195 212 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 195 212 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 212 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 56 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 56 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 56 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 56 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 56 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 56 0 ; +CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 56 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 56 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 56 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 56 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 56 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -27 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 84 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 84 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 84 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 84 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 84 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 84 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 28 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 84 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 84 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 84 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 84 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 84 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 84 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 56 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-Rm+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-Rm+ new file mode 100755 index 0000000000000..f9b7cc1ff2174 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-Rm+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 667 ; N Ccaron ; B 28 -14 633 890 ; +C -1 ; WX 444 ; N ccaron ; B 25 -10 412 674 ; +C -1 ; WX 722 ; N Dcaron ; B 16 0 685 890 ; +C -1 ; WX 597 ; N dcaron ; B 27 -10 644 751 ; +C -1 ; WX 611 ; N Ecaron ; B 12 0 597 890 ; +C -1 ; WX 444 ; N ecaron ; B 25 -10 424 674 ; +C -1 ; WX 611 ; N Lcaron ; B 12 0 598 728 ; +C -1 ; WX 611 ; N Lacute ; B 12 0 598 894 ; +C -1 ; WX 375 ; N lcaron ; B 19 0 410 751 ; +C -1 ; WX 278 ; N lacute ; B 19 0 312 894 ; +C -1 ; WX 722 ; N Ncaron ; B 12 -11 707 890 ; +C -1 ; WX 500 ; N ncaron ; B 16 0 485 674 ; +C -1 ; WX 667 ; N Rcaron ; B 17 0 659 890 ; +C -1 ; WX 667 ; N Racute ; B 17 0 659 894 ; +C -1 ; WX 333 ; N rcaron ; B 5 0 335 674 ; +C -1 ; WX 333 ; N racute ; B 5 0 339 678 ; +C -1 ; WX 611 ; N Tcaron ; B 17 0 593 890 ; +C -1 ; WX 375 ; N tcaron ; B 13 -10 432 676 ; +C -1 ; WX 722 ; N Uring ; B 14 -14 705 890 ; +C -1 ; WX 500 ; N uring ; B 9 -10 479 711 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 228 216 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 74 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 194 216 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 426 75 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 139 216 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 55 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 250 52 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 139 216 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 192 75 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute -5 216 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 194 216 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 83 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 167 216 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 210 216 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 22 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 139 216 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 214 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 194 179 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 83 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-RmSC b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-RmSC new file mode 100755 index 0000000000000..78bcf48f4cad6 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-RmSC @@ -0,0 +1,550 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Tue Dec 4 11:14:47 1990 +Comment UniqueID 33647 +Comment VMusage 29411 36303 +FontName Times-RomanSC +FullName Times Roman Small Caps & Old Style Figures +FamilyName Times +Weight Roman +ItalicAngle 0 +IsFixedPitch false +FontBBox -168 -218 994 898 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 662 +XHeight 486 +Ascender 486 +Descender 0 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 130 -9 238 676 ; +C 34 ; WX 408 ; N quotedbl ; B 77 431 331 676 ; +C 35 ; WX 500 ; N numbersign ; B 5 0 496 662 ; +C 36 ; WX 500 ; N dollar ; B 44 -87 457 727 ; +C 37 ; WX 833 ; N percent ; B 61 -13 772 676 ; +C 38 ; WX 778 ; N ampersand ; B 42 -13 750 676 ; +C 39 ; WX 333 ; N quoteright ; B 79 433 218 676 ; +C 40 ; WX 333 ; N parenleft ; B 48 -177 304 676 ; +C 41 ; WX 333 ; N parenright ; B 29 -177 285 676 ; +C 42 ; WX 500 ; N asterisk ; B 69 265 432 676 ; +C 43 ; WX 564 ; N plus ; B 30 0 534 506 ; +C 44 ; WX 250 ; N comma ; B 56 -141 195 102 ; +C 45 ; WX 333 ; N hyphen ; B 39 194 285 257 ; +C 46 ; WX 250 ; N period ; B 70 -11 181 100 ; +C 47 ; WX 278 ; N slash ; B -9 -14 287 676 ; +C 48 ; WX 500 ; N zero ; B 20 -8 474 494 ; +C 49 ; WX 500 ; N one ; B 111 0 382 486 ; +C 50 ; WX 500 ; N two ; B 39 0 442 494 ; +C 51 ; WX 500 ; N three ; B 45 -188 432 494 ; +C 52 ; WX 500 ; N four ; B 14 -177 475 505 ; +C 53 ; WX 500 ; N five ; B 34 -188 442 510 ; +C 54 ; WX 500 ; N six ; B 38 -8 466 684 ; +C 55 ; WX 500 ; N seven ; B 18 -187 454 486 ; +C 56 ; WX 500 ; N eight ; B 52 -8 438 674 ; +C 57 ; WX 500 ; N nine ; B 28 -198 454 494 ; +C 58 ; WX 278 ; N colon ; B 81 -11 192 459 ; +C 59 ; WX 278 ; N semicolon ; B 80 -141 219 459 ; +C 60 ; WX 564 ; N less ; B 28 -8 536 514 ; +C 61 ; WX 564 ; N equal ; B 30 120 534 386 ; +C 62 ; WX 564 ; N greater ; B 28 -8 536 514 ; +C 63 ; WX 444 ; N question ; B 68 -8 414 676 ; +C 64 ; WX 921 ; N at ; B 116 -14 809 676 ; +C 65 ; WX 722 ; N A ; B 15 0 706 674 ; +C 66 ; WX 667 ; N B ; B 17 0 593 662 ; +C 67 ; WX 667 ; N C ; B 28 -14 633 676 ; +C 68 ; WX 722 ; N D ; B 16 0 685 662 ; +C 69 ; WX 611 ; N E ; B 12 0 597 662 ; +C 70 ; WX 556 ; N F ; B 12 0 546 662 ; +C 71 ; WX 722 ; N G ; B 32 -14 709 676 ; +C 72 ; WX 722 ; N H ; B 19 0 702 662 ; +C 73 ; WX 333 ; N I ; B 18 0 315 662 ; +C 74 ; WX 389 ; N J ; B 10 -14 370 662 ; +C 75 ; WX 722 ; N K ; B 34 0 723 662 ; +C 76 ; WX 611 ; N L ; B 12 0 598 662 ; +C 77 ; WX 889 ; N M ; B 12 0 863 662 ; +C 78 ; WX 722 ; N N ; B 12 -11 707 662 ; +C 79 ; WX 722 ; N O ; B 34 -14 688 676 ; +C 80 ; WX 556 ; N P ; B 16 0 542 662 ; +C 81 ; WX 722 ; N Q ; B 34 -178 701 676 ; +C 82 ; WX 667 ; N R ; B 17 0 659 662 ; +C 83 ; WX 556 ; N S ; B 42 -14 491 676 ; +C 84 ; WX 611 ; N T ; B 17 0 593 662 ; +C 85 ; WX 722 ; N U ; B 14 -14 705 662 ; +C 86 ; WX 722 ; N V ; B 16 -11 697 662 ; +C 87 ; WX 944 ; N W ; B 5 -11 932 662 ; +C 88 ; WX 722 ; N X ; B 10 0 704 662 ; +C 89 ; WX 722 ; N Y ; B 22 0 703 662 ; +C 90 ; WX 611 ; N Z ; B 9 0 597 662 ; +C 91 ; WX 333 ; N bracketleft ; B 88 -156 299 662 ; +C 92 ; WX 278 ; N backslash ; B -9 -14 287 676 ; +C 93 ; WX 333 ; N bracketright ; B 34 -156 245 662 ; +C 94 ; WX 469 ; N asciicircum ; B 24 297 446 662 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 333 ; N quoteleft ; B 115 433 254 676 ; +C 97 ; WX 556 ; N a ; B 24 0 526 494 ; +C 98 ; WX 500 ; N b ; B 24 0 458 486 ; +C 99 ; WX 500 ; N c ; B 18 -8 477 494 ; +C 100 ; WX 556 ; N d ; B 20 0 536 486 ; +C 101 ; WX 500 ; N e ; B 22 0 468 486 ; +C 102 ; WX 444 ; N f ; B 23 0 438 486 ; L i fi ; L l fl ; +C 103 ; WX 556 ; N g ; B 20 -8 537 494 ; +C 104 ; WX 611 ; N h ; B 24 0 576 486 ; +C 105 ; WX 278 ; N i ; B 14 0 252 486 ; +C 106 ; WX 333 ; N j ; B 8 -8 300 486 ; +C 107 ; WX 556 ; N k ; B 22 0 548 486 ; +C 108 ; WX 500 ; N l ; B 22 0 474 486 ; +C 109 ; WX 667 ; N m ; B 14 0 648 486 ; +C 110 ; WX 611 ; N n ; B 23 0 579 486 ; +C 111 ; WX 556 ; N o ; B 22 -8 522 494 ; +C 112 ; WX 444 ; N p ; B 14 0 436 486 ; +C 113 ; WX 556 ; N q ; B 22 -124 523 494 ; +C 114 ; WX 500 ; N r ; B 14 0 493 486 ; +C 115 ; WX 389 ; N s ; B 27 -8 354 494 ; +C 116 ; WX 500 ; N t ; B 26 0 468 486 ; +C 117 ; WX 611 ; N u ; B 21 -8 581 486 ; +C 118 ; WX 556 ; N v ; B 26 -8 524 486 ; +C 119 ; WX 778 ; N w ; B 0 -8 770 486 ; +C 120 ; WX 556 ; N x ; B 26 0 526 486 ; +C 121 ; WX 556 ; N y ; B 24 0 528 486 ; +C 122 ; WX 556 ; N z ; B 24 0 522 486 ; +C 123 ; WX 480 ; N braceleft ; B 100 -181 350 680 ; +C 124 ; WX 200 ; N bar ; B 67 -14 133 676 ; +C 125 ; WX 480 ; N braceright ; B 130 -181 380 680 ; +C 126 ; WX 541 ; N asciitilde ; B 40 183 502 323 ; +C 161 ; WX 333 ; N exclamdown ; B 97 -218 205 467 ; +C 162 ; WX 500 ; N cent ; B 53 -138 448 579 ; +C 163 ; WX 500 ; N sterling ; B 12 -8 490 676 ; +C 164 ; WX 167 ; N fraction ; B -168 -14 331 676 ; +C 165 ; WX 500 ; N yen ; B -53 0 512 662 ; +C 166 ; WX 500 ; N florin ; B 7 -189 490 676 ; +C 167 ; WX 500 ; N section ; B 70 -148 426 676 ; +C 168 ; WX 611 ; N currency ; B 28 -8 574 494 ; +C 169 ; WX 180 ; N quotesingle ; B 48 431 133 676 ; +C 170 ; WX 444 ; N quotedblleft ; B 43 433 414 676 ; +C 171 ; WX 500 ; N guillemotleft ; B 42 33 456 416 ; +C 172 ; WX 333 ; N guilsinglleft ; B 63 33 285 416 ; +C 173 ; WX 333 ; N guilsinglright ; B 48 33 270 416 ; +C 174 ; WX 722 ; N fi ; B 23 0 696 486 ; +C 175 ; WX 944 ; N fl ; B 23 0 918 486 ; +C 177 ; WX 500 ; N endash ; B 0 201 500 250 ; +C 178 ; WX 500 ; N dagger ; B 59 -149 442 676 ; +C 179 ; WX 500 ; N daggerdbl ; B 58 -153 442 676 ; +C 180 ; WX 250 ; N periodcentered ; B 70 199 181 310 ; +C 182 ; WX 453 ; N paragraph ; B -22 -154 450 662 ; +C 183 ; WX 350 ; N bullet ; B 40 196 310 466 ; +C 184 ; WX 333 ; N quotesinglbase ; B 79 -141 218 102 ; +C 185 ; WX 444 ; N quotedblbase ; B 45 -141 416 102 ; +C 186 ; WX 444 ; N quotedblright ; B 30 433 401 676 ; +C 187 ; WX 500 ; N guillemotright ; B 44 33 458 416 ; +C 188 ; WX 1000 ; N ellipsis ; B 111 -11 888 100 ; +C 189 ; WX 1000 ; N perthousand ; B 7 -19 994 706 ; +C 191 ; WX 444 ; N questiondown ; B 30 -218 376 466 ; +C 193 ; WX 333 ; N grave ; B 19 543 242 714 ; +C 194 ; WX 333 ; N acute ; B 93 543 317 714 ; +C 195 ; WX 333 ; N circumflex ; B 11 543 322 710 ; +C 196 ; WX 333 ; N tilde ; B 1 568 331 674 ; +C 197 ; WX 333 ; N macron ; B 11 583 322 637 ; +C 198 ; WX 333 ; N breve ; B 26 543 307 700 ; +C 199 ; WX 333 ; N dotaccent ; B 118 559 216 659 ; +C 200 ; WX 333 ; N dieresis ; B 18 559 315 659 ; +C 202 ; WX 333 ; N ring ; B 67 548 266 747 ; +C 203 ; WX 333 ; N cedilla ; B 52 -215 261 0 ; +C 205 ; WX 333 ; N hungarumlaut ; B -3 543 377 714 ; +C 206 ; WX 333 ; N ogonek ; B 64 -165 249 0 ; +C 207 ; WX 333 ; N caron ; B 11 543 322 710 ; +C 208 ; WX 1000 ; N emdash ; B 125 201 875 250 ; +C 225 ; WX 889 ; N AE ; B 0 0 863 662 ; +C 227 ; WX 276 ; N ordfeminine ; B 4 394 270 676 ; +C 232 ; WX 611 ; N Lslash ; B 12 0 598 662 ; +C 233 ; WX 722 ; N Oslash ; B 34 -80 688 734 ; +C 234 ; WX 889 ; N OE ; B 30 -6 885 668 ; +C 235 ; WX 310 ; N ordmasculine ; B 6 394 304 676 ; +C 241 ; WX 722 ; N ae ; B 18 0 691 486 ; +C 245 ; WX 278 ; N dotlessi ; B 14 0 252 486 ; +C 248 ; WX 500 ; N lslash ; B 8 0 474 486 ; +C 249 ; WX 556 ; N oslash ; B 22 -95 520 575 ; +C 250 ; WX 722 ; N oe ; B 22 -8 698 494 ; +C 251 ; WX 778 ; N germandbls ; B 27 -8 743 494 ; +C -1 ; WX 500 ; N ecircumflex ; B 22 0 468 710 ; +C -1 ; WX 500 ; N edieresis ; B 22 0 468 659 ; +C -1 ; WX 556 ; N aacute ; B 24 0 526 714 ; +C -1 ; WX 760 ; N registered ; B 38 -14 722 676 ; +C -1 ; WX 278 ; N icircumflex ; B -16 0 295 710 ; +C -1 ; WX 611 ; N udieresis ; B 21 -8 581 659 ; +C -1 ; WX 556 ; N ograve ; B 22 -8 522 714 ; +C -1 ; WX 611 ; N uacute ; B 21 -8 581 714 ; +C -1 ; WX 611 ; N ucircumflex ; B 21 -8 581 710 ; +C -1 ; WX 722 ; N Aacute ; B 15 0 706 890 ; +C -1 ; WX 278 ; N igrave ; B -8 0 252 714 ; +C -1 ; WX 333 ; N Icircumflex ; B 11 0 322 886 ; +C -1 ; WX 500 ; N ccedilla ; B 18 -215 477 494 ; +C -1 ; WX 556 ; N adieresis ; B 24 0 526 659 ; +C -1 ; WX 611 ; N Ecircumflex ; B 12 0 597 886 ; +C -1 ; WX 389 ; N scaron ; B 27 -8 354 710 ; +C -1 ; WX 444 ; N thorn ; B 14 0 436 486 ; +C -1 ; WX 980 ; N trademark ; B 30 256 957 662 ; +C -1 ; WX 500 ; N egrave ; B 22 0 468 714 ; +C -1 ; WX 300 ; N threesuperior ; B 15 262 291 676 ; +C -1 ; WX 556 ; N zcaron ; B 24 0 522 710 ; +C -1 ; WX 556 ; N atilde ; B 24 0 526 674 ; +C -1 ; WX 556 ; N aring ; B 24 0 526 747 ; +C -1 ; WX 556 ; N ocircumflex ; B 22 -8 522 710 ; +C -1 ; WX 611 ; N Edieresis ; B 12 0 597 835 ; +C -1 ; WX 750 ; N threequarters ; B 15 -14 718 676 ; +C -1 ; WX 556 ; N ydieresis ; B 24 0 528 659 ; +C -1 ; WX 556 ; N yacute ; B 24 0 528 714 ; +C -1 ; WX 278 ; N iacute ; B 14 0 290 714 ; +C -1 ; WX 722 ; N Acircumflex ; B 15 0 706 886 ; +C -1 ; WX 722 ; N Uacute ; B 14 -14 705 890 ; +C -1 ; WX 500 ; N eacute ; B 22 0 468 714 ; +C -1 ; WX 722 ; N Ograve ; B 34 -14 688 890 ; +C -1 ; WX 556 ; N agrave ; B 24 0 526 714 ; +C -1 ; WX 722 ; N Udieresis ; B 14 -14 705 835 ; +C -1 ; WX 556 ; N acircumflex ; B 24 0 526 710 ; +C -1 ; WX 333 ; N Igrave ; B 18 0 315 890 ; +C -1 ; WX 300 ; N twosuperior ; B 1 270 296 676 ; +C -1 ; WX 722 ; N Ugrave ; B 14 -14 705 890 ; +C -1 ; WX 750 ; N onequarter ; B 37 -14 718 676 ; +C -1 ; WX 722 ; N Ucircumflex ; B 14 -14 705 886 ; +C -1 ; WX 556 ; N Scaron ; B 42 -14 491 886 ; +C -1 ; WX 333 ; N Idieresis ; B 18 0 315 835 ; +C -1 ; WX 278 ; N idieresis ; B -9 0 288 659 ; +C -1 ; WX 611 ; N Egrave ; B 12 0 597 890 ; +C -1 ; WX 722 ; N Oacute ; B 34 -14 688 890 ; +C -1 ; WX 564 ; N divide ; B 30 -10 534 516 ; +C -1 ; WX 722 ; N Atilde ; B 15 0 706 850 ; +C -1 ; WX 722 ; N Aring ; B 15 0 706 898 ; +C -1 ; WX 722 ; N Odieresis ; B 34 -14 688 835 ; +C -1 ; WX 722 ; N Adieresis ; B 15 0 706 835 ; +C -1 ; WX 722 ; N Ntilde ; B 12 -11 707 850 ; +C -1 ; WX 611 ; N Zcaron ; B 9 0 597 886 ; +C -1 ; WX 556 ; N Thorn ; B 16 0 542 662 ; +C -1 ; WX 333 ; N Iacute ; B 18 0 317 890 ; +C -1 ; WX 564 ; N plusminus ; B 30 0 534 506 ; +C -1 ; WX 564 ; N multiply ; B 38 8 527 497 ; +C -1 ; WX 611 ; N Eacute ; B 12 0 597 890 ; +C -1 ; WX 722 ; N Ydieresis ; B 22 0 703 835 ; +C -1 ; WX 300 ; N onesuperior ; B 57 270 248 676 ; +C -1 ; WX 611 ; N ugrave ; B 21 -8 581 714 ; +C -1 ; WX 564 ; N logicalnot ; B 30 108 534 386 ; +C -1 ; WX 611 ; N ntilde ; B 23 0 579 674 ; +C -1 ; WX 722 ; N Otilde ; B 34 -14 688 850 ; +C -1 ; WX 556 ; N otilde ; B 22 -8 522 674 ; +C -1 ; WX 667 ; N Ccedilla ; B 28 -215 633 676 ; +C -1 ; WX 722 ; N Agrave ; B 15 0 706 890 ; +C -1 ; WX 750 ; N onehalf ; B 31 -14 746 676 ; +C -1 ; WX 722 ; N Eth ; B 16 0 685 662 ; +C -1 ; WX 400 ; N degree ; B 57 390 343 676 ; +C -1 ; WX 722 ; N Yacute ; B 22 0 703 890 ; +C -1 ; WX 722 ; N Ocircumflex ; B 34 -14 688 886 ; +C -1 ; WX 556 ; N oacute ; B 22 -8 522 714 ; +C -1 ; WX 500 ; N mu ; B 36 -218 512 450 ; +C -1 ; WX 564 ; N minus ; B 30 220 534 286 ; +C -1 ; WX 556 ; N eth ; B 20 0 536 486 ; +C -1 ; WX 556 ; N odieresis ; B 22 -8 522 659 ; +C -1 ; WX 760 ; N copyright ; B 38 -14 722 676 ; +C -1 ; WX 200 ; N brokenbar ; B 67 -14 133 676 ; +EndCharMetrics +StartKernData +StartKernPairs 195 + +KPX A y -92 +KPX A w -92 +KPX A v -74 +KPX A u -18 +KPX A t -35 +KPX A quoteright -111 +KPX A Y -105 +KPX A W -90 +KPX A V -135 +KPX A U -55 +KPX A T -111 +KPX A Q -55 +KPX A O -55 +KPX A G -40 +KPX A C -40 + +KPX B u -18 +KPX B a -37 +KPX B U -10 +KPX B A -35 + +KPX C a -18 + +KPX D a -18 +KPX D Y -55 +KPX D W -30 +KPX D V -40 +KPX D A -40 + +KPX F period -80 +KPX F o -15 +KPX F comma -80 +KPX F a -15 +KPX F A -55 + +KPX J A -60 + +KPX K y -25 +KPX K u -15 +KPX K o -35 +KPX K O -30 + +KPX L y -55 +KPX L quoteright -92 +KPX L Y -100 +KPX L W -74 +KPX L V -100 +KPX L T -92 + +KPX N A -35 + +KPX O Y -50 +KPX O X -40 +KPX O W -35 +KPX O V -50 +KPX O T -18 +KPX O A -35 + +KPX P period -111 +KPX P comma -111 +KPX P a -15 +KPX P A -92 + +KPX Q U -10 + +KPX R Y -65 +KPX R W -55 +KPX R V -80 +KPX R U -40 +KPX R T -60 +KPX R O -40 + +KPX T y -80 +KPX T w -80 +KPX T u -45 +KPX T semicolon -55 +KPX T r -35 +KPX T period -74 +KPX T o -80 +KPX T i -35 +KPX T hyphen -92 +KPX T e -70 +KPX T comma -74 +KPX T colon -50 +KPX T a -80 +KPX T O -18 +KPX T A -93 + +KPX U A -40 + +KPX V u -75 +KPX V semicolon -74 +KPX V period -129 +KPX V o -129 +KPX V i -60 +KPX V hyphen -100 +KPX V e -111 +KPX V comma -129 +KPX V colon -74 +KPX V a -111 +KPX V O -40 +KPX V G -18 +KPX V A -135 + +KPX W y -73 +KPX W u -50 +KPX W semicolon -37 +KPX W period -92 +KPX W o -80 +KPX W i -40 +KPX W hyphen -65 +KPX W e -80 +KPX W comma -92 +KPX W colon -37 +KPX W a -80 +KPX W O -10 +KPX W A -120 + +KPX Y u -111 +KPX Y semicolon -92 +KPX Y period -129 +KPX Y o -110 +KPX Y i -55 +KPX Y hyphen -111 +KPX Y e -100 +KPX Y comma -129 +KPX Y colon -92 +KPX Y a -100 +KPX Y O -30 +KPX Y C -35 +KPX Y A -120 + +KPX a y -55 +KPX a w -55 +KPX a v -74 +KPX a u -18 +KPX a t -35 +KPX a quoteright -74 +KPX a quotedblright -55 +KPX a q -18 +KPX a o -18 +KPX a g -18 +KPX a c -18 + +KPX b u -20 +KPX b period -40 + +KPX c y -15 + +KPX comma quoteright -70 +KPX comma quotedblright -70 + +KPX d period -18 +KPX d comma -18 + +KPX f period -55 +KPX f comma -55 +KPX f a -10 + +KPX j period -18 +KPX j comma -18 +KPX j a -18 + +KPX k o -10 + +KPX l y -55 +KPX l w -37 +KPX l v -55 +KPX l t -37 +KPX l quoteright -74 +KPX l quotedblright -35 + +KPX n period -35 +KPX n comma -35 +KPX n a -18 + +KPX o y -10 +KPX o x -18 +KPX o w -25 +KPX o v -15 +KPX o period -18 +KPX o comma -18 + +KPX p period -35 +KPX p comma -35 +KPX p a -18 + +KPX period quoteright -70 +KPX period quotedblright -70 + +KPX quotedblleft a -55 +KPX quotedblleft A -80 + +KPX quoteleft quoteleft -74 +KPX quoteleft a -74 +KPX quoteleft A -80 + +KPX quoteright quoteright -74 + +KPX r hyphen -20 + +KPX space Y -90 +KPX space W -30 +KPX space V -50 +KPX space T -18 +KPX space A -55 + +KPX t period -35 +KPX t hyphen -18 +KPX t comma -35 +KPX t a -35 + +KPX u period -18 +KPX u comma -18 +KPX u a -55 + +KPX v period -74 +KPX v o -20 +KPX v hyphen -35 +KPX v comma -74 +KPX v a -74 + +KPX w period -74 +KPX w o -10 +KPX w comma -74 +KPX w a -74 + +KPX y semicolon -35 +KPX y period -74 +KPX y o -18 +KPX y hyphen -37 +KPX y comma -74 +KPX y colon -35 +KPX y c -18 +KPX y a -35 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 195 176 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 195 176 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 195 176 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 195 176 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 185 151 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 195 176 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 139 176 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 139 176 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 139 176 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 139 176 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 0 176 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 0 176 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 0 176 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 176 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 195 176 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 195 176 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 195 176 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 195 176 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 195 176 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 195 176 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 112 176 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 195 176 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 195 176 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 195 176 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 195 176 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 195 176 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 195 176 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 176 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 112 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 112 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 112 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 112 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 112 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 112 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 84 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 84 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 84 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 84 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -27 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 139 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 112 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 112 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 112 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 112 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 112 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 28 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 139 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 139 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 139 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 139 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 112 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 112 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 112 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-RmSC+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-RmSC+ new file mode 100755 index 0000000000000..fbb831244e1b7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-RmSC+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 667 ; N Ccaron ; B 28 -14 633 890 ; +C -1 ; WX 500 ; N ccaron ; B 18 -8 477 710 ; +C -1 ; WX 722 ; N Dcaron ; B 16 0 685 890 ; +C -1 ; WX 653 ; N dcaron ; B 20 0 689 535 ; +C -1 ; WX 611 ; N Ecaron ; B 12 0 597 890 ; +C -1 ; WX 500 ; N ecaron ; B 22 0 468 710 ; +C -1 ; WX 611 ; N Lcaron ; B 12 0 598 728 ; +C -1 ; WX 611 ; N Lacute ; B 12 0 598 894 ; +C -1 ; WX 597 ; N lcaron ; B 22 0 627 535 ; +C -1 ; WX 500 ; N lacute ; B 22 0 474 894 ; +C -1 ; WX 722 ; N Ncaron ; B 12 -11 707 890 ; +C -1 ; WX 611 ; N ncaron ; B 23 0 579 710 ; +C -1 ; WX 667 ; N Rcaron ; B 17 0 659 890 ; +C -1 ; WX 667 ; N Racute ; B 17 0 659 894 ; +C -1 ; WX 500 ; N rcaron ; B 14 0 493 710 ; +C -1 ; WX 500 ; N racute ; B 14 0 493 714 ; +C -1 ; WX 611 ; N Tcaron ; B 17 0 593 890 ; +C -1 ; WX 597 ; N tcaron ; B 26 0 621 676 ; +C -1 ; WX 722 ; N Uring ; B 14 -14 705 890 ; +C -1 ; WX 611 ; N uring ; B 21 -8 581 747 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 228 180 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 106 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 194 180 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 471 -141 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 139 180 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 83 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 250 52 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 139 180 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 409 -141 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 105 180 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 194 180 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 139 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 167 180 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 210 180 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 83 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 105 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 139 180 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 403 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 194 143 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 139 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-Sm b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-Sm new file mode 100755 index 0000000000000..2f89c88805e90 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-Sm @@ -0,0 +1,416 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Mon Oct 29 15:55:58 1990 +Comment UniqueID 33201 +Comment VMusage 29517 36409 +FontName Times-Semibold +FullName Times Semibold +FamilyName Times +Weight Semibold +ItalicAngle 0 +IsFixedPitch false +FontBBox -167 -216 1004 933 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 680 +XHeight 470 +Ascender 708 +Descender -216 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 93 -12 239 696 ; +C 34 ; WX 333 ; N quotedbl ; B 40 380 293 696 ; +C 35 ; WX 500 ; N numbersign ; B 10 0 488 680 ; +C 36 ; WX 500 ; N dollar ; B 36 -102 464 736 ; +C 37 ; WX 833 ; N percent ; B 53 -12 779 696 ; +C 38 ; WX 833 ; N ampersand ; B 36 -16 788 696 ; +C 39 ; WX 278 ; N quoteright ; B 59 406 219 696 ; +C 40 ; WX 333 ; N parenleft ; B 22 -194 312 696 ; +C 41 ; WX 333 ; N parenright ; B 21 -194 311 696 ; +C 42 ; WX 500 ; N asterisk ; B 54 262 446 696 ; +C 43 ; WX 600 ; N plus ; B 65 0 535 470 ; +C 44 ; WX 250 ; N comma ; B 52 -156 212 134 ; +C 45 ; WX 333 ; N hyphen ; B 43 183 291 287 ; +C 46 ; WX 250 ; N period ; B 52 -12 198 134 ; +C 47 ; WX 278 ; N slash ; B 0 -16 278 696 ; +C 48 ; WX 500 ; N zero ; B 22 -12 478 696 ; +C 49 ; WX 500 ; N one ; B 82 0 438 696 ; +C 50 ; WX 500 ; N two ; B 20 0 477 696 ; +C 51 ; WX 500 ; N three ; B 36 -12 430 696 ; +C 52 ; WX 500 ; N four ; B 22 0 478 680 ; +C 53 ; WX 500 ; N five ; B 40 -12 432 680 ; +C 54 ; WX 500 ; N six ; B 21 -12 479 696 ; +C 55 ; WX 500 ; N seven ; B 8 -12 462 680 ; +C 56 ; WX 500 ; N eight ; B 38 -12 462 696 ; +C 57 ; WX 500 ; N nine ; B 21 -12 479 696 ; +C 58 ; WX 250 ; N colon ; B 52 -12 198 472 ; +C 59 ; WX 250 ; N semicolon ; B 52 -156 212 472 ; +C 60 ; WX 600 ; N less ; B 64 -6 536 476 ; +C 61 ; WX 600 ; N equal ; B 65 100 535 370 ; +C 62 ; WX 600 ; N greater ; B 64 -6 536 476 ; +C 63 ; WX 444 ; N question ; B 28 -12 416 696 ; +C 64 ; WX 800 ; N at ; B 43 -16 757 696 ; +C 65 ; WX 722 ; N A ; B 14 0 708 696 ; +C 66 ; WX 667 ; N B ; B 20 0 624 680 ; +C 67 ; WX 722 ; N C ; B 21 -16 678 696 ; +C 68 ; WX 778 ; N D ; B 20 0 748 680 ; +C 69 ; WX 667 ; N E ; B 20 0 650 680 ; +C 70 ; WX 611 ; N F ; B 20 0 594 680 ; +C 71 ; WX 778 ; N G ; B 28 -16 764 696 ; +C 72 ; WX 778 ; N H ; B 20 0 758 680 ; +C 73 ; WX 389 ; N I ; B 26 0 362 680 ; +C 74 ; WX 500 ; N J ; B 20 -16 468 680 ; +C 75 ; WX 778 ; N K ; B 20 0 764 680 ; +C 76 ; WX 611 ; N L ; B 20 0 606 680 ; +C 77 ; WX 889 ; N M ; B 18 -8 870 680 ; +C 78 ; WX 778 ; N N ; B 20 -16 758 680 ; +C 79 ; WX 722 ; N O ; B 21 -16 701 696 ; +C 80 ; WX 611 ; N P ; B 20 0 598 680 ; +C 81 ; WX 722 ; N Q ; B 21 -216 701 696 ; +C 82 ; WX 722 ; N R ; B 14 0 712 680 ; +C 83 ; WX 556 ; N S ; B 39 -16 517 696 ; +C 84 ; WX 667 ; N T ; B 19 0 647 680 ; +C 85 ; WX 778 ; N U ; B 28 -16 750 680 ; +C 86 ; WX 722 ; N V ; B 14 -16 708 680 ; +C 87 ; WX 1000 ; N W ; B 12 -16 988 680 ; +C 88 ; WX 722 ; N X ; B 10 0 712 680 ; +C 89 ; WX 722 ; N Y ; B 12 0 710 680 ; +C 90 ; WX 667 ; N Z ; B 28 0 639 680 ; +C 91 ; WX 333 ; N bracketleft ; B 76 -180 286 680 ; +C 92 ; WX 278 ; N backslash ; B 0 -16 278 696 ; +C 93 ; WX 333 ; N bracketright ; B 47 -180 257 680 ; +C 94 ; WX 600 ; N asciicircum ; B 82 316 518 680 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 278 ; N quoteleft ; B 59 406 219 696 ; +C 97 ; WX 500 ; N a ; B 24 -12 494 482 ; +C 98 ; WX 500 ; N b ; B 10 -12 476 708 ; +C 99 ; WX 444 ; N c ; B 20 -12 432 482 ; +C 100 ; WX 556 ; N d ; B 28 -12 528 708 ; +C 101 ; WX 444 ; N e ; B 20 -12 432 482 ; +C 102 ; WX 333 ; N f ; B 16 0 398 708 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B 34 -216 488 482 ; +C 104 ; WX 556 ; N h ; B 17 0 541 708 ; +C 105 ; WX 278 ; N i ; B 19 0 259 696 ; +C 106 ; WX 278 ; N j ; B -90 -216 218 696 ; +C 107 ; WX 556 ; N k ; B 18 0 544 708 ; +C 108 ; WX 278 ; N l ; B 18 0 260 708 ; +C 109 ; WX 833 ; N m ; B 14 0 818 482 ; +C 110 ; WX 556 ; N n ; B 16 0 540 482 ; +C 111 ; WX 500 ; N o ; B 24 -12 476 482 ; +C 112 ; WX 556 ; N p ; B 25 -216 524 482 ; +C 113 ; WX 500 ; N q ; B 18 -216 488 482 ; +C 114 ; WX 389 ; N r ; B 20 0 376 482 ; +C 115 ; WX 389 ; N s ; B 32 -12 366 482 ; +C 116 ; WX 333 ; N t ; B 16 -12 322 628 ; +C 117 ; WX 556 ; N u ; B 12 -12 536 470 ; +C 118 ; WX 500 ; N v ; B 12 -12 488 470 ; +C 119 ; WX 722 ; N w ; B 12 -12 710 470 ; +C 120 ; WX 500 ; N x ; B 12 0 488 470 ; +C 121 ; WX 500 ; N y ; B 10 -216 486 470 ; +C 122 ; WX 444 ; N z ; B 29 0 415 470 ; +C 123 ; WX 333 ; N braceleft ; B 48 -180 270 680 ; +C 124 ; WX 222 ; N bar ; B 70 0 152 708 ; +C 125 ; WX 333 ; N braceright ; B 63 -180 285 680 ; +C 126 ; WX 600 ; N asciitilde ; B 69 155 531 315 ; +C 161 ; WX 333 ; N exclamdown ; B 94 -216 240 492 ; +C 162 ; WX 500 ; N cent ; B 50 -138 462 594 ; +C 163 ; WX 500 ; N sterling ; B 6 -12 472 696 ; +C 164 ; WX 167 ; N fraction ; B -167 -12 334 696 ; +C 165 ; WX 500 ; N yen ; B -100 0 600 680 ; +C 166 ; WX 500 ; N florin ; B 9 -204 491 708 ; +C 167 ; WX 500 ; N section ; B 62 -128 438 696 ; +C 168 ; WX 500 ; N currency ; B -5 84 505 594 ; +C 169 ; WX 222 ; N quotesingle ; B 68 380 154 696 ; +C 170 ; WX 500 ; N quotedblleft ; B 50 406 451 696 ; +C 171 ; WX 500 ; N guillemotleft ; B 27 43 473 427 ; +C 172 ; WX 333 ; N guilsinglleft ; B 52 43 304 427 ; +C 173 ; WX 333 ; N guilsinglright ; B 29 43 281 427 ; +C 174 ; WX 556 ; N fi ; B 17 0 539 708 ; +C 175 ; WX 556 ; N fl ; B 15 0 541 708 ; +C 177 ; WX 500 ; N endash ; B 0 197 500 273 ; +C 178 ; WX 500 ; N dagger ; B 49 -128 451 696 ; +C 179 ; WX 500 ; N daggerdbl ; B 49 -144 451 696 ; +C 180 ; WX 250 ; N periodcentered ; B 52 162 198 308 ; +C 182 ; WX 620 ; N paragraph ; B 44 -182 536 680 ; +C 183 ; WX 500 ; N bullet ; B 80 170 420 510 ; +C 184 ; WX 278 ; N quotesinglbase ; B 59 -156 219 134 ; +C 185 ; WX 500 ; N quotedblbase ; B 49 -156 450 134 ; +C 186 ; WX 500 ; N quotedblright ; B 49 406 450 696 ; +C 187 ; WX 500 ; N guillemotright ; B 27 43 473 427 ; +C 188 ; WX 1000 ; N ellipsis ; B 94 -12 906 134 ; +C 189 ; WX 1000 ; N perthousand ; B 2 -12 998 708 ; +C 191 ; WX 444 ; N questiondown ; B 28 -216 416 492 ; +C 193 ; WX 278 ; N grave ; B -18 530 218 708 ; +C 194 ; WX 278 ; N acute ; B 60 530 296 708 ; +C 195 ; WX 278 ; N circumflex ; B -24 530 302 702 ; +C 196 ; WX 278 ; N tilde ; B -38 550 316 668 ; +C 197 ; WX 278 ; N macron ; B -22 568 300 634 ; +C 198 ; WX 278 ; N breve ; B -8 530 286 690 ; +C 199 ; WX 278 ; N dotaccent ; B 79 540 199 660 ; +C 200 ; WX 278 ; N dieresis ; B -23 540 301 660 ; +C 202 ; WX 278 ; N ring ; B 36 532 242 738 ; +C 203 ; WX 278 ; N cedilla ; B 24 -216 244 0 ; +C 205 ; WX 278 ; N hungarumlaut ; B -32 530 376 708 ; +C 206 ; WX 278 ; N ogonek ; B 28 -216 278 20 ; +C 207 ; WX 278 ; N caron ; B -24 530 302 702 ; +C 208 ; WX 1000 ; N emdash ; B 0 197 1000 273 ; +C 225 ; WX 1000 ; N AE ; B 4 0 983 680 ; +C 227 ; WX 300 ; N ordfeminine ; B -2 400 305 696 ; +C 232 ; WX 611 ; N Lslash ; B 20 0 606 680 ; +C 233 ; WX 722 ; N Oslash ; B 21 -66 701 744 ; +C 234 ; WX 1000 ; N OE ; B 20 -16 1004 696 ; +C 235 ; WX 300 ; N ordmasculine ; B 3 400 297 696 ; +C 241 ; WX 722 ; N ae ; B 24 -12 696 482 ; +C 245 ; WX 278 ; N dotlessi ; B 19 0 259 482 ; +C 248 ; WX 278 ; N lslash ; B -39 0 317 708 ; +C 249 ; WX 500 ; N oslash ; B 24 -90 476 556 ; +C 250 ; WX 778 ; N oe ; B 30 -12 746 482 ; +C 251 ; WX 500 ; N germandbls ; B 8 -12 472 708 ; +C -1 ; WX 444 ; N ecircumflex ; B 20 -12 432 702 ; +C -1 ; WX 444 ; N edieresis ; B 20 -12 432 660 ; +C -1 ; WX 500 ; N aacute ; B 24 -12 494 708 ; +C -1 ; WX 800 ; N registered ; B 52 -16 748 696 ; +C -1 ; WX 278 ; N icircumflex ; B -30 0 296 702 ; +C -1 ; WX 556 ; N udieresis ; B 12 -12 536 660 ; +C -1 ; WX 500 ; N ograve ; B 24 -12 476 708 ; +C -1 ; WX 556 ; N uacute ; B 12 -12 536 708 ; +C -1 ; WX 556 ; N ucircumflex ; B 12 -12 536 702 ; +C -1 ; WX 722 ; N Aacute ; B 14 0 708 903 ; +C -1 ; WX 278 ; N igrave ; B -24 0 259 708 ; +C -1 ; WX 389 ; N Icircumflex ; B 26 0 362 897 ; +C -1 ; WX 444 ; N ccedilla ; B 20 -216 432 482 ; +C -1 ; WX 500 ; N adieresis ; B 24 -12 494 660 ; +C -1 ; WX 667 ; N Ecircumflex ; B 20 0 650 897 ; +C -1 ; WX 389 ; N scaron ; B 32 -12 366 702 ; +C -1 ; WX 556 ; N thorn ; B 25 -216 524 708 ; +C -1 ; WX 1000 ; N trademark ; B 25 276 975 680 ; +C -1 ; WX 444 ; N egrave ; B 20 -12 432 708 ; +C -1 ; WX 300 ; N threesuperior ; B 20 270 274 696 ; +C -1 ; WX 444 ; N zcaron ; B 29 0 415 702 ; +C -1 ; WX 500 ; N atilde ; B 24 -12 494 668 ; +C -1 ; WX 500 ; N aring ; B 24 -12 494 738 ; +C -1 ; WX 500 ; N ocircumflex ; B 24 -12 476 702 ; +C -1 ; WX 667 ; N Edieresis ; B 20 0 650 855 ; +C -1 ; WX 750 ; N threequarters ; B 20 -12 750 696 ; +C -1 ; WX 500 ; N ydieresis ; B 10 -216 486 660 ; +C -1 ; WX 500 ; N yacute ; B 10 -216 486 708 ; +C -1 ; WX 278 ; N iacute ; B 19 0 290 708 ; +C -1 ; WX 722 ; N Acircumflex ; B 14 0 708 897 ; +C -1 ; WX 778 ; N Uacute ; B 28 -16 750 903 ; +C -1 ; WX 444 ; N eacute ; B 20 -12 432 708 ; +C -1 ; WX 722 ; N Ograve ; B 21 -16 701 903 ; +C -1 ; WX 500 ; N agrave ; B 24 -12 494 708 ; +C -1 ; WX 778 ; N Udieresis ; B 28 -16 750 855 ; +C -1 ; WX 500 ; N acircumflex ; B 24 -12 494 702 ; +C -1 ; WX 389 ; N Igrave ; B 26 0 362 903 ; +C -1 ; WX 300 ; N twosuperior ; B 2 278 300 696 ; +C -1 ; WX 778 ; N Ugrave ; B 28 -16 750 903 ; +C -1 ; WX 750 ; N onequarter ; B 26 -12 750 696 ; +C -1 ; WX 778 ; N Ucircumflex ; B 28 -16 750 897 ; +C -1 ; WX 556 ; N Scaron ; B 39 -16 517 897 ; +C -1 ; WX 389 ; N Idieresis ; B 26 0 362 855 ; +C -1 ; WX 278 ; N idieresis ; B -29 0 295 660 ; +C -1 ; WX 667 ; N Egrave ; B 20 0 650 903 ; +C -1 ; WX 722 ; N Oacute ; B 21 -16 701 903 ; +C -1 ; WX 600 ; N divide ; B 65 -31 535 501 ; +C -1 ; WX 722 ; N Atilde ; B 14 0 708 863 ; +C -1 ; WX 722 ; N Aring ; B 14 0 708 933 ; +C -1 ; WX 722 ; N Odieresis ; B 21 -16 701 855 ; +C -1 ; WX 722 ; N Adieresis ; B 14 0 708 855 ; +C -1 ; WX 778 ; N Ntilde ; B 20 -16 758 863 ; +C -1 ; WX 667 ; N Zcaron ; B 28 0 639 897 ; +C -1 ; WX 611 ; N Thorn ; B 20 0 598 680 ; +C -1 ; WX 389 ; N Iacute ; B 26 0 362 903 ; +C -1 ; WX 600 ; N plusminus ; B 65 0 535 470 ; +C -1 ; WX 600 ; N multiply ; B 65 0 535 470 ; +C -1 ; WX 667 ; N Eacute ; B 20 0 650 903 ; +C -1 ; WX 722 ; N Ydieresis ; B 12 0 710 855 ; +C -1 ; WX 300 ; N onesuperior ; B 26 278 258 696 ; +C -1 ; WX 556 ; N ugrave ; B 12 -12 536 708 ; +C -1 ; WX 600 ; N logicalnot ; B 65 98 535 370 ; +C -1 ; WX 556 ; N ntilde ; B 16 0 540 668 ; +C -1 ; WX 722 ; N Otilde ; B 21 -16 701 863 ; +C -1 ; WX 500 ; N otilde ; B 24 -12 476 668 ; +C -1 ; WX 772 ; N Ccedilla ; B 21 -216 678 696 ; +C -1 ; WX 722 ; N Agrave ; B 14 0 708 903 ; +C -1 ; WX 750 ; N onehalf ; B 26 -12 750 696 ; +C -1 ; WX 778 ; N Eth ; B 20 0 748 680 ; +C -1 ; WX 400 ; N degree ; B 56 410 342 696 ; +C -1 ; WX 722 ; N Yacute ; B 12 0 710 903 ; +C -1 ; WX 722 ; N Ocircumflex ; B 21 -16 701 897 ; +C -1 ; WX 500 ; N oacute ; B 24 -12 476 708 ; +C -1 ; WX 556 ; N mu ; B 12 -216 536 470 ; +C -1 ; WX 600 ; N minus ; B 65 194 535 276 ; +C -1 ; WX 500 ; N eth ; B 24 -12 476 708 ; +C -1 ; WX 500 ; N odieresis ; B 24 -12 476 660 ; +C -1 ; WX 800 ; N copyright ; B 52 -16 748 696 ; +C -1 ; WX 222 ; N brokenbar ; B 70 0 152 708 ; +EndCharMetrics +StartKernData +StartKernPairs 86 + +KPX A y -74 +KPX A w -74 +KPX A v -74 +KPX A quoteright -111 +KPX A Y -92 +KPX A W -111 +KPX A V -111 +KPX A T -74 + +KPX F period -129 +KPX F comma -129 +KPX F A -74 + +KPX L y -55 +KPX L quoteright -129 +KPX L Y -111 +KPX L W -111 +KPX L V -111 +KPX L T -92 + +KPX P period -129 +KPX P comma -129 +KPX P A -55 + +KPX R Y -55 +KPX R W -55 +KPX R V -55 +KPX R T -18 + +KPX T y -74 +KPX T w -92 +KPX T u -74 +KPX T semicolon -74 +KPX T r -55 +KPX T period -111 +KPX T o -74 +KPX T i -37 +KPX T hyphen -92 +KPX T e -74 +KPX T comma -111 +KPX T colon -74 +KPX T a -74 +KPX T A -74 + +KPX V u -55 +KPX V semicolon -92 +KPX V period -129 +KPX V o -74 +KPX V i -37 +KPX V hyphen -92 +KPX V e -74 +KPX V comma -129 +KPX V colon -92 +KPX V a -74 +KPX V A -92 + +KPX W y -37 +KPX W u -37 +KPX W semicolon -74 +KPX W period -129 +KPX W o -55 +KPX W i -18 +KPX W hyphen -74 +KPX W e -55 +KPX W comma -129 +KPX W colon -74 +KPX W a -55 +KPX W A -74 + +KPX Y u -55 +KPX Y semicolon -92 +KPX Y period -129 +KPX Y o -74 +KPX Y i -37 +KPX Y hyphen -92 +KPX Y e -74 +KPX Y comma -129 +KPX Y colon -92 +KPX Y a -74 +KPX Y A -74 + +KPX f quoteright 18 + +KPX quoteleft quoteleft -37 + +KPX quoteright t -37 +KPX quoteright s -74 +KPX quoteright quoteright -37 + +KPX r period -111 +KPX r hyphen -55 +KPX r comma -111 + +KPX v period -92 +KPX v comma -92 + +KPX w period -92 +KPX w comma -92 + +KPX y period -92 +KPX y comma -92 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 222 195 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 222 195 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 222 195 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 222 195 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 222 195 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 222 195 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 183 195 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 183 195 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 183 195 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 183 195 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 56 195 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 56 195 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 56 195 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 56 195 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 250 195 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 216 195 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 216 195 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 216 195 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 216 195 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 216 195 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 162 195 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 267 195 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 267 195 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 267 195 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 267 195 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 245 195 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 245 195 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 218 195 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 111 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 111 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 111 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 111 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 111 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 111 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 89 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 89 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 89 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 89 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -6 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -6 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -6 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -6 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 145 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 111 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 111 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 111 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 111 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 111 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 56 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 127 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 127 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 127 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 127 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 111 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 111 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 83 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-Sm+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-Sm+ new file mode 100755 index 0000000000000..57e7e0acd34ea --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-Sm+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 722 ; N Ccaron ; B 21 -16 678 914 ; +C -1 ; WX 444 ; N ccaron ; B 20 -12 432 702 ; +C -1 ; WX 778 ; N Dcaron ; B 20 0 748 914 ; +C -1 ; WX 668 ; N dcaron ; B 28 -12 704 779 ; +C -1 ; WX 667 ; N Ecaron ; B 20 0 650 914 ; +C -1 ; WX 444 ; N ecaron ; B 20 -12 432 702 ; +C -1 ; WX 611 ; N Lcaron ; B 20 0 606 748 ; +C -1 ; WX 611 ; N Lacute ; B 20 0 606 920 ; +C -1 ; WX 390 ; N lcaron ; B 18 0 436 779 ; +C -1 ; WX 278 ; N lacute ; B 18 0 320 920 ; +C -1 ; WX 778 ; N Ncaron ; B 20 -16 758 914 ; +C -1 ; WX 556 ; N ncaron ; B 16 0 540 702 ; +C -1 ; WX 722 ; N Rcaron ; B 14 0 712 914 ; +C -1 ; WX 722 ; N Racute ; B 14 0 712 920 ; +C -1 ; WX 389 ; N rcaron ; B 20 0 376 702 ; +C -1 ; WX 389 ; N racute ; B 20 0 376 708 ; +C -1 ; WX 667 ; N Tcaron ; B 19 0 647 914 ; +C -1 ; WX 445 ; N tcaron ; B 16 -12 498 696 ; +C -1 ; WX 778 ; N Uring ; B 28 -16 750 914 ; +C -1 ; WX 556 ; N uring ; B 12 -12 536 738 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 288 212 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 104 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 250 212 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 485 83 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 194 212 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 83 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 319 52 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 166 212 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 217 83 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 24 212 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 250 212 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 139 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 222 212 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 267 212 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 55 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 79 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 194 212 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 279 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 250 176 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 139 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-SmIt b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-SmIt new file mode 100755 index 0000000000000..386863ac42515 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-SmIt @@ -0,0 +1,415 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Mon Oct 29 16:04:00 1990 +Comment UniqueID 33204 +Comment VMusage 31573 38465 +FontName Times-SemiboldItalic +FullName Times Semibold Italic +FamilyName Times +Weight Semibold +ItalicAngle -13 +IsFixedPitch false +FontBBox -167 -218 1025 919 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype AG and/or its subsidiaries. +EncodingScheme AdobeStandardEncoding +CapHeight 680 +XHeight 482 +Ascender 708 +Descender -206 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 389 ; N exclam ; B 60 -12 330 696 ; +C 34 ; WX 333 ; N quotedbl ; B 120 380 373 696 ; +C 35 ; WX 500 ; N numbersign ; B 26 0 504 680 ; +C 36 ; WX 500 ; N dollar ; B 22 -104 492 746 ; +C 37 ; WX 833 ; N percent ; B 70 -12 796 696 ; +C 38 ; WX 778 ; N ampersand ; B 44 -16 757 696 ; +C 39 ; WX 278 ; N quoteright ; B 127 416 289 696 ; +C 40 ; WX 333 ; N parenleft ; B 18 -206 360 696 ; +C 41 ; WX 333 ; N parenright ; B -47 -206 295 696 ; +C 42 ; WX 500 ; N asterisk ; B 106 260 497 696 ; +C 43 ; WX 600 ; N plus ; B 65 0 535 470 ; +C 44 ; WX 250 ; N comma ; B 8 -152 170 128 ; +C 45 ; WX 333 ; N hyphen ; B 28 188 303 282 ; +C 46 ; WX 250 ; N period ; B 26 -12 166 128 ; +C 47 ; WX 278 ; N slash ; B 21 -16 324 696 ; +C 48 ; WX 500 ; N zero ; B 35 -16 497 696 ; +C 49 ; WX 500 ; N one ; B 51 0 435 696 ; +C 50 ; WX 500 ; N two ; B 2 0 466 696 ; +C 51 ; WX 500 ; N three ; B 1 -16 463 696 ; +C 52 ; WX 500 ; N four ; B 17 0 499 696 ; +C 53 ; WX 500 ; N five ; B 2 -16 471 680 ; +C 54 ; WX 500 ; N six ; B 39 -16 484 696 ; +C 55 ; WX 500 ; N seven ; B 83 -16 524 680 ; +C 56 ; WX 500 ; N eight ; B 19 -16 493 696 ; +C 57 ; WX 500 ; N nine ; B 55 -16 500 696 ; +C 58 ; WX 250 ; N colon ; B 26 -12 238 470 ; +C 59 ; WX 250 ; N semicolon ; B 8 -152 238 470 ; +C 60 ; WX 600 ; N less ; B 74 -8 544 478 ; +C 61 ; WX 600 ; N equal ; B 65 99 535 371 ; +C 62 ; WX 600 ; N greater ; B 86 -8 556 478 ; +C 63 ; WX 500 ; N question ; B 90 -12 444 696 ; +C 64 ; WX 800 ; N at ; B 43 -16 758 696 ; +C 65 ; WX 722 ; N A ; B -36 0 678 696 ; +C 66 ; WX 667 ; N B ; B -4 0 651 680 ; +C 67 ; WX 722 ; N C ; B 63 -16 742 696 ; +C 68 ; WX 778 ; N D ; B 0 0 767 680 ; +C 69 ; WX 667 ; N E ; B -10 0 666 680 ; +C 70 ; WX 611 ; N F ; B -8 0 659 680 ; +C 71 ; WX 722 ; N G ; B 39 -16 734 696 ; +C 72 ; WX 778 ; N H ; B -6 0 824 680 ; +C 73 ; WX 389 ; N I ; B 2 0 426 680 ; +C 74 ; WX 500 ; N J ; B 14 -16 530 680 ; +C 75 ; WX 722 ; N K ; B -6 0 772 680 ; +C 76 ; WX 611 ; N L ; B -6 0 606 680 ; +C 77 ; WX 889 ; N M ; B -12 -8 932 680 ; +C 78 ; WX 778 ; N N ; B -2 -16 814 680 ; +C 79 ; WX 722 ; N O ; B 48 -16 714 696 ; +C 80 ; WX 611 ; N P ; B -6 0 641 680 ; +C 81 ; WX 722 ; N Q ; B 48 -206 714 696 ; +C 82 ; WX 722 ; N R ; B 1 0 683 680 ; +C 83 ; WX 556 ; N S ; B 22 -16 565 696 ; +C 84 ; WX 611 ; N T ; B 61 0 668 680 ; +C 85 ; WX 778 ; N U ; B 102 -16 820 680 ; +C 86 ; WX 722 ; N V ; B 90 -16 806 680 ; +C 87 ; WX 944 ; N W ; B 82 -16 1022 680 ; +C 88 ; WX 722 ; N X ; B -4 0 760 680 ; +C 89 ; WX 667 ; N Y ; B 96 0 750 680 ; +C 90 ; WX 611 ; N Z ; B -15 0 650 680 ; +C 91 ; WX 389 ; N bracketleft ; B 17 -190 406 680 ; +C 92 ; WX 278 ; N backslash ; B 8 -16 311 696 ; +C 93 ; WX 389 ; N bracketright ; B -21 -190 368 680 ; +C 94 ; WX 600 ; N asciicircum ; B 92 315 528 680 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 278 ; N quoteleft ; B 130 416 292 696 ; +C 97 ; WX 500 ; N a ; B -1 -12 469 482 ; +C 98 ; WX 500 ; N b ; B 21 -12 486 708 ; +C 99 ; WX 444 ; N c ; B 23 -12 437 482 ; +C 100 ; WX 500 ; N d ; B -1 -12 517 708 ; +C 101 ; WX 444 ; N e ; B 20 -12 438 482 ; +C 102 ; WX 333 ; N f ; B -130 -206 462 708 ; L i fi ; L l fl ; +C 103 ; WX 444 ; N g ; B -42 -206 464 482 ; +C 104 ; WX 556 ; N h ; B 18 -12 523 708 ; +C 105 ; WX 278 ; N i ; B 30 -12 285 696 ; +C 106 ; WX 278 ; N j ; B -127 -206 274 696 ; +C 107 ; WX 556 ; N k ; B 24 -12 567 708 ; +C 108 ; WX 278 ; N l ; B 26 -12 292 708 ; +C 109 ; WX 778 ; N m ; B 26 -12 745 482 ; +C 110 ; WX 556 ; N n ; B 28 -12 523 482 ; +C 111 ; WX 500 ; N o ; B 20 -12 473 482 ; +C 112 ; WX 500 ; N p ; B -84 -206 488 482 ; +C 113 ; WX 500 ; N q ; B 8 -206 486 482 ; +C 114 ; WX 389 ; N r ; B 29 0 418 482 ; +C 115 ; WX 389 ; N s ; B -6 -16 372 482 ; +C 116 ; WX 333 ; N t ; B 41 -12 350 615 ; +C 117 ; WX 556 ; N u ; B 44 -12 521 482 ; +C 118 ; WX 444 ; N v ; B 49 -12 443 482 ; +C 119 ; WX 667 ; N w ; B 46 -12 648 482 ; +C 120 ; WX 500 ; N x ; B -6 -12 488 482 ; +C 121 ; WX 444 ; N y ; B -71 -206 441 482 ; +C 122 ; WX 444 ; N z ; B -4 -64 421 470 ; +C 123 ; WX 389 ; N braceleft ; B 68 -190 387 680 ; +C 124 ; WX 222 ; N bar ; B 95 0 177 708 ; +C 125 ; WX 389 ; N braceright ; B -8 -190 311 680 ; +C 126 ; WX 600 ; N asciitilde ; B 64 155 526 315 ; +C 161 ; WX 389 ; N exclamdown ; B 58 -206 328 502 ; +C 162 ; WX 500 ; N cent ; B 40 -131 479 581 ; +C 163 ; WX 500 ; N sterling ; B -2 -12 492 696 ; +C 164 ; WX 167 ; N fraction ; B -167 -16 334 696 ; +C 165 ; WX 500 ; N yen ; B -8 0 646 680 ; +C 166 ; WX 500 ; N florin ; B -79 -206 543 708 ; +C 167 ; WX 500 ; N section ; B 36 -132 460 696 ; +C 168 ; WX 500 ; N currency ; B 39 113 491 567 ; +C 169 ; WX 222 ; N quotesingle ; B 138 380 224 696 ; +C 170 ; WX 500 ; N quotedblleft ; B 100 416 485 696 ; +C 171 ; WX 500 ; N guillemotleft ; B 21 43 480 427 ; +C 172 ; WX 333 ; N guilsinglleft ; B 41 43 313 427 ; +C 173 ; WX 333 ; N guilsinglright ; B 20 43 292 427 ; +C 174 ; WX 556 ; N fi ; B -147 -206 529 708 ; +C 175 ; WX 556 ; N fl ; B -148 -206 559 708 ; +C 177 ; WX 500 ; N endash ; B -8 197 508 273 ; +C 178 ; WX 500 ; N dagger ; B 91 -134 494 696 ; +C 179 ; WX 500 ; N daggerdbl ; B 9 -128 493 696 ; +C 180 ; WX 250 ; N periodcentered ; B 53 164 195 306 ; +C 182 ; WX 620 ; N paragraph ; B 130 -166 676 696 ; +C 183 ; WX 500 ; N bullet ; B 100 170 440 510 ; +C 184 ; WX 278 ; N quotesinglbase ; B 34 -152 196 128 ; +C 185 ; WX 500 ; N quotedblbase ; B 34 -152 419 128 ; +C 186 ; WX 500 ; N quotedblright ; B 127 416 512 696 ; +C 187 ; WX 500 ; N guillemotright ; B 20 43 479 427 ; +C 188 ; WX 1000 ; N ellipsis ; B 57 -16 863 124 ; +C 189 ; WX 1000 ; N perthousand ; B 20 -12 1012 708 ; +C 191 ; WX 500 ; N questiondown ; B 52 -206 406 502 ; +C 193 ; WX 278 ; N grave ; B 88 532 291 708 ; +C 194 ; WX 278 ; N acute ; B 144 532 377 708 ; +C 195 ; WX 278 ; N circumflex ; B 45 532 359 708 ; +C 196 ; WX 278 ; N tilde ; B 54 554 400 668 ; +C 197 ; WX 278 ; N macron ; B 50 572 380 632 ; +C 198 ; WX 278 ; N breve ; B 79 532 388 696 ; +C 199 ; WX 278 ; N dotaccent ; B 168 544 282 658 ; +C 200 ; WX 278 ; N dieresis ; B 66 544 385 658 ; +C 202 ; WX 278 ; N ring ; B 123 532 329 738 ; +C 203 ; WX 278 ; N cedilla ; B -56 -218 168 2 ; +C 205 ; WX 278 ; N hungarumlaut ; B 50 532 439 708 ; +C 206 ; WX 278 ; N ogonek ; B -31 -218 226 19 ; +C 207 ; WX 278 ; N caron ; B 91 532 405 708 ; +C 208 ; WX 1000 ; N emdash ; B -8 197 1008 273 ; +C 225 ; WX 944 ; N AE ; B -41 0 953 680 ; +C 227 ; WX 300 ; N ordfeminine ; B 46 400 348 696 ; +C 232 ; WX 611 ; N Lslash ; B -6 0 606 680 ; +C 233 ; WX 722 ; N Oslash ; B 48 -112 714 771 ; +C 234 ; WX 944 ; N OE ; B 20 -16 985 696 ; +C 235 ; WX 300 ; N ordmasculine ; B 58 400 353 696 ; +C 241 ; WX 778 ; N ae ; B 37 -12 746 482 ; +C 245 ; WX 278 ; N dotlessi ; B 30 -12 248 482 ; +C 248 ; WX 278 ; N lslash ; B -18 -12 341 708 ; +C 249 ; WX 500 ; N oslash ; B 20 -117 473 572 ; +C 250 ; WX 778 ; N oe ; B 29 -12 756 482 ; +C 251 ; WX 500 ; N germandbls ; B -163 -206 495 708 ; +C -1 ; WX 444 ; N ecircumflex ; B 20 -12 465 708 ; +C -1 ; WX 444 ; N edieresis ; B 20 -12 491 658 ; +C -1 ; WX 500 ; N aacute ; B -1 -12 488 708 ; +C -1 ; WX 800 ; N registered ; B 72 -16 768 696 ; +C -1 ; WX 278 ; N icircumflex ; B 30 -12 347 708 ; +C -1 ; WX 556 ; N udieresis ; B 44 -12 521 658 ; +C -1 ; WX 500 ; N ograve ; B 20 -12 473 708 ; +C -1 ; WX 556 ; N uacute ; B 44 -12 521 708 ; +C -1 ; WX 556 ; N ucircumflex ; B 44 -12 521 708 ; +C -1 ; WX 722 ; N Aacute ; B -36 0 678 889 ; +C -1 ; WX 278 ; N igrave ; B 30 -12 279 708 ; +C -1 ; WX 389 ; N Icircumflex ; B 2 0 444 889 ; +C -1 ; WX 444 ; N ccedilla ; B 23 -218 437 482 ; +C -1 ; WX 500 ; N adieresis ; B -1 -12 496 658 ; +C -1 ; WX 667 ; N Ecircumflex ; B -10 0 666 889 ; +C -1 ; WX 389 ; N scaron ; B -6 -16 461 708 ; +C -1 ; WX 500 ; N thorn ; B -84 -206 488 708 ; +C -1 ; WX 1000 ; N trademark ; B 72 274 1025 680 ; +C -1 ; WX 444 ; N egrave ; B 20 -12 438 708 ; +C -1 ; WX 300 ; N threesuperior ; B 32 268 336 696 ; +C -1 ; WX 444 ; N zcaron ; B -4 -64 488 708 ; +C -1 ; WX 500 ; N atilde ; B -1 -12 511 668 ; +C -1 ; WX 500 ; N aring ; B -1 -12 469 738 ; +C -1 ; WX 500 ; N ocircumflex ; B 20 -12 473 708 ; +C -1 ; WX 667 ; N Edieresis ; B -10 0 666 839 ; +C -1 ; WX 750 ; N threequarters ; B 32 -16 724 696 ; +C -1 ; WX 444 ; N ydieresis ; B -71 -206 468 658 ; +C -1 ; WX 444 ; N yacute ; B -71 -206 460 708 ; +C -1 ; WX 278 ; N iacute ; B 30 -12 365 708 ; +C -1 ; WX 722 ; N Acircumflex ; B -36 0 678 889 ; +C -1 ; WX 778 ; N Uacute ; B 102 -16 820 889 ; +C -1 ; WX 444 ; N eacute ; B 20 -12 483 708 ; +C -1 ; WX 722 ; N Ograve ; B 48 -16 714 889 ; +C -1 ; WX 500 ; N agrave ; B -1 -12 469 708 ; +C -1 ; WX 778 ; N Udieresis ; B 102 -16 820 839 ; +C -1 ; WX 500 ; N acircumflex ; B -1 -12 470 708 ; +C -1 ; WX 389 ; N Igrave ; B 2 0 426 889 ; +C -1 ; WX 300 ; N twosuperior ; B 26 278 332 696 ; +C -1 ; WX 778 ; N Ugrave ; B 102 -16 820 889 ; +C -1 ; WX 750 ; N onequarter ; B 45 -16 724 696 ; +C -1 ; WX 778 ; N Ucircumflex ; B 102 -16 820 889 ; +C -1 ; WX 556 ; N Scaron ; B 22 -16 585 889 ; +C -1 ; WX 389 ; N Idieresis ; B 2 0 470 839 ; +C -1 ; WX 278 ; N idieresis ; B 30 -12 373 658 ; +C -1 ; WX 667 ; N Egrave ; B -10 0 666 889 ; +C -1 ; WX 722 ; N Oacute ; B 48 -16 714 889 ; +C -1 ; WX 600 ; N divide ; B 65 -28 535 498 ; +C -1 ; WX 722 ; N Atilde ; B -36 0 678 849 ; +C -1 ; WX 722 ; N Aring ; B -36 0 678 919 ; +C -1 ; WX 722 ; N Odieresis ; B 48 -16 714 839 ; +C -1 ; WX 722 ; N Adieresis ; B -36 0 678 839 ; +C -1 ; WX 778 ; N Ntilde ; B -2 -16 814 849 ; +C -1 ; WX 611 ; N Zcaron ; B -15 0 650 889 ; +C -1 ; WX 611 ; N Thorn ; B -6 0 615 680 ; +C -1 ; WX 389 ; N Iacute ; B 2 0 462 889 ; +C -1 ; WX 600 ; N plusminus ; B 65 0 535 470 ; +C -1 ; WX 600 ; N multiply ; B 65 0 535 470 ; +C -1 ; WX 667 ; N Eacute ; B -10 0 666 889 ; +C -1 ; WX 667 ; N Ydieresis ; B 96 0 750 839 ; +C -1 ; WX 300 ; N onesuperior ; B 45 278 299 696 ; +C -1 ; WX 556 ; N ugrave ; B 44 -12 521 708 ; +C -1 ; WX 600 ; N logicalnot ; B 65 100 535 371 ; +C -1 ; WX 556 ; N ntilde ; B 28 -12 523 668 ; +C -1 ; WX 722 ; N Otilde ; B 48 -16 714 849 ; +C -1 ; WX 500 ; N otilde ; B 20 -12 511 668 ; +C -1 ; WX 722 ; N Ccedilla ; B 63 -218 742 696 ; +C -1 ; WX 722 ; N Agrave ; B -36 0 678 889 ; +C -1 ; WX 750 ; N onehalf ; B 45 -16 724 696 ; +C -1 ; WX 778 ; N Eth ; B 0 0 767 680 ; +C -1 ; WX 400 ; N degree ; B 107 410 393 696 ; +C -1 ; WX 667 ; N Yacute ; B 96 0 750 889 ; +C -1 ; WX 722 ; N Ocircumflex ; B 48 -16 714 889 ; +C -1 ; WX 500 ; N oacute ; B 20 -12 488 708 ; +C -1 ; WX 556 ; N mu ; B -82 -206 521 482 ; +C -1 ; WX 600 ; N minus ; B 65 194 535 276 ; +C -1 ; WX 500 ; N eth ; B 20 -12 473 708 ; +C -1 ; WX 500 ; N odieresis ; B 20 -12 496 658 ; +C -1 ; WX 800 ; N copyright ; B 72 -16 768 696 ; +C -1 ; WX 222 ; N brokenbar ; B 95 0 177 708 ; +EndCharMetrics +StartKernData +StartKernPairs 85 + +KPX A y -37 +KPX A w -37 +KPX A v -37 +KPX A quoteright -92 +KPX A Y -55 +KPX A W -74 +KPX A V -37 +KPX A T -55 + +KPX F period -129 +KPX F comma -129 +KPX F A -74 + +KPX L y -37 +KPX L quoteright -111 +KPX L Y -74 +KPX L W -92 +KPX L V -37 +KPX L T -37 + +KPX P period -129 +KPX P comma -129 +KPX P A -55 + +KPX R Y -37 +KPX R W -55 +KPX R T -18 + +KPX T y -74 +KPX T w -111 +KPX T u -92 +KPX T semicolon -74 +KPX T r -92 +KPX T period -111 +KPX T o -92 +KPX T i -37 +KPX T hyphen -92 +KPX T e -92 +KPX T comma -111 +KPX T colon -74 +KPX T a -92 +KPX T A -92 + +KPX V u -111 +KPX V semicolon -129 +KPX V period -129 +KPX V o -129 +KPX V i -92 +KPX V hyphen -129 +KPX V e -129 +KPX V comma -129 +KPX V colon -129 +KPX V a -129 +KPX V A -129 + +KPX W y -37 +KPX W u -37 +KPX W semicolon -74 +KPX W period -129 +KPX W o -55 +KPX W i -18 +KPX W hyphen -74 +KPX W e -55 +KPX W comma -129 +KPX W colon -74 +KPX W a -55 +KPX W A -74 + +KPX Y u -37 +KPX Y semicolon -92 +KPX Y period -129 +KPX Y o -55 +KPX Y i -18 +KPX Y hyphen -92 +KPX Y e -55 +KPX Y comma -129 +KPX Y colon -92 +KPX Y a -55 +KPX Y A -55 + +KPX f quoteright 37 + +KPX quoteleft quoteleft -55 + +KPX quoteright t -18 +KPX quoteright s -55 +KPX quoteright quoteright -55 + +KPX r period -111 +KPX r hyphen -55 +KPX r comma -111 + +KPX v period -74 +KPX v comma -74 + +KPX w period -74 +KPX w comma -74 + +KPX y period -74 +KPX y comma -74 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 257 181 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 257 181 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 257 181 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 257 181 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 257 181 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 257 181 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 224 181 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 224 181 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 224 181 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 224 181 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 85 181 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 85 181 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 85 181 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 85 181 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 279 181 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 268 181 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 268 181 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 268 181 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 268 181 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 268 181 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 180 181 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 302 181 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 302 181 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 302 181 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 302 181 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 236 181 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 236 181 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 208 181 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 111 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 111 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 111 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 111 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 111 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 111 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 106 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 106 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 106 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 106 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -12 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -12 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -12 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -12 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 122 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 111 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 111 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 111 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 111 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 111 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 56 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 122 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 122 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 122 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 122 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 83 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 83 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 83 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-SmIt+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-SmIt+ new file mode 100755 index 0000000000000..28d9de68fc9e7 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/Ti-SmIt+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 722 ; N Ccaron ; B 63 -16 743 918 ; +C -1 ; WX 444 ; N ccaron ; B 23 -12 509 708 ; +C -1 ; WX 778 ; N Dcaron ; B 0 0 767 918 ; +C -1 ; WX 613 ; N dcaron ; B -1 -12 695 779 ; +C -1 ; WX 667 ; N Ecaron ; B -10 0 666 918 ; +C -1 ; WX 444 ; N ecaron ; B 20 -12 488 708 ; +C -1 ; WX 611 ; N Lcaron ; B -6 0 606 748 ; +C -1 ; WX 611 ; N Lacute ; B -6 0 606 918 ; +C -1 ; WX 391 ; N lcaron ; B 26 -12 470 779 ; +C -1 ; WX 278 ; N lacute ; B 26 -12 448 918 ; +C -1 ; WX 778 ; N Ncaron ; B -2 -16 814 918 ; +C -1 ; WX 556 ; N ncaron ; B 28 -12 544 708 ; +C -1 ; WX 722 ; N Rcaron ; B 1 0 683 918 ; +C -1 ; WX 722 ; N Racute ; B 1 0 691 918 ; +C -1 ; WX 389 ; N rcaron ; B 29 0 460 708 ; +C -1 ; WX 389 ; N racute ; B 29 0 455 708 ; +C -1 ; WX 611 ; N Tcaron ; B 61 0 668 918 ; +C -1 ; WX 446 ; N tcaron ; B 41 -12 528 696 ; +C -1 ; WX 778 ; N Uring ; B 102 -16 820 918 ; +C -1 ; WX 556 ; N uring ; B 44 -12 521 738 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 338 210 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 104 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 298 210 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 406 83 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 242 210 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 83 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 315 52 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 214 210 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 181 83 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 71 210 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 298 210 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 139 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 270 210 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 314 210 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 55 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 78 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 214 210 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 239 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 291 180 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 139 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Bd b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Bd new file mode 100755 index 0000000000000..bcb62097cba22 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Bd @@ -0,0 +1,491 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu Sep 6 11:34:10 1990 +Comment UniqueID 32817 +Comment VMusage 33645 40537 +FontName ZapfChancery-Bold +FullName ITC Zapf Chancery Bold +FamilyName ITC Zapf Chancery +Weight Bold +ItalicAngle 0 +IsFixedPitch false +FontBBox -188 -314 1006 819 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved.ITC Zapf Chancery is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 594 +XHeight 449 +Ascender 714 +Descender -300 +StartCharMetrics 228 +C 32 ; WX 278 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 58 -16 285 610 ; +C 34 ; WX 389 ; N quotedbl ; B 61 258 328 610 ; +C 35 ; WX 556 ; N numbersign ; B 33 0 523 610 ; +C 36 ; WX 556 ; N dollar ; B 29 -154 474 707 ; +C 37 ; WX 667 ; N percent ; B 48 -183 619 700 ; +C 38 ; WX 889 ; N ampersand ; B 30 -16 847 610 ; +C 39 ; WX 222 ; N quoteright ; B 35 258 213 610 ; +C 40 ; WX 333 ; N parenleft ; B 78 -210 344 666 ; +C 41 ; WX 333 ; N parenright ; B -11 -210 255 666 ; +C 42 ; WX 444 ; N asterisk ; B 46 236 398 610 ; +C 43 ; WX 600 ; N plus ; B 47 0 553 506 ; +C 44 ; WX 278 ; N comma ; B -50 -178 192 198 ; +C 45 ; WX 333 ; N hyphen ; B 16 169 317 269 ; +C 46 ; WX 278 ; N period ; B 47 -16 231 168 ; +C 47 ; WX 296 ; N slash ; B -44 -16 340 610 ; +C 48 ; WX 556 ; N zero ; B 36 -16 520 610 ; +C 49 ; WX 556 ; N one ; B 60 0 471 610 ; +C 50 ; WX 556 ; N two ; B 16 -16 533 610 ; +C 51 ; WX 556 ; N three ; B 0 -16 464 610 ; +C 52 ; WX 556 ; N four ; B 0 -36 520 610 ; +C 53 ; WX 556 ; N five ; B 16 -16 520 672 ; +C 54 ; WX 556 ; N six ; B 49 -16 520 610 ; +C 55 ; WX 556 ; N seven ; B 77 -28 520 674 ; +C 56 ; WX 556 ; N eight ; B 36 -16 483 610 ; +C 57 ; WX 556 ; N nine ; B 5 -16 507 610 ; +C 58 ; WX 278 ; N colon ; B 47 -16 242 449 ; +C 59 ; WX 278 ; N semicolon ; B -50 -178 242 449 ; +C 60 ; WX 600 ; N less ; B 47 -8 553 514 ; +C 61 ; WX 600 ; N equal ; B 47 107 553 399 ; +C 62 ; WX 600 ; N greater ; B 47 -8 553 514 ; +C 63 ; WX 389 ; N question ; B 58 -16 379 610 ; +C 64 ; WX 800 ; N at ; B 87 -16 713 610 ; +C 65 ; WX 667 ; N A ; B -94 -16 703 610 ; +C 66 ; WX 667 ; N B ; B -18 -3 618 597 ; +C 67 ; WX 611 ; N C ; B 31 -16 603 610 ; +C 68 ; WX 722 ; N D ; B -27 -3 691 597 ; +C 69 ; WX 667 ; N E ; B -27 -16 632 610 ; +C 70 ; WX 556 ; N F ; B -27 0 583 610 ; +C 71 ; WX 722 ; N G ; B 37 -102 728 610 ; +C 72 ; WX 778 ; N H ; B -27 0 805 594 ; +C 73 ; WX 389 ; N I ; B -27 0 401 594 ; +C 74 ; WX 333 ; N J ; B -139 -214 352 594 ; +C 75 ; WX 722 ; N K ; B -27 -16 759 604 ; +C 76 ; WX 556 ; N L ; B -14 -16 559 594 ; +C 77 ; WX 889 ; N M ; B -27 -16 916 604 ; +C 78 ; WX 722 ; N N ; B -27 -8 749 594 ; +C 79 ; WX 722 ; N O ; B 31 -16 691 610 ; +C 80 ; WX 611 ; N P ; B -27 0 594 597 ; +C 81 ; WX 722 ; N Q ; B 31 -173 764 610 ; +C 82 ; WX 722 ; N R ; B -27 -16 762 597 ; +C 83 ; WX 500 ; N S ; B -18 -16 476 610 ; +C 84 ; WX 667 ; N T ; B 13 0 654 604 ; +C 85 ; WX 778 ; N U ; B 0 -16 811 594 ; +C 86 ; WX 611 ; N V ; B -63 -16 598 610 ; +C 87 ; WX 944 ; N W ; B -58 -16 940 610 ; +C 88 ; WX 611 ; N X ; B -58 -16 651 610 ; +C 89 ; WX 611 ; N Y ; B -50 0 651 610 ; +C 90 ; WX 611 ; N Z ; B -18 -31 604 610 ; +C 91 ; WX 389 ; N bracketleft ; B 93 -200 380 656 ; +C 92 ; WX 296 ; N backslash ; B -44 -16 340 610 ; +C 93 ; WX 389 ; N bracketright ; B 9 -200 296 656 ; +C 94 ; WX 600 ; N asciicircum ; B 82 229 518 594 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 222 ; N quoteleft ; B 41 258 219 610 ; +C 97 ; WX 500 ; N a ; B 22 -14 524 449 ; +C 98 ; WX 500 ; N b ; B 29 -16 465 714 ; +C 99 ; WX 389 ; N c ; B 17 -14 418 449 ; +C 100 ; WX 500 ; N d ; B 22 -14 599 714 ; +C 101 ; WX 389 ; N e ; B 17 -14 413 449 ; +C 102 ; WX 333 ; N f ; B -187 -314 464 714 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B -64 -314 479 449 ; +C 104 ; WX 556 ; N h ; B 30 -14 595 714 ; +C 105 ; WX 333 ; N i ; B 2 -14 347 649 ; +C 106 ; WX 278 ; N j ; B -146 -314 228 649 ; +C 107 ; WX 500 ; N k ; B 17 -14 539 714 ; +C 108 ; WX 278 ; N l ; B 32 -14 361 714 ; +C 109 ; WX 778 ; N m ; B -29 -14 817 449 ; +C 110 ; WX 556 ; N n ; B -23 -14 595 449 ; +C 111 ; WX 500 ; N o ; B 17 -14 465 449 ; +C 112 ; WX 500 ; N p ; B -63 -300 465 584 ; +C 113 ; WX 500 ; N q ; B 22 -300 507 526 ; +C 114 ; WX 389 ; N r ; B -6 -14 407 449 ; +C 115 ; WX 389 ; N s ; B -2 -14 346 449 ; +C 116 ; WX 333 ; N t ; B -58 -14 354 579 ; +C 117 ; WX 556 ; N u ; B -18 -14 583 449 ; +C 118 ; WX 444 ; N v ; B -30 -14 442 449 ; +C 119 ; WX 722 ; N w ; B -30 -14 720 449 ; +C 120 ; WX 500 ; N x ; B -11 -72 508 449 ; +C 121 ; WX 444 ; N y ; B -152 -314 436 449 ; +C 122 ; WX 389 ; N z ; B -30 -14 432 449 ; +C 123 ; WX 389 ; N braceleft ; B 76 -200 367 656 ; +C 124 ; WX 222 ; N bar ; B 67 -16 155 714 ; +C 125 ; WX 389 ; N braceright ; B 22 -200 313 656 ; +C 126 ; WX 600 ; N asciitilde ; B 69 173 531 333 ; +C 161 ; WX 333 ; N exclamdown ; B 40 -177 267 449 ; +C 162 ; WX 556 ; N cent ; B 67 -128 456 554 ; +C 163 ; WX 556 ; N sterling ; B 0 -43 536 610 ; +C 164 ; WX 167 ; N fraction ; B -170 -16 337 610 ; +C 165 ; WX 556 ; N yen ; B -43 0 593 610 ; +C 166 ; WX 556 ; N florin ; B -110 -314 558 610 ; +C 167 ; WX 500 ; N section ; B 25 -216 426 610 ; +C 168 ; WX 556 ; N currency ; B 22 43 534 554 ; +C 169 ; WX 222 ; N quotesingle ; B 61 258 161 610 ; +C 170 ; WX 389 ; N quotedblleft ; B 27 258 379 610 ; +C 171 ; WX 444 ; N guillemotleft ; B 49 14 375 424 ; +C 172 ; WX 333 ; N guilsinglleft ; B 64 14 242 424 ; +C 173 ; WX 333 ; N guilsinglright ; B 64 14 242 424 ; +C 174 ; WX 556 ; N fi ; B -187 -314 585 714 ; +C 175 ; WX 556 ; N fl ; B -187 -314 604 714 ; +C 177 ; WX 500 ; N endash ; B -6 184 506 254 ; +C 178 ; WX 444 ; N dagger ; B 2 -41 442 610 ; +C 179 ; WX 444 ; N daggerdbl ; B 39 -60 385 610 ; +C 180 ; WX 278 ; N periodcentered ; B 71 191 207 327 ; +C 182 ; WX 620 ; N paragraph ; B 72 -200 579 594 ; +C 183 ; WX 500 ; N bullet ; B 102 149 398 445 ; +C 184 ; WX 222 ; N quotesinglbase ; B -13 -160 165 192 ; +C 185 ; WX 389 ; N quotedblbase ; B -14 -160 338 192 ; +C 186 ; WX 389 ; N quotedblright ; B 39 258 391 610 ; +C 187 ; WX 444 ; N guillemotright ; B 49 14 375 424 ; +C 188 ; WX 1000 ; N ellipsis ; B 75 -16 925 168 ; +C 189 ; WX 944 ; N perthousand ; B 25 -183 919 700 ; +C 191 ; WX 389 ; N questiondown ; B -4 -177 317 449 ; +C 193 ; WX 278 ; N grave ; B 29 516 221 688 ; +C 194 ; WX 278 ; N acute ; B 97 510 301 688 ; +C 195 ; WX 278 ; N circumflex ; B 21 510 271 688 ; +C 196 ; WX 278 ; N tilde ; B 6 543 304 661 ; +C 197 ; WX 278 ; N macron ; B 21 555 279 619 ; +C 198 ; WX 278 ; N breve ; B 36 540 309 668 ; +C 199 ; WX 278 ; N dotaccent ; B 73 532 221 674 ; +C 200 ; WX 278 ; N dieresis ; B -14 532 308 674 ; +C 202 ; WX 278 ; N ring ; B 53 498 225 670 ; +C 203 ; WX 278 ; N cedilla ; B -22 -190 186 20 ; +C 205 ; WX 278 ; N hungarumlaut ; B -16 510 362 688 ; +C 206 ; WX 278 ; N ogonek ; B -33 -190 209 20 ; +C 207 ; WX 278 ; N caron ; B 46 510 296 688 ; +C 208 ; WX 1000 ; N emdash ; B -6 184 1006 254 ; +C 225 ; WX 889 ; N AE ; B -35 -16 845 610 ; +C 227 ; WX 325 ; N ordfeminine ; B 8 333 348 610 ; +C 232 ; WX 556 ; N Lslash ; B -14 -16 559 594 ; +C 233 ; WX 722 ; N Oslash ; B 31 -94 691 683 ; +C 234 ; WX 1000 ; N OE ; B 46 -16 965 610 ; +C 235 ; WX 325 ; N ordmasculine ; B 11 333 302 610 ; +C 241 ; WX 667 ; N ae ; B 17 -14 696 493 ; +C 245 ; WX 333 ; N dotlessi ; B 2 -14 347 449 ; +C 248 ; WX 278 ; N lslash ; B -18 -14 361 714 ; +C 249 ; WX 500 ; N oslash ; B 17 -99 470 521 ; +C 250 ; WX 667 ; N oe ; B 22 -14 702 449 ; +C 251 ; WX 556 ; N germandbls ; B -188 -314 502 714 ; +C -1 ; WX 389 ; N ecircumflex ; B 17 -14 413 688 ; +C -1 ; WX 389 ; N edieresis ; B 17 -14 413 674 ; +C -1 ; WX 500 ; N aacute ; B 22 -14 524 688 ; +C -1 ; WX 800 ; N registered ; B 87 -16 713 610 ; +C -1 ; WX 333 ; N icircumflex ; B 2 -14 347 688 ; +C -1 ; WX 556 ; N udieresis ; B -18 -14 583 674 ; +C -1 ; WX 500 ; N ograve ; B 17 -14 465 688 ; +C -1 ; WX 556 ; N uacute ; B -18 -14 583 688 ; +C -1 ; WX 556 ; N ucircumflex ; B -18 -14 583 688 ; +C -1 ; WX 667 ; N Aacute ; B -94 -16 703 819 ; +C -1 ; WX 333 ; N igrave ; B 2 -14 347 688 ; +C -1 ; WX 389 ; N Icircumflex ; B -27 0 401 819 ; +C -1 ; WX 389 ; N ccedilla ; B 17 -190 418 449 ; +C -1 ; WX 500 ; N adieresis ; B 22 -14 524 674 ; +C -1 ; WX 667 ; N Ecircumflex ; B -27 -16 632 819 ; +C -1 ; WX 389 ; N scaron ; B -2 -14 384 688 ; +C -1 ; WX 500 ; N thorn ; B -63 -300 465 714 ; +C -1 ; WX 1000 ; N trademark ; B 24 189 976 594 ; +C -1 ; WX 389 ; N egrave ; B 17 -14 413 688 ; +C -1 ; WX 361 ; N threesuperior ; B 1 234 308 610 ; +C -1 ; WX 389 ; N zcaron ; B -30 -14 432 688 ; +C -1 ; WX 500 ; N atilde ; B 22 -14 524 661 ; +C -1 ; WX 500 ; N aring ; B 22 -14 524 670 ; +C -1 ; WX 500 ; N ocircumflex ; B 17 -14 465 688 ; +C -1 ; WX 667 ; N Edieresis ; B -27 -16 632 805 ; +C -1 ; WX 834 ; N threequarters ; B 41 -16 793 610 ; +C -1 ; WX 444 ; N ydieresis ; B -152 -314 436 674 ; +C -1 ; WX 444 ; N yacute ; B -152 -314 436 688 ; +C -1 ; WX 333 ; N iacute ; B 2 -14 347 688 ; +C -1 ; WX 667 ; N Acircumflex ; B -94 -16 703 819 ; +C -1 ; WX 778 ; N Uacute ; B 0 -16 811 819 ; +C -1 ; WX 389 ; N eacute ; B 17 -14 413 688 ; +C -1 ; WX 722 ; N Ograve ; B 31 -16 691 819 ; +C -1 ; WX 500 ; N agrave ; B 22 -14 524 688 ; +C -1 ; WX 778 ; N Udieresis ; B 0 -16 811 805 ; +C -1 ; WX 500 ; N acircumflex ; B 22 -14 524 688 ; +C -1 ; WX 389 ; N Igrave ; B -27 0 401 819 ; +C -1 ; WX 361 ; N twosuperior ; B 8 234 345 610 ; +C -1 ; WX 778 ; N Ugrave ; B 0 -16 811 819 ; +C -1 ; WX 834 ; N onequarter ; B 41 -16 793 610 ; +C -1 ; WX 778 ; N Ucircumflex ; B 0 -16 811 819 ; +C -1 ; WX 500 ; N Scaron ; B -18 -16 476 819 ; +C -1 ; WX 389 ; N Idieresis ; B -27 0 401 805 ; +C -1 ; WX 333 ; N idieresis ; B 2 -14 347 674 ; +C -1 ; WX 667 ; N Egrave ; B -27 -16 632 819 ; +C -1 ; WX 722 ; N Oacute ; B 31 -16 691 819 ; +C -1 ; WX 600 ; N divide ; B 47 -33 553 539 ; +C -1 ; WX 667 ; N Atilde ; B -94 -16 703 792 ; +C -1 ; WX 667 ; N Aring ; B -94 -16 703 801 ; +C -1 ; WX 722 ; N Odieresis ; B 31 -16 691 805 ; +C -1 ; WX 667 ; N Adieresis ; B -94 -16 703 805 ; +C -1 ; WX 722 ; N Ntilde ; B -27 -8 749 792 ; +C -1 ; WX 611 ; N Zcaron ; B -18 -31 604 819 ; +C -1 ; WX 611 ; N Thorn ; B -27 0 573 594 ; +C -1 ; WX 389 ; N Iacute ; B -27 0 401 819 ; +C -1 ; WX 600 ; N plusminus ; B 47 0 553 506 ; +C -1 ; WX 600 ; N multiply ; B 68 21 532 485 ; +C -1 ; WX 667 ; N Eacute ; B -27 -16 632 819 ; +C -1 ; WX 611 ; N Ydieresis ; B -50 0 651 805 ; +C -1 ; WX 361 ; N onesuperior ; B 39 244 306 610 ; +C -1 ; WX 556 ; N ugrave ; B -18 -14 583 688 ; +C -1 ; WX 600 ; N logicalnot ; B 47 108 553 399 ; +C -1 ; WX 556 ; N ntilde ; B -23 -14 595 661 ; +C -1 ; WX 722 ; N Otilde ; B 31 -16 691 792 ; +C -1 ; WX 500 ; N otilde ; B 17 -14 465 661 ; +C -1 ; WX 611 ; N Ccedilla ; B 31 -190 603 610 ; +C -1 ; WX 667 ; N Agrave ; B -94 -16 703 819 ; +C -1 ; WX 834 ; N onehalf ; B 41 -16 830 610 ; +C -1 ; WX 722 ; N Eth ; B -27 -3 692 597 ; +C -1 ; WX 400 ; N degree ; B 57 324 343 610 ; +C -1 ; WX 611 ; N Yacute ; B -50 0 651 819 ; +C -1 ; WX 722 ; N Ocircumflex ; B 31 -16 691 819 ; +C -1 ; WX 500 ; N oacute ; B 17 -14 465 688 ; +C -1 ; WX 556 ; N mu ; B -18 -314 583 449 ; +C -1 ; WX 600 ; N minus ; B 47 209 553 297 ; +C -1 ; WX 500 ; N eth ; B 17 -14 474 714 ; +C -1 ; WX 500 ; N odieresis ; B 17 -14 465 674 ; +C -1 ; WX 800 ; N copyright ; B 87 -16 713 610 ; +C -1 ; WX 222 ; N brokenbar ; B 67 -16 155 714 ; +EndCharMetrics +StartKernData +StartKernPairs 145 + +KPX A y -37 +KPX A w -37 +KPX A v -37 +KPX A quoteright -40 +KPX A quotedblright -40 +KPX A Y -55 +KPX A W -55 +KPX A V -55 +KPX A T -55 +KPX A Q -10 +KPX A O -10 +KPX A G -10 +KPX A C -10 + +KPX B period -50 +KPX B comma -50 +KPX B U -18 + +KPX D period -50 +KPX D comma -50 +KPX D W 10 +KPX D V 10 + +KPX F r -40 +KPX F period -129 +KPX F o -50 +KPX F i -18 +KPX F e -50 +KPX F comma -111 +KPX F a -50 +KPX F A -55 + +KPX G period -50 +KPX G comma -50 + +KPX J period -50 +KPX J comma -50 + +KPX L y -18 +KPX L quoteright -10 +KPX L Y -74 +KPX L W -40 +KPX L V -40 +KPX L T -55 + +KPX N period -50 +KPX N comma -50 + +KPX O period -50 +KPX O comma -50 +KPX O W 10 +KPX O V 10 + +KPX P period -129 +KPX P o -25 +KPX P e -25 +KPX P comma -129 +KPX P a -25 +KPX P A -55 + +KPX Q period -50 +KPX Q comma 125 + +KPX R Y -18 +KPX R W -37 +KPX R V -18 +KPX R U -10 +KPX R T -37 + +KPX S period -50 +KPX S comma -50 + +KPX T y -74 +KPX T w -92 +KPX T u -74 +KPX T semicolon -74 +KPX T r -55 +KPX T period -111 +KPX T o -74 +KPX T i -37 +KPX T hyphen -92 +KPX T e -74 +KPX T comma -92 +KPX T colon -74 +KPX T a -74 +KPX T A -55 + +KPX V semicolon -18 +KPX V period -111 +KPX V o -18 +KPX V hyphen -37 +KPX V e -18 +KPX V comma -111 +KPX V colon -18 +KPX V a -18 +KPX V O 10 +KPX V G 10 +KPX V A -55 + +KPX W period -111 +KPX W o -18 +KPX W hyphen -37 +KPX W e -18 +KPX W comma -111 +KPX W a -18 +KPX W O 10 +KPX W A -65 + +KPX Y u -55 +KPX Y semicolon -55 +KPX Y period -111 +KPX Y o -74 +KPX Y i -37 +KPX Y hyphen -74 +KPX Y e -74 +KPX Y comma -92 +KPX Y colon -55 +KPX Y a -74 +KPX Y A -55 + +KPX b period -50 +KPX b comma -50 + +KPX colon space -37 + +KPX comma space -37 +KPX comma quoteright -18 +KPX comma quotedblright -18 + +KPX f quoteright 18 +KPX f period -75 +KPX f comma -50 + +KPX g period -50 +KPX g comma -18 + +KPX period quoteright -18 +KPX period quotedblright -18 + +KPX quotedblleft quoteleft -18 +KPX quotedblleft A -40 + +KPX quotedblright space -37 + +KPX quoteleft quoteleft -40 +KPX quoteleft A -40 + +KPX quoteright v 18 +KPX quoteright t 18 +KPX quoteright s -18 +KPX quoteright r 18 +KPX quoteright quoteright -40 +KPX quoteright quotedblright -18 +KPX quoteright l 18 +KPX quoteright d -18 + +KPX r period -92 +KPX r hyphen -55 +KPX r comma -74 + +KPX space quoteleft -37 +KPX space quotedblleft -37 +KPX space Y -37 +KPX space W -37 +KPX space V -37 +KPX space T -37 +KPX space A -37 + +KPX v period -74 +KPX v comma -74 + +KPX w period -74 +KPX w comma -74 + +KPX y period -55 +KPX y comma -55 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 235 131 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 235 131 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 235 131 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 235 131 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 235 131 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 235 131 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 213 131 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 213 131 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 213 131 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 213 131 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 84 131 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 84 131 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 84 131 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 84 131 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 254 131 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 234 131 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 234 131 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 234 131 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 234 131 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 234 131 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 143 131 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 278 131 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 278 131 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 278 131 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 278 131 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 199 131 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 199 131 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 199 131 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 129 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 129 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 129 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 129 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 151 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 129 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 88 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 88 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 88 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 88 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 34 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 34 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 34 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 34 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 145 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 111 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 111 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 111 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 111 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 111 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 88 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 157 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 157 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 157 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 157 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 101 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 101 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 74 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Bd+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Bd+ new file mode 100755 index 0000000000000..f3d9be1ae4519 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Bd+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 611 ; N Ccaron ; B 31 -16 603 826 ; +C -1 ; WX 389 ; N ccaron ; B 17 -14 418 688 ; +C -1 ; WX 722 ; N Dcaron ; B -27 -3 691 826 ; +C -1 ; WX 625 ; N dcaron ; B 22 -14 795 785 ; +C -1 ; WX 667 ; N Ecaron ; B -27 -16 632 826 ; +C -1 ; WX 389 ; N ecaron ; B 17 -14 413 688 ; +C -1 ; WX 556 ; N Lcaron ; B -14 -16 597 653 ; +C -1 ; WX 556 ; N Lacute ; B -14 -16 559 826 ; +C -1 ; WX 403 ; N lcaron ; B 32 -14 557 785 ; +C -1 ; WX 278 ; N lacute ; B 32 -14 361 826 ; +C -1 ; WX 722 ; N Ncaron ; B -27 -8 749 826 ; +C -1 ; WX 556 ; N ncaron ; B -23 -14 595 688 ; +C -1 ; WX 722 ; N Rcaron ; B -27 -16 762 826 ; +C -1 ; WX 722 ; N Racute ; B -27 -16 762 826 ; +C -1 ; WX 389 ; N rcaron ; B -6 -14 407 688 ; +C -1 ; WX 389 ; N racute ; B -6 -14 407 688 ; +C -1 ; WX 667 ; N Tcaron ; B 13 0 654 826 ; +C -1 ; WX 458 ; N tcaron ; B -58 -14 550 610 ; +C -1 ; WX 778 ; N Uring ; B 0 -16 811 826 ; +C -1 ; WX 556 ; N uring ; B -18 -14 583 670 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 223 138 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 75 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 222 138 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 582 175 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 194 138 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 55 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 384 43 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 139 138 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 344 175 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 20 138 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 222 138 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 139 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 222 138 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 261 138 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 55 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 75 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 194 138 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 337 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 250 156 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 139 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Dm b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Dm new file mode 100755 index 0000000000000..c37e41d201522 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Dm @@ -0,0 +1,480 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu Sep 6 12:00:28 1990 +Comment UniqueID 32826 +Comment VMusage 34487 41379 +FontName ZapfChancery-Demi +FullName ITC Zapf Chancery Demi +FamilyName ITC Zapf Chancery +Weight Demi +ItalicAngle 0 +IsFixedPitch false +FontBBox -184 -314 1006 825 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved.ITC Zapf Chancery is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 594 +XHeight 443 +Ascender 714 +Descender -300 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 278 ; N exclam ; B 53 -14 225 610 ; +C 34 ; WX 389 ; N quotedbl ; B 82 294 307 610 ; +C 35 ; WX 500 ; N numbersign ; B 32 0 469 594 ; +C 36 ; WX 500 ; N dollar ; B 30 -149 417 714 ; +C 37 ; WX 667 ; N percent ; B 46 -167 621 706 ; +C 38 ; WX 833 ; N ampersand ; B 14 -14 819 610 ; +C 39 ; WX 222 ; N quoteright ; B 22 294 176 610 ; +C 40 ; WX 333 ; N parenleft ; B 89 -213 301 669 ; +C 41 ; WX 333 ; N parenright ; B 32 -213 244 669 ; +C 42 ; WX 444 ; N asterisk ; B 54 256 390 610 ; +C 43 ; WX 600 ; N plus ; B 47 0 553 506 ; +C 44 ; WX 250 ; N comma ; B -48 -140 166 193 ; +C 45 ; WX 333 ; N hyphen ; B 32 187 301 251 ; +C 46 ; WX 250 ; N period ; B 48 -14 202 154 ; +C 47 ; WX 296 ; N slash ; B -40 -16 336 610 ; +C 48 ; WX 500 ; N zero ; B 38 -16 462 610 ; +C 49 ; WX 500 ; N one ; B 53 0 435 614 ; +C 50 ; WX 500 ; N two ; B 7 -16 473 610 ; +C 51 ; WX 500 ; N three ; B -18 -16 410 610 ; +C 52 ; WX 500 ; N four ; B 9 -24 468 610 ; +C 53 ; WX 500 ; N five ; B 7 -16 480 670 ; +C 54 ; WX 500 ; N six ; B 38 -16 462 610 ; +C 55 ; WX 500 ; N seven ; B 75 -26 498 668 ; +C 56 ; WX 500 ; N eight ; B 35 -16 443 610 ; +C 57 ; WX 500 ; N nine ; B 3 -16 453 610 ; +C 58 ; WX 250 ; N colon ; B 48 -14 202 443 ; +C 59 ; WX 250 ; N semicolon ; B -48 -140 202 443 ; +C 60 ; WX 600 ; N less ; B 47 -8 553 514 ; +C 61 ; WX 600 ; N equal ; B 47 121 553 385 ; +C 62 ; WX 600 ; N greater ; B 47 -8 553 514 ; +C 63 ; WX 333 ; N question ; B 59 -14 321 610 ; +C 64 ; WX 800 ; N at ; B 87 -16 713 610 ; +C 65 ; WX 611 ; N A ; B -94 -16 628 610 ; +C 66 ; WX 611 ; N B ; B -22 -4 558 598 ; +C 67 ; WX 611 ; N C ; B 36 -16 571 610 ; +C 68 ; WX 722 ; N D ; B -10 -4 675 598 ; +C 69 ; WX 611 ; N E ; B -10 -10 572 610 ; +C 70 ; WX 500 ; N F ; B -22 0 522 610 ; +C 71 ; WX 667 ; N G ; B 36 -78 653 610 ; +C 72 ; WX 722 ; N H ; B -22 0 744 594 ; +C 73 ; WX 333 ; N I ; B -10 0 343 594 ; +C 74 ; WX 278 ; N J ; B -146 -215 306 594 ; +C 75 ; WX 611 ; N K ; B -10 -16 646 610 ; +C 76 ; WX 556 ; N L ; B 0 -10 528 594 ; +C 77 ; WX 833 ; N M ; B -17 -16 850 594 ; +C 78 ; WX 667 ; N N ; B -10 -16 684 594 ; +C 79 ; WX 722 ; N O ; B 36 -16 686 610 ; +C 80 ; WX 556 ; N P ; B -22 0 540 594 ; +C 81 ; WX 722 ; N Q ; B 36 -176 766 610 ; +C 82 ; WX 611 ; N R ; B -10 -16 643 594 ; +C 83 ; WX 500 ; N S ; B 5 -16 449 610 ; +C 84 ; WX 611 ; N T ; B 16 0 595 604 ; +C 85 ; WX 722 ; N U ; B -14 -16 736 594 ; +C 86 ; WX 556 ; N V ; B -48 -16 562 610 ; +C 87 ; WX 944 ; N W ; B -24 -16 954 610 ; +C 88 ; WX 611 ; N X ; B -41 -16 632 610 ; +C 89 ; WX 611 ; N Y ; B -38 0 649 610 ; +C 90 ; WX 611 ; N Z ; B -15 -23 600 610 ; +C 91 ; WX 333 ; N bracketleft ; B 74 -207 355 663 ; +C 92 ; WX 296 ; N backslash ; B -40 -16 336 610 ; +C 93 ; WX 333 ; N bracketright ; B -22 -207 259 663 ; +C 94 ; WX 600 ; N asciicircum ; B 89 229 511 594 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 222 ; N quoteleft ; B 46 294 200 610 ; +C 97 ; WX 444 ; N a ; B 22 -14 488 443 ; +C 98 ; WX 444 ; N b ; B 40 -14 408 714 ; +C 99 ; WX 389 ; N c ; B 22 -14 400 444 ; +C 100 ; WX 444 ; N d ; B 22 -14 550 714 ; +C 101 ; WX 389 ; N e ; B 22 -14 399 443 ; +C 102 ; WX 278 ; N f ; B -160 -314 410 714 ; L i fi ; L l fl ; +C 103 ; WX 444 ; N g ; B -32 -314 430 443 ; +C 104 ; WX 500 ; N h ; B 40 -14 543 714 ; +C 105 ; WX 278 ; N i ; B -6 -14 306 654 ; +C 106 ; WX 278 ; N j ; B -116 -314 223 654 ; +C 107 ; WX 444 ; N k ; B 31 -14 487 714 ; +C 108 ; WX 278 ; N l ; B 61 -14 341 714 ; +C 109 ; WX 722 ; N m ; B -20 -14 771 443 ; +C 110 ; WX 500 ; N n ; B -20 -14 551 443 ; +C 111 ; WX 444 ; N o ; B 28 -14 416 443 ; +C 112 ; WX 444 ; N p ; B -68 -300 408 560 ; +C 113 ; WX 444 ; N q ; B 22 -300 483 486 ; +C 114 ; WX 333 ; N r ; B -13 -14 372 443 ; +C 115 ; WX 389 ; N s ; B 18 -14 355 443 ; +C 116 ; WX 333 ; N t ; B 0 -14 345 552 ; +C 117 ; WX 500 ; N u ; B -20 -14 549 443 ; +C 118 ; WX 444 ; N v ; B -30 -14 431 456 ; +C 119 ; WX 722 ; N w ; B -30 -14 698 454 ; +C 120 ; WX 444 ; N x ; B -18 -55 450 443 ; +C 121 ; WX 444 ; N y ; B -127 -314 429 455 ; +C 122 ; WX 389 ; N z ; B -22 -14 438 443 ; +C 123 ; WX 333 ; N braceleft ; B 40 -207 300 663 ; +C 124 ; WX 222 ; N bar ; B 79 -16 143 714 ; +C 125 ; WX 333 ; N braceright ; B 33 -207 293 663 ; +C 126 ; WX 600 ; N asciitilde ; B 69 183 531 323 ; +C 161 ; WX 278 ; N exclamdown ; B 53 -181 225 443 ; +C 162 ; WX 500 ; N cent ; B 51 -149 421 554 ; +C 163 ; WX 500 ; N sterling ; B -9 -50 498 610 ; +C 164 ; WX 167 ; N fraction ; B -166 -16 333 610 ; +C 165 ; WX 500 ; N yen ; B -27 0 527 610 ; +C 166 ; WX 500 ; N florin ; B -132 -314 514 610 ; +C 167 ; WX 500 ; N section ; B 63 -212 420 610 ; +C 168 ; WX 500 ; N currency ; B 0 47 500 547 ; +C 169 ; WX 222 ; N quotesingle ; B 73 294 149 610 ; +C 170 ; WX 389 ; N quotedblleft ; B 56 294 364 610 ; +C 171 ; WX 444 ; N guillemotleft ; B 62 19 370 419 ; +C 172 ; WX 333 ; N guilsinglleft ; B 69 19 243 419 ; +C 173 ; WX 333 ; N guilsinglright ; B 69 19 243 419 ; +C 174 ; WX 500 ; N fi ; B -184 -314 543 714 ; +C 175 ; WX 500 ; N fl ; B -168 -314 553 714 ; +C 177 ; WX 500 ; N endash ; B -6 193 506 245 ; +C 178 ; WX 444 ; N dagger ; B 12 -32 442 610 ; +C 179 ; WX 444 ; N daggerdbl ; B 48 -43 396 610 ; +C 180 ; WX 250 ; N periodcentered ; B 63 199 187 323 ; +C 182 ; WX 620 ; N paragraph ; B 80 -196 567 594 ; +C 183 ; WX 500 ; N bullet ; B 102 149 398 445 ; +C 184 ; WX 222 ; N quotesinglbase ; B 22 -113 176 203 ; +C 185 ; WX 389 ; N quotedblbase ; B 25 -113 333 203 ; +C 186 ; WX 389 ; N quotedblright ; B 25 294 333 610 ; +C 187 ; WX 444 ; N guillemotright ; B 62 19 370 419 ; +C 188 ; WX 1000 ; N ellipsis ; B 90 -14 910 154 ; +C 189 ; WX 944 ; N perthousand ; B 23 -167 921 706 ; +C 191 ; WX 333 ; N questiondown ; B 12 -181 274 443 ; +C 193 ; WX 278 ; N grave ; B 34 496 220 664 ; +C 194 ; WX 278 ; N acute ; B 93 496 279 664 ; +C 195 ; WX 278 ; N circumflex ; B 23 496 255 670 ; +C 196 ; WX 278 ; N tilde ; B 12 524 300 630 ; +C 197 ; WX 278 ; N macron ; B 24 543 274 589 ; +C 198 ; WX 278 ; N breve ; B 41 524 303 642 ; +C 199 ; WX 278 ; N dotaccent ; B 83 524 207 642 ; +C 200 ; WX 278 ; N dieresis ; B 3 524 281 642 ; +C 202 ; WX 278 ; N ring ; B 71 496 251 676 ; +C 203 ; WX 278 ; N cedilla ; B -42 -193 160 9 ; +C 205 ; WX 278 ; N hungarumlaut ; B 16 496 356 664 ; +C 206 ; WX 278 ; N ogonek ; B -24 -193 210 9 ; +C 207 ; WX 278 ; N caron ; B 58 496 290 670 ; +C 208 ; WX 1000 ; N emdash ; B -6 193 1006 245 ; +C 225 ; WX 833 ; N AE ; B -20 -10 789 610 ; +C 227 ; WX 289 ; N ordfeminine ; B 20 336 335 610 ; +C 232 ; WX 556 ; N Lslash ; B 0 -10 528 594 ; +C 233 ; WX 722 ; N Oslash ; B 36 -90 686 684 ; +C 234 ; WX 944 ; N OE ; B 42 -10 890 610 ; +C 235 ; WX 289 ; N ordmasculine ; B 29 336 290 610 ; +C 241 ; WX 611 ; N ae ; B 22 -14 645 479 ; +C 245 ; WX 278 ; N dotlessi ; B -6 -14 306 443 ; +C 248 ; WX 278 ; N lslash ; B -6 -14 341 714 ; +C 249 ; WX 444 ; N oslash ; B 17 -80 427 509 ; +C 250 ; WX 667 ; N oe ; B 22 -14 685 443 ; +C 251 ; WX 500 ; N germandbls ; B -167 -314 479 714 ; +C -1 ; WX 389 ; N ecircumflex ; B 22 -14 399 670 ; +C -1 ; WX 389 ; N edieresis ; B 22 -14 399 642 ; +C -1 ; WX 444 ; N aacute ; B 22 -14 488 664 ; +C -1 ; WX 800 ; N registered ; B 87 -16 713 610 ; +C -1 ; WX 278 ; N icircumflex ; B -6 -14 306 670 ; +C -1 ; WX 500 ; N udieresis ; B -20 -14 549 642 ; +C -1 ; WX 444 ; N ograve ; B 28 -14 416 664 ; +C -1 ; WX 500 ; N uacute ; B -20 -14 549 664 ; +C -1 ; WX 500 ; N ucircumflex ; B -20 -14 549 670 ; +C -1 ; WX 611 ; N Aacute ; B -94 -16 628 803 ; +C -1 ; WX 278 ; N igrave ; B -6 -14 306 664 ; +C -1 ; WX 333 ; N Icircumflex ; B -10 0 343 809 ; +C -1 ; WX 389 ; N ccedilla ; B 22 -193 400 444 ; +C -1 ; WX 444 ; N adieresis ; B 22 -14 488 642 ; +C -1 ; WX 611 ; N Ecircumflex ; B -10 -10 572 809 ; +C -1 ; WX 389 ; N scaron ; B 18 -14 392 670 ; +C -1 ; WX 444 ; N thorn ; B -68 -300 408 714 ; +C -1 ; WX 1000 ; N trademark ; B 37 190 963 594 ; +C -1 ; WX 389 ; N egrave ; B 22 -14 399 664 ; +C -1 ; WX 325 ; N threesuperior ; B 8 234 294 610 ; +C -1 ; WX 389 ; N zcaron ; B -22 -14 438 670 ; +C -1 ; WX 444 ; N atilde ; B 22 -14 488 630 ; +C -1 ; WX 444 ; N aring ; B 22 -14 488 676 ; +C -1 ; WX 444 ; N ocircumflex ; B 28 -14 416 670 ; +C -1 ; WX 611 ; N Edieresis ; B -10 -10 572 781 ; +C -1 ; WX 750 ; N threequarters ; B 28 -16 739 610 ; +C -1 ; WX 444 ; N ydieresis ; B -127 -314 429 642 ; +C -1 ; WX 444 ; N yacute ; B -127 -314 429 664 ; +C -1 ; WX 278 ; N iacute ; B -6 -14 306 664 ; +C -1 ; WX 611 ; N Acircumflex ; B -94 -16 628 809 ; +C -1 ; WX 722 ; N Uacute ; B -14 -16 736 803 ; +C -1 ; WX 389 ; N eacute ; B 22 -14 399 664 ; +C -1 ; WX 722 ; N Ograve ; B 36 -16 686 803 ; +C -1 ; WX 444 ; N agrave ; B 22 -14 488 664 ; +C -1 ; WX 722 ; N Udieresis ; B -14 -16 736 781 ; +C -1 ; WX 444 ; N acircumflex ; B 22 -14 488 670 ; +C -1 ; WX 333 ; N Igrave ; B -10 0 343 803 ; +C -1 ; WX 325 ; N twosuperior ; B 3 234 312 610 ; +C -1 ; WX 722 ; N Ugrave ; B -14 -16 736 803 ; +C -1 ; WX 750 ; N onequarter ; B 34 -16 739 612 ; +C -1 ; WX 722 ; N Ucircumflex ; B -14 -16 736 809 ; +C -1 ; WX 500 ; N Scaron ; B 5 -16 449 809 ; +C -1 ; WX 333 ; N Idieresis ; B -10 0 343 781 ; +C -1 ; WX 278 ; N idieresis ; B -6 -14 306 642 ; +C -1 ; WX 611 ; N Egrave ; B -10 -10 572 803 ; +C -1 ; WX 722 ; N Oacute ; B 36 -16 686 803 ; +C -1 ; WX 600 ; N divide ; B 47 -11 553 517 ; +C -1 ; WX 611 ; N Atilde ; B -94 -16 628 769 ; +C -1 ; WX 611 ; N Aring ; B -94 -16 628 825 ; +C -1 ; WX 722 ; N Odieresis ; B 36 -16 686 781 ; +C -1 ; WX 611 ; N Adieresis ; B -94 -16 628 781 ; +C -1 ; WX 667 ; N Ntilde ; B -10 -16 684 769 ; +C -1 ; WX 611 ; N Zcaron ; B -15 -23 600 809 ; +C -1 ; WX 556 ; N Thorn ; B -22 0 535 594 ; +C -1 ; WX 333 ; N Iacute ; B -10 0 343 803 ; +C -1 ; WX 600 ; N plusminus ; B 47 0 553 506 ; +C -1 ; WX 600 ; N multiply ; B 71 24 529 482 ; +C -1 ; WX 611 ; N Eacute ; B -10 -10 572 803 ; +C -1 ; WX 611 ; N Ydieresis ; B -38 0 649 781 ; +C -1 ; WX 325 ; N onesuperior ; B 34 244 291 612 ; +C -1 ; WX 500 ; N ugrave ; B -20 -14 549 664 ; +C -1 ; WX 600 ; N logicalnot ; B 47 107 553 385 ; +C -1 ; WX 500 ; N ntilde ; B -20 -14 551 630 ; +C -1 ; WX 722 ; N Otilde ; B 36 -16 686 769 ; +C -1 ; WX 444 ; N otilde ; B 28 -14 429 630 ; +C -1 ; WX 611 ; N Ccedilla ; B 36 -193 571 610 ; +C -1 ; WX 611 ; N Agrave ; B -94 -16 628 803 ; +C -1 ; WX 750 ; N onehalf ; B 34 -16 750 612 ; +C -1 ; WX 722 ; N Eth ; B -10 -4 675 598 ; +C -1 ; WX 400 ; N degree ; B 58 326 342 610 ; +C -1 ; WX 611 ; N Yacute ; B -38 0 649 803 ; +C -1 ; WX 722 ; N Ocircumflex ; B 36 -16 686 809 ; +C -1 ; WX 444 ; N oacute ; B 28 -14 416 664 ; +C -1 ; WX 500 ; N mu ; B -20 -314 549 443 ; +C -1 ; WX 600 ; N minus ; B 47 221 553 285 ; +C -1 ; WX 444 ; N eth ; B 28 -14 424 714 ; +C -1 ; WX 444 ; N odieresis ; B 28 -14 416 642 ; +C -1 ; WX 800 ; N copyright ; B 87 -16 713 610 ; +C -1 ; WX 222 ; N brokenbar ; B 79 -16 143 714 ; +EndCharMetrics +StartKernData +StartKernPairs 135 + +KPX A y -37 +KPX A w -37 +KPX A v -37 +KPX A quoteright -50 +KPX A quotedblright -50 +KPX A Y -55 +KPX A W -55 +KPX A V -55 +KPX A T -55 +KPX A Q -50 +KPX A O -50 +KPX A G -50 +KPX A C -50 + +KPX B period -30 +KPX B comma -30 + +KPX D period -37 +KPX D comma -37 +KPX D W 18 +KPX D V 18 +KPX D A 18 + +KPX F r -60 +KPX F period -129 +KPX F o -60 +KPX F i -18 +KPX F e -60 +KPX F comma -111 +KPX F a -60 +KPX F A -55 + +KPX G period -30 +KPX G comma -18 + +KPX J period -30 +KPX J comma -18 +KPX J A 20 + +KPX L y -18 +KPX L quoteright -25 +KPX L quotedblright -25 +KPX L Y -74 +KPX L W -55 +KPX L V -55 +KPX L T -55 + +KPX N period -18 +KPX N comma -18 + +KPX O period -30 +KPX O comma -30 +KPX O W 30 +KPX O V 30 + +KPX P period -129 +KPX P comma -129 +KPX P A -55 + +KPX Q period -18 +KPX Q comma 125 + +KPX R Y -18 +KPX R W -37 +KPX R V -18 +KPX R T -37 + +KPX S period -30 +KPX S comma -30 + +KPX T y -74 +KPX T w -92 +KPX T u -74 +KPX T semicolon -50 +KPX T r -55 +KPX T period -111 +KPX T o -74 +KPX T i -37 +KPX T hyphen -92 +KPX T e -74 +KPX T comma -92 +KPX T colon -50 +KPX T a -74 +KPX T A -55 + +KPX V semicolon -18 +KPX V period -111 +KPX V o -18 +KPX V hyphen -37 +KPX V e -18 +KPX V comma -111 +KPX V colon -18 +KPX V a -18 +KPX V G 18 +KPX V A -55 + +KPX W period -111 +KPX W o -18 +KPX W hyphen -18 +KPX W e -18 +KPX W comma -111 +KPX W a -18 +KPX W A -37 + +KPX Y u -75 +KPX Y semicolon -55 +KPX Y period -111 +KPX Y o -100 +KPX Y i -37 +KPX Y hyphen -100 +KPX Y e -100 +KPX Y comma -92 +KPX Y colon -55 +KPX Y a -100 +KPX Y A -55 + +KPX b period -50 +KPX b comma -50 + +KPX colon space -50 + +KPX comma space -50 + +KPX f quoteright 37 +KPX f quotedblright 37 +KPX f period -37 + +KPX g period -37 + +KPX period quoteright -18 +KPX period quotedblright -18 + +KPX quotedblleft A -50 + +KPX quoteleft quoteleft -68 +KPX quoteleft A -50 + +KPX quoteright v -30 +KPX quoteright t -30 +KPX quoteright s -75 +KPX quoteright quoteright -68 +KPX quoteright l -25 +KPX quoteright d -50 + +KPX r quoteright 37 +KPX r period -92 +KPX r hyphen -55 +KPX r comma -74 + +KPX space quoteleft -50 +KPX space quotedblleft -50 +KPX space Y -50 +KPX space W -50 +KPX space V -50 +KPX space T -50 +KPX space A -50 + +KPX v period -74 +KPX v comma -74 + +KPX w period -74 +KPX w comma -74 + +KPX y period -55 +KPX y comma -55 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 213 139 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 213 139 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 213 139 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 213 139 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 202 149 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 213 139 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 179 139 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 179 139 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 179 139 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 179 139 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 57 139 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 57 139 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 57 139 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 57 139 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 230 139 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 234 139 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 234 139 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 234 139 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 234 139 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 234 139 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 123 139 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 245 139 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 245 139 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 245 139 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 245 139 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 213 139 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 213 139 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 190 139 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 95 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 95 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 95 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 95 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 95 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 95 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 108 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 108 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 108 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 108 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 6 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 6 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 6 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 6 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 123 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 129 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 129 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 129 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 129 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 129 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 102 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 117 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 117 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 117 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 117 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 95 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 95 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 62 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Dm+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Dm+ new file mode 100755 index 0000000000000..dd5b95072bb3a --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Dm+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 611 ; N Ccaron ; B 36 -16 571 822 ; +C -1 ; WX 389 ; N ccaron ; B 22 -14 400 670 ; +C -1 ; WX 722 ; N Dcaron ; B -10 -4 675 822 ; +C -1 ; WX 552 ; N dcaron ; B 22 -14 719 785 ; +C -1 ; WX 611 ; N Ecaron ; B -10 -10 572 822 ; +C -1 ; WX 389 ; N ecaron ; B 22 -14 399 670 ; +C -1 ; WX 556 ; N Lcaron ; B 0 -10 528 653 ; +C -1 ; WX 556 ; N Lacute ; B 0 -10 528 816 ; +C -1 ; WX 386 ; N lcaron ; B 61 -14 510 785 ; +C -1 ; WX 278 ; N lacute ; B 61 -14 341 816 ; +C -1 ; WX 667 ; N Ncaron ; B -10 -16 684 822 ; +C -1 ; WX 500 ; N ncaron ; B -20 -14 551 670 ; +C -1 ; WX 611 ; N Rcaron ; B -10 -16 643 822 ; +C -1 ; WX 611 ; N Racute ; B -10 -16 643 816 ; +C -1 ; WX 333 ; N rcaron ; B -13 -14 372 670 ; +C -1 ; WX 333 ; N racute ; B -13 -14 372 664 ; +C -1 ; WX 611 ; N Tcaron ; B 16 0 595 822 ; +C -1 ; WX 441 ; N tcaron ; B 0 -14 514 610 ; +C -1 ; WX 722 ; N Uring ; B -14 -16 736 822 ; +C -1 ; WX 500 ; N uring ; B -20 -14 549 676 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 220 152 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 74 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 222 152 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 543 175 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 166 152 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 55 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 336 43 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 139 152 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 334 175 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 19 152 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 194 152 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 111 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 166 152 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 201 152 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 27 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 46 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 166 152 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 338 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 222 146 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 111 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-It b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-It new file mode 100755 index 0000000000000..7a36d1cc34473 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-It @@ -0,0 +1,452 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu Sep 6 11:42:36 1990 +Comment UniqueID 32820 +Comment VMusage 34139 41031 +FontName ZapfChancery-Italic +FullName ITC Zapf Chancery Italic +FamilyName ITC Zapf Chancery +Weight Roman +ItalicAngle -12 +IsFixedPitch false +FontBBox -257 -314 1007 831 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved.ITC Zapf Chancery is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 708 +XHeight 438 +Ascender 714 +Descender -314 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 278 ; N exclam ; B 28 -14 262 610 ; +C 34 ; WX 333 ; N quotedbl ; B 95 343 308 610 ; +C 35 ; WX 500 ; N numbersign ; B 31 0 469 594 ; +C 36 ; WX 500 ; N dollar ; B -4 -144 444 709 ; +C 37 ; WX 667 ; N percent ; B 40 -160 618 700 ; +C 38 ; WX 778 ; N ampersand ; B 29 -16 818 610 ; +C 39 ; WX 222 ; N quoteright ; B 55 343 225 610 ; +C 40 ; WX 333 ; N parenleft ; B 66 -216 381 664 ; +C 41 ; WX 333 ; N parenright ; B -39 -216 276 664 ; +C 42 ; WX 444 ; N asterisk ; B 69 263 409 610 ; +C 43 ; WX 600 ; N plus ; B 47 0 553 506 ; +C 44 ; WX 250 ; N comma ; B -46 -140 142 148 ; +C 45 ; WX 333 ; N hyphen ; B 34 190 299 248 ; +C 46 ; WX 250 ; N period ; B 26 -14 152 128 ; +C 47 ; WX 278 ; N slash ; B -53 -16 331 610 ; +C 48 ; WX 500 ; N zero ; B 19 -16 478 610 ; +C 49 ; WX 500 ; N one ; B 0 0 387 610 ; +C 50 ; WX 500 ; N two ; B -36 -16 432 610 ; +C 51 ; WX 500 ; N three ; B -59 -16 425 610 ; +C 52 ; WX 500 ; N four ; B 5 -35 427 610 ; +C 53 ; WX 500 ; N five ; B -8 -16 527 679 ; +C 54 ; WX 500 ; N six ; B 32 -16 498 610 ; +C 55 ; WX 500 ; N seven ; B 97 -33 501 645 ; +C 56 ; WX 500 ; N eight ; B 6 -16 470 610 ; +C 57 ; WX 500 ; N nine ; B -21 -16 464 610 ; +C 58 ; WX 250 ; N colon ; B 26 -14 224 438 ; +C 59 ; WX 250 ; N semicolon ; B -46 -140 224 438 ; +C 60 ; WX 600 ; N less ; B 47 -9 553 515 ; +C 61 ; WX 600 ; N equal ; B 47 126 553 380 ; +C 62 ; WX 600 ; N greater ; B 47 -9 553 515 ; +C 63 ; WX 333 ; N question ; B 52 -14 357 610 ; +C 64 ; WX 800 ; N at ; B 87 -16 713 610 ; +C 65 ; WX 611 ; N A ; B -82 -16 602 632 ; +C 66 ; WX 667 ; N B ; B 26 -6 615 640 ; +C 67 ; WX 556 ; N C ; B 21 -16 559 610 ; +C 68 ; WX 722 ; N D ; B 16 -6 698 640 ; +C 69 ; WX 667 ; N E ; B 27 -12 645 618 ; +C 70 ; WX 500 ; N F ; B -73 -118 600 629 ; +C 71 ; WX 556 ; N G ; B 11 -242 572 610 ; +C 72 ; WX 722 ; N H ; B -38 -16 822 708 ; +C 73 ; WX 333 ; N I ; B -37 0 368 594 ; +C 74 ; WX 389 ; N J ; B -129 -147 423 594 ; +C 75 ; WX 667 ; N K ; B -27 -153 764 610 ; +C 76 ; WX 556 ; N L ; B -81 -16 523 610 ; +C 77 ; WX 833 ; N M ; B -29 -16 933 722 ; +C 78 ; WX 722 ; N N ; B -6 -168 824 708 ; +C 79 ; WX 611 ; N O ; B 21 -16 587 610 ; +C 80 ; WX 611 ; N P ; B -1 0 615 628 ; +C 81 ; WX 611 ; N Q ; B 21 -177 712 610 ; +C 82 ; WX 611 ; N R ; B -39 -168 708 640 ; +C 83 ; WX 444 ; N S ; B -82 -81 431 610 ; +C 84 ; WX 611 ; N T ; B 20 0 701 667 ; +C 85 ; WX 722 ; N U ; B 22 -16 688 617 ; +C 86 ; WX 611 ; N V ; B 11 -16 697 714 ; +C 87 ; WX 889 ; N W ; B 3 -16 955 723 ; +C 88 ; WX 556 ; N X ; B -119 -16 610 610 ; +C 89 ; WX 611 ; N Y ; B -22 -168 711 647 ; +C 90 ; WX 611 ; N Z ; B -43 -19 584 624 ; +C 91 ; WX 333 ; N bracketleft ; B 1 -207 419 655 ; +C 92 ; WX 278 ; N backslash ; B -53 -16 331 610 ; +C 93 ; WX 333 ; N bracketright ; B -76 -207 342 655 ; +C 94 ; WX 600 ; N asciicircum ; B 90 229 510 594 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 222 ; N quoteleft ; B 80 343 250 610 ; +C 97 ; WX 389 ; N a ; B -6 -15 387 438 ; +C 98 ; WX 389 ; N b ; B -21 -23 389 714 ; +C 99 ; WX 333 ; N c ; B -6 -14 313 438 ; +C 100 ; WX 389 ; N d ; B -6 -14 543 714 ; +C 101 ; WX 333 ; N e ; B -6 -14 310 438 ; +C 102 ; WX 278 ; N f ; B -228 -314 438 714 ; L i fi ; L l fl ; +C 103 ; WX 389 ; N g ; B -192 -314 419 438 ; +C 104 ; WX 444 ; N h ; B -20 -14 449 714 ; +C 105 ; WX 278 ; N i ; B 28 -14 278 635 ; +C 106 ; WX 222 ; N j ; B -228 -314 247 635 ; +C 107 ; WX 407 ; N k ; B -6 -184 535 714 ; +C 108 ; WX 222 ; N l ; B 16 -14 394 714 ; +C 109 ; WX 667 ; N m ; B 14 -14 662 438 ; +C 110 ; WX 444 ; N n ; B 9 -14 452 438 ; +C 111 ; WX 389 ; N o ; B -6 -14 356 438 ; +C 112 ; WX 389 ; N p ; B -140 -314 367 432 ; +C 113 ; WX 389 ; N q ; B -6 -300 397 510 ; +C 114 ; WX 278 ; N r ; B 5 -14 328 438 ; +C 115 ; WX 333 ; N s ; B -40 -14 317 438 ; +C 116 ; WX 278 ; N t ; B -2 -14 318 539 ; +C 117 ; WX 444 ; N u ; B 9 -14 435 438 ; +C 118 ; WX 444 ; N v ; B -1 -14 445 488 ; +C 119 ; WX 667 ; N w ; B -14 -14 681 488 ; +C 120 ; WX 389 ; N x ; B -33 -195 486 438 ; +C 121 ; WX 389 ; N y ; B -117 -314 390 438 ; +C 122 ; WX 389 ; N z ; B -99 -14 383 445 ; +C 123 ; WX 333 ; N braceleft ; B 40 -207 368 655 ; +C 124 ; WX 222 ; N bar ; B 82 -16 140 714 ; +C 125 ; WX 333 ; N braceright ; B -35 -207 293 655 ; +C 126 ; WX 600 ; N asciitilde ; B 69 186 531 320 ; +C 161 ; WX 278 ; N exclamdown ; B -4 -186 230 438 ; +C 162 ; WX 500 ; N cent ; B 35 -134 389 543 ; +C 163 ; WX 500 ; N sterling ; B -50 -52 472 610 ; +C 164 ; WX 167 ; N fraction ; B -167 -16 334 610 ; +C 165 ; WX 500 ; N yen ; B -21 -168 593 647 ; +C 166 ; WX 500 ; N florin ; B -131 -314 515 610 ; +C 167 ; WX 500 ; N section ; B 16 -215 477 610 ; +C 168 ; WX 500 ; N currency ; B 38 85 462 509 ; +C 169 ; WX 222 ; N quotesingle ; B 115 343 185 610 ; +C 170 ; WX 333 ; N quotedblleft ; B 67 343 362 610 ; +C 171 ; WX 389 ; N guillemotleft ; B 56 24 314 414 ; +C 172 ; WX 333 ; N guilsinglleft ; B 83 24 243 414 ; +C 173 ; WX 333 ; N guilsinglright ; B 53 24 213 414 ; +C 174 ; WX 444 ; N fi ; B -257 -314 472 714 ; +C 175 ; WX 444 ; N fl ; B -257 -314 537 714 ; +C 177 ; WX 500 ; N endash ; B -7 199 507 239 ; +C 178 ; WX 444 ; N dagger ; B 34 -37 464 610 ; +C 179 ; WX 444 ; N daggerdbl ; B 49 -59 444 610 ; +C 180 ; WX 250 ; N periodcentered ; B 74 208 176 310 ; +C 182 ; WX 600 ; N paragraph ; B 85 -199 618 594 ; +C 183 ; WX 500 ; N bullet ; B 102 149 398 445 ; +C 184 ; WX 222 ; N quotesinglbase ; B -37 -121 133 146 ; +C 185 ; WX 333 ; N quotedblbase ; B -24 -121 271 146 ; +C 186 ; WX 333 ; N quotedblright ; B 54 343 349 610 ; +C 187 ; WX 389 ; N guillemotright ; B 32 24 290 414 ; +C 188 ; WX 1000 ; N ellipsis ; B 104 -14 896 128 ; +C 189 ; WX 944 ; N perthousand ; B 31 -160 924 700 ; +C 191 ; WX 333 ; N questiondown ; B -44 -186 261 438 ; +C 193 ; WX 278 ; N grave ; B 133 492 279 659 ; +C 194 ; WX 278 ; N acute ; B 188 492 345 659 ; +C 195 ; WX 278 ; N circumflex ; B 111 492 331 659 ; +C 196 ; WX 278 ; N tilde ; B 102 543 381 619 ; +C 197 ; WX 278 ; N macron ; B 102 544 345 578 ; +C 198 ; WX 278 ; N breve ; B 125 522 373 631 ; +C 199 ; WX 278 ; N dotaccent ; B 176 522 268 610 ; +C 200 ; WX 278 ; N dieresis ; B 116 522 342 610 ; +C 202 ; WX 278 ; N ring ; B 200 483 376 659 ; +C 203 ; WX 278 ; N cedilla ; B -78 -191 94 6 ; +C 205 ; WX 278 ; N hungarumlaut ; B 88 492 375 659 ; +C 206 ; WX 278 ; N ogonek ; B -51 -191 144 6 ; +C 207 ; WX 278 ; N caron ; B 136 492 356 659 ; +C 208 ; WX 1000 ; N emdash ; B -7 199 1007 239 ; +C 225 ; WX 778 ; N AE ; B -64 -16 756 594 ; +C 227 ; WX 253 ; N ordfeminine ; B 22 338 297 610 ; +C 232 ; WX 556 ; N Lslash ; B -85 -16 523 610 ; +C 233 ; WX 611 ; N Oslash ; B -30 -78 638 672 ; +C 234 ; WX 889 ; N OE ; B 21 -16 867 610 ; +C 235 ; WX 253 ; N ordmasculine ; B 53 339 298 610 ; +C 241 ; WX 556 ; N ae ; B -13 -14 544 468 ; +C 245 ; WX 278 ; N dotlessi ; B 28 -14 257 438 ; +C 248 ; WX 222 ; N lslash ; B 0 -14 394 714 ; +C 249 ; WX 389 ; N oslash ; B -66 -64 428 488 ; +C 250 ; WX 556 ; N oe ; B -6 -14 544 438 ; +C 251 ; WX 444 ; N germandbls ; B -212 -314 457 714 ; +C -1 ; WX 333 ; N ecircumflex ; B -6 -14 359 659 ; +C -1 ; WX 333 ; N edieresis ; B -6 -14 370 610 ; +C -1 ; WX 389 ; N aacute ; B -6 -15 401 659 ; +C -1 ; WX 800 ; N registered ; B 87 -16 713 610 ; +C -1 ; WX 278 ; N icircumflex ; B 28 -14 321 659 ; +C -1 ; WX 444 ; N udieresis ; B 9 -14 435 610 ; +C -1 ; WX 389 ; N ograve ; B -6 -14 356 659 ; +C -1 ; WX 444 ; N uacute ; B 9 -14 435 659 ; +C -1 ; WX 444 ; N ucircumflex ; B 9 -14 435 659 ; +C -1 ; WX 611 ; N Aacute ; B -82 -16 602 811 ; +C -1 ; WX 278 ; N igrave ; B 28 -14 259 659 ; +C -1 ; WX 333 ; N Icircumflex ; B -37 0 368 801 ; +C -1 ; WX 333 ; N ccedilla ; B -31 -191 313 438 ; +C -1 ; WX 389 ; N adieresis ; B -6 -15 398 610 ; +C -1 ; WX 667 ; N Ecircumflex ; B 27 -12 645 801 ; +C -1 ; WX 333 ; N scaron ; B -40 -14 364 659 ; +C -1 ; WX 389 ; N thorn ; B -140 -314 403 714 ; +C -1 ; WX 990 ; N trademark ; B 44 187 963 594 ; +C -1 ; WX 333 ; N egrave ; B -6 -14 310 659 ; +C -1 ; WX 325 ; N threesuperior ; B 9 234 330 610 ; +C -1 ; WX 389 ; N zcaron ; B -99 -14 392 659 ; +C -1 ; WX 389 ; N atilde ; B -6 -15 437 619 ; +C -1 ; WX 389 ; N aring ; B -6 -15 387 659 ; +C -1 ; WX 389 ; N ocircumflex ; B -6 -14 367 659 ; +C -1 ; WX 667 ; N Edieresis ; B 27 -12 645 752 ; +C -1 ; WX 750 ; N threequarters ; B 9 -16 716 610 ; +C -1 ; WX 389 ; N ydieresis ; B -117 -314 390 610 ; +C -1 ; WX 389 ; N yacute ; B -117 -314 390 659 ; +C -1 ; WX 278 ; N iacute ; B 28 -14 335 659 ; +C -1 ; WX 611 ; N Acircumflex ; B -82 -16 602 811 ; +C -1 ; WX 722 ; N Uacute ; B 22 -16 688 801 ; +C -1 ; WX 333 ; N eacute ; B -6 -14 373 659 ; +C -1 ; WX 611 ; N Ograve ; B 21 -16 587 801 ; +C -1 ; WX 389 ; N agrave ; B -6 -15 387 659 ; +C -1 ; WX 722 ; N Udieresis ; B 22 -16 688 752 ; +C -1 ; WX 389 ; N acircumflex ; B -6 -15 387 659 ; +C -1 ; WX 333 ; N Igrave ; B -37 0 368 801 ; +C -1 ; WX 325 ; N twosuperior ; B 16 234 330 610 ; +C -1 ; WX 722 ; N Ugrave ; B 22 -16 688 801 ; +C -1 ; WX 750 ; N onequarter ; B 30 -16 716 610 ; +C -1 ; WX 722 ; N Ucircumflex ; B 22 -16 688 801 ; +C -1 ; WX 444 ; N Scaron ; B -82 -81 439 801 ; +C -1 ; WX 333 ; N Idieresis ; B -37 0 370 752 ; +C -1 ; WX 278 ; N idieresis ; B 28 -14 332 610 ; +C -1 ; WX 667 ; N Egrave ; B 27 -12 645 801 ; +C -1 ; WX 611 ; N Oacute ; B 21 -16 587 801 ; +C -1 ; WX 600 ; N divide ; B 47 -14 553 520 ; +C -1 ; WX 611 ; N Atilde ; B -82 -16 602 771 ; +C -1 ; WX 611 ; N Aring ; B -82 -16 602 831 ; +C -1 ; WX 611 ; N Odieresis ; B 21 -16 587 752 ; +C -1 ; WX 611 ; N Adieresis ; B -82 -16 602 762 ; +C -1 ; WX 722 ; N Ntilde ; B -6 -168 824 761 ; +C -1 ; WX 611 ; N Zcaron ; B -43 -19 584 801 ; +C -1 ; WX 611 ; N Thorn ; B -5 0 590 623 ; +C -1 ; WX 333 ; N Iacute ; B -37 0 373 801 ; +C -1 ; WX 600 ; N plusminus ; B 47 0 553 506 ; +C -1 ; WX 600 ; N multiply ; B 73 26 527 480 ; +C -1 ; WX 667 ; N Eacute ; B 27 -12 645 801 ; +C -1 ; WX 611 ; N Ydieresis ; B -22 -168 711 752 ; +C -1 ; WX 325 ; N onesuperior ; B 30 244 284 610 ; +C -1 ; WX 444 ; N ugrave ; B 9 -14 435 659 ; +C -1 ; WX 600 ; N logicalnot ; B 47 126 553 380 ; +C -1 ; WX 444 ; N ntilde ; B 9 -14 452 619 ; +C -1 ; WX 611 ; N Otilde ; B 21 -16 587 761 ; +C -1 ; WX 389 ; N otilde ; B -6 -14 417 619 ; +C -1 ; WX 556 ; N Ccedilla ; B 21 -191 559 610 ; +C -1 ; WX 611 ; N Agrave ; B -82 -16 602 811 ; +C -1 ; WX 750 ; N onehalf ; B 30 -16 716 610 ; +C -1 ; WX 722 ; N Eth ; B 16 -6 698 640 ; +C -1 ; WX 400 ; N degree ; B 101 324 387 610 ; +C -1 ; WX 611 ; N Yacute ; B -22 -168 711 801 ; +C -1 ; WX 611 ; N Ocircumflex ; B 21 -16 587 801 ; +C -1 ; WX 389 ; N oacute ; B -6 -14 381 659 ; +C -1 ; WX 444 ; N mu ; B -81 -314 435 438 ; +C -1 ; WX 600 ; N minus ; B 47 224 553 282 ; +C -1 ; WX 389 ; N eth ; B -6 -14 429 714 ; +C -1 ; WX 389 ; N odieresis ; B -6 -14 378 610 ; +C -1 ; WX 800 ; N copyright ; B 87 -16 713 610 ; +C -1 ; WX 222 ; N brokenbar ; B 82 -16 140 714 ; +EndCharMetrics +StartKernData +StartKernPairs 105 + +KPX A quoteright -55 +KPX A quotedblright -55 + +KPX B period -75 +KPX B comma -75 + +KPX D period -75 +KPX D comma -75 + +KPX F period -111 +KPX F comma -111 + +KPX G period -75 +KPX G comma -50 + +KPX J period -75 +KPX J comma -75 + +KPX L quoteright -60 +KPX L quotedblright -60 +KPX L Y -75 +KPX L W -75 +KPX L V -75 +KPX L T -75 + +KPX N comma 175 + +KPX O period -75 +KPX O comma -75 + +KPX P period -92 +KPX P comma -92 + +KPX Q comma 190 + +KPX S period -74 +KPX S comma -74 + +KPX T y -74 +KPX T w -74 +KPX T u -74 +KPX T semicolon -74 +KPX T r -74 +KPX T period -74 +KPX T o -74 +KPX T i -74 +KPX T hyphen -74 +KPX T e -74 +KPX T comma -74 +KPX T colon -74 +KPX T a -74 + +KPX U period -40 +KPX U comma -40 + +KPX V semicolon -18 +KPX V period -111 +KPX V o -18 +KPX V hyphen -37 +KPX V e -18 +KPX V comma -111 +KPX V colon -18 +KPX V a -18 + +KPX W period -92 +KPX W comma -92 + +KPX Y u -37 +KPX Y semicolon -74 +KPX Y period -111 +KPX Y o -55 +KPX Y i -55 +KPX Y hyphen -55 +KPX Y e -55 +KPX Y comma -111 +KPX Y colon -74 +KPX Y a -55 + +KPX b period -75 +KPX b comma -75 + +KPX c period -40 +KPX c comma -40 + +KPX colon space -37 + +KPX comma space -37 +KPX comma quoteright -75 +KPX comma quotedblright -75 + +KPX d period -40 +KPX d comma -40 + +KPX e period -40 +KPX e comma -40 + +KPX f quoteright 18 +KPX f quotedblright 18 +KPX f period -75 +KPX f f -18 +KPX f comma -75 + +KPX g period -50 +KPX g comma -50 + +KPX period quoteright -75 +KPX period quotedblright -75 + +KPX quoteleft quoteleft -97 + +KPX quoteright s -37 +KPX quoteright quoteright -97 +KPX quoteright d -18 + +KPX r y 18 +KPX r v 18 +KPX r period -74 +KPX r n 18 +KPX r hyphen -37 +KPX r comma -74 + +KPX space quoteleft -37 +KPX space quotedblleft -37 +KPX space Y -37 +KPX space W -37 +KPX space V -37 +KPX space T -37 +KPX space A -37 + +KPX v period -55 +KPX v comma -55 + +KPX w period -55 +KPX w comma -55 + +KPX y period -18 +KPX y comma -18 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 187 152 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 187 152 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 187 152 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 187 152 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 167 172 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 187 152 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 245 142 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 245 142 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 245 142 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 245 142 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 28 142 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 28 142 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 28 142 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 28 142 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 272 142 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 167 142 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 167 142 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 167 142 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 167 142 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 167 142 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 83 142 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 237 142 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 237 142 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 237 142 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 237 142 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 167 142 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 167 142 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 167 142 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 56 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 56 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 56 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 36 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 6 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 56 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 28 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 28 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 28 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 8 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -10 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -10 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -10 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -20 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 63 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 36 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 36 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 36 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 26 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 36 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 8 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 53 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 63 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 63 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 63 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 36 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 36 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 36 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-It+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-It+ new file mode 100755 index 0000000000000..44446feb99676 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-It+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 556 ; N Ccaron ; B 21 -16 582 815 ; +C -1 ; WX 333 ; N ccaron ; B -6 -14 399 659 ; +C -1 ; WX 722 ; N Dcaron ; B 16 -6 698 815 ; +C -1 ; WX 508 ; N dcaron ; B -6 -14 730 785 ; +C -1 ; WX 667 ; N Ecaron ; B 27 -12 645 815 ; +C -1 ; WX 333 ; N ecaron ; B -6 -14 383 659 ; +C -1 ; WX 556 ; N Lcaron ; B -81 -16 555 653 ; +C -1 ; WX 556 ; N Lacute ; B -81 -16 523 815 ; +C -1 ; WX 341 ; N lcaron ; B 16 -14 581 785 ; +C -1 ; WX 222 ; N lacute ; B 16 -14 394 815 ; +C -1 ; WX 722 ; N Ncaron ; B -6 -168 824 815 ; +C -1 ; WX 444 ; N ncaron ; B 9 -14 452 659 ; +C -1 ; WX 611 ; N Rcaron ; B -39 -168 708 815 ; +C -1 ; WX 611 ; N Racute ; B -39 -168 708 815 ; +C -1 ; WX 278 ; N rcaron ; B 5 -14 356 659 ; +C -1 ; WX 278 ; N racute ; B 5 -14 361 659 ; +C -1 ; WX 611 ; N Tcaron ; B 20 0 701 815 ; +C -1 ; WX 397 ; N tcaron ; B -2 -14 505 610 ; +C -1 ; WX 722 ; N Uring ; B 22 -16 688 815 ; +C -1 ; WX 444 ; N uring ; B 9 -14 459 659 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 226 156 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 43 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 255 156 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 505 175 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 227 156 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 27 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 330 43 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 172 156 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 356 175 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 21 156 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 255 156 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 83 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 199 156 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 229 156 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 16 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 199 156 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 280 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 255 156 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 83 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Lt b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Lt new file mode 100755 index 0000000000000..0f1f3f7f3af3e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Lt @@ -0,0 +1,481 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu Sep 6 11:50:57 1990 +Comment UniqueID 32823 +Comment VMusage 33216 40108 +FontName ZapfChancery-Light +FullName ITC Zapf Chancery Light +FamilyName ITC Zapf Chancery +Weight Light +ItalicAngle 0 +IsFixedPitch false +FontBBox -173 -314 1006 808 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved.ITC Zapf Chancery is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 594 +XHeight 434 +Ascender 714 +Descender -300 +StartCharMetrics 228 +C 32 ; WX 222 ; N space ; B 0 0 0 0 ; +C 33 ; WX 278 ; N exclam ; B 73 -14 197 610 ; +C 34 ; WX 333 ; N quotedbl ; B 71 350 262 610 ; +C 35 ; WX 444 ; N numbersign ; B 1 0 443 594 ; +C 36 ; WX 444 ; N dollar ; B 17 -146 375 714 ; +C 37 ; WX 667 ; N percent ; B 59 -137 608 696 ; +C 38 ; WX 778 ; N ampersand ; B 31 -16 747 554 ; +C 39 ; WX 222 ; N quoteright ; B 62 350 184 610 ; +C 40 ; WX 333 ; N parenleft ; B 90 -213 304 669 ; +C 41 ; WX 333 ; N parenright ; B 29 -213 243 669 ; +C 42 ; WX 444 ; N asterisk ; B 66 260 389 610 ; +C 43 ; WX 600 ; N plus ; B 47 0 553 506 ; +C 44 ; WX 222 ; N comma ; B -12 -146 146 152 ; +C 45 ; WX 333 ; N hyphen ; B 40 197 293 241 ; +C 46 ; WX 222 ; N period ; B 56 -14 166 108 ; +C 47 ; WX 278 ; N slash ; B -48 -16 326 610 ; +C 48 ; WX 444 ; N zero ; B 38 -16 406 610 ; +C 49 ; WX 444 ; N one ; B 21 -3 423 610 ; +C 50 ; WX 444 ; N two ; B -37 -16 451 610 ; +C 51 ; WX 444 ; N three ; B -15 -16 375 610 ; +C 52 ; WX 444 ; N four ; B -11 -26 466 610 ; +C 53 ; WX 444 ; N five ; B 1 -16 436 670 ; +C 54 ; WX 444 ; N six ; B 33 -16 433 610 ; +C 55 ; WX 444 ; N seven ; B 50 -16 439 663 ; +C 56 ; WX 444 ; N eight ; B 16 -16 396 610 ; +C 57 ; WX 444 ; N nine ; B 1 -16 402 610 ; +C 58 ; WX 222 ; N colon ; B 56 -14 178 434 ; +C 59 ; WX 222 ; N semicolon ; B -12 -146 178 434 ; +C 60 ; WX 600 ; N less ; B 47 -8 553 514 ; +C 61 ; WX 600 ; N equal ; B 47 134 553 372 ; +C 62 ; WX 600 ; N greater ; B 47 -8 553 514 ; +C 63 ; WX 333 ; N question ; B 75 -14 321 610 ; +C 64 ; WX 800 ; N at ; B 87 -16 713 610 ; +C 65 ; WX 611 ; N A ; B -75 -8 632 610 ; +C 66 ; WX 556 ; N B ; B -3 -3 497 597 ; +C 67 ; WX 556 ; N C ; B 40 -16 532 610 ; +C 68 ; WX 667 ; N D ; B -16 -3 627 597 ; +C 69 ; WX 556 ; N E ; B -1 0 555 597 ; +C 70 ; WX 444 ; N F ; B -1 0 454 597 ; +C 71 ; WX 611 ; N G ; B 40 -28 598 610 ; +C 72 ; WX 667 ; N H ; B -1 0 668 594 ; +C 73 ; WX 278 ; N I ; B -16 0 294 594 ; +C 74 ; WX 278 ; N J ; B -147 -218 294 594 ; +C 75 ; WX 611 ; N K ; B -16 -8 608 610 ; +C 76 ; WX 500 ; N L ; B -1 -3 501 594 ; +C 77 ; WX 778 ; N M ; B -16 -8 801 597 ; +C 78 ; WX 667 ; N N ; B 11 -16 681 594 ; +C 79 ; WX 667 ; N O ; B 40 -16 627 610 ; +C 80 ; WX 500 ; N P ; B -16 0 493 597 ; +C 81 ; WX 667 ; N Q ; B 40 -152 707 610 ; +C 82 ; WX 556 ; N R ; B -1 -8 591 597 ; +C 83 ; WX 444 ; N S ; B -8 -16 391 610 ; +C 84 ; WX 556 ; N T ; B 19 0 548 610 ; +C 85 ; WX 667 ; N U ; B 12 -16 666 594 ; +C 86 ; WX 500 ; N V ; B -20 -16 499 625 ; +C 87 ; WX 833 ; N W ; B -27 -16 832 625 ; +C 88 ; WX 556 ; N X ; B -63 -16 555 610 ; +C 89 ; WX 556 ; N Y ; B -42 0 598 610 ; +C 90 ; WX 611 ; N Z ; B 9 -42 634 604 ; +C 91 ; WX 333 ; N bracketleft ; B 84 -200 347 656 ; +C 92 ; WX 278 ; N backslash ; B -48 -16 326 610 ; +C 93 ; WX 333 ; N bracketright ; B -14 -200 249 656 ; +C 94 ; WX 600 ; N asciicircum ; B 93 227 507 594 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 222 ; N quoteleft ; B 78 350 200 610 ; +C 97 ; WX 389 ; N a ; B 26 -14 420 434 ; +C 98 ; WX 389 ; N b ; B 29 -14 351 714 ; +C 99 ; WX 333 ; N c ; B 26 -14 351 434 ; +C 100 ; WX 389 ; N d ; B 26 -14 478 714 ; +C 101 ; WX 333 ; N e ; B 26 -14 365 434 ; +C 102 ; WX 222 ; N f ; B -156 -314 352 714 ; L i fi ; L l fl ; +C 103 ; WX 389 ; N g ; B -55 -314 360 434 ; +C 104 ; WX 444 ; N h ; B 44 -14 476 714 ; +C 105 ; WX 222 ; N i ; B -13 -14 264 620 ; +C 106 ; WX 222 ; N j ; B -139 -314 169 620 ; +C 107 ; WX 389 ; N k ; B 33 -14 421 714 ; +C 108 ; WX 222 ; N l ; B 44 -14 297 714 ; +C 109 ; WX 667 ; N m ; B 4 -14 694 434 ; +C 110 ; WX 444 ; N n ; B -2 -14 476 434 ; +C 111 ; WX 389 ; N o ; B 26 -14 351 434 ; +C 112 ; WX 389 ; N p ; B -47 -300 351 434 ; +C 113 ; WX 389 ; N q ; B 26 -300 374 482 ; +C 114 ; WX 278 ; N r ; B -2 -14 296 434 ; +C 115 ; WX 333 ; N s ; B 3 -14 285 434 ; +C 116 ; WX 278 ; N t ; B -19 -14 297 539 ; +C 117 ; WX 444 ; N u ; B -2 -14 476 434 ; +C 118 ; WX 389 ; N v ; B -30 -14 366 446 ; +C 119 ; WX 667 ; N w ; B -12 -14 644 446 ; +C 120 ; WX 444 ; N x ; B -6 -94 457 434 ; +C 121 ; WX 389 ; N y ; B -125 -314 382 446 ; +C 122 ; WX 333 ; N z ; B -53 -14 360 434 ; +C 123 ; WX 333 ; N braceleft ; B 76 -200 310 656 ; +C 124 ; WX 222 ; N bar ; B 89 -16 133 714 ; +C 125 ; WX 333 ; N braceright ; B 23 -200 257 656 ; +C 126 ; WX 600 ; N asciitilde ; B 69 189 531 317 ; +C 161 ; WX 278 ; N exclamdown ; B 77 -180 201 444 ; +C 162 ; WX 444 ; N cent ; B 65 -136 362 536 ; +C 163 ; WX 444 ; N sterling ; B -15 -46 436 610 ; +C 164 ; WX 167 ; N fraction ; B -166 -16 333 610 ; +C 165 ; WX 444 ; N yen ; B -34 0 478 610 ; +C 166 ; WX 444 ; N florin ; B -173 -314 466 610 ; +C 167 ; WX 500 ; N section ; B 76 -216 415 610 ; +C 168 ; WX 444 ; N currency ; B 18 92 426 500 ; +C 169 ; WX 222 ; N quotesingle ; B 98 350 160 610 ; +C 170 ; WX 333 ; N quotedblleft ; B 74 350 320 610 ; +C 171 ; WX 444 ; N guillemotleft ; B 82 25 340 413 ; +C 172 ; WX 333 ; N guilsinglleft ; B 82 25 236 413 ; +C 173 ; WX 333 ; N guilsinglright ; B 97 25 251 413 ; +C 174 ; WX 444 ; N fi ; B -156 -314 470 714 ; +C 175 ; WX 444 ; N fl ; B -156 -314 485 714 ; +C 177 ; WX 500 ; N endash ; B -6 200 506 238 ; +C 178 ; WX 444 ; N dagger ; B 16 -40 428 610 ; +C 179 ; WX 444 ; N daggerdbl ; B 52 -40 381 610 ; +C 180 ; WX 222 ; N periodcentered ; B 68 226 154 312 ; +C 182 ; WX 600 ; N paragraph ; B 122 -200 514 594 ; +C 183 ; WX 500 ; N bullet ; B 102 149 398 445 ; +C 184 ; WX 222 ; N quotesinglbase ; B 25 -108 147 152 ; +C 185 ; WX 333 ; N quotedblbase ; B 25 -108 274 152 ; +C 186 ; WX 333 ; N quotedblright ; B 53 350 299 610 ; +C 187 ; WX 444 ; N guillemotright ; B 104 25 362 413 ; +C 188 ; WX 1000 ; N ellipsis ; B 112 -14 888 108 ; +C 189 ; WX 944 ; N perthousand ; B 42 -137 902 696 ; +C 191 ; WX 333 ; N questiondown ; B 12 -180 258 444 ; +C 193 ; WX 222 ; N grave ; B 50 480 194 654 ; +C 194 ; WX 222 ; N acute ; B 101 480 245 654 ; +C 195 ; WX 222 ; N circumflex ; B 32 480 234 654 ; +C 196 ; WX 222 ; N tilde ; B 19 534 291 620 ; +C 197 ; WX 222 ; N macron ; B 36 538 254 564 ; +C 198 ; WX 222 ; N breve ; B 47 523 286 623 ; +C 199 ; WX 222 ; N dotaccent ; B 104 512 190 610 ; +C 200 ; WX 222 ; N dieresis ; B 42 512 255 610 ; +C 202 ; WX 222 ; N ring ; B 56 480 224 648 ; +C 203 ; WX 222 ; N cedilla ; B -16 -190 137 6 ; +C 205 ; WX 222 ; N hungarumlaut ; B 17 480 292 654 ; +C 206 ; WX 222 ; N ogonek ; B -7 -190 169 0 ; +C 207 ; WX 222 ; N caron ; B 65 480 267 656 ; +C 208 ; WX 1000 ; N emdash ; B -6 200 1006 238 ; +C 225 ; WX 778 ; N AE ; B -23 -16 774 597 ; +C 227 ; WX 253 ; N ordfeminine ; B 33 342 292 610 ; +C 232 ; WX 500 ; N Lslash ; B -1 -3 501 594 ; +C 233 ; WX 667 ; N Oslash ; B 22 -85 627 678 ; +C 234 ; WX 889 ; N OE ; B 40 -16 885 610 ; +C 235 ; WX 253 ; N ordmasculine ; B 30 342 251 610 ; +C 241 ; WX 556 ; N ae ; B 26 -14 579 468 ; +C 245 ; WX 222 ; N dotlessi ; B -13 -14 264 434 ; +C 248 ; WX 222 ; N lslash ; B -4 -14 297 714 ; +C 249 ; WX 389 ; N oslash ; B -15 -70 378 491 ; +C 250 ; WX 556 ; N oe ; B 26 -14 579 434 ; +C 251 ; WX 444 ; N germandbls ; B -139 -314 403 714 ; +C -1 ; WX 333 ; N ecircumflex ; B 26 -14 365 654 ; +C -1 ; WX 333 ; N edieresis ; B 26 -14 365 610 ; +C -1 ; WX 389 ; N aacute ; B 26 -14 420 654 ; +C -1 ; WX 800 ; N registered ; B 87 -16 713 610 ; +C -1 ; WX 222 ; N icircumflex ; B -13 -14 264 654 ; +C -1 ; WX 444 ; N udieresis ; B -2 -14 476 610 ; +C -1 ; WX 389 ; N ograve ; B 26 -14 351 654 ; +C -1 ; WX 444 ; N uacute ; B -2 -14 476 654 ; +C -1 ; WX 444 ; N ucircumflex ; B -2 -14 476 654 ; +C -1 ; WX 611 ; N Aacute ; B -75 -8 632 806 ; +C -1 ; WX 222 ; N igrave ; B -13 -14 264 654 ; +C -1 ; WX 278 ; N Icircumflex ; B -16 0 294 806 ; +C -1 ; WX 333 ; N ccedilla ; B 26 -190 351 434 ; +C -1 ; WX 389 ; N adieresis ; B 26 -14 420 610 ; +C -1 ; WX 556 ; N Ecircumflex ; B -1 0 555 806 ; +C -1 ; WX 333 ; N scaron ; B 3 -14 323 656 ; +C -1 ; WX 389 ; N thorn ; B -73 -300 351 714 ; +C -1 ; WX 990 ; N trademark ; B 44 187 954 594 ; +C -1 ; WX 333 ; N egrave ; B 26 -14 365 654 ; +C -1 ; WX 289 ; N threesuperior ; B 4 234 265 610 ; +C -1 ; WX 333 ; N zcaron ; B -53 -14 360 656 ; +C -1 ; WX 389 ; N atilde ; B 26 -14 420 620 ; +C -1 ; WX 389 ; N aring ; B 26 -14 420 648 ; +C -1 ; WX 389 ; N ocircumflex ; B 26 -14 351 654 ; +C -1 ; WX 556 ; N Edieresis ; B -1 0 555 762 ; +C -1 ; WX 666 ; N threequarters ; B 4 -16 675 610 ; +C -1 ; WX 389 ; N ydieresis ; B -125 -314 382 610 ; +C -1 ; WX 389 ; N yacute ; B -125 -314 382 654 ; +C -1 ; WX 222 ; N iacute ; B -13 -14 264 654 ; +C -1 ; WX 611 ; N Acircumflex ; B -75 -8 632 806 ; +C -1 ; WX 667 ; N Uacute ; B 12 -16 666 806 ; +C -1 ; WX 333 ; N eacute ; B 26 -14 365 654 ; +C -1 ; WX 667 ; N Ograve ; B 40 -16 627 806 ; +C -1 ; WX 389 ; N agrave ; B 26 -14 420 654 ; +C -1 ; WX 667 ; N Udieresis ; B 12 -16 666 762 ; +C -1 ; WX 389 ; N acircumflex ; B 26 -14 420 654 ; +C -1 ; WX 278 ; N Igrave ; B -16 0 294 806 ; +C -1 ; WX 289 ; N twosuperior ; B -24 234 299 610 ; +C -1 ; WX 667 ; N Ugrave ; B 12 -16 666 806 ; +C -1 ; WX 666 ; N onequarter ; B 4 -16 675 610 ; +C -1 ; WX 667 ; N Ucircumflex ; B 12 -16 666 806 ; +C -1 ; WX 444 ; N Scaron ; B -8 -16 396 808 ; +C -1 ; WX 278 ; N Idieresis ; B -16 0 294 762 ; +C -1 ; WX 222 ; N idieresis ; B -13 -14 264 610 ; +C -1 ; WX 556 ; N Egrave ; B -1 0 555 806 ; +C -1 ; WX 667 ; N Oacute ; B 40 -16 627 806 ; +C -1 ; WX 600 ; N divide ; B 47 -10 553 516 ; +C -1 ; WX 611 ; N Atilde ; B -75 -8 632 772 ; +C -1 ; WX 611 ; N Aring ; B -75 -8 632 800 ; +C -1 ; WX 667 ; N Odieresis ; B 40 -16 627 762 ; +C -1 ; WX 611 ; N Adieresis ; B -75 -8 632 762 ; +C -1 ; WX 667 ; N Ntilde ; B 11 -16 681 772 ; +C -1 ; WX 611 ; N Zcaron ; B 9 -42 634 808 ; +C -1 ; WX 500 ; N Thorn ; B -16 0 490 594 ; +C -1 ; WX 278 ; N Iacute ; B -16 0 294 806 ; +C -1 ; WX 600 ; N plusminus ; B 47 0 553 506 ; +C -1 ; WX 600 ; N multiply ; B 77 27 523 479 ; +C -1 ; WX 556 ; N Eacute ; B -1 0 555 806 ; +C -1 ; WX 556 ; N Ydieresis ; B -42 0 598 762 ; +C -1 ; WX 289 ; N onesuperior ; B 11 244 278 610 ; +C -1 ; WX 444 ; N ugrave ; B -2 -14 476 654 ; +C -1 ; WX 600 ; N logicalnot ; B 47 108 553 372 ; +C -1 ; WX 444 ; N ntilde ; B -2 -14 476 620 ; +C -1 ; WX 667 ; N Otilde ; B 40 -16 627 772 ; +C -1 ; WX 389 ; N otilde ; B 26 -14 375 620 ; +C -1 ; WX 556 ; N Ccedilla ; B 40 -190 532 610 ; +C -1 ; WX 611 ; N Agrave ; B -75 -8 632 806 ; +C -1 ; WX 666 ; N onehalf ; B 4 -16 675 610 ; +C -1 ; WX 667 ; N Eth ; B -16 -3 627 597 ; +C -1 ; WX 400 ; N degree ; B 57 324 343 610 ; +C -1 ; WX 556 ; N Yacute ; B -42 0 598 806 ; +C -1 ; WX 667 ; N Ocircumflex ; B 40 -16 627 806 ; +C -1 ; WX 389 ; N oacute ; B 26 -14 351 654 ; +C -1 ; WX 444 ; N mu ; B -2 -314 476 434 ; +C -1 ; WX 600 ; N minus ; B 47 231 553 275 ; +C -1 ; WX 389 ; N eth ; B 26 -14 371 714 ; +C -1 ; WX 389 ; N odieresis ; B 26 -14 351 610 ; +C -1 ; WX 800 ; N copyright ; B 87 -16 713 610 ; +C -1 ; WX 222 ; N brokenbar ; B 89 -16 133 714 ; +EndCharMetrics +StartKernData +StartKernPairs 134 + +KPX A y -37 +KPX A w -37 +KPX A v -37 +KPX A quoteright -90 +KPX A quotedblright -90 +KPX A Y -55 +KPX A W -55 +KPX A V -55 +KPX A T -55 +KPX A Q -28 +KPX A O -28 +KPX A G -28 +KPX A C -28 + +KPX B period -37 +KPX B comma -37 + +KPX D period -37 +KPX D comma -37 +KPX D W 10 + +KPX F r -50 +KPX F period -111 +KPX F o -50 +KPX F i -18 +KPX F e -50 +KPX F comma -111 +KPX F a -50 +KPX F A -37 + +KPX G period -18 +KPX G comma -18 + +KPX J period -40 +KPX J comma -40 + +KPX K y -37 +KPX K u -37 +KPX K o -37 +KPX K e -37 +KPX K O -28 + +KPX L y -18 +KPX L quoteright -90 +KPX L quotedblright -90 +KPX L Y -55 +KPX L W -37 +KPX L V -37 +KPX L T -74 + +KPX N period -30 +KPX N comma -30 + +KPX O period -37 +KPX O comma -37 +KPX O W 10 +KPX O V 10 + +KPX P period -129 +KPX P comma -129 +KPX P A -18 + +KPX Q comma 20 + +KPX R W -18 +KPX R V -18 +KPX R T -18 + +KPX S period -37 +KPX S comma -37 + +KPX T y -55 +KPX T w -74 +KPX T u -55 +KPX T semicolon -74 +KPX T r -55 +KPX T period -92 +KPX T o -55 +KPX T i -18 +KPX T hyphen -74 +KPX T e -55 +KPX T comma -92 +KPX T colon -74 +KPX T a -55 +KPX T O -20 +KPX T A -37 + +KPX V period -111 +KPX V hyphen -18 +KPX V comma -111 +KPX V O 10 +KPX V G 10 +KPX V A -37 + +KPX W y 10 +KPX W period -111 +KPX W comma -111 +KPX W O 10 +KPX W A -37 + +KPX Y u -55 +KPX Y semicolon -74 +KPX Y period -111 +KPX Y o -74 +KPX Y i -25 +KPX Y hyphen -74 +KPX Y e -74 +KPX Y comma -111 +KPX Y colon -74 +KPX Y a -74 +KPX Y O -25 +KPX Y A -55 + +KPX b period -50 +KPX b comma -50 + +KPX colon space -37 + +KPX comma space -37 +KPX comma quoteright -25 +KPX comma quotedblright -25 + +KPX f quoteright 18 +KPX f period -40 +KPX f comma -20 + +KPX g period -40 +KPX g comma -20 + +KPX period quoteright -37 +KPX period quotedblright -37 + +KPX quotedblleft quoteleft -20 +KPX quotedblleft A -50 + +KPX quotedblright space -37 + +KPX quoteleft quoteleft -98 +KPX quoteleft A -50 + +KPX quoteright s -55 +KPX quoteright r -18 +KPX quoteright quoteright -98 +KPX quoteright quotedblright -20 +KPX quoteright d -50 + +KPX r period -74 +KPX r hyphen -37 +KPX r comma -74 + +KPX space quoteleft -37 +KPX space quotedblleft -37 +KPX space Y -37 +KPX space W -37 +KPX space V -37 +KPX space T -37 +KPX space A -37 + +KPX v period -74 +KPX v comma -74 + +KPX w period -74 +KPX w comma -74 + +KPX y period -74 +KPX y comma -74 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 189 152 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 189 152 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 189 152 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 189 152 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 189 152 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 189 152 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 161 152 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 152 152 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 152 152 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 161 152 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 46 152 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 46 152 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 38 152 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 46 152 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 211 152 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 247 152 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 247 152 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 238 152 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 247 152 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 238 152 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 129 152 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 205 152 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 205 152 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 205 152 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 205 152 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 167 152 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 167 152 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 165 152 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 72 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 72 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 72 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 72 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 72 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 72 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 80 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 80 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 80 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 80 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -18 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -18 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -18 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -18 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 91 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 84 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 84 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 84 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 84 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 84 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 56 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 99 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 99 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 81 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 91 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 78 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 78 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 36 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Lt+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Lt+ new file mode 100755 index 0000000000000..da81a6a24a19c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Lt+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 556 ; N Ccaron ; B 40 -16 532 824 ; +C -1 ; WX 333 ; N ccaron ; B 26 -14 351 656 ; +C -1 ; WX 667 ; N Dcaron ; B -16 -3 627 824 ; +C -1 ; WX 474 ; N dcaron ; B 26 -14 612 785 ; +C -1 ; WX 556 ; N Ecaron ; B -1 0 555 824 ; +C -1 ; WX 333 ; N ecaron ; B 26 -14 365 656 ; +C -1 ; WX 500 ; N Lcaron ; B -1 -3 501 653 ; +C -1 ; WX 500 ; N Lacute ; B -1 -3 501 822 ; +C -1 ; WX 307 ; N lcaron ; B 44 -14 431 785 ; +C -1 ; WX 222 ; N lacute ; B 44 -14 297 822 ; +C -1 ; WX 667 ; N Ncaron ; B 11 -16 681 824 ; +C -1 ; WX 444 ; N ncaron ; B -2 -14 476 656 ; +C -1 ; WX 556 ; N Rcaron ; B -1 -8 591 824 ; +C -1 ; WX 556 ; N Racute ; B -1 -8 591 822 ; +C -1 ; WX 278 ; N rcaron ; B -2 -14 296 656 ; +C -1 ; WX 278 ; N racute ; B -2 -14 296 654 ; +C -1 ; WX 556 ; N Tcaron ; B 19 0 548 824 ; +C -1 ; WX 363 ; N tcaron ; B -19 -14 431 610 ; +C -1 ; WX 667 ; N Uring ; B 12 -16 666 824 ; +C -1 ; WX 444 ; N uring ; B -2 -14 476 648 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 216 168 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 71 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 222 168 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 428 175 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 167 168 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 55 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 244 43 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 139 168 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 247 175 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 14 168 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 222 168 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 111 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 167 168 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 194 168 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 28 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 42 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 167 168 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 247 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 222 176 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 111 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-LtIt b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-LtIt new file mode 100755 index 0000000000000..eec80c0a7c82f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-LtIt @@ -0,0 +1,433 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu Sep 6 12:09:39 1990 +Comment UniqueID 32829 +Comment VMusage 31663 38555 +FontName ZapfChancery-LightItalic +FullName ITC Zapf Chancery Light Italic +FamilyName ITC Zapf Chancery +Weight Light +ItalicAngle -12 +IsFixedPitch false +FontBBox -260 -314 991 814 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved.ITC Zapf Chancery is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 714 +XHeight 434 +Ascender 714 +Descender -300 +StartCharMetrics 228 +C 32 ; WX 222 ; N space ; B 0 0 0 0 ; +C 33 ; WX 278 ; N exclam ; B 30 -14 259 610 ; +C 34 ; WX 333 ; N quotedbl ; B 111 350 302 610 ; +C 35 ; WX 444 ; N numbersign ; B 9 0 443 594 ; +C 36 ; WX 444 ; N dollar ; B -18 -152 403 706 ; +C 37 ; WX 667 ; N percent ; B 59 -137 609 696 ; +C 38 ; WX 778 ; N ampersand ; B 31 -16 822 610 ; +C 39 ; WX 222 ; N quoteright ; B 61 350 207 610 ; +C 40 ; WX 333 ; N parenleft ; B 75 -213 376 669 ; +C 41 ; WX 333 ; N parenright ; B -43 -213 258 669 ; +C 42 ; WX 444 ; N asterisk ; B 66 260 389 610 ; +C 43 ; WX 600 ; N plus ; B 47 0 553 506 ; +C 44 ; WX 222 ; N comma ; B -54 -122 121 142 ; +C 45 ; WX 333 ; N hyphen ; B 21 197 280 241 ; +C 46 ; WX 222 ; N period ; B 18 -14 122 102 ; +C 47 ; WX 278 ; N slash ; B -48 -16 326 610 ; +C 48 ; WX 444 ; N zero ; B 21 -18 423 610 ; +C 49 ; WX 444 ; N one ; B -28 0 366 610 ; +C 50 ; WX 444 ; N two ; B -41 -16 412 610 ; +C 51 ; WX 444 ; N three ; B -72 -16 378 610 ; +C 52 ; WX 444 ; N four ; B -6 -29 407 619 ; +C 53 ; WX 444 ; N five ; B -28 -16 490 672 ; +C 54 ; WX 444 ; N six ; B 24 -16 466 610 ; +C 55 ; WX 444 ; N seven ; B 50 -26 486 663 ; +C 56 ; WX 444 ; N eight ; B -2 -16 432 610 ; +C 57 ; WX 444 ; N nine ; B -22 -16 406 610 ; +C 58 ; WX 222 ; N colon ; B 18 -14 197 434 ; +C 59 ; WX 222 ; N semicolon ; B -54 -122 197 434 ; +C 60 ; WX 600 ; N less ; B 47 -8 553 514 ; +C 61 ; WX 600 ; N equal ; B 47 134 553 372 ; +C 62 ; WX 600 ; N greater ; B 47 -8 553 514 ; +C 63 ; WX 333 ; N question ; B 50 -14 351 610 ; +C 64 ; WX 800 ; N at ; B 87 -16 713 610 ; +C 65 ; WX 611 ; N A ; B -86 -16 587 627 ; +C 66 ; WX 611 ; N B ; B 10 -8 562 630 ; +C 67 ; WX 556 ; N C ; B 34 -16 566 610 ; +C 68 ; WX 722 ; N D ; B 10 0 686 630 ; +C 69 ; WX 667 ; N E ; B 10 -8 628 630 ; +C 70 ; WX 500 ; N F ; B -86 -127 603 619 ; +C 71 ; WX 556 ; N G ; B 10 -236 560 610 ; +C 72 ; WX 722 ; N H ; B -42 -16 825 714 ; +C 73 ; WX 333 ; N I ; B -27 0 360 594 ; +C 74 ; WX 389 ; N J ; B -159 -141 391 594 ; +C 75 ; WX 667 ; N K ; B -21 -158 767 610 ; +C 76 ; WX 556 ; N L ; B -71 -16 514 610 ; +C 77 ; WX 833 ; N M ; B -42 -16 938 706 ; +C 78 ; WX 722 ; N N ; B -9 -158 825 714 ; +C 79 ; WX 611 ; N O ; B 20 -16 583 610 ; +C 80 ; WX 611 ; N P ; B -2 0 608 618 ; +C 81 ; WX 611 ; N Q ; B 20 -175 709 610 ; +C 82 ; WX 611 ; N R ; B -30 -158 709 624 ; +C 83 ; WX 444 ; N S ; B -88 -80 432 610 ; +C 84 ; WX 611 ; N T ; B 20 0 704 676 ; +C 85 ; WX 722 ; N U ; B 20 -16 681 610 ; +C 86 ; WX 611 ; N V ; B 20 -16 699 725 ; +C 87 ; WX 889 ; N W ; B 0 -16 956 714 ; +C 88 ; WX 556 ; N X ; B -125 -16 595 610 ; +C 89 ; WX 611 ; N Y ; B -30 -170 713 642 ; +C 90 ; WX 611 ; N Z ; B -48 -16 575 627 ; +C 91 ; WX 333 ; N bracketleft ; B 2 -200 412 656 ; +C 92 ; WX 278 ; N backslash ; B -48 -16 326 610 ; +C 93 ; WX 333 ; N bracketright ; B -79 -200 331 656 ; +C 94 ; WX 600 ; N asciicircum ; B 93 227 507 594 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 222 ; N quoteleft ; B 92 350 238 610 ; +C 97 ; WX 389 ; N a ; B -5 -14 410 434 ; +C 98 ; WX 389 ; N b ; B -16 -14 396 714 ; +C 99 ; WX 333 ; N c ; B -5 -14 322 434 ; +C 100 ; WX 389 ; N d ; B -5 -14 548 714 ; +C 101 ; WX 333 ; N e ; B -5 -14 316 434 ; +C 102 ; WX 278 ; N f ; B -196 -314 436 714 ; L i fi ; L l fl ; +C 103 ; WX 389 ; N g ; B -188 -314 413 434 ; +C 104 ; WX 444 ; N h ; B -16 -14 461 714 ; +C 105 ; WX 278 ; N i ; B 28 -14 270 634 ; +C 106 ; WX 222 ; N j ; B -240 -314 237 634 ; +C 107 ; WX 407 ; N k ; B 0 -176 542 714 ; +C 108 ; WX 222 ; N l ; B 15 -14 388 714 ; +C 109 ; WX 667 ; N m ; B 9 -14 684 434 ; +C 110 ; WX 444 ; N n ; B 9 -14 461 434 ; +C 111 ; WX 389 ; N o ; B 0 -14 352 434 ; +C 112 ; WX 389 ; N p ; B -126 -300 365 434 ; +C 113 ; WX 389 ; N q ; B 0 -300 389 507 ; +C 114 ; WX 278 ; N r ; B 0 -8 331 434 ; +C 115 ; WX 333 ; N s ; B -33 -14 307 434 ; +C 116 ; WX 278 ; N t ; B -22 -14 302 535 ; +C 117 ; WX 444 ; N u ; B 12 -14 456 434 ; +C 118 ; WX 444 ; N v ; B -12 -14 446 500 ; +C 119 ; WX 667 ; N w ; B -12 -14 669 491 ; +C 120 ; WX 389 ; N x ; B -29 -192 491 434 ; +C 121 ; WX 389 ; N y ; B -137 -314 383 434 ; +C 122 ; WX 389 ; N z ; B -80 -14 390 443 ; +C 123 ; WX 333 ; N braceleft ; B 61 -200 387 656 ; +C 124 ; WX 222 ; N bar ; B 89 -16 133 714 ; +C 125 ; WX 333 ; N braceright ; B -54 -200 272 656 ; +C 126 ; WX 600 ; N asciitilde ; B 69 189 531 317 ; +C 161 ; WX 278 ; N exclamdown ; B -6 -180 223 444 ; +C 162 ; WX 444 ; N cent ; B 45 -146 376 548 ; +C 163 ; WX 444 ; N sterling ; B -64 -51 424 610 ; +C 164 ; WX 167 ; N fraction ; B -165 -16 332 610 ; +C 165 ; WX 444 ; N yen ; B -35 -170 519 642 ; +C 166 ; WX 444 ; N florin ; B -169 -314 465 610 ; +C 167 ; WX 500 ; N section ; B 44 -216 424 610 ; +C 168 ; WX 444 ; N currency ; B 18 92 426 500 ; +C 169 ; WX 222 ; N quotesingle ; B 118 350 180 610 ; +C 170 ; WX 333 ; N quotedblleft ; B 89 350 349 610 ; +C 171 ; WX 389 ; N guillemotleft ; B 67 25 322 413 ; +C 172 ; WX 333 ; N guilsinglleft ; B 82 25 240 413 ; +C 173 ; WX 333 ; N guilsinglright ; B 93 25 251 413 ; +C 174 ; WX 444 ; N fi ; B -260 -314 475 714 ; +C 175 ; WX 444 ; N fl ; B -260 -314 544 714 ; +C 177 ; WX 500 ; N endash ; B -27 200 491 238 ; +C 178 ; WX 444 ; N dagger ; B 12 -40 427 610 ; +C 179 ; WX 444 ; N daggerdbl ; B 43 -40 405 610 ; +C 180 ; WX 222 ; N periodcentered ; B 68 228 154 314 ; +C 182 ; WX 600 ; N paragraph ; B 70 -200 550 594 ; +C 183 ; WX 500 ; N bullet ; B 102 149 398 445 ; +C 184 ; WX 222 ; N quotesinglbase ; B -39 -118 107 142 ; +C 185 ; WX 333 ; N quotedblbase ; B -39 -118 221 142 ; +C 186 ; WX 333 ; N quotedblright ; B 61 350 321 610 ; +C 187 ; WX 389 ; N guillemotright ; B 67 25 322 413 ; +C 188 ; WX 1000 ; N ellipsis ; B 115 -14 885 102 ; +C 189 ; WX 944 ; N perthousand ; B 42 -137 905 696 ; +C 191 ; WX 333 ; N questiondown ; B -30 -180 271 444 ; +C 193 ; WX 278 ; N grave ; B 109 480 243 654 ; +C 194 ; WX 278 ; N acute ; B 156 480 302 654 ; +C 195 ; WX 278 ; N circumflex ; B 90 480 294 654 ; +C 196 ; WX 278 ; N tilde ; B 66 538 348 624 ; +C 197 ; WX 278 ; N macron ; B 88 538 308 564 ; +C 198 ; WX 278 ; N breve ; B 98 523 339 623 ; +C 199 ; WX 278 ; N dotaccent ; B 132 523 218 619 ; +C 200 ; WX 278 ; N dieresis ; B 97 523 305 619 ; +C 202 ; WX 278 ; N ring ; B 105 480 273 648 ; +C 203 ; WX 278 ; N cedilla ; B -49 -190 108 6 ; +C 205 ; WX 278 ; N hungarumlaut ; B 95 480 363 654 ; +C 206 ; WX 278 ; N ogonek ; B 48 -195 202 0 ; +C 207 ; WX 278 ; N caron ; B 90 480 294 654 ; +C 208 ; WX 1000 ; N emdash ; B -27 200 991 238 ; +C 225 ; WX 778 ; N AE ; B -81 -16 742 594 ; +C 227 ; WX 253 ; N ordfeminine ; B 48 342 326 610 ; +C 232 ; WX 556 ; N Lslash ; B -71 -16 514 610 ; +C 233 ; WX 611 ; N Oslash ; B -41 -78 625 672 ; +C 234 ; WX 889 ; N OE ; B 30 -16 853 610 ; +C 235 ; WX 253 ; N ordmasculine ; B 48 342 283 610 ; +C 241 ; WX 556 ; N ae ; B -5 -14 539 468 ; +C 245 ; WX 278 ; N dotlessi ; B 28 -14 257 434 ; +C 248 ; WX 222 ; N lslash ; B 0 -14 388 714 ; +C 249 ; WX 389 ; N oslash ; B -64 -61 418 481 ; +C 250 ; WX 556 ; N oe ; B -5 -14 539 434 ; +C 251 ; WX 444 ; N germandbls ; B -196 -314 444 714 ; +C -1 ; WX 333 ; N ecircumflex ; B -5 -14 345 654 ; +C -1 ; WX 333 ; N edieresis ; B -5 -14 356 619 ; +C -1 ; WX 389 ; N aacute ; B -5 -14 410 654 ; +C -1 ; WX 800 ; N registered ; B 87 -16 713 610 ; +C -1 ; WX 278 ; N icircumflex ; B 28 -14 308 654 ; +C -1 ; WX 444 ; N udieresis ; B 12 -14 456 619 ; +C -1 ; WX 389 ; N ograve ; B 0 -14 352 654 ; +C -1 ; WX 444 ; N uacute ; B 12 -14 456 654 ; +C -1 ; WX 444 ; N ucircumflex ; B 12 -14 456 654 ; +C -1 ; WX 611 ; N Aacute ; B -86 -16 587 806 ; +C -1 ; WX 278 ; N igrave ; B 28 -14 257 654 ; +C -1 ; WX 333 ; N Icircumflex ; B -27 0 368 806 ; +C -1 ; WX 333 ; N ccedilla ; B -5 -190 322 434 ; +C -1 ; WX 389 ; N adieresis ; B -5 -14 410 619 ; +C -1 ; WX 667 ; N Ecircumflex ; B 10 -8 628 806 ; +C -1 ; WX 333 ; N scaron ; B -33 -14 368 654 ; +C -1 ; WX 389 ; N thorn ; B -126 -300 370 714 ; +C -1 ; WX 990 ; N trademark ; B 44 187 954 594 ; +C -1 ; WX 333 ; N egrave ; B -5 -14 316 654 ; +C -1 ; WX 289 ; N threesuperior ; B -22 234 271 610 ; +C -1 ; WX 389 ; N zcaron ; B -80 -14 396 654 ; +C -1 ; WX 389 ; N atilde ; B -5 -14 427 624 ; +C -1 ; WX 389 ; N aring ; B -5 -14 410 648 ; +C -1 ; WX 389 ; N ocircumflex ; B 0 -14 362 654 ; +C -1 ; WX 667 ; N Edieresis ; B 10 -8 628 771 ; +C -1 ; WX 666 ; N threequarters ; B -22 -16 647 610 ; +C -1 ; WX 389 ; N ydieresis ; B -137 -314 383 619 ; +C -1 ; WX 389 ; N yacute ; B -137 -314 383 654 ; +C -1 ; WX 278 ; N iacute ; B 28 -14 316 654 ; +C -1 ; WX 611 ; N Acircumflex ; B -86 -16 587 806 ; +C -1 ; WX 722 ; N Uacute ; B 20 -16 681 806 ; +C -1 ; WX 333 ; N eacute ; B -5 -14 353 654 ; +C -1 ; WX 611 ; N Ograve ; B 20 -16 583 806 ; +C -1 ; WX 389 ; N agrave ; B -5 -14 410 654 ; +C -1 ; WX 722 ; N Udieresis ; B 20 -16 681 771 ; +C -1 ; WX 389 ; N acircumflex ; B -5 -14 410 654 ; +C -1 ; WX 333 ; N Igrave ; B -27 0 360 806 ; +C -1 ; WX 289 ; N twosuperior ; B 0 234 301 610 ; +C -1 ; WX 722 ; N Ugrave ; B 20 -16 681 806 ; +C -1 ; WX 666 ; N onequarter ; B 2 -16 647 610 ; +C -1 ; WX 722 ; N Ucircumflex ; B 20 -16 681 806 ; +C -1 ; WX 444 ; N Scaron ; B -88 -80 469 806 ; +C -1 ; WX 333 ; N Idieresis ; B -27 0 379 771 ; +C -1 ; WX 278 ; N idieresis ; B 28 -14 319 619 ; +C -1 ; WX 667 ; N Egrave ; B 10 -8 628 806 ; +C -1 ; WX 611 ; N Oacute ; B 20 -16 583 806 ; +C -1 ; WX 600 ; N divide ; B 47 -10 553 516 ; +C -1 ; WX 611 ; N Atilde ; B -86 -16 590 776 ; +C -1 ; WX 611 ; N Aring ; B -86 -16 587 814 ; +C -1 ; WX 611 ; N Odieresis ; B 20 -16 583 771 ; +C -1 ; WX 611 ; N Adieresis ; B -86 -16 587 771 ; +C -1 ; WX 722 ; N Ntilde ; B -9 -158 825 776 ; +C -1 ; WX 611 ; N Zcaron ; B -48 -16 575 806 ; +C -1 ; WX 611 ; N Thorn ; B -6 0 583 620 ; +C -1 ; WX 333 ; N Iacute ; B -27 0 376 806 ; +C -1 ; WX 600 ; N plusminus ; B 47 0 553 506 ; +C -1 ; WX 600 ; N multiply ; B 77 27 523 479 ; +C -1 ; WX 667 ; N Eacute ; B 10 -8 628 806 ; +C -1 ; WX 611 ; N Ydieresis ; B -30 -170 713 771 ; +C -1 ; WX 289 ; N onesuperior ; B 12 244 268 610 ; +C -1 ; WX 444 ; N ugrave ; B 12 -14 456 654 ; +C -1 ; WX 600 ; N logicalnot ; B 47 108 553 372 ; +C -1 ; WX 444 ; N ntilde ; B 9 -14 461 624 ; +C -1 ; WX 611 ; N Otilde ; B 20 -16 583 776 ; +C -1 ; WX 389 ; N otilde ; B 0 -14 416 624 ; +C -1 ; WX 556 ; N Ccedilla ; B 34 -190 566 610 ; +C -1 ; WX 611 ; N Agrave ; B -86 -16 587 806 ; +C -1 ; WX 666 ; N onehalf ; B 2 -16 649 610 ; +C -1 ; WX 722 ; N Eth ; B 10 0 686 630 ; +C -1 ; WX 400 ; N degree ; B 87 324 373 610 ; +C -1 ; WX 611 ; N Yacute ; B -30 -170 713 806 ; +C -1 ; WX 611 ; N Ocircumflex ; B 20 -16 583 806 ; +C -1 ; WX 389 ; N oacute ; B 0 -14 370 654 ; +C -1 ; WX 444 ; N mu ; B -46 -314 456 434 ; +C -1 ; WX 600 ; N minus ; B 47 231 553 275 ; +C -1 ; WX 389 ; N eth ; B 0 -14 412 714 ; +C -1 ; WX 389 ; N odieresis ; B 0 -14 373 619 ; +C -1 ; WX 800 ; N copyright ; B 87 -16 713 610 ; +C -1 ; WX 222 ; N brokenbar ; B 89 -16 133 714 ; +EndCharMetrics +StartKernData +StartKernPairs 94 + +KPX A quoteright -55 +KPX A quotedblright -55 + +KPX B period -50 +KPX B comma -50 + +KPX D period -50 +KPX D comma -50 + +KPX F r -25 +KPX F period -111 +KPX F o -37 +KPX F i -25 +KPX F e -37 +KPX F comma -111 +KPX F a -37 + +KPX G period -50 +KPX G comma -50 + +KPX J u -30 +KPX J period -75 +KPX J o -37 +KPX J e -37 +KPX J comma -75 +KPX J a -37 + +KPX L quoteright -74 +KPX L quotedblright -74 + +KPX O period -50 +KPX O comma -50 + +KPX P period -92 +KPX P comma -92 + +KPX S period -50 +KPX S comma -50 + +KPX T y -74 +KPX T w -74 +KPX T u -74 +KPX T semicolon -74 +KPX T r -74 +KPX T period -74 +KPX T o -74 +KPX T i -74 +KPX T hyphen -74 +KPX T e -74 +KPX T comma -74 +KPX T colon -74 +KPX T a -74 + +KPX V semicolon -18 +KPX V period -111 +KPX V o -18 +KPX V hyphen -37 +KPX V e -18 +KPX V comma -111 +KPX V colon -18 +KPX V a -18 + +KPX W period -92 +KPX W comma -92 + +KPX Y u -37 +KPX Y semicolon -74 +KPX Y period -111 +KPX Y o -55 +KPX Y i -55 +KPX Y hyphen -55 +KPX Y e -55 +KPX Y comma -111 +KPX Y colon -74 +KPX Y a -55 + +KPX b period -50 +KPX b comma -50 + +KPX f quoteright 18 +KPX f period -50 +KPX f f -18 +KPX f comma -50 + +KPX g period -37 +KPX g comma -37 + +KPX period quoteright -50 +KPX period quotedblright -50 + +KPX quoteleft quoteleft -108 + +KPX quoteright s -37 +KPX quoteright quoteright -108 + +KPX r y 18 +KPX r v 18 +KPX r period -74 +KPX r n 18 +KPX r hyphen -37 +KPX r comma -74 + +KPX space quoteleft -37 +KPX space quotedblleft -37 +KPX space Y -37 +KPX space W -37 +KPX space V -37 +KPX space T -37 +KPX space A -37 + +KPX v period -55 +KPX v comma -55 + +KPX w period -55 +KPX w comma -55 + +KPX y period -18 +KPX y comma -18 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 237 152 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 225 152 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 225 152 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 225 152 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 257 166 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 242 152 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 261 152 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 261 152 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 261 152 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 261 152 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 74 152 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 74 152 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 74 152 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 74 152 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 314 152 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 195 152 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 195 152 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 195 152 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 195 152 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 195 152 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 175 152 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 280 152 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 280 152 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 280 152 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 280 152 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 247 152 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 247 152 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 213 152 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 79 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 79 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 79 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 79 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 79 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 79 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 51 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 51 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 51 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 51 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 14 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 14 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 14 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 14 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 106 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 68 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 68 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 68 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 68 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 68 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 74 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 83 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 83 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 83 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 83 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 56 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 56 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 102 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-LtIt+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-LtIt+ new file mode 100755 index 0000000000000..0d5385e49a381 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-LtIt+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 556 ; N Ccaron ; B 34 -16 566 822 ; +C -1 ; WX 333 ; N ccaron ; B -5 -14 337 654 ; +C -1 ; WX 722 ; N Dcaron ; B 10 0 686 822 ; +C -1 ; WX 491 ; N dcaron ; B -5 -14 709 785 ; +C -1 ; WX 667 ; N Ecaron ; B 10 -8 628 822 ; +C -1 ; WX 333 ; N ecaron ; B -5 -14 321 654 ; +C -1 ; WX 556 ; N Lcaron ; B -71 -16 521 653 ; +C -1 ; WX 556 ; N Lacute ; B -71 -16 514 822 ; +C -1 ; WX 324 ; N lcaron ; B 15 -14 549 785 ; +C -1 ; WX 222 ; N lacute ; B 15 -14 388 822 ; +C -1 ; WX 722 ; N Ncaron ; B -9 -158 825 822 ; +C -1 ; WX 444 ; N ncaron ; B 9 -14 461 654 ; +C -1 ; WX 611 ; N Rcaron ; B -30 -158 709 822 ; +C -1 ; WX 611 ; N Racute ; B -30 -158 709 822 ; +C -1 ; WX 278 ; N rcaron ; B 0 -8 331 654 ; +C -1 ; WX 278 ; N racute ; B 0 -8 331 654 ; +C -1 ; WX 611 ; N Tcaron ; B 20 0 704 822 ; +C -1 ; WX 380 ; N tcaron ; B -22 -14 463 610 ; +C -1 ; WX 722 ; N Uring ; B 20 -16 681 822 ; +C -1 ; WX 444 ; N uring ; B 12 -14 456 648 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 227 168 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 43 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 257 168 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 502 175 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 229 168 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 27 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 314 43 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 174 168 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 342 175 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 22 168 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 257 168 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 83 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 201 168 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 229 168 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 15 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 201 168 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 256 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 258 174 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 83 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-MdIt b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-MdIt new file mode 100755 index 0000000000000..6efb57ab586f6 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-MdIt @@ -0,0 +1,480 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Fri Dec 28 16:35:46 1990 +Comment UniqueID 33936 +Comment VMusage 34559 41451 +FontName ZapfChancery-MediumItalic +FullName ITC Zapf Chancery Medium Italic +FamilyName ITC Zapf Chancery +Weight Medium +ItalicAngle -14 +IsFixedPitch false +FontBBox -181 -314 1065 831 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.007 +Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.ITC Zapf Chancery is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 708 +XHeight 438 +Ascender 714 +Descender -314 +StartCharMetrics 228 +C 32 ; WX 220 ; N space ; B 0 0 0 0 ; +C 33 ; WX 280 ; N exclam ; B 119 -14 353 610 ; +C 34 ; WX 220 ; N quotedbl ; B 120 343 333 610 ; +C 35 ; WX 440 ; N numbersign ; B 83 0 521 594 ; +C 36 ; WX 440 ; N dollar ; B 60 -144 508 709 ; +C 37 ; WX 680 ; N percent ; B 132 -160 710 700 ; +C 38 ; WX 780 ; N ampersand ; B 126 -16 915 610 ; +C 39 ; WX 240 ; N quoteright ; B 168 343 338 610 ; +C 40 ; WX 260 ; N parenleft ; B 96 -216 411 664 ; +C 41 ; WX 220 ; N parenright ; B -13 -216 302 664 ; +C 42 ; WX 420 ; N asterisk ; B 139 263 479 610 ; +C 43 ; WX 520 ; N plus ; B 117 0 543 426 ; +C 44 ; WX 220 ; N comma ; B 25 -140 213 148 ; +C 45 ; WX 280 ; N hyphen ; B 69 190 334 248 ; +C 46 ; WX 220 ; N period ; B 102 -14 228 128 ; +C 47 ; WX 340 ; N slash ; B 74 -16 458 610 ; +C 48 ; WX 440 ; N zero ; B 79 -16 538 610 ; +C 49 ; WX 440 ; N one ; B 41 0 428 610 ; +C 50 ; WX 440 ; N two ; B 17 -16 485 610 ; +C 51 ; WX 440 ; N three ; B 1 -16 485 610 ; +C 52 ; WX 440 ; N four ; B 77 -35 499 610 ; +C 53 ; WX 440 ; N five ; B 60 -16 595 679 ; +C 54 ; WX 440 ; N six ; B 90 -16 556 610 ; +C 55 ; WX 440 ; N seven ; B 157 -33 561 645 ; +C 56 ; WX 440 ; N eight ; B 65 -16 529 610 ; +C 57 ; WX 440 ; N nine ; B 32 -16 517 610 ; +C 58 ; WX 260 ; N colon ; B 98 -14 296 438 ; +C 59 ; WX 240 ; N semicolon ; B 29 -140 299 438 ; +C 60 ; WX 520 ; N less ; B 139 0 527 468 ; +C 61 ; WX 520 ; N equal ; B 117 86 543 340 ; +C 62 ; WX 520 ; N greater ; B 139 0 527 468 ; +C 63 ; WX 380 ; N question ; B 150 -14 455 610 ; +C 64 ; WX 700 ; N at ; B 127 -16 753 610 ; +C 65 ; WX 620 ; N A ; B 13 -16 697 632 ; +C 66 ; WX 600 ; N B ; B 85 -6 674 640 ; +C 67 ; WX 520 ; N C ; B 93 -16 631 610 ; +C 68 ; WX 700 ; N D ; B 86 -6 768 640 ; +C 69 ; WX 620 ; N E ; B 91 -12 709 618 ; +C 70 ; WX 580 ; N F ; B 120 -118 793 629 ; +C 71 ; WX 620 ; N G ; B 148 -242 709 610 ; +C 72 ; WX 680 ; N H ; B 18 -16 878 708 ; +C 73 ; WX 380 ; N I ; B 99 0 504 594 ; +C 74 ; WX 400 ; N J ; B -14 -147 538 594 ; +C 75 ; WX 660 ; N K ; B 53 -153 844 610 ; +C 76 ; WX 580 ; N L ; B 53 -16 657 610 ; +C 77 ; WX 840 ; N M ; B 58 -16 1020 722 ; +C 78 ; WX 700 ; N N ; B 85 -168 915 708 ; +C 79 ; WX 600 ; N O ; B 94 -16 660 610 ; +C 80 ; WX 540 ; N P ; B 42 0 658 628 ; +C 81 ; WX 600 ; N Q ; B 84 -177 775 610 ; +C 82 ; WX 600 ; N R ; B 58 -168 805 640 ; +C 83 ; WX 460 ; N S ; B 45 -81 558 610 ; +C 84 ; WX 500 ; N T ; B 63 0 744 667 ; +C 85 ; WX 740 ; N U ; B 126 -16 792 617 ; +C 86 ; WX 640 ; N V ; B 124 -16 810 714 ; +C 87 ; WX 880 ; N W ; B 94 -16 1046 723 ; +C 88 ; WX 560 ; N X ; B -30 -16 699 610 ; +C 89 ; WX 560 ; N Y ; B 41 -168 774 647 ; +C 90 ; WX 620 ; N Z ; B 42 -19 669 624 ; +C 91 ; WX 240 ; N bracketleft ; B -13 -207 405 655 ; +C 92 ; WX 480 ; N backslash ; B 140 -16 524 610 ; +C 93 ; WX 320 ; N bracketright ; B -27 -207 391 655 ; +C 94 ; WX 520 ; N asciicircum ; B 132 239 532 594 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 240 ; N quoteleft ; B 169 343 339 610 ; +C 97 ; WX 420 ; N a ; B 92 -15 485 438 ; +C 98 ; WX 420 ; N b ; B 82 -23 492 714 ; +C 99 ; WX 340 ; N c ; B 87 -14 406 438 ; +C 100 ; WX 440 ; N d ; B 102 -14 651 714 ; +C 101 ; WX 340 ; N e ; B 87 -14 403 438 ; +C 102 ; WX 320 ; N f ; B -119 -314 547 714 ; L i fi ; L l fl ; +C 103 ; WX 400 ; N g ; B -108 -314 503 438 ; +C 104 ; WX 440 ; N h ; B 55 -14 524 714 ; +C 105 ; WX 240 ; N i ; B 100 -14 341 635 ; +C 106 ; WX 220 ; N j ; B -112 -314 332 635 ; +C 107 ; WX 440 ; N k ; B 87 -184 628 714 ; +C 108 ; WX 240 ; N l ; B 102 -14 480 714 ; +C 109 ; WX 620 ; N m ; B 86 -14 704 438 ; +C 110 ; WX 460 ; N n ; B 101 -14 544 438 ; +C 111 ; WX 400 ; N o ; B 87 -14 449 438 ; +C 112 ; WX 440 ; N p ; B -23 -314 484 432 ; +C 113 ; WX 400 ; N q ; B 87 -300 490 510 ; +C 114 ; WX 300 ; N r ; B 101 -14 424 438 ; +C 115 ; WX 320 ; N s ; B 46 -14 403 438 ; +C 116 ; WX 320 ; N t ; B 106 -14 426 539 ; +C 117 ; WX 460 ; N u ; B 102 -14 528 438 ; +C 118 ; WX 440 ; N v ; B 87 -14 533 488 ; +C 119 ; WX 680 ; N w ; B 87 -14 782 488 ; +C 120 ; WX 420 ; N x ; B 70 -195 589 438 ; +C 121 ; WX 400 ; N y ; B -24 -314 483 438 ; +C 122 ; WX 440 ; N z ; B 26 -14 508 445 ; +C 123 ; WX 240 ; N braceleft ; B 55 -207 383 655 ; +C 124 ; WX 520 ; N bar ; B 320 -16 378 714 ; +C 125 ; WX 240 ; N braceright ; B -10 -207 318 655 ; +C 126 ; WX 520 ; N asciitilde ; B 123 186 539 320 ; +C 161 ; WX 280 ; N exclamdown ; B 72 -186 306 438 ; +C 162 ; WX 440 ; N cent ; B 122 -134 476 543 ; +C 163 ; WX 440 ; N sterling ; B -16 -52 506 610 ; +C 164 ; WX 60 ; N fraction ; B -181 -16 320 610 ; +C 165 ; WX 440 ; N yen ; B -1 -168 613 647 ; +C 166 ; WX 440 ; N florin ; B -64 -314 582 610 ; +C 167 ; WX 420 ; N section ; B 53 -215 514 610 ; +C 168 ; WX 440 ; N currency ; B 50 85 474 509 ; +C 169 ; WX 160 ; N quotesingle ; B 145 343 215 610 ; +C 170 ; WX 340 ; N quotedblleft ; B 169 343 464 610 ; +C 171 ; WX 340 ; N guillemotleft ; B 98 24 356 414 ; +C 172 ; WX 240 ; N guilsinglleft ; B 98 24 258 414 ; +C 173 ; WX 260 ; N guilsinglright ; B 106 24 266 414 ; +C 174 ; WX 520 ; N fi ; B -124 -314 605 714 ; +C 175 ; WX 520 ; N fl ; B -124 -314 670 714 ; +C 177 ; WX 500 ; N endash ; B 51 199 565 239 ; +C 178 ; WX 460 ; N dagger ; B 138 -37 568 610 ; +C 179 ; WX 480 ; N daggerdbl ; B 138 -59 533 610 ; +C 180 ; WX 220 ; N periodcentered ; B 139 208 241 310 ; +C 182 ; WX 500 ; N paragraph ; B 105 -199 638 594 ; +C 183 ; WX 600 ; N bullet ; B 228 149 524 445 ; +C 184 ; WX 180 ; N quotesinglbase ; B 21 -121 191 146 ; +C 185 ; WX 280 ; N quotedblbase ; B -14 -121 281 146 ; +C 186 ; WX 360 ; N quotedblright ; B 158 343 453 610 ; +C 187 ; WX 380 ; N guillemotright ; B 117 24 375 414 ; +C 188 ; WX 1000 ; N ellipsis ; B 124 -14 916 128 ; +C 189 ; WX 960 ; N perthousand ; B 112 -160 1005 700 ; +C 191 ; WX 400 ; N questiondown ; B 82 -186 387 438 ; +C 193 ; WX 220 ; N grave ; B 193 492 339 659 ; +C 194 ; WX 300 ; N acute ; B 265 492 422 659 ; +C 195 ; WX 340 ; N circumflex ; B 223 482 443 649 ; +C 196 ; WX 440 ; N tilde ; B 243 543 522 619 ; +C 197 ; WX 440 ; N macron ; B 222 544 465 578 ; +C 198 ; WX 440 ; N breve ; B 253 522 501 631 ; +C 199 ; WX 220 ; N dotaccent ; B 236 522 328 610 ; +C 200 ; WX 360 ; N dieresis ; B 243 522 469 610 ; +C 202 ; WX 300 ; N ring ; B 240 483 416 659 ; +C 203 ; WX 300 ; N cedilla ; B 12 -191 184 6 ; +C 205 ; WX 400 ; N hungarumlaut ; B 208 492 495 659 ; +C 206 ; WX 280 ; N ogonek ; B 38 -191 233 6 ; +C 207 ; WX 340 ; N caron ; B 254 492 474 659 ; +C 208 ; WX 1000 ; N emdash ; B 51 199 1065 239 ; +C 225 ; WX 740 ; N AE ; B -21 -16 799 594 ; +C 227 ; WX 260 ; N ordfeminine ; B 111 338 386 610 ; +C 232 ; WX 580 ; N Lslash ; B 49 -16 657 610 ; +C 233 ; WX 660 ; N Oslash ; B 83 -78 751 672 ; +C 234 ; WX 820 ; N OE ; B 63 -16 909 610 ; +C 235 ; WX 260 ; N ordmasculine ; B 128 339 373 610 ; +C 241 ; WX 540 ; N ae ; B 67 -14 624 468 ; +C 245 ; WX 240 ; N dotlessi ; B 100 -14 306 438 ; +C 248 ; WX 300 ; N lslash ; B 121 -14 515 714 ; +C 249 ; WX 440 ; N oslash ; B 46 -64 540 488 ; +C 250 ; WX 560 ; N oe ; B 78 -14 628 438 ; +C 251 ; WX 420 ; N germandbls ; B -127 -314 542 714 ; +C -1 ; WX 340 ; N ecircumflex ; B 87 -14 433 649 ; +C -1 ; WX 340 ; N edieresis ; B 87 -14 449 610 ; +C -1 ; WX 420 ; N aacute ; B 92 -15 492 659 ; +C -1 ; WX 740 ; N registered ; B 137 -16 763 610 ; +C -1 ; WX 240 ; N icircumflex ; B 100 -14 363 649 ; +C -1 ; WX 460 ; N udieresis ; B 102 -14 528 610 ; +C -1 ; WX 400 ; N ograve ; B 87 -14 449 659 ; +C -1 ; WX 460 ; N uacute ; B 102 -14 528 659 ; +C -1 ; WX 460 ; N ucircumflex ; B 102 -14 528 649 ; +C -1 ; WX 620 ; N Aacute ; B 13 -16 702 821 ; +C -1 ; WX 240 ; N igrave ; B 100 -14 306 659 ; +C -1 ; WX 380 ; N Icircumflex ; B 99 0 504 821 ; +C -1 ; WX 340 ; N ccedilla ; B 62 -191 406 438 ; +C -1 ; WX 420 ; N adieresis ; B 92 -15 485 610 ; +C -1 ; WX 620 ; N Ecircumflex ; B 91 -12 709 821 ; +C -1 ; WX 320 ; N scaron ; B 46 -14 464 659 ; +C -1 ; WX 440 ; N thorn ; B -38 -314 505 714 ; +C -1 ; WX 1000 ; N trademark ; B 127 187 1046 594 ; +C -1 ; WX 340 ; N egrave ; B 87 -14 403 659 ; +C -1 ; WX 264 ; N threesuperior ; B 59 234 348 610 ; +C -1 ; WX 440 ; N zcaron ; B 26 -14 514 659 ; +C -1 ; WX 420 ; N atilde ; B 92 -15 522 619 ; +C -1 ; WX 420 ; N aring ; B 92 -15 485 659 ; +C -1 ; WX 400 ; N ocircumflex ; B 87 -14 453 649 ; +C -1 ; WX 620 ; N Edieresis ; B 91 -12 709 762 ; +C -1 ; WX 660 ; N threequarters ; B 39 -16 706 610 ; +C -1 ; WX 400 ; N ydieresis ; B -24 -314 483 610 ; +C -1 ; WX 400 ; N yacute ; B -24 -314 483 659 ; +C -1 ; WX 240 ; N iacute ; B 100 -14 392 659 ; +C -1 ; WX 620 ; N Acircumflex ; B 13 -16 697 821 ; +C -1 ; WX 740 ; N Uacute ; B 126 -16 792 821 ; +C -1 ; WX 340 ; N eacute ; B 87 -14 462 659 ; +C -1 ; WX 600 ; N Ograve ; B 94 -16 660 821 ; +C -1 ; WX 420 ; N agrave ; B 92 -15 485 659 ; +C -1 ; WX 740 ; N Udieresis ; B 126 -16 792 762 ; +C -1 ; WX 420 ; N acircumflex ; B 92 -15 485 649 ; +C -1 ; WX 380 ; N Igrave ; B 99 0 504 821 ; +C -1 ; WX 264 ; N twosuperior ; B 72 234 354 610 ; +C -1 ; WX 740 ; N Ugrave ; B 126 -16 792 821 ; +C -1 ; WX 660 ; N onequarter ; B 56 -16 702 610 ; +C -1 ; WX 740 ; N Ucircumflex ; B 126 -16 792 821 ; +C -1 ; WX 460 ; N Scaron ; B 45 -81 594 831 ; +C -1 ; WX 380 ; N Idieresis ; B 99 0 519 762 ; +C -1 ; WX 240 ; N idieresis ; B 100 -14 369 610 ; +C -1 ; WX 620 ; N Egrave ; B 91 -12 709 821 ; +C -1 ; WX 600 ; N Oacute ; B 94 -16 660 821 ; +C -1 ; WX 520 ; N divide ; B 117 -14 543 440 ; +C -1 ; WX 620 ; N Atilde ; B 13 -16 702 771 ; +C -1 ; WX 620 ; N Aring ; B 13 -16 697 831 ; +C -1 ; WX 600 ; N Odieresis ; B 94 -16 660 762 ; +C -1 ; WX 620 ; N Adieresis ; B 13 -16 709 762 ; +C -1 ; WX 700 ; N Ntilde ; B 85 -168 915 761 ; +C -1 ; WX 620 ; N Zcaron ; B 42 -19 669 831 ; +C -1 ; WX 540 ; N Thorn ; B 52 0 647 623 ; +C -1 ; WX 380 ; N Iacute ; B 99 0 532 821 ; +C -1 ; WX 520 ; N plusminus ; B 117 0 543 436 ; +C -1 ; WX 520 ; N multiply ; B 133 16 527 410 ; +C -1 ; WX 620 ; N Eacute ; B 91 -12 709 821 ; +C -1 ; WX 560 ; N Ydieresis ; B 41 -168 774 762 ; +C -1 ; WX 264 ; N onesuperior ; B 83 244 311 610 ; +C -1 ; WX 460 ; N ugrave ; B 102 -14 528 659 ; +C -1 ; WX 520 ; N logicalnot ; B 117 86 543 340 ; +C -1 ; WX 460 ; N ntilde ; B 101 -14 544 619 ; +C -1 ; WX 600 ; N Otilde ; B 94 -16 660 761 ; +C -1 ; WX 400 ; N otilde ; B 87 -14 502 619 ; +C -1 ; WX 520 ; N Ccedilla ; B 93 -191 631 610 ; +C -1 ; WX 620 ; N Agrave ; B 13 -16 697 821 ; +C -1 ; WX 660 ; N onehalf ; B 56 -16 702 610 ; +C -1 ; WX 700 ; N Eth ; B 86 -6 768 640 ; +C -1 ; WX 400 ; N degree ; B 171 324 457 610 ; +C -1 ; WX 560 ; N Yacute ; B 41 -168 774 821 ; +C -1 ; WX 600 ; N Ocircumflex ; B 94 -16 660 821 ; +C -1 ; WX 400 ; N oacute ; B 87 -14 482 659 ; +C -1 ; WX 460 ; N mu ; B 7 -314 523 438 ; +C -1 ; WX 520 ; N minus ; B 117 184 543 242 ; +C -1 ; WX 400 ; N eth ; B 87 -14 522 714 ; +C -1 ; WX 400 ; N odieresis ; B 87 -14 479 610 ; +C -1 ; WX 740 ; N copyright ; B 137 -16 763 610 ; +C -1 ; WX 520 ; N brokenbar ; B 320 -16 378 714 ; +EndCharMetrics +StartKernData +StartKernPairs 131 + +KPX A quoteright -40 +KPX A quotedblright -40 +KPX A U -10 +KPX A T 10 +KPX A Q 10 +KPX A O 10 +KPX A G -30 +KPX A C 20 + +KPX D period -30 +KPX D comma -20 +KPX D Y 10 +KPX D A -10 + +KPX F period -40 +KPX F i 10 +KPX F comma -30 + +KPX G period -20 +KPX G comma -10 + +KPX J period -20 +KPX J comma -10 + +KPX K u -20 +KPX K o -20 +KPX K e -20 + +KPX L y -10 +KPX L quoteright -25 +KPX L quotedblright -25 +KPX L W -10 +KPX L V -20 + +KPX O period -20 +KPX O comma -10 +KPX O Y 10 +KPX O T 20 +KPX O A -20 + +KPX P period -50 +KPX P o -10 +KPX P e -10 +KPX P comma -40 +KPX P a -20 +KPX P A -10 + +KPX Q U -10 + +KPX R Y 10 +KPX R W 10 +KPX R T 20 + +KPX T o -20 +KPX T i 20 +KPX T hyphen -20 +KPX T h 20 +KPX T e -20 +KPX T a -20 +KPX T O 30 +KPX T A 10 + +KPX V period -100 +KPX V o -20 +KPX V e -20 +KPX V comma -90 +KPX V a -20 +KPX V O 10 +KPX V G -20 + +KPX W period -50 +KPX W o -20 +KPX W i 10 +KPX W h 10 +KPX W e -20 +KPX W comma -40 +KPX W a -20 +KPX W O 10 + +KPX Y u -20 +KPX Y period -50 +KPX Y o -50 +KPX Y i 10 +KPX Y e -40 +KPX Y comma -40 +KPX Y a -60 + +KPX b period -30 +KPX b l -20 +KPX b comma -20 +KPX b b -20 + +KPX c k -10 + +KPX comma quoteright -70 +KPX comma quotedblright -70 + +KPX d w -20 +KPX d v -10 +KPX d d -40 + +KPX e y 10 + +KPX f quoteright 30 +KPX f quotedblright 30 +KPX f period -50 +KPX f f -50 +KPX f e -10 +KPX f comma -40 +KPX f a -20 + +KPX g y 10 +KPX g period -30 +KPX g i 10 +KPX g e 10 +KPX g comma -20 +KPX g a 10 + +KPX k y 10 +KPX k o -10 +KPX k e -20 + +KPX m y 10 +KPX m u 10 + +KPX n y 20 + +KPX o period -30 +KPX o comma -20 + +KPX p period -30 +KPX p p -10 +KPX p comma -20 + +KPX period quoteright -80 +KPX period quotedblright -80 + +KPX quotedblleft quoteleft 20 +KPX quotedblleft A 10 + +KPX quoteleft quoteleft -115 +KPX quoteleft A 10 + +KPX quoteright v 30 +KPX quoteright t 20 +KPX quoteright s -25 +KPX quoteright r 30 +KPX quoteright quoteright -115 +KPX quoteright quotedblright 20 +KPX quoteright l 20 + +KPX r period -50 +KPX r i 10 +KPX r comma -40 + +KPX s period -20 +KPX s comma -10 + +KPX v period -30 +KPX v comma -20 + +KPX w period -30 +KPX w o 10 +KPX w h 20 +KPX w comma -20 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 280 162 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 240 172 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 240 152 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 250 162 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 260 172 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 180 152 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 230 162 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 180 172 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 170 152 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 220 162 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 110 162 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 60 172 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 50 152 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 100 162 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 210 142 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 160 162 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 130 172 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 120 152 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 150 162 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 90 142 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 120 172 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 310 162 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 260 172 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 260 152 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 270 162 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 220 162 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 170 152 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 130 172 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 70 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 20 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 10 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 80 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 60 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 0 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 40 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex -10 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis -20 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 30 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -30 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -80 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -100 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -40 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 10 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 60 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 10 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 10 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 60 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde -20 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron -10 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 70 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 30 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 20 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 50 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 60 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 0 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 40 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-MdIt+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-MdIt+ new file mode 100755 index 0000000000000..b128a05362027 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-MdIt+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 520 ; N Ccaron ; B 93 -16 656 815 ; +C -1 ; WX 340 ; N ccaron ; B 87 -14 490 659 ; +C -1 ; WX 700 ; N Dcaron ; B 86 -6 768 815 ; +C -1 ; WX 559 ; N dcaron ; B 102 -14 838 785 ; +C -1 ; WX 620 ; N Ecaron ; B 91 -12 709 815 ; +C -1 ; WX 340 ; N ecaron ; B 87 -14 474 659 ; +C -1 ; WX 580 ; N Lcaron ; B 53 -16 691 653 ; +C -1 ; WX 580 ; N Lacute ; B 53 -16 657 815 ; +C -1 ; WX 359 ; N lcaron ; B 102 -14 667 785 ; +C -1 ; WX 240 ; N lacute ; B 102 -14 480 815 ; +C -1 ; WX 700 ; N Ncaron ; B 85 -168 915 815 ; +C -1 ; WX 460 ; N ncaron ; B 101 -14 544 659 ; +C -1 ; WX 600 ; N Rcaron ; B 58 -168 805 815 ; +C -1 ; WX 600 ; N Racute ; B 58 -168 805 815 ; +C -1 ; WX 300 ; N rcaron ; B 101 -14 454 659 ; +C -1 ; WX 300 ; N racute ; B 101 -14 438 659 ; +C -1 ; WX 500 ; N Tcaron ; B 63 0 744 815 ; +C -1 ; WX 439 ; N tcaron ; B 106 -14 613 610 ; +C -1 ; WX 740 ; N Uring ; B 126 -16 792 815 ; +C -1 ; WX 460 ; N uring ; B 102 -14 528 659 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 182 156 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 16 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 218 156 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 500 175 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 178 156 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 0 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 353 43 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 178 156 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 329 175 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute 24 156 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 218 156 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 60 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 168 156 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 218 156 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron -20 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 16 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 118 156 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 275 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 258 156 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 80 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Rm b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Rm new file mode 100755 index 0000000000000..a501b13ace71f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Rm @@ -0,0 +1,486 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu Sep 6 11:25:29 1990 +Comment UniqueID 32814 +Comment VMusage 33348 40240 +FontName ZapfChancery-Roman +FullName ITC Zapf Chancery Roman +FamilyName ITC Zapf Chancery +Weight Roman +ItalicAngle 0 +IsFixedPitch false +FontBBox -171 -314 1005 817 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.000 +Notice Copyright (c) 1990 Adobe Systems Incorporated. All Rights Reserved.ITC Zapf Chancery is a registered trademark of International Typeface Corporation. +EncodingScheme AdobeStandardEncoding +CapHeight 594 +XHeight 438 +Ascender 714 +Descender -300 +StartCharMetrics 228 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 278 ; N exclam ; B 58 -14 192 610 ; +C 34 ; WX 333 ; N quotedbl ; B 60 330 273 610 ; +C 35 ; WX 500 ; N numbersign ; B 25 0 459 594 ; +C 36 ; WX 500 ; N dollar ; B 41 -143 402 707 ; +C 37 ; WX 667 ; N percent ; B 44 -160 623 700 ; +C 38 ; WX 778 ; N ampersand ; B 28 -14 743 551 ; +C 39 ; WX 222 ; N quoteright ; B 13 330 179 610 ; +C 40 ; WX 333 ; N parenleft ; B 86 -218 301 674 ; +C 41 ; WX 333 ; N parenright ; B 32 -218 247 674 ; +C 42 ; WX 444 ; N asterisk ; B 54 260 382 610 ; +C 43 ; WX 600 ; N plus ; B 47 0 553 506 ; +C 44 ; WX 250 ; N comma ; B -17 -154 165 155 ; +C 45 ; WX 333 ; N hyphen ; B 42 193 291 245 ; +C 46 ; WX 250 ; N period ; B 58 -14 192 128 ; +C 47 ; WX 278 ; N slash ; B -56 -16 334 610 ; +C 48 ; WX 500 ; N zero ; B 37 -16 463 610 ; +C 49 ; WX 500 ; N one ; B 23 0 463 610 ; +C 50 ; WX 500 ; N two ; B -13 -16 484 610 ; +C 51 ; WX 500 ; N three ; B -25 -16 412 610 ; +C 52 ; WX 500 ; N four ; B -5 -30 505 610 ; +C 53 ; WX 500 ; N five ; B 13 -16 472 666 ; +C 54 ; WX 500 ; N six ; B 47 -16 476 610 ; +C 55 ; WX 500 ; N seven ; B 60 -24 477 646 ; +C 56 ; WX 500 ; N eight ; B 39 -16 426 610 ; +C 57 ; WX 500 ; N nine ; B 24 -16 453 610 ; +C 58 ; WX 250 ; N colon ; B 58 -14 192 433 ; +C 59 ; WX 250 ; N semicolon ; B -17 -154 192 433 ; +C 60 ; WX 600 ; N less ; B 47 -9 553 515 ; +C 61 ; WX 600 ; N equal ; B 47 126 553 380 ; +C 62 ; WX 600 ; N greater ; B 47 -9 553 515 ; +C 63 ; WX 333 ; N question ; B 59 -14 315 610 ; +C 64 ; WX 800 ; N at ; B 87 -16 713 610 ; +C 65 ; WX 611 ; N A ; B -68 -9 650 610 ; +C 66 ; WX 556 ; N B ; B -2 -2 510 594 ; +C 67 ; WX 556 ; N C ; B 33 -16 531 610 ; +C 68 ; WX 667 ; N D ; B -2 -2 634 594 ; +C 69 ; WX 556 ; N E ; B -2 -3 550 604 ; +C 70 ; WX 444 ; N F ; B -3 0 460 604 ; +C 71 ; WX 611 ; N G ; B 33 -33 586 610 ; +C 72 ; WX 667 ; N H ; B -8 0 667 594 ; +C 73 ; WX 333 ; N I ; B -2 0 324 594 ; +C 74 ; WX 278 ; N J ; B -152 -218 291 594 ; +C 75 ; WX 611 ; N K ; B -7 -3 643 604 ; +C 76 ; WX 556 ; N L ; B 20 0 542 594 ; +C 77 ; WX 833 ; N M ; B -9 -9 836 604 ; +C 78 ; WX 667 ; N N ; B -2 -16 685 594 ; +C 79 ; WX 667 ; N O ; B 33 -16 634 610 ; +C 80 ; WX 500 ; N P ; B -8 0 503 594 ; +C 81 ; WX 667 ; N Q ; B 33 -160 708 610 ; +C 82 ; WX 556 ; N R ; B -8 -8 595 594 ; +C 83 ; WX 444 ; N S ; B -9 -16 405 610 ; +C 84 ; WX 556 ; N T ; B 17 0 564 604 ; +C 85 ; WX 667 ; N U ; B 8 -16 667 594 ; +C 86 ; WX 556 ; N V ; B -35 -16 554 610 ; +C 87 ; WX 889 ; N W ; B -28 -16 896 610 ; +C 88 ; WX 556 ; N X ; B -52 -16 572 610 ; +C 89 ; WX 556 ; N Y ; B -38 0 600 610 ; +C 90 ; WX 611 ; N Z ; B 0 -36 635 614 ; +C 91 ; WX 333 ; N bracketleft ; B 81 -207 358 663 ; +C 92 ; WX 278 ; N backslash ; B -56 -16 334 610 ; +C 93 ; WX 333 ; N bracketright ; B -25 -207 252 663 ; +C 94 ; WX 600 ; N asciicircum ; B 90 229 510 594 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 96 ; WX 222 ; N quoteleft ; B 50 330 216 610 ; +C 97 ; WX 389 ; N a ; B 23 -14 423 438 ; +C 98 ; WX 389 ; N b ; B 28 -14 354 714 ; +C 99 ; WX 333 ; N c ; B 23 -14 341 438 ; +C 100 ; WX 389 ; N d ; B 23 -14 474 714 ; +C 101 ; WX 333 ; N e ; B 23 -14 354 438 ; +C 102 ; WX 222 ; N f ; B -166 -314 373 714 ; L i fi ; L l fl ; +C 103 ; WX 389 ; N g ; B -63 -314 392 438 ; +C 104 ; WX 444 ; N h ; B 42 -14 475 714 ; +C 105 ; WX 278 ; N i ; B 19 -14 287 627 ; +C 106 ; WX 222 ; N j ; B -131 -314 197 627 ; +C 107 ; WX 389 ; N k ; B 31 -14 419 714 ; +C 108 ; WX 222 ; N l ; B 37 -14 302 714 ; +C 109 ; WX 667 ; N m ; B -1 -14 694 438 ; +C 110 ; WX 444 ; N n ; B -1 -14 471 438 ; +C 111 ; WX 389 ; N o ; B 23 -14 354 438 ; +C 112 ; WX 389 ; N p ; B -69 -300 354 438 ; +C 113 ; WX 389 ; N q ; B 23 -300 398 500 ; +C 114 ; WX 278 ; N r ; B -1 -14 314 438 ; +C 115 ; WX 333 ; N s ; B 0 -14 292 438 ; +C 116 ; WX 278 ; N t ; B -27 -14 296 523 ; +C 117 ; WX 444 ; N u ; B -1 -14 471 438 ; +C 118 ; WX 389 ; N v ; B -36 -14 383 450 ; +C 119 ; WX 667 ; N w ; B -21 -14 671 445 ; +C 120 ; WX 444 ; N x ; B -6 -89 470 438 ; +C 121 ; WX 389 ; N y ; B -127 -314 399 450 ; +C 122 ; WX 333 ; N z ; B -41 -14 366 438 ; +C 123 ; WX 333 ; N braceleft ; B 50 -207 294 663 ; +C 124 ; WX 222 ; N bar ; B 74 -16 132 714 ; +C 125 ; WX 333 ; N braceright ; B 39 -207 283 663 ; +C 126 ; WX 600 ; N asciitilde ; B 69 186 531 320 ; +C 161 ; WX 278 ; N exclamdown ; B 54 -186 188 438 ; +C 162 ; WX 500 ; N cent ; B 92 -130 388 538 ; +C 163 ; WX 500 ; N sterling ; B 0 -52 475 610 ; +C 164 ; WX 168 ; N fraction ; B -171 -16 339 610 ; +C 165 ; WX 500 ; N yen ; B -22 0 553 610 ; +C 166 ; WX 500 ; N florin ; B -131 -314 515 610 ; +C 167 ; WX 500 ; N section ; B 45 -216 442 610 ; +C 168 ; WX 500 ; N currency ; B 38 85 462 509 ; +C 169 ; WX 222 ; N quotesingle ; B 76 330 146 610 ; +C 170 ; WX 333 ; N quotedblleft ; B 42 330 328 610 ; +C 171 ; WX 444 ; N guillemotleft ; B 83 20 341 418 ; +C 172 ; WX 333 ; N guilsinglleft ; B 81 20 231 418 ; +C 173 ; WX 333 ; N guilsinglright ; B 81 20 231 418 ; +C 174 ; WX 444 ; N fi ; B -154 -314 485 714 ; +C 175 ; WX 444 ; N fl ; B -154 -314 501 714 ; +C 177 ; WX 500 ; N endash ; B -5 199 505 239 ; +C 178 ; WX 444 ; N dagger ; B 11 -36 433 610 ; +C 179 ; WX 444 ; N daggerdbl ; B 46 -43 384 610 ; +C 180 ; WX 250 ; N periodcentered ; B 74 214 176 316 ; +C 182 ; WX 600 ; N paragraph ; B 79 -200 551 594 ; +C 183 ; WX 500 ; N bullet ; B 102 149 398 445 ; +C 184 ; WX 222 ; N quotesinglbase ; B -35 -140 131 140 ; +C 185 ; WX 333 ; N quotedblbase ; B -25 -140 261 140 ; +C 186 ; WX 333 ; N quotedblright ; B 12 330 298 610 ; +C 187 ; WX 444 ; N guillemotright ; B 83 20 341 418 ; +C 188 ; WX 1000 ; N ellipsis ; B 100 -14 900 128 ; +C 189 ; WX 944 ; N perthousand ; B 31 -160 926 700 ; +C 191 ; WX 333 ; N questiondown ; B -8 -186 248 438 ; +C 193 ; WX 278 ; N grave ; B 63 484 220 650 ; +C 194 ; WX 278 ; N acute ; B 129 484 286 650 ; +C 195 ; WX 278 ; N circumflex ; B 49 490 272 650 ; +C 196 ; WX 278 ; N tilde ; B 44 534 323 610 ; +C 197 ; WX 278 ; N macron ; B 51 531 291 571 ; +C 198 ; WX 278 ; N breve ; B 62 516 311 626 ; +C 199 ; WX 278 ; N dotaccent ; B 111 516 207 610 ; +C 200 ; WX 278 ; N dieresis ; B 56 516 286 610 ; +C 202 ; WX 278 ; N ring ; B 86 489 262 665 ; +C 203 ; WX 278 ; N cedilla ; B 21 -192 196 6 ; +C 205 ; WX 278 ; N hungarumlaut ; B 62 484 353 650 ; +C 206 ; WX 278 ; N ogonek ; B -13 -192 221 10 ; +C 207 ; WX 278 ; N caron ; B 96 484 319 644 ; +C 208 ; WX 1000 ; N emdash ; B -5 199 1005 239 ; +C 225 ; WX 778 ; N AE ; B -43 -13 772 596 ; +C 227 ; WX 253 ; N ordfeminine ; B 20 339 280 610 ; +C 232 ; WX 556 ; N Lslash ; B 20 0 542 594 ; +C 233 ; WX 667 ; N Oslash ; B 14 -87 634 681 ; +C 234 ; WX 889 ; N OE ; B 24 -16 883 610 ; +C 235 ; WX 253 ; N ordmasculine ; B 27 339 242 610 ; +C 241 ; WX 556 ; N ae ; B 14 -14 565 469 ; +C 245 ; WX 278 ; N dotlessi ; B 19 -14 287 438 ; +C 248 ; WX 222 ; N lslash ; B -20 -14 302 714 ; +C 249 ; WX 389 ; N oslash ; B -15 -68 377 492 ; +C 250 ; WX 556 ; N oe ; B 23 -14 573 438 ; +C 251 ; WX 444 ; N germandbls ; B -132 -314 421 714 ; +C -1 ; WX 333 ; N ecircumflex ; B 23 -14 354 650 ; +C -1 ; WX 333 ; N edieresis ; B 23 -14 354 610 ; +C -1 ; WX 389 ; N aacute ; B 23 -14 423 650 ; +C -1 ; WX 800 ; N registered ; B 87 -16 713 610 ; +C -1 ; WX 278 ; N icircumflex ; B 19 -14 287 650 ; +C -1 ; WX 444 ; N udieresis ; B -1 -14 471 610 ; +C -1 ; WX 389 ; N ograve ; B 23 -14 354 650 ; +C -1 ; WX 444 ; N uacute ; B -1 -14 471 650 ; +C -1 ; WX 444 ; N ucircumflex ; B -1 -14 471 650 ; +C -1 ; WX 611 ; N Aacute ; B -68 -9 650 802 ; +C -1 ; WX 278 ; N igrave ; B 19 -14 287 650 ; +C -1 ; WX 333 ; N Icircumflex ; B -2 0 324 802 ; +C -1 ; WX 333 ; N ccedilla ; B 23 -192 341 438 ; +C -1 ; WX 389 ; N adieresis ; B 23 -14 423 610 ; +C -1 ; WX 556 ; N Ecircumflex ; B -2 -3 550 802 ; +C -1 ; WX 333 ; N scaron ; B 0 -14 357 644 ; +C -1 ; WX 389 ; N thorn ; B -69 -300 354 714 ; +C -1 ; WX 990 ; N trademark ; B 3 187 922 594 ; +C -1 ; WX 333 ; N egrave ; B 23 -14 354 650 ; +C -1 ; WX 325 ; N threesuperior ; B -6 234 284 610 ; +C -1 ; WX 333 ; N zcaron ; B -41 -14 366 644 ; +C -1 ; WX 389 ; N atilde ; B 23 -14 423 610 ; +C -1 ; WX 389 ; N aring ; B 23 -14 423 665 ; +C -1 ; WX 389 ; N ocircumflex ; B 23 -14 354 650 ; +C -1 ; WX 556 ; N Edieresis ; B -2 -3 550 762 ; +C -1 ; WX 750 ; N threequarters ; B -6 -16 736 610 ; +C -1 ; WX 389 ; N ydieresis ; B -127 -314 399 610 ; +C -1 ; WX 389 ; N yacute ; B -127 -314 399 650 ; +C -1 ; WX 278 ; N iacute ; B 19 -14 287 650 ; +C -1 ; WX 611 ; N Acircumflex ; B -68 -9 650 802 ; +C -1 ; WX 667 ; N Uacute ; B 8 -16 667 802 ; +C -1 ; WX 333 ; N eacute ; B 23 -14 354 650 ; +C -1 ; WX 667 ; N Ograve ; B 33 -16 634 802 ; +C -1 ; WX 389 ; N agrave ; B 23 -14 423 650 ; +C -1 ; WX 667 ; N Udieresis ; B 8 -16 667 762 ; +C -1 ; WX 389 ; N acircumflex ; B 23 -14 423 650 ; +C -1 ; WX 333 ; N Igrave ; B -2 0 324 802 ; +C -1 ; WX 325 ; N twosuperior ; B -19 234 315 610 ; +C -1 ; WX 667 ; N Ugrave ; B 8 -16 667 802 ; +C -1 ; WX 750 ; N onequarter ; B 15 -16 736 610 ; +C -1 ; WX 667 ; N Ucircumflex ; B 8 -16 667 802 ; +C -1 ; WX 444 ; N Scaron ; B -9 -16 422 796 ; +C -1 ; WX 333 ; N Idieresis ; B -2 0 324 762 ; +C -1 ; WX 278 ; N idieresis ; B 19 -14 287 610 ; +C -1 ; WX 556 ; N Egrave ; B -2 -3 550 802 ; +C -1 ; WX 667 ; N Oacute ; B 33 -16 634 802 ; +C -1 ; WX 600 ; N divide ; B 47 -14 553 520 ; +C -1 ; WX 611 ; N Atilde ; B -68 -9 650 762 ; +C -1 ; WX 611 ; N Aring ; B -68 -9 650 817 ; +C -1 ; WX 667 ; N Odieresis ; B 33 -16 634 762 ; +C -1 ; WX 611 ; N Adieresis ; B -68 -9 650 762 ; +C -1 ; WX 667 ; N Ntilde ; B -2 -16 685 762 ; +C -1 ; WX 611 ; N Zcaron ; B 0 -36 635 796 ; +C -1 ; WX 500 ; N Thorn ; B -8 0 494 594 ; +C -1 ; WX 333 ; N Iacute ; B -2 0 324 802 ; +C -1 ; WX 600 ; N plusminus ; B 47 0 553 506 ; +C -1 ; WX 600 ; N multiply ; B 73 26 527 480 ; +C -1 ; WX 556 ; N Eacute ; B -2 -3 550 802 ; +C -1 ; WX 556 ; N Ydieresis ; B -38 0 600 762 ; +C -1 ; WX 325 ; N onesuperior ; B 15 244 301 610 ; +C -1 ; WX 444 ; N ugrave ; B -1 -14 471 650 ; +C -1 ; WX 600 ; N logicalnot ; B 47 126 553 380 ; +C -1 ; WX 444 ; N ntilde ; B -1 -14 471 610 ; +C -1 ; WX 667 ; N Otilde ; B 33 -16 634 762 ; +C -1 ; WX 389 ; N otilde ; B 23 -14 389 610 ; +C -1 ; WX 556 ; N Ccedilla ; B 33 -192 531 610 ; +C -1 ; WX 611 ; N Agrave ; B -68 -9 650 802 ; +C -1 ; WX 750 ; N onehalf ; B 15 -16 745 610 ; +C -1 ; WX 667 ; N Eth ; B -2 -2 634 594 ; +C -1 ; WX 400 ; N degree ; B 61 324 347 610 ; +C -1 ; WX 556 ; N Yacute ; B -38 0 600 802 ; +C -1 ; WX 667 ; N Ocircumflex ; B 33 -16 634 802 ; +C -1 ; WX 389 ; N oacute ; B 23 -14 354 650 ; +C -1 ; WX 444 ; N mu ; B -1 -314 471 438 ; +C -1 ; WX 600 ; N minus ; B 47 224 553 282 ; +C -1 ; WX 389 ; N eth ; B 23 -14 384 718 ; +C -1 ; WX 389 ; N odieresis ; B 23 -14 354 610 ; +C -1 ; WX 800 ; N copyright ; B 87 -16 713 610 ; +C -1 ; WX 222 ; N brokenbar ; B 74 -16 132 714 ; +EndCharMetrics +StartKernData +StartKernPairs 140 + +KPX A y -37 +KPX A w -27 +KPX A v -37 +KPX A quoteright -90 +KPX A quotedblright -90 +KPX A Y -55 +KPX A W -55 +KPX A V -55 +KPX A T -55 +KPX A Q -18 +KPX A O -18 +KPX A G -18 +KPX A C -18 + +KPX B period -75 +KPX B comma -75 + +KPX D period -75 +KPX D comma -75 +KPX D W 10 +KPX D V 10 + +KPX F r -50 +KPX F period -111 +KPX F o -75 +KPX F i -50 +KPX F e -75 +KPX F comma -111 +KPX F a -75 +KPX F A -37 + +KPX G period -75 +KPX G comma -75 + +KPX J period -75 +KPX J comma -50 + +KPX L y -18 +KPX L quoteright -90 +KPX L quotedblright -90 +KPX L Y -55 +KPX L W -55 +KPX L V -55 +KPX L T -74 + +KPX N period -50 +KPX N comma -50 + +KPX O period -75 +KPX O comma -75 +KPX O W 10 +KPX O V 10 + +KPX P period -129 +KPX P comma -129 +KPX P A -18 + +KPX Q period -37 +KPX Q comma 75 + +KPX R W -18 +KPX R V -18 +KPX R T -18 + +KPX S period -75 +KPX S comma -75 + +KPX T y -55 +KPX T w -74 +KPX T u -55 +KPX T semicolon -74 +KPX T r -55 +KPX T period -92 +KPX T o -55 +KPX T i -18 +KPX T hyphen -74 +KPX T e -55 +KPX T comma -92 +KPX T colon -74 +KPX T a -55 +KPX T A -37 + +KPX V semicolon -37 +KPX V period -111 +KPX V o -18 +KPX V hyphen -18 +KPX V e -18 +KPX V comma -111 +KPX V a -18 +KPX V O 10 +KPX V G 10 +KPX V A -37 + +KPX W semicolon -37 +KPX W period -111 +KPX W o -37 +KPX W e -37 +KPX W comma -111 +KPX W colon -37 +KPX W a -37 +KPX W O 10 +KPX W A -57 + +KPX Y u -55 +KPX Y semicolon -74 +KPX Y period -111 +KPX Y o -55 +KPX Y i -45 +KPX Y hyphen -100 +KPX Y e -75 +KPX Y comma -111 +KPX Y colon -74 +KPX Y a -75 +KPX Y A -55 + +KPX b period -75 +KPX b comma -75 + +KPX c period -30 +KPX c comma -50 + +KPX comma space -37 +KPX comma quoteright -20 +KPX comma quotedblright -20 + +KPX f quoteright 37 +KPX f quotedblright 37 +KPX f period -75 +KPX f comma -75 + +KPX g period -50 +KPX g comma -25 + +KPX period quoteright -37 +KPX period quotedblright -37 + +KPX quotedblleft quoteleft -18 + +KPX quotedblright space -37 + +KPX quoteleft quoteleft -102 +KPX quoteleft A -90 + +KPX quoteright t -55 +KPX quoteright s -75 +KPX quoteright r -55 +KPX quoteright quoteright -102 +KPX quoteright quotedblright -18 +KPX quoteright l -40 +KPX quoteright d -70 + +KPX r period -74 +KPX r hyphen -37 +KPX r comma -74 + +KPX space quoteleft -37 +KPX space quotedblleft -37 +KPX space Y -37 +KPX space W -37 +KPX space V -37 +KPX space T -37 +KPX space A -37 + +KPX v period -74 +KPX v comma -74 + +KPX w period -74 +KPX w comma -74 + +KPX y period -74 +KPX y comma -74 +EndKernPairs +EndKernData +StartComposites 56 +CC Aacute 2 ; PCC A 0 0 ; PCC acute 177 152 ; +CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 177 152 ; +CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 177 152 ; +CC Agrave 2 ; PCC A 0 0 ; PCC grave 177 152 ; +CC Aring 2 ; PCC A 0 0 ; PCC ring 167 152 ; +CC Atilde 2 ; PCC A 0 0 ; PCC tilde 177 152 ; +CC Eacute 2 ; PCC E 0 0 ; PCC acute 119 152 ; +CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 119 152 ; +CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 119 152 ; +CC Egrave 2 ; PCC E 0 0 ; PCC grave 119 152 ; +CC Iacute 2 ; PCC I 0 0 ; PCC acute 38 152 ; +CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 38 152 ; +CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 38 152 ; +CC Igrave 2 ; PCC I 0 0 ; PCC grave 38 152 ; +CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 175 152 ; +CC Oacute 2 ; PCC O 0 0 ; PCC acute 220 152 ; +CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 220 152 ; +CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 220 152 ; +CC Ograve 2 ; PCC O 0 0 ; PCC grave 220 152 ; +CC Otilde 2 ; PCC O 0 0 ; PCC tilde 220 152 ; +CC Scaron 2 ; PCC S 0 0 ; PCC caron 103 152 ; +CC Uacute 2 ; PCC U 0 0 ; PCC acute 195 152 ; +CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 195 152 ; +CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 195 152 ; +CC Ugrave 2 ; PCC U 0 0 ; PCC grave 195 152 ; +CC Yacute 2 ; PCC Y 0 0 ; PCC acute 149 152 ; +CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 149 152 ; +CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 147 152 ; +CC aacute 2 ; PCC a 0 0 ; PCC acute 66 0 ; +CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 66 0 ; +CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 66 0 ; +CC agrave 2 ; PCC a 0 0 ; PCC grave 66 0 ; +CC aring 2 ; PCC a 0 0 ; PCC ring 56 0 ; +CC atilde 2 ; PCC a 0 0 ; PCC tilde 66 0 ; +CC eacute 2 ; PCC e 0 0 ; PCC acute 38 0 ; +CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 38 0 ; +CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 38 0 ; +CC egrave 2 ; PCC e 0 0 ; PCC grave 38 0 ; +CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; +CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 0 ; +CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; +CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; +CC ntilde 2 ; PCC n 0 0 ; PCC tilde 63 0 ; +CC oacute 2 ; PCC o 0 0 ; PCC acute 66 0 ; +CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 66 0 ; +CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 66 0 ; +CC ograve 2 ; PCC o 0 0 ; PCC grave 66 0 ; +CC otilde 2 ; PCC o 0 0 ; PCC tilde 66 0 ; +CC scaron 2 ; PCC s 0 0 ; PCC caron 38 0 ; +CC uacute 2 ; PCC u 0 0 ; PCC acute 63 0 ; +CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 63 0 ; +CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 63 0 ; +CC ugrave 2 ; PCC u 0 0 ; PCC grave 63 0 ; +CC yacute 2 ; PCC y 0 0 ; PCC acute 66 0 ; +CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 66 0 ; +CC zcaron 2 ; PCC z 0 0 ; PCC caron 8 0 ; +EndComposites +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Rm+ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Rm+ new file mode 100755 index 0000000000000..044663510c666 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZC-Rm+ @@ -0,0 +1,44 @@ +StartExtraCharMetrics +C -1 ; WX 556 ; N Ccaron ; B 33 -16 531 808 ; +C -1 ; WX 333 ; N ccaron ; B 23 -14 362 644 ; +C -1 ; WX 667 ; N Dcaron ; B -2 -2 634 808 ; +C -1 ; WX 505 ; N dcaron ; B 23 -14 657 785 ; +C -1 ; WX 556 ; N Ecaron ; B -2 -3 550 808 ; +C -1 ; WX 333 ; N ecaron ; B 23 -14 354 644 ; +C -1 ; WX 556 ; N Lcaron ; B 20 0 542 653 ; +C -1 ; WX 556 ; N Lacute ; B 20 0 542 814 ; +C -1 ; WX 338 ; N lcaron ; B 37 -14 485 785 ; +C -1 ; WX 222 ; N lacute ; B 37 -14 302 814 ; +C -1 ; WX 667 ; N Ncaron ; B -2 -16 685 808 ; +C -1 ; WX 444 ; N ncaron ; B -1 -14 471 644 ; +C -1 ; WX 556 ; N Rcaron ; B -8 -8 595 808 ; +C -1 ; WX 556 ; N Racute ; B -8 -8 595 814 ; +C -1 ; WX 278 ; N rcaron ; B -1 -14 319 644 ; +C -1 ; WX 278 ; N racute ; B -1 -14 314 650 ; +C -1 ; WX 556 ; N Tcaron ; B 17 0 564 808 ; +C -1 ; WX 394 ; N tcaron ; B -27 -14 479 610 ; +C -1 ; WX 667 ; N Uring ; B 8 -16 667 808 ; +C -1 ; WX 444 ; N uring ; B -1 -14 471 665 ; +EndExtraCharMetrics +StartBuildComposites +CC Ccaron 2 ; PCC C 0 0 ; PCC caron 189 164 ; +CC ccaron 2 ; PCC c 0 0 ; PCC caron 43 0 ; +CC Dcaron 2 ; PCC D 0 0 ; PCC caron 194 164 ; +CC dcaron 2 ; PCC d 0 0 ; PCC quoteright 478 175 ; +CC Ecaron 2 ; PCC E 0 0 ; PCC caron 139 164 ; +CC ecaron 2 ; PCC e 0 0 ; PCC caron 27 0 ; +CC Lcaron 2 ; PCC L 0 0 ; PCC quoteright 328 43 ; +CC Lacute 2 ; PCC L 0 0 ; PCC acute 139 164 ; +CC lcaron 2 ; PCC l 0 0 ; PCC quoteright 306 175 ; +CC lacute 2 ; PCC l 0 0 ; PCC acute -12 164 ; +CC Ncaron 2 ; PCC N 0 0 ; PCC caron 194 164 ; +CC ncaron 2 ; PCC n 0 0 ; PCC caron 83 0 ; +CC Rcaron 2 ; PCC R 0 0 ; PCC caron 139 164 ; +CC Racute 2 ; PCC R 0 0 ; PCC acute 169 164 ; +CC rcaron 2 ; PCC r 0 0 ; PCC caron 0 0 ; +CC racute 2 ; PCC r 0 0 ; PCC acute 16 0 ; +CC Tcaron 2 ; PCC T 0 0 ; PCC caron 139 164 ; +CC tcaron 2 ; PCC t 0 0 ; PCC quoteright 300 0 ; +CC Uring 2 ; PCC U 0 0 ; PCC ring 194 143 ; +CC uring 2 ; PCC u 0 0 ; PCC ring 83 0 ; +EndBuildComposites diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZD b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZD new file mode 100755 index 0000000000000..6b98e8d35f1e2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/font/ZD @@ -0,0 +1,222 @@ +StartFontMetrics 2.0 +Comment Copyright (c) 1985, 1987, 1988, 1989 Adobe Systems Incorporated. All rights reserved. +Comment Creation Date: Fri Dec 1 12:57:42 1989 +Comment UniqueID 26200 +Comment VMusage 39281 49041 +FontName ZapfDingbats +FullName ITC Zapf Dingbats +FamilyName ITC Zapf Dingbats +Weight Medium +ItalicAngle 0 +IsFixedPitch false +FontBBox -1 -143 981 820 +UnderlinePosition -98 +UnderlineThickness 54 +Version 001.004 +Notice Copyright (c) 1985, 1987, 1988, 1989 Adobe Systems Incorporated. All rights reserved.ITC Zapf Dingbats is a registered trademark of International Typeface Corporation. +EncodingScheme FontSpecific +StartCharMetrics 202 +C 32 ; WX 278 ; N space ; B 0 0 0 0 ; +C 33 ; WX 974 ; N a1 ; B 35 72 939 621 ; +C 34 ; WX 961 ; N a2 ; B 35 81 927 611 ; +C 35 ; WX 974 ; N a202 ; B 35 72 939 621 ; +C 36 ; WX 980 ; N a3 ; B 35 0 945 692 ; +C 37 ; WX 719 ; N a4 ; B 34 139 685 566 ; +C 38 ; WX 789 ; N a5 ; B 35 -14 755 705 ; +C 39 ; WX 790 ; N a119 ; B 35 -14 755 705 ; +C 40 ; WX 791 ; N a118 ; B 35 -13 761 705 ; +C 41 ; WX 690 ; N a117 ; B 35 138 655 553 ; +C 42 ; WX 960 ; N a11 ; B 35 123 925 568 ; +C 43 ; WX 939 ; N a12 ; B 35 134 904 559 ; +C 44 ; WX 549 ; N a13 ; B 29 -11 516 705 ; +C 45 ; WX 855 ; N a14 ; B 34 59 820 632 ; +C 46 ; WX 911 ; N a15 ; B 35 50 876 642 ; +C 47 ; WX 933 ; N a16 ; B 35 139 899 550 ; +C 48 ; WX 911 ; N a105 ; B 35 50 876 642 ; +C 49 ; WX 945 ; N a17 ; B 35 139 909 553 ; +C 50 ; WX 974 ; N a18 ; B 35 104 938 587 ; +C 51 ; WX 755 ; N a19 ; B 34 -13 721 705 ; +C 52 ; WX 846 ; N a20 ; B 36 -14 811 705 ; +C 53 ; WX 762 ; N a21 ; B 35 0 727 692 ; +C 54 ; WX 761 ; N a22 ; B 35 0 727 692 ; +C 55 ; WX 571 ; N a23 ; B -1 -68 571 661 ; +C 56 ; WX 677 ; N a24 ; B 36 -13 642 705 ; +C 57 ; WX 763 ; N a25 ; B 35 0 728 692 ; +C 58 ; WX 760 ; N a26 ; B 35 0 726 692 ; +C 59 ; WX 759 ; N a27 ; B 35 0 725 692 ; +C 60 ; WX 754 ; N a28 ; B 35 0 720 692 ; +C 61 ; WX 494 ; N a6 ; B 35 0 460 692 ; +C 62 ; WX 552 ; N a7 ; B 35 0 517 692 ; +C 63 ; WX 537 ; N a8 ; B 35 0 503 692 ; +C 64 ; WX 577 ; N a9 ; B 35 96 542 596 ; +C 65 ; WX 692 ; N a10 ; B 35 -14 657 705 ; +C 66 ; WX 786 ; N a29 ; B 35 -14 751 705 ; +C 67 ; WX 788 ; N a30 ; B 35 -14 752 705 ; +C 68 ; WX 788 ; N a31 ; B 35 -14 753 705 ; +C 69 ; WX 790 ; N a32 ; B 35 -14 756 705 ; +C 70 ; WX 793 ; N a33 ; B 35 -13 759 705 ; +C 71 ; WX 794 ; N a34 ; B 35 -13 759 705 ; +C 72 ; WX 816 ; N a35 ; B 35 -14 782 705 ; +C 73 ; WX 823 ; N a36 ; B 35 -14 787 705 ; +C 74 ; WX 789 ; N a37 ; B 35 -14 754 705 ; +C 75 ; WX 841 ; N a38 ; B 35 -14 807 705 ; +C 76 ; WX 823 ; N a39 ; B 35 -14 789 705 ; +C 77 ; WX 833 ; N a40 ; B 35 -14 798 705 ; +C 78 ; WX 816 ; N a41 ; B 35 -13 782 705 ; +C 79 ; WX 831 ; N a42 ; B 35 -14 796 705 ; +C 80 ; WX 923 ; N a43 ; B 35 -14 888 705 ; +C 81 ; WX 744 ; N a44 ; B 35 0 710 692 ; +C 82 ; WX 723 ; N a45 ; B 35 0 688 692 ; +C 83 ; WX 749 ; N a46 ; B 35 0 714 692 ; +C 84 ; WX 790 ; N a47 ; B 34 -14 756 705 ; +C 85 ; WX 792 ; N a48 ; B 35 -14 758 705 ; +C 86 ; WX 695 ; N a49 ; B 35 -14 661 706 ; +C 87 ; WX 776 ; N a50 ; B 35 -6 741 699 ; +C 88 ; WX 768 ; N a51 ; B 35 -7 734 699 ; +C 89 ; WX 792 ; N a52 ; B 35 -14 757 705 ; +C 90 ; WX 759 ; N a53 ; B 35 0 725 692 ; +C 91 ; WX 707 ; N a54 ; B 35 -13 672 704 ; +C 92 ; WX 708 ; N a55 ; B 35 -14 672 705 ; +C 93 ; WX 682 ; N a56 ; B 35 -14 647 705 ; +C 94 ; WX 701 ; N a57 ; B 35 -14 666 705 ; +C 95 ; WX 826 ; N a58 ; B 35 -14 791 705 ; +C 96 ; WX 815 ; N a59 ; B 35 -14 780 705 ; +C 97 ; WX 789 ; N a60 ; B 35 -14 754 705 ; +C 98 ; WX 789 ; N a61 ; B 35 -14 754 705 ; +C 99 ; WX 707 ; N a62 ; B 34 -14 673 705 ; +C 100 ; WX 687 ; N a63 ; B 36 0 651 692 ; +C 101 ; WX 696 ; N a64 ; B 35 0 661 691 ; +C 102 ; WX 689 ; N a65 ; B 35 0 655 692 ; +C 103 ; WX 786 ; N a66 ; B 34 -14 751 705 ; +C 104 ; WX 787 ; N a67 ; B 35 -14 752 705 ; +C 105 ; WX 713 ; N a68 ; B 35 -14 678 705 ; +C 106 ; WX 791 ; N a69 ; B 35 -14 756 705 ; +C 107 ; WX 785 ; N a70 ; B 36 -14 751 705 ; +C 108 ; WX 791 ; N a71 ; B 35 -14 757 705 ; +C 109 ; WX 873 ; N a72 ; B 35 -14 838 705 ; +C 110 ; WX 761 ; N a73 ; B 35 0 726 692 ; +C 111 ; WX 762 ; N a74 ; B 35 0 727 692 ; +C 112 ; WX 762 ; N a203 ; B 35 0 727 692 ; +C 113 ; WX 759 ; N a75 ; B 35 0 725 692 ; +C 114 ; WX 759 ; N a204 ; B 35 0 725 692 ; +C 115 ; WX 892 ; N a76 ; B 35 0 858 705 ; +C 116 ; WX 892 ; N a77 ; B 35 -14 858 692 ; +C 117 ; WX 788 ; N a78 ; B 35 -14 754 705 ; +C 118 ; WX 784 ; N a79 ; B 35 -14 749 705 ; +C 119 ; WX 438 ; N a81 ; B 35 -14 403 705 ; +C 120 ; WX 138 ; N a82 ; B 35 0 104 692 ; +C 121 ; WX 277 ; N a83 ; B 35 0 242 692 ; +C 122 ; WX 415 ; N a84 ; B 35 0 380 692 ; +C 123 ; WX 392 ; N a97 ; B 35 263 357 705 ; +C 124 ; WX 392 ; N a98 ; B 34 263 357 705 ; +C 125 ; WX 668 ; N a99 ; B 35 263 633 705 ; +C 126 ; WX 668 ; N a100 ; B 36 263 634 705 ; +C 161 ; WX 732 ; N a101 ; B 35 -143 697 806 ; +C 162 ; WX 544 ; N a102 ; B 56 -14 488 706 ; +C 163 ; WX 544 ; N a103 ; B 34 -14 508 705 ; +C 164 ; WX 910 ; N a104 ; B 35 40 875 651 ; +C 165 ; WX 667 ; N a106 ; B 35 -14 633 705 ; +C 166 ; WX 760 ; N a107 ; B 35 -14 726 705 ; +C 167 ; WX 760 ; N a108 ; B 0 121 758 569 ; +C 168 ; WX 776 ; N a112 ; B 35 0 741 705 ; +C 169 ; WX 595 ; N a111 ; B 34 -14 560 705 ; +C 170 ; WX 694 ; N a110 ; B 35 -14 659 705 ; +C 171 ; WX 626 ; N a109 ; B 34 0 591 705 ; +C 172 ; WX 788 ; N a120 ; B 35 -14 754 705 ; +C 173 ; WX 788 ; N a121 ; B 35 -14 754 705 ; +C 174 ; WX 788 ; N a122 ; B 35 -14 754 705 ; +C 175 ; WX 788 ; N a123 ; B 35 -14 754 705 ; +C 176 ; WX 788 ; N a124 ; B 35 -14 754 705 ; +C 177 ; WX 788 ; N a125 ; B 35 -14 754 705 ; +C 178 ; WX 788 ; N a126 ; B 35 -14 754 705 ; +C 179 ; WX 788 ; N a127 ; B 35 -14 754 705 ; +C 180 ; WX 788 ; N a128 ; B 35 -14 754 705 ; +C 181 ; WX 788 ; N a129 ; B 35 -14 754 705 ; +C 182 ; WX 788 ; N a130 ; B 35 -14 754 705 ; +C 183 ; WX 788 ; N a131 ; B 35 -14 754 705 ; +C 184 ; WX 788 ; N a132 ; B 35 -14 754 705 ; +C 185 ; WX 788 ; N a133 ; B 35 -14 754 705 ; +C 186 ; WX 788 ; N a134 ; B 35 -14 754 705 ; +C 187 ; WX 788 ; N a135 ; B 35 -14 754 705 ; +C 188 ; WX 788 ; N a136 ; B 35 -14 754 705 ; +C 189 ; WX 788 ; N a137 ; B 35 -14 754 705 ; +C 190 ; WX 788 ; N a138 ; B 35 -14 754 705 ; +C 191 ; WX 788 ; N a139 ; B 35 -14 754 705 ; +C 192 ; WX 788 ; N a140 ; B 35 -14 754 705 ; +C 193 ; WX 788 ; N a141 ; B 35 -14 754 705 ; +C 194 ; WX 788 ; N a142 ; B 35 -14 754 705 ; +C 195 ; WX 788 ; N a143 ; B 35 -14 754 705 ; +C 196 ; WX 788 ; N a144 ; B 35 -14 754 705 ; +C 197 ; WX 788 ; N a145 ; B 35 -14 754 705 ; +C 198 ; WX 788 ; N a146 ; B 35 -14 754 705 ; +C 199 ; WX 788 ; N a147 ; B 35 -14 754 705 ; +C 200 ; WX 788 ; N a148 ; B 35 -14 754 705 ; +C 201 ; WX 788 ; N a149 ; B 35 -14 754 705 ; +C 202 ; WX 788 ; N a150 ; B 35 -14 754 705 ; +C 203 ; WX 788 ; N a151 ; B 35 -14 754 705 ; +C 204 ; WX 788 ; N a152 ; B 35 -14 754 705 ; +C 205 ; WX 788 ; N a153 ; B 35 -14 754 705 ; +C 206 ; WX 788 ; N a154 ; B 35 -14 754 705 ; +C 207 ; WX 788 ; N a155 ; B 35 -14 754 705 ; +C 208 ; WX 788 ; N a156 ; B 35 -14 754 705 ; +C 209 ; WX 788 ; N a157 ; B 35 -14 754 705 ; +C 210 ; WX 788 ; N a158 ; B 35 -14 754 705 ; +C 211 ; WX 788 ; N a159 ; B 35 -14 754 705 ; +C 212 ; WX 894 ; N a160 ; B 35 58 860 634 ; +C 213 ; WX 838 ; N a161 ; B 35 152 803 540 ; +C 214 ; WX 1016 ; N a163 ; B 34 152 981 540 ; +C 215 ; WX 458 ; N a164 ; B 35 -127 422 820 ; +C 216 ; WX 748 ; N a196 ; B 35 94 698 597 ; +C 217 ; WX 924 ; N a165 ; B 35 140 890 552 ; +C 218 ; WX 748 ; N a192 ; B 35 94 698 597 ; +C 219 ; WX 918 ; N a166 ; B 35 166 884 526 ; +C 220 ; WX 927 ; N a167 ; B 35 32 892 660 ; +C 221 ; WX 928 ; N a168 ; B 35 129 891 562 ; +C 222 ; WX 928 ; N a169 ; B 35 128 893 563 ; +C 223 ; WX 834 ; N a170 ; B 35 155 799 537 ; +C 224 ; WX 873 ; N a171 ; B 35 93 838 599 ; +C 225 ; WX 828 ; N a172 ; B 35 104 791 588 ; +C 226 ; WX 924 ; N a173 ; B 35 98 889 594 ; +C 227 ; WX 924 ; N a162 ; B 35 98 889 594 ; +C 228 ; WX 917 ; N a174 ; B 35 0 882 692 ; +C 229 ; WX 930 ; N a175 ; B 35 84 896 608 ; +C 230 ; WX 931 ; N a176 ; B 35 84 896 608 ; +C 231 ; WX 463 ; N a177 ; B 35 -99 429 791 ; +C 232 ; WX 883 ; N a178 ; B 35 71 848 623 ; +C 233 ; WX 836 ; N a179 ; B 35 44 802 648 ; +C 234 ; WX 836 ; N a193 ; B 35 44 802 648 ; +C 235 ; WX 867 ; N a180 ; B 35 101 832 591 ; +C 236 ; WX 867 ; N a199 ; B 35 101 832 591 ; +C 237 ; WX 696 ; N a181 ; B 35 44 661 648 ; +C 238 ; WX 696 ; N a200 ; B 35 44 661 648 ; +C 239 ; WX 874 ; N a182 ; B 35 77 840 619 ; +C 241 ; WX 874 ; N a201 ; B 35 73 840 615 ; +C 242 ; WX 760 ; N a183 ; B 35 0 725 692 ; +C 243 ; WX 946 ; N a184 ; B 35 160 911 533 ; +C 244 ; WX 771 ; N a197 ; B 34 37 736 655 ; +C 245 ; WX 865 ; N a185 ; B 35 207 830 481 ; +C 246 ; WX 771 ; N a194 ; B 34 37 736 655 ; +C 247 ; WX 888 ; N a198 ; B 34 -19 853 712 ; +C 248 ; WX 967 ; N a186 ; B 35 124 932 568 ; +C 249 ; WX 888 ; N a195 ; B 34 -19 853 712 ; +C 250 ; WX 831 ; N a187 ; B 35 113 796 579 ; +C 251 ; WX 873 ; N a188 ; B 36 118 838 578 ; +C 252 ; WX 927 ; N a189 ; B 35 150 891 542 ; +C 253 ; WX 970 ; N a190 ; B 35 76 931 616 ; +C 254 ; WX 918 ; N a191 ; B 34 99 884 593 ; +C -1 ; WX 410 ; N a86 ; B 35 0 375 692 ; +C -1 ; WX 509 ; N a85 ; B 35 0 475 692 ; +C -1 ; WX 334 ; N a95 ; B 35 0 299 692 ; +C -1 ; WX 509 ; N a205 ; B 35 0 475 692 ; +C -1 ; WX 390 ; N a89 ; B 35 -14 356 705 ; +C -1 ; WX 234 ; N a87 ; B 35 -14 199 705 ; +C -1 ; WX 276 ; N a91 ; B 35 0 242 692 ; +C -1 ; WX 390 ; N a90 ; B 35 -14 355 705 ; +C -1 ; WX 410 ; N a206 ; B 35 0 375 692 ; +C -1 ; WX 317 ; N a94 ; B 35 0 283 692 ; +C -1 ; WX 317 ; N a93 ; B 35 0 283 692 ; +C -1 ; WX 276 ; N a92 ; B 35 0 242 692 ; +C -1 ; WX 334 ; N a96 ; B 35 0 299 692 ; +C -1 ; WX 234 ; N a88 ; B 35 -14 199 705 ; +EndCharMetrics +EndFontMetrics diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/gnu.gpl b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/gnu.gpl new file mode 100755 index 0000000000000..0c7dfb977c07b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/gnu.gpl @@ -0,0 +1,344 @@ +From rms@santafe.edu Thu Mar 12 19:35:41 1998 +From: Richard Stallman +To: jeff@cs.usyd.edu.au + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/README b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/README new file mode 100755 index 0000000000000..c4f8632b17aa8 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/README @@ -0,0 +1,124 @@ +Format of Lout hyphenation information files + +Jeffrey H. Kingston +22 December 1992 +21 September 1994 +6 June 1995 +3 April 1996 + +Basser Lout Version 3 incorporates automatic hyphenation using the +method introduced by TeX (see Appendix H of the TeXBook by D. E. Knuth), +with support for multilingual hyphenation. No special action is required +to install hyphenation unless it is desired to change the hyphenation +information that controls it. + +There is one hyphenation information file for each language, and it is +named in the langdef of that language. For example: + + langdef German Deutsch { german } + +(There will usually be other information between the hyphenation file +name and the closing brace, not relevant here.) This example means that +unpacked Lout hyphenation file german.lh or its packed equivalent +german.lp (see below) is to be used when hyphenating German words. These +files are kept in the Lout system hyphenation directory (this directory). If +a language is desired but no hyphenation information file is available, the +file name may be replaced with -, and then the language will be defined but +hyphenation in that language will never be attempted. Another possibility +is to include a placeholder file for the language (see below). + +The first time on any run that German hyphenation is required, Lout will +search the directories of the hyphenation path for a binary file called +german.lp, which contains a binary form of the hyphenation patterns in +german.lh, modified so that the file may be shared by big-endian and +little-endian machines. If german.lp cannot be found, Lout then searches +for the text file german.lh instead, and uses it to construct german.lp. +To change the German hyphenation patterns, delete german.lp and modify +german.lh; the rest is automatic. + +Alternatively, if lout is invoked with the -x flag and the langdef line +above appears in its input, it will read german.lh and produce german.lp +immediately. This is intended for setting up: it is good to create all +these packed files at setup time, since a subsequent lout run that needs them +will not have write permission in the Lout system hyphenation directory. + +An unpacked Lout hyphenation information (.lh) file mainly contains a +long list of TeX hyphenation patterns. It must begin with either + + Lout hyphenation information + +or + Lout hyphenation placeholder + +alone on the first line. In the second case, it is understood that the +file is a placeholder (i.e. a stub file which might be overwritten with +a real file in the future), and Lout does not read any futher; the effect +is that Lout will not hyphenate this language, but not complain about the +absence of the file either. + +In the non-placeholder case, following the header line comes the "Classes:" +heading followed by the character classes. For example: + + Classes: + @!$%^&*()_-+=~`{[}]:;'|<,.>?/0123456789 + aA + bB + cC + ... + yY + zZ + +The hyphenation process treats the characters in each class as identical +(so the classes above ensure that the distinction between upper and lower +case is ignored). By definition, the characters of the first class are +"non-letters", and the characters of the remaining classes are "letters". +Notice that these are actual characters, not character names: hyphenation +files are encoding-specific. + +Next comes the "Exceptions:" heading followed by the exceptions, which +are words (composed of letters and "-" only) whose hyphenation is to be +treated as a special case. For example: + + Exceptions: + ta-ble + phil-an-thropic + +These words may be hyphenated in the places shown by the "-" characters. +Character classes are in effect here (Table will be hyphenated as Ta-ble). +If there are no exceptions, "Exceptions:" may be omitted. + +Next comes an optional LengthLimit section, which tells Lout to ignore +some patterns. For example, + + LengthLimit: + 4 + +means that patterns containing more than 4 letters (note that +. counts as a letter) are to be ignored. The purpose is to discard +the least important patterns from files that are too large for Lout +to handle otherwise. None of the files actually use this at present, +but hyphenation files seem to be getting larger and larger, and if +any whoppers come along they might have to be trimmed in this way. + +Finally comes the "Patterns:" heading followed by the list of TeX +hyphenation patterns. Apart from the weighting digits, the patterns +should contain only letters. Lout understands some TeX escape sequences +e.g. it will accept \^e anywhere in a hyphenation file as the ecircumflex +character. + +The file may contain comments, which begin with % (either at the start +of a line or after a white space character) and go to end of line. The +headings, classes, exceptions and patterns are separated by arbitrary +white space. + +Briefly, hyphenation of a word works like this. If the word contains a +character not found in any character class, it will not be hyphenated. +Otherwise the word is analysed into sequences of letters separated by +sequences of non-letters. Each sequence of five or more letters is +then matched, either with an exception or else with the hyphenation +patterns, and hyphenated. The hyphen character "-" is treated specially. + +Extreme lengths were resorted to to compress the .lp file as much as +possible. Files significantly larger than german.lh are likely to cause +Lout to abort with an error message. Please contact jeff@cs.usyd.edu.au +if you have problems with this or anything else. diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/czech.lh b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/czech.lh new file mode 100755 index 0000000000000..8527abe8657a4 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/czech.lh @@ -0,0 +1,4582 @@ +Lout hyphenation information +% +% This is a Czech hyphenation file created by Jeff Kingston +% on 16 July 1995 from a TeX file supplied by Pavel Vana. +% The only comment received with the file was this one: +% +% Czech hyphenation patterns - Lala 8.11.1991 +% +% Like Czech itself, this file is encoded in the Latin2 +% character set. Czech has 15 accented letters, each with +% upper-case and lower-case forms: +% +% PostScript Latin2 Latin2 Latin2 +% name decimal octal literal +% code code character +% +% aacute 225 341 á +% ccaron 232 350 è +% dcaron 239 357 ï +% eacute 233 351 é +% ecaron 236 354 ì +% iacute 237 355 í +% ncaron 242 362 ò +% oacute 243 363 ó +% rcaron 248 370 ø +% scaron 185 271 ¹ +% tcaron 187 273 » +% uacute 250 372 ú +% uring 249 371 ù +% yacute 253 375 ý +% zcaron 190 276 ¾ +% +% Aacute 193 301 Á +% Ccaron 200 310 È +% Dcaron 207 317 Ï +% Eacute 201 311 É +% Ecaron 204 314 Ì +% Iacute 205 315 Í +% Ncaron 210 322 Ò +% Oacute 211 323 Ó +% Rcaron 216 330 Ø +% Scaron 169 251 © +% Tcaron 171 253 « +% Uacute 218 332 Ú +% Uring 217 331 Ù +% Yacute 221 335 Ý +% Zcaron 174 256 ® +% + +Classes: +@!$%^&*()_-+=~`{[}]:;'|<,.>?/0123456789 +aA +bB +cC +dD +eE +fF +gG +hH +iI +jJ +kK +lL +mM +nN +oO +pP +qQ +rR +sS +tT +uU +vV +wW +xX +yY +zZ +áÁ +èÈ +ïÏ +éÉ +ìÌ +íÍ +òÒ +óÓ +øØ +¹© +»« +úÚ +ùÙ +ýÝ +¾® + +Patterns: +%samohláska-souhláska-samohláska +a1¾a +a1¹a +a1èa +a1øa +a1ca +a1ja +a1ïa +a1»a +a1òa +a1ha +a1cha +a1ka +a1ra +a1da +a1ta +a1na +a1¾e +a1¹e +a1èe +a1øe +a1ce +a1je +a1he +a1che +a1ke +a1re +a1de +a1te +a1ne +a1ri +a1¾i +a1¹i +a1èi +a1øi +a1ci +a1ji +a1di +a1ti +a1ni +a1¾o +a1¹o +a1èo +a1øo +a1co +a1jo +a1ïo +a1»o +a1òo +a1ho +a1cho +a1ko +a1ro +a1do +a1to +a1no +a1¾u +a1¹u +a1èu +a1øu +a1cu +a1ju +a1ïu +a1»u +a1òu +a1hu +a1chu +a1ku +a1ru +a1du +a1tu +a1nu +a1hy +a1chy +a1ky +a1ry +a1dy +a1ty +a1ny +a1¾á +a1¹á +a1èá +a1øá +a1cá +a1já +a1ïá +a1»á +a1òá +a1há +a1chá +a1ká +a1rá +a1dá +a1tá +a1ná +a1¾é +a1¹é +a1èé +a1øé +a1cé +a1jé +a1hé +a1ché +a1ké +a1ré +a1dé +a1té +a1né +a1¾í +a1¹í +a1èí +a1øí +a1cí +a1jí +a1dí +a1tí +a1ní +a1kó +a1ró +a1dó +a1tó +a1nó +a1hý +a1chý +a1ký +a1rý +a1dý +a1tý +a1ný +a1dì +a1tì +a1nì +e1¾a +e1¹a +e1èa +e1øa +e1ca +e1ja +e1ïa +e1»a +e1òa +e1ha +e1cha +e1ka +e1ra +e1da +e1ta +e1na +e1¾e +e1¹e +e1èe +e1øe +e1ce +e1je +e1he +e1che +e1ke +e1re +e1de +e1te +e1ne +e1¾i +e1¹i +e1èi +e1øi +e1ci +e1ji +e1di +e1ti +e1ni +e1¾o +e1¹o +e1èo +e1øo +e1co +e1jo +e1ïo +e1»o +e1òo +e1ho +e1cho +e1ko +e1ro +e1do +e1to +e1no +e1¾u +e1¹u +e1èu +e1øu +e1cu +e1ju +e1ïu +e1»u +e1òu +e1hu +e1chu +e1ku +e1ru +e1du +e1tu +e1nu +e1hy +e1chy +e1ky +e1ry +e1dy +e1ty +e1ny +e1¾á +e1¹á +e1èá +e1øá +e1cá +e1já +e1há +e1chá +e1ká +e1rá +e1dá +e1tá +e1ná +e1¾é +e1¹é +e1èé +e1øé +e1cé +e1jé +e1hé +e1ché +e1ké +e1ré +e1dé +e1té +e1né +e1¾í +e1¹í +e1èí +e1øí +e1cí +e1jí +e1dí +e1tí +e1ní +e1hý +e1chý +e1ký +e1rý +e1dý +e1tý +e1ný +e1dì +e1tì +e1nì +i1¾a +i1¹a +i1èa +i1øa +i1ca +i1ja +i1ïa +i1»a +i1òa +i1ha +i1cha +i1ka +i1ra +i1da +i1ta +i1na +i1¾e +i1¹e +i1èe +i1øe +i1ce +i1je +i1he +i1che +i1ke +i1re +i1de +i1te +i1ne +i1¾i +i1¹i +i1èi +i1øi +i1ci +i1ji +i1di +i1ti +i1ni +i1¾o +i1¹o +i1èo +i1øo +i1co +i1jo +i1ïo +i1»o +i1òo +i1ho +i1cho +i1ko +i1ro +i1do +i1to +i1no +i1¾u +i1¹u +i1èu +i1øu +i1cu +i1ju +i1ïu +i1»u +i1òu +i1hu +i1chu +i1ku +i1ru +i1du +i1tu +i1nu +i1hy +i1chy +i1ky +i1ry +i1dy +i1ty +i1ny +i1¾á +i1¹á +i1èá +i1øá +i1cá +i1já +i1ïá +i1»á +i1òá +i1há +i1chá +i1ká +i1rá +i1dá +i1tá +i1ná +i1¾é +i1¹é +i1èé +i1øé +i1cé +i1jé +i1hé +i1ché +i1ké +i1ré +i1dé +i1té +i1né +i1¾í +i1¹í +i1èí +i1øí +i1cí +i1jí +i1dí +i1tí +i1ní +i1kó +i1ró +i1hý +i1chý +i1ký +i1rý +i1dý +i1tý +i1ný +i1dì +i1tì +i1nì +o1¾a +o1¹a +o1èa +o1øa +o1ca +o1ja +o1ïa +o1»a +o1òa +o1ha +o1cha +o1ka +o1ra +o1da +o1ta +o1na +o1¾e +o1¹e +o1èe +o1øe +o1ce +o1je +o1he +o1che +o1ke +o1re +o1de +o1te +o1ne +o1¾i +o1¹i +o1èi +o1øi +o1ci +o1ji +o1di +o1ti +o1ni +o1¾o +o1¹o +o1èo +o1øo +o1co +o1jo +o1ïo +o1»o +o1òo +o1ho +o1cho +o1ko +o1ro +o1do +o1to +o1no +o1¾u +o1¹u +o1èu +o1øu +o1cu +o1ju +o1ïu +o1»u +o1òu +o1hu +o1chu +o1ku +o1ru +o1du +o1tu +o1nu +o1hy +o1chy +o1ky +o1ry +o1dy +o1ty +o1ny +o1¾á +o1¹á +o1èá +o1øá +o1cá +o1já +o1há +o1chá +o1ká +o1rá +o1dá +o1tá +o1ná +o1¾é +o1¹é +o1èé +o1øé +o1cé +o1jé +o1hé +o1ché +o1ké +o1ré +o1dé +o1té +o1né +o1¾í +o1¹í +o1èí +o1øí +o1cí +o1jí +o1dí +o1tí +o1ní +o1hý +o1chý +o1ký +o1rý +o1dý +o1tý +o1ný +o1dì +o1tì +o1nì +u1¾a +u1¹a +u1èa +u1øa +u1ca +u1ja +u1ïa +u1»a +u1òa +u1ha +u1cha +u1ka +u1ra +u1da +u1ta +u1na +u1¾e +u1¹e +u1èe +u1øe +u1ce +u1je +u1he +u1che +u1ke +u1re +u1de +u1te +u1ne +u1¾i +u1¹i +u1èi +u1øi +u1ci +u1ji +u1di +u1ti +u1ni +u1¾o +u1¹o +u1èo +u1øo +u1co +u1jo +u1ïo +u1»o +u1òo +u1ho +u1cho +u1ko +u1ro +u1do +u1to +u1no +u1¾u +u1¹u +u1èu +u1øu +u1cu +u1ju +u1ïu +u1»u +u1òu +u1hu +u1chu +u1ku +u1ru +u1du +u1tu +u1nu +u1hy +u1chy +u1ky +u1ry +u1dy +u1ty +u1ny +u1¾á +u1¹á +u1èá +u1øá +u1cá +u1já +u1ïá +u1»á +u1òá +u1há +u1chá +u1ká +u1rá +u1dá +u1tá +u1ná +u1¾é +u1¹é +u1èé +u1øé +u1cé +u1jé +u1hé +u1ché +u1ké +u1ré +u1dé +u1té +u1né +u1¾í +u1¹í +u1èí +u1øí +u1cí +u1jí +u1dí +u1tí +u1ní +u1hý +u1chý +u1ký +u1rý +u1dý +u1tý +u1ný +u1dì +u1tì +u1nì +y1¾a +y1¹a +y1èa +y1øa +y1ca +y1ja +y1ha +y1cha +y1ka +y1ra +y1da +y1ta +y1na +y1¾e +y1¹e +y1èe +y1øe +y1ce +y1je +y1he +y1che +y1ke +y1re +y1de +y1te +y1ne +y1¾i +y1¹i +y1èi +y1øi +y1ci +y1ji +y1di +y1ti +y1ni +y1¾o +y1¹o +y1èo +y1øo +y1co +y1jo +y1òo +y1ho +y1cho +y1ko +y1ro +y1do +y1to +y1no +y1¾u +y1¹u +y1èu +y1øu +y1cu +y1ju +y1hu +y1chu +y1ku +y1ru +y1du +y1tu +y1nu +y1hy +y1chy +y1ky +y1ry +y1dy +y1ty +y1ny +y1¾á +y1¹á +y1èá +y1øá +y1cá +y1já +y1há +y1chá +y1ká +y1rá +y1dá +y1tá +y1ná +y1¾é +y1¹é +y1èé +y1øé +y1cé +y1jé +y1hé +y1ché +y1ké +y1ré +y1dé +y1té +y1né +y1¾í +y1¹í +y1èí +y1øí +y1cí +y1jí +y1dí +y1tí +y1ní +y1hý +y1chý +y1ký +y1rý +y1dý +y1tý +y1ný +y1dì +y1tì +y1nì +á1¾a +á1¹a +á1èa +á1øa +á1ca +á1ja +á1ïa +á1»a +á1òa +á1ha +á1cha +á1ka +á1ra +á1da +á1ta +á1na +á1¾e +á1¹e +á1èe +á1øe +á1ce +á1je +á1he +á1che +á1ke +á1re +á1de +á1te +á1ne +á1¾i +á1¹i +á1èi +á1øi +á1ci +á1ji +á1di +á1ti +á1ni +á1¾o +á1¹o +á1èo +á1øo +á1co +á1jo +á1ïo +á1»o +á1òo +á1ho +á1cho +á1ko +á1ro +á1do +á1to +á1no +á1¾u +á1¹u +á1èu +á1øu +á1cu +á1ju +á1ïu +á1»u +á1òu +á1hu +á1chu +á1ku +á1ru +á1du +á1tu +á1nu +á1hy +á1chy +á1ky +á1ry +á1dy +á1ty +á1ny +á1¾á +á1¹á +á1èá +á1øá +á1cá +á1já +á1há +á1chá +á1ká +á1rá +á1dá +á1tá +á1ná +á1¾é +á1¹é +á1èé +á1øé +á1cé +á1jé +á1hé +á1ché +á1ké +á1ré +á1dé +á1té +á1né +á1¾í +á1¹í +á1èí +á1øí +á1cí +á1jí +á1dí +á1tí +á1ní +á1hý +á1chý +á1ký +á1rý +á1dý +á1tý +á1ný +á1dì +á1tì +á1nì +é1¾a +é1¹a +é1èa +é1øa +é1ca +é1ja +é1ïa +é1»a +é1òa +é1ha +é1cha +é1ka +é1ra +é1da +é1ta +é1na +é1¾e +é1¹e +é1èe +é1øe +é1ce +é1je +é1he +é1che +é1ke +é1re +é1de +é1te +é1ne +é1¾i +é1¹i +é1èi +é1øi +é1ci +é1ji +é1di +é1ti +é1ni +é1¾o +é1¹o +é1èo +é1øo +é1co +é1jo +é1ïo +é1»o +é1ho +é1cho +é1ko +é1ro +é1do +é1to +é1no +é1¾u +é1¹u +é1èu +é1øu +é1cu +é1ju +é1ïu +é1»u +é1hu +é1chu +é1ku +é1ru +é1du +é1tu +é1nu +é1hy +é1chy +é1ky +é1ry +é1dy +é1ty +é1ny +é1¾á +é1¹á +é1èá +é1øá +é1cá +é1já +é1há +é1chá +é1ká +é1rá +é1dá +é1tá +é1ná +é1¾é +é1¹é +é1èé +é1øé +é1cé +é1jé +é1hé +é1ché +é1ké +é1ré +é1dé +é1té +é1né +é1¾í +é1¹í +é1èí +é1øí +é1cí +é1jí +é1dí +é1tí +é1ní +é1hý +é1chý +é1ký +é1rý +é1dý +é1tý +é1ný +é1dì +é1tì +é1nì +í1¾a +í1¹a +í1èa +í1øa +í1ca +í1ja +í1ïa +í1»a +í1òa +í1ha +í1cha +í1ka +í1ra +í1da +í1ta +í1na +í1¾e +í1¹e +í1èe +í1øe +í1ce +í1je +í1he +í1che +í1ke +í1re +í1de +í1te +í1ne +í1¾i +í1¹i +í1èi +í1øi +í1ci +í1ji +í1di +í1ti +í1ni +í1¾o +í1¹o +í1èo +í1øo +í1co +í1jo +í1ïo +í1»o +í1òo +í1ho +í1cho +í1ko +í1ro +í1do +í1to +í1no +í1¾u +í1¹u +í1èu +í1øu +í1cu +í1ju +í1ïu +í1»u +í1òu +í1hu +í1chu +í1ku +í1ru +í1du +í1tu +í1nu +í1hy +í1chy +í1ky +í1ry +í1dy +í1ty +í1ny +í1¾á +í1¹á +í1èá +í1øá +í1cá +í1já +í1ïá +í1»á +í1òá +í1há +í1chá +í1ká +í1rá +í1dá +í1tá +í1ná +í1¾é +í1¹é +í1èé +í1øé +í1cé +í1jé +í1hé +í1ché +í1ké +í1ré +í1dé +í1té +í1né +í1¾í +í1¹í +í1èí +í1øí +í1cí +í1jí +í1dí +í1tí +í1ní +í1hý +í1chý +í1ký +í1rý +í1dý +í1tý +í1ný +í1dì +í1tì +í1nì +ó1¾a +ó1da +ó1do +ó1du +ó1ta +ó1tu +ó1to +ó1na +ó1nu +ó1no +ó1¾e +ó1øe +ó1je +ó1ti +ó1ni +ì1¾a +ì1¹a +ì1èa +ì1øa +ì1ca +ì1ja +ì1ha +ì1cha +ì1ka +ì1ra +ì1da +ì1ta +ì1na +ì1¾e +ì1¹e +ì1èe +ì1øe +ì1ce +ì1je +ì1he +ì1che +ì1ke +ì1re +ì1de +ì1te +ì1ne +ì1¾i +ì1¹i +ì1èi +ì1øi +ì1ci +ì1ji +ì1di +ì1ti +ì1ni +ì1¾o +ì1¹o +ì1èo +ì1øo +ì1co +ì1jo +ì1ho +ì1cho +ì1ko +ì1ro +ì1do +ì1to +ì1no +ì1¾u +ì1¹u +ì1èu +ì1øu +ì1cu +ì1ju +ì1hu +ì1chu +ì1ku +ì1ru +ì1du +ì1tu +ì1nu +ì1hy +ì1chy +ì1ky +ì1ry +ì1dy +ì1ty +ì1ny +ì1¾á +ì1¹á +ì1èá +ì1øá +ì1cá +ì1já +ì1há +ì1chá +ì1ká +ì1rá +ì1dá +ì1tá +ì1ná +ì1¾é +ì1¹é +ì1èé +ì1øé +ì1cé +ì1jé +ì1ché +ì1ké +ì1ré +ì1dé +ì1té +ì1né +ì1¾í +ì1¹í +ì1èí +ì1øí +ì1cí +ì1jí +ì1dí +ì1tí +ì1ní +ì1hý +ì1chý +ì1ký +ì1rý +ì1dý +ì1tý +ì1ný +ì1dì +ì1tì +ì1nì +a1ga +a1ge +a1gi +a1go +a1gó +a1gu +e1ga +e1ge +e1gi +e1go +e1gu +e1gá +i1ga +i1ge +i1gi +i1go +i1gu +i1gá +i1gó +o1ga +o1ge +o1gi +o1go +o1gu +u1ga +u1ge +u1gi +u1gy +u1go +u1gu +a1xa +a1xe +a1xi +a1xo +a1xu +a1xó +e1xa +e1xe +e1xi +e1xo +e1xu +i1xa +i1xe +i1xi +i1xo +i1xu +o1xa +o1xe +o1xi +o1xo +o1xu +ù1zu +u1zù +ù1zo +o1zù +ì1zù +ù1zí +í1zù +ó1zù +ù1zi +i1zù +ù1zá +á1zù +é1zù +ù1ze +e1zù +ù1za +a1zù +ý1zù +ù1zù +ù1zy +y1zù +ù1òu +u1òù +ù1òo +o1òù +ù1òí +ó1òù +ù1òi +i1òù +á1òù +é1òù +e1òù +ù1òa +a1òù +ý1òù +ù1vu +u1vù +ù1vo +o1vù +ù1vì +ì1vù +ù1ví +í1vù +ù1vi +i1vù +á1vù +é1vù +ù1ve +e1vù +ù1va +a1vù +ý1vù +ù1vù +ù1vy +y1vù +ù1»a +ù1tu +u1tù +ù1to +o1tù +ù1tì +ì1tù +ù1tí +í1tù +ó1tù +ù1ti +i1tù +á1tù +é1tù +ù1te +e1tù +ù1ta +a1tù +ý1tù +ù1tù +ù1ty +y1tù +ù1su +u1sù +ù1so +o1sù +ì1sù +ù1sí +í1sù +ó1sù +ù1si +i1sù +ù1sá +á1sù +é1sù +ù1se +e1sù +ù1sa +a1sù +ý1sù +ù1sy +y1sù +ù1ru +u1rù +ù1ro +o1rù +ì1rù +í1rù +ó1rù +i1rù +ù1rá +á1rù +é1rù +ù1re +e1rù +ù1ra +a1rù +ù1rý +ý1rù +ù1rù +ù1ry +y1rù +u1pù +ù1po +o1pù +ù1pì +ì1pù +ù1pí +í1pù +i1pù +é1pù +ù1pe +e1pù +a1pù +ý1pù +y1pù +u1nù +o1nù +ù1nì +ì1nù +ù1ní +í1nù +ó1nù +ù1ni +i1nù +á1nù +é1nù +ù1ne +e1nù +ù1na +a1nù +ý1nù +ù1nù +ù1ny +y1nù +u1mù +o1mù +ù1mì +ì1mù +í1mù +ó1mù +i1mù +á1mù +é1mù +e1mù +ù1ma +a1mù +ý1mù +ù1mù +ù1my +y1mù +ù1lu +u1lù +ù1lo +o1lù +ì1lù +ù1lí +í1lù +ó1lù +ù1li +i1lù +á1lù +é1lù +ù1le +e1lù +ù1la +a1lù +ù1lý +ý1lù +ù1lù +ù1ly +y1lù +u1kù +ù1ko +o1kù +ì1kù +í1kù +ó1kù +i1kù +á1kù +é1kù +e1kù +ù1ka +a1kù +ý1kù +ù1ky +y1kù +u1jù +o1jù +ì1jù +ù1jí +í1jù +ó1jù +ù1ji +i1jù +á1jù +é1jù +ù1je +e1jù +ù1ja +a1jù +ý1jù +y1jù +u1hù +o1hù +ì1hù +í1hù +i1hù +ù1há +á1hù +é1hù +ù1he +e1hù +ù1ha +a1hù +ù1hù +ù1hy +y1hù +é1fù +a1fù +y1fù +ù1¾u +u1¾ù +ù1¾o +o1¾ù +ì1¾ù +ù1¾í +í1¾ù +ó1¾ù +ù1¾i +i1¾ù +ù1¾á +á1¾ù +é1¾ù +ù1¾e +e1¾ù +ù1¾a +a1¾ù +ý1¾ù +y1¾ù +ù1du +u1dù +ù1do +o1dù +ù1dì +ì1dù +í1dù +ó1dù +ù1di +i1dù +á1dù +é1dù +e1dù +ù1da +a1dù +ý1dù +ù1dy +y1dù +u1cù +o1cù +ì1cù +ù1cí +í1cù +i1cù +á1cù +e1cù +a1cù +ý1cù +y1cù +u1bù +o1bù +ù1bì +ì1bù +í1bù +ó1bù +i1bù +á1bù +é1bù +e1bù +ù1ba +a1bù +ý1bù +ù1by +y1bù +u1èù +o1èù +ì1èù +í1èù +ù1èi +i1èù +á1èù +ù1èe +e1èù +a1èù +ý1èù +ù1èy +y1èù +u1ïù +o1ïù +í1ïù +á1ïù +é1ïù +e1ïù +a1ïù +ù1chu +u1chù +ù1cho +o1chù +ì1chù +í1chù +i1chù +á1chù +e1chù +ù1cha +a1chù +ù1chý +ý1chù +ù1chù +ù1chy +y1chù +u1øù +o1øù +ì1øù +ù1øí +í1øù +ù1øi +i1øù +á1øù +é1øù +ù1øe +e1øù +a1øù +ý1øù +y1øù +ù1¹u +u1¹ù +ù1¹o +o1¹ù +ì1¹ù +ù1¹í +í1¹ù +ù1¹i +i1¹ù +á1¹ù +é1¹ù +ù1¹e +e1¹ù +ù1¹a +a1¹ù +ý1¹ù +ù1¹ù +y1¹ù +u1bu +u1fu +u1lu +u1mu +u1pu +u1su +u1vu +u1zu +u1bo +u1fo +u1lo +u1mo +u1po +u1so +u1vo +u1zo +u1bì +u1mì +u1pì +u1vì +u1bí +u1fí +u1lí +u1mí +u1pí +u1sí +u1ví +u1zí +u1bi +u1fi +u1li +u1mi +u1pi +u1si +u1vi +u1zi +u1bá +u1fá +u1lá +u1má +u1pá +u1sá +u1vá +u1zá +u1bé +u1lé +u1mé +u1pé +u1sé +u1vé +u1zé +u1be +u1fe +u1le +u1me +u1pe +u1se +u1ve +u1ze +u1ba +u1fa +u1la +u1ma +u1pa +u1sa +u1va +u1za +u1bý +u1lý +u1mý +u1pý +u1sý +u1vý +u1zý +u1by +u1fy +u1my +u1py +u1sy +u1vy +o1bu +o1fu +o1lu +o1mu +o1pu +o1su +o1vu +o1zu +o1bo +o1fo +o1lo +o1mo +o1po +o1so +o1vo +o1zo +o1bì +o1mì +o1pì +o1vì +o1bí +o1fí +o1lí +o1mí +o1pí +o1sí +o1ví +o1zí +o1fó +o1zó +o1bi +o1fi +o1li +o1mi +o1pi +o1si +o1vi +o1zi +o1bá +o1fá +o1lá +o1má +o1pá +o1sá +o1vá +o1zá +o1bé +o1fé +o1lé +o1mé +o1pé +o1sé +o1vé +o1zé +o1be +o1fe +o1le +o1me +o1pe +o1se +o1ve +o1ze +o1ba +o1fa +o1la +o1ma +o1pa +o1sa +o1va +o1za +o1bý +o1lý +o1mý +o1pý +o1sý +o1vý +o1zý +o1by +o1ly +o1my +o1py +o1sy +o1vy +o1zy +ú1lu +ú1su +ú1zu +ú1bo +ú1lo +ú1mo +ú1po +ú1vo +ú1bì +ú1mì +ú1pì +ú1vì +ú1pí +ú1li +ú1pi +ú1si +ú1vi +ú1zi +ú1le +ú1se +ú1ze +ú1pa +ú1sa +ú1va +ú1by +ú1ly +ú1my +ì1bu +ì1lu +ì1mu +ì1pu +ì1su +ì1vu +ì1zu +ì1bo +ì1fo +ì1lo +ì1mo +ì1po +ì1so +ì1vo +ì1zo +ì1mì +ì1vì +ì1bí +ì1lí +ì1mí +ì1pí +ì1sí +ì1ví +ì1zí +ì1li +ì1mi +ì1pi +ì1si +ì1vi +ì1zi +ì1bá +ì1lá +ì1má +ì1pá +ì1sá +ì1vá +ì1zá +ì1lé +ì1mé +ì1pé +ì1sé +ì1vé +ì1zé +ì1be +ì1le +ì1me +ì1pe +ì1se +ì1ve +ì1ze +ì1ba +ì1la +ì1ma +ì1pa +ì1sa +ì1va +ì1za +ì1lý +ì1mý +ì1pý +ì1sý +ì1vý +ì1zý +ì1by +ì1ly +ì1my +ì1py +ì1sy +ì1vy +ì1zy +í1bu +í1fu +í1lu +í1mu +í1pu +í1su +í1vu +í1zu +í1bo +í1fo +í1lo +í1mo +í1po +í1so +í1vo +í1zo +í1bì +í1mì +í1vì +í1bí +í1lí +í1pí +í1ví +í1zí +í1bi +í1li +í1mi +í1pi +í1si +í1vi +í1zi +í1bá +í1lá +í1má +í1pá +í1sá +í1vá +í1zá +í1bé +í1lé +í1mé +í1pé +í1sé +í1vé +í1zé +í1be +í1le +í1me +í1pe +í1se +í1ve +í1ze +í1ba +í1la +í1ma +í1pa +í1sa +í1va +í1za +í1lý +í1mý +í1sý +í1vý +í1zý +í1by +í1fy +í1ly +í1my +í1py +í1sy +í1vy +í1zy +ó1bu +ó1lu +ó1mu +ó1pu +ó1su +ó1vu +ó1zu +ó1lo +ó1po +ó1so +ó1vo +ó1zo +ó1bì +ó1mì +ó1vì +ó1sí +ó1ví +ó1zí +ó1fi +ó1zi +ó1lé +ó1vé +ó1zé +ó1le +ó1me +ó1ve +ó1ze +ó1ba +ó1fa +ó1la +ó1ma +ó1pa +ó1sa +ó1va +ó1za +ó1by +ó1fy +ó1ly +ó1my +ó1py +ó1sy +ó1vy +ó1zy +i1bu +i1lu +i1mu +i1pu +i1su +i1vu +i1zu +i1bo +i1fo +i1lo +i1mo +i1po +i1so +i1vo +i1zo +i1bì +i1mì +i1pì +i1vì +i1bí +i1lí +i1mí +i1pí +i1sí +i1ví +i1zí +i1vó +i1bi +i1fi +i1li +i1mi +i1pi +i1si +i1vi +i1zi +i1bá +i1lá +i1má +i1pá +i1sá +i1vá +i1zá +i1bé +i1lé +i1mé +i1pé +i1sé +i1vé +i1zé +i1be +i1fe +i1le +i1me +i1pe +i1se +i1ve +i1ze +i1ba +i1fa +i1la +i1ma +i1pa +i1sa +i1va +i1za +i1bý +i1lý +i1mý +i1pý +i1sý +i1vý +i1zý +i1by +i1fy +i1ly +i1my +i1py +i1sy +i1vy +i1zy +á1bu +á1fu +á1lu +á1mu +á1pu +á1su +á1vu +á1zu +á1bo +á1lo +á1mo +á1po +á1so +á1vo +á1zo +á1bì +á1fì +á1mì +á1pì +á1vì +á1bí +á1fí +á1lí +á1mí +á1pí +á1sí +á1ví +á1zí +á1bi +á1fi +á1li +á1mi +á1pi +á1si +á1vi +á1zi +á1bá +á1lá +á1má +á1pá +á1sá +á1vá +á1zá +á1bé +á1lé +á1mé +á1pé +á1sé +á1vé +á1zé +á1be +á1fe +á1le +á1me +á1pe +á1se +á1ve +á1ze +á1ba +á1fa +á1la +á1ma +á1pa +á1sa +á1va +á1za +á1lý +á1mý +á1pý +á1sý +á1vý +á1zý +á1by +á1fy +á1ly +á1my +á1py +á1sy +á1vy +á1zy +é1bu +é1fu +é1lu +é1mu +é1pu +é1su +é1vu +é1zu +é1bo +é1lo +é1mo +é1po +é1so +é1vo +é1zo +é1mì +é1pì +é1vì +é1fi +é1mi +é1pi +é1si +é1vi +é1zi +é1bá +é1vá +é1zá +é1lé +é1fe +é1le +é1me +é1pe +é1se +é1ve +é1ze +é1ba +é1la +é1ma +é1pa +é1sa +é1va +é1za +é1by +é1ly +é1my +é1sy +é1vy +é1zy +e1bu +e1fu +e1lu +e1mu +e1pu +e1su +e1vu +e1zu +e1bo +e1fo +e1lo +e1mo +e1po +e1so +e1vo +e1zo +e1bì +e1mì +e1pì +e1vì +e1bí +e1lí +e1mí +e1pí +e1sí +e1ví +e1zí +e1ló +e1zó +e1bi +e1fi +e1li +e1mi +e1pi +e1si +e1vi +e1zi +e1bá +e1fá +e1lá +e1má +e1pá +e1sá +e1vá +e1zá +e1bé +e1lé +e1mé +e1pé +e1sé +e1vé +e1zé +e1be +e1fe +e1le +e1me +e1pe +e1se +e1ve +e1ze +e1ba +e1fa +e1la +e1ma +e1pa +e1sa +e1va +e1za +e1bý +e1lý +e1mý +e1pý +e1sý +e1vý +e1zý +e1by +e1ly +e1my +e1py +e1sy +e1vy +e1zy +a1bu +a1fu +a1lu +a1mu +a1pu +a1su +a1vu +a1zu +a1bo +a1fo +a1lo +a1mo +a1po +a1so +a1vo +a1zo +a1bì +a1mì +a1pì +a1vì +a1bí +a1fí +a1lí +a1mí +a1pí +a1sí +a1ví +a1zí +a1ló +a1bi +a1fi +a1li +a1mi +a1pi +a1si +a1vi +a1zi +a1bá +a1fá +a1lá +a1má +a1pá +a1sá +a1vá +a1zá +a1bé +a1fé +a1lé +a1mé +a1pé +a1sé +a1vé +a1zé +a1be +a1fe +a1le +a1me +a1pe +a1se +a1ve +a1ze +a1ba +a1fa +a1la +a1ma +a1pa +a1sa +a1va +a1za +a1bý +a1lý +a1mý +a1pý +a1sý +a1vý +a1zý +a1by +a1fy +a1ly +a1my +a1py +a1sy +a1vy +a1zy +ý1bu +ý1fu +ý1lu +ý1mu +ý1pu +ý1su +ý1vu +ý1zu +ý1bo +ý1lo +ý1mo +ý1po +ý1so +ý1vo +ý1zo +ý1bì +ý1mì +ý1pì +ý1vì +ý1lí +ý1bi +ý1li +ý1mi +ý1pi +ý1si +ý1vi +ý1zi +ý1bá +ý1lá +ý1má +ý1pá +ý1sá +ý1vá +ý1zá +ý1zé +ý1be +ý1le +ý1me +ý1pe +ý1se +ý1ve +ý1ze +ý1ba +ý1la +ý1ma +ý1pa +ý1sa +ý1va +ý1za +ý1by +ý1ly +ý1my +ý1py +ý1sy +ý1vy +ý1zy +y1bu +y1fu +y1lu +y1mu +y1pu +y1su +y1vu +y1zu +y1bo +y1lo +y1mo +y1po +y1so +y1vo +y1zo +y1bì +y1mì +y1pì +y1vì +y1bí +y1lí +y1mí +y1pí +y1sí +y1ví +y1zí +y1mó +y1bi +y1fi +y1li +y1mi +y1pi +y1si +y1vi +y1zi +y1bá +y1fá +y1lá +y1má +y1pá +y1sá +y1vá +y1zá +y1fé +y1lé +y1mé +y1pé +y1sé +y1vé +y1zé +y1be +y1fe +y1le +y1me +y1pe +y1se +y1ve +y1ze +y1ba +y1fa +y1la +y1ma +y1pa +y1sa +y1va +y1za +y1lý +y1mý +y1pý +y1sý +y1vý +y1zý +y1by +y1ly +y1my +y1py +y1sy +y1vy +y1zy +%slabièné r a l +v2r1h +vr2hn +vr2hl +vr3hl. +vr2hc +v2r1ch +vr2chn +vr2chl +v2r1k +vr2kn +vr2kl +vr3kl. +v2r1d +vr2dn +vr2dl +v2r1t +vr2tn +vr2tl +vr3tl. +v2r1n +v2r1¾ +v2r1¹ +vr2¹k +vr2¹n +vr2¹m +vr2¹t +v2r1è +vr2èm +vr2èt +v2r1c +v2r1b +vr2bk +v2r1s +vr2st +vr2s2tv +v2r1z +vr2zn +vr2zl +vr3zl. +s2r1k +sr2kn +sr2kl +sr3kl. +s2r1d +sr2dn +sr2dè +s2r1n +sr2nk +sr2nè +s2r1¹ +sr2¹m +sr2¹t +s2r1b +sr2bs +s2r1p +sr2pn +sr2pk +s2r1s +sr2st +s2rs2tk +s2rs2tn +t2r1h +tr2hl +tr3hl. +tr2hn +t2r1n +tr2nk +tr2nè +t2r1¾ +tr2¾n +t2r1è +tr2èk +tr2èm +tr2èt +t2r1b +t2r1m +t2r1p +tr2pn +tr2pm +tr2pè +t2r1s +tr2sn +tr2sl +tr3sl. +tr2sk +t2r1v +ch2r1t +chr2tl +chr3tl. +ch2r1è +chr2èm +chr2èt +ch2r1s +chr2st +p2r1ch +pr2chn +pr2chl +pr3chl. +p2r1k +pr2kn +p2r1d +pr2dl +pr3dl. +p2r1t +p2r1n +p2r1¹ +pr2¹k +p2r1è +p2r1c +p2r1v +pr2vn +pr2vk +m2r1d +mr2dl +m2r1k +mr2kl +mr3kl. +mr2kn +m2r1t +mr2tv +mr2tk +mr2tn +m2r1¹ +mr2¹» +mr2¹k +m2r1m +mr2ml +m2r1s +mr2sk +m2r1v +mr2vm +mr2vt +m2r1z +mr2zk +mr2zl +mr3zl. +mr2zn +è2r1t +èr2tk +èr2tn +èr2tl +èr3tl. +k2r1t +kr2tn +kr2tl +kr2tk +k2r1n +k2r1¹ +kr2¹k +k2r1è +kr2èn +kr2èk +kr2èm +kr2èt +k2r1b +k2r1m +kr2mn +kr2mm +kr2mt +k2r1z +h2r1k +hr2kl +hr3kl. +hr2kn +h2r1d +hr2dl +hr2dn +h2r1n +hr2nc +hr2nk +hr2nè +hr2òm +hr2òt +h2r1è +h2r1b +hr2bk +hr2b1l +h2r1m +h2r1s +hr2st +h2rs2tm +h2r1z +f2r1k +fr2kl +fr2kn +f2r1è +fr2èk +fr2èm +fr2èt +d2r1n +dr2nk +dr2nè +d2r1¾ +dr2¾k +dr2¾m +dr2¾t +dr2¾g +d2r1c +dr2cl +dr3cl. +dr2cn +d2r1b +dr2bn +dr2bl +dr3bl. +d2r1s +dr2sn +d2r1v +d2r1z +dr2zn +dr2zl +c2r1è +b2r1k +br2kn +br2kl +b2r1d +b2r1t +br2tn +br2tl +br3tl. +b2r1n +br2nk +b2r1¾ +br2¾ï +b2r1è +br2èk +b2r1v +b2r1z +br2zl +br2zk +br2zd +b2r1b +br2bl +z2r1n +zr2nk +k2l1k +v2l1h +vl2hk +vl2hè +v2l1k +v2l1n +vl2nk +v2l1è +vl2èk +v2l1c +h2l1t +hl2tn +hl2tl +hl3tl. +p2l1ch +p2l1k +p2l1n +p2l1¾ +p2l1ò +p2l1s +pl2st +pl2s» +p2l1z +pl2zl +pl2zn +b2l1b +bl2bn +bl2bl +bl3bl. +bl2bc +bl2bè +m2l1s +ml2sn +m2l1¾ +ml2¾n +1¾l. +1¹l. +1èl. +1cl. +1hl. +1c2hl. +1dl. +1tl. +1bl. +1ml. +1pl. +1sl. +1vl. +1zl. +1cr. +1hr. +1c2hr. +1kr. +1dr. +1tr. +1br. +1fr. +1mr. +1pr. +1sr. +1vr. +%dvojice souhlásek +.¾4 +¾1¹ +¾1è +¾1c +¾1ï +¾1k +¾1d +¾1t +¾1n +¾1b +¾1l +¾1m +¾1p +¾1v +.¹4 +¹1¹ +¹1è +¹1c +¹1» +¹1ch +¹1k +¹1d +¹1t +¹1n +¹1b +¹1l +¹1m +¹1p +¹1v +.è4 +è1è +è1c +è1» +è1ò +è1k +è1t +è1n +è1b +è1l +è1m +è1p +è1v +.ø4 +ø1è +ø1c +ø1k +ø1d +ø1t +ø1n +ø1b +ø1l +ø1m +ø1v +.c4 +c1k +c1t +c1n +c1l +c1m +c1v +.j4 +j1¹ +j1è +j1c +j1k +j1d +j1t +j1n +j1b +j1f +j1l +j1m +j1p +j1s +j1v +j1z +.ï4 +ï1c +ï1k +ï1t +ï1m +.»4 +»1c +»1h +»1ch +»1k +»1t +»1m +»1s +»1v +.ò4 +ò1c +ò1h +ò1ch +ò1k +ò1d +ò1t +ò1m +ò1p +ò1z +.h4 +h1¹ +h1è +h1c +h1k +h1d +h1n +h1l +.ch4 +4ch. +ch1b +ch1r +ch1t +ch1n +ch1l +ch1m +.k4 +k1¹ +k1è +k1ø +k1c +k1ch +k1r +k1t +k1n +k1b +k1l +k1m +k1p +k1s +k1vic +.r4 +r1¹ +r1è +r1c +r1h +r1ch +r1k +r1d +r1t +r1n +r1b +r1l +r1m +r1p +r1s +r1v +r1z +.d4 +d1¾ +d1¹ +d1è +d1ø +d1c +d1» +d1ò +d1h +d1ch +d1k +d1n +d1b +d1l +d1m +d1p +d1r +d1s +d1v +.t4 +t1¹ +t1è +t1c +t1ch +t1k +t1r +t1n +t1b +t1f +t1l +t1m +t1p +t1v +.n4 +n1¾ +n1¹ +n1è +n1c +n1ï +n1h +n1ch +n1k +n1r +n1d +n1t +n1n +n1b +n1l +n1p +n1z +.x4 +x1c +x1k +x1b +x1f +x1l +x1p +x1n +x1h +x1t +.b4 +b1¾ +b1¹ +b1è +b1ø +b1c +b1h +b1ch +b1k +b1r +b1n +b1f +b1l +b1m +b1s +b1v +b1z +.f4 +f1l +f1k +f1s +.l4 +l1¾ +l1¹ +l1è +l1ò +l1c +l1k +l1d +l1t +l1n +l1b +l1m +l1p +l1s +l1v +l1z +.m4 +m1¹ +m1è +m1c +m1ch +m1k +m1r +m1d +m1t +m1n +m1b +m1l +m1p +m1s +m1z +.p4 +p1è +p1ø +p1c +p1ch +p1k +p1r +p1t +p1n +p1l +.s4 +s1¹ +s1è +s1ò +s1c +s1k +s1r +s1t +s1n +s1b +s1l +s1m +s1p +.v4 +v1¹ +v1è +v1ò +v1c +v1ch +v1k +v1r +v1d +v1t +v1n +v1b +v1l +v1m +v1p +v1s +.z4 +z1¹ +z1è +z1c +z1k +z1d +z1t +z1b +z1l +z1m +z1n +z1p +z1v +.g4 +g1n +g1r +g1m +g1g +d1g +r1g +n1g +j1g +l1g +f1g +s1g +v1g +%vícesouhláskové skupiny +b2s1c +b1s2k +b1¹2t +c2t2n +c1t2v +è1s2k +è1¹2t +d1s2k +d1¹2t +f1g2h +h2ø2m +j1g2l +j2ï1m +j1s2k +j1¹2t +j2s2m +k2t1n +k2t1r +k3t2ri +k2è1n +k2ø2t +l2k2n +l1s2k +l1¹2t +l2s2t +l1t2r +m2b1d +m1b2r +m2d2l +m2k2l +m2k2n +m1p2l +m2p2t +m1s2k +m1¹2t +m2s2t +n1g2l. +n2g1l +n2k1c +n2k1l +n2k1r +n2k1t +n2s1f +n1s2k +n1s2t +n2t1g +n2t1k +n2t1n +n2t1s +n2t1v +n2è1n +n1¹2t +p2t1k +p2è1n +p2r2s +p1s2k +p1¹2t +r2d1n +r2k1r +r2k1t +r2m1n +r2p1c +r2p1è +r1s2k +r1s2p +r2t1l +r2t1n +r2v1n +r2z1n +r1¹2t +s2h2l +s2h2r +s2ch2v +s2k2l +s2k2r +s2k1v +s2m2l +s2m1n +s2p2l +s2p2r +s2t1k +s2t2l +s2t1m +s2t1n +s2t1r +s2t2ø +¹1s2k +t2k2n +t2ø1k +t2ø1n +t1s2k +v1s2k +v1¹2t +v2s2t +v2z2d +v2z2l +v2z2n +v2z2t +v2¾2d +z2d2l +z2d1n +z2d2v +z2k2l +z2v2l +¾1s2k +¾1¹2t +è2t2v +ò1s2k +ò1¹2t +¹2k2l +o¹k3l +¹2t1m +¹2t1n +¹2t2v +¹2»1k +%poèáteèní skupiny hlásek +.s2t2r +%pøedpony +.be2z1 +bez1b2 +bez1h2 +be3z2ov +be3z2ink +bez1k2 +bez1m2 +bez1p2 +bez1s2 +bez1t2 +.be3z2e1 +.bezec2 +.bezej2 +.bezel2 +.bezes2 +.bezest2 +.bezez2 +blaho1 +blahos2 +blahop2 +boje1 +bojes2 +bojech2 +celo1 +celod2 +celop2 +celos2 +celoz2 +.ètyø1 +.ètyøè2 +.ètyøh2 +.ètyøk2 +.ètyøs2 +.ètyøv2 +.daleko1 +.dalekoh2 +.dalekoz2 +.do1 +.doè2 +.doh2 +.doj2 +.dok2 +.do2k3s +.do2k3t +.dom2 +.doo1p2 +.dop2 +.dos2 +.dot2 +.doú1è2 +.dov2 +.doz2 +.do¾2 +dù1 +dùk2 +dùs2 +dùt2 +dùv2 +dvoj1 +dvou1 +dvojè2 +dvouè2 +dvojk2 +dvouk2 +dvojst2r +dvoust3r +jedno1 +jednoh2 +jednos2 +jednot2 +jedno2t3k +jedno2t3l +jedno2t3n +jednoz2 +kolem1 +kolemj2 +kolems2 +.koso1 +.kosoè2t2v +kro2m1 +.kro3m2ì +.lec1 +.lec2h +.leck2 +.leda1k +.leda2s1k2 +.mezi1 +.mezib2 +.meziè2 +.mezi2è3k +.mezid2 +.mezih2 +.meziv2 +.mimo1s2 +.mimo1st2 +místo1d2 +místo1k2 +místo1p2 +.mnoho1 +.mnohoh2 +.mnohos2 +.mnohoè2 +.na1 +.nab2 +.nac2 +.naè2 +.nah2 +.nach2 +.naj2 +.nak2 +.nal2 +.nam2 +.nap2 +.naø2 +.nas2 +.nast2 +.na¹2 +.nat2 +.nav2 +.naz2 +.ná1 +.náb2 +.nác2 +.nád2 +.ná2d3h +.náh2 +.nák2 +.nám2 +.náp2 +.nár2 +.nás2 +.nást2 +.nát2 +.náv2 +.na2d1 +.na3d2ì +.na3d2a +.na3d2á +.na3d2í +.na3d2i +.na3d2u +.na3d2o +.na4d3obl +.na4d3obyè +.na3d2o1smr +.na3d2r +.na4d3rot +.nadch2 +.nadh2 +.nadk2 +.nads2 +.nadz2 +.na3d2e1 +.nadez2 +.naded2 +.nadej2 +.nadeh2 +.nadel2 +.nadep2 +.nade¹2 +.ne1 +.neb2 +.nec2 +.neè2 +.ned2 +.neg2 +.ne2g3l +.neh2 +.ne2h1t +.nech2 +.ne2ch. +.ne2ch»3 +.nek2 +.ne2kro +.ne2kt +.nel2 +.nem2 +.nep2 +.ner2 +.ne2r2v +.neø2 +.nes2 +.nest2 +.ne¹2 +.net2 +.nev2 +.nez2 +.nedo1 +.nedob2ra +.nedok2 +.nedom2 +.nedop2 +.nedor2 +.nedos2 +.nedot2 +.nedov2 +.nedoz2 +.neod1 +.neodh2 +.neodch2 +.neodm2 +.neod2ol +.neodp2 +.neods2 +.neodst2 +.neod¹2 +.neodt2 +.neodz2 +.neod2e1 +.neodeb2 +.neodeh2 +.neodej2 +.neodem2 +.neodep2 +.neodes2 +.neode¹2 +.neodez +.neod2ì +.nepo1 +.nepob2 +.nepoc2 +.nepof2 +.nepog2 +.nepoh2 +.nepoch2 +.nepoj2 +.nepok2 +.nepom2 +.nepo2mp +.nepon2 +.nepop2 +.nepo2r1t +.nepos2 +.nepost2 +.nepo¹2 +.nepo2¹3t +.nepo3¹4»u +.nepot2 +.nepo7uè +.nepo7u1k2 +.nepov2 +.nepoz2 +.nepo2d1 +.nepo3d2a +.nepo3d2i +.nepo3d2ob +.nepo3d2u +.nepo3d2á +.nepo3d2í +.nepodh2 +.nepodk2 +.nepo3d2ot +.nepodp2 +.nepo3d2rá¾d +.nepo3d2ra¾ +.nepods2 +.nepodst2 +.nepodv2 +.nepo3d2e1 +.nepodeb2 +.nepodej2 +.nepodem2 +.nepodep2 +.nepodes2 +.nepodez2 +.nepro1 +.neprob2 +.neproc2 +.neproè2 +.neprod2 +.neprog2 +.neproj2 +.neproh2 +.neproch2 +.neprok2 +.neprol2 +.neprom2 +.neprop2 +.nepror2 +.neproø2 +.nepros2 +.neprost2 +.nepro¹2 +.neprot2 +.neprov2 +.neproz2 +.nepro¾2 +.nepøe2d1 +.nepøe3d2a +.nepøe3d2á +.nepøe3d2ra +.nepøedk2 +.nepøeds2 +.nepøedv2 +.nepøedz2 +.nepøedpo3k2 +.nepøe3d2e1 +.nepøedej2 +.nepøedes2 +.nepøedest2 +.nepøede¹2 +.nepøe2s1n +.nepøe1 +.nepøeb2 +.nepøec2 +.nepøeè2 +.nepøeh2 +.nepøej2 +.nepøek2 +.nepøel2 +.nepøem2 +.nepøep2 +.nepøer2 +.nepøeø2 +.nepøe¹2 +.nepøet2 +.nepøev2 +.nepøez2 +.nepøi1 +.nepøib2 +.nepøic2 +.nepøiè2 +.nepøid2 +.nepøij2 +.nepøih2 +.nepøik2 +.nepøil2 +.nepøim2 +.nepøip2 +.nepøiø2 +.nepøis2 +.nepøist2 +.nepøi¹2 +.nepøit2 +.nepøiv2 +.nepøiz2 +.nero2z1 +.nero3zum +.nerozb2 +.nerozè2 +.nerozd2 +.nerozh2 +.nerozk2 +.nerozp2 +.nerozs2 +.nerozst2 +.neroz¹2 +.nerozt2 +.nerozv2 +.nerozz2 +.nero3z2e1 +.nerozeb2 +.nerozeè2 +.nerozed2 +.nerozeh2 +.nerozej2 +.nerozek2 +.nerozel2 +.nerozem2 +.nerozep2 +.nerozer2 +.nerozeø2 +.nerozes2 +.nerozest2 +.neroze¹2 +.nerozet2 +.nerozev2 +.nerozez2 +.nesou1 +.nesouè2 +.nesoud2 +.nesouh2 +.nesouk2 +.nesoum2 +.nesous2 +.nesoust2 +.nesou¹2 +.nesouv2 +.nesouz2 +.neupo1 +.neupos2 +.neupot2 +.nì1k2 +.ne2j1 +.ne3j2du. +.ne3j2de¹. +.ne3j2de. +.ne3j2deme. +.ne3j2dete. +.ne3j2dou. +.ne3j2e +.ne3j2a +.ne3j2sem. +.ne3j2si. +.ne3j2sme. +.ne3j2ste. +.ne3j2sou. +.ne4j3akt +.ne3j2i +.ne3j2í +.nejd2 +.nejf2 +.nejh2 +.nejk2 +.nejm2 +.nejp2 +.nejs2 +.nejst2 +.nejt2 +.nejv2 +.nejz2 +.nejne1 +.nejnep2 +.nejnes2 +.nejnez2 +.ni1k2 +.o1 +.oh2 +.ok2 +.ok3t +.okolo1 +.okoloj2 +.okolos2 +.om2 +.op2 +.op3ti +.op3to +.or2v +.os2l +.os2m +.os3mo +.os2n +.os2p +.os2tu +.os2ty +.os2tý +.os2t2r +.os2v +.o¹2 +.ot2r +.ot3ru +.ov2 +.oz2 +.o¾2 +.o2b1d2 +.o2b1j +.o2b1k2 +.o2b1r +.o3b2ran +.o3b2rán +.o2b1ø +.o2b1s2 +.o2b1¹2 +.o2b1t2 +.o2b1v2 +.o2b1z2 +.o2boj1s2 +.o2boj1st2r +.o2boj1¾ +.o2boj1r +.o2boj1n +.obou1 +.obous2 +.obousm2 +.ob2e1 +.obe2c1 +.obeh2 +obej2 +obel2 +obep2 +.obes2 +.obest2 +.obet2 +.obez2 +.od1 +.odh2 +.odch2 +.odm2 +.od2ol +.odp2 +.ods2 +.odst2 +.od¹2 +.odt2 +.odz2 +.od2e1 +.odeb2 +.odeh2 +.odej2 +.odem2 +.odep2 +.odes2 +.ode¹2 +.odez +.od2ì +.ote1v2 +.pa1h2r +.pa1k2l +.pa1m2l +.pa1p2r +.pa1t2v +.pa1z2v +.pa4s3tv +.pìti1 +.pìtiè2 +.pìtih2 +.pìtik2 +.pìtis2 +.pìtiv2 +.po1 +.pob2 +.poc2 +.poè2 +.pof2 +.pog2 +.poh2 +.poch2 +.po2int +.poj2 +.po2jï +.pok2 +.po2ls +.po2l¹ +.pom2 +.po2mp +.pon2 +.pop2 +.po2rn +.po2r1t +.por2tl +.pos2 +.post2 +.po¹2 +.po2¹3t +.po2¹3» +.po3¹4tìv +.po3¹4»u +.pot2 +.po7uè +.po7u1k2 +.po7uliè +.pov2 +.poz2 +.po2z3dì +.po2d1 +.po3d2a +.po3d2i +.po3d2le. +.po3d2ob +.po4d3obl +.po4d3oboj +.po4d3oboè +.po3d2rob +.po3d2u +.po3d2á +.po3d2í +.podh2 +.podk2 +.podm2 +.po3d2ol +.po3d2ot +.podp2 +.po3d2rá¾d +.po3d2ra¾i +.pods2 +.podst2 +.podv2 +.po3d2e1 +.podeb2 +.podej2 +.podem2 +.podep2 +.podes2 +.podez2 +.polo1o1 +.polo1p2 +.polo1s2 +.pra1 +.pras2 +.pra2s1k +.pra2s1n +.pra2cn +.pra2èk +.pra2h1n +.pra2h1l +.pra2kt +.pra2¹t +.pra2vd +.pro1 +.prob2 +.proc2 +.proè2 +.prod2 +.prog2 +.proj2 +.proh2 +.proch2 +.prok2 +.prol2 +.prom2 +.prop2 +.pror2 +.proø2 +.pros2 +.prost2 +.pro¹2 +.prot2 +.pro2u +.prov2 +.proz2 +.pro¾2 +proti1 +protik2 +protim2 +protip2 +protis2 +protist2 +prù1 +prù2mk +prùh2 +prùk2 +prùp2 +prùr2 +prùs2 +prùt2 +prùv2 +prùz +.pøe1 +.pøeb2 +.pøec2 +.pøeè2 +.pøeh2 +.pøej2 +.pøek2 +.pøel2 +.pøem2 +.pøep2 +.pøer2 +.pøeø2 +.pøes2 +.pøe2s1è +.pøe2sto +.pøe2sn +.pøe¹2 +.pøet2 +.pøev2 +.pøez2 +.pøe2d1 +.pøe3d2a +.pøe3d2á +.pøe3d2ra +.pøe3d2rá¾d +.pøedk2 +.pøeds2 +.pøedv2 +.pøedz2 +.pøedpo3k2 +.pøe3d2e1 +.pøedej2 +.pøedes2 +.pøedest2 +.pøede¹2 +.pøedev2 +.pøe3s2níd +.pøe2s1po +.pøe2s1pø +.pøe2s1len +.pøe2s1li +.pøi1 +.pøib2 +.pøic2 +.pøiè2 +.pøid2 +.pøij2 +.pøih2 +.pøik2 +.pøil2 +.pøim2 +.pøip2 +.pøiø2 +.pøis2 +.pøist2 +.pøi¹2 +.pøit2 +.pøiv2 +.pøiz2 +pøí1 +pøí2m1n +pøíb2 +pøí2èk +pøí2èn +pøíj2 +pøík2 +pøím2 +pøíp2 +pøís2 +pøíst2 +pøí¹2 +pøít2 +pøív2 +pøíz2 +pù1j2d +.ro2z1 +.ro3zum +.rozb2 +.rozè2 +.rozd2 +.rozh2 +.rozk2 +.rozp2 +.rozs2 +.rozst2 +.roz¹2 +.rozt2 +.rozv2 +.rozz2 +.ro3z2e1 +.rozeb2 +.rozeè2 +.rozed2 +.rozeh2 +.rozej2 +.rozek2 +.rozel2 +.rozem2 +.rozep2 +.rozer2 +.rozeø2 +.rozes2 +.rozest2 +.roze¹2 +.rozet2 +.rozev2 +.rozez2 +.sd2 +.sh2 +.sk2 +.sp2 +.sv2 +.se1 +.se2dmi +.se2dme +.se2dl +.se2dn +.seb2 +.sebe1 +.sebek2 +.sec2 +.se2è +.se3è2t +.se2gm +.seg2 +.seh2 +.se2is1 +.sej2 +.sek2 +.sel2 +.sem2 +.sep2 +.se2p1t +.sep2ta +.serv2 +.se2rvis +.seø2 +.ses2 +.se2st +se3st2roj +.se3st2øel +.se¹2 +.set2 +.sev2 +.se2x1 +.sez2 +.sou1 +.souè2 +.soud2 +.sou2d3c +.sou2d3n +.souh2 +.souj2 +.souk2 +.soum2 +.soup2 +.sous2 +.soust2 +.sou¹2 +.souv2 +.souz2 +.spolu1 +.spolub2 +.spolup2 +.nespolu1p2 +.¹esti1 +.¹estiè2 +.¹estih2 +.¹estik2 +.¹estis2 +.¹estiv2 +.tro2j1ú +.tro2j1s2 +.u1 +.ub2 +.uc2 +.ud2 +.uh2 +.u2h3l +.u3h4lad +.u3h4líd +.u2h3r +.u3h4rad +.u3h4rab +.u3h4rá +.u4h5rám. +.u4h5rách. +.uch2 +.uj2 +.uk2 +.ul2h +.ul2p +.um2 +.up2 +.upo1 +.upos2 +.upot2 +.ur2 +.ur3b +.ur3è +.uø2 +.us2 +.ust2 +.u¹2 +.ut2 +.uv2 +.uz2 +.u2z3b +.u2z3d +.u2z3l +.u2z3m +.u¾2 +.u2¾3¹í +ú1 +úc2 +úè2 +ú2hl +ú3h2lav +új2 +úk2 +úp2 +ús2 +ú2s3t +ús4tn +ú3s4tav +ú3s4t2r +ú3s4t2ø +ú4s5t3øi +ú¹2 +út2 +úv2 +ú2z1k +.vk2 +.vp2 +.vs2 +.vst2 +.v¹2 +.vt2 +.vz2 +.ve1 +.vec2 +.ved2 +.vì1h2l +.veh2 +.ve2jc +.ve2jè +.ve2jp +.ve2kt +.vem2 +.ve2n1 +.ve2p3ø +.vep2 +.ve2r +.ve3ri +.ves2 +.ve2s3l +.ve2s3mí +.ve2s3n +.ve2s3t +.ve3s4tav +.ve¹2 +.ve2¹3k +.vet2 +.ve2tch +.vev2 +.ve2z3 +.ve3zl. +.ve2l1b2 +.ve2l1k +.ve2l1m +.ve2l1t2 +.ve2l2t3l +.vele1 +.vele2bn +.veleh2 +.veles2 +.velest2 +.velez2 +.vodo1 +.vodot2 +.vodoz2 +.v¹e1 +.v¹e2ch. +.vy1 +.vyb2 +.vyc2 +.vyè2 +.vyd2 +.vy2d1r +.vy3d2rol +.vy3d2ráp +.vy3d2rás +.vyh2 +.vyj2 +.vyk2 +.vyl2 +.vym2 +.vyn2 +.vyp2 +.vyr2 +.vyø2 +.vys2 +.vyst2 +.vy¹2 +.vy2¹3¹ +.vyt2 +.vyv2 +.vyz2 +.vý1 +.výè2 +.výh2 +.výk2 +.vým2 +.výp2 +.výr2v +.výs2 +.výst2 +.vý¹2 +.vý2¹3k +.výt2 +.výv2 +.výz2 +.vz1h2 +.vz1p2 +.vz1t2 +.vze1 +.vzed2 +.vzep2 +.vzes2 +.vze¹2 +.vzez2 +.zd2 +.zh2 +.zch2 +.zk2 +.zl2 +.zm2 +.zp2 +.zr2 +.zt2 +.zv2 +.zne1 +.znek2 +.znem2 +.znep2 +.zne2rv +.znes2 +.zne¹2 +.znet2 +.za1 +.z3a2larm +.z3akti +.zab2 +.zaè2 +.zad2 +.zah2 +.zach2 +.zaj2 +.zak2 +.zal2 +.zam2 +.zap2 +.zar2 +.zaø2 +.zas2 +.zast2 +.za¹2 +.zat2 +.zav2 +.zaz2 +.zane1 +.zaned2 +.zanes2 +.zane¹2 +.uza1m2 +.uza1r2 +.uza1v2 +.zá1 +.záb2 +.zác2 +.zád2 +.záh2 +.zách2 +.záj2 +.zák2 +.nejzá1k2 +.zám2 +.záp2 +.zás2 +.zást2 +.zá¹2 +.zát2 +.záv2 +.záz2 +.z2e1 +.z3e2f +.zed2 +.ze2d1n +.zej2 +.zem2 +.ze2ms +.ze2mn +.zep2 +.zes2 +.zet2 +.zev2 +.zez2 +zù1 +%cizí pøedpony +.a1e2ro +.a1d2re +.a1g2no +.a1ch2r +.a1k2l +.a1k2re +.an1es +an3g2l +.an2t1ar +.anti1 +.antik2 +.antip2 +an1t2ro1 +.ar2ch1an +.as2pek +.a1s2t +.as3t2r +asym3p2t +.a1t2r +.aus¹t2r +.auto1 +.abs¹t2 +.de1f2 +.de1g2 +.de1k2 +.de1p2 +.de2p3ta +.de2z1 +.di1o +.di1p2 +.dis3k2v +dis3k2r +dis3t2r +.di1u +.du1p2l +.epi1 +.epig2 +.ex1 +.exk2 +.exp2 +.ext2 +.ex2o +ex2i1s +.fyto1 +.fytop2 +.ide1 +.ide2n +.in1 +.inc2 +.inf2 +.ing2 +.ink2 +.ins2 +.int2 +.inter1 +.interp2 +.inters2 +.kom1p2 +.kon3g2 +.kon3k2 +.kon3s2 +.konst2 +.kon3t2 +.kon3v2 +.ko1o +.hyper1 +.hypert2 +.hypo1 +.hypos2 +.kata1k2l +.ko1i +.ko1e +.para1 +.paraf2 +.parag2 +.re1 +.ref2 +.reg2 +.re2j1 +.rek2 +.re2n2d +.re2n2t +.rep2 +.re2pti +.res2 +.re2sp. +.ret2 +.sub1 +.super1 +.superp2 +.supers2 +.supra1 +.sy1s2t +.te1o1 +.topo1g2 +.tran2s1 +.tran3s2pi +.tran3s2k2r +.tran3s2c +.tri1 +.trip2 +.tri2èk +.tri2st +.zoo1 +.zoop2 +.zoos2 +%pøípony a koncovky +i1ent +ru1ov +3s2t2ví +3s2t2vo. +3s2t2va. +3s2t2vu. +3s2t2ve +3s2tev. +3s2tevn +3s2t2vùm. +3s2t2vy. +3¾e. +.m4¾e. +3hle. +c4hle. +3li. +3ly. +3la. +3nout. +3nouti. +i1án +a1tb +e1tb +i1tb +1t2va. +1t2vy. +1t2vì. +1t2vu. +1t2vou. +1t2ev. +1t2vám. +1t2vách. +1t2vami. +3s2t2v +a4s3t2v +á4st3v +3k2rac +3k2rat +3k2rát. +3k2ráte. +3p2lex +1t2rof +1s2trof +%výjimky +.a1v2¹ak +.atmo1s2f +.ce1d1r +èesko3s4l +èesko3b4r +.e1gyp2t1 +.elek1t +.elek3t1r +.elek3t1ø +elip1s +elip1t +eu1k2lei1d +.i1h2ned +kladko1s2t2roj +moøe1p2lav +.pe1t1r +oka1m¾i +s2t2ran +z2d2rav +zù1s2ta diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/danish.lh b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/danish.lh new file mode 100755 index 0000000000000..9747c06745c16 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/danish.lh @@ -0,0 +1,1184 @@ +Lout hyphenation information +% +% Danish hyphenation file, created by +% Jeffrey H. Kingston 22 April 1994 +% from a file supplied by Jesper Hagen +% + +Classes: +@!$%^&*()_-+=~`{[}]:;'|<,.>?/0123456789 +aA +bB +cC +dD +eE +fF +gG +hH +iI +jJ +kK +lL +mM +nN +oO +pP +qQ +rR +sS +tT +uU +vV +wW +xX +yY +zZ +æÆ +øØ +åÅ + +Patterns: +.ae3 +.an3k +.an1s +.be5la +.be1t +.bi4tr +.der3i +.diagno5 +.her3 +.hoved3 +.ne4t5 +.om1 +.ove4 +.po1 +.så3 +.til3 +.yd5r +.ær5i +.øv3r +ab5le +3abst +a3c +ade5la +5adg +a1e +5afg +5a4f1l +af3r +af4ri +5afs +a4gef +a4gi +ag5in +ag5si +3agti +a4gy +a3h +ais5t +a3j +a5ka +a3ke +a5kr +aku5 +a3la +a1le +a1li +al3k +4alkv +a1lo +al5si +a3lu +a1ly +am4pa +3analy +an4k5r +a3nu +3anv +a5o +a5pe +a3pi +a5po +a1ra +ar5af +1arb +a1re +5arg +a1ri +a3ro +a3sa +a3sc +a1si +a3sk +a3so +3a3sp +a3ste +a3sti +a1ta1 +a1te +a1ti +a4t5in +a1to +ato5v +a5tr +a1tu +a3tø +a5va +a1ve +a5væ +a5z +1ba +ba4ti +4bd +1be +be1k +be3ro +be5ru +be1s4 +be1tr +1bi +bi5sk +b1j +4b1n +1bo +bo4gr +bo3ra +bo5re +1br4 +brød3 +4bs +bs5k +b3so +b1st +b5t +3bu +bu4s5tr +b5w +1by +by5s +5bæ +4c1c +1ce +ce5ro +3ch +4ch. +ci4o +ck3 +5cy +3da +4d3af +d5anta +da4s +d1b +d1d4 +1de +de5d +4de4lem +der5eri +de4rig +de5sk +d1f +d1g +d3h +1di +di1e +di5l +d3j +d1k +d1l +d1m +4d1n +3do +4dop +d5ov +d1p +4drett +5d4reve +3drif +3driv +d5ros +d5ru +5drøv +ds5an +ds5in +d1ski +d4sm +dstå4 +d4su +dsu5l +ds5vi +d3ta +d1te +dt5o +d5tr +dt5u +1du +dub5 +d1v +3dy +3dæ +3dø +e5ad +e3af +e5ag +e3ak +e1al +ea4la +e3an +e5ap +e3at +e3bl +ebs3 +e1ci +ed5ar +edde4 +eddel5 +e4do +ed5ra +ed3re +ed3rin +ed4str +e3e +3eff +e3fr +3eft +e3gu +e1h +e3in +ei5s +e3je +e4j5el +e1ka +e3ke +e3kl +4e1ko +e5kr +ek5sa +3eksem +3eksp +e3ku +e1kv +e5ky +e3lad +el3ak +el3ar +e1las +e3le +e4lek +3elem +e1li +5elim +e3lo +el5sa +e5lu +e3ly +e3læ +e3lø +e4mad +em4p5le +em1s +en5ak +e4nan +4enn +e4no +en3so +e5nu +e5ol +e3op +e1or +e3ov +epi3 +e1pr +e3ra +er3af +e4rag +e4rak +e1re +e4ref +er5ege +5erhv +e1ri +e4rib +er1k +ero5d +er5ov +er3s +er5tr +e3rum +er5un +e5ry +e3rø +er5øn +e1ta +e1te +etek4s +e1ti +e3tj +e1to +e3tr +e3tu +e1ty +e5tæ +e5tø +e3um +e3un +3eur +e1va +e3ve +e4v3erf +e1vi +e1væ +e5x +e3æ +e5å +1fa +fa4ce +fags3 +f1b +f1d +1fe +fej4 +fejl1 +f1f +f1g +f1h +1fi +f1k +3fl +1fo +for1en +fo4ri +f1p +f1s4 +4ft +f3ta +f1te +f1ti +f5to +f5tvi +1fu +f1v +3fy +3fæ +3fø +fø4r5en +1ga +g3art +g1b +g1d +1ge +4g5enden +ger3in +ge3s +g3f +g1g +g1h +1gi +gi4b +gi3st +giø4 +5gj +g3k +g1l +g1m +3go +4g5om +g5ov +g3p +1gr +gs1a +gsde4len +g4se +gsha4 +g5sla +gs3or +gs1p +g5s4tide +g4str +gs1v +g4sø +g5så +g3ta +g1te +g1ti +g5to +g3tr +gt4s +g3ud +gun5 +g3v +1gy +g5yd +3gæ +3gø1 +3gå +4ha. +heds3 +he5s +4het +hi4e +hi4n5 +hi3s +ho5ko +ho5ve +4h3t +hun4 +hund3 +hvo4 +i1a +i3b +i4ble +i1c +i3dr +ids5k +i1el +i1en +i3er +i3et. +if3r +i3gu +i3h +i5i +i5j +i1ka +i1ke +ik1l +i5ko +ik3re +ik5ri +iks5t +ik4tu +i3ku +ik3v +i3lag +il3eg +il5ej +il5el +i3li +i4l5id +il3k +i1lo +il5u +i3mu +ind3t +5inf +ings1 +in3s +in4sv +inter1 +i3nu +i3od +i3og +i5ok +i3ol +ion4 +ions1 +i5o5r +i3ot +i5pi +i3pli +i5pr +i3re +i3ri +ir5t +i3sc +i3si +i4sm +is3p +i1ster +i3sti +i5sua +i1ta +i1te +i1ti +i3to +i3tr +it5re. +i1tu +i3ty +i5tæ +i1u +i1va +i1ve +i1vi +i3ø +j3ag +jde4rer +jds1 +jek4to +4j5en. +j5k +j3le +j3li +jlmeld5 +jlmel4di +j3r +jre5 +ju3s +5kap +k5au +5kav +k5b +kel5s +ke3sk +ke5st +ke4t5a +k3h +ki3e +ki3st +k1k +k5lak +k1le +3klu +k4ny +5kod +1kon +ko3ra +3kort +ko3v +1kra +5kry +ks3an +k1si +ks3k +ks1p +k3ste +k5stu +ks5v +k1t +k4tar +k4terh +kti4e +kt5re +kt5s +3kur +1kus +3kut +k4vo +k4vu +3kø +3kå +5lab +lad3r +5lagd +la4g3r +5lam +1lat +l1b +ldiagnos5 +l3dr +ld3st +1le. +5led +4lele +le4mo +3len +1ler +1les +4leu +l1f +lfin4 +lfind5 +l1go1 +l3h +li4ga +lingeniø4 +4l5ins +4l3int +li5o +l3j +l1ke +l1ko +l3ky +l1l +l5mu +lo4du +l3op +4l5or +3lov +4l3p +l4ps +l3r +4ls +lses1 +ls5in +l5sj +l1ta +l4taf +l1te +l4t5erf +l3ti +lt3o +l3tr +l3tu +lu5l +l3ve +l3vi +l3væ +5løs +1ma +m1b +m3d +1me +4m5ej +m3f +m1g +m3h +1mi +mi3k +m5ing +mi4o +mi5sty +m3k +m1l +m1m +mmen5 +m1n +3mo +mo4da +4mop +4m5ov +m1pe +m3pi +m3pl +m1po +m3pr +m1r +mse5s +ms5in +m5sk +ms3p +m3ste +ms5v +m3ta +m3te +m3ti +m3tr +m5tå +m1ud +1mul +mu1li +3my +1mæ +3mø +3må +3na +4nak +1nal +n1b +n1c +4nd +n3dr +nd5si +nd5sk +nd5sp +1ne +ne5a +ne4da +nemen4 +nement5e +neo4 +n3erk +n5erl +ne5sl +ne5st +n1f +n4go +4n1h +1ni +4nim +ni5o +ni3st +n1ke +n1ko +n3kr +n3ku +n5kv +n3kæ +4n1l +n1m +n1n +1no +n3ord +n5p +n3r +4ns +n3si +n1sku +ns3po +n1sta +n5sti +n1ta +nta4le +n1te +n1ti +ntiali4 +n3to +n1tr +nt4s5t +nt4su +n3tu +n3ty +n5tæ +4n1v +3ny +n3z +3næ +4n5æb +5nø +o3a +o4as +ob3li +o1c +o4din +od5ri +od5s +od5un +o1e +of5r +o4gek +o4gel +o4g5o +og5re +og5sk +o5h +o5in +oi6s5e +o1j +o3ka +o1ke +o3ku +o3la +o3le +o1li +o1lo +o3lu +o5ly +o5læ +1omr +on3k +ook5 +o3or +o5ov +o3pi +op3l +op3r +op3s +3opta +4or. +or1an +3ordn +ord5s +o3re. +o3reg +o3rek +o3rer +o3re3s +o3ret +o3ri +3orient +or5im +o4r5in +or3k +or5o +or3sl +or3st +or3ø +o3si +o3so +o3t +o1te +o5un +ov4s +o5å +3pa +pa5gh +p5anl +p3d +4pec +3pen +1per +pe1ra +pe5s +pe3u +p3f +4p5h +1pla +p4lan +4ple. +4pler +4ples +p3m +p3n +5pok +4po3re +3pot +4p5p4 +p4ro +1proc +5præ +p3sk +p5so +ps4p +p3st +p1t +1pu +pu5b +p5ule +p5v +5py3 +5pæd +på3 +qu4 +4raf +ra5is +4rarb +r1b +r4d5ar +r3dr +rd4s3 +4reks +1rel +re5la +r5enss +5rese +re5spo +4ress +re3st +re5s4u +5rett +r1f +r1gu +r1h +ri1e +ri5la +4rimo +r4ing +ringse4 +ringso4r +4rinp +4rint +r3ka +r1ke +r1ki +rk3so +r3ku +r5kæ +r1l +rmo4 +r5mu +r1n +ro1b +ro3p +r3or +r3p +r1r +rre5s +rro4n5 +r1sa +r1si +r5skr +r4sk5v +rs4n +r3sp +r5stu +r5su +r3sv +r5tal +r1te +r4teli +r1ti +r3to +r4t5or +rt5rat +rt3re +r5tri +r5tro +rt3s +r5ty +r5tæ +r5tø +r3ud +run4da +5rut +r3va +r1ve +r3vi +r3væ +ry4s +r5æl +4røn +5rør +3råd +r5år +s3af +1sam +sa4ma +s3ap +s1ar +1sat +4s1b +s1d +sdy4 +1se +s4ed +5s4er +se4se +s1f +4s1g4 +4s3h +si4bl +1sig +s5int +5sis +5sit +5siu +s5ju +4sk. +1skab +1ske +s3kl +sk5s4 +5sky +s4kå +s1le +s1li +slo3 +5slu +s5ly +3slå +s1m +s4my +4snin +s4nit +s4næ +so5k +5sol +5som. +3somm +s5oms +5somt +3son +4s1op +sp4 +3spec +4sper +3s4pi +s1pl +3sprog. +s5r4 +s1s4 +4st. +5s4tam +1stan +st5as +3stat +1stav +1ste. +1sted +3stel +5stemo +1sten +5step +3ster. +3stes +5stet +5stj +3sto +st5om +1str +5stø +1stå +s1ud +3sul +s3un +3sur +s3ve +3s4y +1sy1s +1sæ +4s5æn +1sø +s5øk +så4r5 +5ta. +1tag +tands3 +4tanv +4tb +tede4l +teds5 +3teg +5tekn +teo1 +5term +te5ro +4t1f +6t3g +t1h +tialis5t +3tid +ti4en +ti3st +ti4ø +4t3k +4t1l +tli4s5 +t1m +t1n +to5ra +to1re +to1ri +tor4m +4t3p +t4ra +4tres +tro5v +1try +3træk. +4ts +t3si +ts4pa +ts5pr +t3st +ts5ul +t4sø +t5så +4t1t +t5uds +5tur +t5ve +t3væ +1typ +u1a +5udl +ud5r +ud3s +3udv +u1e +ue4t5 +uge4ri +ugs3 +u5gu +u3i +u5kl +uk4ta +uk4tr +u1la +u1le +u5ly +u3læ +u5pe +up5l +u5q +u3ra +u3re +u4r3eg +u1rer +u3ro +us5a +u3si +u5ska +u5so +us5v +u1te +u1ti +u1to +ut5r +ut5s4 +5u5v +va5d +3varm +1ved +ve4l5e +ve4reg +ve3s +5vet +v5h +vi4l3in +1vis +v5j +v5k +vl4 +v3le +v5li +vls1 +1vo +4v5om +v5p +v5re +v3st +v5su +v5t +3vu +3værd +1værk +5vå +y3a +y5dr +y3e +y3ke +y5ki +yk3li +y3ko +yk4s5 +y3kv +y5li +y5lo +y5mu +yns5 +y5o +y1pe +y3pi +y3re +yr3ek +y3ri +y3si +y3ti +y5t3r +y5ve +y5væ +zi5o +æb3l +æ3c +æ3e +æg5a +æ4gek +æ4g5r +ægs5 +æ5i +æ5kv +ælle4 +æn1dr +æ5o +æ1re +ær4g5r +æ3ri +ær4ma +ær4mo +ær5s +æ5si +æ3so +æ3ste +æ3ve +øde5 +ø3e +ø1je +ø3ke +ø3le +øms5 +øn3st +øn4t3 +ø1re +ø3ri +ørne3 +ør5o +ø1ve +å1d +å1e +å5h +å3l +å3re +års5t +å5sk +å3t diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/dutch.lh b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/dutch.lh new file mode 100755 index 0000000000000..18c86572be173 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/dutch.lh @@ -0,0 +1,6166 @@ +Lout hyphenation information +% +% Created by Jeff Kingston 7 October 1994 from a TeX hyphenation +% patterns file supplied by Ronald Rietman, who says it is nehyph1.tex +% from the CTAN archive. A larger file called nehyph2.tex was tried +% first, but proved to exceed Lout's internal limits on the size of a +% hyphenation table. Note that there are no accented characters +% in this file, which means that Lout will never hyphenate a Dutch +% word containing an accented character. To summarise a discussion +% by Rietman, this is probably the safest thing although it does miss +% a few opportunities for acceptable hyphenations, mainly of words +% containing a trema which Lout could not hyphenate correctly anyway +% since the following letter changes when hyphenating. +% +% The following comment came with the file: +% +% These are TeX hyphenation patterns for Dutch generated at the +% Computer Science Department of Utrecht University. +% Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands. +% Telephone: +31-30-531454, e-mail: postmaster@cs.ruu.nl +% +% Copyright (c) 1989 by CELEX. +% CELEX, Wundtlaan 1, 6525 XD Nijmegen, The Netherlands. +% Telephone: +31-80-615751, email: celex@hnympi52.bitnet +% +% General permission for non-profit usage is granted. +% For commercial usage contact CELEX at the above address. +% Copying of this file is only permitted with inclusion of +% this copyright notice and with these same restrictions. +% + +Classes: +@!$%^&*()_-+=~`{[}]:;'|<,.>?/0123456789 +aA +bB +cC +dD +eE +fF +gG +hH +iI +jJ +kK +lL +mM +nN +oO +pP +qQ +rR +sS +tT +uU +vV +wW +xX +yY +zZ + +Patterns: +.ad3ek +.ad3eq +.ad3op +.ad3or +.ad3s +.af3ra +.al3f +.al4st +.am3p +.an3d4 +.an4kl +.an3th +.ap2n +.ar3tr +.as3p +.as1t +.as3tr +.at4r +.ba3ta +.be3la +.bij1 +.bli4 +.bu2s +.ca4te. +.ce4len +.co4ler +.culot4 +.da4gi +.dag3r +.da4k +.de2a +.de3ra +.de3ro +.di4s +.ed3w +.ek3s +.ek4w +.elo3 +.en3t +.er4f3l +.erop3 +.ert4 +.er3ui +.es3 +.exi1 +.gaat3 +.ga4me. +.ge3f +.ge3la +.ge3n4a +.ge3r4a +.ges4 +.ge3sk +.he2a +.he2r +.her3i +.her3u +.ho4les +.ho4met +.hy4de +.ij2s +.ij4s3l +.ima4ge +.in1 +.in3d4 +.ink4 +.in3s4 +.in3t +.jes2 +.ka4taa +.ka4te. +.ke3ra +.ker4kl +.le4b +.le4go +.le4gr +.len4s +.les3 +.le3th +.luit4 +.mein3 +.me3so +.mo4s +.mos3k +.na3fl +.na1s +.och3 +.oe4r +.oe4s3 +.olf4 +.olie3 +.om1a +.on1 +.on3i +.on3s +.on2t +.pa2k +.pe4te. +.prik3 +.puit4 +.quit4 +.raat4 +.ran4ch +.read3 +.re4mol +.res3p +.rijk4s +.ro4l +.ro4q +.ro4sk +.sa4p +.sce4ne +.se4st +.se2t +.sha4 +.ski3s +.sli2 +.snap3 +.st2 +.ste4m3 +.sty4 +.sul3 +.taat4 +.tan4da +.ta3ro +.te4f +.tek2 +.ten4tj +.te4ra +.ter4pa +.thee3 +.ti4me +.ti4na +.to2s +.traat4 +.ts4 +.tu4ne. +.ui2 +.ui3le +.uit1 +.uit4je +.van3o +.veld3 +.ver1 +.vu4l3 +.was3t +.we2l +.wel3o +.wet4s +.work3 +.xe1 +.ya2l +.zes3 +.zit3 +a4a4 +aad3a +aad3o +aad3r +aag1 +aag3r +aags4 +aai1 +aak1 +aak3l +aak3r +aak3w +aal1a +2aald +aal1e +aal3k +aal1o +4aalr +4aalv +aam1 +aan1 +aan3a +1aanj +aan3sp +3aanwi +aap1a +aar1 +aar4th +aas3e +aas3f +aas3p +aat3a +aat3h +aat3o +aat3r +a1b +abak4s3 +aba4s +abe4la +able2 +a4ble. +a4bles +3abonn +ab3ru +4ace +a2ce. +a3cee +a3cep +a4cer. +a4cers +a4ces +2ach. +a3cha +2a1che +4a1chi +a1cho +a3chr +4achs +a1chu +2acl +2aco +2acr +4acs +a1d +2ad. +ad2a +ad3aa +ad3ad +ada2r3 +a4dete +ade4tj +2adi +2adl +ad3ora +2adp +3adres +ad3sla +4ady +2ae +aege4 +aek4 +ael4 +a4fau +af3d +af1dw +4afe +af3ei +afe4la +1afg +2afi +a4fin +af3l +2afo +afon4d +af1r +af3ric +af3ris +af3rit +af3ru +af3s +a4fu +3afzet +4aga +ag1ad +agas4s +age2o +a4gins +ag3le +ag3ord +ag3reg +ag3roo +ag3sla +ag4spr +a4g3uu +a1h +4ah. +ah3l +ai1e +aig4 +aik4 +ails4 +ai4lu +2ais4 +ai3sc +ai1so +ai4sol +ai1t +4a1j +2ak. +ak3arb +a4ked +aker4se +a2kes +a2kez +2akh +akhou4 +ak3id +a2k1l +ak3la +ak3lo +ak3na +ak3ne +a4kog +ak3ond +4akp +2aks +4aks. +ak1st +4akt. +ak3we +a1la +alan4st +a4lap +2ald +a2lel +a4lents +al2fe +alf3l +alf2r +4alia +al4kank +al4kro +al4mac +al4mol +a1lo +al3omt +alo4n +al3ph +als3j +al2sl +als3oo +al4stem +al4sti +al3tha +a1lu +4ambe +1ambt +ame4ran +3ameu +4amm +am2pl +am4se +am4sm +am4sn +am2sp +am3spe +an2aa +an4af +a2na2g +an3arc +an4ded +2andj +and4ri +a4nec +an3emi +a3nen +an3est +an4gan +an4gap +anges4 +an2gr +a3ni +4ank. +an4kaa +an4kak +an4kas +an4kna +an2kr +ank3ro +annet4 +ano3st +an3scr +an2so +an2sp +antes4 +ant2h +an3tha +a4nuu +anval4s +a1o +a2ob +a4op4 +4ap. +a1pa +a2pe. +a4ped +ap3j +ap3le +a1plu +a1po +1appa +3appr +a1pr +a4p3rij +april3 +ap2sl +ap2sp +2apu +a1py +a1q +a4ques +4ar. +a1ra +ar2da +ard3ac +ard3ol +ard3op +ar2dr +ar4dran +ard3ri +ard3w +a4rew +arg3l +3argum +a1ri +ari4an. +ari4ce +ariet4 +ar3k4l +2arl +ar4map +ar4mu +ar4nes +a1ro +2aroo +ar4s1l +ars3la +ars3m +ar2sn +ar2so +ar4spa +ar4spr +ar4stek +ar4str +ar4tak +ar4tap +ar2tj +ar4top +ar2tr +art4sl +a3rus +a1ry +4asa +asal4 +as1ap +a2sc +as4ch +as4cr +a2seb +a2sec +as4ee +a2sel +a3sem +as4en +as2hi +asi4on. +a2sl +as3lam +as3lan +as3li +aslijs4 +as3m +as3pa +as3pi +as3pl +assi3s +3assoc +as1ta +as3tan +a4s3te +as4th +as3ti +as3ton +a1t +at1ac +a4talen +ata1s +a4taz +ate4rec +ate4rek +4atg +at2ha +a3thar +a2tj +3atlas +3atmos +2atn +a2t3re +a3trek +at2sl +at4slo +at2sp +at4stak +at4sti +at4stre +at2tu +2au +4au. +au1ch +au3e +3aug +au3kr +auli4ne +aul4le +aup2 +aur2 +4aus +au3sa +au1t4 +3auto +au1wi +4auz +a1v +aven3s +ave3re +ave3ri +aver4u +a3vi +avil4l +1avo +4avot +a1w +4ay +ay4a +a1z +aze3s +1ba +baar3t +babe4 +babet4 +ba4ch +ba4da +ba4des +ba4dr +bag4h +ba4ka +bal4kla +ba3na +ba4ne. +ban4kl +ban4kn +ban4k3o +ban4kr +bank3w +ban4q +baseli4 +bassi4 +bas3t +2b1b +bbe4lag +bbe4lee +bbe4n +2b1c +2b1d +3be +be3am +be4art +be3dw +beet1 +be3g4 +beis4 +bei4tj +be3ke +be3kl +be4lex +bel3k +bel3sp +be1ra +bergi4 +ber4gl +ber4gr +be1r2o +be4ron +bers4k +ber4sto +be1s4 +be3sm +be1tw +beur4s +2b1f +2bg +4b3h +1b2i +bid3s4 +bi4du +bi3eu +bij3d +bij3k +bijs2 +bij3sl +bij3sm +bin4dr +bin4tj +bio3 +bis4a +bi3se +bis4tr +bi1tr +bit4se +2b1j +2b1k +1b4l +bleus4 +3bli +blik3o +4blish +blok3 +2b1m +b1n +1bo +boe4ga +boe4kn +boe3s4 +bo4les +bo2ma +bom3aa +bo4mo +bonai4 +bond4s +bon4tj +bon4to +boos4t3 +bor4sto +bos3 +bo4sp +bos4ses +bo2su +bo2th +bot3j +bo4tu +boven3 +1b2r2 +braat4 +b4re +breis4 +bri4a +bri4l +bro4n +2b1s2 +b3s4c +b2sla +bsou4 +2b1t2 +bt4s3 +1bu +buit4j +bus3c +bu2su +b1v +2bw +byr4 +bys4 +2b1z +1ca +ca4chem +cae3 +cag4 +ca2k +can4nes +ca3pa +ca2pe +cara4t +ca4re. +ca3ro +cas3t +cat2 +ca3ta +cate4r +ca3th +2c1c +cce4s +1ce +cee2 +cei4 +3cel +celi4n +ce4lop +4cema +ce3na +2ceni +3cent +4cepa +ce3ra +ce3r4o +ce2s +ce3s2a +4cesp +ce3su +ce2tj +2ch. +chaar4s +4chav +2chc +2che. +4cheb +2cheg +2chek +che4lee +4chemu +4cheor +4chep +3cheq +che3ri +4chero +2ches +2chev +4chg +4chh +chi4k +4chm +4chn +cho3s +2chp +3chris +2cht +3chum +2chw +3ci +ci4al. +cier4s +ci1eu +ci4le. +ci4nen +ci1p +ci4so +ci3t4 +c3j +2c2k +cka4 +ck1en +ck3ers +ck3l +ck3n +cks4 +1c2l +cle4v +c4li +cli4q +clo4ne. +clo4se. +cly4 +2cn +cno4 +1co +3co. +3coa +3cod +3col +co4le. +colet4 +co2lu +3com +3con +con3g +con3s +cop4 +3copa +co4pe. +co3pr +coquet4 +3cor +co3ro +corp2 +3cos +3cot +3cou +4cout +co2v +4c1q +c4ques +1c4r2 +cra4y +2crib +3cris +cros4 +crui4 +2c1t +ct3ad +cte2n +c2th +cti4on. +cti4ons +c2tj +ctoi4 +c2ton +cto4rin +ctu4re. +1cu +cu4ad +cuk4 +3cul +cur3s +cy4th +c3z +1da +3daag +4daam +4daanb +d3aanw +2d1af +da3fr +da2ga +da4ged +da4gon +dag3op +da4gor +da2gr +da2gu +2d3akk +dak3l +da2k3r +4daks +4dalar +4dalm +d2ame +3dan +da4nas +dan4kl +dan4sm +dans3p +2d1ap +d2ape +3dapes +da2ra +2d1arb +3dari +dar2m +darm3a +das3t +4d3aut +da4ve. +2d1b4 +dbou4wi +2d1c +2d3d2 +dde4lev +dde2n +dde4red +dde4ree +dde3s +1de +de1ch +2deen +dee4r +dee3t +4deff +4deg. +2dei +de4klaa +de4klag +de4kna +4deksa +de4lac +4delas +del3dr +4delec +4delek +4d3elem +de4leng +de4lon +de4lov +del4sl +del4str +4demai +4demm +d4en. +de4nab +den4ac +den4du +de4nep +den4kof +den4kop +den4kr +de2no +den3oo +de3rab +de3ras +de4rei +de4rem +de4rep +de4ret +de4rim +de4rin. +der3k +der3na +der3of +der3on +der4sa +4derts +der1u +de2s +de4sk +de3sl +des4pel +de3sta +des3ti +de3sto +de3str +det2 +de3ta +4deten +de3tw +dewin4d +2dex +3dex. +2d1f2 +2d1g +d4ge. +d4ges. +d3g4l +2d1h +d3he +dhun4 +1di +dia3s2 +die2f +die4tra +di1eu +di2ga +dig3aa +2dijz +di4ko +2dind +2dinf +2dinr +2d1ins +4dinw +4dinz +di4sin +2d1j +2d1k +2d3l +dlan4de +dli2n +2d1m +dmoes4 +2d3n +1do +2doef +doe2l +d4ok +dok4r +dolk3s +do2mo +dom2s +2dont +3donti +dont4l +2dop +do4pe. +do4pes +3dopj +d3o4pl +3dopt +2d1org +do3ro +dors3m +do3sk +2d3p2 +dpren4 +d2r2 +3dra +4drand +4drap +4dras +d4re. +d3rec +d3red +d3rege +4d3rel +3dremp +d3resu +2dric +dries4 +3d4rif +d3rijd +d3rijk +3drijv +3drin +3dris +d3rit +dri2v +4droei +3drog +4drok +d3rond +d3rood +4droos +d3rov +d4roy +4d3roz +4drug +drug4s +d3ruim +3druk +4drus +4ds +ds1a +dsa4d +ds2al +dsas3 +d3sch +ds4cor +d4sed +d2see +d4sek +dse4la +d3sen +d4ses +dsex2 +d2si +dsi4ga +d2sl +d3slaa +d3slac +ds3lie +d3slin +ds4mee +ds3na +ds3no +d3snu +ds1o +ds2oo +d4spal +d4spet +d1spi +d4spon +d3spor +ds4pre +d1st +d3sta +d4staal +d4stab +d4staf +d4stal +d3ste +d4stek +ds3th +d4stit +d2su +d3sur +2d3t2 +1du +du4bl +2duil +dui4t +4duitg +du1o +dus3 +du4wee +2d1v +2d1w +d2wa +d3waar +d3wac +4dwarm +4d3wat +d3weg +d4wei +d3wek +d3wer +d3wes3 +d3wet +1dy +4dyo +dy2s3 +2d1z +d2zj +e1a +e3aa +e3ac +e4ade. +e4ades +ea2di +ea4dor +ea2gu +e3ai +ea2k +e2akd +e4ake +e4ako +eals4 +e2am +e3amb +e3and +e3ant +e4anu +ea2ri +ea2s +e4at. +e2ath +e4atm +eatri4 +eatu4 +eau4n +eau3s4t +e1b +ebo4k +e3br +e3cha +e1che +e1chi +e3cho +ec3le +3econo +ecor2 +ec4tin +e1d +4ed. +e3dam +ed3ijz +e2dov +e3dru +edsel3 +ed1sp +ed2w +e3dwan +e2e +ee2da +ee2f +eef3l +ee4gli +ee2gr +ee2k +eek1e +eek3n +ee3ko +ee3kri +eek3ur +eek3uu +ee2l +ee3led +ee3li +eel3k +eel4si +2eem +ee2n1 +eeng4 +een3k +een3sl +eep3ac +eer1a +ee2ri +eer3in +eer3k +eer3om +eer4ov +ee2s +ee3sc +ees4ch +ee4sem +ees3li +ee3smu +ee3spr +ees3te +ee2t +eet3h +eet3oo +eetra4 +ee4tw +e4fad +ef3da +3effec +3effek +ef4fle +e1fl +e4fom +e1f2r +ef3sm +e1g +egas4k +e4gec +ege4las +ege4lov +e4gos +eg3s4 +e1h +eid4sp +ei1e +eie3s +e1ij +eil3d +eil3m +ei2lo +e2in +ei4nap +ein4do +ein4dr +ein4du +ei4ned +ei4re. +ei2s3a +eis4lo +eis4p +eis4ta +eis4tel +eit2 +ei1tj +ei4too +eit4s +eit3z +e3j2 +e3kaa +e3kam +e3kas +2eke +ek4er +ek2et +e4kez +ek3ins +e4klast +e3kled +ek3les +e4koli +ek3ov +ek4ru +ek1sa +3eksam +3eksem +eks1p +e1kw +e1la +el1ac +el1af +el3arb +e4las. +el2dr +e2lel +e3len +e3lep +e4lert +e4leta +e3lev +el4faa +el4fend +3elfta +el3gl +e3lig +e4lind +e4linga +eli4p +3elix +elk3s4 +e1lo +e2lob +e3lok +e2lol +el3oli +e4lom +el3ops +e2lor +el4sj +els2u +e1lu +e1m +emes3 +em3ins +e4mir +en1ac +e2nak +en3akk +e2nal +en3ana +e2nap +en3app +e2nas +en3asi +ena4sp +e2nav +e2naz +en4ce. +en3dar +ende4ra +en4dur +e2nec +en3ech +en3eil +ene4n3 +e4nent +e3ner +e4nerf +3energ +e4nerv +e3nes +e4nete +e2nex +en3ga +enge3s +engs4 +e4nid +enier4t +e4nink +e3nis +4enkl +en4kre +e2non +enoot3 +en1op +eno4pl +e2nor +e3nor. +en3ord +en1ov +en2sl +en2sn +en2so +ens3on +en4stin +ent2h +en4trol +ent4sl +ent4sp +en1ui +e2nun +en3ur +e2nuu +e1o +eoga4 +e3on +eonti4n +e3op +eop4l +eop4r +e4or4ge +eo1ro +eo3s4 +eota4 +e1p +ep2a +e4paf +ep4ap +e4peen +3epid +ep3j +e4poge +ep2s +eps3pr +ep4tr +e1q +e3ra. +e3raad +e4raap. +er1ac +er3afd +e1rai +er3aks +e4rall +e3ranc +e3rape +e1rat +e2rav +erd2a +erd4i +er3do +er3d4w +e3rec +er3eff +e4reig +er3eks +erel2 +ere4neg +ere4se. +ere4tj +e4rets +er3gl +e1ri +erie3s +erie3t +e3rif +e3rig +e3rij. +e3rije +e4rijs +e4rijz +e4r3ind +er3ins +e4r3int +erip4 +e3ris +e3riz +er3ma +er3mo +e3ro. +e1rob +e4roc +e1rod +e1roe +e4roed +e3rok +e1rol +er3oli +e3roma +er3omk +er1on +e3ron. +er3oog +er3oor +e2r1op +ero4pi +e4r1or +e1ros +e3rot +er1ov +er3oxy +ert4h +er3tr +e1ru +e3ruim +eruit4j +eru2m +e2r3ur +er3uu +4es. +e3san +e3sas +e3sch +e3sem +e3shop +es3ill +e3sjo +3eskad +e1s2m +e1sn +e1so +e3sol +e1sp +es3pek +e4spen +es4poo +e3stad +es4tak +e4s3te. +e3s4tem +es3ten +es3ter +es4teu +e2sti +es3tig +es3tin +e3stof +e1stu +e3sy +e1ta +e3tali +et4ana +eta4p +e4tau +e3te +etek4k +ete3ra +e1th +et2ha +et3ham +etien4 +e3til +e3ting +e1tj +et2jo +e1to +e3ton +e1tr +et3rui +et3sap +et4sla +et4sli +et2sp +ets3pr +et4stek +et3s4u +e1tu +et2w +e3twi +4eu. +eu4ce +eu3e +eug4dr +eug4r +2eui +e1uit +eu4ler +e3um. +eu4na +eun3s +eun3t +eu4rad +eu4rat +eu4rij +eus3t +eut2h +2eu2w1 +e1v +eval4s +even4st +eve3ri +evol4ga +e1w +ew2h +e3wi +1exam +1exem +4exi +1exp +3extr +ey2n +eys4 +e1z +4ez. +ezen4s +ezin4s +1fa +f3aar +f4ab +face4 +2f1ach +fa4den +f4ag +fa2ke +fal4to +4fana +fant4 +fa4re. +3fase +f2av +2f1b +f1c +2fd +f2da +f4dele +fde4s3 +fdes4m +f4dh +f2din +f3doe +f1dr +fd4ra +fd4ru +fd2w +1fe +fe2a +fede1 +fee4l +f3een +3fees +fe4lov +3fem +fen3t +fe3rab +fe3ran +fe4ret +fes3 +fes4p +fe4tj +feur4 +2fex +2f1f2 +ff3s4 +f3fu +4f3g2 +fge1 +fgo4v +4f1h +1fi +fi3ch +3fie +fie3tj +2f1ijz +fi4le. +film3a +fi4nel +fi4no +4fint +fisto3 +f1j +2f1k +f2l4 +f3laf +fle2t +4flie +4f3lij +f4lip +f4lor +f4lot +f3loz +2f3m +fma4d +f1n +1fo +2foef +2f3of +f3oms +fon3te +f3oog +2f1o2p +2f3org +3form +for4tj +fo1ru +2f3oud +foy4 +2f3p +fr2 +1fra +fra4m +f2ras +f2raz +f3reg +fre4t +f4rez +f2ri +f3rij +fri4te +f2rod +4frol +fru3g +2f1s +f2sa +f3sch +f3sel +f4sh +fsho4 +f3s2j +f4slap +f4sled +fs2m +f2s1o +f3ste +fste4m +f3s4ti +f3stof +f3stu +2f1t +f4tene +f2th +f2tj +ft3je +ftwa4 +1fu +f2un +2fuu +f3uur +2f1v +2f1w +1fy +4f1z +1ga +gaar3t +4gabc +gaby4 +2g1ac +4gaft +4gafw +4gah +gal2a +ga4mes +gamo4 +gan3d +gan4st +gapo4 +4g3arb +g3arm +g3arti +ga2s +ga4se +gas3p +gas3tr +2gaut +4gavo +gazi2 +2g1b +2g1c +2g1d +g3de +g4dell +g4dim +g3doe +gd2s +1ge +ge3a +ge4ari +4geb. +2g3ebb +2gebd +4gebt +ge1c +gedan4 +gee4 +ge3ei +g3eend +gee2r +gef4 +4geff +gei4la +gei4tj +gek4l +ge3k4w +gel4da +gel4du +gel3f +gel3sa +gel3sn +4gemb +4gemf +4gemp +ge4ned +gen3k +ge4noc +ge4nof +ge4nog +gens4f +gen4su +gen4tr +ge1ra +ger4dr +ge4reng +ge1r2o +ger4sp +4gerts +ge3ru +ge1s2 +ge3s4a +ge3sc +ge3sh +ge3sj +4ges4k +ge3s4m +ge3so +ges4p +ge3spl +ges4te +ge3ta +get4i +get4j +ge3t4w +3gev +2g1f2 +4g3g4 +gge4nol +2g1h +g2het +g2hum +1gi +gier4s +gi1eu +gi2f +2gij +gi4mes +gi4nes +2ginf +2g1j +2g1k +2gl +g3la2m +3gla4s +3glaz +g2le +g3leg +g3lei +g3ler +3glik +g2lim +gli4n +3glob +3glom +4g3lon +g1loo +g1lop +3g2ly +2g1m +2g1n +g3na +gneet3 +g4ners +gne4tj +g2no +g3non +1go +go2a +2goc +g1och +godon4 +god4s +2goef +goes3 +4goh +go2k3 +go2ma +go4mel +4g3ong +4gont +2g3oor +2gop +gop4la +4gore +4gorg +gor4s +go3tr +gou4dee +gouil4 +2gov +2g1p +1g2r2 +g3rak +gra2m +g4ra2s +gra4ves +2g3red +gree4 +2grei +g3reis +4grem +gren4s +gre4s +g3rijk +gri4mes +2griv +4grok +g3roke +4grou +g3ruim +g3ruk +2gs +gs1a +gsas3 +g2sc +g3sch +g4sco +g4scr +g2se +gs1ef +gs3eig +gs3eis +gs3ek +g3sel +gs3f +g2s1i +gs4ke. +gs4ken. +gs4kes +g2sl +gs4lep +gs3lie +g3slu +g4sma +gs4maak +g3snoe +g2s1o +gs3p +gs4pel +gs4pet +gs4pi +g3spie +g3stam +g1ste +g3s4te. +gs3teh +g3stel +g4stelg +gs3th +g3stig +g3stu +g2su +gs1ui +gs3uu +g3sy +2g1t +g4tap +gtui4gi +1gu +gu4al +gu2at +gu2e +2gue. +3guer +guet4 +guim4 +gui4ne. +2g3uit +gun3 +gus3 +2g1v +2g1w +3gy +2g1z +h2a +haar3t +haf4tu +ha4kr +hal2f3 +2hamp +han3ga +hang3s +han4sl +hap4se +har4t3a +har4th +hart3j +har4to +has3 +ha4tek +ha2t3r +4h1b +4hc +2hd +h4e +4he. +he2ad +3hech +heel3o +he4fe +hei4t +he4kan +he2kw +he4lan +hele4n +hel4m3a +he4lov +hel4pa +hel4pr +3hemd +hemme4 +hen4kr +2heo +he4pij +he2pl +he2p3r +he2q +he1ra +her3ad +he3ral +he3rau +her3c +he3rem +he2ri +her4paa +her4pr +her3s +he3sa +he2sp +hes3t +hete1 +4hew +4hf +h3h +4hi. +hie4dr +hie4f +hie2r1 +hie4to +hie4tr +hilip4 +hi4ma +him4pl +him4pr +hin4tj +2hir2 +hi4re +4h1j +2hl +h2le +2h2m +h3ma +h3me +h4mer +4h1n +h2na +h2nit +2hoc +hoe4ker +hoe4sl +ho2fa +ho4fe +hog4 +ho2k +ho4le. +ho4me. +ho4mec +ho4mes +hon3dr +hon3ga +honig3 +hon4se +hoo4 +ho4pl +ho4po +hop4sm +hop4str +ho2q +ho1ro +hor4se. +hor4tj +4ho3ru +hou4se +2how +4h1p +hpi4 +2h4r +hra4b +hri2 +hro4b +hro4k +4h1s +2ht +h4t1a +ht3au +h4t3ec +h4ted +h2tef +h4teks +h4temb +h4ten3t +hter1 +hte4rin +hte4ro +h4tesk +h2t3ev +h2tex +ht1h +ht1j +ht1o +h1ton +h4t3r +ht2s +ht4ser +hts1o +ht4som +hts3pl +ht3sta +ht4stek +ht4sten +ht3u +hu2ba +hug2 +huid3a +huim3a +hul4der +hulp3a +hu4me. +2hus +hu4te. +hu4tes +huw4do +4h3v +2hw +h2wei +4hy. +3hyp +hype2 +h3z +i1a +i4aalt +i3ac +i3ae +iaf2 +ia3g +i3ak +iak4l +i2als +ian4n +i4ans +ias4me. +i3au +iave4 +i1b +i2bac +ibu3e +ica4p +i3cen +i1cha +i1che +i3chi +i1cho +4ici +id3ach +id3ame +i3dat +id4e +ider4sp +ider4st +id2g +id3ru +id2s1 +id4si +ids3l +ids3o +ids3p +id4stem +iduw4 +id3w +ie3a +ie4dac +i1ee2 +ie2fl +ie2f3r +ie4gal +ie4gas +ie4gu +iekes4 +ie2kl +ie2kn +ie4kond +ie4kre +ieks3p +iek3t +ie4kuu +ie4laa +ie4las +ie3le +ielf4 +iel4le +ie4mov +i4enc +ie4nij +ien4sta +ien4str +ien4stu +ie4plo +ie4pui +ie3rad +ie3rap +ie4rat +ierk4 +ie3roo +ier4re. +ier4sl +ies4e +ie2sl +ies3li +ies3m +ie2sn +ie2so +ie2sp +ie3sta +ie4ste +ie4taa +ie4tap +ie4tho +ie2tj +ie4tog +ie4trot +ieuw4a +2if +if4tang +if4tr +if4tui +i4gav +i4gins +igit4 +ig3n +ig4ner. +igs4 +ig3sc +ig3sto +i1h +i3i +i4j +2ij. +ij1a +2ij1e +ije2n3 +ij1i +ij3o +2ijt +4ik +i4kak +ikes4 +i2kij +i2kn +ik3na +ik3ni +ik3re +ik1sp +ik1st +ik3we +2il +i1la +il3ac +i3lak +il2da +il4din +il2dr +ild3ri +ilds4 +i3len +ile4t +ile3u +i2l3ez +i4link +illa3s +il2ma +i1lo +i3lof +il3oor +il3or +il4sti +il2th +i3lu +ima4ges +i2me. +i2med +i4met. +imma4g +imme4la +imon4 +im3op +imo4r +im4sm +imte3 +in1ac +in4as +in4dene +3indru +1indu +1inf +in4gaa +in4gag +in4gal +in2go +in2gr +ing3ru +ing4s3e +3inhou +in2kn +ink3na +3inkom +inos4t +1inri +in4sa +3insta +inta4 +in4tap +int4r +3invlo +i3o +io1a +iog4 +io4nin +ion4s3 +io3pr +io1s4 +io3sko +iot4r +i1pa +ip3ac +i4perw +ipe4tj +ip3j +i1pl +i3pot +i4ps +ipsi4 +ip4sle +ipu4r +i1q +4ir +i3ra +iraat4 +ir2e +i4red +ires4 +iret4 +i1ri +i1ro +ir2s +ir3ste +i1ru +i1sa +i4saa +i2sad +i4sak +i4s3ap +is1ar +i2sas +i4sau +i2sc +isci4n +i2s3ei +i4serv +ise4tj +i3sfe +isi4ne +i3sji +is4koo +i2s3l +is4laa +is4lui +is3n +is3p +is3t +istal3 +is4th +isti4n +is4tra +is4tre +is4ty +2it +i1ta +it1ac +it3ach +i3tan +i3ter +i4thou +i3thy +i3t2i +i1to +it1ri +it3ru +its3ei +it3smi +its3u +i1tu +it3w +4i1u2 +ium1 +i1v +iver4a +ive3re +ive3ri +ive3s +i1w +i1z +i4zl +2jaf +jager4s +ja4ke +j4am +ja4me +ja4ne. +jani4 +ja4no +jan4sl +3jar +jas3p +jaz2 +jbe4li +j1c +4j1d +j4daa +jde4ne +jden4s +jde3s +j4dog +j2dr +jd3re +jd3ri +j4du +je2a +jean4n +2j1ee4 +2jei +jek4tr +j1en +je3r4o4 +je4s3 +je2t +je3to +jet3r +jet3u +j2f1a +j4fec +j2f3ei +j2f1en +j2fij +j4fin +jf3l +jf4la +jf2s +jfs3ec +jf3str +jft4 +j1g +j4gre +jg4st +4j1h +2ji +3jic +jin3 +2jk +j2kaa +j4kag +j4kar +j4kas +j4kek +j4kerv +j2kij +j2kl +j3kle +jk3li +jk3lu +j2kn +j4kof +j4kol +j4kon +j2kor +j2kr +jk3re +jk3ru +jks3a +jk2si +jk2sl +jks3n +jk3soo +jk3th +j2kui +jk3waa +jk3we +jk3wi +j1la +jlijs4 +jl3k +j1lo +j2loe +2jm +jm3af +j3mi +j2n1a +j4nerw +jne3s +j4net +j4nex +jn3g +j4nim +j4nink +j2n1o +jn4sce +jn2si +jn2sl +jn2sp +jo4a +job2 +jo4ke. +jol4e +3jon +jone4 +jo4nes +j4ou +jou4l +3jour +joy4 +j1p +jp3ac +jpe3s +jp3j +j2pli +j4pre +j4pri +4j1r +4js +js4e +j3sel +j2s1i +j2sl +js3li +j3slu +j4so +j1sp +j2spo +j1sta +j3stel +js3ten +j4s3ter +j1str +j4stran +j1stu +j2su +2j1t +j4taar +j2th +j3the +j4top +j2tr +jt3ra +jt4rad +j3tre +j3trok +ju4a +juit4 +ju2le +jumel4 +jus3 +justi4n +j1v +jve4n +jve3ri +jver4sp +j1w +j1z +jze4ro +1ka +2k1ac +3kache +4kaf. +4kafs +4kah +4kaks +4kalb +kalf4s +kal4k3a +kal4kl +4kalt +2kamb +kam4pr +4kang +ka3n4o +kan4sl +kan4t3j +kant3r +ka3pa +ka4pl +kap3la +4kappa +kap3s +2karm +k3arti +ka4s +ka4tan +kat3j +ka4tog +ka4too +ka4tui +2k3aut +2kavo +2k1b +kbe2k +kbek3w +2k1c +2k1d +1ke +k4ed +keel3 +2keen +kee4pl +keer4s +keis4 +ke4nad +ke4nau +ke4nep +keni2 +ke2no +k2ens +ken3t +ke3rad +ker4kn +ker4ko +ker4kr +ker4ku +ker4kw +ker4n3a +4kers4ek4 +4kerts +4kerwt +k4es +ke3sta +ke4s3tr +ke4th +ke2t3j +4ketu +ke4tw +k4eu +2kex +k1ey +key3s +k3ezel +2k1f2 +2k3g +2k1h +1ki +4kied +kies4t +2k1ijz +4kindu +2kinr +2kins +3kins. +ki2p +kip3l +3kis +kis4p +kis4to +2k1j +2k1k +kker4s +kke3s4 +1k2l4 +3klac +4kladi +4kland +3klank +kla2p1 +2klat +4kleer +4kleg +k3len +4klera +3kle4u +2k3lic +k3lied +2klij +kli4me +k4lon +3klont +k3lope +2k3loz +2k3luc +4kluih +2k1m +1k2n4 +4knad +2knam +3knec +knip1 +2kniv +2knum +1ko +4koct +2koef +koe4ket +4kokt +kole4n3 +4kolm +3kom +kon3s +4kontw +2k3oog +4kopb +ko4pl +kop4ri +3kopt +2k1org +kor4ta +kort3o +4kos. +ko4so +4koss +4kov +2k3p2 +kpren4 +1k2r +kra2b +k3rad +3kran +3krat +2k3rec +kret4 +2k3ric +k3rijk +krij4t +2krip +4krol. +4kroll +kro3s +2krou +kru4l +2ks +k4sad +ks1ar +k2sav +k2see +ksem3a +k2s1in +ks3j +k3slac +k2s3li +ks4mak +ks4mee +ks3na +k1spe +k1sta +k4staf +k4star +k1ste +k4sted +k4stele +k3sten +ks4ti +k1sto +k2sui +2k1t +kte2n3 +k2t1h +k2tin +k4tj +ktoet4 +kt3ond +kt2s +kt3sc +kt3se +1ku +ku3che +kui4f +2k3uit +kuk4 +3kun +2kuse +kus4tr +4kuus +2k1v +k2w +k3waar +2k3wac +k3wag +3kwak +k4wal +1kwam +3kwar +4k3weg +k3wei +2k3wer +k4wes3 +1kwid +4kwijd +k3wijz +k4wik +2kwil +4kwim +2kwin +2k3wo +4ky. +2k1z +4laand +laap3 +4laard +laar3t +3labo +2lac +3lach. +lacht4s +l4aci +3lact +la2d3a +2ladj +la4dok +la2dr +lad3s4 +la4du +2laf +la2fa +lafo4 +la2ga +lag3aa +la2g3o +la2gr +la3gra +lag3s4 +lai4d +lai4n +la2k3a +la4ki +2lal +l3alb +la4mac +la4mov +lam4p3j +lam4p3l +lam4pol +4lana +3land +lan4da +lan4do +lan4d3r +la4nek +lan4em +lang3l +lan4ka +lan4k3l +lan4sl +lan4t3j +3lapj +la4p3l +la4p3o +4lappa +la2p3r +2larb +las3 +la4tam +la2th +lat3j +la4tro +lat3s +la4tui +2lau +lau4de. +lau4m +la4vat +2lavo +la2wr +la4ze. +4lazi +2l1b +4l1c +2l1d +l2d3ac +ldak4s +l4dart +ld3een +ld3ei +l3d4en +l4dh +l2dom +l2don +l4dos +l2d3ov +lds4a +ld3sl +ld1sp +ld3w +1le +le2a +lea2d +lea4s +le3at +3leb +ledes4 +lee2 +leeg3 +4leekh +lee4p3 +lee4s3 +2leeu +2leff +4leier +4leig +lei4na +le4kw +l3elem +l2en +l4en. +le4nad +3leng +3leni +len3k +len4tr +leper4 +le1ro +le2s +les2k +le3sko +4lesm +le4sp +le3str +le2tr +let4sta +4letu +4levil4 +4lexc +2lexp +3ley +4lf +l2f1ac +l2fin +lf3li +lf4lo +l2fo +l3foe +l3fou +lf4ree +lf4sei +lfs3m +lf4spo +l1g +l4gaf +l4gap +l3gla +l4gon +lg1s +l1h +1li +li4ce. +4lick +3lid +lie4ga +lie4gr +li3enn +lies4t +lieu3 +3liev +3ligg +lij4ko +lij4ma +3lijn +4lijp +3lijs +lij4st +2l1ijz +li4ke. +li2ko +lilia4 +lil4le. +4limp +lim4pj +2linf +4linh +lin4ka +3linn +4linr +2lins +lin4t3j +4linv +4lipj +li4pl +lis4e +4litary +li1th +li4ve. +l1j4 +l4kaf +l4kei +l4kep +l4klag +l4klev +l2kri +lk3rij +lk2s +l4kuu +lk3wi +4l1l +l3la +llas4 +lle3st +llinai4 +lls4 +2l1m +lm3act +l4med +l4mind +lms2 +lm3sc +lmta4 +4l1n +lni2 +3lobd +lo4bo +loe4d3a +loe4d3r +loem3a +4loes +lofd2 +3lofi +lof3r +lof4s +4logig +lo3go +lo4gre +log4s3 +loi4r +3loka +lo4kar +lo2kl +lo2kr +lo2k3u +lomp3j +l3omv +lon4gaa +lon4go +lon4gr +lon4t3j +3loopb +4loord +4loort +3loper +4loph +4lopn +lop4r +2lops +2lopt +4lopw +l4or. +l1org +lo1ro +lo4sp +los1t +lo4str +lo2ta +lot3ak +lo2th +lot3j +lou2p +lo4ve. +lo4wed +1loz +2l1p +l4pac +lpe4ni +lpes4 +lp2h +lp3j +lp3ond +l4ques +2l3r +2ls +l3sam +ls4cr +l4sed +l2sef +l4sele +l4sep +ls2j +ls3ja +ls4kel +l3sla +l2sle +l2sli +ls3lie +ls4mee +l3som +l1sp +l2spr +l1st +l4stal +l4steko +l4stele +l4stev +l4stou +l2su +2l1t +ltai4 +lt2h +l4thi +l2t3ho +l3tj +l4tjesk +l2tov +lu4bl +lu1e +3lui. +3luid +4luit +lu2ka +luk2s +3lumb +4luni +lu1th +l1v +lva3no +lve3ri +l1w +1ly +l1z +1ma +3maalt +3m4aat +mac3k +ma4cl +ma3de +2m3adv +2maf +ma4geb +ma4gev +mai4li +ma4ke. +4makt +ma3la +ma4lent +man3ac +m3anal +man3c +3mans +man4see +man4sl +man4sn +man4so +mans3p +man4st +4mape +map4l +mas4p +mat3j +m2av +mazi4 +2m1b +mbi4ne. +mbi4nes +mbo4le. +2m1c +2m1d +md2s +md3so +m3dw +1me +3me1c +3medi +mee3kr +mee3le +mee3lo +mee3lu +mee3ri +3mees +mee3sl +mee3sp +mee3tr +me2i +mein4a +4melam +mel4ko +mel4ku +3m2en +men4ag +men4gra +meng3s +me4noo +men4suu +men4tj +mep4j +me1ra +me4raak +me4rak +me4ram +merg4s +mer4kn +mer4kw +mer3n +mer4on +3me2s +mes4ha4 +me3spo +met4aa +3me3th +3meto +metrai4 +m4eu +meus4 +2m1f +mfi3t +2m3g +2m1h +1mi +mi1ch +miche4 +mick4 +2mid. +3midd +mijl4s +4mijs +3mil +mi4le. +mi4men +2minf +2minr +2mins +3mis +mis4la +mi3sog +mis4ses +mis4to +3mit +mi1tr +2m1j +2m3k2 +2m3l +2m1m2 +2m1n +1mo +3mod +mode4l +3moed +moed4s +2moef +3moei +moe4raa +moe2s +moet4s +3mo3g +3mole +mol4ma +4molt +4momv +mon4a +monet4 +mo3no +mon4so +m3onts +3mooi +2mop +m3ope +m3oplo +mop4sn +moquet4 +5mora +mor4e +mo3ro +mor4sp +mos4c +mo4sl +mo3sta +mot4h +4moud +mo4ve. +mo4ver. +mo4vers +2m1p +mp3ach +m4paf +m4pes +m3pj +mpon4g +m4ps +mp4se4 +2m3r +4m1s +m2sa +m3sau +ms2j +m3sje +m4sle +m3s2m +m2so +m3son +m3spl +ms4ti +m4ston +m4stop +mtes2 +1mu +mu2m3 +3mut +2m1v +2m1w +3my +my3o +2m1z +1na +3na. +3naal +3n2aam +2n1aan3 +4naap +4naard +3naars +naar3t +n3aas. +3nabe +2nac +n4acu +nadet4 +3nadi +4n3adm +2n1af +naf4l +n2a1g4 +3nagel +n3agem +na3gl +na3gr +3nai +na1ij +4naker +na3k4l +3nale +4n3alf +3nali +3n2am +n2an +nan4e +nanes4 +3nant +nan4tj +4nara +na4rap +2n1arb +2narg +2n1arm +4nars +2n1art +na3sc +na3s4l +nas4m +na1sp +na3stu +n3asy +3n4at. +3nata +nat4h +n4ati +2natl +nat4r +2n1b +2n1c +n4cheo +nci4n +2n1d +n4daas +n4dabo +n2dac +n2dar +nd3art +n4daz +n4degg +nd1ei +n4derec +n4dh +n4dijs. +nd3ijz +ndi4se +n4dof +n4doli +nd3ont +n4doog +n2dov +nd3ove +nd3rap +n2dre +nd3rei +nds4ben +nd3si +nd1sp +nd4spra +n2duu +nd3uur +nd3w +1ne +nebe4s +2need +3nee4m +2n1een +neer3s +nees3 +2n3eff +3ne3g2 +nege4n +nehen4 +2nei +3neig +neil4 +n1ein +n3elem +neli4n +3n2em +4nemm +4nemp +ne2n +n4en. +n4end. +nen3g +4nenke +nen3o +ne4pli +ne1ra +n2ere +n4erg +ne4rid +ner4sp +4nerts +4neru +4nesm +ne3sta +4nesth +ne3str +ne4ton +ne4tru +4netu +3neuz +2n3f2 +2ng +n2g3ad +n4gak +n2gam +n4gank +n2gar +n4geen +n4gensm +nge4rap +nge4ras +ng4hi +ng3ij +n4ginr +n4g3ins +ng3lad +ng2li +n3glic +n3glu +ng3n +n2g1on +ng3rai +n3gro +ng2s +ng4sche +ng4s3le +ngu4a +4n3h +nhands4 +nhom4 +1n2i +ni4ce. +ni3eus +ni3euz +3nig +nij4st +2nijz +n3ijze +nik4s +3nim +2nin. +4n3ind +2n3inf +4ninga +nin2k3 +2n3ins +2n3int +4ninv +ni4pl +ni4sel +ni3str +ni3th +ni1tr +nits4 +3niv +n1j2 +2n1k +nk3aan +n4kag +n4karb +n4kasp +nk2ey +n4knaa +n4kog +nk4om +nkoo4 +nk3ov +n3kra +nk3rek +n3kru +nk1s +nk4so +n2kw +n3kwam +nk3wat +nk3wi +2n3l +4n3m +2n3n2 +nne4pol +nniks3 +1no +4nobj +4noec +2noef +4noer +noes3 +3nolo +n2oma +n3omg +3nomi +3nomm +4noms +4nomw +3non. +3nonc +n3ond +2n1ont +3nood +4noof +2n1oog +4n3oorl +2nop +no4pas +no4poo +no4por +4n1org +2nork +3norm +3nors +2nort +no3s4a +no3sk +no3sp +3nota +no4tap +3noter +3noti +2nov +3n2ova +2n3p4 +npoor4 +n1q +2n3r +4n1s +n2sa +n3saal +n3sal +ns3ang +nsas3 +ns3asp +n3sau +ns2c +n3sce +n3sch +n4sed +n4sef +n4seg +n2sev +ns3f +ns4fee +n3sjo +ns4kri +n3slaa +n2sle +ns2m +ns3mar +n3sme +ns3moe +n4s3mu +n3sne +n3snij +n3snoe +n3soe +ns3onw +n3soor +n4spaa +n4spot +ns4ta +n4staf +n3ste +n4steh +n4stenv +ns3the +ns4tie +n3stig +n4stij +n2sui +2n1t +n4tarc +ntat4 +n3teg +n2tei +nt3eig +n3tel +nte4loo +n3tev +n2th +n3them +n3thol +nt3ink +nt4jo +n3to +n4toli +n4top +nt3raf +n4t3rij +n3trou +nt3rui +nt3ruk +nt3rus +nt4sa +nt4schr +nt4sle +nt3sm +nts4ma +nt1sn +n3tu +n4tuit +ntu4re. +ntu4res +nt4wis +1nu +nu1er +2nui +4nuil +3num +2nur +nuts4h +n3uur +nu2wi +2n1v +nvel4l +nvil4 +2n1w +nwa4v +nwe4tj +nx3a +1n2y +4ny4i +4nyo +2n1z +o1ag +o1al +o1an +oa4ti +obal4 +1obj +obos4 +ob3sk +o3cha +o1che +ochet4 +o3chi +o3chr +ocke4 +4od. +od1ac +ode3ra +o4dr +od3re +od3ri +ods3oo +od4sur +od3w +oe2da +oed3aa +oed3ar +oed3ei +oede4n +oede3s +oe4don +oe2dr +oe2d3u +oed3w +oe2f3a +1oefe +oe2fi +oe2fl +oef3le +oe3flu +oe2f3o +oe2f3r +oei1 +oei3s4 +oe4kaa +oeke4n +oe2kl +oe4kna +oe2k3r +oek4sl +oe2ku +oe2kw +oel2a +oe4lap +oel3ei +oeleve4 +oe3li +oe4lov +oe4mac +oe4mak +oe4mo +oe2no +2oep +oep3ac +oe2pl +oe3plo +oep3lu +oe2pr +oeps1 +oep4se +oe4pu +oe1ra +oe4ral +oer4sl +oer4so +oer4sp +oe3se +oe4so +oe4tei +oe2t3h +oe2tj +oe4tol +oet4so +oe4tw +of3at +ofd1a +ofd3ei +of2do +ofd3on +of2d3r +of4du +ofd3w +3offic +of3l +of4la +of4le +of4lu +o3foo +of2r +of3ri +of4sel +of2si +of2sl +of2sp +of4su +oft2s +of4tur +of4tuu +ofy3 +o1g +og4aa +o4gal +oge4las +oge4st +1ogig +og3le +og3n +og2s +og3sc +og3spi +og3ste +o1h +2oi1 +oi4ne. +oinet4 +ois4 +oi3sc +oist4 +o1j +o4kaas +o4kaz +ok3ef +o4kes +o2k3n +o4kre +o4k3ro +ok3sa +ok1st +ok4str +okter4s +4ol. +o1la +ol3ac +olber4 +ol3ein +o3len +ole4ne +ole1u4 +ol2fa +olf3l +ol4gor +ol4gre +ol4gri +olie3s +ol4kaa +ol4mes +o1lo +olo3k +o2lop +ol3sj +o1lu +ol3umn +o4map +omen4s +o4mint +2omm +om4pj +ompo4t +3omro +on3ac +o4nam +o4naz +4onc +2onca +ond3ac +4onde. +4onden +on4dij +on4don +on2dr +ond3re +ond3sj +on4dur +o2ned +4oneerb +o4neh +on4end +on4gap +onge4tj +ong3le +4onin +oni2q +4onk +on4klo +on3kw +2onn +onne3s +2ono +on2sn +on3ta +on4taa +ontes3 +1ont1h +on4tre +3ontva +3ontw +o4o2 +4oo. +oo3c +oo4d +ood1a +ood1e +ood1o +ood3r +oofd3o +oof4dr +oo4g1 +oog3r +oogs4 +oog3sp +ook1 +ooks4m +ook3w +ool1 +oom1 +oo4n1 +oon4sa +oo4p +oop1a +oop4sp +oo4r1 +oor3g +oor3i +oor3k +oor3sm +oos3 +oo4t +oot3h +oot1o +o1pa +o4paar +op3ach +o4pad +o4paf +o4pak +opa4n +3opbre +op3een +3openi +3opera +o4perw +op4her +4op3j +op3l +1opn +4opn. +4opneu +o1po +op1of +op3ont +op3r +op4ra +ops4c +op3sj +op3sm +op1so +op3sp +ops4t +2opt +3opta +3optim +o1q +o1ra +oraat4 +o3race +o2rag +or3ana +or4ce. +or4das +or4d3oo +or4dor +ord3w +o4reh +orever4 +4org. +or4ge. +4orgi +org3li +o1ri +3orkes +ork4l +orkma4 +or4mac +o3ros +4orp +orp4sc +or3sme +or3so +or4son +or4tabl +or4tak +or4too +or4tor +or4tred +ort3w +or1u +o3rum +or4un +orwe4gi +o4sab +o3sc +o4sce +o4sci +os4co +os2cr +o4scu +o3s4e +oses4t +oset3 +oset4t +o4sj +os2k +o2s3l +os3m +os3no +o1s2o +os1p +os3pa +os3pi +o4s3pr +o3stat +os3te +os4tem +os4teu +os4th +os3ti +os4tij +os3tol +os4tr +ost3ri +os3tu +os4tun +o3sty +o1ta +ot1ac +ot4ec +ote4lan +o4tesc +o1th +o2t1ho +otli4 +o1to +oto3a +ot3re +o1tro +ot4sl +ot4spa +ot4sti +ot4str +ot4stu +o1tu +ou3b +ou2d1a +ou4des +ou2do +oud3r +ou1e +oue2t +ou3is +ouk4 +oun4g +ou4rar +ou4re. +ou4rem +ou4res +ou2ro +ou4sc +ous4t +4out. +ou2ta +out1j +ou2t3o +ou2t3r +4outs +ou1wi +o1v +2ovee +3ovens +3overg +o4ves +2o3vi +ovis4t +2ovj +o1wa +o4we. +o1wi +ow2n +oy2en +oy4l +oys4 +o1z +oze3s +3paal +2paan +paar3t +2pac +pa3che +3pact +3pad. +pa2da +pad3ac +pa4dr +pag2a +4pagg +pa3gh +4pake +4palb +3pale +pa4nad +pa4neu +pa4nisl +pan4tr +pa4o +1pap +pa4pet +pa4pl +2papp +3pa3ra +pard4 +3park +par4ka +par4kl +2p3arm +1part +3parti +part3j +3partn +3pas3 +pas4ses +4patl +3patr +2p3aut +pa4vl +2p1b +2p1c +2p3d2 +1pe +pe2a4r +3peb +4peci +pee4n +2pef +3pei +pei4la +4p1eis +pe2kl +pek3la +pe2kn +pe4lee +pel3f +pe4link +pe4lov +3p4en +pe4nam +pen4se. +pen3sl +pen3sm +pen3sp +pen3t4 +pe4nu +4pepi +3pe1ra +3perc +pe4rek +pe4res +3peri +peri3s4 +3perk +pe3ron +3pers +per4sc +per4str +pes3ti +3peut +4pex +2p1f +2p3g +pge3s +2p1h +p2heu +3p2hia +1pi +pi4ce. +pi1eu +pi4ga +pij3k +pij4li +3pijn +3pijp +pij4pa +pij4pl +pij4tj +2pijz +pi4kl +pi4ko +pi4nas +4pinj +pin4kr +4pinr +2pins +pi4ot +3pis +pi4sco +pi3th +pit3j +pit3r +pit4sp +2p1j +4pja +p2je +2p1k +p2l4 +3pla +4pla. +4plad +4plam +4plang +p4lant +4p3lap +1p4las +pla4tr +p4lec +p3leid +p3lep +p4lex +2plig +2plij +pli4t +3ploe +2p1m +2p1n +p4neum +pock1 +3pod +poe2s +po4ki4 +po4kol +3pol +3pom +4poml +3pone +pon4se. +poo4 +4poog. +4poor. +poor4tj +poot1 +3pop +po4p3a +po4pi +po2q +pore4n +2p1org +4pork +por4tra +3pos +po1sa +po4ta +3poti +pot1j +4pov +po4we +2p1p +ppe2n +p2r2 +3prac +3prakt +p3rand +3prang +p3rech +prek4s3 +3prent +pres3c +pre4t3j +pre4tr +preus4 +3prij +3princ +4pring +p4rio +p4riu +3prob +3p4roc +3prod +3prof +3proj +4prok +pro4s3t +pru4t +2ps +4ps. +p3sel +pse4la +ps2m +ps3ma +p1sn +p2sna +p1sp +ps4pe +p1st +p3ste. +p3stem +ps3th +ps2u +3p2sy +4p1t +p3te +ptea4 +p2t1h +p4tj +pt2s +1p2u +pu3e +pul4le. +3pun +4pun. +punt3j +put3j +pu2t3r +2p1v +2p1w +py1 +2p1z +1qu2 +2que. +4raalm +2raan +raap3 +3r2aar +4r3aard +raat1 +2rac +r4ac. +raccro4 +ra2ce +rade4ra +ra3di +4radr +2rafd +ra3gn +rag4s +rai4d +ra4kri +4ralar +4ralf +r1alg +4ralm +4ralu +4ramn +r4amp +2rana +r2anc +ran4ce +ran4daa +ran4ge. +ran4ges +ran4g3o +ran4sl +rans3p +r4anti +ran4t3j +ran4tr +r3antw +ra4pas +1rapi +3rappo +ra2pr +4r3arb +r4are +4r1arm +4rarr +4r3art +ras3l +ra3son +r4ati +rat3j +2rau +ra4vel +ra3yo +2r1b +rbonne4 +r1c +r4chec +r4chen +r4chete +r2chl +rci2a +2r1d +r4dact +r3dag +r2d3ar +rder4s +rdes4s +r2dol +rd4re +rd2s +rd3sc +rd3se +rd3sp +rd3str +rd2w +rdwa4r +r4d3wo +1re +3re. +3reac +rea4d +re4ade +rea4m +3reda +reda4l +3redd +rede4s3 +ree2d1 +ree4k +2r1een +reen4e +reer4ad +4reers +4reerw +2reff +4reg. +4regd +3regel +rege4s +4regg +3regi +re3gl +4rego +4regt +4reie +4reil +4reind +3reini +rei4sc +re4kaa +re4kle +re4klu +re4kn +rekor4 +re4kro +4reks +re4kuu +reld3o +rel4d3r +re4lei +relijs4 +re4lur +reme4t +remin4 +re2na +re4nam +re4nan +r2end +re4nep +3renh +4r1eni +re2no +ren3of +re3n4ov +4rentw +4req +4r3erf +re3r2o +2r3ert +4r3erv +2rerw +r2es +re1sa +res4e +resi3s +res4koo +res4kop +re2sl +re2sp +res3pe +res3pi +res3t +re4tem +re4tog +reu4ko +2r1ex +r4faa +r4fag +r4feng +r1fl +r4flag +r2f3li +r4foo +r1fr +r2fre +rf4rek +rf2s4 +rf3sc +r4fur +4r1g +r4gab +r4gart +rge4a +r4geen +r4gei +r4geng +r4gerep +rget4 +rg2l +r4glu +rg2ne +rg1s +rg3so +rgs4p +r1h +rho4m +ri4bl +rici4e +rie4kap +rie4lei +rien4n +rie4to +ri1eu +ri4fa +r4ig +ri4gaa +rig4l +r3ijld +3rijm +rijs4t +ri2kl +ri4mer. +ri4mers +rim4pr +2rinf +r2ing +ring3l +ring3r +2rinh +rin4kl +4rinko +4rinkt +rin4ne. +2rinr +2rins +r3inv +ri4oc +r4is +ri4sam +ri3s4ko +ris4tee +rist4j +3rivie +rivo3l +r1j4 +rjan4 +rjas4t +r1k +r4kart +r2kei +rke4n +rken4s +r4kez +r4kink +r2klo +r3klok +r2kne +r2kob +rk1s +rk4slu +rk4taa +rk3waa +r4kwat +r2kwe +r1l +r3la +rle4gek +rlings4 +rlo4f3 +rluit4 +r1m +rma3f4 +r4mart +r3me +r4meb +r4meg +rme4ra +rmi4ne. +2r1n +rn4aa +rn4am +r4nap +rna4sp +r3nei +r4nele +r4n3ene +rnes3 +rne4tj +r2nex +r4nid +r4non +r4noor +r3nu +ro1ch +2roef +roe4g3r +roe4pl +roe4rei +roe4ta +2roev +ro3fl +roges3 +4roj +3roker +rol4a +2roli +rollo4 +r2on. +ron4da +ron4d3o +ronds4 +r2one +r2oni +ron4ka +r2ons +ron4tj +ron4t3r +roof3 +roog3 +2r1oor +ro4pan +rop4e +rop4la +rop2o +ro4pu +4roq +2rorg +ro1sk +ro3sko +ro1sp +rot4h +ro3tr +rot4st +r1oud +3rout +r1p +rp3j +rpool4 +rp4sto +rquet4 +2r3r2 +rre4lu +rre3sp +rreur3 +rrie4t +rru2 +2r1s +r2sa +r4saan +rsail4 +r3sal +r4s1am +rs2cr +r2sek +r4selz +r4serv +rseve3 +rs4hal +rs2ja +r3sjou +r3sjt +rs4kat +rs4kie +rs4koo +r4sloo +rs2m +r3smak +rs4mit +r4snaa +r2sno +r3snoe +r4sog +r4som. +rs3ong +r2sor +rs3ord +r4spad +r4spar +rs4pen +rsper4s +r4spot +rss4 +r4staf +rs3tas +rs4te +rs4ti +r4stit +r4stun +rs4ui +rsui4t +2r1t +rtai4n +r2tar +rt3art +rtati4 +r4tau +rte4na +r4teve +r2th +rt3hel +r3tho +rt4ij +r4tink +rtoi4 +rto4le +r4tom +r2tri +rt3rij +r2tru +rt3ruk +rt4sec +rt2sl +rts3li +rt4spr +r4tui4t +rt2wi +3rubr +ru1e +ru2g +2rui +3ruimt +ru2k1 +ru4li +r2um +2runi +ru4pi +r2u2s +ru4st +4ruu +r1v +rve3ri +rv1ic +rvil4 +rvoch4 +rvoy2 +r1w +rwe4tj +r4wh +r1x +3ryl +ry1o +4r1z +rzu4e +3sa. +3saag +s1aan +4s1aar +3sab +2s1ac +3sacr +s1ad +2s1af +sa2fe +3sai +s3akko +s1akt +1sal +s4ala +s3all +4salm +3salo +4salp +s3alta +s1amb +s3ana +3sanc +3sap. +2sar +3sar. +sa3ra +s3arb +s3arc +3sard +sa4re. +3sari +s1arm +3s4ars +s1art +s3assi +sas3t +3s2at +4s3atl +4satm +4s3att +3saus +s3aut +3sauz +s1av +4s3b +1sc +2sca +2sce +4scel +4scent +s2ch +4sch. +3sche +4schec +4scheq +3s4chi +4schk +3schr +2sci +sci4ne. +sci4nes +2scl +2s2co +s4cola +3scoo +3scop +3s4core +scorre4 +2scr +scra4 +4scris +2scu +2scy +2s1d2 +sde4a +s3dw +1se +3se. +se2a +sear2 +sebal4 +sebe4s +s1ech +4secz +2s1een +4seev +4sei. +seig4 +seis4t +3seiz +sek4sl +s2el +se4lag +4s3elem +3selen +4self +sel3k +se2lo +3sels +se4m3ac +s3emm +se4mo +s2en +3s4en. +se4nem +se4net +sen3k +se2no +3sen3s +sen4tj +sen3tw +3s4er +se1ra +4sergo +4sern +ser2s +se1sa +s3e2s3p +sessi4 +se1st +s3eter +se2tr +se4tw +se1u4m +seur4s +s3even +2sex +s1exa +2s1f2 +s2fe +s3fei +4sfi +s2fy +sge3st +2s1h +s4ha. +sha2k +sha4p +sheid4 +s4hip +3shir +s2hop +s4hort +s2hot +3show +1si +3sia +si4dec +si4dew +sie3s +sie3tj +si3f +3s4ig +2s3ijz +2s3ind +2sinf +sin3gl +4sini +s3inko +4sinm +2sinr +2s1ins +2s1int +4sinv +s3inz +si4ons +3si2s +sis4t +3sit +2s1j2 +3sjac +s3jas +s3je. +3sje4r +s4jez +s2jo +3sjok +4sjon +2s1k +s3k2a +ska4te +s3ke +3s4ki. +s3kl +s3kn +s4kopi +skorre4 +3skrib +3skrip +s3k4w +sky3 +1s2l2 +3sla. +3slaan +s3laar +s3lad +3slag +slag3r +3s4lak +2s1lam +3slape +s3las +2s3lat +s4lav +s4le. +3sleep +4s3leer +2s3leg +2s3lei +4sleng +3slent +4s3ler +s3les +sle4tj +3sleu +2s3lev +4s3lez +2s3lic +2slid +4s3lied +s3lief +s3lig +3slijp +s3lini +4slinn +4s3lit +slo4b +4sloc +3sloe +3slof +2s3log +s3loos +3s4lot +4slou +s4low +2s3loz +4s3luc +3slui +4slui. +4sluid +sluis4t +s3lus +4sly +2s1m +s3man +s3mas +4s3mat +4smec +s2med +4s3mei +4smelo +4smen +4smes +3smeu +3smid. +4smidd +smies3 +s2mij +smoes4t +3smok +3smul +s2n +4s3nac +2snam +sne4k +3snel +2s3nes3 +s3net +s3neus4 +4s3nie +s4nip +4snit +4sniv +s3nog +2snum +s3nut +1so1c +soci3 +1sod +1soe +4soef +soeve3 +3sofa +s1off +s3oge +3soi +1s2ol +3sold +so4le. +so4les +3s2om. +3somm +2s3oms +4somz +s1ond +2song +3sonn +3s4ons +2s1on2t +sont3e +sont4l +4sonv +2s3oog +3s4oort +2s1op +3s2op. +sop2h +s4opo +s2opp +so3pra +s3opto +3sor. +s2orb +3sori +s3ork +3sor4s +s4ort +sos4t +s4ot +sot4h +sou3t +2s1ov +s2p2 +4sp. +4spaal +2s3pak +s4pan +3spann +4s3pap +3speci +3s4pee +speet3 +2spei +3spell +2spen +2sper +s4perm +s3pes +4spex +1spie +4spijn +spi4k +2s1p4l +s3plei +3splet +spli2 +s3plic +3splin +3spoel +2spol +2spom +s4pore +2spos +4sprac +3sprek +4spres +3spreu +s4prie +4spriem +4sprij +4sprob +2s3ps +2spt +3spui +2spun +s1q +4s3r +4s3s2 +ssa3s +s4sce +s4sco +ss4e +ssi1s +ss4k +s4sm +sson4n +sspas4 +s2t +4st. +4staanw +2s4tac +3stad. +4stafe +4stakk +4stale +4stali +sta4lo +3stamp +3stand +s4tap +3stape +star3o +2stas +4stau +4stavo +4stax +s4taz +4stb +2stc +2std +4stea +4stec +3s4ted +3steen +s3teer +4steka +4stema +4stemo +4stenu +4steo +4sterm +4steros +4sterr +4ste2s +stes4s +4steva +s4tex +s4tez +2stf +4stg +2sth +s4tha +s3thet +st1hi +st1ho +s4thu +s4thy +s4tich +2stid +s4tiel +3stier +3stigm +4stijd +3stijf +3stijl +st3ijs +3stikt +s4tilu +3stimu +st3ind +4stins +4stint +sti4o +3stip +4stite +2s4t1j +4stk +2stl +st4let +2stm +2stn +2stoc +4stoef +4stoej +3stoel +4stoer +4stoes +4stoez +4stol. +sto4ne. +4s3tong +st3oog +sto4p +4st3ord +sto4re. +4stos +s4tov +2stp +4strad +4strap +4strav +4strec +s3tref +4streg +4strei +s4trek +3strel +s4trem +4stroe +s4trol. +s4troll +4stroos +4stroz +1stru +s4trui +2stt +2stub +3stud +2stv +2s4t3w +2sty +2stz +1su +su2b1 +sub3r +3suik +s1uit +3suk +2s1un +s4us +3sus. +4s3v +svoge4 +4s1w +1s4y +3syn +sy4nan +sy4ne +3sys +4s1z +taal1 +t3aanv +4taap +4taas +2tac +t3acad +t1ach +t4aci +t2act +3tacu +4tad +t1ade +tad2s +tad4ste +2taf. +2tafd +4taff +4t3afs +2tafw +ta4gr +3tai +tai2l3 +ta4ke. +takt3a +4tald +3talg +talm3a +4talt +ta4mak +ta4man +2tamb +3tamen +ta4mu +t3anal +tan4d3r +3tanj +t2ans +3tants +ta4pek +ta4pes +t3arb +4tarea +3tari +4t1arm +ta2ro +2tart +t3arti +tart3s +tarwe3 +ta4ry. +4tas4p +ta3sta +ta4tem +2tatl +3tau +4t3aut +2tav +ta4ve. +4tavo +4t1b +4t1c +4t3d2 +1te +3tea +te4ad +te2as +3tec +tec3t +4ted. +t3edit +te3do +tee2m1 +4teen3 +tege4n3 +t3eind +teits3 +4tekk +3tekor +3teks4 +4tekse +tek3t +te4lap +3telef +3teleg +te4loe +te4log +te4luu +4temm +te4mor +3tempo +4temt +t2en +ten4ac +ten3al +ten3as +te4nau +te4ned +te4nek +te4nel +te4n3et +ten3k +te4nol +ten4se. +ten4su +ten4tis +t3entw +3tenu +3tenw +3teo +te3p2h +t2er +ter3af +ter3ak +te3ral +ter4dol +3terec +te4rem +te4reu +3terh +teri4m +3termi +ter3na +ter4spr +3tes +tes4ko +t3euro +4teuv +te4ve. +2texe +4texp +4t1f2 +tfa4d +4t3g2 +2th. +2t1ha +3t4ha. +3t2hag +4t3hal +3than. +2thc +3the. +3t2hea +3thee. +t2her +3thera +t3here +3therm +3thes +4thl +4thok +t4hom +4t1hoo +2t3hor +t1hou +t3houd +t3houw +2ths +t1hu +2thui +t4hun +3t2hur +2thyp +1ti +ti4aalb +tia4nu +3tib +3tica +3tice +ti4ce. +3tie +ti4eerb +tie3ru +tie3s +ties4l +ties4p +tie3t +ti1eu +ti2ga +tig3aa +4tigm +ti2gu +4tijl. +4tijld +4tijlt +3tijn +2t1ijz +tik4w +4tiliu +til4la. +ti4mes +ti4min +3timm +4timp +ti4nad +4tincu +4tind +2tinf +tin4gi +tin4g3r +4tinku +4tinl +2tins +t3inst +4tinv +4tinw +ti4oneu +3tis +tis4l +ti3sli +tis4tr +ti3tr +3tiv +3tiz +tj2 +2t1ja +4tjesl +4tjeu +2t1jo +2t1ju +4t3k4 +4t1l +t3la +tleve4 +4t3m +tmos3 +4t3n +3toc +4tock +3tod +to3do +toe3d +toe3g +3toen +toe3pl +toe3tj +3toez +4to2f +tog4n +3toil +to4kan +4tolf +tol4pr +4tolv +t3oml +tom4n +4tomp +4toms +t2on +2tond +3tonee +to4nes +ton4gr +to4non +2tont +t2oo4 +3toon +to4pas +4topb +4topd +top4let +4topm +2topn +4topr +to4q +2torg +t3orga +tor4m3a +to3sf +to3sk +to3sl +tot4r +tou1c +4toverg +4t3p2 +tpa4t +tper4sp +tpe4t +4tq +t2r2 +4t3raad +4traf +tra4fo +3trai +trap3l +4trato +traw4 +tre4ak +2trec +4treda +3trein +4t3reis +4treiz +4treke +tre4kl +tre4ku +4trel +tre2t +3tribu +3tril +4triv +tro3a +4troed +t3roer +t3roes +t3rold +t4rom +t3rond +3tros +trui3t4 +2t1rus +4ts +ts4aar +tsa4le +t3sch +t2s3ef +t2sei +t2sek +ts3eks +t3sen +t4seng +ts1ex +tsi4ga +t2sij +t4sink +ts2j +ts4kel +ts4kul +ts3lam +t4slan +t3slep +ts2me +t4smu +ts3nat +t3snoe +ts1or +t1sp +t3span +t3spi +t3spor +t3spre +t1st +t4stab +t4star +t4s3tas +t3ste +t4steg +t4stera +ts4tes. +ts4tie +t3ston +t3stop +t3str +t3stu +tst4w +t2su +t4suit +4t1t2 +t3t4a +tta4g +t3te +tte3lo +tte2n +tten4tj +t3tr +ttrai4 +4tual. +4tuals +tu4bel +tu1e +3tuin +4tuip +tuit4j +4tuk +tuk3sn +3tum +tu4mel +4tump +tu4nes +3tunn +tu1o +3turb +3tu4s3 +tuu4 +tu3wa +4t1v +tva4l +2t1w +4t3wa +t3we +twee3s +twee3t +t3wie +t4wijf +4twil +t2win +t3wind +t3wo +1ty1 +ty4le. +3typ +4t1z +u1a +ua4dro +uae4 +u4an. +ua4re. +ua4res +uat4s +4ub +ub3ac +ube4li +u2bo +u4ce. +u4ces +u1cha +u3chen +u3chet4 +u3cho +uchu4 +uck4e +uc4ta +u1d +uden4tj +udet4 +u4dez +udge4t +udi4ne +ud3ove +u2dr +ud4sa +ud4sta +ud4sto +ud3w +u1ee +u1el +ueli4 +ue4s +ues3t +u1eu +u1fl +u3f2r +4ug +ug4des +ug2do +ug3ei +uge4leg +uge4ne. +ugi4e +u4g3l +u2go +ug3on +u2g3r +ug3s4 +ugsto4r +u3h +u2i +ui2da +ui4deu +uid3g +ui2d1o +uid4sta +ui3e +uies4 +uif3l +ui2f3r +ui4fu +ui4gaa +ui2go +ui2g3r +4uik +ui2k3a +ui2k3l +ui2ko +ui2k3r +uik3w +ui2la +uil3aa +ui4lem +uil3m +ui2lo +ui2ma +uimes4 +u4in +ui4n1a +ui4nes. +ui2no +uin4slo +ui4pe. +ui4pes +ui4pl +ui4p3r +4uis +ui2sa +ui4sl +1uitg +uit1h +uit1j +uit3r +uit1s +uit3sm +uit3sp +u1j +uk4e +uke3no +u2k3l +u2kor +u2kr +uk3ri +uks4h +uks4me +uk4taa +uk3w +u1la +ul3ac +uliet4 +ul4kar +u1lo +ul4pak +ul2p3l +ul2po +ul4pr +ul4ps +ul4spa +ul4spu +ul4stel +u1lu2 +u4mac +ummi3s +umpi4 +un2c +un3che +un4e +une4tj +un3g +3unif +3univ +un4kr +un2s +un3sc +un3se +uns4t +unst3a +un4stei +unst3r +un4tag +un2tj +u3ol +u1or +4up +u1pa +upda4 +u2pe. +u2pek +u4pen +u2pes +u1pl +u1po +u1pr +u1q +2ur +u1ra +ur3ac +ur2al +uras4t +u4rec +u4renv +ures4 +ure4tj +ur2fa +ur3gl +u1ri +uri4c +4urie +u4rind +ur4kie +u1ro +u4ront +ur2sl +ur2sn +ur4spa +ur4spr +ur4sui +u1ru +u3ry +u1san +u2sc +u3s2cr +4use +u4sep +u4sj +u4s3l +us3n +u2so +u4s3p +us4se. +us4ses +u2st +us3te +us4tei +us3ti +us3tr +4ut +u1ta +ut2ad +u3tan +u4tees +u4tef +u4teks +u4tem +uter4n +u4tet +u2tex +uti4oni +uti2q +u1to +u1tr +uts4c +ut1sn +ut2sp +ut4sto +u1tu +uu2 +uur1 +uur3a +u1v +uvan4 +uvel4s +uw1a +u4wec +u4wei +u4weko +u4wij +u4wind +u4wink +uw1o +uw3r +uwui2 +u1z +uzes4 +uziek3 +va4kar +va2ki +vak3l +va2ko +va4loe +val4s3p +va2n +va3se +va3s4o +va4th +2vc +veel1 +veep4 +2vega4 +veis4 +ve4lap +vel4do +vel4dr +vel4d3u +ve4lis +ve2na +ven3k +ve2n3o +ven2s +ven4se +venti4o +ve2r +ver1a +ver3da +verdi4 +ver3k4 +ver3n +ver3p +ver3sa +ver3sm +ver3sp +ver3tw +ver1u +ve2s3 +ves4c +ves4po +ve4st +ve4tem +ve2tj +ve4to +ve2tr +2vi2c +vi3ch +vie2s +vies3p +vie2w +vi4ne +ving4 +4vi4ot +vi4san +vi4set +vi4sol +visper4 +vi1tr +vi4val +2v1j +v2l +4vlar +vleis4 +vle3s +vlooi4t +3vo +voel4s +voet3j +voe4tr +vo2le +vo2li +vol3ij +v4r2 +vrij3k +vues4 +vu2lo +waad1 +w2ad +w2ag +3wagen +wa4la +wa4les +4wana +wan4gl +wa2n3o +wan3sm +3wap +war4tan +wart3j +war4to +wart3r +wa4s3p +watt3u +2w1b +w1c +2w1d +1we +we2a +we2b3a +we2d1i +we2dr +wee3lo +wee3sl +wee3sp +wees4t +we2g3a +weg3eb +we4gerv +weg3ij +weg3l +we2g3o +we2g3r +we4ka +we4kr +wel3ed +wel3ee +we2lo +wel3om +we3loo +wel3s4 +we4mab +we2mi +we4mo +we2n +we3ne +we4nee +we4nem +wen4kas +wen3o +wer4gr +w4erk +wer4k3l +wer4k3o +wer4kr +wer4k3u +wer4k3w +wer4p3a +4werw +we2s +wes3p +w4et +we2th +2w1f +w1g +w1h +3wijd +wijs3 +wi2k +3wil +wil4s +1win +win4d3r +3wink +win4kl +win2s +win4ta +wi4sec +1wi2t +wi3te +wit3h +wit3j +wit3o +wit3r +w1j +2w1k +2w1l +w1m +4wn +wn3ac +w3nes +w4oe +woe3i2 +wo2l +wol2f +wolf4s3 +worm3a +4wot +w1p +wper4 +w2r +wri4 +2w1s +w2sa +ws4k +w2sle +2w1t +w1v +wva2 +4w1w +wwa4v +w1z +xan3 +x1b +x1c +xchan4 +xel4 +xf4 +x1h +xis4 +x1k +xop4 +x1p +x1t +x4tak +xtie4 +xtraat4 +xtu4r +xu1 +x3v +x3w +xys4 +y1a +y4ah +yan4c +y1b +yber4t +y1c +ycho3 +y1d +y1e +y1f +yfu4 +y1g +y3gl +ygu2 +y3h +y1i +y1j +yl3al +y4les +y4let +yli4n +y1lo +ylo3s +ymfes4 +ym4fl +ymor4 +y3no +yn3t +yon4n +y1p +y4pec +y4ped +y4pek +y2pem +y4pev +y4pew +y1r +yr4e +y1sa +ys4h +ysha4 +y2s3l +y1so +ys3t +ys4ty +y1t2 +ytop4 +y3v +yvet4 +yvon4 +y3w +y1z +3za +zaf4 +za2k3a +za2ku +zan4da +zang3s +zas4 +2zb +4zc +4zd +zee3g +zee3k +zee3le +zee3ro +zee3s4 +zelf1 +zen4da +ze2no +ze4raa +ze3roo +zer4sl +zer4sp +ze2s +ze3sc +zes3e +ze3sl +ze3str +ze4ta +ze2th +ze2ti +ze4tj +ze4tr +zeve2 +zeven3 +2zg +ziek3l +zie4kr +zie4kw +ziel4s3 +zi4ga +zij4na +zijn4s +zings3 +zin4si +zin4sl +zin4sm +zi4os +zi2t +2zk +z2l +2zm +zn4 +zoet3j +zoe4tr +zo3f +zon3da +zo4nek +zon2s +zo2t +2zp +2zs +4zt +zus3 +4zv +z2w +2z1z diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/english.lh b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/english.lh new file mode 100755 index 0000000000000..8713a3ff7da2f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/english.lh @@ -0,0 +1,4499 @@ +Lout hyphenation information +% +% Created by Jeff Kingston, 20 April 1994, from a TeX +% hyphenation file. +% + +Classes: +@!$%^&*()_-+=~`{[}]:;'|<,.>?/0123456789 +aA +bB +cC +dD +eE +fF +gG +hH +iI +jJ +kK +lL +mM +nN +oO +pP +qQ +rR +sS +tT +uU +vV +wW +xX +yY +zZ + +Exceptions: +as-so-ciate +as-so-ciates +dec-li-na-tion +oblig-a-tory +phil-an-thropic +present +presents +project +projects +reci-procity +re-cog-ni-zance +ref-or-ma-tion +ret-ri-bu-tion +ta-ble + +Patterns: +.ach4 +.ad4der +.af1t +.al3t +.am5at +.an5c +.ang4 +.ani5m +.ant4 +.an3te +.anti5s +.ar5s +.ar4tie +.ar4ty +.as3c +.as1p +.as1s +.aster5 +.atom5 +.au1d +.av4i +.awn4 +.ba4g +.ba5na +.bas4e +.ber4 +.be5ra +.be3sm +.be5sto +.bri2 +.but4ti +.cam4pe +.can5c +.capa5b +.car5ol +.ca4t +.ce4la +.ch4 +.chill5i +.ci2 +.cit5r +.co3e +.co4r +.cor5ner +.de4moi +.de3o +.de3ra +.de3ri +.des4c +.dictio5 +.do4t +.du4c +.dumb5 +.earth5 +.eas3i +.eb4 +.eer4 +.eg2 +.el5d +.el3em +.enam3 +.en3g +.en3s +.eq5ui5t +.er4ri +.es3 +.eu3 +.eye5 +.fes3 +.for5mer +.ga2 +.ge2 +.gen3t4 +.ge5og +.gi5a +.gi4b +.go4r +.hand5i +.han5k +.he2 +.hero5i +.hes3 +.het3 +.hi3b +.hi3er +.hon5ey +.hon3o +.hov5 +.id4l +.idol3 +.im3m +.im5pin +.in1 +.in3ci +.ine2 +.in2k +.in3s +.ir5r +.is4i +.ju3r +.la4cy +.la4m +.lat5er +.lath5 +.le2 +.leg5e +.len4 +.lep5 +.lev1 +.li4g +.lig5a +.li2n +.li3o +.li4t +.mag5a5 +.mal5o +.man5a +.mar5ti +.me2 +.mer3c +.me5ter +.mis1 +.mist5i +.mon3e +.mo3ro +.mu5ta +.muta5b +.ni4c +.od2 +.odd5 +.of5te +.or5ato +.or3c +.or1d +.or3t +.os3 +.os4tl +.oth3 +.out3 +.ped5al +.pe5te +.pe5tit +.pi4e +.pio5n +.pi2t +.pre3m +.ra4c +.ran4t +.ratio5na +.ree2 +.re5mit +.res2 +.re5stat +.ri4g +.rit5u +.ro4q +.ros5t +.row5d +.ru4d +.sci3e +.self5 +.sell5 +.se2n +.se5rie +.sh2 +.si2 +.sing4 +.st4 +.sta5bl +.sy2 +.ta4 +.te4 +.ten5an +.th2 +.ti2 +.til4 +.tim5o5 +.ting4 +.tin5k +.ton4a +.to4p +.top5i +.tou5s +.trib5ut +.un1a +.un3ce +.under5 +.un1e +.un5k +.un5o +.un3u +.up3 +.ure3 +.us5a +.ven4de +.ve5ra +.wil5i +.ye4 +4ab. +a5bal +a5ban +abe2 +ab5erd +abi5a +ab5it5ab +ab5lat +ab5o5liz +4abr +ab5rog +ab3ul +a4car +ac5ard +ac5aro +a5ceou +ac1er +a5chet +4a2ci +a3cie +ac1in +a3cio +ac5rob +act5if +ac3ul +ac4um +a2d +ad4din +ad5er. +2adi +a3dia +ad3ica +adi4er +a3dio +a3dit +a5diu +ad4le +ad3ow +ad5ran +ad4su +4adu +a3duc +ad5um +ae4r +aeri4e +a2f +aff4 +a4gab +aga4n +ag5ell +age4o +4ageu +ag1i +4ag4l +ag1n +a2go +3agog +ag3oni +a5guer +ag5ul +a4gy +a3ha +a3he +ah4l +a3ho +ai2 +a5ia +a3ic. +ai5ly +a4i4n +ain5in +ain5o +ait5en +a1j +ak1en +al5ab +al3ad +a4lar +4aldi +2ale +al3end +a4lenti +a5le5o +al1i +al4ia. +ali4e +al5lev +4allic +4alm +a5log. +a4ly. +4alys +5a5lyst +5alyt +3alyz +4ama +am5ab +am3ag +ama5ra +am5asc +a4matis +a4m5ato +am5era +am3ic +am5if +am5ily +am1in +ami4no +a2mo +a5mon +amor5i +amp5en +a2n +an3age +3analy +a3nar +an3arc +anar4i +a3nati +4and +ande4s +an3dis +an1dl +an4dow +a5nee +a3nen +an5est. +a3neu +2ang +ang5ie +an1gl +a4n1ic +a3nies +an3i3f +an4ime +a5nimi +a5nine +an3io +a3nip +an3ish +an3it +a3niu +an4kli +5anniz +ano4 +an5ot +anoth5 +an2sa +an4sco +an4sn +an2sp +ans3po +an4st +an4sur +antal4 +an4tie +4anto +an2tr +an4tw +an3ua +an3ul +a5nur +4ao +apar4 +ap5at +ap5ero +a3pher +4aphi +a4pilla +ap5illar +ap3in +ap3ita +a3pitu +a2pl +apoc5 +ap5ola +apor5i +apos3t +aps5es +a3pu +aque5 +2a2r +ar3act +a5rade +ar5adis +ar3al +a5ramete +aran4g +ara3p +ar4at +a5ratio +ar5ativ +a5rau +ar5av4 +araw4 +arbal4 +ar4chan +ar5dine +ar4dr +ar5eas +a3ree +ar3ent +a5ress +ar4fi +ar4fl +ar1i +ar5ial +ar3ian +a3riet +ar4im +ar5inat +ar3io +ar2iz +ar2mi +ar5o5d +a5roni +a3roo +ar2p +ar3q +arre4 +ar4sa +ar2sh +4as. +as4ab +as3ant +ashi4 +a5sia. +a3sib +a3sic +5a5si4t +ask3i +as4l +a4soc +as5ph +as4sh +as3ten +as1tr +asur5a +a2ta +at3abl +at5ac +at3alo +at5ap +ate5c +at5ech +at3ego +at3en. +at3era +ater5n +a5terna +at3est +at5ev +4ath +ath5em +a5then +at4ho +ath5om +4ati. +a5tia +at5i5b +at1ic +at3if +ation5ar +at3itu +a4tog +a2tom +at5omiz +a4top +a4tos +a1tr +at5rop +at4sk +at4tag +at5te +at4th +a2tu +at5ua +at5ue +at3ul +at3ura +a2ty +au4b +augh3 +au3gu +au4l2 +aun5d +au3r +au5sib +aut5en +au1th +a2va +av3ag +a5van +ave4no +av3era +av5ern +av5ery +av1i +avi4er +av3ig +av5oc +a1vor +3away +aw3i +aw4ly +aws4 +ax4ic +ax4id +ay5al +aye4 +ays4 +azi4er +azz5i +5ba. +bad5ger +ba4ge +bal1a +ban5dag +ban4e +ban3i +barbi5 +bari4a +bas4si +1bat +ba4z +2b1b +b2be +b3ber +bbi4na +4b1d +4be. +beak4 +beat3 +4be2d +be3da +be3de +be3di +be3gi +be5gu +1bel +be1li +be3lo +4be5m +be5nig +be5nu +4bes4 +be3sp +be5str +3bet +bet5iz +be5tr +be3tw +be3w +be5yo +2bf +4b3h +bi2b +bi4d +3bie +bi5en +bi4er +2b3if +1bil +bi3liz +bina5r4 +bin4d +bi5net +bi3ogr +bi5ou +bi2t +3bi3tio +bi3tr +3bit5ua +b5itz +b1j +bk4 +b2l2 +blath5 +b4le. +blen4 +5blesp +b3lis +b4lo +blun4t +4b1m +4b3n +bne5g +3bod +bod3i +bo4e +bol3ic +bom4bi +bon4a +bon5at +3boo +5bor. +4b1ora +bor5d +5bore +5bori +5bos4 +b5ota +both5 +bo4to +bound3 +4bp +4brit +broth3 +2b5s2 +bsor4 +2bt +bt4l +b4to +b3tr +buf4fer +bu4ga +bu3li +bumi4 +bu4n +bunt4i +bu3re +bus5ie +buss4e +5bust +4buta +3butio +b5uto +b1v +4b5w +5by. +bys4 +1ca +cab3in +ca1bl +cach4 +ca5den +4cag4 +2c5ah +ca3lat +cal4la +call5in +4calo +can5d +can4e +can4ic +can5is +can3iz +can4ty +cany4 +ca5per +car5om +cast5er +cas5tig +4casy +ca4th +4cativ +cav5al +c3c +ccha5 +cci4a +ccompa5 +ccon4 +ccou3t +2ce. +4ced. +4ceden +3cei +5cel. +3cell +1cen +3cenc +2cen4e +4ceni +3cent +3cep +ce5ram +4cesa +3cessi +ces5si5b +ces5t +cet4 +c5e4ta +cew4 +2ch +4ch. +4ch3ab +5chanic +ch5a5nis +che2 +cheap3 +4ched +che5lo +3chemi +ch5ene +ch3er. +ch3ers +4ch1in +5chine. +ch5iness +5chini +5chio +3chit +chi2z +3cho2 +ch4ti +1ci +3cia +ci2a5b +cia5r +ci5c +4cier +5cific. +4cii +ci4la +3cili +2cim +2cin +c4ina +3cinat +cin3em +c1ing +c5ing. +5cino +cion4 +4cipe +ci3ph +4cipic +4cista +4cisti +2c1it +cit3iz +5ciz +ck1 +ck3i +1c4l4 +4clar +c5laratio +5clare +cle4m +4clic +clim4 +cly4 +c5n +1co +co5ag +coe2 +2cog +co4gr +coi4 +co3inc +col5i +5colo +col3or +com5er +con4a +c4one +con3g +con5t +co3pa +cop3ic +co4pl +4corb +coro3n +cos4e +cov1 +cove4 +cow5a +coz5e +co5zi +c1q +cras5t +5crat. +5cratic +cre3at +5cred +4c3reta +cre4v +cri2 +cri5f +c4rin +cris4 +5criti +cro4pl +crop5o +cros4e +cru4d +4c3s2 +2c1t +cta4b +ct5ang +c5tant +c2te +c3ter +c4ticu +ctim3i +ctu4r +c4tw +cud5 +c4uf +c4ui +cu5ity +5culi +cul4tis +3cultu +cu2ma +c3ume +cu4mi +3cun +cu3pi +cu5py +cur5a4b +cu5ria +1cus +cuss4i +3c4ut +cu4tie +4c5utiv +4cutr +1cy +cze4 +1d2a +5da. +2d3a4b +dach4 +4daf +2dag +da2m2 +dan3g +dard5 +dark5 +4dary +3dat +4dativ +4dato +5dav4 +dav5e +5day +d1b +d5c +d1d4 +2de. +deaf5 +deb5it +de4bon +decan4 +de4cil +de5com +2d1ed +4dee. +de5if +deli4e +del5i5q +de5lo +d4em +5dem. +3demic +dem5ic. +de5mil +de4mons +demor5 +1den +de4nar +de3no +denti5f +de3nu +de1p +de3pa +depi4 +de2pu +d3eq +d4erh +5derm +dern5iz +der5s +des2 +d2es. +de1sc +de2s5o +des3ti +de3str +de4su +de1t +de2to +de1v +dev3il +4dey +4d1f +d4ga +d3ge4t +dg1i +d2gy +d1h2 +5di. +1d4i3a +dia5b +di4cam +d4ice +3dict +3did +5di3en +d1if +di3ge +di4lato +d1in +1dina +3dine. +5dini +di5niz +1dio +dio5g +di4pl +dir2 +di1re +dirt5i +dis1 +5disi +d4is3t +d2iti +1di1v +d1j +d5k2 +4d5la +3dle. +3dled +3dles. +4dless +2d3lo +4d5lu +2dly +d1m +4d1n4 +1do +3do. +do5de +5doe +2d5of +d4og +do4la +doli4 +do5lor +dom5iz +do3nat +doni4 +doo3d +dop4p +d4or +3dos +4d5out +do4v +3dox +d1p +1dr +drag5on +4drai +dre4 +drea5r +5dren +dri4b +dril4 +dro4p +4drow +5drupli +4dry +2d1s2 +ds4p +d4sw +d4sy +d2th +1du +d1u1a +du2c +d1uca +duc5er +4duct. +4ducts +du5el +du4g +d3ule +dum4be +du4n +4dup +du4pe +d1v +d1w +d2y +5dyn +dy4se +dys5p +e1a4b +e3act +ead1 +ead5ie +ea4ge +ea5ger +ea4l +eal5er +eal3ou +eam3er +e5and +ear3a +ear4c +ear5es +ear4ic +ear4il +ear5k +ear2t +eart3e +ea5sp +e3ass +east3 +ea2t +eat5en +eath3i +e5atif +e4a3tu +ea2v +eav3en +eav5i +eav5o +2e1b +e4bel. +e4bels +e4ben +e4bit +e3br +e4cad +ecan5c +ecca5 +e1ce +ec5essa +ec2i +e4cib +ec5ificat +ec5ifie +ec5ify +ec3im +eci4t +e5cite +e4clam +e4clus +e2col +e4comm +e4compe +e4conc +e2cor +ec3ora +eco5ro +e1cr +e4crem +ec4tan +ec4te +e1cu +e4cul +ec3ula +2e2da +4ed3d +e4d1er +ede4s +4edi +e3dia +ed3ib +ed3ica +ed3im +ed1it +edi5z +4edo +e4dol +edon2 +e4dri +e4dul +ed5ulo +ee2c +eed3i +ee2f +eel3i +ee4ly +ee2m +ee4na +ee4p1 +ee2s4 +eest4 +ee4ty +e5ex +e1f +e4f3ere +1eff +e4fic +5efici +efil4 +e3fine +ef5i5nite +3efit +efor5es +e4fuse. +4egal +eger4 +eg5ib +eg4ic +eg5ing +e5git5 +eg5n +e4go. +e4gos +eg1ul +e5gur +5egy +e1h4 +eher4 +ei2 +e5ic +ei5d +eig2 +ei5gl +e3imb +e3inf +e1ing +e5inst +eir4d +eit3e +ei3th +e5ity +e1j +e4jud +ej5udi +eki4n +ek4la +e1la +e4la. +e4lac +elan4d +el5ativ +e4law +elaxa4 +e3lea +el5ebra +5elec +e4led +el3ega +e5len +e4l1er +e1les +el2f +el2i +e3libe +e4l5ic. +el3ica +e3lier +el5igib +e5lim +e4l3ing +e3lio +e2lis +el5ish +e3liv3 +4ella +el4lab +ello4 +e5loc +el5og +el3op. +el2sh +el4ta +e5lud +el5ug +e4mac +e4mag +e5man +em5ana +em5b +e1me +e2mel +e4met +em3ica +emi4e +em5igra +em1in2 +em5ine +em3i3ni +e4mis +em5ish +e5miss +em3iz +5emniz +emo4g +emoni5o +em3pi +e4mul +em5ula +emu3n +e3my +en5amo +e4nant +ench4er +en3dic +e5nea +e5nee +en3em +en5ero +en5esi +en5est +en3etr +e3new +en5ics +e5nie +e5nil +e3nio +en3ish +en3it +e5niu +5eniz +4enn +4eno +eno4g +e4nos +en3ov +en4sw +ent5age +4enthes +en3ua +en5uf +e3ny. +4en3z +e5of +eo2g +e4oi4 +e3ol +eop3ar +e1or +eo3re +eo5rol +eos4 +e4ot +eo4to +e5out +e5ow +e2pa +e3pai +ep5anc +e5pel +e3pent +ep5etitio +ephe4 +e4pli +e1po +e4prec +ep5reca +e4pred +ep3reh +e3pro +e4prob +ep4sh +ep5ti5b +e4put +ep5uta +e1q +equi3l +e4q3ui3s +er1a +era4b +4erand +er3ar +4erati. +2erb +er4bl +er3ch +er4che +2ere. +e3real +ere5co +ere3in +er5el. +er3emo +er5ena +er5ence +4erene +er3ent +ere4q +er5ess +er3est +eret4 +er1h +er1i +e1ria4 +5erick +e3rien +eri4er +er3ine +e1rio +4erit +er4iu +eri4v +e4riva +er3m4 +er4nis +4ernit +5erniz +er3no +2ero +er5ob +e5roc +ero4r +er1ou +er1s +er3set +ert3er +4ertl +er3tw +4eru +eru4t +5erwau +e1s4a +e4sage. +e4sages +es2c +e2sca +es5can +e3scr +es5cu +e1s2e +e2sec +es5ecr +es5enc +e4sert. +e4serts +e4serva +4esh +e3sha +esh5en +e1si +e2sic +e2sid +es5iden +es5igna +e2s5im +es4i4n +esis4te +esi4u +e5skin +es4mi +e2sol +es3olu +e2son +es5ona +e1sp +es3per +es5pira +es4pre +2ess +es4si4b +estan4 +es3tig +es5tim +4es2to +e3ston +2estr +e5stro +estruc5 +e2sur +es5urr +es4w +eta4b +eten4d +e3teo +ethod3 +et1ic +e5tide +etin4 +eti4no +e5tir +e5titio +et5itiv +4etn +et5ona +e3tra +e3tre +et3ric +et5rif +et3rog +et5ros +et3ua +et5ym +et5z +4eu +e5un +e3up +eu3ro +eus4 +eute4 +euti5l +eu5tr +eva2p5 +e2vas +ev5ast +e5vea +ev3ell +evel3o +e5veng +even4i +ev1er +e5verb +e1vi +ev3id +evi4l +e4vin +evi4v +e5voc +e5vu +e1wa +e4wag +e5wee +e3wh +ewil5 +ew3ing +e3wit +1exp +5eyc +5eye. +eys4 +1fa +fa3bl +fab3r +fa4ce +4fag +fain4 +fall5e +4fa4ma +fam5is +5far +far5th +fa3ta +fa3the +4fato +fault5 +4f5b +4fd +4fe. +feas4 +feath3 +fe4b +4feca +5fect +2fed +fe3li +fe4mo +fen2d +fend5e +fer1 +5ferr +fev4 +4f1f +f4fes +f4fie +f5fin. +f2f5is +f4fly +f2fy +4fh +1fi +fi3a +2f3ic. +4f3ical +f3ican +4ficate +f3icen +fi3cer +fic4i +5ficia +5ficie +4fics +fi3cu +fi5del +fight5 +fil5i +fill5in +4fily +2fin +5fina +fin2d5 +fi2ne +f1in3g +fin4n +fis4ti +f4l2 +f5less +flin4 +flo3re +f2ly5 +4fm +4fn +1fo +5fon +fon4de +fon4t +fo2r +fo5rat +for5ay +fore5t +for4i +fort5a +fos5 +4f5p +fra4t +f5rea +fres5c +fri2 +fril4 +frol5 +2f3s +2ft +f4to +f2ty +3fu +fu5el +4fug +fu4min +fu5ne +fu3ri +fusi4 +fus4s +4futa +1fy +1ga +gaf4 +5gal. +3gali +ga3lo +2gam +ga5met +g5amo +gan5is +ga3niz +gani5za +4gano +gar5n4 +gass4 +gath3 +4gativ +4gaz +g3b +gd4 +2ge. +2ged +geez4 +gel4in +ge5lis +ge5liz +4gely +1gen +ge4nat +ge5niz +4geno +4geny +1geo +ge3om +g4ery +5gesi +geth5 +4geto +ge4ty +ge4v +4g1g2 +g2ge +g3ger +gglu5 +ggo4 +gh3in +gh5out +gh4to +5gi. +1gi4a +gia5r +g1ic +5gicia +g4ico +gien5 +5gies. +gil4 +g3imen +3g4in. +gin5ge +5g4ins +5gio +3gir +gir4l +g3isl +gi4u +5giv +3giz +gl2 +gla4 +glad5i +5glas +1gle +gli4b +g3lig +3glo +glo3r +g1m +g4my +gn4a +g4na. +gnet4t +g1ni +g2nin +g4nio +g1no +g4non +1go +3go. +gob5 +5goe +3g4o4g +go3is +gon2 +4g3o3na +gondo5 +go3ni +5goo +go5riz +gor5ou +5gos. +gov1 +g3p +1gr +4grada +g4rai +gran2 +5graph. +g5rapher +5graphic +4graphy +4gray +gre4n +4gress. +4grit +g4ro +gruf4 +gs2 +g5ste +gth3 +gu4a +3guard +2gue +5gui5t +3gun +3gus +4gu4t +g3w +1gy +2g5y3n +gy5ra +h3ab4l +hach4 +hae4m +hae4t +h5agu +ha3la +hala3m +ha4m +han4ci +han4cy +5hand. +han4g +hang5er +hang5o +h5a5niz +han4k +han4te +hap3l +hap5t +ha3ran +ha5ras +har2d +hard3e +har4le +harp5en +har5ter +has5s +haun4 +5haz +haz3a +h1b +1head +3hear +he4can +h5ecat +h4ed +he5do5 +he3l4i +hel4lis +hel4ly +h5elo +hem4p +he2n +hena4 +hen5at +heo5r +hep5 +h4era +hera3p +her4ba +here5a +h3ern +h5erou +h3ery +h1es +he2s5p +he4t +het4ed +heu4 +h1f +h1h +hi5an +hi4co +high5 +h4il2 +himer4 +h4ina +hion4e +hi4p +hir4l +hi3ro +hir4p +hir4r +his3el +his4s +hith5er +hi2v +4hk +4h1l4 +hlan4 +h2lo +hlo3ri +4h1m +hmet4 +2h1n +h5odiz +h5ods +ho4g +hoge4 +hol5ar +3hol4e +ho4ma +home3 +hon4a +ho5ny +3hood +hoon4 +hor5at +ho5ris +hort3e +ho5ru +hos4e +ho5sen +hos1p +1hous +house3 +hov5el +4h5p +4hr4 +hree5 +hro5niz +hro3po +4h1s2 +h4sh +h4tar +ht1en +ht5es +h4ty +hu4g +hu4min +hun5ke +hun4t +hus3t4 +hu4t +h1w +h4wart +hy3pe +hy3ph +hy2s +2i1a +i2al +iam4 +iam5ete +i2an +4ianc +ian3i +4ian4t +ia5pe +iass4 +i4ativ +ia4tric +i4atu +ibe4 +ib3era +ib5ert +ib5ia +ib3in +ib5it. +ib5ite +i1bl +ib3li +i5bo +i1br +i2b5ri +i5bun +4icam +5icap +4icar +i4car. +i4cara +icas5 +i4cay +iccu4 +4iceo +4ich +2ici +i5cid +ic5ina +i2cip +ic3ipa +i4cly +i2c5oc +4i1cr +5icra +i4cry +ic4te +ictu2 +ic4t3ua +ic3ula +ic4um +ic5uo +i3cur +2id +i4dai +id5anc +id5d +ide3al +ide4s +i2di +id5ian +idi4ar +i5die +id3io +idi5ou +id1it +id5iu +i3dle +i4dom +id3ow +i4dr +i2du +id5uo +2ie4 +ied4e +5ie5ga +ield3 +ien5a4 +ien4e +i5enn +i3enti +i1er. +i3esc +i1est +i3et +4if. +if5ero +iff5en +if4fr +4ific. +i3fie +i3fl +4ift +2ig +iga5b +ig3era +ight3i +4igi +i3gib +ig3il +ig3in +ig3it +i4g4l +i2go +ig3or +ig5ot +i5gre +igu5i +ig1ur +i3h +4i5i4 +i3j +4ik +i1la +il3a4b +i4lade +i2l5am +ila5ra +i3leg +il1er +ilev4 +il5f +il1i +il3ia +il2ib +il3io +il4ist +2ilit +il2iz +ill5ab +4iln +il3oq +il4ty +il5ur +il3v +i4mag +im3age +ima5ry +imenta5r +4imet +im1i +im5ida +imi5le +i5mini +4imit +im4ni +i3mon +i2mu +im3ula +2in. +i4n3au +4inav +incel4 +in3cer +4ind +in5dling +2ine +i3nee +iner4ar +i5ness +4inga +4inge +in5gen +4ingi +in5gling +4ingo +4ingu +2ini +i5ni. +i4nia +in3io +in1is +i5nite. +5initio +in3ity +4ink +4inl +2inn +2i1no +i4no4c +ino4s +i4not +2ins +in3se +insur5a +2int. +2in4th +in1u +i5nus +4iny +2io +4io. +ioge4 +io2gr +i1ol +io4m +ion3at +ion4ery +ion3i +io5ph +ior3i +i4os +io5th +i5oti +io4to +i4our +2ip +ipe4 +iphras4 +ip3i +ip4ic +ip4re4 +ip3ul +i3qua +iq5uef +iq3uid +iq3ui3t +4ir +i1ra +ira4b +i4rac +ird5e +ire4de +i4ref +i4rel4 +i4res +ir5gi +ir1i +iri5de +ir4is +iri3tu +5i5r2iz +ir4min +iro4g +5iron. +ir5ul +2is. +is5ag +is3ar +isas5 +2is1c +is3ch +4ise +is3er +3isf +is5han +is3hon +ish5op +is3ib +isi4d +i5sis +is5itiv +4is4k +islan4 +4isms +i2so +iso5mer +is1p +is2pi +is4py +4is1s +is4sal +issen4 +is4ses +is4ta. +is1te +is1ti +ist4ly +4istral +i2su +is5us +4ita. +ita4bi +i4tag +4ita5m +i3tan +i3tat +2ite +it3era +i5teri +it4es +2ith +i1ti +4itia +4i2tic +it3ica +5i5tick +it3ig +it5ill +i2tim +2itio +4itis +i4tism +i2t5o5m +4iton +i4tram +it5ry +4itt +it3uat +i5tud +it3ul +4itz. +i1u +2iv +iv3ell +iv3en. +i4v3er. +i4vers. +iv5il. +iv5io +iv1it +i5vore +iv3o3ro +i4v3ot +4i5w +ix4o +4iy +4izar +izi4 +5izont +5ja +jac4q +ja4p +1je +jer5s +4jestie +4jesty +jew3 +jo4p +5judg +3ka. +k3ab +k5ag +kais4 +kal4 +k1b +k2ed +1kee +ke4g +ke5li +k3en4d +k1er +kes4 +k3est. +ke4ty +k3f +kh4 +k1i +5ki. +5k2ic +k4ill +kilo5 +k4im +k4in. +kin4de +k5iness +kin4g +ki4p +kis4 +k5ish +kk4 +k1l +4kley +4kly +k1m +k5nes +1k2no +ko5r +kosh4 +k3ou +kro5n +4k1s2 +k4sc +ks4l +k4sy +k5t +k1w +lab3ic +l4abo +laci4 +l4ade +la3dy +lag4n +lam3o +3land +lan4dl +lan5et +lan4te +lar4g +lar3i +las4e +la5tan +4lateli +4lativ +4lav +la4v4a +2l1b +lbin4 +4l1c2 +lce4 +l3ci +2ld +l2de +ld4ere +ld4eri +ldi4 +ld5is +l3dr +l4dri +le2a +le4bi +left5 +5leg. +5legg +le4mat +lem5atic +4len. +3lenc +5lene. +1lent +le3ph +le4pr +lera5b +ler4e +3lerg +3l4eri +l4ero +les2 +le5sco +5lesq +3less +5less. +l3eva +lev4er. +lev4era +lev4ers +3ley +4leye +2lf +l5fr +4l1g4 +l5ga +lgar3 +l4ges +lgo3 +2l3h +li4ag +li2am +liar5iz +li4as +li4ato +li5bi +5licio +li4cor +4lics +4lict. +l4icu +l3icy +l3ida +lid5er +3lidi +lif3er +l4iff +li4fl +5ligate +3ligh +li4gra +3lik +4l4i4l +lim4bl +lim3i +li4mo +l4im4p +l4ina +1l4ine +lin3ea +lin3i +link5er +li5og +4l4iq +lis4p +l1it +l2it. +5litica +l5i5tics +liv3er +l1iz +4lj +lka3 +l3kal +lka4t +l1l +l4law +l2le +l5lea +l3lec +l3leg +l3lel +l3le4n +l3le4t +ll2i +l2lin4 +l5lina +ll4o +lloqui5 +ll5out +l5low +2lm +l5met +lm3ing +l4mod +lmon4 +2l1n2 +3lo. +lob5al +lo4ci +4lof +3logic +l5ogo +3logu +lom3er +5long +lon4i +l3o3niz +lood5 +5lope. +lop3i +l3opm +lora4 +lo4rato +lo5rie +lor5ou +5los. +los5et +5losophiz +5losophy +los4t +lo4ta +loun5d +2lout +4lov +2lp +lpa5b +l3pha +l5phi +lp5ing +l3pit +l4pl +l5pr +4l1r +2l1s2 +l4sc +l2se +l4sie +4lt +lt5ag +ltane5 +l1te +lten4 +ltera4 +lth3i +l5ties. +ltis4 +l1tr +ltu2 +ltur3a +lu5a +lu3br +luch4 +lu3ci +lu3en +luf4 +lu5id +lu4ma +5lumi +l5umn. +5lumnia +lu3o +luo3r +4lup +luss4 +lus3te +1lut +l5ven +l5vet4 +2l1w +1ly +4lya +4lyb +ly5me +ly3no +2lys4 +l5yse +1ma +2mab +ma2ca +ma5chine +ma4cl +mag5in +5magn +2mah +maid5 +4mald +ma3lig +ma5lin +mal4li +mal4ty +5mania +man5is +man3iz +4map +ma5rine. +ma5riz +mar4ly +mar3v +ma5sce +mas4e +mas1t +5mate +math3 +ma3tis +4matiza +4m1b +mba4t5 +m5bil +m4b3ing +mbi4v +4m5c +4me. +2med +4med. +5media +me3die +m5e5dy +me2g +mel5on +mel4t +me2m +mem1o3 +1men +men4a +men5ac +men4de +4mene +men4i +mens4 +mensu5 +3ment +men4te +me5on +m5ersa +2mes +3mesti +me4ta +met3al +me1te +me5thi +m4etr +5metric +me5trie +me3try +me4v +4m1f +2mh +5mi. +mi3a +mid4a +mid4g +mig4 +3milia +m5i5lie +m4ill +min4a +3mind +m5inee +m4ingl +min5gli +m5ingly +min4t +m4inu +miot4 +m2is +mis4er. +mis5l +mis4ti +m5istry +4mith +m2iz +4mk +4m1l +m1m +mma5ry +4m1n +mn4a +m4nin +mn4o +1mo +4mocr +5mocratiz +mo2d1 +mo4go +mois2 +moi5se +4mok +mo5lest +mo3me +mon5et +mon5ge +moni3a +mon4ism +mon4ist +mo3niz +monol4 +mo3ny. +mo2r +4mora. +mos2 +mo5sey +mo3sp +moth3 +m5ouf +3mous +mo2v +4m1p +mpara5 +mpa5rab +mpar5i +m3pet +mphas4 +m2pi +mpi4a +mp5ies +m4p1in +m5pir +mp5is +mpo3ri +mpos5ite +m4pous +mpov5 +mp4tr +m2py +4m3r +4m1s2 +m4sh +m5si +4mt +1mu +mula5r4 +5mult +multi3 +3mum +mun2 +4mup +mu4u +4mw +1na +2n1a2b +n4abu +4nac. +na4ca +n5act +nag5er. +nak4 +na4li +na5lia +4nalt +na5mit +n2an +nanci4 +nan4it +nank4 +nar3c +4nare +nar3i +nar4l +n5arm +n4as +nas4c +nas5ti +n2at +na3tal +nato5miz +n2au +nau3se +3naut +nav4e +4n1b4 +ncar5 +n4ces. +n3cha +n5cheo +n5chil +n3chis +nc1in +nc4it +ncour5a +n1cr +n1cu +n4dai +n5dan +n1de +nd5est. +ndi4b +n5d2if +n1dit +n3diz +n5duc +ndu4r +nd2we +2ne. +n3ear +ne2b +neb3u +ne2c +5neck +2ned +ne4gat +neg5ativ +5nege +ne4la +nel5iz +ne5mi +ne4mo +1nen +4nene +3neo +ne4po +ne2q +n1er +nera5b +n4erar +n2ere +n4er5i +ner4r +1nes +2nes. +4nesp +2nest +4nesw +3netic +ne4v +n5eve +ne4w +n3f +n4gab +n3gel +nge4n4e +n5gere +n3geri +ng5ha +n3gib +ng1in +n5git +n4gla +ngov4 +ng5sh +n1gu +n4gum +n2gy +4n1h4 +nha4 +nhab3 +nhe4 +3n4ia +ni3an +ni4ap +ni3ba +ni4bl +ni4d +ni5di +ni4er +ni2fi +ni5ficat +n5igr +nik4 +n1im +ni3miz +n1in +5nine. +nin4g +ni4o +5nis. +nis4ta +n2it +n4ith +3nitio +n3itor +ni3tr +n1j +4nk2 +n5kero +n3ket +nk3in +n1kl +4n1l +n5m +nme4 +nmet4 +4n1n2 +nne4 +nni3al +nni4v +nob4l +no3ble +n5ocl +4n3o2d +3noe +4nog +noge4 +nois5i +no5l4i +5nologis +3nomic +n5o5miz +no4mo +no3my +no4n +non4ag +non5i +n5oniz +4nop +5nop5o5li +nor5ab +no4rary +4nosc +nos4e +nos5t +no5ta +1nou +3noun +nov3el3 +nowl3 +n1p4 +npi4 +npre4c +n1q +n1r +nru4 +2n1s2 +ns5ab +nsati4 +ns4c +n2se +n4s3es +nsid1 +nsig4 +n2sl +ns3m +n4soc +ns4pe +n5spi +nsta5bl +n1t +nta4b +nter3s +nt2i +n5tib +nti4er +nti2f +n3tine +n4t3ing +nti4p +ntrol5li +nt4s +ntu3me +nu1a +nu4d +nu5en +nuf4fe +n3uin +3nu3it +n4um +nu1me +n5umi +3nu4n +n3uo +nu3tr +n1v2 +n1w4 +nym4 +nyp4 +4nz +n3za +4oa +oad3 +o5a5les +oard3 +oas4e +oast5e +oat5i +ob3a3b +o5bar +obe4l +o1bi +o2bin +ob5ing +o3br +ob3ul +o1ce +och4 +o3chet +ocif3 +o4cil +o4clam +o4cod +oc3rac +oc5ratiz +ocre3 +5ocrit +octor5a +oc3ula +o5cure +od5ded +od3ic +odi3o +o2do4 +odor3 +od5uct. +od5ucts +o4el +o5eng +o3er +oe4ta +o3ev +o2fi +of5ite +ofit4t +o2g5a5r +og5ativ +o4gato +o1ge +o5gene +o5geo +o4ger +o3gie +1o1gis +og3it +o4gl +o5g2ly +3ogniz +o4gro +ogu5i +1ogy +2ogyn +o1h2 +ohab5 +oi2 +oic3es +oi3der +oiff4 +oig4 +oi5let +o3ing +oint5er +o5ism +oi5son +oist5en +oi3ter +o5j +2ok +o3ken +ok5ie +o1la +o4lan +olass4 +ol2d +old1e +ol3er +o3lesc +o3let +ol4fi +ol2i +o3lia +o3lice +ol5id. +o3li4f +o5lil +ol3ing +o5lio +o5lis. +ol3ish +o5lite +o5litio +o5liv +olli4e +ol5ogiz +olo4r +ol5pl +ol2t +ol3ub +ol3ume +ol3un +o5lus +ol2v +o2ly +om5ah +oma5l +om5atiz +om2be +om4bl +o2me +om3ena +om5erse +o4met +om5etry +o3mia +om3ic. +om3ica +o5mid +om1in +o5mini +5ommend +omo4ge +o4mon +om3pi +ompro5 +o2n +on1a +on4ac +o3nan +on1c +3oncil +2ond +on5do +o3nen +on5est +on4gu +on1ic +o3nio +on1is +o5niu +on3key +on4odi +on3omy +on3s +onspi4 +onspir5a +onsu4 +onten4 +on3t4i +ontif5 +on5um +onva5 +oo2 +ood5e +ood5i +oo4k +oop3i +o3ord +oost5 +o2pa +ope5d +op1er +3opera +4operag +2oph +o5phan +o5pher +op3ing +o3pit +o5pon +o4posi +o1pr +op1u +opy5 +o1q +o1ra +o5ra. +o4r3ag +or5aliz +or5ange +ore5a +o5real +or3ei +ore5sh +or5est. +orew4 +or4gu +4o5ria +or3ica +o5ril +or1in +o1rio +or3ity +o3riu +or2mi +orn2e +o5rof +or3oug +or5pe +3orrh +or4se +ors5en +orst4 +or3thi +or3thy +or4ty +o5rum +o1ry +os3al +os2c +os4ce +o3scop +4oscopi +o5scr +os4i4e +os5itiv +os3ito +os3ity +osi4u +os4l +o2so +os4pa +os4po +os2ta +o5stati +os5til +os5tit +o4tan +otele4g +ot3er. +ot5ers +o4tes +4oth +oth5esi +oth3i4 +ot3ic. +ot5ica +o3tice +o3tif +o3tis +oto5s +ou2 +ou3bl +ouch5i +ou5et +ou4l +ounc5er +oun2d +ou5v +ov4en +over4ne +over3s +ov4ert +o3vis +oviti4 +o5v4ol +ow3der +ow3el +ow5est +ow1i +own5i +o4wo +oy1a +1pa +pa4ca +pa4ce +pac4t +p4ad +5pagan +p3agat +p4ai +pain4 +p4al +pan4a +pan3el +pan4ty +pa3ny +pa1p +pa4pu +para5bl +par5age +par5di +3pare +par5el +p4a4ri +par4is +pa2te +pa5ter +5pathic +pa5thy +pa4tric +pav4 +3pay +4p1b +pd4 +4pe. +3pe4a +pear4l +pe2c +2p2ed +3pede +3pedi +pedia4 +ped4ic +p4ee +pee4d +pek4 +pe4la +peli4e +pe4nan +p4enc +pen4th +pe5on +p4era. +pera5bl +p4erag +p4eri +peri5st +per4mal +perme5 +p4ern +per3o +per3ti +pe5ru +per1v +pe2t +pe5ten +pe5tiz +4pf +4pg +4ph. +phar5i +phe3no +ph4er +ph4es. +ph1ic +5phie +ph5ing +5phisti +3phiz +ph2l +3phob +3phone +5phoni +pho4r +4phs +ph3t +5phu +1phy +pi3a +pian4 +pi4cie +pi4cy +p4id +p5ida +pi3de +5pidi +3piec +pi3en +pi4grap +pi3lo +pi2n +p4in. +pind4 +p4ino +3pi1o +pion4 +p3ith +pi5tha +pi2tu +2p3k2 +1p2l2 +3plan +plas5t +pli3a +pli5er +4plig +pli4n +ploi4 +plu4m +plum4b +4p1m +2p3n +po4c +5pod. +po5em +po3et5 +5po4g +poin2 +5point +poly5t +po4ni +po4p +1p4or +po4ry +1pos +pos1s +p4ot +po4ta +5poun +4p1p +ppa5ra +p2pe +p4ped +p5pel +p3pen +p3per +p3pet +ppo5site +pr2 +pray4e +5preci +pre5co +pre3em +pref5ac +pre4la +pre3r +p3rese +3press +pre5ten +pre3v +5pri4e +prin4t3 +pri4s +pris3o +p3roca +prof5it +pro3l +pros3e +pro1t +2p1s2 +p2se +ps4h +p4sib +2p1t +pt5a4b +p2te +p2th +pti3m +ptu4r +p4tw +pub3 +pue4 +puf4 +pul3c +pu4m +pu2n +pur4r +5pus +pu2t +5pute +put3er +pu3tr +put4ted +put4tin +p3w +qu2 +qua5v +2que. +3quer +3quet +2rab +ra3bi +rach4e +r5acl +raf5fi +raf4t +r2ai +ra4lo +ram3et +r2ami +rane5o +ran4ge +r4ani +ra5no +rap3er +3raphy +rar5c +rare4 +rar5ef +4raril +r2as +ration4 +rau4t +ra5vai +rav3el +ra5zie +r1b +r4bab +r4bag +rbi2 +rbi4f +r2bin +r5bine +rb5ing. +rb4o +r1c +r2ce +rcen4 +r3cha +rch4er +r4ci4b +rc4it +rcum3 +r4dal +rd2i +rdi4a +rdi4er +rdin4 +rd3ing +2re. +re1al +re3an +re5arr +5reav +re4aw +r5ebrat +rec5oll +rec5ompe +re4cre +2r2ed +re1de +re3dis +red5it +re4fac +re2fe +re5fer. +re3fi +re4fy +reg3is +re5it +re1li +re5lu +r4en4ta +ren4te +re1o +re5pin +re4posi +re1pu +r1er4 +r4eri +rero4 +re5ru +r4es. +re4spi +ress5ib +res2t +re5stal +re3str +re4ter +re4ti4z +re3tri +reu2 +re5uti +rev2 +re4val +rev3el +r5ev5er. +re5vers +re5vert +re5vil +rev5olu +re4wh +r1f +rfu4 +r4fy +rg2 +rg3er +r3get +r3gic +rgi4n +rg3ing +r5gis +r5git +r1gl +rgo4n +r3gu +rh4 +4rh. +4rhal +ri3a +ria4b +ri4ag +r4ib +rib3a +ric5as +r4ice +4rici +5ricid +ri4cie +r4ico +rid5er +ri3enc +ri3ent +ri1er +ri5et +rig5an +5rigi +ril3iz +5riman +rim5i +3rimo +rim4pe +r2ina +5rina. +rin4d +rin4e +rin4g +ri1o +5riph +riph5e +ri2pl +rip5lic +r4iq +r2is +r4is. +ris4c +r3ish +ris4p +ri3ta3b +r5ited. +rit5er. +rit5ers +rit3ic +ri2tu +rit5ur +riv5el +riv3et +riv3i +r3j +r3ket +rk4le +rk4lin +r1l +rle4 +r2led +r4lig +r4lis +rl5ish +r3lo4 +r1m +rma5c +r2me +r3men +rm5ers +rm3ing +r4ming. +r4mio +r3mit +r4my +r4nar +r3nel +r4ner +r5net +r3ney +r5nic +r1nis4 +r3nit +r3niv +rno4 +r4nou +r3nu +rob3l +r2oc +ro3cr +ro4e +ro1fe +ro5fil +rok2 +ro5ker +5role. +rom5ete +rom4i +rom4p +ron4al +ron4e +ro5n4is +ron4ta +1room +5root +ro3pel +rop3ic +ror3i +ro5ro +ros5per +ros4s +ro4the +ro4ty +ro4va +rov5el +rox5 +r1p +r4pea +r5pent +rp5er. +r3pet +rp4h4 +rp3ing +r3po +r1r4 +rre4c +rre4f +r4reo +rre4st +rri4o +rri4v +rron4 +rros4 +rrys4 +4rs2 +r1sa +rsa5ti +rs4c +r2se +r3sec +rse4cr +rs5er. +rs3es +rse5v2 +r1sh +r5sha +r1si +r4si4b +rson3 +r1sp +r5sw +rtach4 +r4tag +r3teb +rten4d +rte5o +r1ti +rt5ib +rti4d +r4tier +r3tig +rtil3i +rtil4l +r4tily +r4tist +r4tiv +r3tri +rtroph4 +rt4sh +ru3a +ru3e4l +ru3en +ru4gl +ru3in +rum3pl +ru2n +runk5 +run4ty +r5usc +ruti5n +rv4e +rvel4i +r3ven +rv5er. +r5vest +r3vey +r3vic +rvi4v +r3vo +r1w +ry4c +5rynge +ry3t +sa2 +2s1ab +5sack +sac3ri +s3act +5sai +salar4 +sal4m +sa5lo +sal4t +3sanc +san4de +s1ap +sa5ta +5sa3tio +sat3u +sau4 +sa5vor +5saw +4s5b +scan4t5 +sca4p +scav5 +s4ced +4scei +s4ces +sch2 +s4cho +3s4cie +5scin4d +scle5 +s4cli +scof4 +4scopy +scour5a +s1cu +4s5d +4se. +se4a +seas4 +sea5w +se2c3o +3sect +4s4ed +se4d4e +s5edl +se2g +seg3r +5sei +se1le +5self +5selv +4seme +se4mol +sen5at +4senc +sen4d +s5ened +sen5g +s5enin +4sentd +4sentl +sep3a3 +4s1er. +s4erl +ser4o +4servo +s1e4s +se5sh +ses5t +5se5um +5sev +sev3en +sew4i +5sex +4s3f +2s3g +s2h +2sh. +sh1er +5shev +sh1in +sh3io +3ship +shiv5 +sho4 +sh5old +shon3 +shor4 +short5 +4shw +si1b +s5icc +3side. +5sides +5sidi +si5diz +4signa +sil4e +4sily +2s1in +s2ina +5sine. +s3ing +1sio +5sion +sion5a +si2r +sir5a +1sis +3sitio +5siu +1siv +5siz +sk2 +4ske +s3ket +sk5ine +sk5ing +s1l2 +s3lat +s2le +slith5 +2s1m +s3ma +small3 +sman3 +smel4 +s5men +5smith +smol5d4 +s1n4 +1so +so4ce +soft3 +so4lab +sol3d2 +so3lic +5solv +3som +3s4on. +sona4 +son4g +s4op +5sophic +s5ophiz +s5ophy +sor5c +sor5d +4sov +so5vi +2spa +5spai +spa4n +spen4d +2s5peo +2sper +s2phe +3spher +spho5 +spil4 +sp5ing +4spio +s4ply +s4pon +spor4 +4spot +squal4l +s1r +2ss +s1sa +ssas3 +s2s5c +s3sel +s5seng +s4ses. +s5set +s1si +s4sie +ssi4er +ss5ily +s4sl +ss4li +s4sn +sspend4 +ss2t +ssur5a +ss5w +2st. +s2tag +s2tal +stam4i +5stand +s4ta4p +5stat. +s4ted +stern5i +s5tero +ste2w +stew5a +s3the +st2i +s4ti. +s5tia +s1tic +5stick +s4tie +s3tif +st3ing +5stir +s1tle +5stock +stom3a +5stone +s4top +3store +st4r +s4trad +5stratu +s4tray +s4trid +4stry +4st3w +s2ty +1su +su1al +su4b3 +su2g3 +su5is +suit3 +s4ul +su2m +sum3i +su2n +su2r +4sv +sw2 +4swo +s4y +4syc +3syl +syn5o +sy5rin +1ta +3ta. +2tab +ta5bles +5taboliz +4taci +ta5do +4taf4 +tai5lo +ta2l +ta5la +tal5en +tal3i +4talk +tal4lis +ta5log +ta5mo +tan4de +tanta3 +ta5per +ta5pl +tar4a +4tarc +4tare +ta3riz +tas4e +ta5sy +4tatic +ta4tur +taun4 +tav4 +2taw +tax4is +2t1b +4tc +t4ch +tch5et +4t1d +4te. +tead4i +4teat +tece4 +5tect +2t1ed +te5di +1tee +teg4 +te5ger +te5gi +3tel. +teli4 +5tels +te2ma2 +tem3at +3tenan +3tenc +3tend +4tenes +1tent +ten4tag +1teo +te4p +te5pe +ter3c +5ter3d +1teri +ter5ies +ter3is +teri5za +5ternit +ter5v +4tes. +4tess +t3ess. +teth5e +3teu +3tex +4tey +2t1f +4t1g +2th. +than4 +th2e +4thea +th3eas +the5at +the3is +3thet +th5ic. +th5ica +4thil +5think +4thl +th5ode +5thodic +4thoo +thor5it +tho5riz +2ths +1tia +ti4ab +ti4ato +2ti2b +4tick +t4ico +t4ic1u +5tidi +3tien +tif2 +ti5fy +2tig +5tigu +till5in +1tim +4timp +tim5ul +2t1in +t2ina +3tine. +3tini +1tio +ti5oc +tion5ee +5tiq +ti3sa +3tise +tis4m +ti5so +tis4p +5tistica +ti3tl +ti4u +1tiv +tiv4a +1tiz +ti3za +ti3zen +2tl +t5la +tlan4 +3tle. +3tled +3tles. +t5let. +t5lo +4t1m +tme4 +2t1n2 +1to +to3b +to5crat +4todo +2tof +to2gr +to5ic +to2ma +tom4b +to3my +ton4ali +to3nat +4tono +4tony +to2ra +to3rie +tor5iz +tos2 +5tour +4tout +to3war +4t1p +1tra +tra3b +tra5ch +traci4 +trac4it +trac4te +tras4 +tra5ven +trav5es5 +tre5f +tre4m +trem5i +5tria +tri5ces +5tricia +4trics +2trim +tri4v +tro5mi +tron5i +4trony +tro5phe +tro3sp +tro3v +tru5i +trus4 +4t1s2 +t4sc +tsh4 +t4sw +4t3t2 +t4tes +t5to +ttu4 +1tu +tu1a +tu3ar +tu4bi +tud2 +4tue +4tuf4 +5tu3i +3tum +tu4nis +2t3up. +3ture +5turi +tur3is +tur5o +tu5ry +3tus +4tv +tw4 +4t1wa +twis4 +4two +1ty +4tya +2tyl +type3 +ty5ph +4tz +tz4e +4uab +uac4 +ua5na +uan4i +uar5ant +uar2d +uar3i +uar3t +u1at +uav4 +ub4e +u4bel +u3ber +u4bero +u1b4i +u4b5ing +u3ble. +u3ca +uci4b +uc4it +ucle3 +u3cr +u3cu +u4cy +ud5d +ud3er +ud5est +udev4 +u1dic +ud3ied +ud3ies +ud5is +u5dit +u4don +ud4si +u4du +u4ene +uens4 +uen4te +uer4il +3ufa +u3fl +ugh3en +ug5in +2ui2 +uil5iz +ui4n +u1ing +uir4m +uita4 +uiv3 +uiv4er. +u5j +4uk +u1la +ula5b +u5lati +ulch4 +5ulche +ul3der +ul4e +u1len +ul4gi +ul2i +u5lia +ul3ing +ul5ish +ul4lar +ul4li4b +ul4lis +4ul3m +u1l4o +4uls +uls5es +ul1ti +ultra3 +4ultu +u3lu +ul5ul +ul5v +um5ab +um4bi +um4bly +u1mi +u4m3ing +umor5o +um2p +unat4 +u2ne +un4er +u1ni +un4im +u2nin +un5ish +uni3v +un3s4 +un4sw +unt3ab +un4ter. +un4tes +unu4 +un5y +un5z +u4ors +u5os +u1ou +u1pe +uper5s +u5pia +up3ing +u3pl +up3p +upport5 +upt5ib +uptu4 +u1ra +4ura. +u4rag +u4ras +ur4be +urc4 +ur1d +ure5at +ur4fer +ur4fr +u3rif +uri4fic +ur1in +u3rio +u1rit +ur3iz +ur2l +url5ing. +ur4no +uros4 +ur4pe +ur4pi +urs5er +ur5tes +ur3the +urti4 +ur4tie +u3ru +2us +u5sad +u5san +us4ap +usc2 +us3ci +use5a +u5sia +u3sic +us4lin +us1p +us5sl +us5tere +us1tr +u2su +usur4 +uta4b +u3tat +4ute. +4utel +4uten +uten4i +4u1t2i +uti5liz +u3tine +ut3ing +ution5a +u4tis +5u5tiz +u4t1l +ut5of +uto5g +uto5matic +u5ton +u4tou +uts4 +u3u +uu4m +u1v2 +uxu3 +uz4e +1va +5va. +2v1a4b +vac5il +vac3u +vag4 +va4ge +va5lie +val5o +val1u +va5mo +va5niz +va5pi +var5ied +3vat +4ve. +4ved +veg3 +v3el. +vel3li +ve4lo +v4ely +ven3om +v5enue +v4erd +5vere. +v4erel +v3eren +ver5enc +v4eres +ver3ie +vermi4n +3verse +ver3th +v4e2s +4ves. +ves4te +ve4te +vet3er +ve4ty +vi5ali +5vian +5vide. +5vided +4v3iden +5vides +5vidi +v3if +vi5gn +vik4 +2vil +5vilit +v3i3liz +v1in +4vi4na +v2inc +vin5d +4ving +vio3l +v3io4r +vi1ou +vi4p +vi5ro +vis3it +vi3so +vi3su +4viti +vit3r +4vity +3viv +5vo. +voi4 +3vok +vo4la +v5ole +5volt +3volv +vom5i +vor5ab +vori4 +vo4ry +vo4ta +4votee +4vv4 +v4y +w5abl +2wac +wa5ger +wag5o +wait5 +w5al. +wam4 +war4t +was4t +wa1te +wa5ver +w1b +wea5rie +weath3 +wed4n +weet3 +wee5v +wel4l +w1er +west3 +w3ev +whi4 +wi2 +wil2 +will5in +win4de +win4g +wir4 +3wise +with3 +wiz5 +w4k +wl4es +wl3in +w4no +1wo2 +wom1 +wo5ven +w5p +wra4 +wri4 +writa4 +w3sh +ws4l +ws4pe +w5s4t +4wt +wy4 +x1a +xac5e +x4ago +xam3 +x4ap +xas5 +x3c2 +x1e +xe4cuto +x2ed +xer4i +xe5ro +x1h +xhi2 +xhil5 +xhu4 +x3i +xi5a +xi5c +xi5di +x4ime +xi5miz +x3o +x4ob +x3p +xpan4d +xpecto5 +xpe3d +x1t2 +x3ti +x1u +xu3a +xx4 +y5ac +3yar4 +y5at +y1b +y1c +y2ce +yc5er +y3ch +ych4e +ycom4 +ycot4 +y1d +y5ee +y1er +y4erf +yes4 +ye4t +y5gi +4y3h +y1i +y3la +ylla5bl +y3lo +y5lu +ymbol5 +yme4 +ympa3 +yn3chr +yn5d +yn5g +yn5ic +5ynx +y1o4 +yo5d +y4o5g +yom4 +yo5net +y4ons +y4os +y4ped +yper5 +yp3i +y3po +y4poc +yp2ta +y5pu +yra5m +yr5ia +y3ro +yr4r +ys4c +y3s2e +ys3ica +ys3io +3ysis +y4so +yss4 +ys1t +ys3ta +ysur4 +y3thin +yt3ic +y1w +za1 +z5a2b +zar2 +4zb +2ze +ze4n +ze4p +z1er +ze3ro +zet4 +2z1i +z4il +z4is +5zl +4zm +1zo +zo4m +zo5ol +zte4 +4z1z2 +z4zy diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/english.lp b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/english.lp new file mode 100755 index 0000000000000..07d09ad39d868 Binary files /dev/null and b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/english.lp differ diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/engluk.lh b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/engluk.lh new file mode 100755 index 0000000000000..c1b0f7ea1e075 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/engluk.lh @@ -0,0 +1,8600 @@ +Lout hyphenation information +% +% Created by Jeff Kingston, 16 November 1996, from a TeX +% hyphenation file with the following header comment: +% +% File: ukhyphen.tex +% TeX hyphenation patterns for UK English [NOT TO BE CHANGED IN ANY WAY!] +% Version 1.0. Released 17 April 1992. +% +% Created by Dominik Wujastyk and Graham Toal using Frank Liang's PATGEN 1.0. +% Like the US patterns, these UK patterns correctly hyphenate about 90% of +% the words in the input list, and produce no hyphens not in the list +% (see TeXbook pp. 451--2). +% +% These patterns are based on a file of 114925 British-hyphenated words +% generously made available to Dominik Wujastyk by Oxford University Press. +% This list of words is copyright to the OUP and may not be redistributed. +% The hyphenation break points in the words in the abovementioned file is +% also copyright to the OUP. +% +% We are very grateful to Oxford University Press for allowing us to use +% their list of hyphenated words to produce the following TeX hyphenation +% patterns. This file of hyphenation patterns may be freely distributed. +% +% These patterns require a value of about 14000 for TeX's pattern memory size. +% + +Classes: +@!$%^&*()_-+=~`{[}]:;'|<,.>?/0123456789 +aA +bB +cC +dD +eE +fF +gG +hH +iI +jJ +kK +lL +mM +nN +oO +pP +qQ +rR +sS +tT +uU +vV +wW +xX +yY +zZ + +Exceptions: +as-so-ciate +as-so-ciates +dec-li-na-tion +oblig-a-tory +phil-an-thropic +present +presents +project +projects +reci-procity +re-cog-ni-zance +ref-or-ma-tion +ret-ri-bu-tion +ta-ble + +Patterns: +.ab4i +.ab3ol +.ace4 +.acet3 +.ach4 +.ac5tiva +.ad4din +.ad3e +.ad3o +.ae5d +.aer3i +.af3f +.af3t +.ag4a +.ag5n +.air3 +.al5im +.al1k +.al3le +.am5ar +.ama5te +.am2i +.am3pe +.am3ph +.an1 +.ana3b +.ana3s +.and2 +.an5da +.an4el +.an4en +.an4gl +.an4on. +.an3s +.ant3a +.an3ti3 +.ant4ic +.an4t5o +.any5 +.aph5or +.ap4i +.ar5ab +.ar5ap +.ar4ci +.ar5d +.ar4e +.ari4 +.ar4ise +.ar4isi +.ar5sen +.art5icl +.as1 +.as4q +.as5sib +.at5ar +.ateli4 +.at5omise +.at5omiz +.at3r +.at3t +.au3b +.au3g4u +.aur4e5 +.aus5 +.authen5 +.av4 +.av5era +.bap5tism +.barri5c +.bas4i +.ba5sic +.be3di +.be3lo +.be5r4a +.be5sm +.bi4er +.blaz5o +.bo3lo +.bos5om +.boun4d +.bov4 +.bra5ch +.bre2 +.burn5i +.ca3de +.ca4gin +.cam5i +.cam3o +.can1 +.can5ta +.ca5pitu +.car4i +.cas5ual +.ca4ti +.cen5so +.cen5tena +.cent5ri +.cer4i +.ch4 +.cit4a +.clem5e +.clima5to +.co5it +.co3pa +.cop5ro +.co3ru +.co3si +.co5ter +.cotyle5 +.cri5tici +.custom5 +.dav5 +.dea5co +.de5lec +.del5eg +.de3li +.deli5r +.de1m +.de5nit +.de3no +.der2 +.de3ra +.de5res +.de3ri +.de5scrib +.de5serv +.de5signe +.de5sir +.de5sis +.de5spoi +.determ5i +.de3ve +.de4w +.di4al. +.dia3s +.di4at +.din4a +.dio5c +.do2 +.do4e +.domest5 +.du4al. +.du4c +.dys3 +.east5 +.echin5 +.eco3 +.ec3t +.ed5em +.ed4it. +.ed4iti +.eg4 +.ei3d +.ei5r +.el3ev3 +.el2i +.elu5s +.em3b +.em5in +.emp4 +.em5py +.en1 +.en5c +.en4ded +.en3s +.ent2 +.en5ta +.eos5 +.epi1 +.epi3d +.er2a +.er5em5 +.er4i4 +.er4o2 +.eros4 +.erot3 +.er4ri +.es1 +.escal5 +.es3p +.es3t +.etern5 +.eth3e +.eu1 +.eur4 +.eval3 +.evol5ut +.ew4 +.ex1 +.ex3a +.eye3 +.fal4le +.far4i +.fec5unda +.fen4d +.feoff5 +.fi2 +.fi5lia +.fil5tr +.fin5ess +.fin3g +.fi5n4it +.fis4c5 +.fo3c +.fran5ch +.fu5ga +.ga4m +.gam5et +.gen4et +.ge5neti +.gen5ia +.ge3ro +.glor5io +.gnost4 +.go3no +.gos3 +.hab2 +.ha5bili +.hama5 +.han4de +.hast5i +.he4i +.hem5a +.hi2 +.hi3b +.ho2l +.ho5rol +.hov3 +.hy3lo +.ico3s +.idi2 +.ig3 +.ig1n +.il4i +.im5b +.in1 +.in3d +.in3e2 +.in2i +.in3o +.in3t +.invest5i +.ir3r +.is4c +.is4li +.is4o +.iso5m +.ka5ro +.ki4e +.kin3e +.lab4o +.la4me +.lam5enta +.lan5i +.lash4e +.le4m +.len5ti +.le2p +.lep5r +.les5son +.le5van +.librar5 +.lig3a +.li3o +.li4ons +.li4p +.loc3a +.lo4gia +.lo2p +.loph3 +.lous5i +.lov5er +.lub3 +.lyo3 +.mac5u +.mal5ad5 +.ma5lin +.mar5ti +.math5 +.me5lodio +.ment4 +.men5ta +.me5rid +.me5rin +.met4er +.mi4e +.mi3gr +.min5ue +.mirk4 +.mis1 +.mi5to +.mo3bi +.mo5lec +.mon3a +.mor5ti +.mu3ni +.mu3si +.musi5co +.myth3 +.na5k +.nari4 +.nast4 +.nas5ti +.nec3t +.ni4c +.ni5tro +.no4c +.nom3o +.nos3t +.no5tic +.nucle5 +.obed5 +.ob3el +.ob3l +.od4 +.oed5 +.oe5so +.of5t +.oi4 +.ol4d +.ome2 +.om5el +.on4ce +.on4e +.op2i +.opt5a +.or1 +.or4at4 +.ora5tori +.or5che +.or3d +.ore4 +.or3eo +.or4i +.orner4 +.or2o +.os1 +.osi4 +.oth5 +.out1 +.ov4 +.pal5i +.para5dis +.par5af +.para5t +.pa5ta +.pa4tio +.pec3t4 +.pecu3 +.ped3e +.pend4 +.pen5de +.pep3t +.peri5n +.perse5c +.pe5titi +.ph2 +.phe5nom +.phon4i +.pi2e +.pi3la +.plast4 +.plic4 +.plica4 +.plos4 +.po3la +.po5lite +.po2p +.pop5l +.po5sitio +.pos5si +.pro5bat +.pur4r +.put4te +.ra5cem +.ran5gi +.re3ca +.ref5ere +.re5gar +.re1i +.re5lin +.re1m +.re5o +.res5ci +.re5sen +.re5spo +.re5stat +.re5store +.re5str +.re3ta +.re5u +.re3w +.rib5a +.rin4 +.rit2 +.rol4la +.ros3a +.sa2 +.sac5r +.sal4i +.sa5lin +.salt5er +.sanc5 +.sap5a +.sa3vo +.sci3e +.sea3s +.sect4 +.sec5to +.se3gr +.sen3t +.se1q +.ser4ie +.ses1 +.sev5era +.sh2 +.si5gno +.sis3 +.st4 +.stat4o +.stra5to +.string5i +.su5da +.sulph5a +.sul3t +.tact4i +.tac5tic +.ta4m +.tamar5 +.tar5o +.tect4 +.tel5a +.tell5e +.te4m +.te5ra5t +.ter4p +.th4 +.tho4 +.thol4 +.ti2 +.til4 +.ti5ni +.tit4is +.tor1 +.tran4c +.tri5bal +.tri3d +.trin4a +.tri5sti +.tro4ph +.troph5o +.tro4v +.tular5 +.turb4 +.turi4 +.tu5te +.tu3to +.ul4l +.ulti5mat +.un5ce +.un5ch +.un3d2 +.under5 +.un3e +.un3g +.uni3c +.uni3o +.un3k4 +.un5s +.un3t4 +.un5u +.up1 +.up3l +.ura4 +.ur5eth +.ur4o +.va5led +.ve2 +.vec5 +.ve5lo +.vent5il +.ver4ie +.ver3n +.vic5to +.vi2s +.vis3i +.vi5so +.vo1c +.vo5lut +.wine5s +.xy3l +.za5r +a4a +1ab +2ab. +2aba +ab5are +abay4 +2abb +ab5ber +2abe4 +ab3erd +ab3err +a3bet +ab1ic +a3bie +2abin +4abio +abi5on +ab3ita +ab4itu +ab3la +abli4 +4abolic +ab3om +ab3ota +3about +ab1r +2abs. +ab1ul +abu4lo +ab3use +ab3usi +2aby +ac2a +ac5abl +ac3al +5acanth +ac5ard +a5cat +ach5al +a5chini +ach5ism +achro4 +ach5ur +2aci +a4cic +aci4ers +acif4 +4acit +ack5a +ac3li +4aco. +aco3d +ac5onr +4acos +4acou +ac1r +ac3ry +act5ate +act5ile +ac2to +act5ory +ac2t5r +ac5uat +a5dai +ada3v +4adee +ad5eni +ad4ha +ad3ica +a5dif +4adil +adi4op +adi4p +adis4i +a3diti +3adju +5admit +a2do +4adoe +4adoi +ad3ol +a3dos +ad1ow +ad1r +adram4 +4a2du +ad3ula +ad3um +4ady +ae5a +ae4cit +aeco3 +4aed +aed5is +ae5g +ae3on +ae5p +aerody5 +ae4s +ae5si +aes3t +aet4a +aeth4 +aet4or. +aev3a +4af. +4afe +af5ta +a4fu +ag4ari +4ageri +a5ghe +a5gia +agi4as +4agino +4agl +agli4 +4ag1n +ag3oni +agor4a +ag5ot +a2gr +ag3ri +agru5 +2ah +a1h2a +ahar2 +aha5ra +a1he +ah4n +a5hoo +2ai2 +4ai. +ai3a +a1ic +aid4a +aid5er +aig2 +ai5gu +ail3er +ail3o +aim5er +ain5ders +ai5nea +a3ing. +ain3i +ain5o +aint5er +air5a +air5p +air3s +ais1i +a5ism +2a1j +a4ju +2ak +akel4 +ak5u +al5abl +alact4 +a1lae +al5ais +ala3ma +al5ance +al3at +a5lav +alc3at +al3ch +ald5ri +2ale +a3lec +aleg4 +ale5ma +al5ende +a1leo +a2let +al3ibr +ali4ci +al5ics +al1id +al3if +5alig +al1in +a5lini +alin5o +al5ipe +al5ipot +4alis. +4aliu +4alk +alk5ie +al4lab +al4lag +alli5an +allig4 +al4lish +a5loe +al3ogr +a3lom +a3loo +al1or +al4orim +alos4 +a4lou +al3ous +a5low +al5pen +al3ph +al5tati +al3tie +alu3b +al5ued +al3ues +a5lumnia +al1va +al5ver +alv5u +2a1ly4 +a5lyn +2a2m +a5mad +ama4g +aman5d +a5marine +a3mas. +am1at +a5m4atic +am5atu +am4bin +3ambu +am5elo +a3men +amen4d +am3era +am5erl +am1i +ami2c +am5ica +amic5r +3amid +a3mili +am5ily +amini4f +am5iniz +aminos4 +a5mis. +a4mium. +a3mon +amor5a +amort3 +am5ose +am2p +am5peri +amphi5g +amp3li +ampo5l +am3ul +amyl5 +a2n +an2a +a5nadi +an3ae +an3age +ana5k +an3ali +an3arc +a5nast +an4con +an3d4at +and5au +and5eer +an5del +an5dif +and5ist +an5dit +an4doni +an4ea +an5eer +an3ell +anel5li +an3eu +an3gan +angov4 +an4gur +4anh +an3ic +ani3f +an5ifo +4anig +an5ion +anis5te +4anity +4aniu +an5no +4anny +an1o +an2oe +an3oma +anor3 +an2os +an5ot +an2s +an3sc +an4sco +ans3il +an4sur +an2t2a +ant5abl +an3tal +an5tam +an2te +1anth +an4thi +3anthr +4antic +an4tie +an4ting +ant4iv +an4tone +ant4r +an4tus +an5tym +an3ul +an3um. +an5ums +a3nur +a5nut +an2y +an5ya +a5nyi +2ao +aol3i +5aow +2ap +4ap. +4apa +a1pac +ap3al +ap5aro +ape5li +a5peu +aph5em +aph3i +aph5ol +aphyl3 +ap1i +ap5icu +ap3in +ap4ine +a5pir +a3plan +ap5li +apo5str +apo3th +a2pr +ap5ron +4aps +apt5at +apu5lar +a5pun +a4q +a5qui +a2r +4arabi +ara5bo +aract4i +ara2g +ar3age +ar4aged +ar5agi +ar3ago +a3raj +ar3all +ara3m +aran4g +aran5te +ar5apa +ar1at +a3rau +ara3v +ar3ba +arb5et +ar4bid +ar4bl +arb3li +ar4bul +ar5chet +arch5o +ar5dina +ar4done +ar3en +aren5d +ar5ett +ar3ev5 +ar5gh +ar3gu +ar3h +ar1i +ar5iff +ar4ill +a5ri5net +ar5ini +a5rishi +arm3er +ar5mit +ar3nal +ar3nis +ar3od +ar5oid +aro4mas +aro4n +a5roti +a5rouc +ar3ox +arp5ers +ar4pu +2arr +ar2rh +ar2s +ars5al +ar3so +art5at +ar2th +arth4e +arth3r +ar5tiz +2aru +ar3um +ar5un4 +a3ryo +a5ryt +ar5z +as1a +as4af +asan2 +2asc +as5con +as5cot +as2cr +as2e +as3ect +4ased +asep4 +ash5ay +ash5il +as5ily +as3in +a5sio +a3sit +as5iv +ask5er +aski4 +as4la +as4lo +2aso +as5och +a4soned +as5or +as3ph +ass2 +assa5gi +ass5ibl +as4sil +assit5 +2asta +as4tat +as4tia +as3tis +as4tit +4asto2 +as3tra +as4tri +as1u +as4un +as5ur +2a2ta +4atabi +a5talis +atam4 +ata3p +atar3a +ata3s +ata3t4 +at3eau +at3ech +at5eer +a5tel. +ate5le +at5enat +at3ent +4ater +at3era +at5ernis +at5erniz +4atess +at5et +4a2th +ath3a +a3then +ath5erin +ath5ero +ath5ete +ath3i +ath3od +a5thon +ath5r +4a3tia +ati2c +at5icis +ati5cit +at5iciz +a2tif +a4t1i4l +a4tim +a2t3in +4atina +at5ing +4at4is. +at1it +atit3u +atitud5i +4atiu +at4ivi +a5tiviz +a2to +5at5od +4atog +2atol +4aton +a3too +a4tops +a5torian +a4tory +atos4 +a5toz +2a2tr +at3ra +a4tre +5at5ress +at1ri +atric5u +at3ron +at5rou +at4tag +2a2tu +at1ul +atu4m +at3ura +at3urg +4a2ty +2au2 +4au. +aub5i +4auc +au5cer +auc3o +aud5er +audic4 +aul3i +aul4t +aul5ted +ault5er +ault5i +au3ma +aun2 +aun5chie +aun3d +aun4dre +au5reo +aur4o +au5ror +4aus. +aus5er +aus5p +aus4ted +aut3ar +aut3er +au3th +2av +av4ab +ava4g +av3age +ava5la +av5alr +av5ant +av5ar +avas3 +av3end +av3ern +av3ig +aviol4 +av1is +aw5er. +aw5ers +aw1i +aw5nie +aw5y +a4x +ax2id +4ay +ay5la +ay3m +ayn4 +ays2 +ay5si +ay5sta +ayth4 +2az2 +az3ar +aze4 +az5ee +azyg4 +azz4l +2ba. +ba5bir +3back +baen4 +bag4a +5bah +ba4i +bal3a +balm5i +ba5lon +bal5u +bam4a +ban4a +ba5nan +b4ane +5bang +b4aniti +b4ans +ba4p1 +5barb +bar4d +bardi4 +bar4n +ba5rom +bar3on +5bars +1bas +bas4te +ba4th4 +3batic +ba5tio +bat5on +battle5 +2b1b2 +b4bata +b3bli +b4bone +b1c2 +bcord4 +2b1d +bdeac5 +bde4b +bdi4v +b2e +4be. +3bea +4beas +be3ca +3becu +2bed +be3da +bed5el +bed2i +be4do +be5dra +be4du +5bee +3bef +be3go +be5gr +be3gu +1bel +be3la +2bele +be3lit +bel4t +be3m +ben4d +bend5a +bend5er +be1ne +be5nig +be5nu +4beo +be3q +2bere +berga5m +berl4 +5berr +ber5s +b5ertin +be1s2 +2bes. +be3sl +be3tr +be3w +2b1f +bfa4 +4b1h +b4ha +2bi. +1bia +bi4b1 +bicen5 +3b2id +bid5i +b4ie +bi4ers +bif4 +bi4fid. +bi5ga +bigu3 +b1il +b2ile +5biles +3b2ill +4bim +bimet5 +5bina +5bin4d +bind3e +bin5et +bin5i4 +1bi2o +bio3l +bio5m +bi3ou +bip4 +bi5q +bir4 +bi3re4 +bi5rus +b2is +5bism +bis4o +bisul5 +3bitua +4bity +bi5ve +b1j +4b5k4 +2bl2 +5blac +blag4 +b3lan +5blast +bla5tu +blem5at +3bler +5blesp +4blik +blim3a +bli3o +bli2q +b3lis +4bly +2b1m +bment4 +bmi4 +4b1n +bo2 +4bo. +3boa +bo5am +5bob +bod5i +bo5h +2boid +4boke +bol4e +4boled +bol3i +bol4t +3bon +bon4c +bon4e +bon4ie +boni4f +bon4sp +1boo +b3orat +bor3d +bor5ee +bor5et +3bori +bor5ic +bor5io +bor4n +bot3an +5boti +boun5ti +3bour +bous4 +bow2 +bow3s +4boxy +5boy +br4 +3brach +4bral +bram4 +b2ran +bran4d +4bre. +b4reas +4b2res +brev5et +b2rid +5brief +bring5 +bri4os +b5rist +b4roa +bro4ma +bros4 +brum4 +4bry. +4b1s2 +b3sc +bscon4 +bsen4 +bserv5an +b5si +bsin4 +bso2 +bsol3e +bso3lu +b4stac +bstupe5 +2b1t +b5tlet +4bu. +5bub +buf5fer +b4uli +b4ulos +bun2 +bun4a +b5u5nat +bunt4 +bur3e +bur4ri +busi4e +buss2 +bus5si +3bust +bu5tar +b3ute +b5utin +3butio +but4iv +b5ut5o +b1v +4b3w +2by +4by. +3byi +bys4 +5byt +2ca. +cab5in +c4ace +caco3 +cad4r +5caf +ca3go +5cai +5cak +c1al +c4ala +ca5laman +cal5ar +3calc +ca5lef +call5in +cal4m +ca3ly +ca3ma +cam4i +ca5nar +c2an4e +c4ano +ca3noe +can5tar +can5ted +can4tic +can4tr +5cao +1cap +ca5pil +capt4 +cap3ti +cap3u +1car +ca3ra5c +car5ame +ca3ree +ca3r4i3c +car3if +car5m +car3ni +car3ol +car5on +car5oo +ca3rou +car4v +case5 +cashi4 +3cas3s +cas5tig +3casu3 +c1at +c4at. +c2atc +c4atom +ca3t2r +c4ats +cat4u +3cau +caulk4i +cav3il +3cay +c1c4 +ccent5r +cces4sa +c3ch +cci3d4 +ccip4 +ccle3 +4ce. +4ceab +cean3 +3ceas +ce4ci +2ced +5ceda +ce3dar +3cede +3cedi +4cef +ce5g +3ceiv +cel3ai +cel5ib5 +5cell +cel5lin +celo4 +ce5lom +4cely +2cem +ce4met +3cemi +ce4mo +1cen2 +5cenc +cen5ci +cen5ded +cend5en +cend5er +cen3i +2cenn +3cent +cent4a +cen5ted +cen5ter. +cen5ters +cen5tes +1cep +cept3a +cep5tic +3cera +cer4bi +3cerd +ce3rem +5cern +5cess +cest5o +ces5tr +ce2t +cew4 +2ch +4ch. +4chab +3chae +3chai +cham5per +chan5gi +cha3pa +chec4 +4ched +3chee +3chem +che3ol +ch1er +ch4eri +5cherin +ch4erl +4ches +3chete +ch5eu +che5va +3chew +ch5ex +5chi. +3chia +3chico +ch3ily +ch4in. +ch3inn +3chio +5chip +chizz4 +ch5k +5chlor +4chm +1cho +cho3a +5choc +4choi +ch5oid +3chor +4chored +chor5ol +4choso +3chot +4choti +ch5ous +chow5 +3chr +chur4 +3chut +5chyd +3chyl +3chym +1c2i2 +4ci. +4ciac +cia4m +ci3ca +4cids +4cie. +ci3er +ci3est +ci5et +ci3f +cifi4 +4cig +ci3ga +cigar5 +3cil +cil5lin +2cim +cim3a +ci3me +5cimen +4cinab +4cind +cine5a +cine5mat +ci5ness +4cint +ci3ol +ci5om +ci4po +cisi4 +cit3r +ck1 +ckar5 +cka5t +c4ke +ck5if +ck4sc +cl2 +cla5rif +3clas +c2le2 +2cle. +c5lec +clemat4 +clev3 +cli1m +c3ling +cli2q +clo4q +c4lotr +clue4 +clyp5 +5clys +cn2 +c3ni +1c2o2 +4co. +3coa +co5ba +3coc +co3ci +co5cu +co3dic +co3dif +4cody +3coe +co5et +co3gr +4c3oid +co3inc +4col. +col3a +co3log +5colou +co5ly +co5mas +co4me +co3mo4 +comp4 +con1 +con4ati +con4ch +cond5er +con4ey +con4ie +con3s +con3t +conta5d +3coo +coop4 +co3or +cop4e +co3ph +co5pl +co3po +cop4t +2cora +cor5ded +cord5er +4cored +co3rel +3corn +4coro +co5rol +5cort +3cos. +cost3a +cost5er +co5ta +3co3tr +5coty +cous5t +cov1 +co3va +cow5a +coz4 +co5zi +c1q +cr2 +5craf +craft5i +c4ran +5crani +cra5niu +cras3t +cra4te +c2re +4crean +cre3at +cre4p3 +5creti +cre4to +cret5or +cri3l +cron4 +crost4 +4crou +5c4rus +cry2 +crym3 +cryo3 +4c5s4 +csim5 +2ct +c2ta +c3tac +ctac5u +c5ta5g +ct1an +ct5ant +c5taria +c3tato +c1te +c4tea +c2t5ee +c4tent +cter4ia +ct5es +ct5et +ct2ic +c5ticia +c4tics +ctifi4e +c3tim +ct4in. +ct4ina +ct5ing +c3tini +c5tin5o +c5tio +c3t2is +c3tit +c4titu +c4tity +ct5ive +ct4ivit +ct5olo +c1tom +c3ton +c5toris +c5toriz +c1tr +c2tre +ctro5t +c1tu +c2tum +c1ty +cub3at +c4uf +cu5ity +cul5ab +c2uli +cull5er +cull5in +1c2ult +cu4mi +5cuna +cun4e +5cuni +5cuol +cu5pa +cu3pi +c3upl +1cur +cur4er +cur5ial +4cur4o +1cus +cus5a +c3utiv +c3utr +5cuu +cu5v +2cy. +cy4bi +1cyc +cyl3 +cy4m +cy5no +cys4 +cys5to +cy4t +cz2 +4da. +d4abr +1d2ac +dach4 +d5ache +3dact +d1ag +d4a4gi +d4ale +d4alg +dal5ler +dam5a +3dame +d3ami +da5mu +3dang +d1an4t +d3ap +d3ard +5darm +3d4as2 +dast5a +d1at +dativ4 +dat4u +daugh3 +daun5te +3dav +d3b +d3c4 +d1d4 +d4dere +d3di +d3dler +d3dli +d3dyi +2de. +deac3t +de5aw +de4bi +deb5it +3dec +de5cant +de4cil +de1cr +4dect +ded3i +defor5e +de4fy. +de3g +de4gu +de3io +5de3is +de3lat +deli4e +del5ler +del5li +de5lo +1d4em +4demie +4dem4is +demo4n +de4mons +de3mor +de4mos +4demy +de1n2a +den4d +4dene +d3enh +deni4e +dens5a +dens5er +den5tit +de3od +deo3l +deon2 +deont5 +de1p +depen4 +deposi4 +de2pu +d3eq +derac4 +de3rai +d4ere +4dered +de5reg +3derer +1deri +der3k +3derm +der4mi +der5min +5derne +3dero4 +der5os +der3s +5deru +4des. +de3sa +5desc +des4ca +de5scal +de3sec +des4i +de3sid +des5igna +des1p +des5pon +de3sq +d3est. +des3ti +1de1t +de3tes +de5th +de2ti +dev3il +de3vis +de3vit +de4voi +devol5u +3dex +2d5f +dfol4 +d2g +dg4a +dgel4 +d4gen +d3gr +4d1h +dhot4 +d4hu +4di. +1dia +di2ad +3diar +diat5om +4d1ib +d1ic. +dic5am +di4ce +di3ch +d5icl +dic5ol +1dict +dic5tat +dic4te +5dicul +d5icur +1did +di4ers +3di3ev +d4ifo +dig3al +di3gam +dil4 +5dill +dilo4 +di3lu +di5mer +dimet4 +di1mi +2d1in +din4e +din5gi +di5nos +3di1o +dio4c +di4ola +dip5t +3dire +di3ri +4d5iro +di4s1 +d4isc +disen3 +3disia +3diss +d4itas +d4iter +dithe4 +d3ito +ditor3 +2dity +1diu +1di1v2 +di4val +di5vine +dix4i +d1j +2dl4 +d1la +5dlef +5dlest +3dlew +dlin4 +d1lo +d5lu +2d1m +4d1n2 +1do +4do. +d4ob +do4c3u +dog4a +do4j +d4ol. +dol3en +do5line +dol5it +do4lon +d4ols +5dom. +doman4 +domin5 +dom5ino +dom5it +do5mo +don4at +4dony +3doo +d2or +4dor. +dor4m +dort4 +d4os +do5sim +dossi4 +dot1a +dot4tin +2dous +d4own +3dox +d1p +dr2 +d5rail +d3ral +3dram +dran4 +d4ras +drast4 +3drel +dres4 +dress5o +dri4e +d4rif +dri4g3 +d4rom +dropho4 +drunk3 +4d1s2 +d5sl +ds3m +ds4mi +d4sw +dt4 +dt5ho +1du +2du. +du1at +3duc +duch5 +duci5an +du4co +du5eli +du5ell +du5en +du5ett +du5in +dul3c +d3ule +dul4l +dum4be +dun4a +d5un4c +du2p +du3pl +5duro +d5use +dust5er +du3u +d1v +dver2 +dvert3 +dvoc5at +2d1w +dwell3 +2d2y +dy4ad. +dy5ar +5dy4e +5dyk +dyl2 +dyll3 +5dymi +3dyn +dys3p +d3zo +ea2 +4eab +e1act +eac4te +ea5cu +e5add +ead3er +ead1i +ead3li +ea4g +eak1 +eal3a +eal3er +ea3log +eam4bl +eam3er +ean5i +eap2 +eap5er +e3app +ear3a +ear3er +ear4li +e5ar2r +ear4te +earth5i +eas5er +ea4soni +e1as1s +eassem4 +eas4t +east5i +eat5eni +eat3er +eat5ie +e3atif +eatit4 +eat4itu +e3atri +e4atu +eau3 +eav5i +eavi4e +eav5ou +eaz5i +e1b +ebar4 +eb2b +ebe4 +e4bel. +e4bels +e2ben +eb5et +eb2i +e5bil +e4bin +e4bis +e4bl +e4bos +ebot3o +e2br +eb1ra +eb2t +e4buc +ebus5i +ec2a +ec3ade +ecad5en +ecal5e +e5cam +e4capo +ec3at +ec5ath +e1ce +ecent5o +ech3i +e4cib +eci4f +ecip5i +e1cl +ec3lip +econ4sc +econstit5 +ec3ora +ec5oro +ec3rat +ec5rean +e4crem +ec1ro +ect5ati +ec4ter +ecti4c +ec4tit +ec4t5us +ec1ul +e5culi +2ed +e5dans +e2dat +ede2 +e4ded +e5deh +e4dele +edes3t +ede3te +edeter5 +e3dev +e5dew +ed4g +edi4als +ed5ical +ed5ics +ediges4 +ed5igr +ed3ime +ed1it +edi2v +ediv5id +ed3li +edor4 +e4dox +ed1ro +edu5cer +e2dul +ed3ulo +e4d5ur +ee4ce +eed3er +ee4do +ee2f +ee5g +ee1i +ee2l1i +ee2m +eem5er +eem3i +eep1 +ee4pa +eer4ine +eesi4 +ee3to +e1f +efact5o +efal4 +ef5eree +ef5inite +e4fite +ef4l +efor5est +2efu +e4fug +efut5a +egel3 +egi5a +e4gib +e3gla +eg3le +eg4mi +eg5nab +e5g4on +e2gr +e5gur +e1h2 +e5ho +eh5s +ehy2 +ehyd5r +eid4 +5eido +4eif +eig2 +e5ignit +e4in. +e3inc +e2ine +e1ing +ein5i +e4ins. +ei4p4 +eir3o +4eis +eis3i +eit5er +eith4 +e2iv +eiv3er +e2iz +e1j +ejudic4 +ek3en +ek5is +ek4l +e4lac +e5lad +el5age +elam4 +el5anc +elast3 +e4lates +el5ative +elch5er +eld3er +2ele +elea5g +4e4led +el5eni +el3eno +ele3o +ele5ph +el1er +e1les +e5less +e4leste +el3et3o +elev3a +ele3vi +el5ex +e4l3ica4 +e1lie +eli4ers +e3lim +el3ing +eli3on +e4li4s +elit4t +e3liv +el4lab +ell5iz +e3loa +e3loc +elo5ca +eloc3u +elo4di +e2log +elom5ate +el5op. +el5ops +elp5in +el3so +el5tie +e1lu +elu4m +elus4 +elv4 +e5lyi +3elyt +em3ago +em3ana +emar4 +emarc5a +em5atiz +emat5ol +em5bi +e1me4 +e4mee +e4mel +e3mem +e4m3era +em5ero +emet4e +em4icis +e4mie +e2mig +emig5ra +em3ina +em5ing +e3mio +em3ism +e4mita +e4miu +em4mae +4emnit +emo3bi +emod4u +e2mog +e4moi +em3olo +em5om +4emon +e3moni +emon5ol +e2mor +em5oris +em3orr +e4motic +e5moz +empa5r +empara5 +em5pes +4empli. +em4pre +em3um +e5mut +en3ac +e4nal +en3am3o +en4ann +e2n3ar +en3as. +ena5ture +3encep +en4cile +enct4 +2end +en4d5al +en4dedl +end5rit +4ene +ene5d +en3ee +e5nelle +e5nep +e2ner +e5nereo +ener5v +en5esi +e3ness +en1et +en4ett +e2n3eu +e3new +en3gi +en3ic +en5ier +en3ig3r +en5in +enit5u +en3k +en1o +en3oi +eno2m +en3oty +enov3 +en2s +ens5al +en3sp +en4sum +en4sus +ent3ar +en4ters +en5tia +en4tify +en2to +en4tri +ent5rin +ent5up +en4tus +4enu +en3ua +en3uf +en3ur +en5ut +5enwa +eo3b +e4och +e4oda +eof2 +eo2l +eol5ar. +eol5at +eologi4 +e5olu +eo3m +eon4a +e3ont +eop4t +e1or1 +eor4de +eor3e +eor5o +eo1s2 +eo4to +e1pa +ep4al +ep5arc +epa4t +epend5en +ep5ert +e4pete +epe5titio +ep5ex +eph1 +eph4i +e2pig +e5pla +ep3lic +epol3a +epol3i +epolit5 +ep3reh +epres5e +ep5rim +e4p5rob5 +ept3or +e1p4u +e3pur5 +e4puta +equin4 +equi5no +er1 +era4cie +era4do +era4g +era4l +er3aph +er3api +er3apy +4erati. +4eratim +er5atu +er3bat +er3be +erb5os +2erc +er3ch +er3cl +2erd +erd5ar +erdi4e +2ere +er3eal +4ered +er3egr +er5el. +er5ell +er5els +e4reme +er3en +5erend +eren4e +ere5ol +e3req +er3er +ere4s +er5ese +er3esi +er5este +er5esti +eres5tr +eret4 +er3et. +er3ets +er3ett +ere4v +er3ex +ergi3v +er3gl +er3ia. +er4ian +eri4cid +5er5ick +er2id +er3ie +er3iff +er4imet +er3in +eri4na +eri4on +er3iou +er4isc +eri5sta +4eri2t +e3riv +er5iz +4erj +erk4 +er3me +er4moi +5ernacl +er5nalis +ern3er +ern3is +ern3it +4ero. +er3oid +ero5is +ero5st +erpent5in +erre5la +er4rep +er5sine +er5ted +er4ter +ert5er. +ert5ers +er4thi +ert5iz +2eru +eru4b +eru5d +erund5 +er4vil +5erwau +eryth3 +2erz +4es. +es5am +es5an +e2sc +es5can +es5che +esci5e +escut5 +e3sea +e3sect +e5see +e5seg5 +ese4l +es5enc +e3sh4a +e1shi +e5shu +esi4an +es5ic. +e5sick +es5iden +esi5diu +es5ies +es3im +es3in +e5sion +e4sit +es4it. +es4its +e3skin +e3s4mi +es4od +es3ola +es3ol3u +es3ona +eso3p +e1sor +es3per3 +es5pira +es5pit +es4pl +esplen5 +es5pot +e5s2pr +es4s3an +essar5 +ess5ee +es4sil +es2so +esta4b +est3an +e5star +es5tau +e2sti +est5ifi +est5igati +e3stoc +es5too +est4r +estud4 +e1su +e2s3ul +es4ur5 +et2a +et3al. +et5allis +et3al5o +eta5me +eta3p +et3ari +et5ary +et4as +et3ate +et3ati +et5ay +et3eer +etell5i +etend5er +et5eni +eter2 +et3er3a +et5eria +etex4 +e2th1 +ethyl3 +2etia +e3ticu +eti4gi +e5tim +et3in +eti4na +e3tir +et5itiv +eti4u +et5olo +e5tomete +e2ton +et3ona +etor3i +etra5g +4e4tral +etra5m +et4ran +et5ress +et1ri +et4ria +etrib5a +e4trim +et1ro +et2t +et3ter +etud4 +et3ude +e4tum +et4we +et5z +eudio5 +eue4 +euk5 +4eum +e3urg +eur5i +eus4 +eu5ten +eu3ter +eut3i +ev4abi +eval5e +eva2p3 +ev3ast +ev3at +ev5eli +eve4n +ev5erat +ev5eren +ever4er +e4veri +e4ves +e1via +e4viab +e2vic +evictu4 +evid3 +ev5ig +ev4ile +ev5ish +evis5in +evis5o +e4viu +evoc3 +evol5e +evol5ute +evu4 +e1wa +e4wag +e5way +ew1er +e3wh +ew5ie +ew1in +ew5ish +e3wit +e1wr +ex5ic +ex4on. +1exp +4ey. +ey4as +eyl4 +ey3s2 +ez5er. +ez5ers +ez5ie +1f2a +2fa. +fab4i +fa3cet +fact2 +fa2c3u +2f3ag +fall5in +5falo +fa5lon +fals5ifie +4fan3a +fan5tasiz +fant3i +5far +far3i +5faw +4f5b +2f5d +2fe. +3feas +fea3tu +feb5r +3fec +2fed1 +5fei +fe1li +fem3i +femin5 +fend5er +f5eni +4fered +fer3ee +3fero +fe5roc +fer5om +3ferr +fer3v +2fes. +fess3o +fest3a +fest5i +fe4t +fet4al +fet4in +fet4o +3feu +fe5veri +2ff +f1fe +ffec4te +f5fet +f1fi +f5fia +f3fic +f5fie +ffil3 +f2f3is +ff4le +ff3lin +ffoc3 +ffoni4 +ffor3e +f3fr +ffranch5 +4f5h +fi5ance +fib5u +4fic. +4fical +3fici +4fics +fi5del +fid3en +fiel4 +fier4c +fight5 +1fi2l +2fin +fin2a +fi3nal +find3 +fin2e +f1ing +5finin +fin4ni +fir2m1 +f3ita +f5itee +fl2 +3fla +fle2s +f3lica +flin4 +3flo +flo5ric +3flu +flum4i +1fo +4fo. +3foc +fo2e +foeti4 +fo1l4i +fo4lie +foment4 +fo2n +fon4de +3foo +fo5ram +for5ay +for5b +for4di +fore3t +5form +for4m3a +fortu5na +fo3v +1fr2 +frag5a +frant4 +frar4 +fratch4 +fre4s +frost5i +fruc4 +2f3s +fs4p +2ft +f1ted +f4ter. +ft5es +fti4et +ft4ine +3fu +4fu. +fu4c +fuel5li +fug4a +fu4min +fun2g +4fured +fur3n +fu3sil +fus5o +fu5til +4ga. +ga4cie +gadi4 +ga4dos +3gag +3gai +3gale +ga5len +gali4a +gal5ler +3galo +gam4bl +gan5at +4ganed +gang5er +g5ant. +gan4tr +g5ants +g5arc +g4are +gar3ee +gariz4a +ga5rot +gar5p +5garr +1ga4s +gas5i +gas3o +gasol5 +gass5in +gast3r +g1at +g4at. +gat5iv +g4ato. +g4atos +g4att +gat5u +gaud5 +ga5za +g1b +g5d4 +2ge. +5geal +3gean +2ge4d +3gedi +5gedn +4gef +1gel +4gele +ge4li +gel4in +gel5li +ge4lu +2gely +gem3i +5gemo +3gen +gen4du +gen5it +gen3o +gen5ti +ge4o +geo3lo +4gere +3germ4 +2ges. +5gess +gest5at +3get +get3a +2g1f +2g1g +gg4a +g2ge +g5gedl +g3ger +g5gerer +ggi4a5 +g3gli +gglu3 +g5gly +ggrav3 +g4gro +2gh +g5hai +gh5eni +g3ho +g4hos +gh2t +1g2i +4gi. +gi4all +gi4at +3gib +gi5co +gi4g +gi5gan +gin5gi +3gio +gi4or +gi4ot +5gip +gi5pa +g4i4s +5gis. +gi2t1 +5gitu +giv5en. +2gl2 +g3lar +5glass. +glec4 +3gler +g4leto +g4letr +g4ley +gli5on +g5lis4 +3glo +4g5lod +glom3 +4glop +3glu +glu5te +glu5ti +3glyp +2g1m4 +2gn2 +g1na +g4nab +g5nate +5gnath +g5nati +gna5tur +gn5edl +gn5ee +gn3er +g1ni +g4nia +g2n3in +gn4in. +g4ni2o +g2no +5gnori +gno4s +2go. +5goa +3goc +5god +3goe +go4et +go4ge +4gogram +g5oid +go3is +go2me +5gonn +go5nom +3goo +goph4 +4gor. +5gorg +4gors +g4ory +3gos +gos4t +2gou +gour4i +g1ous +gov1 +g3p +1gr2 +grab4 +3gram +4grame +gra2p +g4re +gril4 +grim3a +g4ro +gro4g +g5ron +grop4 +3gru +gru3en +gru5i +grum4b +2g1s +gs4c +gs4t +g4sti +gth5eni +g5to +g4u2a +gu5ab +5guan +3guard +g5uat +2gue +5gueu +5guit4 +gui5ta +gu2ma +gu4mi +3gun +g4uras +g4ured +gur4n +gur4u +4gury +gust5a +2g1w +2gy +gy2b +5gym +3gyn +gyn5o +g5z2 +ha2 +4ha. +h4ac +hadi4e +had4ine +hae3o +haged5 +hagi3o +hag5u +ha5ic +hais4 +hak4ine +hal5ant +ha4m +ham5an +han4cro +han2g +h1ani4 +h5aniz +han4t +hant3a +ha4pe +hap3l +har1a +har5b +har4d +har5die +harge4 +ha5rism +har3o +har4ted +har4ti +has4te +hat5o +haught5 +havel4 +hav5ersi +hav5o +h1b +h1c +h1d +hdeac5 +hdu4 +he2 +4he. +h2ea +1head +3hear +hearch4 +heast5 +heav5en +hec3t4 +he5del +he3do +heek4 +h4ei +he3is +he5lat +h5elin +he3lio +he5liu +hel4li +h3el3o +hem1a +he3men +hemis4 +he5mop +hem4p +hende5 +he3or +hep1 +h1er. +her4as +her2b +herb3a +herb3i +here3a +here3o +h5erett +h5erh +her5ial +h5erine +h1erl +her5om +h4eron +h1ers +h5erwa +hes3tr +het1 +h4et3a +het3i +het4ted +heu2 +heum3 +heumat5 +he4v4 +hev5i +hex5o +h1f +h5h +2hi. +hi4ar +h1ic +hi3c4an +hi4cin +h4icl +h5ie. +h1ier +h4i4ers +h1ies +h3ifi4 +h3ify +hig4o +hi5ka +hi4l +hi5ma4 +hi5mer +himos4 +h1in +hin4d +h2in2e +hi5nie +h5iniz +hi5nop +h2ins +hio5lo +h4ior +hi2p +hip3l +h4ir +hir4r +hirr5i +hit4a +hiv5a +4hl +h3la +h1le +h3let +h1l2i +hli4a +2h1m +h4manic +h5mica +2h1n2 +hnocen5 +4ho. +ho3an +ho4co +ho3don +ho5du +ho5ep +hol3ar +hold1 +hol4is. +ho5lys +ho4mag +hom5in +h2o4n +hon5em +ho5neu +hon3ey +hong3i +ho5nio +hon1o +1hood +hoo5r +h4ope +ho2p5r +h4op4te +hor5et +h4orn +horn5i +ho5rog +hort5h +hosi4 +ho4ton +h2ou +3house3 +4h1p +2hr +hras5eo +hre4 +hre5ma +hr5er +hres4 +hri4 +hrill5in +hrim4 +h5rit +h3rod +hrom4i +hry4 +h3rym3 +2h1s +hsi4 +h4sk +ht5ag +ht5ee +ht3en. +ht5ener +ht3eni +ht3ens +ht5eo +ht5es +ht4foo +h1th +ht4ine +hu4g +hu4mat +hu5mer +hu4min +hun4c +hunk4 +hun4t +hur3i +hu3sia +huz4 +h1w +h4wart +h2y +hy2l +hyl5en +hy2m +hyn4 +hy3o +hyol5i +hy1pe +hy3ph +hyr4 +hys3te +hy4t +2i1a2 +ia4bl +iab5olis +iab5oliz +i2ach +iac3o +i2ac2r +ia5cri +ia5dem +i5ae +iaf4 +i2ag4 +ia3gn +i5a4g5o +ia3gr +i3ah +i5ai +ialect4 +i3alit +ial5li +4ialn +i2a3lo +ia5ly +i5amb +ia3me +ianch5 +i3ant +i5ape +ia3ph +i2ard +4iarit +i3at +ia5the +i5atom +iat4u +iatur4a +i3au +iav4 +ib3era +ib1i +ibio4 +ibios4 +ib5li +4ibo +i4bon +ibor4 +i4bose +i5bou +ib1ri +4ibu +ib3uta +ic3ac +ic5ado +i4cal +ic1an +2icar +iccu4 +4ice +i5ceo +4ich +ich4i +ich5ing +ich5ol +4icin +i5cio +2ick +ic4lo +2i2co +ico3c +ic5ola +icon3o +i5cop +icotyle5 +2i1cr +i4cri +i4cru +i4cry +ic4tedl +ic4ter +ict5ic +2icu +icu4lu +ic3um +i5cun4 +i5cut +2i1cy +i2d +id1a +i5day +ide4m +id3enc +id3era +iderm5 +i3dicu +id3if +i5dig +i5dil +i3dim +id4ines +idios4 +idir4 +id1is4 +id4ist +2i4d1it +idi4v +id3li +id3ol +idol3a +4idomi +id3ow +4idr +id5ri +id3ul +ie2 +4iec +2ieg2 +ie3ga +ie5i +i5ell +4iem +2i1en +ien2d +i1er +i3eres +i2eri +ieri4n +4iern +ier2o +i4ert +i3esc +ies3el +i1es2t +i3est. +2i1et +i4et. +iet3ie +4ieu +i5euti +iev3a +iev3er +iev3o +2i1f +i2fe +if4fa +iff5ler +if3ic. +i4ficac +if5ics +ifi4d +ifi4n +4i2fl +i3fo +ifoc5 +if5tee +i3fy +2ig +i3gad +ig3and +3igar +i1ge +i3ger +ight5er. +ight5ers +4igi +ign5iz +igno5m +i3gon +ig1or +ig3ot +i5gret +i4g5ro +igu5it +ig1ur +2i1h +ihy4 +2ii +i5in +ija4 +4iju +2ik2 +ik5an +ike4b +i2l3a +ila4g +ila5tel +i5later +il4ax +il5dr +il4du +i3len +ilesi4 +il3f +il3ia. +il3iar +ili4arl +i3lici +i5lien +ili4er +ili4fe +il4ific +il1in +il5ine. +4iliou +il5ipp +il5iq +il4ite +ilit5u +il4mo +i5lon +il3ou +ilth4 +il2tr +4ilu +il5ul +i5lum +il5ure +il3v +4ilym +ima4c +im2ag +im3age +im1al +im5am +i5m2as +i4mated +i4matin +imat5u +im1i +i3m2ie +im4ine +im5ino +im5mes +i2mo +i5mog +i3mon +im5oo +i3mos. +impar5a +imparad5 +im5pie +impot5 +im5pr +impu4 +im1ul +im5um +in3ab +4inace +in4ado +in5agl +in3air +ina4l +4inalit +in5am +in3an +in3ap +in4ars +i3nas. +4inata +inator5 +in3au +in4aw +2inc +inc4tua +2ind +in5dar +inde5p +indes5 +inde3t +indeterm5 +in5dro +4inea +4ined +in5ee +in5ega +4in5eo +ine4s +in3esi +ine5te +4ineu +inev5 +infilt5 +infol4 +4infu +4inga +in5gal +4inge +ing5ha +4ingi +4ingle +4ingli +4ingo +4ingu +ing3um +2ini +in5ia. +4inic +in4ici +in3ion +in4itud +4ink +ink4ine +4inl +2inn +2ino +4ino. +in3oi +i5nole +4inos +i3nos. +in5ose +in3osi +4inq +ins2 +in4sch5 +inse2 +insect5 +insec5u +in3si +5insk +insolv5 +in4tee +int5ess +in3til +int5res +intu5m +2inu +in5ul +in5um +in3un +in3ur +invol5u +2io2 +ioact4 +i1od +iod3i4 +iod5o +ioe4 +io3gr +4i1ol +io3ma +i4omani +io3mo +i5ope +io3ph +i5opo +iop4s +i1or +iora4m +4iore +4iorit +5ioriz +4iorl +ior4n +io3sc +i3ose +i3osi +i4oso +io5sta +i3ot +iot4a +io5th +iot5ic +io5tr +i4oty +i4our. +i4ours +i5ox +2ip +ip3al +ipap4 +ipar3o +ipart5ite +ip1at +i3pend +i1ph2e +iphen3 +i5pheri +iphi4 +i4phu +ip3id +i5pil +ip3in +ip4ine +ipir4 +ip5is +ip1i4t +ip4iti +ip3lin +ip3lo +i3po +i4pog +i4poli +i4pom +ipon3 +i4pow +ip2pl +ip3pli +ip4re +ip5tori +ip1ul +i5put +ipy4 +2iq +i3qua +2ir +ir1a +ir4abi +ira4c +ir4ae. +ir4ag +ir4alin +ir4alli +i5raso +irassi4 +iray4 +ird3i +ire3a +ir3ec +ir5ee +irel4 +ire5li +ires4 +ir5ess +ir1i +ir2i4d +ir4im +ir4is. +5iriz +irl5ing +ir5och +ir5ol +ir3om +ir4q +ir2s +ir5ta +ir5tee +irwo4me +i4sa +is5ad +is3age +is1al +is3am +is1an +is3ar +is5av +4isb +i2s3c +is5chi +isci5c +4i1sec +ise5cr +is3ell +4is3en +is2er +is5ere +i2s3et +4iseu +is3har +ish5ee +4ishio +ish3op +is5hor +2isia +is5ic +is3ie +4isim +is3inc +4isis +is4ke +is1l +islun4 +2isma +is1on +is5oner +iso5p +is1p +i3s2ph +5ispr +2is1s +iss5ad +is4sal +is5san +iss4iv +iss4o +4ista +is4tal +ist5enc +ist5ent +is5terer +4isth +is4t3ic +4istl +i4s1to +4is4tom +is1tr +3istry +4isty +i5sul +is3ur +2isy +it1a +it5ab +ita4c +4itai +it3am +it4ana +it4as +it3at +i3tect +it3ee +it3enc +it3ent +it3era +2ith +itha5l +ith5i +i5thol +ith3r +ithy5 +2itia +iti4co +it5icu +it1ie +it3ig +4itim +it4in. +it4ins +4itio. +4itione +i5tiq +4i5tit +it3iv +it4li +it5lo +4ito. +it5ol +2iton +it1ou +2itr +it5ress +i4tric +2itt +it4tit +itu4als +it5uar +4itue +it1ul +it1ur +it3us +2i1u2 +i3um +iur5e +2iva +iv5anc +iv1at +i4ved +iv5el. +iv5eling +iv5els +i4ver. +iv3eri +i4vers. +iver5sal +ives4 +iv3et +i4vie +iv3if +i5vilit +5ivist. +5ivists +iv1it +i2vo +ivoc3 +i5vore +2i1w +2ix +ix3o +i5ye +1iz +4izah +iz3i2 +2izo +iz5oi +2izz +1ja +2ja. +3jac +ja2c5o +jac3u +jag5u +jal4 +ja5lo +ja5pan +jel5la +jeo2 +jeop3 +4jes +jeu4 +jew3 +2ji +3jig +jil4 +jill5 +5jis. +3jo2 +4jo. +joc5o +joc5u +jol4e +4jr +4js +ju1di +jui4 +ju5l +ju3ni +juscu4 +jut3a +ju1v +k4abi +k2a5bu +kach4 +k3a4g +kais5 +ka4l +ka5lim +kal4is +k4an +ka3o +kap4 +kar4i +1kas. +kaur4 +kav4 +k1b4 +k1c +kcom4 +k5d2 +kdo4 +kdol5 +4ked +ke5da +k5ede +3kee +ke4g +ken4d +keno4 +kep5t +ker5a +k4ere +k5erel +ker4j +ker5o +kes4i +ket5a +key4wo +k1f +kfur4 +k3ho +5kih +ki2l +kilo3 +k1in +k2in. +3kind +kinema4 +kin5et +k3ing +kin4i +k2ins +kir3m +kir4r +kis4 +3kis. +k1ish +kit5c +ki4w +kk4 +k5ker +k2l2 +k3la +k5lea +k3ler +k3let +k3li +k3lo +k1m +kn2 +k2no +1know +ko5a +kol4 +ko5mi +ko5pe +k1p +k5ro4 +k3ru +4k1s +k3sl +ks2mi +ks4t +k1t +kur5 +k5v +k1w +3kyl +l2a +4la. +5laa +lab5ar +label4 +5labr +l4ac +la2ca +la5ceo +la5cer +la4ch +la2co +5la5col +lac5on +la3cu +la4de +l5adm +l4ae +l4af +la3ger +la4gis +lag3r +5lah4 +la4ic. +l4al +4lale +5lamandr +la5melli +lam4ie +lam1o +l5amu +lan3at +lan2d +3land. +land3i +3lands +lan4er +lan3et +lan5tine +lan4tr +la4p +lapi4 +lar5an +lar5de +4lared +l4as +lat5al +la4te +5latilis +5latiliz +5latini +lat5us +l4au +5laur +lav5at +l4aw +4laz +l3b +lbe4 +l4bit +l4by +l1c2 +l2cat +lce4 +lcen4 +l4cere +lch4e +l3dar +l3ded +l3deh +l5dera +ld3est +l5dew +ldi2 +l3die +ld4ine +l5di5nes +ld3ish +ld5li +l3do +4le. +3leagu +le5atio +leav5er +l3eb5ra +le3ca +le5cha +lect5ica +2led +le5dr +leg1a +l3egan +3legg +le4gin +leg3o +le3gra +lek4 +4leled +lel5o +lelu5 +lem5enc +lem3is +l5emiz +5lemm +l3emn +le2mo +lem5on +l5enda +len5dar +lend4e +len4do +le1ne +le5nie +len3o +4lentio +len5u +le3on +leo4s +le5q +2ler +le5rec +5l4eria +l4eric +le5rig +ler3om +leros4 +ler3ot +4les. +le3sco +3les4s +1let +le5tra +le5tre +5le5tu5 +leur5 +2lev +l3eva +5leve +lev5ita +le4wi +l5exa +1ley +lf5id +l2fo +lf3on +l1g2 +l4gal +l4gem +lgi4a +l4gid +l4goi +l3h +4li. +li4ani +lias4 +lib1r +l1ic. +5lich +li4cie +5licio +l3ic3on +lict4o +li4cu +l3ida +l4idar +5lidif +3lieu +l4ife +l4ifo +lift5er +1lig +li5ger +light5i +5lih +3lik +1l4il +lil4i +lim2b +limet4e +lim4p +l4ina. +l4inas +lin4d +l4ine +5lin3ea +lin4er. +lin4ers +lin4ger +ling3i +5lingt +3lingu +3linq +lint5i +3liog +li4ol +lio3m +liot4 +li3ou +5liph +lipt5 +li1q +3lir +l1is +l4isk +5lisse +l1it +l2it. +l3it5a +5liter +3lith +5litia +3litr +lit4u +l4iv +l5ivat +liv3er +liv5id +lkal5o +lk5at +lk3er. +lk3ers +ll2 +l1la +lla4ba +llact4 +l5las +l4law +l5leb +l1lec +l1leg +l3lei +l1lel +lle5m +l1len +l3lep +l3leu +l3lev +ll3f +l1li +lli5am +lli4an +llib4e +llic4 +l4licl +lli5co +l5lie +lligat4 +l2lin +l5lin. +l3lina +l3line +l5lio +lli5v +ll3m +l1lo +lloc3a +lloc5u +llo2q +l4lov +llow5er +ll3p +ll3s +ll5t +l1lu +llun4 +l5lya +l3lyc +l3lyg +l3lyh +l3lyi +l5lym +lm2 +l1ma +l1me +l4mer +lm3ing +l5mip +l2m3od +l1n4 +l3ne +lneo4 +2lo. +5load +5lob3a +1loc +loc3al +loc5ul +lo4cus. +2locy +l3odis +3lo3dr +1log +lo5gan +4loi. +lo5mi +lom4m +lon4al +lon4e +l5onel +lo5ney +long5in +3lonia +loni4e +l3onis +l3oniz +loom5er +lop4e +5lo5pen +l3opm +1lo1q +l4ored +lor5iat +lor4ife +lo5rof +loros4 +l4os. +lo1so +loss4 +los5sie +lot5at +loth4ie +lo5tu +5loup +lp1at +lp3er +lph2 +l5phe +l3phin +l2pho +l3pie +l3pit +lr4 +l3ri +l3ro +l5ru +4ls +l5sam +ls5an +lsi4fia +lsi4m +ls4is +l5sk +ls4p +l1s2t +ltan3e +l4tang +lt5ant +l5tar +l1te +l4tei +ltern3 +lth3i +lti4ci +ltim4a +ltin4 +lti3t +l3t4iv +lt4or +l1tr +ltramont5 +l1tu +l4tus +4lu. +lu1a +luch4 +lu2c5o +luc5ra +lu4cu +4lue +lu1en +lu5er +lu1i +lu4it +lum4bri +lu4mo +5lump +lu2m5u +lunch5eo +5lune +l3unta +lu3ori +5lup +3lur3o +lusk5 +luss4 +lut5an +4lut5ar +5lutioniz +lu5toc +lut5r +lu1v +lv5ate +l5vet4 +l4vi +l4vor +l3w +lx4 +2ly +4ly. +ly1c +ly4ca +lyc4l +lyc5os +lym2 +lymph5 +lyp2 +ly4pa +lypt5o +3lyr +lys5er +3lyw +3lyz +lz4 +4ma. +m4aca +mac3ad +ma5chine +5machy +ma4cis +mact4 +4mad. +4mada +4mads +ma4ge +5magn +2mago4 +2mah +ma5ho +3ma4i +4mai. +maid3 +5mak +mal3ap +mal5ari +5male2 +mal5ed +mal3ef +m3alg +m3alis +mal4is. +mal3le +mal4li +2mam +mament4 +m5ament. +1man +3m4an. +man3a +man5dar +man3dr +manic4 +man4ica +ma5nil +m4ans +mantel5 +2map +m3aph +1mar +5maran +mar5ol +ma5ron +ma3roo +mar5ri +mar4shi +mar3v +ma3son +massi4 +mass5ing +3mas1t +mas4ted +mast4ic +mas4tin +m4at. +m4aten +ma3ter +mater5n4 +m4atit +mat4iti +m4atiza +ma3tog +mat5om +ma3top +m4ats +3m4att +ma5ture +mav4 +2m1b +mbat4t +mb4d +m5bec +m5berer +m4bery +m4bes +mb2i +m2bic +m5bil5 +m4b3ing +m4bis +mb5ist +mbival5 +m5bler +m3bli +mbru4 +mbu3l +mbur4 +m1c +m5d +m2e +2me. +mea5g +me5and +me4ba +me4bi +2med +4med. +3media +med5icat +4medie +m5ed5ies +3medit +me4do +m5edy +me2g +5meg2a1 +mega5t +4mele +mel5ee +mel5ler +mel3on +mel4t +melt5er +me2m +4m5eme +1men +3men. +2mena +men4ag +mend5er +mend5o +me1ne +ment5or +5ments +5meog +me4p +m5eran +4mere +mer4ia +2me2s +mes5en +me5si4a +mes5q +3mesti4 +1me2t +meta3t +met1e +4meted +meth4i +meti4c +met5ici +met3o +met3ri +m1f +4m3h +4mi. +m1ic +mi4cin +mi3co +3micro +m4ict +mi3cul +mi4cus +m4idi +mid4in +mid5on +mi5fi +mig5a +migh5ti +mi2gr +4mij +mi5ka +m2il +m3ila +mil4ad +4m5ilie +mil5ies +3mill +mi5lo +mil4t +3m2im +mim5i +5min4d +mind5er +min4er. +min4ers +ming5li +min5ie +m4init +min3ol +1m4int +minth5o +mi3o +mi3p +mirab4 +mi5racu +m2is. +m4isc +mi4se +4misem +mis3ha +5missi +m3ist. +mis4tin +m3ists +mi2t +m5itan +4mity +3miu +5mix +4m1l +mlo5cuti +mlun4 +2m1m2 +mman4d +mmand5er +m3medi +mmel5li +mmet4e +mmig3 +mmin3u +mmis3 +mmob3 +m5moc +mmor3 +mmut3a +4m1n2 +mnif4 +m4nin +mni5o +mnis4 +mno5l +1mo +4mo. +2moc +mod1 +mod5ifie +mogast4 +mo4go +mog5ri +m5oir +mok4i +mol3a +4molog. +4mologs +4mologu +mo3ly +mo1m +mo4mis +m4on +mona4 +4moned +mon1g +mo4no +monolo4 +monolog5i +m4op +mophil5i +mop4t +m3orab +m3orat4 +mor4ato +m5ord +mo5rel +3moria +m5oriz +mor5on +3morp +3morse +mor5tal +mo3sp +5most +mo3sta +2m1ous +m1p +m3pa +m4panc +m4pant +mpath3 +mpel5li +m5perer +mper3i +mpet5it +mphal5o +m4phe +m4phl +m2pi +mp5id +m5pig +mp3ily +mp1in +m3pir +mp3is +m3po +mpol5it +mpo2t +mpov5 +mp3to +mp5tr +m3pu +m5q +m3r +m4ry +4m1s +msel5f +m5si +msol4 +mtu4 +muck4e +muff4 +mul1t2 +m5unc +mu5nio +mun3is +mus5co +mu4se +mus5ke +mu3til +m1v +m3w +2my +5my3c +my4d +my3e +3myi +5myst4 +3myt +n1a +2na. +na2c +nach4 +na5cious. +na5ciousl +nac4te +nac5tiva +na5culari +na4d4a +nadi4 +nad4op +n2ae. +naffil4 +nag4a +n4agen +5na5geri +na4gi +n5ago +5n4a3gr +5nah +5nail +na5iv +nak2 +4naled +n5alg +n4alia +na3ly +1nam +3name +nam4n +na5nas +nannot4 +nan4ta +nan5ted +nan4to +na5o +4n4ard +nar5tisti +n2as +nas5i +nas5p +nas3s +nas5te +nat5al +na5tat +n4atee +na3the +nath4l +nati4 +n4ati. +nat5ic +n4ato. +na3tom +na4tos +nat4r +na5turi +naugh5ti +naus3 +3naut +naut3i +na2v +na5vel +n3b4 +nbarric5 +nbeau4 +nbe4n +nbene4 +nbet4 +nbit4 +n1c2a +n4cal. +ncarn5at +ncel4i +ncent5ri +n4cept. +n3cer +ncer4e +n4ces. +n5cet +n5cey +n3cha +nch4ie +n3cho +nch5olo +n3chu +n4cic +ncid5en +n4cif +ncip5ie +n1c2l +n4cles +ncoc4 +nco5pat +n1cr +nc1t +nc4tin +nct4ivi +nct2o +n1cu +ncu4lo +n4cun +n4curvi +ncus4t +4nd +n2da +n3da4c +n3dal +n4dale +n3dam +nd3anc +nde2 +n3dea +nde3ci +n1ded +nde4l +ndeleg4 +nd3enc +ndepre4 +n3derl +nde4s +ndes5cr +n5dez +nd4hi +n1dic +ndic5u +ndid5a +n3die +nd5ily +nd4ine +nd3ise +nd5is4i +nd5ism. +nd5ity +nd3ler +nd1li +n5doc +ndor4 +n2dou +nd5our +ndrag5 +ndram4 +n5dron +ndu4b +nduct5iv +n4dun +nd2we +n3dyi +2ne. +ne3alo +n3ear +ne2b3u +5neck +ne4cl +ne2co +n5ectom +2ned +3nedi +ne4du4 +neg3a +ne3go +5negu +neis4 +2nele +ne5lia +neli4g +n4ely +ne2mo +4n1en +n3end +neo3l +neon4 +ne2p +n1er +4nered +5nering +ner5o +ner4r5 +ner2v +nerv5in +2nes. +n1esc +ne3sia +1ness +n1est +nes3tr +net3a +net3ic +ne4tog +net1r +neuma5to +neut5r +nev5er +n4ew +news3 +n4eys. +n3f +nfo4 +nform5er +nfortu5 +nfran3 +4ng +ng2a +n4gae +n5gee +n3geri +n5gero +ngh4 +n2gi +n5gic +ngio4g +n5glem +n3glie +n5glio +ng1n +n1go +n4gry +n1gu +n2gum +n1h2 +nhab3 +nho4 +nhy2 +nhyd5 +n1i +4ni. +3niac +ni3ba +n4icab +ni4cen +4nicl +nict5a +ni4cul4 +ni4dio +n2ie +ni4ers +nif4f +nift4 +nif5ti +ni2g +night5i +n3igm +3nign +nik5e +n2il +nil4a +n3im1 +n4ime +5nimet +n4ines +nin4j +5ninn +n4inu +5niol +ni1ou +3nipu +5niq +n4is. +n4isk +nis4l +nis4o +n5iss +nis5ter. +nis5ters +nitch4 +ni4te +ni3tho +n4itos +ni5tra +nit5res +ni3tri +nit4ur +n2iv +niv4a +ni3vo +nivoc4 +niz5en +n1j +njam2 +njur5i +4n2k +nk5ar +n5kero +n3key +nk5if +nk5il +4n1l2 +nland5 +n3le +nlet4 +n3m +nmater4 +nmor5ti +n1n4 +nne4 +nnel5li +nnerv5a +n3ni +nni3ki +nnov3 +n5nyi +4no. +n5obi +no5bil +nob4l +no5blem +nobser4 +n5ocula +no4di +n4ody +noe4c +no4fa +nois5i +n5ol. +no3la +nol4i +nom3al +1nomi +no2mo +4none +3nonic +5nood +nop5i +nora4t +nor5di +nor4ia +nor4is +nor3ma +n4oro +nor4t +n4os. +nos4o +no3sp +not1a +3note +n1ou +n4oug +3noun +2nous +nou5v +nova4l +nove2 +nov3el +novel5e +n4ow +now5er +now3l +n3p4 +npil4 +npla4 +npoin4 +npo5la +npos4 +npri4 +n1q +n4quef +n1r +nre4i +nre3m +nres5tr +4n1s +ns2c +n2sco +ns3cot +n4scu +n5sec +nsec4te +n2ses +n5seu +n3sh2 +n2si +ns3ib +n4sic +n5sick +n3sid +n3sie +ns5ifi +ns3ing +n3sio +n3s2is +nsi2t +ns3iv +nsolu4 +n5son +n4sore +n4sory +n3spir +n3s2t +nsta4 +nstil4 +n3su +nsur4e +n3swa +ntab4u +nt3age +nt1al +n4t3anc +nt5and +ntan5eo +n4t3ant +nt4ariu +n5tasis +nt3ast +nt1at +nt5ath +nt3ati +nt5ativ +n5tau +n1te +n4tec +n4tee. +n4tees +n3tel +ntend5en +n4teo +n4ter. +n3teri +n5tern +ntern5al +nter5nat +nth2 +n1the +nther5 +nth5ine +nt2i +nt4ib +n4tic. +n5ticis +n5ticiz +n4tics +ntic4u4 +n3tid4 +n1tie +n4tify. +n3tig +nt5ilati +n5till +nt3ing +nt5ing. +nti3p +n4tipar +n4tis. +nt3ism +nt3ist +n5titio +nt3iz +n2tj +n1t2o +n3tom +ntoni4 +n5top +n1tr +ntra3d +nt3ral +n4trant +n3trat +nt5ress +nt3ril +ntrol5ler +n5trym +n1tu +n3tua +ntub5 +ntup5li +n5tur +n2ty +n2u +nu1a +5nuc +3nud +nud5i +nu3en +nug4a +nu3i +nu4is +5nuk +n4ulo +n3ult +nultim5 +nu1me +5numenta +5numer +5numi +3nunc +nu3tat +n5utiv +nu4to +nu1tr +n3v2 +nve2 +nvel3 +nven4e +nven5o +nvers5an +nvi4t +nvoc5at +n5w +nwin4 +nwom4 +n2x4 +2ny2 +5nyc +nym5it +nyth4 +n1z2 +nzy4 +2oa2 +o5ace +o3act +oad5er +oad5i +o3ag +oak5er +o3ales +oal4i +oal5in +o5alit +oan4t +oap5i +oar5er +oar4se +oast5er +oat5a +oat5ee +oat5er +4oba +obe4l +ob2i +ob3ing +2obi3o +ob3it +o3bla +ob1li +4obo +ob3oc +o5bol +o5bot +o3bra +obrom4 +ob5t +ob3ul +o3bus +2oc +oc2a +o4cab +o3cad +oc5ag +o5calli +o4c5ativ +oc5ato +4o3ce2 +o4cea +ocen5o +ocess4i +och4e +och5in +o3chon +ochro4n +o5chu +oci3ab +oci4al +o1cl +o2cle +o1cr +ocre3 +oct2 +oc2te +oc1to +ocu4lu +ocum4 +oc5uo +ocuss4 +ocus5si +ocut5r +o1cy +o5cyt +ocyt5o +od3al. +ode4c +o5deg +ode4ga +o5dend +o3dent +odes4 +od3ica +o4d1ie +od3iga +od4il +od1is2 +odis5ia +od5it +5odiz +od3li +o2do +od5olo +od5ous +o3dro +od5ru +o2du +odu5cer +o4duct. +o4ducts +od3ul +o5dyt +oe3a +oe4bi +oe5cu +oe4d +o5ee +oe5ic +o3elec +oelli4 +oelo4 +oe3o4p +oep5 +o5eq +o3er +oes3t +o1et +o4et. +oet3i +oet4r +3oeu +o3ev +o3ex +oflu4 +4ofo +o4ful +ofun4 +2o1g +o2ga +o3gam +og5ar5 +o3gas +ogen1 +o5gey +o3gi +o4gio +og2na +ogoni4 +o4got +o2gri +o4gro +og4sh +o2gu +o5gyr +o1h2 +o3ha +ohab3 +o3he +oher4er +o3ho4 +ohy4 +2oi +oi4c +o3ic. +oi5ch +o2i4d +4oide +oig4 +oi5ki5 +oil3er +oil5i +oin3de +o3ing +oin4t5er +oin4tr +oi4o +4ois +o3ism +oi4t +oit4al +oith4 +o1j +ok4ine +ok3l +ok5u +ola4c +o4lack +o5lali +ol4an +olan5d +ol5ast +olat5er +ol5ch +ole2c4 +ol5eci +ol5efi +o3leo +ole4on +o3lep +ol1er +o3lest +o3leu +o1lia +ol3ica +o3lice +ol5iciz +ol5ick +ol3ics +ol5id. +oli2e +o3lier +ol5ies. +o5lif +oli4f3e +oli5go +o5lina +ol3ing +oli5os +ol5ip4 +olis4 +ol2it +olle2 +ollim3 +ol4lope +ol4lyi +ol3mi +o1lo +4oloc +ol3oid +o4lona +olon5el +ol1or +o3los +ol1ou +4ol1ub +o3lumi +o5lunte +ol3us. +oly3ph +4olyt +2om +o1ma +o4mab +o2mac +o2mal +o4mane +omast4 +o3mat +om4be +ome4d +ome4g +omeg5a +ome3li +om3ena +omen4t +o3meri +om1i +o3mia +omi2c +omic5r +om4ie. +omil4 +om4iny +omiss4 +om2it +omme4 +om2na +omni3 +o4moi +omoli3 +o2mo4n +om5ony +o4mos. +omot5iv +o2mou +om5pil +ompt5er +ona4d +on3ai +o5nas. +onast5i +on5ativ +4onau +on1c +oncat3 +on4cho +5ond5ar +ond5ent +on3der +on3dr +on5dy +o2ne +4onea +onec4r +4oned +on1ee +on5ell +o3neo +on3ess +on1et +ong3at +on4gu +4onh +4o1nia +on5iar +2oni4c +onic5a +onical4 +on4id +on3ies +on3if +o5nig +o1nio +onk4s +4onnes +on5odi +on5oi +ono4mi +4o5nomic +ono3s +o5nota +ons2 +2ont +ont5ane. +on4ter +onti5fi +onton5 +ont4r +on4tre +on5ur +o5nus +onvo5lu +on2z +2oo +oof3er +oo1i +ook3er +ook3i +oo4le +ool5ie +oo4m +oon3i +oo2p +oop4ie +o3opt +oo4se +oost5er +oo2t +oot3er +ooz5er +o1pa +o4pab +o5pali +opa5ra +opath5 +o5pec +opens4 +op1er +3opera +4operag +o1pha +o4phe +oph4ie +o5phil +op5hol +o1phy +ophy5la +op1i +op3ies +op5ing +o3p2it +4opl +oplast4 +o4poi +opol3i +opon4 +op5ony +op5ori +opoun4 +o2p5ov +op2pl +op5pli +oprac4 +op3ran +opre4 +opro4l +op5rop +op5so +1op1t +op2ta +op1u +o5quial +or1a +or5ado +ora4g +o5rai +or5al +4orals +oram4 +oran3e +orator5 +orb3in +or4ch +orch3i +or4du +2ore +or5ead +ore5ar +ore5ca +ore3f +ore3g +or3ei +oreo5l +or3esc +ore3sh +or3ess +orest5at +or5este +or5ett +ore4v +5orex +or4fr +or5gn +or1i +4ori. +or3ia. +4orian +ori4ci +ori5cid +orien4 +or3if +5orig +ori5ga +ori4no +4orio. +or5ion +4orios +ork5a +2orm +orm1i +or3n4a +5ornis +or3nit +or3one +o5roo +or5ose +or5oso +or1ou +orrel3 +orres3 +or4sc +or4sey +or4sti +2ort +ort3an +ort3at +ort3er +or5tes. +or3thi +or4thr +or4tit +ort3iz +or4tor +or5tra +ort3re +4or1u +or4un +ory5p +osa5i +os3al +osar5 +o1sc +os4ca +os4ce +o2sch +o4sci +osclero5s +o3sec +osec3u +ose5g +os5enc +osens4 +os5eo +oser4 +o2set +os5eu +o3sia +osi4al +osi4an +os5ide +o3sier +os5if +os1in +o4sis +o5ske +o5son +o3soph +os3opo +4osp +o3spec +os1pi +os4sa +oss5ar +os4sit +4osta +ost5age +os4tar +os5tee +os5ten +osten5t +ost5ica +os3til +o5stome +ost3or +4osu +os1ur +2ot +ot3a4g +o5talit +ot3am +ot4anic +o3tap +ot4atio +o5ta5v +o3tax +o4ted +oter4m +ot5esta +4oth +othalam5 +oth5erin +o5therm +otherm5a +o5thor +o5tia +o5till +5ot5iniz +ot4iv +o3tiva +o5tivi +o1t2o +o5tone +o4torn +o4tou +4o1tr +oturi4 +oty3le +o4u2 +5ou3a +oub2 +ou5br +ou5ca +ou5co +oud5i +4oue +ou3et +oug4 +ou5ga +ought5i +ou5gi +oul4t +oult5i +ou3m +2oun +oun2d +ound5a +ound5el +oun5gin +oun3tr +oup5li +our3er +ou5san +2ouse +5ousia +ouss4 +out5ish +ouv5a +ova3le +o5var +4ovati +ov5eling +o4ver. +over3b +over3s +ov4ete +ovid5en +o1vis +ovis5o +o2v5os +ow3ag +ow3an +o5way +owd4i +owd3l +ow1el +owel5li +ow5ha +owhith4 +ow1i +ow5in +owi5ne +ows4 +ow5sh +ow5sl +ow5y +o4x +ox3i +oxic5ol +ox5o +2oy +oy5a +oys4 +2oz +o1zo +ozo5i +o3zyg +4pa. +pac4te +pa5dou +pad4r +paes4 +pa3gan +4pagat +pag4ati +pain2 +4pairm +pa5lan +pal3in +pa3lo +p4als +pan5ac +pan1e +pan3i +pa4pa +pa3pe +pap3u +pa3py +1par +para5s +par3l +pa3roc +pa3rol +par5on +1p4as +pass5ive +pas1t +pas4tin +pa3ter +pati4n +p5ato +pat4ric +pa5tricia +5pau +paul5e +pau3p +pa5vil +5paw +pawk4 +paw5ki +2p1b +p1c4 +p5d2 +2pe. +pearl5i +pe4co +pec4tu +2ped +5ped3a +3pede +3pedi +ped3is +3peds +pe2du +p4ee +pe2f +4pele +pe5leo +pel5v +pen4at +5p4enc +pend5er +pen5dr +pen4ic +3p4enn +pens5ati +pen5u +pe5on +5perc +percent5 +4pere +perem5i +p4eri +5p4er3n +p3eron +per4os. +per5tin +pert5is +per3v +p4ery +2pes +pes4s3 +pes5til +3pet +pet5all +pet3en +pe2ti +pet3r +pe4wa +4pex +p1f +p5g +2ph. +4phae +pha5ged +ph5al. +ph2an +phant5i +phe4 +ph5esi +ph3et +3phib +4phic +1phil +phi4n +ph1is +phi5th +ph2l +1pho +4phobl +4phoned +3phor +ph5oriz +phos3p +ph3ou +3phra +4phs +1phu +phu5i +2phy. +3phyl +4pi. +3piar +4pica +p5ical +pi3co +pi4cr +pict4 +p2ie +p4iest +pi5eti +p5ifie +pig3n +p2il +3pile +pill5in +5pilo +pi3lot +pim2 +pin4e +pin5et +3pinge +p4inn +5p4ins +3pi1o +pip4a +pi4pe +5piq +pir5ac +pir4t +p4is. +p4isc +pis2s +piss5a +pis5til +pis4tr +p2itu +2p3k2 +p2l2 +1pla +pla5no +plant5er +plas5tici +pla5t4o +4ple. +4pled. +3pleg +3plen +2ples +4plism +4plist +plu2m +plum4be +plumb5er +p4ly +2p1m +2pn +pnos4 +1po +4po. +po3ca +3pod +4pof +2p5oid +pois5i +po5lemic +po4ly1 +poly3s +poman5 +pom4e +p4o2n +pon4ac +pon4ce +pon4i4e +3ponif +pon5ta +2pony +po4pa +po5ple +4porato +por3ea +4pored +pori4f +por3p +3port +por5tie +3p4os +pos1s2 +po1te +poult5e +pound5er +pout5er +p5oxi +5poy +4p1p2 +ppar3 +pparat5 +p4pene +ppet3 +pph4 +ppi4c +p4pled +p5pler +p5plet +ppress5o +pprob5a +1pr2 +prac1 +pra5d +prar4 +4pre. +preb3 +pre1d +pref5ere +prel5ate +3prem +pre5mat +pren3 +pres3a +pre5scin +p3rese +5pressi +5prici +pri4es +4pri4m +pring5er +pring5i +4prio +p5riol +pri4os +pris5in +priv2 +4priva +4pro. +pro3bo +p3roc3a +pro4ch +pro1l +pron4a +proph5e +propyl5 +pro3r2 +pros4i +pros5tr +pro3th +4pry +2ps2 +p3sac +psal5t +p3sh +p1si +p5sin. +pso3m +p1st +psul3i +3psyc +2pt2 +pt3ab +p4tad +p4tan +p2tar +pt5arc +p1ted +p5tena +pt5enn +5ptery +p5tet +pt4ic +p5tie +p3til +p2t3in +pt4ine +p3tise +p5tisi +p5tom +p4tr +p1tu +pub1 +pu5be +puc4 +puch4 +pudi4c +pu5er +puff5er +pu4lar +pu5lar. +pu5lis +p4u4m +pum4o +p4un +pun4a +3punc +pun5gi +pun3i +pun2t +pu3pi +pur5b +pur3c +p4us +push4ie +pu3tat +p5u5tis +pu3tr +4p1w +2p4y +py3e +3pyg +3pyl +pyr3e +py5t +4qf +qu4 +5quak +4quar +qua5tio +2que. +3quera +4quere +4ques. +1quet +5quina +5quir +3quito +4quitu +4ra. +ra3ba +5rabe +3ra3bin +r2abo +ra3bol +rac4a +r2acu +rac5ula +ra5culo +r2ad +ra4de +rad4ine +rag5ou +ra3gr +3raill +ra5ist +4ralia +ra3ly +r5amn +ra3mu +r4andi +ran5dish +ran4du +ra5nee +ran4gen +ra3nia +ra3noi +ran2t +ran5ted +5rantel +rant5in +rant5o +rapol5 +rap5to +4rarc +rare2 +rar3ef +rar5ia. +ras2 +ras3c +r2ase +r4ask +ra3so +rass5a +rass5in +r4as5te +ra5tap +ra5tat +rat5eu +rath4e +rat3if +rat4in. +ra5toc +5ra5tol +4r4atom +ra4tos +ra5tui +rat5um +rat3ur +rav5ai +rav5eli +rav3it +rawn4 +ra3zie +r1b +r2ba +r4bag +rb3ali +rb1an +rbar3 +r2be +rbe5c +r3bel +rbel5o +rb3ent +r4bes +rb2i +rbic4 +rbic5u +r2bin +r5bine +rbit1 +r2bos +r4bum +rbu5t4 +r1c2 +rcant5 +rca4s +r4cele +rcen5er +rcen5tena +r2ces +rcha3i +rch3al +rch5ard +rch5ate +r3cheo +r4cher +rch4ier +r4chin +rch3is +r3chit +rcil4 +rci5nog +rcis2 +rciz4i +r2cl +r4cle +r5clo +rcolo4 +rcrit5 +rcriti4 +rct4 +rc5ti +r5dam +r4d1an4 +rd4an. +r2dar +r5de4l +r3dens +r4des +rd5ess +rd5ian +r4die +r5dig +rd2in +rd3ing +rdi3o +rd1is2 +rd5ler +rd3li +r4dol +rd5ous +r2e +4re. +rea4 +r4ea. +react5iv +re3af +re3ag +re5alt +re5amb +re3ani +re5ant +re5asc +reas3o +r5eau +3reav +r5ebrate +reb5uc +re3cal +rec4ce +re3ce +reced5en +re3cha +reci5si +r4e1c2r +rec4t3r +re3cu +2r4ed +re1de +re3dis +re4dol +re1dr +reed5i +ree3m +3reer +re2fe +re3fin +re5gali +re5gra +re3gre +reg3ri +re3gro +reg3ul +rei4 +re3if +re1in +re3is +reit3 +reit4i +re1la +re1le +4reled +re3lia +rel3ic +re5lig +reli4q +rel3li +r5em. +rem5ac +reman4d +rem5ato +r3emp +rem5ul +rena4 +ren5at +r4endi +rene2 +ren4es +r4eni +renic5 +ren4it +ren4ter +re5num +re3oc +3reog +re5ola +re3oli +3reos +re1pe +re4per +re5ph +rep5id +re3pin +re3ple +re4pre +re1q +rer4a +rere4 +re5rea +re3r2u +2res. +re3scr +re3sel +re3sem +re3ser +res5ist +re5sit +re3spe +r3esq +re5stal +rest5er +re5stu +3retar +re3ten +re4t4er3 +re5term +re1t2o +re5ton +re3tra +re3tre +re5tri +re3tu +re3un +reur4 +re1v +rev3el +revi4t +r1f +rf4l +rfu4m +r1g2 +r4gag +rgal4 +r2ge +r5gee +r4gene +r3geo +r3ger +rg5li +rgu5f +rh2 +r5hel4 +rhe5ol +rhos4 +3r2hy +4ri. +ri3am +ri5ap +2r2ib +ri3bo +rica5tu +2rice +rich5om +rick4en +r4icl +ri5cli +ri3col +ri5cor +ri4cra +2ricu +rid4al +rid4e +ri5el +ri3er +ri2es +rift5er +rif5tie +5rifuga +ri5gam +rig5ant +ri5l4a +r4ile +rill5er. +rill5ings +4rim. +ri2ma +rima4g +rim5an4 +rim3at +r4imb +rimen4 +4rimm +4rims +rin4e +r4inet +ring5ie +rink5er +r4ino +rin4s +rins5i +rin4t5er +ri3o +rio4g +5rione +ri4op +ri5or +ri5p2a +ri5pie +rip5lica +ri5r +ris4c +ris4is +r2isp +ris4pa +ris4pe +ris5ter +4risti +ri3ton +r5it5r +r2i4v +riv4al +ri5vall +riv5eli +riv3en +riv3il +5ri5zo +r1j +r2k +r5kas +rk5ati +r5kell +rk5eni +rk1er +r3ket +r3key +r3kier +r5kiest +r5kin. +r5kins +rks4me +r1la +rlat3 +r1le +r3l4ic +r3line +r5lins +r4lit +r1lo +r3mac +rma5ce +r5mad +r2mal +r4manc +r4mano +r4mari +r4mary +rm4as +r4m3ati +rma5toc +r5ma5tol +rme2a +r2mic +rm4ica +r5m2id +rm4ie +r5mig +rmil5 +rmin4e +rm3ing +r4ming. +r4mite. +r3moc +rmol4 +r1mu +rmu3li +r2n2 +rn3ab +r3nac +r5nad +rn5ar +rn3ate +rn5atin +rn5edl +r3nel +r3ness +rn5est +r3net +r3ney +r5nia +rn5ib +r3nic +rn3in +rn4ine +r1nis +rn3ist +rni5v +rn3iz +rn5n +r3noc +r5nog +rnt4 +rnuc4 +r5nut +4ro. +ro4be +rob3le +ro5br +5rocc +ro3cu +r2od +ro3do +rody4n +ro1fe +ro3gn +4roi +ro3ic +roid3 +ro3la +r4oled +rol5ite +ro3ly +romant4 +ro5mel +ro3mit +romolec5 +rom4p +ro3mu +ron4ac +4ronal +ro5nate +ron5ch +ron4do +rong5i +r5onme +ro1no +ron4ton +roo4 +1room +5root +r2op +4rop. +ro3pel +rop4ine +r4opr +r5opte +ror5d +4rore +r4osa +rosi4a +ro5sol +4ross +ro5stat +ros4ti +ros5tit +ro3tat +ro1te +ro4ter +ro3tu +5roue +roul3 +round5er +rou5sel +4rouss +r4out +r4ow +row3er +4rox +rpass5in +rp3at +rpe2 +r3pent +rp5er. +r2ph +rph5e +r3phol +rp3ing +rp5is +rpol3a +r2p5ou +rpre4 +rpret5er +r3pu +r1q +4r1r4 +rra4h +rran5gi +rrap4 +rre2l +r4reo4 +rrhe3 +r3ri +rric4 +rricu4 +rri4fy. +rrin5ge +rri4os +rrob3 +rrog5 +rro4t +r5ru +rry5 +r3ryi +r3rym +2r1s2 +r4sag +r2sal +r5salis +r5saliz +r2san +r4sar +r2se +r3sea +r3sec +rsel4 +rsell5 +rs3er. +rs3ers +r3set +r3sha +r3shi +r4shie +r5si2a +rs3ib +r5sie +r4sil +rs3ing +r3sio +r4sit +rs3iv +rs5li +rstor4 +rstrat4 +r3su +r4sus +rswear4 +rt2 +rt3ab +rta4g +rt3age +r3tar +r4tare +rt3c +r1ted +r4tedl +r3tel4 +r5tend +rt3eni +r5terer +r5tet +r5teu +r4thene +rth2i +rth5ing. +rth3ri +r1t4ic +r4ticl +r5tiet +r5tila +r5till +rtil5le +rt5ily +r2tin +r3tina +rt3ing +r3titi +rti5tu +rt3iv +r2tiz +rt5let +rt3li +r1t4o +rto5l +rt5rid +rt5si +r1tu +r4tus +rtwis4 +ru3a +r4ube +rub3r +ru4ce +r2ud +rue4l +r4uf +ru3in +ruis5i +ru2l +r4ume +r4umi +ru4more +run4cl +runcu4 +runcul5 +run2d4 +run2e +ru5net +run4g +run4t +ru2p +rup5lic +ru3pu +rur4i +rus4p +rust5at +rust5ee +rus5tic +rus4t5u +ru3tal +ru3ti +r1v2 +r4vanc +r2ve +rvel4i +r3ven +rven4e +rv5er. +rv5ers. +r3vest +r3vet +r3vey +rvi4t +r1w +2r2y +ry5er +5rygm +ry4go +rym4b +3ryngo +4ryngol +ryp5a +ry2t +ryth4i +r2z +2sa. +2sab +s3abl +5sack +sac4q +s3act +sac4te +sad5i +sad5o +5sae +sa4g +3sai +sain4t +5sak +sa2l +sa5lac +3sale +sa3lie +s4al4t +sa3lu +sa4m +sa5min +sam5o +samp4 +san3a +san4ded +s4an4e +san5gar +san5if +2sant +sant5ri +s3ap +sap3r +sar5s +3sas. +sas3s +sassem4 +s2a1t +sa2te +s5ativ +s5atory +sat1u +1sau +sau5ci +saur5 +savi2 +sa3vou +4s3b +s4bei +sbe4s +sby3 +sc2 +s1ca +sca5len +sca2p +scar4c +scav3 +s1ce +s4ced +4scei +4s4ces +sch2 +scid5 +s2co +scof4 +s4coi +3s4cope +5scopic +5scripti +2s1cu +4scura. +4scuras +2s1d2 +2se. +se2a +s4eam +seas4 +sea3w +sec4a +sec5an +se2co +secon4 +2sed +se4da +sed4it +3seed +3sei +sei3g +5sela +4sele +se3lec +selen5 +5self +2s4eme +sem2i +semi5d +sem4o +sen5g +3sens +sen5sati +sen5sori +sent5ee +5sentm +seo5log +se2p +sep3a +sep4si +3sept +sep3ti +ser4an +se5rene +ser4to +4servo +s2es +4ses. +se5sh +s5esta +1set +5seum +3sev +sev3en +sewo4 +3sex +sexo2 +3sey +2s1f +sfact5o +sfi4 +sfor5e +sfran5 +2s1g4 +s2h +4shab +sh4abi +sh1er +sh5et +shil5li +sh5iness +sh3io +5ship +s3hon +4shu4 +shys4 +si4all +siast5 +4s1ib +s3icat +3sicc +2s5icl +si4cu +si5cul +s4id +4sid. +si4de +side5l +sid3en +sid5eri +4sids +5sid5u4a +si4ers +sif4 +sif5f +si4g +1sili +sim4ply +2sin +s2ine +sin5et +5sing5er +sin3i +5sink +si5nol +si3nus +1sio4 +4sio. +si5o5s +3sip +si4pr +s1is2 +4sish +4sism +sist3a +sist3o +s1it +si4te +sit5om +4s1iv +5siva +s1j +s2k2 +4sk. +s5kar +ske2 +s3ket +s5key +s3kier +s5kiest +sk5ily +sk5ines +4sks +sky3l +2sl4 +slang5i +s1lat +3slau +slav5eri +s2le +s5lea +s3let +s5ley +s3lit +slo3c +slov5 +s5luc +2s1m4 +s3man +smas4 +s3men +smi3g +3smith +smo4d +smu5tatio +s1n2 +s2na +2so. +2s3od +sod3o +sody4 +3soe +4s3oid +s2ol +sol3a +so5lan +sol4er +so3lic +3solve +solv5er +1so2m +soma5to +3some. +so5mete +so3mo +s2ona +son5at +s4one +son5or +s2o2p +4sor3ie +5sorio +sor4it +s5oriz +sor3o +s3ory +sos4 +4sose +so5th +3sou +sov5e +so3vi +spast4 +spens5a +4speo +3sperm +s5pero +spers5a +sph2 +s3pha +3spher +spic5ul +s2pid +sp5id. +s5pier +spil4l +s2pin +sp3ing +spi5ni +spital5 +s1pl +sple2 +s4ply +s2po +5spom +spon5gi +3spons +3spoon +spru5d +s4py +s1r +sre2 +sreg5 +srep5u +sre4s +4ss +s1sa +s5sam2 +s1sel +s5seng +s3sent +ssent5er +ss3er. +s5seri +ss3ers +s5seu +ssev3 +s3sia +s1sic +s1sif +ss1in +ss4in. +s4sine +ss4is. +s3s2it +ss4ivi +ss5li +ss3m +s4sn +s1so +ssol3u +ssolu4b +s4sore +ssor5ial +ss5po +s1su +ss3w +st2 +4st. +stab2 +sta3bi +4stak +s4tale +stant5iv +s3tas. +5static +st3c +ste2 +ste5ar +ste5at +s4teb +s4tec +4s1ted +s4tedl +s4tedn +4stere +ster4ia +s4tern. +s3tero +st5est +s1th +s4tha +s4thu +s3ti3a +3stick +s3ticu +stil5ler +s4tily +st3ing +5s4tir +s5tiz +4stl +st3ler +st3li +s4toe +3ston +stone3 +ston4ie +s5torat +stor5ian +s4tose +s2tou +s4tray +stre4 +strep3 +3struc +stru5d +2st3s +s1tu +s4tud +stu4m +stur4e +4stw +s4ty +1styl +4su. +su5an +su4b1 +subt2 +suct4 +sud4a +su3et +suf3f +sug3 +3sui +sui5c +su5ing +1s2ul +s4u2m +sum3i +sun4a +su5pe +su3pin +supra3 +sur4as +sur3c +s4urg +sur3pl +su5su +su5z +2s3v +svers5a +sves4 +svest5i +sw2 +5swee +swell5i +4swered +2swo +s2y +4sy. +sy4bi +sy1c +sy4ce +sy4chr +sy4d +1syl +3syn +syn5e +sy5pho +syr5i +2ta. +2tab +ta5blem +3tabli +t2abo +ta3bol +ta4bou +t4a3ce +ta5chom +ta3chy +ta4cid +t5ade +tad4i +5t2adj +ta5dor +tad2r +tae5n +taf4 +tage5o +ta5gog +3tagr +3tah +1tai +3tail +2tair +t4ais +1tak +tal2c +tal5ent +ta5lep +t4alia +t4alin +tal4l3a +5tallu +t2alo4 +ta3ly +tam5ari +5ta3met +tamorph5 +tan5at +tand5er +t4ane +5tanel +tan5ie +t5aniz +tant5an +ta4pa +1tard +tar5ia. +tark5i +tar3n +3tarr +tas3i +t3asm +5tass +tas4t +ta3sta +tast5i4c +t4ateu +3tatis +t4ato. +tat4ou +tat4r +tat3ut +tau3to +t5awa +tawn4 +t4ax +4t3b +2tc2 +t1ca +tcas4 +tch5ett +tch5u +4t1d4 +4te. +te5cha +5techn +te3cr +t4ed +te5d2a +4tedd +4tedo +4teei +te2g +5tegic +t3ego +teg1r +teg3u +tei4 +te2l +4teled +tel5iz +1tell +4te3lo +3tels +tem3a +4teme +te5mon +ten4ag +4tenar +4tene +t5enm +5tenna +4teno +te5nog +tent4a +te2o +teo5l +2tep +te3pe +tep5i +tera4c +t4erag +t4erato +3ter3b +5terd +2tere4 +ter3eb +ter5ec +5terel +te3reo +3teres4 +1teri +ter3ia +ter5id +ter5if +t4erin +ter5iorit +ter3it +ter5k +5ternit +ter5no +3terr +2t2es +4tes. +tesi4 +t3esq +t3ess. +t5esses +tes4t +test3a +5teste +test5er +test5in +test5or +tes5tu +teti4 +tet1r +tetr5o +tew3ar +3tex +2t3f +t3g +2th. +tha4 +th5al. +thal3m +4the. +4thea +th5eas +4thed +1thei +3theo +theo3l +t4her +5therap +th5erc +t5herd +4thered +th3ern +th3ery +4thi. +t5hill +3think +5th4io +th4is. +th5lo +2thm2 +th4mi +th3oli +4t5hoo +4thopt +4thores +3thot +5thoug +1th2r +2ths +5thur +5thym +3thyr +thys4 +4ti. +1ti2a +ti3ab +2t3ib +5ti5bu +t1ic +t3ic. +tic5as +t2ici +tici5ar +3ti3cin +t4icity +ti3col +tic1u +4ticule +t3id. +t4ida +3tidi +ti3die +t5ids +3ti2en +1tif2 +ti3fe +4tiff +4tific. +3tigi +tigi5o +4tigm +5tigu +ti4ka +ti4let +5tilin +t4ill +til4l5ag +t4ilt +1tim +tim1a +5timet4 +t1in +5ti5nad +4tined +tin3et +ting5ing +3tinn +4tins +t4int +tin4te +tin5ted +tint5er +tin3ue +1tio +ti3oc +tiol3a +ti5omo +4tionem +1tip +ti5plex +ti3pli +ti4q +ti5qua +t3iris +2t1is +3tisan +tis4c +tish5i +3tiss +tis2t +5t4iste +t4istr +ti5t4an +tith4e +tit5il +t3itis +3titl +ti3tra +3tiu +2t1iv +tiv5all +t3ive +tiv3is +2tl +t1la +tlant4 +5tleb +5tledr +3tlef +3tlem +5tlen +5tletr +5tlew +t1li +tlin4 +4t3m +tmet2 +tmo4t5 +2t3n2 +t4nere +2to. +toas4 +to1b +4tocc +tode5c +tod4i +to5do +3toe +1tog +2t3oid +5tok +4toled +tol4l +tolu5 +to5ly +tom3ac +toma4n +tomat5ol +tom4b +to4mog +tom5os +ton4e +ton5ea +3tonn +ton3s +top4e +to5pia +to4pos +t1or +to5rad +4tore +tor5er +tori4as +tor5oi +tor5p +tor4q +3tos. +to3s4p +tos4t +to5str +to5talis +to5taliz +to3tem +tot5u +tou4f +5tour +t3ous +4tov +to3war +t3p +tr2 +tra4co +4tradd +4traist +tra5q +trarch4 +tra5ven +tra5vers +trav5est +3tray +4tre. +4tred +tre4mo +tren4 +trend5i +tre5pr +tres4s +4trew +t5ricl +3tricu +t2rie +tri5fli +trifu5ga +2tril +tri3li +tri3me +t2rit +4trix +t4rod +tro5f +5troop +tro4pha +tro3sp +t2rot +t5roto +tro1v +3troy +t4ruc +tru3i +2t4ry +trys4 +4t1s +t2sc +ts4h +ts2i +t4sil +tstay4 +2t1t4 +tta4 +t3tab +t5tan +t5tas +t3ted +t4tere +t5terer +t5test +t3ti +tti3tu +ttitud4 +ttitu5di +t3tler +t3tli +t5toi +t5tor +t3tos +tt5s +t4tupe +t2ty +4tu. +tu1a +tu4al5li +tuari4 +tu4bin +tu5bu +tu5den +tud5ie +tu5en +4tuf +tu1i +tu4is +2tum. +3tumi +4tums +3tun +tun4a +tu4ne +tun5it +tup5let +tup5lic +tu5rac +t4uran +turb3a +tur4d +turf5i +5turit +tur4n +5tur5o +1tut +4tut4iv +t1w +t3wa4 +t2wi +twi5li +t3wit +t3wo +twon4 +4ty. +ty4a +5tych +ty4let +tyl5i +ty5mi +1typ +3type +1tyr1 +2tz2 +t5zia +t5zie +2ua2 +ua3ci +u2ag +ua5h +u1al +ua5lu +uan4o +uant5is +uant5it +uar3a +uar2d +uar3i +uari4n +uar5ters +uar4t5i +ua5tern +uba4 +ub5bly +u1b2i +u4bicu +ub3lin +ub5lo +ub3ra +4uc +u1c2a +uccen5 +u4cend +u4ch +u5chr +uc3l +u4com +uco5t +uc2tr +uc3ub +uc5ul +u5cum +u5dac +ud1al +ud4e +ud5ep +u4der +udev4 +ud4g +udi4cin +ud3ied +u5dinis +udi3o +u5ditio +u2do +u5doi +ud5on +u5dor +ueb4 +u4ed +uen4o +uen4ter +uer3a +ues4s +uest5rat +ues5tri +ue4t +uf2 +3ufa +u3fl +u4fo +uft4 +uga4c +ug5lif +ug2ni +u4go +ug3ul +ug3ura +uhem3 +2ui2 +ui3al +u2ic +uicent5 +uid5o +uil4a +uild5er +ui3lib +uil4t +uinc5u +uin4s +uint4 +uin4ta +ui5pr +uis3er +uis4t +uisti4 +uit5er +ui5val5 +ui3vo +u2iz +4ul. +u1la +u4lab +4ulac +ul5ard +u5lat +ul4bo +ul3ca +ul4ch +5ulche +5ulchre +4ulea +u5lee +u1len4 +4ulenci +u5lent +ulet4 +ul4ev +ul2fa +ul2i +ul4ia +u3line +ul3ing +ul5ish +u5liti +u5lity +4ull +ul4lat +ul4l5ib +ul4lis +ul4lit +ul3m +u1lo +u5lom +ulph3i +ulph3o +ulp5ing +ul4po +2uls +ul3sif +u1lu +ul1v4 +u1ma +um3am +umar4 +u5mas +um4bar. +um2bi +umen4t +u1mi +u4mic +u2m5if +umi4fy +umi5lia +umin4ar +u4mined +u4m3ing +u4mora +u4mos +um2p +um4pa +ump3er +ump5li +umpt4 +ump5te +u1mu +umu4lo +un1 +u4n3a4 +un5ab +unabu4 +un4ae +un4as. +un2ce +un4dal +un3ded +unde4t +undeter5m +undi4c +un4die +un3do +un4dus +u3n2er +unho5li +un2i +u1nic +un4ie +un3in +un4ine +uni5p +uni3so +un3ist +uni1v +un3iz +unk5eri +un5ket +un3kn +2unn +un4nag +un5o +un5r +un3s4 +un5sh +un2ti +until4 +unu4 +un3us +uo3de +uodent4 +u5oros +u3os +uo5tatio +u1ou +2up +u1pat +u1pe +u5pee +uper3 +u1ph +u5pid +up3ing +u4po +u5pol +u2pr +upre4 +u5quet +u4r +ur1a +4ura. +ura4ci +4urae +ura2g +4uranti +uras5 +urb5ing +ur2c +urc3a +ur5den. +ur5deni +ur5die +ur4du +ur3ea +ur5ee +ur1er +ur3ers +ur1e2t +ur3ett +ur2f +ur3fa +ur1i +u5ri5cu +ur4ie. +ur5ifie +uril4 +ur4ili +ur5ion +uri4os. +url5er +ur5lie +url5ing +ur1m4 +urn3al +urn3er +urn5s +ur1o +uro4d +ur5o4m +ur5ot +uroti4 +urpen5t +urph4 +ur2s +urs5al +urs5er +ur3sh +urs3or +ur5ta +ur1te +ur5tes +urth2 +ur3the +urti4 +ur1u +ur4va +u3sad +us3ag +us3al +us4ap +us3at +2usc +us4can +ush5a +us5ian +usil5 +u4s1in +usk5er +us1p +us4pa +uss4e +4ust +us3tac +us5tan +ust4ic +us5tici +ust5ig +ust3il +us1to4 +us1tr +us4tre +usur4e +us5uri +u3tane +utch4e +ut5eni +u5teo +u4tere +ut2i +u3tie +ut3ing +u5tini +u3tio +ut5ism +ut3ist +5u5tiz +ut3le +utli4 +ut2o +u4to5s +u4t1ra +uts2 +ut5sm +ut4tone +u3tu +u4tul +uu4 +uv2 +u4va +uve2 +uven3 +uv5eri +u5vin +ux2o +uy4a +uy5er +4va. +2v3ab +5vac +va1ca +va5ceo +vacu1 +v4ad +3vag3a +va4ge +4vaged +vager4 +vag5r +v1al. +1vale +vali2 +va5lie +val4ise +5valu +5val4v +vam4i +va5mo +5vann +vanta4 +4vantl +var4is +4vase +vas5el5 +v5a4so +vast3a +v4at. +5vatee +vat4ina +4vatu +2ve. +vect4 +ve3g +3vei +2vel +vel3at +4vele +v3eler +ve5line +v1ell +v4ella +vel5ler +vel3li +vel5opi +ven4al +ven4do +ve1ne +ve5nia +vent5o +ven4tr +4venu +v5en5ue +5ve3o +5verb +verde5v +4v4ere4 +ver5ea +ver3ei +v5erie +ver3m4 +ver4ne +5verse +4ves. +4vi. +5vialit +vi4atr +vi1b4 +vic2 +vi4ca +vi5cari +vice3r +5vict2 +5vicu +5vider +vign3 +vi4l +vil3i +3vili4a +v5ilise +v5ilize +vil5lin +vim4 +5vime +2v1in +vin4ac +3vinci +vin2e +5vinit +v5iniz +vint4 +vin5ta +3vi1o +viol3 +vi5om +5vi3p +vire4 +vi5rid +vir3u +5visecti +5visio +v3ism +2v5ist +vi2t +vit2a +vi3tal +vi5tel +v5itie +vit1r +vi3tu +v3ity +viv5al +viv5or +vi5zo +1vo +2vo. +vo2l +vo5litio +vol4ubi +volv4 +4von +vo5rac +3vorc +4vore +3voro +vo3tar +2vow +vr4 +v5ra4 +v5ri +v5ro +vrot4 +4vs +v3ure +2vv2 +v5ver +v5vi +4vy +4wab +wag3o +wais4 +w3al. +wall5er +w3als +wan5gli +wank5er +war5ded +ward5er +ward5r +war4f +war4te +war5thi +wass4 +was4t +wa1te +wav4ine +w1b4 +w4bon +w5c +w5die +w3dr +we4b +w4ed +3weed +5wei +weight5i +weir4 +wel3i +weliz4 +wel4izi +wel4li +went4 +wes4 +west3 +w5est. +w5f +wh2 +w5hid +wi2 +wid4e +wi5er +will5in +wim2p +win2e +wing5er +win4tr +3w4ise +with5eri +w3la +wl1er +wl1i +wl4ie +w1m +1wo +wol4 +wol5ver +3wom +won2t +word5i +wotch4 +woun4 +wp5in +wra4 +ws5ing +w5ster +wt4 +w5te +w3to +wy2 +wz4 +x1a +x4ach +x4ade +x2ag +x3agg +xa5met +x3ami +xan5d +xano4 +x2as +xas5p +x3c4 +xcav3 +xcor5 +xe4 +x1ec +xec3r +xe5cutio +xecut5o +xe2d +x5edl +x5edn +x5eg +x1em +x3en +xen4op +x3er +xer4g +xer3o +x1h +xhort4a +x1i +x3ia. +x4ias +xi4c +x5ige +xim3a +x4ime +ximet4 +x3io +xi4p +x4it. +x4its +x1o +x4ode +x5om +xo4mat +xo4n +x4os +xotrop4 +x3p +xpel4 +xpo5n2 +xpoun4 +x1s2 +x1t2 +x4ted +xtens5o +xter3i +xter4m3 +xtern3 +x4th +xti4 +xtra5d +xtra3v +xtre4 +xu4o +x1ur +xur4b +x5us +x5w +xx4 +xys4 +xy3t +y1a2 +y5ac +1y2ar +3yard +yas4i +4y1b +yb2i +yca5m +y5chede +ych5is +y3cho +y4chose +yc1l +yclam4 +y4coli +y4coll +ycom4 +y2cos +y1d4 +yda4 +yder4 +ydro5s +y4drou +y3ee +yel5o +y3en +y1er +y3est. +yes5te +y5ett +y5f +y1g +ygi2 +ygi5a +y3gl +ygo4i +y1h +y1i +y3in +yle2 +ylin5de +yllab5i +yl3os +yl5ou +y1me4 +y3men +y5met +y5mia +ym5in +ymot4 +ym4pha +yn1 +ynago4 +ynand5 +yn5ap4 +yn5ast +yn4ci +ynd4 +yn2e +yn3er +yng4 +yn4gol +yni4c +yn4y +y1o2 +yo3d +yo4gis +youn4 +young5 +2yp +yp5al +yper3 +y5pere +y4peri +y4pero +y4pet +y2ph +yph4e +yph3i +y4p1i +yp1n +ypo1 +y4pox +y2pr +yp5ri +yp4si +yp5syf +ypt3a +y5pu +y3rag +yr3at +yr3ic +y5rig +yr3is +yr3i4t +yr5olo +yr4r +yr4s +yr5u +4y2s +ys5ag +ys5at +y3s2c +y3sh +ys1ic +ys3in +ysi4o +yso5 +ys4so +ys1t +ys4to +y3u +yv4 +y3w +yz5er +yzy4 +z1a1 +2za. +za4bi +za2i +z4as +za4te +zd4 +zeb4 +ze4d +zen4a +z5eng +zer5a +z3et4 +z1i +zib5 +5zic4 +z2ie +zi5m +zin4c3i +z3ing +zing5i +z4is +3zlem +z3ler +z3li +4zo. +5zoa +zo3an +3zoo2 +zo3ol +zo3on +zo5op +zo5oti +zo5p +zot2 +z5s +5zum +4zy. +zz2 +z3zar +z5zas +z3zie +zzo3 +z5zot diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/finnish.lh b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/finnish.lh new file mode 100755 index 0000000000000..4fcd4b65e1bde --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/finnish.lh @@ -0,0 +1,286 @@ +Lout hyphenation information +% +% Created by Jeff Kingston 19 April 1994 from a TeX hyphenation +% patterns file with the following header comment: +% +% fhyphen.tex for TeX 3.0 (-jme) +% +% Needs to be changed when the new fonts will be generated! +% +% -----> Finnish hyphenation patterns for MLPCTeX <------ +% First release January -86 by Kauko Saarinen, +% Computing Centre, University of Jyvaskyla, Finland +% +% Completely rewritten January -88. The new patterns make +% much less mistakes with foreign and compound words. +% The article "Automatic Hyphenation of Finnish" +% by Professor Fred Karlsson is also referred +% +% ftp'ed from tukki.jyu.fi by Sverre Slotte July 4 1991 +% changed ^^84 to ä and ^^85 to ö +% --------------------------------------------------------- +% + +Classes: +@!$%^&*()_-+=~`{[}]:;'|<,.>?/0123456789 +aA +bB +cC +dD +eE +fF +gG +hH +iI +jJ +kK +lL +mM +nN +oO +pP +qQ +rR +sS +tT +uU +vV +wW +xX +yY +zZ +äÄ +öÖ + +Patterns: +1be +1bi +1bo +1bu +1by +1da +1de +1di +1do +1du +1dy +1dä +1dö +1fa +1fe +1fi +1fo +1fu +1fy +1ga +1ge +1gi +1go +1gu +1gy +1gä +1gö +1ha +1he +1hi +1ho +1hu +1hy +1hä +1hö +1ja +1je +1ji +1jo +1ju +1jy +1jä +1jö +1ka +1ke +1ki +1ko +1ku +1ky +1kä +1kö +1la +1le +1li +1lo +1lu +1ly +1lä +1lö +1ma +1me +1mi +1mo +1mu +1my +1mä +1mö +1na +1ne +1ni +1no +1nu +1ny +1nä +1nö +1pa +1pe +1pi +1po +1pu +1py +1pä +1pö +1ra +1re +1ri +1ro +1ru +1ry +1rä +1rö +1sa +1se +1si +1so +1su +1sy +1sä +1sö +1ta +1te +1ti +1to +1tu +1ty +1tä +1tö +1va +1ve +1vi +1vo +1vu +1vy +1vä +1vö +% ------- Some common words borrowed from other languages ------- +% ------- This part could be updated from time to time ------- +% +st2r 1st2re % -stressi, -strategia etc. +% +% ------ Some special cases occuring with compound words only ---- +% ------ There still remains well known problem as 'kaivos\-aukko' etc. +a1y2 +y1a2 +y1o2 +o1y2 +u1y2 +y1u2 +ö3a2 +ö3o2 +ä3a2 +ä3o2 +ä1u2 +ö1u2 +a1ä2 +a1ö2 +o1ä2 +o1ö2 +u1ä2 +u1ö2 +% lyhyt/pitka -vokaalipareja, tavallisesti sanarajalla +aa1i2 % maa-ikkuna +aa1o2 % maa-ottelu +aa1u2 % uraa-uurtava +ee1a2 % tee-astia +ee1i2 % tee-istutus +ee1u2 % varietee-uusinta +uu1e2 % puu-esine +uu1o2 % puu-osa +uu1i2 % puu-istutus +a1uu % kala-uuni +i1uu % ravi-uutiset +e1uu % virhe-uutinen +o1uu % radio-uutiset +ai1ui % maanantai-uinti +i1eu % keski-eurooppalainen +% vokaalikolmikkoja etc. yhdyssanojen rajoissa +io1a2 +io1e2 +e1ö2 +ö1e2 +.ä2 % don't hyphenate ä-lyllinen etc. +% +% The following patterns contain no general scientific rule. They +% are selected more or less intuitively to solve problems +% with common and frequently appearing compound words. +% However, every pattern resolves more than only one +% hyphenation problem. +% +yli1o2p % yli-opisto etc. +alou2s1 +keu2s1 % oikeus-oppinut etc. +tasau2s1 % tasaus-ennakko etc. +rtau2s1 +2s1ohje % -sohjelma etc. +2s1a2sia % nais-asianainen etc. +1a2sian % neuvottelu-asian etc. +1a2siat % koti-asian (ei kotia-sian) +1a2sioi % talous-asioita etc. +r2as l2as % tikku-rasia etc +2s1o2pisk % xs-opiskelija etc +2n1o2pet +2s1a2loi +2n1o2pist % kansan-opisto etc. +2s1o2pist +2s1o2sa % xxs-osakas etc. +2n1o2sa % asian-osainen etc. +alkei2s1 +peru2s1 +2s1i2dea. 2s1i2dean +2s1e2sity % xs-esitys etc +2n1e2dus % kansan-edustaja etc. +2s1ajatu % -ajatus etc. +2s1ase +2s1apu +2s1y2rit % yhteis-yritys etc. +2n1e2nerg % ydin-energia etc. +2s1y2hti +2n1otto 2n1oton +2n1anto 2n1anno +2n1a2jan 2n1aika +2n1o2mai +2n1y2lit +2s1a2len +2n1a2len +1a2siaka2s1 +ulo2s1 % ulos-ajo +2n1a2jo % kiven-ajo +2s1a2jo +% +% *** The following rules may be used on user's responsibility *** +% *** for example, may be needed with narrow columns *** +% >>>>>>>>>>> a1e a1o e1o o1a u1a <<<<<<<<<<< +% +% ----- Some districting rules by Professor Fred Karlsson's ideas ------ +% +b2l 1b2lo bib3li +b2r 1b2ri 1b2ro 1b2ru +d2r 1d2ra +f2l 1f2la +f2r 1f2ra 1f2re +g2l 1g2lo +g2r 1g2ra +k2l +1k2ra 1k2ri +1k2v 1k2va +p2l +p2r 1p2ro +c2l +q2v 1q2vi +sc2h ts2h diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/french.lh b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/french.lh new file mode 100755 index 0000000000000..442de83c7e9c9 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/french.lh @@ -0,0 +1,1377 @@ +Lout hyphenation information +% +% Created by Jeff Kingston, 19 May 1996, from a TeX +% hyphenation file. Apart from commenting out things that +% are not relevant to Lout I have made the following changes: +% +% (1) I have guessed that \c c means ccedilla, and I have changed the +% only line containing it from 1\c c to 1\cc, and informed Lout that +% \cc is the code for ccedilla. The change is because Lout does not +% expect to find spaces in the middle of hyphenation patterns. +% +% (2) I have deleted the following lines since I am unsure what to do +% about \oe (it is not an ISO-LATIN-1 character): +% +% 1c\oe0 % final zero essential to terminate cs +% .d\'e2s1\oe0 % final zero essential to terminate cs +% 1m\oe0 % final zero essential to terminate cs +% 1n\oe0 % final zero essential to terminate cs +% 1s\oe0 % final zero essential to terminate cs +% +% In other respects this file should faithfully reflect the original. + +Classes: +@!$%^&*()_-+=~`{[}]:;|<,.>?/0123456789 +' +aA +bB +cC +dD +eE +fF +gG +hH +iI +jJ +kK +lL +mM +nN +oO +pP +qQ +rR +sS +tT +uU +vV +wW +xX +yY +zZ +\`a\`A +\^a\^A +\cc +\`e\`E +\'e\'E +\^e\^E +\^\i\^I +\"\i\"I +\^o\^O +\^u\^U + +Patterns: +% f7hyph.tex % French hyphenation patterns (7-bit OT1 encoding) +% f7hyph.tex is ONLY for people having a MlTeX engine and CMR fonts. +% \message{f7hyph.tex french hyphenation patterns. 7-bit OT1 encoding +% (V2.0) 05/20/94} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% *BEFORE* using this file *PLEASE* run checksum on it: % +% checksum -v f7hyph.tex % +% to make sure that it hasn't been damaged. % +% Then if you notice anything wrong in french hyphenation please report to % +% Daniel Flipo and Bernard Gaulle at the email address: cesure-l@ens.fr % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% checksum = "20125 1319 2460 29960" +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%% The most famous good guys who worked hard to obtain something usable. +% Jacques Desarmenien, Universite de Strasbourg : +% - << how to run TeX in a French environment: hyphenation, fonts, +% typography. >> in Tugboat, 5 (1984) 91-102. and TeX85 conference +% - << La division par ordinateur des mots francais : +% application a TeX >> in TSI vol. 5 No 4, 1986 (C) AFCET- +% Gauthier-Villars +% Norman Buckle, UQAH (nb; many additions) +% Michael Ferguson, INRS-Telecommunications (mjf) June 1988 +% Justin Bur, Universite de Montreal (jbb; checked against original list) +% all patterns including apostrophe missing from nb list +% after that, GUTenberg and specially Daniel Flipo and Bernard Gaulle +% did their best effort to improve the list of patterns. +%\begingroup +% comment the following line when used without MlTeX and outside hyconfig.tex +%\accenthyphcodes\spechyphcodes % changes the \' ... etc +%\lccode`\'=`\' +%%%%%%%% +% hyphenation patterns for french ... for use with fonts that do not +% have the accented characters inside. +%%%%%%% +% Mods to \i and \oe form ... TeX eats up spaces and loses patterns. mjf Jun 88 +%\lccode'33='33 %\oe ... both needed in +%\lccode'20='20 % \i .. dotless i +%\patterns{ +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%* +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%a +2'2 +.a4 +'a4 +.\^a4 +'\^a4 + .ab3r\'ea + 'ab3r\'ea + a1\`e2dre + .ae3s4ch + 'ae3s4ch + 1alcool + a2l1algi + .amino1a2c + 'amino1a2c + .ana3s4tr + 'ana3s4tr + 1a2nesth\'esi + .anti1a2 + 'anti1a2 + .anti1e2 + 'anti1e2 + .anti1\'e2 + .anti2enne + 'anti2enne + 'anti1\'e2 + .anti1s2 + 'anti1s2 + .apo2s3ta + 'apo2s3ta + apo2s3tr + archi1\'e2pis + .as2ta + 'as2ta + a2s3tro +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%b +1ba +1b\^a + .bai2se3main % hyphen disappeared from french 5/2/94 +1be +1b\'e +1b\`e +1b\^e +4be. +4bes. +2bent. % mute syllable: tombent (df) 22/02/94 +1bi +1b\^\i0 % final zero essential to terminate cs + .bi1a2c + .bi1a2t % like .tri1a2t for tri-athlon bg 12/27/93 + .bi1au + .bio1a2 + .bi2s1a2 + .bi1u2 +1b2l +4ble. +4bles. +2blent. % mute syllable: troublent (df) 28/02/94 +1bo +1b\^o +1b2r +4bre. +4bres. +2brent. % mute syllable: palabrent (df) 28/02/94 +1bu +1b\^u +1by +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%c +1\cc +1ca +1c\^a +ca3ou3t2 % pour caoutchou... added 3/1/94 df-bg +1ce +1c\'e +1c\`e +1c\^e +4ce. +4ces. +% words ending with -cent (df) 22/02/94 + 2cent. + ja3cent. + ac3cent. + \'e3cent. + munifi3cent. + r\'eti3cent. +privatdo3cent. + inno3cent. + es3cent. + acquies4cent. + is3cent. + immis4cent. +% +.ch4 +1c2h +4ch. +2chb +4che. +4ches. +2chent. % mute syllable: touchent (df) 22/02/94 + .ch\`e2vre3feuille % hyphen disappeared from french 5/2/94 +2chg +ch2l +4chle. +4chles. + chlo2r3a2c + chlo2r3\'e2t +2chm +2chn +2chp +ch2r +4chre. +4chres. +2chs +2cht +2chw +1ci +1c\^\i0 % final zero essential to terminate cs + .ci2s1alp +1c2k +4ck. +2ckb +4cke. +4ckes. +2ckent. % mute syllable: stockent (df) 22/02/94 +2ckf +2ckg +2ck3h +2ckp +2cks +2ckt +1c2l +4cle. +4cles. +2clent. % mute syllable: encerclent (df) 28/02/94 +1co +1c\^o + co1acc + co1acq + co1a2d + co1ap + co1ar + co1assoc + co1assur + co1au + co1ax + co1\'e2 + co1ef + co1en + co1ex + .con4 % missing from nb list + .cons4 % missing from nb list + .contre1s2c + .contre3ma\^\i0tre % hyphen disappeared from french 5/2/94 + co2nurb + .co1o2 + .co2o3lie +1c2r +4cre. +4cres. +2crent. % mute syllable: massacrent (df) 28/02/94 +1cu +1c\^u +1cy +.cul4 % -- as .con4 .cons4 (march 92) +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%d +1d' +1da +1d\^a + .dacryo1a2 +d1d2h +1de +1d\'e +1d\`e +1d\^e +4de. +4des. +% words ending with -dent (df) 22/02/94 + 2dent. +d\'eca3dent. + \'e3dent. + cci3dent. + inci3dent. + confi3dent. + tri3dent. + dissi3dent. + chien3dent. + .ar3dent. + impu3dent. + pru3dent. +% + .d\'e1a2 + .d\'e1io + .d\'e1o2 + .d\'e2s % originaly in JD file + %.d\'e2s1a2 removed 09/17/92 because wrong for the + % original JD 500 words test + .d\'e3s2a3cr + .d\'es2a3m % .d\'es2a2mi introduced 09/17/92 bec. i + % can't see why d\'esamidonner ran in JD. + % Moved to .d\'es2a3m df 12/27/93. + .d\'e3s2a3tell + .d\'e3s2astr + .d\'e3s2c % 1 moved 3 due to .d\'e2s 09/17/92 + %.d\'e2s1e2 removed 09/17/92 because wrong for the + % original JD 500 words test + .d\'e2s1\'e2 + .d\'e3s2\'e3gr + .d\'e3s2ensib + .d\'e3s2ert + .d\'e3s2exu + %.d\'e2s3h removed 09/17/92 because wrong for the + % original JD 500 words test + .d\'e2s1i2 + .d\'e3s2i3d + .d\'e3s2i3gn + .d\'e3s2i3li + .d\'e3s2i3nen + .d\'e3s2invo + .d\'e3s2i3r + .d\'e3s2ist + %.d\'e2s1o2 removed 09/17/92 because wrong for the + % original JD 500 words test + .d\'e3s2o3d\'e + .d\'e3s2o3l + .d\'e3s2o3pil + .d\'e3s2orm + .d\'e3s2orp + .d\'e3s2oufr + .d\'e3s2p % 1 moved 3 due to .d\'e2s 09/17/92 + .d\'e3s2t % 1 moved 3 due to .d\'e2s 09/17/92 + .d\'e2s1u2n + 3d2hal + 3d2houd +1di +1d\^\i0 % final zero essential to terminate cs + di2s3cop + .di1a2c\'e + .di1a2cid + dia2g3n + .di1ald + .di1a2mi + .di1a2tom + .di1e2n + .di2s3h +2dlent. % mute syllable: jodlent (df) 28/02/94 +1do +1d\^o +1d2r +4dre. +4dres. +2drent. % mute syllable: engendrent (df) 28/02/94 +d1s2 +1du +1d\^u +1dy + .dy2s3 + .dy2s1a2 + .dy2s1i2 + .dy2s1o2 % missing from nb list + .dy2s1u2 +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%e +.e4 +'e4 +.\^e4 +'\^e4 +.\'e4 +'\'e4 +.\`e4 +'\`e4 + 1\'e2drie + 1\'e2drique + 1\'e2lectr + 1\'e2l\'ement + .en1a2 + 'en1a2 + 1\'e2nerg + e2n1i2vr + .en1o2 + 'en1o2 + \'epi2s3cop + \'epi3s4cope + e2s3cop + .eu2r1a2 + 'eu2r1a2 + eu1s2tat + extra1 + extra2c + extra2i +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%f +1fa +1f\^a +1fe +1f\'e +1f\`e +1f\^e +4fe. +4fes. +2fent. % mute syllable: agrafent chauffent (df) 22/02/94 +% +1fi +1f\^\i0 % final zero essential to terminate cs +1f2l +4fle. +4fles. +2flent. % mute syllable: gonflent (df) 28/02/94 +1fo +1f\^o +1f2r +4fre. +4fres. +2frent. % mute syllable: balafrent (df) 28/02/94 +f1s2 +1fu +1f\^u +1fy +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%g +1ga +1g\^a +1ge +1g\'e +1g\`e +1g\^e +4ge. +4ges. +% words ending with -gent (df) 22/02/94 + 2gent. + r\'e3gent. + entre3gent. + indi3gent. + dili3gent. +intelli3gent. + indul3gent. + tan3gent. + rin3gent. + contin3gent. + .ar3gent. + 'ar3gent. + ser3gent. + ter3gent. +r\'esur3gent. +% +1g2ha +1g2he +1g2hi +1g2ho +1g2hy +1gi +1g\^\i0 % final zero essential to terminate cs +1g2l +4gle. +4gles. +2glent. % mute syllable: meuglent (df) 28/02/94 + 1g2n +.sta2g3n + wa2g3n +4gne. +4gnes. +2gnent. % mute syllable: accompagnent (df) 28/02/94 +1go +1g\^o +1g2r +4gre. +4gres. +2grent. % mute syllable: immigrent (df) 28/02/94 +1gu +1g\^u +g1s2 +4gue. +4gues. +% words ending with -guent (df) 22/02/94 + 2guent. +.on3guent. +'on3guent. +% +1gy +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%h +1ha +1h\^a +1he +1h\'e +1h\`e +1h\^e + h\'emi1\'e + h\'emo1p2t +4he. +4hes. +1hi +1h\^\i0 % final zero essential to terminate cs +1ho +1h\^o +1hu +1h\^u +1hy + hypera2 + hypere2 + hyper\'e2 + hyperi2 + hypero2 + hypers2 + hype4r1 + hyperu2 + hypo1a2 + hypo1e2 % missing from nb list + hypo1\'e2 + hypo1i2 + hypo1o2 + hypo1s2 + hypo1u2 +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%i +.i4 +'i4 +.\^\i4 +'\^\i4 + i1algi + i1arthr + i1\`e2dre +% ill patterns missing from nb list + il2l + cil3l + rcil4l + ucil4l + vacil4l + gil3l + hil3l + lil3l + l3lion + mil3l + mil4let +\'emil4l + semil4l + rmil4l + armil5l + capil3l + papil3la + papil3le + papil3li + papil3lom + pupil3l + piril3l + thril3l + cyril3l + ibril3l + pusil3l + .stil3l +distil3l +instil3l +fritil3l +boutil3l + vanil3lin + vanil3lis + vil3l + avil4l +chevil4l + uevil4l + uvil4l + xil3l +% end of ill patterns + 1informat % missing from nb list + .in1a2 + 'in1a2 + .in2a3nit + 'in2a3nit + .in2augur + 'in2augur + .in1e2 + 'in1e2 + .in1\'e2 + 'in1\'e2 + .in2effab % missing from nb list + 'in2effab + .in2\'e3lucta + 'in2\'e3lucta + .in2\'e3narra + 'in2\'e3narra + .in2ept + 'in2ept + .in2er + 'in2er + .in2exora % missing from nb list + 'in2exora + .in1i2 + 'in1i2 + .in2i3miti + 'in2i3miti + .in2i3q + 'in2i3q + .in2i3t + 'in2i3t + .in1o2 + 'in1o2 + .in2o3cul + 'in2o3cul + .in2ond + 'in2ond + .in1s2tab + 'in1s2tab + 'inte4r3 + .intera2 + 'intera2 + .intere2 + 'intere2 + .inter\'e2 + 'inter\'e2 + .interi2 + 'interi2 + .intero2 + 'intero2 + .inte4r3 + .interu2 + 'interu2 + .inters2 + 'inters2 + .in1u2 + 'in1u2 + .in2uit + 'in2uit + .in2u3l + 'in2u3l + io1a2ct + i1oxy + i1s2tat +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%j +1j +2jk +4je. +4jes. +2jent. % mute syllable: gal\`ejent (df) 22/02/94 +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%k +1ka +1k\^a +1ke +1k\'e +1k\`e +1k\^e +4ke. +4kes. +2kent. % mute syllable: jerkent (df) 22/02/94 +1k2h +4kh. +.kh4 +1ki +1k\^\i0 % final zero essential to terminate cs +1ko +1k\^o +1k2r +1ku +1k\^u +1ky +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%l +1la +1l\^a +1l\`a + la2w3re +1le +1l\'e +1l\`e +1l\^e +4le. +4les. +% words ending with -lent (df) 22/02/94 + 2lent. + .ta3lent. + iva3lent. +\'equiva4lent. + monova3lent. + polyva3lent. + re3lent. + .do3lent. + indo3lent. + inso3lent. + turbu3lent. + succu3lent. + f\'ecu3lent. + trucu3lent. + opu3lent. + corpu3lent. + ru3lent. + sporu4lent. +% +1li +1l\^\i0 % final zero essential to terminate cs +1lo +1l\^o +l1s2t +1lu +1l\^u +1ly +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%m +1ma +1m\^a + .ma2c3k + .macro1s2c + .ma2l1a2dres + .ma2l1a2dro + .ma2l1ais\'e + .ma2l1ap + .ma2l1a2v + .ma2l1en + .ma2l1int + .ma2l1oc + .ma2l1o2d + .ma2r1x % nb (jbb: ?) +1me +1m\'e +1m\`e +1m\^e + .m\'e2g1oh + .m\'e2sa % missing from nb list + .m\'e3san % missing from nb list + .m\'e2s1es + .m\'e2s1i + .m\'e2s1u2s + .m\'eta1s2ta +4me. +4mes. +% words ending with -ment (df) 22/02/94 + \^a2ment. + da2ment. + fa2ment. + amalga2ment. + cla2ment. + ra2ment. +temp\'era3ment. + ta2ment. + testa3ment. + qua2ment. + \`e2ment. + car\^e2ment. + diaphrag2ment. + ryth2ment. + ai2ment. + rai3ment. + ab\^\i2ment. + \'eci2ment. + vidi2ment. + subli2ment. + \'eli2ment. + reli2ment. + mi2ment. + ani2ment. + veni2ment. + ri2ment. + d\'etri3ment. + nutri3ment. + inti2ment. + esti2ment. + l2ment. + flam2ment. + gram2ment. + .gem2ment. + om2ment. + .com3ment. + \^o2ment. + slalo2ment. + chro2ment. + to2ment. + ar2ment. + .sar3ment. + er2ment. + antifer3ment. + .ser3ment. + fir2ment. + or2ment. + as2ment. + au2ment. + \'ecu2ment. + fu2ment. + hu2ment. + fichu3ment. + llu2ment. + plu2ment. + bou2ment. + bru2ment. + su2ment. + tu2ment. +% +1mi +1m\^\i0 % final zero essential to terminate cs + .milli1am + 1m2n\'emo + 1m2n\`es + 1m2n\'esi +1mo +1m\^o + .mono1a2 + .mono1e2 + .mono1\'e2 + .mono1i2 + .mono1\"\i2d\'e + .mono1o2 + .mono1u2 + .mono1s2 + mon2t3r\'eal % missing from nb list +m1s2 +1mu +1m\^u +1my + moye2n1\^a2g +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%n +1na +1n\^a +1ne +1n\'e +1n\`e +1n\^e +4ne. +4nes. +% words ending with -nent (df) 22/02/94 + 2nent. % fric-tionnent - syllable muette - bg 27/12/93 + r\'ema3nent. + imma3nent. + perma3nent. + .\'emi3nent. +pr\'e\'emi3nent. + pro\'emi3nent. + sur\'emi3nent. + immi3nent. + conti3nent. + perti3nent. + absti3nent. +% +1ni +1n\^\i0 % final zero essential to terminate cs +1no +1n\^o + .no2n1obs +1nu +1n\^u + n3s2at. + n3s2ats. +n1x +1ny +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%o +.o4 +'o4 +'\^o4 +.\^o4 +%'\"o2 % mjf % deleted 3/1/94 df-bg + o2b3long + 1octet % missing from nb list + o1d2l + o1\`e2dre + o1ioni + ombud2s3 + omni1s2 + o1s2tas + o1s2tat + o1s2t\'ero + o1s2tim + o1s2tom + o1s2trad + o1s2tratu + o1s2triction + .oua1ou + 'oua1ou + .ovi1s2c + 'ovi1s2c + oxy1a2 +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%p +1pa +1p\^a + pal\'eo1\'e2 + .pa2n1a2f + .pa2n1a2m\'e + .pa2n1a2ra + .pa2n1is + .pa2n1o2ph + .pa2n1opt + .pa2r1a2che + .pa2r1a2ch\`e + .para1s2 + .pa2r3h\'e +1pe +1p\'e +1p\`e +1p\^e +4pe. +4pes. +% words ending with -pent (df) 22/02/94 + 2pent. + re3pent. +.ar3pent. +'ar3pent. +ser3pent. +% + .pen2ta % pent- or penta- but never pen-ta bg 12/27/93 + per3h + p\'e2nul % p\'e2n1ul moved back 09/17/92 to JD def. + .pe4r + .per1a2 + .per1e2 + .per1\'e2 + .per1i2 + .per1o2 + .per1u2 + p\'e1r2\'e2q % 2r1 moved 09/17/92 to 1r2(it was a typo) + .p\'eri1os + .p\'eri1s2 + .p\'eri2s3s + .p\'eri2s3ta + .p\'eri1u2 +1p2h +.ph4 +4ph. + .phalan3s2t +4phe. +4phes. +2phent. % mute syllable: triomphent (df) 22/02/94 +ph2l +4phle. +4phles. +2phn + photo1s2 +ph2r +4phre. +4phres. +2phs +2pht + 3ph2tal\'e + 3ph2tis +%%%% Here is an example of a pb involving phonetic and etymologic patterns 5/94 +%%%% .phyto3ph2 % originaly, but wrong for phy-toph-thora 9/92 +%%%% .phy2topha % for -pharmacie but wrong for phyto-biol.. 5/94 +1pi +1p\^\i0 % final zero essential to terminate cs +1p2l +4ple. +4ples. +2plent. % mute syllable: accouplent (df) 28/02/94 + .pluri1a + 1p2n\'e + 1p2neu +1po +1p\^o + po1astre + poly1a2 + poly1e2 + poly1\'e2 + poly1\`e2 + poly1i2 + poly1o2 + poly1s2 + poly1u2 + .pon2tet % JD hypenated it asis 09/17/92, exception + .pos2t3h + .pos2t1in + .pos2t1o2 + .pos2t3r + .post1s2 +1p2r +4pre. +4pres. +2prent. % mute syllable: empourprent (df) 28/02/94 + .pr\'e1a2 + .pr\'e2a3la % missing from nb list + .pr\'e2au + .pr\'e1\'e2 + .pr\'e1e2 + .pr\'e1i2 + .pr\'e1o2 + .pr\'e1u2 + .pr\'e1s2 + .pro1\'e2 + .pro1s2c\'e + pro2s3tat + .prou3d2h + 1p2sych + .psycho1a2n + 1p2t\`er + 1p2t\'er +1pu + .pud1d2l +1p\^u +1py +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%q +1q +4que. +4ques. +% words ending with -quent (df) 22/02/94 + 2quent. + \'e3quent. + \'elo3quent. +grandilo3quent. +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%r +1ra +1r\^a + radio1a2 % missing from nb list +1re +1r\'e +1r\`e +1r\^e + .r\'e1a2 + .r\'e2a3le + .r\'e2a3lis + .r\'e2a3lit + .r\'e2aux + .r\'e1\'e2 + .r\'e1e2 + .r\'e2el + .r\'e2er + .r\'e2\`er + .r\'e1i2 + .r\'e2i3fi + .r\'e1o2 + .re1s2 + .re2s3cap + .re2s3cisi % for res-cision 09/17/92 (missing from nb) + .re2s3ciso % for res-cisoire 09/17/92(missing from nb) + .re2s3cou + .re2s3cri + .re2s3pect + .re2s3pir + .re2s3plend + .re2s3pons + .re2s3quil + .re2s3s + .re2s3t + .re3s4tab + .re3s4tag + .re3s4tand + .re3s4tat + .re3s4t\'en + .re3s4t\'er + .re3s4tim + .re3s4tip + .re3s4toc + .re3s4top + .re3s4tr + .re4s5trein + .re4s5trict + .re4s5trin + .re3s4tu + .re3s4ty + .r\'eu2 %.r\'e1u2 % pattern rejected 12/2/92 + % (don't hyphenate as r\'e-union nor r\'eu-nion) + .r\'e2uss + .r\'etro1a2 +4re. +4res. +% words ending with -rent (df) 22/02/94 + 2rent. % es-p\`erent - syllable muette - bg 27/12/93 + .pa3rent. + appa3rent. +transpa3rent. + \'e3rent. + tor3rent. + cur3rent. +% +1r2h +4rhe. +4rhes. + 2r3heur + 2r3hydr +1ri +1r\^\i0 % final zero essential to terminate cs +1ro +1r\^o +1ru +1r\^u +1ry +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%s +1sa +1s\^a +.sch4 + 1s2caph + 1s2cl\'er + 1s2cop + 1s2ch +e2s3ch +i2s3ch\'e +i2s3chia +i2s3chio +4sch. +4sche. +4sches. +2schs +1se +1s\'e +1s\`e +1s\^e + sesqui1a2 +4se. +4ses. +% words ending with -sent (df) 22/02/94 + 2sent. % massent - syllable muette - bg 27/12/93 + ab3sent. +pr\'e3sent. + .res3sent. +% +.seu2le % jbb +.sh4 +1s2h +4sh. +4she. +4shes. +2shent. % mute syllable: smashent (df) 22/02/94 +2shm + 2s3hom +2shr +2shs +1si +1s\^\i0 % final zero essential to terminate cs + 1s2lav + 1s2lov +1so +1s\^o + 1s2patia + 1s2perm + 1s2por + 1s2ph\`er + 1s2ph\'er + 1s2piel + 1s2piros + 1s2tandard + 1s2tein + st\'er\'eo1s2 + 1s2tigm + 1s2tock + 1s2tomos + 1s2troph + 1s2tructu + 1s2tyle +1su +1s\^u + .su2b1a2 + .su3b2alt + .su2b1\'e2 + .su3b2\'e3r + .su2b1in + .su2b3limin + .su2b3lin + .su2b3lu + sub1s2 + .su2b1ur + supero2 + supe4r1 + supers2 + .su2r1a2 + su3r2ah + .su3r2a3t + .su2r1e2 + .su3r2eau + .su3r2ell + .su3r2et + .su2r1\'e2 + .su2r3h + .su2r1i2m + .su2r1inf + .su2r1int + .su2r1of + .su2r1ox +1sy +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%t +1ta +1t\^a +1t\`a + tachy1a2 + tchin3t2 +1te +1t\'e +1t\`e +1t\^e + t\'el\'e1e2 + t\'el\'e1i2 + t\'el\'e1o2b + t\'el\'e1o2p + t\'el\'e1s2 +4te. +4tes. +% words ending with -tent (df) 22/02/94 + 2tent. % mentent - syllable muette - bg 27/12/93 + .la3tent. + .pa3tent. + comp\'e3tent. + \'eni3tent. + m\'econ3tent. + omnipo3tent. +ventripo3tent. +\'equipo3tent. + impo3tent. + mit3tent. +% +.th4 +1t2h +4th. +4the. +4thes. + thermo1s2 + 2t3heur +2thl % th2l was wrong for ...ath-lon (jd said 2thl) df 12/27/93 +2thm +2thn +th2r +4thre. +4thres. +2ths +1ti +1t\^\i0 % final zero essential to terminate cs +1to +1t\^o +1t2r + tran2s1a2 + tran3s2act + tran3s2ats + tran2s3h + tran2s1o2 + tran2s3p + tran2s1u2 +4tre. +4tres. +2trent. % mute syllable: infiltrent (df) 28/02/94 + .tri1a2c + .tri1a2n + .tri1a2t + .tri1o2n + t1t2l +1tu +1t\^u +tung2s3 +1ty +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%u +.u4 +'u4 +.\^u4 +'\^u4 + uni1o2v + uni1a2x + u2s3tr +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%v +1va +1v\^a +1ve +1v\'e +1v\`e +1v\^e + v\'elo1s2ki +4ve. +4ves. +% words ending with -vent (df) 22/02/94 + 2vent. +conni3vent. + .sou3vent. +% +1vi +1v\^\i0 % final zero essential to terminate cs +1vo +1v\^o + vol2t1amp +1v2r +4vre. +4vres. +2vrent. % mute syllable: recouvrent (df) 28/02/94 +1vu +1v\^u +1vy +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%w +1wa +1we +4we. +4wes. +2went. % mute syllable: interviewent (df) 22/02/94 +1wi +1wo +1wu +1w2r +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%x +2xent. % mute syllable: malaxent (df) 22/02/94 +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%y +.y4 +'y4 + y1asth + y1s2tom + y1algi +%-------------------%-----------------------% +% phonetic patterns % etymological patterns % +%-------------------%-----------------------% +%%z +1za +1ze +1z\'e +1z\`e +4ze. +4zes. +% words ending with -zent (df) 22/02/94 + 2zent. +privatdo3zent. +% +1zi +1zo +1zu +1zy +%} +%\endgroup +%Fin du fichier f7hyph.tex +%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/german.lh b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/german.lh new file mode 100755 index 0000000000000..3b0fec6d8771c --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/german.lh @@ -0,0 +1,568 @@ +Lout hyphenation information +% +% This is a German hyphenation file constructed by Jeff Kingston +% on 21 April 1994 from a TeX file supplied by Sverre Slotte. +% + +Classes: +@!$%^&*()_-+=~`{[}]:;'|<,.>?/0123456789 +aA +bB +cC +dD +eE +fF +gG +hH +iI +jJ +kK +lL +mM +nN +oO +pP +qQ +rR +sS +tT +uU +vV +wW +xX +yY +zZ +äÄ +åÅ +öÖ +üÜ +ß + +Patterns: +.aa6l .ab3a4s .ab3ei .abi2 .ab3it .ab1l .ab1r .ab3u .ad3o4r .alti6 .ana3c +.an5alg .an1e .ang8s .an1s .ap1p .ar6sc .ar6ta .ar6tei .as2z .au2f1 .au2s3 +.be5erb .be3na .ber6t5r .bie6r5 .bim6s5t .brot3 .bru6s .ch6 .che6f5 .da8c +.da2r .dar5in .dar5u .den6ka .de5r6en .des6pe .de8spo .de3sz .dia3s4 .dien4 +.dy2s1 .ehren5 .eine6 .ei6n5eh .ei8nen .ein5sa .en6der .en6d5r .en3k4 +.en8ta8 .en8tei .en4t3r .epo1 .er6ban .er6b5ei .er6bla .er6d5um .er3ei +.er5er .er3in .er3o4b .erwi5s .es1p .es8t .ex1a2 .ex3em .fal6sc .fe6st5a +.flu4g3 .furch8 .ga6ner .ge3n4a .ge5rö .ges6 .halb5 .halbe6 .hal6br +.haup4 .hau4t .heima6 .he4r3e .her6za .he5x .hin3 .hir8sc .ho4c .hu3sa +.hy5o .ibe5 .ima6ge .in1 .ini6 .is5chi .jagd5 .kal6k5o .ka6ph .ki4e .kop6f3 +.kraf6 .kü5ra .lab6br .liie6 .lo6s5k .lö4s3t .ma5d .mi2t1 .no6th +.no6top .obe8ri .ob1l .obs2 .ob6st5e .or3c .ort6s5e .ost3a .oste8r .pe4re +.pe3ts .ph6 .po8str .rau4m3 .re5an .ro8q .ru5the .rü5be .rü8stet +.sch8 .se6e .se5n6h .se5ra .si2e .spi6ke .st4 .sy2n .tages5 .tan6kl .ta8th +.te6e .te8str .to6der .to8nin .to6we .um1 .umpf4 .un1 .une6 .unge5n .ur1c +.ur5en .ve6rin .vora8 .wah6l5 .we8ges .wo6r .wor3a .wun4s .zi4e .zuch8 +.ände8re .öch8 aa1c aa2gr aal5e aa6r5a a5arti aa2s1t aat2s 6aba +ab3art 1abdr 6abel aben6dr ab5erk ab5err ab5esse 1abf 1abg 1abhä ab1ir +1abko a1bl ab1la 5ablag a6blaß ab4ler ab1lu a8blä 5a6blö abma5c +1abn ab1ra ab1re 5a6brec ab1ro ab1s ab8sk abs2z 3abtei ab1ur 1abw 5abze +5abzu ab1än abäu8 a4ce. a5chal ach5art ach5au a1che a8chent ach6er. +a6ch5erf a1chi ach1l ach3m ach5n a1cho ach3re a1chu ach1w a1chy ach5äf +ack1o acks6t ack5sta a1d 8ad. a6d5ac ad3ant ad8ar 5addi a8dein ade5o8 +adi5en 1adj 1adle ad1op a2dre 3adres adt1 1adv a6dä a1e2d ae1r a1er. +1aero 8afa a3fal af1an a5far a5fat af1au a6fentl a2f1ex af1fr af5rau af1re +1afri af6tent af6tra aft5re a6f5um 8afä ag5abe 5a4gent ag8er ages5e +1aggr ag5las ag1lo a1gn ag2ne 1agog a6g5und a1ha a1he ah5ein a4h3erh a1hi +ahl1a ah1le ah4m3ar ahn1a a5ho ahra6 ahr5ab ah1re ah8rei ahren8s ahre4s3 +ahr8ti ah1ru a1hu ah8ö ai3d2s ai1e aif6 a3inse ai4re. a5isch. ais8e +a3ismu ais6n aiso6 a1j 1akad a4kade a1ke a1ki 1akko 5akro1 a5lal al5ans +3al8arm al8beb al8berw alb5la 3album al1c a1le a6l5e6be a4l3ein a8lel +a8lerb a8lerh a6lert 5a6l5eth 1algi al4gli al3int al4lab al8lan al4l3ar +alle3g a1lo a4l5ob al6schm al4the altist5 al4t3re 8a1lu alu5i a6lur alu3ta +a1lä a6mate 8ame. 5a6meise am6m5ei am6mum am2n ampf3a am6schw am2ta +a1mu a1mä a3nac a1nad anadi5e an3ako an3alp 3analy an3ame an3ara a1nas +an5asti a1nat anat5s an8dent ande4s3 an1ec an5eis an1e2k 4aner. a6n5erd +a8nerf a6n5erke 1anfa 5anfert 1anfä 3angab 5angebo an3gli ang6lis an2gn +3angri ang5t6 5anhä ani5g ani4ka an5i8on an1kl an6kno an4kro 1anl anma5c +anmar4 3annah anne4s3 a1no 5a6n1o2d 5a6n3oma 5a6nord 1anr an1sa 5anschl +an4soz an1st 5anstal an1s2z 5antenn an1th 5anwä a5ny an4z3ed 5anzeig +5anzieh 3anzug an1ä 5anäs a1nö anö8d a1os a1pa 3apfel a2ph1t +aph5ä6 a1pi 8apl apo1c apo1s a6poste a6poth 1appa ap1pr a1pr a5pä +a3pü a1ra a4r3af ar3all 3arbei 2arbt ar1c 2a1re ar3ein ar2gl 2a1ri +ari5es ar8kers ar6les ar4nan ar5o6ch ar1o2d a1rol ar3ony a8ror a3ros ar5ox +ar6schl 8artei ar6t5ri a1ru a1ry 1arzt arz1w ar8zä arä8m arö6 +ar5öm ar1ü2 a1sa a6schec asch5l asch3m a6schn a3s4hi as1pa asp5l +a8steb as5tev 1asth a6stoc a1str ast3re 8a1ta ata5c ata3la a6tapf ata5pl +a1te a6teli aten5a ate5ran 6atf 6atg a1th at3hal 1athl 2a1ti 5atlant 3atlas +8atmus 6atn a1to a6t5ops ato6ra a6t5ort. 4a1tr a6t5ru at2t1h at5t6hä +6a1tu atz1w a1tä a1tü au1a au6bre auch3a au1e aue4l 5aufent 3auffü +3aufga 1aufn auf1t 3auftr 1aufw 3auge. au4kle aule8s 6aum au8mar aum5p +1ausb 3ausd 1ausf 1ausg au8sin 3auss au4sta 1ausw 1ausz aut5eng au1th 1auto +auße8 a1v ave5r6a aver6i a1w a6wes a1x a2xia a6xio a1ya a1z azi5er. +8aß 1ba 8ba8del ba1la ba1na ban6k5r ba5ot bardi6n ba1ro basten6 bau3sp +2b1b bb6le b2bli 2b1c 2b1d 1be be1a be8at. be1ch 8becht 8becke. be5el +be1en bee8rei be5eta bef2 8beff be1g2 behö8 bei1s 6b5eisen bei3tr b8el +bel8o belu3t be3nac bend6o be6ners be6nerw be4nor ben4se6 bens5el be1nä +be1nü be1o2 b8er. be1ra be8rac ber8gab. ber1r be1rü bes8c bes5erh +bes2p be5tha bet5sc be1un be1ur 8bex be6zwec 2b1f8 bfe6st5e 2b1g2 bga2s5 +bge1 2b1h bhole6 1bi bi1bl b6ie bi1el bi1la bilä5 bi1na bi4nok bi5str +bi6stu bi5tr bit4t5r b1j 2b1k2 bkü6 bl8 b6la. 6b1lad 6blag 8blam 1blat +b8latt 3blau. b6lav 3ble. b1leb b1led 8b1leg 8b1leh 8bleid 8bleih 6b3lein +blei3s ble4m3o 4blich b4lind 8bling b2lio 5blit b4litz b1loh 8b1los 1blu +5blum 2blun blut3a blut5sc 3blä bläs5c 5blö 3blü blü8sc 2b1m +2b1n 1bo bo1ch bo5d6s boe5 8boff 8bonk bo1ra b1ort 2b1p2 b1q 1br brail6 +brast8 bre4a b5red 8bref 8b5riem b6riga bro1s b1rup b2ruz 8bröh +brös5c 8bs b1sa b8sang b2s1ar b1sc bs3erl bs3erz b8sof b1s2p bst1h +b3stru b5stä b6sun 2b1t b2t1h 1bu bu1ie bul6k b8ure bu6sin 6b1v 2b1w +1by1 by6te. 8b1z bzi1s 1bä b5ä6s5 1bü b6ü5bere büge6 +bügel5e bür6sc 1ca cag6 ca5la ca6re ca5y c1c 1ce celi4c celich5 ce1ro +c8h 2ch. 1chae ch1ah ch3akt cha6mer 8chanz 5chara 3chari 5chato 6chb 1chef +6chei ch3eil ch3eis 6cherkl 6chf 4chh 5chiad 5chias 6chins 8chj chl6 5chlor +6ch2m 2chn6 ch8nie 5cho. 8chob choi8d 6chp ch3ren ch6res ch3rü 2chs +2cht cht5ha cht3hi 5chthon ch6tin 6chuh chu4la 6ch3unt chut6t 8chw 1ci +ci5tr c2k 2ck. ck1ei 4ckh ck3l ck3n ck5o8f ck1r 2cks ck5stra ck6s5u c2l +1c8o con6ne 8corb cos6t c3q 1c6r 8c1t 1cu 1cy 5cä1 cö5 1da. 8daas +2dabg 8dabr 6dabt 6dabw 1dac da2gr 6d5alk 8d5amt dan6ce. dani5er dan8ker +2danl danla6 6dans 8danzi 6danzu d1ap da2r1a8 2d1arb d3arc dar6men 4d3art +8darz 1dat 8datm 2d1auf 2d1aus 2d1b 2d1c 2d1d d5de d3d2h ddämme8 1de +2deal de5an de3cha de1e defe6 6deff 2d1ehr 5d4eic de5isc de8lar del6s5e +del6spr de4mag de8mun de8nep dene6r 8denge. 8dengen de5o6d 2deol de5ram +8derdb der5ein de1ro der1r d8ers der5um de4s3am de4s3an de4sau de6sil +de4sin de8sor de4spr de2su 8deul de5us. 2d1f df2l 2d1g 2d1h 1di dia5c +di5ara dice5 di3chr di5ena di1gn di1la dil8s di1na 8dind 6dinf 4d3inh +2d1ins di5o6d di3p4t di8sen dis1p di5s8per di6s5to dis5tra di8tan di8tin +d1j 6dje 2dju 2d1k 2d1l 2d1m 2d1n6 dni6 dnje6 1do 6d5obe do6berf 6d5ony +do3ran 6dord 2d1org dor4t3h do6ste 6doth dott8e 2d1p d5q dr4 1drah 8drak +d5rand 6dre. 4drech d6reck 4d3reg 8d3reic d5reife 8drem 8d1ren 2drer +8dres. 6d5rh 1dria d1ric 8drind droi6 dro5x 1dru 8drut drös5c 1drü +drü5b drü8sc 2ds d1sa d6san dsat6 d1sc 5d6scha. 5dschik dse8e d8serg +8dsl d1sp d4spak ds2po d8spä d1st d1sü 2dt d1ta d1te d1ti d1to dt1s6 +d1tu d5tä 1du du5als du1b6 du1e duf4t3r 4d3uh du5ie 8duml 8dumw 2d1und +du8ni 6d5unt dur2c durch3 6durl 6dursa 8durt du1s du8schr 2d1v 2d1w dwa8l +2d1z 1dä 6däh 8dänd dä6r dö8bl d5öl dör6fl dö8sc +d5ö4st dös3te 1dü ea4ben e1ac e1ah e1akt e1al. e5alf e1alg +e5a8lin e1alk e1all e5alp e1alt e5alw e1am e1and ea6nim e1ar. e5arf e1ark +e5arm e3art e5at. e6ate e6a5t6l e8ats e5att e6au. e1aus e1b e6b5am +ebens5e eb4lie eb4ser eb4s3in e1che e8cherz e1chi ech3m 8ech3n ech1r +ech8send ech4su e1chu eck5an e5cl e1d ee5a ee3e ee5g e1ei ee5isc eei4s3t +ee6lend e1ell ee5lö e1erd ee3r4e ee8reng eere6s5 ee5rä ee6tat e1ex +e1f e6fau e8fe8b 3effek ef3rom ege6ra eglo6si 1egy e1ha e6h5ach eh5ans +e6hap eh5auf e1he e1hi ehl3a eh1le ehl5ein eh1mu ehn5ec e1ho ehr1a eh1re +ehre6n eh1ri eh1ru ehr5um e1hu eh1w e1hy e1hä e1hö e3hüt ei1a +eia6s ei6bar eich3a eich5r ei4dar ei6d5ei ei8derf ei3d4sc ei1e 8eifen +3eifri 1eign eil1d ei6mab ei8mag ein1a4 ei8nat ei8nerh ei8ness ei6nete +ein1g e8ini ein1k ei6n5od ei8nok ei4nor e3insä ei1o e1irr ei5ru ei8sab +ei5schn ei6s5ent ei8sol ei4t3al eit3ar eit1h ei6thi ei8tho eit8samt ei6t5um +e1j 1ekd e1ke e1ki e1k2l e1kn ekni4 e1la e2l1al 6elan e6lanf e8lanl e6l5ans +el3arb el3arm e6l3art 5e6lasti e6lauge elbst5a e1le 6elef ele6h e6l5ehe +e8leif e6l5einh 1elek e8lel 3eleme e6lemen e6lente el5epi e4l3err e6l5ersc +elf2l elg2 e6l5ins ell8er 4e1lo e4l3ofe el8soh el8tent 5eltern e1lu elut2 +e1lä e1lü em8dei em8meis 4emo emo5s 1emp1f 1empt 1emto e1mu emurk4 +emurks5 e1mä en5a6ben en5achs en5ack e1nad en5af en5all en3alt en1am +en3an. en3ant en3anz en1a6p en1ar en1a6s 6e1nat en3auf en3aus en2ce enda6l +end5erf end5erg en8dess 4ene. en5eck e8neff e6n5ehr e6n5eim en3eis 6enem. +6enen e4nent 4ener. e8nerd e6n3erf e4nerg 5energi e6n5erla en5ers e6nerst +en5erw 6enes e6n5ess e2nex en3glo 2eni enni6s5 ennos4 enns8 e1no e6nober +eno8f en5opf e4n3ord en8sers ens8kl en1sp ens6por en5t6ag enta5go en8terbu +en6tid 3entla ent5ric 5entwic 5entwu 1entz enu5i e3ny en8zan en1öf +e1nös e1nüg eo1c e5o6fe e5okk e1on. e3onf e5onk e5onl e5onr e5opf +e5ops e5or. e1ord e1org eo5r6h eo1t e1pa e8pee e6p5e6g ep5ent e1p2f e1pi +5epid e6pidem e1pl 5epos e6pos. ep4p3a e1pr e1pä e1q e1ra. er5aal +8eraba e5rabel er5a6ben e5rabi er3abs er3ach era5e era5k6l er3all er3amt +e3rand e3rane er3ans e5ranz. e1rap er3arc e3rari er3a6si e1rat erat3s +er3auf e3raum 3erbse er1c e1re 4e5re. er3eck er5egg er5e2h 2erei e3rei. +e8reine er5einr 6eren. e4r3enm 4erer. e6r5erm er5ero er5erst e4r3erz +er3ess 5erfül er8gan. 5ergebn er2g5h 5ergänz 5erhöhu 2e1ri eri5ak +e6r5iat e4r3ind e6r5i6n5i6 er5ins e6r5int er5itio er1kl 3erklä +5erlös. ermen6s er6nab 3ernst 6e1ro. e1rod er1o2f e1rog 6e3roi ero8ide +e3rol e1rom e1ron e3rop8 e2r1or e1ros e1rot er5ox ersch4 5erstat er6t5ein +er2t1h er5t6her 2e1ru eruf4s3 e4r3uhr er3ums e5rus 5erwerb e1ry er5zwa +er3zwu erä8m er5äs erö8 e3rös. e6r1ü2b e1sa esa8b e8sap +e6s5a6v e1sc esch4l ese1a es5ebe eserve5 e8sh es5ill es3int es4kop e2sl +eso8b e1sp espei6s5 es2po es2pu 5essenz e6stabs e6staf e6st5ak est3ar +e8stob e1str est5res es3ur e2sz e1sü e1ta et8ag etari5e eta8ta e1te +eten6te et5hal e5thel e1ti 1etn e1to e1tr et3rec e8tscha et8se et6tei et2th +et2t1r e1tu etu1s et8zent et8zw e1tä e1tö e1tü eu1a2 eu1e eue8rei +eu5fe euin5 euk2 e1um. eu6nio e5unter eu1o6 eu5p 3europ eu1sp eu5str eu8zo +e1v eval6s eve5r6en ever4i e1w e2wig ex1or 1exp 1extr ey3er. e1z e1ä2 +e5ö8 e1ü e8ßes fa6ch5i fade8 fa6del fa5el. fal6lo falt8e fa1na +fan4gr 6fanl 6fap far6ba far4bl far6r5a 2f1art fa1sc fau8str fa3y 2f1b2 +6f1c 2f1d 1fe 2f1eck fe6dr feh6lei f6eim 8feins f5eis fel5en 8feltern 8femp +fe5rant 4ferd. ferri8 fe8stof fe6str fe6stum fe8tag fet6ta fex1 2ff f1fa +f6f5arm f5fe ffe5in ffe6la ffe8ler ff1f f1fla ff3lei ff4lie ff8sa ff6s5ta +2f1g2 fgewen6 4f1h 1fi fid4 fi3ds fieb4 fi1la fi8lei fil4m5a f8in. fi1na +8finf fi8scho fi6u 6f1j 2f1k2 f8lanz fl8e 4f3lein 8flib 4fling f2lix 6f3lon +5flop 1flor 5f8läc 3flöt 2f1m 2f1n 1fo foh1 f2on fo6na 2f1op fo5ra +for8mei for8str for8th for6t5r fo5ru 6f5otte 2f1p8 f1q fr6 f5ram 1f8ran +f8raß f8re. frei1 5frei. f3reic f3rest f1rib 8f1ric 6frig 1fris fro8na +fräs5t 2fs f1sc f2s1er f5str fs3tät 2ft f1tak f1te ft5e6h ftere6 ft1h +f1ti f5to f1tr ft5rad ft1sc ft2so f1tu ftwi3d4 ft1z 1fu 6f5ums 6funf fun4ka +fu8ßend 6f1v 2f1w 2f1z 1fä fä1c 8färm 6fäug fä8ß +föde3 8föf 3för 1fü fün4f3u 1ga ga6bl 6gabw 8gabz g3a4der +ga8ho ga5isc 4gak ga1la 6g5amt ga1na gan5erb gan6g5a ga5nj 6ganl 8gansc +6garb 2g1arc 2g1arm ga5ro 6g3arti ga8sa ga8sc ga6stre 2g1atm 6g5auf gau5fr +g5aus 2g1b g5c 6gd g1da 1ge ge1a2 ge6an ge8at. ge1e2 ge6es gef2 8geff +ge1g2l ge1im 4g3eise geist5r gel8bra gelt8s ge5lö ge8nin gen3k 6g5entf +ge3nä ge1or ge1ra ge6rab ger8au 8gerhö ger8ins ge1ro 6g5erz. +ge1rä ge1rü ge1s ges2p ge5unt 4g3ex3 2g1f8 2g1g g1ha 6g1hei 5ghel. +g5henn 6g1hi g1ho 1ghr g1hö 1gi gi5la gi8me. gi1na 4g3ins gi3str g1j +2g1k 8gl. 1glad g5lag glan4z3 1glas 6glass 5glaub g3lauf 1gle. g5leb +3gleic g3lein 5gleis 1glem 2gler 8g3leu gli8a g2lie 3glied 1g2lik 1g2lim +g6lio 1gloa 5glom 1glon 1glop g1los g4loss g5luf 1g2ly 1glü 2g1m gn8 +6gn. 1gna 8gnach 2gnah g1nas g8neu g2nie g3nis 1gno 8gnot 1go goe1 8gof +2gog 5gogr 6g5oh goni5e 6gonist go1ra 8gord 2g1p2 g1q 1gr4 g5rahm gra8m +gra4s3t 6g1rec gre6ge 4g3reic g5reit 8grenn gri4e g5riem 5grif 2grig g5ring +6groh 2grot gro6ß 4grut 2gs gs1ab g5sah gs1ak gs1an gs8and gs1ar gs1au +g1sc gs1ef g5seil gs5ein g2s1er gs1in g2s1o gso2r gs1pr g2s1u 2g1t g3te +g2t1h 1gu gu5as gu2e 2gue. 6gued 4g3uh 8gums 6g5unt gu1s gut3h gu2tu 4g1v +2g1w gy1n g1z 1gä 8gä8m 6gärm 1gö 1gü 6güb 1haa hab8r +ha8del hade4n 8hae ha5el. haf6tr 2hal. ha1la hal4b5a 6hale 8han. ha1na +han6dr han6ge. 2hani h5anth 6hanz 6harb h3arbe h3arme ha5ro ha2t1h h1atm +hau6san ha8ß h1b2 h1c h1d he2bl he3cho h3echt he5d6s 5heft h5e6he. +hei8ds h1eif 2hein he3ism he5ist. heit8s3 hek6ta hel8lau 8helt he6mer +1hemm 6h1emp hen5end hen5klo hen6tri he2nu 8heo he8q her3ab he5rak her3an +4herap her3au h3erbi he1ro he8ro8b he4r3um her6z5er he4spe he1st heta6 +het5am he5th heu3sc he1xa hey5e h1f2 h1g hgol8 h1h h1iat hie6r5i hi5kt +hil1a2 hil4fr hi5nak hin4ta hi2nu hi5ob hirn5e hir6ner hi1sp hi1th hi5tr +5hitz h1j h6jo h1k2 hlabb4 hla4ga hla6gr h5lai hl8am h1las h1laß hl1c +h1led h3lein h5ler. h2lif h2lim h8linf hl5int h2lip h2lit h4lor h3lose +h1läs hme5e h2nee h2nei hn3eig h2nel hne8n hne4p3f hn8erz h6netz h2nip +h2nit h1nol hn5sp h2nuc h2nud h2nul hoch1 1hoh hoh8lei 2hoi ho4l3ar 1holz +h2on ho1ra 6horg 5horn. ho3sl hos1p ho4spi h1p hpi6 h1q 6hr h1rai h8rank +h5raum hr1c hrcre8 h1red h3reg h8rei. h4r3erb h8rert hrg2 h1ric hr5ins +h2rom hr6t5erl hr2t1h hr6t5ra hr8tri h6rum hr1z hs3ach h6s5amt h1sc h6s5ec +h6s5erl hs8erle h4sob h1sp h8spaß h8spel hs6po h4spun h1str h4s3tum +hs3und h1sü h5ta. h5tab ht3ac ht1ak ht3ang h5tanz ht1ar ht1at h5taub +h1te h2t1ec ht3eff ht3ehe h4t3eif h8teim h4t3ein ht3eis h6temp h8tentf +hte8ren h6terfü h8tergr h4t3erh h6t5ersc h8terst h8tese h8tess h2t1eu +h4t3ex ht1he ht5hu h1ti ht5rak hts3ah ht1sc ht6sex ht8sk ht8so h1tu htz8 +h5tüm hub5l hu6b5r huh1l h5uhr. huld5a6 hu8lent hu8lä h5up. h1v +h5weib h3weis h1z hä8kl häl8s häma8tu8 hä8sche. hät1s +häu4s3c 2hö. 2höe 8höi hö6s hös5c hühne6 hül4s3t +hütte8re i5adn i1af i5ak. i1al. i1al1a i1alb i1ald i5alei i1alf i1alg +i3alh i1alk i1all i1alp i1alr i1als i1alt i1alv i5alw i3alz i1an. ia5na +i3and ian8e ia8ne8b i1ang i3ank i5ann i1ant i1anz i6apo i1ar. ia6rab i5arr +i1as. i1asm i1ass i5ast. i1at. i5ats i1au i5azz i6b5eig i6b5eis ib2le +i4blis i6brig i6b5unt i6büb i1che ich5ei i6cherb i1chi ich5ins ich1l +ich3m ich1n i1cho icht5an icht3r i1chu ich1w ick6s5te ic5l i1d id3arm +3ideal ide8na 3ideol ide5rö i6diot id5rec id1t ie1a ie6b5ar iebe4s3 +ie2bl ieb1r ie8bra ie4bre ie8bä ie2dr ie1e8 ie6f5ad ief5f ie2f1l ie4fro +ief1t i1ei ie4l3ec ie8lei ie4lek i3ell i1en. i1end ien6e i3enf i5enn +ien6ne. i1enp i1enr i5ensa ien8stal i5env i1enz ie5o ier3a4b ie4rap i2ere +ie4rec ie6r5ein ie6r5eis ier8er i3ern. ie8rum ie8rund ie6s5che ie6tau +ie8tert ie5the ie6t5ri i1ett ie5un iex5 2if i1fa if5ang i6fau if1fr if5lac +i5f6lie i1fre ift5a if6t5r ig3art 2ige i8gess ig5he i5gla ig2ni i5go ig3rot +ig3s2p i1ha i8ham i8hans i1he i1hi ih1n ih1r i1hu i8hum ih1w 8i1i ii2s ii2t +i1j i1k i6kak i8kerz i6kes ik4ler i6k5unt 2il i5lac i1lag il3ans i5las +i1lau il6auf i1le ile8h i8lel il2fl il3ipp il6l5enn i1lo ilt8e i1lu i1lä +i8mart imb2 i8mele i8mid imme6l5a i1mu i1mä i5mö ina5he i1nat in1au +inau8s 8ind. in4d3an 5index ind2r 3indus i5nec i2n1ei i8nerw 3infek 1info +5ingeni ing5s6o 5inhab ini5er. 5inj in8kät in8nan i1no inoi8d in3o4ku +in5sau in1sp 5inspe 5instit 5instru ins4ze 5intere 5interv in3the in5t2r +i5ny inä2 i1när in1äs inö8 in5öd i1nös 2io io1a8 io1c +iode4 io2di ioi8 i1ol. i1om. i1on. i5onb ion2s1 i1ont i5ops i5o8pt i1or. +i3oral io3rat i5orc i1os. i1ot. i1o8x 2ip i1pa i1pi i1p2l i1pr i1q i1ra +ir6bl i1re i1ri ir8me8d ir2m1o2 ir8nak i1ro ir5rho ir6schl ir6sch5r i5rus +i5ry i5rä i1sa i8samt i6sar i2s1au i8scheh i8schei isch5m isch3r +ischä8 is8ele ise3ra i4s3erh is3err isi6de i8sind is4kop ison5e is6por +i8s5tum i5sty i5sö i1ta it5ab. i2t1a2m i8tax i1te i8tersc i1thi i1tho +i5thr it8hä i1ti i8ti8d iti6kl itmen4 i1to i8tof it3ran it3rau i1tri +itri5o it1sc it2se it5spa it8tru i1tu it6z5erg it6z1w i1tä itä6r5e +ität2 itäts5 i1tü i1u iu6r 2i1v i6vad iva8tin i8vei i6v5ene i8verh +i2vob i8vur i1w iwi2 i5xa i1xe i1z ize8n i8zir i6z5w iä8m i1ä6r +i5ät. i5äv i1ö8 iü8 i6ß5ers ja5la je2t3r 6jm 5jo jo5as +jo1ra jou6l ju5cha jugen4 jugend5 jung5s6 ju1s 3jä 1ka 8kachs 8kakz +ka1la kal5d kam5t ka1na 2kanl 8kapf ka6pl ka5r6a 6k3arbe ka1ro kar6p5f +4k3arti 8karz ka1rä kasi5e ka6teb kat8ta kauf6s kau3t2 2k1b 2k1c 4k1d +kehr6s kehrs5a 8keic 2k1eig 6k5ein 6k5eis ke6lar ke8leis ke8lo 8kemp +k5ente. k3entf 8k5ents 6kentz ke1ra k5erlau 2k1f8 2k1g 2k1h ki5fl 8kik +king6s5 6kinh ki5os ki5sp ki5th 8ki8ö 2k1k2 kl8 1kla 8klac k5lager +kle4br k3leib 3kleid kle5isc 4k3leit k3lek 6k5ler. 5klet 2klic 8klig k2lim +k2lin 5klip 5klop k3lor 1klä 2k1m kmani5e kn8 6kner k2ni knä8 1k2o +ko1a2 ko6de. ko1i koi8t ko6min ko1op ko1or ko6pht ko3ra kor6d5er ko5ru +ko5t6sc k3ou 3kow 6k5ox 2k1p2 k1q 1kr8 4k3rad 2k1rec 4k3reic kre5ie 2krib +6krig 2krip 6kroba 2ks k1sa k6sab ksal8s k8samt k6san k1sc k2s1ex k5spat +k5spe k8spil ks6por k1spr kst8 k2s1uf 2k1t kta8l kt5a6re k8tein kte8re +k2t1h k8tinf kt3rec kt1s 1ku ku1ch kuck8 k3uhr ku5ie kum2s1 kunfts5 kun2s +kunst3 ku8rau ku4ro kurz1 ku1st 4kusti ku1ta ku8ß 6k1v 2k1w ky5n 2k1z +1kä kä4m 4k3ämi käse5 1kö kö1c kö1s 1kü kü1c +kür6sc kü1s 1la. 8labf 8labh lab2r 2l1abs lach3r la8dr 5ladu 8ladv +6laff laf5t la2gn 5laken 8lamb la6mer 5lampe. 2l1amt la1na 1land lan4d3a +lan4d3r lan4gr 8lanme 6lann 8lanw 6lanä 8lappa lap8pl lap6pr l8ar. +la5ra lar4af la8rag la8ran la6r5a6s l3arbe la8rei 6larm. la8sa la1sc +la8sta lat8i 6l5atm 4lauss 4lauto 1law 2lb l8bab l8bauf l8bede l4b3ins +l5blo lbst5an lbst3e 8lc l1che l8chert l1chi lch3m l5cho lch5w 6ld l4d3ei +ld1re l6düb le2bl le8bre lecht6s5 led2r 6leff le4gas 1lehr lei6br le8inf +8leinn 5leistu 4lektr le6l5ers lemo2 8lemp l8en. 8lends 6lendun le8nend +len8erw 6l5ents 4l3entw 4lentz 8lenzy 8leoz 6lepi le6pip 8lepo 1ler l6er. +8lerbs 6l5erde le8reis le8rend le4r3er 4l3erg l8ergr 6lerkl 6l5erzie +8lerö 8lesel lesi5e le3sko le3tha let1s 5leuc 4leuro leu4s3t le5xe 6lexp +l1f 2l1g lgend8 l8gh lglie3 lglied6 6l1h 1li li1ar li1as 2lick li8dr li1en +lien6n li8ers li8ert 2ließ 3lig li8ga8b li1g6n li1l8a 8limb li1na +4l3indu lings5 4l3inh 6linj link4s3 4linkt 2lint 8linv lion5s6t 4lipp 5lipt +4lisam livi5e 6l1j 6l1k l8keim l8kj lk2l lko8f lkor8 lk2sa lk2se 6ll l1la +ll3a4be l8labt ll8anl ll1b ll1c ll1d6 l1le l4l3eim l6l5eise ller3a l4leti +l5lip l1lo ll3ort ll5ov ll6spr llte8 l1lu ll3urg l1lä l5lü l6lüb +2l1m l6m5o6d 6ln l1na l1no 8lobl lo6br 3loch. l5o4fen 5loge. 5lohn 4l3ohr +1lok l2on 4l3o4per lo1ra 2l1ord 6lorg 4lort lo1ru 1los. lo8sei 3losig +lo6ve lowi5 6l1p lp2f l8pho l8pn lp4s3te l2pt l1q 8l1r 2ls l1sa l6sarm l1sc +l8sec l6s5erg l4s3ers l8sh l5s6la l1sp ls4por ls2pu l1str l8suni l1sü +2l1t lt5amp l4t3ein l5ten l6t5eng l6t5erp l4t3hei lt3her l2t1ho l6t5i6b +lti1l l8trö lt1sc lt6ser lt4s3o lt5ums lu8br lu2dr lu1en8 8lu8fe luft3a +luf8tr lu6g5r 2luh l1uhr lu5it 5luk 2l1umf 2l1umw 1lun 6l5u6nio 4l3unte +lu5ol 4lurg 6lurs l3urt lu4sto lu3str lu6st5re lu8su lu6tal lu6t5e6g +lu8terg lu3the lu6t5or lu2t1r lu6ß5 l1v lve5r6u 2l1w 1ly lya6 6lymp +ly1no l8zess l8zo8f l3zwei lz5wu 3länd lä5on lä6sc lät1s +5läuf 2läug läu6s5c lä5v l1öl 1lös lö1ß6t 6l1übe +1ma 8mabg ma5chan mad2 ma5el 4magg mag8n ma1la ma8lau mal5d 8malde mali5e +malu8 ma8lut 2m1amp 3man mand2 man3ds 8mangr mani5o 8m5anst 6mappa 4m3arbe +mar8kr ma1r4o mar8schm 3mas ma1sc ma1tö 4m5auf ma5yo 2m1b mb6r 2m1c 2m1d +md6sä 1me me1ch me5isc 5meld mel8sa 8memp me5nal men4dr men8schl +men8schw 8mentsp me1ra mer4gl me1ro 3mes me6s5ei me1th me8ß 2m1f6 2m1g +2m1h 1mi mi1a mi6ale mi1la 2m1imm mi1na mi5nü mi4s3an mit1h mi5t6ra +3mitt mitta8 mi6ß5 6mj 2m1k8 2m1l 2m1m m6mad m6m5ak m8menth m8mentw +mme6ra m2mn mm5sp mm5ums mmut5s m8män m1n8 m5ni 1mo mo5ar mo4dr 8mof +mo8gal mo4kla mol5d m2on mon8do mo4n3od mont8a 6m5ony mopa6 mo1ra mor8d5a +mo1sc mo1sp 5mot moy5 2mp m1pa mpfa6 mpf3l mphe6 m1pi mpin6 m1pl mp2li +m2plu mpo8ste m1pr mprä5 mp8th mput6 mpu5ts m1pö 8m1q 2m1r 2ms ms5au +m1sc msch4l ms6po m3spri m1str 2m1t mt1ar m8tein m2t1h mt6se mt8sä mu5e +6m5uh mumi1 1mun mun6dr muse5e mu1ta 2m1v mvol2 mvoll3 2m1w 1my 2m1z +mä6kl 1män mä1s mä5tr mäu4s3c 3mäß möb2 6möl +1mü 5mün 3müt 1na. n5ab. 8nabn n1abs n1abz na6bä na2c nach3e +3nacht 1nae na5el n1afr 1nag 1n2ah na8ha na8ho 1nai 6nair na4kol n1akt +nal1a 8naly 1nama na4mer na1mn n1amp 8n1amt 5nanc nan6ce n1and n6and. +2n1ang 1nani 1nann n1ans 8nanw 5napf. 1n2ar. na2ra 2n1arc n8ard 1nari +n8ark 6n1arm 5n6ars 2n1art n8arv 6natm nat6s5e 1naue 4nauf n3aug 5naui +n5auk na5um 6nausb 6nauto 1nav 2nax 3naz 1naß n1b2 nbau5s n1c nche5e +nch5m 2n1d nda8d n2d1ak nd5ans n2d1ei nde8lac ndel6sa n8derhi nde4se +nde8stal n2dj ndnis5 n6d5or6t nd3rec nd3rot nd8samt nd6sau ndt1h n8dumd 1ne +ne5as ne2bl 6n5ebn 2nec 5neei ne5en ne1g4l 2negy 4n1ein 8neis 4n3e4lem +8nemb 2n1emp nen1a 6n5energ nen3k 8nentb 4n3en3th 8nentl 8n5entn 8n5ents +ne1ra ne5r8al ne8ras 8nerbi 6n5erde. nere5i6d nerfor6 6n5erhö 8nerlö +2n1err n8ers. 6n5ertra 2n1erz nesi3e net1h neu4ra neu5sc 8neuß n1f nf5f +nf2l nflei8 nf5lin nft8st n8g5ac ng5d ng8en nge8ram ngg2 ng1h n6glic ng3rip +ng8ru ng2se4 ng2si n2g1um n1gy n8gäl n1h nhe6r5e 1ni ni1bl ni5chä +ni8dee n6ie ni1en nie6s5te niet5h ni8etn 4n3i6gel n6ik ni1la 2n1imp ni5na +2n1ind 8ninf 6n5inh ni8nit 6n5inn 2n1ins 4n1int n6is ni3str ni1th ni1tr n1j +n6ji n8kad nk5ans n1ke n8kerla n1ki nk5inh n5klö n1k2n n8k5not nk3rot +n8krü nk5spo nk6t5r n8kuh n6küb n5l6 nli4mi n1m nmen4s n1na n8nerg +nni5o n1no nn4t3ak nnt1h nnu1e n1ny n1nä n1nö n1nü no5a no4b3la +4n3obs 2nobt noche8 no6die no4dis no8ia no5isc 6n5o6leu no4mal noni6er +2n1onk n1ony 4n3o4per 6nopf 6nopti no3ra no4ram nor6da 4n1org 2n1ort n6os +no1st 8nost. no8tan no8ter noty6pe 6n5ox n1p2 n1q n1r nrös3 6ns n1sac +ns3ang n1sc n8self n8s5erf n8serg n6serk ns5erw n8sint n1s2pe n1spr +n6s5tat. n5s6te. n6stob n1str n1ta n4t3a4go nt5anh nt3ark nt3art n1te +nt3eis nte5n6ar nte8nei nter3a nte6rei nt1ha nt6har n3ther nt5hie n3thus +n1ti nti1c n8tinh nti1t ntlo6b ntmen8 n1to nt3o4ti n1tr ntra5f ntra5ut +nt8rea nt3rec nt8rep n4t3rin nt8rop n4t3rot n4trü nt1s nts6an nt2sk n1tu +nt1z n1tä n1tö n8töl n1tü 1nu nu1a nu5el nu5en 4n1uhr nu5ie +8numl 6n5ums 6n5umw 2n1und 6nuni 6n5unr 2n1unt 2nup 2nu6r n5uri nu3skr +nu5ta n1v 8n1w 1nys n1za n6zab n2z1ar n6zaus nzi4ga n8zof n6z5unt n1zw +n6zwir 1näc 5näe 5näi n8äl nä6m nä6re n5ärz 5näus +n1öl 1nöt n5öz 5nü. 6n1ü2b 5nüß o5ab. oa2l o8ala +o1a2m o1an ob1ac obe4ra o6berh 5o4bers o4beru obe6ser 1obj o1bl o2bli ob5sk +3obst. ob8sta obst5re ob5sz o1che oche8b o8chec o3chi och1l och3m ocho8f +o3chro och3to o3chu och1w o1d o2d1ag od2dr ode5i ode6n5e od1tr o5e6b +o5e6der. oe8du o1ef o1e2l o1e2p o1er. o5e8x o1fa of8fan 1offi of8fin +of6f5la o5fla o1fr 8o1g og2n o1ha o1he o6h5eis o1hi ohl1a oh1le oh4l3er +5ohm. oh2ni o1ho oh1re oh1ru o1hu oh1w o1hy o1hä o5ia o1id. o8idi +oi8dr o5ids o5isch. oiset6 o1ism o3ist. o5i6tu o1j o1k ok2l ok3lau +o8klä 1okta o1la old5am old5r o1le ole5in ole1r ole3u ol6gl ol2kl olk4s1 +ol8lak ol8lauf. ol6lel ol8less o1lo ol1s ol6sk o1lu oly1e2 5olym o2mab +om6an o8mau ombe4 o8merz om5sp o1mu o8munt o1mä o1mö o1na ona8m on1ax +on8ent o6n5erb 8oni oni5er. on1k on6n5a6b o1no ono1c o4nokt 1ons onts8 +o1nä oo8f 1oog oo2pe oo2sa o1pa 3o4pera o3pfli opf3lo opf3r o1pi o1pl +o2pli o5p6n op8pa op6pl o1pr o3p4ter 1opti o1pä o5pö o1q o1ra. o3rad +o8radd 1oram o6rang o5ras o8rauf or5cha or4d3a4m or8dei or8deu 1ordn or4dos +o1re o5re. ore2h o8r5ein ore5isc or6enn or8fla or8fli 1orga 5orgel. or2gl +o1ri 5o6rient or8nan or8nä o1ro or1r2h or6t5an or8tau or8tere o1rus o1ry +o1rä or1ü2 o1sa osa3i 6ose o8serk o1sk o6ske o6ski os2kl os2ko os2kr +osni5e o2s1o2d o3s4per o4stam o6stau o3stra ost3re osu6 o6s5ur o5s6ze o1ta +ot3auf o6taus o1te o6terw o1th othe5u o2th1r o1ti o1to oto1a ot1re o1tri +o1tro ot1sc o3tsu ot6t5erg ot2t3h ot2t5r ot8tö o1tu ou3e ouf1 ou5f6l +o5u6gr ou5ie ou6rar ou1t6a o1v o1wa o1we o6wer. o1wi owid6 o1wo o5wu o1xe +oy5al. oy1e oy1i o5yo o1z oza2r 1o2zea ozo3is oö8 oß5elt oß1t +3paa pa6ce 5pad pag2 1pak pa1la pa8na8t pani5el pa4nor pan1s2 1pap pap8s +pa8rei par8kr paro8n par5o6ti part8e 5partei 3partn pas6sep pa4tha 1pau +6paug pau3sc p1b 8p5c 4p1d 1pe 4peic pe5isc 2pek pen3k pen8to8 p8er pe1ra +pere6 per5ea per5eb pe4rem 2perr per8ran 3pers 4persi pe3rü pe4sta pet2s +p2f1ec p4fei pf1f pf2l 5pflanz pf8leg pf3lei 2pft pf3ta p1g 1ph 2ph. +2p1haf 6phb 8phd 6p5heit ph5eme 6phg phi6e 8phk 6phn p5holl pht2 ph3tha +4ph3the phu6 6phz pi1en pi5err pi1la pi1na 5pinse pioni8e 1pis pi1s2k pi1th +p1k pl8 5pla p2lau 4plei p3lein 2pler 6p5les 2plig p6lik 6p5ling p2liz +plo8min 6p1m p1n 1p2o 8poh 5pol po8lan poly1 po3ny po1ra 2porn por4t3h +po5rö 5poti p1pa p6p5ei ppe6la pp5f p2p1h p1pi pp1l ppp6 pp5ren pp1s +p5pö pr6 3preis 1pres 2p3rig 5prinz 1prob 1prod 5prog pro8pt pro6t5a +prote5i 8proß prä3l 1präs präte4 1prüf p5schl 2pst 1p2sy p1t +p8to8d pt1s 5p6ty 1pu pu1b2 2puc pu2dr puf8fr 6p5uh pun8s pu8rei pu5s6h +pu1ta p1v p3w 5py py5l p1z pä6der p5ä6m pä8nu 8pär pät5h +pät1s qu6 1qui 8rabk ra6bla 3rable ra2br r1abt 6rabz ra4dan ra2dr 5rafal +ra4f3er ra5gla ra2g3n 6raha ral5am 5rald 4ralg ra8lins 2rall ral5t 8ramei +r3anal r6and ran8der ran4dr 8ranf 6ranga 5rangi ran8gli r3angr rans5pa +8ranw r8anz. ra5or 6rapf ra5pl rap6s5er 2r1arb 1rarh r1arm ra5ro 2r1art +6r1arz ra8tei ra6t5he 6ratl ra4t3ro r5atta raue4n 6raus. r5austa rau8tel +raut5s ray1 r1b rb5lass r6bler rb4lie rbon6n r8brecht rb6s5tä r8ces +r1che rch1l rch3m rch3re rch3tr rch1w 8rd r1da r8dachs r8dap rda5ro rde5ins +rdio5 r8dir rd3ost r1dr r8drau 1re. re1ak 3reakt re3als re6am. re1as +4reben re6bl rech5a r8edi re3er 8reff 3refl 2reh 5reha r4ei. reich6s5 +8reier 6reign re5imp 4r3eina 6r3einb 6reing 6r5einn 6reinr 4r3eins r3eint +reli3e 8r5elt 6rempf 2remt ren5a6b ren8gl r3enni 1reno 5rente 4r3enth +8rentl 4r3entw 8rentz ren4zw re1on requi5 1rer rer4bl 6rerbs 4r3erd +8rerhö 8rerkl 4r3erla 8rerlö 4r3erns 6r5ernä rer5o 6r5erreg r5ertr +r5erwec r5erö re2sa re8schm 2ress re5u8ni 6rewo 2r1ex r1f r8ferd rf4lie +8r1g r8gah rge4bl rge5na rgest4 rg6ne r2gni2 r8gob r4g3ret rg8sel r1h8 r2hy +5rhyt ri1ar ri5cha rid2g r2ie rieg4s5 ri8ei ri1el ri6ele ri1en ri3er. +ri5ers. ri6fan ri8fer ri8fr 1r2ig ri8kn ri5la rimä8 ri1na r8inde rin4ga +rin6gr 1rinn 6rinner rino1 r8insp 4rinst ri1nä ri5o6ch ri1o2d ri3o6st +2r1ir r2is ri3sko ri8spr ri8stü ri5sv r2it 6r5i6tal ri5tr ri6ve. 8r1j +6rk r1ke rkehrs5 r1ki r3klin r1k2n rk3str rk4t3an rk6to r6kuh rkä4s3t +r1l r5li rline5a 6r1m r6manl rma4p r4m3aph r8minf r8mob rm5sa 2rn r1na +rna8be r5ne rn2ei r6neif r6nex r6nh rn1k r1no r6n5oc rn1sp r1nä r1nü +ro6bern 6robs ro1ch 3rock. ro5de ro1e 4rofe ro8hert 1rohr ro5id ro1in +ro5isc 6rolym r2on 6roog ro6phan r3ort ro1s2p ro5s6w ro4tau ro1tr ro6ts +5rout r1p rpe8re rp2f r2ps r2pt r1q 2rr r1ra r1re rrer6 rr6hos r5rhö +r1ri r1ro rro8f rr8or rror5a r1ru r3ry r1rä r1rö r1rü 2r1s r6sab +r4sanf rse6e rse5na r2sh r6ska r6ski rs2kl r8sko r2sl rs2p r6stauf r8sterw +r8stran rswi3d4 r2sz 2r1t rt3art r8taut r5tei rt5eige r8tepe r4t3erh +r8terla r4t3hei r5t6hu r4t3int rt5reif rt1sc rt6ser rt6s5o rt6s5u rt5und +r8turt rube6 ru1en 1r4uf ruf4st ru1ie 2r1umg 2r1uml 2rums run8der run4d5r +6rundz 6runf 8runs 2r1unt 2r1ur r6us ru6sta ru3str ru6tr 1ruts r1v rven1 +rvi2c r1w r1x r1za rz5ac r6z5al r8z1ar r8zerd r6z5erf rz8erh rz4t3h r8zum +rä4ste räu8sc r1öf 5röhr rö5le 3röll 5römis r1ör +rö2sc 3rümp 1sa. 1saa s3a4ben sa2bl 2s1abs 6s1abt 6sabw 3sack. +6s3a4der 1saf sa1fa 4s1aff sa5fr 1sag 1sai sa1i2k1 4s1akt 1sal sa1la +4s3alpi 6salter salz3a 1sam s5anb san2c 1sand s5angeh 6sanl 2s1ans 6s3antr +8s1anw s1ap s6aph 8sapo sap5p6 s8ar. 2s1arb 3sarg s1arm sa5ro 2s1art +6s1arz 1sas 1sat sat8a 2s1atl sa8tom 3s8aue s5auff sau5i s6aur 2s1aus +5s6ause 2s1b2 2sca s4ce 8sch. 3scha. 5schade 3schaf 3schal sch5ame +8schanc 8schb 1sche 6schef 8schex 2schf 2schg 2schh 1schi 2schk 5schlag +5schlu 6schmäß 6schnaß 1scho 6schord 6schp 3schri 8schric 8schrig +8schrou 6schs 2scht sch3ta sch3tr 1schu 8schunt 6schv 2schz 5schö +5schü 2sco scre6 6scu 2s1d 1se se5an se1ap se6ben se5ec see5i6g se3erl +8seff se6han se8hi se8hö 6s5eid. 2s1eig s8eil 5sein. sei5n6e 6s5einh +3s8eit 3sel. se4lar selb4 6s3e4lem se8lerl 2s1emp sen3ac se5nec 6s5ents +4sentz s8er. se8reim ser5inn 8sermä 8s5erzi 6seröf se1um 8sexa 6sexp +2s1f2 sfal8ler 2s3g2 sge5b2 s1h s8hew 5s6hip 5s4hop 1si 2siat si1b sicht6s +6s5i6dee siege6s5 si1en si5err si1f2 si1g2n si6g5r si8kau sik1i si4kin +si2kl si8kü si1la sil6br si1na 2s1inf sin5gh 2s1inh sinne6s5 2s1ins +si5ru si5str 4s1j s1k2 6sk. 2skau skel6c skelch5 s6kele 1s2ki. 3s4kin. +s6kiz s8kj 6skn 2skow 3skrib 3skrip 2sku 8skü s1l s8lal slei3t s4low +2s1m s1n 6sna 6snot 1so so1ch 2s1odo so4dor 6s5o4fen solo3 s2on so5of 4sope +so1ra 2s1ord 4sorga sou5c so3un 4s3ox sp2 8spaa 5spal 1span 2spap s2pec +s4peis 1spek s6perg 4spers s6pes 2s1pf 8sphi 1s2phä 1spi spi4e 6s5pig +6spinse 2spis 2spla 2spol 5s6pom 6s5pos 6spoti 1spra 3s8prec 6spreis +5spring 6sprob 1spru s2pul 1s2pur 6spy 5spän 1spü s1q 2s1r 2s1s2 +sse8nu ssini6s ssoi6r 2st. 1sta 4stafe 2stag sta3la 6stale 4stalg 8stalk +8stamt 6st5anf 4stans 6stanw 6starb sta4te 6staus 2stb 6stc 6std 1ste +4steil 3s2tel st3elb 8stemb 6steppi 8stese 8stesse 6stf 2stg 2sth st1ha +st3hei s8t1hi st1ho st5hu 1sti sti4el 4stigm sti3na 6stind 4stinf sti8r +2stk 2stl 2stm 1sto 6stoll. 4st3ope 6stopf. 6stord 6stp 5stra. 4strai +3s4tral 6s5traum 3straß 3strec 6s3tref 8streib 5streif 6streno 6stres +6strev 5s6tria 6strig 5strik 8strisi 3s4troa s8troma st5rose 4struf 3strum +6sträg 2st1s6 2stt 1stu stu5a 4stuc 2stue 8stun. 2stv 2stw s2tyl 6stz +1stä 8stäg 1stö 1stü 8stüch 4stür. 1su su2b1 3suc su1e +su2fe su8mar 6sumfa 8sumk 2s1unt sup1p2 6s5u6ran 6surte 2s1v 2s1w 1sy 8syl. +sy5la syn1 sy2na syne4 s1z s4zend 5s6zene. 8szu 1sä 6s5änd 6säugi +6säuß 5söm 2s1ü2b 1süc sü8di 1sün 5süß taats3 +4tab. taba6k ta8ban tab2l ta6bre 4tabs t3absc 8tabz 6t3acht ta6der 6tadr +tad6s tad2t 1tafe4 1tag ta6ga6 ta8gei tage4s tag6s5t tah8 tahl3 tai6ne. +ta5ir. tak8ta tal3au 1tale ta8leng tal5ert 6t5a6mer 6tamp tampe6 2t1amt +tan5d6a tan8dr tands5a tani5e 6tanl 2tanr t3ans 8t5antr tanu6 t5anw 8tanwa +tan8zw ta8rau 6tarbe 1tari 2tark 2t1arm ta1ro 2tart t3arti 6tarz ta1sc +ta6sien ta8stem ta8sto t5aufb 4taufn 8taus. 5tause 8tausf 6tausg t5ausl +2t1b2 2t1c t6chu 2t1d te2am tea4s te8ben 5techn 4teff te4g3re te6hau 2tehe +te4hel 2t1ehr te5id. teig5l 6teign tei8gr 1teil 4teinh t5einhe 4teis +t5eisen 8teiw te8lam te4lar 4telek 8telem te6man te6n5ag ten8erw ten5k +tens4p ten8tro 4t3entw 8tentz te6pli 5teppi ter5a6b te3ral ter5au 8terbar +t5erbe. 6terben 8terbs 4t3erbt t5erde. ter5ebe ter5ein te8rers terf4 +8terhö 6terklä ter8nor ter6re. t8erscha t5e6sel te8stau t3euro te1xa +tex3e 8texp tex6ta 2t1f2 2t1g2 2th. th6a 5tha. 2thaa 6t1hab 6t5haf t5hah +8thak 3thal. 6thals 6t3hand 2t1hau 1the. 3t4hea t1heb t5heil t3heit +t3helf 1theo 5therap 5therf 6t5herz 1thes 1thet 5thi. 2t1hil t3him 8thir +3this t5hj 2th1l 2th1m th1n t5hob t5hof 4tholz 6thopti 1thr6 4ths t1hum +1thy 4t1hä 2t1hö t1hü ti1a2m ti1b tie6fer ti1en ti8gerz tig3l +ti8kin ti5lat 1tilg t1ind tin4k3l ti3spa ti5str 5tite ti5tr ti8vel ti8vr +2t1j 2t1k2 2t1l tl8a 2t1m8 2t1n 3tobe 8tobj to3cha 5tocht 8tock tode4 +to8del to8du to1e 6t5o6fen to1in toi6r 5toll. to8mene t2ons 2t1ony to4per +5topf. 6topt to1ra to1s to6ska tos2l 2toti to1tr t8ou 2t1p2 6t1q tr6 +tra5cha tra8far traf5t 1trag tra6gl tra6gr t3rahm 1trai t6rans tra3sc +tra6st 3traue t4re. 2trec t3rech t8reck 6t1red t8ree 4t1reg 3treib 4treif +8t3reis 8trepo tre6t5r t3rev 4t3rez 1trib t6rick tri6er 2trig t8rink +tri6o5d trizi5 tro1a 3troc trocke6 troi8d tro8man. tro3ny 5tropf 6t5rosa +t5roß 5trub 5trup trut5 1träg 6t1röh 5trüb trü3bu t1rüc +t1rüs 2ts ts1ab t1sac tsa8d ts1ak t6s5alt ts1an ts1ar ts3auf t3schr +t5schä tse6e tsee5i tsein6s ts3ent ts1er t8serf t4serk t8sh 5t6sik +t4s3int ts5ort. t5s6por t6sprei t1st t6s5tanz ts1th t6stit t4s3tor 1t2sua +t2s1uf t8sum. t2s1u8n t2s1ur 2t1t tt5eif tte6sa tt1ha tt8ret tt1sc tt8ser +tt5s6z 1tuc tuch5a 1tu1e 6tuh t5uhr tu1i tu6it 1tumh 6t5umr 1tums 8tumt +6tund 6tunf 2t1unt tu5ra tu6rau tu6re. tu4r3er 2t1v 2t1w 1ty1 ty6a ty8la +8tym 6ty6o 2tz tz5al tz1an tz1ar t8zec tzeh6 tzehn5 t6z5ei. t6zor t4z3um +t6zäu 5täg 6täh t5ält t8än täre8 8tä8st 6täuß +t5öffen 8tö8k 1tön 4tüb t6ü5ber. 5tüch 1tür. u3al. +u5alb u5alf u3alh u5alk u3alp u3an. ua5na u3and u5ans u5ar. ua6th u1au +ua1y u2bab ubi5er. u6b5rit ubs2k u5bö u8büb 2uc u1che u6ch5ec u1chi +uch1l uch3m uch5n uch1r uch5to ucht5re u1chu uch1w uck1a uck5in u1d ud4a +u1ei u6ela uene8 u6ep u1er uer1a ue8rerl uer5o u8esc u2est u8ev u1fa u2f1ei +u4f3ent u8ferh uf1fr uf1l uf1ra uf1re uf1rä uf1rü uf1s2p uf1st uft1s +u8gabt u8gad u6gap ugeb8 u8gn ugo3s4 u1ha u1he u1hi uh1le u1ho uh1re u1hu +uh1w u1hä u1hö 6ui ui5en u1ig u3ins uin8tes u5isch. u1j 6uk u1ke +u1ki u1kl u8klu u1k6n u5ky u1la uld8se u1le ul8lac ul6lau ul6le6l ul6lo +ulni8 u1lo ulo6i ult6a ult8e u1lu ul2vr u1lä u1lö 3umfan 5umlau umo8f +um8pho u1mu umu8s u5mö u1n1a un2al un6at unau2 6und. 5undein un4d3um +3undzw undü8 un8düb une2b un1ec une2h un3eis 3unfal 1unfä 5ungea +3unglü ung2s1 un8gä 1u2nif un4it un8kro unk5s u1no unpa2 uns2p unvol4 +unvoll5 u5os. u1pa u1pi u1p2l u1pr up4s3t up2t1a u1q u1ra ur5abs ura8d +ur5ah u6rak ur3alt u6rana u6r5ans u8rap ur5a6ri u8ratt u1re ur3eig ur8gri +u1ri ur5ins 3urlau urmen6 ur8nan u1ro 3ursac ur8sau ur8sei ur4sk 3urtei +u1ru uru5i6 uru6r u1ry ur2za ur6zä ur5ä6m u5rö u1rü urück3 +u1sa usa4gi u2s1ar u2s1au u8schec usch5wi u2s1ei use8kel u8sl u4st3a4b +us3tau u3s4ter u2s1uf u8surn ut1ac u1tal uta8m u1tan ut1ar u1tas ut1au u1te +u8teic u4tent u8terf u6terin u4t3hei ut5ho ut1hu u1ti utine5 uti6q u1to +uto5c u1tr ut1sa ut1s6p ut6stro u1tu utz5w u1u u1v uve5n uve3r4ä u1w +u1xe u5ya uy5e6 u1yi u2z1eh u8zerh u5ö uße6n ußen5e 8vanb 6vang +6varb var8d va6t5a va8tei va2t1r 2v1b 6v5c 6vd 1ve 6ve5g6 ver1 ver5b verb8l +ve2re2 verg8 ve2ru8 ve1s ve2s3p ve3xe 2v1f 2v1g 6v5h vi6el vie6w5 vi1g4 +vi8leh vil6le. 8vint vi1ru vi1tr 2v1k 2v1l 2v1m 4v5n 8vo8f voi6le vol8lend +vol8li v2or1 vo2re vo8rin vo2ro 2v1p 8vra v6re 2v1s 2v1t 2v1v 4v3w 2v1z +waffe8 wa6g5n 1wah wah8n wa5la wal8din wal6ta wan4dr 5ware wa8ru war4za +1was w5c w1d 5wech we6fl 1weg we8geng weg5h weg3l we2g1r weh6r5er 5weise +weit3r wel2t welt3r we6rat 8werc 5werdu wer4fl 5werk. wer4ka wer8ku wer4ta +wer8term we2sp we8stend we6steu we8str we8stö wet8ta wich6s5t 1wid wi2dr +wiede4 wieder5 wik6 wim6ma win4d3r 5wirt wisch5l 1wj 6wk 2w1l 8w1n wo1c +woche6 wol6f wor6t5r 6ws2 w1sk 6w5t 5wunde. wun6gr wu1sc wu2t1 6w5w wy5a +wärme5 wä1sc 1xag x1ak x3a4men 8xamt x1an 8x1b x1c 1xe. x3e4g 1xen +xe1ro x1erz 1xes 8xf x1g 8x1h 1xi 8xid xi8so 4xiste x1k 6x1l x1m 8xn 1xo +8x5o6d 8x3p2 x1r x1s6 8x1t x6tak x8terf x2t1h 1xu xu1e x5ul 6x3w x1z 5ya. +y5an. y5ank y1b y1c y6cha y4chia y1d yen6n y5ern y1g y5h y5in y1j y1k2 +y1lak yl1al yla8m y5lax y1le y1lo y5lu y8mn ym1p2 y3mu y1na yno2d yn1t +y1on. y1o4p y5ou ypo1 y1pr y8ps y1r yri3e yr1r2 y1s ys5iat ys8ty y1t y3w +y1z yä8m z5a6b zab5l 8za6d 1zah za5is 4z3ak 6z1am 5zange. 8zanl 2z1ara +6z5as z5auf 3zaun 2z1b 6z1c 6z1d 1ze ze4dik 4z3eff 8zein zei4ta zei8ters +ze6la ze8lec zel8th 4zemp 6z5engel zen8zin 8zergä zer8i ze1ro zers8 +zerta8 zer8tab zer8tag 8zerz ze8ste zeu6gr 2z1ex 2z1f8 z1g 4z1h 1zi zi1en +zi5es. 4z3imp zi1na 6z5inf 6z5inni zin6s5er 8zinsuf zist5r zi5th zi1tr +6z1j 2z1k 2z1l 2z1m 6z1n 1zo zo6gl 4z3oh zo1on zor6na8 4z1p z5q 6z1r 2z1s8 +2z1t z4t3end z4t3hei z8thi 1zu zu3al zu1b4 zu1f2 6z5uhr zun2a 8zunem zunf8 +8zungl zu1o zup8fi zu1s8 zu1z 2z1v zw8 z1wal 5zweck zwei3s z1wel z1wer +z6werg 8z5wes 1zwi zwi1s 6z1wo 1zy 2z1z zz8a zzi1s 1zä 1zö 6zöl. +zö1le 1zü 2z1ü2b ä1a6 äb1l ä1che ä3chi äch8sc +äch8sp ä5chu äck5a äd1a äd5era ä6d5ia ä1e ä5fa +äf1l äft6s äg1h äg3le ä6g5nan äg5str ä1he ä1hi +äh1le äh5ne 1ähnl äh1re äh5ri äh1ru ä1hu äh1w +6äi ä1isc ä6ische ä5ism ä5j ä1k äl1c ä1le ä8lei +äl6schl ämi1e äm8n äm8s ä5na 5änderu äne5i8 äng3l +änk5l ä1no än6s5c ä1pa äp6s5c 3äq är1c ä1re +äre8m 5ärgern är6gl ä1ri 3ärmel ä1ro ärt6s5 ä1ru +3ärztl ä5rö ä6s5chen äsen8s äs1th äta8b ä1te +äteri4 äter5it ä6thy ä1ti 3ätk ä1to ät8schl äts1p +ä5tu äub1l äu1e 1äug äu8ga äu5i ä1um. ä1us. +1äuß ä1z ö1b ö1che ö5chi öch8stei öch8str öcht6 +5ö6dem 5öffn ö1he öh1l8 öh1re ö1hu ö1is ö1ke +1ö2ko 1öl. öl6k5l öl8pl ö1mu ö5na önig6s3 ö1no +ö5o6t öpf3l öp6s5c ö1re ör8gli ö1ri ör8tr ö1ru +5österr ö1te ö5th ö1ti ö1tu ö1v ö1w öwe8 ö2z +üb6e2 3ü4ber1 üb1l üb1r 5ü2bu ü1che ü1chi ü8ch3l +üch6s5c ü8ck ück1a ück5ers üd1a2 ü6deu üdi8t ü2d1o4 +üd5s6 üge4l5a üg1l üh5a ü1he ü8heh ü6h5erk üh1le +üh1re üh1ru ü1hu üh1w ü3k ü1le ül4l5a ül8lo +ül4ps ül6s5c ü1lu ün8da ün8fei ünk5l ün8za ün6zw +ü5pi ü1re ü8rei ür8fl ür8fr ür8geng ü1ri ü1ro +ür8sta ür8ster ü1ru üse8n ü8sta ü8stes ü6s5tete +ü3ta ü1te ü1ti üt8tr ü1tu üt8zei ü1v ß1a8 5ßa. +ß8as ß1b8 ß1c ß1d 1ße ß5ec 8ße8g 8ße8h 2ß1ei +8ßem ß1f8 ß1g ß1h 1ßi ß1k ß1l ß1m ßmana8 ß1n +ß1o ß1p8 ß5q ß1r ß1s2 ßst8 ß1ta ß1te ßt3hei +ß1ti ß5to ß1tr 1ßu8 6ß5um ß1v ß1w ß1z diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/italian.lh b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/italian.lh new file mode 100755 index 0000000000000..99ccee28fa6eb --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/italian.lh @@ -0,0 +1,99 @@ +Lout hyphenation information +% +% This is an Italian hyphenation file constructed by Daniele Giacomini +% (daniele@evo.it) on 03 February 1999 from a TeX file supplied by +% Claudio Beccari (beccari@polito.it). +% +% Removed some patterns that generated ``internal error'' message. +% + +Classes: +@!$%^&*()_-+=~`{[}]:;'|<,.>?/0123456789 +aA +bB +cC +dD +eE +fF +gG +hH +iI +jJ +kK +lL +mM +nN +oO +pP +qQ +rR +sS +tT +uU +vV +wW +xX +yY +zZ +àÀ +èÈ +éÉ +ìÌ +òÒ +ùÙ + +Patterns: +.anti1 .anti3m2n +.di2s3cine +.e2x +.fran2k3 +.circu2m1 +.wa2g3n +.ca4p3s +.opto1 +.para1 +.pre1 +.p2s +%.ri1a2 .ri1e2 .re1i2 .ri1o2 .ri1u2 +.su2b3lu .su2b3r +.wel2t1 +3p2sic +3p2neu1 +a1ia a1ie a1io a1iu a1uo a1ya 2at. +e1iu e2w +io1i +o1ia o1ie o1io o1iu +u1u +% +'2 +1b 2bb 2bc 2bd 2bf 2bm 2bn 2bp 2bs 2bt 2bv + b2l b2r 2b. 2b'. +1c 2cb 2cc 2cd 2cf 2ck 2cm 2cn 2cq 2cs 2ct 2cz + 2chh c2h 2chb ch2r 2chn c2l c2r 2c. 2c'. .c2 +1d 2db 2dd 2dg 2dl 2dm 2dn 2dp d2r 2ds 2dt 2dv 2dw + 2d. 2d'. .d2 +1f 2fb 2fg 2ff 2fn f2l f2r 2fs 2ft 2f. 2f'. +1g 2gb 2gd 2gf 2gg g2h g2l 2gm g2n 2gp g2r 2gs 2gt + 2gv 2gw 2gz 2gh2t 2g. 2g'. +1h 2hb 2hd h2l 2hm 2hn 2hr 2hv 2h. 2h'. +1j 2j. 2j'. +1k 2kg 2kf k2h 2kk k2l k2r 2kt 2k. 2k'. +1l 2lb 2lc 2ld 2l3f2 2lg l2h 2lk 2ll 2lm 2ln 2lp + 2lq 2lr 2ls 2lt 2lv 2lw 2lz 2l. 2l'. +1m 2mb 2mc 2mf 2ml 2mm 2mn 2mp 2mq 2mr 2ms 2mt 2mv 2mw + 2m. 2m'. +1n 2nc 2nd 2nf 2ng 2nk 2nl 2nm 2nn 2np 2nq 2nr 2ns n2s3r + 2nt 2nv 2nz 2n' n2g3n 2nheit. 2n'. +1p 2pd p2h p2l 2pn 2pp p2r 2ps 2pt 2pz 2p. 2p'. +1q 2qq 2q. 2q'. +1r 2rb 2rc 2rd 2rf r2h 2rg 2rk 2rl 2rm 2rn 2rp + 2rq 2rr 2rs 2rt rt2s3 2rv 2rx 2rw 2rz 2r. 2r'. +1s2 2shm 2s3s 2s3p2n 2stb 2stc 2std 2stf 2stg 2stm 2stn 2stp 2sts 2stt 2stv 2sz + 4s. 4s'. +1t 2tb 2tc 2td 2tf 2tg t2h t2l 2tm 2tn 2tp t2r 2ts 3t2sch + 2tt 2tv 2tw t2z 2tzk 2tzs 2t. 2t'. +1v 2vc 2vl v2r 2vv 2v. 2v'. +1w w2h wa2r 2w1y 2w. 2w'. +1x 2xw 2x. 2x'. +y1ou y1i +1z 2zb 2zd 2zl 2zn 2zp 2zt 2zs 2zv 2zz 2z. 2z'. .z2 diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/norweg.lh b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/norweg.lh new file mode 100755 index 0000000000000..e7f2eaa0d725d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/norweg.lh @@ -0,0 +1,6301 @@ +Lout hyphenation information +% +% Norwegian hyphenation file, created by +% Jeffrey H. Kingston 24 September 1994 from +% an uncommented file sent by Rolf Lindgren. +% +% \chardef\ae=3D'32 JeffK replaced \ae by \346 +% \chardef\o=3D'34 JeffK replaced \o by \370 +% \chardef\aa=3D'345 JeffK replaced \aa by \345 +% \lccode\ae=3D\ae +% \lccode\o=3D\o +% \lccode\aa=3D\aa +% \catcode\ae=3D11 +% \catcode\o=3D11 +% \catcode\aa=3D11 +% \def\ae{(^Z character deleted here by JeffK)}% +% \def\o{(^\ character deleted here by JeffK)}% +% \def\aa{=E5}% + +Classes: +@!$%^&*()_-+=~`{[}]:;'|<,.>?/0123456789 +aA +bB +cC +dD +eE +fF +gG +hH +iI +jJ +kK +lL +mM +nN +oO +pP +qQ +rR +sS +tT +uU +vV +wW +xX +yY +zZ +æÆ +øØ +åÅ + +Patterns: +.ad3s +.ai4 +.ak5kl +.ak3kr +.ak5r +.al5k +.alli3a +.all5s +.al4t3et +.al4t3o +.an5dra +.an3er +.an3es +.an3s +.ant1r +.arres4 +.art4 +.ast3r +.atta5c +.avi4 +.avis3 +.ba4ket +.be2ste +.bu3sta +.dau3s +.da3v +.dek5s +.des5ti +.dia1 +.disi5pl +.drag3s +.dør3 +.ek3l +.eks3t +.ek3v +.el5ek +.els4kl +.en3a4 +.eng3s4 +.en5in +.en3sp +.ep3l +.erob5 +.es1k +.es3p +.est3r +.et3r +.et5se +.ette2 +.et4tr +.et2tø +.eu3 +.fa4br +.fel2t +.fil2t3r +.fløy5 +.fra3s +.fri3e4 +.gang3s4 +.ge5na +.grun2n3 +.gå4i +.ha4ven +.hud3 +.hygi4 +.hygie3 +.iat4 +.ik4r +.imp4 +.in3a4 +.in3g4 +.inn1s2 +.io2 +.ion5i +.is4pr +.is3s +.is3ø +.je4t5 +.kaffe3 +.kal2kv +.ka4pr +.ke5ik. +.ke5ip. +.ke5iv. +.kjøt4 +.kole5s +.le4a +.le4f +.let4ta +.le4u +.li5a +.lik3s +.lov3 +.lo4va +.lu4b5 +.ly4den +.ly4sk +.løy3e +.man5t +.ma4to +.me4s5k +.midi3 +.mi4g3r +.mit5r +.mon5s4 +.my4s5o +.mør2kr +.ne2d3i +.ned3r +.ned1s +.ne2k3 +.ne4st +.ni5tre +.nor2d +.norsk3 +.of5r +.ok5k4 +.om1 +.om5p +.oms4 +.opp3ad +.op4pel +.oppo3f +.opp3s +.os3l +.os3p +.ot5r +.over3i +.pa3g +.pe4e +.pe3sti +.pe4t3r +.po4str +.pris3t +.ra4ja +.rang4s +.re4kli +.re3so +.re5ste +.riks3 +.ro4mi +.rom3st +.ror4s5 +.rosen3 +.ro5ve +.sel2e +.selv3a +.sen3d +.side3 +.sid3r +.si4st +.sjof4 +.sjøl1 +.sk4 +.skru3t +.små1 +.so3pe +.so3ve +.st4 +.så5re +.te4st +.tes5ti +.te4t +.tet3r +.ti4gr +.ti2l3 +.tro4e +.ts2 +.ub4 +.ue2 +.uk4 +.uls5 +.ulve3 +.ul4v5i +.unde2 +.unn5s +.up4r +.us4p +.us4u +.ut4rer +.ut5t4 +.vann1 +.veg3r +.ve4kl +.ve2l +.ve3ra +.vib5 +.vings2 +.vi5tr +.wes4t3 +.øk5i +.øs4tet +.øy4e +.øye3s4 +.ånds3 +.åt5a +a5alt +a3anl +a3ap +a5as +a1b +4abe +ab4h +a2b3l +abok5 +a2b3r +a3b4re +ab4ro +abus3 +aci5e +ac3in +a5cu +a3da +a4deks +adel2s +adesh3 +ad3j +4adl +a3dop +a1drag +ad3rei +ad3ri +ad4s5am +ads5i +ad3st +a3e2 +a4en +a4er +aes4t5 +5affæ +af3le +a1fra +af3ri +af4to +3a2gent +ag5ga +ag2gr +agg3s4 +a4gid +a2git +ag3la +ag3ord +a2gr +a3gret. +ag3ri +ag3ro +a5grø +ag5sen +ag3sj +ags5å +a4gur +ag5ur. +a1h +a5ib +a3inn +ai4ro +a5irs +ai4s5k +a1j +aje3s4 +2ak. +a1ka +a3ke. +a1ki +a3kj +ak4klæ +ak5kro +ak3l +ak4læ +ak5omb +ak3r +a3kred +ak5sku +ak5spa +aks4pe +ak3sta +ak5sto +ak3str +ak5stu +ak5sva +1aktig +ak4tre +4aku +a2k3v +a5ky +a3kå +a1la +a3lal +al5apr +al5art +ala3tr +a4lav +al5avi +ald3r +ald5sv +a3le +4ale. +a4leks +ale4ra +ale3s +ales5k +4alg. +al2gl +al4gå +2ali +alin5d +al3inn +a4l5int +alk5ve +al4l5ap +al4lep +5allie +al3lo +alls5po +alon4 +al3ord +al3p +al4sel +als4ka +als4ke. +als3kj +als5l +al3spo +al4stø +altek5s +al4tj +alt3op +a1lu +5a4lum +al3ur +aluta3 +al1vo +a1ly +a5læ +a2lø4 +a3lør +al3øv +a3lå +2am +a2mal +am3ald +am2br +amb5ra +ame5ra +a2meri +ame4tr +am5om. +a4m5os +am4pak +amp3l +am4pr +am1s +ams2l +am4sla +am4slø +am3s4t +amst5r +am5un +a2nal +an3al4f +1analy +an3art +an4dav +ands3i +andve5s4 +ane5d +an3e4ti +ang3l +an5g4o +an3gr +an4gren +3angrep +2a3ni +an5i4on +an2kr +ank5ra +ank5re +ank3ri +an4k5ve +an4k5å +an4nom +ann4skj +an4nø +2ano +a4nof +an5op +an3sa +3ansik +ansis5 +an2sk +an3skj +ans5pa +an2s3pi +an1s4t +an4s5u4 +an3sva +an4t5ap +an5te +an5t4i +ant5ord +an3tr +an4tra +a4nut +a4n5æ4 +4anø +a4n5øy +4ao +a5oh +a3ok +a3or +a3os +a5ot. +ao2v +a4p5ed +apet5 +a1pi +ap5j +a3pla +ap3li +apo3p +3appel +ap3p4r +ap3r +ap2sk +ap5spr +ap2s3t +a3psy +a3py3 +2ar. +a1ra +1arb +2arbi +2ard +ar4dj +ard5sti +a3re. +3a2rea +ared4 +ar5emb +ar5gh +2ari +arie4 +ar4kl +4arn +ar5nap +a1ro +ar5oks +ar3or +arp3s +ar3smø +ar4sn +ar4sta +3artil +ar5tri +ar4tro +ar4tår +a5rum +arve5s +3arvi +a1ry +ar5øy +a3rå +2as +a3s2a +as5and +asbe2 +asei4 +ase5id +ase5le +ase3s +as5jor +a2ska +as5kad +a3skar. +as3ko +a3skr +as3ku +a4s5ky +as3l +as5ma +as5na +as3p +3assist +as2s3k +as2s3n +as4s3op +as2s3p +as4stu +as5ta. +a3stad +as3tat +ast5egg +as5ter +aste5s +as3ti +a5stise +as5tisk +as3to +ast5re. +ast3ri +ast5un +as5tør +a3svi +2at +a1ta +ata4ko +ata5kr +ate5t +4ati +at5ion +at3j +3atla +5atlø +at4n5o +at2o +at4om +at5opp +ato3s +ato5u +ato3v +at3r +at4ra +4atri. +at4ry +at3sp +ats5å +att5o +at3tri +at2trå +at4t5ung +at4tør +a4tun +a3ty +a1t4ø +at5år +a2u +au3a +au4dal +au4dei +aud3s +aue4l +au5g4n +au3i +au5k4l +au4k3u +5aumur. +aur5s +aus3k +au4sp +aus4s5k +au2st +aus4tet +aust5re +au3su +au5te +aut4o +3aux +a1va +av5ank +ave5sl +aves5t +1avg +3avgi +a1vi +4avin +a4v5inn +avi5o4 +avi2s +a2vis. +av5ise. +av5ising +a1vo +a4vok +av3okt +av3sa +3avslu +5avsn +av3sv +4a3vu +5avv +a1væ +a3vø +a4v5øl +a5vå +a3ø4 +1b2a +3ba. +ba4k5end +bak5ett +ba4k5om +bak3t4 +ba3la +ba3na +bane3 +ba4sk +bass5t +ba4st +bas5ta +ba5t4r +bau4g +ba5yo +2b1b +bbel4 +bb3ru +b4bå4 +2b3d +5be +be5de +be3dr +be4d3re +begei5 +be5g4l +be4i +bek4l +bel5år +ber3sk +be1s4 +be5sm +be3sp +bes5s +bes5tev +be5tv +4bf +2b3h +1bi +bi5ap +bi5av +bi5br +bi3d +bik4ki +bik4l +bi4lei +bi4lo +bi2o +bi3s4a +bis3k +bis4la +bi2s4t3r +bis4v +bite4s5 +bi3tr +4bk +b2l +3b4la +b5lat +ble4mo +5b4lu +3b4ly +2bm +2b1n +bne3 +1bo +bo2k3 +bo4ko +bolt5 +bol4tr +bom1 +boms4 +bop4 +bor4t5o +bor4t5r +bor4tu +bo5r4u +bo3s4 +b2r +b4rad +bre4da +brei3s +3bren +3brev +3brikat +b3rio +b3rist +4brit +b3riu +3bru +4b5rua +bruk2s1 +bru3re +bru5spe +bru5s4t +3bry +3b4rø +2b1s2 +b5sc +b4s5of +bs3s +bs4te +4b5t +3bu +bu5d4e +bu4el +bu3o +bup4 +b4us +bus4h5 +bu5she +bu5skj +bu3sn +bu4sp +buss5t +4bw +5by +by5e +by5o4 +byr5i +3bø +3bå +bån4d +båt3r +1ca +ca5ra +4c1c +1cel +celeb3r +5ceu +4ch. +3cha +3chere +5chet +1chi +5chom +3chu +ch3v +2ck +cke4t +ck5i +ck5l +c4k3o +ck3s4 +3co +con3 +con4t5r +co4o +co3ri +cos3t +cou5 +co3v +4c5p4 +cqu4 +cre3 +cre4e +crim4 +5cud +cu5ra +3cy +cæ3 +1da +3daf +d3aksl +da5kv +4d3alf +dam3b +dans2a +4d3ansv +2dar +d4ar. +4darb +das4h +4d5ass +daus4 +2dav +d3a2vi +da5vin +d3avl +2d1b4 +2d1d +d3da +ddags3 +dde3s4 +dd2hi +d4d5or +d3d2r +dd5ret +dd5si +dds5l +dds4n +dds5tr +dd4sty +dd5så +dd5t +1de +de3d4 +4d5ed. +def4 +2d3eie +de5ikt +de3ist +dek4ko +dek4v +de4laf +de4l5ei +de4l5ek +4delem +del4sa +del4sk +dels3l +del4str +3den +deni5f +den2s +dens3t +de5rap +der5e4ge +de3res +de5sak +des4hi +de2sin +de1s4k +de5ska +de2so +de3s4ta +de5sv +de5v4r +2d1f +2d5g2 +dgi4n +2d1h +4dho +1di +5di. +dia3s4 +di3en +di4gat +di4g5re +di5ka +di5kl +4dind +4d1inn +di5ok +dipo4 +di4sa. +di4sc +d5iset +di5si +disk4 +di4s3ko +dis3kr +4d3iso +d3iste +di5stre +2d1j +d2ju +3djup +2d3k4 +4d5l +2d1m +4d3n +1do +do3a +do5br +dok4ka +2dolj +4d5oml +do4mo +4domr +dom2s +d3omse +dom4si +doms3k +4d5onk +2dop +d3opp +2d3ord +d3ost +2do2ve +2d1p +dpri5 +dprio4 +2dr +3drag. +d4rakt +d4ral +3d4ram +d3ras +d3rau +4dre. +4d5red +d2rei +d2rekt +dre5ni +d2rev +3drevet +d2ri +5d4rif +d3rik. +d3rin +3d4riv +d1ro +d2rom. +3dronn +d5ror +5drue +3druk +d3ryk +d3rød +d3rør +3drå +4dråm +4ds +d2sa +ds5ab +ds5ad +d3sag +ds3an +dsa4r +ds5eie +dse4l +dsel5sl +d2si +d3s4ke5 +d4skjen +ds5kn +d5skri +d3sku +ds5le +d5slit +d3slok +d3slå +ds3no +d2so +ds5of +ds3op +ds5pa +ds3s2 +ds3tal +d5star +d5s4tau +ds4te +ds4to +d5stor +d2str +ds3tra +d5stry +ds4typ +d2su +ds3un +ds3ur. +ds1v +d3sy +d5sæ +ds3øk +ds5øm +ds5øn +d5søs +2dt +d3ta +d5te +d1tr +d5trø +dtu2 +dt3uk +d1ty +d1tø +1du +due5s +du3i +du4it +duo5 +du4rak +d4us +2d5ut +4d3v +2dw +1dy +d3ye +4d5ynk +dy4pet +5dæ +1dø +døds3t +4døk +dø2r +d3øre +d3øs +5døv +dø5vi +då4dr +då4p +d3år. +då4ra +d3å4t +e1a +ea4do +ea2gu +ea4k +ea4lar +e2alo +ea2m +e4ann +ea2p +ea4ry +e5as. +e5ask +e3asm +e3ass +ea3tr +e3att +e2au +ea2v +e1b +eb4bu +eber5ø +eb4l +ebo5b4 +e4brer +eb4u +4ec +e1ce +e5ci +e5c3r +ec4re +e5cu +2ed +e4d3ad +ed3ar +ed5e4ge +ede4reg +ede4s5p +edin4n +e2dist +ed3or +e1dra +e3dres +e3drikk +e4drin +ed1ru +ed3so +ed3s4po +ed3st +eds5å +e3då +e1e2 +ee5in +eek5e +eek3v +e4el. +ee3la +een3i +ee4t +e4ets +e1f +3effek +e5fi +efi5b +ef3le +e3fli +efor3ed +ef5ta +e3fæ +eg4an +ega4sk +egg4r +e1gla +egn3s +eg4ra +egs4a +egs3i +egs5kj +eg3skr +egs4p +egu5i4 +eguns5 +e3gæ +e5h +ehov4 +4ei. +ei5a4d +ei3ak +ei3b +ei5d4u +ei3erin +eig5s +ei4k3an +4ein +ei4nal +ei4nan +ein3d +ei4nei +ein5g +e3inn +e3insy +ei4nu +ei4nø +ei3o4 +ei5ra +e1isk. +ei3ski +ei3skr +ei3s4ku +e3isme +eis4p +ei3spo +ei4ste +eit5re +e1j +eju4l +ejul5a +4e1ka +eka4s5 +4e1ki +ekin4 +e1kj +ek4kad +ek4k5j +e1kl +ek4lau +e3knek +ek3no +ek5nup +ek3nus +2eko +e1kr +e3k4ra +ek4ri +ek4rok +1eksam +ek2s3k +eks5l +5ek2s5p +5ekstr +ek4stø +ek5sv +ekte4t +ekt3ete +e1ky +e3kø +e3kå +2e1la +e2lak +e3lakk +el3aks +el3al +e5lap +e5lar +eld4s5e +el3egn +el1ek +3elem +e2leme +el4gan +2eli +eli4kv +e5lin. +e3linn +el3k +el4lins +el3lo +el5l4ur +e2l3ob +e5lod +e2l3op +el3or +3elske +els5pin +els5tel +els5tra +els3v +el4t3ro +elt3u +4e1lu +e5lum +e4l3un +el3ur +elv3ant +elve5s4k +e1ly +el5ynd +e1læ +el5ærv +4elø +el3øk +elø4r +el5øre +4e3lå +5emalj +e4mana +e4mels +e3mer +em5e4ta +e3mi +emi5g +emmer3 +emme2re +emo3a +em3om. +emp5li +em5po +em3skr +em5sku +em1st +ems4te +emst5r +emøb5l +emønst4 +emø2r +emåls3 +em3år +e3nakk +en5all +en3art +en3avi +3endrin +en5dro +en2e +3eneli +en3gr +engs4t +e5nip +e3nit +en5iv +en3kl +e4n5omr +en1op +en4s5ei +en3si +ens4ka. +ens3ma +en3sori +ens4pl +en1st +ens2v +ens3va +en4t5enh +ent3r +en3ø4v +en5øy +e5o4g5e +e3oks +e1om +e1on +eon4s +e1op +eo2pe +eo4pi +e5or. +e1ord +e3ork +e5ors +e5ost +e1o2v +e1p +4ep. +ep5je +e2ple +3eple. +ep5sla +ep4so +e3psy +e1ra +er5adr +er5aks +er3anl +e2rapp +er3ar +4erat +er3av. +er5avd +er5avt +erdi3s +er3d2r +er5dv +ere5a +er5ed. +2erei +er3eid +er5eik +4erek +er3eks +er5enh +e2res +er1ess +e3resta +ere4ta +er3ev +erg3s +2eri +er3ile +er1inn +er3int +er5nak +2e1ro +er5obl +e2rok +e2rop +er3opp +er5opt +er1or +e3ror. +e2rov +erre4st +er3sl +er4s3pa +ers4tem +ers4v +er4sva +4e1ru +er5ut. +er3uts +er5utt +e1ry +e3ræ +e1rø +er3øl +4erå +e5rå. +e1råd +er5åk +er5ål +er3ån +e5sab +e3s4al +e5sav +ese4ne +ese3s +es3inf +es3int +esi5st +e3s4j +eske3 +e1sko +e1skr +e4skra +es4kro +esku3e +e3skå +e1slag +es4lem +e5slen +e3slu +es2n +e3s4nak +es3nev +es3ni +e3sno +es3nu +e3snø +e2so2r +e1sp +e4spat +es3pir +es5pl +e3s4por +es4s5and +es4sja +est5ali +e4stap +est5a4pe +e3stati +es5tema +e2stev +e3stit +e1sto +es4tori +est3re. +est5ris +e3stu +es4ty +4esu +e3svak +e3s4ø +e3så +e1ta +etal2j +eta5st +4etek +e5tem +ete4se +e1tj +e1tr +e3tre +e4t5res +et3ri +et4rie +et4rin +et4ron +et4rop +et2s +ets3l +ets3p +ets3t +et4sty +etså4 +et4t5av +etter3a4 +et4t3j +etts3l +e1ty +e1tø +e3tå +e4ud +e3uk4 +eu2ke. +e3ul +eum4 +eums5 +e1un +e5uo +e4uro +1europ +e4use +e5utl +eut4r +e5uts +e5utt +e1v +4ev. +e4vad4 +eva4de +eva5dr +eval4 +evand5 +eve3s4 +e3vi +5e4vige +evre3 +e3vrim +ev4sku +ev4sty +e4vu +ey3c +e3yn +e3yr +e5y4t +e3æ4 +e1ø4 +e1å4 +3fa +fa5ci +fa2g +fa5gr +fag5u +4f5alf +fallit4 +fal5ska +fan4tor +fa5p4 +4farb +fart4 +farts3 +fa4s5k +fa3t4r +2fb +4fd +1fe +febe4 +fe2br +feb3ri +fe5e +fei5en +feil3 +fei5to +fe4l5an +felle2 +fel5ok +fe2m +fem5a +fem3ø +fen3s +fe4sta +fes3ti +fet5o +2f1f +f4fid +f4fj +ff4l +f2f3re +f3fæ +f3g4 +3fi +fi5an5 +fi5ap +fi3li +fin4gr +fi4no +fir3k +fi4st +fj4 +f3jeg +1fjel +2f3k +1f2l4 +fla5g4r +f4les +5flo +5fly +flys4 +3f4lø +2fm +fma4d +fmar4 +2fn +3f4nu +3fo +fo2n3a2 +fon3s +fo4nu +fo2r +for1a +fo5ra. +fo5ras +fo3re. +fore2n +for3ene +fo3rer +fo3ri +for3k +fo4ro +for3sm +for5t4i +for3æ +for3ø +fost3r +fo4t3r +fot5sk +4fp +f2r4 +fra3l +fra2m +fram3e +fra5v4 +f3re. +fred4se +fre4met +fre4mo +fre4s5k +fris4l +fri5sto +fri5v4 +5fro +f3roa +f5rof +3fru +fru4e +fru4n +fru3s +fru5tr +3fry +frø5 +frøp4 +2f1s2 +f3sh +fsi2 +fs5s +fs4t +2ft +ft5amp +ft5ans +f4t5ekk +ft5ekt +fte4na +ftka5s4 +ft3r +ft2s +ft4s3i +ft4ska +ft5sla +ft5slo +ft5spe +ft5sta +fts5å +f2t3u +3fu +4futm +4f5v +1fy +fy5o +2fæ +3fø +fø4rek +før4st +få3 +1ga +ga4fl +ga5gi +4gakt +gak4v +gam4bl +g3and +gan4gj +gan4gr +g5ank +gan4s5v +2garb +2gart +ga5si +gas4sa +ga2st +ga3t4ro +ga5tå +4gavg +g3avi +4gavs +2g1b +gbok4 +4gc +2g1d2 +gdoms3 +g3d4r +1ge +5ge. +ge3a +ge3d +gefis4 +4g3egg +ge3gl +4g5ei. +ge5i4d +geit5o +geit3r +ge3k +4gelem +gels4 +4g3emn +gemø4 +ge2na +gen3ap +gen5g +gen3n +ge4n3om +gens4t +gen5sv +ge2o +ge5on +3ger +ge5rap +ge4ren +ge3res +ge5rop +ger4sn +ge1s +g5e4ser +ge5te +get4r +ge3u +2g1f +gfib5 +4g1g +gga4 +gg5an. +g4g5ap +g4gav +gge5o4 +g4g5i4m +g2gl +gg5la +g3glu +gg3re +g4g5ro +g5gry +gg3se +gg3so +gg3s4t +gg3s2v +gg3så +2g1h +1gi +gie2 +gi3ene +gik4r +3gin +4gind +ging4 +4g3inge +4g5inn +gi1on +gi3s4l +gi5spa +gi5tr +1gj +2g3ja +gjen3 +gje4ne +gje4s5p +gje2st +2g3k2 +g1l +g2la +g3lag +4g5lak +2glau +4gle. +g3lev +g2lid +gl3s4 +g2lu +g5lør +2gløs +g3lå +4g1m +gme4t +2g1n +gn3d4 +gne4t5j +gne4t5r +gn4i +gning4s +gni2s +gnist3 +g3niv +g4nom +gn4skr +g4ny +gn5åp +1go +go3b4 +5goc +2g3ok +g3omr +go5no +2g3opp +gora5 +4gord +4gorg +go3rø +3got +2g1p +1g2r +3gra +4g5rac +g4rad. +gram5e +grana2 +4g5rap +g3rar +gra4sa +g4rav +4g3re. +gre4en +4g5ref +g3rek +4g5rel +gre3ni +grep4 +gre5v4r +g4ric +4g5rid +g5rif +g3rik +3gru +4g5rui +g3råd +4g2s +gs1a2 +gs3at +g5sc +gse2 +g3seg +g3sei +g4s5ele +gs4els +gs3em +gs1ev +gs4id +g3sil +g5s4kad +g5s4kall +g3s2ki +gs5kog +gs3ku +gs3kv +gs5kå +gs3l +gs4lyn +gs3me +gs4nel +g5sno +gs3nø +gs1o +gs3p +g3s4pel +g3s4pi +gs3s4 +gs3ta +gs4tang +gs5ted +g3s4tef +g5stega +gs4ter. +gs5tig +gs3tj +g3stol. +gs5traf +gs5tran +g5strek +gst5rop +gs3try +g4sty +g5styr +gs1v +gs5vet +g3sy +gsy4t +2g1t +g5te +1gu +gu3ar +gu2di +4g5ug +gul2l3 +gu4l5o +g4un +4g5urn +gus3 +2g3utl +3gutt. +2g1v +1gy +g3æt +3gø4 +4gøra +4gøre +gøy5 +3gå +4gåp +g4år +g5år. +gås5tr +ha5c +hai3 +ha5kø +hal4sk +hal4v3a +hand5sl +hane5 +hard3st +har4t3r +ha4sji +hasp5l +ha5ul +hav5eng +hav4sl +hav4sp +ha4v5ø +4hb +2he. +he2a +he3an +he2k +he5ka +4helf +helfab4 +he5li +helse3s +hel5sl +4her. +he5re +hero5s +he4r5u +he2s +hes3p +hes5te +hets5 +hi5li +hings4 +hins4 +hi4o +his5k +hi3sta +hi4to +hi5tr +4hl +4hm +ho5bl +ho2s +ho5si +hos5ti +4hot. +ho3ve +hoved3 +4how +h5p +2hr +2ht +h5ta +hu4do +hu5et +hugs2 +hu4l5ø +hung3r +hu2s +hu5se +hus3k +hus3s +hu4st +hust3r +h2v +hvi5to +hvi3tr +hvo4 +hvor3 +hy2br +hy3e4 +hy2gr +hy3s4t +hø4s +hø5vi +høy1 +høy4et +h2å +hå4pl +hå3ri +ia3b4 +i5adn +ia3g2 +iak4 +i5ak. +i5akb +i1al. +ia4l5an +i3alb +i3ald +iale4 +ia4l5et +i3alf +i3alg +i3all +i5aln +ia4lom +i3alp +i5alr +i3als4 +i3alt +ia4lu +i5alv +i3and +i3ang +i1ans +ias3s +i3at. +i5atg +ia3tro +i5au +i1b +ibe4l +i2b3l +i2br +ib3ra +ib3ro +i1c +i4ch +i3da +i4dea +3i2dio +idisip5 +1idret +id3ru +id2s3 +id4sk +ids5te +id2t +idt3re +i2d3un +id5øy +id5å +2ie +ie3d4 +i3eff +ie3i +i1el +i2ele +ie4lim +i4em +i1ens +i3ent +ie3o +i4ep +i1e2r +ier5an +ie5rat +ie5rek +i4e5rel +ie3ri +ie3ro +ie3rå +i3es. +ie5sn +ie5s4t +i3et. +i3ett +i3e4ty4 +ietyl3 +ifes5 +if3re +if5ri +ifts3k +ig5att +i3ge +ige2n +igg5s +ig5no +i4gom +ig3ret +i4g5ro +ig5rut +igs4a +ig3si +igst4 +i4gut +i1h +i5i +i3j +4i1ka +ik5art +ike4g5l +ike4r5u +ike3s +i1ki +i1kj +ik2kar +ik4kor +ik2kord +ik5kra +ikk3sl +ik3l +ik4lo4 +iklor5 +ik4læ +i5k4no +4i3ko +ikos5t +ik3r +ik4ra +ik4ret +ik1ro +ik4ry +i5k4rø +ik4san +ikt4r +ikt2s +i2kv +ik3va +ik3væ +i3ky +i3kø +2il +i1la +i4lak +ild5s4p +il3eie +ile3s +ilfab4 +ili4br +il3k +ill3s +3illu +il4mi +i3lo +il3s +il4sm +il5tra +i3lu +il3v +i3ly +i3læ +i1m +im5ord +im3p +ims5m +im3s4t +imt5v +i5nakk +inat4r +in3au +in4dra +ind3s +1indus +4ine +in5eid +ine4r3å4 +ine5u +3infek +3info +in4gav +3ingeni +ing5l +in4gor +ing3r +ings1 +ing4slå +ings3ti +ings3to +in4gø +4ini +i3nip +in4kok +in4k5op +in4nan +3innho +in4n3om +inn3sm +inn1sp +1innt +in4nø +in3ok +in5op +i4nov +in3sa +in5s4ka +ins4kv +in5sma +in3smed +in3s4o +in1sp +ins4pl +in1st +in5sta +3instan +1insti +1instru +in3sv +in3sø +in3t +int4r +int5rin +in5ul +3inves +4inø +io5a +i1o2d +io5g +io4ka +i3ol. +i5olb +i5olf +i5o4lu +i3om. +i3on. +ioni4 +i3ons +i3op +i3or. +io4ra +io4re +i5orin +io5ry +io5rø +io2s4 +io4sa +io3se +io4se. +io3st +io4su +i1ot. +ipa4n5 +i1pi +i3pla +ip3lo +i5p4lok +ipo4s +ipp5esk +ip2s +ip4sk +ips3l +ip5sor +i5py +i1ra +ird5s +i3re +irek4n +ir2kl +i1ro +ir4sc +ir4t5o +i1ru +iru3e +i3ry +i3rø +i5rå +i4sag +4ise +is5edd +ise3s4 +i4s3ind +i4sj5i +i4s3ju +is5jø +i2sk +is3ka +is3kje +is1kr +is3ku +is3kv +is3la +i3slag. +is4lav +is5lo +i5slu +is3n +3i2sol +i2s3op +is3p +is4pan +is4par +is4pi +is5pin +is5s4l +is4spr +4ista +is5tap +is3tas +is5ten. +ist4i +is3ti. +4istik +is3tin +is5tis +is3to +is4tom +is4top +i4s5trah +i4s5trak +is3tu +is4tun +i2su +i3sue +isum3 +is3un +is3v +i5sæ +isø4 +is5øy +is5å +i1ta +ite3sl +ites4t +itets1 +iti5al +itik4 +it3j +it3rer +it3rin +i3trise +itse4r3 +it4skr +its5t +its3v +it4top +it4tra +itt4si +itts4t +i3tu +it5ung +i1ty +i1tø +i5tå +i1u4 +ius3 +4i1v +i2v3ak +iv5ank +iva2te +iv3av +iven5 +ivent4 +iv5is. +iv3n +iv2s +ivs3l +ivs3n +iv4spo +i5xi +i3æ +i1ø4 +i1å +iår4 +3jag +ja5gr +3jakke +jakk5s +jals4 +5jamm +ja4sp +ja5t4r +jazz3 +j4e +je3dr +je4f5re +je5ik +je5in +je5is +jekk5s +jek4l +jel5dr +je5l2e +jel4lo +jel4t3 +je4mo +jen3d +jene4s +je3n4i +jert5a +jes5akt +jes5er +je5sku +jet3s4 +j5h +j5isj +j5it +j5l +5joc +jo4i5 +jok4ki +jon2 +jons3 +jor2do +jord3r +3jou +j5p +2jr +j5t +ju4an +ju3ar +5jub +jube4 +ju4pet +jup5l +jup3r +ju5skj +ju3so +3just +ju3s4te +ju5s4tif +jær2s +j4ø +jødsel3 +jø3g4r +jø3h +jø5ko +jø3kr +jø5ro +jøs4l +jø3tr +jøt2t3 +jøtte4 +2jå +jå5r +k2a +3ka. +3kab +kaf5ta +k5agi +ka3is +3kake. +4k3aks +3kale +3kalk +kal5ko +kall4s5 +ka3lo +3kalv +1kam +kamb3r +kamp5r +1kan +ka3na +4k5anm +4kap. +3kapi +kaps3l +3ka3ra +2karbe +3karr +kar4st +ka3ru +5kas +kas3s +5kata +ka5te +ka4tio +katte1 +kat4tø +kau3 +5kauk +5kaus4 +ka4van +2k5b +kbu4 +4k5c +kcarri4 +2k3d4 +1ke +ke3a2 +ked4 +ke5da +ke3dr +ke4et. +5kef4 +3kei +4keie +ke3ie. +ke5im. +ke5is. +ke3kn +4k5ekt +3kel +ke4l5ek +ke4l5os +ke5lå +ke4n5i +ken3s +ken4skj +ken4s5t +kent4 +ken3tr +ke3or +ke5os +ke3p +ker5ap +ker3k +ke3ru +kese4 +ke4s3et +4k5eske +kest4 +ke3sta +ke3sæ +ke5u +4k5evj +4k5evn +kev4r +2k1f +2k1g +2k1h4 +5kig +kikk4s3 +3kilde +4k5imp +ki3na +kin3d +1king +ki4nu +kip5r +kip4s3 +1kir +3kis +kis5m +4ki3s4p +ki3tr +3kjens +5kjent +3kjerk +5kjert +3kjole +4kjor +k3jord +5kjærl +2k1k +kk5a4bi +kk5adr +k4kal +kk5anl +kk5app +kk3arb +kkars5 +kk5eie +k4k5eld +k4k5il +kk3inn +k4kins +k2k3l +kk4lam +kk4lok +k2k3op +k2kr +kk3ren +kk5rot +kk4s5je +kk5sko +kk3sn +kk2so +kks4p +kk3st +kks4te +kk4stø +kk3t4 +k2k3v +k4k1ø +k2k3å +kkå4r +k2l4 +4kl. +3klag +k5lak +3klang +klau3s +3klausu +k4lede +k5len +k4lep +kle4st +2k5let +k3lig +3k4lim4 +klod3 +4klov +3klub +4kluf +5klyp +3klæ +k3lå5 +2k1m +kmål4 +2k1n +k3nak +3knap +knat4r +k4nei +k2nek +5k4nic +3knip +knist5 +3kniv +3k2nu +k2ny +k4nø +kn3øy +1ko +ko4bl +3koe +3kof +ko2g +kog3n +kog3st +5koke +kole3i +koles4 +4kolj +3kom +4k5omh +4k5omt +3kon +kon3gr +ko3no +kon1s4 +ko4pl +kop5pa +3kor +4korpe +kor4sk +kor4sl +kor4sv +ko3r4u +3kos +ko3s4l +ko5sp +ko4stø +ko3sv +kot4tr +k3o4u +ko5un +2kov +2k1p4 +k2r4 +3kraf +2krap +k3rau +2k3re. +k4red +k3redd. +3kredi +4k3reg +kre4kli +k5repa +5kreps +k4rese +4krif +3k4rig +3k4rim +3krise +5k4ro. +4kroc +k4ron +4k3ros +kro5v +kru5i +3k4ruk +krus3t +k3rute +krut4r +k5ry. +3krys +4kryt +k3rød +3krøm +k5rør +3kråk +4krån +4ks +k4s5a4b +k5sak +k4sc +ksel3s +kse3sk +kse5sl +kse3s4m +kse5sp +kse3st +k4sf +ks4kos +k3slag +ks3lo +ks4mel +k3sna +ks3p +ks4par +ks4pel +ks4pi +ks5pl +ks5pu +ks3s4 +k2st +ks3tal +ks3tat +ks5te. +k4stek +k4s3tj +ks3tra +kst5rekk +k4s3tå +ks5yng +k3sø +ks5øl. +ks3å +k4såp +4k1t +ktak4 +kt5app +kt5avt +kt5emn +kte4n5 +kte5sm +kte5st +k4tom +k4t5op +k2t3r +k5t4rak +k3tre. +kt4ry +kt4rå +kt5sla +kts5v +kt5t +ktu3ar +ktu4ren +k2t5ut +ktø4 +kt3øv +k5tå +1ku +ku3bj +ku2e +ku5ere +3kull +3kult +4kuly +kum3sl +kum5sv +3kun +kun4s4 +kunst3e +kupo4 +4kurd +3kurs +4kurt +k3urt. +3kus +4kusl +ku3ø +1k2v4 +k4vad +3k4val +k5vam +k4veit +k5vek +2kverd +k3vev +k3vin. +3kvinn +kvit5o +kvit3r +4k3vå +4kw +kyd4r +ky3k4 +ky5la +ky5ru +ky4st3 +3kæ +2kø +3kø. +kø2r +3køs +kø4v +k3øyd +køy5er. +k2å +kåk5 +k5åpn +kå3ri +5la. +la5br +la4c +la4f5e +lag3re +3lagss +5lake +la4k5i +lak4l +lak4sy +la5kø +2lal +3lamp +la4mu +lands3l +lane5s4 +lan4gr +lang5s4 +lang3ø +lan5ko +lant4r +4l5a4pa +4l5a4pe +lap4pr +4la4p5r +2larb +la4sak +la4sk +las4sa +la4st5j +las4to +la5te +lat5orm +la4tre +lat4ro +la3tå +3lau +4lavg +l3avh +4lavs +2l1b +l3c +2ld +l3da +lder2s +lde3s4 +ldisip5 +ldog4 +l4d5ok +ldoms5m +ld3ra +ld3ri +ld4s3a +ldse4 +lds3i +ld4ski +ld3s4kr +lds5ma +ld3ste +1le +3le. +le3au +4leff +5lege +le5g4l +5lei. +lei4st +2lek. +le4kan +le5k4no +l2eks +l4el +4lemt +le4nal +5lene +len4si +4leple +le3re +4lern +le5ru +les5kjø +le5sku +le3sl +les5m +les5or +le5s4po +less4 +les5sv +le3s4ta +le5sti +les3v +let4r +let5s +le1u +leu4t +4lev. +le3ve +2l1f +2l1g +lg5ant +l4gav +lge3o +lge4sv +l4glo +lg5sk +lg5s4t +2l5h +lhygi5 +1li +li5as +li3b +li4gan +li4gre +lig3s4 +lik3k4l +likk5o +li3k4l +li3kv +5lil +li4m5å +2lindu +3ling +lin4g5a +link3l +2linn +3linp +li3on +lio5s +2lip +lire5 +li4ro +li2st +list3r +li5te +liti3a +lit3r +litt5erk +livs5 +liv4se +2l1j +l3je +ljes4t +l5ji +2l1k +lk3arb +lkk4 +lk4na +lk4no +lk4om +lk4ovn +lk3s4 +4l1l +llag4 +l4l5aks +l5l4an +ll3d +l4leu +l3li +lli2a +lli4kv +llk4 +llkor4 +llkort5 +ll4ok +llo2m +ll3ord +ll5se +ll3sk +lls5kv +ll5s4le +ll5slø +ll3sm +ll3sn +ll5su +llsyre5 +ll3t +llu4pi +ll3ur +ll5v +l3lør. +ll3øye +2l1m +lm5år +2l1n +1lo +lo5ar +lo4da +lodd3s +lo5dro +lo4dy +lok3s +2lol +lo5ls +lo4min +lomme3r +2lomn +lo3mo +l3omso +lom5sti +lom5str +lop2p3o +loppof3 +2lor +4lord +4l3org +5l4ort +lo5rø +lo4s3ol +3lov. +4lovn +2l1p +lps3k +2l1r +lre4d5a +4l1s +lsdi5p4 +ls5ele +l5sen +l5ses3 +lse4si +lse4so +l4sf +l3si +l2sk +l3ska +l4ske +l3s4ki +l3skr +ls4ku +l4skv +l3skå +l2sl +ls3lo +ls4løy +l5s2mø +l2sn +l4sne +ls4nel +l2s3pa +l5spek +ls4po +ls5pri +ls3s2 +ls4t +ls5tal. +l2s5tin +ls5tit +l3sto +l2su4 +ls3un +l2sv +ls3æ +l2s3å +2l1t +l2tar +l5tei +l2top +lt5ra. +lt4rat +lt3s4 +lt4s5v +ltu2r3 +l4t5ø +l3tå +4lub +3l4uf +lu5in +luk3r +lung3r +4luni +2lur +3l4ure +luren3 +3luri +lu5si +lu5str +4lutg +4lutv +3luv +2lv +l1va +lv3eie +l3vi +lvi4e +lv5n +l5vor +lv3s4 +lv5ul +lv5un +l1væ +lv3å +ly5a +ly3e4 +ly3gl +ly4na +ly4nel +ly3r +ly2s3k +lys3p +lys3v +ly5te +1lø +2løk +3løk. +lø4ku +4løm +løp2s +2lør +l5ørr +3løs +lø4s3k +lø4su +lø4sø +4løt +løt5j +2løye +4løyf +4l5øyn +2lå +lå4gi +lå3k +5låm +3lån +4låp +4lår +l3åri +lå5rin +lår4s +1lås. +lå4s5te +låte5 +lå3tø +1ma +ma3f +ma3ie +ma3is +mak5r +maksi3 +maks3v +mak4ta +ma5k4v +4m5alde +4malj +ma4lo +mal4tek +mal5å +m4an +ma5nak +m5anal +3mann +manns3l +mann2st +man4tr +manu3 +ma4o +2marb +mar4sk +mar5sl +mas4ki +ma4sko +ma4sti +ma3sø +ma4tr +mat3s4 +4m5avs +ma3y +2m1b +mbio4t +mb5ler +mb3ros +4mc +2m3d2 +1m2e +3meda +me4d5ele +5medl +me4d3un +me5il +4mekk +me2k3l +me3kn +2m3eks +mel3dr +me4l3ek +mel5eng +men4da +me5no +men3t4r +me5o +merans5 +me3rov +3mes +me3u +2m1f +mfo5re +2m1g +mgå4i +2m1h +1mi +mi3ak +m5i4do +mid3s +5mi5f +mi2g +mi5k4l +mik5r +mind3 +mini3sk +min2s +mi4o +mi3p +mis4la +mis3s +mi2s3t +mi5te +1mj +4m5jer +4m5jo +2m3k4 +2m3l +2m1m +mma4l3 +mme4de +mme4len +mmen1s +mme1s +mmi3a +mmi4g3 +mmon4s +2m1n +mn3am +m5ni +mni5t4 +mn4s +1mo +mod5r +mod4s3 +mo3g +2molj +mo3no +mo5ra +mor4si +mor4st +mo3rø +mo2s3k +mot3a +mo4tak +mo4tar +mo4til +mo4tof +mo4t3r +2mo2v +5mo3va +mo3vere +2m1p +mpe3s +m2pl +mp5log +mp3p4 +mp5re. +mpri5o4 +m4p5rot +m4ps +2m5r +2ms +m3se +m4sep +m3sko. +m1slag +ms3lan +m1s2n +m1sp +ms5par +ms5pre +ms3s2 +m4s5tal +ms4tere +m3s4to +m3sva +ms5væ +m5sæ +m3sø +ms3å +2m1t +m4t5or +mt2v +mt3va +m3tvin +m3tå +1mu +mu5da5 +mu4e5r +mull4 +mulls5 +mu5ni +munn3s +3mus +mus3k +muss5t +2m1v +m5w +1my +3myn +my5on +my3s4te +5mæ +1mø +4møk +møn2 +5mørk +mør4kl +mør3ø +møy3 +1må +må4len +4mår +må4re +må5s +1na +nad5sk +4n5adv +n5ae +na5f4r +n5agi +2nak +5naka +5nako +na3k4r +n5aks +4n1akt +na4l5ap +n5a4lar +nal5dra +2nalge +na4lom +na4l5u +na5lår +na3me +4nana +5nanda +n3ande +2nap +n3appar +nap5s +2narb +4narv +nas4t +na4stø +3nat +na4tel +na4tep +4n3atl +na3tre. +nats4 +nat2tra +4navg +3navn +2n1b +nbo5b4 +n1c +2n1d +n3da +nd3art +nders4 +nde3s +ndi3o +ndisip5 +nd3j +nd1op +n3drag +nd5ram +nd3ri +nd4ron +nd5sat +nd4s5end +nds5kar +nd3skr +nd4skra +nd3tva +1ne +nea4n +ne5ar +5neb +4nedd +n3eddi +nedi4s +ne4d5om +n3eff +4negg +2neie +ne3in +ne5ist5 +nek4l +n3enge +neni5 +2neple. +ne4p5re. +ne4rei +nero5b +ne5rov +ne3sn +ne3s4p +ne3sta +nes5tek +nes3ti. +ne5s4v +n3e4tas +ne3t4r +net3st +2n1f4 +4ng +ngat4 +ngelsk3 +nges4 +ng3g +ngis4 +ng3jern +ng5lad +n2g3om +ng5orm +n2gr +ng3ren +n5grep +ng5rot +ng5ser +ngs1k +ng4ska +ngs5na +ng5øy +2n1h +1ni +5ni. +ni3ak +nids4 +ni3en +3nik +ni5k4ro +ni4ne4 +4ninf +2n3inn +4nins +4n3int +ni1o +ni3or +2nip +nip3l +nip4pes +nis4a +ni5sar +nit3r +nit4rer +2niv +niv5sk +niv3st +3nivå +n5j +2n1k +n4k5au +nke3s4 +n2ki +n3kie +nk1in +nk3k4 +n2kl +n5kled +nk3ler +n3kli +nk5lok +n3klu +nk5st +nk4tek +n4k5vo +n3kør +2n5l +2n1m +2nn +n4n5ad. +nna4k +nn5ake +nn5ank +n4nau +n2nav +nn3avl +nn3d4 +n5ne. +nneds5 +nne4ge +nn5egg +nn3eie +nn4er +nn3g4 +n5n4ing +n3niv +nn3k +n4nof +nno4mi +n2n3or +nn4sek +nn5sov +nn5s4po +nn1st +nn5ster +nn3t4 +n2n5ut +nnø4 +nn5øv +nn5å4 +1no +no5br +4n3off +2nok +4n5oks +no2ku +2nolj +no4mek +4nomn +nom3s4 +2nop +no3ra +2n3ord. +nor3dav +nord5o +4n5org +4nork +nor4s +no5ræ +no5sk +nos4p +nos3t +2n3ost. +3not +no5ul +2nover +3no3vere +2n1p +2n3r +2ns +n2sa +n5sad +n3sag +ns5akt. +n4s5alp +n5sang +n3sat +n3sau +ns3eie +nse4le +nsem4 +n3ser +nse3s +ns4inf +n5skaf +n3skal +n5skau. +ns5kno +n5skog +n1skr +n3sku +n5s4lam +ns5len +n3slip +ns3lit +ns3lu +ns4mek +n3snar +n2so +n5sod +nso4k3 +n3sol +ns3oms +ns3op +n3splin +n5spå +ns3s4 +ns4ten +nste4v +ns5ting +nst3is +nsu5b4o +n4s5vak +nsøk5i +n3såp +2n1t +nta4la +nt5amm +n4tana +n4t5ark +nt5aut +nt4e +nteks5t +nte4ra +n4t5ess +nti5k4l +n2tr +ntral3a +n5tram +n4t5ret +nt3ri +nt4riv +nt4ro. +nt3ru +nt4ru. +nt4rø +nts4ki +ntu5e4 +n4t5uk +ntu5ra +n4tøk +1nu +nu5et +nuf4te +nu3i4 +4nuly +2n3un +nu4ni +nu4sels +nus5ta +nust5r +2n5v4 +nve3s4 +nves3t +nve4sti +nve4s5to +1ny +3ny. +ny3e4 +ny5k4l +nyl5t +4n5yn +ny3or +ny5sn +ny3tr +n3z +1næ +1nø +3nød. +nøds5ti +nø5g4r +nø3h +4nøko +nøl4o +nø5p4 +nø5ra +n5ørk +nøs4l +nø3s4m +nøt5r +3nøy +nøye3r +5nå. +3nåd +3nål +n3ån +4nå4p +n1år +n5å4s +oa2 +oa5b +oa3g +oa5i4 +o5aj +o1ak +oa3l +o3am +o1an +o3ap +oa4s +o3asi +oa3t +o3av +3ob1j +ob3l +o4b5li +ob4lo +obog4 +o5bra +ob5rer +ob5ri +o3ci +o5cr +o3da +o5dam +od3an +od4dre +o4d5ikt +od5s4ka +od5sn +od3sp +ods5te +od5sti +o3dy +od5å4 +o3e4 +oe5su +1offi +of3ta +og5ei +o3gen +ogg4r +og2l +og3le +og2no +og3red +og3sk +ogs5ka +og3sn +ogs4tj +ogs4to +o1h +o1i2 +o4ia +oi4d +oi5e +o4ig +oi3le +oi5ni +oi5se +o4it +o1j +o1ka +o4kei +o3ki +o4kil +o1kj +o3kla +ok3le +ok3n +o5kol +okon3 +o1kr +o5k4ro +1oksid +ok2sk +okst3r +ok4sv +ok4søl +o2k3v +ok4vin +o1l4a +o4l5am +ol5d4r +4ole +ol4fj +4oli +3olj +ol2k3l +4oll +ol4l3un +ol4m5ur +ol4m5å +o3lo +o4loks +olo3kv +ol5sko +ol3sv +olt5o +o1lu +ol5ur +ol5ve +o1ly +o3læ +ol5år +2om. +4oma +o5makt. +om5akts +om3ald +om5am +oma5sk +3ombu +2ome +ome5d +om5ekt +om5eur +om5je +om3ju +4omm +omme2r +1omn. +om2na +om3pli +3områ +oms4kra +5om5su +om3t +o2mu +om3ul +om5ur +omø4r +om3øre +2ona +5onak +on4al +onas5t +on3av +on4dar +ond4ri +ond3si +4one +on4gj +on3gla +ong3ra +on3gre +4oni +o4nid +on3k +onning3 +4ono +onop5p4 +onse4n +onsi5s +ons3l +onsø4 +on3t +ontek4 +on4tri +on5ur +o4nut +4onæ +oo4mo +o3o2p +o1or +2opa +o1pi +4opl +o1pla +op3li +o3po +2opp. +3opph +3oppl +3op4p5r +3oppt +op4p3u +2o1pr +op5re. +op4s5e +opt3r +o3py +2or. +o1ra +o5ran. +o3rat +or3av +or4dep +3ordn +ord3ra +ords5la +ord3st +o3reb +o3red +o3ref +o3reg +o3reh +o3rek +o5reli +or3els +oren1 +o5renh +or1eni +or3enk +o3re1s +or3esc +o3ret +ore4tan +1orga +o5ri. +1orien +ori4mo +or5inn +or3int +o4r5iv +3orkes +ork4l +or4nal +o3ro +o5ron +or3or +o4rov +or4s5ed +ors4ka +or3sl +ors4t +or4sæ +or4tar +or3tr +ort3sø +or1u2 +o3rub +o5rum +oru4t +o5ryf +or3yn +oræ4 +orø4 +or3øk +or3øn +osi3e4 +osi4l5u +4osk +os2ka +o1sko +os5m +os3n +o3spe +os3sa +os4sko +os4sp +o2st +ost5ad +o3stas +o3stat +ost5eg +os5ti. +os3tit +o4s4to +ost3op +ost5ran +ost5røy +ost5un +os4ty +o5sva +o3sy +o1ta +o5te +ote3i +o4teld +ote5o4 +otet3s4 +otia5 +ot5off +oto3s +o3tr +ot3sa +ot2sk +ots4p +ot3sv +ot4tap +ot4tar +ott4s5tr +otts3v +otus5 +o1ty +o5tø +ou5b4 +4oun +ou4v +4ov. +o1va +o3ve. +o3ved +4o3vek +o3vem +o3ven +ov4ende +1o2ver +2overe +overi2 +o5vern +o3vet +o1vi +1ovn. +4ovo +ov4se +ov3sm +o5væ +o4we +oya3m +o3ø4 +o3å +1pa +4pad. +4padg +pa2g +pag4h +3pak +pak5kr +pa5la +panikk3 +pan5k +3pap +pa5p4r +2parb +p4arbr +part4s +5pass +pa3s4te +pa3stil +3pate +patri3 +2p1b +p3c +4p3d2 +1pe +pe3a +pe5di +pe5le +pel5sl +pel5sn +3peng4 +5pens +3pep +pe5pl +4perr. +5pers +pe5s4ko +pe2tr +pet3s4 +p3etse. +2p1f +4p3g4 +2p1h +pi3e4r +5pil. +pin4g +pinn3s +pi5ok +3pip +pis3k +pi2st +pist3r +3pit +p3ja +4pje +pju4 +pjus5 +2p1k +p2l +pla4k5e +3p4lam +p3lar +3plass +4ple. +3plek +p3lem +p3lep +p3les +p3let +p3lev +pli4d +3plikt +5pline +3plinæ +4plit +3p4loi +p5lot +ply5d +p3læ +4p3lø +p3lå +2p1m +2p1n +1po +po5dr +pokt4 +pol5an +5poli +4polj +pol2s +polst3 +4pon. +4por. +4pore +4porg +por4tv +po3rø +po3sti +pos4tis +po3str +4pov +2pp +ppe3st +ppe3tr +p1pi +p4pid +pp3l +pp3r +pp5ros +pp1s +pp3sa +pp3t +ppu4 +pp3y +pp3ø +p2r2 +3pref +4prel +pren4s +3pres +pres5te +p4rim +3prins +p4rior +3pris +3p4ro +5prod +pro3g +pro3sk +pro3v +prøs4 +5prøv +4prå4 +pråk3 +2ps +p2sa +p4sar +4p3se +p4sed +4psi +p5sis +p3sj +ps3kv +p5skå +ps3le +ps3lo +ps5lus +p3slå +p3snø +4p1st +p3sta +ps5tre +p2sv +p2sy +3psyk +4p1t +p5te +ptus5 +ptøy3 +1pu +4pudy +pu2e +3pul +3pum +3punk +5pus +pus4h +2p1v +3pæ +pø4bl +pø4t +4p3ø4v +p5øy +3på1 +4påd +p5ål. +4påp +på3t +1qu +que5r +3rabat +ra4del +3radio +4ra3dr +ra4dre +rags4l +ra5ins +ra3isk +3raka +ra4k5au4 +5raki +rak5se +2rakti +rak4v +rak5ø +3ral +ra2la +rala4n +ra4l5en +ram3b +ra2mer +ra4mu +r4an. +2rana +r2anda +rand3r +2ranl +ran4na +rann1s4 +ran5sj +ran3skr +ran4tro +ra5om +ra3pl +2rar +r3arm +ra3rø +3rasit +ras4pa +ras5sl +r5a4tel +ra3t4r +ra4tut +5raud3 +ra3utg +rau4to +2rav +rav3al +ra3vi +3ravn. +ray5 +2r1b +rbe4d +r1c +2rd +r5dad +rd3amer +rd3ar +rd3aus +rden4s3 +rde5st +r5det +r3di +rdisi5 +r3dj +rdjup3 +rdju4pi +rd5rei +r5dris +rd2st +rd4va +r3då +1re +re2ag +re5am +reb4 +redes5 +re3dr +re4drep +red4st +4reff +re2fl +refo4r +re4f5re +4regg +5reins +3reis +re4kle +2reks +rek4v +4r1eld +3rele +4relem +5relø +4remb +rem5ett +ren4g3r +re2ni +ren4kl +r3enl +ren5ska +ren4ski +re3ol +re5o2r +rer5ap +re5res +r3ern +re5sa +4re2sc +re5sku +re3s4l +re2spi +2ress. +res2s3k +res2s5t +res3tas +res1tau +res4ter +re3s4ti +5resu +5retn +re4t3ret +re5tri +re2t3ro +2reur +rev3ad +re4v5inn +3revis +2r5evn +2r1f +rfe5b +rfje4 +rfjet3 +2r1g +r4gand +rg3art +rga4s +rgefi5s +rge4sv +rg4he +rg2l +rg3s4t +2r1h +1ri +ri1an. +ri5ano +ri3ant +ri3at +ri5av +ri4dø +ri5eli +2ri1en +ri4end +ri3ete +rif4l +ri3fr +rigs3 +rig4si +ri3k4l +ri5k4v +ri3kå +ri5lø +4rimm +ri4mor +4rind +rini5 +2rinn +2r5inst +4rint +ri3om +ri3o4s +rio5sk +ri3o4t +ri3sko +ri3spa +ri3t4r +ri4van +ri4vis +4rivs +r1j +2r1k +rka3d +rk5akt +rkap4 +r4k5ei +rk3k4 +rk5leg +rkob5 +rko4pr +rk5red +rk3skr +rk5s4p +rk3st +rk4s3ti +rkt4 +r3kø +2r3l2 +rlog4 +rlo5v +2r1m +r4m5ap +r4m3endr +r4m3je +rm3p +rm4sj +rm3sk +rm5st +rm5svi +rmål4 +4r1n +r4n3ald +r4nart +rn5d +rne3p +rnes4m +rn3g +r5ni +r4nom +rn3sk +rnø4f5 +rn4å +rob4 +ro1bl +4robr +r5obs +3roc +ro5dr +ro4f5l +ro5fr +3rofy +roge4s +ro3gl +4roke +3rokj +ro3kl +2rok5s +ro4leu +4rolj +4romb +3rome +ro4mj +4romn +ro5mo +4romp +4r5omv +2ronn +r3onn. +3rono +ron3s +4ropp +ropp2s +rop2s +2ror +r3ord. +3rose. +ros5l +ro3sta +4roto +roy4 +roy5e +2r1p +rp4l +r5po +r1r +rr3d +r3re +rre5ster +rrie4 +rri5eri +r3ro +rr3s +r3ru +2r1s +r3sak +rs3att +rsbe5i +r3se +rs5eld +rse3s +rsjo4f +rsj5or +rsjø5 +r2sk +r3s2ka +r4s5ke +r3skik +rs5kit +r3skj +rs4klæ +r3sko +r3skr +r4skro +r3sku +r3skå +r2sl +rs4let +r3slå +rs2n +r3s4po +rs3s +rs5tal +r4stap +r4ste. +r4step +rs4tig +r3sto +r4s5tro +rs3tun +rs5un +rs2v +rs5van +r4svek +r5s4y +rs5æt +4r1t +rt5art +rta5s4 +r5te +rte5inf +r4tind +r4t5ord +r4tov +r4treg +rt5rot +rt5sa +rt4sid +rt4skr +rt3s4mu +rt4su +r4t3un. +rt5und +r3t2vi +rt5ød +r3tå +rt5år. +r4ub +ru5i4d +ru3in +ru5kr +4ruli +5rulk. +r5ulke +r3ulv +r4um +rumf5 +run3a +3runde. +ru2r +rur5s +rus4pen +ru4st5r +ru4stø +2rut +rut3a4n +2r1v +r5va +rvei5 +r3vj +r3v2r +rv2s +rv5st +rx3 +ry5er +4rym +ryn5g +ry5ot +ry4p5i +r5æt +rø4da +rød3r +rød3st +røk5r +4røl +rø4m +rønn3 +rø5si +rø4ta +rø3vi +rågå4 +råka4 +råk3l +4rål +r1å4r +råse5i +rå5te +rå3tr +3råv +1sa +3sa. +sa4bl +2s1adv +5safe +sa4f3r +s3afte +s3a4gi +4s3a4g3r +sag3s4 +sa2k +3sak. +s3aka +3sake +sak3er +sak5es +sak3i +4s3aksj +2sakt +s3akti +3sala +sa4lar +s1ald +3sale +3salg. +sal3s4 +3salt +3salv +3sam +sa4mat +sa2mor +2s5a2na +s3angs +4s3anl +s3ansi +san3skr +s3anten +4s1ap +sa4po +2s1ar +3sar. +4s3arb +sa4rev +s3art +3sas +4s3atl +sat4r +sa4t5ra +sa5tre +3sats +s3atte +2s1av +s3avs +4s5b +sbond4 +1sc4 +4sca +sch2 +s4co2 +4s3d2 +1se +3se. +se5at. +3seb +s3ed. +se3dr +sef4 +se4gen +s3egg. +se4gl +2seie +s3eie. +4s5eit +sek4l +se3kne +se4knu +se2k3r +se3kro +4seksp +seks3t +sek4tet +3sel +sel5at +se4lite +sel2s +sels5ta +sel2v +sel4v3e +s4en. +4s3endr +3s4ent +2seple +ser3ap +se3re +2serkl +se4ros +ser4tv +se5rø +se2s +ses5il +ses5sm +ses4tas +ses4tel +se3sy +3s2et +se3t4r +set4tø +se3tv +se3u +2s1evn +seøy5 +2s1f4 +3sfæ +4s3g2 +sgu2 +2s1h +5s4ha. +sho2r +1si +si1al +3sid +4sidr +si1en +si5eu +si4f3l +sif3r +3sig +si5gl +sik4kl +sik5ko +sikts3 +4sillu +5sina +4sindu +2sinf +s3innl +4sinnt +si4op +3sir +sise5 +sis4t +si1ste +sis5tem +si5sø +4s5itl +si3tr +siv5a +si4val +siv3s +si4v5u +5siz +1sj +2sj. +4sjag +4sjb +3sjef +4s5jern +sje3s4 +4sjf +4sjg +sj3ia +5sjik +4sjk +4sjl +2sjm +4sjom +sjon4 +2sjor +s3jord. +4sjou +2sjp +2sjt +3sjuk +2s3jus +sjø2l +sjø1r +sjø3s4 +5sjå +4sk. +1ska +4ska. +4skalv +2skam +2skan +3skap +5skap. +4skapi +4s5kapp +sk5arb +4skart +2skas +2s3ke +3s4kei +ske3s +1sk4i +3skif +ski5kr +3skilt +ski4na +3skinn +ski4no +3skip +2skir +3skiv +1skj +3skjeg +2skjens +2skjole +3skjor +4skjærl +skk4 +4s3kl +sk4le +sk5lit +4skn +s3kna +s2ko +3skok +3skol +1skole +4skom +4skon +5skorpe +3skot +s3kov +s1kra +2skraf +4s4krep +4s3kret +3skrif +4skrig +s3kro +4skruk +s3kry +4sks4 +4skt +s2ku +3s4kud +4skun +2s2kv +3skvet +s3kvi +s3kvo +3sky +sky3d +3skøy +4s3kåp +1skår +s1l +s2la +sla4gi +s3land +s3las +s3lat +3slave +4sle. +s2lede. +sle4i +s2lek +s2leng +s2lep +s4likk +4slin +slin4t5 +3s4lir +4slis +s2lit +3slite +3slitt. +s2lo +s3los +slott2 +s3lov +s2lu +4s3lue +5slup +s4lut +4sluv +s2lyn +3slyng +4s5læ +4sløs +3s4lå. +s3lås +3slåt +2s1m4 +s2mak +3smak. +4sman +sma5t4r +s2med +s4med. +3smell. +smete5 +smeteo4 +5s4mi. +s4mie +3s2mug +s2my +3smyk +s2mør +3smør. +3s4må. +små3r +s1n4 +s2na +s5nad +4snat +4s3nav +4s5ne. +4sneb +sned5s +s2negl +5s4nek +s5nem +s4nil +4s3nin +sning4 +1s4nip +3s4nit +s3niv +s2no +s2nø +snø5dr +snø3kl +snø3l +3snør +snø1s +snø5vi +s3nå +1so +3s4og +so5gl +5soi +3s4ok +sokk4 +4s5oks +3sol. +3sold +so5li +2solj +sol3s +sol5ø +3s4om. +s3omf +3somh +3somm +4somn +2s1omr +s3omt +3son +son4sk +so2p +4s5ope +3sopp. +s3oppg +sop3r +3sor. +2s1ord +5sore +4sork +3sort +sos5k +3sot +2so2v +3sove. +5sovek +s2p2 +2sp. +5spad +spa3g +3spann +3s4pat. +spe4a5 +3spei +1s4pell +4speng +2s3per +3sperr +s4perre +1spi +s4pio +2spip +2s3p4l +2s3po +3spor. +s4pora +4s5pos +5spra +2spro +3spru +3språ +s3ps +sp5st +4spul +4spum +3s4pur +3s4py +4s5pyr +3spø +4s3r +srac4 +srack5 +4s1s +ss2a +s4s5ald +s3se +sse5in +ssel3s +s5sem +ss4end +s4s3enk +s4sepl +s5ser +sse3s +s5s4ing +ssive4 +s5s4kjæ +s4s3kå +s2sl +ss4let +ss3li +ssmosa5 +ss2n +ss5oms +ss5pre +ss4t +ss5tet +ss5tit +ss5tro +ss5tru +ss5try +ss5tub +s4s5ul +s5sur +ssu4t +s2sv +s3sy +s2t +4st. +2sta. +3stake. +1stan +3stang +s5tank +2stann +st5antr +1stat +1stav +s4tav. +4stavl +4stb +2std +ste3am +1s4ted +3sted. +2steg +s4teg. +1stei +3stein +s4tek. +3s4teke +s4tekt +3stemm +3stemn +3stemt +3s4teng +ste4n3om +3step. +1sterk. +4stert +stes5ta +s4teu +3stev. +4stg +2sth +4stia +4stid +3stift +4stig. +1stik +2s5tike +3s4tikk +4s3tiko +2s3tiku +3s4til. +3stilk +2stils +st3ind +4stinn +1stjer +4stk +2stl +4st5n +4sto. +3stof +4s5tog +3stokk +st5oms +4s5ton +sto4p +4s4t3ord +sto4ret +s5tos +3stove. +1str +4strav +2stre. +st5rekl +s3trel +s4trik +4stroe +st3rom +5strup +2st3rus +s5tryg +3s4trøm +st5røn +4st3s4 +5s4tud +3stue +stue3re +3stund +4stur +5s4ture +4stus. +2stv +3sty +5styk +s3typ +s4tyr +4stæ4 +3stø +stør4k5 +størs5 +4støs +1stå +5s4tåe +3stål +2s5tår +1su +3sua +3su2b3 +3suc +su4f +3sug +su2k +4s3uke +3sukk +3sum +4s3und +su4nen +3sup +sup3r +s5urt +3sus +2s1ut +s4ut. +sv2 +3s4vane +svar2s +s5ved +4s5veg +svek4l +sver3a +sverd3s +3sverm +s2verte +s2vet +3s2veve +s4vi. +3svie +s3vil +4svir +s1vis +s5vit +3s4vor +3svu +3s4vø +s3vå +1sy +sy2d +sy5da +sy3er +sy4kog +5sym +3s4yn +3syre +sy5ri +4s1yrk +3sys +4s3yt +2sytr +sæ2r3 +sære4 +sæt5r +4søko +3s4øl +s3øns +1sør3 +sø4ret +sør4i +s1ø2v +2søy +s3øye +3søyl +3så. +5såd +3sål +4s3ån +så4r +s3åre +s5ås +3ta. +ta5b4r +5tadra +tad4s +3taf +4t3afri +ta3gr +ta5is +ta4ka +4take. +taks5ei +t3aksj +tak3sk +2taktig +3tal. +3tale +tali5e4 +3tals +3tame +4tamm +tam4o +5tamt +tand4a +4tangr +tang3s +ta4nin +3tank +t3anl +5tann +tan4nem +t5anten +3tantis +4t3anv +3tap. +5tapi +2tarb +3tard +ta5ru +t3a4sia +ta3sn +tas4p +ta4sta +5tatar +2tatl +5tato +tat2s3 +tat4sa +tat4sk +t5attr +5tau. +ta3un +3taur +tau3st +4taut +4t3avd +2tavg +3tavind +3tavl +tav5o +ta4vor +4tavs +4tavt +3tavæ +tay3 +4t1b +4tc +t3che +2t3d4 +3te +5tea +5tebo +5tedag +te4deg +5tedir +5te3d2r +5tedu +5tedy +5tedø +5tefa +5tefo +4t3egd +4tegg +teg4l +5tegn +4tei +5tei. +5teig +tein3a +5teinn +5teip +te1is +5tekn +te4knu +4teksp +teks4t +tek3sti +tek3stu +tek5stur +tekt2s3 +t3eld. +te3lem +4tella +tel5sv +4temm +4temn +5temo +temp3l +4temt +temøn5 +te4n5an +5teno +ten5t4r +5teo +4tep. +tepri3 +teprio4 +5tera +te2r3en +4terk. +ter4kv +ter5r +ter3sm +5tert +4t3eske +te5s4ko +te5sku +tes4mo +tes5or +te3s4p +te2sta +tes5tant +tes3tas +te3stil +tes4to +te3s4v +te4tend +4te4ter +5teun +te3us +5teut +4tev. +5tevi +4tevn +4t1f +2t1g2 +4t1h4 +than4s3 +thun4 +1ti +5tia +tiat4r +5tiby +5tid +3ti1e +tift4 +3tig. +ti4gru +tik4ka +tik4kl +tikk3o +ti3k4r +tik3v +3tilb +tild4 +t3ild. +ti4lei +3tilf +5tilfe +4till. +3tilla +3tilleg +5tils4 +3tilta +5tima +3time +3ti3na +4tinf +2t3inn +tinu5a4 +tinu4i5 +ti4o +ti5or +ti5os +ti3pl +5tir +3tis +ti5s4ta +tis4to +5titur +tium4 +tiv3s +3tiå +2t1ja +4t5jeg +3tjen +tjen2s +tjer4t +t3jev +2t3jo +3tju +t5jun +4t3k2 +4t5l +2t1m +tma5t4r +2t1n +t3ni +1to +3to. +to3ar +4t5obl +3tog +tog4r +t3ogv +tokk5a +tok4kan +to3kl +5toli +4tolj +3tom. +5toma +to4mal +to4m5e4n +4tomf +tom5s4 +3ton +tong3r +tons4 +3tor +to3rar +to4ras +t5orde +to4r5ek +tore4t +tor5ete +5toris +tor5k4 +4torm. +5torra +tors4l +5torv +to3ry +to5rø +to3ska +tos4t +2tost. +to3sta +to3str +to3ut +4t1p +tpa4r +tpres4t +tpre5sta +t2r2 +5trai +3trakta +t4rane +3trao +3trap +t3rate. +3trav +4travn +t5redd +t3reg +5treka +3trem +tre3ni +t3rens +tre3sp +tre3st +4treu +tre5v4r +2tri +4trid +t3rik. +3trill +4tring +3trinn +3tro. +3troe +t3rog +t3role +3troll. +4t5rom. +t3rona +t3ropo +3tropp +tro3v +3tru. +2t3rud +t4rue +t3rug +t4ruk +4trun +t3ru3r +4trut +3trøst +3trøye +3tråd +4ts +t2sa +tsa4f +tsak3 +t3sang +tsbe5i +5tsef +ts5eid +t4s5enk +ts3erk +t3sil +t4sj5is +t4sjo +t1sk +ts4ke +ts3kv +tsky4e +t5slad +ts4lik +t3slu +ts3ma +ts5me +ts2n +ts3na +t1spe +t1st +ts3tap +ts4te +t3sted +t3s4to +t3stri +t5stu +ts5ur +ts3vo +ts5væ +t3sy +t4sæ +t5søm +4t1t +tt5arm +t4t5as +t5te5i +t4tek5s +tten5s +t4tins +t2tol +tt5ram +tt4re +tt3ring +tt5riu +tt5rom +tt5rå. +tt5sei +tt5sn +tt3spr +tts4tj +tts4ty +tt3så +tt5t +tt3v +t4t3y4t +ttør3 +tt5øri +tt3øye +tt1å4 +1tu +tu3e4t +5tuf +4t5ugl +tu3in +3tukt +3tula +5tule +t3ull. +3tun. +tun5d +tun3gr +5tunn +3tur +5turb +3tus. +tusi3 +tu4s5o +4tutg +2t1v +tve5d +tvei5e +t3vin. +t2ving +3t2vis5t +4t3w +ty4la +5type +5tyra +tyr3st +3tyv +2tz +1tæ +4tød +t3øks +tø2r +t3øre +5tørk +5tøs +4tøt +4tøv +2tå +tå3k +t3ån +1tår +tåte5 +u3ac +u3ak +u3al. +u3ald +u5a4le +u5alf +u5all +u5alm +u3a4lo +u5a4lu +u1a2n +ua5no +u3ar. +u3ay +ub4br +ub3l +ub4lo +u3br +u3ce +u3ch +u3ci +uda5i +ud3dh +uddom3 +ud4då +ud4en +ude3s +uds5i +ud4sja +ud4sl +uds5te +5u2dy +u4døy +u1el +u3els +u1en +uend5r +u1e2r +u4eren +ue3ri +u4ern +ue5ro +uer4r +ue3sn +ues4t +ue5u +u5ez +uf4l +ufor5d4 +uft3a +ug4a +ugj5end +ug5la +ugo3 +ug5se +ug3sk +ug3sv +u5gæ +u1h +ui2m +uis5a +u3isk +u3ism +u3ist +u3itt +uit4to +u1j +u5ka +u5ket +u1ki +u3kj +uk3l +uk4s5l +uk4st +ukt4r +u2ku +uk3ur +u4kv +u1la +ul4d5o +ul4dø +u5li +ul4k5l +ul4lov +ull5sv +uls5k +ul2st +uls5ti +uls3v +ult5o +ul2t3r +u1lu +1uly +u1læ +u3lø +uma2ne +um4fes +ummi3 +um3pla +um4spa +umt4 +4una +u5na. +under3e +3underv +und3st +4une +un4g5j +ung3l +un4go +ung3si +u2nion +un5nak +unns5la +un3or +unst3a +uns5tig +un5sv +un3tr +un4tri +u4n5øy +u3nå +uo2 +u5ol. +u3op +u5or. +u3o4r3e +uo3ri +u3ort +u3o4s +uove4 +uover3 +u3pi +up3li +up5lo +up5pr +up3re +up5sa +up4sk +u3pø +u4på +4u1ra +ur5ade +ur5akk +ural5a +u4ralu +ura3s4 +ur5avs +u3ref +u3r4el +u3res +u3rev +ur2gl +4uri +ur3inn +uri4sp +uri4st +ur4kak +ur4kle +u1ro +ur5oks +ur3opp +u3ror +u5rot +ur5r +ur3sk +ur5tv +u1ru +uru3s +u3ry +ur5øy +u2sa +u5saf +us5and +u3sat +us4er +use5s +us5i4m +us4is +u3sit +u4sja +u4sji +u2sk +us5kå +us3la +us5ly +u4s5ok +us4o3v +us3p +uss3m +us4som +uss4p +us2st +us5tak +u3stas +ust5ett +us3ti +us4tig +us4tik +us4tr +u3st4ra +us5tøm +u2su +u4s3un +us1v +u2sy +u1ta +ut3adr +utak4l +ut3arm +ut5art +ut5aus +3utb +1utd +ute3g +1utg +uti4v3 +u4t3j +3utmå +ut5oms +ut3r +ut4ros +3utru +ut4rusk +ut3s4 +1utst +utt3s4 +1utv +u5ty +u3tør +uu4 +uum5 +uumi4 +u3un +u1v +u4vø +ux3 +uya5ne +u5yu +uø4 +uøn4 +u3å +3va. +vad1r +va2f +va5fr +vak3s +4v5akti +vak4to +3valg +va5lor +4valv +va4nar +2vang +3vann +van5sl +van5sm +va4pe +va5po +va5ra3 +2varb +3varm +vars5v +vas2 +va2sk +vas3ki +vass3 +va4st +3vat +vat3ei +va4t5el +4vav +2v1b +2v3d2 +vdisip5 +vd4ø +1ve +ve5a4 +ve5dis +ve4då4 +vefe3i +ve4gi +ve4gre +3vei. +vei4ka +4vein +vei5tr +5veke +veks4tr +vel5as +vel4d5in +vel3dr +ve5los +vels4 +vel3sm +vel5sp +vel4ste +vel3tr +ve2lu +vel3ø4v +4vendr +ven5s4t +vent4s +ve3o4 +3vep +vepe5 +ve2r1a +ve4ral +3verd +ve5res +ve2ril +ve4rim +2verm +ve4rob +vers3m +3ves +ve3s4m +ve2st +ve3sv +ve5te +vete2s3 +ve3u +2v1f4 +vfab4 +2v1g2 +2v1h +vid5s4t +5vie. +vi5em +vi5en +vi4e5ra +vi3et +5vif +5viki +vi3kro +vil5a +vi4lag +vi4lin +vi4lo +vil4sti +vil4t5r +vindus3 +3vink +vin4kl +vinte2 +vi3ot +3vir +vi4str +vit5re. +vi4tun +3viv +2vj +v3ja +v1je +4v3jo +2v3k4 +2v1l2 +vlat4 +vls5l +vl5v +v3lå +2v1m +vmøn5 +vmønst4 +2v1n +vns4kr +vn3sp +vn5s4t +vo5a +vo3b +vo4g +vog5e +vog3r +1vok +3vol +v1op2 +vopp3 +voppof3 +vor2s5 +3vos +2v1p4 +2v1r +vra3s4 +vres4 +2v1s2 +vse4l +vs3er +vs5ev +v4s3f +vs3h +v3sj +vs4ke +v5s4li +v4s3nø +vs5od +vs3op +v3s4p +vs3s +vs4t +v3sta +v3sto +v2sv +v4s3va +vs3vi +vs3øy +2v1t +v3tr +v5tv +5vud +v3ut +2v1v +3vy +væ5ra +5væs +v5ø4d +4v3ø4v +2v3øy +v4åk +våpen3 +vår3s +vår4sa +v4å4t3 +våte4 +1wa +wa5is +wale4 +3we +we4e +w5h +whi4 +1wi2 +wi5er +wi3ni +wos4 +w4r +3wur +w5y +x3e +x5t +y1a2 +y4ab +y4af +ya4l +yan5a4 +ya5no +ya3s +ya5to +y1b +yb3ri +yce5 +y5ci +yc5r +4yd +y5dar +y5de. +yde3r +yd5et +y2do +yd1r +yd3ri +y1els +y3en. +y3ende +yen5sv +ye2r +yer5i +y1e4t +y1f +yf4l +yg4go +yg4g5r +yg4lo +yg3ro +y1h +y1i +y5j +4yk +y3ka +y4kano +yka3p4 +y1ki +y3kj +yk4kab +yk4k3an +ykk3sv +yk3l +yk4læ +y4komn +y3k4r +yk3s +y5kø +y1la +yl3al +yla4m +yl4dø +yle4t +ylkes5 +yl4s5t +yl4tra +yl4t5ret +y5lu +y3læ +ymbi3 +ynas5 +yn3av +ynd5r +yn5eld +ynns4 +y3no +yn2sk +yns3v +yn4t5u +y3ou +yo5y +ype5ra +ype3s +y1pi +y1pla +y4p5r +y5psy +y5pø +y1ra +y4r5ap +yr5av +yr4d5ra +yre3s4 +yrke2s3 +y1ro +yr5oks +yr2s +yr5sn +yr5sp +yr3sti +yr5ul +y3ry +y1rå3 +yse3s +y2sj +y5sje +y3skr +ys3le +ys4nu +y4s5or +ys4s5il +ys4s3p +ys5sv +y1sta +ys3ti +yst3re. +yst5æ +ys5øm +ys5år +y3ta +yt3j +yton3 +yt3r +yt4ry +yt4rå +yts5p +yt5s4å +yt5te +ytt5sl +y5tø +y5u +yu4r +y1v +y5å +3za +1ze2 +ze5l +zen5 +ze3r +1zi +z5l +1zo +zo3f +4zor +3zu +z5v +3zy +z4zi4f +æd5s +æk3l +ær3a +ærd5r +ære4so +ære4sp +æring4 +ær3o +ær4sel +ærs5il +ær3sk +ær5sl +ær4sn +ær3so +ær3u +ærø4 +ær5øl +ær3øv +æ3røy +ærå4 +æs3t +æ5vi +ø3a4 +ø1b +4ø5c +ød5al +ød5ra +ød5sla +ød3sp +øds5å +ød5t4 +ø2d5u +ø4d5ø +ø3e +øffe4 +øf4l +ø5fr +ø2g +ø3ga +ø3ge +øg4na +øg3r +øg4ra +øg3s4 +ø3i +ø5j +ø3ka +ø3kj +økk3r +økk5s +øk3l +øk4lis +øk4lo +1ø4ko +3øks. +øk4seg +øk3st +øla4 +øl3ap +øl5as +øl3d +ø2lei +ølei4es +ø5liv +4øll +ø2l1o2 +øl3s +øls4k +øl3t +ølø4d +ø5l4øv +øm4s3in +øm3ut +øn5al +øn4k5å +øn5nav +ønn2s +ønns5l +ønns3t +øn3sa +øn3sp +ønst3r +øn2t3 +ø3or +ø3pi +øp3l +øps5la +øps5v +ø5pø +ør5ar +ørd5r +ør5ekt +øre3s +øre5tr +øri4 +øring4 +ørings5 +ø5ris +ørk4l +ør4kø +ør4r5is +ør2s +ør5sa +ør4skr +ør3so +ør4sp +ør5sta +ør5sti +ørs3tr +ørø4s +øs3l +øs3s +øste4n +øst5ett +øs3ti +øs4to +øst5ro +øs5un +øs5ø4r +4øt +øt5a +ø4t3o +øtt3s +ø5ty +ø3u +ø3va +øve3s +øv5inn +4øvn +ø5vo +ø3væ +ø5ø +å5a +å1b +åbe5r +åde5i +å3d4j +å3dr +åd4s5a +åd5sla +åd5sna +å3e2 +å1f +åfab4 +åg3l +åg3re +åg3s4 +å1h +å3i +å3j +å3kal +3åker +åke4r5e +åke3s +å3kj +åk3vi +4ål +å4l5em +ål5enh +ål3or +ål4san +åls3n +åls5te +åls5tj +å5lu +å3ly +ål5ø4r +ål5øy +å5lå +å1m +ånd4se +ånd5sla +ånes4 +ån5sø +å3o +å1p +åpe2n +1åpn +åps3 +å2r +å3ra +år5an +å3re +åre5s4 +å3ris +år3k +4årn3 +år2nu +1år2s +års3af +år4sku +år5str +års3v +år5så +å3ru +år5yr +å5rø +å1s +åse3s4 +ås2n +ås4s5k +ås4t +ås5tak +å3ta +åtes4t +åt4t5o +å5u +å1v +å3ø diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/polish.lh b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/polish.lh new file mode 100755 index 0000000000000..879b0422deb5f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/polish.lh @@ -0,0 +1,11 @@ +Lout hyphenation placeholder +% +% Polish hyphenation patterns placeholder file. You will be able +% to get the real file from URL +% +% ftp://ftp.cs.su.oz.au/jeff/lout.latin2.2.0.tar.gz. +% +% eventually. +% +% Jeffrey H. Kingston +% 2 April 1996 diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/portugal.lh b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/portugal.lh new file mode 100755 index 0000000000000..8139f55eba385 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/portugal.lh @@ -0,0 +1,104 @@ +Lout hyphenation information +% Portuguese hyphenation file, created by José Roberto B. de A. Monteiro +% at 29 october 1999 from scratch +% +% (C) 1999 José Roberto B. de A. Monteiro (betoes@sel.eesc.sc.usp.br) +% +% This is free software. You may copy it or redistribute under the +% terms of GNU General Public License. +% +% END OF COPYRIGHT NOTICE +% +% + +Classes: +@!$%^&*()_-+=~`{[}]:;'|<,.>?/0123456789 +aA +áÁ +â +àÀ +ãà +bB +cC +çÇ +dD +eE +éÉ +êÊ +fF +gG +hH +iI +íÍ +jJ +kK +lL +mM +nN +oO +óÓ +ôÔ +õÕ +pP +qQ +rR +sS +tT +uU +úÚ +üÜ +vV +wW +xX +yY +zZ + +Patterns: +% simple patterns +1ba 1be 1bi 1bo 1bu 1bá 1bé 1bí 1bó 1bú 1bâ 1bê 1bô 1bã 1bõ +1ca 1ce 1ci 1co 1cu 1cá 1cé 1cí 1có 1cú 1câ 1cê 1cô 1cã 1cõ +1da 1de 1di 1do 1du 1dá 1dé 1dí 1dó 1dú 1dâ 1dê 1dô 1dã 1dõ +1fa 1fe 1fi 1fo 1fu 1fá 1fé 1fí 1fó 1fú 1fâ 1fê 1fô 1fã 1fõ +1ga 1ge 1gi 1go 1gu 1gá 1gé 1gí 1gó 1gú 1gâ 1gê 1gô 1gã 1gõ +1ha 1he 1hi 1ho 1hu 1há 1hé 1hí 1hó 1hú 1hâ 1hê 1hô 1hã 1hõ +1ja 1je 1ji 1jo 1ju 1já 1jé 1jí 1jó 1jú 1jâ 1jê 1jô 1jã 1jõ +1ka 1ke 1ki 1ko 1ku 1ká 1ké 1kí 1kó 1kú 1kâ 1kê 1kô 1kã 1kõ +1la 1le 1li 1lo 1lu 1lá 1lé 1lí 1ló 1lú 1lâ 1lê 1lô 1lã 1lõ +1ma 1me 1mi 1mo 1mu 1má 1mé 1mí 1mó 1mú 1mâ 1mê 1mô 1mã 1mõ +1na 1ne 1ni 1no 1nu 1ná 1né 1ní 1nó 1nú 1nâ 1nê 1nô 1nã 1nõ +1pa 1pe 1pi 1po 1pu 1pá 1pé 1pí 1pó 1pú 1pâ 1pê 1pô 1pã 1põ +% q-u is not used +1ra 1re 1ri 1ro 1ru 1rá 1ré 1rí 1ró 1rú 1râ 1rê 1rô 1rã 1rõ +1sa 1se 1si 1so 1su 1sá 1sé 1sí 1só 1sú 1sâ 1sê 1sô 1sã 1sõ +1ta 1te 1ti 1to 1tu 1tá 1té 1tí 1tó 1tú 1tâ 1tê 1tô 1tã 1tõ +1va 1ve 1vi 1vo 1vu 1vá 1vé 1ví 1vó 1vú 1vâ 1vê 1vô 1vã 1võ +1wa 1we 1wi 1wo 1wu 1wá 1wé 1wí 1wó 1wú 1wâ 1wê 1wô 1wã 1wõ +1xa 1xe 1xi 1xo 1xu 1xá 1xé 1xí 1xó 1xú 1xâ 1xê 1xô 1xã 1xõ +1ya 1ye 1yi 1yo 1yu 1yá 1yé 1yí 1yó 1yú 1yâ 1yê 1yô 1yã 1yõ +1za 1ze 1zi 1zo 1zu 1zá 1zé 1zí 1zó 1zú 1zâ 1zê 1zô 1zã 1zõ +1- + +1b2l 1b2r +1c2h 1c2l 1c2r +1d2l 1d2r +1f2l 1f2r +1g2l 1g2r 1gu4a 1gu4e 1gu4i 1gü4e 1gü4i +1k2l 1k2r +1l2h +1n2h +1p2l 1p2r +1qu4a 1qu4e 1qu4i 1qu4o 1qü4e 1qü4i +1t2l 1t2r +1v2l 1v2r +1w2l 1w2r + +a3a a3e a3o +c3c +e3a e3e e3o +i3a i3e i3i i3o i3â i3ê i3ô +o3a o3e o3o +r3r +s3s +u3a u3e u3o u3u +% sub- ... +su2b2r su2b2l diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/russian.lh b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/russian.lh new file mode 100755 index 0000000000000..6a4ae7f7c1b30 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/russian.lh @@ -0,0 +1,6144 @@ +Lout hyphenation information +% +% This is a Russian (koi8-r) hyphenation file constructed +% by Valeriy Ushakov on 16 November 1994 from a TeX file +% written by Dimitri Vulis. Original header follows: +% +% This is rhyphen.tex (Russian hyphenation patterns) as of 12/31/89 +% This code was written by Dimitri Vulis and placed into public domain. +% There is no copyright associated with this code. Use it as you wish. +% + +Classes: +@!$%^&*()_-+=~`{[}]:;'|<,.>?/0123456789 +aA +bB +cC +dD +eE +fF +gG +hH +iI +jJ +kK +lL +mM +nN +oO +pP +qQ +rR +sS +tT +uU +vV +wW +xX +yY +zZ +Àà +Áá +Ââ +Ãã +Ää +Åå +Ææ +Çç +Èè +Éé +Êê +Ëë +Ìì +Íí +Îî +Ïï +Ðð +Ññ +Òò +Óó +Ôô +Õõ +Öö +×÷ +Øø +Ùù +Úú +Ûû +Üü +Ýý +Þþ +ßÿ + +Patterns: +.ÁÌØ5 +.ÁÓ6Ë +.ÂÅÚ1 +.ÂÅ2ÚÕ +.×Å2Ó1Ë +.×Å5Ô×Ì +.×Ï5× +.ÇÏ2Ó +.Ä×Ï2Å +.ÄÖÏ6Õ +.ÄÉ2Á +.ÄÏ1ÓÍ +.ÅÚ5 +.ÖÅÒ5Ô6 +.ÚÁÕ2 +.ÚÁ1Û2 +.ÚÏ2Ï3 +.ÉÇ2 +.ÉÚ1Î +.ÉÚ1Ò +.ÉÓ1ÔÉ +.ÉÓ5ÔÒ +.ÌÅ1Í +.ÌÅÓ2Ë +.ÌØ2 +.ÍÅ5Ä6Ì +.ÍÅ6ÖÁ +.ÍÅÌÉ6 +.ÍÉ2ÎÁÔ +.ÎÁ5×6 +.ÎÁ1Ó +.ÎÁ1Þ2Î +.ÎÅÁ6 +.ÎÅ1× +.ÎÅ6×ÒÉ +.ÎÅ1Ú2 +.ÎÅ5Ì +.ÎÏÓ5Ë +.ÏÂ1ÌÅ +.ÏÂ5ÌÉ× +.ÏÂ5ÌÉÔ +.ÏÂ1ÌÏ +.ÏÂ1ÏÓÎ +.ÏÂ1ÒÅ +.ÏÂ1ÒÕ +.ÏÂ1Õ2Þ +.ÏÇ1Î +.ÏÚ2 +.ÏÓ2Ð +.ÏÔ3× +.ÏÔ1Ò +.ÐÏ1×2 +.ÐÏ1Ö2 +.ÐÏÌÕ1 +.ÐÒÅ1Ì +.ÐÒÉ1Þ +.ÒÁ2Ó1ÔÁ +.ÒÁ2ÓÔÏ +.ÒÅÊ2Ó1 +.ÔÁ5ÓÍ +.ÔÅË1Ó +.ÔÒÁÎ2Ó1 +.ÔØ2 +.ÕË2 +.ÕÍÙ6Û5 +.ÕÒ6× +.ÆÁ5Õ +.ÈÌÁ2 +.ÞÁ2Å +Á1Á +ÁÁ6 +Á1ÂÁ +5ÁÂÁÔÁ +Á1ÂÅ +ÁÂÅ5ÓÔ +Á1ÂÉ +Á1ÂÌÁ +Á1ÂÌÅ +Á1ÂÌÉ +Á1ÂÌÏ +Á1ÂÌÕ +Á1ÂÌÙ +Á1ÂÏ +Á1ÂÒÁ +Á1ÂÒÅ +Á1ÂÒÉ +Á1ÂÒÏ +Á1ÂÒÕ +Á1ÂÒÙ +Á5ÂÒÑ +Á1ÂÕ +Á1ÂÈ +Á1ÂÙ +Á1ÂØÅ +Á1ÂØÉ +Á1ÂØÀ +Á1ÂØÑ +Á1ÂÀ +Á1ÂÑ +Á1×Á +1Á×Ç +Á1×Å +Á1×É +Á1×ÌÁ +Á1×ÌÅ +Á1×ÌÉ +Á1×ÌÏ +Á1×ÌÕ +Á1×ÌÙ +Á1×Ï +Á2×ÏÔ +Á6×Ð +Á1×ÒÁ +Á1×ÒÅ +Á1×ÒÉ +Á1×ÒÏ +Á1×ÒÕ +Á1×ÒÙ +Á1×Õ +Á1×Ù +Á1רŠ+Á1×ØÉ +Á1רÀ +Á1×ØÑ +Á5×Ü +Á1×À +Á1×Ñ +Á1ÇÁ +ÁÇÁ5Ó6 +Á5Ç× +ÁÇ1Ä +Á1ÇÅ +Á1ÇÉ +Á1ÇÌ +Á1ÇÌÁ +Á1ÇÌÅ +Á1ÇÌÉ +Á1ÇÌÏ +Á1ÇÌÕ +Á1ÇÌÙ +Á1ÇÏ +ÁÇÏ5Ó +Á1ÇÒÁ +Á1ÇÒÅ +Á1ÇÒÉ +1Á1ÇÒÏ +Á1ÇÒÕ +Á1ÇÒÙ +Á3ÇÕ +Á1ÇÙ +Á1ÇØÅ +Á1ÇØÉ +Á1ÇØÀ +Á1ÇØÑ +Á1ÇÀ +Á1ÇÑ +Á1ÄÁ +ÁÄ1ÁÇÅ +Á1Ä×Á +Á1Ä×Å +Á1Ä×É +Á1Ä×Ï +Á1Ä×Õ +Á1Ä×Ù +Á1ÄÅ +Á1ÄÖ +ÁÄÖÏ6 +ÁÄ5ÚÉ +Á1ÄÉ +ÁÄÉ2Ï +Á2Ä1Ì +Á1ÄÌÁ +Á1ÄÌÅ +Á1ÄÌÉ +Á1ÄÌÏ +Á1ÄÌÕ +Á1ÄÌÙ +1ÁÄÍ +Á1ÄÏ +Á3ÄÒÁ +Á1ÄÒÅ +ÁÄ5ÒÅÚ +Á1ÄÒÉ +Á1ÄÒÏ +Á1ÄÒÕ +Á1ÄÒÙ +Á1ÄÕ +Á1Äà +Á1ÄÙ +Á1ÄØÅ +Á1ÄØÉ +Á1ÄØÀ +Á1ÄØÑ +Á1ÄÀ +Á1ÄÑ +Á1Å +ÁÅ2 +ÁÅ6ÄÉ +ÁÅ2Ì +Á1ÖÁ +Á1ÖÅ +Á1ÖÖ +Á1ÖÉ +Á1ÖÍ +Á1ÖÏ +Á1ÖÒ +Á1ÖÕ +Á1ÖØÅ +Á1ÖØÉ +Á1ÖØÀ +Á1ÖØÑ +2ÁÚ +Á1ÚÁ +ÁÚ1×Å +ÁÚ1×É +ÁÚ1×Ï +ÁÚ1ÄÁ +ÁÚ5ÄÏ +ÁÚ5ÄÒÏ +ÁÚ5ÄÕ +Á1ÚÅ +Á1ÚÉ +ÁÚÉÁ6 +ÁÚÉ5Í6 +Á1ÚÏ +ÁÚ1Ò +Á5ÚÕ +ÁÚ5ÕÂÅ +ÁÚ6ÕÓ +Á6ÚÕÞ +Á1ÚÙ +Á1ÚØÅ +Á1ÚØÉ +Á1ÚØÀ +Á1ÚØÑ +Á1ÚÀ +Á1ÚÑ +Á1É +ÁÉ2Ç +Á6ÉÄ +ÁÉÚ5 +ÁÉ6ÍÅÔ +ÁÉ2ÎÉ +Á2ÉÈ +2ÁÊ +ÁÊ2ÍÁ +Á1ËÁ +Á1Ë×Á +Á1Ë×Å +Á1Ë×É +Á1Ë×Ï +Á1Ë×Õ +Á1Ë×Ù +Á1ËÅ +Á1ËÉ +Á1ËÌÁ +Á1ËÌÅ +Á1ËÌÉ +Á1ËÌÏ +Á1ËÌÕ +Á1ËÌÙ +ÁË1Î +Á1ËÏ +Á1ËÒÁ +Á1ËÒÅ +Á1ËÒÉ +Á1ËÒÏ +Á1ËÒÕ +Á1ËÒÙ +ÁË1Ó +Á1ËÕ +Á1ËÙ +Á1ËØÅ +Á1ËØÉ +Á1ËØÀ +Á1ËØÑ +Á1ËÀ +Á1ËÑ +Á1ÌÁ +Á2ÌÁ +1ÁÌÇ +Á1ÌÅ +Á5ÌÉ +6ÁÌÉÎ +Á1ÌÏ +Á1ÌÕ +Á1ÌÙ +Á1ÌØÅ +Á1ÌØÉ +Á1ÌØÀ +Á1ÌØÑ +Á1ÌÀ +Á1ÌÑ +2Á1ÍÁ +Á1ÍÅ +Á1ÍÉ +Á1ÍÌÁ +Á1ÍÌÅ +Á1ÍÌÉ +Á1ÍÌÏ +Á1ÍÌÕ +Á1ÍÌÙ +Á1ÍÎÏ +Á1ÍÏ +ÁÍÏ1Ó +1ÁÍÐÅ +Á1ÍÒÁ +Á1ÍÒÅ +Á1ÍÒÉ +Á1ÍÒÏ +Á1ÍÒÕ +Á1ÍÒÙ +Á1ÍÕ +ÁÍ1Þ +Á1ÍÛ +Á1ÍÙ +Á1ÍØÅ +Á1ÍØÉ +Á1ÍØÀ +Á1ÍØÑ +Á1ÍÀ +Á1ÍÑ +Á1ÎÁ +Á1ÎÅ +Á1ÎÉ +Á6ÎÉÎÓ +Á1ÎÏ +Á2Î1Ï +6ÁÎÏÓ +Á1ÎÒÁ +Á1ÎÒÅ +Á1ÎÒÉ +Á1ÎÒÏ +Á1ÎÒÕ +Á1ÎÒÙ +ÁÎ2Ó1ËÒ +ÁÎ2ÓÐ +ÁÎ2Óà +Á1ÎÕ +Á2Î5ÕÚ +Á1ÎÙ +Á1ÎØÅ +Á1ÎØÉ +Á1ÎØÀ +Á1ÎØÑ +Á1ÎÀ +Á1ÎÑ +2Á3Ï +ÁÏ6Ë +ÁÏ2Ð +ÁÏ2Ó +ÁÏÔ5Ò +Á1ÐÁ +Á1ÐÅ +Á1ÐÉ +Á1ÐÌÁ +Á1ÐÌÅ +Á1ÐÌÉ +Á1ÐÌÏ +Á1ÐÌÕ +Á1ÐÌÙ +Á1ÐÏ +1ÁÐÐ +Á1ÐÒÁ +Á1ÐÒÅ +Á1ÐÒÉ +ÁÐÒÉ2ÚÎ +Á1ÐÒÏ +Á1ÐÒÕ +Á1ÐÒÙ +Á5Ð2Ô +Á1ÐÔÁ +Á1ÐÔÅ +Á1ÐÔÉ +Á1ÐÔÏ +Á1ÐÔÕ +Á1ÐÔÙ +Á1ÐÕ +Á1ÐÙ +Á1ÐØÅ +Á1ÐØÉ +Á1ÐØÀ +Á1ÐØÑ +Á1ÐÀ +Á1ÐÑ +Á1Ò6Á +Á1ÒÅ +Á1ÒÉ +5ÁÒÍÅ +Á1ÒÏ +ÁÒ2Ô1ÏÒ +Á1ÒÕ +Á1ÒÙ +Á1ÒØÅ +Á1ÒØÉ +Á1ÒØÀ +Á1ÒØÑ +Á1ÒÀ +Á1ÒÑ +Á1ÓÁ +Á1Ó×Á +Á1Ó×Å +Á1Ó×É +Á1Ó×Ï +Á1Ó×Õ +Á1Ó×Ù +6Á1ÓÅ +Á1ÓÉ +ÁÓ1Ë +Á1ÓË×Á +Á1ÓË×Å +Á1ÓË×É +Á1ÓË×Ï +Á1ÓË×Õ +Á1ÓË×Ù +Á1ÓËÒÁ +Á1ÓËÒÅ +Á1ÓËÒÉ +Á1ÓËÒÏ +Á1ÓËÒÕ +Á1ÓËÒÙ +ÁÓ5ÌÅÔ +ÁÓ5ÌÑÍ +ÁÓ5ÌÑÈ +ÁÓ5ÍÉ +Á1ÓÏ +ÁÓ3ÐÏ +ÁÓ1ÐÕ +Á1ÓÒÁ +Á1ÓÒÅ +Á1ÓÒÉ +Á1ÓÒÏ +Á1ÓÒÕ +Á1ÓÒÙ +1ÁÓÓÉÇ +ÁÓÓ6Ð +Á1ÓÔÁ +Á1ÓÔ×Á +Á1ÓÔ×Å +Á1ÓÔ×É +Á1ÓÔ×Ï +Á1ÓÔ×Õ +Á1ÓÔ×Ù +Á1ÓÔרŠ+Á1ÓÔ×ØÉ +Á1ÓÔרÀ +Á1ÓÔ×ØÑ +Á1ÓÔ×À +Á1ÓÔ×Ñ +Á1ÓÔÅ +Á1ÓÔÉ +Á1ÓÔÏ +Á6Ó5ÔÏÍ +Á1ÓÔÒÁ +Á1ÓÔÒÅ +Á1ÓÔÒÉ +Á1ÓÔÒÏ +Á1ÓÔÒÕ +Á1ÓÔÒÙ +Á1ÓÔÒØÅ +Á1ÓÔÒØÉ +Á1ÓÔÒØÀ +Á1ÓÔÒØÑ +Á1ÓÔÒÀ +Á1ÓÔÒÑ +Á1ÓÔÕ +Á1ÓÔÙ +Á1ÓÔØÅ +Á1ÓÔØÉ +Á1ÓÔØÀ +Á1ÓÔØÑ +Á1ÓÔÀ +Á1ÓÔÑ +Á6Ó5ÔÑÇ +Á6ÓÔÑÎ +Á1ÓÕ +ÁÓ1Þ +Á1Ó2ÛÅ +Á1ÓÙ +Á1ÓØÅ +Á1ÓØÉ +Á1ÓØÀ +Á1ÓØÑ +Á1ÓÀ +Á1ÓÑ +Á1ÔÁ +1ÁÔÁË +Á1Ô×Á +Á1Ô×Å +Á1Ô5×É +Á1Ô×Ï +Á1Ô×Õ +Á1Ô×Ù +Á1ÔÅ +ÁÔÅ2Ó1 +Á1ÔÉ +Á1ÔÏ +Á6ÔÏÍÎ +Á1ÔÒÁ +Á1ÔÒÅ +Á1ÔÒÉ +Á1ÔÒÏ +Á1ÔÒÕ +Á1ÔÒÙ +Á1ÔÕ +Á1ÔÙ +Á1ÔØÅ +Á1ÔØÉ +Á1ÔØÀ +Á1ÔØÑ +Á1ÔÀ +Á1ÔÑ +Á1Õ +Á2ÕÍ +Á2ÕÎ +Á2ÕÓ +ÁÕÓ5Ë +ÁÕ2Ô1Ò +Á3ÕÞ +ÁÕ2ÞÉ +Á2ÕÜ +Á1ÆÁ +Á1ÆÅ +Á1ÆÉ +Á1ÆÌÁ +Á1ÆÌÅ +Á1ÆÌÉ +Á1ÆÌÏ +Á1ÆÌÕ +Á1ÆÌÙ +Á1ÆÏ +Á1ÆÒÁ +Á1ÆÒÅ +Á1ÆÒÉ +Á1ÆÒÏ +Á1ÆÒÕ +Á1ÆÒÙ +Á1ÆÕ +Á1ÆØÅ +Á1ÆØÉ +Á1ÆØÀ +Á1ÆØÑ +Á1ÆÀ +Á1ÆÑ +Á1ÈÁ +Á1ÈÄÁ +Á1ÈÄÅ +Á1ÈÄÉ +Á1ÈÄÏ +Á1ÈÄÕ +Á1ÈÄÙ +Á1ÈÅ +Á1ÈÉ +Á1ÈÏ +Á1ÈÕ +Á1ÈÙ +Á1ÈØÅ +Á1ÈØÉ +Á1ÈØÀ +Á1ÈØÑ +Á1ÈÀ +Á1ÈÑ +Á1ÃÁ +Á1ÃÅ +Á1ÃÉ +Á1ÃÏ +Á1ÃÕ +Á1ÃÙ +Á1ÃØÅ +Á1ÃØÉ +Á1ÃØÀ +Á1ÃØÑ +Á1ÞÁ +Á1ÞÅ +ÁÞÅÓ2 +Á1ÞÉ +ÁÞ1ÔÁ +Á1ÞÕ +Á1ÞØÅ +Á1ÞØÉ +Á1ÞØÀ +Á1ÞØÑ +2ÁÛ +Á1ÛÁ +Á6Û× +Á1Û×Á +Á1Û×Å +Á1Û×É +Á1Û×Ï +Á1Û×Õ +Á1Û×Ù +Á1ÛÅ +Á5ÛÉ +Á1ÛÌÁ +Á1ÛÌÅ +Á1ÛÌÉ +Á1ÛÌÏ +Á1ÛÌÕ +Á1ÛÌÙ +Á1ÛÏ +Á1ÛÒÁ +Á1ÛÒÅ +Á1ÛÒÉ +Á1ÛÒÏ +Á1ÛÒÕ +Á1ÛÒÙ +ÁÛ1ÔÁ +Á1ÛÕ +Á1ÛØÅ +Á1ÛØÉ +Á1ÛØÀ +Á1ÛØÑ +Á5Ý +Á1ÝÁ +Á1ÝÅ +Á1ÝÉ +Á1ÝÏ +Á1ÝÕ +Á1ÝØÅ +Á1ÝØÉ +Á1ÝØÀ +Á1ÝØÑ +Á1Ù +Á1Ü1 +Á2ÜÒ +Á1À +Á1Ñ +ÁÑ2Ú +ÂÁ6Ë× +ÂÁÓ1Í +ÂÁ6È5Ò +Â1ÁÜ +Â1 +1Â1× +6Â1Ç +Â1Ä +1ÂÅ +ÂÅÇ5Î +ÂÅ6ÄÌ +ÂÅ2Ú1Á2 +ÂÅÚ1Ä2 +ÂÅ2Ú1É +ÂÅ2ÚÏ2 +ÂÅÏ6 +ÂÅ2Ó1Ë +2ÂÅÓ3Ð +ÂÅ2ÓÔÁ +ÂÅÓ1Þ +Â1Ö +ÂÚ2 +1ÂÚÄ2 +Â5ÚÅ +5ÂÚÖ +Â5ÚÉ +Â1ÚÏ +5ÂÉ2Ï +ÂÉÏ5Ó +ÂÉ6ÓË +Â5Ë +1ÂÌ +Â1ÌÁ× +2ÂÌÁÓ +2ÂÌÄ +Â1ÌÅÇ +ÂÌÅ2Ó5Ë +Â5ÌÉÚÁ +ÂÌ1ÉÓÐ +Â1ÌÏÖ +Â1ÌÏÍ +Â6ÌÕÄ +6ÂÌÈ +2ÂÌØ5 +6Â1Í +2Â1Î +Â1Ï +ÂÏÄ6Ò +ÂÏ5ÄÒÏ +ÂÏ1ÖÖ +ÂÏ1Ú +ÂÏ6ÚÕ +ÂÏ1Ò× +ÂÏÒÔ5 +ÂÏÒ6ÔÒ +ÂÏ1ÓË +ÂÏ2ÓÏ +ÂÏ5Ó6Ð +ÂÏ1Ó2Ó +5ÂÏÔ +ÂÏ6Ô× +ÂÏ1Ô2Ì +5ÂÏà +Â1Ð +6ÂÒ. +ÂÒÁ6ÓÌ +ÂÒÁ3Õ +Â1ÒÙ× +Â5ÒÙÇ +Â5ÒÙÄ +6Â1Ó2 +2Â1Ô +1ÂÕ +Â1ÕÇ +ÂÕ2ÇÌ +Â1Õ2ÓÌ +Â1Æ +Â1È +2Â1à +Â1Þ +Â1Û +Â1Ý +Â2ß +ÂÜ1Ò +1ÂÀ +1ÂÑ +1×ÁÇ +5×ÁË +×ÁÎ5Ó6à +×Á1ÓÔ +×ÁÈ1 +×1 +×6ÂÉ +×1× +×1Ç +×1Ä +×ÄÏ1Ó +1×ÅÇ +1×ÅÌÌ +×Å5ÏÌÁ +×ÅÏ2Ó +×ÅÒ2È1Ò +1×Ú2 +×2ÚÁ +×Úß2 +×ÚÙÓ5 +×É6ÁË +×É2ÁÍ +×É6ÁÒ +×É6ÁÓ +×É5ÁÆ +×É6ÄÌ +×ÉÎ6ÄÒ +5×ÉÎÔ +6×5ÉÎÆ +×É5ÏÌ +×ÉÓÔ5Ì +1×É2È1 +×1Ë +×Ë1Î +×6ËÕÓ +1×Ì +2×1ÌÁ +2×1ÌÁÇ +2×1ÌÅÓ +×ÌÉ6Å +6×5ÌÉË +6×5ÌÉÞ +2×ÌØ +×1ÍÁ +2×1ÍÉ +×1ÍÏ +×6ÍÏÇÏ +×6ÍÏÞ +×1Î +×6ÎÅÓ +×2ÎÕÛ +×ÏÂÅÚ5 +×Ï1×Ë +×Ï1Ç +×ÏÚ1× +×ÏÉ2Ó +1×ÏË +×Ï2Ó1Ë +×Ï2ÓÔÒ +×Ï6ÈÒ +1×ÏÑ +1×Ð +×5ÐÏ6Ì +1×Ò2 +2×Ò. +×ÒÁ2Ö5Ä +×5ÒÁÓ +6×5ÒÁà +6×5ÒÉÔÙ +×5ÒÏÒ +×ÒÏÓ5 +×ÒÏ5Ô +×1Ó2 +1×2ÓÁ +×6ÓÅÇ +5×ÓÅÍ +6×ÓË +1×2ÓÐ +1×2ÓÈ +1×2ÓÀ +×1Ô +×ÔÏ3Ë2 +6×5ÔÒ +1×Õ2Á +1×ÕÄ +×ÕÅ6Ä +×Õ1Ú +×ÕÏ6 +×Õ2È1 +×1Æ +×1È +×6ÈÏÄ +×1à +×1ÞÁ +×1ÞÉ +×1Û +1×2ÛÉ× +×1Ý +1×ß2 +×Ù1ÓË +×Ù5ÓÐ +×Ù1Ó2Ó +×Ù1È +1×À +1ÇÁ +ÇÁ2Õ +2Ç1 +5Ç×É +Ç1×Ù +5ÇרÀ +Ç1Ç +Ç5ÄÏ +ÇÅÌÉ2Ï +ÇÅ2Î1ÉÎ +ÇÅ2ÎÒ +ÇÅ6Ï +ÇÅ2ÏÄ +ÇÅ6ÏË +ÇÅ6ÏÎ +ÇÅ2ÏÐ +ÇÅ6ÏÒÉ +ÇÅ2ÏÓ +ÇÅ2ÏÔ +ÇÅ2Ïà +Ç1Ú +2Ç1Ë +ÇËÏ1× +6ÇÌ. +6Ç5ÌÁÊ +6ÇÌ× +1ÇÌÑ +Ç1Í +Ç1ÎÉ +ÇÏ1Ú +ÇÏ2Ó1Á +ÇÏÓ1Ë +ÇÏÓ3Ó +ÇÏ6ÓÔÅÌ +ÇÏ2Ó1ÔÒ +ÇÏ1ÓÛ +2Ç1Ð +6ÇÒÅË +2ÇÒÏÐ +2Ç1Ó +Ç2Ó +2Ç5Ô +6ÇÆ +6Ç1È +Ç1à +Ç1Þ +2Ç1Û +Ç1Ü +ÄÁ6ÂÅ +ÄÁ2ÇÅÎ +ÄÁ2ÄÒ +2ÄÁÌÇ +ÄÁ2ÐÒ +6Ä1 +Ä×6 +2Ä1×Á +2Ä1×Å +Ä×Å2Ó5Ë +2Ä1×ÉÄ +6Ä×ÉÎÔ +6Ä5×ÉÎÞ +2Ä1×ÉÓ +Ä5×Ë +2Ä1×ÏÄ +Ä×Õ1Û +6Ä5×Ù +Ä1Ç2 +Ä5Ä6 +5ÄÅ +ÄÅ2Ú1Á2 +ÄÅ2Ú1É2Ï +ÄÅ2Ú1Ï2 +ÄÅ2Ï5 +5ÄÅÆ +ÄÅ5È +5ÄÖÁ +5ÄÖÉÑ +ÄÖ5Ì +ÄÖ1Í +ÄÖ1Ò +6ÄÚ. +1ÄÚÅ. +Ä5ÚÅÍ +Ä1ÚÏ +ÄÉ2ÁÄ +ÄÉ6ÁÌÉ +ÄÉ2ÁÍ +6Ä5É6ÄÅ +2ÄÉÎÓ +2Ä1ÉÎÆ +ÄÉ2Ï +ÄÉ5ÏÎ +ÄÉ2ÏÐ +ÄÉ2Ï5Ó +ÄÉ6Ð5Ô +ÄÉ2Ó1Å +ÄÉ2ÓË +ÄÉ2ÓÔÏ +ÄÉ2Ó1ÔÒ +ÄÉ5È +2Ä1Ë +Ä1ÌÁ +Ä5ÌÅÄ +Ä1ÌÅÖ +5Ä6ÌÅÊ +Ä5ÌÅÎÉ +Ä1ÌÏ +Ä1ÌÙ +5ÄÌÀ +2Ä1Í +Ä2ÍÓ +Ä2Í1Þ +Ä1Î +1ÄÎÅ×Î +ÄÎÏ5Ä +1ÄÎÑÛ +2Ä1ÏÂÌ +ÄÏ6ÂÌÁ +6ÄÏÂß +1ÄÏ× +ÄÏ1Ä2 +ÄÏ1Ú +ÄÏÉÓ6 +2ÄÏËÔ +ÄÏ5ÍÎÏ +ÄÏ5Ò×Á +5ÄÏÒÅ +ÄÏ2ÒÕ +2Ä1Ï2ÓÉ +ÄÏ1ÓÎ +ÄÏ1Ó2Ð +Ä5ÏÔÒ +1ÄÏÞ +ÄÏ1Û2 +Ä1Ð +2ÄÒ. +5Ä6ÒÁÖ +Ä1ÒÁÓ +5Ä6ÒÁÑ +Ä1ÒÅÖ +Ä5ÒÅÛ +ÄÒÉ5Ó +Ä1ÒÉÈ +6Ä5ÒÏÚ +2ÄÒÓ +Ä1ÒÕ +6Ä5ÒÕÞ +2Ä1ÒÙ× +Ä1ÒÑÄ +5ÄÒÑÔ +2Ä1Ó +ÄÓ3ËÎ +2Ä1Ô +1ÄÕÍ +2ÄÕÏ5 +ÄÕ6ÏÐ +ÄÕ6ÏÓ +ÄÕ6ÒÁÌ +6Ä5Õ6ÓÉ +1ÄÕÈ +2Ä1ÕÜ +2Ä1Æ +Ä1È +Ä1Þ +2Ä1Û2 +5ÄÙ× +2ÄØ. +1ÄØÅ +5ÄØÀ +1ÄØÑ +Ä1Ü +1ÄÀÎ +Å1Á +ÅÁ2 +ÅÁ2Ä +ÅÁ5ÄÏ +Å3Á2Ú +Å6ÁËÏ +Å6ÁÓ +ÅÁ2ÔÏ +ÅÁ6Õ +Å1ÂÁ +Å1ÂÅ +ÅÂÅ5ÚÏ5 +Å1ÂÉ +Å1ÂÌÁ +Å1ÂÌÅ +Å1ÂÌÉ +Å1ÂÌÏ +Å1ÂÌÕ +Å1ÂÌÙ +Å1ÂÏ +Å5ÂÏÒ +Å1ÂÒ +Å1ÂÒÁ +Å1ÂÒÅ +Å1ÂÒÉ +Å1ÂÒÏ +Å1ÂÒÕ +Å1ÂÒÙ +Å1ÂÕ +Å1ÂÙ +Å1ÂØÅ +Å1ÂØÉ +Å1ÂØÀ +Å1ÂØÑ +Å1ÂÀ +Å1ÂÑ +Å1×Á +2Å1×Å +Å1×É +Å×6ËÕ +Å1×ÌÁ +Å1×ÌÅ +Å1×ÌÉ +Å1×ÌÏ +Å1×ÌÕ +Å1×ÌÙ +Å×2ÎÉÍ +Å×2ÎÑÔ +Å1×Ï +6Å×ÏÌ +Å×Ï2Ó +Å×2Ð +Å×5ÐÁ +2Å×Ò +Å1×ÒÁ +Å1×ÒÅ +Å1×ÒÉ +Å2×ÒÏ +Å1×ÒÕ +Å1×ÒÙ +Å1×Õ +Å×1Þ +Å×ßÅ5È +Å1×Ù +Å1רŠ+Å1×ØÉ +Å1רÀ +Å1×ØÑ +Å1×À +Å1×Ñ +Å1ÇÁ +Å1ÇÄ +Å1ÇÅ +Å1ÇÉ +Å1ÇÌÁ +Å1ÇÌÅ +Å1ÇÌÉ +Å1ÇÌÏ +Å1ÇÌÕ +Å1ÇÌÙ +ÅÇ1ÎÅ +ÅÇ6ÎÏ +Å1ÇÏ +Å1ÇÒÁ +Å1ÇÒÅ +Å1ÇÒÉ +Å1ÇÒÏ +Å1ÇÒÕ +Å1ÇÒÙ +Å1ÇÕ +Å1ÇÙ +Å1ÇØÅ +Å1ÇØÉ +Å1ÇØÀ +Å1ÇØÑ +Å1ÇÀ +Å1ÇÑ +Å1ÄÁ +Å6Ä5Á +Å2Ä1ÁÐ +Å1Ä×Á +Å1Ä×Å +Å1Ä×É +Å1Ä×Ï +Å1Ä×Õ +Å1Ä×Ù +Å1ÄÅ +Å5ÄÖÅ +Å1ÄÉ +Å6Ä5ÉÓÐ +Å2Ä1ÉÀ +Å2ÄÌ +Å1ÄÌÁ +Å3ÄÌÅ +Å1Ä1ÌÉ +Å1ÄÌÏ +Å1ÄÌÕ +Å1ÄÌÙ +ÅÄ5ÌÑ +Å1ÄÏ +ÅÄ5Ï6ÐÒ +ÅÄ1ÏÓÍ +Å2ÄÏÔ× +Å1ÄÒÁ +Å1ÄÒÅ +Å1ÄÒÉ +Å1ÄÒÏ +Å1ÄÒÕ +Å1ÄÒÙ +Å1ÄÕ +Å6Ä5ÕÇ +Å6ÄÕÍÙ +Å1ÄÙ +Å1ÄØÅ +Å1ÄØÉ +Å1ÄØÀ +Å1ÄØÑ +Å1ÄÀ +Å1ÄÑ +Å1Å +Å2Å×Á +ÅÅ6Ç +Å6ÅÍÁ +Å6ÅÐ +Å1ÖÁ +ÅÖÁ6Ô +ÅÖ5ÁÔÏ +Å2ÖÄÀ +Å1ÖÅ +Å1ÖÖ +Å5ÖÉ +ÅÖ1Í +Å1ÖÏ +ÅÖ1Ò +Å1ÖÕ +Å1ÖØÅ +Å1ÖØÉ +Å1ÖØÀ +Å1ÖØÑ +Å1ÚÁ +ÅÚ5×É +ÅÚ1×Ï +ÅÚ1ÄÁ +ÅÚÄÉ2 +ÅÚ5ÄÏ. +ÅÚ1ÄÒ +ÅÚ1ÄÕ +ÅÚ1ÄÙ +Å1ÚÅ +Å1ÚÉ +Å1ÚÏ +ÅÚ1ÏÔ +Å1ÚÕ +Å1ÚÙ +Å1ÚØÅ +Å1ÚØÉ +Å1ÚØÀ +Å1ÚØÑ +Å1ÚÀ +Å1ÚÑ +Å1É +ÅÉ2Ç +ÅÉ2Ä +ÅÉ2Í +Å1ËÁ +Å1Ë×Á +Å1Ë×Å +Å1Ë×É +Å1Ë×Ï +Å1Ë×Õ +Å1Ë×Ù +Å1ËÅ +Å1ËÉ +Å1ËÌÁ +Å1ËÌÅ +Å1ËÌÉ +Å1ËÌÏ +Å1ËÌÕ +Å1ËÌÙ +ÅË1Î +2Å1ËÏ +Å1ËÒÁ +Å1ËÒÅ +Å1ËÒÉ +Å1ËÒÏ +Å1ËÒÕ +Å1ËÒÙ +ÅË1ÓË +ÅËÓÐÏ6 +ÅË1ÓÔÕ +Å1ËÕ +Å1ËÙ +Å1ËØÅ +Å1ËØÉ +Å1ËØÀ +Å1ËØÑ +Å1ËÀ +Å1ËÑ +Å1ÌÁ +Å1ÌÅ +Å1ÌÉ +Å1ÌÏ +Å1ÌÕ +Å1ÌÙ +Å1ÌØÅ +Å1ÌØÉ +Å1ÌØÀ +Å1ÌØÑ +Å1ÌÀ +Å1ÌÑ +Å1ÍÁ +Å1ÍÅ +Å1ÍÉ +Å1ÍÌÁ +Å1ÍÌÅ +Å1ÍÌÉ +Å1ÍÌÏ +Å1ÍÌÕ +Å1ÍÌÙ +ÅÍ1ÎÅ +Å1ÍÏ +ÅÍ6ÐÔ +Å1ÍÒÁ +Å1ÍÒÅ +Å1ÍÒÉ +Å1ÍÒÏ +Å1ÍÒÕ +Å1ÍÒÙ +Å1ÍÕ +ÅÍ1Þ +Å1ÍÙ +Å1ÍØÅ +Å1ÍØÉ +Å1ÍØÀ +Å1ÍØÑ +Å1ÍÀ +Å1ÍÑ +Å1ÎÁ +Å1ÎÅ +Å1ÎÉ +Å1ÎÏ +2ÅÎÒ +Å1ÎÒÁ +Å1Î5ÒÅ +Å1Î1ÒÉ +Å1ÎÒÏ +Å1ÎÒÕ +Å1ÎÒÙ +Å1ÎÕ +Å1ÎÙ +Å1ÎØÅ +Å1ÎØÉ +Å1ÎØÀ +Å1ÎØÑ +Å1ÎÀ +Å1ÎÑ +2Å1Ï +ÅÏ5Á +ÅÏ2 +ÅÏ5ÂÁ +ÅÏÂ1Ì +ÅÏÂÏ1 +Å3Ï2ÇÒÁÎ +Å2ÏÄÉ +ÅÏ2Ö +Å5ÏÉÄ +ÅÏ6ËÉ +ÅÏ2ËÏÎ +Å5ÏÌ. +Å5ÏÌÙ +Å5ÏÌÑ +Å3ÏÎ. +Å6ÏÐÁ +Å2ÏÐÌ +ÅÏ6ÐÏÚ +ÅÏ2ÐÒ +ÅÏ6ÐÕ +ÅÏ6ÐÙ +Å2ÏÒÏ +ÅÏ2ÒÕ +ÅÏ1Ó +ÅÏ2ÓÁ +ÅÏ6Ó× +ÅÏ2ÓÅ +ÅÏ6ÓÏ +ÅÏ6ÓÕ +ÅÏ6Óà +Å6ÏÔÅ +Å5Ï6ÆÏÒ +ÅÏ6È× +Å5ÏÈÌ +ÅÏ2ÞÅ +ÅÏ2Ý +Å1ÐÁ +Å1ÐÅ +Å1ÐÉ +Å1ÐÌÁ +Å1ÐÌÅ +Å1ÐÌÉ +Å1ÐÌÏ +Å1ÐÌÕ +Å1ÐÌÙ +Å1ÐÏ +Å1ÐÒÁ +Å1ÐÒÅ +Å1ÐÒÉ +ÅÐÒÉÅ2 +Å1ÐÒÏ +Å1ÐÒÕ +Å1ÐÒÙ +Å1ÐÔÁ +Å1ÐÔÅ +Å1ÐÔÉ +Å1ÐÔÏ +Å1ÐÔÕ +Å1ÐÔÙ +Å1ÐÕ +Å1ÐÙ +Å1ÐØÅ +Å1ÐØÉ +Å1ÐØÀ +Å1ÐØÑ +Å1ÐÀ +Å1ÐÑ +Å1ÒÁ +ÅÒ1ÁÜ +ÅÒ5×Á. +ÅÒ1×ÁÔ +ÅÒ1×Ù +Å1ÒÅ +ÅÒÅ1Ç +ÅÒÅ1Ú× +ÅÒÅ1ÓÓ +Å1ÒÉ +ÅÒ6ËÌ +Å1ÒÏ +ÅÒÏ2 +ÅÒ5ÔÌÉ +ÅÒ1ÔÑ +Å1ÒÕ +Å2Ò1Õ2Ð +ÅÒ2ÈÉ +Å1ÒÙ +Å1ÒØÅ +Å1ÒØÉ +Å1ÒØÀ +Å1ÒØÑ +Å1ÒÀ +Å1ÒÑ +Å1ÓÁ +Å1Ó6 +Å1Ó×Á +Å1Ó×Å +Å1Ó×É +Å1Ó×Ï +Å1Ó×Õ +Å1Ó×Ù +Å1ÓÇ +Å1ÓÄ +Å1ÓÅ +Å1ÓÉ +Å1ÓË +ÅÓ5ËÁÌ +Å1ÓË×Á +Å1ÓË×Å +Å1ÓË×É +Å1ÓË×Ï +Å1ÓË×Õ +Å1ÓË×Ù +ÅÓ6ËÌ +Å1ÓËÒÁ +Å1ÓËÒÅ +Å1ÓËÒÉ2 +ÅÓËÒÉÐ1 +Å1ÓËÒÏ +Å1ÓËÒÕ +Å1ÓËÒÙ +Å1ÓÍ +Å1ÓÏ +ÅÓÏ6ÓË +2ÅÓ1Ð +Å1ÓÒÁ +Å1ÓÒÅ +Å1ÓÒÉ +Å1ÓÒÏ +Å1ÓÒÕ +Å1ÓÒÙ +ÅÓÓ2Ð +Å1ÓÔÁ +Å5ÓÔÁ. +ÅÓ1ÔÁÒ +Å1ÓÔ×Á +Å1ÓÔ×Å +Å1ÓÔ×É +Å1ÓÔ×Ï +Å1ÓÔ×Õ +Å1ÓÔ×Ù +Å1ÓÔרŠ+Å1ÓÔ×ØÉ +Å1ÓÔרÀ +Å1ÓÔ×ØÑ +Å1ÓÔ×À +Å1ÓÔ×Ñ +Å1ÓÔÅ +Å1ÓÔÉ +Å6ÓÔÉÇ +ÅÓÔ5Ì +Å1ÓÔÏ +Å1ÓÔÒÁ +Å1ÓÔÒÅ +Å1ÓÔÒÉ +Å1ÓÔÒÏ +Å1ÓÔÒÕ +Å1ÓÔÒÙ +Å1ÓÔÒØÅ +Å1ÓÔÒØÉ +Å1ÓÔÒØÀ +Å1ÓÔÒØÑ +Å1ÓÔÒÀ +Å1ÓÔÒÑ +Å1ÓÔÕ +Å1ÓÔÙ +Å1ÓÔØÅ +Å1ÓÔØÉ +Å1ÓÔØÀ +Å1ÓÔØÑ +Å1ÓÔÀ +Å1ÓÔÑ +Å1ÓÕ +Å1ÓÙ +Å1ÓØÅ +Å1ÓØÉ +Å1ÓØÀ +Å1ÓØÑ +Å1ÓÀ +Å1ÓÑ +Å1ÔÁ +Å1Ô×Á +Å1Ô×Å +Å1Ô×É +Å1Ô×Ï +Å1Ô×Õ +Å1Ô×Ù +Å5Ô×Ñ +Å1ÔÅ +Å1ÔÉ +Å1ÔÌ +Å1ÔÏ +Å1ÔÒÁ +Å1ÔÒÅ +Å1ÔÒÉ +Å1ÔÒÏ +Å1ÔÒÕ +Å1ÔÒÙ +Å5ÔÒØ +Å1ÔÕ +Å1ÔÙ +Å1ÔØÅ +Å1ÔØÉ +Å1ÔØÀ +Å1ÔØÑ +Å1ÔÀ +Å1ÔÑ +2Å1Õ2 +ÅÕÌ6 +ÅÕÍÙ6 +ÅÕÍÙÛ5 +Å1ÆÁ +Å1ÆÅ +Å1ÆÉ +Å1ÆÌÁ +Å1ÆÌÅ +Å1ÆÌÉ +Å1ÆÌÏ +Å1ÆÌÕ +Å1ÆÌÙ +Å1ÆÏ +Å1ÆÒÁ +Å1ÆÒÅ +Å1ÆÒÉ +Å1ÆÒÏ +Å1ÆÒÕ +Å1ÆÒÙ +Å1ÆÕ +Å1ÆØÅ +Å1ÆØÉ +Å1ÆØÀ +Å1ÆØÑ +Å1ÆÀ +Å1ÆÑ +Å1ÈÁ +Å1ÈÄÁ +Å1ÈÄÅ +Å1ÈÄÉ +Å1ÈÄÏ +Å1ÈÄÕ +Å1ÈÄÙ +Å1ÈÅ +Å1ÈÉ +ÅÈ1Í +Å1ÈÏ +Å1ÈÕ +Å1ÈÙ +Å1ÈØÅ +Å1ÈØÉ +Å1ÈØÀ +Å1ÈØÑ +Å1ÈÀ +Å1ÈÑ +Å1ÃÁ +Å1ÃÅ +ÅÃ1Ú +Å1ÃÉ +Å1ÃÏ +Å1ÃÕ +Å1ÃÙ +Å1ÃØÅ +Å1ÃØÉ +Å1ÃØÀ +Å1ÃØÑ +Å1ÞÁ +Å1ÞÅ +Å1ÞÉ +Å1ÞÕ +Å1ÞØÅ +Å1ÞØÉ +Å1ÞØÀ +Å1ÞØÑ +Å1ÛÁ +Å1Û×Á +Å1Û×Å +Å1Û×É +Å1Û×Ï +Å1Û×Õ +Å1Û×Ù +Å1ÛÅ +Å1ÛÉ +Å1ÛÌÁ +Å1ÛÌÅ +Å1ÛÌÉ +Å1ÛÌÏ +Å1ÛÌÕ +Å1ÛÌÙ +Å1ÛÏ +Å1ÛÒÁ +Å1ÛÒÅ +Å1ÛÒÉ +Å1ÛÒÏ +Å1ÛÒÕ +Å1ÛÒÙ +Å1ÛÔÁ +ÅÛ1ÔÏ +Å1ÛÕ +Å1ÛØÅ +Å1ÛØÉ +Å1ÛØÀ +Å1ÛØÑ +Å1ÝÁ +Å1ÝÅ +Å1ÝÉ +Å1ÝÏ +Å1ÝÕ +Å1ÝØÅ +Å1ÝØÉ +Å1ÝØÀ +Å1ÝØÑ +Å1Ù +Å1Ü6 +Å1À +Å1Ñ +ÅÑ6Ú +2ÖÁ×Å +Ö1 +Ö1× +1ÖÇ +6ÖÇÁ +6Ö5ÇÏ +6Ö5ÇÒ +1ÖÄ +6ÖÄ. +6ÖÄÅÆ +2ÖÄ1Ì +6Ö5ÄÏÌ +6Ö5ÄÏÒ +2ÖÄØ +3ÖÅ× +5ÖÅÇ +ÖÅ5Ä2 +5ÖÅÊ +ÖÅ2ÏÄ +Ö1Ö +Ö2ÖÅ +Ö1Ú +Ö5ÉÍÐ +ÖÉ5Ï +2Ö1Ë +1ÖÌÉ× +Ö5ÌÉÞ +Ö1ÍÁ +1ÖÍÕ +Ö1Î +2Ö1Ï2Ó +Ö1Ð +ÖÒÅ6Ó5 +Ö1Ó +Ö1Ô +Ö1ÕÜ +2Ö1à +Ö1Þ +Ö5ÜÌ +5ÖÑ +1ÚÁ +5ÚÁ. +ÚÁÂ6 +ÚÁ1×Þ +ÚÁ1Ç2 +ÚÁÅ6 +ÚÁ1Ú2 +Ú1ÁËÔ +Ú1ÁÌË +ÚÁÍÅÓ2 +ÚÁÎ5Ó6 +ÚÁ5Ð6ÎÕ +ÚÁ1Ò2Ö +ÚÁ1Ó2 +ÚÁÓ3ÓË +ÚÁÔ2 +ÚÁ3ÔÍ +ÚÁ5Õ +ÚÁ1È +ÚÁ1ÛÐ +ÚÁÑ2 +2Ú1 +Ú×2 +Ú5×ÁÑ +Ú×ÅÔ3× +Ú1×Ë +Ú6×ÏÎ +1Ú×Õ +Ú1×Ù +Ú1×Ñ +Ú1Ç +Ú5ÇÎÁ +ÚÇ1ÎÕ +Ú5ÄÁ. +Ú1Ä× +Ú1ÄÅ +Ú1ÄÉ +2ÚÄÎ +Ú5ÄÏÄ +Ú5ÄÏÊ +Ú5ÄÏÍ +Ú5ÄÏÏ +Ú1ÄÑ +6Ú1Ö +Ú1Ú +ÚÉ5Á +ÚÉ6ÎÉ +2Ú1ÉÎÔ +2Ú1ÉÎÆ +ÚÉÏÂ5 +ÚÉ6ÏÎÏ +ÚÉÏ6Ð +3ÚÉÓ +ÚÉ5Ó6È +2Ú1Ë +Ú1Ì +6Ú1Í +6ÚÎÁ. +6Ú1ÎÅ +Ú1ÎÉ +Ú1ÎÏ +2Ú1ÎÕ +2ÚÎÙ +6ÚÏÂÝ +ÚÏ1Ç +ÚÏ3Ä2Ò +ÚÏ1Ú2 +ÚÏË2 +Ú1ÏËÓ +1ÚÏÌ +ÚÏ1Í +ÚÏ1Ò× +Ú1ÏÒÇ +5ÚÏ5ÒÕ +ÚÏÓ2 +ÚÏ1ÓÐ +ÚÏ1Ý +Ú1Ð +Ú1ÒÁ +Ú2ÒÁË +Ú2ÒÁÞ +5ÚÒÉ +Ú1ÒÏÄ +6Ú1ÒÕ +Ú1ÒÑ +2Ú1Ó +Ú1Ô +1ÚÕ +ÚÕ6ÂÅÖ +2Ú1Õ2Ä +ÚÕ6Ë +2Ú1Õ2Ó +Ú1Õ2Þ +Ú1à +Ú1Þ +Ú1Û +Ú6ß +Ú2Ù +2ÚÙÍ +5ÚØÀ +Ú1Ü +ÚÜ1Ë +É1Á +É2Á +É2Á1Ç +É6ÁÄÉ +ÉÁ2ÍÕ +ÉÁ6ÎÁÌ +É2ÁÐ +ÉÁÓ2 +ÉÁ1ÓË +É6ÁÔÒÁ +É2ÁÆ +2É +É1ÂÁ +É1ÂÅ +É1ÂÉ +É1ÂÌÁ +É1ÂÌÅ +É1ÂÌÉ +É1ÂÌÏ +É1ÂÌÕ +É1ÂÌÙ +É1ÂÏ +É1ÂÒÁ +É1ÂÒÅ +É1ÂÒÉ +É1ÂÒÏ +É1ÂÒÕ +É1ÂÒÙ +É1ÂÕ +É1ÂÙ +É1ÂØÅ +É1ÂØÉ +É1ÂØÀ +É1ÂØÑ +É1ÂÀ +É1ÂÑ +É1×Á +6É×ÁÖ +É1×Å +É1×É +É1×ÌÁ +É1×ÌÅ +É1×ÌÉ +É1×ÌÏ +É1×ÌÕ +É1×ÌÙ +É1×Ï +É1×ÒÁ +É1×ÒÅ +É1×ÒÉ +É1×ÒÏ +É1×ÒÕ +É1×ÒÙ +É1×2Ó +É1×Õ +2É1×Ù +É1רŠ+É1×ØÉ +É1רÀ +É1×ØÑ +É1×À +É1×Ñ +É1ÇÁ +É5ÇÄ +É1ÇÅ +É1ÇÉ +6É5ÇÌ +É1ÇÌÁ +É1ÇÌÅ +É1ÇÌÉ +É1ÇÌÏ +É1ÇÌÕ +É1ÇÌÙ +ÉÇ1Î +É1ÇÏ +É1ÇÒÁ +É1ÇÒÅ +É1ÇÒÉ +É1ÇÒÏ +É1ÇÒÕ +É1ÇÒÙ +É1ÇÕ +É1ÇÙ +É1ÇØÅ +É1ÇØÉ +É1ÇØÀ +É1ÇØÑ +É1ÇÀ +É1ÇÑ +É1ÄÁ +É1Ä×Á +É1Ä×Å +É1Ä×É +É1Ä×Ï +É1Ä×Õ +É1Ä×Ù +É1ÄÅ +É2ÄÅÊ +É1ÄÖÉ +É1ÄÉ +ÉÄÉ3ÏÍ +ÉÄÉ3ÏÔ +É1ÄÌÁ +É1ÄÌÅ +É1ÄÌÉ +É1ÄÌÏ +É1ÄÌÕ +É1ÄÌÙ +É1ÄÏ +É1ÄÒÁ +É1ÄÒÅ +É1ÄÒÉ +É1ÄÒÏ5 +É1ÄÒÕ +É1ÄÒÙ +É1ÄÕ +ÉÄ1à +É1ÄÙ +É1ÄØÅ +É1ÄØÉ +É1ÄØÀ +É1ÄØÑ +É1ÄÀ +É1ÄÑ +É1Å +ÉÅ6 +ÉÅ6Ä +É6ÅÎÏ +É1ÖÁ +É1ÖÅ +É1ÖÖ +É1ÖÉ +É1ÖÏ +É1ÖÕ +É1ÖØÅ +É1ÖØÉ +É1ÖØÀ +É1ÖØÑ +É1ÚÁ +ÉÚ1× +ÉÚ2×Á +ÉÚ2ÇÎ +ÉÚÇ1ÎÅ +ÉÚ1Ä +É1ÚÅ +É1ÚÉ +É1ÚÎÁÞ +É1ÚÏ +ÉÚÏ1Ô +É1ÚÒ +É1ÚÕ +É1ÚÙ +ÉÚÙ1Ó +É1ÚØÅ +É1ÚØÉ +É1ÚØÀ +É1ÚØÑ +É1ÚÀ +É1ÚÑ +É1É +ÉÉ2Ú +É1ËÁ +É1Ë×Á +É1Ë×Å +É1Ë×É +É1Ë×Ï +É1Ë×Õ +É1Ë×Ù +É1ËÅ +É1ËÉ +É1ËÌÁ +É1ËÌÅ +É1ËÌÉ +É1ËÌÏ +É1ËÌÕ +É1ËÌÙ +ÉË1Î +É1ËÏ +É6ËÏÎÏ +6ÉËÒ +É1ËÒÁ +É1ËÒÅ +É1ËÒÉ +É1ËÒÏ +É1ËÒÕ +É1ËÒÙ +ÉË1ÓË +ÉËÓ1ÔÕ +É1ËÕ +É5Ë6Þ +É1ËÙ +É1ËØÅ +É1ËØÉ +É1ËØÀ +É1ËØÑ +É1ËÀ +É1ËÑ +É1ÌÁ +É2Ì1Á2à +É1ÌÅ +É1ÌÉ +ÉÌ6ÌÕ +É1ÌÏ +ÉÌÏ5Ä +É1ÌÕ +É1ÌÙ +É1ÌØÅ +É1ÌØÉ +É1ÌØÀ +É1ÌØÑ +É1ÌÀ +É1ÌÑ +É1ÍÁ +É1ÍÅ +É2ÍÅÅ +É2ÍÅÌ +6ÉÍÅÎÅ +É2ÍÅÎÏ +2ÉÍÅÎØ +É6ÍÅÀ +É5ÍÉ +É1ÍÌÁ +É1Í1ÌÅ +É1ÍÌÉ +É1ÍÌÏ +É1ÍÌÕ +É1ÍÌÙ +5ÉÍÍÕ +ÉÍ1Î +É1ÍÏ +É1ÍÒÁ +É1ÍÒÅ +É1ÍÒÉ +É1ÍÒÏ +É1ÍÒÕ +É1ÍÒÙ +É1ÍÕ +É1ÍÙ +É1ÍØÅ +É1ÍØÉ +É1ÍØÀ +É1ÍØÑ +É1ÍÀ +É1ÍÑ +É1ÎÁ +5ÉÎÁ×Ç +ÉÎ1ÁÔÏÍ +É1ÎÅ +5ÉÎÖ +É1ÎÉ +É1ÎÏ +É2Î1Ò +É1ÎÒÁ +É1ÎÒÅ +É1ÎÒÉ +É1ÎÒÏ +É1ÎÒÕ +É1ÎÒÙ +ÉÎ6ÓÌ +5ÉÎÓÐ +ÉÎÓ6à +ÉÎ2Ô1× +É1ÎÕ +É6ÎÕÉ +É1ÎÙ +É1ÎØÅ +É1ÎØÉ +É1ÎØÀ +É1ÎØÑ +É1ÎÀ +ÉÎ1ÀÓ +É1ÎÑ +É1Ï +ÉÏÂ5Ì +ÉÏ2ÂÒ +É2ÏËÏ +É6ÏËÒ +É5ÏÌÅ +É3ÏÐÔ +É3ÏÒÔ +ÉÏ1Ó2 +É2ÏÓË +ÉÏ2ÓÎ +ÉÏ2ÓÔÁ +É2ÏÔ +É5ÏÔË +É2ÏÈ +É2Ïà +6ÉÐ +É1ÐÁ +É1ÐÅ +É1ÐÉ +É1ÐÌÁ +É1ÐÌÅ +É1ÐÌÉ +É1ÐÌÏ +É1ÐÌÕ +É1ÐÌÙ +É1ÐÏ +É1ÐÒÁ +É1ÐÒÅ +É1ÐÒÉ +É1ÐÒÏ +É1ÐÒÕ +É1ÐÒÙ +É1ÐÓ +É1ÐÔÁ +É1ÐÔÅ +É1ÐÔÉ +É1ÐÔÏ +ÉÐ6ÔÏÎ +É2Ð1ÔÕ +É1ÐÔÙ +É1ÐÕ +É1ÐÙ +É1ÐØÅ +É1ÐØÉ +É1ÐØÀ +É1ÐØÑ +É1ÐÀ +É1ÐÑ +É1ÒÁ +ÉÒ5× +É1ÒÅ +É1ÒÉ +É1ÒÏ +É1ÒÕ +É1ÒÙ +É1ÒØÅ +É1ÒØÉ +É1ÒØÀ +É1ÒØÑ +É1ÒÀ +É1ÒÑ +É1ÓÁ +ÉÓ1 +É1Ó×Á +É1Ó×Å +É1Ó×É +É1Ó×Ï +É1Ó×Õ +É1Ó×Ù +É1ÓÅ +É1ÓÉ +ÉÓ1Ë +É1ÓË×Á +É1ÓË×Å +É1ÓË×É +É1ÓË×Ï +É1ÓË×Õ +É1ÓË×Ù +ÉÓË1Î +6É5ÓËÏÒ +É1ÓËÒÁ +É1ÓËÒÅ +É1ÓËÒÉ +É1ÓËÒÏ +É1ÓËÒÕ +É1ÓËÒÙ +ÉÓ1Í +É1Ó2ÎÉ +É1ÓÏ +ÉÓ1Ð +ÉÓ2ÐÁÓ +É1ÓÒÁ +É1ÓÒÅ +É1ÓÒÉ +É1ÓÒÏ +É1ÓÒÕ +É1ÓÒÙ +É1ÓÔÁ +É1ÓÔ×Á +É1ÓÔ×Å +É1ÓÔ×É +É1ÓÔ×Ï +É1ÓÔ×Õ +É1ÓÔ×Ù +É1ÓÔרŠ+É1ÓÔ×ØÉ +É1ÓÔרÀ +É1ÓÔ×ØÑ +É1ÓÔ×À +É1ÓÔ×Ñ +É1ÓÔÅ +ÉÓ1ÔÅË +ÉÓ5ÔÅà +É1ÓÔÉ +É1ÓÔÏ +É1ÓÔÒÁ +É1ÓÔÒÅ +É1ÓÔÒÉ +É1ÓÔÒÏ +É1ÓÔÒÕ +É1ÓÔÒÙ +É1ÓÔÒØÅ +É1ÓÔÒØÉ +É1ÓÔÒØÀ +É1ÓÔÒØÑ +É1ÓÔÒÀ +É1ÓÔÒÑ +É1ÓÔÕ +É1ÓÔÙ +É1ÓÔØÅ +É1ÓÔØÉ +É1ÓÔØÀ +É1ÓÔØÑ +É1ÓÔÀ +É1ÓÔÑ +É1ÓÕ +ÉÓ1Þ +É1ÓÙ +É1ÓØÅ +É1ÓØÉ +É1ÓØÀ +É1ÓØÑ +É1ÓÀ +É1ÓÑ +É1ÔÁ +É1Ô×Á +É1Ô×Å +É1Ô×É +É1Ô×Ï +É1Ô×Õ +É1Ô×Ù +É1ÔÅ +É1ÔÉ +É1ÔÌ +É1ÔÏ +ÉÔÏÏÐ1 +É6ÔÏÔ +É1ÔÒÁ +É1ÔÒÅ +É1ÔÒÉ +É1ÔÒÏ +É1ÔÒÕ +É1ÔÒÙ +É1ÔÕ +É2Ô1ÕÐ +ÉÔ1ÕÞ +É1ÔÙ +É1ÔØÅ +É1ÔØÉ +É1ÔØÀ +É1ÔØÑ +É1ÔÀ +É1ÔÑ +É1Õ2 +ÉÕ5Ä +ÉÕ5ÍÅ +É1ÆÁ +É1ÆÅ +É1ÆÉ +É1ÆÌÁ +É1ÆÌÅ +É1ÆÌÉ +É1ÆÌÏ +É1ÆÌÕ +É1ÆÌÙ +É1ÆÏ +É1ÆÒÁ +É1ÆÒÅ +É1ÆÒÉ +É1ÆÒÏ +É1ÆÒÕ +É1ÆÒÙ +É1ÆÕ +É1ÆØÅ +É1ÆØÉ +É1ÆØÀ +É1ÆØÑ +É1ÆÀ +É1ÆÑ +É5ÈÁ +É1ÈÄÁ +É1ÈÄÅ +É1ÈÄÉ +É1ÈÄÏ +É1ÈÄÕ +É1ÈÄÙ +É5ÈÅ +É1ÈÉ +É1ÈÏ +É1ÈÕ +É1ÈÙ +É1ÈØÅ +É1ÈØÉ +É1ÈØÀ +É1ÈØÑ +É5ÈÜ +É1ÈÀ +É1ÈÑ +É1ÃÁ +É1ÃÅ +É1ÃÉ +É1ÃÏ +É1ÃÕ +É1ÃÙ +É1ÃØÅ +É1ÃØÉ +É1ÃØÀ +É1ÃØÑ +É1ÞÁ +É1ÞÅ +É1ÞÉ +É1ÞÕ +É1ÞØÅ +É1ÞØÉ +É1ÞØÀ +É1ÞØÑ +É1ÛÁ +É1Û×Á +É1Û×Å +É1Û×É +É1Û×Ï +É1Û×Õ +É1Û×Ù +É1ÛÅ +É1ÛÉ +É1ÛÌÁ +É1ÛÌÅ +É1ÛÌÉ +É1ÛÌÏ +É1ÛÌÕ +É1ÛÌÙ +É1ÛÏ +É1Û2Ð +É1ÛÒÁ +É1ÛÒÅ +É1ÛÒÉ +É1ÛÒÏ +É1ÛÒÕ +É1ÛÒÙ +É1ÛÕ +É1ÛØÅ +É1ÛØÉ +É1ÛØÀ +É1ÛØÑ +É1ÝÁ +É1ÝÅ +É1ÝÉ +É1ÝÏ +É1ÝÕ +É1ÝØÅ +É1ÝØÉ +É1ÝØÀ +É1ÝØÑ +É1Ù +É1Ü +É1À +É2ÀÌ +É2ÀÎ +É1Ñ +ÉÑ2Ä +Ê1 +Ê×2 +Ê2×Ó +Ê2Ä1× +Ê2ÄÎ +Ê2Ä1Ò +ÊÅÒ5 +Ê2Ë1× +Ê6ËÌ +Ê2ÌØ +ÊÍ1Á +Ê2ÍÓ +Ê2ÎÔ +Ê5Ï +Ê2Ð +Ê5ÐÁ +Ê5ÐÅ +Ê5ÐÏ +ÊÐ1Ô +Ê5ÐÙ +Ê2Ó1 +ÊÓ1ËÕÒ +Ê2ÓÍÕ +Ê2ÓÎ +Ê2ÓÛ +Ê6ÔÕ +ÊÕ6 +Ê2È +Ê5ÈÏ +ÊÈ2Ó1 +Ê6ÞÌ +1ËÁ× +ËÁ5×6Ô +1ËÁÅ +5ËÁÖ +2ËÁÚË +1ËÁÍ +ËÁÍ5Î +1ËÁÐ +ËÁ1ÓÐ +1ËÁÔ +ËÁ1ÔÌ +ËÁ2Õ +ËÁ3ÕÓ +2ËÁÆ +1ËÁÈ +1ËÁÀ +2Ë1 +2Ë1Ç +Ë1Ä +1ËÅ +6ËÅÁ +Ë1Ö +1ËÉ× +ËÉË1Ó +5ËÉÌ +ËÉ5Ï +2Ë1Ë +1ËÌ +2ËÌ. +2Ë1ÌÁË +Ë5ÌÉÊ +2ËÌØ +2Ë1Í +2ËÎ +Ë1ÎÁ +3Ë2ÎÉÖ +Ë1ÎÏ +5ËÏ×Ù +ËÏ1Ç2Î +ËÏ5Ä2 +ËÏ5ÚÎ +ËÏ2ÍÉÎ +1ËÏÍÐ +1ËÏÎ +1ËÏÏ +6ËÏÐÓ +ËÏÐÕ5 +ËÏÒ1× +Ë1ÏÒÇ +6ËÏÒÅÊ +1ËÏÓ +ËÏ2Ó× +ËÏ1ÓË +ËÏÓ1ÍÏ +ËÏÓ5Î +ËÏ1ÓÐ +ËÏ5ÓÔ× +ËÏ1Ô2Ì +1ËÏÛ +Ë1Ð +6ËÒ. +ËÒÉ2Ï5 +ËÒË6 +2ËÓ +Ë2Ó× +Ë1ÓËÉ +Ë2Ó1Ì +Ë6Ó1Í +Ë6ÓÎ +ËÓ1Ð +Ë5ÓÔÅ. +ËÓ1ÔÒ +Ë1ÓÈ +2Ë1Ô +5Ë6ÔÏ. +ËÕÇ1 +ËÕÓ1Ë +ËÕ6ÔÌ +2Ë1Æ +6Ë1È +2Ë1à +Ë1Þ +2Ë1Û +Ë1Ü +2Ë1Ñ +ÌÁ2Ç1Ì +1ÌÁÎÄ +ÌÁ6Ô× +5ÌÁÈÏ +Ì1ÂÁ +Ì1ÂÉ +Ì1ÂÏ +Ì5ÂÙ +Ì1× +Ì6×Ë +Ì6×Ó +Ì1Ç +Ì2ÇÁÔ +Ì1Ä +ÌÄ2Î +Ì6ÄÕÅ +ÌÅ6×5ÒÁ +1ÌÅÎÄ +ÌÅ2Ï +ÌÅ5ÔÒ +Ì1ÖÁ +ÌÖÁ6Ô +ÌÖÁÔ5× +Ì5Ö6 +Ì1ÖÅ +5Ì6ÖÅÛ +Ì1ÖÉ +Ì1ÖØ +Ì1ÚÄ +Ì1ÚÅ +Ì1ÚÏ +ÌÚ6Õ +ÌÉ2×1Ì +5ÌÉÇ +ÌÉ6ÅÎÉ +ÌÉÏ5 +ÌÉ1ÓÐÁ +ÌÉ2Ô1× +ÌÉ2ÔÏ +ÌÉ2È1× +5ÌÉÃÏ +5ÌÉÞÉ +Ì1Ë +Ì6ËÌ +ÌË1Î +Ì1Ì +Ì2ÌØ +Ì1Í +Ì6ÍÝ +2Ì1Î +ÌÏÂÏ1 +ÌÏ6ÂÏÒ +ÌÏ5×Ä +ÌÏ5Ä6Ò +ÌÏ1Ú +ÌÏÓ5ËÁ +ÌÏ1ÓËÕ +ÌÏ5ÓÔ× +Ì1Ð +Ì6ÐÎ +2Ì1Ó +Ì6Ó5 +Ì6ÓÄ +ÌÓ2Ð +Ì1Ô +Ì2ÔË +Ì6Ô5Ì +ÌÕ2ÁÔ +ÌÕ1Ä2Î +ÌÕ5ÏÌ +Ì1Æ +Ì1È +Ì1à +Ì1ÞÁ +Ì5ÞÅ +Ì1ÞØ +Ì1Û6 +Ì1Ý +6ÌØ. +1ÌØÏ +6ÌØÛ +1ÌØÀ +ÍÁ2×Ú +1ÍÁÇ +ÍÁÇ1Î +ÍÁ5Ä6Ì +ÍÁ5Ú6Ì +ÍÁ1Ó +Í6ÁÔ +ÍÁ2Ô1ÁÎ +ÍÁ2ÔÏ +ÍÁ2Õ +ÍÁÕ2Ô +ÍÁÕÜ1 +ÍÁ2ÞÔ +2Í1Â6 +2Í1×2 +Í1Ç +5Í6ÇÎ +Í5ÄÅ +Í5ÄÉ +5ÍÅÄ +ÍÅ2ÄÏÓ +ÍÅ2ÄÒ +ÍÅ6ÖÉ +1ÍÅÊ +1ÍÅÎ. +ÍÅ2Ï +Í1Ú +ÍÉ6ÄÌ +ÍÉ6Ú5ÁÎ +2Í1ÉÚÄ +5ÍÉÊ +5ÍÉÎÇ +ÍÉ2ÎÀ +ÍÉ6ÏË +ÍÉ5ÏÔÉ +Í1Ë +1ÍËÎ +6ÍËÏ +1ÍÌ +6ÍÌØ +6Í1Í +Í2Í1Î +Í2Í1Þ +Í1ÎÁ +Í2ÎÁ +Í5ÎÅÐ +Í5ÎÉÊ +Í5ÎÏ× +Í1ÎÏÅ +Í1ÎÏÓ +Í5ÎÏÔ +6ÍÎÙ +ÍÏ5Ú× +ÍÏ1Í +1ÍÏÎ +ÍÏ6ÎÒ +ÍÏ3Ï +ÍÏ1ÓË +ÍÏÓ6Ð +5ÍÏÔÉ +2Í1ÏÔÐ +2Í1Ð +ÍÐÏ2Þ +2ÍÒÅ +Í1Ó +Í2Ó +2ÍÓË +ÍÓ2Î +Í2Ó1ÏÒ +ÍÓ6Ð +ÍÓ2Ó +1Í2ÓÔÉ +6Í1Ô +1ÍÕÓ +ÍÕ5Ó6Ë +Í1Æ +6Í1È +6Í1à +Í1ÞÅ +Í1ÞÉÓ +1ÍÝÅ +5ÍÝÕ +1ÍÙ. +Í5Ü +1ÍÀ +Í1À2Ó +1ÎÁ. +6ÎÁ×Ç +1ÎÁ1Ç +1ÎÁÄ +ÎÁ2ÄÒ +ÎÁ1Ú2 +ÎÁ2ÉÌ +6ÎÁÌÇ +ÎÁ1ÍÎ +ÎÁÏ2 +ÎÁ1Ò× +1ÎÁÓ2 +ÎÁ1ÓÍ +ÎÁ1ÓÓ +ÎÁ1ÓÞ +ÎÁÕ6Þ +ÎÁ1È +5ÎÁà +ÎÁ1Þ2ÎÅ +1ÎÁ1Û2 +ÎÁ5Ü +3ÎÁÑ +6Î1 +Î1×2 +6Î1Ç +Î2Ç1Ä +Î1Ä +Î2Ä1× +ÎÄÅ2Ó1 +ÎÄ6Ú +Î2Ä1Ì +Î2ÄÎ +Î6Äà +ÎÅ2ÁÌ +ÎÅ1×2Ä +6ÎÅ×Ë +2ÎÅ×Î +ÎÅ2×ÒÁ +ÎÅ×5ÒÉÔ +ÎÅ×1ÒÏ +ÎÅ×6Ô +ÎÅ5ÄÒ +ÎÅ1ÚÎ +ÎÅÉ2 +ÎÅ5ËÓÔ +ÎÅ1ÍÎ +ÎÅÏ2Ò +ÎÅÏ2ÓÔÁÔ +ÎÅÏ6ÓÔÏ +ÎÅÏ2È +ÎÅÏ2à +ÎÅ1Ó2Î +ÎÅ1Ó2Ð +ÎÅ1Ó2Æ +ÎÅ1Ó2È +ÎÅ1ÓÞ +ÎÅ5ÞÌ +ÎÅÑ6 +Î1Ö +Î1Ú +5ÎÉ +2Î1ÉÚÄ +1ÎÉË +ÎÉ5ËÔ +ÎÉÌÁ6 +ÎÉÌ5ÁÍ +ÎÉ5ÏË +1ÎÉà +Î1Ë +Î6Ë5ÒÏÔ +6Î1Ì +Î1Í +Î1Î +1ÎÏ. +ÎÏ5Á +ÎÏ2ÂÒ +ÎÏ5Å +ÎÏ1Ú +1ÎÏÊ +1ÎÏÍ +ÎÏÍ5Î +ÎÏÍ5Þ +ÎÏ5ÏÇ +ÎÏ5Ó6Ð +ÎÏ5Ó6È +2ÎÏÔÄ +ÎÏ5ÔË +ÎÏ5ÔÒ +1ÎÏÈ +Î1Ð +2Î1Ó +Î6Ó5Á× +Î2Ó1 +Î2Ó1× +Î2ÓÇ +Î2Ó1Ä +Î2Ó1ÌÑ +Î2Ó1Í +Î2ÓÎ +ÎÓ2ÐÒ +ÎÓÕ2Ò +ÎÓ1ÕÒÁ +Î2ÓÆ +Î1Ô +ÎÔÉÁ2 +ÎÔÉÏ2 +Î2ÔË +ÎÔ2Ò +Î2ÔÒÁÄ +ÎÔÒ1É2ÇÒ +ÎÕ5Á +ÎÕ6ÄÒ +ÎÕÚ2 +ÎÕ6ÚÅ +6Î1ÕÏ +ÎÕÓ5ËÕ +1ÎÕÀ +6Î1Æ +Î1È +ÎÈÏ5 +2Î1à +Î1Þ +2Î1Û +Î1Ý +3ÎÙ +1ÎØÏ +1ÎØÀ +Î1Ü +Î5ÀÒ +ÎÀ2Ó +1ÎÑ +2ÎÑÛ +2Ï1Á2 +ÏÁÎÁÂÉ5 +Ï6Á5ÔÁ +Ï1ÂÁ +Ï1ÂÅ +1ÏÂÅÓ +Ï1ÂÉ +Ï1ÂÌÁ +Ï2ÂÌÁÇ +Ï1ÂÌÅ +Ï1ÂÌÉ +ÏÂ5ÌÉË +ÏÂ5ÌÉÞ +Ï1ÂÌÏ +Ï1Â1ÌÕ +Ï1ÂÌÙ +Ï1ÂÏ +1Ï2ÂÏÚ +ÏÂÏ1Ì +ÏÂ1ÏÓÏ +Ï1ÂÒ +Ï1ÂÒÁ +ÏÂ5ÒÁÄ +ÏÂ5ÒÁÍ +ÏÂ5ÒÁÓ +Ï1ÂÒÅ +Ï1ÂÒÉ +Ï1ÂÒÏ +Ï1ÂÒÕ +Ï1ÂÒÙ +Ï1ÂÕ +1ÏÂÝ +1ÏÂß +Ï1ÂÙ +Ï1ÂØÅ +Ï1ÂØÉ +Ï1ÂØÀ +Ï1ÂØÑ +Ï1ÂÀ +Ï2ÂÑ +2Ï× +Ï1×Á +Ï1×2× +Ï×6ÄÁ +Ï1×Å +Ï×5ÚÎ +Ï1×É +Ï×5ÉÎÔ +Ï×2ËÌ +Ï1×ÌÁ +Ï1×ÌÅ +Ï1×ÌÉ +Ï1×ÌÏ +Ï1×ÌÕ +Ï1×ÌÙ +Ï1×Í +Ï1×Ï +Ï×Ï5ÓË +Ï×Ï5ÓÔÒ +Ï6×ÐÏ +Ï2×ÐÒ +Ï1×ÒÁ +Ï1×ÒÅ +Ï1×ÒÉ +Ï1×ÒÏ +Ï1×ÒÕ +Ï2×ÒÙ +Ï×2ÓÅ +Ï1×2Ô +Ï1×Õ +Ï1×Ù +Ï1רŠ+Ï1×ØÉ +Ï1רÀ +Ï1×ØÑ +Ï1×À +Ï1×Ñ +2ÏÇ +Ï1ÇÁ +Ï1Ç× +Ï1ÇÄ +Ï1ÇÅ +Ï1ÇÉ +Ï1ÇÌ +Ï1ÇÌÁ +Ï1ÇÌÅ +Ï1ÇÌÉ +Ï1ÇÌÏ +Ï1ÇÌÕ +Ï1ÇÌÙ +Ï1ÇÎÁ +Ï1ÇÎÅÚ +Ï1ÇÎÏ +Ï1ÇÏ +Ï1ÇÒÁ +Ï1ÇÒÅ +Ï1ÇÒÉ +Ï1ÇÒÏ +Ï1ÇÒÕ +Ï1ÇÒÙ +Ï1ÇÕ +Ï1ÇÙ +Ï1ÇØÅ +Ï1ÇØÉ +Ï1ÇØÀ +Ï1ÇØÑ +Ï1ÇÀ +Ï1ÇÑ +Ï1ÄÁ +Ï2Ä1ÁÄ +2ÏÄÁÒ +Ï1Ä×Á +Ï1Ä×Å +Ï1Ä×É +Ï1Ä×Ï +Ï1Ä×Õ +Ï1Ä×Ù +Ï1ÄÅ +Ï1ÄÉ +ÏÄÉ5ÁÐ +Ï1ÄÌÁ +Ï1ÄÌÅ +Ï1ÄÌÉ +Ï1ÄÌÏ +Ï1ÄÌÕ +Ï1ÄÌÙ +Ï1ÄÏ +ÏÄÏ1Ó +ÏÄÏ6ÔÒ +Ï2Ä1ÒÁ +Ï1ÄÒÅ +Ï1ÄÒÉ +Ï1ÄÒÏ +Ï2Ä1ÒÏÓ +Ï1ÄÒÕ +Ï1ÄÒÙ +Ï1ÄÕ +Ï2Ä1Õ2Ò +Ï1ÄÙ +ÏÄØ1 +Ï1ÄØÅ +Ï1ÄØÉ +Ï1ÄØÀ +Ï1ÄØÑ +Ï1ÄÀ +Ï1ÄÑ +Ï1Å +ÏÅ2 +Ï2Å×Ì +ÏÅ2Ä +ÏÅ5ÄÁ +ÏÅ5Ä6Ì +Ï6ÅÐ +Ï2ÅÔ +ÏÅ2È +Ï1ÖÁ +Ï1ÖÅ +Ï1ÖÉ +Ï1ÖÍ +Ï1ÖÏ +Ï1ÖÕ +Ï1ÖØÅ +Ï1ÖØÉ +Ï1ÖØÀ +Ï1ÖØÑ +2Ï1ÚÁ +ÏÚ1ÄÕ +ÏÚ5ÄÀ +Ï1ÚÅ +Ï1ÚÉ +Ï1ÚÏ +Ï2Ú1Ï +ÏÚ1ÒÏ +Ï1ÚÕ +Ï1ÚÙ +Ï1ÚØÅ +Ï1ÚØÉ +Ï1ÚØÀ +Ï1ÚØÑ +Ï1ÚÀ +Ï1ÚÑ +2Ï1É +ÏÉ2Ç6 +ÏÉ6Å +ÏÉ2Ú +ÏÉ2ÍÅ +ÏÉ2ÍÕ +ÏÉ2Ï +ÏÊ5Ð +Ï1ËÁ +Ï2Ë1ÁÕ +Ï1Ë×Á +Ï1Ë×Å +Ï1Ë×É +Ï1Ë×Ï +Ï1Ë×Õ +Ï1Ë×Ù +Ï1ËÅ +Ï1ËÉ +2ÏËÌ +Ï1ËÌÁ +Ï1ËÌÅ +Ï1ËÌÉ +Ï1ËÌÏ +Ï1ËÌÕ +Ï1ËÌÙ +ÏË5ÎÅ +ÏË1ÎÕ +Ï1ËÏ +2ÏËÏÌ +Ï1ËÒÁ +Ï1ËÒÅ +Ï1ËÒÉ +Ï1ËÒÏ +Ï1ËÒÕ +Ï1ËÒÙ +ÏË1ÓË +1ÏËÔ +Ï1ËÕ +Ï6ËÕÅ +Ï1ËÙ +Ï1ËØÅ +Ï1ËØÉ +Ï1ËØÀ +Ï1ËØÑ +Ï1ËÀ +Ï1ËÑ +2ÏÌ +Ï1ÌÁ +Ï1ÌÅ +Ï5ÌÉ +Ï3ÌÏ +Ï1ÌÕ +ÏÌÕÏ2 +Ï1ÌÙ +Ï1ÌØÅ +Ï1ÌØÉ +Ï1ÌØÀ +Ï1ÌØÑ +Ï1ÌÀ +Ï1ÌÑ +2ÏÍ +Ï1ÍÁ +Ï1ÍÅ +ÏÍÅ6ÄÌ +Ï1ÍÉ +ÏÍ1ÉÎÔ +Ï1ÍÌÁ +Ï1ÍÌÅ +Ï1ÍÌÉ +Ï1ÍÌÏ +Ï1ÍÌÕ +Ï1ÍÌÙ +3ÏÍÍÅ +ÏÍ2ÎÑ +Ï1ÍÏ +ÏÍ6ÐÓ +ÏÍ2ÐÔ +Ï1ÍÒÁ +Ï1Í1ÒÅ +Ï1ÍÒÉ +Ï1ÍÒÏ +Ï1ÍÒÕ +Ï1ÍÒÙ +Ï1ÍÕ +Ï1ÍÙ +Ï1ÍØÅ +Ï1ÍØÉ +Ï1ÍØÀ +Ï1ÍØÑ +Ï2ÍÀ +Ï1ÍÑ +Ï1ÎÁ +2ÏÎÁÚ +Ï1ÎÅ +Ï1ÎÉ +Ï1ÎÏ +Ï1ÎÒÁ +Ï1Î5ÒÅ +Ï1ÎÒÉ +Ï1ÎÒÏ +Ï1ÎÒÕ +Ï1ÎÒÙ +ÏÎ2ÔÒÁÔ +ÏÎ2ÔÒ1Õ2 +Ï1ÎÕ +Ï2Î1ÕÜ +Ï1ÎÙ +Ï1ÎØÅ +Ï1ÎØÉ +Ï1ÎØÀ +Ï1ÎØÑ +Ï1ÎÀ +Ï1ÎÑ +Ï1Ï2 +Ï5ÏÁ +ÏÏÂ2Õ3 +ÏÏÂ5Õ6ÞÅ +ÏÏË6Ó +Ï5ÏÍ +ÏÏ5ÓÆ +Ï2ÏÔÉ +Ï2ÏÈÏ +Ï1ÐÁ +ÏÐÁÌÅ5 +Ï5Ð× +Ï1ÐÅ +Ï1ÐÉ +2ÏÐÉÒ +Ï1ÐÌÁ +Ï1ÐÌÅ +Ï1ÐÌÉ +Ï1ÐÌÏ +Ï1ÐÌÕ +Ï1ÐÌÙ +Ï1ÐÏ +Ï1ÐÒÁ +Ï1ÐÒÅ +Ï1ÐÒÉ +Ï1ÐÒÏ +Ï1ÐÒÕ +Ï1ÐÒÙ +Ï1ÐÔÁ +Ï1ÐÔÅ +Ï1ÐÔÉ +Ï1ÐÔÏ +Ï1Ð5ÔÕ +Ï1ÐÔÙ +Ï1ÐÕ +Ï1ÐÙ +Ï1ÐØÅ +Ï1ÐØÉ +Ï1ÐØÀ +Ï1ÐØÑ +Ï1ÐÀ +Ï1ÐÑ +Ï1ÒÁ +Ï2ÒÁÌÇ +ÏÒÁ5Ó6ÐÒ +6ÏÒÁÔ +Ï1ÒÅ +Ï1ÒÉ +ÏÒÉ5ÏÌ +ÏÒ1ÉÓÐ +Ï1ÒÏ +ÏÒÔ1Ì +ÏÒ5ÔØ +ÏÒ5ÔÑ +Ï1ÒÕ +Ï5ÒÕ. +ÏÒ5ÕÚ +ÏÒ5ÕÜ +2Ï1ÒÙ +Ï1ÒØÅ +Ï1ÒØÉ +Ï1ÒØÀ +Ï1ÒØÑ +Ï1ÒÀ +Ï1ÒÑ +Ï1ÓÁ +Ï1Ó +ÏÓ5ÂÁ +Ï1Ó×Á +Ï1Ó×Å +Ï1Ó×É +Ï1Ó×Ï +Ï1Ó×Õ +Ï1Ó×Ù +ÏÓ1Ç +Ï1ÓÅ +Ï1ÓÉ +Ï6Ó5ÉÚ +ÏÓ1ËÁ. +Ï1ÓË×Á +Ï1ÓË×Å +Ï1ÓË×É +Ï1ÓË×Ï +Ï1ÓË×Õ +Ï1ÓË×Ù +ÏÓ1ËÉ +ÏÓ1ËÏÊ +Ï1ÓËÒÁ +Ï1ÓËÒÅ +Ï1ÓËÒÉ +Ï1ÓËÒÏ +Ï1ÓËÒÕ +Ï1ÓËÒÙ +ÏÓ1ËÕ. +ÏÓ5ÍÉ +ÏÓ1ÍÏÓ +ÏÓ2Î +Ï1ÓÎÅ +Ï1ÓÎÉÍ +ÏÓ5ÎÉÔ +Ï1ÓÏ +6ÏÓÐ +ÏÓ6ÐÁÔ +Ï1ÓÐÅ +ÏÓ6ÐÌÅ +Ï1ÓÒÁ +Ï1ÓÒÅ +Ï1ÓÒÉ +Ï1ÓÒÏ +Ï1ÓÒÕ +Ï1ÓÒÙ +ÏÓ2Ó× +ÏÓ2ÓËÏ +ÏÓ2Ó1Í +ÏÓ2ÓÐ +ÏÓ6ÓÞ +Ï1ÓÔÁ +2ÏÓÔÁÌ +Ï2ÓÔ1× +Ï1ÓÔ×Á +Ï1ÓÔ×Å +Ï1ÓÔ×É +Ï1ÓÔ×Ï +Ï1ÓÔ×Õ +Ï1ÓÔ×Ù +Ï1ÓÔרŠ+Ï1ÓÔ×ØÉ +Ï1ÓÔרÀ +Ï1ÓÔ×ØÑ +Ï1ÓÔ×À +Ï1ÓÔ×Ñ +Ï1ÓÔÅ +Ï1ÓÔÉ +Ï5ÓÔÌ +Ï1Ó6ÔÏ +Ï1ÓÔÒÁ +Ï1ÓÔÒÅ +Ï1ÓÔÒÉ +Ï1ÓÔÒÏ +Ï1ÓÔÒÕ +Ï1ÓÔÒÙ +Ï1ÓÔÒØÅ +Ï1ÓÔÒØÉ +Ï1ÓÔÒØÀ +Ï1ÓÔÒØÑ +Ï1ÓÔÒÀ +Ï1ÓÔÒÑ +Ï1ÓÔÕ +Ï1ÓÔÙ +Ï1ÓÔØÅ +Ï1ÓÔØÉ +Ï1ÓÔØÀ +Ï1ÓÔØÑ +Ï1ÓÔÀ +Ï1ÓÔÑ +Ï1ÓÕ +Ï2Ó1ÕÎ +Ï6Ó5ÕÐ +2ÏÓÆ +Ï1ÓÞÅ +Ï1ÓÙ +Ï1ÓØÅ +Ï1ÓØÉ +Ï1ÓØÀ +Ï1ÓØÑ +Ï1ÓÀ +Ï1ÓÑ +Ï1ÔÁ +ÏÔ1× +Ï6Ô×Á +Ï1Ô×Å +Ï1Ô×É +Ï1Ô×Ï +1ÏÔ×Ò +Ï1Ô×Õ +Ï1Ô×Ù +1ÏÔÄ +Ï1ÔÅ +Ï3ÔÉ +5ÏÔËÒ +ÏÔ1Ì +Ï1ÔÏ +ÏÔÏ5Ë6 +2ÏÔÒ +Ï1ÔÒÁ +ÏÔ5ÒÁÓ +Ï1ÔÒÅ +Ï1ÔÒÉ +Ï1ÔÒÏ +Ï1ÔÒÕ +Ï1ÔÒÙ +Ï5ÔÒÀ +Ï1ÔÒÑ +Ï1ÔÕ +Ï1ÔÙ +Ï1ÔØÅ +Ï1ÔØÉ +Ï5ÔØ6Í +Ï1ÔØÀ +Ï1ÔØÑ +Ï1ÔÀ +Ï1ÔÑ +2Ï1Õ2 +ÏÕÚ6 +ÏÕÍÙ6 +ÏÕÍÙÛ5 +2ÏÆ +Ï1ÆÁ +Ï1ÆÅ +Ï1ÆÉ +Ï1ÆÌÁ +Ï1ÆÌÅ +Ï1ÆÌÉ +Ï1ÆÌÏ +Ï1ÆÌÕ +Ï1ÆÌÙ +Ï1ÆÏ +Ï2Æ1ÏÒÉ +ÏÆÏÓ5 +Ï1ÆÒÁ +Ï1ÆÒÅ +Ï1ÆÒÉ +Ï1ÆÒÏ +Ï1ÆÒÕ +Ï1ÆÒÙ +Ï1ÆÕ +Ï1ÆØÅ +Ï1ÆØÉ +Ï1ÆØÀ +Ï1ÆØÑ +Ï1ÆÀ +Ï1ÆÑ +Ï1ÈÁ +Ï1ÈÄÁ +Ï1ÈÄÅ +Ï1ÈÄÉ +Ï1ÈÄÏ +Ï1ÈÄÕ +Ï1ÈÄÙ +Ï1ÈÅ +2Ï1ÈÉ +ÏÈ5ÌÅ +Ï1ÈÏ +6ÏÈÏÒ +2Ï5ÈÒÏ +Ï5È6Ô +Ï1ÈÕ +Ï1ÈÙ +Ï1ÈØÅ +Ï1ÈØÉ +Ï1ÈØÀ +Ï1ÈØÑ +Ï1ÈÀ +Ï1ÈÑ +Ï1ÃÁ +Ï1ÃÅ +Ï1ÃÉ +Ï2ÃÏ +Ï1ÃÕ +Ï1ÃÙ +Ï1ÃØÅ +Ï1ÃØÉ +Ï1ÃØÀ +Ï1ÃØÑ +6Ï1ÞÁ +Ï1ÞÅ +Ï1ÞÉ +ÏÞÉ6Ñ +Ï1ÞÌ +6Ï1ÞÕ +Ï1ÞØÅ +Ï1ÞØÉ +Ï1ÞØÀ +Ï1ÞØÑ +Ï1ÛÁ +Ï1Û×Á +Ï1Û×Å +Ï1Û×É +Ï1Û×Ï +Ï1Û×Õ +Ï1Û×Ù +Ï1ÛÅ +Ï1ÛÉ +Ï1Û6Ì +Ï1ÛÌÁ +Ï1ÛÌÅ +Ï1ÛÌÉ +Ï1ÛÌÏ +Ï1ÛÌÕ +Ï1ÛÌÙ +Ï6ÛÎ +Ï1ÛÏ +Ï5ÛÐ +Ï1ÛÒÁ +Ï1ÛÒÅ +Ï1ÛÒÉ +Ï1ÛÒÏ +Ï1ÛÒÕ +Ï1ÛÒÙ +Ï1ÛÔÁ +Ï1ÛÕ +Ï1ÛØÅ +Ï1ÛØÉ +Ï1ÛØÀ +Ï1ÛØÑ +Ï1ÝÁ +Ï1ÝÅ +Ï1ÝÉ +Ï1ÝÏ +Ï1ÝÕ +Ï1ÝØÅ +Ï1ÝØÉ +Ï1ÝØÀ +Ï1ÝØÑ +Ï1Ù +2Ï1Ü +ÏÜ5ÔÉ +Ï1À +ÏÀ2 +Ï1Ñ +ÏÑ6 +ÏÑ2× +ÏÑ2Ä +ÏÑ2Ú +ÏÑ6Ò +ÐÁ5Ó2Ë +ÐÁ1ÓÍ +ÐÁ5ÔÌ +6Ð1 +Ð×6 +Ð5×Ë +Ð1Ä +ÐÅ5ÄÖ +ÐÅÄ1ÉÎ +1ÐÅÎÚ +ÐÅ1Ð6 +ÐÅÒ1× +ÐÅÒ2Í1ÁÌ +ÐÅÒ1Ï +ÐÅ2ÒÏÓ +ÐÅ6Ó5Ë +1ÐÅÞ +1ÐÉÓ +1ÐÉÔ +6Ð1Ë +1ÐÌ +6ÐÌÁÎÄ +ÐÌÅ6×5Ò +ÐÌÏÓ1 +2Ð1Í +Ð1Î +Ð6ÎÅ× +1ÐÏ +ÐÏ5 +ÐÏ5Ç6 +ÐÏÄ1Ö +ÐÏ2Ä1Ì +ÐÏ2ÄÏÔ +ÐÏ2ÄÒÅ +ÐÏ2ÄØ +ÐÏ1Ú +ÐÏ2Ú1ÄÁ +ÐÏÌ5Ï +ÐÏ1Í +ÐÏÓ2 +ÐÏ1ÓË +ÐÏ1ÓÍ +ÐÏ1ÓÓ +ÐÏ2ÓÔÉ +ÐÏ1ÓÈ +5ÐÏÓÙ +ÐÏ1Ô2Ì +ÐÏ1ÔÒ +ÐÏ1È +ÐÏÜ1Í +Ð1Ð +1ÐÒ +2Ð1ÒÁÊ +ÐÒÅ6ÄÉÎ +ÐÒÅÊ2 +ÐÒ6Ö +ÐÒÉ5× +ÐÒÉ1Ì +ÐÒÉÌØ2 +ÐÒÉÎ6Ó5 +ÐÒÉ1Ó +ÐÒÉÞÅ2Ó1Ë +6ÐÒÎ +ÐÒÏ5ÍÞ +ÐÒÏ1ÓË +2ÐÒÓ +6ÐÒÈ +6ÐÓ. +1Ð2ÓÅ +1Ð2ÓÉ +Ð1ÓË +1Ð2ÓÏ +Ð1ÓÔ +5Ð6ÓÕ +Ð6ÓÙ +5ÐÓÀ +Ð1ÔÁÔ +ÐÔ1× +2Ð1ÔÉÚ +6Ð5ÔÉÌ +6ÐÔÉÍ +Ð5ÔÏË +Ð1ÔÏÎ +Ð5ÔÏà +Ð1ÔÒ +5ÐÔÑ +2Ð1Æ +2Ð1à +Ð1Þ +5Ð6ÞÅÎÎ +2Ð1Û +Ð1Ý +5ÐÜ +5ÐÑ +ÒÁÁ6 +1ÒÁ +ÒÁ1ÇÎ +ÒÁÚ1× +ÒÁ6ÚÕ +ÒÁ6Ë× +1ÒÁÌÇ +5ÒÁÍÌ +ÒÁÎ2ÓÕ +Ò6ÁÐ +ÒÁÓ1 +ÒÁ2ÓË +ÒÁ6ÓÌÑ +ÒÁÓ5Í +ÒÁ2ÓÔ× +ÒÁ2Ó1ÔÅÒ +ÒÁ2Ó1ÔÉÒ +ÒÁÓ1ÔÏÒ +ÒÁ2Ó1ÔÒÁ +ÒÁ2Ó1ÔÒÏÇ +ÒÁ2Ó1ÔÒÏÅ +ÒÁ6ÓÔÕÛ +ÒÁ2ÔÁË +ÒÁ5ÕÓ +2ÒÁÜ +Ò1 +ÒÂ6Ï +Ò1×ÁÒ +1Ò×ÁÔØ +Ò1×Áà +Ò1×ÅÖ +Ò1×ÅÊ +Ò1×ÅÎ +Ò1×É +Ò1×Ï +Ò×Ï5Ú +6Ò×Ó +Ò1×Ñ +Ò1Ç +Ò2Ç× +Ò6ÇÄ +Ò2Ç1Î +Ò2ÇÏÔ +Ò6ÇÒÁ +Ò1Ä +ÒÄ2Ì +Ò2ÄÎ +Ò2Ä1à +ÒÅ6×Ð +ÒÅ6ÄÌ +ÒÅ6ÄÏÐ +ÒÅ2Ä1Ò +ÒÅÅ2 +ÒÅ5ÖØ +1ÒÅÚÁ +ÒÅ1ÚÒ +ÒÅ2Ë1×Á +1ÒÅËÌÁ +ÒÅÍ1Î +ÒÅÏ2Ä +ÒÅ5ÏÌÁ +ÒÅ2ÏÓ +ÒÅ2ÏÔ +ÒÅÏ2à +ÒÅ6ÐÔ +ÒÅ1Ò2 +ÒÅ2Ó1× +ÒÅ1Ó2Ð +ÒÅ1ÓÞ +ÒÅ2È1Ò +Ò1Ö +1ÒÖÁ×Å +Ò2ÖÎ +Ò5ÚÄ +Ò1ÚÅ +Ò1ÚÉ +Ò1ÚÏ +Ò5ÚÙ +Ò1ÚÑ +ÒÉ5Á +ÒÉÁ6Ú +ÒÉ5×Ë +ÒÉ2ÄÒ +2ÒÉÅÎ +ÒÉ1ÖÍ +ÒÉ1Ú× +ÒÉ1ÚÎ +ÒÉ6ÚÏË +6ÒÉÍÍ +ÒÉ1ÍÞ +5ÒÉÓÏ +2ÒÉÓÐ +ÒÉ1ÈÌ +Ò1Ë +ÒË1Î +Ò1Ì +Ò1Í +Ò2ÍË +Ò2Í1Î +Ò2ÍÓ +Ò2Í5Þ +Ò6ÍÝ +Ò6ÍØ +Ò1Î +ÒÏ5Á +2ÒÏÂÌ +6ÒÏÂß +ÒÏ5×È +ÒÏÇ1ÎÅ +ÒÏÇ1ÎÕ +ÒÏ1ÄÖ +ÒÏ1ÄÚ +ÒÏ5ÄÌ +ÒÏ1Ú× +ÒÏ1ÚÒ +ÒÏÉ2Ó +ÒÏ6ÐÔ +ÒÏ1Ò× +2Ò1ÏÒÔ +ÒÏ1ÓÍ +ÒÏ5ÓÎÕ +ÒÏ5ÓÐÁ +ÒÏ5ÓÐÌ +ÒÏ5Ó6à +1ÒÏÓÛ +2ÒÏÔÄ +5ÒÏÔÓ +5ÒÏÕÜ +ÒÏ1È +Ò6ÏÞ +Ò1Ð +ÒÐÕÓ5 +Ò1Ò +ÒÒÏ5 +ÒÒÏÓ6 +Ò1Ó +Ò2ÓÎ +ÒÓ6Ð +Ò1ÔÁ +Ò2Ô1ÁËÔ +Ò2ÔÁÐ +ÒÔ1× +Ò5Ô6×Á +Ò1ÔÅ +Ò1ÔÉ +ÒÔ1ÌÀ +Ò5ÔÌÑ +Ò1ÔÏ +Ò2Ô1Ï +Ò1ÔÒ +Ò1ÔÕ +Ò1ÔÙ +Ò1ÔØÀ +Ò1ÔÀ +ÒÕ6ÄÁÒ +ÒÕÚ2Ì +ÒÕË5Ó +6ÒÕÏ +Ò1Æ +Ò2È1× +Ò1ÈÅ +ÒÈ5ÌÅ +Ò1ÈÌÏ +Ò1ÈÏ +Ò2È1ÏÐ +ÒÈ1Õ2 +Ò1à +Ò2Ã1× +ÒÃÅ6Ð5 +Ò1Þ +Ò1Û +Ò6Û× +Ò2ÛË +Ò2ÛÎ +Ò2Û1Ò +Ò1Ý +1ÒÙ +ÒÙ2Ç1Î +ÒÙÈ1 +Ò1Ü +Ò6ÜÐ +1ÓÁ +5ÓÁ. +ÓÁ2Ë× +ÓÁ5Ó6 +ÓÂÅ5Ú +ÓÂÅÚÏ5 +ÓÂÏ1Ô +1Ó× +Ó×Á6Å +Ó1×ÅÎ +2Ó1×É +Ó×Ï5× +ÓÇ6 +Ó1ÄÁ +1ÓÄ× +Ó3ÄÅ +Ó5ÄÉ +1ÓÅ +ÓÅÇÏ1 +ÓÅÇÏÄ2 +ÓÅ1Ú +5ÓÅË +ÓÅËÓ1Ô +ÓÅÒ5×Á +1ÓÖ +6Ó1Ú +1ÓÉ +6ÓÉÄÁ +ÓÉ3ÏÍ +2Ó1É2ÏÒ +2Ó1ÉÓÐ +2ÓË. +Ó6ËÁË +1ÓËÁÆ +6ÓËÉÌ +1Ó2ËÌÅ +Ó6ËÌÏ +2ÓËÎ +ÓË1ÎÕ +6ÓËÏÎ +1ÓËÏÐ +Ó2ËÏÐ. +1ÓÌ +6ÓÌ. +ÓÌÅ5Ï6 +2Ó1ÌÉÒÕ +6Ó5ÌÏË +2ÓÌØ +6ÓÌÑÍ +2ÓÍÅÎ. +5ÓÍÅÓ +Ó1ÍÅÔ +5ÓÍÙ +Ó1Î +6Ó5ÎÁ. +1Ó2ÎÁ +Ó3ÎÉË +Ó5ÎÏÅ +Ó5ÎÏÊ +Ó5ÎÏÍ +2ÓÎÙ +1ÓÏ +ÓÏÂ1ÌÁÇ +ÓÏ6×Ú +ÓÏ6×ÉÎ +ÓÏ6×5Ô +ÓÏ1Ç +ÓÏ1Ö +ÓÏ1Ú +ÓÏ1Ì2Ç +ÓÏ1Í +5Ó6ÏÎ +ÓÏ1Ò2× +ÓÏ1Ó +ÓÏÓ6 +ÓÏ6Ó5ÎÏ +ÓÏÓ6Ð +ÓÏ5Ý +Ó1ÐÁ +Ó6Ð× +1ÓÐÅÎÓ +ÓÐÅ1Ò2ÓÉ +Ó2ÐÅÛ +Ó5ÐÉÌ +Ó2ÐÏÓ +1ÓÐÏÓÏ +1Ó2ÐÏÔ +Ó1Ó +Ó2Ó +ÓÓ1×Ï +2ÓÓË +Ó2ÓÎ +Ó3Ó2ÎÅ +Ó2ÓÏÒÉ +ÓÓ6Ó +6ÓÓ6Ô +Ó6ÓÆ +Ó6Óà +Ó6ÓÛ +2ÓÔ. +ÓÔÁ2×1Ò +2ÓÔÁÕ +2ÓÔ×. +ÓÔ6×Ï +2ÓÔÅÒÌ +2ÓÔÅÓ +2ÓÔË +Ó1ÔÌÅ +ÓÔ5ÌÑ +2ÓÔÎ +1ÓÔÏ +6ÓÔÒ. +2ÓÔÒÕ +6ÓÔÓ +6ÓÔÕÄÙ +5ÓÔÙ +2ÓÔØ. +5ÓÔØÏ +1ÓÕ +ÓÕ2Â1 +6Ó5ÕÉ +ÓÕ2ÎÉ +ÓÕÐÅ2 +ÓÕÐÅÒ1 +1ÓÆÅ +6ÓÆÉ +ÓÈ6 +1ÓÈÅ +Ó1ÈÌ +Ó1ÈÏ +Ó1à +1Ó2ÃÅÍ +1ÓÞÁÓ +Ó1ÞÁÔ +ÓÞÅ2Ó1Ë +1ÓÞÉÔ +Ó1ÞÌ +6Ó5ÞÕ +Ó1Û6 +Ó1Ý +1Óß2 +ÓßÅ3Ä +ÓßÅ3Ì +ÓßÅ5ÍÁ +ÓßÅ3ÍÏ +ÓßÅ5È +1ÓÙ +6Ó1Ü6 +ÔÁ2ÉÌ +1ÔÁËÔ +ÔÁÍÅ2 +ÔÁÍÅÓ1 +2ÔÁÍÐ +ÔÁ2ÎÁÌ +1ÔÁÕ +6Ô1 +Ô5×ÉÌ +Ô2×Ì +Ô×Ï1Ú +1Ô2×ÏÒ +5ÔרÀ +2Ô1Ç +Ô1Ä2 +ÔÅÇ1Î +1ÔÅËÁ +ÔÅË1ÓÔÁ +1ÔÅËÛ +ÔÅÌÅ3Ï +5ÔÅÌÅÒ +ÔÅÍ5Î +ÔÅ2ÏÓ +ÔÅ2Ò1ÁË +ÔÅÒ1× +ÔÅÒÅ2Ï3 +1ÔÅÒÌ +ÔÅ2È1Ï +1ÔÅÞÅ +5ÔÅÞØ +Ô1Ö +Ô1Ú +ÔÉ5Á +5ÔÉÇÅ +Ô1ÉÍÐ +2Ô1ÉÎ× +Ô5ÉÎÄ +6ÔÉÎÖ +2Ô1ÉÎÆ +ÔÉ5ÏÌÉ +ÔÉÏ2Ð +ÔÉ1Ó2Ð +ÔÉ5ÔÕ +2ÔÊ +Ô1Ë +1Ô2ËÁÎ +Ô6ËÁÞ +1ÔËÎ +Ô5ÌÅÊ +Ô5ÌÉÎ +1ÔÌÉÔ +Ô1ÌÏÇ +2ÔÌØ +2Ô1Í2 +2Ô1Î +ÔÏ5Ç +ÔÏÚÁ6×5 +ÔÏ1Ú× +1ÔÏÌË +2ÔÏÍÍ +6ÔÏÍÓ +2ÔÏÍÝ +6ÔÏÍÜ +2ÔÏÎÇ +ÔÏ6ÐÔ +1ÔÏÒÓ +1ÔÏÒà +ÔÏ1Ó2 +1ÔÏÞÎ +5ÔÏÝ +2Ô1Ð +2ÔÒ. +2ÔÒÁÂÏ +Ô2ÒÁ× +Ô1ÒÁÚ +2ÔÒ1ÁÒ +2ÔÒÁÓÓ +2ÔÒ +6ÔÒ× +2ÔÒÇ +2ÔÒÄ +1ÔÒÅ +6Ô1ÒÅÄ +ÔÒÅ2È +1ÔÒÉ +2ÔÒÉÇÒ +ÔÒÉ3Ï +2ÔÒË +2ÔÒÍ +2ÔÒÐ +2ÔÒÒ +6ÔÒÓ +2ÔÒÔ +1ÔÒÕ +2ÔÒÆ +2ÔÒà +2ÔÒ5Û +Ô1ÒÙ× +2ÔÒÜ +6Ô5ÒÑÄ +2Ô1Ó +Ô6ÓÄ +Ô2Ó1Í +ÔÓ2Î +6Ô1Ô +Ô2ÔÌ +5ÔÕÄÙ +6ÔÕÏÔ +ÔÕ2ÐÒ +2ÔÕÞ +ÔÕ2ÞÅ +5ÔÕÛÅ× +2Ô1ÕÜ +ÔÕ2ÜÌ +2Ô1Æ +2ÔÈ +Ô1ÈÅ +ÔÈ1Ì +Ô1ÈÏ +2Ô1à +Ô1Þ +2Ô1Û2 +2Ô1Ý +ÔÙÓ5Ë +2ÔØ. +ÔØ5× +ÔØ6ÍÕ +ÔØ5ÏÒ +2Ô1Ü6 +ÔÑ5ÂÒÑ +5ÔÑÎÕ +Ô1Ñ2Þ +Õ1Á +Õ6ÁÌÅ +Õ2ÁÎÔ +Õ2ÁÒ +Õ5ÁÒÉ +Õ6ÁÓ +Õ1ÂÁ +Õ1ÂÅ +5Õ6ÂÅÄ +Õ1ÂÉ +Õ1ÂÌÁ +Õ1ÂÌÅ +Õ1ÂÌÉ +Õ1ÂÌÏ +Õ1ÂÌÕ +Õ1ÂÌÙ +Õ1ÂÏ +Õ1ÂÒÁ +Õ1ÂÒÅ +Õ1ÂÒÉ +Õ1ÂÒÏ +Õ1ÂÒÕ +Õ1ÂÒÙ +Õ1ÂÕ +Õ1ÂÙ +Õ1ÂØÅ +Õ1ÂØÉ +Õ1ÂØÀ +Õ1ÂØÑ +Õ1ÂÀ +Õ1ÂÑ +Õ1×Á +Õ1×Å +Õ1×É +Õ1×ÌÁ +Õ1×ÌÅ +Õ1×ÌÉ +Õ1×ÌÏ +Õ1×ÌÕ +Õ1×ÌÙ +Õ1×Ï +Õ1×ÒÁ +Õ1×ÒÅ +Õ1×ÒÉ +Õ1×ÒÏ +Õ1×ÒÕ +Õ1×ÒÙ +Õ1×Õ +Õ1×Ù +Õ1רŠ+Õ1×ØÉ +Õ1רÀ +Õ1×ØÑ +Õ1×À +Õ1×Ñ +Õ1ÇÁ +Õ2ÇÁÄ +Õ1ÇÅ +Õ1ÇÉ +Õ1ÇÌ +Õ1ÇÌÁ +Õ1ÇÌÅ +Õ1ÇÌÉ +Õ1ÇÌÏ +Õ1ÇÌÕ +Õ1ÇÌÙ +Õ1ÇÏ +Õ1ÇÒÁ +Õ1ÇÒÅ +Õ1ÇÒÉ +Õ1ÇÒÏ +Õ1ÇÒÕ +Õ1ÇÒÙ +Õ1ÇÕ +Õ1ÇÙ +Õ1ÇØÅ +Õ1ÇØÉ +Õ1ÇØÀ +Õ1ÇØÑ +Õ1ÇÀ +Õ1ÇÑ +Õ1ÄÁ +ÕÄ2× +Õ1Ä×Á +Õ1Ä×Å +Õ1Ä×É +Õ1Ä×Ï +Õ1Ä×Õ +Õ1Ä×Ù +Õ1ÄÅ +Õ5ÄÖ +Õ1ÄÉ +ÕÄÉ5Ó +Õ6ÄÌ +Õ1ÄÌÁ +Õ1ÄÌÅ +Õ1ÄÌÉ +Õ1ÄÌÏ +Õ1ÄÌÕ +Õ1ÄÌÙ +Õ1ÄÏ +Õ1ÄÒ +Õ1ÄÒÁ +Õ1ÄÒÅ +Õ1ÄÒÉ +Õ1ÄÒÏ +Õ2Ä1ÒÕ +Õ1ÄÒÙ +Õ1ÄÕ +Õ1ÄÙ +Õ1ÄØÅ +Õ1ÄØÉ +Õ1ÄØÀ +Õ1ÄØÑ +Õ1ÄÀ +Õ1ÄÑ +Õ1Å +ÕÅ2 +Õ2Å× +Õ5Å×Á +1Õ2ÅÌ +Õ5ÅÍ. +ÕÅ1Ò +Õ2ÅÓ +Õ1ÖÁ +Õ1ÖÅ +Õ1ÖÉ +Õ1ÖÏ +Õ1ÖÕ +Õ1ÖØÅ +Õ1ÖØÉ +Õ1ÖØÀ +Õ1ÖØÑ +Õ1ÚÁ +ÕÚ6ÇÎ +ÕÚ5ÄÁ +ÕÚ5ÄÀ +Õ1ÚÅ +Õ6ÚÅÌ +Õ1ÚÉ +1ÕÚÌ +Õ1ÚÏ +Õ1ÚÕ +Õ1ÚÙ +Õ1ÚØÅ +Õ1ÚØÉ +Õ1ÚØÀ +Õ1ÚØÑ +Õ1ÚÀ +Õ1ÚÑ +Õ1É +Õ6ÉË +5Õ6ÉÞ +Õ1ËÁ +Õ1Ë×Á +Õ1Ë×Å +Õ1Ë×É +Õ1Ë×Ï +Õ1Ë×Õ +Õ1Ë×Ù +Õ1ËÅ +Õ1ËÉ +Õ1ËÌÁ +Õ1ËÌÅ +Õ1ËÌÉ +Õ1ËÌÏ +Õ1ËÌÕ +Õ1ËÌÙ +ÕË1Î +Õ1ËÏ +ÕËÏÓ6 +Õ1ËÒÁ +Õ1ËÒÅ +Õ1ËÒÉ +Õ1ËÒÏ +Õ1ËÒÕ +Õ1ËÒÙ +Õ1ËÕ +Õ1ËÙ +Õ1ËØÅ +Õ1ËØÉ +Õ1ËØÀ +Õ1ËØÑ +Õ1ËÀ +Õ1ËÑ +Õ1ÌÁ +2Õ5ÌÅ +ÕÌÅ2Ð +Õ1ÌÉ +Õ1ÌÏ +Õ1ÌÕ +Õ1ÌÙ +ÕÌØ1Ä +Õ1ÌØÅ +Õ1ÌØÉ +Õ1ÌØÀ +Õ1ÌØÑ +Õ1ÌÀ +Õ1ÌÑ +Õ5ÍÁ +Õ1ÍÅ +Õ1ÍÉ +Õ6ÍÉÅ +1Õ2ÍÌ +Õ1ÍÌÁ +Õ1ÍÌÅ +Õ1ÍÌÉ +Õ1ÍÌÏ +Õ1ÍÌÕ +Õ1ÍÌÙ +ÕÍ1ÎÏÇ +Õ1ÍÏ +Õ1ÍÒÁ +Õ1ÍÒÅ +Õ1ÍÒÉ +Õ1ÍÒÏ +Õ1ÍÒÕ +Õ1ÍÒÙ +Õ1ÍÕ +Õ1ÍÙ +5Õ6ÍÙÛ +Õ1ÍØÅ +Õ1ÍØÉ +Õ1ÍØÀ +Õ1ÍØÑ +Õ1ÍÀ +Õ1ÍÑ +Õ1ÎÁ +Õ1ÎÅ +Õ1ÎÉ +Õ1ÎÏ +Õ1ÎÒÁ +Õ1ÎÒÅ +Õ1ÎÒÉ +Õ1ÎÒÏ +Õ1ÎÒÕ +Õ1ÎÒÙ +Õ1ÎÕ +Õ1ÎÙ +Õ4ÎÙ× +Õ1ÎØÅ +Õ1ÎØÉ +Õ1ÎØÀ +Õ1ÎØÑ +Õ1ÎÀ +Õ1ÎÑ +Õ1Ï +ÕÏ6ËÏ +ÕÏ2Ó +1Õ2ÏÔ +Õ1ÐÁ +Õ1ÐÅ +Õ1ÐÉ +Õ1ÐÌÁ +Õ1ÐÌÅ +Õ1ÐÌÉ +Õ1ÐÌÏ +Õ1ÐÌÕ +Õ1ÐÌÙ +Õ1ÐÏ +Õ1ÐÒÁ +Õ1ÐÒÅ +Õ1ÐÒÉ +Õ1ÐÒÏ +Õ1ÐÒÕ +Õ1ÐÒÙ +Õ1ÐÔÁ +Õ1ÐÔÅ +Õ1ÐÔÉ +Õ1ÐÔÏ +Õ1ÐÔÕ +Õ1ÐÔÙ +Õ1ÐÕ +Õ1ÐÙ +Õ1ÐØÅ +Õ1ÐØÉ +Õ1ÐØÀ +Õ1ÐØÑ +Õ1ÐÀ +Õ1ÐÑ +Õ1ÒÁ +ÕÒ5ÁÌÀ +ÕÒ1× +Õ1ÒÅ +Õ5ÒÉ +Õ1ÒÏ +Õ1ÒÕ +ÕÒÕ5Ç +Õ1ÒÙ +Õ1ÒØÅ +Õ1ÒØÉ +Õ1ÒØÀ +Õ1ÒØÑ +Õ1ÒÀ +Õ1ÒÑ +Õ1ÓÁ +ÕÓ6 +Õ1Ó×Á +Õ1Ó×Å +Õ1Ó×É +Õ1Ó×Ï +Õ1Ó×Õ +Õ1Ó×Ù +ÕÓ1Ä +Õ1ÓÅ +Õ1ÓÉ +ÕÓ1ËÁ +Õ1ÓË×Á +Õ1ÓË×Å +Õ1ÓË×É +Õ1ÓË×Ï +Õ1ÓË×Õ +Õ1ÓË×Ù +ÕÓ5ËÉ +ÕÓ5ËÏ× +ÕÓ1ËÏÍ +Õ1ÓËÒÁ +Õ1ÓËÒÅ +Õ1ÓËÒÉ +Õ1ÓËÒÏ +Õ1ÓËÒÕ +Õ1ÓËÒÙ +ÕÓ5ËÕ. +Õ1ÓÍ +Õ5ÓÏ +ÕÓ2ÐÏ +Õ1ÓÒÁ +Õ1ÓÒÅ +Õ1ÓÒÉ +Õ1ÓÒÏ +Õ1ÓÒÕ +Õ1ÓÒÙ +ÕÓ2ÓÍ +Õ1ÓÔÁ +Õ2ÓÔ1× +Õ1ÓÔ×Á +Õ1ÓÔ×Å +Õ1ÓÔ×É +Õ1ÓÔ×Ï +Õ1ÓÔ×Õ +Õ1ÓÔ×Ù +Õ1ÓÔרŠ+Õ1ÓÔ×ØÉ +Õ1ÓÔרÀ +Õ1ÓÔ×ØÑ +Õ1ÓÔ×À +Õ1ÓÔ×Ñ +Õ1ÓÔÅ +Õ1ÓÔÉ +Õ1ÓÔÏ +Õ1ÓÔÒÁ +Õ1ÓÔÒÅ +Õ1ÓÔÒÉ +Õ1ÓÔÒÏ +Õ1ÓÔÒÕ +Õ1ÓÔÒÙ +Õ1ÓÔÒØÅ +Õ1ÓÔÒØÉ +Õ1ÓÔÒØÀ +Õ1ÓÔÒØÑ +Õ1ÓÔÒÀ +Õ1ÓÔÒÑ +Õ1ÓÔÕ +Õ1ÓÔÙ +Õ1ÓÔØÅ +Õ1ÓÔØÉ +Õ1ÓÔØÀ +Õ1ÓÔØÑ +Õ1ÓÔÀ +Õ1ÓÔÑ +Õ1ÓÕ +Õ1ÓÆ +Õ1ÓÙ +Õ1ÓØÅ +Õ1ÓØÉ +Õ1ÓØÀ +Õ1ÓØÑ +Õ1ÓÀ +Õ1ÓÑ +Õ1ÔÁ +Õ1Ô×Á +Õ1Ô×Å +Õ1Ô×É +Õ1Ô×Ï +Õ1Ô×Õ +Õ1Ô×Ù +Õ1ÔÅ +Õ1ÔÉ +Õ1ÔÌ +ÕÔ5ÌÁ +Õ1ÔÏ +Õ1ÔÒÁ +Õ1ÔÒÅ +Õ1ÔÒÉ +Õ1Ô6ÒÏ +Õ1ÔÒÕ +Õ1ÔÒÙ +Õ5ÔÒÑ +Õ1ÔÕ +Õ1ÔÙ +Õ1ÔØÅ +Õ1ÔØÉ +ÕÔØ6Í +Õ1ÔØÀ +Õ1ÔØÑ +Õ1ÔÀ +Õ1ÔÑ +Õ1Õ2 +ÕÕÍ5 +2ÕÆ +Õ1ÆÁ +Õ1ÆÅ +Õ1ÆÉ +Õ1ÆÌÁ +Õ1ÆÌÅ +Õ1ÆÌÉ +Õ1ÆÌÏ +Õ1ÆÌÕ +Õ1ÆÌÙ +Õ1ÆÏ +Õ1ÆÒÁ +Õ1ÆÒÅ +Õ1ÆÒÉ +Õ1ÆÒÏ +Õ1ÆÒÕ +Õ1ÆÒÙ +Õ1ÆÕ +Õ1ÆØÅ +Õ1ÆØÉ +Õ1ÆØÀ +Õ1ÆØÑ +Õ1ÆÀ +Õ1ÆÑ +Õ1ÈÁ +Õ2È× +Õ1ÈÄÁ +Õ1ÈÄÅ +Õ1ÈÄÉ +Õ1ÈÄÏ +Õ1ÈÄÕ +Õ1ÈÄÙ +Õ1ÈÅ +Õ1ÈÉ +ÕÈ1Ì +ÕÈ1Í +Õ1ÈÏ +Õ2È1Ò +Õ1ÈÕ +ÕÈÕ2Ì +Õ1ÈÙ +Õ1ÈØÅ +Õ1ÈØÉ +Õ1ÈØÀ +Õ1ÈØÑ +Õ1ÈÀ +Õ1ÈÑ +Õ1ÃÁ +Õ1ÃÅ +Õ1ÃÉ +Õ1ÃÏ +Õ1ÃÕ +Õ1ÃÙ +Õ1ÃØÅ +Õ1ÃØÉ +Õ1ÃØÀ +Õ1ÃØÑ +Õ1ÞÁ +Õ1ÞÅ +Õ1ÞÉ +Õ5ÞÌ +Õ1ÞÕ +Õ1ÞØÅ +Õ1ÞØÉ +Õ1ÞØÀ +Õ1ÞØÑ +Õ1ÛÁ +Õ1Û×Á +Õ1Û×Å +Õ1Û×É +Õ1Û×Ï +Õ1Û×Õ +Õ1Û×Ù +Õ1ÛÅ +Õ1ÛÉ +Õ1ÛÌÁ +Õ1ÛÌÅ +Õ1ÛÌÉ +Õ1ÛÌÏ +Õ1ÛÌÕ +Õ1ÛÌÙ +Õ1ÛÏ +Õ1ÛÐ +Õ1ÛÒÁ +Õ1ÛÒÅ +Õ1ÛÒÉ +Õ1ÛÒÏ +Õ1ÛÒÕ +Õ1ÛÒÙ +Õ5ÛÔ +Õ1ÛÕ +Õ1ÛØÅ +Õ1ÛØÉ +Õ1ÛØÀ +Õ1ÛØÑ +Õ1ÝÁ +Õ1ÝÅ +Õ1ÝÉ +Õ1ÝÏ +Õ1ÝÕ +Õ1ÝØÅ +Õ1ÝØÉ +Õ1ÝØÀ +Õ1ÝØÑ +Õ1Ù +Õ1Ü +ÕÜ5ÌÁ +ÕÜ5ÌÅ +Õ2ÜÌÌ +6ÕÜÎ +ÕÜ1ÎØ +Õ5ÜÒ +ÕÜ1Ô +Õ1À +Õ1Ñ +ÕÑ2Ú +1ÆÁ +ÆÁÇ1Î +ÆÁÒ5× +2Æ1× +Æ1Ç +ÆÅ5Ä +ÆÅÍ5Î +ÆÅÎÉ6 +ÆÅ2Ó1Ë +1ÆÉ +ÆÉ1Ä +ÆÉ6Å +ÆÉ6ÎÉÎ +ÆÉ3Ï +ÆÉ1Ó2Ë +Æ1Ë +1ÆÌ +Æ1Í +2Æ1Î +1ÆÏ +2Æ1Ï2ÂÒ +ÆÏ5Å +2Æ1ÏÒÇ +Æ1Ð +ÆÒ6 +Æ6ÒÅ +ÆÒÅ6Ó5 +ÆÒÉ6Ó +2Æ1Ó +Æ1Ô +Æ6Ô5× +1ÆÔÏÎÇ +Æ2Ô1Ò +5ÆÕ +ÆÕ5Ä +Æ6ÕÚ +6ÆÕÏ +Æ1Æ +Æ1Û +1ÆÙ +6ÆØ. +1ÈÁ +ÈÁÂ2 +2È1Á2Ä +È1Á2ÔÏ +È1Â6 +1È× +6È×. +2È1×Å +2È1Ç +2È1Ä +È6Å +ÈÅ2Ï +È1Ú +1ÈÉ +ÈÉÅ2 +È1ÉÚÌ +ÈÉ2ÍÌ +È1Ë +È1ÌÁ. +È1ÌÉ +È1ÌÏ. +È1ÌÕ +È1ÌÙ +È5ÌÀ +È1ÌÑ +È1ÍÁ +È5ÍÅÔ +È1ÍÉ +È1Î +2È1Ï2Ë +ÈÏ2ÐÅ +3ÈÏÒ +ÈÏÒ5× +È1ÏÓÎ +ÈÏ5Ô6Ì +È1Ð +1ÈÒ +2È1Ó +ÈÓ6Ð +ÈÓ2È +È1Ô +È2ÔË +1ÈÕ. +2È1Õ2Ç +ÈÕ2Å +È1ÕÌ +È1Õ2Ò +ÈÕ5ÒÁ +2È1Õ2Þ +1ÈÕÑ +È1Æ6 +È1È +È1à +6È1Þ +È1Û +5ÈÙ +È1Ü +È6Üà +1ÃÁ. +1ÃÁÍ +Ã1 +1Ã× +2Ã1Ç +Ã1Ä +1ÃÅ +ÃÅÊ6Ô5 +6ÃÅÎÎÉ +2ÃÚÁ +1ÃÚÑ +1ÃÉ +2Ã1Ë +2Ã1Ì +2Ã1Í +Ã1Î +1ÃÏ +Ã1Ï2 +2Ã1Ï2Ä +2Ã1ÏÔ +Ã1Ð +Ã1Ò +ÃÒÅ6Ó5 +6Ã1Ó +Ã1Ô +6ÃÕÏ +Ã1à +Ã5Þ +6ÃÛ +1ÃÙ +5ÞÁÊ +5ÞÁÎ +ÞÁÒ3Ô +ÞÁÓÔ1Ì +ÞÁ5ÔÌ +5ÞÁÔÙ +Þ1× +Þ5Ç +1ÞÅÌ +ÞÅÈ1Ì +1ÞÖ +1ÞÉ× +3ÞÉÊ +1ÞÉË +ÞÉ6ÑÈ +6Þ1Ë +Þ1ÌÁ +6Þ5ÌÅÇ +6Þ5ÌÅÖ +Þ1ÌÉ +Þ1Í +2ÞÍÁ +Þ6ÍÏË +Þ1Î +1ÞÏ +Þ1Ð +Þ1Ó +1ÞÔ +Þ1ÔÅÌ +2ÞÔÍ +ÞÕÄ5Ì +1Þ2È6 +Þ1Þ +Þ1Û +5ÞÑ +ÛÁÇ1Î +6Û1 +Û5×É +Û5ר +Û5Ç +6Û5Ä +ÛÅ5×Ò +ÛÅË1 +ÛÅËÓ2 +ÛÅÏ2 +ÛÅ2Ð1Ô +1ÛÉ +2ÛÉ +Û1Ë +Û2ËÉ× +ÛË5Î +1Û2ËÏÌ +1ÛÌÀ +Û1ÌÑ +Û1Í +Û1Î +Û5ÎÉ +1ÛÐÅ +1ÛÐÉÌ +Û2ÐÒ +Û1Ó +1ÛÔÅ +1ÛÔÒ +1ÛÔÕ +1ÛÔÙ +2Û1Æ +Û1à +Û1Þ +Û1Û +5ÛÙ +6ÛØ. +ÛØÑ2 +Û5Ü6 +1ÛÀ +ÝÅ1Ó +1ÝÉ +2Ý1Î +Ý1Ó +Ý1Ý +5ÝÑ +ß1 +ßÅ2 +ß2ÅÌ +ßÅÍ5Î +ß6Ó +ß6Ý +ßÀ2 +ßÑ2 +Ù1Á +Ù1ÂÁ +Ù1ÂÅ +Ù1ÂÉ +Ù1ÂÌÁ +Ù1ÂÌÅ +Ù1ÂÌÉ +Ù1ÂÌÏ +Ù1ÂÌÕ +Ù1ÂÌÙ +Ù1ÂÏ +Ù1ÂÒÁ +Ù1ÂÒÅ +Ù1ÂÒÉ +Ù1ÂÒÏ +Ù1ÂÒÕ +Ù1ÂÒÙ +Ù1ÂÕ +Ù1ÂÙ +Ù1ÂØÅ +Ù1ÂØÉ +Ù1ÂØÀ +Ù1ÂØÑ +Ù1ÂÀ +Ù1ÂÑ +Ù1×Á +Ù1×Å +Ù1×É +Ù1×ÌÁ +Ù1×ÌÅ +Ù1×ÌÉ +Ù1×ÌÏ +Ù1×ÌÕ +Ù1×ÌÙ +Ù1×Ï +Ù6×5Ð +Ù1×ÒÁ +Ù1×ÒÅ +Ù1×ÒÉ +Ù1×ÒÏ +Ù1×ÒÕ +Ù1×ÒÙ +Ù1×Õ +Ù1×Ù +Ù1רŠ+Ù1×ØÉ +Ù1רÀ +Ù1×ØÑ +Ù1×À +Ù1×Ñ +Ù1Ç +Ù1ÇÁ +Ù1ÇÅ +Ù1ÇÉ +Ù1ÇÌÁ +Ù1ÇÌÅ +Ù1ÇÌÉ +Ù1ÇÌÏ +Ù1ÇÌÕ +Ù1ÇÌÙ +Ù1ÇÏ +Ù1ÇÒÁ +Ù1ÇÒÅ +Ù1ÇÒÉ +Ù1ÇÒÏ +Ù1ÇÒÕ +Ù1ÇÒÙ +Ù1ÇÕ +Ù1ÇÙ +Ù1ÇØÅ +Ù1ÇØÉ +Ù1ÇØÀ +Ù1ÇØÑ +Ù1ÇÀ +Ù1ÇÑ +Ù1ÄÁ +Ù1Ä×Á +Ù1Ä×Å +Ù1Ä×É +Ù1Ä×Ï +Ù1Ä×Õ +Ù1Ä×Ù +Ù1ÄÅ +Ù1ÄÉ +Ù1ÄÌÁ +Ù1ÄÌÅ +Ù1ÄÌÉ +Ù1ÄÌÏ +Ù1ÄÌÕ +Ù1ÄÌÙ +Ù1ÄÏ +Ù5ÄÒ +Ù1ÄÒÁ +Ù1ÄÒÅ +Ù1ÄÒÉ +Ù1ÄÒÏ +Ù1ÄÒÕ +Ù1ÄÒÙ +Ù1ÄÕ +Ù1ÄÙ +Ù1ÄØÅ +Ù1ÄØÉ +Ù1ÄØÀ +Ù1ÄØÑ +Ù1ÄÀ +Ù1ÄÑ +Ù1Å2 +Ù1ÖÁ +Ù1ÖÅ +Ù1ÖÖ +Ù1ÖÉ +Ù1ÖÍ +Ù1ÖÏ +Ù1ÖÒ +Ù1ÖÕ +Ù1ÖØÅ +Ù1ÖØÉ +Ù1ÖØÀ +Ù1ÖØÑ +Ù1ÚÁ +Ù1Ú× +Ù1ÚÄ +Ù1ÚÅ +Ù1ÚÉ +Ù1ÚÏ +Ù1ÚÒ +Ù1ÚÕ +Ù1ÚÙ +Ù1ÚØÅ +Ù1ÚØÉ +Ù1ÚØÀ +Ù1ÚØÑ +Ù1ÚÀ +Ù1ÚÑ +Ù1É2 +Ù1ËÁ +Ù1Ë×Á +Ù1Ë×Å +Ù1Ë×É +Ù1Ë×Ï +Ù1Ë×Õ +Ù1Ë×Ù +Ù1ËÅ +Ù1ËÉ +Ù1ËÌÁ +Ù1ËÌÅ +Ù1ËÌÉ +Ù1ËÌÏ +Ù1ËÌÕ +Ù1ËÌÙ +ÙË1Î +Ù1ËÏ +Ù1ËÒÁ +Ù1ËÒÅ +Ù1ËÒÉ +Ù1ËÒÏ +Ù1ËÒÕ +Ù1ËÒÙ +Ù1ËÕ +Ù1ËÙ +Ù1ËØÅ +Ù1ËØÉ +Ù1ËØÀ +Ù1ËØÑ +Ù1ËÀ +Ù1ËÑ +Ù1ÌÁ +Ù1ÌÅ3 +Ù1ÌÉ +Ù1ÌÏ +Ù1ÌÕ +Ù1ÌÙ +Ù1ÌØÅ +Ù1ÌØÉ +Ù1ÌØÀ +Ù1ÌØÑ +Ù1ÌÀ +Ù1ÌÑ +Ù1ÍÁ +Ù1ÍÅ +Ù1ÍÉ +Ù1ÍÌÁ +Ù1ÍÌÅ +Ù1ÍÌÉ +Ù1ÍÌÏ +Ù1ÍÌÕ +Ù1ÍÌÙ +Ù1ÍÏ +Ù1ÍÒÁ +Ù1ÍÒÅ +Ù1ÍÒÉ +Ù1ÍÒÏ +Ù1ÍÒÕ +Ù1ÍÒÙ +Ù1ÍÕ +ÙÍ1Þ +Ù1ÍÙ6 +ÙÍÙÛ5 +Ù1ÍØÅ +Ù1ÍØÉ +Ù1ÍØÀ +Ù1ÍØÑ +Ù1ÍÀ +Ù1ÍÑ +Ù1ÎÁ +Ù1ÎÅ +Ù1ÎÉ +Ù1ÎÏ +Ù1ÎÒÁ +Ù1ÎÒÅ +Ù1ÎÒÉ +Ù1ÎÒÏ +Ù1ÎÒÕ +Ù1ÎÒÙ +Ù1ÎÕ +Ù1ÎÙ +Ù1ÎØÅ +Ù1ÎØÉ +Ù1ÎØÀ +Ù1ÎØÑ +Ù1ÎÀ +Ù1ÎÑ +Ù1Ï +Ù1ÐÁ +Ù1ÐÅ +Ù1ÐÉ +Ù1ÐÌÁ +Ù1ÐÌÅ +Ù1ÐÌÉ +Ù1ÐÌÏ +Ù1ÐÌÕ +Ù1ÐÌÙ +Ù1ÐÏ +ÙÐÏÌ1Ú2Ì +Ù1ÐÒÁ +Ù1ÐÒÅ +Ù1ÐÒÉ +Ù1ÐÒÏ +Ù1ÐÒÕ +Ù1ÐÒÙ +Ù1ÐÔÁ +Ù1ÐÔÅ +Ù1ÐÔÉ +Ù1ÐÔÏ +Ù1ÐÔÕ +Ù1ÐÔÙ +Ù1ÐÕ +Ù1ÐÙ +Ù1ÐØÅ +Ù1ÐØÉ +Ù1ÐØÀ +Ù1ÐØÑ +Ù1ÐÀ +Ù1ÐÑ +Ù1ÒÁ +Ù1Ò× +Ù1ÒÅ +ÙÒÅ2È5 +Ù1ÒÉ +Ù1ÒÏ +Ù1ÒÕ +Ù1ÒÙ +Ù1ÒØÅ +Ù1ÒØÉ +Ù1ÒØÀ +Ù1ÒØÑ +Ù1ÒÀ +Ù1ÒÑ +Ù1ÓÁ +Ù1Ó×Á +Ù1Ó×Å +Ù1Ó×É +Ù1Ó×Ï +Ù1Ó×Õ +Ù1Ó×Ù +Ù1ÓÅ +Ù1ÓÉ +Ù1ÓË×Á +Ù1ÓË×Å +Ù1ÓË×É +Ù1ÓË×Ï +Ù1ÓË×Õ +Ù1ÓË×Ù +ÙÓ5ËÉ +Ù1ÓËÒÁ +Ù1ÓËÒÅ +Ù1ÓËÒÉ +Ù1ÓËÒÏ +Ù1ÓËÒÕ +Ù1ÓËÒÙ +ÙÓ5ËÕ +Ù5ÓÍ +Ù1ÓÏ +ÙÓ6ÐÁ +ÙÓ6ÐÌ +Ù1ÓÒÁ +Ù1ÓÒÅ +Ù1ÓÒÉ +Ù1ÓÒÏ +Ù1ÓÒÕ +Ù1ÓÒÙ +Ù1ÓÔÁ +Ù1ÓÔ×Á +Ù1ÓÔ×Å +Ù1ÓÔ×É +Ù1ÓÔ×Ï +Ù1ÓÔ×Õ +Ù1ÓÔ×Ù +Ù1ÓÔרŠ+Ù1ÓÔ×ØÉ +Ù1ÓÔרÀ +Ù1ÓÔ×ØÑ +Ù1ÓÔ×À +Ù1ÓÔ×Ñ +Ù1ÓÔÅ +Ù1ÓÔÉ +Ù1ÓÔÏ +Ù1ÓÔÒÁ +Ù1ÓÔÒÅ +Ù1ÓÔÒÉ +Ù1ÓÔÒÏ +Ù1ÓÔÒÕ +Ù1ÓÔÒÙ +Ù1ÓÔÒØÅ +Ù1ÓÔÒØÉ +Ù1ÓÔÒØÀ +Ù1ÓÔÒØÑ +Ù1ÓÔÒÀ +Ù1ÓÔÒÑ +Ù1ÓÔÕ +Ù1ÓÔÙ +Ù1ÓÔØÅ +Ù1ÓÔØÉ +Ù1ÓÔØÀ +Ù1ÓÔØÑ +Ù1ÓÔÀ +Ù1ÓÔÑ +Ù1ÓÕ +Ù1ÓÙ +Ù1ÓØÅ +Ù1ÓØÉ +Ù1ÓØÀ +Ù1ÓØÑ +Ù1ÓÀ +Ù1ÓÑ +Ù1ÔÁ +Ù1Ô×Á +Ù1Ô×Å +Ù1Ô×É +Ù1Ô×Ï +Ù1Ô×Õ +Ù1Ô×Ù +Ù1ÔÅ +Ù1ÔÉ +Ù1ÔÏ +Ù5ÔÒ +Ù1ÔÒÁ +Ù1ÔÒÅ +Ù1ÔÒÉ +Ù1ÔÒÏ +Ù1ÔÒÕ +Ù1ÔÒÙ +Ù1ÔÕ +Ù1ÔÙ +Ù1ÔØÅ +Ù1ÔØÉ +Ù1ÔØÀ +Ù1ÔØÑ +Ù1ÔÀ +Ù1ÔÑ +Ù1Õ2 +Ù1ÆÁ +Ù1ÆÅ +Ù1ÆÉ +Ù1ÆÌÁ +Ù1ÆÌÅ +Ù1ÆÌÉ +Ù1ÆÌÏ +Ù1ÆÌÕ +Ù1ÆÌÙ +Ù1ÆÏ +Ù1ÆÒÁ +Ù1ÆÒÅ +Ù1ÆÒÉ +Ù1ÆÒÏ +Ù1ÆÒÕ +Ù1ÆÒÙ +Ù1ÆÕ +Ù1ÆØÅ +Ù1ÆØÉ +Ù1ÆØÀ +Ù1ÆØÑ +Ù1ÆÀ +Ù1ÆÑ +Ù1ÈÁ +Ù1ÈÄÁ +Ù1ÈÄÅ +Ù1ÈÄÉ +Ù1ÈÄÏ +Ù1ÈÄÕ +Ù1ÈÄÙ +Ù1ÈÅ +Ù1ÈÉ +Ù1ÈÏ +Ù1ÈÕ +Ù1ÈÙ +Ù1ÈØÅ +Ù1ÈØÉ +Ù1ÈØÀ +Ù1ÈØÑ +Ù1ÈÀ +Ù1ÈÑ +Ù1ÃÁ +Ù1ÃÅ +Ù1ÃÉ +Ù1ÃÏ +Ù1ÃÕ +Ù1ÃÙ +Ù1ÃØÅ +Ù1ÃØÉ +Ù1ÃØÀ +Ù1ÃØÑ +Ù1ÞÁ +Ù1ÞÅ +Ù1ÞÉ +Ù5ÞÌ +Ù1ÞÕ +Ù1ÞØÅ +Ù1ÞØÉ +Ù1ÞØÀ +Ù1ÞØÑ +Ù1ÛÁ +Ù1Û×Á +Ù1Û×Å +Ù1Û×É +Ù1Û×Ï +Ù1Û×Õ +Ù1Û×Ù +Ù1ÛÅ +Ù1ÛÉ +Ù1ÛÌÁ +Ù1ÛÌÅ +Ù1ÛÌÉ +Ù1ÛÌÏ +Ù1ÛÌÕ +Ù1ÛÌÙ +Ù1ÛÏ +Ù1ÛÒÁ +Ù1ÛÒÅ +Ù1ÛÒÉ +Ù1ÛÒÏ +Ù1ÛÒÕ +Ù1ÛÒÙ +Ù1ÛÕ +Ù1ÛØÅ +Ù1ÛØÉ +Ù1ÛØÀ +Ù1ÛØÑ +Ù1ÝÁ +Ù1ÝÅ +Ù1ÝÉ +Ù1ÝÏ +Ù1ÝÕ +Ù1ÝØÅ +Ù1ÝØÉ +Ù1ÝØÀ +Ù1ÝØÑ +Ù1Ù +Ù1Ü +Ù1À +Ù1Ñ2 +Ø1 +ØÂÉ5 +Ø1×Á +Ø1×Å +Ø1×É +Ø1Ç +Ø1ÄÅ +Ø1ÄÖ +Ø1ÄÉ +Ø5ÄÏÒ +ØÄÏ5Ó6 +Ø5ÄÒ +Ø5ÄÕ +Ø5ÄÑ +Ø1Ö +Ø1Ú +Ø6ÚÑ. +Ø1Ë +ØË5× +Ø2Ë1ÌÏ +ØË5Î +Ø1Ì +Ø1Í +Ø1Î +Ø2ÎÕÌ +Ø1Ð +Ø1Ò +Ø1Ó +Ø2ÓÎ +Ø2ÓÔÉ +ØÓ1ÔÉÎ +Ø1Ô +Ø2Ô1× +Ø1Æ +Ø6Æ5ÒÁ +Ø1È +ØÈÏ2Ú1 +Ø1ÃÚ +Ø1Þ +Ø1Û +Ø6ÛË +Ø1Ý +Ø6ÝÁ +Ø2ÝÅ +Ø6ÝÕ +Ø1Ü +ØÑ6×É +Ü1Á +Ü5×Á +Ü6×Ô +Ü2Ä +2Ü1Å +Ü5ÚÅ +Ü5ÚÉ +Ü1É +2ÜÊ +ÜË2Ú +ÜËÓ1 +Ü5ÌÙ +ÜÌØ5 +Ü1ÌÑ +1ÜÍ +Ü1Ï +Ü6Ð +Ü5ÒÉ +ÜÓ1Ë +ÜÓ5Í +ÜÓ2ÐÁ +ÜÓ6Ô +Ü1Õ +Ü6Æ +Ü5ÃÚ +Ü1Ù +Ü1Ü +Ü1À +2Ü1Ñ +À1Á +À1ÂÁ +ÀÂ2× +À1ÂÅ +À1ÂÉ +À1ÂÌÁ +À1ÂÌÅ +À1ÂÌÉ +À1ÂÌÏ +À1ÂÌÕ +À1ÂÌÙ +À1ÂÏ +À1ÂÒÁ +À1ÂÒÅ +À1ÂÒÉ +À1ÂÒÏ +À1ÂÒÕ +À1ÂÒÙ +À1ÂÕ +À1ÂÙ +À1ÂØÅ +À1ÂØÉ +À1ÂØÀ +À1ÂØÑ +À1ÂÀ +À1ÂÑ +À1×Á +À1×Å +À1×É +À1×ÌÁ +À1×ÌÅ +À1×ÌÉ +À1×ÌÏ +À1×ÌÕ +À1×ÌÙ +À1×Ï +À1×ÒÁ +À1×ÒÅ +À1×ÒÉ +À1×ÒÏ +À1×ÒÕ +À1×ÒÙ +À1×Õ +À1×Ù +À1רŠ+À1×ØÉ +À1רÀ +À1×ØÑ +À1×À +À1×Ñ +À1ÇÁ +À1ÇÅ +À1ÇÉ +À1ÇÌÁ +À1ÇÌÅ +À1ÇÌÉ +À1ÇÌÏ +À1ÇÌÕ +À1ÇÌÙ +ÀÇ1Î +À1ÇÏ +À1ÇÒÁ +À1ÇÒÅ +À1ÇÒÉ +À1ÇÒÏ +À1ÇÒÕ +À1ÇÒÙ +À1ÇÕ +À1ÇÙ +À1ÇØÅ +À1ÇØÉ +À1ÇØÀ +À1ÇØÑ +À1ÇÀ +À1ÇÑ +À1ÄÁ +À1Ä×Á +À1Ä×Å +À1Ä×É +À1Ä×Ï +À1Ä×Õ +À1Ä×Ù +À1ÄÅ +ÀÄ1Ö +À1ÄÉ +À1ÄÌÁ +À1ÄÌÅ +À1ÄÌÉ +À1ÄÌÏ +À1ÄÌÕ +À1ÄÌÙ +À1ÄÏ +À1ÄÒÁ +À1ÄÒÅ +À1ÄÒÉ +À1ÄÒÏ +À1ÄÒÕ +À1ÄÒÙ +À1ÄÕ +À1ÄÙ +À1ÄØÅ +À1ÄØÉ +À1ÄØÀ +À1ÄØÑ +À1ÄÀ +À1ÄÑ +À1Å +À1ÖÁ +À1ÖÅ +À1ÖÉ +À1ÖÏ +À1ÖÕ +À1ÖØÅ +À1ÖØÉ +À1ÖØÀ +À1ÖØÑ +À1ÚÁ +À1ÚÅ +À1ÚÉ +À1ÚÏ +À1ÚÕ +À1ÚÙ +À1ÚØÅ +À1ÚØÉ +À1ÚØÀ +À1ÚØÑ +À1ÚÀ +À1ÚÑ +À1É +ÀÊ2Ä1 +ÀÊÄÏ6 +À1ËÁ +À1Ë×Á +À1Ë×Å +À1Ë×É +À1Ë×Ï +À1Ë×Õ +À1Ë×Ù +À1ËÅ +À1ËÉ +À1ËÌÁ +À1ËÌÅ +À1ËÌÉ +À1ËÌÏ +À1ËÌÕ +À1ËÌÙ +ÀË1Î +À1ËÏ +À1ËÒÁ +À1ËÒÅ +À1ËÒÉ +À1ËÒÏ +À1ËÒÕ +À1ËÒÙ +À1ËÕ +À1ËÙ +À1ËØÅ +À1ËØÉ +À1ËØÀ +À1ËØÑ +À1ËÀ +À1ËÑ +À1ÌÁ +À1ÌÅ +À1ÌÉ +À1ÌÏ +À1ÌÕ +À1ÌÙ +À1ÌØÅ +À1ÌØÉ +À1ÌØÀ +À1ÌØÑ +À1ÌÀ +À1ÌÑ +2ÀÍ +À1ÍÁ +À1ÍÅ +À1ÍÉ +ÀÍÉÎÉ5 +À1ÍÌÁ +À1ÍÌÅ +À1ÍÌÉ +À1ÍÌÏ +À1ÍÌÕ +À1ÍÌÙ +À1ÍÏ +À1ÍÒÁ +À1ÍÒÅ +À1ÍÒÉ +À1ÍÒÏ +À1ÍÒÕ +À1ÍÒÙ +À1ÍÕ +À1ÍÙ +À1ÍØÅ +À1ÍØÉ +À1ÍØÀ +À1ÍØÑ +À1ÍÀ +À1ÍÑ +À1ÎÁ +À1ÎÅ +À1ÎÉ +À1ÎÏ +À1ÎÒÁ +À1ÎÒÅ +À1ÎÒÉ +À1ÎÒÏ +À1ÎÒÕ +À1ÎÒÙ +À1ÎÕ +À1ÎÙ +À1ÎØÅ +À1ÎØÉ +À1ÎØÀ +À1ÎØÑ +À1ÎÀ +À1ÎÑ +À1Ï +À1ÐÁ +À1ÐÅ +À1ÐÉ +À1ÐÌÁ +À1ÐÌÅ +À1ÐÌÉ +À1ÐÌÏ +À1ÐÌÕ +À1ÐÌÙ +À1ÐÏ +À1ÐÒÁ +À1ÐÒÅ +À1ÐÒÉ +À1ÐÒÏ +À1ÐÒÕ +À1ÐÒÙ +À6Ð5Ô +À1ÐÔÁ +À1ÐÔÅ +À1ÐÔÉ +À1ÐÔÏ +À1ÐÔÕ +À1ÐÔÙ +À1ÐÕ +À1ÐÙ +À1ÐØÅ +À1ÐØÉ +À1ÐØÀ +À1ÐØÑ +À1ÐÀ +À1ÐÑ +À1ÒÁ +À1ÒÅ +À1ÒÉ +À1ÒÏ +À1ÒÕ +À1ÒÙ +À1ÒØÅ +À1ÒØÉ +À1ÒØÀ +À1ÒØÑ +À1ÒÀ +À1ÒÑ +À1ÓÁ +À1Ó×Á +À1Ó×Å +À1Ó×É +À1Ó×Ï +À1Ó×Õ +À1Ó×Ù +À1ÓÅ +À1ÓÉ +ÀÓ5Ë +À1ÓË×Á +À1ÓË×Å +À1ÓË×É +À1ÓË×Ï +À1ÓË×Õ +À1ÓË×Ù +À1ÓËÒÁ +À1ÓËÒÅ +À1ÓËÒÉ +À1ÓËÒÏ +À1ÓËÒÕ +À1ÓËÒÙ +À1ÓÏ +À1ÓÒÁ +À1ÓÒÅ +À1ÓÒÉ +À1ÓÒÏ +À1ÓÒÕ +À1ÓÒÙ +À1ÓÔÁ +À1ÓÔ×Á +À1ÓÔ×Å +À1ÓÔ×É +À1ÓÔ×Ï +À1ÓÔ×Õ +À1ÓÔ×Ù +À1ÓÔרŠ+À1ÓÔ×ØÉ +À1ÓÔרÀ +À1ÓÔ×ØÑ +À1ÓÔ×À +À1ÓÔ×Ñ +À1ÓÔÅ +À1ÓÔÉ +À1ÓÔÏ +À1ÓÔÒÁ +À1ÓÔÒÅ +À1ÓÔÒÉ +À1ÓÔÒÏ +À1ÓÔÒÕ +À1ÓÔÒÙ +À1ÓÔÒØÅ +À1ÓÔÒØÉ +À1ÓÔÒØÀ +À1ÓÔÒØÑ +À1ÓÔÒÀ +À1ÓÔÒÑ +À1ÓÔÕ +À1ÓÔÙ +À1ÓÔØÅ +À1ÓÔØÉ +À1ÓÔØÀ +À1ÓÔØÑ +À1ÓÔÀ +À1ÓÔÑ +À1ÓÕ +À1ÓÙ +À1ÓØÅ +À1ÓØÉ +À1ÓØÀ +À1ÓØÑ +À1ÓÀ +À1ÓÑ +À1ÔÁ +À1Ô×Á +À1Ô×Å +À1Ô×É +À1Ô×Ï +À1Ô×Õ +À1Ô×Ù +À1ÔÅ +À1ÔÉ +À1ÔÏ +À1ÔÒÁ +À1ÔÒÅ +À1ÔÒÉ +À1ÔÒÏ +À1ÔÒÕ +À1ÔÒÙ +À1ÔÕ +À1ÔÙ +À1ÔØÅ +À1ÔØÉ +À1ÔØÀ +À1ÔØÑ +À1ÔÀ +À1ÔÑ +À1Õ +À1ÆÁ +À1ÆÅ +À1ÆÉ +À1ÆÌÁ +À1ÆÌÅ +À1ÆÌÉ +À1ÆÌÏ +À1ÆÌÕ +À1ÆÌÙ +À1ÆÏ +À1ÆÒÁ +À1ÆÒÅ +À1ÆÒÉ +À1ÆÒÏ +À1ÆÒÕ +À1ÆÒÙ +À1ÆÕ +À1ÆØÅ +À1ÆØÉ +À1ÆØÀ +À1ÆØÑ +À1ÆÀ +À1ÆÑ +À1ÈÁ +À1ÈÄÁ +À1ÈÄÅ +À1ÈÄÉ +À1ÈÄÏ +À1ÈÄÕ +À1ÈÄÙ +À1ÈÅ +À1ÈÉ +À1ÈÏ +À1ÈÕ +À1ÈÙ +À1ÈØÅ +À1ÈØÉ +À1ÈØÀ +À1ÈØÑ +À1ÈÀ +À1ÈÑ +À1ÃÁ +À1ÃÅ +À1ÃÉ +À1ÃÏ +À1ÃÕ +À1ÃÙ +À1ÃØÅ +À1ÃØÉ +À1ÃØÀ +À1ÃØÑ +À1ÞÁ +À1ÞÅ +À1ÞÉ +À1ÞÕ +À1ÞØÅ +À1ÞØÉ +À1ÞØÀ +À1ÞØÑ +À1ÛÁ +À1Û×Á +À1Û×Å +À1Û×É +À1Û×Ï +À1Û×Õ +À1Û×Ù +À1ÛÅ +À1ÛÉ +À1ÛÌÁ +À1ÛÌÅ +À1ÛÌÉ +À1ÛÌÏ +À1ÛÌÕ +À1ÛÌÙ +À1ÛÏ +À1ÛÒÁ +À1ÛÒÅ +À1ÛÒÉ +À1ÛÒÏ +À1ÛÒÕ +À1ÛÒÙ +À1ÛÕ +À1ÛØÅ +À1ÛØÉ +À1ÛØÀ +À1ÛØÑ +À5Ý +À1ÝÁ +À1ÝÅ +À1ÝÉ +À1ÝÏ +À1ÝÕ +À1ÝØÅ +À1ÝØÉ +À1ÝØÀ +À1ÝØÑ +À1Ù +À1Ü +À1À +À1Ñ +Ñ1Á +Ñ1ÂÁ +Ñ1ÂÅ +Ñ1ÂÉ +Ñ1ÂÌÁ +Ñ1ÂÌÅ +Ñ1ÂÌÉ +Ñ1ÂÌÏ +Ñ1ÂÌÕ +Ñ1ÂÌÙ +Ñ1ÂÏ +Ñ1ÂÒÁ +Ñ1ÂÒÅ +Ñ1ÂÒÉ +Ñ1ÂÒÏ +Ñ1ÂÒÕ +Ñ1ÂÒÙ +Ñ1ÂÕ +Ñ1ÂÙ +Ñ1ÂØÅ +Ñ1ÂØÉ +Ñ1ÂØÀ +Ñ1ÂØÑ +Ñ1ÂÀ +Ñ1ÂÑ +Ñ1×Á +Ñ1×Å +5Ñ1×É +Ñ2×Ì +Ñ1×ÌÁ +Ñ1×ÌÅ +Ñ1×ÌÉ +Ñ1×ÌÏ +Ñ1×ÌÕ +Ñ1×ÌÙ +Ñ1×Ï +Ñ1×ÒÁ +Ñ1×ÒÅ +Ñ1×ÒÉ +Ñ1×ÒÏ +Ñ1×ÒÕ +Ñ1×ÒÙ +Ñ1×Õ +Ñ1×Ù +Ñ1רŠ+Ñ1×ØÉ +Ñ1רÀ +Ñ1×ØÑ +Ñ1×À +Ñ1×Ñ +Ñ1ÇÁ +Ñ1ÇÅ +Ñ1ÇÉ +Ñ1ÇÌÁ +Ñ1ÇÌÅ +Ñ1ÇÌÉ +Ñ1ÇÌÏ +Ñ1ÇÌÕ +Ñ1ÇÌÙ +ÑÇ5Î +Ñ1ÇÏ +Ñ1ÇÒÁ +Ñ1ÇÒÅ +Ñ1ÇÒÉ +Ñ1ÇÒÏ +Ñ1ÇÒÕ +Ñ1ÇÒÙ +Ñ1ÇÕ +Ñ1ÇÙ +Ñ1ÇØÅ +Ñ1ÇØÉ +Ñ1ÇØÀ +Ñ1ÇØÑ +Ñ1ÇÀ +Ñ1ÇÑ +Ñ1ÄÁ +Ñ1Ä×Á +Ñ1Ä×Å +Ñ1Ä×É +Ñ1Ä×Ï +Ñ1Ä×Õ +Ñ1Ä×Ù +Ñ1ÄÅ +Ñ1ÄÉ +Ñ1ÄÌÁ +Ñ1ÄÌÅ +Ñ1ÄÌÉ +Ñ1ÄÌÏ +Ñ1ÄÌÕ +Ñ1ÄÌÙ +Ñ1ÄÏ +Ñ1ÄÒÁ +Ñ1ÄÒÅ +Ñ1ÄÒÉ +Ñ1ÄÒÏ +Ñ1ÄÒÕ +Ñ1ÄÒÙ +Ñ1ÄÕ +Ñ1ÄÙ +Ñ1ÄØÅ +Ñ1ÄØÉ +Ñ1ÄØÀ +Ñ1ÄØÑ +Ñ1ÄÀ +Ñ1ÄÑ +Ñ1Å +Ñ1ÖÁ +Ñ1ÖÅ +Ñ1ÖÉ +Ñ1ÖÏ +Ñ1ÖÕ +Ñ1ÖØÅ +Ñ1ÖØÉ +Ñ1ÖØÀ +Ñ1ÖØÑ +Ñ1ÚÁ +ÑÚ1× +Ñ1ÚÅ +Ñ1ÚÉ +Ñ1ÚÏ +Ñ1ÚÕ +Ñ1ÚÙ +Ñ1ÚØÅ +Ñ1ÚØÉ +Ñ1ÚØÀ +Ñ1ÚØÑ +Ñ1ÚÀ +Ñ1ÚÑ +Ñ1É +Ñ1ËÁ +Ñ1Ë×Á +Ñ1Ë×Å +Ñ1Ë×É +Ñ1Ë×Ï +Ñ1Ë×Õ +Ñ1Ë×Ù +Ñ1ËÅ +Ñ1ËÉ +Ñ1ËÌÁ +Ñ1ËÌÅ +Ñ1ËÌÉ +Ñ1ËÌÏ +Ñ1ËÌÕ +Ñ1ËÌÙ +ÑË1Î +Ñ1ËÏ +Ñ1ËÒÁ +Ñ1ËÒÅ +Ñ1ËÒÉ +Ñ1ËÒÏ +Ñ1ËÒÕ +Ñ1ËÒÙ +Ñ1ËÕ +Ñ1ËÙ +Ñ1ËØÅ +Ñ1ËØÉ +Ñ1ËØÀ +Ñ1ËØÑ +Ñ1ËÀ +Ñ1ËÑ +Ñ1ÌÁ +Ñ1ÌÅ +Ñ1ÌÉ +Ñ1ÌÏ +Ñ1ÌÕ +Ñ1ÌÙ +Ñ1ÌØÅ +Ñ1ÌØÉ +Ñ1ÌØÀ +Ñ1ÌØÑ +Ñ1ÌÀ +Ñ1ÌÑ +Ñ1ÍÁ +Ñ1ÍÅ +Ñ1ÍÉ +Ñ1ÍÌÁ +Ñ1ÍÌÅ +Ñ1ÍÌÉ +Ñ1ÍÌÏ +Ñ1ÍÌÕ +Ñ1ÍÌÙ +Ñ1ÍÏ +Ñ1ÍÒÁ +Ñ1ÍÒÅ +Ñ1ÍÒÉ +Ñ1ÍÒÏ +Ñ1ÍÒÕ +Ñ1ÍÒÙ +Ñ1ÍÕ +Ñ1ÍÙ +Ñ1ÍØÅ +Ñ1ÍØÉ +Ñ1ÍØÀ +Ñ1ÍØÑ +Ñ1ÍÀ +Ñ1ÍÑ +Ñ1ÎÁ +Ñ1ÎÅ +Ñ1ÎÉ +Ñ1ÎÏ +Ñ1ÎÒÁ +Ñ1ÎÒÅ +Ñ1ÎÒÉ +Ñ1ÎÒÏ +Ñ1ÎÒÕ +Ñ1ÎÒÙ +Ñ1ÎÕ +Ñ1ÎÙ +Ñ1ÎØÅ +Ñ1ÎØÉ +Ñ1ÎØÀ +Ñ1ÎØÑ +Ñ1ÎÀ +Ñ1ÎÑ +Ñ1Ï2 +Ñ1ÐÁ +Ñ1ÐÅ +Ñ1ÐÉ +Ñ1ÐÌÁ +Ñ1ÐÌÅ +Ñ1ÐÌÉ +Ñ1ÐÌÏ +Ñ1ÐÌÕ +Ñ1ÐÌÙ +Ñ1ÐÏ +Ñ1ÐÒÁ +Ñ1ÐÒÅ +Ñ1ÐÒÉ +Ñ1ÐÒÏ +Ñ1ÐÒÕ +Ñ1ÐÒÙ +Ñ1ÐÔÁ +Ñ1ÐÔÅ +Ñ1ÐÔÉ +Ñ1ÐÔÏ +Ñ1ÐÔÕ +Ñ1ÐÔÙ +Ñ1ÐÕ +Ñ1ÐÙ +Ñ1ÐØÅ +Ñ1ÐØÉ +Ñ1ÐØÀ +Ñ1ÐØÑ +Ñ1ÐÀ +Ñ1ÐÑ +Ñ1ÒÁ +ÑÒ5× +Ñ1ÒÅ +Ñ1ÒÉ +Ñ1ÒÏ +Ñ1ÒÕ +Ñ1ÒÙ +Ñ1ÒØÅ +Ñ1ÒØÉ +Ñ1ÒØÀ +Ñ1ÒØÑ +Ñ1ÒÀ +Ñ1ÒÑ +Ñ1ÓÁ +Ñ1Ó×Á +Ñ1Ó×Å +Ñ1Ó×É +Ñ1Ó×Ï +Ñ1Ó×Õ +Ñ1Ó×Ù +Ñ1ÓÅ +Ñ1ÓÉ +ÑÓ1Ë +Ñ1ÓË×Á +Ñ1ÓË×Å +Ñ1ÓË×É +Ñ1ÓË×Ï +Ñ1ÓË×Õ +Ñ1ÓË×Ù +Ñ1ÓËÒÁ +Ñ1ÓËÒÅ +Ñ1ÓËÒÉ +Ñ1ÓËÒÏ +Ñ1ÓËÒÕ +Ñ1ÓËÒÙ +Ñ1ÓÏ +Ñ1ÓÒÁ +Ñ1ÓÒÅ +Ñ1ÓÒÉ +Ñ1ÓÒÏ +Ñ1ÓÒÕ +Ñ1ÓÒÙ +ÑÓ6Ô +Ñ1ÓÔÁ +Ñ1ÓÔ×Á +Ñ1ÓÔ×Å +Ñ1ÓÔ×É +Ñ1ÓÔ×Ï +Ñ1ÓÔ×Õ +Ñ1ÓÔ×Ù +Ñ1ÓÔרŠ+Ñ1ÓÔ×ØÉ +Ñ1ÓÔרÀ +Ñ1ÓÔ×ØÑ +Ñ1ÓÔ×À +Ñ1ÓÔ×Ñ +Ñ1ÓÔÅ +Ñ1ÓÔÉ +Ñ1ÓÔÏ +Ñ1ÓÔÒÁ +Ñ1ÓÔÒÅ +Ñ1ÓÔÒÉ +Ñ1ÓÔÒÏ +Ñ1ÓÔÒÕ +Ñ1ÓÔÒÙ +Ñ1ÓÔÒØÅ +Ñ1ÓÔÒØÉ +Ñ1ÓÔÒØÀ +Ñ1ÓÔÒØÑ +Ñ1ÓÔÒÀ +Ñ1ÓÔÒÑ +Ñ1ÓÔÕ +Ñ1ÓÔÙ +Ñ1ÓÔØÅ +Ñ1ÓÔØÉ +Ñ1ÓÔØÀ +Ñ1ÓÔØÑ +Ñ1ÓÔÀ +Ñ1ÓÔÑ +Ñ1ÓÕ +Ñ1ÓÙ +Ñ1ÓØÅ +Ñ1ÓØÉ +Ñ1ÓØÀ +Ñ1ÓØÑ +Ñ1ÓÀ +Ñ1ÓÑ +Ñ1ÔÁ +Ñ1Ô×Á +Ñ1Ô×Å +Ñ1Ô×É +Ñ1Ô×Ï +Ñ1Ô×Õ +Ñ1Ô×Ù +Ñ1ÔÅ +Ñ3ÔÉ +Ñ1ÔÏ +Ñ1ÔÒÁ +Ñ1ÔÒÅ +Ñ1ÔÒÉ +Ñ1ÔÒÏ +Ñ1ÔÒÕ +Ñ1ÔÒÙ +Ñ1ÔÕ +Ñ1ÔÙ +Ñ1ÔØÅ +Ñ1ÔØÉ +Ñ1ÔØÀ +Ñ1ÔØÑ +Ñ1ÔÀ +Ñ1ÔÑ +Ñ1Õ +Ñ1ÆÁ +Ñ1ÆÅ +Ñ1ÆÉ +Ñ1ÆÌÁ +Ñ1ÆÌÅ +Ñ1ÆÌÉ +Ñ1ÆÌÏ +Ñ1ÆÌÕ +Ñ1ÆÌÙ +Ñ1ÆÏ +Ñ1ÆÒÁ +Ñ1ÆÒÅ +Ñ1ÆÒÉ +Ñ1ÆÒÏ +Ñ1ÆÒÕ +Ñ1ÆÒÙ +Ñ1ÆÕ +Ñ1ÆØÅ +Ñ1ÆØÉ +Ñ1ÆØÀ +Ñ1ÆØÑ +Ñ1ÆÀ +Ñ1ÆÑ +Ñ1ÈÁ +Ñ1ÈÄÁ +Ñ1ÈÄÅ +Ñ1ÈÄÉ +Ñ1ÈÄÏ +Ñ1ÈÄÕ +Ñ1ÈÄÙ +Ñ1ÈÅ +Ñ1ÈÉ +Ñ1ÈÏ +Ñ1ÈÕ +Ñ1ÈÙ +Ñ1ÈØÅ +Ñ1ÈØÉ +Ñ1ÈØÀ +Ñ1ÈØÑ +Ñ1ÈÀ +Ñ1ÈÑ +Ñ1ÃÁ +Ñ1ÃÅ +Ñ1ÃÉ +Ñ1ÃÏ +Ñ1ÃÕ +Ñ1ÃÙ +Ñ1ÃØÅ +Ñ1ÃØÉ +Ñ1ÃØÀ +Ñ1ÃØÑ +Ñ1ÞÁ +Ñ1ÞÅ +Ñ1ÞÉ +Ñ1ÞÕ +Ñ1ÞØÅ +Ñ1ÞØÉ +Ñ1ÞØÀ +Ñ1ÞØÑ +Ñ1ÛÁ +Ñ1Û×Á +Ñ1Û×Å +Ñ1Û×É +Ñ1Û×Ï +Ñ1Û×Õ +Ñ1Û×Ù +Ñ1ÛÅ +Ñ1ÛÉ +Ñ1ÛÌÁ +Ñ1ÛÌÅ +Ñ1ÛÌÉ +Ñ1ÛÌÏ +Ñ1ÛÌÕ +Ñ1ÛÌÙ +Ñ1ÛÏ +Ñ1ÛÒÁ +Ñ1ÛÒÅ +Ñ1ÛÒÉ +Ñ1ÛÒÏ +Ñ1ÛÒÕ +Ñ1ÛÒÙ +Ñ1ÛÕ +Ñ1ÛØÅ +Ñ1ÛØÉ +Ñ1ÛØÀ +Ñ1ÛØÑ +Ñ1ÝÁ +Ñ1ÝÅ +Ñ1ÝÉ +Ñ1ÝÏ +Ñ1ÝÕ +Ñ1ÝØÅ +Ñ1ÝØÉ +Ñ1ÝØÀ +Ñ1ÝØÑ +Ñ1Ù +Ñ1Ü +Ñ1À +Ñ1Ñ diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/slovenia.lh b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/slovenia.lh new file mode 100755 index 0000000000000..b1ca126325aaf --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/slovenia.lh @@ -0,0 +1,1124 @@ +Lout hyphenation information +% +% This is a Slovenian hyphenation file created by Jeff Kingston +% on 8 June 1995 from a TeX file supplied by Ljupco Taseski. +% Apologies to the author (no author information could be found). +% +% Slovenian has three accented letters, each with upper and lower +% case forms, which are found in the ISO-LATIN-2 character set +% but not in ISO-LATIN-1: +% +% Character ISO-Latin-2 ISO-Latin-2 +% encoding encoding +% (decimal) (octal) +% +% C caron 200 310 +% c caron 232 350 +% S caron 169 251 +% s caron 185 271 +% Z caron 174 256 +% z caron 190 276 +% +% + +Classes: +@!$%^&*()_-+=~`{[}]:;'|<,.>?/0123456789 +aA +bB +cC +dD +eE +fF +gG +hH +iI +jJ +kK +lL +mM +nN +oO +pP +qQ +rR +sS +tT +uU +vV +wW +xX +yY +zZ +èÈ +¹© +¾® + +Patterns: +.av5r +.di6spo +.ek3s +.ek5v +.is1 +.iz1 +.obi4d +.ob5it +.od1 +.po4d5n +.po4v5s +.pre6d7n +.se4k5s +.si4s +.st4 +.voz5l +.voz5n +.zliz6 +a1a +a1b +ab5ba +ab6rod +a1c +ac5ci +a1è +a1d +ad2l +a6dobl +ad6rl. +ad6rla +ad6rob +ad5ur +a1e1 +a1f +af5ga +af1t +a1g +a1h +a4hm +ah5mi +ah5mo +a1i +ai2n1 +a1j +a4j5ek +a4jf +aj5fi +aj5fo +aj5ha +aj5he +aj5im +aj6imo +aj3os +aj6stb +a5ju. +aj3uè +aj3ug +aj5¾n +a1k +ak4s +a4kst +a1l +a1m +a4mz +a1n +an6dga +an6dhi +a4nm +an5mi +an5zi +a1o +ao2b1 +a1p +a4ph +a1ra +ar6dwa +a1re +a1ri +a1ro +a1ru +ar5xa +ar5xo +ar5xu +a1s +a4s¹ +as5¹è +a1¹ +a1t +a4tf +at4i +a1u1 +a4uf +a2uk +a4ul +a1v +av5¹i +a4v¾ +av5¾a +ay5to +a1ze +az5fo +a4zig +az3la +az3le +az4lil +az4lit +az4liv +a4zob +a4z3oè +az5ora +az5oro +a4zra +az4red +az5vp +a1¾ +a¾5mi +ba6bba +ban3è4 +ba4u +2b1c +2b1è +2b1d +be1 +be4v +b1h +bi1 +b1ja +b4ja. +b5jel +b3jem +b5jet +2b1k +b3lep +b5leta +b5lil +b5lit +b5liv +b1m +4bmi +2b1n +bo1 +bo6chm +b5ord +bo5vp +b3rab +b5ras +b3ra¹ +b3rez +bre4zg +bre4zi +bre4zr +b5re¾e +b3rob +br6¾da +2b1s +2b1¹ +2b1t +bu5ki +bu5ku +bu5kv +bu5ry +2b1v +b1z +b1¾ +2cc +2ch. +ch5ma +2ck +c1ka +ck1o2 +c5ko. +ckov3 +ck1s +ck5we +2c1n +2c1t +2è1b +2è1g +èi1 +1èj +2è1k +1èl +4è3let +è5mes +2è1n +4èop +2è1p +2è1s +4èup +2d1b +2d1c +2d1è +2d1d +dd6voj +d2e +6d5elem +de4min +de4mn +de4z3i +2d1g +2d1h +di5ck +4dind +d4i5no +dis1 +di4skr +di6spr +2d1j +2d1k +5dlet +d2li +d5lit +d5liv +d1lo +2d3m +4d3nac +4d5naè +4d5nap +4d3nar +4dnas +4d5neb +d5niv +4d5niz +4d5njaè +4d3no¾ +d2o +4dobè +4d5obd +2d3o2f +do5rd +do5vè +do5v4z +2d1p +d5raz +d3rep +dre6pn +d4rev +2d1s +2d1¹ +2d1t +dteks6 +d4ur +du5ro +du5um +2d1v +4d3vi +2d1z2 +e1a +e1b +eb4j +eb6liz +e1c +e1è +e4èd +eè5de +eè5di +eè5do +eè3le +eè5op +e4èt +eè5ti +eè5to +eè5tr +eè5up +e2è1v +eè6vrs +e1d +e4df +ed5ig +ed2l +ed5ob +ed6obe +ed6obr +e4dobs +e4d3oè +ed5vè +ed5zb +e1e +e4ep +e1f +e4ff +ef5fe +ef5ta +e1g +e1h +e1i +ei6pzi +ei2z +eiz5e +e1j +e1k +ek6mal +ek6tre +e1l +e1m +e1n +e1o1 +eob4j +eob4r +eo4dl +eo4z5n +e1p +ep5nik +e1ra +era6z5l +era5z4r +era5z4v +e1re +e4rf +e1ri +e1ro +e4rr +e1ru +e1s +es5da +e5sta +e5sti. +e5stih +e5stil +e1¹ +e4¹p +e¹5po +e1t +4eth +e4tin¹ +e1u1 +e1v +eve6t5l +ev5ha +ev6pre +ev6ste +ev5stv +2ew +ew6ind +ew5le +e4wt +ew5to +e4yw +e1z +ez5dj +e3z4dr +ez2g +ez5gl +e5zij +ez6ijo +ez5imn +e5zis +ez6ist +ez5iz +ez4l +ez6lom +ez6man +ez4mo +e4zob +e4z5or +ez4re +e4zt +e4z5u4m5 +e4z¾ +e1¾ +1fa +fe1 +fe6ljt +ff5ma +fi6zlj +2f1n +fo6uri +fre4u +2f1s +2ft +ft5ve +fu1 +2g1d +ge6ige +gel5è4 +ge6njè +gi6tpr +go1 +go5vz +2g1t +gu1 +ha4u +2h1è +he4i +2h1k +4hl. +h4lo +2h1n +h5ren +2h1¹ +2h1t +1hu +hu6ffm +i1a +i1b +i1c +i4cs +i1èa +i1èe +i1èi +iè5ra +i1èu +iè5vr +i1d +4idor +i1e1 +i1f +i1g +4igh +i1h +i1i +ii2n1 +i1j +i1k +i4kè +ik5èa +i1l +il5è4k +4ile +4ilo +i1m +i4mh +im5hi +i1n +1ind +2ine +3i4n3os +1inp +3inse +1in¹ +4in¹k +3intr +i1o1 +i1p +i1r +4ire +i1s +is4a +is6ert +isis4 +i4skv +2iss +i1¹ +i1t +it5pr +i1u +i1v +iv5jo +i1x +i1z +iz1l +iz4la +izli4z +iz5me +iz5mo +iz6ode +iz5po +i2zr +iz1u +iz6ure +i1¾ +j5akt +2j1b +2j1c +2j1è +2j1d +je4ks4 +2j1g +2jh +j1hi +4jime +4j5int +2j1k +2j1l +2j1m +2j1n +4job +2j1od +jod4l +2jos +4jo¾ +2j1p +2j1r +jra1 +jraz4 +2j1s +jsis6t +2j1¹ +2j1t +ju1 +2juè +ju5dm +2jus +ju2¾1 +2j1v +2j1z +jz6ves +2k1c +2k1d +ke5ti +ki1 +2k1m +1kn +ko1 +kok4 +ko5kd +ko6v¹e +koz6lo +1kre +2ks. +k5sat +ks1c +ks1p +ks4po +ks1t +4kst. +ks6taz +ks5te +2k1t +3ktr +4ktra +ku5ro +k5vip +la4ir +la6vz. +2l1b +2l1c +2l1è +2l1d +le1 +le4e +le6ipz +le5me +2l1f +2l1g +lg5èa +2l1h +l2i1 +li6d¾. +1liz +4l5izd +2lj. +4ljc +2ljè +2ljk +2ljn +2ljs +2lj¹ +lju5d6j +2l1k +2l1l +2l1m +2l1n +lo1 +1loè +2l1p +2l1s +2l1¹ +2l1t +lu5ki +lu5ku +2l1v +2l1z +2l1¾ +2m1b +2m1c +2m1è +2m1d +me4d5n +me6dos +me4dr +2m1f +4mind +4minp +4min¹ +mi6th. +2m1k +2m1m +m5niv +mo6¹t. +mo6v¹. +2m1p +2m1s +2m1¹ +2m1t +m5urn +2m1v +my5hi +2m1¾ +na1 +5naèel +na4d5nj +nad5r +na6dra +na4dre +na6dur +1naj +na6jak +na4j5en +naj3o +na6joè +na4j3u +1nas +na4v3z +navze6 +1naz +naz6or +2n1b +2n1c +2nè +n1èa +n1èe +n1èi +n1èu +2n3d2 +nd5ga +nd5hi +n4dm +ne1 +ne3d2 +1neh +ne3zm +nez4v +2n1f +2n1g +n4gh +ng5ha +n4gv +ng5vi +2n1h +2nj. +2njc +nje4v5s +2njk +2njs +2nj¹ +4njv +2n1k +2n1l +2n1n +no5rd +n4ost +2n1p +2n1s +nsis4 +2n1¹ +2n1t +nteks4 +n4tg +nt5ga +nt5ge +n4tv +nt5vi +nu1 +2n1v +ny5qu +2n1z +nz4i +2n1¾ +o1a +o4as +o1b +ob5gl +ob5ide +ob5jo +5obla +5obro +o4bz +o1c +oc5ke +oc5ki +o4cr +o1è +o1d +od5dv +od5nal +o6drep +od5zd +o2d1¾ +o1e +oele4 +o1f +o1g +4ogl +o1h +o1i +oiz2 +o1j +o1k +o4kb +ok5ba +ok5be +o4kt +o1l +o6l5avt +ol6gèa +o4lr +ol5re +o1m +o1n +o1o +ood4l +o2ol +o4om +o1p +o4pm +op5me +4opy +o1ra +or4deè +o1re +o1ri +o1ro +o1ru +o1s +5oseb +ose4m5 +o1¹ +o1t +o1u +ou5ki +ou5ku +o1v +ov5sem +ov5¹k +o2v1z +o5vza +ov3zd +o1y +o1z +oz4b +ozd5j +oz4g +oz5lo +oz6lo¾ +oz2n +oz5nic +oz5ni¹ +oz2o +oz2r +oz2v +o1¾ +o¾5mi +2p1c +2p3è2 +pè5ka +pe1 +1peè +pe4kt +pet3l +pe4tle +pe4v5s +pev5t4 +4phs +ph5so +pi5zo +2p1k +4ploz +po1 +po6dfa +po4d3l +po4dna +po4d5oè +po6lob +po6std +prez4 +2p1s +2p1¹ +2p1t +pz6ig. +qu2 +3raèu +2rae +ra6j¾n +rav5z +ra6vza +ra4z5id +3razl +ra4z5or +2r1b +2r1c +2r1è +2r1d +re1 +3real +re6cht +re5èv +5redè +re6dig +re6dnju +re6iba +re5jo +re5km +re6sda +rev6sk +re6znaè +re6zus +re6zve +r1f +2r1g +2r1h +ri1 +r4in +ri5n4o +riz4g +riz4l +riz4n +2r1j +2r1k +2r1l +2r1m +2r1n +ro1 +rob6id +3rodi +ro5zo +2r1p +r1r +2r1s +2r1¹ +2r1t +r4th +rt5ha +ru5kl +2r1v +r3v2j +rv5jo +ry5an +2r1z +rz2l +r1¾ +r¾5da +2s1b +1sc +4sc. +s2ci +se4k5sa +sek5si +se5ma +se5vp +2s1f +si1 +s4id +si6gn. +sis1 +2s1j +2sk. +s2kn +4skre +s4lav +s4on +soni5 +soniè4 +1sp +s4plod +spod4l +2s1s +2st. +3ste +s4ten +4stf +s4tiè +5stim +s4tir +2stk +2stm +1str +s4tra. +su1 +su4bo +sve5t +¹2è +2¹è. +2¹èk +2¹èn +¹e2s +2¹1j +ta5wi +taz4 +2t1b +2t1c +tch5o +2t1d +tek6st +5tema +te5xa +t1f +4tind +4tinos +4tinp +4tinse +4t3int +2t1k +6tletno +2t1m +4tnaj +to6v¾. +trt5u +tr6tur +2t1s +2t1t +tu1 +4tz. +2u1a +u1b +ub4j +u4bp +ub5po +u1c +u1è +u1d +ud6mi. +u1e +u1f +u1g +u1h +u1i +u1j +u1ka +u1ke +u1ko +u1l +u1m +u1n +u1p +up6èka +u1ra +u1re +4urg +u1ri +u1s +1usp +u1¹ +u¹e3s +u1t +u4th +uth5o +u1v +ux5em +u1z +u1¾ +2v1b +2v1c +2vè +v1èa +v1èe +v4èer +v1èi +2v1d +ve4èl +ve4èm +ve4i +ve4tin +vetle6t +v1f +v1g +vi5dv +vid6va +1viv +vi6¾g. +2v1j +4vjo +2v1k +2v1m +2v1n +vo5rd +voz5le +2v1p +3v2pa +v4pij +v4pil +v5skn +v5¹ek +4v¹k +2v1t +vt4k +vz2 +v2za +3v2zg +2v3zk +2vzo +v3zp +v2zu +1wa +wo2 +x1f +1ye +2y1f +y1j +y1l +y1w +1z2a +z6ane. +za5uk +za3vp +za1z2 +za5zd +2z1b +3zbir +z1c +2z1è +2z1d2 +zd5ju +z3dv +z1g +z4gni +z5got +2z1h +1zi +z1ig +2z1is +4z5i¹è +2z1j +2z1k +z3ku +z5las +z1li +3zlil +5zlit +5zliv +zliz5 +1zlj +3zlog +z5lom +3zlo¾ +z1lu +2z1m +1zn +1zo +z1ob +2z1od +z1og +z2ol +z4om +2z1p +1z1r +4zredè +4zre¹ +4zrez +4zre¾ +4zri +4zru +2z1s +z1¹ +z1t +1zu +z4uj +2z1up +2z1uz +z1v2 +z4ven +z3vn +3z4voj +z4vok +2z1z2 +z1¾ +2¾1b +2¾1c +2¾1è +2¾1j +2¾1k +4¾mi +.è8 +.¹8 +.¾8 +8¾. +8¹. +8è. diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/spanish.lh b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/spanish.lh new file mode 100755 index 0000000000000..bf3a54684c219 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/spanish.lh @@ -0,0 +1,185 @@ +Lout hyphenation information +% +% Spanish hyphenation file, created by Jeffrey H. Kingston +% 23 September 1994 from a TeX file supplied by Luis Melendez. +% See long comment below for full information about the origin +% of this file, and a copyright notice. +% +% JeffK has made the following modifications to convert to ISO-LATIN-1: +% +% TeX file Lout file +% 'a \341 +% 'e \351 +% 'i \355 +% 'o \363 +% 'u \372 +% "u \374 +% ~n \361 +% + +Classes: +@!$%^&*()_-+=~`{[}]:;'|<,.>?/0123456789 +aA +bB +cC +dD +eE +fF +gG +hH +iI +jJ +kK +lL +mM +nN +oO +pP +qQ +rR +sS +tT +uU +vV +wW +xX +yY +zZ +áÁ +éÉ +íÍ +óÓ +úÚ +üÜ +ñÑ + +Patterns: +% Hyphenation patterns for Spanish. +% Compiled by Julio Sanchez (jsanchez@gmv.es) on September 1991. +% +% These patterns have been derived from "On Word Division in Spanish", +% Jos'e A. Ma~nas, Communications of the ACM, and implemented in his +% package ftc. You can get ftc and a draft of the abovementioned +% paper from goya.dit.upm.es in src/text.proc/ftc.Z. FTP access may +% be available. Otherwise, send help to info@goya.dit.upm.es for +% details on use of the mail server. +% +% Rules mentioned below are those described in that paper. After +% several unsatisfactory attempts to pretend I knew better, these +% patterns closely follow that paper. Pattern 'tl' is not considered. +% It is conflictive and ftc does not use it either. +% +% These patterns have been generated by shyphen.sh version 1.2, +% shyphen.sh is a sh script that allows a number of choices. +% Full benefit from some of these options can only be +% obtained if appropriate fonts are available. +% +% Follows a copyright notice. This is not in the public domain, +% but the copyright is essentially a hold-harmless clause. That +% is, use it at will, but don't sue me if you don't like it. +% +% COPYRIGHT NOTICE +% +% These patterns and the generating sh script are Copyright (c) GMV 1991 +% These patterns were developed for internal GMV use and are made +% public in the hope that they will benefit others. Also, spreading +% these patterns throughout the Spanish-language TeX community is +% expected to provide back-benefits to GMV in that it can help keeping +% GMV in the mainstream of spanish users. However, this is given +% for free and WITHOUT ANY WARRANTY. Under no circumstances can Julio +% Sanchez, GMV, Jos'e A. Ma~nas or any agents or representatives thereof +% be held responsible for any errors in this software nor for any damages +% derived from its use, even in case any of the above has been notified +% of the possibility of such damages. If any such situation arises, you +% responsible for repair. Use of this software is an explicit +% acceptance of these conditions. +% +% You can use this software for any purpose. You cannot delete this +% copyright notice. If you change this software, you must include +% comments explaining who, when and why. You are kindly requested to +% send any changes to tex@gmv.es. If you change the generating +% script, you must include code in it such that any output is clearly +% labeled as generated by a modified script. +% +% Despite the lack of warranty, we would like to hear about any +% problem you find. Please report problems to tex@gmv.es. +% +% END OF COPYRIGHT NOTICE +% +% Options included in this set: basic TeX +% Open vowels: a e o 'a 'e 'i 'o 'u +% Closed vowels: i u "u +% Consonants: b c d f g j k l m n p q r s t v w x y z ~n +% +% Some of the patterns below represent combinations that never +% happen in Spanish. Would they happen, they would be hyphenated +% according to the rules. + +% This keeps {cat|lc}code changes, if any, local. Nice to users of +% multilingual versions. These are the minimum changes needed to process +% the patterns. These and other changes will have to be re-enacted when +% Spanish be established as the current language. See the babel docs if +% you don't understand this. +% deleted by JeffK: \begingroup +% deleted by JeffK: \catcode`'=12 \lccode`'=`' +% deleted by JeffK: \catcode`"=12 \lccode`"=`" +% deleted by JeffK: \catcode`~=12 \lccode`~=`~ +% deleted by JeffK: \patterns{ +% Rule SR1 +% Vowels are kept together by the defaults +% Rule SR2 +% Attach vowel groups to left consonant +1ba 1be 1bo 1bá 1bé 1bí 1bó 1bú 1bi 1bu 1bü +1ca 1ce 1co 1cá 1cé 1cí 1có 1cú 1ci 1cu 1cü +1da 1de 1do 1dá 1dé 1dí 1dó 1dú 1di 1du 1dü +1fa 1fe 1fo 1fá 1fé 1fí 1fó 1fú 1fi 1fu 1fü +1ga 1ge 1go 1gá 1gé 1gí 1gó 1gú 1gi 1gu 1gü +1ja 1je 1jo 1já 1jé 1jí 1jó 1jú 1ji 1ju 1jü +1ka 1ke 1ko 1ká 1ké 1kí 1kó 1kú 1ki 1ku 1kü +1la 1le 1lo 1lá 1lé 1lí 1ló 1lú 1li 1lu 1lü +1ma 1me 1mo 1má 1mé 1mí 1mó 1mú 1mi 1mu 1mü +1na 1ne 1no 1ná 1né 1ní 1nó 1nú 1ni 1nu 1nü +1pa 1pe 1po 1pá 1pé 1pí 1pó 1pú 1pi 1pu 1pü +1qa 1qe 1qo 1qá 1qé 1qí 1qó 1qú 1qi 1qu 1qü +1ra 1re 1ro 1rá 1ré 1rí 1ró 1rú 1ri 1ru 1rü +1sa 1se 1so 1sá 1sé 1sí 1só 1sú 1si 1su 1sü +1ta 1te 1to 1tá 1té 1tí 1tó 1tú 1ti 1tu 1tü +1va 1ve 1vo 1vá 1vé 1ví 1vó 1vú 1vi 1vu 1vü +1wa 1we 1wo 1wá 1wé 1wí 1wó 1wú 1wi 1wu 1wü +1xa 1xe 1xo 1xá 1xé 1xí 1xó 1xú 1xi 1xu 1xü +1ya 1ye 1yo 1yá 1yé 1yí 1yó 1yú 1yi 1yu 1yü +1za 1ze 1zo 1zá 1zé 1zí 1zó 1zú 1zi 1zu 1zü +1ña 1ñe 1ño 1ñá 1ñé 1ñí 1ñó 1ñú 1ñi 1ñu 1ñü +% Rule SR3 +% Build legal consonant groups, leave other consonants bound to +% the previous group. This overrides part of the SR2 pattern +% group. +1c2ha 1c2he 1c2ho 1c2há 1c2hé 1c2hí 1c2hó 1c2hú 1c2hi 1c2hu 1c2hü +1l2la 1l2le 1l2lo 1l2lá 1l2lé 1l2lí 1l2ló 1l2lú 1l2li 1l2lu 1l2lü +1r2ra 1r2re 1r2ro 1r2rá 1r2ré 1r2rí 1r2ró 1r2rú 1r2ri 1r2ru 1r2rü +1b2la 1b2le 1b2lo 1b2lá 1b2lé 1b2lí 1b2ló 1b2lú 1b2li 1b2lu 1b2lü +1b2ra 1b2re 1b2ro 1b2rá 1b2ré 1b2rí 1b2ró 1b2rú 1b2ri 1b2ru 1b2rü +1c2la 1c2le 1c2lo 1c2lá 1c2lé 1c2lí 1c2ló 1c2lú 1c2li 1c2lu 1c2lü +1c2ra 1c2re 1c2ro 1c2rá 1c2ré 1c2rí 1c2ró 1c2rú 1c2ri 1c2ru 1c2rü +1d2ra 1d2re 1d2ro 1d2rá 1d2ré 1d2rí 1d2ró 1d2rú 1d2ri 1d2ru 1d2rü +1f2la 1f2le 1f2lo 1f2lá 1f2lé 1f2lí 1f2ló 1f2lú 1f2li 1f2lu 1f2lü +1f2ra 1f2re 1f2ro 1f2rá 1f2ré 1f2rí 1f2ró 1f2rú 1f2ri 1f2ru 1f2rü +1g2la 1g2le 1g2lo 1g2lá 1g2lé 1g2lí 1g2ló 1g2lú 1g2li 1g2lu 1g2lü +1g2ra 1g2re 1g2ro 1g2rá 1g2ré 1g2rí 1g2ró 1g2rú 1g2ri 1g2ru 1g2rü +1k2la 1k2le 1k2lo 1k2lá 1k2lé 1k2lí 1k2ló 1k2lú 1k2li 1k2lu 1k2lü +1k2ra 1k2re 1k2ro 1k2rá 1k2ré 1k2rí 1k2ró 1k2rú 1k2ri 1k2ru 1k2rü +1p2la 1p2le 1p2lo 1p2lá 1p2lé 1p2lí 1p2ló 1p2lú 1p2li 1p2lu 1p2lü +1p2ra 1p2re 1p2ro 1p2rá 1p2ré 1p2rí 1p2ró 1p2rú 1p2ri 1p2ru 1p2rü +1t2ra 1t2re 1t2ro 1t2rá 1t2ré 1t2rí 1t2ró 1t2rú 1t2ri 1t2ru 1t2rü +% Rule SR4 is implicitly implemented by the default values +% Rule HE1 is implemented by TeX parameters \lefthyphenmin and +% \righthyphenmin. Help yourself. The correct values for +% Spanish are 2 and 2. If you set them below these values, +% incorrect breaks will happen. +% Rule HE2 +% Break between a consonant and an h +b1h d1h f1h g1h j1h k1h l1h m1h n1h p1h q1h r1h s1h t1h v1h w1h x1h y1h z1h ñ1h +% We now avoid some problematic breaks. +su2b2r su2b2l +% deleted by JeffK: } +% deleted by JeffK: \endgroup diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/swedish.lh b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/swedish.lh new file mode 100755 index 0000000000000..7bb8aefb56e19 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/hyph/swedish.lh @@ -0,0 +1,3771 @@ +Lout hyphenation information +% +% This is a Swedish hyphenation file created by Jeff Kingston +% on 20 March 1994 from a TeX file supplied by Sverre Slotte. +% +Classes: +@!$%^&*()_-+=~`{[}]:;'|<,.>?/0123456789 +aA +bB +cC +dD +eE +fF +gG +hH +iI +jJ +kK +lL +mM +nN +oO +pP +qQ +rR +sS +tT +uU +vV +wW +xX +yY +zZ +äÄ +åÅ +öÖ + +Patterns: +.a2b +.ab5i +.ab5ol +.ab3r +.ac1 +.a2d +.a3dr +.ad3s +.a5g4ra +.a5gre +.a5kl +.a5le +.a3lu +.amp3l +.a5mu +.and4rar +.a2n5es +.ang4er +.an5go +.an3s +.ap1p +.as2k +.a3sket +.as2t +.a5sten +.a3sti +.a5ta +.at3t +.au3st +.a4val +.av3s2 +.b4 +.bort3s +.cis4 +.cis2t +.cy5klop +.d4 +.dä2r5 +.ek1v +.e3l4a +.e2l3in +.em5b +.e4nä +.e2r3i +.e2s +.e5skad +.es3kal +.es5kap +.e5strad +.e3tr +.evan5 +.f4 +.feb3r +.folk1 +.fram5 +.fres3 +.för1a +.för1en +.fågel3 +.g2 +.gus3 +.he2m +.hu5sa +.ib4 +.i3k4 +.im3p +.i2n1 +.in3d +.ink2 +.in3s +.in3t +.is5k +.is3s +.k4 +.kans4k +.ke5s +.ko5li +.kring3 +.l4 +.lek5tr +.linne3 +.m2 +.mas2ke +.ma5skeri +.me2din +.me4re +.mid3 +.mon2s +.män5sko +.må4st +.n2 +.ner3s +.ok3t +.o3kv +.o2m +.om1s +.o3mu +.on4k +.o3o +.o1s2k +.o3sl +.o3stra +.o3sv +.o3tr +.o1u +.o4ä +.p4 +.pa3ste +.pa5sti +.peri5 +.pi5sti +.pub3lika +.på3t +.r2 +.re4gr +.re2s5te +.re3str +.ri4sp +.röve5 +.s4 +.sa2k +.sand3s +.seg3r +.si5o +.sk2 +.snab2 +.spas5 +.st4 +.straf2 +.string4 +.sup3p +.t4 +.tes3ta +.tig3r +.ti2ot +.u3k +.up2 +.u4ra +.ur3s +.u2ta +.u2to +.ut3om +.u5trer +.ut5s +.v2 +.vatten3 +.vä2g +.väg3s +.x2 +.y2a +.y4e +.ägg3s +.ä3ro +.ög5n +.ö3ro +.ång4este +.år4s +.å2sk +.åter3 +abe4s3 +ab1l +ab3la +ab3ort +ab5ric +ab3rio +a5bu +ac4kes +ack3u4p +a1d +a5dag +a5dek +a5del +ad5ep +ad1j +ad3op +a5dran +a3dre +1adres +ad3ril +a5dro +ad3ru +ads3v +a5ed +3affä +1af3ri +a5fä +a1ga +aga4ra +a1ge +a2ge. +age4l +agg3s +ag1l +ag3ro +ag4sp +a1h +a4hj +aib4 +a3iv +a1j +a3ka +a4kart +a3ke +a1ki +ak3n +a1ko +ak5ram +akri5s2 +ak3rob +ak4sta +3aktig +ak3tri +a1ku +a5kvari +ak5ve +4akö +a5kår +ak5åt +a1la +al5adm +ali2br +a2lin +a5lin. +a3line +al3ins +ali5stik +alivs4 +a4lj +alk3ak +a1lo +al5ort +al3tr +a1lu +alu5s +alv3s +a1ly +a3lä +a3lö +am4bra +am4i +ams2 +a3mö +ana4bo +an3alf +an3ark +an3c +anci5 +an5dak +andel2 +an4dun +an3gi +ang4o +an1gr +aniu4 +ank3r +ano2i +a4nok +a4nop +an5sche +ansis3t +an3skri +an5slag +ans5par +an1st +1ansva +a1nu +a5ny +a3nö +a1o +a2pe. +ape4n3 +ap5lad +ap3lar +apo3str +1appara +apps4k +ap3ric +a5pris +ap2s +ap3se +aps5l +apu5s +a5py +a5pä +2ara +a5rag +a4rarv +1arb +4arbi +2arbo +4arbr +ar3dr +2arh +a1ri +ar3ka +4arl +4arn. +ar4nal +a1ro +a2rob +4arp +ar2sa +ar2sv +ar3ti +ar2tra +art3v +4aru +a5rus +a3ry +a3rä +a5rö +2asa +asbe4 +a1sc +as2h +a5sj +as3kis +ask4l +as3ku +as3pa +as3pig +as5sak +as4sin +as2sk +as2s5op +as2sp +as2st +as3ta +a5stard +as2tej +as5ter +asti5o +as1to +as4tr +ast5rak +a5stral +ast3rol +ast3ron +a5stu +as5tör +a3su +a1sy +a2sö +as5å +a1t +ata5ra +ati5ö +a2tr +a3tral +4atrar +a4t5re +at3ria +a3tric +at3rie +a5trik +a3tris +a3tro +at4sk +1attac +at4tj +att3sk +a4tung +2au +au5b +au2t5a +3autom +4a1va +aves4 +1avg +2a1vi +av3r +4a3vä +a5å +1b2a +bad3s4 +ba4ko +5bar +bas4ta +4b1b +b4bak +b4bj +bb3l +bb5la +4bc +2b1d +3be +be1d +be3d4r +be5e +be1k +be5lu +be3lå +be3nå +be1rö +be1s +be3sl +be4sta +be4ste +be5su +be1tr +bets3t +be3tv +be3u +4bex +2bf +4bh +1b4i +bi3d4r +5big +bi5skv +2b3k +2b2l +b5lar +ble4mo +3blera +3bles +3blett +5blid +3blikr +3bliks +3blö +3blå +2bm +2b1n +1b2o +bo4kan +bo4ki +bo2kl +bo1mu +3bon +bor4ti +bo5st +boy5 +2bp +b2r +2b5raf +4brar +2b5rati +5brid +5brik. +b3rika +3brike +3briks +b5rikö +bruks3 +bru4st +3bry +3brö +4b1s2 +bs3ch +b4sp +bst4 +2b1t +1b2u +4b1v +1by +by5r +3bä +3bö +3bå +5cap +c1c +1c2e +3centr +ceu4s +2ch +4ch. +3chau +3chef +4cht +chäs3 +chör4 +1ci +ci4lu +ci3pl +cipp4 +c5kap +c3ke +c1ki +c2k5j +ck1l +ck3n +c1ko +c4kordn +ck3org +ck3r +ck4re +ck3sla +cks5m +ck5sn +ckus2 +c2l +cle2a +co2a +co4m +4c2r +4cs +1cy +1da +3da. +4dadr +2daf3 +5dako +da3li +5dam +da3må +2dansv +2d1ap +2darb +4dart +4dax +2d3b +2dc +dcen3 +2d1d +ddags5 +dd3r +1d2e +de1k4 +4deko +del2sa +de5lut +denti5ö +de3pr +der3k +de2ro +de5rol +der5sti +de4ru +de2s +de3se +de3sp +dess4l +des3ti +de3tr +2d3f +2d1g +2d1h +1di +dias4 +di5el +di2gr +di3ka +di5ku +din3g4o +2dinr +4dint +di1o +di4od +di3p +dis3p +dis5to +dis3tra +dis5trä +2dj +d5jor +djup5p +3djur +2d3k4 +2d1l +dlings5 +2d1m +2d1n +1do +d2ol +do5lo +2domr +dom2so +5don +4dori +do3y +2d1p +2d2r2 +d3rad +3drag +d5rarb +d5rassera +d5ratu +3drej +4d5ren +d4ric +d3rig +d1rin +d4riv +d5ror +drotts3 +5d4ry +3d4rä +4dräc +3d4röm +2ds +d2sa +d3sag +ds1an +d2se +ds5enh +d2si +dsk2 +d3skef +ds3kl +ds5kn +d2sky +ds1l +ds4lot +d4sma +ds3n +ds4ni +ds5nå +d2so +ds5ort +ds3pl +ds3s4 +ds3tag +ds2te +d5s2tig +d4sty +d2stå +d2su +ds1v +ds5vag +d2sö +2d1t +1du +dubb4 +2dunde +4dup +2dut +2d1v +2d3w +1dy +4dz +1dö +döds3 +4dög +2dås +d5åsk +e1a +e2ake +e4am +e1b +e3bl +e2br +eb3ril +4ec +e3ch +echiff5 +ecis4 +e3co +edi4u +ed3jo +e5dral +eds2l +ed3s2m +edso4 +e1e +e2ed +e4ei +ee2k5 +e4en. +e4ene +e1f +e3fl +ef2s +e1g +e3ga +e3ge +eg1l +eg2ler +e5glera +e5gleri +eg5rat +eg3rin +e5gru +egs3 +e1h +eig2 +ei5gn +e3ik +e1in +ei5sh +e1isk +e1jo +e3ju +e3jä +e5jö +e3ka +e1ki +e1kl +ek3lat +ek4le +ek3n +e1ko +ek3orr +ek4ret. +ek5ro +ek4st +e1ku +ek5vis +e1ky +e1kä +e1la +el1akt +el4arb +eleb3r +elekt3ri +eli5ku +el3k4 +ell5s +e1lo +e4lob +el5ug +e5luv +e1ly +2e1lä +e1lö +e1m +e5mat +e5mis +emon1s +emp5le +e2nav +2enj +en5klo +en3si +ens5ke +ens2m +en5sta +en2t1r +ent4rat. +ent3rati +ent3ri +ent3ru +en4tut +2eny +2e1nä +e3nö +e4növ +e1o +e2og +eo4i +e5or +2ep +e3pla +ep5le +epp2s3 +e1pr +ep3s +ep4tr +epu3b +e3på +e2raff +er1ak +er3d4 +er3erö +e1ri +e5rib +e4rinf +erings5 +eri5stik +erk4la +er3kv +er5na +e1ro +e3rob +e2rom +erp4 +er3ra +er5sc +ers4ken +ers4le +er3sli +er4sta +er3str +er3sv +e1ru +e4rut +e3ry +e1rä +e3rös +er5öve +e5råd +e2sal +es5all +es3arm +e1sc +2ese +es4hi +esi4u +es2k +e4skan +e4s5kar +e4s3ken +es3ker +es5kul +e1sl +es3lös +e1sp +es3pl +es4sc +es2st +es2t +e3stal +es3ten +esti2ge +es3tin +es5tor. +es5torn +es4tr +est5rer +e3stru +e3stå +estånds5 +e3sy +eta3b +eti5op +eti3ö +e1to +e5tri. +et3ris +e5trä +ets1l +et2st +et4sv +et2sä +et2s5ö +e1tu +etu4ri +et5vu +e1ty +2etz +e5tä +etäc4 +e5tö +e3tå +euk4 +e5um. +eu4mi +e5up4 +eu4se. +eu5tro +e1v +ex1 +1exp +ext4r +1f2a +fac2 +fa3sh +fa4st +2fb +2fd +1fe +fe2l +fes3ta +fe3sto +2fex +2f1f +ff3l +ff3n +f2f3r +ffö5re +2f3g2 +1fi +fi2br +fib5rig +fi3skal +fi2ti +f2j +2fk +2f2l +5flask +2fm +fma4 +2f2n +3fna +1fo +4fof +folk3r +2fom +fo2na +fost3r +2fp +f2r +fra2m +f4rer +5freri +f4ri. +fri5sp +fros5ta +2f1s +fs2k +f2st +f4sv +2f1t +f4tak +fte4r +f4tin +f4tr +ft2sa +ft4se +fts5i +ft4ska +fts5m +ft3str +f2tu +ft3v +1fu +fu5ru +fu3tu +2fv +1fy +fy4ma +3fäl +5fäs +1fö +fö2ren +fö2ri +för3k +för1sl +för3sm +för3sp +för3su +ga5br +3g2ag +4gakt +3g2al +ga4no +2garb +ga2ro +ga4st +gast3r +5g2ati +gaus4 +g4av +g5avsn +2g1b +4gc +2g1d +ge2a +ge5b4 +2gef +2ge4j +geld4 +g2eli +3gelis +3gelä +g4em +ge4nap +3g2eni +3genj +4genm +gen4sa +g4ense +1g2ent +4genv +ge5ny +3genä +ge2o +1g2era +4gerarb +3g2eri +4germ +g2ersk +gers5n +5gese +ges3ti +ge4to +5g2ett +2g5f +2g1g +g4gap +gg1l +g4gos +ggs4la +ggs4m +ggs4t +2g1h4 +ghets1 +1g2i +gi1o +gis3l +gi4ste +gis4tr +gi5stral +gi5st4rat +3giv +gi2ö +g2j +g5ja +g5jä +2g3k2 +2gl +g2las +5glase +glas5k +5glasö +gles5n +g4lid +g5lös +2g1m +2g1n +g4nag +g2no +1g2o +3go. +3gol +gon3s4 +2gord +g5ordn +go3sl +2g1p +g2r4 +3graf +5gral +gra2m +g5rat. +5grec +5grett +g3rig +g1ring +5grip +g5roi +gro2v +grä4n +5gräns +2g2s +gs1an +g3sel +gs3f +g3sint +gsk2 +g5s4ki +gs4kj +gs4kot +gs1l +gs1m +gs3mi +gs3n +gs4ni +gs4nö +gs1p +gs3pl +gs3po +gs3pu +gs3s +gs5tag +gs5tak +g5stark +g3stif +gs3till +gs4tin +gst4r +gs5tvi +gs1u +g4sug +g4s3ve +gs3vå +gs1ä +2g1t +1g2u +guld1 +gul4da +4gulä +gu2ma +4gup +gu5ru +2gut +g3utb +2g1v +4gw +3g2y +gytt3j +g2ä +1g2ö +gö3ra +gö5ro +3g4å +gårds3 +gå4sp +ha3bl +ha5ge +handels3 +hands4l +han5g2a +ha5ra +ha4sp +hav2 +havs5 +h5c +4hd +he4at +hets3v +h3h +4hir +hi4t +5hjä +h1k +2hl +h4le +2hm +4hn +h2na +h2nit +ho5nu +hop5plo +hop3s +hos3p +4how +h5p +h1s +2ht +hu2s +hu4st +hust5r +hyg5r +hys2 +hy3ster +häll2 +hälls1 +hälso3 +hä5ro +hä4s +hö2g +i1a +ia3fr +ia3g +ia4lu +ias5k +ia3tr +i1b +ib3l +i5bril +i3ca +i2ce. +i5cha +i3che +ick3u4 +i5co +i4dom +id1r +id3ri +id3ro +ids3v +id4sä +i4dun +i3då +4i1e +i1fr +3ifrån +i1g +4igan +i2geb +ig5ej +ig4gr +ig1l +ig3no +i1h +i5i +i1ki +i3klo +ik5län +i4k3n +i1ko +ik3re +i5krob +ik5rof +ik5ros +ik2s +ik5sh +i3kul +i3kum +ik5u4t +ik1v +i3ky +i3kö +i5kå +i1la +i3li +il1jö +il5la +ill3s2 +3illu +il5lär +il2min +i1lo +i3lu +i4lup +i5lä +im2b +imb3r +im5sm +im4tv +i1mu +i3mä +i5mö +i5må +i4nau +in4ga +ing4es. +ing5is +ing4si +ings5o +i3ni +i4nif +ink5s +in5kve +1inneh +5inre +1inri +3inrä +in1s +in2sk +in3skr +in3sl +5inslag +ins4m +in3sn +1inspe +5inspeln +3instan +3instink +3instru +1intr +in4tra +i1nu +i4nun +i1nä +i5oc +i1og +i3ok +io4kr +i1ol +io5li +i5om +i3ono +ion2s3 +i3opi +i1or +i1os +i1ot +ip5pi +i3ra +i4res +i1ri +i1ro +iro3p +i1ru +i5sce +is2h +i2sk +is5kep +isk5na +is1ko +is1kr +is3ku +is4kun +is4kvi +is3ky +i5slam +is3län +is3n +i3so +is3pa +is3pi +is3po +is3pu +is2sk +is5ski +is2sp +is2st +iss3tr +is3tag +i1stans +is5tat. +ist5att +is3ten. +i1stent +is4tes +is5tor. +i3strik +i3strö +i3sy +i1t +it5c +i4te. +i4tei +i3tri +it5sj +it3st +it2t5op +it4t3r +itut4 +i5tä +i4tå +i1u +i1v +i2vak +i4vin +iv3r +iv4su +ivs4v +ivs5va +ix2t +ix5tu +i1ö +1ja +4jarb +jas5m +jas5p +2jb +2j1d +1je +je2a +5jef +je5sta +2jf +4j3g +4jh +1jig +3jis +2j1k +j4kr +j2k3v +2j1l +2jm +2j1n +j2o +3job +4jolj +jor4din +jord5s +3jou +2jr +2j1s +j5sa +j4sk +j4st +2jt +j2u +juk3s +jul3k +4jup +2jur +jur5sta +jus2 +jus3s4 +jut4sta +jä5lo +jäl4sa +jär5s +jör2s +jös4t +jå4sk +1k2a +3ka. +5kad. +3kade. +ka4dr +2kaf +5kafä +ka5gr +ka3i +2kak +k1akti +3kan. +4kandi +5kano +2kap +5kapac +3kapi +3kar. +ka3ra +2karbe +k5arbet +ka5ri +3karna +4karp +4karv +3kas +kas5ko +kas3ti +ka5stru +2katt +4kau +2k3b +2kc +4k1d +1k2e +3ke. +ke3dr +ke4er +2kef +kels4 +ke5nå +2kep +ke2s +4kex +2k3f +kfö2r +kfö3ri +2k5g +2k1h4 +kid5s +4kif +5kig +4kim +5kimå +king3r +4kinne +2kins +kin4sta +2kint +ki4nu +4k3k4 +kl2 +k2lama +3klass +2klat +5klav +2kle +k2lej +2klig +k2lim +3klip +k2lis +klist3r +4klj +3klos +5klub +3kläd +4kläg +2k1m +2k2n +k3nad +5k4nal +3k4nap +k3ni +3knip +3k4niv +3knop +3k4nu +3k4ny +k2o +4koc +2kodl +kog3n +ko4gr +kogs5 +ko2lin +4kolj +5kolle +1kom +3komm +2k3omr +5konse +5konst +3kont +ko3nu +4kop. +4kope +1kor +2korr +3korres +5kortera +1kos +ko3sc +kos4k +ko3sl +3kost +2k3ou +4kox +2k1p +k2r4 +3kraf +kra3ge +2krar +5krera +k4reten +krid5s2 +krings2k +2kriv +3krop +kru5stad +k3ryg +4kräl +2ks +ksaks5 +k3sal +k4sas +ks3ch +k4ser +ks2ha +ks4ho +ks2k4 +ks3kl +ks5kra +k3skä +ks3lös +ks4ma +k2so +ks3pl +k1s2t +k2su +2k1t +kti5ge +k4tinn +k2tins +k2tom +k2tr +kt3re +kt3rin +kt5rog +kt3rol +kt5rät +kt5t4 +k2tut +ku5la +4kuld +3kulö +3kurs +1kus +kust3a +kv4 +k3vagn +3kvali +k5vare +5kvarn +3kvart +k4vato +k2ve +5kvens +5kventa +3kvin +5kvire +k4vo +5kväll +k1vär +kydds1 +3kyrk +kägg5s +5känn +1käns +3kärl +4kög +kör4s +4kål +3la. +lack5s +1lade. +2ladm +4ladr +2laf +la4gin +5lagm +lag3r +2lak +5laki +3laktis +la5lo +3lande. +2lappara +lap5sa +1lar. +2larb +1larn +lar5s +la2sk +5laste. +3lat. +la5tr +2lau +2lav +la5vu +2l5b4 +4l3c +2ld +ld3r +lds4an +lds2m +l4dö +1le +3le. +le5ig +le4kl +lem4so +lem4sö +2l5enl +3ler. +3lern +le5s2l +les5te +le3um +2lex +2l1f +l3fl +2l1g +lg2l +l3gla +2l1h +1li +5lif +3lig +li4go +li5k2l +lik3s +5limer +2linga. +ling5o +2lingr +2lini +4lint +li1o +2lip +lis3c +li4sor +lis3s +li4sta +li4vo +liv2s1 +l2jak +4l1jo +3lju +l1jä +l3jör +l5jå +2l1k +l2kl +lk5lag +l2kr +l3kra +lk3re +l4kv +l1la +lld4r +l3li +ll3k4 +ll1l +l1lo +llok5v +l2l5ov +ll5p +ll4san +ll2se +ll3sk +ll5slä +ll2so +ll4ti +ll3tr +ll5tv +l1lu +llust3ra +l5ly +l5läm +l3lö +l1lå +4l1m +l4mol +l1n +lo2af +lo3dr +lod5st +lo2ge. +2lolj +2lom +4lord +2lorg +4lort +lp5red +4l1r +2l1s +l2sc +l2sk +lsk3n +l4skop +l4skre +l4skv +l3sky +l3slu +ls5lå +ls3m +l2sp +ls3pol +lss4 +l2st +l3sta +ls2ten +l5strid +l3stru +l3stä +l3stå +l2su +l5sur +l2sv +l4svi +ls5vå +l2sö +l4så +4l1t +lta2tu +l2tr +lt5rati +l3trera +ltu4 +l4tå +lu5i +2lun +lun4g3 +lungs2 +2lupp +lu4pu +3lust +4lutb +4luts +4lv +l1va +l1vi +lv3r +lv3sp +l3vä +lv5års +ly4gat +lyg3r +lyg3s +3lyste +5lystn +ly4str +läg5r +1länds +4längda +4längt +4läp +lätt3s +4löm +4lört +4lå. +1lång +lång3s +4lår +lå2s +1ma +ma5fr +mag5n +mak3r +2makti +ma3li +m4an +mand4 +mang2a +man5go +ma5ni +mani1k +man2sc +5mari +mash5 +mas3ko +mask5r +2m1b +m3ba +mbet4 +2mc +2m1d +m4dat +m4do +m3dr +m4då +1me +me5lu +men5k +me5nu +me5ny +me3sti +me5trin +met3ro +meu4 +4mex +2m1f +m3fle +4m1g4 +2m1h +1mi +mi4lu +ming4o +min4st +4minv +mi3nö +mi5sf +mi4sp +miss3t +mi2tr +2m1k +m2kl +2m3l +2m1m2 +2m1n +m2nam +m4nav +mn5g4 +m2n3å +1mo +2momr +mo3na +2morg +mos3k +mo2ta +mo4tin +mot3s +2m1p +m2pak +m2pl +mp3lad +m5plane +mp3lat +mp3lin +mp5p4 +m4pry +mp5sk +mp3st +4m1r +2ms +ms4kor +m1skr +ms3lä +ms4me +ms5na +msnitts5 +m3stjä +mst3rin +m5strå +ms5äp +2m1t +m3tv +mulls3 +mult5r +5mum +4mun3g4 +5mur +mu2sk +mu3sta +mut2s +mut4sl +2m3v +4myg +1myn +mys4te +1män +mäns4 +1mäs +mäs5ta +mö3ra +4möv +3mål. +5målet. +mån5sk +måt5s +1na +3na. +nad4s3 +2naf +na5gr +2nak +3nako +3nakr +na3kro +n1akt +2nalf +5nalfl +nal3sk +na2lu +n5amb +4nanv +nap3r +nap5sa +na4rap +2narb +2nark +4nart +nas3ti +nast3r +2n3b4 +2n1c +n3cha +n3che +n3chi +ncis4 +ncyk3l +2n1d +n2dak +n4dav +nde3s +n2dins +nd3r +n5dril +nd4ro +nd5sat +1ne +3ne. +ne4di +ned3r +ned3s +ne2gr +ne5gres +4nenl +nes3s2 +ne4sta +ne5s4ti +ne3tre +2nex +2n3f4 +2ng1 +n4gar +n4ge. +n4gen. +n4gend +n4gens +n4genti +n4ger. +n4get +n2gi +ng3ig +n5gjo +ng4ly +n2go +ng5om +ng3or +ng3rad +ngs1k +n4göd +2n1h +1n2i +ni5ec +3nin +nings1 +nings3p +nings3v +ni1o +4nip +ni5s2teri +nist3ra +nit4r +3niv +2n1j +n4jar +nju4s +2nk +n1ki +n3klag +n1ko +nkrafts5 +nk4re +n1kro +nkrus4 +n1ku +n5kä +n1kö +2n1l +2n1m +4n1n +nnd4 +n3ne +nne2s +nnes5ta +nnis4 +nn3k +nn3sa +nn3s4t +1no +no4kl +2nolj +no2mar +2nomr +nom3s4 +non4st +2nord +2norg +no3sa +no5sc +no4tu +2n1p +2n5r +4ns +n4sint +n4sise +ns2k +n5skal +ns3kan +ns3kat +ns5kon +ns3kor +n4skra +ns5lat +ns3mi +ns3mö +n4soc +n1spi +ns3pl +ns3po +ns3s4 +ns2t +n4star +n2s3te +ns4tel +n3stif +ns3tig +n1stru +nst5vil +n3s4ty +n1sva +ns3vär +2n1t +n4tark +nter5s +nt4ha +n4tinf +n2tomb +n2tra +nt3rad +n3trah +n3trak +n5trala +nt3rali +n5tram +nt3rep +n3trer +nt3ria +nt3rin +nt3ris +n4tropin +nts2 +nts3c +nt4se +nt3skal +nts5ko +n3tvät +nufts4 +3nui +1num +2nup +n3upp +2nutb +2n1v +ny5gr +n5z +4näc +3näm +4nö. +4nöa +4nög +nö2ja +nörs4k +o1a +o2ard +5o4bj +o4bli +oc4k5r +ock3sk +oc1ku +o1d +ode4k +ode5si +odi4a +3odlin +o5dral +o3dro +ods4k +ods4m +od5stu +o1e +o3fr +o3fä +o1g +oges4 +o4gj +o5glo +o5gly +ognos2 +ogno5st +og3se +o1h +o1i +o4il +o1j +o1k +ok4la +o4kli +ok3na +o2kry +ok3sl +o2kv +o1la +o5lak +ol5au +olfö4 +ol3g +1olj +olk3rä +ol2ku +ol3lä +o1lo +o1lu +o1ly +o1lä +o3lö +ol5år +3ombud +o3me +o3mi +om5pa +om3pl +1omr +4omra +om3sla +om4ste +3omsät +o3mä +on3c +on5gi +on1gr +ongs4l +o4nins +on1k +ons3c +onsi3s +on1sta +on5stel +ons4ter +on3tras +on4tre +o1ny +o1nä +o3nö +on5å +oo4d +o3or +o5pline +op4pl +opp3le +opp2s +o3pri +5optiko +o3på +o5q +4ora +o3rak +oran3g4 +o2rap +1ordn +ord3r +or2d5ä +o4reh +1orga +o3ri +3orient +o1ro +or5pr +or4sn +ors5tig +or4tin +or2tr +o1ru +o3ry +o1rä +o1rö +o3sfä +o4skar +osk4l +o1skop +o5sn +o3som +os5pig +os4sc +os4st +os3ten +os5tiker +o5still +os4tr +ost5re +ost5ron +os3tul +os5ög +ota4la +4oti. +4otie +4otin +o1to +o5tro +ot5run +ot4trä +ott2s +otts3p +o1tu +o1ty +o5tä +o5tö +4our +ou4s +out3s +out3t +o1v +ova4n +ov3r +ov4si +ov5sj +ov3sl +o3we +ox3 +oy2 +o3än +o3ö +o3å +1pa +3pa. +4paf +pag4 +paki3 +pakis4 +pa5la +pa5ra +2parb +4pask +pa2st +pas2tel +pa3u +2p3b +2pc +2pd4 +1pe +pek5tri +pekt3ro +pels4i +3pen. +5peng +3penn +5pensi +pent5r +per4bl +3perio +3pers +pe5tro +4pex +4p1f +p5fl +4p5g +4p1h +1pi +pi4el +pi1o +3pip +pi5sta +pi5sto +p2j +2p1k2 +p2l +p4lac +3plan. +p4lane +p5larn +pla4s +p3lev +3plex +3plic +1plik +p3lop +2p1m +2p1n +p3ni +1po +5poa +2poc +2pof +po2i +po3kr +3polit +4polj +poly3 +4porg +3pos2 +4pov +2pp +p3pe +p4pins +pp5j +pp1l +pp3la +pp3lin +pp3ly +pp3lä +pp5lö +pp3lån +pp3låt +pp5oc +pp3of +pp3ra +pp3ri +pp3ry +pp1st +p2pu +p5py +pp3å +p2r4 +2pra +4pre. +1pres +pre3sk +pre3sta +pres5to +p1rig +p3rik +5pril +3princ +pring3 +p5riol +3pro +pro3g +p3ror +3präs +5pröv +2ps +p2sal +3psalm +p5s2ho +p5sj +ps4ke +ps5ke. +ps4le +ps2li +p3sna +p3sod +ps5s +ps2t +p4stak +p4sy +p2sö +4p1t +p2tra +p3tri +1pu +pul5tr +5punk +pus3t +2p1v +5päl +pä5ro +p5ög +på4sk +påts4 +qu4 +3que +1ra +3ra. +raci4t +3rade. +4radr +ra4du +5ra1e +2raffä +ra3fr +4rag +2rak +ra2lo +r4ande +3rande. +rand3s2 +2ransv +ra3pl +3rar +r4ar. +4rarb +r4are +4rarg +r4ark +r4arn +r4ars +4rart +r3arta +r4as +ras5h +ra2st +3raste. +3rativ +ra3tri +2rav +ra5yo +2r1b +r3bl +2r1c +2r1d +rda5gr +r2d5ex +r3dj +rds4ko +rd4st +1re +3re. +re3b +4rec +5reco +re5du +4rej +re1kr +rek5tri +re3lu +rem5p +r4en. +2reni +2renk +2renl +re3o +3rer. +3rern +3reso +res4sk +re1sti +4restr +re5så +3ret. +4retet +ret3ro +4rety +2revig +4rex +2r1f +r3fl +rfö3ri +2r1g +rgs5tra +2r1h +3rial +4rib +3rifo +2rifr +r3ifrå +3rigt +3riktn +rim4s +3ringen. +2rinr +2rins +2rint +ri1o +3riot +ri5ple +r1j +2r1k +rk3akt +rkes3 +rk5h +r2kl +r4k5lad +rk3lan +r3klas +rk3n +r4kre +rk5st +rk5tr +r4kup +r2kv +r3kvi +2r1l +r5laka +r5lav +rlds3 +2r1m +r4marb +2r1n +rn3g4 +rn5k4 +r2nom +rns4k +rn5sko +rn3s4t +ro3b +rog5s +2rolj +rol4li +rom4a +5roman +ro3pl +ropps3 +ro4ra +2rord +2rorg +2rorie +3rorn +2r1p +r4pö +r1r +rra4n +rreligi5 +r5rib +rr3k4 +r4rob +r4rom +rrs4 +rr5sp +r4rö +2rs +r3sak +r2sin +r3skal +r5skatt +rsk3na +r2sku +r3slag +rs2m +rs5min +rs5nä +rs2t +rs5tend +r5steni +r4stj +r1sto +r4ston +r3strö +r3stu +rstånds4v +r1sv +r2svä +r1sy +r1så +4r1t +r2taf +r2tak +rt4re +rt5res +r5tri +r3trä +rt5t +r4tut +rt5va +rt5vå +ru3br +ruks1 +5rullera +rull3s +runn2 +runns5 +4rupp +ru5sha +ru4sk +ru5str +rut4ra +5ruö +2r1v +r3vj +rv4s +r3w +rydd5s +ry5o +ry4pi +rängs2 +räns5t +rä5s2ti +rö2d5el +röd3sp +r3öi +1r2ör +r1övr +råge5l +rå5ra +1sa +3sa. +4sa3dr +sad5s +2saf +sa3i +2sak +3sakr +sak5ri +3saks +4s1akt +sa5lo +3s2am +sa2ma +samman1 +sa4mor +4sang +2sanl +s3anlä +4sano +san3sla +2sap +2sarb +4sarm +4sart +4sass +sa4tu +2sau +2s1av +4s3b +s2c +4sca +2sch. +1scha +2schb +1schen +1scher +1schi +2schk +4schm +4schp +4schr +3schy +3schö +3sci +4scy +2s3d +1se +se4at. +se2g +2s3egg +seg3ra +sek5le +sek3r +sek5tr +se3kv +se4kva +3sel. +3sen. +s5ersä +3ses +3set. +4sex +2s1f +s3fl +s2fä +sfö2 +2s3g2 +2s1h +s5has +5shaw +shi1s +1si +si2ett +3sif +3sig +3sik +sikts3 +sindu3s +2s1inf +2sinneh +sinnes3 +3sinni +4sinr +2sins +s3instr +sis2t +3sit +siu4 +s2j +s4ju +5sjuk +själs3 +2sk. +4ska. +s2kada +s2kado +3skaffn +s4kag +s2kal +1skap +5skap. +5skapet +skaps3 +s4kara +4skas +4ske. +s4kene +3skepp +4skh +sk4i +3skido +1skil +1skin +3skiv +3skj +4skl +s1klas +2skn +s4ko. +s4kog +1s4kol +3skola +2skom +s5korg +s4korp +skor3s +4skos +5skott +s5krag +s4kran +5skrat +sk4re +5skrev +1skrif +4s3krig +3skrip +3skriv +4skro +s5kron +5skräc +3skräm +4skrö +sk3s +2skt +s3kup +s4kve +3skvät +1sky +5skyd +s4kyn +5skärp +3skärv +sk5ät +1skö +4sköp +3skåd +3skål +5skåps +2sl2 +s5lad. +3slagare +s3land +5s2lang +s4lant +5slinga. +slin2s3 +s2lit +s3litt +s5lor +5slott. +slotts5 +s2lu +s3luc +s3luf +3slum +5slup +4slus +3slut +s5länn +3släp +s5lär +s2lät +3s2löj +s3löst +5slå. +5slår +2sm +s4mak. +s2mal +s2mi +s4mic +3smitta +s5mj +5smug +3smäd +3smäl +2s2n4 +3snab +s4nac +3s4nib +3snil +3snit +5snäc +3snö. +5snön +3s4nör +s4nå +3snål +1so +5soi +2solj +sols2 +so4lö +2som +5son +son4s +sopp5s +so5pr +so4pu +3sor. +4sord +3sorn +3sot +4sott +s2p2 +4s3pap +s4park +spa5tr +4sped +5speg +1s4pek +3spel +4spen +3spet +3spill +2spip +3spir +4spl +s1pla +s3plats +spli4 +s5plik +5split +4spol +4spos +s3pres +3sprid +s3pris +2spro +3spru +s3pry +3sprän +3språ +3spån +3spår +2s1r +4s1s +s5sad +s4satt +sse4lin +s5sja +ss2k +ss5kl +ss3kun +ss1l +s3s2lä +ss3n +ss2t +ss3unn +s2sv +4st. +s2ta +4sta. +1stadi +1stads +s4taf +5stalgis +3stalle +3stallk +1stant +s4tart +5start. +1state +4stations +3statl +1stau +2stb +2stc +4s3te. +1s2teg +s4tek. +s2tem +3stem. +3steme +s4tena +3stenar +3stene +3stense +1stera +1stering +3sterne +4stes +5stetis +s4ti. +2stia +2stib +3stick +2stid +s4tie +s2tif +s2tik +s4tiken +2s2til +3stil. +s2tim +s4tin. +3stink +3s2tisc +1s2tit +s5tju +5stjäl +3stjär +2stm +2stn +5stoc +1stol +stori4eu +5storis +stor3s +3straff +4strativ +3strato +3strej +st3ren +1strer +1strid +5strim +1struk +5strump +s5tryc +5sträc +3sträng +3ström +5stråk +2st3s2 +st5t +1s2ty +4styn +2styp +3styr +1stä +3stäl +2stäv +5stäve +1stö +1stå +4ståg +1su +su2b +3sud +3sug +su3i +3s2um +2sun +5sun. +4sund +5sune +2sup +5supa +5supplea +su2pu +5s4us +2sut +s5utd +su4to +s3uts +s2v2 +4s3vak +5svam +4svap +svars3 +s3vat +4svec +3sven +s3ver +s5ves +4s3vil +4svis +s3vät +s5våd +2syk +5syl +5syn +syn5k +3sys +1sä +3säk +s4äl +2säp +3sät +4säta +1sö +4söd +2sög +s5öga +4söl +sör2s +2söv +sång3 +1ta +3ta. +tab2 +ta3ch +3tade. +4tadi +4tads3 +2taff +5takl +ta5kre +2taktig +5tallise +3tame +3tami +3tan. +ta4nab +3tande. +2tanf +t3anfa +4tanl +2tappar +3tar. +4tarb +tar4mi +3tarn +tars4 +5tas. +3tast +ta1str +ta4tan +tat2s3 +2tatt +2tav +4tave +3tavlan +3tax +2t3b4 +2tc +t3cha +t3che +2t3d +1te +te4as +teb4 +3tec +4teg. +te2gr +te3gre +te3i +te4int +te4kl +te3kv +tel4f +3tema +te4mu +ten3g4 +tenk4 +3tensi +te5nu +te4nä +5ter. +5teriö +terk4 +5term +3tern +ter5sl +te2r5u +3tes +te5stik +te5stu +5tetik +tet4s1 +2texp +2t3f4 +2t3g4 +2t1h +t4hen +5t2hi +1ti +3tial +3tib +2tic +3tici +3tid +tids3t +4tidö +tifts5 +ti2gel +2tign +ti2gr +3tigt +3tiks +5tilj +3tillst +3tillv +5time +2tink +2tinr +2tint +ti2os +3tisk +3tiv +ti4van +4tivita +ti2ö +t2j +t4jat +4tje +2tjo +3tjän +2t3k4 +2t1l +2t1m +2t5n4 +tne4 +3tok +4tol. +4tolj +2tomr +2torg +5toriett +torm5s +1torn +tor1st +tos4k +2t1p +t2r +t4raf +5trafi +3t4ral. +t4rala +3t4rale +5tralo +3trals +t4ralt +1trans +5tran2s5a +4trar +t3rat. +t4rato +4trer. +4trern +2tri +3tribu +trids3 +t3rif +t1ring +t3ring. +4trio +5trod +t4rog +4tropi. +4tror +5trotn +t3rum. +t4rump +3trupp +trus5ta +3träd +träds4 +3träg +4träk +t3räkn +t4rän +5tröja +4tråk +2ts +t4sank +ts5art +ts5au +t4sci +ts5f +t2si +t5skatt +ts4ked +t4sku +t5skul +ts5läk +ts4met +ts3nä +t3snö +t2so +ts5ord +ts3s +ts2te +t4stra +ts5tv +t2su +ts3vär +2tt +t2tak +t4tau +tte5g4 +tte2n +t4tip +tt3ja +t1to +tt3rad +tt3rand +tt3rat +tt3re +tt3ri +t1t4ry +tt5ski +tts4ko +t3tu +tt3vi +t5ty +t3tä +t3tö +tugg4 +2tunde +3tunga +2tup +tu5re +2tutb +t4utr +t3utv +t3utö +5tuö +2tv +t1var +tvin4s +tvit5 +3tviv +t3vän +3tvån +ty3da +tyg5r +3typ +2tz +täc4ko +2täl +5tält +4täm +1tävl +tö2do +4tög +törs3t +3tåg +u1a +ub5al +ub3lic +u1blik +u3cha +ucku5 +u5cl +u2dak +u5de +ud3r +ud4ret +ud3s4a +u1e +u3fl +uf4to +4u1ga +u1ge +ug4gr +ugg3s +ugn4 +ug3s4 +u3h +u5ie +u1in +u3is +u3itet +u1j +u2keb +u5ki +uk3n +u1ko +ukos2 +uk2s +uks3p +uks3v +uk3tr +u3ku +uk1v +u1la +ul2di +uld3sm +ul4du +ulls2 +ull4sk +ull3än +u1lo +u3lu +u1lä +u1lö +ums2te +u1mu +u3mö +3underl +1undersö +1underv +un4dom +un5g2ef +un3gersk +ung5it +3unif +unk5l +unk3n +un4ko +un1sk +un2tr +un5trati +u5nu +u5nä +u1o +u4pern +u2pl +u3plet +up3lik +1uppg +up4pin +1uppla +3upplä +up4p3r +upp3s +upp5sp +up5ut +u5rag +ur5ak +ur5arv +u3re +u1ri +u1ro +u4rob +u4rom +ur1sp +urs5ten. +urs5tin +ur4stä +ur4sv +u5ry +u3rö +us5anl +u3se +us2ha +us4he +us1k +us4kl +us4kr +us2ky +us5lä +us3n +us3pen +us2st +us5tat +u3stik +u3strin +u3stris +u4stä +ut5arm +1utb +ute3s +u4tif +uti3ö +ut3j +3utjäm +utlands3 +u1to +u3top +uto5s +1ut3r +ut4rer +ut4ro +ut5rop +5utru +ut1s +ut5sa +2utsid +ut3sl +3utslä +ut5trö +ut1v +3utvec +u5ty +u3tör +ut3öv +ut5å +u5u +2u1v +u2vak +u3ö +u5å +2v1akti +5vama +4vanp +2varb +va4res +var2s +vars3v +va1r4u +vas5ti +5vattn +4vau +4vav +5vavi +2v1b4 +2vc +2v3d4 +1ve +ve2k +ve3ke +5ventera +ve3ny +4vep +3verk +ver4ste +ve2s5p +ve1st +3veta +3vete +2v5f +2v1g +2v1h +v4i +vid3s +vild3s +vings4 +3vinkl +vin2st +vi5ny +3vis. +vi5sa +vis5h +vi4st +vis3ta +vi2tr +2vj +2v1k2 +2v1l +2vm +vmörk4 +2v1n4 +1vo +2vom +2vorg +vos4 +2v3p +2vr +v2re +3vrera +2vs +v1s2k +vs4ka +v3sni +v2so +vss4 +vs4te +v5sto +v5sty +vs3vå +v2sö +2v1t +vu2d1 +2vun +v1und +4v5up +4vut +2v1v +3vy +3väg +vä4l +5väld +väll4s3 +väl5p +1värd +4värj +3värld +3väx +3vö +vång4s3 +3vård +1wa +we2 +whi2 +wi2e +w4na +x1a +xan5 +xand4 +x1c +x1e +xe3k +xem3pla +x1i +xis2 +x1k2 +x1l +xli4 +x1n +x1o +x1p +xs4 +x1t +xti2 +x4tå +x3u +y1a +yb4s +ycks5k +ycks5t +y2da +y5dan +ydd4 +yd3r +yd3s +y1e +y1ga +y1ge +yg4gj +ygs4a +ygs4p +y1h +y1i +y3ki +y5klist +yk5lon +y1ko +4yl +y1la +yl2gj +yl5lä +y1lo +y3må +yng3r +ynk5l +yn5ko +yn4s +y3or +y5ou +y5po +yp3ri +yre4s +y1ri +y1ro +yr5tu +y1rå +y5scho +ys3ko +yskon5s +ys5sa +ys4st +ys3ta +ys3ti +ys4tik. +yst3ra +y2tak +y2te. +y4tea +y1to +ytt3r +y3va +y3vi +y5w +1za +1ze +ze4ro +1zi +1zo +z5s +3zu +z4zin +ä1a +äde4s +äd3r +äd5se +äd3st +ä3e +ä1ga +ä1ge +äg1l +äg3r +äg4re +äg3se +ä3h +ä3i +ä5jo +4äk +ä1ki +äk3la +äk3n +äk3r +ä1la +äl2p +äl4seg +äls5kog +äl4sl +ält3r +äl2tu +äl4vin +ämp3l +änd1st +änni5s +änn3s +ä4no +äns1l +än4st +än4sv +än2t3r +äpp3l +ä4pr +ä4rap +är2bre +ä1ri +är4nå +är5ob +ä3rop +ä5ror +ä5ros +är2si +är2so +är2sv +ärt3s +4äs +äs5na +äs3pa +äs5pi +äs3ta +äst3r +2ät +ä3to +ä5tre +ätt3r +ä1va +ä2vak +ä3vi +ä5vu +ö1a +ö1b +ö4dak +öde4s +öd3r +öd2s +öd3se +ö2d5ö +ö1e +ö1ga +ög5ak +ö5gar +ö1ge +ö5gen +ö5ger +ög1l +ög2n +ögn3e +1ögon +ög3s +ög4st +ö1i +ö3jo +ö1ki +ök5n +ö5kr +ök2s +ö1la +ölk5s +öl4kö +öl2p +ö5lä +öman4 +ö2nom +öns3ke +ön4so +önst3r +öp5li +ö5plo +3öppn +ö2ra +ö3rande +ö3ras +ör3d4r +ör1eni +ö3res +ö3ret +ör5evig +ör3g +ö1ri +ö5rig +ö5ring +ör3int +ör5ir +ör5iv +örk2 +ör3kl +ör3ol +ör1or +ör2pla +ör1sk +örs2ka +ör3sla +ör3u +ör3vr +ör3y +ör1ä +ör1ö +ös4sk +ös3ta +öst3rä +ö2tak +ö1v +öve4 +över3 +5övere +öv3ri +å1a +å1b +å1d +å3dj +ådjurs5 +åd3r +åds4l +ådå4 +å1e +å1f +å3fl +å1ga +å1ge +åge2l +åg5l +åg3st +å1h +å3i +å1k +å4kre +åk4st +å2ku +å4kv +å1la +3ålder +å2lin +ål2s5e +ål5tr +å1lä +å1m +åman4s +ån4dr +ång3r +åns4t +å3o +å1p +å2pl +å5pla +ård2s +å1ri +å5ror +5årsav +år2sv +år4så +å3ru +år5ö +å1s2 +å3sa +å3se +å3skå +ås3n +ås3s4 +åte2 +åt3ri +å3trå +åts5j +å3tö +å1v diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/README b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/README new file mode 100755 index 0000000000000..2eb184116ca6d --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/README @@ -0,0 +1,86 @@ +Directory lout/include + +This directory contains Lout source files for the standard packages. +The following listing classifies them into types of files. + +Setup files (containing mainly lists of options settable by the user) +--------------------------------------------------------------------- + + Setup files for basic document types (choose one): + + doc The OrdinarySetup package + report The ReportSetup package + book The BookSetup package + slides The OverheadsSetup package + picture The IllustrationSetup package + + Setup files for special-purpose packages (choose any combination): + + tbl The Tbl table formatting package + tab The Tab table formatting package (OBSOLETE, use tbl) + eq The Eq equation formatting package + diag The Diag diagram drawing package + fig The Fig advanced graphics package (OBSOLETE, use diag) + graph The Graph graph drawing package + pas The Pas Pascal progam printing package + modula The Modula Modula-2 progam printing package + latin2 The Latin2 (Eastern European characters) package + russian The Russian language package + + Setup files for program formatting packages (choose any combination): + + cprint C and C++ + eiffel Eiffel + blue Blue + perl Perl + Pod + pod Pod + python Python + +Source files (containing Lout and PostScript source code for the packages) +-------------------------------------------------------------------------- + + bsf The BasicSetup package + bsf.lpg A PostScript prepend file needed by BasicSetup + dsf The DocumentSetup package + docf The OrdinarySetup package + reportf The ReportSetup package + bookf The BookSetup package + slidesf The OverheadsSetup package + picturef The IllustrationSetup package + + tabf The Tab table formatting package (OBSOLETE) + tabf.lpg A PostScript prepend file needed by tabf (OBSOLETE) + tblf The Tbl table formatting package + tblf.lpg A PostScript prepend file needed by tblf + eqf The Eq equation formatting package + figf The Fig advanced graphics package (OBSOLETE) + figf.lpg A PostScript prepend file needed by figf (OBSOLETE) + diagf The Diag diagram drawing package + diagf.etc A file included by diagf + diagf.lpg A PostScript prepend file needed by diagf + graphf The Graph graph drawing package + graphf.etc A file included by graphf + graphf.lpg A PostScript prepend file needed by graphf + pasf Pascal + modulaf Modula-2 + latin2.fd Latin2 font definitions file (placeholder file) + russian.fd Russian font definitions file (placeholder file) + + cprintf C and C++ + eiffelf Eiffel + bluef Blue + perlf Perl + podf Pod + pythonf Python + +Miscellaneous +------------- + + langdefs Standard language definitions file + mydefs Empty file for if the user doesn't have a mydefs + ts The ToySetup package (an expert users' intro. example) + init A Lout source file used during installation (lout -x) + + +Jeffrey H. Kingston +8 April 2000 diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/blue b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/blue new file mode 100755 index 0000000000000..cfe1c3c326713 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/blue @@ -0,0 +1,109 @@ +############################################################################### +# # +# Lout setup file for Blue program printing # +# # +# Version 3.0 # +# Jeffrey H. Kingston # +# 10 April 2000 # +# # +############################################################################### + + +############################################################################### +# # +# @SysInclude line # +# # +# This line causes Lout to read the definitions for this programming # +# language, and should not be touched. # +# # +############################################################################### + +@SysInclude { bluef } + + +############################################################################### +# # +# @Use clause # +# # +# To change the default value of any option, delete the # at the start of # +# its line and change the value between braces. # +# # +############################################################################### + +@Use { @BlueSetup + # pipe { } # pipe source through this + # numbered { No } # No, Yes, or a line number + # style { varying @OrIfPlain fixed } # fixed, varying, or symbol + + # the following options apply when style is "fixed" + + # fixedfont { Courier } # font family + # fixedsize { -1.0p } # font size + # fixedline { 1.0vx } # line-space + # fixedtabin { 8 } # tab interval + # fixedtabout { 8s } # tab width + + # fixedidentifiers { Base } # identifier face + # fixedkeywords { Base } # keyword face + # fixedoperators { Base } # operator face + # fixednumbers { Base } # number face + # fixedstrings { Base } # string face + # fixedcomments { Base } # comment face + # fixedlinenumbers { Base } # line numbers face + + # fixedidentifiersformat { @Body } # identifiers format + # fixedkeywordsformat { @Body } # keywords format + # fixedoperatorsformat { @Body } # operators format + # fixednumbersformat { @Body } # numbers format + # fixedstringsformat { @Body } # strings format + # fixedcommentsformat { @Body } # comments format + # fixedlinenumbersformat { @Body } # line numbers format + + # the following options apply when style is "varying" + + # varyingfont { } # font family + # varyingsize { 1.0f } # font size + # varyingline { 1.0vx } # line-space + # varyingtabin { 8 } # tab interval + # varyingtabout { 3f } # tab width + + # varyingidentifiers { Slope } # identifier face + # varyingkeywords { Bold } # keyword face + # varyingoperators { Base } # operator face + # varyingnumbers { Base } # number face + # varyingstrings { Slope } # string face + # varyingcomments { Base } # comment face + # varyinglinenumbers { Base } # line numbers face + + # varyingidentifiersformat { @Body } # identifiers format + # varyingkeywordsformat { @Body } # keywords format + # varyingoperatorsformat { @Body } # operators format + # varyingnumbersformat { @Body } # numbers format + # varyingstringsformat { @Body } # strings format + # varyingcommentsformat { @Body } # comments format + # varyinglinenumbersformat { @Body } # line numbers format + + # the following options apply when style is "symbol" + + # symbolfont { } # font family + # symbolsize { 1.0f } # font size + # symbolline { 1.0vx } # line-space + # symboltabin { 8 } # tab interval + # symboltabout { 3f } # tab width + + # symbolidentifiers { Slope } # identifier face + # symbolkeywords { Bold } # keyword face + # symboloperators { Base } # operator face + # symbolnumbers { Base } # number face + # symbolstrings { Slope } # string face + # symbolcomments { Base } # comment face + # symbollinenumbers { Base } # line numbers face + + # symbolidentifiersformat { @Body } # identifiers format + # symbolkeywordsformat { @Body } # keywords format + # symboloperatorsformat { @Body } # operators format + # symbolnumbersformat { @Body } # numbers format + # symbolstringsformat { @Body } # strings format + # symbolcommentsformat { @Body } # comments format + # symbollinenumbersformat { @Body } # line numbers format +} diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/bluef b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/bluef new file mode 100755 index 0000000000000..8a8ff130a4d5f --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/bluef @@ -0,0 +1,390 @@ + +############################################################################### +# # +# Lout @BlueSetup package for formatting Blue programs # +# # +# Version 3.0 # +# Jeffrey H. Kingston # +# 10 April 2000 # +# # +# This package uses a filtered body parameter to convert program source # +# code into Lout source. The filter program is prg2lout, which is # +# distributed with Lout and should be compiled and installed wherever # +# Lout itself is. # +# # +############################################################################### + +export @Blue +def @BlueSetup + named pipe { } # pipe through this + named numbered { No } # numbered lines? + named style + named @OrIfPlain left x right y + { @BackEnd @Case { PlainText @Yield y else @Yield x } } + { varying @OrIfPlain fixed } # print style + + # the following options apply when style is "fixed" + named fixedfont { Courier }# font family + named fixedsize { -1.0p } # font size + named fixedline { 1.0vx } # line-space + named fixedtabin { 8 } # tab interval + named fixedtabout { 8s } # tab width + + named fixedidentifiers { Base } # identifier face + named fixedkeywords { Base } # keyword face + named fixedoperators { Base } # operator face + named fixednumbers { Base } # number face + named fixedstrings { Base } # string face + named fixedcomments { Base } # comment face + named fixedlinenumbers { Base } # line numbers face + + named fixedidentifiersformat right @Body { @Body } # identifier format + named fixedkeywordsformat right @Body { @Body } # keyword format + named fixedoperatorsformat right @Body { @Body } # operators format + named fixednumbersformat right @Body { @Body } # number format + named fixedstringsformat right @Body { @Body } # string format + named fixedcommentsformat right @Body { @Body } # comment format + named fixedlinenumbersformat right @Body { @Body } # line nums format + + # the following options apply when style is "varying" + named varyingfont { } # font family + named varyingsize { 1.0f } # font size + named varyingline { 1.0vx } # line-space + named varyingtabin { 8 } # tab interval + named varyingtabout { 3f } # tab width + + named varyingidentifiers { Slope } # identifier face + named varyingkeywords { Bold } # keyword face + named varyingoperators { Base } # operator face + named varyingnumbers { Base } # number face + named varyingstrings { Slope } # string face + named varyingcomments { Base } # comment face + named varyinglinenumbers { Base } # line numbers face + + named varyingidentifiersformat right @Body { @Body } # identifier format + named varyingkeywordsformat right @Body { @Body } # keyword format + named varyingoperatorsformat right @Body { @Body } # operators format + named varyingnumbersformat right @Body { @Body } # number format + named varyingstringsformat right @Body { @Body } # string format + named varyingcommentsformat right @Body { @Body } # comment format + named varyinglinenumbersformat right @Body { @Body } # line nums format + + # the following options apply when style is "symbol" + named symbolfont { } # font family + named symbolsize { 1.0f } # font size + named symbolline { 1.0vx } # line-space + named symboltabin { 8 } # tab interval + named symboltabout { 3f } # tab width + + named symbolidentifiers { Slope } # identifier face + named symbolkeywords { Bold } # keyword face + named symboloperators { Base } # operator face + named symbolnumbers { Base } # number face + named symbolstrings { Slope } # string face + named symbolcomments { Base } # comment face + named symbollinenumbers { Base } # line numbers face + + named symbolidentifiersformat right @Body { @Body } # identifier format + named symbolkeywordsformat right @Body { @Body } # keyword format + named symboloperatorsformat right @Body { @Body } # operators format + named symbolnumbersformat right @Body { @Body } # number format + named symbolstringsformat right @Body { @Body } # string format + named symbolcommentsformat right @Body { @Body } # comment format + named symbollinenumbersformat right @Body { @Body } # line nums format + +@Begin + + export + + @PI @PK @PO @PN @PS @PC @PL @PA @PM @PD + @A "$>" + + def @Blue + named style { style } # style + named numbered { numbered } # want numbered lines? + named pipe { pipe } # pipe through this first + named font { dft } # font family + named size { dft } # font size + named line { dft } # line-space + named tabin { dft } # tab interval + named tabout { dft } # tab width + named identifiers { dft } # ident. font + named keywords { dft } # keyword font + named operators { dft } # operator font + named numbers { dft } # number font + named strings { dft } # string font + named comments { dft } # comment font + named linenumbers { dft } # line numbers font + body @Body # filtered, see below + @Begin + + def @Test # returns x unless x is dft + left x + named iffixed {} + named ifvarying {} + named ifsymbol {} + { + x @Case { + dft @Yield { + style @Case { + fixed @Yield { iffixed } + varying @Yield { ifvarying } + symbol @Yield { ifsymbol } + } + } + else @Yield x + } + } + + + def @Else # returns x, or y if x is dft + left x + right y + { + x @Case { + dft @Yield y + else @Yield x + } + } + + + def @InitTab + { + tabin @Test + iffixed { fixedtabin } + ifvarying { varyingtabin } + ifsymbol { symboltabin } + } + + + def @InitTabWidth + { + tabout @Test + iffixed { fixedtabout } + ifvarying { varyingtabout } + ifsymbol { symboltabout } + } + + + def @Filter + { + def wantnumbered + { + numbered @Case { + { No no } @Yield "" + { Yes yes } @Yield "-L" + else @Yield { "-L"numbered } + } + } + + pipe @Case { + "" @Yield { + "prg2lout -r -lBlue" wantnumbered -i{@FilterIn} + -o{@FilterOut} -e{@FilterErr} + -t{@InitTab} -T{@InitTabWidth} + } + else @Yield { + "cat" @FilterIn "|" pipe "|" + "prg2lout -r -lBlue" wantnumbered -o{@FilterOut} + -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth} + } + } + } + + + def @InitFontFamily + { + font @Test + iffixed { fixedfont } + ifvarying { varyingfont } + ifsymbol { symbolfont } + } + + + def @InitSize + { + size @Test + iffixed { fixedsize } + ifvarying { varyingsize } + ifsymbol { symbolsize } + } + + + def @InitLine + { + line @Test + iffixed { fixedline } + ifvarying { varyingline } + ifsymbol { symbolline } + } + + + def @PI # for formatting identifiers + right x + { + style @Case { + fixed @Yield fixedidentifiersformat { + { identifiers @Else fixedidentifiers } @Font x + } + varying @Yield varyingidentifiersformat { + { identifiers @Else varyingidentifiers } @Font x + } + symbol @Yield symbolidentifiersformat { + { identifiers @Else symbolidentifiers } @Font x + } + } + } + + + def @PK # for formatting keywords + right x + { + style @Case { + fixed @Yield fixedkeywordsformat { + { keywords @Else fixedkeywords } @Font x + } + varying @Yield varyingkeywordsformat { + { keywords @Else varyingkeywords } @Font x + } + symbol @Yield symbolkeywordsformat { + { keywords @Else symbolkeywords } @Font x + } + } + } + + + def @PO # for formatting operators + right x + { + style @Case { + fixed @Yield fixedoperatorsformat { + { operators @Else fixedoperators } @Font x + } + varying @Yield varyingoperatorsformat { + { operators @Else varyingoperators } @Font x + } + symbol @Yield symboloperatorsformat { + { operators @Else symboloperators } @Font x + } + } + } + + + def @PN # for formatting numbers + right x + { + style @Case { + fixed @Yield fixednumbersformat { + { numbers @Else fixednumbers } @Font x + } + varying @Yield varyingnumbersformat { + { numbers @Else varyingnumbers } @Font x + } + symbol @Yield symbolnumbersformat { + { numbers @Else symbolnumbers } @Font x + } + } + } + + + def @PS # for formatting strings + right x + { + style @Case { + fixed @Yield fixedstringsformat { + { strings @Else fixedstrings } @Font x + } + varying @Yield varyingstringsformat { + { strings @Else varyingstrings } @Font x + } + symbol @Yield symbolstringsformat { + { strings @Else symbolstrings } @Font x + } + } + } + + + def @PC # for formatting comments + right x + { + style @Case { + fixed @Yield fixedcommentsformat { + { comments @Else fixedcomments } @Font x + } + varying @Yield varyingcommentsformat { + { comments @Else varyingcomments } @Font x + } + symbol @Yield symbolcommentsformat { + { comments @Else symbolcomments } @Font x + } + } + } + + + def @PL # for formatting line numbers + right x + { + style @Case { + fixed @Yield fixedlinenumbersformat { + { linenumbers @Else fixedlinenumbers } @Font x + } + varying @Yield varyinglinenumbersformat { + { linenumbers @Else varyinglinenumbers } @Font x + } + symbol @Yield symbollinenumbersformat { + { linenumbers @Else symbollinenumbers } @Font x + } + } + } + + + def @PA # for formatting asterisks + { + @PO @BackEnd @Case { + PlainText @Yield "*" + else @Yield { "0.5w" @VShift "*" } + } + } + + + def @PM # for formatting minus signs + { + @PO @BackEnd @Case { + PlainText @Yield "-" + else @Yield style @Case { + fixed @Yield "-" + else @Yield { { Symbol Base } @Font @Char "minus" } + } + } + } + + + def @PD # for formatting dots, if wanted larger + { + @PO @BackEnd @Case { + PlainText @Yield "." + else @Yield { "1.4f" @Font "+0.04f" @VShift "." &"0.05f" } + } + } + + + def @A # get characters from the Adobe Symbol font + left sym + right x + { + style @Case { + symbol @Yield { { Symbol Base } @Font @Char sym } + else @Yield { x } + } + } + + + macro "$>" { {} & } + + + { @InitFontFamily Base @InitSize } @Font + { @InitLine lines nohyphen } @Break @Body + + @End @Blue + +@End @BlueSetup diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/book b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/book new file mode 100755 index 0000000000000..89177be151bd5 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/book @@ -0,0 +1,396 @@ +############################################################################### +# # +# Lout setup file for books # +# # +# Jeffrey H. Kingston # +# 17 September 1999 # +# # +############################################################################### + + +############################################################################### +# # +# @SysInclude commands for standard packages. # +# # +############################################################################### + + @SysInclude { langdefs } # language definitions + @SysInclude { bsf } # BasicSetup package + @SysInclude { dsf } # DocumentSetup package + @SysInclude { bookf } # BookSetup extension + + +############################################################################### +# # +# @Include command for reading personal definitions from current directory. # +# # +############################################################################### + + @Include { mydefs } + +############################################################################### +# # +# The @BasicSetup @Use clause - basics, lists, paragraphs, displays. # +# # +# To change the default value of any option, delete the # at the start of # +# its line and change the value between braces. # +# # +############################################################################### + +@Use { @BasicSetup + # @InitialFont { Times Base 12p } # initial font + # @InitialBreak {{adjust 1.2fx hyphen} @OrIfPlain {ragged 1fx nohyphen}} + # @InitialSpace { lout } # initial space style + # @InitialLanguage { English } # initial language + # @InitialColour { black } # initial colour + # @OptimizePages { No } # optimize page breaks? + # @HeadingFont { Bold } # font for @Heading + # @ParaGap { 1.3vx @OrIfPlain 1f } # gap between paragraphs + # @ParaIndent { 2.00f @OrIfPlain 5s } # first-line indent for @PP + # @DisplayGap { 1.00v @OrIfPlain 1f } # gap above, below displays + # @DisplayIndent { 2.00f @OrIfPlain 5s } # @IndentedDisplay indent + # @DefaultIndent { 0.5rt } # @Display indent + # @DisplayNumStyle { (num) } # style of display numbers + # @WideIndent { 4.00f @OrIfPlain 10s } # @WideTaggedList indent + # @VeryWideIndent { 8.00f @OrIfPlain 20s } # @VeryWideTaggedList indent + # @ListOuterGap { 1.00v @OrIfPlain 1f } # gap before, after lists + # @ListGap { 1.00v @OrIfPlain 1f } # gap between list items + # @ListIndent { 0s } # indent of list items + # @ListRightIndent { 0s } # right indent of list items + # @ListLabelWidth { 2.00f @OrIfPlain 5s } # width allowed for list tags + # @NumberSeparator { . } # separates nums like 2.3.7 + # @CrossLinkFormat { @Body } # format of cross links +} + + +############################################################################### +# # +# The @DocumentSetup @Use clause - page layout plus figures, tables, etc. # +# # +# To change the default value of any option, delete the # at the start of # +# its line and change the value between braces. # +# # +############################################################################### + +@Use { @DocumentSetup + # @PageType { A4 @OrIfPlain Other} # page type (width, height) + # @PageWidth { 80s } # page width if type Other + # @PageHeight { 66f } # page height if type Other + # @PageOrientation { Portrait } # Portrait, Landscape, etc. + # @PageBackground { } # background of each page + # @TopMargin { 2.5c @OrIfPlain 6f } # top margin of all pages + # @FootMargin { 2.5c @OrIfPlain 6f } # bottom margin of all pages + # @OddLeftMargin { 2.5c @OrIfPlain 10s } # left margin of odd pages + # @OddRightMargin { 2.5c @OrIfPlain 10s } # right margin of odd pages + # @EvenLeftMargin { 2.5c @OrIfPlain 10s } # left margin of even pages + # @EvenRightMargin { 2.5c @OrIfPlain 10s } # right margin of even pages + # @OddLeftBodyMargin { 0c } # extra margin for page body + # @OddRightBodyMargin { 0c } # extra margin for page body + # @EvenLeftBodyMargin { 0c } # extra margin for page body + # @EvenRightBodyMargin{ 0c } # extra margin for page body + # @PageBoxType { None } # None Box CurveBox ShadowBox + # @PageBoxMargin { 1.00c } # page box margin + # @PageBoxLineWidth { } # page box line thickness + # @PageBoxPaint { none } # page box paint + # @PageBoxShadow { 0.60c } # shadow margin if ShadowBox + # @PageEnclose { @Body } # enclose every page in this + # @ColumnNumber { 1 } # number of columns (1 to 10) + # @ColumnGap { 1.00c @OrIfPlain 6s } # column gap + # @FigureLocation { PageTop } # default figure location + # @TableLocation { PageTop } # default table location + # @FigureFormat { @CC @Body } # default figure format + # @TableFormat { @CC @Body } # default table format + # @FigureWord { figure } # "Figure" word else anything + # @TableWord { table } # "Table" word else anything + # @FigureNumbers { Arabic } # method of numbering figures + # @TableNumbers { Arabic } # method of numbering tables + # @FigureCaptionPos { Below } # Above or Below + # @TableCaptionPos { Below } # Above or Below + # @FigureCaptionFont { -2p } # figure caption font + # @FigureCaptionBreak { adjust hyphen 1.2fx } # figure caption break + # @FigureCaptionFormat{ {@B { word @NumSep number. &2s }} @Insert caption } + # @TableCaptionFont { -2p } # table caption font + # @TableCaptionBreak { adjust hyphen 1.2fx } # table caption break + # @TableCaptionFormat { {@B { word @NumSep number. &2s }} @Insert caption } + # @MakeFigureContents { No } # list of figures at start + # @MakeTableContents { No } # list of tables at start + # @MakeContents { No } # make contents? Yes or No + @MakeContents { Yes } # make contents? Yes or No + # @ContentsGap { 0.20v @OrIfPlain 0f } # extra gap above minor entry + # @ContentsGapAbove { 0.80v @OrIfPlain 1f } # extra gap above major entry + # @ContentsGapBelow { 0.00v @OrIfPlain 0f } # extra gap below major entry + # @ContentsFont { Bold } # font for major entry + # @ContentsPartGapAbove { 1.00v @OrIfPlain 1f } # extra gap above `part' entry + # @ContentsPartGapBelow { 0.00v @OrIfPlain 0f } # extra gap below `part' entry + # @ContentsFormat { number @DotSep title } # contents entry format + # @ContentsLeader { .. } # leader symbol in contents + # @ContentsLeaderGap { 4s @OrIfPlain 2s } # gap between leaders + # @ContentsRightWidth { 3f @OrIfPlain 6s } # page numbers column width + # @MakeReferences { Yes } # make references? Yes or No + # @RefCiteStyle { [cite] } # citation style + # @RefCiteLabels { @RefNum } # citation items + # @RefNumbers { Arabic } # reference numbers + # @RefListFormat { Labels } # NoLabels, Labels, etc. + # @RefListLabels { [@RefNum] } # ref list label format + # @RefListTitle { references } # title of reference list + # @ChapRefListTitle { references } # title of chapter ref list + # @RefListIndent { 0s } # indent to left of labels + # @RefListRightIndent { 0s } # indent to right of items + # @RefListGap { @ListGap } # gap between ref list items + # @RefListFont { } # font used in reference list + # @RefListBreak { } # break style of ref list + # @RefListLabelWidth { @ListLabelWidth } # Labels column width + # @RefListSortKey { @Tag } # sorting key + # @MakeIndex { No } # make index? Yes or No + @MakeIndex { Yes } # make index? Yes or No + # @IndexFont { } # index entries font + # @IndexBreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # and break + # @IndexColumnNumber { 2 } # index columns (1 to 10) + # @IndexColumnGap { 1.00c @OrIfPlain 6s } # index column gap + # @IndexCtd { Yes } # include (ctd.) lines + # @IndexCtdWord { continued } # "ctd." in current lang. + # @IndexCtdFormat { @Body @I (@CtdWord) } # format of ctd. + # @MakeIndexA { No } # make index A? Yes or No + # @IndexAFont { } # index A entries font + # @IndexABreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # and break + # @IndexAColumnNumber { 2 } # index A columns (1 to 10) + # @IndexAColumnGap { 1.00c @OrIfPlain 6s } # index A column gap + # @IndexACtd { Yes } # include (ctd.) lines + # @IndexACtdWord { continued } # "ctd." in current lang. + # @IndexACtdFormat { @Body @I (@CtdWord) } # format of ctd. + # @MakeIndexB { No } # make index B? Yes or No + # @IndexBFont { } # index B entries font + # @IndexBBreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # and break + # @IndexBColumnNumber { 2 } # index B columns (1 to 10) + # @IndexBColumnGap { 1.00c @OrIfPlain 6s } # index B column gap + # @IndexBCtd { Yes } # include (ctd.) lines + # @IndexBCtdWord { continued } # "ctd." in current lang. + # @IndexBCtdFormat { @Body @I (@CtdWord) } # format of ctd. + # @TopGap { 0.75c @OrIfPlain 2f } # gap between figures + # @MidGap { 0.75c @OrIfPlain 2f } # gap above/below body text + # @FootNoteNumbers { Arabic } # footnote numbers + # @FootNoteThrough { No } # numbered through chapter? + # @FootNoteLocation { ColFoot } # where the footnote appears + # @FootNoteFont { 0.80f } # font for footnotes + # @FootNoteBreak { 1.2fx @OrIfPlain 1fx } # break for footnotes + # @FootNoteFormat { { number &0.05f } @Insert body } # footnote format + # @FootLen { 2.00c @OrIfPlain 10s } # length of footnote line + # @FootAboveGap { @DisplayGap } # gap above footnote line + # @FootGap { 0.20c @OrIfPlain 1fx } # gap between footnotes + # @MarginNoteFont { 0.80f } # font of margin notes + # @MarginNoteBreak { ragged 1.10fx } # break style of margin notes + # @MarginNoteHGap { 0.5c } # horizontal gap to notes + # @MarginNoteVGap { @DisplayGap } # min vertical gap between + # @MarginNoteWidth { 1.50c } # width of margin notes + # @EndNoteNumbers { Arabic } # endnote numbers + # @EndNoteFont { 0.80f } # font of endnotes + # @EndNoteBreak { 1.2fx @OrIfPlain 1fx } # break for endnotes + # @EndNoteFormat { { number &0.05f } @Insert body } # endnote format + # @EndNoteGap { 0.20c @OrIfPlain 1f } # gap between endnotes + # @TheoremWord { theorem } # "Theorem" word, etc. + # @TheoremTitleFormat { (title) } # only if title present + # @TheoremFormat { {@B { word @NumSep number title: } &2s} @Insert body } + # @DefinitionWord { definition } # "Definition" word, etc. + # @DefinitionTitleFormat { (title) } # only if title present + # @DefinitionFormat { {@B { word @NumSep number title: } &2s} @Insert body } + # @ClaimWord { claim } # "Claim" word, etc. + # @ClaimTitleFormat { (title) } # only if title present + # @ClaimFormat { {@B { word @NumSep number title: } &2s} @Insert body } + # @PropositionWord { proposition } # "Proposition" word, etc. + # @PropositionTitleFormat { (title) } # only if title present + # @PropositionFormat { {@B { word @NumSep number title: } &2s} @Insert body } + # @LemmaWord { lemma } # "Lemma" word, etc. + # @LemmaTitleFormat { (title) } # only if title present + # @LemmaFormat { {@B { word @NumSep number title: } &2s} @Insert body } + # @CorollaryWord { corollary } # "Corollary" word, etc. + # @CorollaryTitleFormat { (title) } # only if title present + # @CorollaryFormat { {@B { word @NumSep number title: } &2s} @Insert body } + # @ExampleWord { example } # "Example" word, etc. + # @ExampleTitleFormat { (title) } # only if title present + # @ExampleFormat { {@B { word @NumSep number title: } &2s} @Insert body } + # @ProofWord { proof } # "Proof" word, etc. + # @PageHeaders { Simple } # None Simple Titles NoTitles + @PageHeaders { Titles } # None Simple Titles NoTitles + # @PageNumbers { Arabic } # page numbers + # @FirstPageNumber { 1 } # number of first page + # @IntroPageNumbers { Roman } # intro page numbers + # @IntroFirstPageNumber{ 1 } # number of first intro page + # @StructPageNums { No } # make structured page numbers + + # @OddTop { @Centre{- @PageNum -} } # Simple page headers + # @OddFoot { @Null } + # @EvenTop { @Centre{- @PageNum -} } + # @EvenFoot { @Null } + # @StartOddTop { @Null } + # @StartOddFoot { @Null } + # @StartEvenTop { @Null } + # @StartEvenFoot { @Null } + # @IntroOddTop { @Null } + # @IntroOddFoot { @Centre @PageNum } + # @IntroEvenTop { @Null } + # @IntroEvenFoot { @Centre @PageNum } + # @IntroStartOddTop { @Null } + # @IntroStartOddFoot { @Null } + # @IntroStartEvenTop { @Null } + # @IntroStartEvenFoot { @Null } + + # Titles, NoTitles headers + # @RunningOddTop { @I {@MinorNum @DotSep @MinorTitle} @Right @B @PageNum } + # @RunningOddFoot { @Null } + # @RunningEvenTop { @B @PageNum @Right @I {@MajorNum @DotSep @MajorTitle} } + # @RunningEvenFoot { @Null } + # @RunningStartOddTop { @Null } + # @RunningStartOddFoot { @Centre { Bold 0.8f } @Font @PageNum } + # @RunningStartEvenTop { @Null } + # @RunningStartEvenFoot { @Centre { Bold 0.8f } @Font @PageNum } + # @RunningIntroOddTop { @Null } + # @RunningIntroOddFoot { @Right @PageNum } + # @RunningIntroEvenTop { @Null } + # @RunningIntroEvenFoot { @PageNum } + # @RunningIntroStartOddTop { @Null } + # @RunningIntroStartOddFoot { @Null } + # @RunningIntroStartEvenTop { @Null } + # @RunningIntroStartEvenFoot { @Null } +} + + +############################################################################### +# # +# The @BookSetup @Use clause - options specific to books. # +# # +############################################################################### + +@Use { @BookSetup + # @TitlePageFont { Helvetica Base} # title page font (not size) + # @SeparateIntroNumbering { Yes } # separate intro page numbers + # @PrefaceAfterContents { No } # Yes or No + # @ChapterStartPages { Any } # Any, Odd, Even, SamePage + # @ReferencesBeforeAppendices { No } # references before appendices + # @PrefaceWord { preface } # word for "Preface" + # @ContentsWord { contents } # word for "Contents" + # @FigureListWord { figurelist } # word for "List of Figures" + # @TableListWord { tablelist } # word for "List of Tables" + # @IntroductionWord { introduction } # word for "Introduction" + # @AbbreviationsWord { abbreviations } # word for "Abbreviations" + # @ChapterWord { chapter } # word for "Chapter" + # @AppendixWord { appendix } # word for "Appendix" + # @IndexWord { index } # word for "Index" + # @IndexAWord { index } # word for "Index" (A) + # @IndexBWord { index } # word for "Index" (B) + # @ChapterNumbers { Arabic } # kind of chapter numbers + # @FirstChapterNumber { 1 } # first chapter number (Arabic) + # @SectionNumbers { Arabic } # kind of section numbers + # @FirstSectionNumber { 1 } # first section number (Arabic) + # @SubSectionNumbers { Arabic } # kind of subsection numbers + # @FirstSubSectionNumber { 1 } # first subsect number (Arabic) + # @SubSubSectionNumbers { Arabic } # kind of sub-subs. numbers + # @FirstSubSubSectionNumber { 1 } # first sub-sub number (Arabic) + # @AppendixNumbers { UCAlpha } # kind of appendix numbers + # @FirstAppendixNumber { 1 } # first appendix num (Arabic) + # @SubAppendixNumbers { Arabic } # kind of subappendix numbers + # @FirstSubAppendixNumber { 1 } # first sub-app num (Arabic) + # @SubSubAppendixNumbers { Arabic } # kind of sub-subapp. numbers + # @FirstSubSubAppendixNumber { 1 } # first sub-sub num (Arabic) + # @PartHeadingFont { Helvetica Base 2.50f } # part head font + # @PartHeadingBreak { clines 1.2fx nohyphen } # part head break + # @PartHeadingFormat { @CD number @DP @CD title } # part head format + # @ChapterHeadingFont { Bold 2.00f } # chapter head font + # @ChapterHeadingBreak { ragged 1.2fx nohyphen } # chapter head break + # @ChapterHeadingFormat { number @DotSep title } # format of chap. head + # @SectionHeadingFont { Bold } # section head font + # @SectionHeadingBreak { ragged 1.2fx nohyphen } # section head break + # @SectionHeadingFormat { number @DotSep title } # section head fmt + # @SubSectionHeadingFont { Bold } # subs. head font + # @SubSectionHeadingBreak { ragged 1.2fx nohyphen } # subs. head break + # @SubSectionHeadingFormat { number @DotSep title } # subs. head fmt + # @SubSubSectionHeadingFont { Slope } # sub-subs. head font + # @SubSubSectionHeadingBreak { ragged 1.2fx nohyphen } # sub-subs. head break + # @SubSubSectionHeadingFormat { number @DotSep title } # sub-subs. head fmt + # @AppendixHeadingFont { Bold 2.00f } # appendix head font + # @AppendixHeadingBreak { ragged 1.2fx nohyphen } # appendix head break + # @AppendixHeadingFormat { number @DotSep title } # appendix head fmt + # @SubAppendixHeadingFont { Bold } # subapp. head font + # @SubAppendixHeadingBreak { ragged 1.2fx nohyphen } # subapp. head break + # @SubAppendixHeadingFormat { number @DotSep title } # subapp. head fmt + # @SubSubAppendixHeadingFont { Slope } # sub-suba. head font + # @SubSubAppendixHeadingBreak { ragged 1.2fx nohyphen } # sub-suba. head break + # @SubSubAppendixHeadingFormat{ number @DotSep title } # sub-suba. head fmt + # @AbovePartGap { 4.00f } # gap above part title + # @AboveChapterGap { 3.00f } # above major titles + # @SectionGap { 2.0v @OrIfPlain 3f } # between sections + # @SubSectionGap { 1.5v @OrIfPlain 2f } # between subsects + # @SubSubSectionGap { 1.5v @OrIfPlain 2f } # between sub-subs. + # @SubAppendixGap { 2.0v @OrIfPlain 3f } # between subappendices + # @SubSubAppendixGap { 1.5v @OrIfPlain 2f } # between sub-subapps + # @PrefaceInContents { Yes } # add preface to contents + # @AbbreviationsInContents { Yes } # add abbreviations to contents + # @IntroductionInContents { Yes } # add introduction to contents + # @PartInContents { Yes } # add parts to contents + # @ChapterInContents { Yes } # add chapters to contents + # @SectionInContents { Yes } # add sections to contents + # @SubSectionInContents { Yes } # add subsections to contents + # @SubSubSectionInContents { No } # add sub-subsects to contents + # @AppendixInContents { Yes } # add appendices to contents + # @SubAppendixInContents { Yes } # add subappendices to contents + # @SubSubAppendixInContents { No } # add sub-subapps to contents + # @ReferencesInContents { Yes } # add ref. section to contents + # @IndexInContents { Yes } # add index to contents + # @IndexAInContents { Yes } # add index A to contents + # @IndexBInContents { Yes } # add index B to contents + # @PartContentsIndent { 0.5rt } # indent of part contents entry + # @ChapterNumInTheorems { Yes } # theorem num has chapter num + # @SectionNumInTheorems { No } # theorem num has section num + # @SubSectionNumInTheorems { No } # theorem num has subsect num + # @SubSubSectionNumInTheorems { No } # theorem num has sub-ss. num + # @AppendixNumInTheorems { Yes } # theorem num has appendix num + # @SubAppendixNumInTheorems { No } # theorem num has sub-app num + # @SubSubAppendixNumInTheorems{ No } # theorem num has sub-sa. num + # @ChapterNumInDisplays { Yes } # display num has chapter num + # @SectionNumInDisplays { Yes } # display num has section num + # @SubSectionNumInDisplays { No } # display num has subsect num + # @SubSubSectionNumInDisplays { No } # display num has sub-ss. num + # @AppendixNumInDisplays { Yes } # display num has appendix num + # @SubAppendixNumInDisplays { Yes } # display num has sub-app num + # @SubSubAppendixNumInDisplays{ No } # display num has sub-sa. num + # @ChapterNumInFigures { Yes } # figure num has chapter num + # @SectionNumInFigures { No } # figure num has section num + # @SubSectionNumInFigures { No } # figure num has subsect num + # @SubSubSectionNumInFigures { No } # figure num has sub-ss. num + # @AppendixNumInFigures { Yes } # figure num has appendix num + # @SubAppendixNumInFigures { No } # figure num has sub-app num + # @SubSubAppendixNumInFigures { No } # figure num has sub-sa. num + # @ChapterNumInTables { Yes } # table num has chapter num + # @SectionNumInTables { No } # table num has section num + # @SubSectionNumInTables { No } # table num has subsect num + # @SubSubSectionNumInTables { No } # table num has sub-ss. num + # @AppendixNumInTables { Yes } # table num has appendix num + # @SubAppendixNumInTables { No } # table num has sub-app num + # @SubSubAppendixNumInTables { No } # table num has sub-sa. num + # @SectionNumInRunners { Yes } # runners have section num + # @SubSectionNumInRunners { No } # runners have subsect num + # @SubSubSectionNumInRunners { No } # runners have sub-ss. num + # @SubAppendixNumInRunners { Yes } # runners have sub-app num + # @SubSubAppendixNumInRunners { No } # runners have sub-sa. num + # @PrefacePrefix { } # for structured page nums + # @ContentsPrefix { } # for structured page nums + # @FigureContentsPrefix { } # for structured page nums + # @TableContentsPrefix { } # for structured page nums + # @AbbreviationsPrefix { } # for structured page nums + # @IntroductionPrefix { } # for structured page nums + # @ChapterPrefix { } # for structured page nums + # @AppendixPrefix { } # for structured page nums + # @ReferencesPrefix { } # for structured page nums + # @IndexPrefix { } # for structured page nums + # @IndexAPrefix { } # for structured page nums + # @IndexBPrefix { } # for structured page nums +} + + +############################################################################### +# # +# @Database (and @SysDatabase) clauses go here. # +# # +############################################################################### + +@SysDatabase @FontDef { fontdefs } # font definitions +@SysDatabase @RefStyle { refstyle } # reference printing styles diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/bookf b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/bookf new file mode 100755 index 0000000000000..70cf313048984 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/bookf @@ -0,0 +1,1268 @@ + +########################################################################### +# # +# @BookSetup extension to @DocumentSetup. # +# # +# Jeffrey H. Kingston # +# 17 September 1999 # +# # +# This package extends DocumentSetup with definitions for books. # +# # +########################################################################### + +extend @BasicSetup @DocumentSetup +export @Book @Preface @Abbreviations @Introduction @Chapter @Appendix +def @BookSetup + named @TitlePageFont { Helvetica Base } + named @SeparateIntroNumbering { Yes } + named @PrefaceAfterContents { No } + named @ChapterStartPages { Any } + named @ReferencesBeforeAppendices { No } + + named @PrefaceWord { preface } + named @ContentsWord { contents } + named @FigureListWord { figurelist } + named @TableListWord { tablelist } + named @IntroductionWord { introduction } + named @AbbreviationsWord { abbreviations } + named @ChapterWord { chapter } + named @AppendixWord { appendix } + named @IndexWord { index } + named @IndexAWord { index } + named @IndexBWord { index } + + named @ChapterNumbers { Arabic } + named @FirstChapterNumber { 1 } + named @SectionNumbers { Arabic } + named @FirstSectionNumber { 1 } + named @SubSectionNumbers { Arabic } + named @FirstSubSectionNumber { 1 } + named @SubSubSectionNumbers { Arabic } + named @FirstSubSubSectionNumber { 1 } + named @AppendixNumbers { UCAlpha } + named @FirstAppendixNumber { 1 } + named @SubAppendixNumbers { Arabic } + named @FirstSubAppendixNumber { 1 } + named @SubSubAppendixNumbers { Arabic } + named @FirstSubSubAppendixNumber { 1 } + + named @PartHeadingFont { Helvetica Base 2.50f } + named @PartHeadingBreak { clines 1.2fx nohyphen } + named @PartHeadingFormat + left number right title { @CD number @DP @CD title } + + named @ChapterHeadingFont { Bold 2.00f } + named @ChapterHeadingBreak { ragged 1.2fx nohyphen } + named @ChapterHeadingFormat + left number right title { number @DotSep title } + + named @SectionHeadingFont { Bold } + named @SectionHeadingBreak { ragged 1.2fx nohyphen } + named @SectionHeadingFormat + left number right title { number @DotSep title } + + named @SubSectionHeadingFont { Bold } + named @SubSectionHeadingBreak { ragged 1.2fx nohyphen } + named @SubSectionHeadingFormat + left number right title { number @DotSep title } + + named @SubSubSectionHeadingFont { Slope } + named @SubSubSectionHeadingBreak { ragged 1.2fx nohyphen } + named @SubSubSectionHeadingFormat + left number right title { number @DotSep title } + + named @AppendixHeadingFont { Bold 2.00f } + named @AppendixHeadingBreak { ragged 1.2fx nohyphen } + named @AppendixHeadingFormat + left number right title { number @DotSep title } + + named @SubAppendixHeadingFont { Bold } + named @SubAppendixHeadingBreak { ragged 1.2fx nohyphen } + named @SubAppendixHeadingFormat + left number right title { number @DotSep title } + + named @SubSubAppendixHeadingFont { Slope } + named @SubSubAppendixHeadingBreak { ragged 1.2fx nohyphen } + named @SubSubAppendixHeadingFormat + left number right title { number @DotSep title } + + named @AbovePartGap { 4.00f } + named @AboveChapterGap { 3.00f } + named @SectionGap { 2.0v @OrIfPlain 3f } + named @SubSectionGap { 1.5v @OrIfPlain 2f } + named @SubSubSectionGap { 1.5v @OrIfPlain 2f } + named @SubAppendixGap { 2.0v @OrIfPlain 3f } + named @SubSubAppendixGap { 1.5v @OrIfPlain 2f } + + named @PrefaceInContents { Yes } + named @AbbreviationsInContents { Yes } + named @IntroductionInContents { Yes } + named @PartInContents { Yes } + named @ChapterInContents { Yes } + named @SectionInContents { Yes } + named @SubSectionInContents { Yes } + named @SubSubSectionInContents { No } + named @AppendixInContents { Yes } + named @SubAppendixInContents { Yes } + named @SubSubAppendixInContents { No } + named @ReferencesInContents { Yes } + named @IndexInContents { Yes } + named @IndexAInContents { Yes } + named @IndexBInContents { Yes } + named @PartContentsIndent { 0.5rt } + + named @ChapterNumInTheorems { Yes } + named @SectionNumInTheorems { No } + named @SubSectionNumInTheorems { No } + named @SubSubSectionNumInTheorems { No } + named @AppendixNumInTheorems { Yes } + named @SubAppendixNumInTheorems { No } + named @SubSubAppendixNumInTheorems { No } + + named @ChapterNumInDisplays { Yes } + named @SectionNumInDisplays { Yes } + named @SubSectionNumInDisplays { No } + named @SubSubSectionNumInDisplays { No } + named @AppendixNumInDisplays { Yes } + named @SubAppendixNumInDisplays { Yes } + named @SubSubAppendixNumInDisplays { No } + + named @ChapterNumInFigures { Yes } + named @SectionNumInFigures { No } + named @SubSectionNumInFigures { No } + named @SubSubSectionNumInFigures { No } + named @AppendixNumInFigures { Yes } + named @SubAppendixNumInFigures { No } + named @SubSubAppendixNumInFigures { No } + + named @ChapterNumInTables { Yes } + named @SectionNumInTables { No } + named @SubSectionNumInTables { No } + named @SubSubSectionNumInTables { No } + named @AppendixNumInTables { Yes } + named @SubAppendixNumInTables { No } + named @SubSubAppendixNumInTables { No } + + named @SectionNumInRunners { Yes } + named @SubSectionNumInRunners { No } + named @SubSubSectionNumInRunners { No } + named @SubAppendixNumInRunners { Yes } + named @SubSubAppendixNumInRunners { No } + + named @PrefacePrefix { } + named @ContentsPrefix { } + named @FigureContentsPrefix { } + named @TableContentsPrefix { } + named @AbbreviationsPrefix { } + named @IntroductionPrefix { } + named @ChapterPrefix { } + named @AppendixPrefix { } + named @ReferencesPrefix { } + named @IndexPrefix { } + named @IndexAPrefix { } + named @IndexBPrefix { } + +@Begin + + ####################################################################### + # # + # Lists of chapters, sections, sub(-sub)sections, and appendices. # + # # + ####################################################################### + + export num + def @ChapterList named @Tag {} right num + { + @Galley + // @ChapterList @Next num + } + + export num + def @SectionList named @Tag {} right num + { + @Galley + //@SectionGap @SectionList @Next num + } + + export num + def @SubSectionList named @Tag {} right num + { + @Galley + //@SubSectionGap @SubSectionList @Next num + } + + export num + def @SubSubSectionList named @Tag {} right num + { + @Galley + //@SubSubSectionGap @SubSubSectionList @Next num + } + + export num + def @AppendixList named @Tag {} right num + { + @Galley + // @AppendixList @Next num + } + + export num + def @SubAppendixList named @Tag {} right num + { + @Galley + //@SubAppendixGap @SubAppendixList @Next num + } + + export num + def @SubSubAppendixList named @Tag {} right num + { + @Galley + //@SubSubAppendixGap @SubSubAppendixList @Next num + } + + def @PrefacePlace { @Galley } + def @AbbreviationsPlace { @Galley } + def @IntroductionPlace { @Galley } + + + ####################################################################### + # # + # @Full - this sends text to a full-width place on a new page, even # + # if @ChapterStartPages is SamePage. # + # # + ####################################################################### + + def @Full right x + { + def @Any force into { @FullPlace&&following } right x { x } + def @Odd force into { @OddFullPlace&&following } right x { x } + def @Even force into { @EvenFullPlace&&following } right x { x } + + @ChapterStartPages @Case { + { Any SamePage } @Yield @Any x + Odd @Yield @Odd x + Even @Yield @Even x + } + } + + + ####################################################################### + # # + # @ChapterFull - this sends text to a full-width place on a new # + # page, unless @ChapterStartPages is SamePage, in which case it # + # doesn't send the text anywhere. # + # # + ####################################################################### + + def @ChapterFull right x + { + def @Any force into { @FullPlace&&following } right x { x } + def @Odd force into { @OddFullPlace&&following } right x { x } + def @Even force into { @EvenFullPlace&&following } right x { x } + + @ChapterStartPages @Case { + Any @Yield @Any x + Odd @Yield @Odd x + Even @Yield @Even x + SamePage @Yield x + } + } + + + ####################################################################### + # # + # @IntroFull - this sends text to a full-width intro place. # + # # + ####################################################################### + + def @IntroFull right x + { + def @Any force into { @IntroFullPlace&&following } right x { x } + def @Odd force into { @IntroOddFullPlace&&following } right x { x } + def @Even force into { @IntroEvenFullPlace&&following } right x { x } + + @ChapterStartPages @Case { + { Any SamePage } @Yield @Any x + Odd @Yield @Odd x + Even @Yield @Even x + } + } + + + ####################################################################### + # # + # @ChooseFull - this sends either to introfull or ordinary full # + # # + ####################################################################### + + def @ChooseFull right x + { + @SeparateIntroNumbering @Case { + No @Yield @Full x + Yes @Yield @IntroFull x + } + } + + + ####################################################################### + # # + # Book. # + # # + ####################################################################### + + def @Book + named @Tag {} + named @Title {} + named @Author {} + named @Edition {} + named @Publisher {} + named @BeforeTitlePage {} + named @OnTitlePage {} + named @AfterTitlePage {} + named @AtEnd { dft } + named @AtAfter { dft } + named @InitialFont { @InitialFont } + named @InitialBreak { @InitialBreak } + named @InitialSpace { @InitialSpace } + named @InitialLanguage { @InitialLanguage } + named @PageOrientation { @PageOrientation } + named @PageHeaders { @PageHeaders } + named @ColumnNumber { @ColumnNumber } + named @FirstPageNumber { @FirstPageNumber } + named @IntroFirstPageNumber { @IntroFirstPageNumber } + named @OptimizePages { @OptimizePages } + { + def @Before + { + @BeforeTitlePage @Case { + "" @Yield @Null + else @Yield @BeforeTitlePage + } + } + + def @On + { + @OnTitlePage @Case { + "" @Yield { + //1i |0.5rt 2.5f @Font {1.2fx clines} @Break @Title | + //2i |0.5rt clines @Break @Author | + //1i |0.5rt clines @Break @Edition | + //1rt @OneRow @Publisher + } + else @Yield @OnTitlePage + } + } + + def @After + { + @AfterTitlePage @Case { + "" @Yield @Null + else @Yield { @AfterTitlePage // None @Runner } + } + } + + def @ContentsPart + named @Tag {} + { + + @LargeScaleStructure + tag { @Tag } + type { ExtraMajorIntro } + initiallanguage { @InitialLanguage } + title { contents @WordVal @ContentsWord } + aboveheadinggap { @AboveChapterGap } + headingfont { @ChapterHeadingFont } + headingbreak { @ChapterHeadingBreak } + headingformat { @Num @ChapterHeadingFormat @Body } + incontents { No } + pnprefix { @ContentsPrefix } + inrunners { Yes } + majortitle { contents @WordVal @ContentsWord } + sendheader { @ChooseFull @Body } + innergap { @SectionGap } + @ContentsSection + } + + def @FigureContentsPart + named @Tag {} + { + @LargeScaleStructure + tag { @Tag } + type { ExtraMajorIntro } + initiallanguage { @InitialLanguage } + title { figurelist @WordVal @FigureListWord } + aboveheadinggap { @AboveChapterGap } + headingfont { @ChapterHeadingFont } + headingbreak { @ChapterHeadingBreak } + headingformat { @Num @ChapterHeadingFormat @Body } + incontents { No } + pnprefix { @FigureContentsPrefix } + inrunners { Yes } + majortitle { figurelist @WordVal @FigureListWord } + sendheader { @ChooseFull @Body } + innergap { @SectionGap } + @FigureContentsSection + } + + def @TableContentsPart + named @Tag {} + { + @LargeScaleStructure + tag { @Tag } + type { ExtraMajorIntro } + initiallanguage { @InitialLanguage } + title { tablelist @WordVal @TableListWord } + aboveheadinggap { @AboveChapterGap } + headingfont { @ChapterHeadingFont } + headingbreak { @ChapterHeadingBreak } + headingformat { @Num @ChapterHeadingFormat @Body } + incontents { No } + pnprefix { @TableContentsPrefix } + inrunners { Yes } + majortitle { tablelist @WordVal @TableListWord } + sendheader { @ChooseFull @Body } + innergap { @SectionGap } + @TableContentsSection + } + + def @ReferencesPart + named @Tag {} + { + @LargeScaleStructure + tag { @Tag } + type { ExtraMajor } + initiallanguage { @InitialLanguage } + title { @RefHeading @RefListTitle } + majortitle { @RefHeading @RefListTitle } + aboveheadinggap { @AboveChapterGap } + headingfont { @ChapterHeadingFont } + headingbreak { @ChapterHeadingBreak } + headingformat { @Num @ChapterHeadingFormat @Body } + incontents { @ReferencesInContents } + pnprefix { @ReferencesPrefix } + inrunners { Yes } + sendheader { @ChapterFull @Body } + innergap { @SectionGap } + @ReferencesSection + + } + + def @IndexPart + named @Tag {} + { + def @Run + { + NonStart @Runner + @MajorNum {} + @MajorTitle { index @WordVal @IndexWord } + @MinorNum {} + @MinorTitle { index @WordVal @IndexWord } + @Owner { @Tag } + @Prefix { @IndexPrefix } + } + + @LargeScaleStructure + tag { @Tag } + type { Major } + initiallanguage { @InitialLanguage } + title { index @WordVal @IndexWord } + aboveheadinggap { @AboveChapterGap } + headingfont { @ChapterHeadingFont } + headingbreak { @ChapterHeadingBreak } + headingformat { @Num @ChapterHeadingFormat @Body } + incontents { @IndexInContents } + pnprefix { @IndexPrefix } + inrunners { Yes } + sendheader { @Full @Body } + innergap { @SectionGap } + wantindefinite { Yes } + @IndexSection @Run + } + + def @IndexAPart + named @Tag {} + { + def @RunA + { + NonStart @Runner + @MajorNum {} + @MajorTitle { index @WordVal @IndexAWord } + @MinorNum {} + @MinorTitle { index @WordVal @IndexAWord } + @Owner { @Tag } + @Prefix { @IndexAPrefix } + } + + @LargeScaleStructure + tag { @Tag } + type { Major } + initiallanguage { @InitialLanguage } + title { index @WordVal @IndexAWord } + aboveheadinggap { @AboveChapterGap } + headingfont { @ChapterHeadingFont } + headingbreak { @ChapterHeadingBreak } + headingformat { @Num @ChapterHeadingFormat @Body } + incontents { @IndexAInContents } + pnprefix { @IndexAPrefix } + inrunners { Yes } + sendheader { @Full @Body } + innergap { @SectionGap } + wantindefinite { Yes } + @IndexASection @RunA + } + + def @IndexBPart + named @Tag {} + { + def @RunB + { + NonStart @Runner + @MajorNum {} + @MajorTitle { index @WordVal @IndexBWord } + @MinorNum {} + @MinorTitle { index @WordVal @IndexBWord } + @Owner { @Tag } + @Prefix { @IndexBPrefix } + } + + @LargeScaleStructure + tag { @Tag } + type { Major } + initiallanguage { @InitialLanguage } + title { index @WordVal @IndexBWord } + aboveheadinggap { @AboveChapterGap } + headingfont { @ChapterHeadingFont } + headingbreak { @ChapterHeadingBreak } + headingformat { @Num @ChapterHeadingFormat @Body } + incontents { @IndexBInContents } + pnprefix { @IndexBPrefix } + inrunners { Yes } + sendheader { @Full @Body } + innergap { @SectionGap } + wantindefinite { Yes } + @IndexBSection @RunB + } + + def @BookIntro force into { @IntroColPlace&&preceding } + named @Optimize { @OptimizePages } + { + @NoLinkPageMark @Tag + // @Before + //1.1b @TitlePageFont @Font @On + //1.1b @After + // Start @Runner @Owner { @Tag } + //1.1b @PrefaceAfterContents @NoDo @PrefacePlace + // @MakeContents @Case { + { Yes Bypass } @Yield @ContentsPart + else @Yield @Null + } + // @MakeFigureContents @Case { + { Yes Bypass } @Yield @FigureContentsPart + else @Yield @Null + } + // @MakeTableContents @Case { + { Yes Bypass } @Yield @TableContentsPart + else @Yield @Null + } + //1.1b @PrefaceAfterContents @Do @PrefacePlace + } + + def @BookBody force into { @ColPlace&&preceding } + named @Optimize { @OptimizePages } + { + # The first component of @BookBody must be indefinite, so that + # its flushing is delayed until we reach the body galleys, either + # @Introduction or @Chapter. If not, @BookBody will free up + # @PrefacePlace etc. too soon, producing a "no @PrefacePlace + # precedes this @PrefacePLace&&preceding" error message. + + @AbbreviationsPlace + // @IntroductionPlace + // @ChapterList @FirstChapterNumber + // @ReferencesBeforeAppendices @Do { + @MakeReferences @Do @ReferencesPart + } + // @AppendixList @FirstAppendixNumber + // @ReferencesBeforeAppendices @NoDo { + @MakeReferences @Do @ReferencesPart + } + // @MakeIndexA @Do @IndexAPart + // @MakeIndexA @Case { + Bypass @Yield @BypassBeginIndexAPlace + else @Yield @Null + } + // @MakeIndexB @Do @IndexBPart + // @MakeIndexB @Case { + Bypass @Yield @BypassBeginIndexBPlace + else @Yield @Null + } + // @MakeIndex @Do @IndexPart + // @MakeIndex @Case { + Bypass @Yield @BypassBeginIndexPlace + else @Yield @Null + } + } + + def @BookCombined force into { @ColPlace&&preceding } + named @Optimize { @OptimizePages } + { + @NoLinkPageMark @Tag + // @Before + //1.1b @TitlePageFont @Font @On + //1.1b @After + // Start @Runner @Owner { @Tag } + //1.1b @PrefaceAfterContents @NoDo @PrefacePlace + // @MakeContents @Case { + { Yes Bypass } @Yield @ContentsPart + else @Yield @Null + } + // @MakeFigureContents @Case { + { Yes Bypass } @Yield @FigureContentsPart + else @Yield @Null + } + // @MakeTableContents @Case { + { Yes Bypass } @Yield @TableContentsPart + else @Yield @Null + } + //1.1b @PrefaceAfterContents @Do @PrefacePlace + // @AbbreviationsPlace + // @IntroductionPlace + // @ChapterList @FirstChapterNumber + // @ReferencesBeforeAppendices @Do { + @MakeReferences @Do @ReferencesPart + } + // @AppendixList @FirstAppendixNumber + // @ReferencesBeforeAppendices @NoDo { + @MakeReferences @Do @ReferencesPart + } + // @MakeIndexA @Do @IndexAPart + // @MakeIndexA @Case { + Bypass @Yield @BypassBeginIndexAPlace + else @Yield @Null + } + // @MakeIndexB @Do @IndexBPart + // @MakeIndexB @Case { + Bypass @Yield @BypassBeginIndexBPlace + else @Yield @Null + } + // @MakeIndex @Do @IndexPart + // @MakeIndex @Case { + Bypass @Yield @BypassBeginIndexPlace + else @Yield @Null + } + } + + @InitialFont @Font @InitialBreak @Break @InitialLanguage @Language + @InitialSpace @Space { @ColourCommand @InitialColour } @SetColour + { + + @SeparateIntroNumbering @Case { + + No @Yield { + Yes @BeginAllCounters {} + Yes @BeginDisplayCounter {} + Yes @BeginFigureCounter {} + Yes @BeginTableCounter {} + // @PageList + @ColumnNumber { @ColumnNumber } + @PageHeaders { @PageHeaders } + @Orient { @PageOrientation } + @FirstPageNumber + // @BookCombined + // NonStart @Runner @Owner { @Tag } + // @AtEnd @Case { + dft @Yield @Null + else @Yield + @EvenPage @Orient { @PageOrientation } @AtEnd + } + } + + Yes @Yield { + Yes @BeginAllCounters {} + Yes @BeginDisplayCounter {} + Yes @BeginFigureCounter {} + Yes @BeginTableCounter {} + // @IntroPageList + @ColumnNumber { 1 } + @PageHeaders { @PageHeaders } + @Orient { @PageOrientation } + @IntroFirstPageNumber + # // NonStart @Runner @Owner { @Tag } + // None @Runner @Owner { @Tag } + // @PageList + @ColumnNumber { @ColumnNumber } + @PageHeaders { @PageHeaders } + @Orient { @PageOrientation } + extra { Yes } + @FirstPageNumber + // @BookIntro + // @BookBody + // NonStart @Runner @Owner { @Tag } + // @AtEnd @Case { + dft @Yield @Null + else @Yield + @EvenPage @Orient { @PageOrientation } @AtEnd + } + } + } + } + } + + + ####################################################################### + # # + # Preface. # + # # + ####################################################################### + + def @Preface force into { @PrefacePlace&&preceding } + named @Tag {} + named @Title { preface @WordVal @PrefaceWord } + named @RunningTitle { dft } + named @InitialLanguage {} + body @Body + { + + @LargeScaleStructure + tag { @Tag } + type { ExtraMajorIntro } + initiallanguage { @InitialLanguage } + title { @Title } + runningtitle { @RunningTitle } + aboveheadinggap { @AboveChapterGap } + headingfont { @ChapterHeadingFont } + headingbreak { @ChapterHeadingBreak } + headingformat { @Num @ChapterHeadingFormat @Body } + incontents { @PrefaceInContents } + pnprefix { @PrefacePrefix } + sendheader { @ChooseFull @Body } + innergap { @SectionGap } + inrunners { Yes } + @Body + + } + + + ####################################################################### + # # + # Abbreviations. # + # # + ####################################################################### + + def @Abbreviations force into { @AbbreviationsPlace&&preceding } + named @Tag {} + named @Title { abbreviations @WordVal @AbbreviationsWord } + named @RunningTitle { dft } + named @InitialLanguage {} + body @Body + { + + @LargeScaleStructure + tag { @Tag } + type { Major } + initiallanguage { @InitialLanguage } + title { @Title } + runningtitle { @RunningTitle } + aboveheadinggap { @AboveChapterGap } + headingfont { @ChapterHeadingFont } + headingbreak { @ChapterHeadingBreak } + headingformat { @Num @ChapterHeadingFormat @Body } + incontents { @AbbreviationsInContents } + pnprefix { @AbbreviationsPrefix } + sendheader { @Full @Body } + innergap { @SectionGap } + inrunners { Yes } + @Body + + } + + + ####################################################################### + # # + # Introduction. # + # # + ####################################################################### + + def @Introduction force into { @IntroductionPlace&&preceding } + named @Tag {} + named @Title { introduction @WordVal @IntroductionWord } + named @RunningTitle { dft } + named @InitialLanguage {} + body @Body + { + + @LargeScaleStructure + tag { @Tag } + type { Major } + initiallanguage { @InitialLanguage } + title { @Title } + runningtitle { @RunningTitle } + aboveheadinggap { @AboveChapterGap } + headingfont { @ChapterHeadingFont } + headingbreak { @ChapterHeadingBreak } + headingformat { @Num @ChapterHeadingFormat @Body } + incontents { @IntroductionInContents } + pnprefix { @IntroductionPrefix } + sendheader { @Full @Body } + innergap { @SectionGap } + inrunners { Yes } + @Body + + } + + + ####################################################################### + # # + # Chapters containing sections and subsections. # + # # + ####################################################################### + + export @BeginSections @EndSections @Section + def @Chapter force into { @ChapterList&&preceding } + named @Tag {} + named @Title {} + named @RunningTitle { dft } + named @InitialLanguage {} + named @PartNumber {} + named @PartTitle {} + named @PartText {} + named @BypassNumber { dft } + body @Body + { + + def @EndSectionsPlace { @Galley } + + def @EndSections force into { @EndSectionsPlace&&preceding } + {} + + macro @BeginSections + { //@SectionGap @SectionList @FirstSectionNumber + // @EndSectionsPlace // + } + + def @ChapterShortNum + { + @ChapterNumbers @Then { + @BypassNumber @Dft { + @ChapterNumbers @Num @ChapterList&&@Tag @Open { num } + } + } + } + + def @MajorNum + { + @ChapterNumbers @Then @InitialLanguage @Language { + chapter @WordVal @ChapterWord @ChapterShortNum + } + } + + def @MajorTitle + { + @InitialLanguage @Language { + @RunningTitle @Dft @Title + } + } + + export @BeginSubSections @EndSubSections @SubSection + def @Section force into { @SectionList&&preceding } + named @Tag {} + named @Title {} + named @RunningTitle { dft } + named @InitialLanguage { @InitialLanguage } + named @BypassNumber { dft } + body @Body + { + + def @EndSubSectionsPlace { @Galley } + + def @EndSubSections force into { @EndSubSectionsPlace&&preceding } + {} + + macro @BeginSubSections + { //@SubSectionGap @SubSectionList @FirstSubSectionNumber + // @EndSubSectionsPlace // + } + + def @SectionShortNum + { + @SectionNumbers @Then { + @BypassNumber @Dft { + @ChapterShortNum @Join @SectionNumbers @Num + { @SectionList&&@Tag @Open { num } } + } + } + } + + export @BeginSubSubSections @EndSubSubSections @SubSubSection + def @SubSection force into { @SubSectionList&&preceding } + named @Tag {} + named @Title {} + named @RunningTitle { dft } + named @InitialLanguage { @InitialLanguage } + named @BypassNumber { dft } + body @Body + { + + def @EndSubSubSectionsPlace { @Galley } + + def @EndSubSubSections force into + { @EndSubSubSectionsPlace&&preceding } + {} + + macro @BeginSubSubSections + { //@SubSubSectionGap @SubSubSectionList @FirstSubSubSectionNumber + // @EndSubSubSectionsPlace // + } + + def @SubSectionShortNum + { + @SubSectionNumbers @Then { + @BypassNumber @Dft { + @SectionShortNum @Join @SubSectionNumbers @Num + { @SubSectionList&&@Tag @Open { num } } + } + } + } + + def @SubSubSection force into { @SubSubSectionList&&preceding } + named @Tag {} + named @Title {} + named @RunningTitle { dft } + named @InitialLanguage { @InitialLanguage } + named @BypassNumber { dft } + body @Body + { + + @LargeScaleStructure + tag { @Tag } + type { Minor } + initiallanguage { @InitialLanguage } + title { @Title } + runningtitle { @RunningTitle } + headingfont { @SubSubSectionHeadingFont } + headingbreak { @SubSubSectionHeadingBreak } + headingformat { @Num @SubSubSectionHeadingFormat @Body } + incontents { @SubSubSectionInContents } + contentsindent { 9f } + numbers { @SubSubSectionNumbers } + attachnum { @SubSubSectionList&&preceding @Tagged @Tag } + retrievenum { @SubSubSectionList&&@Tag @Open { num } } + bypassnumber { @BypassNumber } + prefix { @SubSectionShortNum } + majornum { @MajorNum } + majortitle { @MajorTitle } + intheorems { @SubSubSectionNumInTheorems } + indisplays { @SubSubSectionNumInDisplays } + infigures { @SubSubSectionNumInFigures } + intables { @SubSubSectionNumInTables } + inrunners { @SubSubSectionNumInRunners } + @Body + } + + @LargeScaleStructure + tag { @Tag } + type { Minor } + initiallanguage { @InitialLanguage } + title { @Title } + runningtitle { @RunningTitle } + headingfont { @SubSectionHeadingFont } + headingbreak { @SubSectionHeadingBreak } + headingformat { @Num @SubSectionHeadingFormat @Body } + incontents { @SubSectionInContents } + contentsindent { 6f } + numbers { @SubSectionNumbers } + attachnum { @SubSectionList&&preceding @Tagged @Tag } + retrievenum { @SubSectionList&&@Tag @Open { num } } + bypassnumber { @BypassNumber } + prefix { @SectionShortNum } + majornum { @MajorNum } + majortitle { @MajorTitle } + intheorems { @SubSectionNumInTheorems } + indisplays { @SubSectionNumInDisplays } + infigures { @SubSectionNumInFigures } + intables { @SubSectionNumInTables } + inrunners { @SubSectionNumInRunners } + @Body + + } + + @LargeScaleStructure + tag { @Tag } + type { Minor } + initiallanguage { @InitialLanguage } + title { @Title } + runningtitle { @RunningTitle } + headingfont { @SectionHeadingFont } + headingbreak { @SectionHeadingBreak } + headingformat { @Num @SectionHeadingFormat @Body } + incontents { @SectionInContents } + contentsindent { 3f } + numbers { @SectionNumbers } + attachnum { @SectionList&&preceding @Tagged @Tag } + retrievenum { @SectionList&&@Tag @Open { num } } + bypassnumber { @BypassNumber } + prefix { @ChapterShortNum } + majornum { @MajorNum } + majortitle { @MajorTitle } + intheorems { @SectionNumInTheorems } + indisplays { @SectionNumInDisplays } + infigures { @SectionNumInFigures } + intables { @SectionNumInTables } + inrunners { @SectionNumInRunners } + @Body + + } + + def @Part + named @Tag {} + { + @LargeScaleStructure + type { VeryMajor } + initiallanguage { @InitialLanguage } + title { @PartTitle } + aboveheadinggap { @AbovePartGap } + headingfont { @PartHeadingFont } + headingbreak { @PartHeadingBreak } + headingformat { @Num @PartHeadingFormat @Body } + bypassnumber { @PartNumber } + incontents { @PartInContents } + sendheader { @Full @Body } + inrunners { Yes } + tag { @Tag } + @PartText + } + + @PartNumber @Case { + "" @Yield @Null + else @Yield @Part + } + // + @LargeScaleStructure + tag { @Tag } + type { Major } + initiallanguage { @InitialLanguage } + title { @Title } + runningtitle { @RunningTitle } + aboveheadinggap { @AboveChapterGap } + headingfont { @ChapterHeadingFont } + headingbreak { @ChapterHeadingBreak } + headingformat { @Num @ChapterHeadingFormat @Body } + incontents { @ChapterInContents } + contentsindent { 0f } + word { chapter @WordVal @ChapterWord } + numbers { @ChapterNumbers } + attachnum { @ChapterList&&preceding @Tagged @Tag } + retrievenum { @ChapterList&&@Tag @Open { num } } + bypassnumber { @BypassNumber } + pnprefix { @ChapterPrefix } + intheorems { @ChapterNumInTheorems } + indisplays { @ChapterNumInDisplays } + infigures { @ChapterNumInFigures } + intables { @ChapterNumInTables } + sendheader { @ChapterFull @Body } + innergap { @SectionGap } + inrunners { Yes } + @Body + + } + + + ####################################################################### + # # + # Appendices. # + # # + ####################################################################### + + export @BeginSubAppendices @EndSubAppendices @SubAppendix + def @Appendix force into { @AppendixList&&preceding } + named @Tag {} + named @Title {} + named @RunningTitle { dft } + named @InitialLanguage {} + named @PartNumber {} + named @PartTitle {} + named @PartText {} + named @BypassNumber { dft } + body @Body + { + + def @EndSubAppendicesPlace { @Galley } + + def @EndSubAppendices force into { @EndSubAppendicesPlace&&preceding } + {} + + macro @BeginSubAppendices + { //@SubAppendixGap @SubAppendixList @FirstSubAppendixNumber + // @EndSubAppendicesPlace // + } + + def @AppendixShortNum + { + @AppendixNumbers @Then { + @BypassNumber @Dft { + @AppendixNumbers @Num @AppendixList&&@Tag @Open { num } + } + } + } + + def @MajorNum + { + @AppendixNumbers @Then @InitialLanguage @Language { + appendix @WordVal @AppendixWord @AppendixShortNum + } + } + + def @MajorTitle + { + @InitialLanguage @Language { + @RunningTitle @Dft @Title + } + } + + export @BeginSubSubAppendices @EndSubSubAppendices @SubSubAppendix + def @SubAppendix force into { @SubAppendixList&&preceding } + named @Tag {} + named @Title {} + named @RunningTitle { dft } + named @InitialLanguage { @InitialLanguage } + named @BypassNumber { dft } + body @Body + { + + def @EndSubSubAppendicesPlace { @Galley } + + def @EndSubSubAppendices force into { @EndSubSubAppendicesPlace&&preceding } + {} + + macro @BeginSubSubAppendices + { //@SubSubAppendixGap @SubSubAppendixList @FirstSubSubAppendixNumber + // @EndSubSubAppendicesPlace // + } + + def @SubAppendixShortNum + { + @SubAppendixNumbers @Then { + @BypassNumber @Dft { + @AppendixShortNum @Join @SubAppendixNumbers @Num + { @SubAppendixList&&@Tag @Open { num } } + } + } + } + + def @SubSubAppendix force into { @SubSubAppendixList&&preceding } + named @Tag {} + named @Title {} + named @RunningTitle { dft } + named @InitialLanguage { @InitialLanguage } + named @BypassNumber { dft } + body @Body + { + + @LargeScaleStructure + tag { @Tag } + type { Minor } + initiallanguage { @InitialLanguage } + title { @Title } + runningtitle { @RunningTitle } + headingfont { @SubSubAppendixHeadingFont } + headingbreak { @SubSubAppendixHeadingBreak } + headingformat { @Num @SubSubAppendixHeadingFormat @Body } + incontents { @SubSubAppendixInContents } + contentsindent { 6f } + numbers { @SubSubAppendixNumbers } + attachnum { @SubSubAppendixList&&preceding @Tagged @Tag } + retrievenum { @SubSubAppendixList&&@Tag @Open { num } } + bypassnumber { @BypassNumber } + prefix { @SubAppendixShortNum } + majornum { @MajorNum } + majortitle { @MajorTitle } + intheorems { @SubSubAppendixNumInTheorems } + indisplays { @SubSubAppendixNumInDisplays } + infigures { @SubSubAppendixNumInFigures } + intables { @SubSubAppendixNumInTables } + inrunners { @SubSubAppendixNumInRunners } + @Body + + } + + @LargeScaleStructure + tag { @Tag } + type { Minor } + initiallanguage { @InitialLanguage } + title { @Title } + runningtitle { @RunningTitle } + headingfont { @SubAppendixHeadingFont } + headingbreak { @SubAppendixHeadingBreak } + headingformat { @Num @SubAppendixHeadingFormat @Body } + incontents { @SubAppendixInContents } + contentsindent { 3f } + numbers { @SubAppendixNumbers } + attachnum { @SubAppendixList&&preceding @Tagged @Tag } + retrievenum { @SubAppendixList&&@Tag @Open { num } } + bypassnumber { @BypassNumber } + prefix { @AppendixShortNum } + majornum { @MajorNum } + majortitle { @MajorTitle } + intheorems { @SubAppendixNumInTheorems } + indisplays { @SubAppendixNumInDisplays } + infigures { @SubAppendixNumInFigures } + intables { @SubAppendixNumInTables } + inrunners { @SubAppendixNumInRunners } + @Body + + } + + def @Part + named @Tag {} + { + @LargeScaleStructure + type { VeryMajor } + initiallanguage { @InitialLanguage } + title { @PartTitle } + aboveheadinggap { @AbovePartGap } + headingfont { @PartHeadingFont } + headingbreak { @PartHeadingBreak } + headingformat { @Num @PartHeadingFormat @Body } + bypassnumber { @PartNumber } + incontents { @PartInContents } + sendheader { @Full @Body } + inrunners { Yes } + tag { @Tag } + @PartText + } + + @PartNumber @Case { + "" @Yield @Null + else @Yield @Part + } + // + @LargeScaleStructure + tag { @Tag } + type { Major } + initiallanguage { @InitialLanguage } + title { @Title } + runningtitle { @RunningTitle } + aboveheadinggap { @AboveChapterGap } + headingfont { @AppendixHeadingFont } + headingbreak { @AppendixHeadingBreak } + headingformat { @Num @AppendixHeadingFormat @Body } + incontents { @AppendixInContents } + contentsindent { 0f } + word { appendix @WordVal @AppendixWord } + numbers { @AppendixNumbers } + attachnum { @AppendixList&&preceding @Tagged @Tag } + retrievenum { @AppendixList&&@Tag @Open { num } } + bypassnumber { @BypassNumber } + pnprefix { @AppendixPrefix } + intheorems { @AppendixNumInTheorems } + indisplays { @AppendixNumInDisplays } + infigures { @AppendixNumInFigures } + intables { @AppendixNumInTables } + sendheader { @ChapterFull @Body } + innergap { @SubAppendixGap } + inrunners { Yes } + @Body + + } + + +@End @BookSetup diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/bsf b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/bsf new file mode 100755 index 0000000000000..1440b8264a29b --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/bsf @@ -0,0 +1,1609 @@ + +############################################################################### +# # +# Lout @BasicSetup package (Version 3.13) # +# # +# Jeffrey H. Kingston # +# 5 February 1999 # +# # +# Based on the first part of the @DocumentLayout package, version 3.11. # +# # +# This package contains basic symbols used widely throughout many # +# documents, for font changes, particular characters, standard words in # +# the current language, date and time, paragraphs, lists, colours, # +# rules, and boxes. # +# # +############################################################################### + +@SysPrependGraphic { "bsf.lpg" } # rules, boxes, margin note setup + + +############################################################################### +# # +# The following symbols are defined outside @BasicSetup so that # +# they can be invoked when setting its parameters in the @Use clause. # +# # +############################################################################### + +def @OrIfPlain + precedence 80 + left x + right y +{ + @BackEnd @Case { + PlainText @Yield y + else @Yield x + } +} + + ########################################################################### + # # + # @Colour, @Color # + # # + ########################################################################### + + def @ColourCommand right col + { + def @ColourCoords + { + col @Case { + darkblue @Yield { 0.0 0.0 0.5 } + blue @Yield { 0.0 0.0 1.0 } + lightblue @Yield { 0.5 0.5 1.0 } + darkgreen @Yield { 0.0 0.5 0.0 } + green @Yield { 0.0 1.0 0.0 } + lightgreen @Yield { 0.5 1.0 0.5 } + darkred @Yield { 0.5 0.0 0.0 } + red @Yield { 1.0 0.0 0.0 } + lightred @Yield { 1.0 0.5 0.5 } + darkcyan @Yield { 0.0 0.5 0.5 } + cyan @Yield { 0.0 1.0 1.0 } + lightcyan @Yield { 0.5 1.0 1.0 } + darkmagenta @Yield { 0.5 0.0 0.5 } + magenta @Yield { 1.0 0.0 1.0 } + lightmagenta @Yield { 1.0 0.5 1.0 } + darkyellow @Yield { 0.5 0.5 0.0 } + yellow @Yield { 1.0 1.0 0.0 } + lightyellow @Yield { 1.0 1.0 0.5 } + darkgray @Yield { 0.2 0.2 0.2 } + gray @Yield { 0.5 0.5 0.5 } + lightgray @Yield { 0.8 0.8 0.8 } + darkgrey @Yield { 0.2 0.2 0.2 } + grey @Yield { 0.5 0.5 0.5 } + lightgrey @Yield { 0.8 0.8 0.8 } + black @Yield { 0.0 0.0 0.0 } + white @Yield { 1.0 1.0 1.0 } + } + } + + col @Case { + nochange @Yield { nochange } + else @Yield { @BackEnd @Case { + PostScript @Yield { @ColourCoords setrgbcolor } + PDF @Yield { @ColourCoords rg @ColourCoords RG } + PlainText @Yield "" + } } + } + } + + def @Colour @Color left col right y { {@ColourCommand col} @SetColour y } + + export i c p m s v f + def @LengthUnits + { + def i left x { + @BackEnd @Case { + PostScript @Yield { x" in" } + PDF @Yield { "__mul(__in, "x")" } + PlainText @Yield "" + } + } + + def c left x { + @BackEnd @Case { + PostScript @Yield { x" cm" } + PDF @Yield { "__mul(__cm, "x")" } + PlainText @Yield "" + } + } + + def p left x { + @BackEnd @Case { + PostScript @Yield { x" pt" } + PDF @Yield { "__mul(__pt, "x")" } + PlainText @Yield "" + } + } + + def m left x { + @BackEnd @Case { + PostScript @Yield { x" em" } + PDF @Yield { "__mul(__em, "x")" } + PlainText @Yield "" + } + } + + def s left x { + @BackEnd @Case { + PostScript @Yield { x" sp" } + PDF @Yield { "__mul(__louts, "x")" } + PlainText @Yield "" + } + } + + def v left x { + @BackEnd @Case { + PostScript @Yield { x" vs" } + PDF @Yield { "__mul(__loutv, "x")" } + PlainText @Yield "" + } + } + + def f left x { + @BackEnd @Case { + PostScript @Yield { x" ft" } + PDF @Yield { "__mul(__loutf, "x")" } + PlainText @Yield "" + } + } + } + + +############################################################################### +# # +# Symbols exported by @BasicSetup. # +# # +############################################################################### + +export + + @InitialFont @InitialBreak @InitialSpace @InitialLanguage @InitialColour + @OptimizePages @HeadingFont + @ParaGap @ParaIndent @DisplayGap @DisplayIndent @DefaultIndent + @DisplayNumStyle @WideIndent @VeryWideIndent + @ListGap @ListIndent @ListRightIndent @ListLabelWidth + @NumberSeparator + + @Word @Roman @UCRoman @Alpha @UCAlpha @Months @ShortMonths @WeekDays + @ShortWeekDays @TwelveHours @ShortHours @MeriDiems @ShortMeriDiems + + @Sym @R @I @B @BI @S @F @II + "~" "~~" "``" "''" ",," "--" "---" "..." + + @Bullet @ParSym @SectSym @Dagger @DaggerDbl @CDot @Sterling @Yen @Florin + @Star @Degree @Minute @Second @Multiply @Divide @Lozenge @Register + @CopyRight @TradeMark @Euro + + @Date @Time @DateTimeFormat @DropCapTwo @DropCapThree @Centre @Right + @NoDotSep @NoDotJoin @Join @Sep @DotSep @DotJoin @DashJoin @NumSep + @OverStrike @Sup @Sub @FullWidthRule @LocalWidthRule + @Box @CurveBox @ShadowBox @BoundaryMarks @NumberMarker @NumberOf + @PageMarker @PageMark @NoLinkPageMark @PageOf @CrossLink + + @BeginDisplayCounter + + @Heading "^" "&-" @If @Not @And @Or @True + @PP @LP @LLP @DP @LOP @NP @CNP + + @BeginAlignedDisplays + @EndAlignedDisplays + + @Display + @LeftDisplay + @IndentedDisplay + @QuotedDisplay + @CentredDisplay + @RightDisplay + @AlignedDisplay + @LeftAlignedDisplay + @IndentedAlignedDisplay + @QuotedAlignedDisplay + @CentredAlignedDisplay + @RightAlignedDisplay + @NumberedDisplay + @LeftNumberedDisplay + @IndentedNumberedDisplay + @QuotedNumberedDisplay + @CentredNumberedDisplay + @RightNumberedDisplay + @AlignedNumberedDisplay + @LeftAlignedNumberedDisplay + @IndentedAlignedNumberedDisplay + @QuotedAlignedNumberedDisplay + @CentredAlignedNumberedDisplay + @RightAlignedNumberedDisplay + + @RawDisplay + @RawLeftDisplay + @RawIndentedDisplay + @RawQuotedDisplay + @RawCentredDisplay + @RawRightDisplay + @RawAlignedDisplay + @RawLeftAlignedDisplay + @RawIndentedAlignedDisplay + @RawQuotedAlignedDisplay + @RawCentredAlignedDisplay + @RawRightAlignedDisplay + @RawNumberedDisplay + @RawLeftNumberedDisplay + @RawIndentedNumberedDisplay + @RawQuotedNumberedDisplay + @RawCentredNumberedDisplay + @RawRightNumberedDisplay + @RawAlignedNumberedDisplay + @RawLeftAlignedNumberedDisplay + @RawIndentedAlignedNumberedDisplay + @RawQuotedAlignedNumberedDisplay + @RawCentredAlignedNumberedDisplay + @RawRightAlignedNumberedDisplay + + @ListItem + @ListInterruptItem + @ListNewPage + @DropListItem + @TagItem + @DropTagItem + + @EndList + @RawEndList + + @RawList + @RawLeftList + @RawIndentedList + @RawQuotedList + @RawCentredList @RawCenteredList + @RawNumberedList + @RawParenNumberedList + @RawRomanList + @RawParenRomanList + @RawUCRomanList + @RawParenUCRomanList + @RawAlphaList + @RawParenAlphaList + @RawUCAlphaList + @RawParenUCAlphaList + @RawBulletList + @RawStarList + @RawDashList + @RawTaggedList + @RawWideTaggedList + @RawVeryWideTaggedList + + @List + @LeftList + @IndentedList + @QuotedList + @CentredList @CenteredList + @NumberedList + @ParenNumberedList + @RomanList + @ParenRomanList + @UCRomanList + @ParenUCRomanList + @AlphaList + @ParenAlphaList + @UCAlphaList + @ParenUCAlphaList + @BulletList + @StarList + @DashList + @TaggedList + @WideTaggedList + @VeryWideTaggedList + + +############################################################################### +# # +# The @BasicSetup package. # +# # +############################################################################### + +def @BasicSetup + named @InitialFont { Times Base 12p } # initial font + named @InitialBreak { {adjust 1.20fx hyphen} @OrIfPlain + {ragged 1fx nohyphen} } # initial break + named @InitialSpace { lout } # initial space style + named @InitialLanguage{ English } # initial language + named @InitialColour { black } # initial colour + named @OptimizePages { No } # optimize page breaks? + named @HeadingFont { Bold } # font for @Heading + named @ParaGap { 1.3vx @OrIfPlain 1f } # gap between paragraphs + named @ParaIndent { 2.0f @OrIfPlain 5s } # first-line indent for @PP + named @DisplayGap { 1.0v @OrIfPlain 1f } # gap above, below displays + named @DisplayIndent { 2.0f @OrIfPlain 5s } # @IndentedDisplay indent + named @DefaultIndent { 0.5rt } # @Display indent + named @DisplayNumStyle + right num { (num) } # display number style + named @WideIndent { 4.0f @OrIfPlain 10s } # @WideTaggedList indent + named @VeryWideIndent { 8.0f @OrIfPlain 20s } # @VeryWideTaggedList indent + named @ListOuterGap { 1.0v @OrIfPlain 1f } # gap before, after list + named @ListGap { 1.0v @OrIfPlain 1f } # gap between list items + named @ListIndent { 0s } # indent of list items + named @ListRightIndent{ 0s } # right indent of list items + named @ListLabelWidth { 2.0f @OrIfPlain 5s } # width allowed for list tags + named @NumberSeparator{ . } # separates numbers like 2.3.7 + import @BasicSetup + named @CrossLinkFormat + right @Body { @Body } # format for cross links +@Begin + + ########################################################################### + # # + # @Sym, font symbols, and miscellaneous special characters. # + # # + ########################################################################### + + def @Sym right x { { Symbol Base } @Font @Char x } + + def @R right x { Base @Font x } + def @I right x { Slope @Font x } + def @B right x { Bold @Font x } + def @BI right x { BoldSlope @Font x } + def @S right x { smallcaps @Font x } + def @F right x { { Courier Base -1p } @Font x } + + def @II + right x + { + { @CurrFace @Case { + Bold @Yield BoldSlope + else @Yield Slope + } } @Font x + } + + def "~" left x right y { x &1su y } + def "~~" left x right y { x &2s y } + + def "``" { @Char "quotedblleft" @OrIfPlain "``" } + def "''" { @Char "quotedblright" @OrIfPlain "''" } + def ",," { @Char "quotedblbase" @OrIfPlain ",," } + def "--" { @Char "endash" @OrIfPlain "--" } + def "---" { @Char "emdash" @OrIfPlain "---"} + def "..." { @Char "ellipsis" @OrIfPlain "..."} + def @Bullet { @Char "bullet" @OrIfPlain "o" } + def @ParSym { @Char "paragraph" @OrIfPlain "P" } + def @SectSym { @Char "section" @OrIfPlain "$" } + def @Dagger { @Char "dagger" @OrIfPlain "+" } + def @DaggerDbl { @Char "daggerdbl" @OrIfPlain "++" } + def @CDot { @Char "periodcentered" @OrIfPlain "." } + def @Sterling { @Char "sterling" @OrIfPlain "&" } + def @Yen { @Char "yen" @OrIfPlain "Y" } + def @Florin { @Char "florin" @OrIfPlain "f" } + + def @Star { @Sym "asteriskmath" @OrIfPlain "*" } + def @Degree { @Sym "degree" @OrIfPlain "o" } + def @Minute { @Sym "minute" @OrIfPlain "'" } + def @Second { @Sym "second" @OrIfPlain "''" } + def @Multiply { @Sym "multiply" @OrIfPlain "x" } + def @Divide { @Sym "divide" @OrIfPlain "/" } + def @Lozenge { @Sym "lozenge" @OrIfPlain "O" } + def @Register { @Sym "registersans" @OrIfPlain "R" } + def @CopyRight { @Sym "copyrightsans" @OrIfPlain "C" } + def @TradeMark { @Sym "trademarksans" @OrIfPlain "TM" } + + def @Euro + { + @BackEnd @Case { + + PostScript @Yield { + 0.65w @VShift @VContract @HContract + "xsize ysize ysize 0.07 mul louteuro" @Graphic { + 0.7f @High 0.735f @Wide + } + } + + PDF @Yield { EUR } + + PlainText @Yield { EUR } + } + } + + + ########################################################################### + # # + # Symbols stored in the "standard" database # + # # + # @Word language-spacific words such as Chapter, etc. # + # @Roman lower case Roman numerals i, ii, ... , cc # + # @UCRoman upper case Roman numerals I, II, ... , CC # + # @Alpha lower case Roman alphabet a, b, ... , z # + # @UCAlpha upper case Roman alphabet A, B, ... , Z # + # @Months months of the year: January, ... , December # + # @ShortMonths months of the year, abbreviated: Jan, ..., Dec # + # @WeekDays days of the week: Sunday, ... , Saturday # + # @ShortWeekDays days of the week, abbreviated: Sun, ... , Sat # + # @TwelveHours hours, from 1 to 12 # + # @ShortHours hours, from 0 to 23 # + # @DateTimeFormat format of results of @Date and @Time # + # # + ########################################################################### + + def @Word left @Tag right @Val { @Val } + def @Roman left @Tag right @Val { @Val } + def @UCRoman left @Tag right @Val { @Val } + def @Alpha left @Tag right @Val { @Val } + def @UCAlpha left @Tag right @Val { @Val } + def @Months left @Tag right @Val { @Val } + def @ShortMonths left @Tag right @Val { @Val } + def @WeekDays left @Tag right @Val { @Val } + def @ShortWeekDays left @Tag right @Val { @Val } + def @TwelveHours left @Tag right @Val { @Val } + def @ShortHours left @Tag right @Val { @Val } + def @MeriDiems left @Tag right @Val { @Val } + def @ShortMeriDiems left @Tag right @Val { @Val } + + export @Value + def @DateTimeFormat left @Tag + named @Value + named @Year {} + named @ShortYear {} + named @Month {} + named @ShortMonth {} + named @MonthNum {} + named @Day {} + named @ShortDay {} + named @DayNum {} + named @MeriDiem {} + named @ShortMeriDiem {} + named @Hour {} + named @TwelveHour {} + named @ShortHour {} + named @Minute {} + named @Second {} + {} + {} + + @SysDatabase @Word @Roman @UCRoman @Alpha @UCAlpha @Months + @ShortMonths @WeekDays @ShortWeekDays @TwelveHours + @ShortHours @MeriDiems @ShortMeriDiems @DateTimeFormat + { standard } + + + ########################################################################### + # # + # @Date and @Time: the date and time now. # + # # + ########################################################################### + + def @Date + named @Format + named @Year { @Moment&&now @Open { {@Century}@Year }} + named @ShortYear { @Moment&&now @Open { @Year }} + named @Month { @Moment&&now @Open { @Months&&@Month }} + named @ShortMonth { @Moment&&now @Open { @ShortMonths&&@Month }} + named @MonthNum { @Moment&&now @Open { @Month }} + named @Day { @Moment&&now @Open { @WeekDays&&@WeekDay }} + named @ShortDay { @Moment&&now @Open { @ShortWeekDays&&@WeekDay}} + named @DayNum { @Moment&&now @Open { @Day }} + named @MeriDiem { @Moment&&now @Open { @MeriDiems&&@Hour }} + named @ShortMeriDiem{ @Moment&&now @Open { @ShortMeriDiems&&@Hour }} + named @Hour { @Moment&&now @Open { @Hour }} + named @TwelveHour { @Moment&&now @Open { @TwelveHours&&@Hour }} + named @ShortHour { @Moment&&now @Open { @ShortHours&&@Hour }} + named @Minute { @Moment&&now @Open { @Minute }} + named @Second { @Moment&&now @Open { @Second }} + { + @DateTimeFormat&&date @Open { @Value + @Year { @Year } + @ShortYear { @ShortYear } + @Month { @Month } + @ShortMonth { @ShortMonth } + @MonthNum { @MonthNum } + @Day { @Day } + @ShortDay { @ShortDay } + @DayNum { @DayNum } + @MeriDiem { @MeriDiem } + @ShortMeriDiem { @ShortMeriDiem } + @Hour { @Hour } + @TwelveHour { @TwelveHour } + @ShortHour { @ShortHour } + @Minute { @Minute } + @Second { @Second } + } + } + { @Format } + + def @Time + named @Format + named @Year { @Moment&&now @Open { {@Century}@Year }} + named @ShortYear { @Moment&&now @Open { @Year }} + named @Month { @Moment&&now @Open { @Months&&@Month }} + named @ShortMonth { @Moment&&now @Open { @ShortMonths&&@Month }} + named @MonthNum { @Moment&&now @Open { @Month }} + named @Day { @Moment&&now @Open { @WeekDays&&@WeekDay }} + named @ShortDay { @Moment&&now @Open { @ShortWeekDays&&@WeekDay}} + named @DayNum { @Moment&&now @Open { @Day }} + named @MeriDiem { @Moment&&now @Open { @MeriDiems&&@Hour }} + named @ShortMeriDiem{ @Moment&&now @Open { @ShortMeriDiems&&@Hour }} + named @Hour { @Moment&&now @Open { @Hour }} + named @TwelveHour { @Moment&&now @Open { @TwelveHours&&@Hour }} + named @ShortHour { @Moment&&now @Open { @ShortHours&&@Hour }} + named @Minute { @Moment&&now @Open { @Minute }} + named @Second { @Moment&&now @Open { @Second }} + { + @DateTimeFormat&&time @Open { @Value + @Year { @Year } + @ShortYear { @ShortYear } + @Month { @Month } + @ShortMonth { @ShortMonth } + @MonthNum { @MonthNum } + @Day { @Day } + @ShortDay { @ShortDay } + @DayNum { @DayNum } + @MeriDiem { @MeriDiem } + @ShortMeriDiem { @ShortMeriDiem } + @Hour { @Hour } + @TwelveHour { @TwelveHour } + @ShortHour { @ShortHour } + @Minute { @Minute } + @Second { @Second } + } + } + { @Format } + + + ########################################################################### + # # + # @DropCapTwo and @DropCapThree # + # # + ########################################################################### + + def @DropCapTwo + left y + named height { 1.5v } + right x + { + def @ParPlace { @Galley } + def @EndParPlace { @Galley } + + def @LineList + { + @PAdjust @ParPlace + //1vx @LineList + } + + def @ParGalley horizontally into { @ParPlace&&preceding } + right x + { + x + } + + def @EndPar force into { @EndParPlace&&following } { @Null } + + def @Cap + { + -0.25f @VShift 1.0w @VShift { + -90d @Rotate height @Wide @Scale 90d @Rotate y + } + } + + |1s @PAdjust @ParPlace + /1vo @Cap @ParGalley {x & @EndPar &1rt } | @PAdjust @ParPlace + //1vx @LineList + // @EndParPlace + } + + def @DropCapThree + left y + named height { 2.5v } + right x + { + def @ParPlace { @Galley } + def @EndParPlace { @Galley } + + def @LineList + { + @PAdjust @ParPlace + //1vx @LineList + } + + def @ParGalley force horizontally into { @ParPlace&&preceding } + right x + { + x + } + + def @EndPar force into { @EndParPlace&&following } { @Null } + + def @Cap + { + -0.25f @VShift 1.0w @VShift { + -90d @Rotate height @Wide @Scale 90d @Rotate y + } + } + + |1s @PAdjust @ParPlace + /1vo @ParGalley { x & @EndPar &1rt } | @PAdjust @ParPlace + /1vo @Cap | @PAdjust @ParPlace + //1vx @LineList + // @EndParPlace + } + + + ########################################################################### + # # + # @Centre, @Center, @Right, @NoDotSep, @NoDotJoin, @DotSep, # + # @DotJoin, @DashJoin, @NumSep # + # # + ########################################################################### + + macro @Centre @Center { |0.5rt @HContract } + + def @Right + precedence 50 + left x + right y + { x |1.0rt @OneCol { 2f @Wide {} | y } } + + def @NoDotSep left x right y + { + x @Case { + {} @Yield y + else @Yield { + y @Case { + {} @Yield x + else @Yield { x |2s y } + } + } + } + } + + def @NoDotJoin left x right y + { + x @Case { + {} @Yield y + else @Yield { + y @Case { + {} @Yield x + else @Yield { x{y} } + } + } + } + } + + def @DotSep left x right y + { + x @Case { + {} @Yield y + else @Yield { + y @Case { + {} @Yield x + else @Yield { x. |2s y } + } + } + } + } + + def @DotJoin left x right y + { + x @Case { + {} @Yield y + else @Yield { + y @Case { + {} @Yield x + else @Yield { x.y } + } + } + } + } + + def @DashJoin left x right y + { + x @Case { + {} @Yield y + else @Yield { + y @Case { + {} @Yield x + else @Yield { x--y } + } + } + } + } + + def @NumSep left x right y + { + x @Case { + {} @Yield y + else @Yield { + y @Case { + {} @Yield x + else @Yield { + @CurrLang @Case { + Hungarian @Yield { y. x } + else @Yield { x y } + } + } + } + } + } + } + + + ########################################################################### + # # + # @OverStrike, @Sup and @Sub # + # # + ########################################################################### + + def @OverStrike left x right y + { + @OneRow { @HContract @VContract x /0io @HContract @VContract y } + } + + def @Sup + left x + named gap { 0.40fk } + right y + { + @HContract @VContract + { + | 0.7f @Font y ^/gap x + } + } + + def @Sub + left x + named gap { 0.40fk } + right y + { + @HContract @VContract + { + x /gap | 0.7f @Font y + } + } + + + ########################################################################### + # # + # @AddPaint, @LineWidth (obsolete), @StrokeCommand # + # # + ########################################################################### + + def @AddPaint right col + { + col @Case { + none @Yield "" + nochange @Yield { + @BackEnd @Case { + PostScript @Yield "gsave fill grestore" + PDF @Yield "q f Q" + PlainText @Yield "" + } + } + else @Yield { + @BackEnd @Case { + PostScript @Yield {"gsave" @ColourCommand col "fill grestore"} + PDF @Yield { "q" @ColourCommand col "f Q" } + PlainText @Yield "" + } + } + } + } + + def @LineWidth right lw + { + lw @Case { + "" @Yield "" + else @Yield { + @BackEnd @Case { + PostScript @Yield { lw "setlinewidth" } + PDF @Yield { lw "w" } + PlainText @Yield "" + } + } + } + } + + def @StrokeCommand right linewidth + { + @BackEnd @Case { + PostScript @Yield { + linewidth @Case { + "" @Yield { "stroke" } + none @Yield { } + else @Yield { linewidth "setlinewidth stroke" } + } + } + PDF @Yield { + linewidth @Case { + "" @Yield { "S" } + none @Yield { } + else @Yield { linewidth "w S" } + } + } + else @Yield "" + } + } + + + + ########################################################################### + # # + # @FullWidthRule, @Box, @CurveBox, and @ShadowBox # + # # + ########################################################################### + + def @FullWidthRule + import @LengthUnits named linewidth {} + { + @BackEnd @Case { + + PostScript @Yield @HExpand { + { "LoutRule" @StrokeCommand linewidth } @Graphic { 0.5p @High } + } + + PDF @Yield @HExpand { + { "0 0 m __xsize 0 l" @StrokeCommand linewidth } @Graphic { 0.5p @High } + } + + PlainText @Yield { "-" @PlainGraphic 1f @High } + } + } + + def @LocalWidthRule + import @LengthUnits named linewidth {} + { + @BackEnd @Case { + + PostScript @Yield { + { "LoutRule" @StrokeCommand linewidth } @Graphic { 0.5p @High } + } + + PDF @Yield { + { "0 0 m __xsize 0 l" @StrokeCommand linewidth } @Graphic { 0.5p @High } + } + + PlainText @Yield { "-" @PlainGraphic 1f @High } + } + } + + def @Box + named margin { 0.3f } + import @LengthUnits named linewidth {} + named paint { none } + right x + { + @BackEnd @Case { + + PostScript @Yield @VContract @HContract 0c @HShift { + {"LoutBox" @AddPaint paint @StrokeCommand linewidth } + @Graphic + { ^/margin ^|margin 0c @HShift @OneRow x |margin /margin } + } + + PDF @Yield @VContract @HContract 0c @HShift { + { "0 0 m __xsize 0 l __xsize __ysize l 0 __ysize l h" + @AddPaint paint @StrokeCommand linewidth } @Graphic + { ^/margin ^|margin 0c @HShift @OneRow x |margin /margin } + } + + PlainText @Yield @VContract @HContract 0c @HShift { + ^/margin ^|margin 0c @HShift @OneRow x |margin /margin + } + } + } + + def @CurveBox + named margin { 0.3f } + import @LengthUnits named linewidth {} + named paint { none } + right x + { + def @PDFStuff + { + "__xmark 0 m" + "__sub(__xsize, __xmark) 0 l" + "__sub(__xsize, __div(__mul(11, __xmark), 24)) 0" + "__xsize __div(__mul(11, __xmark), 24)" + "__xsize __xmark c" + "__xsize __sub(__ysize, __xmark) l" + "__xsize __sub(__ysize, __div(__mul(11, __xmark), 24))" + "__sub(__xsize, __div(__mul(11, __xmark), 24)) __ysize" + "__sub(__xsize, __xmark) __ysize c" + "__xmark __ysize l" + "__div(__mul(11, __xmark), 24) __ysize" + "0 __sub(__ysize, __div(__mul(11, __xmark), 24))" + "0 __sub(__ysize, __xmark) c" + "0 __xmark l" + "0 __div(__mul(11, __xmark), 24)" + "__div(__mul(11, __xmark), 24) 0" + "__xmark 0 c" + "h" + @AddPaint paint @StrokeCommand linewidth + } + + @VContract @HContract 0c @HShift @BackEnd @Case { + + PostScript @Yield { + {"LoutCurveBox" @AddPaint paint @StrokeCommand linewidth } + @Graphic + { ^/margin ^|margin 0c @HShift @OneRow x |margin /margin } + } + + PlainText @Yield { + ^/margin ^|margin 0c @HShift @OneRow x |margin /margin + } + + PDF @Yield { + @PDFStuff @Graphic + { ^/margin ^|margin 0c @HShift @OneRow x |margin /margin } + } + } + } + + def @ShadowBox + named margin { 0.3f } + import @LengthUnits named linewidth {} + named paint { none } + named shadow { 0.2f } + right x + { + @VContract @HContract 0c @HShift @BackEnd @Case { + + PostScript @Yield { + "LoutShadowBox fill" @Graphic + { ^/shadow ^|shadow 0c @HShift + @Box margin {margin} paint {paint} linewidth {linewidth} x + |shadow /shadow + } + } + + PlainText @Yield { + ^/shadow ^|shadow 0c @HShift + @Box margin {margin} paint {paint} linewidth {linewidth} x + |shadow /shadow + } + + PDF @Yield { + { + "__mul(__xmark, 2) 0 m __xsize 0 l" + "__xsize __sub(__ysize, __mul(__xmark, 2)) l" + "__sub(__xsize, __xmark) __sub(__ysize, __mul(__xmark, 2)) l" + "__sub(__xsize, __xmark) __xmark l" + "__mul(__xmark, 2) __xmark l h f" + } + @Graphic + { ^/shadow ^|shadow 0c @HShift + @Box margin {margin} paint {paint} linewidth {linewidth} x + |shadow /shadow + } + } + } + } + + + ########################################################################### + # # + # @BoundaryMarks # + # # + ########################################################################### + + def @BoundaryMarks + import @LengthUnits named linewidth { 0.2p } + import @LengthUnits named length { 0.5c } + import @LengthUnits named gap { 0.5c } + import @LengthUnits named lout { 0c } + import @LengthUnits named rout { 0c } + import @LengthUnits named uout { 0c } + import @LengthUnits named dout { 0c } + { + def @UpStroke { "0" gap "rmoveto" "0" length "rlineto" } + def @DownStroke { "0" gap "neg" "rmoveto" "0" length "neg rlineto" } + def @LeftStroke { gap "neg" "0" "rmoveto" length "neg" "0 rlineto" } + def @RightStroke { gap "0" "rmoveto" length "0 rlineto" } + + def @LLSpot { lout "neg" dout "neg" moveto } + def @LRSpot { xsize rout "add" dout "neg" moveto } + def @ULSpot { lout "neg" ysize uout "add" moveto } + def @URSpot { xsize rout "add" ysize uout "add" moveto } + + def @PDFStuff { + "__sub(-"gap", "lout") __sub(0, "dout") m " + "__sub(__sub(-"gap", "lout"), "length") __sub(0, "dout") l" + "__sub(0, "lout") __sub(-"gap", "dout") m " + "__sub(0, "lout") __sub(__sub(-"gap", "dout"), "length") l" + "__add(__xsize,"rout") __sub(-"gap", "dout") m " + "__add(__xsize,"rout") __sub(__sub(-"gap", "dout"), "length") l" + "__add(__add(__xsize,"rout"),"gap") __sub(0, "dout") m " + "__add(__add(__add(__xsize,"rout"),"gap"),"length") __sub(0, "dout") l" + " __sub(__sub(0, "lout"), "gap") __add(__ysize, "uout") m " + "__sub(__sub(__sub(0, "lout"), "gap"), "length") __add(__ysize, "uout") l" + "__sub(0, "lout") __add(__add(__ysize, "uout"), "gap") m " + "__sub(0, "lout") __add(__add(__add(__ysize, "uout"), "gap"), "length") l" + " __add(__add(__xsize, "rout"), "gap") __add(__ysize, "uout") m " + "__add(__add(__add(__xsize, "rout"), "gap"), "length") __add(__ysize, "uout") l" + "__add(__xsize, "rout") __add(__add(__ysize, "uout"), "gap") m " + "__add(__xsize, "rout") __add(__add(__add(__ysize, "uout"), "gap"), "length") l" + + linewidth "w S" + } + + @BackEnd @Case { + + PostScript @Yield { + { + @LLSpot @LeftStroke + @LLSpot @DownStroke + @LRSpot @DownStroke + @LRSpot @RightStroke + @ULSpot @LeftStroke + @ULSpot @UpStroke + @URSpot @RightStroke + @URSpot @UpStroke + + linewidth "setlinewidth stroke" + } @Graphic {} + } + + PlainText @Yield "" + + PDF @Yield { @PDFStuff @Graphic {} } + } + } + + ########################################################################## + # # + # @NumberMarker, @NumberOf, @PageMarker, @PageMark, @PageOf, @CrossLink # + # # + ########################################################################## + + export @Tag @Value + def @NumberMarker + named @Tag {} + named @Value { "??" } + { + @Null + } + + def @NumberOf + right tag + { + @NumberMarker&&tag @Open { @Value } + } + + + export num rawnum @Tag + def @PageMarker + named @Tag {} + named num {} + named rawnum {} + { + @PageLabel num + } + + def @PageMark + right tag + { + @Null & tag @LinkDest & @PageMarker&&preceding @Tagged tag + } + + def @NoLinkPageMark + right tag + { + @PageMarker&&preceding @Tagged tag + } + + def @PageOf + right tag + { + @PageMarker&&tag @Open { num } + } + + def @CrossLink + left tag + named @Format right @Body { @CrossLinkFormat @Body } + right obj + { + @HContract @VContract { + tag @LinkSource @Format obj + } + } + + + ########################################################################### + # # + # @Join and @Sep # + # # + # Join two objects together with @NumberSeparator, unless one is # + # empty in which case just return the other. # + # # + ########################################################################### + + def @Join left x right y + { + x @Case { + {} @Yield y + else @Yield { + y @Case { + {} @Yield x + else @Yield { x{@NumberSeparator}y } + } + } + } + } + + def @Sep left x right y + { + x @Case { + {} @Yield y + else @Yield { + y @Case { + {} @Yield x + else @Yield { x{@NumberSeparator} |2s y } + } + } + } + } + + + ########################################################################### + # # + # Miscellaneous. # + # # + ########################################################################### + + def @Heading right x { ragged @Break @HeadingFont @Font x } + def "^" { {} ^& {} } + def "&-" left x right y { x &0ch y } + + + ########################################################################### + # # + # @If @Not @And @Or @True # + # # + # Used in databases to make optional fields format nicely. # + # # + ########################################################################### + + def @If + precedence 97 + left x + right y + { + y @Case { + {} @Yield @Null + else @Yield { @Null{x} } + } + } + + def @Not + precedence 100 + right y + { + y @Case { + {} @Yield "*" + else @Yield "" + } + } + + def @And + precedence 99 + left x + right y + { + x @Case { + {} @Yield {} + else @Yield y + } + } + + def @Or + precedence 98 + left x + right y + { + x @Case { + {} @Yield y + else @Yield x + } + } + + def @True { "*" } + + + ########################################################################### + # # + # Paragraphs. # + # # + ########################################################################### + + macro @PP { //@ParaGap @ParaIndent @Wide &{0i} } + macro @LP { //{@ParaGap} } + macro @LLP { //{1vx} } + macro @DP { //{@DisplayGap} } + macro @LOP { //{@ListOuterGap} } + macro @NP { //{1.1b} } + macro @CNP { // 3.2v @High //0io //{} } + + + ########################################################################### + # # + # Beginning and ending of aligned displays. # + # # + ########################################################################### + + def @APlace { @Galley } + def @EndAlignedPlace { @Galley } + def @AlignedPlace { @Galley } + + def @BAligned into { @APlace&&preceding } + { + def @AlignedList { @AlignedPlace /1.1b @AlignedList } + + //1.1b @AlignedList + // @EndAlignedPlace + } + + macro @BAD @BeginAlignedDisplays { // @APlace | @BAligned } + def @EAD @EndAlignedDisplays force into { @EndAlignedPlace&&preceding } {} + + + ########################################################################### + # # + # New code for numbered displays that will cross section boundaries # + # # + ########################################################################### + + export @Tag val + def @NumDispCounterMarker + named @Tag {} + named val {} + { + @Null + } + + def @NumDispNum right tag + { + @NumDispCounterMarker&&tag @Open { @Next val } + } + + def @NumDispCounterIncrement + right tag + { + @NumDispCounterMarker&&preceding @Tagged tag + @NumDispCounterMarker val { @NumDispNum tag } + @NumberMarker @Tag { tag } @Value { @NumDispNum tag } + } + + def @NN + { + @NumDispCounterMarker&&preceding @Open { @DisplayNumStyle val } + } + + def @Do + left x + right y + { + x @Case { + { No None } @Yield @Null + else @Yield y + } + } + + def @BeginDisplayCounter + left condition + right prefix + { + condition @Do @NumDispCounterMarker val { prefix @Join 0 } + } + + + ########################################################################### + # # + # Galleys that carry displays to their places. # + # # + ########################################################################### + + def @DispPlace { @Galley } + + def @Disp into { @DispPlace&&preceding } + right x + { + x + } + + def @NDisp into { @DispPlace&&preceding } + named @Tag {} + right x + { + @OneRow { + @NumDispCounterIncrement @Tag + @PageMark @Tag + ^// + @OneRow x + } + } + + def @ADisp into { @AlignedPlace&&preceding } + right x + { + x + } + + def @ANDisp into { @AlignedPlace&&preceding } + named @Tag {} + right x + { + @OneRow { + @NumDispCounterIncrement @Tag + @PageMark @Tag + ^/ + @OneRow x + } + } + + + ########################################################################### + # # + # Displays and raw displays. # + # # + ########################################################################### + + macro @G { |@DefaultIndent } + macro @LG { | } + macro @IG { |@DisplayIndent } + macro @CG { |0.5rt } + macro @RG { |1.0rt } + macro @QR { @DisplayIndent @Wide { |1rt @NN } } + macro @DX { @DispPlace } + macro @DY { @Disp } + macro @AX { @APlace } + macro @AY { @ADisp } + macro @NY { @NDisp } + macro @MY { @ANDisp } + + macro @D @Display { @DP @G @DX | @DP // @DY } + macro @LD @LeftDisplay { @DP @LG @DX | @DP // @DY } + macro @ID @IndentedDisplay { @DP @IG @DX | @DP // @DY } + macro @QD @QuotedDisplay { @DP @IG @DX @IG @DP // @DY } + macro @CD @CentredDisplay + @CenteredDisplay { @DP @CG @DX | @DP // @DY } + macro @RightDisplay { @DP @RG @DX | @DP // @DY } + + + macro @AD @AlignedDisplay { @DP @G @AX | @DP // @AY } + macro @LAD @LeftAlignedDisplay { @DP @LG @AX | @DP // @AY } + macro @IAD @IndentedAlignedDisplay { @DP @IG @AX | @DP // @AY } + macro @QAD @QuotedAlignedDisplay { @DP @IG @AX @IG @DP // @AY } + macro @CAD @CentredAlignedDisplay + @CenteredAlignedDisplay { @DP @CG @AX | @DP // @AY } + macro @RightAlignedDisplay { @DP @RG @AX | @DP // @AY } + + macro @ND @NumberedDisplay { @DP @G @DX |1rt @NN @DP // @NY } + macro @LND @LeftNumberedDisplay { @DP @LG @DX |1rt @NN @DP // @NY } + macro @IND @IndentedNumberedDisplay { @DP @IG @DX |1rt @NN @DP // @NY } + macro @QND @QuotedNumberedDisplay { @DP @IG @DX |1rt @QR @DP // @NY } + macro @CND @CentredNumberedDisplay + @CenteredNumberedDisplay { @DP @CG @DX |1rt @NN @DP // @NY } + macro @RightNumberedDisplay { @DP @RG @DX |1rt @NN @DP // @NY } + + macro @AND @AlignedNumberedDisplay { @DP @G @AX |1rt @NN @DP // @MY } + macro @LAND @LeftAlignedNumberedDisplay { @DP @LG @AX |1rt @NN @DP // @MY } + macro @IAND @IndentedAlignedNumberedDisplay{ @DP @IG @AX |1rt @NN @DP // @MY } + macro @QAND @QuotedAlignedNumberedDisplay { @DP @IG @AX |1rt @QR @DP // @MY } + macro @CAND @CentredAlignedNumberedDisplay + @CenteredAlignedNumberedDisplay{ @DP @CG @AX |1rt @NN @DP // @MY } + macro @RightAlignedNumberedDisplay { @DP @RG @AX |1rt @NN @DP // @MY } + + + macro @RD @RawDisplay { @G @DX | // @DY } + macro @RLD @RawLeftDisplay { @LG @DX | // @DY } + macro @RID @RawIndentedDisplay { @IG @DX | // @DY } + macro @RQD @RawQuotedDisplay { @IG @DX @IG | // @DY } + macro @RCD @RawCentredDisplay + @RawCenteredDisplay { @CG @DX | | // @DY } + macro @RRD @RawRightDisplay { @RG @DX | // @DY } + + + macro @RAD @RawAlignedDisplay { @G @AX | // @AY } + macro @RLAD @RawLeftAlignedDisplay { @LG @AX | // @AY } + macro @RIAD @RawIndentedAlignedDisplay { @IG @AX | // @AY } + macro @RQAD @RawQuotedAlignedDisplay { @IG @AX @IG | // @AY } + macro @RCAD @RawCentredAlignedDisplay + @RawCenteredAlignedDisplay { @CG @AX | // @AY } + macro @RRAD @RawRightAlignedDisplay { @RG @AX | // @AY } + + macro @RND @RawNumberedDisplay { @G @DX |1rt @NN // @NY } + macro @RLND @RawLeftNumberedDisplay { @LG @DX |1rt @NN // @NY } + macro @RIND @RawIndentedNumberedDisplay { @IG @DX |1rt @NN // @NY } + macro @RQND @RawQuotedNumberedDisplay { @IG @DX |1rt @QR // @NY } + macro @RCND @RawCentredNumberedDisplay + @RawCenteredNumberedDisplay { @CG @DX |1rt @NN // @NY } + macro @RRND @RawRightNumberedDisplay { @RG @DX |1rt @NN // @NY } + + macro @RAND @RawAlignedNumberedDisplay { @G @AX |1rt @NN // @MY } + macro @RLAND @RawLeftAlignedNumberedDisplay { @LG @AX |1rt @NN // @MY } + macro @RIAND @RawIndentedAlignedNumberedDisplay { @IG @AX |1rt @NN // @MY } + macro @RQAND @RawQuotedAlignedNumberedDisplay { @IG @AX |1rt @QR // @MY } + macro @RCAND @RawCentredAlignedNumberedDisplay + @RawCenteredAlignedNumberedDisplay { @CG @AX |1rt @NN // @MY } + macro @RRAND @RawRightAlignedNumberedDisplay{ @RG @AX |1rt @NN // @MY } + + + ########################################################################### + # # + # Lists and raw lists. # + # # + ########################################################################### + + + def @ItemPlace { @Galley } + def @InterruptItemPlace { @Galley } + def @NewPageItemPlace { @Galley } + def @TagPlace { @Galley } + def @EndListPlace { @Galley } + + def @RawList + named style right num { num } + named type right num { num } + named gap { @ListGap } + named indent { @ListIndent } + named itemindent { 0c } + named rightindent { @ListRightIndent } + named labelwidth { @ListLabelWidth } + named start { 1 } + { + def @MakeList right num + { + def @NormalItem + { + |indent + labelwidth @Wide { + # @NumberMarker @Value {style num} {style num} &0io + @NumberMarker @Value {num} {style type num} &0io + } + |itemindent @ItemPlace |rightindent + //gap @MakeList @NotRevealed @Next num + } + + def @InterruptItem + { + @InterruptItemPlace + //gap @MakeList @NotRevealed num + } + + def @NewPageItem + { + @NewPageItemPlace + //1.1b @MakeList @NotRevealed num + } + + @OneOf + { + @NormalItem + @InterruptItem + @NewPageItem + } + } + + def @ListGalleyPlace { @Galley } + + def @ListGalley into { @ListGalleyPlace&&preceding } + { + @MakeList start // @EndListPlace + } + + @ListGalleyPlace + // + @ListGalley + } + + def listitem into { @ItemPlace&&preceding } + named @Tag {} + right x + { + @NumberMarker&&preceding @Tagged @Tag + // x + // @PageMark @Tag # weird placement, but @PageMark is definite now + } + + def droplistitem into { @ItemPlace&&preceding } + named @Tag {} + right x + { + @NumberMarker&&preceding @Tagged @Tag + // @PageMark @Tag + //1vx x + } + + def tagitem into { @ItemPlace&&preceding } + named tag {} + right x + { + def sendtag into { @TagPlace&&preceding } { tag } + + sendtag // x + } + + def droptagitem into { @ItemPlace&&preceding } + named tag {} + right x + { + def sendtag into { @TagPlace&&preceding } { tag } + + sendtag // //1vx x + } + + def endlist force into { @EndListPlace&&preceding } {} + + def listnewpage into { @NewPageItemPlace&&preceding } {} + + def listinterruptitem into { @InterruptItemPlace&&preceding } + right x + { + x + } + + + macro @LI @ListItem { // listitem } + macro @LII @ListInterruptItem { // listinterruptitem } + macro @LNP @ListNewPage { // listnewpage } + macro @DLI @DropListItem { // droplistitem } + macro @TI @TagItem { // tagitem tag } + macro @DTI @DropTagItem { // droptagitem tag } + macro @REL @RawEndList { // & endlist // } + macro @EL @EndList { // & endlist @LOP } + + + macro @RLL @RawLeftList { @RawList style {} + labelwidth { 0c } } + macro @RIL @RawIndentedList { @RawList style {} } + macro @RQL @RawQuotedList { @RawList style {} + rightindent {@DisplayIndent}} + macro @RCL @RawCentredList { @RawList style {} + labelwidth {0c} + itemindent {0.5rt} } + macro @RawCenteredList { @RawCentredList } + macro @RNL @RawNumberedList { @RawList style { num. } } + macro @RPNL @RawParenNumberedList { @RawList style { (num) } } + macro @RRL @RawRomanList { @RawList type { @Roman&&num } + style { num. } } + macro @RPRL @RawParenRomanList { @RawList type { @Roman&&num } + style { (num) } } + macro @RUCRL @RawUCRomanList { @RawList type { @UCRoman&&num } + style { num. } } + macro @RPUCRL @RawParenUCRomanList { @RawList type { @UCRoman&&num } + style { (num) } } + macro @RAL @RawAlphaList { @RawList type { @Alpha&&num } + style { num. } } + macro @RPAL @RawParenAlphaList { @RawList type { @Alpha&&num } + style { (num) } } + macro @RUCAL @RawUCAlphaList { @RawList type { @UCAlpha&&num } + style { num. } } + macro @RPUCAL @RawParenUCAlphaList { @RawList type { @UCAlpha&&num } + style { (num) } } + macro @RBL @RawBulletList { @RawList style { @Bullet } } + macro @RSL @RawStarList { @RawList style { @Star } } + macro @RDL @RawDashList { @RawList style { -- } } + macro @RTL @RawTaggedList { @RawList type { @TagPlace } } + macro @RWTL @RawWideTaggedList { @RawList type { @TagPlace } + labelwidth { @WideIndent } } + macro @RVWTL @RawVeryWideTaggedList{ @RawList type { @TagPlace } + labelwidth { @VeryWideIndent } } + + + macro @L @List { @LOP @RawList } + macro @LL @LeftList { @LOP @RawLeftList } + macro @IL @IndentedList { @LOP @RawIndentedList } + macro @QL @QuotedList { @LOP @RawQuotedList } + macro @CL @CentredList { @LOP @RawCentredList } + macro @CenteredList { @LOP @RawCenteredList } + macro @NL @NumberedList { @LOP @RawNumberedList } + macro @PNL @ParenNumberedList { @LOP @RawParenNumberedList } + macro @RL @RomanList { @LOP @RawRomanList } + macro @PRL @ParenRomanList { @LOP @RawParenRomanList } + macro @UCRL @UCRomanList { @LOP @RawUCRomanList } + macro @PUCRL @ParenUCRomanList { @LOP @RawParenUCRomanList } + macro @AL @AlphaList { @LOP @RawAlphaList } + macro @PAL @ParenAlphaList { @LOP @RawParenAlphaList } + macro @UCAL @UCAlphaList { @LOP @RawUCAlphaList } + macro @PUCAL @ParenUCAlphaList { @LOP @RawParenUCAlphaList } + macro @BL @BulletList { @LOP @RawBulletList } + macro @SL @StarList { @LOP @RawStarList } + macro @DL @DashList { @LOP @RawDashList } + macro @TL @TaggedList { @LOP @RawTaggedList } + macro @WTL @WideTaggedList { @LOP @RawWideTaggedList } + macro @VWTL @VeryWideTaggedList { @LOP @RawVeryWideTaggedList } + +@End @BasicSetup diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/bsf.lpg b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/bsf.lpg new file mode 100755 index 0000000000000..9183b69edd459 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/bsf.lpg @@ -0,0 +1,139 @@ +%%BeginResource: procset LoutBasicSetup + +% width height linethickness louteuro - +% draw a Euro symbol of this width and height with this line thickness +/louteuro { + 20 dict begin + /eurothick exch def + /euroheight exch def + /eurowidth exch def + /eurostrokewidth euroheight 0.8 mul def + /eurostep eurothick 60 cos mul 60 sin div def + /eurotheta 40 def + + % llx lly width thickness louteurobox - + % draw angled box starting at (llx, lly) with given width and thickness + /louteurobox + { + /euroboxthick exch def + /euroboxwidth exch def + newpath moveto euroboxwidth 0 rlineto + eurostep euroboxthick rlineto + euroboxwidth neg 0 rlineto closepath fill + } def + + % lower cross stroke + 0 euroheight 2 div eurothick 1.5 mul sub + eurostrokewidth eurothick louteurobox + + % upper cross stroke + 0 euroheight 2 div eurothick 0.5 mul add + eurostrokewidth eurostep 2 mul add eurothick louteurobox + + % circular part + /eurohctr eurowidth euroheight 2 div eurotheta cos mul sub def + /eurovctr euroheight 2 div def + newpath + eurohctr eurovctr eurovctr eurotheta 350 eurotheta sub arc + eurohctr eurovctr eurovctr eurothick sub 365 eurotheta sub eurotheta arcn + closepath fill + end +} def + +% path for @FullWidthRule symbol +/LoutRule +{ 0 0 moveto xsize 0 lineto +} def + +% path for @Box symbol +/LoutBox +{ 0 0 moveto xsize 0 lineto + xsize ysize lineto 0 ysize lineto + closepath +} def + +% path for @CurveBox symbol +/LoutCurveBox +{ xmark 0 moveto + xsize xmark sub xmark xmark 270 360 arc + xsize xmark sub ysize xmark sub xmark 0 90 arc + xmark ysize xmark sub xmark 90 180 arc + xmark xmark xmark 180 270 arc + closepath +} def + +% path for @ShadowBox symbol +/LoutShadowBox +{ xmark 2 mul 0 moveto xsize 0 lineto + xsize ysize xmark 2 mul sub lineto + xsize xmark sub ysize xmark 2 mul sub lineto + xsize xmark sub xmark lineto + xmark 2 mul xmark lineto + closepath +} def + +% set up dictionary containing margin note data: parity LoutMargSet - +/LoutMargSet +{ /LoutMargDict 12 dict def + LoutMargDict begin + /parity exch def + /matr matrix currentmatrix def + /rightx xsize def + /lefty ysize def % highest allowable point for top of next left note + /righty ysize def % highest allowable point for top of next right note + /max { 2 copy gt { pop } { exch pop } ifelse } def + /min { 2 copy lt { pop } { exch pop } ifelse } def + end +} def + +%translate coordinate system for marginal notes: type LoutMargShift - +% where type 0 is left margin, 1 is right margin, 2 is outer, 3 is inner +/LoutMargShift +{ LoutMargDict begin + + % y coordinate of top of note, in margin coords, before vertical adjust + 0 ysize transform matr itransform exch pop + + % decide whether left or right margin based on type and parity + exch [ 0 1 parity 1 parity sub ] exch get 0 eq + { + % left margin: adjust top of note downwards if overlaps previous note + lefty min + + % bottom of note is new lefty position and also translate position + ysize sub dup /lefty exch def + + % want right edge of note at coordinate zero + xsize neg exch + } + { + % right margin: adjust top of note downwards if overlaps previous note + righty min + + % bottom of note is new righty position and also translate position + ysize sub dup /righty exch def + + % want left edge of note at coordinate rightx + rightx exch + } ifelse + + % stack now contains coord of bottom left corner in margin coordinates + matr setmatrix translate + end +} def + +% create LoutPageDict with left, right, foot, top for @Place symbol users +/LoutPageSet +{ + /LoutPageDict 5 dict def + LoutPageDict begin + /matr matrix currentmatrix def + /left 0 def + /right xsize def + /foot 0 def + /top ysize def + end + +} def + +%%EndResource diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/cprint b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/cprint new file mode 100755 index 0000000000000..4c15d72fefa51 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/cprint @@ -0,0 +1,109 @@ +############################################################################### +# # +# Lout setup file for C and C++ program printing # +# # +# Version 3.0 # +# Jeffrey H. Kingston # +# 10 April 2000 # +# # +############################################################################### + + +############################################################################### +# # +# @SysInclude line # +# # +# This line causes Lout to read the definitions for this programming # +# language, and should not be touched. # +# # +############################################################################### + +@SysInclude { cprintf } + + +############################################################################### +# # +# @Use clause # +# # +# To change the default value of any option, delete the # at the start of # +# its line and change the value between braces. # +# # +############################################################################### + +@Use { @CPSetup + # pipe { } # pipe source through this + # numbered { No } # No, Yes, or a line number + # style { fixed } # fixed, varying, or symbol + + # the following options apply when style is "fixed" + + # fixedfont { Courier } # font family + # fixedsize { -1.0p } # font size + # fixedline { 1.0vx } # line-space + # fixedtabin { 8 } # tab interval + # fixedtabout { 8s } # tab width + + # fixedidentifiers { Base } # identifier face + # fixedkeywords { Base } # keyword face + # fixedoperators { Base } # operator face + # fixednumbers { Base } # number face + # fixedstrings { Base } # string face + # fixedcomments { Base } # comment face + # fixedlinenumbers { Base } # line numbers face + + # fixedidentifiersformat { @Body } # identifiers format + # fixedkeywordsformat { @Body } # keywords format + # fixedoperatorsformat { @Body } # operators format + # fixednumbersformat { @Body } # numbers format + # fixedstringsformat { @Body } # strings format + # fixedcommentsformat { @Body } # comments format + # fixedlinenumbersformat { @Body } # line numbers format + + # the following options apply when style is "varying" + + # varyingfont { } # font family + # varyingsize { 1.0f } # font size + # varyingline { 1.0vx } # line-space + # varyingtabin { 8 } # tab interval + # varyingtabout { 3f } # tab width + + # varyingidentifiers { Slope } # identifier face + # varyingkeywords { Bold } # keyword face + # varyingoperators { Base } # operator face + # varyingnumbers { Base } # number face + # varyingstrings { Slope } # string face + # varyingcomments { Base } # comment face + # varyinglinenumbers { Base } # line numbers face + + # varyingidentifiersformat { @Body } # identifiers format + # varyingkeywordsformat { @Body } # keywords format + # varyingoperatorsformat { @Body } # operators format + # varyingnumbersformat { @Body } # numbers format + # varyingstringsformat { @Body } # strings format + # varyingcommentsformat { @Body } # comments format + # varyinglinenumbersformat { @Body } # line numbers format + + # the following options apply when style is "symbol" + + # symbolfont { } # font family + # symbolsize { 1.0f } # font size + # symbolline { 1.0vx } # line-space + # symboltabin { 8 } # tab interval + # symboltabout { 3f } # tab width + + # symbolidentifiers { Slope } # identifier face + # symbolkeywords { Bold } # keyword face + # symboloperators { Base } # operator face + # symbolnumbers { Base } # number face + # symbolstrings { Slope } # string face + # symbolcomments { Base } # comment face + # symbollinenumbers { Base } # line numbers face + + # symbolidentifiersformat { @Body } # identifiers format + # symbolkeywordsformat { @Body } # keywords format + # symboloperatorsformat { @Body } # operators format + # symbolnumbersformat { @Body } # numbers format + # symbolstringsformat { @Body } # strings format + # symbolcommentsformat { @Body } # comments format + # symbollinenumbersformat { @Body } # line numbers format +} diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/cprintf b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/cprintf new file mode 100755 index 0000000000000..0307c29ba3bae --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/cprintf @@ -0,0 +1,390 @@ + +############################################################################### +# # +# Lout @CPSetup package for formatting C and C++ programs # +# # +# Version 3.0 # +# Jeffrey H. Kingston # +# 10 April 2000 # +# # +# This package uses a filtered body parameter to convert program source # +# code into Lout source. The filter program is prg2lout, which is # +# distributed with Lout and should be compiled and installed wherever # +# Lout itself is. # +# # +############################################################################### + +export @CP +def @CPSetup + named pipe { } # pipe through this + named numbered { No } # numbered lines? + named style + named @OrIfPlain left x right y + { @BackEnd @Case { PlainText @Yield y else @Yield x } } + { fixed } # print style + + # the following options apply when style is "fixed" + named fixedfont { Courier }# font family + named fixedsize { -1.0p } # font size + named fixedline { 1.0vx } # line-space + named fixedtabin { 8 } # tab interval + named fixedtabout { 8s } # tab width + + named fixedidentifiers { Base } # identifier face + named fixedkeywords { Base } # keyword face + named fixedoperators { Base } # operator face + named fixednumbers { Base } # number face + named fixedstrings { Base } # string face + named fixedcomments { Base } # comment face + named fixedlinenumbers { Base } # line numbers face + + named fixedidentifiersformat right @Body { @Body } # identifier format + named fixedkeywordsformat right @Body { @Body } # keyword format + named fixedoperatorsformat right @Body { @Body } # operators format + named fixednumbersformat right @Body { @Body } # number format + named fixedstringsformat right @Body { @Body } # string format + named fixedcommentsformat right @Body { @Body } # comment format + named fixedlinenumbersformat right @Body { @Body } # line nums format + + # the following options apply when style is "varying" + named varyingfont { } # font family + named varyingsize { 1.0f } # font size + named varyingline { 1.0vx } # line-space + named varyingtabin { 8 } # tab interval + named varyingtabout { 3f } # tab width + + named varyingidentifiers { Slope } # identifier face + named varyingkeywords { Bold } # keyword face + named varyingoperators { Base } # operator face + named varyingnumbers { Base } # number face + named varyingstrings { Slope } # string face + named varyingcomments { Base } # comment face + named varyinglinenumbers { Base } # line numbers face + + named varyingidentifiersformat right @Body { @Body } # identifier format + named varyingkeywordsformat right @Body { @Body } # keyword format + named varyingoperatorsformat right @Body { @Body } # operators format + named varyingnumbersformat right @Body { @Body } # number format + named varyingstringsformat right @Body { @Body } # string format + named varyingcommentsformat right @Body { @Body } # comment format + named varyinglinenumbersformat right @Body { @Body } # line nums format + + # the following options apply when style is "symbol" + named symbolfont { } # font family + named symbolsize { 1.0f } # font size + named symbolline { 1.0vx } # line-space + named symboltabin { 8 } # tab interval + named symboltabout { 3f } # tab width + + named symbolidentifiers { Slope } # identifier face + named symbolkeywords { Bold } # keyword face + named symboloperators { Base } # operator face + named symbolnumbers { Base } # number face + named symbolstrings { Slope } # string face + named symbolcomments { Base } # comment face + named symbollinenumbers { Base } # line numbers face + + named symbolidentifiersformat right @Body { @Body } # identifier format + named symbolkeywordsformat right @Body { @Body } # keyword format + named symboloperatorsformat right @Body { @Body } # operators format + named symbolnumbersformat right @Body { @Body } # number format + named symbolstringsformat right @Body { @Body } # string format + named symbolcommentsformat right @Body { @Body } # comment format + named symbollinenumbersformat right @Body { @Body } # line nums format + +@Begin + + export + + @PI @PK @PO @PN @PS @PC @PL @PA @PM @PD + @A "$>" + + def @CP + named style { style } # style + named numbered { numbered } # want numbered lines? + named pipe { pipe } # pipe through this first + named font { dft } # font family + named size { dft } # font size + named line { dft } # line-space + named tabin { dft } # tab interval + named tabout { dft } # tab width + named identifiers { dft } # ident. font + named keywords { dft } # keyword font + named operators { dft } # operator font + named numbers { dft } # number font + named strings { dft } # string font + named comments { dft } # comment font + named linenumbers { dft } # line numbers font + body @Body # filtered, see below + @Begin + + def @Test # returns x unless x is dft + left x + named iffixed {} + named ifvarying {} + named ifsymbol {} + { + x @Case { + dft @Yield { + style @Case { + fixed @Yield { iffixed } + varying @Yield { ifvarying } + symbol @Yield { ifsymbol } + } + } + else @Yield x + } + } + + + def @Else # returns x, or y if x is dft + left x + right y + { + x @Case { + dft @Yield y + else @Yield x + } + } + + + def @InitTab + { + tabin @Test + iffixed { fixedtabin } + ifvarying { varyingtabin } + ifsymbol { symboltabin } + } + + + def @InitTabWidth + { + tabout @Test + iffixed { fixedtabout } + ifvarying { varyingtabout } + ifsymbol { symboltabout } + } + + + def @Filter + { + def wantnumbered + { + numbered @Case { + { No no } @Yield "" + { Yes yes } @Yield "-L" + else @Yield { "-L"numbered } + } + } + + pipe @Case { + "" @Yield { + "prg2lout -r -lC" wantnumbered -i{@FilterIn} + -o{@FilterOut} -e{@FilterErr} + -t{@InitTab} -T{@InitTabWidth} + } + else @Yield { + "cat" @FilterIn "|" pipe "|" + "prg2lout -r -lC" wantnumbered -o{@FilterOut} + -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth} + } + } + } + + + def @InitFontFamily + { + font @Test + iffixed { fixedfont } + ifvarying { varyingfont } + ifsymbol { symbolfont } + } + + + def @InitSize + { + size @Test + iffixed { fixedsize } + ifvarying { varyingsize } + ifsymbol { symbolsize } + } + + + def @InitLine + { + line @Test + iffixed { fixedline } + ifvarying { varyingline } + ifsymbol { symbolline } + } + + + def @PI # for formatting identifiers + right x + { + style @Case { + fixed @Yield fixedidentifiersformat { + { identifiers @Else fixedidentifiers } @Font x + } + varying @Yield varyingidentifiersformat { + { identifiers @Else varyingidentifiers } @Font x + } + symbol @Yield symbolidentifiersformat { + { identifiers @Else symbolidentifiers } @Font x + } + } + } + + + def @PK # for formatting keywords + right x + { + style @Case { + fixed @Yield fixedkeywordsformat { + { keywords @Else fixedkeywords } @Font x + } + varying @Yield varyingkeywordsformat { + { keywords @Else varyingkeywords } @Font x + } + symbol @Yield symbolkeywordsformat { + { keywords @Else symbolkeywords } @Font x + } + } + } + + + def @PO # for formatting operators + right x + { + style @Case { + fixed @Yield fixedoperatorsformat { + { operators @Else fixedoperators } @Font x + } + varying @Yield varyingoperatorsformat { + { operators @Else varyingoperators } @Font x + } + symbol @Yield symboloperatorsformat { + { operators @Else symboloperators } @Font x + } + } + } + + + def @PN # for formatting numbers + right x + { + style @Case { + fixed @Yield fixednumbersformat { + { numbers @Else fixednumbers } @Font x + } + varying @Yield varyingnumbersformat { + { numbers @Else varyingnumbers } @Font x + } + symbol @Yield symbolnumbersformat { + { numbers @Else symbolnumbers } @Font x + } + } + } + + + def @PS # for formatting strings + right x + { + style @Case { + fixed @Yield fixedstringsformat { + { strings @Else fixedstrings } @Font x + } + varying @Yield varyingstringsformat { + { strings @Else varyingstrings } @Font x + } + symbol @Yield symbolstringsformat { + { strings @Else symbolstrings } @Font x + } + } + } + + + def @PC # for formatting comments + right x + { + style @Case { + fixed @Yield fixedcommentsformat { + { comments @Else fixedcomments } @Font x + } + varying @Yield varyingcommentsformat { + { comments @Else varyingcomments } @Font x + } + symbol @Yield symbolcommentsformat { + { comments @Else symbolcomments } @Font x + } + } + } + + + def @PL # for formatting line numbers + right x + { + style @Case { + fixed @Yield fixedlinenumbersformat { + { linenumbers @Else fixedlinenumbers } @Font x + } + varying @Yield varyinglinenumbersformat { + { linenumbers @Else varyinglinenumbers } @Font x + } + symbol @Yield symbollinenumbersformat { + { linenumbers @Else symbollinenumbers } @Font x + } + } + } + + + def @PA # for formatting asterisks + { + @PO @BackEnd @Case { + PlainText @Yield "*" + else @Yield { "0.5w" @VShift "*" } + } + } + + + def @PM # for formatting minus signs + { + @PO @BackEnd @Case { + PlainText @Yield "-" + else @Yield style @Case { + fixed @Yield "-" + else @Yield { { Symbol Base } @Font @Char "minus" } + } + } + } + + + def @PD # for formatting dots, if wanted larger + { + @PO @BackEnd @Case { + PlainText @Yield "." + else @Yield { "1.4f" @Font "+0.04f" @VShift "." &"0.05f" } + } + } + + + def @A # get characters from the Adobe Symbol font + left sym + right x + { + style @Case { + symbol @Yield { { Symbol Base } @Font @Char sym } + else @Yield { x } + } + } + + + macro "$>" { {} & } + + + { @InitFontFamily Base @InitSize } @Font + { @InitLine lines nohyphen } @Break @Body + + @End @CP + +@End @CPSetup diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/diag b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/diag new file mode 100755 index 0000000000000..92899757448f2 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/diag @@ -0,0 +1,479 @@ +############################################################################### +# # +# Lout setup file for diagram printing # +# # +# Jeffrey H. Kingston # +# 5 February 1999 # +# # +############################################################################### + + +############################################################################### +# # +# The @SysInclude { diagf } line # +# # +# This line causes Lout to read the definitions for diagrams, and should # +# not be touched. # +# # +############################################################################### + +@SysInclude { diagf } + + +############################################################################### +# # +# The @DiagSetup @Use clause # +# # +# To change the default value of any option, delete the # at the start of # +# its line and change the value between braces. # +# # +############################################################################### + +@Use { @DiagSetup + # save { no } + # maxlabels { 200 } + # title { (none) } + # titleformat { Italic @Font @Title //0.7f ||0.35f @Body } + + ############################################################################# + # # + # Node options # + # # + ############################################################################# + + # outline { box } + # margin { 0.6f } + # shadow { 0.4f } + # sides { 3 } + # angle { "dup 180 exch div" } # 180d / sides + # translate { } + # outlinestyle { solid } + # outlinedashlength { 0.2f } + # outlinewidth { 0.02f } + # paint { nopaint } + # font { } + # break { } + # format { @Body } + # valign { ctr } + # vsize { } + # vindent { ctr } + # vstrut { no } + # vmargin { } + # topmargin { } + # footmargin { } + # halign { ctr } + # hsize { } + # hindent { ctr } + # hstrut { no } + # hmargin { } + # leftmargin { } + # rightmargin { } + # nodelabel { } + # nodelabelmargin { 0.2f } + # nodelabelfont { "-2p" } + # nodelabelbreak { ragged nohyphen } + # nodelabelformat { @Body } + # nodelabelpos { } + # nodelabelprox { outside } + # nodelabelangle { horizontal } + # nodelabelctr { no } + # nodelabeladjust { 0 0 } + # alabel { } + # alabelmargin { } + # alabelfont { } + # alabelbreak { } + # alabelformat { } + # alabelpos { NE } + # alabelprox { } + # alabelangle { } + # alabelctr { } + # alabeladjust { } + # blabel { } + # blabelmargin { } + # blabelfont { } + # blabelbreak { } + # blabelformat { } + # blabelpos { NW } + # blabelprox { } + # blabelangle { } + # blabelctr { } + # blabeladjust { } + # clabel { } + # clabelmargin { } + # clabelfont { } + # clabelbreak { } + # clabelformat { } + # clabelpos { SW } + # clabelprox { } + # clabelangle { } + # clabelctr { } + # clabeladjust { } + # dlabel { } + # dlabelmargin { } + # dlabelfont { } + # dlabelbreak { } + # dlabelformat { } + # dlabelpos { SE } + # dlabelprox { } + # dlabelangle { } + # dlabelctr { } + # dlabeladjust { } + + ############################################################################# + # # + # @ANode options # + # # + ############################################################################# + + # aoutline { box } + # amargin { 0.6f } + # ashadow { 0.4f } + # asides { 3 } + # aangle { "dup 180 exch div" } # 180d / sides + # atranslate { } + # aoutlinestyle { solid } + # aoutlinedashlength { 0.2f } + # aoutlinewidth { 0.02f } + # apaint { nopaint } + # afont { } + # abreak { } + # aformat { @Body } + # avalign { ctr } + # avsize { } + # avindent { ctr } + # avstrut { no } + # avmargin { } + # atopmargin { } + # afootmargin { } + # ahalign { ctr } + # ahsize { } + # ahindent { ctr } + # ahstrut { no } + # ahmargin { } + # aleftmargin { } + # arightmargin { } + # anodelabel { } + # anodelabelmargin { 0.2f } + # anodelabelfont { "-2p" } + # anodelabelbreak { ragged nohyphen } + # anodelabelformat { @Body } + # anodelabelpos { } + # anodelabelprox { outside } + # anodelabelangle { horizontal } + # anodelabelctr { no } + # anodelabeladjust { 0 0 } + # aalabel { } + # aalabelmargin { } + # aalabelfont { } + # aalabelbreak { } + # aalabelformat { } + # aalabelpos { NE } + # aalabelprox { } + # aalabelangle { } + # aalabelctr { } + # aalabeladjust { } + # ablabel { } + # ablabelmargin { } + # ablabelfont { } + # ablabelbreak { } + # ablabelformat { } + # ablabelpos { NW } + # ablabelprox { } + # ablabelangle { } + # ablabelctr { } + # ablabeladjust { } + # aclabel { } + # aclabelmargin { } + # aclabelfont { } + # aclabelbreak { } + # aclabelformat { } + # aclabelpos { SW } + # aclabelprox { } + # aclabelangle { } + # aclabelctr { } + # aclabeladjust { } + # adlabel { } + # adlabelmargin { } + # adlabelfont { } + # adlabelbreak { } + # adlabelformat { } + # adlabelpos { SE } + # adlabelprox { } + # adlabelangle { } + # adlabelctr { } + # adlabeladjust { } + + ############################################################################# + # # + # @BNode options # + # # + ############################################################################# + + # boutline { box } + # bmargin { 0.6f } + # bshadow { 0.4f } + # bsides { 3 } + # bangle { "dup 180 exch div" } # 180d / sides + # btranslate { } + # boutlinestyle { solid } + # boutlinedashlength { 0.2f } + # boutlinewidth { 0.02f } + # bpaint { nopaint } + # bfont { } + # bbreak { } + # bformat { @Body } + # bvalign { ctr } + # bvsize { } + # bvindent { ctr } + # bvstrut { no } + # bvmargin { } + # btopmargin { } + # bfootmargin { } + # bhalign { ctr } + # bhsize { } + # bhindent { ctr } + # bhstrut { no } + # bhmargin { } + # bleftmargin { } + # brightmargin { } + # bnodelabel { } + # bnodelabelmargin { 0.2f } + # bnodelabelfont { "-2p" } + # bnodelabelbreak { ragged nohyphen } + # bnodelabelformat { @Body } + # bnodelabelpos { } + # bnodelabelprox { outside } + # bnodelabelangle { horizontal } + # bnodelabelctr { no } + # bnodelabeladjust { 0 0 } + # balabel { } + # balabelmargin { } + # balabelfont { } + # balabelbreak { } + # balabelformat { } + # balabelpos { NE } + # balabelprox { } + # balabelangle { } + # balabelctr { } + # balabeladjust { } + # bblabel { } + # bblabelmargin { } + # bblabelfont { } + # bblabelbreak { } + # bblabelformat { } + # bblabelpos { NW } + # bblabelprox { } + # bblabelangle { } + # bblabelctr { } + # bblabeladjust { } + # bclabel { } + # bclabelmargin { } + # bclabelfont { } + # bclabelbreak { } + # bclabelformat { } + # bclabelpos { SW } + # bclabelprox { } + # bclabelangle { } + # bclabelctr { } + # bclabeladjust { } + # bdlabel { } + # bdlabelmargin { } + # bdlabelfont { } + # bdlabelbreak { } + # bdlabelformat { } + # bdlabelpos { SE } + # bdlabelprox { } + # bdlabelangle { } + # bdlabelctr { } + # bdlabeladjust { } + + ############################################################################# + # # + # @CNode options # + # # + ############################################################################# + + # coutline { box } + # cmargin { 0.6f } + # cshadow { 0.4f } + # csides { 3 } + # cangle { "dup 180 exch div" } # 180d / sides + # ctranslate { } + # coutlinestyle { solid } + # coutlinedashlength { 0.2f } + # coutlinewidth { 0.02f } + # cpaint { nopaint } + # cfont { } + # cbreak { } + # cformat { @Body } + # cvalign { ctr } + # cvsize { } + # cvindent { ctr } + # cvstrut { no } + # cvmargin { } + # ctopmargin { } + # cfootmargin { } + # chalign { ctr } + # chsize { } + # chindent { ctr } + # chstrut { no } + # chmargin { } + # cleftmargin { } + # crightmargin { } + # cnodelabel { } + # cnodelabelmargin { 0.2f } + # cnodelabelfont { "-2p" } + # cnodelabelbreak { ragged nohyphen } + # cnodelabelformat { @Body } + # cnodelabelpos { } + # cnodelabelprox { outside } + # cnodelabelangle { horizontal } + # cnodelabelctr { no } + # cnodelabeladjust { 0 0 } + # calabel { } + # calabelmargin { } + # calabelfont { } + # calabelbreak { } + # calabelformat { } + # calabelpos { NE } + # calabelprox { } + # calabelangle { } + # calabelctr { } + # calabeladjust { } + # cblabel { } + # cblabelmargin { } + # cblabelfont { } + # cblabelbreak { } + # cblabelformat { } + # cblabelpos { NW } + # cblabelprox { } + # cblabelangle { } + # cblabelctr { } + # cblabeladjust { } + # cclabel { } + # cclabelmargin { } + # cclabelfont { } + # cclabelbreak { } + # cclabelformat { } + # cclabelpos { SW } + # cclabelprox { } + # cclabelangle { } + # cclabelctr { } + # cclabeladjust { } + # cdlabel { } + # cdlabelmargin { } + # cdlabelfont { } + # cdlabelbreak { } + # cdlabelformat { } + # cdlabelpos { SE } + # cdlabelprox { } + # cdlabelangle { } + # cdlabelctr { } + # cdlabeladjust { } + + ############################################################################# + # # + # Link options # + # # + ############################################################################# + + # path { line } + # from { 0, 0 } + # to { 1, 1 } + # bias { 2.0f } + # fbias { 2.0f } + # tbias { 2.0f } + # radius { 1.0f } + # xindent { 0.8f } + # zindent { 0.8f } + # pathstyle { solid } + # pathdashlength { 0.2f } + # pathwidth { 0.02f } + # pathgap { 0.04f } + # arrow { no } + # arrowstyle { solid } + # arrowwidth { 0.45f } + # arrowlength { 0.6f } + # linklabel { } + # linklabelmargin { 0.2f } + # linklabelfont { "-2p" } + # linklabelbreak { ragged nohyphen } + # linklabelformat { @Body } + # linklabelpos { } + # linklabelprox { above } + # linklabelangle { horizontal } + # linklabelctr { no } + # linklabeladjust { 0 0 } + # xlabel { } + # xlabelmargin { } + # xlabelfont { } + # xlabelbreak { } + # xlabelformat { } + # xlabelpos { LFROM } + # xlabelprox { } + # xlabelangle { } + # xlabelctr { } + # xlabeladjust { } + # ylabel { } + # ylabelmargin { } + # ylabelfont { } + # ylabelbreak { } + # ylabelformat { } + # ylabelpos { LMID } + # ylabelprox { } + # ylabelangle { } + # ylabelctr { yes } + # ylabeladjust { } + # zlabel { } + # zlabelmargin { } + # zlabelfont { } + # zlabelbreak { } + # zlabelformat { } + # zlabelpos { LTO } + # zlabelprox { } + # zlabelangle { } + # zlabelctr { } + # zlabeladjust { } + # fromlabel { } + # fromlabelmargin { 0f } + # fromlabelfont { "-2p" } + # fromlabelbreak { ragged nohyphen } + # fromlabelformat { @Body } + # fromlabelpos { FROM } + # fromlabelprox { E } + # fromlabelangle { antiparallel } + # fromlabelctr { no } + # fromlabeladjust { 0 0 } + # tolabel { } + # tolabelmargin { 0f } + # tolabelfont { "-2p" } + # tolabelbreak { ragged nohyphen } + # tolabelformat { @Body } + # tolabelpos { TO } + # tolabelprox { E } + # tolabelangle { parallel } + # tolabelctr { no } + # tolabeladjust { 0 0 } + + ############################################################################# + # # + # Tree options # + # # + ############################################################################# + + # treehsep { 0.5f } + # treevsep { 0.5f } + # treehindent { ctr } + # treevindent { ctr } + + ############################################################################# + # # + # Syntax diagram options # + # # + ############################################################################# + + # syntaxgap { 0.35f } + # syntaxbias { 1.0f } + # syntaxradius { 0.3f } + +} diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/diagf b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/diagf new file mode 100755 index 0000000000000..999c82ef6f107 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/diagf @@ -0,0 +1,6459 @@ + +############################################################################### +# # +# Lout @Diag package for drawing diagrams # +# Version 1.1 (February 2000) # +# Jeffrey H. Kingston # +# # +# Version 1.0 (July 1996) # +# Based on Version 2.0 of the @Fig package (Jeffrey H. Kingston, Dec 1992). # +# # +############################################################################### + +@SysPrependGraphic { diagf.lpg } +@SysInclude { diagf.etc } + +############################################################################### +# # +# @DiagSetup symbol # +# # +############################################################################### + +export @Diag @SyntaxDiag +def @DiagSetup + named save { no } + named maxlabels { 200 } + named title { "--titledft--" } + named titleformat + left @Title + right @Body + { Italic @Font @Title //0.7f ||0.35f @Body } + + ########################################################################### + # # + # @Node options of @DiagSetup # + # # + ########################################################################### + + import @Geometry named outline + named margin {} + named shadow {} + named sides {} + named angle {} + { box } + named margin { 0.6f } + import @Geometry named shadow { 0.4f } + import @Geometry named sides { 3 } + import @Geometry named angle { "dup 180 exch div" } + named translate { } + named outlinestyle + named solid { "/ldiagsolid" } + named dashed { "/ldiagdashed" } + named cdashed { "/ldiagcdashed" } + named dotted { "/ldiagdotted" } + named noline { "/ldiagnoline" } + { solid } + import @Geometry named outlinedashlength { 0.2f } + import @Geometry named outlinewidth + named thin { 0.04 ft } + named medium { 0.08 ft } + named thick { 0.12 ft } + { thin } + named paint { nopaint } + named font { } + named break { } + named format right @Body { @Body } + + named valign { ctr } + named vsize { } + named vindent { ctr } + named vstrut + named no { 0.0f } + named yes { 1.0f } + { no } + named vmargin { } + named topmargin { } + named footmargin { } + + named halign { ctr } + named hsize { } + named hindent { ctr } + named hstrut + named no { 0.0f } + named yes { 1.0f } + { no } + named hmargin { } + named leftmargin { } + named rightmargin { } + + named nodelabel { } + named nodelabelmargin { 0.2f } + named nodelabelfont { -2p } + named nodelabelbreak { ragged nohyphen } + named nodelabelformat right @Body { @Body } + import @Geometry named nodelabelpos { } + named nodelabelprox { outside } + import @Geometry named nodelabelangle { horizontal } + named nodelabelctr { no } + import @Geometry named nodelabeladjust { 0 0 } + + named alabel { } + named alabelmargin { } + named alabelfont { } + named alabelbreak { } + named alabelformat right @Body { } + import @Geometry named alabelpos { NE } + named alabelprox { } + import @Geometry named alabelangle { } + named alabelctr { } + import @Geometry named alabeladjust { } + + named blabel { } + named blabelmargin { } + named blabelfont { } + named blabelbreak { } + named blabelformat right @Body { } + import @Geometry named blabelpos { NW } + named blabelprox { } + import @Geometry named blabelangle { } + named blabelctr { } + import @Geometry named blabeladjust { } + + named clabel { } + named clabelmargin { } + named clabelfont { } + named clabelbreak { } + named clabelformat right @Body { } + import @Geometry named clabelpos { SW } + named clabelprox { } + import @Geometry named clabelangle { } + named clabelctr { } + import @Geometry named clabeladjust { } + + named dlabel { } + named dlabelmargin { } + named dlabelfont { } + named dlabelbreak { } + named dlabelformat right @Body { } + import @Geometry named dlabelpos { SE } + named dlabelprox { } + import @Geometry named dlabelangle { } + named dlabelctr { } + import @Geometry named dlabeladjust { } + + ########################################################################### + # # + # @ANode options of @DiagSetup # + # # + ########################################################################### + + import @Geometry named aoutline + named margin {} + named shadow {} + named sides {} + named angle {} + { box } + named amargin { 0.6f } + import @Geometry named ashadow { 0.4f } + import @Geometry named asides { 3 } + import @Geometry named aangle { "dup 180 exch div" } + named atranslate { } + named aoutlinestyle + named solid { "/ldiagsolid" } + named dashed { "/ldiagdashed" } + named cdashed { "/ldiagcdashed" } + named dotted { "/ldiagdotted" } + named noline { "/ldiagnoline" } + { solid } + import @Geometry named aoutlinedashlength { 0.2f } + import @Geometry named aoutlinewidth + named thin { 0.04 ft } + named medium { 0.08 ft } + named thick { 0.12 ft } + { thin } + named apaint { nopaint } + named afont { } + named abreak { } + named aformat right @Body { @Body } + + named avalign { ctr } + named avsize { } + named avindent { ctr } + named avstrut + named no { 0.0f } + named yes { 1.0f } + { no } + named avmargin { } + named atopmargin { } + named afootmargin { } + + named ahalign { ctr } + named ahsize { } + named ahindent { ctr } + named ahstrut + named no { 0.0f } + named yes { 1.0f } + { no } + named ahmargin { } + named aleftmargin { } + named arightmargin { } + + named anodelabel { } + named anodelabelmargin { 0.2f } + named anodelabelfont { -2p } + named anodelabelbreak { ragged nohyphen } + named anodelabelformat right @Body { @Body } + import @Geometry named anodelabelpos{ } + named anodelabelprox { outside } + import @Geometry named anodelabelangle { horizontal } + named anodelabelctr { no } + import @Geometry named anodelabeladjust { 0 0 } + + named aalabel { } + named aalabelmargin { } + named aalabelfont { } + named aalabelbreak { } + named aalabelformat right @Body { } + import @Geometry named aalabelpos { NE } + named aalabelprox { } + import @Geometry named aalabelangle { } + named aalabelctr { } + import @Geometry named aalabeladjust{ } + + named ablabel { } + named ablabelmargin { } + named ablabelfont { } + named ablabelbreak { } + named ablabelformat right @Body { } + import @Geometry named ablabelpos { NW } + named ablabelprox { } + import @Geometry named ablabelangle { } + named ablabelctr { } + import @Geometry named ablabeladjust{ } + + named aclabel { } + named aclabelmargin { } + named aclabelfont { } + named aclabelbreak { } + named aclabelformat right @Body { } + import @Geometry named aclabelpos { SW } + named aclabelprox { } + import @Geometry named aclabelangle { } + named aclabelctr { } + import @Geometry named aclabeladjust{ } + + named adlabel { } + named adlabelmargin { } + named adlabelfont { } + named adlabelbreak { } + named adlabelformat right @Body { } + import @Geometry named adlabelpos { SE } + named adlabelprox { } + import @Geometry named adlabelangle { } + named adlabelctr { } + import @Geometry named adlabeladjust{ } + + ########################################################################### + # # + # @BNode options of @DiagSetup # + # # + ########################################################################### + + import @Geometry named boutline + named margin {} + named shadow {} + named sides {} + named angle {} + { box } + named bmargin { 0.6f } + import @Geometry named bshadow { 0.4f } + import @Geometry named bsides { 3 } + import @Geometry named bangle { "dup 180 exch div" } + named btranslate { } + named boutlinestyle + named solid { "/ldiagsolid" } + named dashed { "/ldiagdashed" } + named cdashed { "/ldiagcdashed" } + named dotted { "/ldiagdotted" } + named noline { "/ldiagnoline" } + { solid } + import @Geometry named boutlinedashlength { 0.2f } + import @Geometry named boutlinewidth + named thin { 0.04 ft } + named medium { 0.08 ft } + named thick { 0.12 ft } + { thin } + named bpaint { nopaint } + named bfont { } + named bbreak { } + named bformat right @Body { @Body } + + named bvalign { ctr } + named bvsize { } + named bvindent { ctr } + named bvstrut + named no { 0.0f } + named yes { 1.0f } + { no } + named bvmargin { } + named btopmargin { } + named bfootmargin { } + + named bhalign { ctr } + named bhsize { } + named bhindent { ctr } + named bhstrut + named no { 0.0f } + named yes { 1.0f } + { no } + named bhmargin { } + named bleftmargin { } + named brightmargin { } + + named bnodelabel { } + named bnodelabelmargin { 0.2f } + named bnodelabelfont { -2p } + named bnodelabelbreak { ragged nohyphen } + named bnodelabelformat right @Body { @Body } + import @Geometry named bnodelabelpos{ } + named bnodelabelprox { outside } + import @Geometry named bnodelabelangle { horizontal } + named bnodelabelctr { no } + import @Geometry named bnodelabeladjust { 0 0 } + + named balabel { } + named balabelmargin { } + named balabelfont { } + named balabelbreak { } + named balabelformat right @Body { } + import @Geometry named balabelpos { NE } + named balabelprox { } + import @Geometry named balabelangle { } + named balabelctr { } + import @Geometry named balabeladjust{ } + + named bblabel { } + named bblabelmargin { } + named bblabelfont { } + named bblabelbreak { } + named bblabelformat right @Body { } + import @Geometry named bblabelpos { NW } + named bblabelprox { } + import @Geometry named bblabelangle { } + named bblabelctr { } + import @Geometry named bblabeladjust{ } + + named bclabel { } + named bclabelmargin { } + named bclabelfont { } + named bclabelbreak { } + named bclabelformat right @Body { } + import @Geometry named bclabelpos { SW } + named bclabelprox { } + import @Geometry named bclabelangle { } + named bclabelctr { } + import @Geometry named bclabeladjust{ } + + named bdlabel { } + named bdlabelmargin { } + named bdlabelfont { } + named bdlabelbreak { } + named bdlabelformat right @Body { } + import @Geometry named bdlabelpos { SE } + named bdlabelprox { } + import @Geometry named bdlabelangle { } + named bdlabelctr { } + import @Geometry named bdlabeladjust{ } + + ########################################################################### + # # + # @CNode options of @DiagSetup # + # # + ########################################################################### + + import @Geometry named coutline + named margin {} + named shadow {} + named sides {} + named angle {} + { box } + named cmargin { 0.6f } + import @Geometry named cshadow { 0.4f } + import @Geometry named csides { 3 } + import @Geometry named cangle { "dup 180 exch div" } + named ctranslate { } + named coutlinestyle + named solid { "/ldiagsolid" } + named dashed { "/ldiagdashed" } + named cdashed { "/ldiagcdashed" } + named dotted { "/ldiagdotted" } + named noline { "/ldiagnoline" } + { solid } + import @Geometry named coutlinedashlength { 0.2f } + import @Geometry named coutlinewidth + named thin { 0.04 ft } + named medium { 0.08 ft } + named thick { 0.12 ft } + { thin } + named cpaint { nopaint } + named cfont { } + named cbreak { } + named cformat right @Body { @Body } + + named cvalign { ctr } + named cvsize { } + named cvindent { ctr } + named cvstrut + named no { 0.0f } + named yes { 1.0f } + { no } + named cvmargin { } + named ctopmargin { } + named cfootmargin { } + + named chalign { ctr } + named chsize { } + named chindent { ctr } + named chstrut + named no { 0.0f } + named yes { 1.0f } + { no } + named chmargin { } + named cleftmargin { } + named crightmargin { } + + named cnodelabel { } + named cnodelabelmargin { 0.2f } + named cnodelabelfont { -2p } + named cnodelabelbreak { ragged nohyphen } + named cnodelabelformat right @Body { @Body } + import @Geometry named cnodelabelpos{ } + named cnodelabelprox { outside } + import @Geometry named cnodelabelangle { horizontal } + named cnodelabelctr { no } + import @Geometry named cnodelabeladjust { 0 0 } + + named calabel { } + named calabelmargin { } + named calabelfont { } + named calabelbreak { } + named calabelformat right @Body { } + import @Geometry named calabelpos { NE } + named calabelprox { } + import @Geometry named calabelangle { } + named calabelctr { } + import @Geometry named calabeladjust{ } + + named cblabel { } + named cblabelmargin { } + named cblabelfont { } + named cblabelbreak { } + named cblabelformat right @Body { } + import @Geometry named cblabelpos { NW } + named cblabelprox { } + import @Geometry named cblabelangle { } + named cblabelctr { } + import @Geometry named cblabeladjust{ } + + named cclabel { } + named cclabelmargin { } + named cclabelfont { } + named cclabelbreak { } + named cclabelformat right @Body { } + import @Geometry named cclabelpos { SW } + named cclabelprox { } + import @Geometry named cclabelangle { } + named cclabelctr { } + import @Geometry named cclabeladjust{ } + + named cdlabel { } + named cdlabelmargin { } + named cdlabelfont { } + named cdlabelbreak { } + named cdlabelformat right @Body { } + import @Geometry named cdlabelpos { SE } + named cdlabelprox { } + import @Geometry named cdlabelangle { } + named cdlabelctr { } + import @Geometry named cdlabeladjust{ } + + ########################################################################### + # # + # @Link options of @DiagSetup # + # # + ########################################################################### + + import @Geometry named path + named from {} + named to {} + named bias {} + named fbias {} + named tbias {} + named radius {} + named xindent {} + named zindent {} + named frompt {} + named topt {} + named arrow {} + named arrowlength {} + { line } + import @Geometry named from { 0,0 } + import @Geometry named to { 1,1 } + import @Geometry named bias { 2.0f } + import @Geometry named fbias { 2.0f } + import @Geometry named tbias { 2.0f } + import @Geometry named radius { 1.0f } + import @Geometry named xindent { 0.8f } + import @Geometry named zindent { 0.8f } + import @Geometry named frompt { 0 0 } + import @Geometry named topt { 0 0 } + named pathstyle + named solid { "/ldiagsolid" } + named dashed { "/ldiagdashed" } + named cdashed { "/ldiagcdashed" } + named dotted { "/ldiagdotted" } + named noline { "/ldiagnoline" } + { solid } + import @Geometry named pathdashlength { 0.2f } + import @Geometry named pathwidth + named thin { 0.04 ft } + named medium { 0.08 ft } + named thick { 0.12 ft } + { thin } + import @Geometry named pathgap + named thin { 0.08 ft } + named medium { 0.16 ft } + named thick { 0.24 ft } + { thin } + named arrow { no } + named arrowstyle { solid } + named arrowwidth { 0.3f } + named arrowlength { 0.5f } + + named linklabel { } + named linklabelmargin { 0.2f } + named linklabelfont { -2p } + named linklabelbreak { ragged nohyphen } + named linklabelformat right @Body { @Body } + import @Geometry named linklabelpos { } + named linklabelprox { above } + import @Geometry named linklabelangle { horizontal } + named linklabelctr { no } + import @Geometry named linklabeladjust { 0 0 } + + named xlabel { } + named xlabelmargin { } + named xlabelfont { } + named xlabelbreak { } + named xlabelformat right @Body { } + import @Geometry named xlabelpos { LFROM } + named xlabelprox { } + import @Geometry named xlabelangle { } + named xlabelctr { } + import @Geometry named xlabeladjust { } + + named ylabel { } + named ylabelmargin { } + named ylabelfont { } + named ylabelbreak { } + named ylabelformat right @Body { } + import @Geometry named ylabelpos { LMID } + named ylabelprox { } + import @Geometry named ylabelangle { } + named ylabelctr { yes } + import @Geometry named ylabeladjust { } + + named zlabel { } + named zlabelmargin { } + named zlabelfont { } + named zlabelbreak { } + named zlabelformat right @Body { } + import @Geometry named zlabelpos { LTO } + named zlabelprox { } + import @Geometry named zlabelangle { } + named zlabelctr { } + import @Geometry named zlabeladjust { } + + named fromlabel { } + named fromlabelmargin { 0f } + named fromlabelfont { } + named fromlabelbreak { ragged nohyphen } + named fromlabelformat right @Body { @Body } + import @Geometry named fromlabelpos { FROM } + named fromlabelprox { W } + import @Geometry named fromlabelangle { antiparallel } + named fromlabelctr { no } + import @Geometry named fromlabeladjust { 0 0 } + + named tolabel { } + named tolabelmargin { 0f } + named tolabelfont { } + named tolabelbreak { ragged nohyphen } + named tolabelformat right @Body { @Body } + import @Geometry named tolabelpos { TO } + named tolabelprox { W } + import @Geometry named tolabelangle { parallel } + named tolabelctr { no } + import @Geometry named tolabeladjust { 0 0 } + + ########################################################################### + # # + # Tree and syntax diagram options of @DiagSetup # + # # + ########################################################################### + + named treehsep { 0.5f } + named treevsep { 0.5f } + named treehindent + named left { 0.0rt } + named ctr { 0.5rt } + named right { 1.0rt } + { ctr } + named treevindent + named top { 0.0rt } + named ctr { 0.5rt } + named foot { 1.0rt } + { ctr } + + named syntaxgap { 0.35f } + named syntaxbias { 1.0f } + named syntaxradius { 0.3f } +{ + + + ########################################################################### + # # + # @Diag symbol # + # # + ########################################################################### + + export "::" @ShowPoints @ShowTags @ShowDirections @CatchTags @Transform + + @Node @ANode @BNode @CNode + @Box @CurveBox @ShadowBox @Square @Diamond @Polygon + @Isosceles @Ellipse @Circle + @ArrowHead @SolidArrowHead @OpenArrowHead @HalfOpenArrowHead + @SolidCurvedArrowHead @OpenCurvedArrowHead @HalfOpenCurvedArrowHead + @CircleArrowHead @BoxArrowHead + + @Link + @Line @DoubleLine @Arrow @DoubleArrow @Curve @CurveArrow + @ACurve @ACurveArrow @CCurve @CCurveArrow + @Bezier @BezierArrow + @HVLine @HVArrow @VHLine @VHArrow + @HVCurve @HVCurveArrow @VHCurve @VHCurveArrow + @LVRLine @LVRArrow @RVLLine @RVLArrow + @LVRCurve @LVRCurveArrow @RVLCurve @RVLCurveArrow + @DWrapLine @DWrapArrow @UWrapLine @UWrapArrow + @DWrapCurve @DWrapCurveArrow @UWrapCurve @UWrapCurveArrow + + @Tree @HTree + + @StartRight @StartUp @StartLeft @StartDown + @StartRightRight @StartRightDown + @Skip @XCell @ACell @BCell @CCell + @Sequence @Select @Optional @OptionalDiverted @Diverted + @Loop @LoopOpposite @Repeat @RepeatOpposite @RepeatDiverted + + def @Diag + named save { save } + named maxlabels { maxlabels } + named title { title } + named titleformat + left @Title + right @Body + { @Title titleformat @Body } + + ####################################################################### + # # + # @Node options of @Diag # + # # + ####################################################################### + + import @Geometry named outline + named margin {} + named shadow {} + named sides {} + named angle {} + { outline + margin { margin } + shadow { shadow } + sides { sides } + angle { angle } + } + named margin { margin } + import @Geometry named shadow { shadow } + import @Geometry named sides { sides } + import @Geometry named angle { angle } + named translate { translate } + named nodetag { } + named outlinestyle + named solid { "/ldiagsolid" } + named dashed { "/ldiagdashed" } + named cdashed { "/ldiagcdashed" } + named dotted { "/ldiagdotted" } + named noline { "/ldiagnoline" } + { outlinestyle } + import @Geometry named outlinedashlength{ outlinedashlength } + import @Geometry named outlinewidth + named thin { 0.04 ft } + named medium { 0.08 ft } + named thick { 0.12 ft } + { outlinewidth } + named paint { paint } + named font { font } + named break { break } + named format right @Body { format @Body } + named valign { valign } + named vsize { vsize } + named vindent { vindent } + named vstrut + named no { 0.0f } + named yes { 1.0f } + { vstrut } + named vmargin { vmargin } + named topmargin { topmargin } + named footmargin { footmargin } + named halign { halign } + named hsize { hsize } + named hindent { hindent } + named hstrut + named no { 0.0f } + named yes { 1.0f } + { hstrut } + named hmargin { hmargin } + named leftmargin { leftmargin } + named rightmargin { rightmargin } + + ####################################################################### + # # + # @ANode options of @Diag # + # # + ####################################################################### + + import @Geometry named aoutline + named margin {} + named shadow {} + named sides {} + named angle {} + { aoutline + margin { margin } + shadow { shadow } + sides { sides } + angle { angle } + } + named amargin { amargin } + import @Geometry named ashadow { ashadow } + import @Geometry named asides { asides } + import @Geometry named aangle { aangle } + named atranslate { atranslate } + named anodetag { } + named aoutlinestyle + named solid { "/ldiagsolid" } + named dashed { "/ldiagdashed" } + named cdashed { "/ldiagcdashed" } + named dotted { "/ldiagdotted" } + named noline { "/ldiagnoline" } + { aoutlinestyle } + import @Geometry named aoutlinedashlength{ aoutlinedashlength } + import @Geometry named aoutlinewidth + named thin { 0.04 ft } + named medium { 0.08 ft } + named thick { 0.12 ft } + { aoutlinewidth } + named apaint { apaint } + named afont { afont } + named abreak { abreak } + named aformat right @Body { aformat @Body } + named avalign { avalign } + named avsize { avsize } + named avindent { avindent } + named avstrut + named no { 0.0f } + named yes { 1.0f } + { avstrut } + named avmargin { avmargin } + named atopmargin { atopmargin } + named afootmargin { afootmargin } + named ahalign { ahalign } + named ahsize { ahsize } + named ahindent { ahindent } + named ahstrut + named no { 0.0f } + named yes { 1.0f } + { ahstrut } + named ahmargin { ahmargin } + named aleftmargin { aleftmargin } + named arightmargin { arightmargin } + + ####################################################################### + # # + # @BNode options of @Diag # + # # + ####################################################################### + + import @Geometry named boutline + named margin {} + named shadow {} + named sides {} + named angle {} + { boutline + margin { margin } + shadow { shadow } + sides { sides } + angle { angle } + } + named bmargin { bmargin } + import @Geometry named bshadow { bshadow } + import @Geometry named bsides { bsides } + import @Geometry named bangle { bangle } + named btranslate { btranslate } + named bnodetag { } + named boutlinestyle + named solid { "/ldiagsolid" } + named dashed { "/ldiagdashed" } + named cdashed { "/ldiagcdashed" } + named dotted { "/ldiagdotted" } + named noline { "/ldiagnoline" } + { boutlinestyle } + import @Geometry named boutlinedashlength{ boutlinedashlength } + import @Geometry named boutlinewidth + named thin { 0.04 ft } + named medium { 0.08 ft } + named thick { 0.12 ft } + { boutlinewidth } + named bpaint { bpaint } + named bfont { bfont } + named bbreak { bbreak } + named bformat right @Body { bformat @Body } + named bvalign { bvalign } + named bvsize { bvsize } + named bvindent { bvindent } + named bvstrut + named no { 0.0f } + named yes { 1.0f } + { bvstrut } + named bvmargin { bvmargin } + named btopmargin { btopmargin } + named bfootmargin { bfootmargin } + named bhalign { bhalign } + named bhsize { bhsize } + named bhindent { bhindent } + named bhstrut + named no { 0.0f } + named yes { 1.0f } + { bhstrut } + named bhmargin { bhmargin } + named bleftmargin { bleftmargin } + named brightmargin { brightmargin } + + ####################################################################### + # # + # @CNode options of @Diag # + # # + ####################################################################### + + import @Geometry named coutline + named margin {} + named shadow {} + named sides {} + named angle {} + { coutline + margin { margin } + shadow { shadow } + sides { sides } + angle { angle } + } + named cmargin { cmargin } + import @Geometry named cshadow { cshadow } + import @Geometry named csides { csides } + import @Geometry named cangle { cangle } + named ctranslate { ctranslate } + named cnodetag { } + named coutlinestyle + named solid { "/ldiagsolid" } + named dashed { "/ldiagdashed" } + named cdashed { "/ldiagcdashed" } + named dotted { "/ldiagdotted" } + named noline { "/ldiagnoline" } + { coutlinestyle } + import @Geometry named coutlinedashlength{ coutlinedashlength } + import @Geometry named coutlinewidth + named thin { 0.04 ft } + named medium { 0.08 ft } + named thick { 0.12 ft } + { coutlinewidth } + named cpaint { cpaint } + named cfont { cfont } + named cbreak { cbreak } + named cformat right @Body { cformat @Body } + named cvalign { cvalign } + named cvsize { cvsize } + named cvindent { cvindent } + named cvstrut + named no { 0.0f } + named yes { 1.0f } + { cvstrut } + named cvmargin { cvmargin } + named ctopmargin { ctopmargin } + named cfootmargin { cfootmargin } + named chalign { chalign } + named chsize { chsize } + named chindent { chindent } + named chstrut + named no { 0.0f } + named yes { 1.0f } + { chstrut } + named chmargin { chmargin } + named cleftmargin { cleftmargin } + named crightmargin { crightmargin } + + ####################################################################### + # # + # @Link options of @Diag # + # # + ####################################################################### + + import @Geometry named path + named from {} + named to {} + named bias {} + named fbias {} + named tbias {} + named radius {} + named xindent {} + named zindent {} + named frompt {} + named topt {} + named arrow {} + named arrowlength {} + { path + from { from } + to { to } + bias { bias } + fbias { fbias } + tbias { tbias } + radius { radius } + xindent { xindent } + zindent { zindent } + frompt { frompt } + topt { topt } + arrow { arrow } + arrowlength { arrowlength } + } + import @Geometry named from { from } + import @Geometry named to { to } + import @Geometry named bias { bias } + import @Geometry named fbias { fbias } + import @Geometry named tbias { tbias } + import @Geometry named radius { radius } + import @Geometry named xindent { xindent } + import @Geometry named zindent { zindent } + import @Geometry named frompt { frompt } + import @Geometry named topt { topt } + named pathstyle + named solid { "/ldiagsolid" } + named dashed { "/ldiagdashed" } + named cdashed { "/ldiagcdashed" } + named dotted { "/ldiagdotted" } + named noline { "/ldiagnoline" } + { pathstyle } + import @Geometry named pathdashlength { pathdashlength } + import @Geometry named pathwidth + named thin { 0.04 ft } + named medium { 0.08 ft } + named thick { 0.12 ft } + { pathwidth } + import @Geometry named pathgap + named thin { 0.08 ft } + named medium { 0.16 ft } + named thick { 0.24 ft } + { pathgap } + named arrow { arrow } + named arrowstyle { arrowstyle } + named arrowwidth { arrowwidth } + named arrowlength { arrowlength } + + named nodelabel { nodelabel } + named nodelabelmargin { nodelabelmargin } + named nodelabelfont { nodelabelfont } + named nodelabelbreak { nodelabelbreak } + named nodelabelformat right @Body { nodelabelformat @Body } + import @Geometry named nodelabelpos { nodelabelpos } + named nodelabelprox { nodelabelprox } + import @Geometry named nodelabelangle { nodelabelangle } + named nodelabelctr { nodelabelctr } + import @Geometry named nodelabeladjust { nodelabeladjust } + + named alabel { alabel } + named alabelmargin { alabelmargin } + named alabelfont { alabelfont } + named alabelbreak { alabelbreak } + named alabelformat right @Body { alabelformat @Body } + import @Geometry named alabelpos { alabelpos } + named alabelprox { alabelprox } + import @Geometry named alabelangle { alabelangle } + named alabelctr { alabelctr } + import @Geometry named alabeladjust { alabeladjust } + + named blabel { blabel } + named blabelmargin { blabelmargin } + named blabelfont { blabelfont } + named blabelbreak { blabelbreak } + named blabelformat right @Body { blabelformat @Body } + import @Geometry named blabelpos { blabelpos } + named blabelprox { blabelprox } + import @Geometry named blabelangle { blabelangle } + named blabelctr { blabelctr } + import @Geometry named blabeladjust { blabeladjust } + + named clabel { clabel } + named clabelmargin { clabelmargin } + named clabelfont { clabelfont } + named clabelbreak { clabelbreak } + named clabelformat right @Body { clabelformat @Body } + import @Geometry named clabelpos { clabelpos } + named clabelprox { clabelprox } + import @Geometry named clabelangle { clabelangle } + named clabelctr { clabelctr } + import @Geometry named clabeladjust { clabeladjust } + + named dlabel { dlabel } + named dlabelmargin { dlabelmargin } + named dlabelfont { dlabelfont } + named dlabelbreak { dlabelbreak } + named dlabelformat right @Body { dlabelformat @Body } + import @Geometry named dlabelpos { dlabelpos } + named dlabelprox { dlabelprox } + import @Geometry named dlabelangle { dlabelangle } + named dlabelctr { dlabelctr } + import @Geometry named dlabeladjust { dlabeladjust } + + named fromlabel { fromlabel } + named fromlabelmargin { fromlabelmargin } + named fromlabelfont { fromlabelfont } + named fromlabelbreak { fromlabelbreak } + named fromlabelformat right @Body { fromlabelformat @Body } + import @Geometry named fromlabelpos { fromlabelpos } + named fromlabelprox { fromlabelprox } + import @Geometry named fromlabelangle { fromlabelangle } + named fromlabelctr { fromlabelctr } + import @Geometry named fromlabeladjust { fromlabeladjust } + + named linklabel { linklabel } + named linklabelmargin { linklabelmargin } + named linklabelfont { linklabelfont } + named linklabelbreak { linklabelbreak } + named linklabelformat right @Body { linklabelformat @Body } + import @Geometry named linklabelpos { linklabelpos } + named linklabelprox { linklabelprox } + import @Geometry named linklabelangle { linklabelangle } + named linklabelctr { linklabelctr } + import @Geometry named linklabeladjust { linklabeladjust } + + named xlabel { xlabel } + named xlabelmargin { xlabelmargin } + named xlabelfont { xlabelfont } + named xlabelbreak { xlabelbreak } + named xlabelformat right @Body { xlabelformat @Body } + import @Geometry named xlabelpos { xlabelpos } + named xlabelprox { xlabelprox } + import @Geometry named xlabelangle { xlabelangle } + named xlabelctr { xlabelctr } + import @Geometry named xlabeladjust { xlabeladjust } + + named ylabel { ylabel } + named ylabelmargin { ylabelmargin } + named ylabelfont { ylabelfont } + named ylabelbreak { ylabelbreak } + named ylabelformat right @Body { ylabelformat @Body } + import @Geometry named ylabelpos { ylabelpos } + named ylabelprox { ylabelprox } + import @Geometry named ylabelangle { ylabelangle } + named ylabelctr { ylabelctr } + import @Geometry named ylabeladjust { ylabeladjust } + + named zlabel { zlabel } + named zlabelmargin { zlabelmargin } + named zlabelfont { zlabelfont } + named zlabelbreak { zlabelbreak } + named zlabelformat right @Body { zlabelformat @Body } + import @Geometry named zlabelpos { zlabelpos } + named zlabelprox { zlabelprox } + import @Geometry named zlabelangle { zlabelangle } + named zlabelctr { zlabelctr } + import @Geometry named zlabeladjust { zlabeladjust } + + named tolabel { tolabel } + named tolabelmargin { tolabelmargin } + named tolabelfont { tolabelfont } + named tolabelbreak { tolabelbreak } + named tolabelformat right @Body { tolabelformat @Body } + import @Geometry named tolabelpos { tolabelpos } + named tolabelprox { tolabelprox } + import @Geometry named tolabelangle { tolabelangle } + named tolabelctr { tolabelctr } + import @Geometry named tolabeladjust { tolabeladjust } + + ####################################################################### + # # + # Tree and syntax diagram options of @Diag # + # # + ####################################################################### + + named treehsep { treehsep } + named treevsep { treevsep } + named treehindent + named left { 0.0rt } + named ctr { 0.5rt } + named right { 1.0rt } + { treehindent } + named treevindent + named top { 0.0rt } + named ctr { 0.5rt } + named foot { 1.0rt } + { treevindent } + named syntaxgap { syntaxgap } + named syntaxbias { syntaxbias } + named syntaxradius { syntaxradius } + body @Body + @Begin + + + ####################################################################### + # # + # Miscellaneous helper definitions # + # # + ####################################################################### + + # Like @Graphic, but affects the graphics state of right parameter + def @InnerGraphic + left ps + right x + { + @BackEnd @Case { + PostScript @Yield { + { ps gsave // grestore } @Graphic x + } + PDF @Yield { + { ps q // Q } @Graphic x + } + } + } + + def @BoxLabels right x + { + @BackEnd @Case { + PostScript @Yield { + "[ ldiagbox ] pop" @Graphic x + } + PDF @Yield {} + } + } + + def @IfNonEmpty + left x + right y + { + x @Case { + "" @Yield @Null + else @Yield y + } + } + + def @Else + precedence 20 + associativity right + left x + right y + { + x @Case { + "" @Yield y + else @Yield x + } + } + + def @ShowTags + right x + { + @BackEnd @Case { + PostScript @Yield { + { + "() ldiagpushtagdict" + // "ldiagshowtags ldiagpopuptagdict" + } @Graphic x + } + PDF @Yield {} + } + } + + def @ShowPoints + right x + { + @BackEnd @Case { + PostScript @Yield { + { + "() ldiagpushtagdict" + // "ldiagshowpoints ldiagpopuptagdict" + } @Graphic x + } + PDF @Yield {} + } + } + + def @ShowDirections + right x + { + @BackEnd @Case { + PostScript @Yield { + { "() ldiagpushtagdict" + // "ldiagshowangles ldiagpopuptagdict" } @Graphic x + } + PDF @Yield {} + } + } + + def @ShowMarks right x + { + { "xmark -0.5 cm moveto xmark ysize 0.5 cm add lineto stroke" } @Graphic x + } + + + def "::" + precedence 33 + associativity right + left name + right x + { + @BackEnd @Case { + PostScript @Yield { + { "("name") ldiagpushtagdict" + // "ldiagpopuptagdict" } @Graphic x + } + PDF @Yield {} + } + } + + def @CatchTags + precedence 33 + associativity right + right x + { + @BackEnd @Case { + PostScript @Yield { + { + "() ldiagpushtagdict" + // "ldiagpoptagdict" + } + @Graphic x + } + PDF @Yield {} + } + } + + def @ZeroWidth right x + { + @HContract @VContract { + ^|0io @HContract @VContract x |0io + } + } + + def @ZeroSize right x + { + @HContract @VContract { + ^/0io ^|0io @HContract @VContract x |0io /0io + } + } + + def @FromArrowLength + left arrow + right arrowlength + { + @BackEnd @Case { + PostScript @Yield { + arrow @Case { + { no yes forward } @Yield 0 + { back both } @Yield {"("arrowlength") ldiagdecodelength"} + } + } + PDF @Yield {} + } + } + + def @ToArrowLength + left arrow + right arrowlength + { + @BackEnd @Case { + PostScript @Yield { + arrow @Case { + { no back } @Yield 0 + { yes forward both } @Yield {"("arrowlength") ldiagdecodelength"} + } + } + PDF @Yield {} + } + } + + def @AddMargins + named mtop {} + named mfoot {} + named mleft {} + named mright {} + right x + { + + @HContract @VContract { + ^|mleft |mright + ^/mtop | x | + /mfoot | | + } + } + + def @Transform + precedence 32 + import @Geometry named translate +# named to precedence 10 left x right y { x y "ldiagpsub" } + named to precedence 10 left x right y { + @BackEnd @Case { + PostScript @Yield { x y "ldiagpsub" } + PDF @Yield {""} + } + } + {} + import @Geometry named rotate { 0d } + named scale { 1 1 } + right x + { + @BackEnd @Case { + + PostScript @Yield { + { rotate "rotate" scale "scale newpath clip" } + @InnerGraphic + { + @ZeroSize x + } + // + # { rotate "rotate" scale "scale" translate "translate" } + { translate "translate" rotate "rotate" scale "scale" } + @InnerGraphic + { + @ZeroSize x + } + } + + PDF @Yield { # presume that "rotate", "scale" and "translate" are not matrices + { "__cos("rotate") __sin("rotate") __sub(0, __sin("rotate")) __cos("rotate") 0 0 cm" + "__pick(1, "scale") 0 0 __pick(2, "scale") 0 0 cm n W" } + @InnerGraphic + { + @ZeroSize x + } + // + # { rotate "rotate" scale "scale" translate "translate" } + { "1 0 0 1 "translate" cm" + "__cos("rotate") __sin("rotate") __sub(0, __sin("rotate")) __cos("rotate") 0 0 cm" + "__pick(1, "scale") 0 0 __pick(2, "scale") 0 0 cm" } + @InnerGraphic + { + @ZeroSize x + } + } + + } + } + + + ####################################################################### + # # + # @DoLabel definition for drawing one label # + # # + ####################################################################### + + def @DoLabel + named which {} + named labeltag { LABEL } + named label {} + named labelmargin {} + named labelfont {} + named labelbreak {} + named labelformat right @Body {} + named labelpos {} + named labelprox {} + named labelangle {} + named labelctr {} + named labeladjust {} + { + + import @Geometry + def alignedangle + { + labelpos??"ANGLE" quadcase + 0 { labelpos??"ANGLE" } + 0-90 { labelpos??"ANGLE" } + 90 { labelpos??"ANGLE" } + 90-180 { labelpos??"ANGLE" + 180d } + 180 { labelpos??"ANGLE" + 180d } + 180-270 { labelpos??"ANGLE" + 180d } + 270 { labelpos??"ANGLE" + 180d } + 270-360 { labelpos??"ANGLE" } + } + + import @Geometry + def perpalignedangle + { + labelpos??"ANGLE" quadcase + 0 { labelpos??"ANGLE" - 90d } + 0-90 { labelpos??"ANGLE" - 90d } + 90 { labelpos??"ANGLE" - 90d } + 90-180 { labelpos??"ANGLE" - 90d } + 180 { labelpos??"ANGLE" + 90d } + 180-270 { labelpos??"ANGLE" + 90d } + 270 { labelpos??"ANGLE" + 90d } + 270-360 { labelpos??"ANGLE" + 90d } + + } + + import @Geometry + def finalangle + { + labelangle @Case { + + "horizontal" @Yield { 0d } + "aligned" @Yield { alignedangle } + "perpendicular" @Yield { perpalignedangle } + "parallel" @Yield { labelpos??"ANGLE" } + "antiparallel" @Yield { labelpos??"ANGLE" + 180d } + else @Yield labelangle + } + } + + import @Geometry + def @AlignedAboveProximity + { + which @Case { + { x f } @Yield { labelpos??ANGLE quadcase + 0 { (SW) } + 0-90 { (SW) } + 90 { (SW) } + 90-180 { (SE) } + 180 { (SE) } + 180-270 { (SE) } + 270 { (SE) } + 270-360 { (SW) } + } + { z t } @Yield { labelpos??ANGLE quadcase + 0 { (SE) } + 0-90 { (SE) } + 90 { (SE) } + 90-180 { (SW) } + 180 { (SW) } + 180-270 { (SW) } + 270 { (SW) } + 270-360 { (SE) } + } + else @Yield (S) + } + } + + import @Geometry + def @AlignedBelowProximity + { + which @Case { + { x f } @Yield { labelpos??ANGLE quadcase + 0 { (NW) } + 0-90 { (NW) } + 90 { (NW) } + 90-180 { (NE) } + 180 { (NE) } + 180-270 { (NE) } + 270 { (NE) } + 270-360 { (NW) } + } + { z t } @Yield { labelpos??ANGLE quadcase + 0 { (NE) } + 0-90 { (NE) } + 90 { (NE) } + 90-180 { (NW) } + 180 { (NW) } + 180-270 { (NW) } + 270 { (NW) } + 270-360 { (NE) } + } + else @Yield (N) + } + } + + import @Geometry + def @AlignedLeftProximity + { + which @Case { + { x f } @Yield { labelpos??ANGLE quadcase + 0 { (SW) } + 0-90 { (SW) } + 90 { (SW) } + 90-180 { (NE) } + 180 { (SE) } + 180-270 { (SE) } + 270 { (SE) } + 270-360 { (NW) } + } + { z t } @Yield { labelpos??ANGLE quadcase + 0 { (SE) } + 0-90 { (SE) } + 90 { (SE) } + 90-180 { (NW) } + 180 { (SW) } + 180-270 { (SW) } + 270 { (SW) } + 270-360 { (NE) } + } + else @Yield { labelpos??ANGLE quadcase + 0 { (S) } + 0-90 { (S) } + 90 { (S) } + 90-180 { (N) } + 180 { (S) } + 180-270 { (S) } + 270 { (S) } + 270-360 { (N) } + } + } + } + + import @Geometry + def @AlignedRightProximity + { + which @Case { + { x f } @Yield { labelpos??ANGLE quadcase + 0 { (SW) } + 0-90 { (NW) } + 90 { (NW) } + 90-180 { (SE) } + 180 { (SE) } + 180-270 { (NE) } + 270 { (NE) } + 270-360 { (SW) } + } + { z t } @Yield { labelpos??ANGLE quadcase + 0 { (SE) } + 0-90 { (NE) } + 90 { (NE) } + 90-180 { (SW) } + 180 { (SW) } + 180-270 { (NW) } + 270 { (NW) } + 270-360 { (SE) } + } + else @Yield { labelpos??ANGLE quadcase + 0 { (S) } + 0-90 { (N) } + 90 { (N) } + 90-180 { (S) } + 180 { (S) } + 180-270 { (N) } + 270 { (N) } + 270-360 { (S) } + } + } + } + + import @Geometry + def @AlignedInsideProximity + { + which @Case { + { x f } @Yield { labelpos??ANGLE quadcase + 0 { (SW) } + 0-90 { (SW) } + 90 { (SW) } + 90-180 { (NE) } + 180 { (NE) } + 180-270 { (NE) } + 270 { (NE) } + 270-360 { (SW) } + } + { z t } @Yield { labelpos??ANGLE quadcase + 0 { (SE) } + 0-90 { (SE) } + 90 { (SE) } + 90-180 { (NW) } + 180 { (NW) } + 180-270 { (NW) } + 270 { (NW) } + 270-360 { (SE) } + } + else @Yield { labelpos??ANGLE quadcase + 0 { (S) } + 0-90 { (S) } + 90 { (S) } + 90-180 { (N) } + 180 { (N) } + 180-270 { (N) } + 270 { (N) } + 270-360 { (S) } + } + } + } + + import @Geometry + def @AlignedOutsideProximity + { + which @Case { + { x f } @Yield { labelpos??ANGLE quadcase + 0 { (NW) } + 0-90 { (NW) } + 90 { (NW) } + 90-180 { (SE) } + 180 { (SE) } + 180-270 { (SE) } + 270 { (SE) } + 270-360 { (NW) } + } + { z t } @Yield { labelpos??ANGLE quadcase + 0 { (NE) } + 0-90 { (NE) } + 90 { (NE) } + 90-180 { (SW) } + 180 { (SW) } + 180-270 { (SW) } + 270 { (SW) } + 270-360 { (NE) } + } + else @Yield { labelpos??ANGLE quadcase + 0 { (N) } + 0-90 { (N) } + 90 { (N) } + 90-180 { (S) } + 180 { (S) } + 180-270 { (S) } + 270 { (S) } + 270-360 { (N) } + } + } + } + + + import @Geometry + def @PerpendicularAboveProximity + { + which @Case { + { x f } @Yield { labelpos??ANGLE quadcase + 0 { (SE) } + 0-90 { (SE) } + 90 { (SE) } + 90-180 { (SW) } + 180 { (NE) } + 180-270 { (NE) } + 270 { (NE) } + 270-360 { (NW) } + } + { z t } @Yield { labelpos??ANGLE quadcase + 0 { (NE) } + 0-90 { (NE) } + 90 { (NE) } + 90-180 { (NW) } + 180 { (SE) } + 180-270 { (SE) } + 270 { (SE) } + 270-360 { (SW) } + } + else @Yield { labelpos??ANGLE quadcase + 0 { (E) } + 0-90 { (E) } + 90 { (E) } + 90-180 { (W) } + 180 { (E) } + 180-270 { (E) } + 270 { (E) } + 270-360 { (W) } + } + } + } + + import @Geometry + def @PerpendicularBelowProximity + { + which @Case { + { x f } @Yield { labelpos??ANGLE quadcase + 0 { (SW) } + 0-90 { (SW) } + 90 { (SW) } + 90-180 { (SE) } + 180 { (NW) } + 180-270 { (NW) } + 270 { (NW) } + 270-360 { (NE) } + } + { z t } @Yield { labelpos??ANGLE quadcase + 0 { (NW) } + 0-90 { (NW) } + 90 { (NW) } + 90-180 { (NE) } + 180 { (SW) } + 180-270 { (SW) } + 270 { (SW) } + 270-360 { (SE) } + } + else @Yield { labelpos??ANGLE quadcase + 0 { (W) } + 0-90 { (W) } + 90 { (W) } + 90-180 { (E) } + 180 { (W) } + 180-270 { (W) } + 270 { (W) } + 270-360 { (E) } + } + } + } + + import @Geometry + def @PerpendicularLeftProximity + { + which @Case { + { x f } @Yield { labelpos??ANGLE quadcase + 0 { (SE) } + 0-90 { (SE) } + 90 { (SE) } + 90-180 { (SE) } + 180 { (NE) } + 180-270 { (NE) } + 270 { (NE) } + 270-360 { (NE) } + } + { z t } @Yield { labelpos??ANGLE quadcase + 0 { (NE) } + 0-90 { (NE) } + 90 { (NE) } + 90-180 { (NE) } + 180 { (SE) } + 180-270 { (SE) } + 270 { (SE) } + 270-360 { (SE) } + } + else @Yield (E) + } + } + + import @Geometry + def @PerpendicularRightProximity + { + which @Case { + { x f } @Yield { labelpos??ANGLE quadcase + 0 { (SW) } + 0-90 { (SW) } + 90 { (SW) } + 90-180 { (SW) } + 180 { (NW) } + 180-270 { (NW) } + 270 { (NW) } + 270-360 { (NW) } + } + { z t } @Yield { labelpos??ANGLE quadcase + 0 { (NW) } + 0-90 { (NW) } + 90 { (NW) } + 90-180 { (NW) } + 180 { (SW) } + 180-270 { (SW) } + 270 { (SW) } + 270-360 { (SW) } + } + else @Yield (W) + } + } + + import @Geometry + def @PerpendicularInsideProximity + { + which @Case { + { x f } @Yield { labelpos??ANGLE quadcase + 0 { (SE) } + 0-90 { (SE) } + 90 { (SE) } + 90-180 { (SE) } + 180 { (NW) } + 180-270 { (NW) } + 270 { (NW) } + 270-360 { (NW) } + } + { z t } @Yield { labelpos??ANGLE quadcase + 0 { (NE) } + 0-90 { (NE) } + 90 { (NE) } + 90-180 { (NE) } + 180 { (SW) } + 180-270 { (SW) } + 270 { (SW) } + 270-360 { (SW) } + } + else @Yield { labelpos??ANGLE quadcase + 0 { (E) } + 0-90 { (E) } + 90 { (E) } + 90-180 { (E) } + 180 { (W) } + 180-270 { (W) } + 270 { (W) } + 270-360 { (W) } + } + } + } + + import @Geometry + def @PerpendicularOutsideProximity + { + which @Case { + { x f } @Yield { labelpos??ANGLE quadcase + 0 { (SW) } + 0-90 { (SW) } + 90 { (SW) } + 90-180 { (SW) } + 180 { (NE) } + 180-270 { (NE) } + 270 { (NE) } + 270-360 { (NE) } + } + { z t } @Yield { labelpos??ANGLE quadcase + 0 { (NW) } + 0-90 { (NW) } + 90 { (NW) } + 90-180 { (NW) } + 180 { (SE) } + 180-270 { (SE) } + 270 { (SE) } + 270-360 { (SE) } + } + else @Yield { labelpos??ANGLE quadcase + 0 { (W) } + 0-90 { (W) } + 90 { (W) } + 90-180 { (W) } + 180 { (E) } + 180-270 { (E) } + 270 { (E) } + 270-360 { (E) } + } + } + } + + + import @Geometry + def @OtherAboveProximity + { + which @Case { + { x f } @Yield { labelpos??ANGLE quadcase + 0 { (SW) } + 0-90 { (SE) } + 90 { (SW) } + 90-180 { (SW) } + 180 { (SE) } + 180-270 { (SE) } + 270 { (NW) } + 270-360 { (SW) } + } + { z t } @Yield { labelpos??ANGLE quadcase + 0 { (SE) } + 0-90 { (SE) } + 90 { (NW) } + 90-180 { (SW) } + 180 { (SW) } + 180-270 { (SE) } + 270 { (SW) } + 270-360 { (SW) } + } + else @Yield { labelpos??ANGLE quadcase + 0 { (S) } + 0-90 { (SE) } + 90 { (W) } + 90-180 { (SW) } + 180 { (S) } + 180-270 { (SE) } + 270 { (W) } + 270-360 { (SW) } + } + } + } + + import @Geometry + def @OtherBelowProximity + { + which @Case { + { x f } @Yield { labelpos??ANGLE quadcase + 0 { (NW) } + 0-90 { (NW) } + 90 { (SW) } + 90-180 { (NE) } + 180 { (NE) } + 180-270 { (NW) } + 270 { (NW) } + 270-360 { (NE) } + } + { z t } @Yield { labelpos??ANGLE quadcase + 0 { (NE) } + 0-90 { (NW) } + 90 { (NW) } + 90-180 { (NE) } + 180 { (NW) } + 180-270 { (NW) } + 270 { (SW) } + 270-360 { (NE) } + } + else @Yield { labelpos??ANGLE quadcase + 0 { (N) } + 0-90 { (NW) } + 90 { (W) } + 90-180 { (NE) } + 180 { (N) } + 180-270 { (NW) } + 270 { (W) } + 270-360 { (NE) } + } + } + } + + import @Geometry + def @OtherLeftProximity + { + which @Case { + { x f } @Yield { labelpos??ANGLE quadcase + 0 { (SW) } + 0-90 { (SE) } + 90 { (SE) } + 90-180 { (NE) } + 180 { (SE) } + 180-270 { (SE) } + 270 { (NE) } + 270-360 { (NE) } + } + { z t } @Yield { labelpos??ANGLE quadcase + 0 { (SE) } + 0-90 { (SE) } + 90 { (NE) } + 90-180 { (NE) } + 180 { (SW) } + 180-270 { (SE) } + 270 { (SE) } + 270-360 { (NE) } + } + else @Yield { labelpos??ANGLE quadcase + 0 { (S) } + 0-90 { (SE) } + 90 { (E) } + 90-180 { (NE) } + 180 { (S) } + 180-270 { (SE) } + 270 { (E) } + 270-360 { (NE) } + } + } + } + + import @Geometry + def @OtherRightProximity + { + which @Case { + { x f } @Yield { labelpos??ANGLE quadcase + 0 { (SW) } + 0-90 { (NW) } + 90 { (SW) } + 90-180 { (SW) } + 180 { (SE) } + 180-270 { (NW) } + 270 { (NW) } + 270-360 { (SW) } + } + { z t } @Yield { labelpos??ANGLE quadcase + 0 { (SE) } + 0-90 { (NW) } + 90 { (NW) } + 90-180 { (SW) } + 180 { (SW) } + 180-270 { (NW) } + 270 { (SW) } + 270-360 { (SW) } + } + else @Yield { labelpos??ANGLE quadcase + 0 { (S) } + 0-90 { (NW) } + 90 { (W) } + 90-180 { (SW) } + 180 { (S) } + 180-270 { (NW) } + 270 { (W) } + 270-360 { (SW) } + } + } + } + + import @Geometry + def @OtherInsideProximity + { + which @Case { + { x f } @Yield { labelpos??ANGLE quadcase + 0 { (SW) } + 0-90 { (SE) } + 90 { (SE) } + 90-180 { (NE) } + 180 { (NE) } + 180-270 { (NW) } + 270 { (NW) } + 270-360 { (SW) } + } + { z t } @Yield { labelpos??ANGLE quadcase + 0 { (SE) } + 0-90 { (SE) } + 90 { (NE) } + 90-180 { (NE) } + 180 { (NW) } + 180-270 { (NW) } + 270 { (SW) } + 270-360 { (SW) } + } + else @Yield { labelpos??ANGLE quadcase + 0 { (S) } + 0-90 { (SE) } + 90 { (E) } + 90-180 { (NE) } + 180 { (N) } + 180-270 { (NW) } + 270 { (W) } + 270-360 { (SW) } + } + } + } + + import @Geometry + def @OtherOutsideProximity + { + which @Case { + { x f } @Yield { labelpos??ANGLE quadcase + 0 { (NW) } + 0-90 { (NW) } + 90 { (SW) } + 90-180 { (SW) } + 180 { (SE) } + 180-270 { (SE) } + 270 { (NE) } + 270-360 { (NE) } + } + { z t } @Yield { labelpos??ANGLE quadcase + 0 { (NE) } + 0-90 { (NW) } + 90 { (NW) } + 90-180 { (SW) } + 180 { (SW) } + 180-270 { (SE) } + 270 { (SE) } + 270-360 { (NE) } + } + else @Yield { labelpos??ANGLE quadcase + 0 { (N) } + 0-90 { (NW) } + 90 { (W) } + 90-180 { (SW) } + 180 { (S) } + 180-270 { (SE) } + 270 { (E) } + 270-360 { (NE) } + } + } + } + + + import @Geometry + def @AboveProximity + { + labelangle @Case { + "aligned" @Yield @AlignedAboveProximity + "perpendicular" @Yield @PerpendicularAboveProximity + else @Yield @OtherAboveProximity + } + } + + import @Geometry + def @BelowProximity + { + labelangle @Case { + "aligned" @Yield @AlignedBelowProximity + "perpendicular" @Yield @PerpendicularBelowProximity + else @Yield @OtherBelowProximity + } + } + + import @Geometry + def @LeftProximity + { + labelangle @Case { + "aligned" @Yield @AlignedLeftProximity + "perpendicular" @Yield @PerpendicularLeftProximity + else @Yield @OtherLeftProximity + } + } + + import @Geometry + def @RightProximity + { + labelangle @Case { + "aligned" @Yield @AlignedRightProximity + "perpendicular" @Yield @PerpendicularRightProximity + else @Yield @OtherRightProximity + } + } + + import @Geometry + def @InsideProximity + { + labelangle @Case { + "aligned" @Yield @AlignedInsideProximity + "perpendicular" @Yield @PerpendicularInsideProximity + else @Yield @OtherInsideProximity + } + } + + import @Geometry + def @OutsideProximity + { + labelangle @Case { + "aligned" @Yield @AlignedOutsideProximity + "perpendicular" @Yield @PerpendicularOutsideProximity + else @Yield @OtherOutsideProximity + } + } + + import @Geometry + def proximity + { + labelprox @Case { + above @Yield @AboveProximity + below @Yield @BelowProximity + left @Yield @LeftProximity + right @Yield @RightProximity + inside @Yield @InsideProximity + outside @Yield @OutsideProximity + else @Yield { "("labelprox")" } + } + } + + import @Geometry + def dorotate + left point + right angle + { + { {0 0} distance point } atangle { {0 0} angleto point + angle } + } + + import @Geometry + def translation + { + labelctr @Case { + { no No } @Yield { + labelpos -- labeltag?!?proximity + } + { yes Yes } @Yield { + #P0 := labelpos + #P1 := labeltag?!?proximity -- P0 + #P2 := labeltag??CTR -- P0 + #TH := labelpos??ANGLE + #P1A := P1 dorotate { 0 - TH } + #P2A := P2 dorotate { 0 - TH } + #PRA := { 0 - xcoord P2A 0 - ycoord P1A } + #PRA dorotate TH ++ P0 + XP1 := labeltag?!?proximity + XP2 := labeltag??CTR + XANG := labelpos??ANGLE + XTH := XANG - 90d - { XP1 angleto XP2 } + XDIST := { XP1 distance XP2 } * sin XTH + labelpos -- XP1 ++ XDIST atangle XANG + } + } + } + + @CatchTags @ZeroSize @Transform + translate { translation ++ labeladjust } + rotate { finalangle } + scale { 1 1 } + labeltag:: @BoxLabels @CatchTags @AddMargins + mtop { labelmargin } + mfoot { labelmargin } + mleft { labelmargin } + mright { labelmargin } + labelfont @Font labelbreak @Break labelformat label + } + + + ####################################################################### + # # + # @Node # + # # + ####################################################################### + + def @Node + import @Geometry named translate + named to precedence 10 left x right y { + @BackEnd @Case { + PostScript @Yield { x y "ldiagpsub" } + PDF @Yield {""} + } + } + {} + import @Geometry named rotate { 0d } + import @Geometry named outline + named margin {} + named shadow {} + named sides {} + named angle {} + { outline + margin { margin } + shadow { shadow } + sides { sides } + angle { angle } + } + named margin { margin } + import @Geometry named shadow { shadow } + import @Geometry named sides { sides } + import @Geometry named angle { angle } + named nodetag { nodetag } + named outlinestyle + named solid { "/ldiagsolid" } + named dashed { "/ldiagdashed" } + named cdashed { "/ldiagcdashed" } + named dotted { "/ldiagdotted" } + named noline { "/ldiagnoline" } + { outlinestyle } + import @Geometry named outlinedashlength { outlinedashlength} + import @Geometry named outlinewidth + named thin { 0.04 ft } + named medium { 0.08 ft } + named thick { 0.12 ft } + { outlinewidth } + named paint { paint } + named font { font } + named break { break } + named format right @Body { format @Body } + named valign { valign } + named vsize { vsize } + named vindent { vindent } + named vstrut + named no { 0.0f } + named yes { 1.0f } + { vstrut } + named vmargin { vmargin } + named topmargin { topmargin } + named footmargin { footmargin } + + named halign { halign } + named hsize { hsize } + named hindent { hindent } + named hstrut + named no { 0.0f } + named yes { 1.0f } + { hstrut } + named hmargin { hmargin } + named leftmargin { leftmargin } + named rightmargin { rightmargin } + + named nodelabel { nodelabel } + named nodelabelmargin { nodelabelmargin } + named nodelabelfont { nodelabelfont } + named nodelabelbreak { nodelabelbreak } + named nodelabelformat right @Body { nodelabelformat @Body } + import @Geometry named nodelabelpos { nodelabelpos } + named nodelabelprox { nodelabelprox } + import @Geometry named nodelabelangle { nodelabelangle } + named nodelabelctr { nodelabelctr } + import @Geometry named nodelabeladjust { nodelabeladjust } + + named alabel { alabel } + named alabelmargin { alabelmargin } + named alabelfont { alabelfont } + named alabelbreak { alabelbreak } + named alabelformat right @Body { alabelformat @Body } + import @Geometry named alabelpos { alabelpos } + named alabelprox { alabelprox } + import @Geometry named alabelangle { alabelangle } + named alabelctr { alabelctr } + import @Geometry named alabeladjust { alabeladjust } + + named blabel { blabel } + named blabelmargin { blabelmargin } + named blabelfont { blabelfont } + named blabelbreak { blabelbreak } + named blabelformat right @Body { blabelformat @Body } + import @Geometry named blabelpos { blabelpos } + named blabelprox { blabelprox } + import @Geometry named blabelangle { blabelangle } + named blabelctr { blabelctr } + import @Geometry named blabeladjust { blabeladjust } + + named clabel { clabel } + named clabelmargin { clabelmargin } + named clabelfont { clabelfont } + named clabelbreak { clabelbreak } + named clabelformat right @Body { clabelformat @Body } + import @Geometry named clabelpos { clabelpos } + named clabelprox { clabelprox } + import @Geometry named clabelangle { clabelangle } + named clabelctr { clabelctr } + import @Geometry named clabeladjust { clabeladjust } + + named dlabel { dlabel } + named dlabelmargin { dlabelmargin } + named dlabelfont { dlabelfont } + named dlabelbreak { dlabelbreak } + named dlabelformat right @Body { dlabelformat @Body } + import @Geometry named dlabelpos { dlabelpos } + named dlabelprox { dlabelprox } + import @Geometry named dlabelangle { dlabelangle } + named dlabelctr { dlabelctr } + import @Geometry named dlabeladjust { dlabeladjust } + + right @Body + { + + def @LabelPos + left x + right y + { + nodelabelpos @Case { + x @Yield y + else @Yield "" + } + } + + def @If + left cond + right x + { + cond @Case { + { yes Yes } @Yield x + else @Yield "" + } + } + + + def @Strut right x + { + def vs { 0.5w @VShift { vstrut @High } } + def hs { hstrut @Wide } + + @HContract @VContract { + @HContract @VContract x | vs / hs | + } + } + + def @Indent right x + { + x @Case { + { top left } @Yield 0.0rt + { ctr } @Yield 0.5rt + { foot right } @Yield 1.0rt + { mctr } @Yield 0.5bx + else @Yield x + } + } + + def @VSize right x + { + vsize @Case { + "" @Yield x + else @Yield { vsize @High { /{@Indent vindent} x / } } + } + } + + def @HSize right x + { + hsize @Case { + "" @Yield x + else @Yield { hsize @Wide { |{@Indent hindent} x | } } + } + } + + def @Align right x + { + x @Case { + { top left } @Yield 0.0w + { ctr } @Yield 0.5w + { foot right } @Yield 1.0w + { mark } @Yield "+0i" + else @Yield x + } + } + + def @ALabel + { + @DoLabel + which { "a" } + label { alabel @Else nodelabel } + labelmargin { alabelmargin @Else nodelabelmargin } + labelfont { alabelfont @Else nodelabelfont } + labelbreak { alabelbreak @Else nodelabelbreak } + labelformat { alabelformat @Body @Else nodelabelformat @Body} + labelpos { alabelpos @Else nodelabelpos } + labelprox { alabelprox @Else nodelabelprox } + labelangle { alabelangle @Else nodelabelangle } + labelctr { alabelctr @Else nodelabelctr } + labeladjust { alabeladjust @Else nodelabeladjust } + } + + def @BLabel + { + @DoLabel + which { "b" } + label { blabel @Else nodelabel } + labelmargin { blabelmargin @Else nodelabelmargin } + labelfont { blabelfont @Else nodelabelfont } + labelbreak { blabelbreak @Else nodelabelbreak } + labelformat { blabelformat @Body @Else nodelabelformat @Body} + labelpos { blabelpos @Else nodelabelpos } + labelprox { blabelprox @Else nodelabelprox } + labelangle { blabelangle @Else nodelabelangle } + labelctr { blabelctr @Else nodelabelctr } + labeladjust { blabeladjust @Else nodelabeladjust } + } + + def @CLabel + { + @DoLabel + which { "c" } + label { clabel @Else nodelabel } + labelmargin { clabelmargin @Else nodelabelmargin } + labelfont { clabelfont @Else nodelabelfont } + labelbreak { clabelbreak @Else nodelabelbreak } + labelformat { clabelformat @Body @Else nodelabelformat @Body} + labelpos { clabelpos @Else nodelabelpos } + labelprox { clabelprox @Else nodelabelprox } + labelangle { clabelangle @Else nodelabelangle } + labelctr { clabelctr @Else nodelabelctr } + labeladjust { clabeladjust @Else nodelabeladjust } + } + + def @DLabel + { + @DoLabel + which { "d" } + label { dlabel @Else nodelabel } + labelmargin { dlabelmargin @Else nodelabelmargin } + labelfont { dlabelfont @Else nodelabelfont } + labelbreak { dlabelbreak @Else nodelabelbreak } + labelformat { dlabelformat @Body @Else nodelabelformat @Body} + labelpos { dlabelpos @Else nodelabelpos } + labelprox { dlabelprox @Else nodelabelprox } + labelangle { dlabelangle @Else nodelabelangle } + labelctr { dlabelctr @Else nodelabelctr } + labeladjust { dlabeladjust @Else nodelabeladjust } + } + + import @Geometry + def @OutLine + { + @BackEnd @Case { + PostScript @Yield { + outline @Case { + box @Yield { "ldiagbox" } + curvebox @Yield { "("margin") ldiagcurvebox" } + shadowbox @Yield { shadow "ldiagshadow ldiagbox" } + square @Yield { "ldiagsquare" } + diamond @Yield { "ldiagdiamond" } + polygon @Yield { sides angle "ldiagpolygon" } + isosceles @Yield { "ldiagisosceles" } + ellipse @Yield { "ldiagellipse" } + circle @Yield { "ldiagcircle" } + else @Yield { + outline + margin { "("margin") ldiagdecodelength" } + shadow { shadow } + sides { sides } + angle { angle } + } + } + } + PDF @Yield {} + } + } + + def @Value + { + @BackEnd @Case { + PostScript @Yield { + @HContract @VContract + { + { + "ldiagnodebegin [" @OutLine "]" + outlinedashlength "[" outlinestyle "]" + outlinewidth "/ldiag"paint "ldiagnodeend" + "(IN) ldiagpushtagdict" + // + "ldiagpopuptagdict" + } + @Graphic + { + {@Align valign} @VShift {@Align halign} @HShift + @AddMargins + mtop { topmargin @Else vmargin @Else margin } + mfoot { footmargin @Else vmargin @Else margin } + mleft { leftmargin @Else hmargin @Else margin } + mright { rightmargin @Else hmargin @Else margin } + @HSize @VSize @HContract @VContract + font @Font break @Break format @Strut @Body + } + / {alabel @Else nodelabel} @IfNonEmpty @ALabel + / {blabel @Else nodelabel} @IfNonEmpty @BLabel + / {clabel @Else nodelabel} @IfNonEmpty @CLabel + / {dlabel @Else nodelabel} @IfNonEmpty @DLabel + } + } + PDF @Yield {} + } + } + + def @TValue + { + nodetag @Case { + "" @Yield @Value + else @Yield { nodetag:: @Value } + } + } + + translate @Case { + "" @Yield @TValue + else @Yield { + @Null & # so that preceding space gets chewed up + @Transform translate { translate } rotate { rotate } @TValue + } + } + } + + + ####################################################################### + # # + # @ANode # + # # + ####################################################################### + + def @ANode + import @Geometry named translate + named to precedence 10 left x right y { + @BackEnd @Case { + PostScript @Yield { x y "ldiagpsub" } + PDF @Yield {""} + } + } + {} + import @Geometry named rotate { 0d } + import @Geometry named outline + named margin {} + named shadow {} + named sides {} + named angle {} + { aoutline + margin { margin } + shadow { shadow } + sides { sides } + angle { angle } + } + named margin { amargin } + import @Geometry named shadow { ashadow } + import @Geometry named sides { asides } + import @Geometry named angle { aangle } + named nodetag { anodetag } + named outlinestyle + named solid { "/ldiagsolid" } + named dashed { "/ldiagdashed" } + named cdashed { "/ldiagcdashed" } + named dotted { "/ldiagdotted" } + named noline { "/ldiagnoline" } + { aoutlinestyle } + import @Geometry named outlinedashlength { aoutlinedashlength} + import @Geometry named outlinewidth + named thin { 0.04 ft } + named medium { 0.08 ft } + named thick { 0.12 ft } + { aoutlinewidth } + named paint { apaint } + named font { afont } + named break { abreak } + named format right @Body { aformat @Body } + named valign { avalign } + named vsize { avsize } + named vindent { avindent } + named vstrut + named no { 0.0f } + named yes { 1.0f } + { avstrut } + named vmargin { avmargin } + named topmargin { atopmargin } + named footmargin { afootmargin } + + named halign { ahalign } + named hsize { ahsize } + named hindent { ahindent } + named hstrut + named no { 0.0f } + named yes { 1.0f } + { ahstrut } + named hmargin { ahmargin } + named leftmargin { aleftmargin } + named rightmargin { arightmargin } + + named nodelabel { anodelabel } + named nodelabelmargin { anodelabelmargin } + named nodelabelfont { anodelabelfont } + named nodelabelbreak { anodelabelbreak } + named nodelabelformat right @Body { anodelabelformat @Body } + import @Geometry named nodelabelpos { anodelabelpos } + named nodelabelprox { anodelabelprox } + import @Geometry named nodelabelangle { anodelabelangle } + named nodelabelctr { anodelabelctr } + import @Geometry named nodelabeladjust { anodelabeladjust } + + named alabel { aalabel } + named alabelmargin { aalabelmargin } + named alabelfont { aalabelfont } + named alabelbreak { aalabelbreak } + named alabelformat right @Body { aalabelformat @Body } + import @Geometry named alabelpos { aalabelpos } + named alabelprox { aalabelprox } + import @Geometry named alabelangle { aalabelangle } + named alabelctr { aalabelctr } + import @Geometry named alabeladjust { aalabeladjust } + + named blabel { ablabel } + named blabelmargin { ablabelmargin } + named blabelfont { ablabelfont } + named blabelbreak { ablabelbreak } + named blabelformat right @Body { ablabelformat @Body } + import @Geometry named blabelpos { ablabelpos } + named blabelprox { ablabelprox } + import @Geometry named blabelangle { ablabelangle } + named blabelctr { ablabelctr } + import @Geometry named blabeladjust { ablabeladjust } + + named clabel { aclabel } + named clabelmargin { aclabelmargin } + named clabelfont { aclabelfont } + named clabelbreak { aclabelbreak } + named clabelformat right @Body { aclabelformat @Body } + import @Geometry named clabelpos { aclabelpos } + named clabelprox { aclabelprox } + import @Geometry named clabelangle { aclabelangle } + named clabelctr { aclabelctr } + import @Geometry named clabeladjust { aclabeladjust } + + named dlabel { adlabel } + named dlabelmargin { adlabelmargin } + named dlabelfont { adlabelfont } + named dlabelbreak { adlabelbreak } + named dlabelformat right @Body { adlabelformat @Body } + import @Geometry named dlabelpos { adlabelpos } + named dlabelprox { adlabelprox } + import @Geometry named dlabelangle { adlabelangle } + named dlabelctr { adlabelctr } + import @Geometry named dlabeladjust { adlabeladjust } + + right @Body + { + + def @LabelPos + left x + right y + { + nodelabelpos @Case { + x @Yield y + else @Yield "" + } + } + + def @If + left cond + right x + { + cond @Case { + { yes Yes } @Yield x + else @Yield "" + } + } + + + def @Strut right x + { + def vs { 0.5w @VShift { vstrut @High } } + def hs { hstrut @Wide } + + @HContract @VContract { + @HContract @VContract x | vs / hs | + } + } + + def @Indent right x + { + x @Case { + { top left } @Yield 0.0rt + { ctr } @Yield 0.5rt + { foot right } @Yield 1.0rt + { mctr } @Yield 0.5bx + else @Yield x + } + } + + def @VSize right x + { + vsize @Case { + "" @Yield x + else @Yield { vsize @High { /{@Indent vindent} x / } } + } + } + + def @HSize right x + { + hsize @Case { + "" @Yield x + else @Yield { hsize @Wide { |{@Indent hindent} x | } } + } + } + + def @Align right x + { + x @Case { + { top left } @Yield 0.0w + { ctr } @Yield 0.5w + { foot right } @Yield 1.0w + { mark } @Yield "+0i" + else @Yield x + } + } + + def @ALabel + { + @DoLabel + which { "a" } + label { alabel @Else nodelabel } + labelmargin { alabelmargin @Else nodelabelmargin } + labelfont { alabelfont @Else nodelabelfont } + labelbreak { alabelbreak @Else nodelabelbreak } + labelformat { alabelformat @Body @Else nodelabelformat @Body} + labelpos { alabelpos @Else nodelabelpos } + labelprox { alabelprox @Else nodelabelprox } + labelangle { alabelangle @Else nodelabelangle } + labelctr { alabelctr @Else nodelabelctr } + labeladjust { alabeladjust @Else nodelabeladjust } + } + + def @BLabel + { + @DoLabel + which { "b" } + label { blabel @Else nodelabel } + labelmargin { blabelmargin @Else nodelabelmargin } + labelfont { blabelfont @Else nodelabelfont } + labelbreak { blabelbreak @Else nodelabelbreak } + labelformat { blabelformat @Body @Else nodelabelformat @Body} + labelpos { blabelpos @Else nodelabelpos } + labelprox { blabelprox @Else nodelabelprox } + labelangle { blabelangle @Else nodelabelangle } + labelctr { blabelctr @Else nodelabelctr } + labeladjust { blabeladjust @Else nodelabeladjust } + } + + def @CLabel + { + @DoLabel + which { "c" } + label { clabel @Else nodelabel } + labelmargin { clabelmargin @Else nodelabelmargin } + labelfont { clabelfont @Else nodelabelfont } + labelbreak { clabelbreak @Else nodelabelbreak } + labelformat { clabelformat @Body @Else nodelabelformat @Body} + labelpos { clabelpos @Else nodelabelpos } + labelprox { clabelprox @Else nodelabelprox } + labelangle { clabelangle @Else nodelabelangle } + labelctr { clabelctr @Else nodelabelctr } + labeladjust { clabeladjust @Else nodelabeladjust } + } + + def @DLabel + { + @DoLabel + which { "d" } + label { dlabel @Else nodelabel } + labelmargin { dlabelmargin @Else nodelabelmargin } + labelfont { dlabelfont @Else nodelabelfont } + labelbreak { dlabelbreak @Else nodelabelbreak } + labelformat { dlabelformat @Body @Else nodelabelformat @Body} + labelpos { dlabelpos @Else nodelabelpos } + labelprox { dlabelprox @Else nodelabelprox } + labelangle { dlabelangle @Else nodelabelangle } + labelctr { dlabelctr @Else nodelabelctr } + labeladjust { dlabeladjust @Else nodelabeladjust } + } + + import @Geometry + def @OutLine + { + @BackEnd @Case { + PostScript @Yield { + outline @Case { + box @Yield { "ldiagbox" } + curvebox @Yield { "("margin") ldiagcurvebox" } + shadowbox @Yield { shadow "ldiagshadow ldiagbox" } + square @Yield { "ldiagsquare" } + diamond @Yield { "ldiagdiamond" } + polygon @Yield { sides angle "ldiagpolygon" } + isosceles @Yield { "ldiagisosceles" } + ellipse @Yield { "ldiagellipse" } + circle @Yield { "ldiagcircle" } + else @Yield { + outline + margin { "("margin") ldiagdecodelength" } + shadow { shadow } + sides { sides } + angle { angle } + } + } + } + PDF @Yield {} + } + } + + def @Value + { + @BackEnd @Case { + PostScript @Yield { + @HContract @VContract + { + { + "ldiagnodebegin [" @OutLine "]" + outlinedashlength "[" outlinestyle "]" + outlinewidth "/ldiag"paint "ldiagnodeend" + "(IN) ldiagpushtagdict" + // + "ldiagpopuptagdict" + } + @Graphic + { + {@Align valign} @VShift {@Align halign} @HShift + @AddMargins + mtop { topmargin @Else vmargin @Else margin } + mfoot { footmargin @Else vmargin @Else margin } + mleft { leftmargin @Else hmargin @Else margin } + mright { rightmargin @Else hmargin @Else margin } + @HSize @VSize @HContract @VContract + font @Font break @Break format @Strut @Body + } + / {alabel @Else nodelabel} @IfNonEmpty @ALabel + / {blabel @Else nodelabel} @IfNonEmpty @BLabel + / {clabel @Else nodelabel} @IfNonEmpty @CLabel + / {dlabel @Else nodelabel} @IfNonEmpty @DLabel + } + } + PDF @Yield {} + } + } + + def @TValue + { + nodetag @Case { + "" @Yield @Value + else @Yield { nodetag:: @Value } + } + } + + translate @Case { + "" @Yield @TValue + else @Yield { + @Null & # so that preceding space gets chewed up + @Transform translate { translate } rotate { rotate } @TValue + } + } + } + + + ####################################################################### + # # + # @BNode # + # # + ####################################################################### + + def @BNode + import @Geometry named translate + named to precedence 10 left x right y { + @BackEnd @Case { + PostScript @Yield { x y "ldiagpsub" } + PDF @Yield {""} + } + } + {} + import @Geometry named rotate { 0d } + import @Geometry named outline + named margin {} + named shadow {} + named sides {} + named angle {} + { boutline + margin { margin } + shadow { shadow } + sides { sides } + angle { angle } + } + named margin { bmargin } + import @Geometry named shadow { bshadow } + import @Geometry named sides { bsides } + import @Geometry named angle { bangle } + named nodetag { bnodetag } + named outlinestyle + named solid { "/ldiagsolid" } + named dashed { "/ldiagdashed" } + named cdashed { "/ldiagcdashed" } + named dotted { "/ldiagdotted" } + named noline { "/ldiagnoline" } + { boutlinestyle } + import @Geometry named outlinedashlength { boutlinedashlength} + import @Geometry named outlinewidth + named thin { 0.04 ft } + named medium { 0.08 ft } + named thick { 0.12 ft } + { boutlinewidth } + named paint { bpaint } + named font { bfont } + named break { bbreak } + named format right @Body { bformat @Body } + named valign { bvalign } + named vsize { bvsize } + named vindent { bvindent } + named vstrut + named no { 0.0f } + named yes { 1.0f } + { bvstrut } + named vmargin { bvmargin } + named topmargin { btopmargin } + named footmargin { bfootmargin } + + named halign { bhalign } + named hsize { bhsize } + named hindent { bhindent } + named hstrut + named no { 0.0f } + named yes { 1.0f } + { bhstrut } + named hmargin { bhmargin } + named leftmargin { bleftmargin } + named rightmargin { brightmargin } + + named nodelabel { bnodelabel } + named nodelabelmargin { bnodelabelmargin } + named nodelabelfont { bnodelabelfont } + named nodelabelbreak { bnodelabelbreak } + named nodelabelformat right @Body { bnodelabelformat @Body } + import @Geometry named nodelabelpos { bnodelabelpos } + named nodelabelprox { bnodelabelprox } + import @Geometry named nodelabelangle { bnodelabelangle } + named nodelabelctr { bnodelabelctr } + import @Geometry named nodelabeladjust { bnodelabeladjust } + + named alabel { balabel } + named alabelmargin { balabelmargin } + named alabelfont { balabelfont } + named alabelbreak { balabelbreak } + named alabelformat right @Body { balabelformat @Body } + import @Geometry named alabelpos { balabelpos } + named alabelprox { balabelprox } + import @Geometry named alabelangle { balabelangle } + named alabelctr { balabelctr } + import @Geometry named alabeladjust { balabeladjust } + + named blabel { bblabel } + named blabelmargin { bblabelmargin } + named blabelfont { bblabelfont } + named blabelbreak { bblabelbreak } + named blabelformat right @Body { bblabelformat @Body } + import @Geometry named blabelpos { bblabelpos } + named blabelprox { bblabelprox } + import @Geometry named blabelangle { bblabelangle } + named blabelctr { bblabelctr } + import @Geometry named blabeladjust { bblabeladjust } + + named clabel { bclabel } + named clabelmargin { bclabelmargin } + named clabelfont { bclabelfont } + named clabelbreak { bclabelbreak } + named clabelformat right @Body { bclabelformat @Body } + import @Geometry named clabelpos { bclabelpos } + named clabelprox { bclabelprox } + import @Geometry named clabelangle { bclabelangle } + named clabelctr { bclabelctr } + import @Geometry named clabeladjust { bclabeladjust } + + named dlabel { bdlabel } + named dlabelmargin { bdlabelmargin } + named dlabelfont { bdlabelfont } + named dlabelbreak { bdlabelbreak } + named dlabelformat right @Body { bdlabelformat @Body } + import @Geometry named dlabelpos { bdlabelpos } + named dlabelprox { bdlabelprox } + import @Geometry named dlabelangle { bdlabelangle } + named dlabelctr { bdlabelctr } + import @Geometry named dlabeladjust { bdlabeladjust } + + right @Body + { + + def @LabelPos + left x + right y + { + nodelabelpos @Case { + x @Yield y + else @Yield "" + } + } + + def @If + left cond + right x + { + cond @Case { + { yes Yes } @Yield x + else @Yield "" + } + } + + + def @Strut right x + { + def vs { 0.5w @VShift { vstrut @High } } + def hs { hstrut @Wide } + + @HContract @VContract { + @HContract @VContract x | vs / hs | + } + } + + def @Indent right x + { + x @Case { + { top left } @Yield 0.0rt + { ctr } @Yield 0.5rt + { foot right } @Yield 1.0rt + { mctr } @Yield 0.5bx + else @Yield x + } + } + + def @VSize right x + { + vsize @Case { + "" @Yield x + else @Yield { vsize @High { /{@Indent vindent} x / } } + } + } + + def @HSize right x + { + hsize @Case { + "" @Yield x + else @Yield { hsize @Wide { |{@Indent hindent} x | } } + } + } + + def @Align right x + { + x @Case { + { top left } @Yield 0.0w + { ctr } @Yield 0.5w + { foot right } @Yield 1.0w + { mark } @Yield "+0i" + else @Yield x + } + } + + def @ALabel + { + @DoLabel + which { "a" } + label { alabel @Else nodelabel } + labelmargin { alabelmargin @Else nodelabelmargin } + labelfont { alabelfont @Else nodelabelfont } + labelbreak { alabelbreak @Else nodelabelbreak } + labelformat { alabelformat @Body @Else nodelabelformat @Body} + labelpos { alabelpos @Else nodelabelpos } + labelprox { alabelprox @Else nodelabelprox } + labelangle { alabelangle @Else nodelabelangle } + labelctr { alabelctr @Else nodelabelctr } + labeladjust { alabeladjust @Else nodelabeladjust } + } + + def @BLabel + { + @DoLabel + which { "b" } + label { blabel @Else nodelabel } + labelmargin { blabelmargin @Else nodelabelmargin } + labelfont { blabelfont @Else nodelabelfont } + labelbreak { blabelbreak @Else nodelabelbreak } + labelformat { blabelformat @Body @Else nodelabelformat @Body} + labelpos { blabelpos @Else nodelabelpos } + labelprox { blabelprox @Else nodelabelprox } + labelangle { blabelangle @Else nodelabelangle } + labelctr { blabelctr @Else nodelabelctr } + labeladjust { blabeladjust @Else nodelabeladjust } + } + + def @CLabel + { + @DoLabel + which { "c" } + label { clabel @Else nodelabel } + labelmargin { clabelmargin @Else nodelabelmargin } + labelfont { clabelfont @Else nodelabelfont } + labelbreak { clabelbreak @Else nodelabelbreak } + labelformat { clabelformat @Body @Else nodelabelformat @Body} + labelpos { clabelpos @Else nodelabelpos } + labelprox { clabelprox @Else nodelabelprox } + labelangle { clabelangle @Else nodelabelangle } + labelctr { clabelctr @Else nodelabelctr } + labeladjust { clabeladjust @Else nodelabeladjust } + } + + def @DLabel + { + @DoLabel + which { "d" } + label { dlabel @Else nodelabel } + labelmargin { dlabelmargin @Else nodelabelmargin } + labelfont { dlabelfont @Else nodelabelfont } + labelbreak { dlabelbreak @Else nodelabelbreak } + labelformat { dlabelformat @Body @Else nodelabelformat @Body} + labelpos { dlabelpos @Else nodelabelpos } + labelprox { dlabelprox @Else nodelabelprox } + labelangle { dlabelangle @Else nodelabelangle } + labelctr { dlabelctr @Else nodelabelctr } + labeladjust { dlabeladjust @Else nodelabeladjust } + } + + import @Geometry + def @OutLine + { + @BackEnd @Case { + PostScript @Yield { + outline @Case { + box @Yield { "ldiagbox" } + curvebox @Yield { "("margin") ldiagcurvebox" } + shadowbox @Yield { shadow "ldiagshadow ldiagbox" } + square @Yield { "ldiagsquare" } + diamond @Yield { "ldiagdiamond" } + polygon @Yield { sides angle "ldiagpolygon" } + isosceles @Yield { "ldiagisosceles" } + ellipse @Yield { "ldiagellipse" } + circle @Yield { "ldiagcircle" } + else @Yield { + outline + margin { "("margin") ldiagdecodelength" } + shadow { shadow } + sides { sides } + angle { angle } + } + } + } + PDF @Yield {} + } + } + + def @Value + { + @BackEnd @Case { + PostScript @Yield { + @HContract @VContract + { + { + "ldiagnodebegin [" @OutLine "]" + outlinedashlength "[" outlinestyle "]" + outlinewidth "/ldiag"paint "ldiagnodeend" + "(IN) ldiagpushtagdict" + // + "ldiagpopuptagdict" + } + @Graphic + { + {@Align valign} @VShift {@Align halign} @HShift + @AddMargins + mtop { topmargin @Else vmargin @Else margin } + mfoot { footmargin @Else vmargin @Else margin } + mleft { leftmargin @Else hmargin @Else margin } + mright { rightmargin @Else hmargin @Else margin } + @HSize @VSize @HContract @VContract + font @Font break @Break format @Strut @Body + } + / {alabel @Else nodelabel} @IfNonEmpty @ALabel + / {blabel @Else nodelabel} @IfNonEmpty @BLabel + / {clabel @Else nodelabel} @IfNonEmpty @CLabel + / {dlabel @Else nodelabel} @IfNonEmpty @DLabel + } + } + PDF @Yield {} + } + } + + def @TValue + { + nodetag @Case { + "" @Yield @Value + else @Yield { nodetag:: @Value } + } + } + + translate @Case { + "" @Yield @TValue + else @Yield { + @Null & # so that preceding space gets chewed up + @Transform translate { translate } rotate { rotate } @TValue + } + } + } + + + ####################################################################### + # # + # @CNode # + # # + ####################################################################### + + def @CNode + import @Geometry named translate + named to precedence 10 left x right y { + @BackEnd @Case { + PostScript @Yield { x y "ldiagpsub" } + PDF @Yield {""} + } + } + {} + import @Geometry named rotate { 0d } + import @Geometry named outline + named margin {} + named shadow {} + named sides {} + named angle {} + { coutline + margin { margin } + shadow { shadow } + sides { sides } + angle { angle } + } + named margin { cmargin } + import @Geometry named shadow { cshadow } + import @Geometry named sides { csides } + import @Geometry named angle { cangle } + named nodetag { cnodetag } + named outlinestyle + named solid { "/ldiagsolid" } + named dashed { "/ldiagdashed" } + named cdashed { "/ldiagcdashed" } + named dotted { "/ldiagdotted" } + named noline { "/ldiagnoline" } + { coutlinestyle } + import @Geometry named outlinedashlength { coutlinedashlength} + import @Geometry named outlinewidth + named thin { 0.04 ft } + named medium { 0.08 ft } + named thick { 0.12 ft } + { coutlinewidth } + named paint { cpaint } + named font { cfont } + named break { cbreak } + named format right @Body { cformat @Body } + named valign { cvalign } + named vsize { cvsize } + named vindent { cvindent } + named vstrut + named no { 0.0f } + named yes { 1.0f } + { cvstrut } + named vmargin { cvmargin } + named topmargin { ctopmargin } + named footmargin { cfootmargin } + + named halign { chalign } + named hsize { chsize } + named hindent { chindent } + named hstrut + named no { 0.0f } + named yes { 1.0f } + { chstrut } + named hmargin { chmargin } + named leftmargin { cleftmargin } + named rightmargin { crightmargin } + + named nodelabel { cnodelabel } + named nodelabelmargin { cnodelabelmargin } + named nodelabelfont { cnodelabelfont } + named nodelabelbreak { cnodelabelbreak } + named nodelabelformat right @Body { cnodelabelformat @Body } + import @Geometry named nodelabelpos { cnodelabelpos } + named nodelabelprox { cnodelabelprox } + import @Geometry named nodelabelangle { cnodelabelangle } + named nodelabelctr { cnodelabelctr } + import @Geometry named nodelabeladjust { cnodelabeladjust } + + named alabel { calabel } + named alabelmargin { calabelmargin } + named alabelfont { calabelfont } + named alabelbreak { calabelbreak } + named alabelformat right @Body { calabelformat @Body } + import @Geometry named alabelpos { calabelpos } + named alabelprox { calabelprox } + import @Geometry named alabelangle { calabelangle } + named alabelctr { calabelctr } + import @Geometry named alabeladjust { calabeladjust } + + named blabel { cblabel } + named blabelmargin { cblabelmargin } + named blabelfont { cblabelfont } + named blabelbreak { cblabelbreak } + named blabelformat right @Body { cblabelformat @Body } + import @Geometry named blabelpos { cblabelpos } + named blabelprox { cblabelprox } + import @Geometry named blabelangle { cblabelangle } + named blabelctr { cblabelctr } + import @Geometry named blabeladjust { cblabeladjust } + + named clabel { cclabel } + named clabelmargin { cclabelmargin } + named clabelfont { cclabelfont } + named clabelbreak { cclabelbreak } + named clabelformat right @Body { cclabelformat @Body } + import @Geometry named clabelpos { cclabelpos } + named clabelprox { cclabelprox } + import @Geometry named clabelangle { cclabelangle } + named clabelctr { cclabelctr } + import @Geometry named clabeladjust { cclabeladjust } + + named dlabel { cdlabel } + named dlabelmargin { cdlabelmargin } + named dlabelfont { cdlabelfont } + named dlabelbreak { cdlabelbreak } + named dlabelformat right @Body { cdlabelformat @Body } + import @Geometry named dlabelpos { cdlabelpos } + named dlabelprox { cdlabelprox } + import @Geometry named dlabelangle { cdlabelangle } + named dlabelctr { cdlabelctr } + import @Geometry named dlabeladjust { cdlabeladjust } + + right @Body + { + + def @LabelPos + left x + right y + { + nodelabelpos @Case { + x @Yield y + else @Yield "" + } + } + + def @If + left cond + right x + { + cond @Case { + { yes Yes } @Yield x + else @Yield "" + } + } + + + def @Strut right x + { + def vs { 0.5w @VShift { vstrut @High } } + def hs { hstrut @Wide } + + @HContract @VContract { + @HContract @VContract x | vs / hs | + } + } + + def @Indent right x + { + x @Case { + { top left } @Yield 0.0rt + { ctr } @Yield 0.5rt + { foot right } @Yield 1.0rt + { mctr } @Yield 0.5bx + else @Yield x + } + } + + def @VSize right x + { + vsize @Case { + "" @Yield x + else @Yield { vsize @High { /{@Indent vindent} x / } } + } + } + + def @HSize right x + { + hsize @Case { + "" @Yield x + else @Yield { hsize @Wide { |{@Indent hindent} x | } } + } + } + + def @Align right x + { + x @Case { + { top left } @Yield 0.0w + { ctr } @Yield 0.5w + { foot right } @Yield 1.0w + { mark } @Yield "+0i" + else @Yield x + } + } + + def @ALabel + { + @DoLabel + which { "a" } + label { alabel @Else nodelabel } + labelmargin { alabelmargin @Else nodelabelmargin } + labelfont { alabelfont @Else nodelabelfont } + labelbreak { alabelbreak @Else nodelabelbreak } + labelformat { alabelformat @Body @Else nodelabelformat @Body} + labelpos { alabelpos @Else nodelabelpos } + labelprox { alabelprox @Else nodelabelprox } + labelangle { alabelangle @Else nodelabelangle } + labelctr { alabelctr @Else nodelabelctr } + labeladjust { alabeladjust @Else nodelabeladjust } + } + + def @BLabel + { + @DoLabel + which { "b" } + label { blabel @Else nodelabel } + labelmargin { blabelmargin @Else nodelabelmargin } + labelfont { blabelfont @Else nodelabelfont } + labelbreak { blabelbreak @Else nodelabelbreak } + labelformat { blabelformat @Body @Else nodelabelformat @Body} + labelpos { blabelpos @Else nodelabelpos } + labelprox { blabelprox @Else nodelabelprox } + labelangle { blabelangle @Else nodelabelangle } + labelctr { blabelctr @Else nodelabelctr } + labeladjust { blabeladjust @Else nodelabeladjust } + } + + def @CLabel + { + @DoLabel + which { "c" } + label { clabel @Else nodelabel } + labelmargin { clabelmargin @Else nodelabelmargin } + labelfont { clabelfont @Else nodelabelfont } + labelbreak { clabelbreak @Else nodelabelbreak } + labelformat { clabelformat @Body @Else nodelabelformat @Body} + labelpos { clabelpos @Else nodelabelpos } + labelprox { clabelprox @Else nodelabelprox } + labelangle { clabelangle @Else nodelabelangle } + labelctr { clabelctr @Else nodelabelctr } + labeladjust { clabeladjust @Else nodelabeladjust } + } + + def @DLabel + { + @DoLabel + which { "d" } + label { dlabel @Else nodelabel } + labelmargin { dlabelmargin @Else nodelabelmargin } + labelfont { dlabelfont @Else nodelabelfont } + labelbreak { dlabelbreak @Else nodelabelbreak } + labelformat { dlabelformat @Body @Else nodelabelformat @Body} + labelpos { dlabelpos @Else nodelabelpos } + labelprox { dlabelprox @Else nodelabelprox } + labelangle { dlabelangle @Else nodelabelangle } + labelctr { dlabelctr @Else nodelabelctr } + labeladjust { dlabeladjust @Else nodelabeladjust } + } + + import @Geometry + def @OutLine + { + @BackEnd @Case { + PostScript @Yield { + outline @Case { + box @Yield { "ldiagbox" } + curvebox @Yield { "("margin") ldiagcurvebox" } + shadowbox @Yield { shadow "ldiagshadow ldiagbox" } + square @Yield { "ldiagsquare" } + diamond @Yield { "ldiagdiamond" } + polygon @Yield { sides angle "ldiagpolygon" } + isosceles @Yield { "ldiagisosceles" } + ellipse @Yield { "ldiagellipse" } + circle @Yield { "ldiagcircle" } + else @Yield { + outline + margin { "("margin") ldiagdecodelength" } + shadow { shadow } + sides { sides } + angle { angle } + } + } + } + PDF @Yield {} + } + } + + def @Value + { + @BackEnd @Case { + PostScript @Yield { + @HContract @VContract + { + { + "ldiagnodebegin [" @OutLine "]" + outlinedashlength "[" outlinestyle "]" + outlinewidth "/ldiag"paint "ldiagnodeend" + "(IN) ldiagpushtagdict" + // + "ldiagpopuptagdict" + } + @Graphic + { + {@Align valign} @VShift {@Align halign} @HShift + @AddMargins + mtop { topmargin @Else vmargin @Else margin } + mfoot { footmargin @Else vmargin @Else margin } + mleft { leftmargin @Else hmargin @Else margin } + mright { rightmargin @Else hmargin @Else margin } + @HSize @VSize @HContract @VContract + font @Font break @Break format @Strut @Body + } + / {alabel @Else nodelabel} @IfNonEmpty @ALabel + / {blabel @Else nodelabel} @IfNonEmpty @BLabel + / {clabel @Else nodelabel} @IfNonEmpty @CLabel + / {dlabel @Else nodelabel} @IfNonEmpty @DLabel + } + } + PDF @Yield {} + } + } + + def @TValue + { + nodetag @Case { + "" @Yield @Value + else @Yield { nodetag:: @Value } + } + } + + translate @Case { + "" @Yield @TValue + else @Yield { + @Null & # so that preceding space gets chewed up + @Transform translate { translate } rotate { rotate } @TValue + } + } + } + + + ####################################################################### + # # + # @Box, @CurveBox, and other standard node abbreviations # + # # + ####################################################################### + + macro @@Node { @Node } + macro @Box { @Node outline { box } } + macro @CurveBox { @Node outline { curvebox } } + macro @ShadowBox { @Node outline { shadowbox } } + macro @Square { @Node outline { square } } + macro @Diamond { @Node outline { diamond } } + macro @Polygon { @Node outline { polygon } } + macro @Isosceles { @Node outline { isosceles } } + macro @Ellipse { @Node outline { ellipse } } + macro @Circle { @Node outline { circle } } + + + ####################################################################### + # # + # Arrowheads # + # # + ####################################################################### + + macro @InsulatedNode { + @Node + topmargin { 0i } + footmargin { 0i } + leftmargin { 0i } + rightmargin { 0i } + alabel {} + blabel {} + clabel {} + dlabel {} + hsize {} + vsize {} + vstrut { no } + hstrut { no } + } + + def @SolidArrowHead + named width { arrowwidth } + named length { arrowlength } + named pathwidth { pathwidth } + { + @InsulatedNode + paint { nochange } + outlinestyle { noline } + outlinewidth { pathwidth } + outline { + @BackEnd @Case { + PostScript @Yield { + "ldiagsolidarrowhead" + # 0 0 xsize ysize * 0.5 0 ysize + } + PDF @Yield {} + } + } + { + length @Wide width @High + } + } + + def @OpenArrowHead + named width { arrowwidth } + named length { arrowlength } + named pathwidth { pathwidth } + { + @InsulatedNode + outlinewidth { pathwidth } + outlinestyle { noline } + paint { nochange } + outline { + @BackEnd @Case { + PostScript @Yield { + pathwidth "ldiagopenarrowhead" + + # PSW := { 0 0 } + # PNW := { 0 ysize } + # PE := { xsize ysize*0.5 } + # REL := pathwidth atangle { PE angleto PNW + 90d } + # PNA := { 0 ysize*0.5 + pathwidth*0.5 } + # PSA := { 0 ysize*0.5 - pathwidth*0.5 } + # PNI := { + # PNA PNA ++ { xsize 0 } + # PNW ++ REL PE ++ REL ldiaglineintersect + # } + # PSI := PNI -- { 0 pathwidth } + # + # PSW PE PNW PNI PNA PSA PSI PSW + } + PDF @Yield {} + } + } + { + length @Wide width @High + } + } + + def @HalfOpenArrowHead + named width { arrowwidth } + named length { arrowlength } + named pathwidth { pathwidth } + { + @InsulatedNode + paint { nochange } + outlinestyle { noline } + outlinewidth { pathwidth } + outline { + @BackEnd @Case { + PostScript @Yield { + pathwidth "ldiaghalfopenarrowhead" + + # 0 0 + # xsize ysize * 0.5 + # 0 ysize + # xsize*0.3 ysize*0.5 + pathwidth*0.5 + # 0 ysize*0.5 + pathwidth*0.5 + # 0 ysize*0.5 - pathwidth*0.5 + # xsize*0.3 ysize*0.5 - pathwidth*0.5 + # 0 0 + } + PDF @Yield {} + } + } + { + length @Wide width @High + } + } + + def @SolidCurvedArrowHead + named width { arrowwidth } + named length { arrowlength } + named pathwidth { pathwidth } + { + @InsulatedNode + outlinestyle { noline } + paint { nochange } + outlinewidth { pathwidth } + outline { + @BackEnd @Case { + PostScript @Yield { + "ldiagsolidcurvedarrowhead" + # 0 0 + # [0 0 xsize ysize * 0.5 "ldiaglinebetween" + # xsize 0 xsize ysize "ldiaglineintersect" clockwise] + # xsize ysize * 0.5 + # [xsize ysize * 0.5 0 ysize "ldiaglinebetween" + # xsize 0 xsize ysize "ldiaglineintersect" clockwise] + # 0 ysize + } + PDF @Yield {} + } + } + { + length @Wide width @High + } + } + + def @OpenCurvedArrowHead + named width { arrowwidth } + named length { arrowlength } + named pathwidth { pathwidth } + { + @InsulatedNode + outlinestyle { noline } + paint { nochange } + outlinewidth { pathwidth } + outline { + @BackEnd @Case { + PostScript @Yield { + pathwidth "ldiagopencurvedarrowhead" + # LR:= { 0 0 xsize ysize * 0.5 "ldiaglinebetween" + # xsize 0 xsize ysize "ldiaglineintersect" } + # UR:= { xsize ysize * 0.5 0 ysize "ldiaglinebetween" + # xsize 0 xsize ysize "ldiaglineintersect" } + # PW2 := pathwidth * 0.5 + # UMID := { + # 0 ysize * 0.5 + PW2 xsize ysize * 0.5 + PW2 + # {0 ysize} ++ 1f atangle { UR angleto {0 ysize} + 90d } + # { 0 ysize } ldiaglineintersect + # } + # LMID := UMID -- { 0 pathwidth } + # 0 0 + # [LR clockwise] + # xsize ysize * 0.5 + # [UR clockwise] + # 0 ysize + # UMID + # 0 ysize * 0.5 + PW2 + # 0 ysize * 0.5 - PW2 + # LMID + # 0 0 + } + PDF @Yield {} + } + } + { + length @Wide width @High + } + } + + def @HalfOpenCurvedArrowHead + named width { arrowwidth } + named length { arrowlength } + named pathwidth { pathwidth } + { + @InsulatedNode + outlinestyle { noline } + paint { nochange } + outlinewidth { pathwidth } + outline { + @BackEnd @Case { + PostScript @Yield { + pathwidth "ldiaghalfopencurvedarrowhead" + # LR:= { 0 0 xsize ysize * 0.5 "ldiaglinebetween" + # xsize 0 xsize ysize "ldiaglineintersect" } + # UR:= { xsize ysize * 0.5 0 ysize "ldiaglinebetween" + # xsize 0 xsize ysize "ldiaglineintersect" } + # BR:= { 0 0 LR 0 ysize UR "ldiaglineintersect" } + # BRAD := { 0 0 } distance BR + # PW2 := pathwidth * 0.5 + # XDIST := sqrt { BRAD*BRAD - PW2*PW2 } + # UMID := BR ++ { XDIST PW2 } + # LMID := BR ++ { XDIST 0 - PW2 } + # 0 0 + # [LR clockwise] + # xsize ysize * 0.5 + # [UR clockwise] + # 0 ysize + # [BR clockwise ] + # UMID + # 0 ysize * 0.5 + PW2 + # 0 ysize * 0.5 - PW2 + # LMID + # [BR clockwise ] + # 0 0 + } + PDF @Yield {} + } + } + { + length @Wide width @High + } + } + + def @CircleArrowHead + named width { arrowwidth } + named length { arrowlength } + named pathwidth { pathwidth } + { + @InsulatedNode + outlinestyle { noline } + paint { nochange } + outlinewidth { pathwidth } + outline { circle } + { length @Wide length @High } + } + + def @BoxArrowHead + named width { arrowwidth } + named length { arrowlength } + named pathwidth { pathwidth } + { + @InsulatedNode + outlinestyle { noline } + paint { nochange } + outlinewidth { pathwidth } + outline { box } + { length @Wide width @High } + } + + def @ArrowHead + named style { arrowstyle } + named width { arrowwidth } + named length { arrowlength } + named pathwidth { pathwidth } + { + style @Case { + solid @Yield @SolidArrowHead + width { width } length { length } + pathwidth { pathwidth } + halfopen @Yield @HalfOpenArrowHead + width { width } length { length } + pathwidth { pathwidth } + open @Yield @OpenArrowHead + width { width } length { length } + pathwidth { pathwidth } + curvedsolid @Yield @SolidCurvedArrowHead + width { width } length { length } + pathwidth { pathwidth } + curvedhalfopen @Yield @HalfOpenCurvedArrowHead + width { width } length { length } + pathwidth { pathwidth } + curvedopen @Yield @OpenCurvedArrowHead + width { width } length { length } + pathwidth { pathwidth } + circle @Yield @CircleArrowHead + width { width } length { length } + pathwidth { pathwidth } + box @Yield @BoxArrowHead + width { width } length { length } + pathwidth { pathwidth } + } + } + + + ####################################################################### + # # + # @Link # + # # + ####################################################################### + + def @Link + import @Geometry named path + named from {} + named to {} + named bias {} + named fbias {} + named tbias {} + named radius {} + named xindent {} + named zindent {} + named frompt {} + named topt {} + named arrow {} + named arrowlength {} + { path + from { from } + to { to } + bias { bias } + fbias { fbias } + tbias { tbias } + radius { radius } + xindent { xindent } + zindent { zindent } + frompt { frompt } + topt { topt } + arrow { arrow } + arrowlength { arrowlength } + } + import @Geometry named from { from } + import @Geometry named to { to } + import @Geometry named bias { bias } + import @Geometry named fbias { fbias } + import @Geometry named tbias { tbias } + import @Geometry named radius { radius } + import @Geometry named xindent { xindent } + import @Geometry named zindent { zindent } + import @Geometry named frompt { frompt } + import @Geometry named topt { topt } + named pathstyle + named solid { "/ldiagsolid" } + named dashed { "/ldiagdashed" } + named cdashed { "/ldiagcdashed" } + named dotted { "/ldiagdotted" } + named noline { "/ldiagnoline" } + { pathstyle } + import @Geometry named pathdashlength { pathdashlength } + import @Geometry named pathwidth + named thin { 0.04 ft } + named medium { 0.08 ft } + named thick { 0.12 ft } + { pathwidth } + import @Geometry named pathgap + named thin { 0.08 ft } + named medium { 0.16 ft } + named thick { 0.24 ft } + { pathgap } + + named arrow { arrow } + named arrowstyle { arrowstyle } + named arrowwidth { arrowwidth } + named arrowlength { arrowlength } + + named linklabel { linklabel } + named linklabelmargin { linklabelmargin } + named linklabelfont { linklabelfont } + named linklabelbreak { linklabelbreak } + named linklabelformat right @Body { linklabelformat @Body } + import @Geometry named linklabelpos { linklabelpos } + named linklabelprox { linklabelprox } + import @Geometry named linklabelangle { linklabelangle } + named linklabelctr { linklabelctr } + import @Geometry named linklabeladjust { linklabeladjust } + + named xlabel { xlabel } + named xlabelmargin { xlabelmargin } + named xlabelfont { xlabelfont } + named xlabelbreak { xlabelbreak } + named xlabelformat right @Body { xlabelformat @Body } + import @Geometry named xlabelpos { xlabelpos } + named xlabelprox { xlabelprox } + import @Geometry named xlabelangle { xlabelangle } + named xlabelctr { xlabelctr } + import @Geometry named xlabeladjust { xlabeladjust } + + named ylabel { ylabel } + named ylabelmargin { ylabelmargin } + named ylabelfont { ylabelfont } + named ylabelbreak { ylabelbreak } + named ylabelformat right @Body { ylabelformat @Body } + import @Geometry named ylabelpos { ylabelpos } + named ylabelprox { ylabelprox } + import @Geometry named ylabelangle { ylabelangle } + named ylabelctr { ylabelctr } + import @Geometry named ylabeladjust { ylabeladjust } + + named zlabel { zlabel } + named zlabelmargin { zlabelmargin } + named zlabelfont { zlabelfont } + named zlabelbreak { zlabelbreak } + named zlabelformat right @Body { zlabelformat @Body } + import @Geometry named zlabelpos { zlabelpos } + named zlabelprox { zlabelprox } + import @Geometry named zlabelangle { zlabelangle } + named zlabelctr { zlabelctr } + import @Geometry named zlabeladjust { zlabeladjust } + + named fromlabel { fromlabel } + named fromlabelmargin { fromlabelmargin } + named fromlabelfont { fromlabelfont } + named fromlabelbreak { fromlabelbreak } + named fromlabelformat right @Body { fromlabelformat @Body } + import @Geometry named fromlabelpos { fromlabelpos } + named fromlabelprox { fromlabelprox } + import @Geometry named fromlabelangle { fromlabelangle } + named fromlabelctr { fromlabelctr } + import @Geometry named fromlabeladjust { fromlabeladjust } + + named tolabel { tolabel } + named tolabelmargin { tolabelmargin } + named tolabelfont { tolabelfont } + named tolabelbreak { tolabelbreak } + named tolabelformat right @Body { tolabelformat @Body } + import @Geometry named tolabelpos { tolabelpos } + named tolabelprox { tolabelprox } + import @Geometry named tolabelangle { tolabelangle } + named tolabelctr { tolabelctr } + import @Geometry named tolabeladjust{ tolabeladjust } + + { + def @XLabel + { + @DoLabel + which { "x" } + label { xlabel @Else linklabel } + labelmargin { xlabelmargin @Else linklabelmargin } + labelfont { xlabelfont @Else linklabelfont } + labelbreak { xlabelbreak @Else linklabelbreak } + labelformat { xlabelformat @Body @Else linklabelformat @Body} + labelpos { xlabelpos @Else linklabelpos } + labelprox { xlabelprox @Else linklabelprox } + labelangle { xlabelangle @Else linklabelangle } + labelctr { xlabelctr @Else linklabelctr } + labeladjust { xlabeladjust @Else linklabeladjust } + } + + def @YLabel + { + @DoLabel + which { "y" } + label { ylabel @Else linklabel } + labelmargin { ylabelmargin @Else linklabelmargin } + labelfont { ylabelfont @Else linklabelfont } + labelbreak { ylabelbreak @Else linklabelbreak } + labelformat { ylabelformat @Body @Else linklabelformat @Body} + labelpos { ylabelpos @Else linklabelpos } + labelprox { ylabelprox @Else linklabelprox } + labelangle { ylabelangle @Else linklabelangle } + labelctr { ylabelctr @Else linklabelctr } + labeladjust { ylabeladjust @Else linklabeladjust } + } + + def @ZLabel + { + @DoLabel + which { "z" } + label { zlabel @Else linklabel } + labelmargin { zlabelmargin @Else linklabelmargin } + labelfont { zlabelfont @Else linklabelfont } + labelbreak { zlabelbreak @Else linklabelbreak } + labelformat { zlabelformat @Body @Else linklabelformat @Body} + labelpos { zlabelpos @Else linklabelpos } + labelprox { zlabelprox @Else linklabelprox } + labelangle { zlabelangle @Else linklabelangle } + labelctr { zlabelctr @Else linklabelctr } + labeladjust { zlabeladjust @Else linklabeladjust } + } + + def @FromArrow + { + arrow @Case { + { back both } @Yield { + @ArrowHead + style { arrowstyle } + width { arrowwidth } + length { arrowlength } + pathwidth { pathwidth } + } + else @Yield "" + } + } + + def @ToArrow + { + arrow @Case { + { yes forward both } @Yield { + @ArrowHead + style { arrowstyle } + width { arrowwidth } + length { arrowlength } + pathwidth { pathwidth } + } + else @Yield "" + } + } + + import @Geometry + def @LinePath + { + @BackEnd @Case { + PostScript @Yield { + {arrow @FromArrowLength arrowlength} + {arrow @ToArrowLength arrowlength} + "{" from "}" "{" to "}" + xindent zindent "ldiaglinepath" + # FROM :< {from??CTR angleto to??CTR} + # FROM :: from boundaryatangle FROM@ANGLE + # ++ {arrow @FromArrowLength arrowlength}atangle FROM@ANGLE + # TO :< FROM@ANGLE + # TO :: to boundaryatangle { TO@ANGLE - 180d } + # ++ {arrow @ToArrowLength arrowlength} atangle {TO@ANGLE - 180d} + # + # LMID :: FROM ** 0.5 ++ TO ** 0.5 + # LMID :< FROM@ANGLE + # XINDENT := xindent min { FROM distance LMID } + # LFROM :: FROM ++ XINDENT atangle FROM@ANGLE + # LFROM :< FROM@ANGLE + # ZINDENT := zindent min { TO distance LMID } + # LTO :: TO -- ZINDENT atangle FROM@ANGLE + # LTO :< FROM@ANGLE + # + # if cond { direct } + # then { FROM TO } + # else { FROM LFROM LMID LTO TO } + } + PDF @Yield {} + } + } + + import @Geometry + def @DoubleLinePath + { + @BackEnd @Case { + PostScript @Yield { + {arrow @FromArrowLength arrowlength} + {arrow @ToArrowLength arrowlength} + "{" from "}" "{" to "}" + xindent zindent pathgap "ldiagdoublelinepath" + # FROM :< {from??CTR angleto to??CTR} + # FROM :: from boundaryatangle FROM@ANGLE + # ++ {arrow @FromArrowLength arrowlength}atangle FROM@ANGLE + # TO :< FROM@ANGLE + # TO :: to boundaryatangle { TO@ANGLE - 180d } + # ++ {arrow @ToArrowLength arrowlength} atangle {TO@ANGLE - 180d} + # + # LMID :: FROM ** 0.5 ++ TO ** 0.5 + # LMID :< FROM@ANGLE + # XINDENT := xindent min { FROM distance LMID } + # LFROM :: FROM ++ XINDENT atangle FROM@ANGLE + # LFROM :< FROM@ANGLE + # ZINDENT := zindent min { TO distance LMID } + # LTO :: TO -- ZINDENT atangle FROM@ANGLE + # LTO :< FROM@ANGLE + # + # if cond { direct } + # then { FROM TO } + # else { FROM LFROM LMID LTO TO } + } + PDF @Yield {} + } + } + + import @Geometry + def @ACurvePath + { + @BackEnd @Case { + PostScript @Yield { + {arrow @FromArrowLength arrowlength} + {arrow @ToArrowLength arrowlength} + "{" from "}" "{" to "}" + xindent zindent bias "ldiagacurvepath" + # #B1 := bias max 0.02f + # #B2 := { from??CTR distance to??CTR } * 0.5 + # #BIAS := B1 min B2 + # BIAS := bias max 0.02f + # XMID := from??CTR ** 0.5 ++ to??CTR ** 0.5 + # XTOP := XMID ++ BIAS atangle {from??CTR angleto to??CTR - 90d} + # CTR := { from??CTR XTOP ldiaglinebetween + # to??CTR XTOP ldiaglinebetween ldiaglineintersect } + # FROM :: aabout + # circum { from } + # extra { arrow @FromArrowLength arrowlength } + # centre { CTR } + # FROM :< if cond { from??CTR distance FROM > 0 } + # then { from??CTR angleto FROM } + # else { CTR angleto FROM + 90d } + # TO :: cabout + # circum { to } + # extra { arrow @ToArrowLength arrowlength } + # centre { CTR } + # TO :< if cond { TO distance to??CTR > 0 } + # then { TO angleto to??CTR } + # else { CTR angleto TO + 90d } + # + # RADIUS := CTR distance FROM + # LMID :: CTR ++ RADIUS atangle { + # CTR angleto FROM + + # { {360d + {CTR angleto TO} - {CTR angleto FROM}} mod 360 } / 2 + # } + # LMID :< CTR angleto LMID + 90d + # + # XINDENT := xindent min { FROM distance LMID } + # LFROM :: CTR ++ RADIUS atangle { + # CTR angleto { FROM ++ XINDENT atangle FROM@ANGLE } } + # LFROM :< CTR angleto LFROM + 90d + # ZINDENT := zindent min { TO distance LMID } + # LTO :: CTR ++ RADIUS atangle { + # CTR angleto { TO ++ ZINDENT atangle {TO@ANGLE+180d}}} + # LTO :< CTR angleto LTO + 90d + # + # if cond { direct } + # then { FROM [CTR] TO } + # else { FROM [CTR] LFROM [CTR] LMID [CTR] LTO [CTR] TO } + } + PDF @Yield {} + } + } + + import @Geometry + def @CCurvePath + { + @BackEnd @Case { + PostScript @Yield { + {arrow @FromArrowLength arrowlength} + {arrow @ToArrowLength arrowlength} + "{" from "}" "{" to "}" + xindent zindent bias "ldiagccurvepath" + # #B1 := bias max 0.02f + # #B2 := { from??CTR distance to??CTR } * 0.5 + # #BIAS := B1 min B2 + # BIAS := bias max 0.02f + # XMID := from??CTR ** 0.5 ++ to??CTR ** 0.5 + # XTOP := XMID ++ BIAS atangle {from??CTR angleto to??CTR + 90d} + # CTR := { from??CTR XTOP ldiaglinebetween + # to??CTR XTOP ldiaglinebetween ldiaglineintersect } + # FROM :: cabout + # circum { from } + # extra { arrow @FromArrowLength arrowlength } + # centre { CTR } + # FROM :< if cond { from??CTR distance FROM > 0 } + # then { from??CTR angleto FROM } + # else { CTR angleto FROM - 90d } + # TO :: aabout + # circum { to } + # extra { arrow @ToArrowLength arrowlength } + # centre { CTR } + # TO :< if cond { TO distance to??CTR > 0 } + # then { TO angleto to??CTR } + # else { CTR angleto TO - 90d } + # + # RADIUS := CTR distance FROM + # LMID :: CTR ++ RADIUS atangle { + # CTR angleto TO + + # { {360d + {CTR angleto FROM} - {CTR angleto TO} } mod 360 } / 2 + # } + # LMID :< CTR angleto LMID - 90d + # + # XINDENT := xindent min { FROM distance LMID } + # LFROM :: CTR ++ RADIUS atangle { + # CTR angleto { FROM ++ XINDENT atangle FROM@ANGLE } } + # LFROM :< CTR angleto LFROM - 90d + # ZINDENT := zindent min { TO distance LMID } + # LTO :: CTR ++ RADIUS atangle { + # CTR angleto { TO ++ ZINDENT atangle {TO@ANGLE+180d}}} + # LTO :< CTR angleto LTO - 90d + # + # if cond { direct } + # then { FROM [CTR clockwise] TO } + # else { FROM [CTR clockwise] LFROM [CTR clockwise] + # LMID [CTR clockwise] LTO [CTR clockwise] TO } + } + PDF @Yield {} + } + } + + import @Geometry + def @BezierPath + { + @BackEnd @Case { + PostScript @Yield { + {arrow @FromArrowLength arrowlength} + {arrow @ToArrowLength arrowlength} + "{" from "}" "{" to "}" + xindent zindent [ frompt ] [ topt ] "ldiagbezierpath" + # FROM :< from??CTR angleto frompt + # FROM :: from boundaryatangle FROM@ANGLE + # ++ {arrow @FromArrowLength arrowlength} atangle FROM@ANGLE + # TO :< topt angleto to??CTR + # TO :: to boundaryatangle { TO@ANGLE + 180d } + # ++ {arrow @ToArrowLength arrowlength} atangle { TO@ANGLE + 180d } + # LFROM :: FROM ++ { xindent atangle FROM@ANGLE } + # LFROM :< FROM@ANGLE + # LTO :: TO ++ zindent atangle { TO@ANGLE + 180d } + # LTO :< TO@ANGLE + # LMID :: { FROM ++ TO ++ frompt ++ topt } ** 0.25 + # FROM [frompt topt] TO + } + PDF @Yield {} + } + } + + import @Geometry + def @VHLinePath + { + @BackEnd @Case { + PostScript @Yield { + {arrow @FromArrowLength arrowlength} + {arrow @ToArrowLength arrowlength} + "{" from "}" "{" to "}" + xindent zindent "ldiagvhlinepath" + # CTR := { {xcoord from??CTR} {ycoord to??CTR} } + # FANG := from??CTR angleto CTR + # TANG := to??CTR angleto CTR + # FROM :: from boundaryatangle FANG + # ++ {arrow @FromArrowLength arrowlength} atangle FANG + # FROM :< FANG + # TO :: to boundaryatangle TANG + # ++ {arrow @ToArrowLength arrowlength} atangle TANG + # TO :< TANG + 180d + # FDIST := FROM distance CTR + # TDIST := TO distance CTR + # XINDENT := xindent min FDIST + # ZINDENT := zindent min TDIST + # LFROM :: FROM ++ XINDENT atangle FANG + # LFROM :< FROM@ANGLE + # LTO :: TO ++ ZINDENT atangle TANG + # LTO :< TO@ANGLE + # LMID :: CTR + # LMID :< {1f atangle {FANG + 180d}} angleto + # {1f atangle {TANG + 180d}} + # FROM LFROM LMID LTO TO + } + PDF @Yield {} + } + } + + import @Geometry + def @VHCurvePath + { + @BackEnd @Case { + PostScript @Yield { + {arrow @FromArrowLength arrowlength} + {arrow @ToArrowLength arrowlength} + "{" from "}" "{" to "}" + xindent zindent radius "ldiagvhcurvepath" + # CTR := { {xcoord from??CTR} {ycoord to??CTR} } + # FANG := from??CTR angleto CTR + # TANG := to??CTR angleto CTR + # FROM :: from boundaryatangle FANG + # ++ {arrow @FromArrowLength arrowlength} atangle FANG + # FROM :< FANG + # TO :: to boundaryatangle TANG + # ++ {arrow @ToArrowLength arrowlength} atangle TANG + # TO :< TANG + 180d + # FDIST := FROM distance CTR + # TDIST := TO distance CTR + # RADIUS := radius min FDIST min TDIST + # XINDENT := xindent min { FDIST - RADIUS } + # ZINDENT := zindent min { TDIST - RADIUS } + # LFROM :: FROM ++ XINDENT atangle FANG + # LFROM :< FROM@ANGLE + # LTO :: TO ++ ZINDENT atangle TANG + # LTO :< TO@ANGLE + # FCTR := CTR ++ RADIUS atangle { FROM@ANGLE + 180d } + # TCTR := CTR ++ RADIUS atangle { TO@ANGLE } + # XCTR := CTR ++ RADIUS atangle { FROM@ANGLE + 180d } + # ++ RADIUS atangle { TO@ANGLE } + # LMID :: XCTR ++ RADIUS atangle { XCTR angleto CTR } + # LMID :< FCTR angleto TCTR + # FROM LFROM FCTR + # { FCTR angleto TCTR } quadcase + # 0 { } + # 0-90 { [XCTR clockwise] } + # 90 { } + # 90-180 { [XCTR] } + # 180 { } + # 180-270 { [XCTR clockwise] } + # 270 { } + # 270-360 { [XCTR] } + # TCTR LTO TO + } + PDF @Yield {} + } + } + + import @Geometry + def @HVLinePath + { + @BackEnd @Case { + PostScript @Yield { + {arrow @FromArrowLength arrowlength} + {arrow @ToArrowLength arrowlength} + "{" from "}" "{" to "}" + xindent zindent "ldiaghvlinepath" + # CTR := { {xcoord to??CTR} {ycoord from??CTR} } + # FANG := from??CTR angleto CTR + # TANG := to??CTR angleto CTR + # FROM :: from boundaryatangle FANG + # ++ {arrow @FromArrowLength arrowlength} atangle FANG + # FROM :< FANG + # TO :: to boundaryatangle TANG + # ++ {arrow @ToArrowLength arrowlength} atangle TANG + # TO :< TANG + 180d + # FDIST := FROM distance CTR + # TDIST := TO distance CTR + # XINDENT := xindent min FDIST + # ZINDENT := zindent min TDIST + # LFROM :: FROM ++ XINDENT atangle FANG + # LFROM :< FROM@ANGLE + # LTO :: TO ++ ZINDENT atangle TANG + # LTO :< TO@ANGLE + # LMID :: CTR + # LMID :< {1f atangle {FANG + 180d}} angleto + # {1f atangle {TANG + 180d}} + # FROM LFROM LMID LTO TO + } + PDF @Yield {} + } + } + + import @Geometry + def @HVCurvePath + { + @BackEnd @Case { + PostScript @Yield { + {arrow @FromArrowLength arrowlength} + {arrow @ToArrowLength arrowlength} + "{" from "}" "{" to "}" + xindent zindent radius "ldiaghvcurvepath" + # CTR := { {xcoord to??CTR} {ycoord from??CTR} } + # FANG := from??CTR angleto CTR + # TANG := to??CTR angleto CTR + # FROM :: from boundaryatangle FANG + # ++ {arrow @FromArrowLength arrowlength} atangle FANG + # FROM :< FANG + # TO :: to boundaryatangle TANG + # ++ {arrow @ToArrowLength arrowlength} atangle TANG + # TO :< TANG + 180d + # FDIST := FROM distance CTR + # TDIST := TO distance CTR + # RADIUS := radius min FDIST min TDIST + # XINDENT := xindent min { FDIST - RADIUS } + # ZINDENT := zindent min { TDIST - RADIUS } + # LFROM :: FROM ++ XINDENT atangle FANG + # LFROM :< FROM@ANGLE + # LTO :: TO ++ ZINDENT atangle TANG + # LTO :< TO@ANGLE + # FCTR := CTR ++ RADIUS atangle { FROM@ANGLE + 180d } + # TCTR := CTR ++ RADIUS atangle { TO@ANGLE } + # XCTR := CTR ++ RADIUS atangle { FROM@ANGLE + 180d } + # ++ RADIUS atangle { TO@ANGLE } + # LMID :: XCTR ++ RADIUS atangle { XCTR angleto CTR } + # LMID :< FCTR angleto TCTR + # FROM LFROM FCTR + # { FCTR angleto TCTR } quadcase + # 0 { } + # 0-90 { [XCTR] } + # 90 { } + # 90-180 { [XCTR clockwise] } + # 180 { } + # 180-270 { [XCTR] } + # 270 { } + # 270-360 { [XCTR clockwise] } + # TCTR LTO TO + } + PDF @Yield {} + } + } + + import @Geometry + def @LVRLinePath + { + @BackEnd @Case { + PostScript @Yield { + {arrow @FromArrowLength arrowlength} + {arrow @ToArrowLength arrowlength} + "{" from "}" "{" to "}" + xindent zindent bias "ldiaglvrlinepath" + # FROM :: from boundaryatangle 180d + # ++ {arrow @FromArrowLength arrowlength} atangle 180d + # FROM :< 180d + # TO :: to boundaryatangle 180d + # ++ {arrow @ToArrowLength arrowlength} atangle 180d + # TO :< 0d + # XLEFT := {{xcoord FROM} min {xcoord TO}} - bias + # P1 :: { XLEFT ycoord FROM } + # P2 :: { XLEFT ycoord TO } + # VERT := P1 angleto P2 + # P1 :< P1 angleto {P1++{1f atangle 180d}++{1f atangle VERT}} + # P2 :< P2 angleto {P2++{1f atangle 0d} ++{1f atangle VERT}} + # LMID :: P1 ** 0.5 ++ P2 ** 0.5 + # LMID :< VERT + # XINDENT := xindent min {FROM distance P1} + # ZINDENT := zindent min {P2 distance TO} + # LFROM :: FROM -- { XINDENT 0 } + # LFROM :< 180d + # LTO :: TO -- { ZINDENT 0 } + # LTO :< 0d + # FROM LFROM P1 LMID P2 LTO TO + } + PDF @Yield {} + } + } + + import @Geometry + def @LVRCurvePath + { + @BackEnd @Case { + PostScript @Yield { + {arrow @FromArrowLength arrowlength} + {arrow @ToArrowLength arrowlength} + "{" from "}" "{" to "}" + xindent zindent bias radius "ldiaglvrcurvepath" + # FROM :: from boundaryatangle 180d + # ++ {arrow @FromArrowLength arrowlength} atangle 180d + # FROM :< 180d + # TO :: to boundaryatangle 180d + # ++ {arrow @ToArrowLength arrowlength} atangle 180d + # TO :< 0d + # XLEFT := {{xcoord FROM} min {xcoord TO}} - bias + # XP1 := { XLEFT ycoord FROM } + # XP2 := { XLEFT ycoord TO } + # VERT := XP1 angleto XP2 + # LMID :: XP1 ** 0.5 ++ XP2 ** 0.5 + # LMID :< VERT + # XINDENT := xindent min {FROM distance XP1} + # ZINDENT := zindent min {XP2 distance TO} + # LFROM :: FROM -- { XINDENT 0 } + # LFROM :< 180d + # LTO :: TO -- { ZINDENT 0 } + # LTO :< 0d + # RADIUS := radius min { { XP1 distance XP2 } / 2 } + # XP1PRE := XP1 ++ { RADIUS atangle 0d } + # XP1POST := XP1 ++ { RADIUS atangle VERT } + # XP1CTR := XP1PRE ++ { RADIUS atangle VERT } + # P1 :: XP1CTR ++ { RADIUS atangle { XP1CTR angleto XP1 } } + # P1 :< XP1PRE angleto XP1POST + # XP2PRE := XP2 -- { RADIUS atangle VERT } + # XP2POST := XP2 ++ { RADIUS atangle 0d } + # XP2CTR := XP2PRE ++ { RADIUS atangle 0d } + # P2 :: XP2CTR ++ { RADIUS atangle { XP2CTR angleto XP2 } } + # P2 :< XP2PRE angleto XP2POST + # FROM LFROM XP1PRE + # {round VERT} quadcase + # 90 { [XP1CTR clockwise] P1 [XP1CTR clockwise] } + # 270 { [XP1CTR] P1 [XP1CTR] } + # XP1POST LMID XP2PRE + # {round VERT} quadcase + # 90 { [XP2CTR clockwise] P2 [XP2CTR clockwise] } + # 270 { [XP2CTR] P2 [XP2CTR] } + # XP2POST LTO TO + } + PDF @Yield {} + } + } + + import @Geometry + def @RVLLinePath + { + @BackEnd @Case { + PostScript @Yield { + {arrow @FromArrowLength arrowlength} + {arrow @ToArrowLength arrowlength} + "{" from "}" "{" to "}" + xindent zindent bias "ldiagrvllinepath" + # FROM :: from boundaryatangle 0d + # ++ {arrow @FromArrowLength arrowlength} atangle 0d + # FROM :< 0d + # TO :: to boundaryatangle 0d + # ++ {arrow @ToArrowLength arrowlength} atangle 0d + # TO :< 180d + # XRIGHT := {{xcoord FROM} max {xcoord TO}} + bias + # P1 :: { XRIGHT ycoord FROM } + # P2 :: { XRIGHT ycoord TO } + # VERT := P1 angleto P2 + # P1 :< P1 angleto {P1++{1f atangle 0d} ++{1f atangle VERT}} + # P2 :< P2 angleto {P2++{1f atangle 180d}++{1f atangle VERT}} + # LMID :: P1 ** 0.5 ++ P2 ** 0.5 + # LMID :< VERT + # XINDENT := xindent min {FROM distance P1} + # ZINDENT := zindent min {P2 distance TO} + # LFROM :: FROM ++ { XINDENT 0 } + # LFROM :< 0d + # LTO :: TO ++ { ZINDENT 0 } + # LTO :< 180d + # FROM LFROM P1 LMID P2 LTO TO + } + PDF @Yield {} + } + } + + import @Geometry + def @RVLCurvePath + { + @BackEnd @Case { + PostScript @Yield { + {arrow @FromArrowLength arrowlength} + {arrow @ToArrowLength arrowlength} + "{" from "}" "{" to "}" + xindent zindent bias radius "ldiagrvlcurvepath" + # FROM :: from boundaryatangle 0d + # ++ {arrow @FromArrowLength arrowlength} atangle 0d + # FROM :< 0d + # TO :: to boundaryatangle 0d + # ++ {arrow @ToArrowLength arrowlength} atangle 0d + # TO :< 180d + # XRIGHT := {{xcoord FROM} max {xcoord TO}} + bias + # XP1 := { XRIGHT ycoord FROM } + # XP2 := { XRIGHT ycoord TO } + # VERT := XP1 angleto XP2 + # LMID :: XP1 ** 0.5 ++ XP2 ** 0.5 + # LMID :< VERT + # XINDENT := xindent min {FROM distance XP1} + # ZINDENT := zindent min {XP2 distance TO} + # LFROM :: FROM ++ { XINDENT 0 } + # LFROM :< 0d + # LTO :: TO ++ { ZINDENT 0 } + # LTO :< 180d + # RADIUS := radius min { { XP1 distance XP2 } * 0.5 } + # XP1PRE := XP1 ++ { RADIUS atangle 180d } + # XP1POST := XP1 ++ { RADIUS atangle VERT } + # XP1CTR := XP1PRE ++ { RADIUS atangle VERT } + # P1 :: XP1CTR ++ { RADIUS atangle { XP1CTR angleto XP1 } } + # P1 :< XP1PRE angleto XP1POST + # XP2PRE := XP2 -- { RADIUS atangle VERT } + # XP2POST := XP2 ++ { RADIUS atangle 180d } + # XP2CTR := XP2PRE ++ { RADIUS atangle 180d } + # P2 :: XP2CTR ++ { RADIUS atangle { XP2CTR angleto XP2 } } + # P2 :< XP2PRE angleto XP2POST + # FROM LFROM XP1PRE + # {round VERT} quadcase + # 90 { [XP1CTR] P1 [XP1CTR] } + # 270 { [XP1CTR clockwise] P1 [XP1CTR clockwise] } + # XP1POST LMID XP2PRE + # {round VERT} quadcase + # 90 { [XP2CTR] P2 [XP2CTR] } + # 270 { [XP2CTR clockwise] P2 [XP2CTR clockwise] } + # XP2POST LTO TO + } + PDF @Yield {} + } + } + + import @Geometry + def @DWrapLinePath + { + @BackEnd @Case { + PostScript @Yield { + {arrow @FromArrowLength arrowlength} + {arrow @ToArrowLength arrowlength} + "{" from "}" "{" to "}" + xindent zindent bias fbias tbias "ldiagdwraplinepath" + # DIRN := if cond { xcoord from??CTR < xcoord to??CTR } + # then { 180d } else { 0d } + # FROM :: from boundaryatangle DIRN + # ++ {arrow @FromArrowLength arrowlength} atangle DIRN + # FROM :< DIRN + # TO :: to boundaryatangle { DIRN + 180d } + # ++ {arrow @ToArrowLength arrowlength} atangle { DIRN + 180d } + # TO :< DIRN + # P1 :: FROM ++ {fbias max 0} atangle DIRN + # P1 :< if cond { DIRN = 180d } then { 225d } else { -45d } + # P4 :: TO ++ {tbias max 0} atangle { DIRN + 180d } + # P4 :< if cond { DIRN = 180d } then { 135d } else { 45d } + # YC := ycoord { from boundaryatangle 270d } min + # ycoord { to boundaryatangle 270d } + # - { bias max 0 } + # P2 :: { xcoord P1 YC } + # P2 :< P4@ANGLE - 180d + # P3 :: { xcoord P4 YC } + # P3 :< P1@ANGLE - 180d + # XINDENT := xindent min { FROM distance P1 } + # LFROM :: FROM ++ XINDENT atangle DIRN + # LFROM :< FROM@ANGLE + # ZINDENT := zindent min { TO distance P4 } + # LTO :: TO ++ ZINDENT atangle { DIRN + 180d } + # LTO :< TO@ANGLE + # LMID :: P2 ** 0.5 ++ P3 ** 0.5 + # LMID :< DIRN - 180d + # FROM P1 P2 P3 P4 TO + } + PDF @Yield {} + } + } + + import @Geometry + def @DWrapCurvePath + { + @BackEnd @Case { + PostScript @Yield { + {arrow @FromArrowLength arrowlength} + {arrow @ToArrowLength arrowlength} + "{" from "}" "{" to "}" + xindent zindent bias fbias tbias radius "ldiagdwrapcurvepath" + # DIRN := if cond { xcoord from??CTR < xcoord to??CTR } + # then { 180d } else { 0d } + # CLOCK := if cond { xcoord from??CTR < xcoord to??CTR } + # then { anticlockwise } else { clockwise } + # FROM :: from boundaryatangle DIRN + # ++ {arrow @FromArrowLength arrowlength} atangle DIRN + # FROM :< DIRN + # TO :: to boundaryatangle { DIRN + 180d } + # ++ {arrow @ToArrowLength arrowlength} atangle { DIRN + 180d } + # TO :< DIRN + # + # XP1 := FROM ++ {fbias max 0} atangle DIRN + # XP4 := TO ++ {tbias max 0} atangle { DIRN + 180d } + # YC := ycoord { from boundaryatangle 270d } min + # ycoord { to boundaryatangle 270d } + # - { bias max 0 } + # XP2 := { xcoord XP1 YC } + # XP3 := { xcoord XP4 YC } + # + # RP1 := radius min { XP1 distance FROM } min + # { { XP1 distance XP2 } / 2 } + # XP1PRE := XP1 ++ RP1 atangle { XP1 angleto FROM } + # XP1POST := XP1 ++ RP1 atangle { XP1 angleto XP2 } + # XP1CTR := XP1PRE ++ RP1 atangle { XP1 angleto XP2 } + # P1 :: XP1CTR ++ RP1 atangle { XP1CTR angleto XP1 } + # P1 :< XP1CTR angleto P1 + DIRN - 90d + # + # RP2 := radius min { { XP1 distance XP2 } / 2 } + # min { { XP2 distance XP3 } / 2 } + # XP2PRE := XP2 ++ RP2 atangle { XP2 angleto XP1 } + # XP2POST := XP2 ++ RP2 atangle { XP2 angleto XP3 } + # XP2CTR := XP2PRE ++ RP2 atangle { XP2 angleto XP3 } + # P2 :: XP2CTR ++ RP2 atangle { XP2CTR angleto XP2 } + # P2 :< XP2CTR angleto P2 + DIRN - 90d + # + # RP3 := radius min { { XP2 distance XP3 } / 2 } + # min { { XP3 distance XP4 } / 2 } + # XP3PRE := XP3 ++ RP3 atangle { XP3 angleto XP2 } + # XP3POST := XP3 ++ RP3 atangle { XP3 angleto XP4 } + # XP3CTR := XP3PRE ++ RP3 atangle { XP3 angleto XP4 } + # P3 :: XP3CTR ++ RP3 atangle { XP3CTR angleto XP3 } + # P3 :< XP3CTR angleto P3 + DIRN - 90d + # + # RP4 := radius min { { XP4 distance XP3 } / 2 } + # min { XP4 distance TO } + # XP4PRE := XP4 ++ RP4 atangle { XP4 angleto XP3 } + # XP4POST := XP4 ++ RP4 atangle { XP4 angleto TO } + # XP4CTR := XP4PRE ++ RP4 atangle { XP4 angleto TO } + # P4 :: XP4CTR ++ RP4 atangle { XP4CTR angleto XP4 } + # P4 :< XP4CTR angleto P4 + DIRN - 90d + # + # XINDENT := xindent min { FROM distance XP1PRE } + # LFROM :: FROM ++ XINDENT atangle DIRN + # LFROM :< FROM@ANGLE + # + # LMID :: XP2 ** 0.5 ++ XP3 ** 0.5 + # LMID :< DIRN - 180d + # + # ZINDENT := zindent min { TO distance XP4POST } + # LTO :: TO ++ ZINDENT atangle { DIRN + 180d } + # LTO :< TO@ANGLE + # + # FROM LFROM + # XP1PRE [XP1CTR CLOCK] XP1POST + # XP2PRE [XP2CTR CLOCK] XP2POST + # LMID + # XP3PRE [XP3CTR CLOCK] XP3POST + # XP4PRE [XP4CTR CLOCK] XP4POST + # LTO TO + } + PDF @Yield {} + } + } + + import @Geometry + def @UWrapLinePath + { + @BackEnd @Case { + PostScript @Yield { + {arrow @FromArrowLength arrowlength} + {arrow @ToArrowLength arrowlength} + "{" from "}" "{" to "}" + xindent zindent bias fbias tbias "ldiaguwraplinepath" + # DIRN := if cond { xcoord from??CTR < xcoord to??CTR } + # then { 180d } else { 0d } + # FROM :: from boundaryatangle DIRN + # ++ {arrow @FromArrowLength arrowlength} atangle DIRN + # FROM :< DIRN + # TO :: to boundaryatangle { DIRN + 180d } + # ++ {arrow @ToArrowLength arrowlength} atangle { DIRN + 180d } + # TO :< DIRN + # P1 :: FROM ++ {fbias max 0} atangle DIRN + # P1 :< if cond { DIRN = 180d } then { 135d } else { 45d } + # P4 :: TO ++ {tbias max 0} atangle { DIRN + 180d } + # P4 :< if cond { DIRN = 180d } then { 225d } else { -45d } + # YC := ycoord { from boundaryatangle 90d } max + # ycoord { to boundaryatangle 90d } + # + { bias max 0 } + # P2 :: { xcoord P1 YC } + # P2 :< P4@ANGLE - 180d + # P3 :: { xcoord P4 YC } + # P3 :< P1@ANGLE - 180d + # XINDENT := xindent min { FROM distance P1 } + # LFROM :: FROM ++ XINDENT atangle DIRN + # LFROM :< FROM@ANGLE + # ZINDENT := zindent min { TO distance P4 } + # LTO :: TO ++ ZINDENT atangle { DIRN + 180d } + # LTO :< TO@ANGLE + # LMID :: P2 ** 0.5 ++ P3 ** 0.5 + # LMID :< DIRN - 180d + # FROM P1 P2 P3 P4 TO + } + PDF @Yield {} + } + } + + import @Geometry + def @UWrapCurvePath + { + @BackEnd @Case { + PostScript @Yield { + {arrow @FromArrowLength arrowlength} + {arrow @ToArrowLength arrowlength} + "{" from "}" "{" to "}" + xindent zindent bias fbias tbias radius "ldiaguwrapcurvepath" + # DIRN := if cond { xcoord from??CTR < xcoord to??CTR } + # then { 180d } else { 0d } + # CLOCK := if cond { xcoord from??CTR < xcoord to??CTR } + # then { clockwise } else { anticlockwise } + # FROM :: from boundaryatangle DIRN + # ++ {arrow @FromArrowLength arrowlength} atangle DIRN + # FROM :< DIRN + # TO :: to boundaryatangle { DIRN + 180d } + # ++ {arrow @ToArrowLength arrowlength} atangle { DIRN + 180d } + # TO :< DIRN + # + # XP1 := FROM ++ {fbias max 0} atangle DIRN + # XP4 := TO ++ {tbias max 0} atangle { DIRN + 180d } + # YC := ycoord { from boundaryatangle 90d } max + # ycoord { to boundaryatangle 90d } + # + { bias max 0 } + # XP2 := { xcoord XP1 YC } + # XP3 := { xcoord XP4 YC } + # + # RP1 := radius min { XP1 distance FROM } min + # { { XP1 distance XP2 } / 2 } + # XP1PRE := XP1 ++ RP1 atangle { XP1 angleto FROM } + # XP1POST := XP1 ++ RP1 atangle { XP1 angleto XP2 } + # XP1CTR := XP1PRE ++ RP1 atangle { XP1 angleto XP2 } + # P1 :: XP1CTR ++ RP1 atangle { XP1CTR angleto XP1 } + # P1 :< XP1CTR angleto P1 + DIRN + 90d + # + # RP2 := radius min { { XP1 distance XP2 } / 2 } + # min { { XP2 distance XP3 } / 2 } + # XP2PRE := XP2 ++ RP2 atangle { XP2 angleto XP1 } + # XP2POST := XP2 ++ RP2 atangle { XP2 angleto XP3 } + # XP2CTR := XP2PRE ++ RP2 atangle { XP2 angleto XP3 } + # P2 :: XP2CTR ++ RP2 atangle { XP2CTR angleto XP2 } + # P2 :< XP2CTR angleto P2 + DIRN + 90d + # + # RP3 := radius min { { XP2 distance XP3 } / 2 } + # min { { XP3 distance XP4 } / 2 } + # XP3PRE := XP3 ++ RP3 atangle { XP3 angleto XP2 } + # XP3POST := XP3 ++ RP3 atangle { XP3 angleto XP4 } + # XP3CTR := XP3PRE ++ RP3 atangle { XP3 angleto XP4 } + # P3 :: XP3CTR ++ RP3 atangle { XP3CTR angleto XP3 } + # P3 :< XP3CTR angleto P3 + DIRN + 90d + # + # RP4 := radius min { { XP4 distance XP3 } / 2 } + # min { XP4 distance TO } + # XP4PRE := XP4 ++ RP4 atangle { XP4 angleto XP3 } + # XP4POST := XP4 ++ RP4 atangle { XP4 angleto TO } + # XP4CTR := XP4PRE ++ RP4 atangle { XP4 angleto TO } + # P4 :: XP4CTR ++ RP4 atangle { XP4CTR angleto XP4 } + # P4 :< XP4CTR angleto P4 + DIRN + 90d + # + # XINDENT := xindent min { FROM distance XP1PRE } + # LFROM :: FROM ++ XINDENT atangle DIRN + # LFROM :< FROM@ANGLE + # + # LMID :: XP2 ** 0.5 ++ XP3 ** 0.5 + # LMID :< DIRN - 180d + # + # ZINDENT := zindent min { TO distance XP4POST } + # LTO :: TO ++ ZINDENT atangle { DIRN + 180d } + # LTO :< TO@ANGLE + # + # FROM LFROM + # XP1PRE [XP1CTR CLOCK] XP1POST + # XP2PRE [XP2CTR CLOCK] XP2POST + # LMID + # XP3PRE [XP3CTR CLOCK] XP3POST + # XP4PRE [XP4CTR CLOCK] XP4POST + # LTO TO + } + PDF @Yield {} + } + } + + import @Geometry + def @Path + { + path @Case { + line @Yield @LinePath + doubleline @Yield @DoubleLinePath + { acurve curve } @Yield @ACurvePath + ccurve @Yield @CCurvePath + bezier @Yield @BezierPath + vhline @Yield @VHLinePath + vhcurve @Yield @VHCurvePath + hvline @Yield @HVLinePath + hvcurve @Yield @HVCurvePath + lvrline @Yield @LVRLinePath + lvrcurve @Yield @LVRCurvePath + rvlline @Yield @RVLLinePath + rvlcurve @Yield @RVLCurvePath + dwrapline @Yield @DWrapLinePath + dwrapcurve @Yield @DWrapCurvePath + uwrapline @Yield @UWrapLinePath + uwrapcurve @Yield @UWrapCurvePath + else @Yield { + path + from { from } + to { to } + bias { bias } + fbias { fbias } + tbias { tbias } + radius { radius } + xindent { xindent } + zindent { zindent } + frompt { frompt } + topt { topt } + arrow { arrow } + arrowlength { arrowlength } + } + } + } + + def @FromLabel + { + @DoLabel + which { "f" } + label { fromlabel @Else @FromArrow } + labelmargin { fromlabelmargin } + labelfont { fromlabelfont } + labelbreak { fromlabelbreak } + labelformat { fromlabelformat @Body } + labelpos { fromlabelpos } + labelprox { fromlabelprox } + labelangle { fromlabelangle } + labelctr { fromlabelctr } + labeladjust { fromlabeladjust } + } + + def @ToLabel + { + @DoLabel + which { "t" } + label { tolabel @Else @ToArrow } + labelmargin { tolabelmargin } + labelfont { tolabelfont } + labelbreak { tolabelbreak } + labelformat { tolabelformat @Body } + labelpos { tolabelpos } + labelprox { tolabelprox } + labelangle { tolabelangle } + labelctr { tolabelctr } + labeladjust { tolabeladjust } + } + + def @Direct + { + pathstyle @Case { + { "/ldiagsolid" "/ldiagdashed" "/ldiagcdashed" + "/ldiagdotted" "/ldiagnoline" } @Yield 1 + else @Yield 0 + } + } + + @BackEnd @Case { + PostScript @Yield { + + @Null & # so that preceding space gets chewed up + { + @Direct "ldiaglinkbegin [" @Path "]" pathdashlength + "[" pathstyle "]" pathwidth "ldiaglinkend" + } + @Graphic + { + / { fromlabel @Else @FromArrow} @IfNonEmpty @FromLabel + / { xlabel @Else linklabel } @IfNonEmpty @XLabel + / { ylabel @Else linklabel } @IfNonEmpty @YLabel + / { zlabel @Else linklabel } @IfNonEmpty @ZLabel + / { tolabel @Else @ToArrow } @IfNonEmpty @ToLabel + } + + } + PDF @Yield {} + } + } + + + def @ObjectLink + precedence 90 + associativity left + left x + named treehsep { treehsep } + named treevsep { treevsep } + named format + named x {} + named y {} + named insinuatelink {} + named treehsep {} + named treevsep {} + { x | y | insinuatelink } + import @Geometry named path + named from {} + named to {} + named bias {} + named fbias {} + named tbias {} + named radius {} + named xindent {} + named zindent {} + named frompt {} + named topt {} + named arrow {} + named arrowlength {} + { path + from { from } + to { to } + bias { bias } + fbias { fbias } + tbias { tbias } + radius { radius } + xindent { xindent } + zindent { zindent } + frompt { frompt } + topt { topt } + arrow { arrow } + arrowlength { arrowlength } + } + import @Geometry named basefrom { } + import @Geometry named baseto { } + import @Geometry named from { } + import @Geometry named to { } + import @Geometry named bias { bias } + import @Geometry named fbias { fbias } + import @Geometry named tbias { tbias } + import @Geometry named radius { radius } + import @Geometry named xindent { xindent } + import @Geometry named zindent { zindent } + import @Geometry named frompt { frompt } + import @Geometry named topt { topt } + named pathstyle + named solid { "/ldiagsolid" } + named dashed { "/ldiagdashed" } + named cdashed { "/ldiagcdashed" } + named dotted { "/ldiagdotted" } + named noline { "/ldiagnoline" } + { pathstyle } + import @Geometry named pathdashlength { pathdashlength } + import @Geometry named pathwidth + named thin { 0.04 ft } + named medium { 0.08 ft } + named thick { 0.12 ft } + { pathwidth } + import @Geometry named pathgap + named thin { 0.08 ft } + named medium { 0.16 ft } + named thick { 0.24 ft } + { pathgap } + + named arrow { arrow } + named arrowstyle { arrowstyle } + named arrowwidth { arrowwidth } + named arrowlength { arrowlength } + + named linklabel { linklabel } + named linklabelmargin { linklabelmargin } + named linklabelfont { linklabelfont } + named linklabelbreak { linklabelbreak } + named linklabelformat right @Body { linklabelformat @Body } + import @Geometry named linklabelpos { linklabelpos } + named linklabelprox { linklabelprox } + import @Geometry named linklabelangle { linklabelangle } + named linklabelctr { linklabelctr } + import @Geometry named linklabeladjust { linklabeladjust } + + named xlabel { xlabel } + named xlabelmargin { xlabelmargin } + named xlabelfont { xlabelfont } + named xlabelbreak { xlabelbreak } + named xlabelformat right @Body { xlabelformat @Body } + import @Geometry named xlabelpos { xlabelpos } + named xlabelprox { xlabelprox } + import @Geometry named xlabelangle { xlabelangle } + named xlabelctr { xlabelctr } + import @Geometry named xlabeladjust { xlabeladjust } + + named ylabel { ylabel } + named ylabelmargin { ylabelmargin } + named ylabelfont { ylabelfont } + named ylabelbreak { ylabelbreak } + named ylabelformat right @Body { ylabelformat @Body } + import @Geometry named ylabelpos { ylabelpos } + named ylabelprox { ylabelprox } + import @Geometry named ylabelangle { ylabelangle } + named ylabelctr { ylabelctr } + import @Geometry named ylabeladjust { ylabeladjust } + + named zlabel { zlabel } + named zlabelmargin { zlabelmargin } + named zlabelfont { zlabelfont } + named zlabelbreak { zlabelbreak } + named zlabelformat right @Body { zlabelformat @Body } + import @Geometry named zlabelpos { zlabelpos } + named zlabelprox { zlabelprox } + import @Geometry named zlabelangle { zlabelangle } + named zlabelctr { zlabelctr } + import @Geometry named zlabeladjust { zlabeladjust } + + named fromlabel { fromlabel } + named fromlabelmargin { fromlabelmargin } + named fromlabelfont { fromlabelfont } + named fromlabelbreak { fromlabelbreak } + named fromlabelformat right @Body { fromlabelformat @Body } + import @Geometry named fromlabelpos { fromlabelpos } + named fromlabelprox { fromlabelprox } + import @Geometry named fromlabelangle { fromlabelangle } + named fromlabelctr { fromlabelctr } + import @Geometry named fromlabeladjust { fromlabeladjust } + + named tolabel { tolabel } + named tolabelmargin { tolabelmargin } + named tolabelfont { tolabelfont } + named tolabelbreak { tolabelbreak } + named tolabelformat right @Body { tolabelformat @Body } + import @Geometry named tolabelpos { tolabelpos } + named tolabelprox { tolabelprox } + import @Geometry named tolabelangle { tolabelangle } + named tolabelctr { tolabelctr } + import @Geometry named tolabeladjust{ tolabeladjust } + right y + + { + def @From + { + from @Case { + "" @Yield basefrom + else @Yield { basefrom"@"from } + } + } + + def @To + { + to @Case { + "" @Yield baseto + else @Yield { baseto"@"to } + } + } + + format + x { x } + y { y } + treehsep { treehsep } + treevsep { treevsep } + insinuatelink { + @Link + from { @From } + to { @To } + bias { bias } + fbias { fbias } + tbias { tbias } + radius { radius } + xindent { xindent } + zindent { zindent } + frompt { frompt } + topt { topt } + path { path + from { @From } + to { @To } + bias { bias } + fbias { fbias } + tbias { tbias } + radius { radius } + xindent { xindent } + zindent { zindent } + frompt { frompt } + topt { topt } + arrow { arrow } + arrowlength { arrowlength } + } + pathstyle { pathstyle } + pathdashlength { pathdashlength } + pathwidth { pathwidth } + pathgap { pathgap } + arrow { arrow } + arrowstyle { arrowstyle } + arrowwidth { arrowwidth } + arrowlength { arrowlength } + + linklabel { linklabel } + linklabelmargin { linklabelmargin } + linklabelfont { linklabelfont } + linklabelbreak { linklabelbreak } + linklabelformat { linklabelformat @Body } + linklabelpos { linklabelpos } + linklabelprox { linklabelprox } + linklabelangle { linklabelangle } + linklabelctr { linklabelctr } + linklabeladjust { linklabeladjust } + + xlabel { xlabel } + xlabelmargin { xlabelmargin } + xlabelfont { xlabelfont } + xlabelbreak { xlabelbreak } + xlabelformat { xlabelformat @Body } + xlabelpos { xlabelpos } + xlabelprox { xlabelprox } + xlabelangle { xlabelangle } + xlabelctr { xlabelctr } + xlabeladjust { xlabeladjust } + + ylabel { ylabel } + ylabelmargin { ylabelmargin } + ylabelfont { ylabelfont } + ylabelbreak { ylabelbreak } + ylabelformat { ylabelformat @Body } + ylabelpos { ylabelpos } + ylabelprox { ylabelprox } + ylabelangle { ylabelangle } + ylabelctr { ylabelctr } + ylabeladjust { ylabeladjust } + + zlabel { zlabel } + zlabelmargin { zlabelmargin } + zlabelfont { zlabelfont } + zlabelbreak { zlabelbreak } + zlabelformat { zlabelformat @Body } + zlabelpos { zlabelpos } + zlabelprox { zlabelprox } + zlabelangle { zlabelangle } + zlabelctr { zlabelctr } + zlabeladjust { zlabeladjust } + + fromlabel { fromlabel } + fromlabelmargin { fromlabelmargin } + fromlabelfont { fromlabelfont } + fromlabelbreak { fromlabelbreak } + fromlabelformat { fromlabelformat @Body } + fromlabelpos { fromlabelpos } + fromlabelprox { fromlabelprox } + fromlabelangle { fromlabelangle } + fromlabelctr { fromlabelctr } + fromlabeladjust { fromlabeladjust } + + tolabel { tolabel } + tolabelmargin { tolabelmargin } + tolabelfont { tolabelfont } + tolabelbreak { tolabelbreak } + tolabelformat { tolabelformat @Body } + tolabelpos { tolabelpos } + tolabelprox { tolabelprox } + tolabelangle { tolabelangle } + tolabelctr { tolabelctr } + tolabeladjust { tolabeladjust } + } + } + + + ####################################################################### + # # + # Abbreviations for standard link types # + # # + ####################################################################### + + macro @Line { @Link path { line } } + macro @DoubleLine { @Link path { doubleline } } + macro @Arrow { @Link path { line } arrow { yes } } + macro @DoubleArrow { @Link path {doubleline} arrow { yes } } + macro @Curve { @Link path { curve } } + macro @CurveArrow { @Link path { curve } arrow { yes } } + macro @ACurve { @Link path { acurve } } + macro @ACurveArrow { @Link path { acurve } arrow { yes } } + macro @CCurve { @Link path { ccurve } } + macro @CCurveArrow { @Link path { ccurve } arrow { yes } } + + macro @Bezier { @Link path { bezier } } + macro @BezierArrow { @Link path { bezier } arrow { yes } } + + macro @HVLine { @Link path { hvline } } + macro @HVArrow { @Link path { hvline } arrow { yes } } + macro @VHLine { @Link path { vhline } } + macro @VHArrow { @Link path { vhline } arrow { yes } } + macro @HVCurve { @Link path { hvcurve } } + macro @HVCurveArrow { @Link path { hvcurve } arrow { yes } } + macro @VHCurve { @Link path { vhcurve } } + macro @VHCurveArrow { @Link path { vhcurve } arrow { yes } } + + macro @LVRLine { @Link path { lvrline } } + macro @LVRArrow { @Link path { lvrline } arrow { yes } } + macro @RVLLine { @Link path { rvlline } } + macro @RVLArrow { @Link path { rvlline } arrow { yes } } + macro @LVRCurve { @Link path { lvrcurve } } + macro @LVRCurveArrow { @Link path { lvrcurve } arrow { yes } } + macro @RVLCurve { @Link path { rvlcurve } } + macro @RVLCurveArrow { @Link path { rvlcurve } arrow { yes } } + + macro @DWrapLine { @Link path { dwrapline} } + macro @DWrapArrow { @Link path { dwrapline} arrow { yes } } + macro @UWrapLine { @Link path { uwrapline} } + macro @UWrapArrow { @Link path { uwrapline} arrow { yes } } + macro @DWrapCurve { @Link path {dwrapcurve} } + macro @DWrapCurveArrow { @Link path {dwrapcurve} arrow { yes } } + macro @UWrapCurve { @Link path {uwrapcurve} } + macro @UWrapCurveArrow { @Link path {uwrapcurve} arrow { yes } } + + + ####################################################################### + # # + # Tree code. # + # # + ####################################################################### + + export + + @Node @Box @CurveBox @ShadowBox @Square @Diamond + @Polygon @Isosceles @Ellipse @Circle + @LeftSub @ZeroWidthLeftSub @RightSub @ZeroWidthRightSub + @FirstSub @NextSub @StubSub + + def @Tree + named treehindent + named left { 0.0rt } + named ctr { 0.5rt } + named right { 1.0rt } + { treehindent } + body x + { + + macro @TNode { @@Node nodetag { T } } + macro @Node { @TNode } + macro @Box { @TNode outline { box } } + macro @CurveBox { @TNode outline { curvebox } } + macro @ShadowBox { @TNode outline { shadowbox } } + macro @Square { @TNode outline { square } } + macro @Diamond { @TNode outline { diamond } } + macro @Polygon { @TNode outline { polygon } } + macro @Isosceles { @TNode outline { isosceles } } + macro @Ellipse { @TNode outline { ellipse } } + macro @Circle { @TNode outline { circle } } + + def fixroot + precedence 90 + left root + { + |treehindent root + } + + macro @LeftSub + { + @ObjectLink + basefrom { T } + baseto { L@T } + format { { /treevsep {L::y} } |treehsep x | insinuatelink } + } + + macro @ZeroWidthLeftSub + { + @ObjectLink + basefrom { T } + baseto { L@T } + format { { /treevsep @ZeroWidth { {L::y} ^|treehsep } } | + x | insinuatelink } + } + + macro @FirstSub + { + fixroot // + @ObjectLink + basefrom { T } + baseto { S@T } + format { //treevsep {S::y} | insinuatelink | } + } + + macro @NextSub + { + @ObjectLink + basefrom { T } + baseto { S@T } + format { x |treehsep { / {S::y} | insinuatelink | } } + } + + macro @RightSub + { + @ObjectLink + basefrom { T } + baseto { R@T } + format { x |treehsep { /treevsep {R::y} } | insinuatelink } + } + + macro @ZeroWidthRightSub + { + @ObjectLink + basefrom { T } + baseto { R@T } + format { x | { /treevsep @ZeroWidth { |treehsep {R::y} } } + | insinuatelink } + } + + macro @StubSub + { + @ObjectLink + basefrom { T } + baseto { T } + format { @VContract { |0.5rt x | // |0.5rt + S:: @BoxLabels @CatchTags y | } | insinuatelink } + # path { from S@T@SW S@T@SE to } + path { + P1:: S@SW + P2:: S@SE + FROM:: from boundaryatangle { from??CTR angleto P1 } + TO:: to boundaryatangle { to??CTR angleto P2 } + FROM P1 P2 TO + } + } + + @HContract @VContract x + } + + export + + @Node @Box @CurveBox @ShadowBox @Square @Diamond + @Polygon @Isosceles @Ellipse @Circle + @LeftSub @ZeroWidthLeftSub @RightSub @ZeroWidthRightSub + @FirstSub @NextSub @StubSub + + def @HTree + named treevindent + named top { 0.0rt } + named ctr { 0.5rt } + named foot { 1.0rt } + { treevindent } + body x + { + + macro @TNode { @@Node nodetag { T } } + macro @Node { @TNode } + macro @Box { @TNode outline { box } } + macro @CurveBox { @TNode outline { curvebox } } + macro @ShadowBox { @TNode outline { shadowbox } } + macro @Square { @TNode outline { square } } + macro @Diamond { @TNode outline { diamond } } + macro @Polygon { @TNode outline { polygon } } + macro @Isosceles { @TNode outline { isosceles } } + macro @Ellipse { @TNode outline { ellipse } } + macro @Circle { @TNode outline { circle } } + + def fixroot + precedence 90 + left root + { + /treevindent root + } + + macro @LeftSub + { + @ObjectLink + basefrom { T } + baseto { L@T } + format { { |treehsep {L::y} } /treevsep x / insinuatelink } + } + + macro @ZeroWidthLeftSub + { + @ObjectLink + basefrom { T } + baseto { L@T } + format { { |treehsep @ZeroWidth { {L::y} ^/treevsep } } / + x / insinuatelink } + } + + macro @FirstSub + { + fixroot || + @ObjectLink + basefrom { T } + baseto { S@T } + format { ||treehsep { {S::y} / insinuatelink / } } + } + + macro @NextSub + { + @ObjectLink + basefrom { T } + baseto { S@T } + format { x /treevsep { | {S::y} { / insinuatelink / } } } + } + + macro @RightSub + { + @ObjectLink + basefrom { T } + baseto { R@T } + format { x /treevsep { |treehsep {R::y} } / insinuatelink } + } + + macro @ZeroWidthRightSub + { + @ObjectLink + basefrom { T } + baseto { R@T } + format { x / { |treehsep @ZeroWidth { /treevsep {R::y} } } + / insinuatelink } + } + + macro @StubSub + { + @ObjectLink + basefrom { T } + baseto { T } + format { @VContract { { /0.5rt x / } || { /0.5rt + S:: @BoxLabels @CatchTags y / } } / insinuatelink } + # path { from S@T@SW S@T@SE to } + path { + P1:: S@NE + P2:: S@SE + FROM:: from boundaryatangle { from??CTR angleto P1 } + TO:: to boundaryatangle { to??CTR angleto P2 } + FROM P1 P2 TO + } + } + + @HContract @VContract x + } + + + ####################################################################### + # # + # Syntax diagrams code # + # # + # Helper definitions; also skips # + # # + ####################################################################### + + def pslength right x { "("x") ldiagdecodelength" } + def pssyntaxgap { "("syntaxgap") ldiagdecodelength" } + def pssyntaxbias { "("syntaxbias") ldiagdecodelength" } + def pssyntaxradius { "("syntaxradius") ldiagdecodelength" } + + def @ArrowLeftFrom left direction right pt + { + @Line arrow { direction } from { pt } to { pt -- { pssyntaxgap 0 } } + } + + def @ArrowRightFrom left direction right pt + { + @Line arrow { direction } from { pt } to { pt ++ { pssyntaxgap 0 } } + } + + def @ArrowUpFrom left direction right pt + { + @Line arrow { direction } from { pt } to { pt ++ { 0 pssyntaxgap } } + } + + def @ArrowDownFrom left direction right pt + { + @Line arrow { direction } from { pt } to { pt -- { 0 pssyntaxgap } } + } + + macro @LineLeftFrom { no @ArrowLeftFrom } + macro @LineRightFrom { no @ArrowRightFrom } + macro @LineUpFrom { no @ArrowUpFrom } + macro @LineDownFrom { no @ArrowDownFrom } + + macro @Right { "1p" } + macro @Up { "2p" } + macro @Left { "3p" } + macro @Down { "4p" } + + macro @CurrDirection { @CurrZUnit } + + def @GoRight right x { @Right @ZUnit x } + def @GoUp right x { @Up @ZUnit x } + def @GoLeft right x { @Left @ZUnit x } + def @GoDown right x { @Down @ZUnit x } + + def @GoReverse right x + { + @CurrDirection @Case { + @Right @Yield @GoLeft x + @Up @Yield @GoDown x + @Left @Yield @GoRight x + @Down @Yield @GoUp x + } + } + + + def @LabelMarks right x { + @HContract @VContract @ANode + outline { + NMK:: { xmark ysize } + SMK:: { xmark 0 } + WMK:: { 0 ymark } + EMK:: { xsize ymark } + NW:: { 0 ysize } + SW:: { 0 0 } + SE:: { xsize 0 } + NE:: { xsize ysize } + } + font {} + margin { 0c } + vstrut { no } + outlinestyle { noline } + halign { mark } + valign { mark } + x + } + + def @HSkip + { + OX:: @LabelMarks { syntaxgap @Wide {} } + / @Line from { "OX@WMK" } to { "OX@EMK" } + } + + def @VSkip + { + OX:: @LabelMarks { syntaxgap @High {} } + / @Line from { "OX@NMK" } to { "OX@SMK" } + } + + def @Skip + { + @CurrDirection @Case { + { @Left @Right } @Yield @HSkip + { @Up @Down } @Yield @VSkip + } + } + + def @LRLine right x + { + @HContract @VContract { @HSkip | x | @HSkip } + } + + def @UDLine right x + { + @HContract @VContract { @VSkip / x / @VSkip } + } + + + ####################################################################### + # # + # Ordinary starts: @StartRight, @StartUp, @StartLeft, @StartDown # + # # + ####################################################################### + + def @StartRight right x + { + @VContract { + @LabelMarks { + |syntaxgap @GoRight x |syntaxgap + } + / @LineRightFrom WMK + / back @ArrowLeftFrom EMK + } + } + + def @StartUp right x + { + @VContract { + @LabelMarks { + ^/syntaxgap @GoUp x /syntaxgap + } + / @LineUpFrom SMK + / back @ArrowDownFrom NMK + } + } + + def @StartLeft right x + { + @VContract { + @LabelMarks { + |syntaxgap @GoLeft x |syntaxgap + } + / @LineLeftFrom EMK + / back @ArrowRightFrom WMK + } + } + + def @StartDown right x + { + @VContract { + @LabelMarks { + ^/syntaxgap @GoDown x /syntaxgap + } + / @LineDownFrom NMK + / back @ArrowUpFrom SMK + } + } + + + ####################################################################### + # # + # Fancy starts: @StartRightRight, @StartRightDown # + # # + ####################################################################### + + def @StartRightRight + named A {} + named B {} + { + AA:: @LabelMarks { @HSkip & @GoRight A } + //syntaxgap + //syntaxgap + |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap + CC:: @LabelMarks {} + //syntaxgap + //syntaxgap + |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap + BB:: @LabelMarks { @GoRight B & @HSkip } + // @RVLCurve from { AA@EMK } to { CC@WMK } + bias { pssyntaxbias } radius { pssyntaxradius } + // @LVRCurve from { CC@WMK } to { BB@WMK } + bias { pssyntaxbias } radius { pssyntaxradius } + back @ArrowLeftFrom BB@EMK + } + + def @StartRightDown + named A {} + named B {} + { + @HContract @VContract { + / BB:: @LabelMarks |syntaxgap AA::@LabelMarks @GoRight A |syntaxbias + /syntaxgap | | + /syntaxgap | | + } + / @Line from { BB@EMK } to { AA@WMK } + / @RVLCurve from { AA@EMK } to { xcoord AA@EMK pssyntaxgap } + bias { pssyntaxbias } radius { pssyntaxradius } + / @HVCurve from { xcoord AA@EMK pssyntaxgap } to { 0 0 } + bias { pssyntaxbias } radius { pssyntaxradius } + / @GoDown B + / @VSkip + / CC:: @LabelMarks {} + / back @ArrowUpFrom CC@NMK + } + + + ####################################################################### + # # + # Cells: @XCell, @ACell, @BCell, @CCell # + # # + ####################################################################### + + def @RightCell right x + { + @VContract { + @LabelMarks { + |syntaxgap x |syntaxgap + } + / forward @ArrowRightFrom WMK + / @LineLeftFrom EMK + } + } + + def @LeftCell right x + { + @VContract { + @LabelMarks { + |syntaxgap x |syntaxgap + } + / forward @ArrowLeftFrom EMK + / @LineRightFrom WMK + } + } + + def @DownCell right x + { + @VContract { + @LabelMarks { + ^/syntaxgap x /syntaxgap + } + / forward @ArrowDownFrom NMK + / @LineUpFrom SMK + } + } + + def @UpCell right x + { + @VContract { + @LabelMarks { + ^/syntaxgap x /syntaxgap + } + / forward @ArrowUpFrom SMK + / @LineDownFrom NMK + } + } + + def @XCell right x + { + @CurrDirection @Case { + @Right @Yield @RightCell x + @Up @Yield @UpCell x + @Left @Yield @LeftCell x + @Down @Yield @DownCell x + } + } + + macro @ACell { @XCell @ANode } + macro @BCell { @XCell @BNode } + macro @CCell { @XCell @CNode } + + + ####################################################################### + # # + # @Sequence # + # # + ####################################################################### + + def @Sequence + named A {} + named B {} + named C {} + named D {} + named E {} + named F {} + named G {} + named H {} + named I {} + named J {} + named K {} + named L {} + { + + @CurrDirection @Case { + @Right @Yield + @HContract { A | B | C | D | E | F | G | H | I | J | K | L } + @Up @Yield + @VContract { L / K / J / I / H / G / F / E / D / C / B / A } + @Left @Yield + @HContract { L | K | J | I | H | G | F | E | D | C | B | A } + @Down @Yield + @VContract { A / B / C / D / E / F / G / H / I / J / K / L } + } + } + + + ####################################################################### + # # + # @Select and @Optional # + # # + ####################################################################### + + def @Select + named A {} + named B {} + named C {} + named D {} + named E {} + named F {} + named G {} + named H {} + named I {} + named J {} + named K {} + named L {} + { + + def @RLFirstOrMiddle + left label + named i { 0i } + named al { no } + named ar { no } + right x + { + {|i @HContract { |syntaxgap label:: @LabelMarks x |syntaxgap }} + // @Line from { label"@WMK" } to { 0 ycoord label"@WMK" } + arrow { al } + // @Line from { label"@EMK" } to { xsize ycoord label"@EMK" } + arrow { ar } + } + + def @UDFirstOrMiddle + left label + named i { 0i } + named au { no } + named ad { no } + right x + { + {/i @VContract { /syntaxgap label:: @LabelMarks x /syntaxgap }} + || @Line from { label"@NMK" } to { xcoord label"@NMK" ysize } + arrow { au } + || @Line from { label"@SMK" } to { xcoord label"@SMK" 0 } + arrow { ad } + } + + def @RLLast + left label + named i { 0i } + named al { no } + named ar { no } + right x + { + {|i @HContract { |syntaxgap label:: @LabelMarks x |syntaxgap }} + // @HVCurve from { label"@WMK" } to { 0 ycoord "AX@WMK" } + arrow { al } bias { pssyntaxbias } radius { pssyntaxradius } + // @HVCurve from { label"@EMK" } to { xsize ycoord "AX@WMK" } + arrow { ar } bias { pssyntaxbias } radius { pssyntaxradius } + } + + def @UDLast + left label + named i { 0i } + named au { no } + named ad { no } + right x + { + {/i @VContract { /syntaxgap label:: @LabelMarks x /syntaxgap }} + || @VHCurve from { label"@NMK" } to { xcoord "AX@NMK" ysize } + arrow { au } bias { pssyntaxbias } radius { pssyntaxradius } + || @VHCurve from { label"@SMK" } to { xcoord "AX@SMK" 0 } + arrow { ad } bias { pssyntaxbias } radius { pssyntaxradius } + } + + def @DirectedSelect + named @First left label right x {} + named @Middle left label right x {} + named @Last left label right x {} + named @Join precedence 90 left x right y {} + { + + def @LastIsA + { + A + } + + def @LastIsB + { + AX @First A + @Join BX @Last B + } + + def @LastIsC + { + AX @First A + @Join BX @Middle B + @Join CX @Last C + } + + def @LastIsD + { + AX @First A + @Join BX @Middle B + @Join CX @Middle C + @Join DX @Last D + } + + def @LastIsE + { + AX @First A + @Join BX @Middle B + @Join CX @Middle C + @Join DX @Middle D + @Join EX @Last E + } + + def @LastIsF + { + AX @First A + @Join BX @Middle B + @Join CX @Middle C + @Join DX @Middle D + @Join EX @Middle E + @Join FX @Last F + } + + def @UpToF + { + AX @First A + @Join BX @Middle B + @Join CX @Middle C + @Join DX @Middle D + @Join EX @Middle E + @Join FX @Middle F + } + + def @LastIsG + { + @UpToF + @Join GX @Last G + } + + def @LastIsH + { + @UpToF + @Join GX @Middle G + @Join HX @Last H + } + + def @LastIsI + { + @UpToF + @Join GX @Middle G + @Join HX @Middle H + @Join IX @Last I + } + + def @LastIsJ + { + @UpToF + @Join GX @Middle G + @Join HX @Middle H + @Join IX @Middle I + @Join JX @Last J + } + + def @LastIsK + { + @UpToF + @Join GX @Middle G + @Join HX @Middle H + @Join IX @Middle I + @Join JX @Middle J + @Join KX @Last K + } + + def @LastIsL + { + @UpToF + @Join GX @Middle G + @Join HX @Middle H + @Join IX @Middle I + @Join JX @Middle J + @Join KX @Middle K + @Join LX @Last L + } + + def @TryA { A @Case { {} @Yield @Skip else @Yield @LastIsA } } + def @TryB { B @Case { {} @Yield @TryA else @Yield @LastIsB } } + def @TryC { C @Case { {} @Yield @TryB else @Yield @LastIsC } } + def @TryD { D @Case { {} @Yield @TryC else @Yield @LastIsD } } + def @TryE { E @Case { {} @Yield @TryD else @Yield @LastIsE } } + def @TryF { F @Case { {} @Yield @TryE else @Yield @LastIsF } } + def @TryG { G @Case { {} @Yield @TryF else @Yield @LastIsG } } + def @TryH { H @Case { {} @Yield @TryG else @Yield @LastIsH } } + def @TryI { I @Case { {} @Yield @TryH else @Yield @LastIsI } } + def @TryJ { J @Case { {} @Yield @TryI else @Yield @LastIsJ } } + def @TryK { K @Case { {} @Yield @TryJ else @Yield @LastIsK } } + def @TryL { L @Case { {} @Yield @TryK else @Yield @LastIsL } } + + @TryL + } + + def @RightSelect + { + @LRLine @DirectedSelect + @First { label @RLFirstOrMiddle x } + @Middle { label @RLFirstOrMiddle ar { yes } x } + @Last { label @RLLast ar { yes } x } + @Join { x //syntaxgap y } + } + + def @UpSelect + { + @UDLine @DirectedSelect + @First { label @UDFirstOrMiddle i { 1r } x } + @Middle { label @UDFirstOrMiddle i { 1r } au { yes } x } + @Last { label @UDLast i { 1r } au { yes } x } + @Join { x ||syntaxgap y } + } + + def @LeftSelect + { + @LRLine @DirectedSelect + @First { label @RLFirstOrMiddle i { 1r } x } + @Middle { label @RLFirstOrMiddle i { 1r } al { yes } x } + @Last { label @RLLast i { 1r } al { yes } x } + @Join { x //syntaxgap y } + } + + def @DownSelect + { + @UDLine @DirectedSelect + @First { label @UDFirstOrMiddle x } + @Middle { label @UDFirstOrMiddle ad { yes } x } + @Last { label @UDLast ad { yes } x } + @Join { x ||syntaxgap y } + } + + @CurrDirection @Case { + @Right @Yield @RightSelect + @Up @Yield @UpSelect + @Left @Yield @LeftSelect + @Down @Yield @DownSelect + } + } + + + def @Optional right x + { + @Select A { @Skip } B { x } + } + + + ####################################################################### + # # + # @OptionalDiverted # + # # + ####################################################################### + + def @DownRightOptionalDiverted right x + { + @UDLine { + OX:: @LabelMarks { + |syntaxgap AX:: @LabelMarks @GoRight x |syntaxbias + /syntaxgap + } + / @Line from { "OX@NW" } to { "OX@SW" } + / @Line from { "OX@WMK" } to { "OX@IN@AX@WMK" } + / @RVLCurveArrow from { "OX@IN@AX@EMK" } to { "OX@SW" } + bias { pssyntaxbias } radius { pssyntaxradius } + } + } + + def @UpRightOptionalDiverted right x + { + @UDLine { + OX:: @LabelMarks { + ^/syntaxgap + |syntaxgap AX:: @LabelMarks @GoRight x |syntaxbias + } + / @Line from { "OX@NW" } to { "OX@SW" } + / @Line from { "OX@WMK" } to { "OX@IN@AX@WMK" } + / @RVLCurveArrow from { "OX@IN@AX@EMK" } to { "OX@NW" } + bias { pssyntaxbias } radius { pssyntaxradius } + } + } + + def @RightDownOptionalDiverted right x + { + @LRLine { + OX:: @LabelMarks { + { /syntaxgap AX:: @LabelMarks @GoDown x /syntaxbias } + |syntaxgap + } + / @Line from { "OX@NW" } to { "OX@NE" } + / @Line from { "OX@NMK" } to { "OX@IN@AX@NMK" } + / @VHCurve from {"OX@IN@AX@SMK"} to { "OX@SE"--{pssyntaxgap 0} } + bias { pssyntaxbias } radius { pssyntaxradius } + / @HVCurve from { "OX@SE" -- {pssyntaxgap 0} } to { "OX@NE" } + arrow { yes } bias { pssyntaxbias } radius { pssyntaxradius } + } + } + + def @LeftDownOptionalDiverted right x + { + @LRLine { + OX:: @LabelMarks { + ^|syntaxgap + { /syntaxgap AX:: @LabelMarks @GoDown x /syntaxbias } + } + / @Line from { "OX@NW" } to { "OX@NE" } + / @Line from { "OX@NMK" } to { "OX@IN@AX@NMK" } + / @VHCurve from {"OX@IN@AX@SMK"} to { "OX@SW"++{pssyntaxgap 0} } + bias { pssyntaxbias } radius { pssyntaxradius } + / @HVCurve from { "OX@SW" ++ {pssyntaxgap 0} } to { "OX@NW" } + arrow { yes } bias { pssyntaxbias } radius { pssyntaxradius } + } + } + + def @OptionalDiverted right x + { + @CurrDirection @Case { + @Right @Yield @RightDownOptionalDiverted x + @Up @Yield @UpRightOptionalDiverted x + @Left @Yield @LeftDownOptionalDiverted x + @Down @Yield @DownRightOptionalDiverted x + } + } + + + ####################################################################### + # # + # @Diverted # + # # + ####################################################################### + + def @DownRightDiverted right x + { + @UDLine { + OX:: @LabelMarks { + |syntaxgap AX:: @LabelMarks @GoRight x |syntaxbias + ^/syntaxgap + /syntaxgap + } + / @VHCurve from { "OX@NW" } to { "OX@IN@AX@WMK" } + bias { pssyntaxbias } radius { pssyntaxradius } + / @RVLCurve from { "OX@IN@AX@EMK" } + to { xcoord "OX@IN@AX@WMK" ycoord "OX@EMK" } + bias { pssyntaxbias } radius { pssyntaxradius } + / @HVCurve from { xcoord "OX@IN@AX@WMK" ycoord "OX@EMK" } + to { "OX@SW" } bias { pssyntaxbias } radius {pssyntaxradius} + } + } + + def @UpRightDiverted right x + { + @UDLine { + OX:: @LabelMarks { + ^/syntaxgap + /syntaxgap + |syntaxgap AX:: @LabelMarks @GoRight x |syntaxbias + } + / @VHCurve from { "OX@SW" } to { "OX@IN@AX@WMK" } + bias { pssyntaxbias } radius { pssyntaxradius } + / @RVLCurve from { "OX@IN@AX@EMK" } + to { xcoord "OX@IN@AX@WMK" ycoord "OX@EMK" } + bias { pssyntaxbias } radius { pssyntaxradius } + / @HVCurve from { xcoord "OX@IN@AX@WMK" ycoord "OX@EMK" } + to { "OX@NW" } bias { pssyntaxbias } radius {pssyntaxradius} + } + } + + def @RightDownDiverted right x + { + @LRLine { + OX:: @LabelMarks { + { /syntaxgap AX:: @LabelMarks @GoDown x /syntaxbias } + ^|syntaxgap + |syntaxgap + } + / @HVCurve from { "OX@NW" } to { "OX@IN@AX@NMK" } + bias { pssyntaxbias } radius { pssyntaxradius } + / @VHCurve from { "OX@IN@AX@SMK" } + to { xcoord "OX@IN@AX@EMK" ycoord "OX@SMK" } + bias { pssyntaxbias } radius { pssyntaxradius } + / @HVCurve from { xcoord "OX@IN@AX@EMK" ycoord "OX@SMK" } + to { "OX@IN@AX@EMK" ++ { pssyntaxgap 0 } } + bias { pssyntaxbias } radius {pssyntaxradius} + / @VHCurve from { "OX@IN@AX@EMK" ++ { pssyntaxgap 0 } } + to { "OX@NE" } bias { pssyntaxbias } radius {pssyntaxradius} + } + } + + def @LeftDownDiverted right x + { + @LRLine { + OX:: @LabelMarks { + |syntaxgap + ^|syntaxgap + { /syntaxgap AX:: @LabelMarks @GoDown x /syntaxbias } + } + / @HVCurve from { "OX@NE" } to { "OX@IN@AX@NMK" } + bias { pssyntaxbias } radius { pssyntaxradius } + / @VHCurve from { "OX@IN@AX@SMK" } + to { xcoord "OX@IN@AX@WMK" ycoord "OX@SMK" } + bias { pssyntaxbias } radius { pssyntaxradius } + / @HVCurve from { xcoord "OX@IN@AX@WMK" ycoord "OX@SMK" } + to { "OX@IN@AX@WMK" -- { pssyntaxgap 0 } } + bias { pssyntaxbias } radius {pssyntaxradius} + / @VHCurve from { "OX@IN@AX@WMK" -- { pssyntaxgap 0 } } + to { "OX@NW" } bias { pssyntaxbias } radius {pssyntaxradius} + } + } + + def @Diverted right x + { + @CurrDirection @Case { + @Right @Yield @RightDownDiverted x + @Up @Yield @UpRightDiverted x + @Left @Yield @LeftDownDiverted x + @Down @Yield @DownRightDiverted x + } + } + + + ####################################################################### + # # + # @RepeatDiverted # + # # + ####################################################################### + + def @RepeatDiverted right x + { + # this implementation exploits the coincidental similarity + # of @RepeatDiverted to @OptionalDiverted + + @CurrDirection @Case { + @Right @Yield @LeftDownOptionalDiverted x + @Up @Yield @DownRightOptionalDiverted x + @Left @Yield @RightDownOptionalDiverted x + @Down @Yield @UpRightOptionalDiverted x + } + } + + + + ####################################################################### + # # + # @Loop and @Repeat # + # # + ####################################################################### + + def @Loop + named A {} + named B {} + { + def @LeftOrRightLoop + named al { no } + named ar { no } + { + @LRLine { + @HContract @VContract { OX:: @LabelMarks { + { |syntaxgap AX:: @LabelMarks A |syntaxgap } + //syntaxgap + { |0.5rt BX:: @LabelMarks @GoReverse B |syntaxgap } + } } + / @Line from { "OX@WMK" } to { "OX@IN@AX@WMK" } + / @Line from { "OX@EMK" } to { "OX@IN@AX@EMK" } + / @HVCurve from { "OX@IN@BX@EMK" } to { "OX@EMK" } + arrow { ar } bias {pssyntaxbias} radius {pssyntaxradius} + / @HVCurve from { "OX@IN@BX@WMK" } to { "OX@WMK" } + arrow { al } bias {pssyntaxbias} radius {pssyntaxradius} + } + } + + def @UpOrDownLoop + named au { no } + named ad { no } + { + @UDLine { + @HContract @VContract { OX:: @LabelMarks { + { /syntaxgap AX:: @LabelMarks A /syntaxgap } + ||syntaxgap + { /0.5rt BX:: @LabelMarks @GoReverse B /syntaxgap } + } } + / @Line from { "OX@NMK" } to { "OX@IN@AX@NMK" } + / @Line from { "OX@SMK" } to { "OX@IN@AX@SMK" } + / @VHCurve from { "OX@IN@BX@NMK" } to { "OX@NMK" } + arrow { au } bias {pssyntaxbias} radius {pssyntaxradius} + / @VHCurve from { "OX@IN@BX@SMK" } to { "OX@SMK" } + arrow { ad } bias {pssyntaxbias} radius {pssyntaxradius} + } + } + + @CurrDirection @Case { + @Right @Yield @LeftOrRightLoop al { yes } + @Up @Yield @UpOrDownLoop ad { yes } + @Left @Yield @LeftOrRightLoop ar { yes } + @Down @Yield @UpOrDownLoop au { yes } + } + } + + def @Repeat right x + { + @Loop + A { x } + B { @Skip } + } + + + ####################################################################### + # # + # @LoopOpposite and @RepeatOpposite # + # # + ####################################################################### + + def @LoopOpposite + named A {} + named B {} + { + def @LeftOrRightLoopOpposite + named al { no } + named ar { no } + { + @LRLine { + @HContract @VContract { OX:: @LabelMarks { + { |0.5rt BX:: @LabelMarks @GoReverse B |syntaxgap } + ^//syntaxgap + { |syntaxgap AX:: @LabelMarks A |syntaxgap } + } } + / @Line from { "OX@WMK" } to { "OX@IN@AX@WMK" } + / @Line from { "OX@EMK" } to { "OX@IN@AX@EMK" } + / @HVCurve from { "OX@IN@BX@EMK" } to { "OX@EMK" } + arrow { ar } bias {pssyntaxbias} radius {pssyntaxradius} + / @HVCurve from { "OX@IN@BX@WMK" } to { "OX@WMK" } + arrow { al } bias {pssyntaxbias} radius {pssyntaxradius} + } + } + + def @UpOrDownLoopOpposite + named au { no } + named ad { no } + { + @UDLine { + @HContract @VContract { OX:: @LabelMarks { + { /0.5rt BX:: @LabelMarks @GoReverse B /syntaxgap } + ^||syntaxgap + { /syntaxgap AX:: @LabelMarks A /syntaxgap } + } } + / @Line from { "OX@NMK" } to { "OX@IN@AX@NMK" } + / @Line from { "OX@SMK" } to { "OX@IN@AX@SMK" } + / @VHCurve from { "OX@IN@BX@NMK" } to { "OX@NMK" } + arrow { au } bias {pssyntaxbias} radius {pssyntaxradius} + / @VHCurve from { "OX@IN@BX@SMK" } to { "OX@SMK" } + arrow { ad } bias {pssyntaxbias} radius {pssyntaxradius} + } + } + + @CurrDirection @Case { + @Right @Yield @LeftOrRightLoopOpposite al { yes } + @Up @Yield @UpOrDownLoopOpposite ad { yes } + @Left @Yield @LeftOrRightLoopOpposite ar { yes } + @Down @Yield @UpOrDownLoopOpposite au { yes } + } + } + + def @RepeatOpposite right x + { + @LoopOpposite + A { x } + B { @Skip } + } + + + ####################################################################### + # # + # Value of whole diagram # + # # + ####################################################################### + + def @DiagValue right x + { + @BackEnd @Case { + PostScript @Yield { + { + save @Case { + { yes Yes } @Yield "grestore save gsave" + else @Yield {} + } + maxlabels "ldiagbegin" + // + "ldiagend" + save @Case { + { yes Yes } @Yield "restore" + else @Yield {} + } + } @Graphic x } + + PDF @Yield {} + } + } + + title @Case { + + "--titledft--" @Yield @DiagValue @Body + + else @Yield { title titleformat @DiagValue @Body } + } + + @End @Diag + + + macro @SyntaxDiag { + @Diag + avalign { mark } + avstrut { yes } + amargin { 0.2f } + aoutline { box } + afont { Italic } + + bvalign { mark } + bvstrut { yes } + bmargin { 0.2f } + boutline { curvebox } + bfont { Bold } + + cvalign { mark } + cvstrut { yes } + cmargin { 0.2f } + coutline { circle } + chsize { 1f } + + arrowlength { 0.4f } + } +} diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/diagf.etc b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/diagf.etc new file mode 100755 index 0000000000000..c92a145e85604 --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/diagf.etc @@ -0,0 +1,627 @@ + +############################################################################### +# # +# Lout @Geometry package for algebra and geometry in PostScript # +# Version 1.0 (June 1996) # +# Jeffrey H. Kingston # +# # +############################################################################### + +export + + i c p m s v f d "-0" "-1" "-2" "-3" "-4" "-5" "-6" "-7" "-8" "-9" "-." + pi e sqrt abs ceiling floor truncate round cos sin atan + exp log rand max min "*" "/" idiv mod "+" "-" + xcoord ycoord distance angleto ":=" ":==" "::" ":<" prev "??" "?!?" + boundaryatangle atangle + "**" "++" "--" anglefix anydebug "," + "=" "!=" "==" "!==" "<" "<=" ">" ">=" not and xor or + if quadcase signcase xloop yloop zloop + cabout aabout + +def @Geometry +{ + def i + precedence 100 + left x + { + x "in" + } + + def c + precedence 100 + left x + { + x "cm" + } + + def p + precedence 100 + left x + { + x "pt" + } + + def m + precedence 100 + left x + { + x "em" + } + + def s + precedence 100 + left x + { + x "sp" + } + + def v + precedence 100 + left x + { + x "vs" + } + + def f + precedence 100 + left x + { + x "ft" + } + + def d + precedence 100 + left x + { + x "dg" + } + + def pi + { + "ldiagpi" + } + + def e + { + "ldiage" + } + + def sqrt + precedence 99 + right y + { + y "sqrt" + } + + def abs + precedence 99 + right y + { + y "abs" + } + + def anglefix + precedence 99 + right y + { + y "ldiagfixangle" + } + + def ceiling + precedence 99 + right y + { + y "ceiling" + } + + def floor + precedence 99 + right y + { + y "floor" + } + + def truncate + precedence 99 + right y + { + y "truncate" + } + + def round + precedence 99 + right y + { + y "round" + } + + def cos + precedence 99 + right y + { + y "cos" + } + + def sin + precedence 99 + right y + { + y "sin" + } + + def xcoord + precedence 99 + right y + { + y "pop" + } + + def ycoord + precedence 99 + right y + { + y "exch pop" + } + + def distance + precedence 98 + left x + right y + { + x y "ldiagdistance" + } + + def angleto + precedence 98 + left x + right y + { + x y "ldiagangleto" + } + + def atan + precedence 98 + left x + right y + { + x y "atan" + } + + def exp + precedence 98 + left x + right y + { + x y "exp" + } + + def log + precedence 98 + left x + right y + { + x y "ldiaglog" + } + + def rand + precedence 98 + left x + right y + { + x y "dorand" + } + + def max + precedence 98 + left x + right y + { + x y "ldiagmax" + } + + def min + precedence 98 + left x + right y + { + x y "ldiagmin" + } + + def "*" + precedence 97 + left x + right y + { + x y "mul" + } + + def "/" + precedence 96 + associativity left + left x + right y + { + x y "div" + } + + def idiv + precedence 96 + associativity left + left x + right y + { + x y "idiv" + } + + def mod + precedence 96 + left x + right y + { + x "cvi" y "cvi mod" + } + + def "+" + precedence 95 + associativity left + left x + right y + { + x @Case { + "" @Yield y + else @Yield { x y "add" } + } + } + + def "-" + precedence 95 + associativity left + left x + right y + { + x @Case { + "" @Yield { y "neg" } + else @Yield { x y "sub" } + } + } + + def "-0" { "-0" } + def "-1" { "-1" } + def "-2" { "-2" } + def "-3" { "-3" } + def "-4" { "-4" } + def "-5" { "-5" } + def "-6" { "-6" } + def "-7" { "-7" } + def "-8" { "-8" } + def "-9" { "-9" } + def "-." { "-." } + + def prev + { + "ldiagprevious" + } + + def "??" + precedence 99 + left x + right y + { + "{" x "} ("y") ldiagdolabel" + } + + def "?!?" + precedence 99 + left x + right y + { + "{" x "} "y" ldiagdolabel" + } + + def boundaryatangle + precedence 89 + left x + right y + { + x??"CTR" y x??"CIRCUM" "ldiagpadd" + } + + def atangle + precedence 89 + left x + right y + { + 0 0 x y "ldiagatangle" + } + + def "**" + precedence 88 + left x + right y + { + x y "ldiagpmul" + } + + def "++" + precedence 87 + associativity left + left x + right y + { + x y "ldiagpadd" + } + + def "--" + precedence 87 + associativity left + left x + right y + { + y x "ldiagpsub" + } + + def "=" + precedence 79 + left x + right y + { + x y "eq" + } + + def "!=" + precedence 79 + left x + right y + { + x y "ne" + } + + def "==" + precedence 79 + left x + right y + { + x y "ldiagangleeq" + } + + def "!==" + precedence 79 + left x + right y + { + x y "ldiaganglene" + } + + def "<" + precedence 79 + left x + right y + { + x y "lt" + } + + def "<=" + precedence 79 + left x + right y + { + x y "le" + } + + def ">" + precedence 79 + left x + right y + { + x y "gt" + } + + def ">=" + precedence 79 + left x + right y + { + x y "ge" + } + + def not + precedence 78 + right y + { + y "not" + } + + def and + precedence 77 + left x + right y + { + x y "and" + } + + def xor + precedence 76 + left x + right y + { + x y "xor" + } + + def or + precedence 76 + left x + right y + { + x y "or" + } + + def "," + precedence 70 + left x + right y + { + OOO ++ { OOX -- OOO }**x ++ { OOY -- OOO }**y + } + + def ":=" + precedence 20 + left x + right y + { + "/"x "[" y "] cvx def" + } + + def ":==" + precedence 20 + left x + right y + { + "/"x "[" y "counttomark 2 add (assigning) exch ldiagdebugprint ] cvx def" + } + + def "::" + precedence 20 + left x + right y + { + y "/"x "ldiagpointdef" + } + + def ":<" + precedence 20 + left x + right y + { + y "/"x"@ANGLE ldiagangledef" + } + + def if + named cond {} + named then {} + named else {} + { + cond "{" then "} {" else "} ifelse" + } + + def quadcase + precedence 10 + left angle + named "0" {} + named "0-90" {} + named "90" {} + named "90-180" {} + named "180" {} + named "180-270" {} + named "270" {} + named "270-360" {} + { + "{" 0-90 "} {" 270 "} {" 180 "} {" 90 "}" + "{" 0 "} {" 270-360 "} {" 180-270 "} {" 90-180 "}" angle "ldiagquadcase" + } + + def signcase + precedence 10 + left number + named neg {} + named zero {} + named pos {} + { + "{" neg "} {" zero "} {" pos "}" number "ldiagsigncase" + } + + def xloop + named from { 0 } + named to { 0 } + named by { 1 } + named do named x { "xval" } {} + { + from by to "{ /xval exch def" do "} for" + } + + def yloop + named from { 0 } + named to { 0 } + named by { 1 } + named do named y { "yval" } {} + { + from by to "{ /yval exch def" do "} for" + } + + def zloop + named from { 0 } + named to { 0 } + named by { 1 } + named do named z { "zval" } {} + { + from by to "{ /zval exch def" do "} for" + } + + def anydebug + right tag + { + "[" tag "counttomark ("tag") exch ldiagdebugprint cleartomark" + } + + def aabout + named circum {} + named extra {} + named centre {} + { + "{" circum "} cvlit" extra "[" centre "] cvx ldiagaabout" + # ZXCTR := centre + # ZFCTR := circum??CTR + # ZAREF := ZFCTR angleto ZXCTR + # ZAMIN := 0d + # ZPMIN := circum boundaryatangle { ZAREF - ZAMIN } + # ++ extra atangle { ZAREF - ZAMIN } + # ZAMAX := 90d + # ZPMAX := circum boundaryatangle { ZAREF - ZAMAX } + # ++ extra atangle { ZAREF - ZAMAX } + # xloop from { 1 } to { 12 } by { 1 } do { + # ZAMID := { ZAMIN + ZAMAX } * 0.5 + # ZPMID := circum boundaryatangle { ZAREF - ZAMID } + # ++ extra atangle { ZAREF - ZAMID } + # if cond { {ZPMID distance ZXCTR} > {ZFCTR distance ZXCTR} } then { + # ZAMAX := ZAMID + # ZPMAX := ZPMID + # } + # else { + # ZAMIN := ZAMID + # ZPMIN := ZPMID + # } + # } + # ZPMID + } + + def cabout + named circum {} + named extra {} + named centre {} + { + "{" circum "} cvlit" extra "[" centre "] cvx ldiagcabout" + # ZXCTR := centre + # ZFCTR := circum??CTR + # ZAREF := ZFCTR angleto ZXCTR + # ZAMIN := 0d + # ZPMIN := circum boundaryatangle { ZAREF + ZAMIN } + # ++ extra atangle { ZAREF + ZAMIN } + # ZAMAX := 90d + # ZPMAX := circum boundaryatangle { ZAREF + ZAMAX } + # ++ extra atangle { ZAREF + ZAMAX } + # xloop from { 1 } to { 12 } by { 1 } do { + # ZAMID := { ZAMIN + ZAMAX } * 0.5 + # ZPMID := circum boundaryatangle { ZAREF + ZAMID } + # ++ extra atangle { ZAREF + ZAMID } + # if cond { {ZPMID distance ZXCTR} > {ZFCTR distance ZXCTR} } then { + # ZAMAX := ZAMID + # ZPMAX := ZPMID + # } + # else { + # ZAMIN := ZAMID + # ZPMIN := ZPMID + # } + # } + # ZPMID + } +} diff --git a/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/diagf.lpg b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/diagf.lpg new file mode 100755 index 0000000000000..8b76f5858ad0e --- /dev/null +++ b/evaluation/benchmarks/mibench/consumer/typeset/lout-3.24/include/diagf.lpg @@ -0,0 +1,2706 @@ +%%BeginResource: procset LoutFigPrependGraphic +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% PostScript @SysPrependGraphic file for @Diag Jeffrey H. Kingston % +% Version 2.0 (includes CIRCUM label) September 1996 % +% % +% To assist in avoiding name clashes, the names of all symbols % +% defined here begin with "ldiag". However, this is not feasible % +% with user-defined labels and some labels used by users. % +% % +% is two numbers, a point. % +% is one number, a length % +% is one number, an angle in degrees % +% is one number, the preferred length of a dash % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +errordict begin + /handleerror + { + { /Times-Roman findfont 8 pt scalefont setfont + 0 setgray 4 pt 4 pt moveto + $error /errorname get + dup ldiagdict exch known + { ldiagdict exch get } + { 50 string cvs } ifelse + show + ( Command: ) show + $error /command get 50 string cvs show + } stopped {} if + showpage stop + } def +end + +% begin diagram: ldiagbegin - +% must be defined outside ldiagdict since it loads it +/ldiagbegin +{ xsize 0 0 ysize ldiagdict begin + 5 -1 roll /ldiagmaxlabels exch def + (@Diag) ldiagpushtagdict + /OOY ldiagpointdef /OOX ldiagpointdef 0 0 /OOO ldiagpointdef +} def + +% end diagram: - ldiagend - +/ldiagend +{ ldiagpoptagdict end +} def + +% concat strings: ldiagconcat +% must be defined outside ldiagdict since used in ldiagpromotelabels +/ldiagconcat +{ 2 copy length exch length add string + dup 0 4 index putinterval + dup 3 index length 3 index putinterval + 3 1 roll pop pop +} def + +/ldiagdebugposy 432 def +/ldiagdebugposx 72 def + +% ldiagdebugprint - +% must be defined outside ldiagdict since used in arbitrary places +% print count or stack entries, which ever is the smaller +/ldiagdebugprint +{ + exch + gsave + initgraphics + ldiagdebugposy 72 lt + { /ldiagdebugposx ldiagdebugposx 144 add store + /ldiagdebugposy 432 store + } + { + /ldiagdebugposy ldiagdebugposy 12 sub store + } ifelse + ldiagdebugposx ldiagdebugposy moveto + /Times-Roman findfont 10 scalefont setfont + 0 setgray show + count 1 sub 2 copy lt { pop } { exch pop } ifelse 1 sub + 0 exch 1 exch + { + /ldiagdebugposy ldiagdebugposy 12 sub store + ldiagdebugposx 12 add ldiagdebugposy moveto + index 50 string cvs show + } for + grestore +} def + +/ldiagdict 200 dict def +ldiagdict begin + +% error messages +/dictfull (dictfull error: too many labels?) def +/dictstackoverflow (dictstackoverflow error: labels nested too deeply?) def +/execstackoverflow (execstackoverflow error: figure nested too deeply?) def +/limitcheck (limitcheck error: figure nested too deeply or too large?) def +/syntaxerror (syntaxerror error: syntax error in text of figure?) def +/typecheck (typecheck error: syntax error in text of figure?) def +/undefined (undefined error: unknown or misspelt label?) def +/VMError (VMError error: run out of memory?) def + +% push pi onto stack: - ldiagpi +/ldiagpi 3.14159 def + +% push e onto stack: - ldiage +/ldiage 2.71828 def + +% arc directions +/clockwise false def +/anticlockwise true def + +% test equality between two angles: ldiagangleeq +/ldiagangleeq { ldiagfixangle exch ldiagfixangle eq } def + +% test inequality between two angles: ldiaganglene +/ldiaganglene { ldiagangleeq not } def + +% maximum of two numbers: ldiagmax +/ldiagmax { 2 copy gt { pop } { exch pop } ifelse } def + +% minimum of two numbers: ldiagmin +/ldiagmin { 2 copy lt { pop } { exch pop } ifelse } def + +% add two points: ldiagpadd +/ldiagpadd +{ + % (Entering padd) 4 ldiagdebugprint + exch 3 1 roll add 3 1 roll add exch + % (Leaving padd) 2 ldiagdebugprint +} def + +% subtract first point from second: ldiagpsub +/ldiagpsub { 3 2 roll sub 3 1 roll exch sub exch } def + +% max two points: ldiagpmax +/ldiagpmax { exch 3 1 roll ldiagmax 3 1 roll ldiagmax exch } def + +% min two points: ldiagpmin +/ldiagpmin { exch 3 1 roll ldiagmin 3 1 roll ldiagmin exch } def + +% scalar multiplication: ldiagpmul +/ldiagpmul { dup 3 1 roll mul 3 1 roll mul exch } def + +% point at angle and distance: ldiagatangle +/ldiagatangle { 2 copy cos mul 3 1 roll sin mul ldiagpadd } def + +% angle from one point to another: ldiagangleto +/ldiagangleto { ldiagpsub 2 copy 0 eq exch 0 eq and {pop} {exch atan} ifelse } def + +% distance between two points: ldiagdistance +/ldiagdistance { ldiagpsub dup mul exch dup mul add sqrt } def + +% stroke a solid line: ldiagsolid - +/ldiagsolid +{ pop pop [] 0 setdash 1 setlinecap stroke +} def + +% stroke a dashed line: ldiagdashed - +/ldiagdashed +{ 2 copy div 2 le 1 index 0 le or + { exch pop 1 pt ldiagmax [ exch dup ] 0 setdash } + { dup [ exch 4 2 roll 2 copy div + 1 sub 2 div ceiling dup 4 1 roll + 1 add mul sub exch div ] 0 setdash + } ifelse 0 setlinecap stroke +} def + +% stroke a cdashed line: ldiagcdashed - +/ldiagcdashed +{ % (Entering ldiagcdashed) 2 ldiagdebugprint + 2 copy le 1 index 0 le or + { exch pop 1 pt ldiagmax [ exch dup ] dup 0 get 2 div setdash } + { dup [ 4 2 roll exch 2 copy exch div + 2 div ceiling div 1 index sub + ] exch 2 div setdash + } ifelse 0 setlinecap stroke + % (Leaving ldiagcdashed) 0 ldiagdebugprint +} def + +% stroke a dotted line: ldiagdotted - +/ldiagdotted +{ 2 copy le 1 index 0 le or + { exch pop 1 pt ldiagmax [ exch 0 exch ] 0 setdash } + { 1 index exch div ceiling div + [ 0 3 2 roll ] 0 setdash + } ifelse 1 setlinecap stroke +} def + +% stroke a noline line: ldiagnoline - +/ldiagnoline +{ pop pop +} def + +% painting (i.e. filling): - ldiagwhite - (etc.) +/ldiagnopaint { } def +/ldiagnochange { fill } def +/ldiagdarkblue { 0.0 0.0 0.5 setrgbcolor fill } def +/ldiagblue { 0.0 0.0 1.0 setrgbcolor fill } def +/ldiaglightblue { 0.5 0.5 1.0 setrgbcolor fill } def +/ldiagdarkgreen { 0.0 0.5 0.0 setrgbcolor fill } def +/ldiaggreen { 0.0 1.0 0.0 setrgbcolor fill } def +/ldiaglightgreen { 0.5 1.0 0.5 setrgbcolor fill } def +/ldiagdarkred { 0.5 0.0 0.0 setrgbcolor fill } def +/ldiagred { 1.0 0.0 0.0 setrgbcolor fill } def +/ldiaglightred { 1.0 0.5 0.5 setrgbcolor fill } def +/ldiagdarkcyan { 0.0 0.5 0.5 setrgbcolor fill } def +/ldiagcyan { 0.0 1.0 1.0 setrgbcolor fill } def +/ldiaglightcyan { 0.5 1.0 1.0 setrgbcolor fill } def +/ldiagdarkmagenta { 0.5 0.0 0.5 setrgbcolor fill } def +/ldiagmagenta { 1.0 0.0 1.0 setrgbcolor fill } def +/ldiaglightmagenta { 1.0 0.5 1.0 setrgbcolor fill } def +/ldiagdarkyellow { 0.5 0.5 0.0 setrgbcolor fill } def +/ldiagyellow { 1.0 1.0 0.0 setrgbcolor fill } def +/ldiaglightyellow { 1.0 1.0 0.5 setrgbcolor fill } def +/ldiagdarkgray { 0.2 0.2 0.2 setrgbcolor fill } def +/ldiaggray { 0.5 0.5 0.5 setrgbcolor fill } def +/ldiaglightgray { 0.8 0.8 0.8 setrgbcolor fill } def +/ldiagdarkgrey { 0.2 0.2 0.2 setrgbcolor fill } def +/ldiaggrey { 0.5 0.5 0.5 setrgbcolor fill } def +/ldiaglightgrey { 0.8 0.8 0.8 setrgbcolor fill } def +/ldiagblack { 0.0 0.0 0.0 setrgbcolor fill } def +/ldiagwhite { 1.0 1.0 1.0 setrgbcolor fill } def + +% shape and labels of the @Box symbol +/ldiagbox +{ + 0 0 /SW ldiagpointdef + xsize 0 /SE ldiagpointdef + xsize ysize /NE ldiagpointdef + 0 ysize /NW ldiagpointdef + SE 0.5 ldiagpmul /S ldiagpointdef + NW 0.5 ldiagpmul /W ldiagpointdef + W SE ldiagpadd /E ldiagpointdef + S NW ldiagpadd /N ldiagpointdef + NE 0.5 ldiagpmul /CTR ldiagpointdef + + 0 dg /S@ANGLE ldiagangledef + 45 dg /SE@ANGLE ldiagangledef + 90 dg /E@ANGLE ldiagangledef + 135 dg /NE@ANGLE ldiagangledef + 180 dg /N@ANGLE ldiagangledef + 225 dg /NW@ANGLE ldiagangledef + 270 dg /W@ANGLE ldiagangledef + 315 dg /SW@ANGLE ldiagangledef + + [ CTR NE ldiagpsub /ldiagboxcircum cvx ] ldiagcircumdef + SW SE NE NW SW +} def + +% shape and labels of the @CurveBox symbol +% ldiagcurvebox +/ldiagcurvebox +{ + + % (Entering ldiagcurvebox) 1 ldiagdebugprint + ldiagdecodelength /cbmgn exch def + + xsize 0.5 mul ysize 0.5 mul /CTR ldiagpointdef + xsize 0.5 mul 0 /S ldiagpointdef + xsize ysize 0.5 mul /E ldiagpointdef + xsize 0.5 mul ysize /N ldiagpointdef + 0 ysize 0.5 mul /W ldiagpointdef + + cbmgn 0.293 mul cbmgn 0.293 mul /SW ldiagpointdef + xsize cbmgn 0.293 mul sub cbmgn 0.293 mul /SE ldiagpointdef + xsize cbmgn 0.293 mul sub ysize cbmgn 0.293 mul sub /NE ldiagpointdef + cbmgn 0.293 mul ysize cbmgn 0.293 mul sub /NW ldiagpointdef + + 0 dg /S@ANGLE ldiagangledef + 45 dg /SE@ANGLE ldiagangledef + 90 dg /E@ANGLE ldiagangledef + 135 dg /NE@ANGLE ldiagangledef + 180 dg /N@ANGLE ldiagangledef + 225 dg /NW@ANGLE ldiagangledef + 270 dg /W@ANGLE ldiagangledef + 315 dg /SW@ANGLE ldiagangledef + + [ xsize ysize 0.5 ldiagpmul cbmgn /ldiagcurveboxcircum cvx ] ldiagcircumdef + + cbmgn 0 + xsize cbmgn sub 0 + [ xsize cbmgn sub cbmgn ] + xsize cbmgn + xsize ysize cbmgn sub + [ xsize cbmgn sub ysize cbmgn sub ] + xsize cbmgn sub ysize + cbmgn ysize + [ cbmgn ysize cbmgn sub ] + 0 ysize cbmgn sub + 0 cbmgn + [ cbmgn cbmgn ] + cbmgn 0 + + % (Leaving ldiagcurvebox) 0 ldiagdebugprint +} def + +% shadow of the @ShadowBox symbol +% its shape and labels are done, somewhat inaccurately, with ldiagbox +% ldiagshadow - +/ldiagshadow +{ + /lfshm exch def + + lfshm 0 moveto + 0 lfshm neg rlineto + xsize 0 rlineto + 0 ysize rlineto + lfshm neg 0 rlineto + xsize 0 lineto + closepath fill + +} def + +% shape and labels of the @Square symbol +/ldiagsquare +{ + xsize ysize 0.5 ldiagpmul /CTR ldiagpointdef + CTR xsize xsize ysize ysize ldiagpmax 0.5 ldiagpmul ldiagpadd /NE ldiagpointdef + CTR 0 0 CTR NE ldiagdistance 135 ldiagatangle ldiagpadd /NW ldiagpointdef + CTR 0 0 CTR NE ldiagdistance 225 ldiagatangle ldiagpadd /SW ldiagpointdef + CTR 0 0 CTR NE ldiagdistance 315 ldiagatangle ldiagpadd /SE ldiagpointdef + SW 0.5 ldiagpmul SE 0.5 ldiagpmul ldiagpadd /S ldiagpointdef + NW 0.5 ldiagpmul NE 0.5 ldiagpmul ldiagpadd /N ldiagpointdef + SW 0.5 ldiagpmul NW 0.5 ldiagpmul ldiagpadd /W ldiagpointdef + SE 0.5 ldiagpmul NE 0.5 ldiagpmul ldiagpadd /E ldiagpointdef + + 0 dg /S@ANGLE ldiagangledef + 45 dg /SE@ANGLE ldiagangledef + 90 dg /E@ANGLE ldiagangledef + 135 dg /NE@ANGLE ldiagangledef + 180 dg /N@ANGLE ldiagangledef + 225 dg /NW@ANGLE ldiagangledef + 270 dg /W@ANGLE ldiagangledef + 315 dg /SW@ANGLE ldiagangledef + + [ CTR NE ldiagpsub /ldiagboxcircum cvx ] ldiagcircumdef + SW SE NE NW SW +} def + +% shape and labels of the @Diamond symbol +/ldiagdiamond +{ + xsize 0 0.5 ldiagpmul /S ldiagpointdef + 0 ysize 0.5 ldiagpmul /W ldiagpointdef + S W ldiagpadd /CTR ldiagpointdef + CTR W ldiagpadd /N ldiagpointdef + CTR S ldiagpadd /E ldiagpointdef + E N ldiagpadd 0.5 ldiagpmul /NE ldiagpointdef + N W ldiagpadd 0.5 ldiagpmul /NW ldiagpointdef + S W ldiagpadd 0.5 ldiagpmul /SW ldiagpointdef + S E ldiagpadd 0.5 ldiagpmul /SE ldiagpointdef + + 0 dg /S@ANGLE ldiagangledef + 90 dg /E@ANGLE ldiagangledef + 180 dg /N@ANGLE ldiagangledef + 270 dg /W@ANGLE ldiagangledef + S E ldiagangleto /SE@ANGLE ldiagangledef + E N ldiagangleto /NE@ANGLE ldiagangledef + N W ldiagangleto /NW@ANGLE ldiagangledef + W S ldiagangleto /SW@ANGLE ldiagangledef + + [ xsize ysize 0.5 ldiagpmul /ldiagdiamondcircum cvx ] ldiagcircumdef + S E N W S +} def + +% shape and labels of the @Ellipse symbol +/ldiagellipse +{ + xsize 0 0.5 ldiagpmul /S ldiagpointdef + 0 ysize 0.5 ldiagpmul /W ldiagpointdef + S W ldiagpadd /CTR ldiagpointdef + CTR W ldiagpadd /N ldiagpointdef + CTR S ldiagpadd /E ldiagpointdef + CTR xsize 0 0.3536 ldiagpmul ldiagpadd 0 ysize 0.3536 ldiagpmul ldiagpadd /NE ldiagpointdef + 0 ysize 0.3536 ldiagpmul CTR xsize 0 0.3536 ldiagpmul ldiagpadd ldiagpsub /SE ldiagpointdef + xsize 0 0.3536 ldiagpmul CTR ldiagpsub 0 ysize 0.3536 ldiagpmul ldiagpadd /NW ldiagpointdef + 0 ysize 0.3536 ldiagpmul xsize 0 0.3536 ldiagpmul CTR ldiagpsub ldiagpsub /SW ldiagpointdef + [ xsize ysize 0.5 ldiagpmul /ldiagellipsecircum cvx ] ldiagcircumdef + + 0 dg /S@ANGLE ldiagangledef + 90 dg /E@ANGLE ldiagangledef + 180 dg /N@ANGLE ldiagangledef + 270 dg /W@ANGLE ldiagangledef + + S E ldiagangleto /SE@ANGLE ldiagangledef + E N ldiagangleto /NE@ANGLE ldiagangledef + N W ldiagangleto /NW@ANGLE ldiagangledef + W S ldiagangleto /SW@ANGLE ldiagangledef + + S [ CTR ] E [ CTR ] N [ CTR ] W [ CTR ] S +} def + +% shape and labels of the @Circle symbol +/ldiagcircle +{ + xsize ysize 0.5 ldiagpmul /CTR ldiagpointdef + CTR xsize 0 ysize 0 ldiagpmax 0.5 ldiagpmul ldiagpadd /E ldiagpointdef + CTR 0 0 CTR E ldiagdistance 45 ldiagatangle ldiagpadd /NE ldiagpointdef + CTR 0 0 CTR E ldiagdistance 90 ldiagatangle ldiagpadd /N ldiagpointdef + CTR 0 0 CTR E ldiagdistance 135 ldiagatangle ldiagpadd /NW ldiagpointdef + CTR 0 0 CTR E ldiagdistance 180 ldiagatangle ldiagpadd /W ldiagpointdef + CTR 0 0 CTR E ldiagdistance 225 ldiagatangle ldiagpadd /SW ldiagpointdef + CTR 0 0 CTR E ldiagdistance 270 ldiagatangle ldiagpadd /S ldiagpointdef + CTR 0 0 CTR E ldiagdistance 315 ldiagatangle ldiagpadd /SE ldiagpointdef + [ S E ldiagpsub /ldiagellipsecircum cvx ] ldiagcircumdef + + 0 dg /S@ANGLE ldiagangledef + 45 dg /SE@ANGLE ldiagangledef + 90 dg /E@ANGLE ldiagangledef + 135 dg /NE@ANGLE ldiagangledef + 180 dg /N@ANGLE ldiagangledef + 225 dg /NW@ANGLE ldiagangledef + 270 dg /W@ANGLE ldiagangledef + 315 dg /SW@ANGLE ldiagangledef + + S [ CTR ] E [ CTR ] N [ CTR ] W [ CTR ] S +} def + +% shape and labels of the @VLine and @VArrow symbols +/ldiagvline +{ + xmark ysize ldiagprevious /FROM ldiagpointdef + xmark 0 ldiagprevious /TO ldiagpointdef +} def + +% points of a polygon around base with given no of sides, vert init angle: +% ldiagpolygon ... +/ldiagpolygon +{ exch round cvi exch + xsize ysize 0.5 ldiagpmul /CTR ldiagpointdef + 90 sub CTR 2 copy ldiagmax 5 3 roll + [ 4 copy pop /ldiagpolycircum cvx ] ldiagcircumdef + exch dup 360 exch div exch + 1 1 3 2 roll + { 4 string cvs (P) exch ldiagconcat + 3 copy exch pop (@ANGLE) ldiagconcat cvn exch 90 add exch ldiagangledef + cvn 6 copy pop pop ldiagatangle 2 copy 10 2 roll + 3 2 roll ldiagpointdef + dup 3 1 roll add exch + } for + pop ldiagatangle +} def + +% shape and labels of the @Isosceles triangle symbol +/ldiagisosceles +{ + xsize ysize 0.5 ldiagpmul /CTR ldiagpointdef + 0 0 /SW ldiagpointdef + xsize 0 /SE ldiagpointdef + xsize 0.5 mul ysize /N ldiagpointdef + xsize 0.5 mul 0 /S ldiagpointdef + SE 0.5 ldiagpmul N 0.5 ldiagpmul ldiagpadd /NE ldiagpointdef + SW 0.5 ldiagpmul N 0.5 ldiagpmul ldiagpadd /NW ldiagpointdef + + [ xsize ysize /ldiagisoscelescircum cvx ] ldiagcircumdef + + 0 dg /SW@ANGLE ldiagangledef + 0 dg /SE@ANGLE ldiagangledef + 180 dg /N@ANGLE ldiagangledef + 0 dg /S@ANGLE ldiagangledef + SE N ldiagangleto /NE@ANGLE ldiagangledef + N SW ldiagangleto /NW@ANGLE ldiagangledef + + SW SE N SW +} def + +% next array element: ldiaggetnext true +% or false +/ldiaggetnext +{ 2 copy exch length ge + { false } + { 2 copy get exch 1 add exch true } ifelse +} def + +% check whether thing is number: ldiagisnumbertype +/ldiagisnumbertype +{ dup type dup + /integertype eq exch /realtype eq or +} def + +% check whether thing is an array: ldiagisarraytype +/ldiagisarraytype { dup type /arraytype eq } def + +% check whether thing is an array: ldiagisnametype +/ldiagisnametype { dup type /nametype eq } def + +% get next item: ldiaggetnextitem 0 +% or 1 +% or 2 +/ldiaggetnextitem +{ ldiaggetnext + { ldiagisarraytype + { 1 + } + { ldiagisnumbertype + { 3 1 roll + ldiaggetnext + { ldiagisnumbertype + { 4 3 roll exch 2 + } + { pop 3 2 roll pop 0 + } ifelse + } + { 3 2 roll pop 0 + } ifelse + } + { pop 0 + } ifelse + } ifelse + } + { 0 + } ifelse +} def + +% approximate equality: num1 num2 approxeq +/approxeq +{ dup 0 eq + { pop 0 eq + } + { dup 3 1 roll sub exch div abs 0.001 lt + } ifelse +} def + +% set arc path: bool x1 y1 x2 y2 x0 y0 ldiagsetarc +% the path goes from x1 y1 to x2 y2 about centre x0 y0, +% anticlockwise if bool is true else clockwise. +% The orientations of backwards pointing and forwards pointing +% arrowheads are returned in the two angles, and +% the length of the arc is returned in . +/ldiagsetarc +{ + % (Entering ldiagsetarc) 7 ldiagdebugprint + 20 dict begin + matrix currentmatrix 8 1 roll + 2 copy translate 2 copy 8 2 roll + 4 2 roll ldiagpsub 6 2 roll ldiagpsub + dup /y1 exch def dup mul /y1s exch def + dup /x1 exch def dup mul /x1s exch def + dup /y2 exch def dup mul /y2s exch def + dup /x2 exch def dup mul /x2s exch def + /dist1 0 0 x1 y1 ldiagdistance def + /dist2 0 0 x2 y2 ldiagdistance def + + y1s y2s approxeq + { -1 + } + { y1s x2s mul y2s x1s mul sub y1s y2s sub div + } ifelse + /da exch def + + x1s x2s approxeq + { -1 + } + { x1s y2s mul x2s y1s mul sub x1s x2s sub div + } ifelse + /db exch def + + da 0 gt db 0 gt and + { + % ( case 1, ellipse) 0 ldiagdebugprint + /LMax da sqrt db sqrt ldiagmax def + /scalex da sqrt LMax div def + /scaley db sqrt LMax div def + scalex scaley scale + 0 0 LMax + 0 0 x1 scalex mul y1 scaley mul ldiagangleto + 0 0 x2 scalex mul y2 scaley mul ldiagangleto + 2 copy eq { 360 add } if + 2 copy 8 2 roll + 5 index { arc } { arcn } ifelse + 2 index 1 index + { 90 sub } { 90 add } ifelse + dup sin scaley mul exch cos scalex mul atan + 2 index 2 index + { 90 add } { 90 sub } ifelse + dup sin scaley mul exch cos scalex mul atan + 5 2 roll % res1 res2 ang1 ang2 anticlockwise + { exch sub } { sub } ifelse + dup 0 le { 360 add } if ldiagpi mul LMax mul 180 div + } + { + dist1 dist2 approxeq + % x1 y1 dist1 ( x1 y1, d) 3 ldiagdebugprint pop pop pop + % x2 y2 dist2 ( x2 y2, d) 3 ldiagdebugprint pop pop pop + { + % ( case 2, circle) 0 ldiagdebugprint + 0 0 + dist1 + 0 0 x1 y1 ldiagangleto + 0 0 x2 y2 ldiagangleto + 2 copy eq { 360 add } if + 2 copy 8 2 roll + 5 index { arc } { arcn } ifelse + 2 index 1 index + { 90 sub } { 90 add } ifelse + 2 index 2 index + { 90 add } { 90 sub } ifelse + 5 2 roll % res1 res2 ang1 ang2 clockwise + { exch sub } { sub } ifelse + dup 0 le { 360 add } if + ldiagpi mul dist1 mul 180 div + } + { + % ( case 3, line) 0 ldiagdebugprint + x2 y2 lineto pop + x2 y2 x1 y1 ldiagangleto + x1 y1 x2 y2 ldiagangleto + x1 y1 x2 y2 ldiagdistance + } ifelse + } ifelse + 4 -1 roll setmatrix + end + % (Leaving ldiagsetarc) 3 ldiagdebugprint +} def + +% ldiagsetcurve: set up a Bezier curve from x0 y0 to x3 y3 +% and return arrowhead angles and length of curve (actually 0) +% x0 y0 x1 y1 x2 y2 x3 y3 ldiagsetcurve +/ldiagsetcurve +{ 8 copy curveto pop pop + ldiagangleto + 5 1 roll + 4 2 roll ldiagangleto + exch + 0 +} def + +% ldiagsetpath: convert a Diag path into a PostScript path +% [ shape ] ldiagsetpath +/ldiagsetpath +{ + 10 dict begin + 0 newpath + /prevseen false def + /curveseen false def + { ldiaggetnextitem + dup 0 eq { pop exit } + { 1 eq + { /curveseen true def + /curve exch def + curve length 0 eq { /curveseen false def } if + } + { /ycurr exch def + /xcurr exch def + prevseen + { curveseen + { curve length 4 eq + { xprev yprev + curve 0 get curve 1 get + curve 2 get curve 3 get + xcurr ycurr + ldiagsetcurve pop pop pop + } + { xprev yprev xcurr ycurr + curve length 1 ge { curve 0 get } { 0 } ifelse + curve length 2 ge { curve 1 get } { 0 } ifelse + curve length 3 ge { curve 2 get } { true } ifelse + 7 1 roll + ldiagsetarc pop pop pop + } ifelse + } + { xcurr ycurr lineto + } ifelse + } + { xcurr ycurr moveto + } ifelse + /xprev xcurr def + /yprev ycurr def + /prevseen true def + /curveseen false def + } ifelse + } ifelse + } loop pop pop + end +} def + +% ldiagpaintpath: paint a path of the given shape +% /paint [ shape ] ldiagpaintpath - +/ldiagpaintpath +{ + ldiagsetpath cvx exec +} def + +% stroke a path of the given shape in the given linestyle and dash length. +% Return the origin and angle of the backward and forward arrow heads. +% dashlength /linestyle [shape] ldiagdopath [ ] [ ] +/ldiagdopath +{ + 10 dict begin + 0 + /prevseen false def + /curveseen false def + /backarrow [] def + /fwdarrow [] def + { + ldiaggetnextitem + dup 0 eq { pop exit } + { + 1 eq + { /curveseen true def + /curve exch def + curve length 0 eq { /prevseen false def } if + } + { /ycurr exch def + /xcurr exch def + prevseen + { newpath xprev yprev moveto + curveseen + { curve length 4 eq + { xprev yprev + curve 0 get curve 1 get + curve 2 get curve 3 get + xcurr ycurr ldiagsetcurve + } + { xprev yprev xcurr ycurr + curve length 1 ge { curve 0 get } { 0 } ifelse + curve length 2 ge { curve 1 get } { 0 } ifelse + curve length 3 ge { curve 2 get } { true } ifelse + 7 1 roll + ldiagsetarc + } ifelse + } + { xcurr ycurr lineto + xcurr ycurr xprev yprev ldiagangleto dup 180 sub + xprev yprev xcurr ycurr ldiagdistance + } ifelse + 6 index 6 index cvx exec + [ xprev yprev 5 -1 roll ] + backarrow length 0 eq + { /backarrow exch def } + { pop } ifelse + [ xcurr ycurr 4 -1 roll ] /fwdarrow exch def + } if + /xprev xcurr def + /yprev ycurr def + /prevseen true def + /curveseen false def + } ifelse + } ifelse + } loop + pop pop pop pop + backarrow length 0 eq { [ 0 0 0 ] } { backarrow } ifelse + fwdarrow length 0 eq { [ 0 0 0 ] } { fwdarrow } ifelse + end +} def + + +% stroke a path of the given shape in the given linestyle and dash length. +% dashlength [ /linestyle ] [shape] ldiagdosegpath - +/ldiagdosegpath +{ + 12 dict begin + 1 index /seg exch def + 1 index length /seglength exch def + 0 /segcount exch def + 0 + /prevseen false def + /curveseen false def + /backarrow [] def + /fwdarrow [] def + { + ldiaggetnextitem + dup 0 eq { pop exit } + { + 1 eq + { /curveseen true def + /curve exch def + curve length 0 eq { /prevseen false def } if + } + { /ycurr exch def + /xcurr exch def + prevseen + { newpath xprev yprev moveto + curveseen + { curve length 4 eq + { xprev yprev + curve 0 get curve 1 get + curve 2 get curve 3 get + xcurr ycurr ldiagsetcurve + } + { xprev yprev xcurr ycurr + curve length 1 ge { curve 0 get } { 0 } ifelse + curve length 2 ge { curve 1 get } { 0 } ifelse + curve length 3 ge { curve 2 get } { true } ifelse + 7 1 roll + ldiagsetarc + } ifelse + } + { xcurr ycurr lineto + xcurr ycurr xprev yprev ldiagangleto dup 180 sub + xprev yprev xcurr ycurr ldiagdistance + } ifelse + 6 index seg segcount seglength mod get cvx exec + /segcount segcount 1 add def + [ xprev yprev 5 -1 roll ] + backarrow length 0 eq + { /backarrow exch def } + { pop } ifelse + [ xcurr ycurr 4 -1 roll ] /fwdarrow exch def + } if + /xprev xcurr def + /yprev ycurr def + /prevseen true def + /curveseen false def + } ifelse + } ifelse + } loop + pop pop pop pop + end +} def + +% ldiagnodebegin: start of node parameters +% ldiagnodebegin - +/ldiagnodebegin +{ % (Entering ldiagnodebegin) 0 ldiagdebugprint + ldiagmaxlabels dict begin +} def + +% ldiagnodeend: end of node parameters (so do the node) +%