From c34b2895b27bef8a317e693b0e2b8106fd6348da Mon Sep 17 00:00:00 2001 From: Peter Breitenlohner Date: Wed, 15 Aug 2012 12:02:33 +0000 Subject: lcdf-typetools: More bug fixes, backport from upstream, add test cases git-svn-id: svn://tug.org/texlive/trunk@27412 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/lcdf-typetools/Makefile.am | 17 + Build/source/texk/lcdf-typetools/Makefile.in | 145 +++- .../lcdf-typetools-2.94-PATCHES/ChangeLog | 14 + .../lcdf-typetools-2.94-PATCHES/patch-02-WIN32 | 95 +-- .../lcdf-typetools-2.94-PATCHES/patch-03-manpage | 17 +- .../lcdf-typetools-2.94-PATCHES/patch-04-PFB_OPT | 24 + .../lcdf-typetools-2.94-PATCHES/patch-05-backport | 14 + .../lcdf-typetools-2.94-PATCHES/patch-20-TL-binary | 10 +- Build/source/texk/lcdf-typetools/otftotfm/util.cc | 60 +- .../texk/lcdf-typetools/t1dotlessj/t1dotlessj.cc | 2 +- .../source/texk/lcdf-typetools/t1rawafm/t1rawafm.1 | 5 +- .../texk/lcdf-typetools/t1rawafm/t1rawafm.cc | 4 +- .../texk/lcdf-typetools/t1reencode/t1reencode.cc | 2 +- Build/source/texk/lcdf-typetools/tests/Fon.post | Bin 0 -> 32 bytes Build/source/texk/lcdf-typetools/tests/Fon.t42 | 290 +++++++ .../tests/FonetikaDaniaIwonaeBold.ttf | Bin 0 -> 7376 bytes Build/source/texk/lcdf-typetools/tests/t1.test | 58 ++ Build/source/texk/lcdf-typetools/tests/t2c.enc | 290 +++++++ .../source/texk/lcdf-typetools/tests/texmfhome.otf | Bin 0 -> 1884 bytes Build/source/texk/lcdf-typetools/tests/tmf.info | 8 + Build/source/texk/lcdf-typetools/tests/tmf.pfa | 195 +++++ Build/source/texk/lcdf-typetools/tests/tmf.pfb | Bin 0 -> 7589 bytes Build/source/texk/lcdf-typetools/tests/tmf.tables | 10 + Build/source/texk/lcdf-typetools/tests/ttf.test | 48 ++ Build/source/texk/lcdf-typetools/tests/uhv_dl.pfa | 190 +++++ Build/source/texk/lcdf-typetools/tests/uhv_dl.pfb | Bin 0 -> 7444 bytes Build/source/texk/lcdf-typetools/tests/uhv_dl.ps | 218 +++++ Build/source/texk/lcdf-typetools/tests/uhv_re.afm | 254 ++++++ Build/source/texk/lcdf-typetools/tests/uhv_re.pfa | 901 +++++++++++++++++++++ .../source/texk/lcdf-typetools/tests/uhvrrc8a.pfb | Bin 0 -> 27330 bytes 30 files changed, 2745 insertions(+), 126 deletions(-) create mode 100644 Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/patch-04-PFB_OPT create mode 100644 Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/patch-05-backport create mode 100644 Build/source/texk/lcdf-typetools/tests/Fon.post create mode 100644 Build/source/texk/lcdf-typetools/tests/Fon.t42 create mode 100644 Build/source/texk/lcdf-typetools/tests/FonetikaDaniaIwonaeBold.ttf create mode 100755 Build/source/texk/lcdf-typetools/tests/t1.test create mode 100644 Build/source/texk/lcdf-typetools/tests/t2c.enc create mode 100644 Build/source/texk/lcdf-typetools/tests/texmfhome.otf create mode 100644 Build/source/texk/lcdf-typetools/tests/tmf.info create mode 100644 Build/source/texk/lcdf-typetools/tests/tmf.pfa create mode 100644 Build/source/texk/lcdf-typetools/tests/tmf.pfb create mode 100644 Build/source/texk/lcdf-typetools/tests/tmf.tables create mode 100755 Build/source/texk/lcdf-typetools/tests/ttf.test create mode 100644 Build/source/texk/lcdf-typetools/tests/uhv_dl.pfa create mode 100644 Build/source/texk/lcdf-typetools/tests/uhv_dl.pfb create mode 100644 Build/source/texk/lcdf-typetools/tests/uhv_dl.ps create mode 100644 Build/source/texk/lcdf-typetools/tests/uhv_re.afm create mode 100644 Build/source/texk/lcdf-typetools/tests/uhv_re.pfa create mode 100644 Build/source/texk/lcdf-typetools/tests/uhvrrc8a.pfb (limited to 'Build/source/texk') diff --git a/Build/source/texk/lcdf-typetools/Makefile.am b/Build/source/texk/lcdf-typetools/Makefile.am index 89ea98c115e..ac0e0be7af3 100644 --- a/Build/source/texk/lcdf-typetools/Makefile.am +++ b/Build/source/texk/lcdf-typetools/Makefile.am @@ -108,3 +108,20 @@ EXTRA_DIST += lcdf-typetools-$(LCDF_TYPETOOLS_VERSION)-PATCHES ## Original files from lcdf-typetools distribution ## EXTRA_DIST += Makefile.am.orig configure.ac.orig + +## Tests +## +TESTS = tests/t1.test tests/ttf.test +EXTRA_DIST += $(TESTS) + +## tests/t1.test +EXTRA_DIST += tests/t2c.enc tests/uhvrrc8a.pfb \ + tests/uhv_dl.pfa tests/uhv_dl.pfb tests/uhv_dl.ps \ + tests/uhv_re.afm tests/uhv_re.pfa +DISTCLEANFILES += uhv* +## tests/ttf.test +EXTRA_DIST += tests/FonetikaDaniaIwonaeBold.ttf tests/texmfhome.otf \ + tests/Fon.post tests/Fon.t42 \ + tests/tmf.info tests/tmf.pfa tests/tmf.pfb tests/tmf.tables +DISTCLEANFILES += Fon* tmf.* + diff --git a/Build/source/texk/lcdf-typetools/Makefile.in b/Build/source/texk/lcdf-typetools/Makefile.in index 81887307930..cc4269920fa 100644 --- a/Build/source/texk/lcdf-typetools/Makefile.in +++ b/Build/source/texk/lcdf-typetools/Makefile.in @@ -135,6 +135,10 @@ AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ ETAGS = etags CTAGS = ctags CSCOPE = cscope +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = $(am__tty_colors_dummy) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -310,7 +314,7 @@ ACLOCAL_AMFLAGS = -I ../../m4 -I m4 AM_DISTCHECK_CONFIGURE_FLAGS = --without-kpathsea SUBDIRS = . liblcdf libefont @SELECTED_SUBDIRS@ DIST_SUBDIRS = liblcdf libefont cfftot1 mmafm mmpfb otfinfo otftotfm t1dotlessj t1lint t1rawafm t1reencode t1testpage ttftotype42 -DISTCLEANFILES = config.force CXXLD.sh +DISTCLEANFILES = config.force CXXLD.sh uhv* Fon* tmf.* @texlive_build_FALSE@glyphlistdir = $(pkgdatadir) @texlive_build_TRUE@glyphlistdir = $(datarootdir)/texmf-dist/fonts/map/glyphlist @texlive_build_FALSE@encdir = $(pkgdatadir) @@ -345,7 +349,13 @@ EXTRA_DIST = ONEWS lcdf-typetools.spec include/config.h \ include/efont/ttfhead.hh include/efont/ttfkern.hh \ glyphlist.txt texglyphlist.txt texglyphlist-g2u.txt 7t.enc \ lcdf-typetools-$(LCDF_TYPETOOLS_VERSION)-PATCHES \ - Makefile.am.orig configure.ac.orig + Makefile.am.orig configure.ac.orig $(TESTS) tests/t2c.enc \ + tests/uhvrrc8a.pfb tests/uhv_dl.pfa tests/uhv_dl.pfb \ + tests/uhv_dl.ps tests/uhv_re.afm tests/uhv_re.pfa \ + tests/FonetikaDaniaIwonaeBold.ttf tests/texmfhome.otf \ + tests/Fon.post tests/Fon.t42 tests/tmf.info tests/tmf.pfa \ + tests/tmf.pfb tests/tmf.tables +TESTS = tests/t1.test tests/ttf.test all: autoconf.h $(MAKE) $(AM_MAKEFLAGS) all-recursive @@ -587,6 +597,99 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst $(AM_TESTS_FD_REDIRECT); then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + distdir: $(DISTFILES) @case `sed 15q $(srcdir)/NEWS` in \ *"$(VERSION)"*) : ;; \ @@ -778,6 +881,7 @@ distcleancheck: distclean $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-recursive all-am: Makefile $(DATA) autoconf.h all-local installdirs: installdirs-recursive @@ -886,28 +990,29 @@ ps-am: uninstall-am: uninstall-encDATA uninstall-glyphlistDATA -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check-am \ cscopelist-recursive ctags-recursive install-am install-strip \ tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am all-local am--refresh check check-am clean \ - clean-cscope clean-generic clean-libtool cscope cscopelist \ - cscopelist-recursive ctags ctags-recursive dist dist-all \ - dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar dist-tarZ \ - dist-xz dist-zip distcheck distclean distclean-generic \ - distclean-hdr distclean-libtool distclean-tags distcleancheck \ - distdir distuninstallcheck dvi dvi-am html html-am info \ - info-am install install-am install-data install-data-am \ - install-dvi install-dvi-am install-encDATA install-exec \ - install-exec-am install-glyphlistDATA install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am tags tags-recursive uninstall uninstall-am \ - uninstall-encDATA uninstall-glyphlistDATA + all all-am all-local am--refresh check check-TESTS check-am \ + clean clean-cscope clean-generic clean-libtool cscope \ + cscopelist cscopelist-recursive ctags ctags-recursive dist \ + dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \ + dist-tarZ dist-xz dist-zip distcheck distclean \ + distclean-generic distclean-hdr distclean-libtool \ + distclean-tags distcleancheck distdir distuninstallcheck dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-encDATA install-exec install-exec-am \ + install-glyphlistDATA install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-recursive uninstall uninstall-am uninstall-encDATA \ + uninstall-glyphlistDATA all-local: config.force diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/ChangeLog b/Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/ChangeLog index e0aa57e6b2a..270ff3eeda8 100644 --- a/Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/ChangeLog +++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/ChangeLog @@ -1,6 +1,20 @@ +2012-08-15 Peter Breitenlohner + + * patch-02-WIN32: Adapted from upstream. + * patch-05-backport (new): From upstream. + + * tests/t1.test tests/ttf.test: New shell scripts for tests. + * tests/t2c.enc, tests/uhvrrc8a.pfb, tests/uhv_dl.{pfa,pfb,ps}, + tests/uhv_re.{afm,pfa}: T1 test input and expected output. + * tests/FonetikaDaniaIwonaeBold.ttf, tests/texmfhome.otf, + tests/Fon.{post,t42}, tests/tmf.{info,pfa,pfb,tables}: + Ttf test input and expected output. + * Makefile.am: Add the tests and their data. + 2012-08-14 Peter Breitenlohner * patch-03-manpage (new): Fix manpages. + * patch-04-PFB_OPT (new): Correctly handle '-b' option. 2012-08-13 Peter Breitenlohner diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/patch-02-WIN32 b/Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/patch-02-WIN32 index 9f50b9d2da0..26f2036a494 100644 --- a/Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/patch-02-WIN32 +++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/patch-02-WIN32 @@ -74,64 +74,59 @@ diff -ur -x Makefile.in -x aclocal.m4 -x autoconf.h.in -x configure lcdf-typetoo diff -ur -x Makefile.in -x aclocal.m4 -x autoconf.h.in -x configure lcdf-typetools-2.94.orig/otftotfm/util.cc lcdf-typetools-2.94/otftotfm/util.cc --- lcdf-typetools-2.94.orig/otftotfm/util.cc 2011-11-03 17:51:58.000000000 +0100 +++ lcdf-typetools-2.94/otftotfm/util.cc 2012-08-11 17:42:50.000000000 +0200 -@@ -103,14 +103,29 @@ +@@ -103,15 +103,34 @@ same_filename(const String &a, const String &b) String shell_quote(const String &str) { -+ const char *begin = str.begin(); -+ const char *end = str.end(); - #if defined(_MSDOS) || defined(_WIN32) +-#if defined(_MSDOS) || defined(_WIN32) - return str; // XXX -+ if (!str) +-#else + if (!str) +- return String::make_stable("''"); + return String::make_stable("\"\""); + + const char *begin = str.begin(); + const char *end = str.end(); + StringAccum sa; + -+ for (const char *s = begin; s < end; s++) -+ if (isalnum((unsigned char) *s) || *s == '_' || *s == '-' || *s == '+' || *s == '/' || *s == ':' || *s == '.') -+ /* do nothing */; -+ else { -+ StringAccum sa; ++#if defined(_MSDOS) || defined(_WIN32) ++ sa.append('\"'); + -+ sa.append('"'); -+ sa.append(begin, end); -+ sa.append('"'); -+ return sa.take_string(); ++ for (const char *s = begin; s < end; ++s) ++ if (isalnum((unsigned char) *s) || *s == '_' || *s == '-' || *s == '+' || *s == '\\' || *s == ':' || *s == '.') ++ /* do nothing */; ++ else if (*s == '\"') { ++ sa.append(begin, s); ++ sa.append("\"\"\"", 3); ++ begin = s + 1; ++ } else { ++ sa.append(begin, s + 1); ++ begin = s + 1; + } + -+ return str; - #else - if (!str) - return String::make_stable("''"); - -- const char *begin = str.begin(); -- const char *end = str.end(); - StringAccum sa; ++ if (sa.length() > 1) { ++ sa.append(begin, end); ++ sa.append('\"'); ++ return sa.take_string(); ++ } ++#else for (const char *s = begin; s < end; s++) if (isalnum((unsigned char) *s) || *s == '_' || *s == '-' || *s == '+' || *s == '/' || *s == ':' || *s == '.') -@@ -165,9 +180,27 @@ - errh->error("temporary file %<%s%>: %s", filename.c_str(), strerror(errno)); - return fd; - #else // !HAVE_MKSTEMP -+#if defined(WIN32) -+ char *tmpdir = getenv("TEMP"); -+ if (!tmpdir) -+ tmpdir = getenv("TMP"); -+ if (!tmpdir) -+ tmpdir = getenv("TMPDIR"); -+ if (tmpdir) { -+ int len; -+ tmpdir = strdup(tmpdir); -+ len = strlen(tmpdir); -+ if(tmpdir[len-1] == '/' || tmpdir[len-1] == '\\') tmpdir[len-1] = '\0'; -+ } else -+ tmpdir = strdup("."); -+ for (int tries = 0; tries < 5; tries++) { -+ if (!(filename = tempnam(tmpdir, "otf."))) -+ return errh->error("cannot create temporary file"); -+#else - for (int tries = 0; tries < 5; tries++) { - if (!(filename = tmpnam(0))) - return errh->error("cannot create temporary file"); -+#endif - # ifdef O_EXCL - int fd = ::open(filename.c_str(), O_RDWR | O_CREAT | O_EXCL | O_TRUNC, 0600); - # else + /* do nothing */; +@@ -121,13 +140,13 @@ shell_quote(const String &str) + begin = s; + } + +- if (!sa) +- return str; +- else { ++ if (sa.length()) { + sa.append(begin, end); + return sa.take_string(); + } + #endif ++ ++ return str; + } + + int diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/patch-03-manpage b/Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/patch-03-manpage index 4b689c3cf14..a7826be9d09 100644 --- a/Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/patch-03-manpage +++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/patch-03-manpage @@ -12,12 +12,17 @@ diff -ur -x Makefile.in -x aclocal.m4 -x autoconf.h.in -x configure lcdf-typetoo .PD diff -ur -x Makefile.in -x aclocal.m4 -x autoconf.h.in -x configure lcdf-typetools-2.94.orig/t1rawafm/t1rawafm.1 lcdf-typetools-2.94/t1rawafm/t1rawafm.1 --- lcdf-typetools-2.94.orig/t1rawafm/t1rawafm.1 2012-08-03 18:19:11.000000000 +0200 -+++ lcdf-typetools-2.94/t1rawafm/t1rawafm.1 2012-08-14 15:33:05.000000000 +0200 -@@ -11,7 +11,6 @@ ++++ lcdf-typetools-2.94/t1rawafm/t1rawafm.1 2012-08-14 20:53:34.000000000 +0200 +@@ -10,11 +10,7 @@ + .SH NAME t1rawafm \- produce raw AFM metrics from a PostScript Type 1 font .SH SYNOPSIS - .B t1rawafm +-.B t1rawafm -\%\-e ENCODING - \%[OPTIONS...] - .I font - .RI [ outputfile ] +-\%[OPTIONS...] +-.I font +-.RI [ outputfile ] ++\fBt1rawafm\fR \%[OPTIONS...] \fIfont\fR + .SH DESCRIPTION + .BR T1rawafm + generates an AFM file with the information available in a PostScript diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/patch-04-PFB_OPT b/Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/patch-04-PFB_OPT new file mode 100644 index 00000000000..3e14503139e --- /dev/null +++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/patch-04-PFB_OPT @@ -0,0 +1,24 @@ +diff -ur -x Makefile.in -x aclocal.m4 -x autoconf.h.in -x configure lcdf-typetools-2.94.orig/t1dotlessj/t1dotlessj.cc lcdf-typetools-2.94/t1dotlessj/t1dotlessj.cc +--- lcdf-typetools-2.94.orig/t1dotlessj/t1dotlessj.cc 2011-11-03 17:51:58.000000000 +0100 ++++ lcdf-typetools-2.94/t1dotlessj/t1dotlessj.cc 2012-08-13 13:25:10.000000000 +0200 +@@ -56,7 +56,7 @@ + { "name", 'n', NAME_OPT, Clp_ValString, 0 }, + { "output", 'o', OUTPUT_OPT, Clp_ValString, 0 }, + { "pfa", 'a', PFA_OPT, 0, 0 }, +- { "pfb", 'b', PFA_OPT, 0, 0 }, ++ { "pfb", 'b', PFB_OPT, 0, 0 }, + { "quiet", 'q', QUIET_OPT, 0, Clp_Negate }, + { "version", 0, VERSION_OPT, 0, 0 }, + }; +diff -ur -x Makefile.in -x aclocal.m4 -x autoconf.h.in -x configure lcdf-typetools-2.94.orig/t1reencode/t1reencode.cc lcdf-typetools-2.94/t1reencode/t1reencode.cc +--- lcdf-typetools-2.94.orig/t1reencode/t1reencode.cc 2011-11-03 17:51:58.000000000 +0100 ++++ lcdf-typetools-2.94/t1reencode/t1reencode.cc 2012-08-11 15:58:50.000000000 +0200 +@@ -48,7 +48,7 @@ + { "help", 'h', HELP_OPT, 0, 0 }, + { "output", 'o', OUTPUT_OPT, Clp_ValString, 0 }, + { "pfa", 'a', PFA_OPT, 0, 0 }, +- { "pfb", 'b', PFA_OPT, 0, 0 }, ++ { "pfb", 'b', PFB_OPT, 0, 0 }, + { "name", 'n', FONTNAME_OPT, Clp_ValString, 0 }, + { "fullname", 'N', FULLNAME_OPT, Clp_ValString, 0 }, + { "full-name", 'N', FULLNAME_OPT, Clp_ValString, 0 }, diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/patch-05-backport b/Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/patch-05-backport new file mode 100644 index 00000000000..1dc59f07e87 --- /dev/null +++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/patch-05-backport @@ -0,0 +1,14 @@ +diff -ur -x Makefile.in -x aclocal.m4 -x autoconf.h.in -x configure lcdf-typetools-2.94.orig/t1rawafm/t1rawafm.cc lcdf-typetools-2.94/t1rawafm/t1rawafm.cc +--- lcdf-typetools-2.94.orig/t1rawafm/t1rawafm.cc 2011-11-03 17:51:58.000000000 +0100 ++++ lcdf-typetools-2.94/t1rawafm/t1rawafm.cc 2012-08-15 12:09:30.000000000 +0200 +@@ -81,8 +81,8 @@ + \n\ + Usage: %s [OPTION]... [FONT]\n\ + \n\ +-FONT is the name of a PFA or PFB font file. If omitted, t1testpage will read\n\ +-a font file from the standard input.\n\ ++FONT is the name of a PFA or PFB font file. If omitted, t1rawafm will read a\n\ ++font file from the standard input.\n\ + \n\ + Options:\n\ + -o, --output=FILE Write output to FILE instead of standard out.\n\ diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/patch-20-TL-binary b/Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/patch-20-TL-binary index 078a4d801d6..a3d41be4b91 100644 --- a/Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/patch-20-TL-binary +++ b/Build/source/texk/lcdf-typetools/lcdf-typetools-2.94-PATCHES/patch-20-TL-binary @@ -53,8 +53,8 @@ diff -ur -x Makefile.in -x aclocal.m4 -x autoconf.h.in -x configure lcdf-typetoo } diff -ur -x Makefile.in -x aclocal.m4 -x autoconf.h.in -x configure lcdf-typetools-2.94.orig/t1dotlessj/t1dotlessj.cc lcdf-typetools-2.94/t1dotlessj/t1dotlessj.cc ---- lcdf-typetools-2.94.orig/t1dotlessj/t1dotlessj.cc 2011-11-03 17:51:58.000000000 +0100 -+++ lcdf-typetools-2.94/t1dotlessj/t1dotlessj.cc 2012-08-13 13:25:10.000000000 +0200 +--- lcdf-typetools-2.94.orig/t1dotlessj/t1dotlessj.cc 2012-08-13 13:25:10.000000000 +0200 ++++ lcdf-typetools-2.94/t1dotlessj/t1dotlessj.cc 2012-08-14 21:51:20.000000000 +0200 @@ -403,10 +403,10 @@ // write it to output if (!outputf) @@ -69,7 +69,7 @@ diff -ur -x Makefile.in -x aclocal.m4 -x autoconf.h.in -x configure lcdf-typetoo dotless_font->write(w); } else { diff -ur -x Makefile.in -x aclocal.m4 -x autoconf.h.in -x configure lcdf-typetools-2.94.orig/t1rawafm/t1rawafm.cc lcdf-typetools-2.94/t1rawafm/t1rawafm.cc ---- lcdf-typetools-2.94.orig/t1rawafm/t1rawafm.cc 2011-11-03 17:51:58.000000000 +0100 +--- lcdf-typetools-2.94.orig/t1rawafm/t1rawafm.cc 2012-08-15 12:09:30.000000000 +0200 +++ lcdf-typetools-2.94/t1rawafm/t1rawafm.cc 2012-08-11 16:01:57.000000000 +0200 @@ -350,6 +350,9 @@ if (!outf) @@ -82,8 +82,8 @@ diff -ur -x Makefile.in -x aclocal.m4 -x autoconf.h.in -x configure lcdf-typetoo write_afm(outf, font); diff -ur -x Makefile.in -x aclocal.m4 -x autoconf.h.in -x configure lcdf-typetools-2.94.orig/t1reencode/t1reencode.cc lcdf-typetools-2.94/t1reencode/t1reencode.cc ---- lcdf-typetools-2.94.orig/t1reencode/t1reencode.cc 2011-11-03 17:51:58.000000000 +0100 -+++ lcdf-typetools-2.94/t1reencode/t1reencode.cc 2012-08-11 15:58:50.000000000 +0200 +--- lcdf-typetools-2.94.orig/t1reencode/t1reencode.cc 2012-08-11 15:58:50.000000000 +0200 ++++ lcdf-typetools-2.94/t1reencode/t1reencode.cc 2012-08-14 21:54:34.000000000 +0200 @@ -1094,10 +1094,10 @@ if (!outf) errh->fatal("%s: %s", output_file, strerror(errno)); diff --git a/Build/source/texk/lcdf-typetools/otftotfm/util.cc b/Build/source/texk/lcdf-typetools/otftotfm/util.cc index e60953446fd..dc2024f6c50 100644 --- a/Build/source/texk/lcdf-typetools/otftotfm/util.cc +++ b/Build/source/texk/lcdf-typetools/otftotfm/util.cc @@ -103,30 +103,34 @@ same_filename(const String &a, const String &b) String shell_quote(const String &str) { + if (!str) + return String::make_stable("\"\""); + const char *begin = str.begin(); const char *end = str.end(); + StringAccum sa; + #if defined(_MSDOS) || defined(_WIN32) - if (!str) - return String::make_stable("\"\""); + sa.append('\"'); - for (const char *s = begin; s < end; s++) - if (isalnum((unsigned char) *s) || *s == '_' || *s == '-' || *s == '+' || *s == '/' || *s == ':' || *s == '.') + for (const char *s = begin; s < end; ++s) + if (isalnum((unsigned char) *s) || *s == '_' || *s == '-' || *s == '+' || *s == '\\' || *s == ':' || *s == '.') /* do nothing */; - else { - StringAccum sa; - - sa.append('"'); - sa.append(begin, end); - sa.append('"'); - return sa.take_string(); + else if (*s == '\"') { + sa.append(begin, s); + sa.append("\"\"\"", 3); + begin = s + 1; + } else { + sa.append(begin, s + 1); + begin = s + 1; } - return str; + if (sa.length() > 1) { + sa.append(begin, end); + sa.append('\"'); + return sa.take_string(); + } #else - if (!str) - return String::make_stable("''"); - - StringAccum sa; for (const char *s = begin; s < end; s++) if (isalnum((unsigned char) *s) || *s == '_' || *s == '-' || *s == '+' || *s == '/' || *s == ':' || *s == '.') /* do nothing */; @@ -136,13 +140,13 @@ shell_quote(const String &str) begin = s; } - if (!sa) - return str; - else { + if (sa.length()) { sa.append(begin, end); return sa.take_string(); } #endif + + return str; } int @@ -180,27 +184,9 @@ temporary_file(String &filename, ErrorHandler *errh) errh->error("temporary file %<%s%>: %s", filename.c_str(), strerror(errno)); return fd; #else // !HAVE_MKSTEMP -#if defined(WIN32) - char *tmpdir = getenv("TEMP"); - if (!tmpdir) - tmpdir = getenv("TMP"); - if (!tmpdir) - tmpdir = getenv("TMPDIR"); - if (tmpdir) { - int len; - tmpdir = strdup(tmpdir); - len = strlen(tmpdir); - if(tmpdir[len-1] == '/' || tmpdir[len-1] == '\\') tmpdir[len-1] = '\0'; - } else - tmpdir = strdup("."); - for (int tries = 0; tries < 5; tries++) { - if (!(filename = tempnam(tmpdir, "otf."))) - return errh->error("cannot create temporary file"); -#else for (int tries = 0; tries < 5; tries++) { if (!(filename = tmpnam(0))) return errh->error("cannot create temporary file"); -#endif # ifdef O_EXCL int fd = ::open(filename.c_str(), O_RDWR | O_CREAT | O_EXCL | O_TRUNC, 0600); # else diff --git a/Build/source/texk/lcdf-typetools/t1dotlessj/t1dotlessj.cc b/Build/source/texk/lcdf-typetools/t1dotlessj/t1dotlessj.cc index 67c752b70cc..71956c9200d 100644 --- a/Build/source/texk/lcdf-typetools/t1dotlessj/t1dotlessj.cc +++ b/Build/source/texk/lcdf-typetools/t1dotlessj/t1dotlessj.cc @@ -56,7 +56,7 @@ const Clp_Option options[] = { { "name", 'n', NAME_OPT, Clp_ValString, 0 }, { "output", 'o', OUTPUT_OPT, Clp_ValString, 0 }, { "pfa", 'a', PFA_OPT, 0, 0 }, - { "pfb", 'b', PFA_OPT, 0, 0 }, + { "pfb", 'b', PFB_OPT, 0, 0 }, { "quiet", 'q', QUIET_OPT, 0, Clp_Negate }, { "version", 0, VERSION_OPT, 0, 0 }, }; diff --git a/Build/source/texk/lcdf-typetools/t1rawafm/t1rawafm.1 b/Build/source/texk/lcdf-typetools/t1rawafm/t1rawafm.1 index 98851636842..8f084dba9d0 100644 --- a/Build/source/texk/lcdf-typetools/t1rawafm/t1rawafm.1 +++ b/Build/source/texk/lcdf-typetools/t1rawafm/t1rawafm.1 @@ -10,10 +10,7 @@ .SH NAME t1rawafm \- produce raw AFM metrics from a PostScript Type 1 font .SH SYNOPSIS -.B t1rawafm -\%[OPTIONS...] -.I font -.RI [ outputfile ] +\fBt1rawafm\fR \%[OPTIONS...] \fIfont\fR .SH DESCRIPTION .BR T1rawafm generates an AFM file with the information available in a PostScript diff --git a/Build/source/texk/lcdf-typetools/t1rawafm/t1rawafm.cc b/Build/source/texk/lcdf-typetools/t1rawafm/t1rawafm.cc index 22246daca99..d44ed7835f6 100644 --- a/Build/source/texk/lcdf-typetools/t1rawafm/t1rawafm.cc +++ b/Build/source/texk/lcdf-typetools/t1rawafm/t1rawafm.cc @@ -81,8 +81,8 @@ to the specified Type 1 font file and writes it to the standard output.\n\ \n\ Usage: %s [OPTION]... [FONT]\n\ \n\ -FONT is the name of a PFA or PFB font file. If omitted, t1testpage will read\n\ -a font file from the standard input.\n\ +FONT is the name of a PFA or PFB font file. If omitted, t1rawafm will read a\n\ +font file from the standard input.\n\ \n\ Options:\n\ -o, --output=FILE Write output to FILE instead of standard out.\n\ diff --git a/Build/source/texk/lcdf-typetools/t1reencode/t1reencode.cc b/Build/source/texk/lcdf-typetools/t1reencode/t1reencode.cc index 5885917d21c..acfecd7a22f 100644 --- a/Build/source/texk/lcdf-typetools/t1reencode/t1reencode.cc +++ b/Build/source/texk/lcdf-typetools/t1reencode/t1reencode.cc @@ -48,7 +48,7 @@ const Clp_Option options[] = { { "help", 'h', HELP_OPT, 0, 0 }, { "output", 'o', OUTPUT_OPT, Clp_ValString, 0 }, { "pfa", 'a', PFA_OPT, 0, 0 }, - { "pfb", 'b', PFA_OPT, 0, 0 }, + { "pfb", 'b', PFB_OPT, 0, 0 }, { "name", 'n', FONTNAME_OPT, Clp_ValString, 0 }, { "fullname", 'N', FULLNAME_OPT, Clp_ValString, 0 }, { "full-name", 'N', FULLNAME_OPT, Clp_ValString, 0 }, diff --git a/Build/source/texk/lcdf-typetools/tests/Fon.post b/Build/source/texk/lcdf-typetools/tests/Fon.post new file mode 100644 index 00000000000..4a35ff18086 Binary files /dev/null and b/Build/source/texk/lcdf-typetools/tests/Fon.post differ diff --git a/Build/source/texk/lcdf-typetools/tests/Fon.t42 b/Build/source/texk/lcdf-typetools/tests/Fon.t42 new file mode 100644 index 00000000000..67f897d09b8 --- /dev/null +++ b/Build/source/texk/lcdf-typetools/tests/Fon.t42 @@ -0,0 +1,290 @@ +%!PS-TrueTypeFont-65536-65536-1 +%%VMusage: 0 0 +11 dict begin +/FontName /FonetikaDaniaIwonaeBold def +/FontType 42 def +/FontMatrix [1 0 0 1 0 0] def +/FontBBox [-0.055 -0.25 0.736 0.75] readonly def +/PaintType 0 def +/XUID [42 16#A2A74B 16#88F845 16#BE52B5 16#487F27 16#DBDB70 16#2] def +/FontInfo 10 dict dup begin +/version (Version 001.000 ) readonly def +/Copyright (Created by Palle J\303\270rgensen, with FontForge 1.0 \(http://fontforge.sf.net\) +The License is GUST Font Nosource License. ) readonly def +/FullName (Fonitika Dania Iwonae Bold) readonly def +/FamilyName (FonetikaDaniaIwonae) readonly def +/Weight (Bold) readonly def +/isFixedPitch false def +/ItalicAngle 0 def +/UnderlinePosition -0.125 def +/UnderlineThickness 0.05 def +end readonly def +/Encoding 256 array +0 1 255{1 index exch/.notdef put}for +dup 44 /comma put +dup 46 /period put +dup 48 /zero put +dup 65 /A put +dup 66 /B put +dup 67 /C put +dup 68 /D put +dup 69 /E put +dup 73 /I put +dup 78 /N put +dup 82 /R put +dup 83 /S put +dup 91 /bracketleft put +dup 93 /bracketright put +dup 97 /a put +dup 98 /b put +dup 99 /c put +dup 100 /d put +dup 101 /e put +dup 102 /f put +dup 103 /g put +dup 104 /h put +dup 105 /i put +dup 106 /j put +dup 107 /k put +dup 108 /l put +dup 109 /m put +dup 110 /n put +dup 111 /o put +dup 112 /p put +dup 114 /r put +dup 115 /s put +dup 116 /t put +dup 117 /u put +dup 118 /v put +dup 119 /w put +dup 121 /y put +dup 124 /bar put +dup 197 /Aring put +dup 198 /AE put +dup 216 /Oslash put +dup 229 /aring put +dup 230 /ae put +dup 240 /eth put +dup 246 /odieresis put +dup 248 /oslash put +readonly def +/sfnts[ +<000100000008008000030000636D6170987C27580000008C000001E263767420002102790000 +027000000004676C7966D5ED745400000274000013B268656164E449F9E70000162800000036 +6868656105F4014F0000166000000024686D74784EA5093100001684000000CA6C6F6361707E +755300001750000000686D6178700079007B000017B80000002000> +<00000003000000030000001C00010000000000DC000300010000001C000400C00000002C0020 +0004000C002C002E003000450049004E0053005B005D007000770079007C00C600D800E600F0 +00F600F8014B2019FFFF0000002C002E003000410049004E0052005B005D006100720079007C +00C500D800E500F000F600F8014B2019FFFFFFD8FFD7FFD6FFC6FFC3FFBFFFBCFFB5FFB4FFB1 +FFB0FFAFFFADFF66FF55FF49FF40FF3BFF3AFEDFDFEA00010000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000010600000100 +3000000000000102000000020000000000000000000000000000000100000000000000000000 +000000000400050006000000000000000000000000000000000708090A0B0000000C00000000 +0D0000000E0F0000000000000010001100000012131415161718191A1B1C1D1E1F2021002223 +242526270028000029000000002B000000000000000000002E00000000000000000000000000 +31000000000000000000000000000000000000002C2D00000000000000000000000000002F32 +0000000000000000000000000000000000000000000300000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000> +<0021027900> +<000200210000016E029A00030007002EB101002F3CB2070400ED32B10605DC3CB2030200ED32 +00B103002F3CB2050400ED32B2070601FC3CB2010200ED32331121112521112121014DFED401 +0BFEF5029AFD662102580001006801C7012E02BC00050000010607233637012E1D6D3C3C1C02 +BC886D767F0000010067FF0600AF00640003000017231133AF4848FA015E00010036014000B8 +01C2000F000013140706232227263534373633321716B8240D10281207240D10281207018128 +1207240D10281207240D0002000EFF62011500A20007000F0000250623223736333207362322 +07063332010D227B7B21227C7B7C1821211918212202A0A0A0A07373730000020034FFFE0228 +01EA00290037000025061716173217160F010623262706272627263534373637363332171617 +3637363B0132171607060706073635362726070607141716373601AD1301071E050303010C02 +084912414B5A2915061E603B3D55210302121B02063C06030304421B0F560901485127090136 +382B12E534342E040403053808014D4F01014E2A391E1E89482B4F0507222A05050505693D22 +171730640101B52B215101014F2200030034FFFE02E00299000B003500430000012315233523 +35333533153301061716173217160F0106232627062726272635343736373633321716173637 +363B0132171607060706073635362726070607141716373602E08A208A8A208AFECD1301071E +050303010C02084912414B5A2915061E603B3D55210302121B02063C06030304421B0F560901 +485127090136382B1201EF8A8A208A8AFED634342E040403053808014D4F01014E2A391E1E89 +482B4F0507222A05050505693D22171730640101B52B215101014F2200030027FFF601E70297 +001F002F003F0000371633323736373627262322070607373637363332171607060706232227 +26270106070623222726373637363332171617060706232227263736373633321716331A5B31 +26130B1A260C134A3009090D2E490A0B68261B131C5F3A4547210804010808250D0D230A0403 +08250D0D230A04B307240E0D240A040308250D0E230904825052283578290E360A0C3C400A02 +543E59844027360C0E02162410061F0C0F2610051F0D0F241006200C0E260F061F0D00020037 +FFF6022D02BC001E002C00000107160702070623222726373633321736270727372623220737 +36333217370326272207060706171633323736022D422520367031406A271C1331B8421B1402 +58206B1329534A0D4A534B2B3C951E3F371D060A1A280D14462E0B0276226299FEFF441E543E +59EB37672D2D2D3720363C363820FEB5340369172F78290EA42A0002003EFFF601C201CC0016 +001D00003733362726232207373633321716070607062322272637170617163332374AFA1302 +032E48460D454A602218131D5B353E602218137019320506431BEB5A172E253C2B543E598640 +25543E59267D0B0189000002000DFF110125029E000F001F0000170623222726371333030617 +1633323713060706232227263736373633321716B23931370401077671760D0F040614186708 +261010260C05030927100F260C05CB244B1B21022AFDD63A09020E02FC271208210F11281207 +210F0001002BFF5D01CE01CC0023000005060706232227262737161716333237363713362726 +2322070323133307363332171607017F11341B1D372603040A0E1A0403221102024B0A19090B +252E48705F710F513F39130B091C4D26144806082C3A050135080801612E11063AFEB001C247 +5139232B0001002B0000017801C9000F0000371633323713330323370607062322273D121729 +3742705F711137280B0C0C0C5F0C3F0137FE3E4F460C04070001000CFF10019901CC00330000 +050607062322273716333237343F01062322273716333237363F013627262726373637363332 +1707262322070607061716171607013D17380C0D2E25090D10150E021A1D1E58480D47582818 +0703010B485D1007050F472F344D3C0D3C4D23150602083E66100605696C16052A2C143B0208 +6809243C24220A0A05341E262D1418482A1C243C2423090A2A1B2B35151800010024FF0600CE +02EE000700001723113315231133CEAAAA6868FA03E83CFC900000010024FF0600CE02EE0007 +00001723353311233533CEAA6868AAFA3C03703C00020039FFF601E801CC000E001B00002123 +370623223736373633321737330726232207060706171633323701897109433A903328761719 +332D03707E1E203A1D070D170B0A2222282B35EBC222071A10400E5E18396D2220280002002B +FFF601DA02BC000E001B00002506070623222707231333033633320736272623220703163332 +373601CD2B7B1415342A057095703E433A8FAC170B0A22202A3E1D213B1D08E1C91D051F1502 +BCFEDB35EB6D222028FEDD13651800010027FFF6019D01CC001F000037163332373637362726 +23220706073736373633321716070607062322272627331A5B3126130B1A260C134A3009090D +2E490A0B68261B131C5F3A4547210804825052283578290E360A0C3C400A02543E5984402736 +0C0E00020039FFF6021E02BC000E001B00002123370623223736373633321713330326232207 +060706171633323701897109433A903328761719332D3871B41E203A1D070D170B0A2222282B +35EBC222071A010AFEC60E5E18396D2220280002003EFFF601C201CC0016001D000025230617 +163332370706232227263736373633321716072736272623220701B6FA1302032E48460D454A +602218131D5B353E602218137019320506431BD75A172E253C2B543E59864025543E59267D0B +0189000100330000019802C6001700000126232207060F013307230323132337333736373633 +3217018F1B1E241202011A3A0C3B537053380C381B11341B1E3C31026E163906067D3CFE7A01 +863C7D4D26142C0000020039FF1001E801CC001A00270000050607062322273716333237363F +0106232237363736333217373307262322070607061716333237017C133F282E4E470A2E3634 +1E080515433A903328761719332D03707E1E203A1D070D170B0A2222283C5D35222A2C144914 +156735EBC222071A10400E5E18396D2220280001002B000001CE02BC00130000212313362726 +2322070323133303363332171607018571450A19090B252E4870957044513F39130B0901452E +11063AFEB002BCFEBF5139232B000002003BFFF60122029E000F001F00003706232227263713 +330306171633323713060706232227263736373633321716E03931370401074571450D0F0406 +14183608261010260C05030927100F260C051A244B1B210145FEBB3A09020E0217271208210F +11281207210F0002FFC9FF100127029E000F001F000017060706232227371633323734371333 +370607062322272637363736333217168417380C0D2E25090D10150E0276702B08261010260C +05030927100F260C05696C16052A2C143B0208022B9B271208210F11281207210F000001002B +000001F202BC000A00002123270723133303373307019D735B347095705ED44CBDF4F402BCFE +46C0AB000001003FFFF6013002BC000F000037062322272637133303061716333237E4393137 +0401077B707A0D0F040614181A244B1B21023FFDC13A09020E000001002B0000026B01CC0024 +0000212313362322070607032313362322070607032313330736333217161736373633321716 +07022171450F221F1D02024571450F221720010348705F710F4337320C010128440C0C360905 +08014545291408FEBB014545300304FEAD01C247513B08083D0C024120260001002B000001CE +01CC001300002123133627262322070323133307363332171607018571450A19090B252E4870 +5F710F513F39130B0901452E11063AFEB001C2475139232B0002003CFFF601C301CC000F0019 +0000250607062322272637363736333217160736232207060706173201B92A8A1A1D8B06020C +298A1B1D8A06028325413F250101254041E1C32206882B38C322068A2A37AFA50505AB040002 +FFF6FF1A01D601CC000E001B0000250607062322270723133307363332073627262322070316 +3332373601C92B7B1415322D3570907109433A8FAC170B0A22202A3F1E213B1D08E1C91D051A +F602A82B35EB6D222028FED80E6518000001002B0000017801C9000F00000126232207032313 +330736373633321701661217293742705F711137280B0C0C0C016A0C3FFEC901C24F460C0407 +0001000CFFF6019901CC00250000250607062322273716333237363736272627263736373633 +32170726232207060706171617160170104B323758480D4758281808030C495D1007050F472F +344D3C0D3C4D23150602093F661006884A2B1D243C24220C0D351D262D1418482A1C243C2423 +090A2B1A2B35150000010044FFF6013602580017000037062322373637132337323736373307 +3307230306173237DE362F3C080105392E0B42270C074420350C36380F161113232D5E141501 +09375E1D20963CFEF74203170001003DFFF601E001C200130000212337062322272637133303 +06171633323713330181710F4F4139130B094571450A19090B24304770475139232B0145FEBB +2E11063A015000010052000001C401C20006000001032303331B0101C4EB5E29681EAE01C2FE +3E01C2FEB5014B000001005A0000027601C2000C00000103230B012303331B01331B010276D0 +5C097C5C0F660A8D4A0A8D01C2FE3E010DFEF301C2FECF0131FECF0131000001003DFF1001E0 +01C2001F0000050607062322273716333237363F010623222726371333030617163332371333 +0174153D2328493F0A2630391A0101184C4139130B094571450A19090B252B4B703C64331D2A +2C14680505734139232B0145FEBB2E11062B015F00010066019000AF02EE0003000013231333 +AE4801480190015E0001002BFF5D01CE01CC0023000005060706232227262737161716333237 +3637133627262322070323133307363332171607017F11341B1D372603040A0E1A0403221102 +024B0A19090B252E48705F710F513F39130B091C4D26144806082C3A050135080801612E1106 +3AFEB001C2475139232B0004002FFFF601CA02B1001C00290039004900002123370623222726 +37363736333217373627262322073736333217160F0137262322070607061716333213060706 +2322272637363736333217160736272623220706070617163332373601896E09443B5A160A09 +1556262C342E030F200F153C420A60544619110D951921202D1E0B050B1F0E12249D0A2D1717 +2E1109050A2E17172E11092E071907091E110502061907091E11052D3746222D6224101B1245 +1F0E222C3846313DBB790F32131535190B022B2F190C2715182F190C2715181D0C031D07081D +0C031D0700030039FFF601E8028A000F001E002B000001140706232227263534373633321716 +132337062322373637363332173733072623220706070617163332370185240D10281207240D +10281207047109433A903328761719332D03707E1E203A1D070D170B0A222228024928120724 +0D10281207240DFDA72B35EBC222071A10400E5E18396D2220280004003CFFF601E70297000F +0019002900390000250607062322272637363736333217160736232207060706173213060706 +2322272637363736333217161706070623222726373637363332171601B92A8A1A1D8B06020C +298A1B1D8A06028325413F2501012540411408250D0D230A040308250D0D230A04B307240E0D +240A040308250D0E230904E1C32206882B38C322068A2A37AFA50505AB04022A2410061F0C0F +2610051F0D0F241006200C0E260F061F0D0000040039FFF601E802B1000E001B002B003B0000 +2123370623223736373633321737330726232207060706171633323713060706232227263736 +3736333217160736272623220706070617163332373601897109433A903328761719332D0370 +7E1E203A1D070D170B0A222228800A2F16172E1108050A2E17172E11082D0717080A1F110402 +061907091E11042B35EBC222071A10400E5E18396D222028020330180C2715182F190C271518 +1C0C041E07071D0C031C080000030031FFF602BE01CC0022002F003600002523061716333237 +0706232227072337062322373637363332173733073633321716072526232207060706171633 +32372536272623220702B2FA1302032E48460D454A291F017109433A903328761719332D0370 +01272860221813FEAD1E203A1D070D170B0A222228012219320506431BD75A172E253C2B1107 +2B35EBC222071A100711543E59A10E5E18396D222028AD7D0B01890000020037FFF6022D02BC +001E002C00000107160702070623222726373633321736270727372623220737363332173703 +26272207060706171633323736022D422520367031406A271C1331B8421B140258206B132953 +4A0D4A534B2B3C951E3F371D060A1A280D14462E0B0276226299FEFF441E543E59EB37672D2D +2D3720363C363820FEB5340369172F78290EA42A0004003CFFF601E70297000F001900290039 +0000250607062322272637363736333217160736232207060706173213060706232227263736 +3736333217161706070623222726373637363332171601B92A8A1A1D8B06020C298A1B1D8A06 +028325413F2501012540411408250D0D230A040308250D0D230A04B307240E0D240A04030825 +0D0E230904E1C32206882B38C322068A2A37AFA50505AB04022A2410061F0C0F2610051F0D0F +241006200C0E260F061F0D000003000BFFC901F401F90015001E002500002506070623222707 +23372637363736333217373307162726232207060706073736370716333201B92A8A1A1D2C20 +2C4B49271A298A1B1D2C1F2C4B49288C09193F25010106038B070191091941E1C322060F3C63 +3C79C322060F3C633D1B1CA505051C15312C05C41C0000000000000000> +<00010000000100003F7D89BA5F0F3CF5000B03E800000000C1405B8700000000C1405B87FFC9 +FF0602E002EE00010008000200000000000000> +<0001000002EEFF06005A02C2FFC9FF5402E000010000000000000000000000000000003200> +<01B0002100000000014D000000EE00680116006700EE00360126000E01EB00340233003401CA +002701E0003701C6003E0103000D01D6002B013E002B018C000C00F2002400F2002401DE0039 +01DE002B01CA002701DE003901C6003E0103003301DE003901D6002B0100003B00F0FFC901BA +002B0104003F0272002B01D6002B01CA003C01DAFFF6013E002B018C000C0104004401D6003D +01820052023B005A01D6003D0116006601D6002B01DE002F01DE003901CA003C01DE003902C2 +003101E0003701CA003C000B000000> +<0000002B002B002B003C00480064008100D8013E01A001E80219024E028802A502F403050315 +0342037103A403D20403042C046A048E04C304F7050E052C0567058A05B605E5060306400668 +068B069F06BD06F106FE073807A707EB084608A208F6093E099909D700> +<000100000033004A000400000000000200000001000100000040002E0000000000> +] def +/CharStrings 51 dict dup begin +/.notdef 0 def +/.null 1 def +/nonmarkingreturn 2 def +/quoteright 3 def +/comma 4 def +/period 5 def +/zero 6 def +/A 7 def +/B 8 def +/C 9 def +/D 10 def +/E 11 def +/I 12 def +/N 13 def +/R 14 def +/S 15 def +/bracketleft 16 def +/bracketright 17 def +/a 18 def +/b 19 def +/c 20 def +/d 21 def +/e 22 def +/f 23 def +/g 24 def +/h 25 def +/i 26 def +/j 27 def +/k 28 def +/l 29 def +/m 30 def +/n 31 def +/o 32 def +/p 33 def +/r 34 def +/s 35 def +/t 36 def +/u 37 def +/v 38 def +/w 39 def +/y 40 def +/bar 41 def +/eng 42 def +/Aring 43 def +/AE 44 def +/Oslash 45 def +/aring 46 def +/ae 47 def +/eth 48 def +/odieresis 49 def +/oslash 50 def +end readonly def +FontName currentdict end definefont pop diff --git a/Build/source/texk/lcdf-typetools/tests/FonetikaDaniaIwonaeBold.ttf b/Build/source/texk/lcdf-typetools/tests/FonetikaDaniaIwonaeBold.ttf new file mode 100644 index 00000000000..5c1f4b6ca3b Binary files /dev/null and b/Build/source/texk/lcdf-typetools/tests/FonetikaDaniaIwonaeBold.ttf differ diff --git a/Build/source/texk/lcdf-typetools/tests/t1.test b/Build/source/texk/lcdf-typetools/tests/t1.test new file mode 100755 index 00000000000..10c0ece007e --- /dev/null +++ b/Build/source/texk/lcdf-typetools/tests/t1.test @@ -0,0 +1,58 @@ +#! /bin/sh + +# Copyright (C) 2012 Peter Breitenlohner +# You may freely use, modify and/or distribute this file. + +failed= + +rm -rf uhv* + +t1dotlessj/t1dotlessj -a $srcdir/tests/uhvrrc8a.pfb uhv_dl.pfa \ + && diff uhv_dl.pfa $srcdir/tests/uhv_dl.pfa \ + && echo "t1dotlessj/asc tests OK" \ + || failed="$failed t1dotlessj/asc" + +cat $srcdir/tests/uhvrrc8a.pfb | t1dotlessj/t1dotlessj -b >uhv_dl.pfb \ + && cmp -s uhv_dl.pfb $srcdir/tests/uhv_dl.pfb \ + && echo "t1dotlessj/bin tests OK" \ + || failed="$failed t1dotlessj/bin" + +t1lint/t1lint uhv_dl.pfa \ + && echo "t1lint/asc tests OK" \ + || failed="$failed t1lint/asc" + +cat uhv_dl.pfb | t1lint/t1lint \ + && echo "t1lint/bin tests OK" \ + || failed="$failed t1lint/bin" + +t1testpage/t1testpage -o uhv_dl_a.ps uhv_dl.pfa \ + && diff uhv_dl_a.ps $srcdir/tests/uhv_dl.ps \ + && echo "t1testpage/asc tests OK" \ + || failed="$failed t1testpage/asc" + +cat uhv_dl.pfb | t1testpage/t1testpage >uhv_dl_b.ps \ + && diff uhv_dl_b.ps $srcdir/tests/uhv_dl.ps \ + && echo "t1testpage/bin tests OK" \ + || failed="$failed t1testpage/bin" + +t1reencode/t1reencode -e $srcdir/tests/t2c.enc -a $srcdir/tests/uhvrrc8a.pfb uhv_re.tmp \ + && grep -v 'Created by t1reencode' uhv_re.tmp >uhv_re.pfa \ + && diff uhv_re.pfa $srcdir/tests/uhv_re.pfa \ + && echo "t1reencode/asc tests OK" \ + || failed="$failed t1reencode/asc" + +t1rawafm/t1rawafm -o uhv_re_a.afm uhv_re.pfa \ + && diff uhv_re_a.afm $srcdir/tests/uhv_re.afm \ + && echo "t1rawafm/asc tests OK" \ + || failed="$failed t1rawafm/asc" + +cat $srcdir/tests/uhvrrc8a.pfb | t1reencode/t1reencode -e $srcdir/tests/t2c.enc -b \ + | t1rawafm/t1rawafm >uhv_re_b.afm \ + && diff uhv_re_b.afm $srcdir/tests/uhv_re.afm \ + && echo "t1reencode+t1rawafm/bin tests OK" \ + || failed="$failed t1reencode+t1rawafm/bin" + +test -z "$failed" && exit 0 +echo "failed tests:$failed" +exit 1 + diff --git a/Build/source/texk/lcdf-typetools/tests/t2c.enc b/Build/source/texk/lcdf-typetools/tests/t2c.enc new file mode 100644 index 00000000000..e55500e63a4 --- /dev/null +++ b/Build/source/texk/lcdf-typetools/tests/t2c.enc @@ -0,0 +1,290 @@ +% This file is generated from `T2Cuni.map' and `glyphlist.txt' +% +% LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ; +% LIGKERN quoteleft quoteleft =: quotedblleft ; +% LIGKERN quoteright quoteright =: quotedblright ; +% LIGKERN comma comma =: quotedblbase ; less less =: guillemotleft ; +% LIGKERN greater greater =: guillemotright ; +% LIGKERN f f =: ff ; f i =: fi ; f l =: fl ; ff i =: ffi ; ff l =: ffl ; +% +% LIGKERN space {} * ; * {} space ; zero {} * ; * {} zero ; +% LIGKERN one {} * ; * {} one ; two {} * ; * {} two ; +% LIGKERN three {} * ; * {} three ; four {} * ; * {} four ; +% LIGKERN five {} * ; * {} five ; six {} * ; * {} six ; +% LIGKERN seven {} * ; * {} seven ; eight {} * ; * {} eight ; +% LIGKERN nine {} * ; * {} nine ; +% +/T2CAdobeEncoding [ +% 0x00 +/grave +/acute +/circumflex +/tilde +/dieresis +/hungarumlaut +/ring +/caron +/breve +/macron +/dotaccent +/cedilla +/ogonek +/.notdef +/angleleft +/angleright +% 0x10 +/quotedblleft +/quotedblright +/cyrflex +/dblgrave +/cyrbreve +/endash +/emdash +/.notdef +/.notdef +/dotlessi +/.notdef +/ff +/fi +/fl +/ffi +/ffl +% 0x20 +/.notdef +/exclam +/quotedbl +/numbersign +/dollar +/percent +/ampersand +/quoteright +/parenleft +/parenright +/asterisk +/plus +/comma +/hyphen +/period +/slash +% 0x30 +/zero +/one +/two +/three +/four +/five +/six +/seven +/eight +/nine +/colon +/semicolon +/less +/equal +/greater +/question +% 0x40 +/at +/A +/B +/C +/D +/E +/F +/G +/H +/I +/J +/K +/L +/M +/N +/O +% 0x50 +/P +/Q +/R +/S +/T +/U +/V +/W +/X +/Y +/Z +/bracketleft +/backslash +/bracketright +/asciicircum +/underscore +% 0x60 +/quoteleft +/a +/b +/c +/d +/e +/f +/g +/h +/i +/j +/k +/l +/m +/n +/o +% 0x70 +/p +/q +/r +/s +/t +/u +/v +/w +/x +/y +/z +/braceleft +/bar +/braceright +/asciitilde +/hyphen +% 0x80 +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +% 0x90 +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/afii10145 +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/afii10023 +/afii61352 +/currency +/section +% 0xA0 +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +% 0xB0 +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/afii10193 +/.notdef +/.notdef +/.notdef +/afii10846 +/.notdef +/afii10071 +/quotedblbase +/guillemotleft +/guillemotright +% 0xC0 +/afii10017 +/afii10018 +/afii10019 +/afii10020 +/afii10021 +/afii10022 +/afii10024 +/afii10025 +/afii10026 +/afii10027 +/afii10028 +/afii10029 +/afii10030 +/afii10031 +/afii10032 +/afii10033 +% 0xD0 +/afii10034 +/afii10035 +/afii10036 +/afii10037 +/afii10038 +/afii10039 +/afii10040 +/afii10041 +/afii10042 +/afii10043 +/afii10044 +/afii10045 +/afii10046 +/afii10047 +/afii10048 +/afii10049 +% 0xE0 +/afii10065 +/afii10066 +/afii10067 +/afii10068 +/afii10069 +/afii10070 +/afii10072 +/afii10073 +/afii10074 +/afii10075 +/afii10076 +/afii10077 +/afii10078 +/afii10079 +/afii10080 +/afii10081 +% 0xF0 +/afii10082 +/afii10083 +/afii10084 +/afii10085 +/afii10086 +/afii10087 +/afii10088 +/afii10089 +/afii10090 +/afii10091 +/afii10092 +/afii10093 +/afii10094 +/afii10095 +/afii10096 +/afii10097 +] def diff --git a/Build/source/texk/lcdf-typetools/tests/texmfhome.otf b/Build/source/texk/lcdf-typetools/tests/texmfhome.otf new file mode 100644 index 00000000000..d0af1152ff4 Binary files /dev/null and b/Build/source/texk/lcdf-typetools/tests/texmfhome.otf differ diff --git a/Build/source/texk/lcdf-typetools/tests/tmf.info b/Build/source/texk/lcdf-typetools/tests/tmf.info new file mode 100644 index 00000000000..db7c3c839d3 --- /dev/null +++ b/Build/source/texk/lcdf-typetools/tests/tmf.info @@ -0,0 +1,8 @@ +Family: texmfhome +Subfamily: Medium +Full name: texmfhome +PostScript name: texmfhome +Version: Version 001.000 +Unique ID: PfaEdit : texmfhome : 17-6-2010 +Copyright: Created by taco with FontForge 2.0 (http://fontforge.sf.net) +Vendor ID: PfEd diff --git a/Build/source/texk/lcdf-typetools/tests/tmf.pfa b/Build/source/texk/lcdf-typetools/tests/tmf.pfa new file mode 100644 index 00000000000..512c10a6f5d --- /dev/null +++ b/Build/source/texk/lcdf-typetools/tests/tmf.pfa @@ -0,0 +1,195 @@ +%!PS-AdobeFont-1.0: texmfhome 001.000 +9 dict begin +/FontName /texmfhome def +/FontInfo 9 dict dup begin +/version (001.000) readonly def +/Notice (Created by taco with FontForge 2.0 \(http://fontforge.sf.net\) ) readonly def +/FullName (texmfhome) readonly def +/FamilyName (texmfhome) readonly def +/Weight (Medium) readonly def +/isFixedPitch true def +/ItalicAngle 0 def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/Encoding StandardEncoding def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/StrokeWidth 0 def +/FontBBox {17 0 507 611} readonly def +currentdict end +currentfile eexec +8A776DF5437D053715F33367AD5C2F399F490C3C377EA6553EB427BAEE0B924B3EF673E285EC0C +1078CA61959EC5E35844EC526506107737CF8BD3524F8AE01447B8090C2ABB680C35F02694D64F +6FF22544B143DCBFFC763A72B7F5A7FE894951127BC7AE53040AC1D7B674A0302BEFDF70DB0319 +09A25FF691116431FDB007803108EAE2623E6E7F050C709A5ED08B482F66EA35D2045D89723406 +201EB465AE6B4E1864EDADC38F3B856CA55D9D49ACCBA4994BA0F8641AAFC5067A22577ACDCA27 +33F31D871C01AB90F1210F85B8158B108FB394C1B91120B926575CA86B910DA8639F189C07913A +89356275D449956CE2BD1FE3F1C84F2E2CCAD5F1666CB376B897DFB049144434F4AB076F5E4F50 +A3F9BF36CC09B63AF52EC309D069DC90C7D719A2ADB8CC610A7E8397CCC2E7A6B6D3C543A0A344 +78F8343CD3C76B08F89757472AFE860682A8F65BBB0E7C4765F02CF3012B81E600979408843A7A +E0854A225133A91814B06701F56511B57E0A8AFA1B2798B3C737A21790230DC019E92B14E5FD5D +C72495C72FF221D9D635C30AE88C314123A21FCDAF0F0B176907F1C15039674CFDDAF16B1D6A74 +B8ABC54092E9211D7E889687061D66B27E3CB7FA9E9261B685B9CF527228CF1CF188967C261D91 +0B26F2B1B2DC6AD6C0CB2AFA8B56F62056C9F407167EFAB25663C1F923C59E35FF45EFF7F02491 +546A374F9DF315F190C12420D57FF4332924DDA695EE4FEDA8AE9EB4CBCE7AE22D753C4AADE6F4 +CC0CA59A7494B3BF6C0EA6AA22B1AD99B4A9FC5FD8B5A8C8E7F8952403F671392BF00FBCA653E6 +EE3CD08917B3436BE57989C5F21ED11CA12B14A49AD6EDBDD38B2D33C4E02173AB309C14853172 +2DD2F8E15717DD189FEB905C6736DF265500CBA309FA77ED56652AC3AB3A899BA0888C39FF09C7 +87AE2BEFB078F8C16DE0AFB1D0A3AE06ADAF0E9FDFC34E16DC23DC70D961A04C41B86CD92C26EF +251F0312278E2CEC65A88B9CCBAEC510A5BF37DD1743BAB5CC56A691F1A98755F5135C142B04F0 +B3163DA29B72AD74426BD437D848EDD46E11B3D3ABB422AE01A866E1AF7AE92EC3A3ADCB460011 +8C3CE3822FDD10BDDCD22670E60862BDF4816C7CE4ED9F63EF7030D7CA5140BD7190897F10CC44 +BB2A70506DBDDF240EC18A5FB7928852E0A5C2B3985ED1977C74F2892E262CD2F43A4134394360 +CDBBBAE70864FCAA56EA9F63F7D7D5019E3CE27565A5A676A56886BCBBE03203CB4B007177BFC2 +77D91ABEB8368EB57B047C5F872FE1B0E037DE1C25D3DA915777B5785B47F28C20CEB3018A9661 +CDB72CE6CE8C7F4CE8E1D9B80AFD45E048E7A4CA97AE03883D59219162E57E21EC4A86E8CB8A14 +4F6DB3C7B7BEDE337F36457924ED9592AF34DF23763D9B750818D8DA1412A59989C681188FBCEF +E4FE7B188FAE9DBD0AC2D182BA1B5BFEF5089BB3FA964BB44A5AEC8CFEE0436B872889CD577E42 +A99EFE3DC6CB0357DD4B15D0D25E2977E9C06CEC25F6A8D501E499127C5269311FD553D6124962 +AFBBA8CA792124F02E2AC4DA1C2DF10962571236500549B33DECE3684B902508651731E22734A2 +9973C30A64EDC222AF682ED66A0CE17E7C4E4470AD97541C23E25C8C3732089DDF470B6650984E +CB76C0A7EBD8BD97E41FB7C153F7ED133529D9F1D92D5AADFACB1242479A31349DFE20A55A2A5B +705C9CECF6D8B1A3AF15C6AEFAC2A2D9368A76E608CE6BE70FAA70C3F8D3A54FA88C4BAA0C4D8F +4836AB1E75E2E21C1C6EC289CE91DBCE44561BBDD302FD7A3499F111C176A387FAC252C50D6B61 +41EEC790B56449E1FA715544AA1EE3EC5332D6CA85F86EE6B5D636EA182E8B1ECE399B2E3120F3 +F531DEC5CB58DB103D3FD14E3263B6B45E6271951E176E5132ADEF4F0A5C2410F561BDF3677D24 +E4B7FF9E9642D6982604968FD537345A1AE21D3260FE5388D9293D6223948277E0A97BFFA9F6F0 +B8C77E1B5E79ADF83D58DEA2EA800482F04CFAAEE21FDCBA598E0E0289B34B742F6C3194CBEEDA +AE9F528E16AC31549932ED9621A77C9A0EDF0CAC8ABAB89ACDD51B051EB09E060ACC988BB011C4 +EFA88034E86B30F636E2CA86B3A8ACA59EB8629A8155594B93767A1A3E126544316EAE773E74EA +303F33072AC571F4E8607BD82F69B21EBCF2C2C8C0FD4393A66FD94E63DCF1309D1A6CF6DA4C79 +8E7F76460DF0927441CFCACC512F998515DB0F0636E67032943A52FC93B31E520F3DB4A089CD2D +F113A09BA2024E86346DD4D66DBE96F2184CE2DB0F2B9772DB6757ACF25ABE18D51F232C9085F3 +0E8DBB95A299030C8F1EE5DE4B9B9AF0C5DA0368B6E3CA8ECC6454B0982DAAED42ACF23EE60812 +FD3197359E30C510FB75024BC54E7388D13785E02D8C10589D3D6AD9E767A564F0FBC9A3C60212 +146B968D72BC8BF91C30C191065A0EB8195B12828E8DF5EA220FEAE54BF00864465F27B3BDEF64 +53F830BA3126570F96C2336562B4A352B01DBE82B029844D39B45AD5F21273B08FF447E05FF351 +D552B7848A3058C7EF83A52A750C5E61247AC8432507BE859BF8B789B7F5CE1F4F3FC1AF3F1F76 +A56A70819EBC9E137CA993A205E0B7FA0DB73C1C060D1F936136C14030214CE5579C02DAEEC481 +F6ABD3413D1EAEB406CBAB7D8B7CBF4ECA2065A92BC3CAB4B30A3291CBC434819335EFEE286832 +39207026CD6E0D53535B8EF3869815E6CE6F315408112546963C3B46CA96A1221C4CAF3506E091 +03629D4E83AEDEC6805571F4AB2C506DFA65570961C98C49618261E0E9B4579E7E80FE20C01E56 +753B143D140EEDB762657FEC356D15102CF6CD26ED82D9A515CF5D617A28EF4FC4FB349840E425 +783DA33640EFCDFF5AD04F36DAE69409F4AD59E5BBF3CDFE0B8554EEC10B87570283277BC9D250 +3DACE016053FE832D19365FF5FB56C89E564EA3659F514C756F5B07654C60868E89A9852A55A90 +5C183270B3A0B0ECCEDA1115CEB023B61ABFFF6678B8A4B01352E8E681E699A093B5D113DB87F2 +DB12ECC0978947E30942813AE525A79D0844612FEA0D2BF2A3D7202AB500DB086685F3A529C43B +79FDA784E43518EC076F0952479768F2DD15007820802ECBB6BECFA78A627356C29AB307EBC89E +B0CF3638A3FB8704A180E73B2A912F14D1D751A198148409810B1EC0B441E566E2A7B606BE8486 +098BB49CCDF7C2C44BFE161B5E69E90756A959E2C4CEDE14B8D57E20DC1846C83D89A0C3B0A12B +0C3A83E052E54D8BBEE3DB72274D1F55CE54FC70B76093F84E7288A1AB7803137D2ABE6402C57A +D8CFB196A1528F1F859937B66002879B4880C4CB73FE08D68C0CBDBBBB3D3BAA0283328E9679BF +42D697A129BFE69CE62F71CCBF73735FC1E161F5637627AB4A3982ED29E23752C80FC4F4D3C941 +C1EFE7902661C63C76B78A13897BB0996D8B6FA326624B67604CBAE227B318C2C73981F088AAAF +50880248B6D6F20E2AEFB44B360EB6925D94DD24445B4BF72CB2B0E736FC13501C6FCFE543280F +D0E28556781135C3C7DF048505F8252F532EACFD0976D9D518D389DC907BB2AE247B1C99AB2068 +A875BF651F894743BF99A7777ECF9A9B9680AC167F44899EB19ED52C3AFB12BA046D25BAD3D960 +BCBFA3B6D1D726B20ED5A20BA233B2CF2BAF402BFB78C70E9D90C725DD6EF1BEEE0592E80D6CC4 +C21EDC86658E5C84947C9237CCA9D68FFEBC80C78E277582F41F4A0DFDDF51CBB34029690DA5C3 +58ABACD6115533D07AB6E6613D3F8426AD527B80EBBB9191364F9FB825F18F41C8C1A30A37A22A +FDD33D3A6B72B2CEEC2763DC7ECA1436962296D9292A9717236F63935203D64B8EAE5C445813A4 +EC50DE2F9B00991DEAEB944298819F7C8EC869B77ADFF321F77DFA5FC6FA4889A3F9F9FBA23B17 +EA1CBFBEF56C02BB31276B827593B23658C3E4664FDC0E30A81428F85FDC991DCD9E616B6D6D49 +3D76160AA862FDEFBB38AC493C104802A23742367C8D9616F0186C870C6C6FD4E54F8337644D6B +53C6DB6750EA715027391F147545E0D75E0646190AF5DB7CB31A063A7EB80377479099AD6EC9BD +16E7B15D9ED3A4542E1322CE788525D098C2E3DF62C380BE98A127A793E6DDB94FC446DB4729D3 +44045895F5BBF3B0511B1A522141E4019A2055B40AD9904FCC21E82896C73080F7EC18FA0A9091 +95595B890C83B87260627A839EE7318249E4066C1F4F7C21E2342311AB7C532BE3021E6770F2A3 +D0C8F69FB249C9D707CE524CFE7FE1E2E0B877C1AC65CC24C089BC07334C90307985D4CBD0143E +F84B6BA55218938ECC0BBCA3C1F05D53C54D6BFE5C1D36B649460BA43CB77983D2F65BF1F8467E +712055FFEEF4B4CBD95ACD62CB223AA44C6BA3D7F32F17204A0DEC9511D1641C8472095CA0125F +C7DEF0CE85FF532C5FA3C12FCF2CDEA2493A24B06A3251CF2E00BFBC94E8A66B925CFF55A5479E +8E26DBF21D472DF760DEBB907D174512DB46B9A67E28DAB2DF7900C9AF6A2C61EFAB64235961C4 +8CFD299089B2F29E4E6C900E786172617B4FAA8A3D8DAA3DEFB3071A34B20A4394242D014E2359 +E07BB088CCB8D97EEC7F4E404D6FE95115AA87E5630D6AD4D0585C46D5B661A561F6F057DD01E3 +898C6797B154652D5FE35A262EC7BE21DFEA090CF1D26AF645E32E6ED681619DFD11891AA9D9FE +5C5E6018AD5D86C8116BB1FF26868A8D48AFFE939FF35A2BDBD7BE6D239CB32C4CC11A97DB0E85 +5C2F07AA4C5F3EAE3FCDDEF5762D69EE5F09A3A1E60E27AEB9151B23E07A878F33BB52B8A3A264 +F6455A4725C259EC911284C781F7A23FE970A5E30D990DA4DAE8349461A1F2196F66759DA0CC1E +CEC6BC804BAD65A74E4310F2E8AB5697D2D3AB15AB13FAA57985BB250C5F6B0F915E3D40D28D6E +849484D87B6A85F7018B011011A32E96445F43D3C012B48A6BF657ACBCC3654DC38A4D3BE3B087 +A75E0A869478BCE6899F97968EEC2275CD549B8A54B7CA6CF88968C51933A15512F35B1479DA42 +380DF046A98F886445C14A832DE6139A90A39CC20BB825064E3BA99F6A4B616AFA50908D2981DC +B59D510D7AE515BB357B0E107C1A692CCE83547572675D0EE379F2B0B0499A13CBAA95E77A1E93 +869DDE4A2C0F92DA82A1A4E825ABEC379D9054F649A97E5E230AF8B1907E9393B3137DC39CE27E +1D6C1B6F6A8FED1EF7A6573824BAA90DB69D6F6D6DB8B9CA87D90F4E9C9AA91C2A856AB25A55A5 +4B9020552B549C75C9E848E67702519D9DB0358831A10F15E4DF902CA89BB92EEE887928190E89 +BC99F2E4C4FDFB99B71B6EFC34BCEDDFBC65BAF6438FA51796C8FA9EF319A33C6EA2061C303AE0 +CB35AB5E5EA488A9EC62CE502F52F96F8E98251795D9723FEF273E37815D51B2854551FDA9CBE2 +ECC666FAF81E9D9AE10BCAB2D0F1A00CC5314351D5207001B44F11B0E80E58C83169DB99ADC5FD +42A8F1564BC34E56A99AFD6288EC44CE5E1C8F6C46E648BECC35EC9948E99E46FC213DE16D08FF +CB2E9D2106FA166F04A4C84809A623C82635DC8FE6FE09B35F16D022FC6EB16F420529012D0120 +558DC4931C6718485D27B57A65433EF98BE5B0D7A0E39C3F38E1E2BC88CCA84A87A0856D80A1C2 +FB0268452138B2B93E34C1A4C5B527F2F71057F4E6C23CD3957A096E355B4E981AE3C6634700C7 +9A02B6C6E7B63717C2BC9A78DA6C222EE276F772C707DF3A2B45661394222D1F1F4A0791B21579 +853F4B6492FC0F8CBF9C6BCCCC53E897DF048A9A8AAC4D47F2E659181C2DA86453B3F91539DFB4 +D04B7644925C39ED47791DEC3E5B6D0D6C95B22C1EC07FC830D2B6D7EC0DBEDE3DA8BA28DA89B9 +B43566180AE3772FFAA19A4E3F908D0E5EE61A48665572CA8895A42702682D1C20A063155C6CBE +1FEA065FB824AEE779ED0EEB16F6875C766D05F69A7ADF491FC5C6AF498541C75D046014D87F4B +9192FA4A288F473ABCCA161FF59C16C66A1723AA99022F6E711D7088604C2924984FC8B5D43155 +A3D6DF58C0DB8A87965AB76D992266AEDF5B1C98C72F46CB73A73343D62DD8EB48808AFDC22221 +6A2C3A7A0CA65EF587444D0C598FF81BF573EA496870371FBD39E9326BAFA97782371DA1AA470D +3C57BE2D65E3CDB7576B46DF369BC56774F40D304F29183E8F0D54F1BFC0A9B9CA9731457AD16D +D8D01C9D93A9C4CDF8D4C389A807D7C3C91A119262F3BF2A9B79002D1D3B4D3EA9DBC84E3B3711 +4153276E8BC1A22EC37FC334B948134013931C02EA2F0E6254C45C8660E98EAE6955A93C3E33C8 +125024F5D0DB7EE9DB115B9396371F12B58456BDAAD22DFE71219058BAD8C9CB79687FD849B9FC +0DF0817D2602264E6211331A66F69098E0EDC034B6D5FAA9928B570FD4B691F4969377B8215A8B +838A0264261DFB9AE203E23BCA565EA70EF12E1EB4CFA18F1B78C1A7550BF571BE422D136754DA +C03A72B36E8263C3CCBF0047A98B5DB9E681E9EDDDBE5DF0C1AAE9381AF59F15CBBCDCE69E2B56 +F930E3D894B4830D42A11226955698B865A3DF029B4E662F3A63459498848BDC5865AFF8D09B8D +43D3BAD1E8398482B0787C5C494E0012257B7FBD5D43FE7E7C60DECC696D0D075A0FBEEE51F88A +9F36843433737B416DA2BB0F979F569DBD0BFD37E28494B2F0F15890F36080468553454E4BD1FE +9857E8002EA64EECF41010BADF4D433165AFE332C4AB0A7DFD4F5058F8C52C9459017E6886145B +3DE4492D46EB265188B356C5D24D1F51FEDD551EC6B6B042257CDA7789CB19B40813DD3CD013A1 +F1699B8BFFD4AF6D1B4506B2BEC172BEE8129A811D1F10BD3EB1347508994CF051719BA49F9BE8 +2F05762E861A2A91A9ABDD06ECBC9DB61E7A534305A57B4C705521E3390821563A9A2F2D5BCD06 +F10487BB1340BA5C2BC74CBEDC624BF5ED969DC42AE3D8D01DB91E393E60291A5A48FBB0FCCFA9 +68B8791FF9B915BD5BD816D2C109C63185FA732E9211B0013925004F961548D87852D7D657E443 +E88571AC7DD58C2404669F1218A8AA1CC898EEEA02A22BE337445CCC27E29CCFF15F7CDED20E83 +BEBE87020BB3727A1FF96CDAF69D18754FC99082D7CB878D819EBEFE536286BE98D2D8D9D8356B +E6D21E6ED2BE63622CDF9673ECD740A4CACF4E6C12EF5D64F8F45EE635CE0A487FC3C01B5798C1 +6C639503CEBB35BB027CB52ABCF2FDE1CEBD22BA69AE46E899904F9B52BABA043EF7E1A5D9B84D +9D57D61101DA70E6A1909AEA4EC6935254DEE2EB0559CC417115D34C8A689F028E591215B329D8 +6F35376B15DFFE9323257F0B05143B8EDB7A358CA4B8519CBC3B3D622D772B9B9121B7B3E9CAF9 +774A9B0F7027A63527BCB63475833EFFEF07E8087F786302B6D637886B55EB18906ED1F6E8681B +552372287C3C86D79F6EA4BB0D1FDADE94A33B2AE3165836E5BB3F83197B1E11C181EF071DB001 +BB45F953DC4396F0F3BB1EBE33B4EF1E2B4CE3A09FE4322C6EB4E263E83643D286805A12371253 +2457ED7B7FD8794C8BD959CF8A71FE63D916565682FF21A19B6E4EB51DA81B1F476421E2D7056D +0583A4124A29B5F5D1A8D6B6785A85F7D4025FE99EB0A0D94D314C7692A3CCDB259E71080BC335 +C802178AD2D8E0D53779D6E56D7F8FC78C6BD4C49581F3FF8512CB0A8C91DE55DDB12E7FFAE085 +F67C1D9E087DE3F2BB894D660AB167E2679FD4DF6AE2445D0B6D1052E556D382A7D053CE0AFFBE +157FE832233302349EDD1BC042D7D30026D926839E61B08938A0C3201681E392E90A59AB74D1E5 +6CF28F94B327C4C8E010E084D361FD93184C0DD08DB937995F325F2896EF0A4FAE756EF84DD93B +3C9A149F5BDD8F1FB9D78D7DA692D7F755DC9C21578374E33AEA389EE55A389CF04E82B5F83283 +56686E98C9E28DFA93A6E800F89139B6013CCD1F8EB2E4454E8DAA27DEC2496E3B5DB7256A2184 +50C5174FDC0EE76479AE39784F5B0EA12008252177EEF36C178B7D3D32885DF72EF085F63C0883 +DC4615C360DDA0D4786D1C5F8404579113EAE37156F487AFA0AA7DB39CCB20694B03D9959B4260 +D441F282F7CAAD08959B8CB19D9D89D9F437A676727F3D33DD13B9FDC1B6B67463B40AB47B40C5 +7EBDF0FCB8DA1A5C8E5401A52997D43AD94B001EDCA457CAFB6FB6D7E8DDEE33E4EADBABAF3BF2 +627853DE6965BA42DF54F7006E81CE76D3AE2DBCCAE3C934CA2E5D2F1B6809B55EA366133ABB2F +DDFD4256C13EA79E95A38B85FE3341FE4F6789C490A9E6AD560116E54DDB464484F1F7197D99AA +6EF3300DE961F35061B43FFE7EF280FEC158BA64762B15175B10E8F978B9CB877373B7F1D48DA9 +20819382F06CE085DFCFF39426C5AD1BFF83339193785B4E052B1D750E8A1252A3681F34E59ED7 +406861DBACE7D8D36D33B7EFE5727BBD2B22B7CC582BE0926B1FAC19094C37755B9E917B7B060C +5B33026E3DDAF3BA715D4DE125E15ED0261F539615555571DD718DF2E204EDC982FD01198ACDF8 +D27855E709842C6E7FF9AD1C3BA2AC9B809A4FFF326F5A93B1C760A6E7570BB96D3529EE7A6AB5 +DF94A8A80F9EEA14748343977E5EDAD7BA11E02FDA2C8E30FC707DCAA2083188B76DACA039F24E +3FA05FC095AF4C065C19D698D95534A74681215010B1327931B4D2DEA0F74B8914FCED9AF22E0F +B235E9EE4CC9B3739F66A274BB7A7C821A86C46953160D9DD7A475FE2F0F24B1A6898EF15381B1 +9B097B36FFA5F5582C1CBC38AB8A02B7D677B70C07CB4AAB5B638B7DE6DAE25F4E9EE1AA706F60 +34D90A0F27DDED7BD27C9E81526010E20A3606FA35039CC4B090FF7F04DF18461A5FCC7E31DD1F +F55D527594FADCE087DB1DD66B2EFD1EB88270779212AE5F0ED1AD3528D5420407087CC8C56503 +DCD351B919989A5E0A8EE8B7DAD308D820053C8B1AD5E5180B05F5D7EF1C1B811053F63FC813AA +77CB6A74321B46A5200196821A4859B4EBBEF8F1AF4DE1DAB0FFAC8340F2E0866308D62A545F6B +7F7BA3D8333CB36C41E71C4D79AA096350F4445B9BAC95C7BE1B0365B76D7D938960F46E42B9E2 +D40000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark diff --git a/Build/source/texk/lcdf-typetools/tests/tmf.pfb b/Build/source/texk/lcdf-typetools/tests/tmf.pfb new file mode 100644 index 00000000000..e9764c0f6cd Binary files /dev/null and b/Build/source/texk/lcdf-typetools/tests/tmf.pfb differ diff --git a/Build/source/texk/lcdf-typetools/tests/tmf.tables b/Build/source/texk/lcdf-typetools/tests/tmf.tables new file mode 100644 index 00000000000..a11a6699435 --- /dev/null +++ b/Build/source/texk/lcdf-typetools/tests/tmf.tables @@ -0,0 +1,10 @@ + 499 CFF + 28 FFTM + 96 OS/2 + 322 cmap + 54 head + 36 hhea + 10 hmtx + 6 maxp + 618 name + 32 post diff --git a/Build/source/texk/lcdf-typetools/tests/ttf.test b/Build/source/texk/lcdf-typetools/tests/ttf.test new file mode 100755 index 00000000000..14ccd09507b --- /dev/null +++ b/Build/source/texk/lcdf-typetools/tests/ttf.test @@ -0,0 +1,48 @@ +#! /bin/sh + +# Copyright (C) 2012 Peter Breitenlohner +# You may freely use, modify and/or distribute this file. + +failed= + +rm -rf Fon* tmf.* + +cfftot1/cfftot1 -a $srcdir/tests/texmfhome.otf tmf.pfa \ + && diff tmf.pfa $srcdir/tests/tmf.pfa \ + && echo "cfftot1/asc tests OK" \ + || failed="$failed cfftot1/asc" + +cat $srcdir/tests/texmfhome.otf | cfftot1/cfftot1 -b >tmf.pfb \ + && cmp -s tmf.pfb $srcdir/tests/tmf.pfb \ + && echo "cfftot1/bin tests OK" \ + || failed="$failed cfftot1/bin" + +ttftotype42/ttftotype42 $srcdir/tests/FonetikaDaniaIwonaeBold.ttf Fon_f.t42 \ + && diff Fon_f.t42 $srcdir/tests/Fon.t42 \ + && echo "ttftotype42/file tests OK" \ + || failed="$failed ttftotype42/file" + +cat $srcdir/tests/FonetikaDaniaIwonaeBold.ttf | ttftotype42/ttftotype42 >Fon_t.t42 \ + && diff Fon_t.t42 $srcdir/tests/Fon.t42 \ + && echo "ttftotype42/term tests OK" \ + || failed="$failed ttftotype42/term" + +otfinfo/otfinfo -t $srcdir/tests/texmfhome.otf >tmf.tables \ + && diff tmf.tables $srcdir/tests/tmf.tables \ + && echo "otfinfo/t tests OK" \ + || failed="$failed otfinfo/t" + +cat $srcdir/tests/texmfhome.otf | otfinfo/otfinfo -i >tmf.info \ + && diff tmf.info $srcdir/tests/tmf.info \ + && echo "otfinfo/i tests OK" \ + || failed="$failed otfinfo/i" + +cat $srcdir/tests/texmfhome.otf | otfinfo/otfinfo -T post >Fon.post \ + && cmp -s Fon.post $srcdir/tests/Fon.post \ + && echo "otfinfo/T tests OK" \ + || failed="$failed otfinfo/T" + +test -z "$failed" && exit 0 +echo "failed tests:$failed" +exit 1 + diff --git a/Build/source/texk/lcdf-typetools/tests/uhv_dl.pfa b/Build/source/texk/lcdf-typetools/tests/uhv_dl.pfa new file mode 100644 index 00000000000..494eedc7f57 --- /dev/null +++ b/Build/source/texk/lcdf-typetools/tests/uhv_dl.pfa @@ -0,0 +1,190 @@ +%!PS-AdobeFont-1.0: NimbusSanL-ReguCondLCDFJ 001.005 +%%CreationDate: Wed Aug 3 1994 +% Copyright URW Software, Copyright 1994 by URW +% URW Software, Copyright 1994 by URW +9 dict begin +/XUID [1 5020913 2322999] def +/FontName /NimbusSanL-ReguCondLCDFJ def +/FontInfo 10 dict dup begin +/version (001.005) readonly def +/Notice (URW Software, Copyright 1994 by URW) readonly def +/Copyright (Copyright URW Software, Copyright 1994 by URW) readonly def +/FullName (Nimbus Sans L Regular Condensed) readonly def +/FamilyName (Nimbus Sans L) readonly def +/Weight (Regular) readonly def +/isFixedPitch false def +/ItalicAngle 0 def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 106 /uni0237 put +readonly def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def +/FontBBox {-136 -225 820 944} readonly def +currentdict end +currentfile eexec +8A776DF5437D053715F33367AD5C2F399F4A3C4AA93FCBA250D54A7FA4D42ED633AA72E9BA3524 +9FEB6AB601831178A0690247FFCED3A15C9247FF52A6532CF582CFEB24204AEC140A2201F906F5 +B5CDF776DF1D8C3C1BB0985C38BBA74E00029BEDDF054A05B3B58985E702D2EB02E7FE3316CAC3 +A26DF2A45F5C8EAC11F6A49E79410F4873FBAB97238F123226CBFF6A289FB9E4691F8ED807C137 +C58417798F0381B07CB95AAF0FBF147DD54522894A29759A34CE5A8EF84645EE900D569DC6F224 +ED221522988299C62B184883B76599E2E9B764A8332728F100FBABFF0130700F37057D0803712C +68D80564AD85A1FB1627D2D8A57A8C4F4E500671382801CCB781A28D3B7F94977D467410DBD713 +B6CEB0739972ADF0655BC62E41028E8F0F4807E7FC46B04028C7426B73282F6A0F1D927C2B967D +2D1159E84555D3D137FDC7916C501EFC8CB198BB3CCEC4D6238810E0E2242D7ABD704CBAEA0BC5 +14290EFD29D231F461821D89C2A481CC3629806E3A19D4061AF6CE2EEC98258A60A9A0E55D83E8 +ABCDFE0CE041A71B0CE66B3975994FAE1A10501DDF574F108E3EC20B62565A2D197F37A43F04A3 +3234D8F830BA2182960BACC37DC421CB518066D9CA204CF47B1BA004E23C50D4E99FEB2C090924 +34FD9587B668585C24AA810D05602B972811AD643DC907720DABED3187D2A7C7CC5BBB0483C8AB +8B30DE4946F745FE5886F8FE808436EA1C2297DC8AA1E8582F878F0B3D6739C1CF3DF8575CF84E +EF242B72A1A46723C2B527D7DA458DFD9BD359A5F95971926EA5F9111BE912B187C98027EF1C13 +8CB8B8BF7CFA44701B6E876BC833A4809B58408574C26A511BB88DCC8679D6C5F2178A4A8FF769 +3E179E6B45BA2EF6CA772A67B0A03171063A2856A63267CA8E17FF61A03AA18C68882F92FE4123 +02F79B5C2966C55BC04E766DAADDF0F74DA7D0D09E4C618453074D3CC3E591AACD7F034D853307 +D2CE251B4B5A3D2443FA760ECEB2C63EAD4BF74F1E5CD3785271BA8CDCF28E81A7BE12403CAD2D +9BCF7406708129D7FC702013FDCF84F433A2A4D940B2293215C6D7DCB9940033CE9BBC5626F299 +1C85D651A4F2A85A8FC036F3583ADCA56CC9D14534C83B14C8187AC73AEE2B63C6236AE04C475C +4227EC552B74C12429D0658346B1FF72ED222187021BCD51B1AEF783C49A465871EE266F7BA65D +B794FDDD92511EF7E76F8DD7086AF1F5633728C29E7F9F549867E769E288BAF33F4C31D3EBF1A6 +9D795A40252D021D5D219435A7D82AA92A612512C0441D2F688B2992950A37C85FD47298A73D16 +9DB7E9DD5020199893AADEC37D7C243D18C277A33F6077EE8B6E765FE6B7FDEC4A17880D72FFD3 +0150CB894D20093260CA64384BB666E51C9B69274DD20872149B42C82BB3224095393C24C1C1B5 +30F45559EAA5C3D510163CF44F589EC823A8B30341E8591593BCC282D65C974A0DA6CCB4EE6F28 +0A7E3F4F0AEC870BE8A81F78D4E635892BB1BED62A1F254C67CD0FB8F88F8B5FFC76EC01CA3F75 +F7B1FB2EF96B3529F7E2ADB2B07F3C170A809F85099B7B51748F5CB77B9A81071963D664E4485A +2C2CDCB1EC6F3647986AFB6068FC0A6454AD6A780A327290D541EE553BCE526871486618560AD2 +CBAC0AC17C86511E6C7A1195B7548008B0B05962D00FB27916BED5135A63A36F7D29FDCB9F7B50 +129524F5DC0C82CD1D16B1171B21BFA756F59BD601DAA51A6C99F8BCAC305F2AD53269AD383BEF +C71280725D2928A3EEABBCFB4367042978CC22EC2B6E450696DC045493849483FF641CB1712410 +D0754C4D18E600B50FBA052C966428ECCA0672626C4F77BFA5AFDFF28D4F65CB602CCFDBEF4850 +4E2D966DA6FDAEFCE351ADE2BD8E83150023F04C66788F0E6B5FAA3AC1CA9224634185A44BC5EF +DF9EA935CC36E9F380079D3604CFC112031793288D22470EC75FEE26AA7E697F6ABF45973CFAA2 +C2532543994A113DED1343F1A6D6AD2C0C624B8EF5CA1BB4A3AB0F4503F961EE58527DBE9757C3 +5CF973571B396DFEDD71DBF542EDF6CFFE92CA0DE81693EC8C6C340FA8082A9925A02D566DB577 +B196ECDAE18620AB1572997885CDB45E62B1C2142D4D0E079F93779C797E3CF37094A948F4F2E9 +CFD277DBA13D88F26744DF9934C23CA78EE83E1D5FDE4B53D69B9ABC11D054084A9AEF2042D785 +2530C6DEABC52B155633287E8CB344F580BAFB335317D2CA3E2DA334F25A72D20B2A4D1B2768BA +F763FF523EAA68E759BBD953AD5F3DCB1F36E47406A774032CA3AB287DF17292F6EA51681C8A7C +7BB640D933C6B70B6A8AE98482E3251C33D0728F9860912DE29D306765B61DAEA0C392C5DE4938 +CF4E6E699BCE30DE0B0B290DA25D4F0C2405BE40DA104BEE43AAAC334B8F354E8F120F4FC0D819 +D5B88449D2E37A8C89E122212B514520B76CB5EB3104C798F3EE24F0B4AA8937F562583A793B8F +07D220B72AB34F1546CE82184DEA7D3F4D29A41AD4400E48F851167E7A41FE0190AEF2CA75B2A7 +207C623F3F6ABD67B06AABAB336FC2E0F3553BFE1D8C5DD142BF19E8E6E20A375ED738D5A0A8C1 +5FFE65B704383B591C8B08648329FAF08AAB8194B0F4276A5DC36EBE0F1464003F2DFD0CA0B8CD +A7CE1502B1939E4291D3B86E9B2C675197CF1A344C30B6822F9CB2ACC3263D253922761C341CDE +988779EA6DA7CFAA713360FF05507E6B71FE667EBE7CFC187ED5AE5977F730111D33E2C5A3617C +BB251A8E1CD68F8BDA899609F835279C3F13D8558D6C9B32B4F889048682EF71E69727097D4841 +27D2D806B038F74F59DFEAD03CBCB011870D59B0A46E1B823DA2233C5DD123DC0B09B21663A634 +5C77984B191B055E22171A935B3EFCCB7DDD1FA83011A3DD61EF9C621DCF2CC3381E3EA2D9DB31 +53EB875EDD0B30E0DCF84C486E71FE4FFCA2B879F24B54449D2B3007129F6D62BFEC498B5A9920 +B26E0A664C6D26399FDAA7E05AE7A5C1748C0EAD4E205C471DD6338748A2E0B75F0DFEE9849F7E +324DC3187F5F253C366B34C09C69C279218C3CF6A4B5B07165FCF72F5ECA70EB1FA31FE6AC2EF5 +C1F7E82F87286F13CA6045FF156AF7F9869B367BD12B815DFF704CD46FF799332EB36733421CF9 +ED572DACCF08DD3A8F5123A2E49F81D76E0F12336CFFD8C02F5EE0B323C2D035F7080041985F5B +75A933C0701C5F06686A355AA7540E69254D167E701D96FF9885D2E51FA1F11EF51322A438BB10 +66A7CC31A987F0AD60B16BB433932D347B81A04D973189D9CB7866DF03344548750274655A1C20 +D0A432A3CA8AB6BFEFFE683AF0632ECB1FA62031FE68FDD08ED586ACE7CB33E837D7983033A3CB +000202F9551E481348505F7E6C1A974FE11FC0BE8E54071D5434889167C4D978B2CFEB06AB1170 +C900BA5206E90466BE5511E19AE5EB01059262E336FCF23ED925A4537D65D81E7397A3526897D9 +A4A34B57EA0722208E72FB281AE59759351F534C6FA434B58C5048A7673682AB3AD05C41276EE4 +F8C0E43F85E6A9856C2EB04AB36C62DAC1EEC99940DFC3E7312B6E04BD297036C1DC9AF1CBD1C7 +C2F607BE5B36CF86573F0351B8179FF968DD24B5EE0B6BE2226DF66FE6EF04E50F8EC8CE38212E +2EF44D3FC3AB4042139CAC4BDBBA179B53B004E2C9ABCDE37FC30F444C900357F316D1BFD3F603 +F468F060709ED478547F081FC2365FCB53B316D05F4D8CCA1B69949399860F8B79805CD88E91E3 +E0DA59060A04C95B63851C5931297EE3A4578396B9C3F40ED3A8F2BA3E9D9A130459635426D7B9 +072E6ACCA278B95961300409A41EDCA6608CD09E8B03D23C567B085ACB99565827A8EF278CC669 +30C316D97065A2768A2CBB5F49597D45037283CAD68DFC023930F35C78D4BEDD9B27DDFD1F66FB +F426BFAFF7191BAAE4CAE0FF7019DC227B545C014AE96C2B27978BB0E751C64182F53D3B093BD6 +4FDFDAF25F9A24D7719A14CC67EE8B69394AAB2A92B870D58AA223AE755DB7380E1E594E888C54 +06CA46C0585496152B7AC9E5F687C08A2150D5F7601ECACF3F0E622D9F335873D0B2662C041F25 +3E2724F25780D0D6E881BE543D73F1FEF2DBDCCC6051573AD32C5E385137ED7895D6E087466E25 +EB950EE954DB23C4974140397868DFAE2BF002C29C636F0F57E3B8F1E804B393ACB1FB1332658E +371C78EA038EDD70006FEBF351AC3325679EC27F4B495EFEA5C2ACE5AABE13822812211A2383FC +BCEEDCC9A674572E83E76D12C1B53834FFCCBC8C1E8BCBD2CC0C22C2E1A8DC854E0AB3A1114DF8 +51A8D19C1062FFB8C21425C2B0B0CEE5322903E89742A251CB5546D39F3067F77FC8ADC8CA97A2 +26B643B43A8306ACB45AC606E416FDEC9903EBCC7CEB9DAE3406C978797AED31FBBBF0C8770D50 +BCC7F5EF13CEB55FFDD4CC5A6AC8FE32115DE81749D7059ACC3E26FA0F698FE0D7ECB538CD06FE +493B8A7C9C59D057CF2AD36CFA54FD40989228BD094A8C32A050407733536CAE2B38957B1A6D8C +B41714CC9E6003123B6BB0E10A12D8BADBC2B0082A71D5574B33DCA8A9D67402B71767F4B8F16E +462A74DDEF6AB0DFE3A03F08DDA38D8B8EC1CB9B3DD0EA934A132380E80B4ACB4D26B49448E5C5 +4FB2A3EEDB2795BE76EA690CF18ABAA29011A2F9ACD2762D40EE90D506095969C46726DA571061 +00F045AE6AECF877D1A5247A0C331BABEE744E42E59C36D5A342B3E64C716333673A52D0693BFB +735BBC6F9DA1684B2F54A0171A1CC05787E9DEEC746EDD9FA53C1DE44D80994528044F51D14862 +3BF84A5EED86BC13FFCD2FE8C5CD01A1AEBCEAD756FFD1336CF2E7F81F3F0790D302E553C3904E +399DE86B1B1A6EE2115795337586ACAEAF4D6FD1000FBB91179E345D2ADA6F9B668BD3C23E6355 +03066D11AC64CA0426E1D37DDE0068A2CE9F3846D2DD85BA475FA1868DB575E8118EEAD5D7F211 +DCEEAB4B15FED5F125DE96E75878CB0B3BBC80AD8D052223BA6FB95B972AA603C9130D70E3F28B +C6C6E8462B6D82EA729555949194B94155D60A5C1174EA0D36A31F9050F95BF70407B0FF824B41 +337AC6DDEC50617D21F74F7CA6B6C85DEB08373CF0B3E4C29D5BE4F2B5797DB951C7E6E0313641 +DA7F0FB1DA1E74D733EAE053E4E54661D012C1B090C2E7B4B581AC4FF21BA87981C5FFA9768D77 +F9FFADE246BAFCF30A2985071E425EA2F5A40331AED05297831B43B5DC94C62E7E5D95082AB102 +BCE44682A8959CC43024DF7FBFBC8D0E60C28A8DAEE61D506340258099D97D0649069F3A8CCCC0 +67FEB9E6C782D1B867AE1392006D857A21BEE5EDFEE199D51C4D6619849D84BF8243EE94A34A39 +6557450E39F680B6A2854A58CD88DDCB2751F81EEB24FB4D091E787D6AC451C3FFC953DC2992AD +6DAA0ECF16311D5CE57E8D9C240BD5B95CEBCB7B3747FB8D3E95D3BF98172C008FD0CD69A605DD +1522C8424BBFB62B48F3C9C88A58E19B4FC051D4BD3C0B019D55AFCF4BE74B1907574606483E2D +7DB5495D8C1AF25C14DBC4BBB39B17ED53EF6E69FCF6D26C2714442E471D04217504AC9A6E86E3 +B29BCE9A419C88B891AD681225ED86D059713A23A2753DDF1E607D6ED0FBB2FA535B5C89220F62 +AC9D912C06C8B73E25C02CDF4036E0DEFFB83A6F17121DF3E2DB6B20586A8B5E70DD350D6D693A +2EBD81AC0D9E7E998D7E9B22676D0AD781098CB142A1671A77D548AAFF379A22076EC9481D732A +3F5CD3E55944A0DD109E84280BA5C682CC0D00196BBCE1F4D49490065039333BCD761AD078E88E +81DBE4C9070F7AECDDBD6C3F3C7CB8F6F126A084E185FEA045A80851BC60E75AE1F8F3F93CA6EE +79233E3146B04C6CCB0892B45E8D138A39F8EA5D1DBC3113A376B924F6B7B27435FCA24C4D8598 +F3C8946A2713CE19F5D3E42DF12029F1E8D7B36A54DDEBB6CE8C00AD49396FAC68FF1D7226E331 +31DEDC6728C4E7A3E1287DE18EA76EAB9FDD06CE8705A22108F9BDC199C6E0F13CDFE7225274C0 +266C54E4E164A71AC5340401DA3CA9C7EA232C20BF2E8AD458AF982AA4262A2C86635FF5CEC54F +54CE340360A87B664049C77780CD4FF6221C0E51D9B4792B85B55E08FF9A07F590369F79913211 +EB6DCDBFEEA5FA196D949ACF268211F58DD46B236465DF12E5091D995011B790C234611265B0F5 +76CE003E223A18991C2DE9689A55013BC4A8C4767C094B65F01145C03645E3A589E4C1DD335C1F +36AE7BE810C423CF15F452529BAA450B7024F37B24CB0E0E1EB32CA98C6A17FE65BDF6836EE9DB +5BB873F10D7FFA49816D53BD5C1279DEB333251CF0F64413D1F19FF118F069D18C6A31387003B9 +615DCB5C0BE9D44EDD0AD67806B106182E33BCBB84CA476E8D556FE6C96487BA247569A55A0262 +145572A67DE6CD3AD4DD6F9F45B4119F5D512FCC3A7B29706824639CD47E1DBDDA9A79D23BA81C +7035C0CA48FB8A5473E97BE8335A6BD0ED83774DE50BA02708FDC3ED585F076B72A2799B0EAA69 +7AC9B6A0A09EAC551C34FC8370B99416865BC17B7D4E42872D96E4BCC41EE9BCF505287BD50BDA +93C92F7A526F5505A45E801701CD1A135AE154B645D6EF997081CBCC670BD7694FF08FC9A7D617 +B9E1FB61E093DCFA92FB0FB7395BF9EB95BFEF8F3F8B7E45433F060EC06F9A62C933CF6516E0B4 +E9317CA50ECBB6EC2DE2C2F0D4A76010CD9E33FC245AF0B7D321505ECFA0A23C587C150A156031 +65308C1EADEEB363012AC20791AADD8A14DBD019CFA00ACC487ED49CCC042F6914027396ECA3DD +547D872250B1963E25D0671E6B1804307F9A5EA35A965DCC58642D0ECFB0ABF8683EEF9C9C248C +22EAE659F55278C280D232D62812F3348727136ECCD7EB5AE79D51782891EB5E7F49523900403C +29AAD6FCA3FE2C841CC0538C93F780B42B9F6761C262493DDE2137E6AC654B29BE016F8F1E29B5 +41BCF929F25D2E5DD5C2430EE1E10FAA09A6827526A6002230676709B8F6822AF4E11D338627E7 +A0DA89A9F65F170A28166782053CEDB063D50D031A1FB5C6B3AE5A38C2342B4F7F46A073494378 +D749B1268F2536415D7D8C39D192EFC4EF5D3610B6E3785161C49B8FC641AA50E55A3E1A6A245E +7BAB0E0F335F2D7F4A41582482FA9713F70B3EA2C17F1D47D5448663CB12D4C59CAB0B8379EA41 +B07AFE08688386EECC12CA510DFBFB29165837494E87EC3C4186B70DF1BAC6B75EFF871ADB09AC +9D91DE8078597E559ADDD8FE92598C856C4D7A99A2150294BAE5D58A79D0B04E1577EECD8C2A12 +EBE4003A8E3026DEA2BD9AE969A73DA29C831772244F622490CB7385BC2690AC9858CF6975D85B +64EA77B5AEC1F8DA0571378366869C93114B184C068BC28512260C2816C44A632285CC25CA1D79 +7DB0D901EECA675FFA1182AD6D48A8A96402D07A288CCC02F8A7CE0A39084DA379C5FD08743060 +851BD02A3C9CC298FFA0AEAC5F5E1928C46A6EBB427D2AF9D32BD0117A8CD7B453C66FF3916309 +2568B5A26F210900D466EA5CE01F14BC1F57BB0D3186BEE9BA1A5648A275A61B73ABA09C9C526A +EAE2D8C613DC39AC57A0DBB95E2998643E5F3757AF5C388326B3E1A0A451D6C4539578AC643AA5 +C45296DC2E949B999A8F6594EB35FEE1109B8611CB6CC2C2073C6D7E6DCA96C93B7A5D18E1244C +0C56C0A57D69540565B7C4F2A6F0C4CC62A0D7006DCF021C829ABF6DAED3ADD521703AF38E8C6D +53EEA1C51B7587BC0FE053103291860A4EA3558FBEF392BE7D14266CB799E8C6A7FBA8086CC183 +FF6AC0B38DED37E87AC26AC0350AD5D8FD240FE6EB854B3A2F12C55D4B059ED87D7B9E53AFFC75 +A00C08AFAD9A879AB86EDBC442EAA1AB6F9FC47CED3938965D74745049D82B6CBA49A201694236 +B4EF3F050A18D3BEB24AC8B1EAFBFE08B2B900F04AEAD7DB7E52ECE94A223D107DD3730ACC06E4 +78A4D5246D21E1C13E8A3FE77B384E6B2E5F9A1A9796A0A60B69DFCE55276D265EDBDF31E16EAF +47B0C8CA4D1CA69CAB9A3F3B4B4CBD2E6AAE08682595EDD310B61D473F52496131E9724B3F5ABD +9409B548F310D8425A09FC7065DDAFE09F7BBCEBCCFBBDF469976295F014FC36F85D78CB477CF3 +82618E69D95D49E487AB3F1357F817CCB4BA552AA968CA538DF101E3707BEDE2FE4EE3199EBDF6 +24240386CFEE2D6748669ACB4A77804FEBD887C1E9DABFB6F92FCF44FF7E879E3F28E76D08ACFE +2E6A61A9529121DF1E040F19C8BDE0EE67D6FFD7E49B91F7FCD818CC4EAB7F7D23C538A03F4FB2 +63A49D1F6E5A736F685CEFEEEC53BC7FDE3693DCC2CDC2CF600F9375E7C4A878B80D69A922C46A +50C2D5DD16198CF90C084A43A52409F896D7E6CDE4F732FC64CF4860C33A5CF768FB14C34B036C +48A8ED5370EA9D30219362FBE48278532B0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark diff --git a/Build/source/texk/lcdf-typetools/tests/uhv_dl.pfb b/Build/source/texk/lcdf-typetools/tests/uhv_dl.pfb new file mode 100644 index 00000000000..657c19f3a61 Binary files /dev/null and b/Build/source/texk/lcdf-typetools/tests/uhv_dl.pfb differ diff --git a/Build/source/texk/lcdf-typetools/tests/uhv_dl.ps b/Build/source/texk/lcdf-typetools/tests/uhv_dl.ps new file mode 100644 index 00000000000..be4e41bb28a --- /dev/null +++ b/Build/source/texk/lcdf-typetools/tests/uhv_dl.ps @@ -0,0 +1,218 @@ +%!PS-Adobe-3.0 +%%LanguageLevel: 2 +%%DocumentMedia: Plain 612 792 white ( ) +%%BeginProlog +/magicstr 1 string def +/magicbox { % row col char name encoding magicbox - + 5 3 roll 54 mul 36 add exch 54 mul neg 682 add moveto currentpoint + .8 setgray 54 0 rlineto 0 54 rlineto -54 0 rlineto closepath stroke + 0 setgray moveto + gsave /Helvetica 7 selectfont 3 1.5 rmoveto show grestore + gsave /Helvetica 7 selectfont 3 45.5 rmoveto show grestore + magicstr 0 3 -1 roll put + magicstr stringwidth pop 54 sub -2 div 16 rmoveto magicstr show +} bind def +%!PS-AdobeFont-1.0: NimbusSanL-ReguCondLCDFJ 001.005 +%%CreationDate: Wed Aug 3 1994 +% Copyright URW Software, Copyright 1994 by URW +% URW Software, Copyright 1994 by URW +9 dict begin +/XUID [1 5020913 2322999] def +/FontName /NimbusSanL-ReguCondLCDFJ def +/FontInfo 10 dict dup begin +/version (001.005) readonly def +/Notice (URW Software, Copyright 1994 by URW) readonly def +/Copyright (Copyright URW Software, Copyright 1994 by URW) readonly def +/FullName (Nimbus Sans L Regular Condensed) readonly def +/FamilyName (Nimbus Sans L) readonly def +/Weight (Regular) readonly def +/isFixedPitch false def +/ItalicAngle 0 def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 106 /uni0237 put +readonly def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def +/FontBBox {-136 -225 820 944} readonly def +currentdict end +currentfile eexec +8A776DF5437D053715F33367AD5C2F399F4A3C4AA93FCBA250D54A7FA4D42ED633AA72E9BA3524 +9FEB6AB601831178A0690247FFCED3A15C9247FF52A6532CF582CFEB24204AEC140A2201F906F5 +B5CDF776DF1D8C3C1BB0985C38BBA74E00029BEDDF054A05B3B58985E702D2EB02E7FE3316CAC3 +A26DF2A45F5C8EAC11F6A49E79410F4873FBAB97238F123226CBFF6A289FB9E4691F8ED807C137 +C58417798F0381B07CB95AAF0FBF147DD54522894A29759A34CE5A8EF84645EE900D569DC6F224 +ED221522988299C62B184883B76599E2E9B764A8332728F100FBABFF0130700F37057D0803712C +68D80564AD85A1FB1627D2D8A57A8C4F4E500671382801CCB781A28D3B7F94977D467410DBD713 +B6CEB0739972ADF0655BC62E41028E8F0F4807E7FC46B04028C7426B73282F6A0F1D927C2B967D +2D1159E84555D3D137FDC7916C501EFC8CB198BB3CCEC4D6238810E0E2242D7ABD704CBAEA0BC5 +14290EFD29D231F461821D89C2A481CC3629806E3A19D4061AF6CE2EEC98258A60A9A0E55D83E8 +ABCDFE0CE041A71B0CE66B3975994FAE1A10501DDF574F108E3EC20B62565A2D197F37A43F04A3 +3234D8F830BA2182960BACC37DC421CB518066D9CA204CF47B1BA004E23C50D4E99FEB2C090924 +34FD9587B668585C24AA810D05602B972811AD643DC907720DABED3187D2A7C7CC5BBB0483C8AB +8B30DE4946F745FE5886F8FE808436EA1C2297DC8AA1E8582F878F0B3D6739C1CF3DF8575CF84E +EF242B72A1A46723C2B527D7DA458DFD9BD359A5F95971926EA5F9111BE912B187C98027EF1C13 +8CB8B8BF7CFA44701B6E876BC833A4809B58408574C26A511BB88DCC8679D6C5F2178A4A8FF769 +3E179E6B45BA2EF6CA772A67B0A03171063A2856A63267CA8E17FF61A03AA18C68882F92FE4123 +02F79B5C2966C55BC04E766DAADDF0F74DA7D0D09E4C618453074D3CC3E591AACD7F034D853307 +D2CE251B4B5A3D2443FA760ECEB2C63EAD4BF74F1E5CD3785271BA8CDCF28E81A7BE12403CAD2D +9BCF7406708129D7FC702013FDCF84F433A2A4D940B2293215C6D7DCB9940033CE9BBC5626F299 +1C85D651A4F2A85A8FC036F3583ADCA56CC9D14534C83B14C8187AC73AEE2B63C6236AE04C475C +4227EC552B74C12429D0658346B1FF72ED222187021BCD51B1AEF783C49A465871EE266F7BA65D +B794FDDD92511EF7E76F8DD7086AF1F5633728C29E7F9F549867E769E288BAF33F4C31D3EBF1A6 +9D795A40252D021D5D219435A7D82AA92A612512C0441D2F688B2992950A37C85FD47298A73D16 +9DB7E9DD5020199893AADEC37D7C243D18C277A33F6077EE8B6E765FE6B7FDEC4A17880D72FFD3 +0150CB894D20093260CA64384BB666E51C9B69274DD20872149B42C82BB3224095393C24C1C1B5 +30F45559EAA5C3D510163CF44F589EC823A8B30341E8591593BCC282D65C974A0DA6CCB4EE6F28 +0A7E3F4F0AEC870BE8A81F78D4E635892BB1BED62A1F254C67CD0FB8F88F8B5FFC76EC01CA3F75 +F7B1FB2EF96B3529F7E2ADB2B07F3C170A809F85099B7B51748F5CB77B9A81071963D664E4485A +2C2CDCB1EC6F3647986AFB6068FC0A6454AD6A780A327290D541EE553BCE526871486618560AD2 +CBAC0AC17C86511E6C7A1195B7548008B0B05962D00FB27916BED5135A63A36F7D29FDCB9F7B50 +129524F5DC0C82CD1D16B1171B21BFA756F59BD601DAA51A6C99F8BCAC305F2AD53269AD383BEF +C71280725D2928A3EEABBCFB4367042978CC22EC2B6E450696DC045493849483FF641CB1712410 +D0754C4D18E600B50FBA052C966428ECCA0672626C4F77BFA5AFDFF28D4F65CB602CCFDBEF4850 +4E2D966DA6FDAEFCE351ADE2BD8E83150023F04C66788F0E6B5FAA3AC1CA9224634185A44BC5EF +DF9EA935CC36E9F380079D3604CFC112031793288D22470EC75FEE26AA7E697F6ABF45973CFAA2 +C2532543994A113DED1343F1A6D6AD2C0C624B8EF5CA1BB4A3AB0F4503F961EE58527DBE9757C3 +5CF973571B396DFEDD71DBF542EDF6CFFE92CA0DE81693EC8C6C340FC6E867724F20F2D7EF1EA7 +C8BFB7B8D79D609458B6EDF1E27127BC4F3BA5E9E4F247CC70612241D64245CA5D33269AEDF4DF +3A621CD7E167998BD17628376EDD03615680140785440936F8E4D8E14932CF8CE2833075460228 +837DBFC5495369BF90AFF399F5A6E40DF4B5B61327A3E94CBEDB80CA353AAFC80F3B2A0CD0C5EC +2A742EAFFE9C424568BE25B851B2232EF4F4D17C0C03F497C096BAD2E328B486737D2A0C30B5C8 +A43F11A8522DFA17C5D2C6AB94741239794DECE434EA4E2BA417AFAF3B7019CAEA454D5B97BC91 +3DE74BAD9CA0E62327CF6D8E78E9D4F2A98F3C4C6A49977B7CE719B3DFE65053A96FAD4E2A8D6B +BED6C20B040BDF0FF9F32B392EAA59266889ACDE26644F4CE568D5AABC6E1AF8A2462C4ABF9F0E +D2274DCF8BA752C4FC5299F95C0DF6C59BD25C79D77D6600749580183C9F4542A6382ADEA829A1 +FFFC017CE1B3ABDB7DC3D9796AB2551305377EAF66D245558F442CEF1D4A51D67FB3C72CACBDE7 +4155CFCD2C6D8AF4A8C028D7BA7BABE733932695900A786CC78E92F8201BEDF5CC4827BEB83003 +36EAC56F98080C309DBA62F763837C5F661C33A0FA57CDF95FB67DCE7BC30352EEA70EFA79F559 +8E039FD4F350293BBD4996FAE9F0E2EAD3A2CD613FF3A2B6722FAA856155AA67D9F1FC972FA241 +92BAB82D35C223B38EB0EBD472F92ABED15435EC33FFE201609105D7B36BD442EFCF36C76D0C91 +EEAF1355318A44A60A6CDE7E4C190FF2D20FFE3CD9B9A9017ACFD5A99469002147E0573A758556 +6EDAA51B5885EA141983E4D124DA5551335FB87E5AB9582A51F5972E2CB61E86FCE7CAB78E53AD +A7268688F6CB2AA3BD9D2CFD6169351CF0723645FB8AA8CC86B328A8AEEAFEE5999946586DC780 +DF3A7A3BAA7557E61845D3A77F33312C85FE6750B28011B36073A202352EDF5532AC592F9B489E +E0D50D2601FC21F1BB885396FD3A31E89EFAD2D66ED4B60C04E8C5CF4CD5F41721DDAF67BD596E +471739939E6C63B99F7C3E729684ADA42C40F51613E47227E28D71F45F1665B253D511BF6E42BD +2EE4E15956C02B4FA2DFD9A59616FC7B40B8D0AE8FAB39E00A64C5ACDA890B3D05CD8B85394188 +BB9284255AA93CB7454701E4BC95DDDA2B3B3A9F9D3257390EB774718D57B1C58F15A09EA0BE01 +3A1C545577FAECAF1733CEBCEF249D5A9A015D53763772D206041CEFCD67DBEC9D612C3CE04066 +938F093D366B53D63AC5CE2D2952A92E37057BDB80FBF5C310E5644C6FEA29BB8F88FCA8C77C3F +D3697FBD8D2243ED29B9E50E67DE4BA834D0BBCF12CC1FE3A576B3F5D7B1ED4C71632E906E4F91 +F7B9CE3840B690A30AE7621F628954A4034466A80D878C2153FCC18FB5771A74CCD199B829AA17 +9AD16D5049AE0A67D840CB7A3BA6E34C2B341D082207DBBA01205B0D3EB7CB698CFA985AEB5826 +72D10D67D2F5F04D4CDCE8506EED26967E5A2B1E123AE3DF654D00621AC373B54E0451E207242A +136C63F624C4282BF248322B29C3C55FBC579F7A4E9B80AC0CC8AD875EA309F89F7BF8F9A8F692 +0F04FAF61CBD5CCE723DCC02FB2DCB78A33DAB4C90388EFC34380FFDBC097F14EEF887CC26EE9B +355DF262C7873FA3452E4847E44787838CE02CF06E95D285557E271E5C24F33AB005C5856E1A6F +8D1730CFFF5347BC2ECD417D8E3C0A8F33ADD7FBC70F1F8B83CCAB9EBDFC6CDDF84D58EEEBC42B +C319A45B5568C2B4F2B7BFD0DF809566D977874750FDC00D3E246420F6B3D4962F4ACED52FB609 +8FBF3B2B2C6F2BBB5CAC7FE975F3988BD0EAE850869545D99CF124DEE6DFFF231DA95C02A88291 +F90DCC9B029A64A9CBD6609F29F4A8677B75E8A4CE3F1E4497C2322690C80B4359AECB51F993FA +6FEA597A497790188E09F808840BAB44F3026A8B67C1CCE64EEA5A5599FC4FE0FDD9DAB110FD62 +EC9A73924143BC3149482CD4BFD9D963429B23F98AA2C9F6AEEFDCA013A410D6F00DFC88BB4C8B +A0D4A985E767F139ABAF361372EEDB2F63B769DB53CFC3A2FABCF8CCC6DDE69C1F7B601D43C276 +4EEC734BE46FEBB1157B86F6F1929FFCFF6F145EF3AB6103C9ADA3A78E6C78CDC4FDA9646D7FCB +7F005F00560B415322D5975A3767E4196EE86F878496B4799323C1E7A24DD0B26E9D5E46CB3B26 +A0F2193CB98AB104848B7F133BDE9E0DB446E84767396B762B025052CC0B875E2AE38705CAA97B +EB79A31960AD35029993B709E8558F8AC118E4D35AECB7CD253B9F7A6618BED9473B4C6B1D2B28 +BAE23051E228F72F4C09558397BEC0C6FB32D1D4E9EB62F864BE2AC78EFE7BADC69A2ABBAA1F12 +13F275B5799247E1BDDE646249F4AB4530B93C593C8D4B8BEE6ED1621064CDC9638CB1C5A26070 +D56A50DAB8965EF4AAFE9D009FBA02984BE73033A5965240FD1BD2D1EB81EB3BA7FE135916D068 +9CE7BD0AB32B4FD4CC75FC97CC5476A60E344A0D58D0CC429B619A7B362B8390C01D9EEE7A6EF8 +EE06D04674F7E0273AF99CA790DAFE6635D5F2A5144C330939C2B0DCCA077020C7BBC9BBC6E2EC +150BE1305EA995651F48649EE9A5C7C1A4F3F100E42B05EEB9E8A1827371DC988BCA36AB4BB9AE +A9E52E37567ECB5308201E2EE7BAAB1D8268853E35B60669561C6A8D51B5A648C200FC477FA959 +D54A8B728AFE28DA747A83B041E2D3628720975D6CFA323B37675FCFEBDBCCAD8010A69666B3A3 +6C9DD801EA2ECA4ED7E9446120FC54A5D9CF6956DEEF7EFE89973EF3AD7A7624F41918469DF731 +9CD719FADEFFC8ABC578729207D77CD44B4DA16252A56A069E46C2BC3E627F98FBC3334BE3A172 +17090CD02FC933F6686F3E37E418FF4E9147333BBE21E150F0B167DB5834AC993FF606803EEB62 +E82A8BCA847FCA2656DAB74FB9F1BC22C99A18A67BDD7C88FCB7D4164B40155F2A686FF90EEDEC +DAB94C2399D647FC3E233609F154B8D88D6104FB6DDB4558F40BE5C5634AF40845F19EFCF6D968 +6D4E47E00EA6C75A8389E2DF52600AA2A0BDE67D4B2C0E660E3ED2B6B3F7078F3664474C194731 +2555B28411865300F74E38CD1F9D51B83A9865E3BCE98710EF9C4FC02B20960325ECF89859DE96 +3D526FD92B764BF17A502EF61F2C0DDDFBEFABC79623B4C666FAF81E9D9AE8662A3AAB3B4D7CD2 +5EFF8314D306F8F7F3803095B30C111D154FEC9AB335B7FD3DD81828D10CDB8006D81FC186E1A2 +DD6FE8C388AE87B71BEC95774AF6203AC366C5547C7EC2BE320C2BEE758E0E325BDB9D6D6EEA0E +DD042FAB742B219DCBB6DBE8CB2603087B02F01BD12FEC2E33DF4E309539784E43AD0D42A5E66B +B102049E7B4148F6BF60D62C1A09EFEAD35164786D8F308095F6E4954BF05B5F7D3FFEA09038F8 +05AA6C2DA318683BDD7747D55F11BFF2BCFE9A51A68FD2BD8A400145E0F29E550C2640DC689CC7 +5B9EE14B95AACBCB8900DF6B786FA7BAA22DD7F317701ED3851BC73FF23F3AE1C359BBBDBB6BD3 +3A3C616DBCE141AFE0283A816ADEA72C1F8EDA2211C9FFE9F3B7B0D6A26FAE0A185A2BF1833C47 +F7E2BF7D96EA37E77CB44F7A512E2E3E0EDD6C7C7EA0727255128B16AD7138EB08B97D6C3A709B +DCC280B1303DE86AA4967895AA3B8EA4C02BA57DE84463FA336E70C0FF5D52C5B136479680BFC9 +2B02197CC693E79B1D47FC0F0A26B1FCBC1D0B32E5222E13990F978D0CB5F975BD242EF519D557 +2FCAC60AF20A93303C2B51DFC43597233E531F4AAB337F74CCEFEA028299C2D64529FBB07997E2 +E16BB5E53A8C707E05AB536C5C06CBF88894691B006CCD17F3E5307569404B28DD849BFCDFB925 +0F24D262F467DF0DC6EF6CFBB0048B4F9D007ACB70493307AD808BD94D00B22A754A2C036F6ED6 +8016D19BC48DECE862A5410A35D0D69FDB513912DB46A38FC8429AC81F1192AEE721180DB5195C +749596B8C8C56E01633F89730B9622501F8CB5D5F69FF4372403AAF037F7E76A1381E684432B23 +EF0EF19A0A9E96B569DE96125F850FBB100D78B780E008368BDB380BFEFE8186488B0091DBC764 +062ACCA2120AEF241CCEBA1EC7526F48FFEACC8B890286E8AF6CBF074BDB0B0FC1FB7E06C37037 +72B4837D9686E0C33BA40874378AF9D3021D4A442B0F3CA16795792E90CF0A3195195F711A7F7A +63FB438904CF5DD1D78232ED6B9D231A0938FE9186E3126F13EFF09C108F3D1FDCD2D2210C8409 +1C23DA25C0DAB52472071AFA04BA40DC0C1501C70940E0097DC31EF852F2EA8FD07537206F5968 +DB67A918691B449152501D92FB427616E7360B9677DB1B87A8DB07C75CB9E40EDEC692B4227B38 +655851E57C7AB114F0CB9D13C6C4EF5FC2562314C6C76C0F8926DAE4CDFFA5D657DC0F484A1AB4 +B81B3A4FF18A352A12C1AFA4E2FBF618ED8536BD539A2C83EC53F94B55D7F77D1FBE23B16AD6A8 +2960905B1BCBEBEEA59FD514D21C5996AA27E08D5D27D90283144C86A2E247D33C8524EF74509C +2E644BC61E93DF326924CEF77DC913FC9105E4311CE8833C8FACA87681E8C100387DA491C6830F +E0106C6E1D609DB365E8E172B1B8EB03BA5FF3FA72D8185C844E1B9A44424AAF8E587DD0C905C4 +27E861441205E8E220369EFF1B6B478FC59CE3700BA6EB43533685FEA672BD59C4AA2686F03ACE +667D5544B96BFE67D77E84384EA58F95C1BE89C4F01182F481E7E7224B3C31396796C46EB1ED97 +B9E4C0930889C322F07205A5FBBA900B3AE483F4B5FDE8D62A9682DADD4FDC69BA026E13DB24A1 +4DB2131EE302046BF90A42BC15C35C59B6B1890F3381AB442FF4979FA5A304F966C63FE43AB9C9 +E8A989AF06BEE31983DB02ADC1E2B7193996A1D20609E9194CD688F6A73BCE98E2B930976BCBD9 +77A4253AB70FDBC5C65CA66C42D71E943A117915D5480F819C48C2A0BA3A1674AF7E12083A7B94 +CBDB962CB658BDAE59ABE6D0C124A70B3A20CB5548126D8F089428CDA110602AF96747089994BA +134D54AB1ABA72F3CC616D685AB3A332F23BC701AFD913458E7225841FFF41280B909FD9FC1EDB +4734D25417C1AA850640549C01BC187B58332D570E6D5FEDBCC33C52140778039BAC71A626DD9C +09E457C91AD4B91D14EBA70E617825FA81F656E7EA350B8321E20245AECA530423EA5A6AB93B0D +9DD12517CD9AD8EB42925E6954FECE297134DC968319B61C04DB4D6B05A6CE3C4E0DE38F4776EE +E68820853D24D116921317FC388DABA5B699249D5F5FE31115FAA8E327656B1D32C62668C14973 +CADCFBD4E95BB6A5DFD3342632926456F9202DB40D6B7D9B0FEB99E887BC9E537535E9538F7E98 +AD22ED9BC71F47CFEA882CDEABC2438E67055357BA7AC22A52F36D5C9A96A7151BE69CEEA51146 +18F966C2E05C34FD9E6ED3E10FDD10EE8BE4911F92D23FA5B97DCFAA2F85FE911960152ACA008C +F33F4E24B62E517936718CF7337432327DCDD5B15322B69CEE13373FA4C18C291E79423F6ED02E +EC264C9ECFB9663524F835AF622EAD4C5E4177023D38FA760EDF14820A7DB8FD5A2C3CA542DFBB +DF58C8ED26A00F587C5FC1A4E12286AB99BB47D79913EC64DFA62F562E012657392A580EE58BE2 +82A6CB338305AD4A0A5D35918D3D50BA4D9B17F41AE9ED823CDDEB8DD0FF4B4412A1E9760AC27A +0E6FB32F940DE204EF65AC49E628DAEA59D1F268AC385B0DDE5411AD6E6712ECC04B9B773CE9F1 +6D3FF6E501CFF06EA0946A1958EBA1C41E70946FB2F7E7C314E49360AFB43029BAE0D96E87CD33 +107FB4C07291DDFA09D22D9463622A7937B650CD3DAE653DF1D83809CD334AAD264564C8F647CE +5BEB1603C36125C767806E0FE5E6573DB6FB5CFC23630DA74741387D8DFC11DC0B3C1520BBF4E8 +5D8598F0825CDA2E14EE00BAC6AC47410E66461767E3AEF40860169970740D3DE73BE82B1A92BA +64B8ACB442DE081374BDFD3EE818C316B7D3FA7B5ADEE34D2366A488D21143B401BACC0D17A58F +85FF033850F5BF21072F407F1134CA902CE03B5E354B240F7BC2353316D7461641C4AD31A431F4 +7CF67E6AD90E05329C381E57A872F7D70F07900A4634F45E442EF86BCE9D2FD33A7ADCA6DEB625 +73B58C577C719FB07C4AC08D1AD7D162AD48E315278328AEBE51248DF95ABF737385779A4979A0 +53313C6D1AC0F4755E5F5F19AE3A365167AE1DC0EF15E576EC84F134B52C36AFA90B26F1AB910D +596E5879E00689F49AA47DA1C71EAEEE84563E9939D012FC8B90FC1CFF139A3634A715158BF960 +711772EAA2B52A9CBFD5EFAC057A4A44EC05C4E36C7AA8112B17E66B226E589F2635D1585624A1 +6E5AB678EEE8DFDC0E2A44FD2FC597D80000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndProlog +%%Page: 1 1 +save +/NimbusSanL-ReguCondLCDFJ findfont dup length dict begin + { 1 index /FID ne {def} {pop pop} ifelse } forall + /Encoding [ /.notdef /space /uni0237 ] def + currentdict end /X exch definefont pop +/Helvetica-Bold 16 selectfont 36 742 moveto (NimbusSanL-ReguCondLCDFJ) show +/X 24 selectfont +0 0 0 (.notdef) ('\\000') magicbox +0 1 1 (space) () magicbox +0 2 2 (uni0237) ('j') magicbox +showpage restore +%%EOF diff --git a/Build/source/texk/lcdf-typetools/tests/uhv_re.afm b/Build/source/texk/lcdf-typetools/tests/uhv_re.afm new file mode 100644 index 00000000000..a48418688cf --- /dev/null +++ b/Build/source/texk/lcdf-typetools/tests/uhv_re.afm @@ -0,0 +1,254 @@ +StartFontMetrics 2.0 +Comment Generated by t1rawafm +Version 001.005 +Notice URW Software, Copyright 1994 by URW +FullName Nimbus Sans L Regular Condensed_T2CAdobeEncoding Enc +FamilyName Nimbus Sans L +Weight Regular +ItalicAngle 0.0 +IsFixedPitch false +UnderlinePosition -100 +UnderlineThickness 50 +Ascender 718 +XHeight 523 +Ascender 718 +Descender -207 +StdHW 78 +StdVW 73 +FontBBox -136 -225 820 944 +FontName NimbusSanL-ReguCondT2CAdobeEncoding +Characters 231 +StartCharMetrics 231 +C 0 ; WX 273 ; N grave ; B 11 593 173 734 ; +C 1 ; WX 273 ; N acute ; B 100 593 262 734 ; +C 2 ; WX 273 ; N circumflex ; B 17 593 256 734 ; +C 3 ; WX 273 ; N tilde ; B -3 606 276 722 ; +C 4 ; WX 273 ; N dieresis ; B 33 604 240 706 ; +C 5 ; WX 273 ; N hungarumlaut ; B 25 593 335 734 ; +C 6 ; WX 273 ; N ring ; B 61 572 212 756 ; +C 7 ; WX 273 ; N caron ; B 17 593 256 734 ; +C 8 ; WX 273 ; N breve ; B 11 595 263 731 ; +C 9 ; WX 273 ; N macron ; B 8 627 265 684 ; +C 10 ; WX 273 ; N dotaccent ; B 99 604 174 706 ; +C 11 ; WX 273 ; N cedilla ; B 37 -225 212 0 ; +C 12 ; WX 273 ; N ogonek ; B 60 -225 235 0 ; +C 16 ; WX 273 ; N quotedblleft ; B 31 469 252 725 ; +C 17 ; WX 273 ; N quotedblright ; B 21 462 242 718 ; +C 21 ; WX 456 ; N endash ; B 0 240 456 313 ; +C 22 ; WX 820 ; N emdash ; B 0 240 820 313 ; +C 25 ; WX 228 ; N dotlessi ; B 78 0 150 523 ; +C 28 ; WX 410 ; N fi ; B 11 0 356 728 ; +C 29 ; WX 410 ; N fl ; B 11 0 354 728 ; +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 462 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 107 ; +C 45 ; WX 273 ; N hyphen ; B 36 232 237 322 ; +C 46 ; WX 228 ; N period ; B 71 0 157 107 ; +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 10 440 496 ; +C 61 ; WX 479 ; N equal ; B 32 115 447 390 ; +C 62 ; WX 479 ; N greater ; B 39 10 440 496 ; +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 469 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 ; +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 181 429 322 ; +C 158 ; WX 456 ; N currency ; B 23 99 433 603 ; +C 159 ; WX 456 ; N section ; B 35 -191 420 737 ; +C 189 ; WX 273 ; N quotedblbase ; B 21 -149 242 107 ; +C 190 ; WX 456 ; N guillemotleft ; B 80 108 376 446 ; +C 191 ; WX 456 ; N guillemotright ; B 80 108 376 446 ; +C -1 ; WX 547 ; N Adieresis ; B 11 0 536 901 ; +C -1 ; WX 547 ; N Aacute ; B 11 0 536 929 ; +C -1 ; WX 547 ; N Agrave ; B 11 0 536 929 ; +C -1 ; WX 547 ; N Acircumflex ; B 11 0 536 929 ; +C -1 ; WX 547 ; N Atilde ; B 11 0 536 917 ; +C -1 ; WX 547 ; N Aring ; B 11 0 536 944 ; +C -1 ; WX 547 ; N Edieresis ; B 71 0 505 901 ; +C -1 ; WX 547 ; N Eacute ; B 71 0 505 929 ; +C -1 ; WX 547 ; N Egrave ; B 71 0 505 929 ; +C -1 ; WX 547 ; N Ecircumflex ; B 71 0 505 929 ; +C -1 ; WX 228 ; N Idieresis ; B 11 0 218 901 ; +C -1 ; WX 228 ; N Iacute ; B 75 0 240 903 ; +C -1 ; WX 228 ; N Igrave ; B -11 0 153 929 ; +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 638 ; N Odieresis ; B 32 -19 606 901 ; +C -1 ; WX 638 ; N Oacute ; B 32 -19 606 929 ; +C -1 ; WX 638 ; N Ograve ; B 32 -19 606 929 ; +C -1 ; WX 638 ; N Ocircumflex ; B 32 -19 606 929 ; +C -1 ; WX 638 ; N Otilde ; B 32 -19 606 917 ; +C -1 ; WX 547 ; N Scaron ; B 40 -19 508 929 ; +C -1 ; WX 592 ; N Udieresis ; B 65 -19 528 901 ; +C -1 ; WX 592 ; N Uacute ; B 65 -19 528 929 ; +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 Yacute ; B 11 0 535 929 ; +C -1 ; WX 501 ; N Zcaron ; B 19 0 482 929 ; +C -1 ; WX 547 ; N Ydieresis ; B 11 0 535 901 ; +C -1 ; WX 456 ; N adieresis ; B 30 -15 435 706 ; +C -1 ; WX 456 ; N aacute ; B 30 -15 435 734 ; +C -1 ; WX 456 ; N agrave ; B 30 -15 435 734 ; +C -1 ; WX 456 ; N acircumflex ; B 30 -15 435 734 ; +C -1 ; WX 456 ; N atilde ; B 30 -15 435 722 ; +C -1 ; WX 456 ; N aring ; B 30 -15 435 769 ; +C -1 ; WX 456 ; N edieresis ; B 33 -15 423 706 ; +C -1 ; WX 456 ; N eacute ; B 33 -15 423 734 ; +C -1 ; WX 456 ; N egrave ; B 33 -15 423 734 ; +C -1 ; WX 456 ; N ecircumflex ; B 33 -15 423 734 ; +C -1 ; WX 228 ; N idieresis ; B 11 0 218 706 ; +C -1 ; WX 228 ; N iacute ; B 78 0 240 734 ; +C -1 ; WX 228 ; N igrave ; B -11 0 151 734 ; +C -1 ; WX 228 ; N icircumflex ; B -5 0 234 734 ; +C -1 ; WX 456 ; N ntilde ; B 53 0 403 722 ; +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 456 ; N ograve ; B 29 -14 427 734 ; +C -1 ; WX 456 ; N ocircumflex ; B 29 -14 427 734 ; +C -1 ; WX 456 ; N otilde ; B 29 -14 427 722 ; +C -1 ; WX 410 ; N scaron ; B 26 -15 380 734 ; +C -1 ; WX 456 ; N udieresis ; B 56 -15 401 706 ; +C -1 ; WX 456 ; N uacute ; B 56 -15 401 734 ; +C -1 ; WX 456 ; N ugrave ; B 56 -15 401 734 ; +C -1 ; WX 456 ; N ucircumflex ; B 56 -15 401 734 ; +C -1 ; WX 410 ; N yacute ; B 9 -214 401 734 ; +C -1 ; WX 410 ; N zcaron ; B 25 0 385 734 ; +C -1 ; WX 410 ; N ydieresis ; B 9 -214 401 706 ; +C -1 ; WX 820 ; N AE ; B 7 0 780 718 ; +C -1 ; WX 820 ; N OE ; B 30 -19 791 737 ; +C -1 ; WX 638 ; N Oslash ; B 32 -19 607 737 ; +C -1 ; WX 592 ; N Ccedilla ; B 36 -225 558 737 ; +C -1 ; WX 592 ; N Eth ; B 0 0 553 718 ; +C -1 ; WX 456 ; N Lslash ; B -16 0 440 718 ; +C -1 ; WX 547 ; N Thorn ; B 71 0 510 718 ; +C -1 ; WX 729 ; N ae ; B 30 -15 695 538 ; +C -1 ; WX 774 ; N oe ; B 29 -15 740 538 ; +C -1 ; WX 501 ; N oslash ; B 23 -22 440 545 ; +C -1 ; WX 501 ; N germandbls ; B 55 -15 468 728 ; +C -1 ; WX 410 ; N ccedilla ; B 25 -225 391 538 ; +C -1 ; WX 182 ; N lslash ; B -16 0 198 718 ; +C -1 ; WX 456 ; N eth ; B 29 -15 428 737 ; +C -1 ; WX 456 ; N thorn ; B 48 -207 424 718 ; +C -1 ; WX 456 ; N sterling ; B 27 -16 442 718 ; +C -1 ; WX 456 ; N cent ; B 42 -115 421 623 ; +C -1 ; WX 456 ; N florin ; B -9 -207 411 737 ; +C -1 ; WX 456 ; N yen ; B 2 0 453 688 ; +C -1 ; WX 273 ; N onesuperior ; B 35 281 182 703 ; +C -1 ; WX 273 ; N twosuperior ; B 3 280 265 714 ; +C -1 ; WX 273 ; N threesuperior ; B 4 270 266 714 ; +C -1 ; WX 228 ; N periodcentered ; B 63 190 166 315 ; +C -1 ; WX 228 ; N middot ; B 63 190 166 315 ; +C -1 ; WX 820 ; N ellipsis ; B 94 0 726 107 ; +C -1 ; WX 273 ; N exclamdown ; B 97 -195 176 523 ; +C -1 ; WX 501 ; N questiondown ; B 75 -201 432 525 ; +C -1 ; WX 273 ; N guilsinglright ; B 72 108 201 446 ; +C -1 ; WX 273 ; N guilsinglleft ; B 72 108 201 446 ; +C -1 ; WX 273 ; N sfthyphen ; B 36 232 237 322 ; +C -1 ; WX 456 ; N dagger ; B 35 -159 421 718 ; +C -1 ; WX 456 ; N daggerdbl ; B 35 -159 421 718 ; +C -1 ; WX 157 ; N quotesingle ; B 48 463 108 718 ; +C -1 ; WX 328 ; N degree ; B 44 411 284 703 ; +C -1 ; WX 479 ; N minus ; B 32 216 447 289 ; +C -1 ; WX 479 ; N multiply ; B 32 0 447 506 ; +C -1 ; WX 479 ; N divide ; B 32 -19 447 524 ; +C -1 ; WX 820 ; N trademark ; B 38 306 740 718 ; +C -1 ; WX 440 ; N paragraph ; B 15 -173 408 718 ; +C -1 ; WX 182 ; N quotesinglbase ; B 43 -149 129 107 ; +C -1 ; WX 303 ; N ordfeminine ; B 20 304 284 737 ; +C -1 ; WX 299 ; N ordmasculine ; B 20 304 280 737 ; +C -1 ; WX 479 ; N plusminus ; B 32 0 447 561 ; +C -1 ; WX 684 ; N onehalf ; B 35 -19 634 703 ; +C -1 ; WX 684 ; N onequarter ; B 60 -19 620 703 ; +C -1 ; WX 684 ; N threequarters ; B 37 -19 664 714 ; +C -1 ; WX 137 ; N fraction ; B -136 -19 273 703 ; +C -1 ; WX 820 ; N perthousand ; B 6 -19 815 703 ; +C -1 ; WX 604 ; N copyright ; B -11 -19 617 737 ; +C -1 ; WX 604 ; N registered ; B -11 -19 617 737 ; +C -1 ; WX 228 ; N space ; B 0 0 0 0 ; +C -1 ; WX 228 ; N nbspace ; B 0 0 0 0 ; +C -1 ; WX 287 ; N bullet ; B 15 202 273 517 ; +C -1 ; WX 479 ; N logicalnot ; B 32 108 447 390 ; +C -1 ; WX 213 ; N brokenbar ; B 77 -19 137 737 ; +C -1 ; WX 456 ; N mu ; B 56 -207 401 523 ; +EndCharMetrics +EndFontMetrics diff --git a/Build/source/texk/lcdf-typetools/tests/uhv_re.pfa b/Build/source/texk/lcdf-typetools/tests/uhv_re.pfa new file mode 100644 index 00000000000..c728c2a1c4b --- /dev/null +++ b/Build/source/texk/lcdf-typetools/tests/uhv_re.pfa @@ -0,0 +1,901 @@ +%!PS-AdobeFont-1.0: NimbusSanL-ReguCond 001.005 +%%CreationDate: Wed Aug 3 1994 +% Copyright URW Software, Copyright 1994 by URW +% URW Software, Copyright 1994 by URW +%% T1reencode is free software. See . +11 dict begin +/FontInfo 10 dict dup begin +/version (001.005) readonly def +/Notice (URW Software, Copyright 1994 by URW) readonly def +/Copyright (Copyright URW Software, Copyright 1994 by URW) readonly def +/FullName (Nimbus Sans L Regular Condensed_T2CAdobeEncoding Enc) readonly def +/FamilyName (Nimbus Sans L) readonly def +/Weight (Regular) readonly def +/ItalicAngle 0.0 def +/isFixedPitch false def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/XUID [1 5020913 2552790 13843793 16426425 3718337 7959197 2293760] def +/FontName /NimbusSanL-ReguCondT2CAdobeEncoding def +/PaintType 0 def +/FontBBox {-136 -225 820 944} readonly def +/FontType 1 def +/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 0 /grave put +dup 1 /acute put +dup 2 /circumflex put +dup 3 /tilde put +dup 4 /dieresis put +dup 5 /hungarumlaut put +dup 6 /ring put +dup 7 /caron put +dup 8 /breve put +dup 9 /macron put +dup 10 /dotaccent put +dup 11 /cedilla put +dup 12 /ogonek put +dup 14 /angleleft put +dup 15 /angleright put +dup 16 /quotedblleft put +dup 17 /quotedblright put +dup 18 /cyrflex put +dup 19 /dblgrave put +dup 20 /cyrbreve put +dup 21 /endash put +dup 22 /emdash put +dup 25 /dotlessi put +dup 27 /ff put +dup 28 /fi put +dup 29 /fl put +dup 30 /ffi put +dup 31 /ffl put +dup 33 /exclam put +dup 34 /quotedbl put +dup 35 /numbersign put +dup 36 /dollar put +dup 37 /percent put +dup 38 /ampersand put +dup 39 /quoteright put +dup 40 /parenleft put +dup 41 /parenright put +dup 42 /asterisk put +dup 43 /plus put +dup 44 /comma put +dup 45 /hyphen put +dup 46 /period put +dup 47 /slash put +dup 48 /zero put +dup 49 /one put +dup 50 /two put +dup 51 /three put +dup 52 /four put +dup 53 /five put +dup 54 /six put +dup 55 /seven put +dup 56 /eight put +dup 57 /nine put +dup 58 /colon put +dup 59 /semicolon put +dup 60 /less put +dup 61 /equal put +dup 62 /greater put +dup 63 /question put +dup 64 /at put +dup 65 /A put +dup 66 /B put +dup 67 /C put +dup 68 /D put +dup 69 /E put +dup 70 /F put +dup 71 /G put +dup 72 /H put +dup 73 /I put +dup 74 /J put +dup 75 /K put +dup 76 /L put +dup 77 /M put +dup 78 /N put +dup 79 /O put +dup 80 /P put +dup 81 /Q put +dup 82 /R put +dup 83 /S put +dup 84 /T put +dup 85 /U put +dup 86 /V put +dup 87 /W put +dup 88 /X put +dup 89 /Y put +dup 90 /Z put +dup 91 /bracketleft put +dup 92 /backslash put +dup 93 /bracketright put +dup 94 /asciicircum put +dup 95 /underscore put +dup 96 /quoteleft put +dup 97 /a put +dup 98 /b put +dup 99 /c put +dup 100 /d put +dup 101 /e put +dup 102 /f put +dup 103 /g put +dup 104 /h put +dup 105 /i put +dup 106 /j put +dup 107 /k put +dup 108 /l put +dup 109 /m put +dup 110 /n put +dup 111 /o put +dup 112 /p put +dup 113 /q put +dup 114 /r put +dup 115 /s put +dup 116 /t put +dup 117 /u put +dup 118 /v put +dup 119 /w put +dup 120 /x put +dup 121 /y put +dup 122 /z put +dup 123 /braceleft put +dup 124 /bar put +dup 125 /braceright put +dup 126 /asciitilde put +dup 127 /hyphen put +dup 150 /afii10145 put +dup 156 /afii10023 put +dup 157 /afii61352 put +dup 158 /currency put +dup 159 /section put +dup 182 /afii10193 put +dup 186 /afii10846 put +dup 188 /afii10071 put +dup 189 /quotedblbase put +dup 190 /guillemotleft put +dup 191 /guillemotright put +dup 192 /afii10017 put +dup 193 /afii10018 put +dup 194 /afii10019 put +dup 195 /afii10020 put +dup 196 /afii10021 put +dup 197 /afii10022 put +dup 198 /afii10024 put +dup 199 /afii10025 put +dup 200 /afii10026 put +dup 201 /afii10027 put +dup 202 /afii10028 put +dup 203 /afii10029 put +dup 204 /afii10030 put +dup 205 /afii10031 put +dup 206 /afii10032 put +dup 207 /afii10033 put +dup 208 /afii10034 put +dup 209 /afii10035 put +dup 210 /afii10036 put +dup 211 /afii10037 put +dup 212 /afii10038 put +dup 213 /afii10039 put +dup 214 /afii10040 put +dup 215 /afii10041 put +dup 216 /afii10042 put +dup 217 /afii10043 put +dup 218 /afii10044 put +dup 219 /afii10045 put +dup 220 /afii10046 put +dup 221 /afii10047 put +dup 222 /afii10048 put +dup 223 /afii10049 put +dup 224 /afii10065 put +dup 225 /afii10066 put +dup 226 /afii10067 put +dup 227 /afii10068 put +dup 228 /afii10069 put +dup 229 /afii10070 put +dup 230 /afii10072 put +dup 231 /afii10073 put +dup 232 /afii10074 put +dup 233 /afii10075 put +dup 234 /afii10076 put +dup 235 /afii10077 put +dup 236 /afii10078 put +dup 237 /afii10079 put +dup 238 /afii10080 put +dup 239 /afii10081 put +dup 240 /afii10082 put +dup 241 /afii10083 put +dup 242 /afii10084 put +dup 243 /afii10085 put +dup 244 /afii10086 put +dup 245 /afii10087 put +dup 246 /afii10088 put +dup 247 /afii10089 put +dup 248 /afii10090 put +dup 249 /afii10091 put +dup 250 /afii10092 put +dup 251 /afii10093 put +dup 252 /afii10094 put +dup 253 /afii10095 put +dup 254 /afii10096 put +dup 255 /afii10097 put +readonly def +%/UniqueID 5020913 def +currentdict end +currentfile eexec +8A776DF5437D053715F33367AD5C2F399F4A3FF62A0B04E82D8B2B3129A2D94C7258D26C332618 +F779811EFC1D3D3AB02536EE4A92FF127539FF8455AE9134B9E14338C9759A08FE695F2CC43E73 +D6F64F8BFD9DA10ACABA4512E1CFD3807AD18E8BA5ED2C9F5EA8241B128A8EFE0CE041D06EB102 +DC2468B2728E69F2EDF084EA67DB23EEA2237E3437C1A30FD9148411119F00772297ECA2C9242B +9B16CC8362FFEC5103D95D1CE64EB8A6D26326DCABAD6EB67FF9CFBAC864E8E69920EC1F8A0C80 +F960B1628072A35F541CD03660EA32BC80231A1502D931515940235964389EBF353B55BA8BFDFF +1DBED1185F46B8D08D8109743F6374137E0ECB096DBBD52F5F76EA14324732041C7EF90686F91C +0265E252E778873A5C6463C98C8685736A368DEBDED7A53C4F471D55E592DF4944CECD9D58B2AB +987CFEC520C3DA3688E06626D829D808992C9639864E1C1C1A781B9BC262F0118DD3256846FC67 +FF9B4D61A957F0FA47C3B8C844408C1957FF0EA33CAF062CDC572A1AE06FE6C03BD745B08FCE35 +0E1DEF72B145CF69EA554A7879C7375992DA64C7AA2518D984336FD28238D4D3D18D83551C5EFD +1354DC5FE1C17800082C38EEDAAB0B182529694C57CC8CDD97B3BFAE6A04037E6C17C63E22625D +CC1DE0FA4E53ADF8652EB58D08093F7028CE2A5F8A08E743FD342CB8D9AE11D2C73AE9505E3FD3 +6302C2B3B2401009E9A501882B5CD80FD12A508489D9F9EDC38F69726B4E1A223C2A5D283D04C5 +FC885FE55BDCA67790129DFF3DF9348FAC84DEAAD2AF6FDE945FA70275AB10FF33E2E5979052D5 +BB2375B8A895B9A38DC5EE96313063DE00DF60D5353D434F774636A9FFF31264A9F33F451AA260 +D8814D8D0AF9D58C2C05CED6BA29801B04D418CC268A996AE3CD407CF55D95CB86557434082BA3 +4B031A15A3B01E3BBE9196428BBD0C58E6DBF1441D2C0CD755EC8B4E070E305CA8C05898686E59 +2150F3FF10FBFADCBB587FD9DF73E86C0A34C5B87DDE3846BEE1C88E7CB9BF23D0A9900EF022C9 +5BEE407E64C60B1BA96DD7A7FCB3C21A4A3456AD2DA23E3C07C05F5B0B60DD6119D858E8966921 +51624AC4192929EDE4BE53A5A195DC0C6C3BC7A8B6E4E27EC9CE8CCF381A425988CCCB3AE7B47C +75CE05C293DF0411EE8F0A4E9099C24E6E98BF53E7E3094ED1DC944FBA25BC27B4A9E38FC7EEAE +0D92B8CDF30CA7A54D37059BD2BB016786BCD3A049201A3900A74C5D5127C02C4D84CA7CDA4998 +FBD636E8E80626EAFDDE9081916416A25685D4C723CB3B985442E287F034805FF4F4D115579DE0 +CC45B3E713DD69949D61F4522E9FB8EDE4CF8B3A8C271BB7DF77721E72541A0BE5DD9D57684284 +ED1924042C7DC87E6B8B65CABB0BE1852F5835DDAD4A444DEA6BAAF360AA60875475F4C5D7FB1C +539DB35AF55AD17A4AD907DED12510CFC96D718C9E791C36CEE74F5C1302197F9F95D72A65F33B +AE3889DE2420B3E3A28D735C59BBD20B3596D3C5720B93A3E935AA652C0B70E655FCE2A9A26CB9 +826CF9D4504C5BF429DD5A2EFDC3EA043702CAB57B9DC5BF9831F86E8620A1DBC98AA9EB784534 +D3E9CA3F5AFD8F3024F3D8C69DB194030EDF6D422042E63BE84EAA60FFC2EE9EDEF46B33520D61 +0B432F0107E5999E8DBD1FCB20446987CEA1944FB89C57280D0F05B24866BE32C0B817A866AC9E +FBF6A6E720A938F5774FFEBCE0A319FB410F1FB095C2F2F772B9BA195B0F5957BD3B18556087D7 +52B3E4605B81B6BE387BAD1B3AEF0CFA7DD1FF26176EFBDC4AEA160F30F006AA61152CE88441C8 +F53D6071CAB17379BD4014EAD85D6E7D1FD1E1AB35834E914915376A127D87C0A5C4790DF18AE8 +DE50106FF1EC54033394AC3B0032D6CF19AD2181D6D5F5CF689544A82D323604BD9F35A475A417 +0B011701815CEE9018765F47F68F126C87B8D5D7C986B6C56E0CDB2DC3F0F6517C9C418DA0915E +CD245C1F860C6CFDEBC08F620DAB1C824E4A4E81527F6BEB4CCDA9D43835A12F424499373B1524 +4E34F01A8F3E17FA83D956CF068911EFD0CFB29AA376B984192FA321C96B32DF48ED0085B8BF72 +9B4B746748E2949006474B0D562584D0CF3CCF83795AD9FC2853ADB945EE86DE717473AB8FF8D3 +F43372160E71C50DD21993E7B054F31FB6DA5B2FB5917CDE4233587AAAEFB379C7B77014262EC5 +E6192F3C79B2DEAF6AC043B02CA8FEF643E56D5F3FDB37464D62F20B23A5BE7CC7A1CDFAE9467A +87F64B3248679D577BD8E0D6A709EF1E9E5C5A8CE0E93D45BF7F3448BDFF59C3991CCE32CC8748 +B240428832B7F084787FD6F808766C760085F06217AD8CA80C36E4673267B824B722ECB3C7D589 +B1CA0D09649D1DD383BE2942320C0FEC10032BF30B0E620BAE0FBCAF1A7D47083C93E891FC663F +9B2361F6EC1BEAFBCFDD6CE0837FEAA3D0AB44A5531C61328C3A456AD61FFB0D81C7B8F67EE6A3 +B2815208711ED945E18B4BBCED695318992A4F794D9232AAA0B75434E59690EC85B6F0E99FA842 +3A31321CB720BB2C5A1C967666B5EA77D05D1547586057151E3D414A2ACBC0849424FB01045EF1 +F9BCE363057D4D92AECAFA6BCB9525C64DC3A052D9AD33F2925757D3FD361873A28E804673BA07 +604609110A3209EF82CCC1C2C782164FBA84819CCDE8CF8FF1E99D5CDCD3DADAA8DCE582630222 +0B18AFE97EE3DA8004C6FCC4C66DC34C99EF928ED2F026D10B213D6C151EE604604BC4A0A97D3B +7E8CD1CBEDE0CBCF1AC4B24358CFB5FD67019F58E487767E9EB04D61062BA5099C8A058F33D90B +FFBD2D6CD8DDC5CA410219525E9A18D7EBD7ACD5B620C90EA9AAD1CD73018F1DB8499694F7EDFE +BBD558DBD65C3291903992D4367BE302F479FDF5509C9DCA17F461FCFD95E0E2A54A2856791B34 +9EC4076E4CF713510205469804E8602231BCE241DA6E4E5BEE16C0E56B2711938D605AAC06AD3D +EEBC6B4FDF37FC4C6C7EAA4ECA9E96FAB2DDD749480B53B920424EA7F5CD9AC21D2B6007099C99 +02475E6CE9C732262C30BFC67D25A52AB9D3DEEC9129B1D55B0090A639F4D808F5477ECB58CEF4 +049428C0FE7677606954A9AAA9107C634BF2BEB34B051A1079F3FBA009F08605A3523FDA0FAD5B +D595859E07AF8899B15063066CC08EC9F141E924205F569730EC13B26E6EA154CA8E535AF7DE10 +188BC531A1E670FD2D2605351A9B37B048CC5044D989BCAECB85E82B0A56973E51B882C137C4C5 +347F360780EE965675DB1FEA0085C0A04187F4D555951736F0A19D30B3AFF83C13AF40E46F02F5 +7FBED9B3482548F53AC507D2EB6EBD2BC01221F7E1FDC2437CFCA9F2D5BFD0073C61262008D38C +9441E636CBC5AC1AA3CA6182DCD980B4C19CD32D765D280086DC2F11DF9F876539D7F0ED8FBDBA +63C29C3A672873F6CF95F901CD7DA38FAAC43EFCB6CEAC5E7EADF0CD32C3477C6632BEFE3A661E +E61CA7424D972E95B21C7EE640EBCF67D4A10D8B0F60C9BE082494F73F5C2262E3FCC8D23546C5 +9FB9C93F939FFC5263B6A6025DF1589DA9180169A94CC461D1A7679F4887B52A559569A0122B88 +BEBEB462DFEE4836C38AB10211C00CAB352F8AC1164626E8C0E014323EAF3522B627ACEBE11657 +3F3B0E5BF06D0F86AD72B1620CC16BCBF8E6854D2A1985F09548CC9A7812ED8195495B80BFBDE5 +755BC00415757FC99E100791B6056EA7E06DD28D3D36095DEE6D200535DC536B4EED1C64D62E79 +6AB87D226F5A682139F85FD44F45D747692BFDD1BEAC8BB139E6FCABA356F58CAF474C4E35E3CA +1FCBEF057DEFE3B80D652F356910A7D912D58FB29732811950130437BAEEB5116CCB19F5CE99E2 +51B04E45CFFB06873B4666C4CD8712E5D5238A30CFCFBBF0C1C465D0522D84A89D6014EE2E9FFB +5FD3E793AE57AF6C3AED437E6A4480E4C472727523B5B88FE01EDB904CD04BDD20F1AB4E92D57A +A8AA4D61F19C1C2F3ECF5A1194DFB7C62E858B45A4DACE7DC3CD18379B90E9FD4D59F28CFE907B +F054277C41C28075A972ED162DC30EDDBB288EA85E15E79DA145A47733F0656773AA2A5F075D57 +D8F96BD2AEFF513FB161FDCEDE6EC6E117CE27CFB25E72365F282422B7C80EBFCD13335BFA551C +7AA8F633A8E0129935C31A215496F3248D55AD7163D6D9B782384FE4957C7542BC10E7F9CF2FE4 +F5DDF853C0EAE7BD440A759F69D60EF7062A1BFC0DC7B8213D06DF774E0A127D3D849193A6B19E +DC49A660527E4D887AFA0963BA6AD59D100E37DC48FF2AFF328A8E8E537444EB00F80CF79EEE03 +CF3D9FA9F2D87F0FF3EABCD681246D5BD0A3FAEED6FBEDCC43893291BD0430918A994BBB4A7A28 +53892BE9E1F0182040C3E1AE738EDEF1375818D85E00D626CC47D247CC92FF707C955750A56E24 +7ADBD9A6BD665496C24A4D6C86F05088BD364B6FF4EF3CEAA8FEF4C2CF83F39A20A5C76CA998B1 +F660EE780BFE92FDDFF01DC1A3FE0884B7EB9D5E9139B40C9E3BD4B9EE8AE3784E113CFDF97442 +865E8E126671E1209638FA5A60BC3719653EDC3CAC57B8F1F331FE17B52B8D4A0BA65202BC770F +D40658178F3A0251C3988123F88C2854066CB05849777FF435A74FE221974698D9573D963E72ED +9079834A996F5E9012352C93F8DB09970296D14DD447BED6510B225CBC584160893D523EB78739 +2C92F2282FBD398422F52D24E12643CFFAC71DE2160403ECB24BF40712464EEA52BAC4411A2A35 +A4581AB3426B888F777CAEABEAA1DAF42271B2DCA94840CA27299D0378585712E1E8108E295017 +B376071BAD7B187CE519B5402A19464CB4DC953DEFC2222CA45282FC98ADD44640348F2B1E0620 +679FE1E6BA4E70CB6EE944C5EE7644A5B7667130B227430CF55057B05CF0A1849C7B78410581CA +F9848D14F5C60236E7CD7344DE2F9977B43D1B260B2FDC354A3ADB591EAEBEAE3918638A7A9178 +D12F421F27464F1713E66B8FD1E066FB45F29E0001866B5EDD0305502489B24AE5C7D95BCF7733 +C8EC7213307B78378F6A458F698E20C51E2684199E653648323088F89CA37760EB59D590B5D576 +CDFD6C9B3E98788FF2044EDCDCAEADEDEAE8FD846035CA2CD000E9BE45CBF924941391819066BE +37FD1DB54D80EE209CC66F76350A951CBE47CC7499A6E2C94BD8F6B16BB95C79E0E29C578948CA +7987EFD698405574AF2C61E04E8B49FBA3C2072D491D12A43EBA069CFA2C9917F00EF62272B67A +56AE10A9864C6B0F32865F0E9ED4FC26425B1CCB1FF2FDBD14B53D5408099DD810D93D90DC382B +271C13BBF9F8D05A5AA406400383B9BAF01315D2F53A866C95D455702CF8467DEDB41EE13C10CE +461085D9DF5AC20881826A306E1DFDB6C3A0237F672D582FA224EB57F66B55D454480D223AB149 +1C319EC22482817D4677D759AA89358DB022D88D3FB37A6C2E7350ADFB75462745D9E5E3A12E32 +BA31E409C2835B77624B250F783E877E632A639E1FD66B020C5A86277FBA9418D70A47888B75EA +9FAECA66192930CE11FDF85027FA57C0BDA3244FE4D108DA2252CF5F412674AE2AF2ECD1CF672A +E03FC22615F73817C4C576C14B5734929785833F1F712FC633016FAB69B243B4A90FF47EF7C6E6 +8E2E18EBBB32137D1B4A8F90B59B2486E3981516AFFBBC84D20CB779951CC9EE1418A0FFBFEB4E +6E0473CAD3F3FE409EDBAB64F2749FAB513205F0A84149A8F7130B58931FC45BF90D73FAC395CF +E2EC175A491609EBDD1F7E2A2A45299C1422AE724EFDC9D2726DF2C1E1D2DD3482E65F2CDB8FA5 +3FE1DF2310AABC6D4746E0A7F926FE27DCEAA6812287979059A2FDC8E25B0AA70C75C28A7336FC +489C50D8D3F9C1EC7CA4249E88B67A19039DF7DB2C4C5B32C7BD683654DD202FAEE17D5F90056A +E238AE29B23A4A845136EBF0783540DF9FE7C7425C3C9506054A5911CEB8696DC29F72B038A82F +59FDD0DA6EA4493739DA653E039F1AB18B99AA740300CC2654A3F30B510AE5F39A73ACDC8B4A63 +513400D385CD3BAEB0AA59D7AFAE4A2886F5EE7C5F85FF0F9AF5A1E173349FDB82E523BE6E6ADD +BC411E6EA111C06D8448EB462D9975951B82A1AAA35F86CD08BDD7C5C6F77AB0433E5A59647092 +77237732DDC1190AF61B7273CBB70860BF304F643C6EB7D17F7F4048EF98505A0A8E3EEE44C3C8 +55C7995CE7D29711B655EFC1D0B3D0257B07C5C3F9C64E940C876EBA5F099A475D569C82D02423 +9D2B81BFCB53D2F703EF1B1D99A92FA4AC33BAB41070423AA2163245564FF76F05A99C92D2DB79 +1ADE0D58B50937201EB350D84B73B8B78639682E6EFFBE4DE6A0B5083ACA0DFFAF62D9DF36FA1C +2418992B3061D71E2CA9E48DF380D3D8236E616F73B0C524D7C89733D7A97C0FE4D035A50D0FA2 +EAE0C2119F4FEA0439BAB334503F9F4AD872C715EDCB1254473F5FF20087406E3652324E9C37FE +CC26324BACB8D287AACA6EBEF110CAB8928AD2D3BBF522C7180032EEA74CC0CD3429BCBF631D61 +036AF2A021FCB5252F56989F4B398FD87BC2FED9189B02342164BD0FEAB5B2AC9D388F49EAE956 +F9812F3D1F7BA81BDD91D4B88BC6F4D49FBF9D01B564B5FC6694DEBFDDB9792B207CED6E30AC81 +F9DEDAFDC13B4207219A41D5CC2AC38BAE02E9270DCADEDC84E87DCA66B84699C15D3972B2FB08 +417E3A019F9BF0E9B31093D89813C44CF95888F37293E68108B122674C6AEA3F95D00B096DCF90 +22E2ADE59460C435361B9E624F943CD982B5E5EDF65D845302F716DECFF91CC1B3E1D0C22CAA7B +C9EF0AA007DD372C8D7BAAEF3885D2B6E447A751622525F754C7CF84E39CE3B141289AAEB178CA +687A59E229CC89255D8E477E6169355E7DB85DB9DD3217537F7F723DB71C7082654869E37E18B6 +0C5E387D3B9D157C656DA4C017EBF96D173F0004B2BAE0C1F913CAB9E67492C574C35F93269D83 +D318AF65DBD63A8A12476536996D29B4A70557FB77168C28BD3BDCACE2D5D3F4BFB06092AC2C72 +201F9BF2742F7B29D1C7A2217A1444DD567919B88AF2B1CFD04E1F92DCBAD4CD87BBE26175FF75 +E703812D9491A77D5F7D0B60DCE3633FD159C855C4CCC6BE6D54961AC58BE8ABF8F02C2D847365 +CB1C3E339DE7E44B4EEDAB9B29B3BE9EF0D5FF3C37B3E656F9F3D53D87804A0641547F952AE97D +D78841D54768747E2A5C9D237D526C339E04836A947F007D0139DC8A32BCFEBFDB16D75AFE6992 +14F45E972A0188273D70F7AE355C2A57257329D734601424814F2BCF083E7C52D5C7E5F78A72F3 +4A64763FDFB4A7490917C9199521DA6B008825445FB7AAEE8186BAB66C138BE3BDA2BE402C5FEE +76AA26666BE886B331512F54A07BE35B8B410143F5DC7A8D6BBBA68E94139A3CB5FA2E584F2106 +6327922289B1839B46719AD15B81CB7ADF3FF9FEA39D7FE050C86E0D8DD38A52F34923E7C6495D +795519FAE3D9B4141D2534B0E1378923E26F43E730D9D3D0462F063323494329E7F9345B2B0D78 +9408CBED950586CC31F7C8D64951AA5CFA497E5760A5AD17F8BA2B2095B90D45EA2262FF51B57C +4E9D118444273E23255DEB3D39C8E6D404422EC449E379567069E9C9B7C0656B85559D7D3FB739 +C5FA03B1B61B1ED7148B9DBEAF8DFABDFD8C51941B644D69538C4EEBA4B6DC37ACF9B2CA711565 +A2DC875E0D7375B95EC14F9F1A18B3CE204270CCE76467E3D2673848294887261846808EBF6C2D +3AAD2F46EAEA4A33B0EECF57F0F10430C50E907C72052513A1C17CD92669B62D191561E5A2E320 +8E0DAB95919FDFCCEF0A928C3ED794D9212D9EA02F6C2264246FC9FA8E7B1F559461AA54B54EC9 +30925D82E944114CE454186605D495AE1344726B311E9FDAD71AC7212D241286BDA1EA6C1C9514 +09B0E69BB7A0E60BE1A90AB9B612496DA5FEC323E08D97F0278C356C482522975BC6A60E77A37D +5DF1AE6FB84A6DC1B2450D42BD399CA27410F20BD462F7E493F07602CF8AAFA7F60FD2E571B76E +627AC2A9170334E427E897A23F70AF28F9389D57B4D5F9FD416ADE36EA52D48DB6445A99DE978B +0D7D8FB7C2E77329D3069BCF1128EFC766B45BE761841AF5E460F93015F8F7D4BCCF3638857C25 +3B32356A178D9EA595E3A663542C2E9343FF9A295E5E09A714F9ADF0BD1D8133976243C9B988E0 +5B8B9AD1176592428A291824982D97D74DCEA11B229BCFE8851AA373EE168285C8D0DE9507E97E +FDFB7A992C736CC6A369680233B5FEED8CB98B9D8ED744BEE85F2CE3934893BE49182AC7C468AE +A016332252171B30132CB709E940233CDFEBA68C46B8A633E82EABFF88FCC591F381708E6975ED +145598D93064D975906ED50D31CA6D27699E31F5115E7854523E2DBE10C9CBEB655A8DC253451E +A126D18661BEFA2DD3A85105C9AFC36137C2137DE0D7989EDE455E402FD23247F6803C3DC832E3 +55BF20CAF97BC9BC71AD3A4D6862F0EEA282746DCC9F3A33FF6C77CE97F920D8860D1656643F02 +77CF4EDA370F066579161D6EA21F225F83C46669A8D8AB83101E90A5EED0AA43FB629F97C08C59 +E92D1E0B627D220C89DF8C7471DB49604240DC92E2CF8880A9D1B1B7DD42DFB8A8A34D060296E9 +2438D94C9A0DA68BDCAA68B56E57C6BD029C1FD1E51080228E2C3016C92CAD9474769337102E8F +5FE7FE5D7AD099C3DE3140C46A7199C7510F9BD682B8CE240C8A5848022B136183432D749F1047 +95114861476A8EED63F5281ED9CE9C66B4DA7213D57D8E78EE6ADB8154B42C58F384DC27B11B33 +8A9B8C31887D0A4C231FE009050FBB8D0FC6072DD60E8E4085439BE5FF343B69F77A375A6DC516 +B8924CB71AC037AECD69CDA9BCEA13908EFCD0860DF231DD695C638A7B6712E9276B14C5440F3D +D5A24DA0CAD3A079C60649618BE2D9C20CC12726E74BFC41F53B01AE338566E89483345B40DF0F +BA3CE446FC3616B0E630AFDA8B00E1410AA59FCB4DA0746F5CDAFB6F9575E3E50759184F7FD88B +3162A88C2066E255AF31114B3B3A6D4E542924F4BF5B4F3426491E482EECD99F193A3A64291189 +86781FD9F068B3CD80B50E8015C2B2EC1AF75DA3AC2A2BF8AB40CF9C30FCDDCC723A92C5D8E7B0 +BA6947F50B3A93FF5A9AA5FB8B87BF658EDC786857B9053B03ABBDA91AD361B5F0E0EA0C4DB496 +7A7EC2F082CB4CFAAEB7CAABDE84F4D237CF216C043BA9C0D798DD34FAB24DCA5CB189CE619B87 +78B4E07497DA38E13F2E5B773DC3E558E37CFA0F21C1058E8C66894FC363685E19C472AEF35500 +0CA307E8DA03B2DA7EE772562F0C9B1B0E0CAC4900EEB789AC03CA093B867020A0D25E5E8DEC5A +A6CE89C42E81D07489D1CA76D765E25D6C79CEC1FBB379D033079367C0699DE5E038AABE015BC3 +0E226B6C27192E1E0B905C962BA2A7823543B30F5E9BB69562E82863F6C00136CBA2A21A343495 +7D494B7FAFF5351C78E086FDE13BE885069B6F405B0524A05FF4A1B9F2B6346FF9DDD523FE710F +F61D76F34393FB029963BBAB206480AF1F6DA7DC14581EC747E56B775D1B3E7D0C13512B17EBB1 +79163088E6A9D3D9030124AE1F0C03465EC70EB6499EEDCCF98CFCEBCEA3E00072D3FC3B3755CB +42EE075B94EF9D879BB2E5DFEC6FC9F368FC0042FAA6AB46840BC95DAA39628981D190A07B7A5B +08F4536ADF922BE760F64560F50B891F3EE6E60D918BA871F38B6DFEAC28757F90EC65401DCDFC +4BF636ED0C0F6C802EDB640C3C81392CF26F6DF07199C0A6745CCF19920D0587A8CC4B2CA846EF +DAF3EE5A95D75C9D830842D7D30370C611998ACB0444D2DC05CB749DEC79FBBA92A2796576FE01 +90061CAFBA62D534F42D6A55F8A6FEC575C47CFA7186191EC8ECEB2F8BED68C8FDAF61670E9938 +36E4771AF3DA8C6ABA85783FC7E4A3B1A3A1A2D4E090C44449A797FD5E9BEC84602658E7F92BA0 +11A14094FF9A979F405FAAA05DF40DD01416A06EB673698586538205DDB5A12229A949A1850D67 +7F0DCDA96622FBBB1475EC41C9E6F2D411CEA0AE2AC6EAE817493D08599AFB28638D5724DB7D8B +2793914B835F9A04FE2B6A1BE2F7ADADF3654EF09ED3CF5A916576E58BC101BB145C5ED7516FE1 +B86D47954316804614DFF2D5D04BBF772750C9F555F693F6B6846823CB6FE8B88B5AB77A2FB55F +6E4F84509D755A5D767C5ADD2039E4DC748DAF271377FA7A0BE6F978011726EDF163E4197779BF +277691B39896318A73A09EE8C413E18A2B01929ACC7E1FA027FFC22A5FE30AEE67CFC3C3A922CB +4BB9C9A4571E2FBB8FF622C8E99AA1B0922CE1B2C0EE14A35A9DCC920A5FC0D620E053A5956C6B +77CEB4E4700810576035630566715C2A253B6D5DD3E7CA546E98C2C3A80DC5E3CEACD48BCD0A1B +D1FDA8FBA2B83727EE140A4461F4A629CEDC343350B9BA3E137D44541F9CA66DB956F8E6715CCB +25ADA57600D753A9E486B916E5FD62863D9D9EF07CCD344BBFEA43F10F04BA1F811CD774AE033F +A56118C8D43EE34A6DA31C3D30681A1387AD17F5D861CB6DD7B32B1C5C5BC66504CC1614E41B23 +F58C044F2BC4E8EDCCFA95C2ECEA63496BE00FAAA681E2AA07F3B02D43A8BD673B4178D6338DA7 +27B3BEDA3878361AFD55DFDD816A1FFD78BE5780849F13BE58CC190AE43451297C504624AAE17C +6E0F0B5FFA08D8044C96672F063086F784277D54F0F332F87401373886FF9B5EF7EA2760D75655 +2D3AAFC7D54B06B92072E7167F77A5B9A35386812DD23C42F085787B14F60D064D9CB0089C91D6 +A134F96B2D85D15BA37E0DB0A9DE2DC1FA18598254927E231F8D58935B74A3C071F676163BA9BD +22299DA9DC600CF94E98C2C366469D72D6D072DE38D9BFBFC094C2ED15998364B3ACBE362644C9 +EA4B9A4830BB6AE0E0D10657D37CB8D47CD3F02581A8F82CAEF30F74D98444B473D2912D41FE75 +A291D20F3E1F16237E99EB1579FE624B1AED5AA20113C24F9B2E31EA836A7E20ABFF81329A79CB +D704C59C71AAF26E6D76FA4F523036D9224D04D717AE899B9AF5487BB8A4599737576CE9CC7437 +0F490E335BCB7BF0D0DA706A530FC88A87435D769AB84F24F517ED326030FC372DB5C1506AB8C1 +A9954E52154A256327783B61CB438D4B01C9E2357E25C2ADE3E7EA49AABA75AEEE50E99060FD65 +B7C4FFB81A6F4896870490AC2018C8765E0260BD852635C015069E18F0DA611045BD9EBEC8F1EA +FA9B8AE554CA6C791097D8ECD1DB564D73EFC635858E1E8CDE134870D041615681AD0DE841A325 +B76A5CBFD07AFBC9394BA9319D8847C8AF55B9B542BDB09BC5A6BF0C4208E94C7BFCF201AB5A36 +1D3FB9BC4652517D3373AB3F15F7488C0E67B4D3F1E0DCEC8EFF0CBD5A7C2D8903846A72FDD2E2 +B35615F01D9CCD067F04CA21C640B04A51FC667F7D4674BAF7C1B52A067A88E934AB0AE515A2A0 +CFA144143CA34673483FF5854C71F4FFE138B8FD510E3768147F88E89FE4DC50CE5970E735F0FE +E5F90D5AA9E8C08822243E60FFB37EF6213D02CBE99C25D02AA7AB55FE4C3FB77DAF9FEA0211DC +FB47CB4FAE580AF6FE140A6AE50E4864DB001EBDE6E725585D2B21DD3966F2CE596167763D1385 +EB244634E34386435C61E14463042B74C72430C349E0C64CE5CF05346F714F4283C92A31ED854E +B3493AA0FC8573DBBFADF0E55B584CA8BD74966B52EFC923B7828659DCDD7D5FFECB834D0F1579 +70EB8A74A53744BDE6C1234E00C4A3E0A6B87159888C6918EBB51D8C20377EA97CF5472401174F +FE76273D0A94C865930801CEB1687954FAC07C715551C207AD6934CB7B78D899B69F576C5302B1 +4F53E3DD250A3B74F2D99B48E8F29169E0E9A0CCFDA3D04BB2CF77CF0FE3595C8AA1BA225F83C5 +C59D67F1EC7718E78EC3C154D8E7E75AA69B5BFF8192A3D4825DC8EA7B32DCEB16A0EF91466498 +DF0767C20AA59E84AB3C6EDA3A7CB67611DB78C9856D188067E36ED4F3FBB4680191BE2E29F1EF +53509E0DB0167996CC6E6B1C79CF8C24B5A79A2A9019B0F50F683B2FBF406ECE11502306079C56 +EB493F51F447652005984DB264DCEADEC7EC5518A72587195D19E534E029B35C057C4A16BCD860 +63F4997A6CF20AC79B6145C92480F90C5A5DA23FFB51CCB5F3F364BDF01554AF7B66229FD49466 +30ED14770D2B772E1A9EA3D000AA5DC07343C220FB3E57BF52A015DFA5E3B70832DC311CDC73A9 +B8789B0D020ECC73823282130F34C975B1EBD2E982960DE384086E55758874706381E06CABC255 +FEA04884B43DBCA66DC862F7FF5FE9DB12E17F3F30E20C488A75985B62641D36002B9F10B97DD3 +98A7D3A42D0D06F3B2F1E6A5248ACCA1EBBA0099653B6B76A31C0027F970D98F9C82E6DD2B90E2 +201CD306671AE128BB3EA5BFCB9E6C93F62E5E348A9420A0E301F5A1FA1D59C37887A65FD129EB +F6780EC8C350525A4516F8E7B7797D44610D6472DA9A1E641EAC906A5EF0F91FA155F150C70FAB +4BEF1C44AAFE9020F11AF0EA1EB17593FCEB19DD7742FD69615075DAE57769042EA9ACE067104A +948A8AEEEB9BB0D05404F65DCCF7991FE4EFF0125D56310B1DC96FA0AE11052874628AFE2F0F56 +D348B5BD0F1459B3A5CF0746117F7A46FA318FC93A67F897AEF6412E3DD1D77E1082B17752A88C +7F320A7085378A1C97ECA99ACAD52D972A9543B280E8B7B48ECA10C31A6EAB3908E32F93DE40DB +EBCFB6D79CF3AACD1496866F36A9976C0A0F10AEDC608CBA7018CCD04C09E6EC50B444E7BE8F20 +291E8B5ECE9F253293022A2B234F9CC18CF70284FFB7B3B41FDB548A76BF3EA06E7825BEDC188A +C57CC66228D0F9478322215E9F9137344296559BDB85E1E7507533B88E7B1FF389A5B3FEF16FED +9B530C6643FB5C42E4E77C10D577A07EEF5191B9AC2F2B5D58186E361D5AEC69851B55F03405AD +C53B413ED1BC18342B605C972A2E32A1E5BA96A160E8071470D637D76C3E3EF65E3F55778D58E2 +B8F5831A6AC1F5591D6155A0C99F15DD1C191E73DEF6394B99EFBC357CB2D2674DDFE552C7F367 +AC1A02C88518AE998F12C22A52F519D53BA8D0DB877800CB0257A8D61122776E6A138C624B3767 +3109543A7277A734114801E7BC5E2DADAB450F6B8CC6A4BA049E543597A99D8DC0817DE9816A41 +6126AD32ED7B1D4E8C9A8F632562FEEF27ED2AE88735DBF65744637EF765FD1332BBEE90833315 +63BF90AD83FD368631B87C317981CE591EA2580529BA1552C4C9CF3BCAF87B1865E2E3FBAD3BBC +8CD732E7E9DC435D6882AEA8ACE86656AE556C493F84316857E36AF878D1B31138E776A0E6B0BC +F0115B22E541D7E831E8A75D272F98AAFD6140F028EFA9B74D24AE8F8EB78D4A0438B594DA68AF +5FE9FCF3AF6C629162F054E9DAC669CBE95409CABEE04AD8219512A093B226C97E14B31227B338 +5DCE17F4851845337BD53C17D4A05917266A3A8A1D7EA0B714324B97CCBDE06E3D947889179ADF +668E5A818C3E67E197C52CB92E657BED3FAA6DC23497B4537B6B795B734EEC868437B04DA08203 +4C222DE20285979C4568B180153B2F21F098A899469A330E01710B1313AEDB59F4B6CC8D036A49 +7AA3CB58D0CB0F3B84EF96117D1843061EBE271DB80A1971A34DA62A20E889EF0B0D51117733FD +687B484345DC5B52E13D2482B861C4CE1513740C56EC3267BBDC69585F4505D56D08CFFD886CC4 +076763E36D40F57ED0A59B457092A07CBF1BD05B6887CC61A6E88B4B31A68902DD51621680185A +906643C4CD5656A08295869AA5387A90B1586F02657B72A8298630263CD1B2910996ACC9D8C6F1 +203440D09337D583DCE4F484154912CEE6243A95E97C252D233534F4ACCF940669EB0459407320 +DE3F6BC3FE3D2EDFA04494EB590AA8FC25CDFE6F73B5A83A0609C7521AEC7F35935736415FDAB5 +5C7765DDE12A4233AE507EF60681644C10B383F9B842DE2913037AD91C43CD75D9A48792974E09 +C2413E9C519BD01A3ED99189553F6F6DADC1DE7873B5B2836F4764656944DB5F4002C3557DA890 +6082CB1B2C5494E4D6C9B4E062754B55C758D3D804BB1A274D6C6B50FFE7048A9429D0C2EB5C17 +A239A66210D663454FEC69D596F8D700E718250A1A1CA74FA445AE729850A86165E65B4B10EFBB +34C5584518A9AB5938648898082BC2FAEE626E7D6779828C671BED553C6EF5FDF43CE2F63D044E +8AAEE91E1C8A47AF2E2FB79ADC7AF9A1EDC3B6AE71AF805CA4CE843374C46A26F5E0F91D0B2F1D +32CF1EB7C95091D79701A817EB251CDB56EA847F8171FFD73783D0C7C6535EB759B17AD84B0C41 +4D41BBBAE343306DFFEC2DEE68234130129D4637AF7B797B53ABA05461DA4024859A10B42CFDAE +6CAF3550AD84F7D87F82771B88A0D7B231035F21A83F68A48DCFEE0EE53DF4B191E5A30E3E4B39 +BA3D212C29187E3520E50E444D026DBFFCB2C3DF4E23A07F6C0E13450F599AD4848BDCD85BFD0A +A35947F0DBA5420F9A903F2619280626BBBD715F578AE5A7283D4BCFBB97CA04C48A4AE7C3BC5F +4F52E8B6DC77408848ADBA787F3F76F6138AC7B430553ED32ACB1B1CC28EC90DB1CC9D7BBA703A +1E047EB00BD8EBEBF2FEB5B61A6D1A86B4093FFD3C0EE41D46D6C824E9AC1BC95FCFBF725A249B +C5AA9A5D4B1B8931E7EBD4C4503C97B79E1B7577F6B1328F18DD4A11C8BD927F3E840E0D9D6ADF +38C30F5423BED048CF3FC205F8AC536494AB03DCDE85D262EEC61685C1CA9913F3BC9B50F5103B +904958E74CD385527CDABEC674B135424F72E8041B2BD5D9998B094FFAD2FAF64C4605B909021E +7720C1A97D528C0B1CA7C209EA4F31AB69B2D960FC17734BAEE80F2971A143737D515EC73259E2 +70122C8E624DE037CF538491135084AE16A347EB6CDE0558823854A9BB7FC862CE2995C7619143 +FB05D220027E6ED9237997927209B06B56C3A12DF8754CE26C2073F19307BA64B42E64228D18DB +72B79483DE686EC877DC28701DA0490A170141ED88BFC09A6D2608A76C07B705C7A344F9121E2A +A53ECDAF2E96A59504622CA76737327D6051BF979218851BD68AFC734FA47AD4B5B5737DE8B555 +A46DDB495E18397A5999A6BE11B4D3EB832B87B1E2DE71F302FC21FBF0354FFBC4E14001D5C7FB +829A07DD469573C6C3BA770039FEBCB79FD3C8A3E9AE32A242376536EAC505E1446F5FA06B67A6 +5DE03CFC1C68D8DDCA3FA90B6F298060E5A72510D754E6E8471006EEDC81BB1537F507A8A08AC2 +84ACF48773386A092FCC335E275ABD920A0E46C5BE2ED36B735FB7428BA5E60D7A431860EC33AE +E2D39EB734BD7F6F58B6A1CD41D9C0CF1F6D13313FE44742EDB101B2FFEB1BC120CF5F4780184C +6B7EDAD584BC92F1DFD2AC79835B7660970F66F2061390443C6C5E4329D34BD5604C7AC04AB404 +DDE5DD1EE6F0C862742F9A5F88025AA7BE6A1DAB0D7F74FF67FFEF4A7C5DF08C2A9EC21D2AD33C +ABEBBCE463656A8AB038E967788494B59B22BBE07A8EE5EB5C6F48E911168D9202D721436EA54B +DA89A2AB4E360EA5A3DDA0180E8333769BF901861D7B74AFEBBE92DB48F5FC2BFDB492E4BD8847 +F3C7E39F86DD91CC4C4F4C07F6C8B9165A1BE24B1735D307562AEDC895B0BA816AC3DE4EB6F0BD +111D4024AE597FED386EE680768E3EE12711AA1AFD8D75C6A5A6E34EC116229E2E87D10BE4A1B5 +D53A4D2F8DC83D75138A571F618FC44E1B0554DB5BC11EAAD1697FAF5703F015A210D918B6C7AD +DBD2BEE0FC7009E777BCFEA522D34CD7622A648B5FF910C7D611EF254667AC3201CA13A49270AF +61E440213E242E5B6ECCEF6780855DFC04B07E62722360586C534E22929D8632C4BD13F15EB73B +DF11D14EA140613ECC158FA516A75A7AFCDFD5EDCB6C88A4648A8FF47E6D94A4A7426EADEEDA9A +D5D7C2EA6C6A6B6092068183459B1E9CA7A2BB27359D600A404A92161FEFB087E2DC9D0DE1CE53 +492AFB7B4B06A1A30E922D90AF51299409ABCCF6961416F90375CC3ACA42DC7C041FC54DE8A3BB +1763740535B375A2434FEF066DAA839E171A83BAB34AC87698183159793E36D51ADCF1C85CF17D +E282B5B606298468742D19B3F4823042D8455DF37191DDEC7D03D9B4C1440A3F707BCC00A03393 +083FF4CFDEA52DCEFCF40C85EF38BEB3844B319014F63440721CC769ED61FC2BBAF998FF391B7B +6F562910BBCE6823FDAC5ED961740D317B373FC6B85930AD260D4DA2E221BD185AA4BA2D3BA0D1 +2A2B1B821DEBE8FC78AD9C7279E56471CFEB591D3C4E77E4AC2BDB47FF01CE718CB56F97133D33 +B86022C15275D0C8CCF82BF90DD23A2956BAA6E8CA65B6DDEDB949DD467A53CE440081AC56D530 +81BF87608885D8F393D96C3D2F7D694AD80E5B5C115F971328320AFF62CAB890098349653B6F57 +9A6DDBBF356D9B2C6372B965244BFF90DF16803393B5E062AEA9F239AEB3F9069077FD2F1F8FB9 +D2BC50E79E3E7C52547F6A3CF266C1789B78E38C6CC83090AB1C674CC7F1E6E30679B95E8B1BC7 +79FF76F05799699AC0EB968C072BC66DC78AE50ED3518AF32E5C3204111A041B1B4DDEA3301ADE +EE21F7E807ECC3562EE580D6997C77C58D5A009A27D7191B779FFB25357D6BD492619051B02589 +538DF1E3980B4376908AFBF7EF2A4FE994DAA9CA64C0783C3B72EB01785EA638BEA84D20C6CC38 +E31E394B73818CF83E02352EB4E1BCECFE49EB23FAF78C1EB855DA02598640477034C5731918E2 +F70C608E6487B3DD51363E08B7B54F9F1F421AF0BCCD87B83EFE8B63CC9BDA85F9776656557EB4 +3BC0DE9F80D0E2C57514B41AAD9E100C22BC5C421CF66EC819179E3591DD4C29841719CF417F12 +DB131173A1F9B9F0FF7AF282BACEB19D20F896508FBCF4AC97BA41656B1F7694EEFA05DE215212 +78C4636381D7604E0AF5E21956571DB30074BFFB42F60A3D98EB3E924C092535C916D0A729B86D +92AB4645471E3D1EB499347D281BC7279ADC3311762C80A8A652217D7D4EDF6E122547B3B8A766 +0198FD1E6D25C223905B8162D076CD1A3CB00BDD837272905653F6A699EAABBB54F82FCFD0BCFE +D77D5A514D1B12666FB270FFDC706B2EB21DB35D46E856403AB5E1972BF7F981F4E5DF503E225D +BD59C01C6F862FBA243FBB7AF76C2367A9F4EA8A63E20E845D4DBE50102F3ECEA72195D2F1BD6D +8D646A2132D4AC410A4F92947B05E32B2B21523731E69459CD81525F392C477942573A4C293BBE +150FEB08A81BEB33DB6D779B654150041D9586574AFBCFEC7798950F7D4123D577F49E538EF46D +3DC8C4527837DB940A9590C88B32FC6A35A1836C3E8B13CA39976907DA7FA829BA79C4AD6B57C7 +0092A268EFE8CB588B4A4486990981035AAE9C4A9DEBB7B3B0C67EEA459841B684EA3A5A3EFDDD +B2F71E7C398FFD64582861FDF18BDCB42FF64E38E861AFED894C46D53224A239268479552A5D4F +AD51E0F968495E10F1D5A68C1002E7C6E1BF98AA00092D2C04FCED78A110571EFC5D708DD8D506 +8F7977E3C974D62B6E2E9573138FFE9B66DB3951509B9CC7FA2AE82C09D25E99618FC27579EE7F +F7BC639858D70511005BD11E55B42B6D4AED6E419FB7983977BF26DDB7D614719D409CD258B2EA +50E342C18A2BA1B6F637A82DACF858742DAE0080690D4EBFF7FDD4D274DF0C1D4C49B16773DDC6 +79766A1FEB0371774B068837D853F3F4EA4976564D21A46683BF1BFE4E58A831F51F8CE57D3585 +9464649D4D7BE75394DF7A383F3AA2872FD2A2E76C948D4FF999BB480853BAF07E37431EA850A6 +3286BCF58E594B3805DDC82804F6E31EF557FDFA2AEE2013094D5630BA862E3609CD425495FC25 +9328A2445A81F36918F7C9ACED41A1A80B5ECF9E153BAD5FCE52E2016BE1FC932543EF831324A9 +35D5C9CB2921A43979AF1FD7EE064E9FB7A58E5D9252A0A976308D50D5CBBC96D888519793E6F4 +CFA1A7BC155937CA2A96BB4F0E4BAB6AE14C911BC2FB985D031CB2B907986EB6CE3F2E988ECB54 +400B0064D2FA549AD4D2996BC118BE86281FF3655D328670680D32D2C238E9E5F207B58C6B83C1 +FE6768B7A2A4917107F7516F2F61D5F0E5FD8350AB88D8032B2DFED91D04ACDE197A7FDD1D96D7 +F0EC30D5E1110FDC89D197778A7B1E8F291923D5C6A9F3B664F72274C0871A3823EDA8E2FBACB8 +D30E14015002E9B99C80A5E0712D4DCC9B2AA8079105D51AE75992C765F9A8590961909962A95F +F9169CA0E858676FAAF5EF160682BB4D43B34FE4BA7C53B5A670EE5169534FE4A254550DE257C1 +E5D37D9BD147A2D7C01F0DEEC0A96D655E71214672AB8AE5BB16F8FA6EAD54577C214E30D9D1B8 +A94E7C189A947680748FE661768B20D9C33AD85384E3A8CFF7B0353B625355D84FEBBF3EFD95E8 +4C93C8DA1D3A57FFA9D3496C2C53DF225C0772ADA930D2C0BCA3D1B558411D8DB4F00AD68BC508 +0028D066E730C3DA50C82D391BA228211C06AAD962A8AF12AF1F4BF50F50DA15627D8A64FA8E5A +4247433ABFA2A9282DA520112CCB46C1A45F9AC3D22567553AF30A282BC96F288EE71C107DD938 +82785B04E8BAD801177B0EFA57E368BDE511692F65A1414321A3E0BF72481CFF1680F0AF2B03C4 +5D2BBE261D700FBEADE5A23C751014185DE96466A678275F5F310D0A316F8FC1FC9D2522C64A41 +4648D64D2F35795530EEE6FF17F1DB11ACF1306DB24E88BA708C5E840543357C7998C611D2675E +3AE71453F95760F38C40D97EB7B69E7CEF6BB535E548C2178EB9D88CF93478FADD2EA43E9464CC +7814655375106117193A896D1B3602CF35C8E419430ED2E30B07361E238FC4B5244692539D3075 +CC6BF5482A79BA1E9FC86446EF313AE910CF60A7C2C51AAD53E21FCCE13F2A8F2C80D3C3158521 +43770C33841EA40AB8DECD8628B2A52C30ABA07CF07313B2B7C94DBA4B23E8477664781F772C28 +7851925A1DFE45D6877C22320C3F0094354709E1B1233B4065F3EA39A9F09919D1BF1CD37B688C +B2FF958198FB207843A19B570EC3ECD75AB01F24E47F0CF0D94D87FB33DB8D57FBE4789AE8699F +0EE9F27F0FB2D338D1811E3358E32302597BFF0F12D77C6161586D7E0F3A2188F83AFCA129227D +18D6C4334BD48B52A4664F86703CD5E0693FB6AF02EBDF3F4257E7E6C2D091E019437621B47970 +F72C598B7171260A64B8BC63E99B7F7C0E0383D0E06ACD64557DA74B423C6EC0CD35B115898ACE +C66FE295037330C40F779CFD3849717041043058C0D4693B9120BCC42030EED9D903BEE7591576 +2106C92542720F5FEC065B43980CB3573B020AADCFFC5DF653C2A77065610EDFDB7EDC3A4C6C35 +79A0FE2F0A962798A10530D515D85F39C733DEAB8DB7C5148808C5C51F34A13BC10976ED77FC22 +3B3E7945CEEEB0F286984F4E7F132CD2352674425959F118C4D8CB9089DE5CC2DDB69793B041DB +6269BA66D08DCFE402F7CE6F60429232110F36668729822D6CA93817EDEAB4F611CBCE85D8DC02 +6D61C96A70259D738241FDD1CEF267852962275FAB164453AB30FDEAEA9D3096542555A04553B6 +40576E786DAEB066F14DAC4828F193C03409C7DC78E6C9058CA4994F6AD3FD0AF67CF1D798AA12 +B5B71114459D8A1E82F5B266E5FAECC224CF3DFCEF76CCAF24897777AC7EE2CFA0FD3A6C1B550C +5AAF132A27B8099C8B0E7D1E13A2D8DBCFE093F2E0236E7AFDA104E3F643D808A8985919188C42 +79147C22C26BB9D32B729F05AAB76C4327BB42D868C445399DA321ED9CEA65A2ED652F5FFA5A47 +4ED0AB269E80D45F45CB345548F1853D8D61590337782181173BDD31E9D71D4A58AB4CE4E844F7 +6BCF783B934F4358A7989B0BF7127894B8F155BA31D586FFC4B0714B8887D6ADF80C755BB8F93E +65F4BCCC7098F425F3DFB9F4859A3A6BC8E571F5F25AAB7D4579108E129E21FA6DF0D3075DF8CB +DFBA76F4EEFB69EBC64A0E183CC87BA98F5A41859EFE1D206A8F6057931811BED78FE753A7AD9B +2AFA306311472E778D711D0554AA2022A9F69166582F5B016A2165860A35FE877EE3FD5E528C7A +023D543F8FEAEAD885CB894554369577BB57755CC627A0C9345E5A69AE5FABD13E221881101450 +E9CAB71F3FCA9DB59A32719B116B3A2BA129C01889943D8E893E49EDE1DC7C5F87B6E2A4F4C041 +06FEF6C860F6A43D83BA0CEAE8B93D1D2D4C7BA09A18255B04350BE3CC7A59C10E53DC260C84B2 +F981E4C44E87A5A8F252036285697ACD7959EB2CFE6CBEA7050B42E4DA801806691E97F3F1BFDD +2A4B17EAA1C2A4FF4CA0AD5E4F3E5B579CD67229F252733BAB5B2F62F74D1AD05F45B1B41225A8 +1172E9BDA7EEA81A80DE0C48005FE837EE8BE4720077F1A207A3FD1B9398931A072E389AAEA068 +E1A214BAE8EBDB9FA5FF0FF7A96909B68461ED200156E59BE32815A32FE6CF1931CC31019775B3 +5A4F5C6B2121B81137CE14A52C8AC18AB5303754F2565384CA74BBA49A39D273E269BDD2C7164F +042CF18094225321B6506489D8ABD68955AC32452B2D7976FDA668651CDCB6BDE900BBF3E87AB2 +8DBDE7177EAE3865A9567C19E0CC614CEDC327B746C04254A94494AD78ED6DA26677F8A0E70880 +8750689EED2CEAB8214765CAD629C514173D82B2EB0AA673E250E68EA6D8AD640A25BF742A7456 +BF8EFA2AFE142F22E96C1F904BB7153AB261C6E4FE55574BBFC95A0BFEFE906F52025C06DAB62F +ABF2C8796B24DCA62728A0FD5982B91ABD80D421527EC232B86B80F9786F16A6FA15EC4E7ACA40 +FE0AD25E10D961F067B41CB3443E0AB5F73DB39CD3186414FC72762ABFC3985948B8BC7711FFA2 +40901B58F4C869320A430E1D68F10B8D2D8FC3C2D5D12529AF7B8D5C3E501427AF5BEFE3E8C02D +9A5EB4A3960DD0C7BB36A0D7120B62390093E49E707AA7411CA9CABB3B4EB49FA7007ADF22A552 +7201BB8260622FAB015E016223FA59F5B3610EB075236ACB344764E223BFACE353032F45526FF0 +5C051E3AA283D1F1857C3D1A50BCFE49BE1F83C6C91F433059E7D9ECBF5A649CA18F97FBAE3534 +7782629653A668DC86DE2033261E3D701B4D324FC1023A6A3E35DD0DD33938B72D5B75C6309749 +D4468B73405563EAAC98F4BF055A524058940B1D09A1603AA6F40FA5C5D98351F5341C57A14AF8 +EA6EBEB17D34C090BEAD2A4FAEA9039D8DDDFB26676B1FD2E35A02DD1298F7C3661F545CEEB0AB +CD9D4EB60707F4B7C3161EB13F649FB118AE135988598A509CC4595555BFCD320CA0294186873C +53272CD5472A6BD4158EA0602BBEE13AD5DABFE374B80749FAD51E962AD4A0A5BC563056B5D055 +C416008CC22C8735BCD8406B1503DA330CBB62DFE9417674EE52320EEEB5D277D7A10C7D0FE624 +5EC17EEA4F47BB5D78BD0A0177D7AC005C1CB45F13CED23AF3BEDE97DA7EFD8F0A504A76DCBC86 +C03F8530ABD68993F4945A7C7006151A9F05A92915EDC7021D9340EC694603B33679F697186AD0 +6E9068EC4518F848653BF3FCA0B4B462DECD3AA8462BE335CA9BC02E99326B4A8E691E8329AF81 +507A0227905AE3F482F8A6BC92E5EFD23C8BD5E54D5BF01F436D7E229E408AF757C02B10483CA9 +2D27541D61D1F975FF37A8362B984F2C47143546E5B3D99956A825F820DFD1913E779B60F6AF63 +CFFEE206A8EE4D6F90A5980D3B394BBD789C42517FEE14C1A0B9B8D883C3540EB9A59FF2D53BE9 +F84249A5450581AFD2AFCA927CE4DAE3EAF1D21B321E5F9D845A8538AC19E73C2D7B998C561ABE +01BCEAFD166C8E649230B92FF215BC072EC36BC2EDCF59A93C8E20667B4CCCF7858E196B2F1D15 +5CB85EADABA6BB5DAE835D38BE3B2CB362C91BC91C1D418F06C5C83BE1137FB629ED65A5673EF6 +D0D111CD2FBCF60BF0ECC804EB20502085BA99044C4B8C28C797819A69DD4CA5DE1A81F6A00526 +8025D22C28A3E29FC18E871604985BD477DAD38E566CB9528D804516AB308BF06EE3B2472DC013 +D88627029473563CC865D417C00F2F0169C39B4DB3D90C092ED090DAFB8D0582E70F742F608861 +2F139418F8AFBCE3688C83C173E651DC27029DA6C2DD8EE199E7F0BAC48FE66EE0028AC4C4C18F +5E111678402678707DE91A0CB50F15B77BA1869966AB23C993BAE7243F96127B5285504CA6DC0E +536DF06A96180B92F0F1BE14BC816617AA7415ECB963C4964C72023D1D35967E0631E2EAF1E4FB +75BAFAD7F30E5FE1A9A8BFA4F2126929F49F9DF7B42370AE3B7F4102FD48490240333ABC9318EA +EAD6647AB3987E2595BD0C10F521E535BC254E5379AB49F9FD83DC32556184A4865F514F0A4FDF +D206894AE3B4D31E16F63B4C14FE8064BE8338D8AE123EF9BC64B0BCED20108AC6D70EE59212D7 +FA5FDE1F97CA4670BD623C92BFA5F03D934D16F642F1417A5CC20ACDF1DB8812F03EE20E2FC563 +8ACEB462FCE79E1157671CD9413E6955B7EF61D8766E2B040829AC4CE58BE5EADF080B11710AC6 +BBFD764C456C0CEF4232A99B0DF0B9A451321F91EC4A4C39BDC4678903DAC833F4E21A9CDE857F +5B1514DED5D94660D5D5DDBAB6116D53BF50D62DBA84BFC08C58135C7A8B8C8348E3905985E6EB +492F23A45F6073AFF72F34A3837F075A17D4D3B68F789C5B3C2F07FDEB0F06D2ED7A476597AD1A +859692B9F1B81E9B5E811EA87D587330F027EAF401964369F07EAA8AB6993527FA92A0D321845E +D818D12EFEEA61A877CB0FBCCCF41500F9FC68071EAB9324B20CED4C74D557CEFB1DE37F26DED9 +083B036D0B96A0B07142D4283FCF63A392F9AA4624C8E40D0008E6EE523A79CA2266DC5996650A +E44EE0C843E2E8FB8A9C1AD69B12914F33A1EC9CA631A0C15757D257E17EC7E463A0884C38BC9C +EF76BC8B3900E438E18AA2A5A50FA89D019CCAB1695EEBD62810D7539DA66FE556747A21872610 +8D17D4B43DDF4F734AE3A3C840B3B6CDA736C080D382256FA54FCEC31A17FCAF7BC12AB051A65E +A250FBAA8D251409136DAB0AC433D91F570A80C8C58370FBF63BBEAE2BCA72C280F9E9E4494E05 +77F45694BA1E0F7CFB510DE9D6E1E0AE6A900E644CDABF499EFF0EC0F65D3AA4509BFC866C7788 +0C70147753E076B797B31769C65B53D74AFB3D38DA15A10388DD5A848C39184A54697E997F86F0 +BBA545C34D240C747B7FE1B37FD97E92826C116D56F10FB92105E68E4246775341D84CEB6DE34C +02DA1A20D684590B44103C1A6989323D129D1A51A2EC98621975FEDFD5E190880F5F0F68DC12FE +1DEB8B8AE8DF2C4807FA5B65ED92296F808D8D9008D9403EAEF135253D56E0CA33CF7974203D0B +F3A3C7921F47923EFD0D6076BC93C0D2FA5EE9DFFE3B660DA1262CA8C3C98D909718EB2D1A1821 +B0D4647D1F4C188FF79E9E16EE3F8EE8CCA2F9F2A58520E71629E5E027EA837EDAF9DBBFDFA822 +120B13B0A0AAB59CCF125040EE43AC2F29B7D414EE47FB53AC5223A2AA40C8C9EF067F8D40466B +E9B73968C0DC26FB3BAE743DACE0B8CA7D88108C7A3A5D80162A3A93D06DB24A64C45636F8B299 +AAB5FFB252E8C2C4854845921E0A22EA5786978C8CFDDB4C45594D7BB2D510C56991279473E0C4 +9E5066BDCA09D98CFD2B40A40FD3AAE16886CC0030E1C308CB0B3EEFFFD92BC90A39C3D3427E73 +E2EB5974FFED2079706A40F0BCD6C390FB4FF4B0331E70B770016E6336CAD071C9577C18C3706E +97C9019BCDCE23B6F295DD09ABABFF5069D64B7FE8380736B9767336F3DDF61B55412219855D57 +658BF0302EF809CF1D3AD68095BC391A1EA365EA28D5D6D61A44B367962E6577E77B6926C417F8 +E8F76EE89F9686C9CEDA3068A417FA8F90C54DBCDBC382A6CFDF923E37986169D078BCB11FFB4C +CD9E45022A81934C4735AF57277B3478B6C8F676C0824C46849B539C9D3460EF967EC434FC8A35 +B79A94AE68250596F653096F75B308A2FACBBC2157150A7F6A86D52E1D31638C631908693C4D08 +5523A9C685C9C467DCDCA13185F8EB81EF37096DC7ADA8138420CEC0BE60396FE22E584B1197B3 +632C1B01B163FF586D0430D5A0C590CA7BB521FB3B05AC5C3E6D130BF4087E3A7EB76470CC8E24 +D2325D9F9087C04230D464EC742037DE6C54FADA454ABE28B9FAEFCF5BD74B30BDA9C2833BBFBD +8C6DCDC0479BCEAF8697E8FB14EA81DAB6B87BA3D89BE0DE3B574F8CE23B18E58FFAEA08F08696 +A69C3FC79581F49BA5CA0CC228C3DE74BDEF328C7EE9ABC6688C42B174D8AB7DA088BB99A03341 +A1487CADB86624B48811B20CCD0982DD0B0192E7B40C1F3F3558865C48CA33712457CA452D842F +5A21FA58FDF4BB9F3032E4B941C664F7A2785D039C1DD9A67337758B75F5ECCDF5AD13AFA671F4 +FCB18C3AA8E3EB3B2154DAD5542641B0652A382120A4B5EC6D73D95219FD0E7E973154DFDDEB72 +D97D43DE5921E62CAFCF12EA9A3A26C5A6A506F054D5030F865E3E1FDE6959E1F17EB5BE3161A5 +0B491E5DE3179C705A452929A608562C2AD3E04208444D69734EB63F86A23FEFFC008826B3F277 +9744A5E220C54663AF8B15B0ACA6B61F7E15B9AD101D6E444F05E20891198C385F1FBEA22A5C87 +B2A7C9F1FB6FEB8C732A21C1FE13884282130125C9A436CB9D86A3A53D6D922E5D54C8528E8AF5 +F836E643782B1360C303F735B2353CD93E0B924C274F7E0AE62511FD1FA67429855F3533A29400 +2AB0B10D45D233D2F4A7CDA1519D7302E4209B3C2AF8761389DDEC69419FE8EF2049DD33D75017 +399FA7BCBFF8DF10A6DE8CDB5F7866FBE9D5059EC0F50DD5048CB049B97CF3ED3BCF4A57D1DE7A +C87B744F8D823CC2D140216F501BB29EB3FE9CB43E287D09EA8448D964F228BE3A2A5B65FB98B3 +D5490243A5377CC1668D127A59D1C0F04E7F4FC1026FA9A2C02A140E3C2B986558A8153B5AC783 +21FFE3A1F6F087A283D58DCC83DF287376D5F96FDA04CD053C610C0DE90F597032212E98A7E53C +BE5ABF0ACEBFD2076A5080FF1D5712F2035E22D8575A4178330E93949C611474221CA4D8221886 +4561A6F0555F290C65E72CEABB0E7D680B29DCEAF0D19AF0695D73C2CD9A14C53968F52F571B2E +AFB715F7F49E62D933794B7DF7986EFBF23FB1FBBB796990F6209991C1711C776BDEA4DA2B3D31 +322519D82B541C856702C2F07370A130536231B7BBBA0E4F8DD050469B687A1A95EFC8A3188E02 +834CC1283C2E08ED3275D0F2D6FF432945A61B10E9F2002B653E9A8D6890F4E2E9F033072EC34F +0D08DF4EDA8A7E68699F3238FA4ED1C2A79767376011468FF1D3A47631FA650E96F3651D38A6E5 +2DAE01FA1E0163DDE3740886171B92B69E5A46090BA00E130005334351E57CA0BBE8072167D5E8 +07D2814090AB1A7C37958AB5745243B1138DEAD9E8DF94E800AE8DC00810E43066514C07B90380 +860144BEE44F34E8A75A95B523B2D9724F12AD267312DDC113131ED3FA088F7E08D828FF48E50F +14BC4BE5E203763412A11A8C2D0AE9D1AF457BA4838ED958C2C7E3566CE43659F07942DD79B853 +ACAE63C294AEF5EFA938715C7520A5A1257580837A2189DDA84462027E995BD798C2F359BA84C8 +CF26BC6ED0E501B46B92BFB72A54D13F865318A387415558C959D2E5B6B6358D73201FAF94699D +EB452BC41F84A14A2B104C6153FD459550E996C16CC8D608C7D31D280B4DBDCAA4F0FCFB640102 +4FA1FAD06F61C5DD9C0DDFF09EAFAA8DBE62B967704FF1884A8D167DFE026BB414ABA771FE49F8 +9EFB220586C4F6D1DC91D2E11AEF151F68A9A1CE45EA9D502CA7C498BD4296D98F12C1D44A4280 +4BA103077AC45D283A88660F5B2855CAA974A16C3A5559CC8E6B210EF5292EEF76A5BB2229C8B0 +D4A9DF09F347E519F45CE1306C40D8F7E1E5C0E4DAA18CAD888D6E8E337270944EFA860DDFCD6E +4AF1498AD3117FF2E4585CAE02092F99DE77180C34B52D30B0AA4A92D8DFAA72275AA69399B3FF +DF31199B30CEB932537667676FC402EC37E8179DC7EAC98DC8423EFB3F3ACF30512FDDC8530783 +5466B302C962789C65AF0E278A8535069F09A4FB950E1B5471A07BB9ADDCE479D10DDC15F58B3D +29F23C60FD1319394B199D2C9919A668D83B462FC0BD10624C44B2BE451B47AF5AE66DF1DEE648 +0F42D642548F25932EB6A47E325EEE333B54D9925ED2ACCF319258BD22684E8E6E5243B7D0FD11 +B81BD02950A78AB7829DFF6CB31FA26E2A4A8382873A83CE556EB4FB97C440D5D49AD9F95C4C10 +F5A6E5326B34761D2299C9617A62CA7D0215D94BE19D1E1C77F1BDD38A1F135F25CF896F18916A +6CF891C0260BCFC579453C4C26EBDE619BE97B73FB50FBD4C221431A515E3DDA4E3BF80740920F +A58FC61E503D83C1735E28C8E5B1E29983867F13255F5E82159CEECA9AD1A901D6705C0B2502C3 +7EAB1450203748C7AC54A8778D6D87D4A57531CFD67DD5A41B668CDBB46D1735C882BF1433F938 +E2F2AC9239FB79506A275950FEA6D8B28036A5DD4B772C4D1D00122111D82E34F1E2F4B8E4DC7E +A8116BFE939FB924F1A064F54747314ACDCFED284030FB2B4B5B80C7AFDCF63F1E02A930484BF4 +45407CD7033114B78F4464E4EACFDB463A328CE81D55AC19C690B4A01C13090BCD9CA9153F5DB1 +C53D23A1F2ED756EE1A9BD064840CA2F1C84AB5DF377373C97F3F16C5FA35F57A2421A4097A360 +CADC760651BB7D68F047EAB47269FAE869229C1090FE48AAE6E06DD96C87B1BAE4A173D5A2AFD0 +FD9CD73385D9CB51BC2036A4F40F1745684C1EBA4CF80B3FFBE773350D5EC759B0A4F1E58853E0 +3DB7FA5A50CCEF0A26AEFDD8B0CD6D0B4463389108E68080B746B1760B3A228489546FEDDCDEBF +A579F565AA5AF94158B8E0BABC45F84F8A51F0BD8EC1AD329B69A19D737DCF0E9A615A945E6ADB +0C8D23AF44B4BA1A17109788EB046B3CB1DDDCAE862456B1F9057BC08D286CA604765BAD26D3B4 +ECF7B6596D449E52490C2C2C79F24489715BD865A48988CA249D60FEDDCD86D6A488C3BD63DCE2 +0D5E37E6C29F9CFC7C62489948749CCD84F20F540080315923095E79D4F35A95396D3E6F364F7A +83A42B00AA8918FFD623802F7BE71D0E4D0DF4EB49F4B7A9BF8ECCCAB90754E4E1FDB4C187F64A +FA8CCC762E0F699974626FADD85E774D6DFD92CA9890F1D1A9DB6A1BF4647920BCF5BD83B2EB3B +CB16D69F4CA279570A6CDDB06229004B4A5688C9484D144F327B61270C9F37048BBC1A0EA9C43D +902A02A71A523CDA7876006090FB32B4FFA2FF741A5A8344CA79E65D242CBD7953ADA946672F13 +8FD6A42A80B2BE25805B07411F34CBD9939723A1FCF9D2BA73E278546301FAF08D6A4E15A0AB21 +650E485316468042550ED97390763B73CEB56C557D2BAA6389BCBA728A2DB8328ECB60B51A16A8 +1A45960C0B396A5A9EC69ADC7A267F2A55E8B05E9742E28B9D33219EF0D7FA2B13981A220E4CD7 +3AEE557631FCAA673E323BE5D63D09F93FB079F364E8DFCD34CBB073198E1370BE398B2783A210 +75A9C512E2E8812C39C5A2F4F6345A28C13E0CAC8DB00214427E0E59945CB648EC7B3CD8BBBEB3 +3024DAB75866FE26CD37A62F07BC8FCE74076177D517E721896AF3248DB633EA0DF7B42BAF9550 +E1FC8EDC7FFB3BDC4EC209094D54BC5ABD832D8A8D6D35123450EC928FE8BB6E62886E826B1E34 +FE1B3FC3A9B4A184CF47CE7B13D36057C42732EA8F1B805C012EC18A542F1855CCDF3DA9CFC7C3 +CE8AD49B830C73647C187BFD9BD9C19E9800F1F063D4113C2718494696035020B53996AFD62DBF +C90A145098496D688F5A6A7C31E0345EDB25665463439D7D15C52EFA5ADDF66F6E83E81FD841E2 +72EE934C1B0B12E0AD50B433B3A9926B2374F897EAB9DD3AA637C87A1B4699D58D1CDAF109A881 +72395DBCDD1EB3C98F7C7A2567EE373E34ECA7955A3625B775D5DA827A425A272B90F6864B176A +E297116D134883D8FC8D1D426C6958CED69EF58A217C870B4C9A5FA271AAAF232E4B37D76958B9 +1BA75D70CC557835048778CA3EF3B26255733A3503F60462E60407143B5C837588551F0A9E0D43 +4BC1A75ED36225C6A6023D6E01921ACD3C80D7F0EF2FE12D210EA9CA67F435AF53DA4F89DA3E31 +25E54219C4216C70B2A82D0A2748023DDD83021A4D46CD9E4065233031E33C28AB116236386575 +D402D6EEE0045C4F6736621EB29167B0AF724419B8C988456CCC88E5E0B52221E82C3ABD5EC685 +C665F364F712E914122629FFD39BA7BEAB41427C017BA6BCDBBD61075BD7016C40CFD2027C16F3 +A693228E8AB25D4E354779810B802CE959D76FBAFBDB8DABB97E4D5E27B9001E6ADAAB860EDB9E +2F57F3D8FD4F20248E3C382F58714C3DD03550E9D96C596AF6840624CA37C0A56D9F96711B6508 +CF0D63B4DEB13F196D4E8355F1B46D68999731A8847C247286DF46C1AAE634BDD77A5D62B914E3 +18A463E20484A3219BE81A6DE5B8E58973D4DB3E6212739A383689D828CB83129E5EBDD19953B2 +5715DD63A14FE70B1B44625E5DB819AA83F6C0A2C37376A5613F490AC382099341DF9A8DA674EA +6BD3BB2742190D7BCE38B476D4CAA093A069FD24652D0FD705E5319CE02B7795FF9352343A3B58 +4667744685C37F6544958575EAA75C6489DE45B985491328C9364C36269BE548A8C5C139DAEE40 +E607F65672B3FF735CFF990327587C55DD2193895D73BE0728F32D3D4203872470CD3D0F907586 +8D9838FDCF570A288B351C7AE33259808F2484A42365FBA8127A530A5BADC430BB84FD61322F1F +B69E5CF80CD79693AB6D07BC6F3374CDF907C01D18FF6848A634ED584A66952BE2A0C09E1BD241 +636479CE4665527D51BEF49C1AD23B144D3D3A5018DDB4C237E8C2FDE6B64C866C76C2E06817C3 +0BE29C61C6512E1E59A02DCD607919D6F0B2D672449DEF953CA52825FC21B7F8292FA8433A7F73 +2BC333B635C81BDC2B454EB6A067F946C2209F9081B59AF825B0596D392CFBDC70B46BED6B45B4 +F3CB9551C770417FF4C5916618D17A6E8D362CB0CA0832F5C0FBA202F39972B2DD9EE708DAA646 +2953C4781B9EC8DC3FFAE55FAB9BD2EC94D84F73079A45BF3CB2506CE23CBE4674FAAFCD89BE6C +65104B2BC60D687071B0608261597F70A0BB35ED937F8DB3BB1A7E0F6D8881F5B5E64729408A97 +08144693E2E68819A5F06002DF183A55FFED1149BEB06FBB7B7413A5DAD9DFF25B84B7FCE54B2E +C4E0F6D44E63FF51765C8C886F45432112F3937D6C620E5BAE9D1A690959E54BE34D4FC3526099 +D1EFA0A6DB3F1BBEDDDC054FB4B2F11B601CB43E821FCFE6415D21032C1BFA35E5C7AD401AA628 +BD4147D0EB7EC9BD7E8ED1CD3CE085E2DCF35123A7ACDC2F480420B888415DEF745C6CF3C8EF70 +219B1776EA6E1DE091CF9294E325853DDB99F6F2DD3FB451B828A1946A11B4AEC60AA0067D415B +01AA38E37013632ABC02DD4A7C1F1A6624E67E5E822E48CBC24114FAEDCC9135C58F8FC3FD31F3 +12D6E2E4E3D9D133A03C924085B778520163CC7B619370323A089E62A7DFD661C694993FECCDED +F261F9F42AE8B81B83ED5627C2766040B15E2A29FBCD57C708AF106FDE487C90E62AEE4892D581 +A8266F4B00F020001C3907D7E2E0C019272C6D34DFBA9CDA49CF2ED412A365B6E86D6344C355A9 +5D8BCD32D54B22AECB5F4AA3386106DFE3E98C597A8D8696052BA719CE8661FA354ECFEE639550 +1D3EF450704C4B6403E37F18912938D8237A72D9F809E07C7AB3534B55E29357B9A2BB4A95870D +015B2233245F8C7BCA4CE4FB1F112A4CE92564200136550E6A62748419F33CEECAC381CD0EED4C +DE24ED2E095AACADDF5426EA8F7052693BB233A73E5FD55EBE9C212A1AF24D04752145CA890D89 +4DA8EF13BCEEDDA796179613EC34DF2A5C9EC2E6732364FD2A2F84D0A47E8CA1D615D242631E46 +BBEBB34693F2F5AAB03B9A2C92E748DC9FC9ECF2FDC8456496876FBDC4FD6EFEFC8DB4E96715BD +1339571198DE48E541AD1F080A993C3C7487B713A8F741319FB25488221D47DB3F06EC72D46682 +F3D45B30BAA90E79B775660C900016168F6FF0EC0E2E1C04728A6F262802FED82ECECEF5B5D363 +B2DACE82537EE3BEA924FF50E7AF46B48ACE21A2D997BC738952FB50C9E8113FC62A47CFD980C8 +E84FC90F2672BBE891FCA392A12F68E50EB4D452ABE4ED8C1918BEEDB380026F89F98A54E37585 +9C4B1DAF86E3EE30F2572D98DCB45124265A1FE3EBD2A31D8FFDA93260384F4A51C61B1F9C526E +97CC8F013F34BC5647E0C38280C48FCD03CCA57AD0B77C912575F79F94677664F9300F6D9D24FA +57C0BDA3244FE481F912CE434C67704BEF6862C6D5B9B261A42F28DD8B14BD1B31ACFDB6C10E6D +16809E5741962D31B65CDEEB93CDF35DB69E9124E163A6FBC3077C2C4460C5E12C84989D53EB4A +FA7C15332836B837FB479171F67EB0CAE81B5F00046C432B44A6E26D75DA2662DE2534E9E53A1F +E54984DB13604366883DB192134315D439C87CD202062E9D5015C96DFBA8B575B0F694FDACC331 +B996665AB8D0968EBE59C9C85D4B6452C5CCEAF8CAE3E5702F0AC1EC5C8F086F234A89BA3D8A87 +AD1640D7AED32A610FE0E9E112B8F62325DFB3968FC4FCA25F7C10969113B613EBF9E1BB715B11 +1138836BE5CF911D1572CE6AF8820866148B54E14041BE8BDD70D34858DD7AAF8A60C8535364BF +60F2ACBD85FAA524EFA76F2DDFC2C0D88439269A8B13AAD60FF2451C5D792CAB89DC298EF429E2 +60EF2B7A7BB873886E9D19D6575886B97EBDCB3ACF92DFE2A759C4982BB896E5D9D42ECE7BBBF0 +C81A633AF86C8AFE612FE33B7623ED35A9488016DC83F66833256DED114D34BFFF5197A3B45842 +7710D75815D71E935A1C04AE3BD5A31E39CA805250CBC211DBE6108974DCD630D9CDA6652083A0 +8849FE43980D8D763B4E47293003BCC8850385CF2E16065299157D7AB8D589F95EB920B49C6938 +C82A7A6F99D80E14D8E02C1DAD0932D3434B5386363063DD5560C5E1887DECA4F5964FCC8B2619 +762C1B0A7686B1C68DDF221E29CBAD600CB69CEB7B2B1A29999F304B1200B4DD9944A7B13E2590 +33404D237575F969A739F71DEBB828671CC95C760140AB5FAB1DF5535A26098B22C86E02A3D36D +CD1D710562385A85D68003DC714852373A4E39604F29692586C034941159605869100FB8FE2D04 +943120B7B76E26A8A19303A2A720826DB7809F4DAFD350F4ED9D57467FFE5680EA8E81812F3BBF +A2557B9AF43EC5F030588392775E9FF92745134D10CC82AB5782706A85965EBE00783DF8C4E471 +0C6BB2083BF6D92383D114E95758DBBAB20B332AA0968C050E2FEF569F0772BE69F55E778069CE +79AB1FE1DC588C61A82251E8BDE904956D566ED49A54337D373B3228A4A9A6BC7585137502330E +557DCA031CD1EAAFB04D46246C61C6E5280649DC2E14267DCA971F3048D65E8CC7E90A62B6AFBE +BF7F2767EF7E2EB5AC954D1C88070195DAD24FBBC6BCAA7BE6D6C88D08B1898B6CABC01F5F358F +2BA39BF4E40603D04AA5CAEC5BA1F6C36A5EC05053C954242F83879F1308B7EC6843EE977E8F4E +D89D1850CAE9379564AA7B2645AFB18C16C25E43865E17257ACC2A916A7A29F2823B9A1E5F9815 +5B2CD0C303924CC25E324B43B983C66367E42D048E451E05833FCA1835F37FFF39D2B7D68D8C79 +DDA0AB0DD02D5E252775300DDF7F463E009DA930C5B35ABB5B2C0825CD41404046968E5928D631 +26D581E9393BC89F7D2FA289A8CF036AF97BDB026B23FB866D819204590E0859FD05D0560EFEFA +2B46D445D4D435721CFB9B08B1D743D418EFAA96FC5EB6CA66ECF85E0FB515E35A127ACE03C235 +5D5A12B6CE9392773A3C4A7C725D3DCCCCDA9CEF7C0D43D2E568D7471AD16F9AEA075609087FEC +CB710052F4C0FC15D90FD4B157451011FBD0E7F5219CA9C586B593ECD8BF1BC5CA6F5B0E8FC7B3 +24E516BE6FF0405F500D45CEFBBB0A72A5CDBEDB7069C3ACF43E577DBBAABF787D427C4753858E +AF11F2E4CF54A9445F0BD781E2DF0FEBAD210EFA8641E94BB9973DBD3D5FA9E3D14FB55702576D +30A131D0DC7F5518110EE78E01EC0679439D393D6C96D06DE21A033AA1BB60F1716AFDE3F72B30 +1DB2A6EF5F0978B398CFFB44444B5428518363D8FA536EA55C9BF79D3AF34A209A6482CA6B4B6E +8D81D36B53778D47C3A8D229821947B6D7C1400C3EE6FC726C2262353B7C1481938EF28DCF5F76 +5D994CBB72EAA65E35476D86667EFF35E2B88D59747C2C330BBC339FE3F03B90DF8E572EC73500 +90D40D76C1DA3D7BF1A37AA73A7B7ADD6D275C9E910115FDAAA1911CB8466DE224E07077D0A022 +3EB7A839BE44FA118217092A3FEE0B9BB623B66124203536CBA47AA3A865E4361BE80A7FA4DBA6 +0912A9F5E603CDD7FC331F59BF27E291EA1C169019FE4CBC219198317DF46B188E906B106C9DDA +A367C74398D6440EF50F702201C0BD23F6C01BD9B43F0811BFFAC5A3C14544F068343D9BDD39A3 +EF5BF43F0139C1CCED0ABD641B00E382427188BEA59594F1A9C59D1A04EC693E60A9D7654D7FD5 +3A8B65D15103117F33F6F18B409B0DF129BF2DA8592EE386D6BEA725ED9A44065536A9896B42FB +D527BEE9B16ECD00EA00C5564C57D3FBADB8C221B99A83B3C9525931B40FBA37253B4FAF9BDD46 +65D782CBE74138178DC68A0081AE38FB70DDE1E205429D9E2B419EDD81709D1555FBB215684A51 +BB3DB9F08EDD3146F069085155B5777F23340193745DEF7B3DE2A35680E05F07F832AD9C0A4598 +A55CAFAF0ABD1719C22BA06CDBAB2445442DBB3648F7645076FAF8DF53C9BCFF69C0872E829B50 +F9C953D567120E000F8418EFEF3C199FC7D530B2884B5634F87CDE82E46CA66F5A215F44ECCC44 +85271144AAD85F7D14DF0C14BB472341B814B8DDE80D46151B1AD56C879DCC65A57EA8A15D7703 +6FBC9A67BFA81181CCB02F69147BFD65EB2C53521E40939B68ADE7080B2059E709FBB73ED99C00 +A3F430F1D5E046B19757CD45F59C9D6FF117511129C2EB526FC41299A20B78D9C625E7A61BE199 +48D066D52CCE4A7E04CEE4F8633C48BAB8DDD605A1D472C5DC59233BE942CFF744581E0D96F812 +63DC54ADDE1DC06679FF0D8EF5A8ADC89619EC8FF273F22DCB79673FC1DD0490DEA3D627FDEBEF +686B242BB7641FBF0A6EEF2158424A4F2CAA2CA842457ED90265DDEA68ACA37DF65309BCE5D47B +AF4E4796CFBDEFF4DE11ABF268F400DFF85F94C7C4FCA63E3916DFBABEE8ECDAEB1A2CC8765E02 +492B202D921D0828533B4A011BD76FF8489964073B1E153236449C4691556CEA6BFFBD509CF63B +B9A45C25425B18718F9D19475942183D32360227306BB63DDF2348237FF65BCBA3E5F5D6E63157 +D55C7CE9B6B364045ED751DBAFA6F4CEB81C8B042B271C516ED34EAAD5DE53530E3C84D31C00B6 +9194FE247A1CC2A7400C2A1547E10A818A7D9E642CBA34672B785214D39ACDEF57F65009B3B6B7 +C0CC45DF732874F6D5878EBCDA9527500AA396C3C6BF02B3A6A44BDB99BECFA75E6410E4836F54 +A79CC880B005E243C9536086563CDB7BE27F5EF2C98DA2C8BC073D00617574DB6A55738F4F75CC +4178B60BD604D90CE5687B5C665F2EC1E4270C96C60D23DF86E34A1024C18ADAFF3446E5DDEDCC +D3274FC57D2ABB3E77FC89105C7063E9A2B73CCE6CF6A566CDE4CFFE30934DF726DE5C9C71335C +4458369AFC3A85F8343A4A95D15F9EE79355CBC2960AD990BE454990CD51AD6B9CBC542F60DCC5 +8AACA357744005594AE91D63E8DB5FEC4273FB3295FCA089A57FF5E5B6A386D9110F9A12C55CA1 +8ED38D962B5487EBFABB8B3F84AC82A094675731FAF0CF81FC329A90D74B5443F716241D90AE43 +85877655980782097AA01639D51E1E8D6EBF5DB7FCB6081B9F315F66A0C2BCFF3EA35C450ED911 +E89E021CA023213253E672387C56ACE512DFB7D942BC03F10A028215E3470B4B433388955409D2 +93C5D09CAD44342551BEF6BA3351A5801359C682B8CD5F375C07105669122D86E83BFD5D1E3035 +7F6BF160513871950A265DE83CC1A9E70C60185E2058D32198678229AAB3ED641A48ED761ABD13 +3664B82C86B1D9199913F7A141157AD4888F6FDC030A84398BD3EB1798CB9C98546E9B247E280C +C4A86B8A52BFC33F113CFEBD114027C294FBB8FA63EC4708372028E07FC8BA2DDBC4B713A39D65 +A0C2C1E00F7E68AE3C0752106BFDE83C51F6EDCF2412B0A938BAABAA3A65848283893756DEAAF9 +E0BE4FB5FE474D994C1A66014DD0FED90BA8001268FD87612549BDEB9C89B952F61112EA8B5F75 +14D810A100825C62AA5706D772C87D4B5263FF9A6E6BBDFF1C06635C34C89D3853567CAE87F784 +72384D9901FCAFDD94F16889344F121AFEB571D9C1BFCC714B98FCFE19BF851B2FFA159A726607 +B5803CB705BCFA9ED3CF2B73CE527683ED7CAF3F1A4F9B31C51FC569080AED7B824E489DCBF24E +5146AD35C5B3A99045B93103510287175F7CF02052EC73C6BA8A7D0187E2B1CB361E6CBFDDF894 +35ABB3BBEAA60A6A428EE0811BF0406CE1E72F7255998A9BB23D42180423BC9779F641CAF9541F +1A7B291C1AB2EB138F6C0239010E1AEA43D3EAE6F80AC698D4E7C1A6DE606252A72C233985F6B6 +89A469B0B2D9652586EFCC7E1D008E9DA1034E99D90E0BBD77795D0E7A7A5346C3451417DEB2FD +C5A5F2B3558975C6C213C9F61C1FD5A30BE894185D37474A2C16187A45FDAFD2CBE4574E54B2FB +1AECC04783067487DA0CBA39935A150FA333DD4BB0EA7050B57FCA416DD4CA1CB3E5938659CF80 +9A5BFD4A7C2EFD7834A6EF13C7A1D24353FB378A6DDE916F06560F575643FEC5AF8A39E7043317 +C322FF30051BACB8A3B81D1FE45BC8CA76A9C75AF67F8EBE4731E9F92E9EE4F2FC2764F52DC679 +F7E41F2BA1D44042BCCDE3352052A90025BD12F72BB6BD8FA671D4F616D0A12E06D9556B51E846 +14D8068D3313E48F7A5C869E2077A648472C1C83B095601B400274F9FF080B5F50E41A0E3D8A43 +633C31C2924A436FB5095FC38F0365C1C12D5D6C0E2658D01C207838583EC2CD413CC9ACB0A29A +26A0A145679363CBEC2EDBA55061ADBA688E27C15A5F2E02F2191D70A61186DCEDA9CC9AD49E50 +A5F87B5BF42C160FBA5BEC989CB389ABCC6D3FAF0CDA873C979694A60D92FA061E47DCFC77266A +D57AD5C13AD7388AB7258EC43ED293D02C857EBD8734E60C09927EFCD0D7645A6DBEFEB4702CED +FECFB1F6AC60D986AE88BEDE84CB8FB34B844881C3FDF5391A66B171CC486469BBFD11003A5B6D +3BD979976FC9F28EBB3DDD1FA11FFEE828191E00FC88110DD15CE7856DAF3CAC9C28651042EC1B +2EFAE309F2F9501FCB173DFAF6B3374B05D410CDCB9B922D547A70B521E4311A5D18B99D5956A8 +3F45B5011CF94DA3D438650D14388206AA25A74FF837FB62A3FDDEF5FE605A633AB31CE549E78A +88BE7913502E562FB73B0C99B3FB8D6642B99C720C6AE9412B92469D4BC8FF30DFC990EE4565A6 +225F775D986E5934B8EC02D3EFD92B56C3AA4FCEA1A9EF9EA69BEBA985CFEE14856941669DAA45 +612E5849B2126BA4A510139607E092C2CD8E0B19EAB8165BC1104AF67922AD95AA92DE63CBAB3A +980DB1606EA30F139059B463CCD4AF0A0BB436D0FCA3C73E9099FAA7C646242612E1519C563BB9 +14B7A10A1EFA6FBAB8F2CB45B8EBABC22E6540B76684D7308EA7BBD6FE2564EE9C2AEFCFFE0F75 +25BD8A3506135F5C0865BD1F0952F26C364524C88D6E649177F84FD61110F178D59AA036A64AD3 +CE9C7D83CE66106E32856DD62F7F82DC8D578BF33213F7A70637760AABA819479132F06479AFBB +1004BA1568E59F915329C7217AC60C101A73F0D12A6AC9E8B36D7E68F1F75E55D28ACD1783C81D +5A35FE276EBB494F87E51DDFBEAF65EB7B28077AFF83C86038251F6DF9C265D3FF4E61A0C62051 +4CD5008E9BD19C95385EA512C341053AECA3FB273427699086BB41DCE2100E5CB13BE744767564 +611202F27E531C78B0E176ACA47C71AC3FE4AFCB3E4D4E84B2D6A10B4A242D68A424F6E980D51F +9A9BB8833B0D91A874F95BE8DF4CE9169F8FCB6E0FE14E31F16BBB3D974661C956710D440CCEE8 +BACB2A1CE47B0007171AC6681EDCF7FC3990ED6FBCE65CDE14D54BF4AF85D70032AB6119B01D32 +D90E1407523877FA2D780912DC97A01D56F4C025B7BC2E872157E85A5E58AEDC569F06EDB8F821 +831FA0520CAE97AB99031DCF2A4601DAB17CDF9F5169BD38E92F02D2EB2E2ECE37FE1C58FA3811 +A68346966D59437C10F28C43BE9546E3193F18EE3410BDBA68175A87A894910029A9F6E0723596 +E1AA2457684B853B5A0BBBC063CCA9F425B0DCBC0D86AA21988A0EBD306B7C8A4C7E5DE43A898C +95D6F5BDD6DD23F81C9268431B4D465932DEF9CF37BCFBC05B07DDA75087377A5132904DC12F2D +B322E15E3A2A9305E3B4C81A5A523A57F95DBE48FE4DA1BBF630401164F38B8FC237D3BF7B5CE9 +55389B0F7501BDFDE99763EB3965EE6C792130411B7BD7DEA605DE4F376D3F130877D0337CDF0A +807588683D85B7548606E78C3C1F3EDEBB2C1755DA24C64792E3B82D46A1CDF34FE0E8E3810C8F +9460570BBCFC4F98D42A0B048C8E0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark diff --git a/Build/source/texk/lcdf-typetools/tests/uhvrrc8a.pfb b/Build/source/texk/lcdf-typetools/tests/uhvrrc8a.pfb new file mode 100644 index 00000000000..09b04db7613 Binary files /dev/null and b/Build/source/texk/lcdf-typetools/tests/uhvrrc8a.pfb differ -- cgit v1.2.3