From 3562e78743202e43aec8727005182a2558117eca Mon Sep 17 00:00:00 2001 From: marha Date: Sun, 28 Jun 2009 22:07:26 +0000 Subject: Checked in the following released items: xkeyboard-config-1.4.tar.gz ttf-bitstream-vera-1.10.tar.gz font-alias-1.0.1.tar.gz font-sun-misc-1.0.0.tar.gz font-sun-misc-1.0.0.tar.gz font-sony-misc-1.0.0.tar.gz font-schumacher-misc-1.0.0.tar.gz font-mutt-misc-1.0.0.tar.gz font-misc-misc-1.0.0.tar.gz font-misc-meltho-1.0.0.tar.gz font-micro-misc-1.0.0.tar.gz font-jis-misc-1.0.0.tar.gz font-isas-misc-1.0.0.tar.gz font-dec-misc-1.0.0.tar.gz font-daewoo-misc-1.0.0.tar.gz font-cursor-misc-1.0.0.tar.gz font-arabic-misc-1.0.0.tar.gz font-winitzki-cyrillic-1.0.0.tar.gz font-misc-cyrillic-1.0.0.tar.gz font-cronyx-cyrillic-1.0.0.tar.gz font-screen-cyrillic-1.0.1.tar.gz font-xfree86-type1-1.0.1.tar.gz font-adobe-utopia-type1-1.0.1.tar.gz font-ibm-type1-1.0.0.tar.gz font-bitstream-type1-1.0.0.tar.gz font-bitstream-speedo-1.0.0.tar.gz font-bh-ttf-1.0.0.tar.gz font-bh-type1-1.0.0.tar.gz font-bitstream-100dpi-1.0.0.tar.gz font-bh-lucidatypewriter-100dpi-1.0.0.tar.gz font-bh-100dpi-1.0.0.tar.gz font-adobe-utopia-100dpi-1.0.1.tar.gz font-adobe-100dpi-1.0.0.tar.gz font-util-1.0.1.tar.gz font-bitstream-75dpi-1.0.0.tar.gz font-bh-lucidatypewriter-75dpi-1.0.0.tar.gz font-adobe-utopia-75dpi-1.0.1.tar.gz font-bh-75dpi-1.0.0.tar.gz bdftopcf-1.0.1.tar.gz font-adobe-75dpi-1.0.0.tar.gz mkfontscale-1.0.6.tar.gz openssl-0.9.8k.tar.gz bigreqsproto-1.0.2.tar.gz xtrans-1.2.2.tar.gz resourceproto-1.0.2.tar.gz inputproto-1.4.4.tar.gz compositeproto-0.4.tar.gz damageproto-1.1.0.tar.gz zlib-1.2.3.tar.gz xkbcomp-1.0.5.tar.gz freetype-2.3.9.tar.gz pthreads-w32-2-8-0-release.tar.gz pixman-0.12.0.tar.gz kbproto-1.0.3.tar.gz evieext-1.0.2.tar.gz fixesproto-4.0.tar.gz recordproto-1.13.2.tar.gz randrproto-1.2.2.tar.gz scrnsaverproto-1.1.0.tar.gz renderproto-0.9.3.tar.gz xcmiscproto-1.1.2.tar.gz fontsproto-2.0.2.tar.gz xextproto-7.0.3.tar.gz xproto-7.0.14.tar.gz libXdmcp-1.0.2.tar.gz libxkbfile-1.0.5.tar.gz libfontenc-1.0.4.tar.gz libXfont-1.3.4.tar.gz libX11-1.1.5.tar.gz libXau-1.0.4.tar.gz libxcb-1.1.tar.gz xorg-server-1.5.3.tar.gz --- libXfont/src/builtins/Makefile.am | 17 + libXfont/src/builtins/Makefile.in | 463 ++++++++++++++ libXfont/src/builtins/buildfont | 14 + libXfont/src/builtins/builtin.h | 64 ++ libXfont/src/builtins/dir.c | 217 +++++++ libXfont/src/builtins/file.c | 133 ++++ libXfont/src/builtins/fonts.c | 1255 +++++++++++++++++++++++++++++++++++++ libXfont/src/builtins/fpe.c | 95 +++ libXfont/src/builtins/render.c | 136 ++++ 9 files changed, 2394 insertions(+) create mode 100644 libXfont/src/builtins/Makefile.am create mode 100644 libXfont/src/builtins/Makefile.in create mode 100644 libXfont/src/builtins/buildfont create mode 100644 libXfont/src/builtins/builtin.h create mode 100644 libXfont/src/builtins/dir.c create mode 100644 libXfont/src/builtins/file.c create mode 100644 libXfont/src/builtins/fonts.c create mode 100644 libXfont/src/builtins/fpe.c create mode 100644 libXfont/src/builtins/render.c (limited to 'libXfont/src/builtins') diff --git a/libXfont/src/builtins/Makefile.am b/libXfont/src/builtins/Makefile.am new file mode 100644 index 000000000..b203fda2f --- /dev/null +++ b/libXfont/src/builtins/Makefile.am @@ -0,0 +1,17 @@ +INCLUDES = \ + -I${top_srcdir}/include \ + -I${top_srcdir}/src/bitmap + +AM_CFLAGS = $(XFONT_CFLAGS) $(OS_CFLAGS) $(CWARNFLAGS) + +noinst_LTLIBRARIES = libbuiltins.la + +libbuiltins_la_SOURCES = \ + builtin.h \ + dir.c \ + file.c \ + fonts.c \ + fpe.c \ + render.c + +EXTRA_DIST = buildfont diff --git a/libXfont/src/builtins/Makefile.in b/libXfont/src/builtins/Makefile.in new file mode 100644 index 000000000..3d57cfa88 --- /dev/null +++ b/libXfont/src/builtins/Makefile.in @@ -0,0 +1,463 @@ +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = src/builtins +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h \ + $(top_builddir)/include/X11/fonts/fontconf.h +CONFIG_CLEAN_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libbuiltins_la_LIBADD = +am_libbuiltins_la_OBJECTS = dir.lo file.lo fonts.lo fpe.lo render.lo +libbuiltins_la_OBJECTS = $(am_libbuiltins_la_OBJECTS) +DEFAULT_INCLUDES = -I. -I$(top_builddir) -I$(top_builddir)/include/X11/fonts@am__isrc@ +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(libbuiltins_la_SOURCES) +DIST_SOURCES = $(libbuiltins_la_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CHANGELOG_CMD = @CHANGELOG_CMD@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CWARNFLAGS = @CWARNFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENCODINGSDIR = @ENCODINGSDIR@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ +FREETYPE_LIBS = @FREETYPE_LIBS@ +FREETYPE_REQUIRES = @FREETYPE_REQUIRES@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MATH_LIBS = @MATH_LIBS@ +MKDIR_P = @MKDIR_P@ +OBJEXT = @OBJEXT@ +OS_CFLAGS = @OS_CFLAGS@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +XFONT_CFLAGS = @XFONT_CFLAGS@ +XFONT_LIBS = @XFONT_LIBS@ +X_GZIP_FONT_COMPRESSION = @X_GZIP_FONT_COMPRESSION@ +Z_LIBS = @Z_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +distcleancheck_listfiles = @distcleancheck_listfiles@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +ft_config = @ft_config@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +INCLUDES = \ + -I${top_srcdir}/include \ + -I${top_srcdir}/src/bitmap + +AM_CFLAGS = $(XFONT_CFLAGS) $(OS_CFLAGS) $(CWARNFLAGS) +noinst_LTLIBRARIES = libbuiltins.la +libbuiltins_la_SOURCES = \ + builtin.h \ + dir.c \ + file.c \ + fonts.c \ + fpe.c \ + render.c + +EXTRA_DIST = buildfont +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/builtins/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/builtins/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libbuiltins.la: $(libbuiltins_la_OBJECTS) $(libbuiltins_la_DEPENDENCIES) + $(LINK) $(libbuiltins_la_OBJECTS) $(libbuiltins_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fonts.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fpe.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/render.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am 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 \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/libXfont/src/builtins/buildfont b/libXfont/src/builtins/buildfont new file mode 100644 index 000000000..aa4602ff8 --- /dev/null +++ b/libXfont/src/builtins/buildfont @@ -0,0 +1,14 @@ +#!/bin/sh +# +# Convert a bdf file into C-code suitable for inclusion in +# builtin fonts +# +FONT=$1 +NAME=$2 +echo 'static const char file_'$NAME'[] = {' +bdftopcf -p1 -u1 $1 | + compress -b 12 | + od -b -v -w8 | + sed 's/^[0-9]*\( *\)/\1\1\1\1/' | + sed 's/\([0-9][0-9]*\)/'"'"'\\\1'"'"',/g' +echo '};' diff --git a/libXfont/src/builtins/builtin.h b/libXfont/src/builtins/builtin.h new file mode 100644 index 000000000..f12f9b0f2 --- /dev/null +++ b/libXfont/src/builtins/builtin.h @@ -0,0 +1,64 @@ +/* + * Id: builtin.h,v 1.2 1999/11/02 06:16:47 keithp Exp $ + * + * Copyright 1999 SuSE, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of SuSE not be used in advertising or + * publicity pertaining to distribution of the software without specific, + * written prior permission. SuSE makes no representations about the + * suitability of this software for any purpose. It is provided "as is" + * without express or implied warranty. + * + * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE + * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Author: Keith Packard, SuSE, Inc. + */ +/* $XFree86: xc/lib/font/builtins/builtin.h,v 1.3 1999/12/30 02:29:49 robin Exp $ */ + +#include +#include +#include +#include +#include +#include + +typedef struct _BuiltinFile { + const char *name; + int len; + const char *bits; +} BuiltinFileRec, *BuiltinFilePtr; + +typedef struct _BuiltinDir { + char *file_name; + char *font_name; +} BuiltinDirRec, *BuiltinDirPtr; + +typedef struct _BuiltinAlias { + char *alias_name; + char *font_name; +} BuiltinAliasRec, *BuiltinAliasPtr; + +extern const BuiltinFileRec builtin_files[]; +extern const int builtin_files_count; + +extern const BuiltinDirRec builtin_dir[]; +extern const int builtin_dir_count; + +extern const BuiltinAliasRec builtin_alias[]; +extern const int builtin_alias_count; + +extern FontFilePtr BuiltinFileOpen (char *); +extern int BuiltinFileClose (BufFilePtr, int); +extern int BuiltinReadDirectory (char *, FontDirectoryPtr *); +extern void BuiltinRegisterFontFileFunctions (void); + +extern void BuiltinRegisterFpeFunctions (void); diff --git a/libXfont/src/builtins/dir.c b/libXfont/src/builtins/dir.c new file mode 100644 index 000000000..dd2ea1a86 --- /dev/null +++ b/libXfont/src/builtins/dir.c @@ -0,0 +1,217 @@ +/* + * Id: dir.c,v 1.2 1999/11/02 06:16:47 keithp Exp $ + * + * Copyright 1999 SuSE, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of SuSE not be used in advertising or + * publicity pertaining to distribution of the software without specific, + * written prior permission. SuSE makes no representations about the + * suitability of this software for any purpose. It is provided "as is" + * without express or implied warranty. + * + * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE + * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Author: Keith Packard, SuSE, Inc. + */ +/* $XFree86: xc/lib/font/builtins/dir.c,v 1.3 1999/12/30 02:29:49 robin Exp $ */ + +#ifdef HAVE_CONFIG_H +#include +#endif +#include "builtin.h" + +static BuiltinDirPtr +BuiltinDirsDup (const BuiltinDirPtr a_dirs, + int a_dirs_len) +{ + BuiltinDirPtr dirs=NULL ; + int i=0 ; + + if (!a_dirs) + return NULL ; + + dirs = xcalloc (a_dirs_len, sizeof (BuiltinDirRec)) ; + if (!dirs) + return NULL ; + + for (i=0; i < a_dirs_len; i++) { + int len = strlen (a_dirs[i].file_name) ; + dirs[i].file_name = xcalloc (1, len+1) ; + memmove (dirs[i].file_name, a_dirs[i].file_name, len); + len = strlen (a_dirs[i].font_name) ; + dirs[i].font_name = xcalloc (1, len+1) ; + memmove (dirs[i].font_name, a_dirs[i].font_name, len); + } + return dirs ; +} + +/** + * Copy a_save back into a_cur + * @param a_cur the instance of BuiltinDir to restore + * @param a_saved the saved instance of BuiltinDir to copy into a_cur + * @return 0 if went okay, 1 otherwise. + */ +static int +BuiltinDirRestore (BuiltinDirPtr a_cur, + const BuiltinDirPtr a_saved) +{ + if (!a_cur) + return 1 ; + if (!a_saved) + return 0 ; + + if (a_saved->font_name) + memmove (a_cur->font_name, a_saved->font_name, strlen (a_saved->font_name)) ; + return 0 ; +} + + +static int +BuiltinDirsRestore (BuiltinDirPtr a_cur_tab, + const BuiltinDirPtr a_saved_tab, + int a_tab_len) +{ + int i=0 ; + + if (!a_cur_tab) + return 1 ; + if (!a_saved_tab) + return 0 ; + + for (i=0 ; i < a_tab_len; i++) { + if (BuiltinDirRestore (&a_cur_tab[i], &a_saved_tab[i])) + return 1 ; + } + return 0 ; +} + +static BuiltinAliasPtr +BuiltinAliasesDup (const BuiltinAliasPtr a_aliases, + int a_aliases_len) +{ + BuiltinAliasPtr aliases=NULL ; + int i=0 ; + + if (!a_aliases) + return NULL ; + + aliases = xcalloc (a_aliases_len, sizeof (BuiltinAliasRec)) ; + if (!aliases) + return NULL ; + + for (i=0; i < a_aliases_len; i++) { + int len = strlen (a_aliases[i].font_name) ; + aliases[i].font_name = xcalloc (1, len+1) ; + memmove (aliases[i].font_name, a_aliases[i].font_name, len); + } + return aliases ; +} + +/** + * Copy a_save back into a_cur + * @param a_cur the instance of BuiltinAlias to restore + * @param a_saved the saved instance of BuiltinAlias to copy into a_cur + * @return 0 if went okay, 1 otherwise. + */ +static int +BuiltinAliasRestore (BuiltinAliasPtr a_cur, + const BuiltinAliasPtr a_save) +{ + if (!a_cur) + return 1 ; + if (!a_save) + return 0 ; + if (a_save->alias_name) + memmove (a_cur->alias_name, a_save->alias_name, strlen (a_save->alias_name)) ; + if (a_save->font_name) + memmove (a_cur->font_name, a_save->font_name, strlen (a_save->font_name)) ; + return 0 ; +} + +static int +BuiltinAliasesRestore (BuiltinAliasPtr a_cur_tab, + const BuiltinAliasPtr a_saved_tab, + int a_tab_len) +{ + int i=0 ; + + if (!a_cur_tab) + return 1 ; + if (!a_saved_tab) + return 0 ; + + for (i=0 ; i < a_tab_len; i++) { + if (BuiltinAliasRestore (&a_cur_tab[i], &a_saved_tab[i])) + return 1 ; + } + return 0 ; +} + +int +BuiltinReadDirectory (char *directory, FontDirectoryPtr *pdir) +{ + FontDirectoryPtr dir; + int i; + + static BuiltinDirPtr saved_builtin_dir; + static BuiltinAliasPtr saved_builtin_alias; + + dir = FontFileMakeDir ("", builtin_dir_count); + + if (saved_builtin_dir) + { + BuiltinDirsRestore ((BuiltinDirPtr) builtin_dir, + saved_builtin_dir, + builtin_dir_count) ; + } + else + { + saved_builtin_dir = BuiltinDirsDup ((const BuiltinDirPtr) builtin_dir, + builtin_dir_count) ; + } + + if (saved_builtin_alias) + { + BuiltinAliasesRestore ((BuiltinAliasPtr) builtin_alias, + saved_builtin_alias, + builtin_alias_count) ; + } + else + { + saved_builtin_alias = BuiltinAliasesDup ((const BuiltinAliasPtr) builtin_alias, + builtin_alias_count) ; + } + + for (i = 0; i < builtin_dir_count; i++) + { + if (!FontFileAddFontFile (dir, + (char *) builtin_dir[i].font_name, + (char *) builtin_dir[i].file_name)) + { + FontFileFreeDir (dir); + return BadFontPath; + } + } + for (i = 0; i < builtin_alias_count; i++) + { + if (!FontFileAddFontAlias (dir, + (char *) builtin_alias[i].alias_name, + (char *) builtin_alias[i].font_name)) + { + FontFileFreeDir (dir); + return BadFontPath; + } + } + FontFileSortDir (dir); + *pdir = dir; + return Successful; +} diff --git a/libXfont/src/builtins/file.c b/libXfont/src/builtins/file.c new file mode 100644 index 000000000..a46b0a65e --- /dev/null +++ b/libXfont/src/builtins/file.c @@ -0,0 +1,133 @@ +/* + * Id: file.c,v 1.2 1999/11/02 06:16:47 keithp Exp $ + * + * Copyright 1999 SuSE, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of SuSE not be used in advertising or + * publicity pertaining to distribution of the software without specific, + * written prior permission. SuSE makes no representations about the + * suitability of this software for any purpose. It is provided "as is" + * without express or implied warranty. + * + * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE + * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Author: Keith Packard, SuSE, Inc. + */ +/* $XFree86: xc/lib/font/builtins/file.c,v 1.3 1999/12/30 02:29:49 robin Exp $ */ + +#ifdef HAVE_CONFIG_H +#include +#endif +#include +#include "builtin.h" + +typedef struct _BuiltinIO { + int offset; + BuiltinFilePtr file; +} BuiltinIORec, *BuiltinIOPtr; + +static int +BuiltinFill (BufFilePtr f) +{ + int left, len; + BuiltinIOPtr io = ((BuiltinIOPtr) f->private); + + left = io->file->len - io->offset; + if (left <= 0) + { + f->left = 0; + return BUFFILEEOF; + } + len = BUFFILESIZE; + if (len > left) + len = left; + memcpy (f->buffer, io->file->bits + io->offset, len); + io->offset += len; + f->left = len - 1; + f->bufp = f->buffer + 1; + return f->buffer[0]; +} + +static int +BuiltinSkip (BufFilePtr f, int count) +{ + BuiltinIOPtr io = ((BuiltinIOPtr) f->private); + int curoff; + int fileoff; + int todo; + + curoff = f->bufp - f->buffer; + fileoff = curoff + f->left; + if (curoff + count <= fileoff) { + f->bufp += count; + f->left -= count; + } else { + todo = count - (fileoff - curoff); + io->offset += todo; + if (io->offset > io->file->len) + io->offset = io->file->len; + if (io->offset < 0) + io->offset = 0; + f->left = 0; + } + return count; +} + +static int +BuiltinClose (BufFilePtr f, int unused) +{ + BuiltinIOPtr io = ((BuiltinIOPtr) f->private); + + xfree (io); + return 1; +} + + +FontFilePtr +BuiltinFileOpen (char *name) +{ + int i; + BuiltinIOPtr io; + BufFilePtr raw, cooked; + + if (*name == '/') name++; + for (i = 0; i < builtin_files_count; i++) + if (!strcmp (name, builtin_files[i].name)) + break; + if (i == builtin_files_count) + return NULL; + io = (BuiltinIOPtr) xalloc (sizeof (BuiltinIORec)); + if (!io) + return NULL; + io->offset = 0; + io->file = (void *) &builtin_files[i]; + raw = BufFileCreate ((char *) io, BuiltinFill, 0, BuiltinSkip, BuiltinClose); + if (!raw) + { + xfree (io); + return NULL; + } + if ((cooked = BufFilePushZIP (raw))) + raw = cooked; + else + { + raw->left += raw->bufp - raw->buffer; + raw->bufp = raw->buffer; + } + return (FontFilePtr) raw; +} + +int +BuiltinFileClose (FontFilePtr f, int unused) +{ + return BufFileClose ((BufFilePtr) f, TRUE); +} diff --git a/libXfont/src/builtins/fonts.c b/libXfont/src/builtins/fonts.c new file mode 100644 index 000000000..ef5f5efc1 --- /dev/null +++ b/libXfont/src/builtins/fonts.c @@ -0,0 +1,1255 @@ +/* + * Id: fonts.c,v 1.2 1999/11/02 06:16:47 keithp Exp $ + * + * Copyright 1999 SuSE, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of SuSE not be used in advertising or + * publicity pertaining to distribution of the software without specific, + * written prior permission. SuSE makes no representations about the + * suitability of this software for any purpose. It is provided "as is" + * without express or implied warranty. + * + * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE + * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Author: Keith Packard, SuSE, Inc. + */ +/* $XFree86: xc/lib/font/builtins/fonts.c,v 1.3 1999/12/30 02:29:49 robin Exp $ */ + +#ifdef HAVE_CONFIG_H +#include +#endif +#include "builtin.h" + +static const char file_cursor[] = { + '\037', '\213', '\010', '\010', '\143', '\117', '\054', '\100', + '\000', '\003', '\143', '\165', '\162', '\163', '\157', '\162', + '\056', '\160', '\143', '\146', '\000', '\355', '\233', '\177', + '\160', '\124', '\327', '\165', '\307', '\317', '\112', '\102', + '\022', '\130', '\040', '\021', '\300', '\226', '\023', '\031', + '\311', '\100', '\034', '\114', '\354', '\104', '\004', '\033', + '\013', '\233', '\040', '\141', '\040', '\006', '\327', '\001', + '\154', '\213', '\000', '\216', '\143', '\151', '\221', '\026', + '\244', '\146', '\365', '\203', '\325', '\352', '\027', '\010', + '\264', '\253', '\137', '\273', '\010', '\320', '\217', '\332', + '\155', '\035', '\217', '\123', '\323', '\044', '\323', '\361', + '\340', '\114', '\207', '\231', '\144', '\062', '\324', '\303', + '\324', '\212', '\235', '\232', '\046', '\045', '\305', '\323', + '\072', '\143', '\322', '\060', '\365', '\062', '\166', '\143', + '\246', '\166', '\221', '\360', '\057', '\224', '\262', '\150', + '\373', '\075', '\357', '\234', '\273', '\357', '\355', '\112', + '\313', '\217', '\244', '\371', '\057', '\232', '\371', '\274', + '\167', '\357', '\271', '\347', '\336', '\167', '\177', '\236', + '\173', '\356', '\173', '\053', '\327', '\316', '\252', '\306', + '\154', '\042', '\162', '\201', '\064', '\360', '\056', '\010', + '\153', '\230', '\251', '\006', '\136', '\044', '\146', '\160', + '\034', '\367', '\354', '\164', '\242', '\067', '\370', '\256', + '\351', '\147', '\027', '\021', '\235', '\101', '\142', '\221', + '\306', '\327', '\042', '\355', '\307', '\167', '\022', '\225', + '\151', '\274', '\021', '\227', '\361', '\045', '\104', '\001', + '\215', '\237', '\237', '\116', '\124', '\163', '\267', '\074', + '\320', '\224', '\277', '\371', '\076', '\011', '\043', '\311', + '\372', '\163', '\315', '\300', '\145', '\011', '\207', '\226', + '\103', '\353', '\136', '\226', '\334', '\217', '\313', '\152', + '\226', '\160', '\322', '\172', '\016', '\174', '\033', '\074', + '\316', '\201', '\215', '\240', '\322', '\004', '\352', '\070', + '\020', '\303', '\137', '\013', '\007', '\146', '\112', '\171', + '\101', '\260', '\146', '\323', '\346', '\355', '\217', '\155', + '\170', '\150', '\175', '\071', '\225', '\327', '\170', '\232', + '\074', '\105', '\013', '\166', '\171', '\333', '\033', '\153', + '\232', '\026', '\024', '\271', '\175', '\236', '\242', '\346', + '\172', '\117', '\175', '\125', '\163', '\335', '\016', '\217', + '\317', '\123', '\115', '\233', '\067', '\155', '\330', '\130', + '\136', '\361', '\370', '\206', '\047', '\326', '\321', '\327', + '\066', '\155', '\054', '\247', '\252', '\146', '\137', '\123', + '\203', '\217', '\266', '\256', '\263', '\162', '\077', '\266', + '\356', '\361', '\115', '\217', '\154', '\051', '\337', '\260', + '\151', '\243', '\043', '\130', '\261', '\315', '\031', '\331', + '\116', '\333', '\052', '\326', '\213', '\366', '\243', '\133', + '\126', '\257', '\255', '\330', '\272', '\141', '\155', '\271', + '\125', '\345', '\064', '\262', '\377', '\362', '\300', '\154', + '\255', '\353', '\305', '\030', '\267', '\053', '\026', '\263', + '\332', '\216', '\224', '\331', '\224', '\153', '\245', '\377', + '\076', '\177', '\074', '\106', '\317', '\321', '\236', '\360', + '\160', '\137', '\270', '\375', '\300', '\160', '\350', '\100', + '\123', '\160', '\070', '\060', '\340', '\353', '\032', '\016', + '\016', '\356', '\353', '\035', '\076', '\020', '\354', '\350', + '\033', '\356', '\357', '\262', '\103', '\110', '\350', '\356', + '\305', '\245', '\247', '\167', '\117', '\210', '\163', '\204', + '\221', '\043', '\060', '\060', '\174', '\070', '\330', '\071', + '\070', '\074', '\320', '\205', '\274', '\207', '\203', '\110', + '\035', '\350', '\102', '\352', '\341', '\040', '\122', '\007', + '\272', '\332', '\103', '\310', '\333', '\026', '\106', '\336', + '\266', '\320', '\160', '\070', '\214', '\120', '\070', '\214', + '\242', '\002', '\003', '\173', '\103', '\170', '\006', '\122', + '\103', '\041', '\113', '\206', '\032', '\164', '\037', '\336', + '\163', '\000', '\027', '\144', '\073', '\020', '\102', '\135', + '\254', '\113', '\110', '\152', '\025', '\017', '\205', '\035', + '\262', '\260', '\011', '\355', '\355', '\035', '\356', '\355', + '\335', '\323', '\067', '\334', '\327', '\207', '\113', '\157', + '\250', '\235', '\253', '\006', '\131', '\050', '\204', '\150', + '\070', '\354', '\103', '\213', '\006', '\371', '\062', '\024', + '\017', '\015', '\332', '\172', '\166', '\313', '\355', '\272', + '\240', '\011', '\135', '\207', '\271', '\251', '\207', '\367', + '\017', '\040', '\233', '\165', '\361', '\007', '\315', '\045', + '\060', '\210', '\332', '\007', '\206', '\120', '\173', '\124', + '\067', '\334', '\147', '\135', '\254', '\154', '\326', '\305', + '\052', '\264', '\315', '\352', '\227', '\060', '\364', '\072', + '\017', '\100', '\017', '\075', '\324', '\027', '\102', '\017', + '\205', '\302', '\201', '\176', '\074', '\243', '\363', '\240', + '\121', '\266', '\272', '\004', '\262', '\003', '\101', '\310', + '\372', '\273', '\132', '\203', '\010', '\265', '\164', '\111', + '\077', '\367', '\036', '\264', '\056', '\266', '\136', '\307', + '\301', '\341', '\340', '\341', '\216', '\103', '\050', '\257', + '\045', '\070', '\074', '\030', '\154', '\356', '\302', '\005', + '\175', '\160', '\250', '\007', '\265', '\077', '\324', '\203', + '\076', '\355', '\355', '\105', '\237', '\366', '\365', '\165', + '\240', '\345', '\341', '\275', '\334', '\362', '\166', '\036', + '\313', '\066', '\036', '\113', '\214', '\114', '\137', '\010', + '\345', '\205', '\302', '\170', '\106', '\050', '\204', '\147', + '\070', '\153', '\140', '\367', '\001', '\372', '\245', '\163', + '\000', '\011', '\201', '\241', '\175', '\075', '\303', '\203', + '\001', '\024', '\145', '\075', '\243', '\273', '\007', '\227', + '\236', '\336', '\340', '\020', '\102', '\150', '\171', '\117', + '\357', '\356', '\000', '\102', '\273', '\203', '\010', '\101', + '\257', '\163', '\010', '\172', '\126', '\216', '\120', '\330', + '\172', '\170', '\013', '\107', '\233', '\371', '\342', '\030', + '\337', '\176', '\056', '\236', '\057', '\255', '\350', '\335', + '\201', '\026', '\276', '\130', '\323', '\307', '\214', '\145', + '\237', '\065', '\334', '\241', '\075', '\241', '\041', '\204', + '\302', '\103', '\350', '\253', '\001', '\356', '\277', '\101', + '\351', '\077', '\015', '\331', '\263', '\023', '\063', '\054', + '\300', '\005', '\130', '\163', '\050', '\320', '\217', '\147', + '\004', '\017', '\242', '\006', '\001', '\251', '\013', '\372', + '\064', '\320', '\217', '\076', '\015', '\036', '\104', '\152', + '\327', '\041', '\244', '\166', '\015', '\240', '\345', '\201', + '\176', '\074', '\067', '\170', '\020', '\025', '\077', '\020', + '\262', '\056', '\373', '\172', '\372', '\103', '\241', '\216', + '\336', '\376', '\160', '\230', '\327', '\332', '\163', '\272', + '\046', '\112', '\100', '\033', '\070', '\006', '\306', '\100', + '\076', '\326', '\310', '\172', '\320', '\010', '\216', '\200', + '\021', '\360', '\056', '\050', '\100', '\246', '\047', '\301', + '\063', '\340', '\115', '\220', '\003', '\133', '\367', '\010', + '\350', '\001', '\077', '\003', '\037', '\200', '\002', '\330', + '\272', '\047', '\301', '\363', '\340', '\115', '\060', '\167', + '\032', '\164', '\300', '\041', '\160', '\012', '\344', '\144', + '\042', '\016', '\016', '\201', '\177', '\006', '\331', '\131', + '\260', '\211', '\040', '\000', '\116', '\200', '\050', '\050', + '\201', '\361', '\154', '\003', '\107', '\300', '\033', '\331', + '\142', '\370', '\112', '\100', '\043', '\070', '\006', '\076', + '\000', '\167', '\301', '\320', '\325', '\200', '\037', '\200', + '\067', '\101', '\316', '\115', '\050', '\007', '\364', '\200', + '\023', '\040', '\012', '\112', '\162', '\120', '\016', '\070', + '\016', '\306', '\101', '\011', '\354', '\135', '\033', '\070', + '\006', '\306', '\300', '\342', '\131', '\260', '\214', '\340', + '\010', '\210', '\200', '\374', '\134', '\242', '\155', '\140', + '\010', '\274', '\001', '\062', '\140', '\144', '\312', '\100', + '\033', '\070', '\016', '\306', '\101', '\011', '\214', '\122', + '\045', '\030', '\002', '\307', '\301', '\171', '\260', '\370', + '\063', '\250', '\013', '\170', '\021', '\234', '\007', '\105', + '\163', '\240', '\003', '\216', '\200', '\010', '\050', '\232', + '\213', '\070', '\010', '\203', '\343', '\340', '\143', '\160', + '\317', '\074', '\354', '\033', '\340', '\207', '\040', '\002', + '\012', '\156', '\046', '\052', '\007', '\317', '\200', '\067', + '\301', '\334', '\133', '\320', '\117', '\340', '\020', '\030', + '\271', '\205', '\007', '\205', '\150', '\045', '\350', '\000', + '\317', '\202', '\023', '\340', '\014', '\210', '\202', '\374', + '\133', '\221', '\006', '\332', '\300', '\161', '\360', '\061', + '\050', '\376', '\054', '\372', '\013', '\034', '\003', '\347', + '\301', '\342', '\317', '\241', '\216', '\340', '\105', '\160', + '\036', '\054', '\056', '\100', '\034', '\274', '\010', '\316', + '\202', '\271', '\267', '\141', '\314', '\101', '\017', '\070', + '\001', '\242', '\340', '\236', '\371', '\104', '\176', '\360', + '\103', '\360', '\001', '\130', '\124', '\210', '\375', '\010', + '\034', '\002', '\047', '\100', '\024', '\254', '\304', '\306', + '\126', '\015', '\236', '\001', '\247', '\100', '\316', '\355', + '\310', '\007', '\252', '\301', '\017', '\300', '\273', '\240', + '\140', '\001', '\321', '\217', '\320', '\167', '\137', '\102', + '\137', '\075', '\211', '\360', '\361', '\265', '\104', '\131', + '\230', '\164', '\271', '\053', '\211', '\012', '\127', '\021', + '\255', '\342', '\262', '\320', '\337', '\343', '\030', '\373', + '\261', '\164', '\201', '\303', '\054', '\343', '\064', '\326', + '\141', '\135', '\053', '\017', '\046', '\150', '\341', '\070', + '\121', '\151', '\224', '\250', '\163', '\202', '\150', '\242', + '\023', '\172', '\245', '\320', '\207', '\336', '\130', '\256', + '\300', '\141', '\226', '\161', '\032', '\353', '\260', '\056', + '\347', '\341', '\274', '\124', '\014', '\120', '\026', '\101', + '\147', '\104', '\363', '\360', '\163', '\106', '\360', '\274', + '\010', '\150', '\304', '\263', '\113', '\170', '\036', '\143', + '\276', '\317', '\002', '\131', '\146', '\137', '\212', '\000', + '\224', '\101', '\050', '\057', '\200', '\162', '\043', '\140', + '\274', '\124', '\236', '\303', '\375', '\020', '\321', '\262', + '\306', '\101', '\007', '\062', '\255', '\002', '\205', '\310', + '\210', '\151', '\145', '\371', '\006', '\061', '\135', '\153', + '\061', '\031', '\312', '\004', '\236', '\320', '\052', '\161', + '\070', '\226', '\076', '\231', '\066', '\135', '\237', '\023', + '\056', '\233', '\250', '\312', '\362', '\065', '\357', '\023', + '\123', '\224', '\353', '\174', '\146', '\361', '\024', '\145', + '\230', '\162', '\247', '\172', '\146', '\200', '\233', '\214', + '\373', '\354', '\114', '\222', '\235', '\067', '\137', '\033', + '\222', '\046', '\351', '\334', '\035', '\074', '\116', '\277', + '\313', '\222', '\364', '\070', '\350', '\207', '\130', '\226', + '\350', '\074', '\204', '\171', '\265', '\066', '\303', '\206', + '\323', '\326', '\315', '\115', '\204', '\145', '\116', '\035', + '\316', '\363', '\366', '\076', '\233', '\263', '\230', '\207', + '\261', '\116', '\033', '\043', '\167', '\312', '\130', '\307', + '\231', '\007', '\217', '\266', '\130', '\010', '\333', '\261', + '\020', '\145', '\056', '\104', '\235', '\027', '\242', '\275', + '\337', '\207', '\254', '\012', '\274', '\223', '\153', '\353', + '\060', '\261', '\122', '\001', '\142', '\213', '\121', '\164', + '\326', '\050', '\346', '\332', '\050', '\352', '\062', '\212', + '\001', '\034', '\105', '\173', '\106', '\241', '\070', '\132', + '\152', '\303', '\172', '\011', '\355', '\066', '\235', '\014', + '\062', '\226', '\302', '\256', '\201', '\074', '\120', '\004', + '\312', '\100', '\000', '\104', '\227', '\332', '\072', '\214', + '\171', '\256', '\145', '\164', '\101', '\316', '\045', '\314', + '\073', '\120', '\002', '\032', '\101', '\004', '\214', '\200', + '\250', '\003', '\326', '\113', '\176', '\156', '\031', '\115', + '\015', '\367', '\347', '\172', '\264', '\175', '\263', '\113', + '\306', '\253', '\314', '\314', '\207', '\102', '\141', '\304', + '\065', '\065', '\247', '\156', '\225', '\076', '\345', '\271', + '\074', '\226', '\045', '\363', '\200', '\345', '\316', '\076', + '\147', '\106', '\350', '\352', '\230', '\366', '\215', '\244', + '\137', '\235', '\344', '\366', '\160', '\331', '\354', '\157', + '\137', '\301', '\175', '\032', '\052', '\375', '\111', '\005', + '\321', '\274', '\315', '\104', '\277', '\332', '\112', '\264', + '\245', '\034', '\154', '\101', '\030', '\314', '\103', '\370', + '\023', '\310', '\246', '\041', '\355', '\012', '\164', '\134', + '\145', '\132', '\267', '\344', '\362', '\156', '\020', '\063', + '\104', '\146', '\175', '\104', '\025', '\263', '\156', '\226', + '\241', '\316', '\113', '\323', '\022', '\206', '\322', '\102', + '\207', '\221', '\306', '\135', '\102', '\064', '\135', '\230', + '\310', '\022', '\142', '\271', '\066', '\227', '\146', '\331', + '\372', '\206', '\210', '\313', '\266', '\173', '\363', '\141', + '\157', '\147', '\025', '\210', '\315', '\163', '\302', '\062', + '\116', '\063', '\366', '\222', '\363', '\260', '\335', '\162', + '\332', '\074', '\306', '\330', '\074', '\047', '\054', '\063', + '\351', '\306', '\146', '\106', '\364', '\171', '\277', '\305', + '\230', '\317', '\131', '\106', '\364', '\163', '\234', '\127', + '\332', '\301', '\154', '\330', '\351', '\167', '\060', '\137', + '\047', '\240', '\363', '\213', '\271', '\066', '\377', '\215', + '\275', '\352', '\137', '\356', '\021', '\173', '\154', '\306', + '\227', '\165', '\056', '\255', '\040', '\372', '\115', '\053', + '\321', '\377', '\340', '\204', '\161', '\245', '\001', '\166', + '\141', '\047', '\321', '\107', '\115', '\222', '\376', '\376', + '\275', '\066', '\227', '\161', '\226', '\171', '\277', '\231', + '\350', '\164', '\207', '\075', '\217', '\306', '\165', '\257', + '\315', '\254', '\204', '\237', '\277', '\215', '\350', '\303', + '\207', '\260', '\056', '\313', '\204', '\064', '\345', '\071', + '\310', '\277', '\201', '\061', '\177', '\013', '\174', '\163', + '\273', '\055', '\267', '\332', '\221', '\053', '\066', '\170', + '\042', '\046', '\044', '\217', '\347', '\325', '\344', '\234', + '\277', '\314', '\065', '\065', '\235', '\152', '\100', '\371', + '\236', '\112', '\207', '\327', '\106', '\062', '\123', '\315', + '\251', '\251', '\364', '\230', '\007', '\261', '\077', '\256', + '\173', '\224', '\350', '\141', '\234', '\011', '\313', '\321', + '\267', '\065', '\360', '\133', '\066', '\303', '\117', '\172', + '\145', '\102', '\312', '\347', '\073', '\307', '\131', '\316', + '\351', '\254', '\307', '\372', '\234', '\157', '\047', '\306', + '\253', '\356', '\067', '\104', '\173', '\321', '\337', '\055', + '\350', '\127', '\057', '\366', '\365', '\212', '\053', '\030', + '\347', '\011', '\261', '\337', '\174', '\347', '\070', '\313', + '\071', '\235', '\365', '\130', '\237', '\363', '\161', '\172', + '\052', '\270', '\275', '\127', '\113', '\117', '\145', '\067', + '\234', '\355', '\115', '\245', '\063', '\242', '\375', '\126', + '\231', '\056', '\355', '\132', '\017', '\137', '\156', '\355', + '\154', '\151', '\117', '\147', '\247', '\366', '\167', '\247', + '\304', '\131', '\316', '\351', '\254', '\307', '\372', '\246', + '\277', '\331', '\046', '\361', '\230', '\263', '\215', '\372', + '\127', '\314', '\273', '\223', '\273', '\345', '\231', '\235', + '\372', '\154', '\216', '\263', '\174', '\052', '\033', '\346', + '\334', '\003', '\223', '\367', '\074', '\347', '\276', '\310', + '\353', '\167', '\252', '\165', '\353', '\304', '\244', '\263', + '\056', '\307', '\135', '\331', '\211', '\270', '\225', '\144', + '\271', '\225', '\277', '\324', '\306', '\254', '\355', '\367', + '\126', '\044', '\142', '\344', '\116', '\135', '\143', '\227', + '\330', '\036', '\375', '\104', '\155', '\121', '\262', '\035', + '\142', '\331', '\117', '\034', '\076', '\202', '\261', '\115', + '\306', '\046', '\045', '\267', '\311', '\330', '\237', '\344', + '\266', '\261', '\056', '\347', '\341', '\064', '\153', '\363', + '\110', '\341', '\073', '\261', '\357', '\136', '\006', '\212', + '\240', '\237', '\007', '\262', '\371', '\175', '\210', '\276', + '\277', '\140', '\073', '\156', '\275', '\176', '\340', '\212', + '\354', '\207', '\156', '\251', '\370', '\112', '\154', '\173', + '\046', '\162', '\005', '\266', '\101', '\074', '\106', '\307', + '\221', '\367', '\171', '\060', '\200', '\114', '\041', '\227', + '\354', '\315', '\256', '\024', '\317', '\266', '\034', '\053', + '\370', '\360', '\001', '\354', '\161', '\145', '\372', '\176', + '\205', '\337', '\011', '\360', '\161', '\101', '\335', '\224', + '\304', '\147', '\257', '\262', '\237', '\315', '\004', '\330', + '\347', '\343', '\147', '\147', '\312', '\073', '\030', '\076', + '\003', '\025', '\150', '\261', '\354', '\363', '\245', '\153', + '\177', '\014', '\243', '\300', '\357', '\140', '\016', '\316', + '\304', '\372', '\313', '\232', '\145', '\217', '\051', '\207', + '\131', '\306', '\151', '\303', '\111', '\143', '\372', '\321', + '\062', '\261', '\163', '\245', '\010', '\277', '\215', '\347', + '\216', '\176', '\125', '\340', '\060', '\313', '\070', '\215', + '\165', '\214', '\376', '\105', '\074', '\354', '\062', '\373', + '\213', '\070', '\243', '\114', '\107', '\131', '\267', '\362', + '\332', '\045', '\307', '\037', '\107', '\356', '\100', '\273', + '\140', '\227', '\163', '\120', '\306', '\070', '\362', '\217', + '\055', '\204', '\175', '\106', '\236', '\113', '\271', '\272', + '\237', '\103', '\247', '\224', '\347', '\112', '\261', '\370', + '\173', '\226', '\351', '\322', '\100', '\016', '\354', '\100', + '\001', '\046', '\103', '\024', '\341', '\161', '\060', '\066', + '\212', '\166', '\237', '\224', '\075', '\232', '\367', '\017', + '\366', '\343', '\070', '\374', '\063', '\074', '\373', '\365', + '\174', '\273', '\136', '\034', '\146', '\031', '\247', '\261', + '\016', '\353', '\162', '\330', '\332', '\267', '\325', '\137', + '\346', '\071', '\160', '\036', '\347', '\223', '\263', '\017', + '\114', '\266', '\171', '\054', '\343', '\264', '\061', '\035', + '\143', '\263', '\337', '\323', '\174', '\351', '\150', '\327', + '\051', '\354', '\023', '\063', '\245', '\357', '\072', '\321', + '\366', '\122', '\220', '\311', '\203', '\240', '\173', '\133', + '\036', '\045', '\322', '\146', '\372', '\002', '\244', '\073', + '\237', '\125', '\072', '\031', '\336', '\223', '\170', '\355', + '\363', '\270', '\226', '\220', '\275', '\207', '\063', '\074', + '\077', '\347', '\140', '\314', '\267', '\302', '\256', '\314', + '\301', '\144', '\371', '\167', '\334', '\013', '\127', '\112', + '\037', '\345', '\275', '\053', '\014', '\175', '\014', '\370', + '\216', '\364', '\060', '\372', '\240', '\007', '\025', '\350', + '\050', '\224', '\374', '\227', '\221', '\377', '\022', '\333', + '\014', '\356', '\177', '\246', '\324', '\366', '\073', '\330', + '\107', '\033', '\143', '\142', '\172', '\177', '\317', '\336', + '\237', '\070', '\277', '\345', '\107', '\317', '\227', '\065', + '\063', '\222', '\156', '\367', '\077', '\267', '\367', '\177', + '\265', '\314', '\053', '\346', '\034', '\204', '\064', '\230', + '\173', '\302', '\120', '\023', '\216', '\204', '\224', '\103', + '\072', '\111', '\013', '\165', '\356', '\146', '\331', '\171', + '\047', '\222', '\355', '\223', '\372', '\340', '\061', '\336', + '\307', '\264', '\333', '\346', '\253', '\355', '\163', '\241', + '\355', '\373', '\321', '\256', '\154', '\264', '\213', '\137', + '\156', '\132', '\167', '\354', '\355', '\331', '\330', '\363', + '\213', '\127', '\243', '\154', '\054', '\246', '\062', '\234', + '\143', '\003', '\274', '\230', '\246', '\311', '\142', '\212', + '\333', '\113', '\265', '\035', '\023', '\272', '\206', '\271', + '\135', '\326', '\071', '\250', '\123', '\347', '\026', '\356', + '\221', '\122', '\131', '\243', '\274', '\306', '\314', '\001', + '\212', '\333', '\376', '\072', '\374', '\211', '\356', '\112', + '\361', '\323', '\234', '\244', '\103', '\226', '\211', '\171', + '\233', '\303', '\147', '\131', '\064', '\262', '\070', '\123', + '\354', '\075', '\333', '\153', '\316', '\067', '\121', '\052', + '\066', '\235', '\363', '\246', '\053', '\153', '\334', '\260', + '\021', '\215', '\230', '\106', '\030', '\334', '\002', '\364', + '\111', '\311', '\254', '\044', '\137', '\025', '\165', '\171', + '\351', '\050', '\174', '\305', '\137', '\311', '\175', '\332', + '\033', '\104', '\067', '\035', '\111', '\175', '\067', '\172', + '\174', '\377', '\103', '\375', '\107', '\313', '\267', '\050', + '\024', '\333', '\370', '\273', '\057', '\310', '\132', '\147', + '\173', '\176', '\332', '\341', '\063', '\161', '\230', '\145', + '\234', '\306', '\072', '\121', '\355', '\123', '\247', '\017', + '\167', '\335', '\317', '\352', '\264', '\175', '\072', '\227', + '\332', '\256', '\054', '\131', '\106', '\074', '\125', '\254', + '\261', '\357', '\124', '\163', '\300', '\161', '\270', '\003', + '\144', '\216', '\042', '\225', '\312', '\325', '\362', '\304', + '\034', '\173', '\045', '\313', '\370', '\030', '\362', '\221', + '\332', '\016', '\143', '\023', '\314', '\131', '\252', '\033', + '\254', '\321', '\071', '\073', '\207', '\327', '\112', '\251', + '\334', '\027', '\252', '\274', '\333', '\241', '\153', '\316', + '\133', '\271', '\210', '\014', '\202', '\323', '\050', '\153', + '\224', '\022', '\333', '\306', '\161', '\226', '\163', '\072', + '\353', '\231', '\074', '\351', '\051', '\060', '\365', '\114', + '\225', '\236', '\233', '\202', '\344', '\275', '\075', '\225', + '\236', '\013', '\215', '\235', '\170', '\105', '\130', '\360', + '\075', '\242', '\357', '\035', '\115', '\204', '\145', '\046', + '\075', '\031', '\053', '\257', '\261', '\025', '\277', '\007', + '\234', '\067', '\125', '\273', '\222', '\333', '\237', '\252', + '\376', '\251', '\332', '\173', '\255', '\202', '\115', '\271', + '\327', '\052', '\070', '\271', '\134', '\313', '\347', '\312', + '\025', '\337', '\215', '\277', '\063', '\274', '\172', '\216', + '\150', '\321', '\277', '\141', '\257', '\347', '\367', '\156', + '\260', '\013', '\105', '\151', '\222', '\306', '\167', '\266', + '\265', '\354', '\357', '\055', '\236', '\001', '\133', '\305', + '\357', '\206', '\242', '\366', '\171', '\210', '\355', '\314', + '\153', '\260', '\115', '\357', '\275', '\243', '\176', '\373', + '\333', '\142', '\127', '\043', '\131', '\211', '\076', '\041', + '\353', '\355', '\057', '\025', '\337', '\227', '\111', '\036', + '\257', '\045', '\107', '\023', '\371', '\143', '\217', '\127', + '\304', '\261', '\316', '\170', '\235', '\360', '\032', '\167', + '\025', '\021', '\375', '\322', '\153', '\343', '\252', '\024', + '\062', '\141', '\313', '\362', '\063', '\165', '\117', '\120', + '\077', '\324', '\072', '\027', '\152', '\076', '\313', '\166', + '\244', '\260', '\001', '\321', '\121', '\373', '\375', '\031', + '\347', '\147', '\077', '\146', '\266', '\256', '\363', '\307', + '\300', '\123', '\240', '\207', '\344', '\333', '\025', '\357', + '\177', '\171', '\240', '\330', '\364', '\177', '\206', '\354', + '\107', '\226', '\001', '\300', '\363', '\331', '\201', '\162', + '\256', '\177', '\164', '\043', '\105', '\135', '\302', '\170', + '\272', '\356', '\115', '\272', '\377', '\107', '\162', '\325', + '\326', '\027', '\252', '\341', '\340', '\115', '\246', '\040', + '\161', '\137', '\073', '\225', '\043', '\070', '\353', '\167', + '\016', '\376', '\375', '\071', '\330', '\360', '\127', '\261', + '\257', '\026', '\314', '\322', '\263', '\057', '\316', '\175', + '\271', '\035', '\322', '\077', '\316', '\167', '\200', '\334', + '\166', '\143', '\117', '\131', '\166', '\021', '\106', '\344', + '\042', '\346', '\301', '\107', '\060', '\102', '\243', '\053', + '\344', '\074', '\314', '\371', '\047', '\116', '\112', '\137', + '\160', '\031', '\311', '\076', '\261', '\231', '\277', '\251', + '\316', '\354', '\123', '\371', '\300', '\116', '\337', '\330', + '\320', '\241', '\375', '\161', '\022', '\317', '\353', '\126', + '\077', '\365', '\165', '\175', '\277', '\302', '\343', '\305', + '\276', '\306', '\142', '\345', '\002', '\360', '\252', '\214', + '\375', '\227', '\161', '\355', '\307', '\011', '\335', '\107', + '\007', '\301', '\013', '\340', '\077', '\035', '\276', '\366', + '\170', '\222', '\136', '\124', '\145', '\330', '\352', '\344', + '\354', '\245', '\363', '\141', '\314', '\350', '\151', '\175', + '\142', '\032', '\077', '\003', '\016', '\221', '\370', '\012', + '\231', '\012', '\257', '\337', '\200', '\372', '\136', '\021', + '\035', '\077', '\036', '\107', '\353', '\054', '\340', '\130', + '\333', '\054', '\073', '\001', '\126', '\246', '\313', '\060', + '\316', '\327', '\162', '\114', '\147', '\225', '\201', '\100', + '\261', '\116', '\252', '\257', '\040', '\317', '\175', '\162', + '\347', '\170', '\100', '\323', '\223', '\073', '\166', '\204', + '\271', '\210', '\164', '\336', '\060', '\056', '\045', '\316', + '\131', '\216', '\263', '\234', '\323', '\107', '\234', '\235', + '\174', '\055', '\033', '\164', '\203', '\306', '\175', '\222', + '\255', '\113', '\101', '\262', '\255', '\070', '\232', '\304', + '\037', '\333', '\126', '\360', '\372', '\166', '\055', '\260', + '\211', '\055', '\224', '\367', '\060', '\116', '\056', '\102', + '\147', '\166', '\221', '\115', '\262', '\115', '\310', '\302', + '\244', '\213', '\215', '\332', '\264', '\136', '\020', '\056', + '\305', '\154', '\132', '\043', '\211', '\171', '\002', '\072', + '\267', '\370', '\133', '\017', '\163', '\214', '\111', '\227', + '\363', '\030', '\163', '\102', '\277', '\315', '\374', '\043', + '\203', '\176', '\052', '\064', '\007', '\044', '\375', '\156', + '\063', '\142', '\316', '\122', '\271', '\372', '\036', '\134', + '\141', '\277', '\060', '\376', '\216', '\074', '\246', '\357', + '\140', '\012', '\345', '\154', '\011', '\167', '\363', '\272', + '\141', '\073', '\264', '\112', '\314', '\212', '\165', '\276', + '\353', '\270', '\116', '\054', '\277', '\305', '\045', '\353', + '\243', '\303', '\261', '\016', '\331', '\337', '\145', '\137', + '\223', '\373', '\074', '\267', '\115', '\356', '\034', '\147', + '\071', '\373', '\237', '\354', '\117', '\046', '\217', '\045', + '\307', '\131', '\316', '\351', '\331', '\272', '\056', '\330', + '\347', '\312', '\325', '\173', '\216', '\326', '\255', '\130', + '\237', '\023', '\157', '\257', '\336', '\071', '\136', '\242', + '\351', '\226', '\242', '\236', '\263', '\330', '\150', '\130', + '\367', '\174', '\262', '\013', '\056', '\320', '\161', '\355', + '\244', '\370', '\373', '\120', '\113', '\247', '\100', '\322', + '\263', '\065', '\270', '\112', '\373', '\346', '\106', '\372', + '\062', '\117', '\353', '\147', '\354', '\230', '\351', '\243', + '\353', '\355', '\323', '\033', '\171', '\166', '\362', '\270', + '\135', '\357', '\163', '\247', '\032', '\067', '\353', '\120', + '\317', '\233', '\032', '\357', '\065', '\173', '\061', '\117', + '\301', '\020', '\010', '\047', '\161', '\010', '\014', '\200', + '\127', '\100', '\076', '\157', '\200', '\306', '\210', '\071', + '\053', '\215', '\076', '\255', '\004', '\215', '\240', '\055', + '\211', '\016', '\260', '\077', '\046', '\357', '\222', '\366', + '\103', '\267', '\170', '\077', '\131', '\357', '\035', '\330', + '\134', '\271', '\034', '\360', '\231', '\175', '\166', '\232', + '\275', '\056', '\363', '\026', '\310', '\231', '\234', '\160', + '\106', '\267', '\214', '\077', '\006', '\172', '\244', '\224', + '\022', '\336', '\057', '\361', '\262', '\341', '\363', '\272', + '\205', '\163', '\155', '\216', '\312', '\231', '\174', '\114', + '\215', '\370', '\110', '\314', '\046', '\203', '\317', '\147', + '\031', '\102', '\136', '\232', '\160', '\356', '\234', '\274', + '\257', '\345', '\275', '\220', '\341', '\060', '\313', '\114', + '\272', '\321', '\347', '\274', '\231', '\230', '\127', '\071', + '\071', '\022', '\147', '\337', '\202', '\367', '\116', '\336', + '\067', '\077', '\175', '\100', '\375', '\052', '\344', '\377', + '\264', '\120', '\144', '\234', '\226', '\237', '\046', '\172', + '\234', '\207', '\363', '\362', '\006', '\302', '\266', '\341', + '\056', '\334', '\377', '\006', '\367', '\233', '\063', '\305', + '\067', '\300', '\366', '\115', '\070', '\266', '\320', '\347', + '\223', '\356', '\137', '\320', '\064', '\206', '\365', '\270', + '\357', '\363', '\161', '\306', '\357', '\120', '\366', '\317', + '\244', '\370', '\373', '\211', '\353', '\201', '\237', '\355', + '\174', '\337', '\132', '\224', '\146', '\363', '\174', '\201', + '\234', '\005', '\171', '\135', '\032', '\337', '\161', '\021', + '\316', '\255', '\163', '\347', '\312', '\172', '\346', '\167', + '\312', '\234', '\337', '\274', '\167', '\344', '\063', '\045', + '\303', '\347', '\313', '\022', '\314', '\213', '\027', '\060', + '\271', '\322', '\043', '\230', '\122', '\035', '\122', '\026', + '\177', '\367', '\340', '\167', '\243', '\313', '\227', '\213', + '\377', '\311', '\147', '\113', '\316', '\307', '\276', '\016', + '\237', '\057', '\271', '\114', '\076', '\247', '\166', '\127', + '\312', '\371', '\223', '\357', '\346', '\334', '\152', '\316', + '\237', '\043', '\111', '\357', '\050', '\127', '\316', '\227', + '\162', '\370', '\254', '\372', '\032', '\306', '\250', '\352', + '\035', '\271', '\233', '\263', '\053', '\247', '\133', '\176', + '\154', '\172', '\352', '\357', '\070', '\154', '\063', '\123', + '\245', '\245', '\174', '\027', '\353', '\260', '\135', '\251', + '\164', '\314', '\226', '\271', '\112', '\327', '\244', '\365', + '\275', '\042', '\327', '\366', '\101', '\212', '\215', '\217', + '\310', '\357', '\327', '\170', '\001', '\263', '\361', '\050', + '\222', '\171', '\134', '\250', '\113', '\151', '\102', '\337', + '\223', '\106', '\325', '\316', '\133', '\066', '\137', '\333', + '\077', '\306', '\176', '\035', '\373', '\202', '\150', '\147', + '\204', '\035', '\230', '\010', '\131', '\016', '\214', '\071', + '\003', '\073', '\267', '\156', '\376', '\046', '\127', '\105', + '\362', '\215', '\216', '\277', '\325', '\131', '\337', '\354', + '\062', '\344', '\033', '\136', '\374', '\154', '\023', '\113', + '\204', '\353', '\356', '\374', '\046', '\147', '\175', '\243', + '\313', '\322', '\157', '\166', '\005', '\372', '\015', '\257', + '\330', '\161', '\346', '\321', '\347', '\072', '\035', '\300', + '\250', '\176', '\233', '\053', '\323', '\157', '\165', '\171', + '\372', '\355', '\056', '\303', '\361', '\255', '\156', '\322', + '\167', '\276', '\261', '\304', '\157', '\162', '\043', '\372', + '\255', '\256', '\121', '\277', '\335', '\361', '\067', '\274', + '\034', '\375', '\126', '\147', '\175', '\257', '\053', '\024', + '\110', '\307', '\214', '\273', '\201', '\277', '\311', '\361', + '\267', '\071', '\376', '\106', '\227', '\162', '\334', '\073', + '\047', '\217', '\143', '\362', '\373', '\157', '\236', '\263', + '\051', '\347', '\200', '\266', '\167', '\204', '\256', '\361', + '\235', '\056', '\251', '\175', '\327', '\372', '\136', '\227', + '\055', '\115', '\111', '\060', '\251', '\255', '\064', '\331', + '\336', '\177', '\213', '\344', '\147', '\150', '\033', '\110', + '\176', '\234', '\146', '\060', '\357', '\344', '\222', '\367', + '\002', '\247', '\315', '\177', '\071', '\111', '\376', '\226', + '\162', '\322', '\361', '\056', '\342', '\232', '\147', '\341', + '\353', '\074', '\323', '\033', '\302', '\074', '\317', '\161', + '\366', '\374', '\071', '\174', '\332', '\017', '\247', '\313', + '\357', '\124', '\326', '\344', '\247', '\030', '\037', '\265', + '\107', '\001', '\204', '\317', '\267', '\020', '\135', '\176', + '\233', '\350', '\112', '\251', '\356', '\371', '\352', '\223', + '\235', '\156', '\237', '\142', '\134', '\262', '\022', '\011', + '\134', '\217', '\137', '\153', '\374', '\337', '\353', '\364', + '\143', '\015', '\146', '\177', '\060', '\347', '\250', '\076', + '\264', '\245', '\033', '\363', '\071', '\210', '\011', '\370', + '\323', '\163', '\302', '\355', '\010', '\317', '\051', '\026', + '\133', '\037', '\235', '\042', '\217', '\341', '\132', '\347', + '\117', '\363', '\316', '\325', '\231', '\247', '\325', '\061', + '\027', '\256', '\207', '\002', '\235', '\107', '\243', '\216', + '\161', '\067', '\373', '\377', '\325', '\160', '\372', '\014', + '\234', '\127', '\176', '\107', '\370', '\035', '\062', '\177', + '\056', '\110', '\322', '\341', '\100', '\114', '\303', '\146', + '\226', '\205', '\047', '\115', '\247', '\031', '\164', '\023', + '\066', '\246', '\231', '\160', '\050', '\162', '\255', '\337', + '\023', '\176', '\206', '\346', '\300', '\143', '\231', '\107', + '\067', '\323', '\055', '\160', '\304', '\156', '\245', '\317', + '\322', '\347', '\120', '\233', '\333', '\340', '\074', '\024', + '\302', '\340', '\335', '\116', '\013', '\150', '\041', '\066', + '\366', '\317', '\323', '\035', '\330', '\337', '\026', '\323', + '\235', '\264', '\204', '\276', '\110', '\167', '\321', '\335', + '\364', '\045', '\372', '\062', '\014', '\304', '\122', '\034', + '\202', '\226', '\321', '\075', '\164', '\057', '\055', '\247', + '\373', '\120', '\243', '\025', '\164', '\077', '\075', '\000', + '\247', '\341', '\253', '\130', '\015', '\245', '\230', '\055', + '\253', '\351', '\101', '\132', '\103', '\153', '\151', '\035', + '\175', '\215', '\036', '\242', '\365', '\130', '\017', '\017', + '\323', '\237', '\321', '\043', '\364', '\165', '\332', '\110', + '\233', '\150', '\063', '\075', '\212', '\023', '\372', '\343', + '\124', '\116', '\133', '\350', '\033', '\264', '\225', '\266', + '\321', '\166', '\172', '\202', '\276', '\111', '\117', '\142', + '\375', '\074', '\105', '\025', '\124', '\111', '\156', '\332', + '\001', '\333', '\130', '\115', '\036', '\332', '\111', '\273', + '\250', '\206', '\152', '\351', '\317', '\261', '\256', '\274', + '\124', '\107', '\365', '\324', '\200', '\223', '\341', '\156', + '\362', '\121', '\023', '\371', '\251', '\231', '\132', '\320', + '\177', '\155', '\324', '\116', '\173', '\150', '\057', '\172', + '\145', '\037', '\355', '\307', '\232', '\014', '\120', '\220', + '\272', '\250', '\033', '\247', '\377', '\136', '\352', '\243', + '\020', '\205', '\351', '\000', '\365', '\323', '\101', '\234', + '\022', '\017', '\323', '\000', '\015', '\322', '\020', '\015', + '\323', '\137', '\320', '\323', '\364', '\014', '\375', '\045', + '\375', '\025', '\375', '\065', '\075', '\153', '\365', '\234', + '\371', '\175', '\330', '\242', '\264', '\077', '\361', '\047', + '\260', '\037', '\052', '\377', '\337', '\345', '\076', '\350', + '\022', '\322', '\310', '\376', '\075', '\042', '\377', '\316', + '\231', '\177', '\362', '\206', '\355', '\315', '\162', '\245', + '\127', '\200', '\115', '\044', '\357', '\260', '\174', '\152', + '\043', '\370', '\135', '\142', '\077', '\170', '\026', '\274', + '\004', '\136', '\003', '\157', '\221', '\154', '\271', '\374', + '\116', '\144', '\246', '\113', '\176', '\307', '\270', '\030', + '\054', '\003', '\153', '\300', '\106', '\360', '\024', '\360', + '\200', '\335', '\240', '\025', '\164', '\201', '\303', '\340', + '\273', '\340', '\373', '\340', '\357', '\301', '\011', '\227', + '\274', '\163', '\376', '\065', '\070', '\017', '\076', '\005', + '\323', '\121', '\301', '\231', '\340', '\146', '\160', '\033', + '\270', '\023', '\054', '\117', '\223', '\075', '\274', '\034', + '\170', '\300', '\156', '\320', '\005', '\016', '\203', '\357', + '\202', '\277', '\003', '\077', '\006', '\057', '\203', '\177', + '\002', '\277', '\004', '\377', '\001', '\042', '\340', '\175', + '\160', '\021', '\104', '\101', '\032', '\154', '\373', '\114', + '\060', '\207', '\337', '\273', '\200', '\205', '\340', '\356', + '\164', '\371', '\035', '\332', '\172', '\360', '\050', '\250', + '\000', '\265', '\240', '\015', '\004', '\323', '\345', '\175', + '\370', '\163', '\340', '\050', '\370', '\021', '\370', '\051', + '\370', '\005', '\070', '\003', '\316', '\202', '\377', '\002', + '\037', '\202', '\014', '\354', '\151', '\063', '\300', '\274', + '\014', '\371', '\155', '\346', '\142', '\360', '\145', '\360', + '\200', '\176', '\067', '\175', '\030', '\154', '\007', '\165', + '\240', '\025', '\364', '\201', '\141', '\360', '\267', '\340', + '\045', '\360', '\062', '\170', '\035', '\274', '\005', '\042', + '\340', '\002', '\270', '\004', '\246', '\361', '\267', '\063', + '\160', '\007', '\050', '\001', '\233', '\300', '\267', '\100', + '\043', '\350', '\004', '\117', '\203', '\027', '\300', '\061', + '\360', '\052', '\370', '\065', '\070', '\007', '\056', '\200', + '\117', '\200', '\213', '\177', '\373', '\011', '\346', '\202', + '\333', '\300', '\027', '\063', '\305', '\057', '\277', '\037', + '\254', '\006', '\137', '\007', '\345', '\374', '\035', '\010', + '\064', '\200', '\156', '\360', '\064', '\170', '\021', '\374', + '\003', '\070', '\015', '\316', '\200', '\337', '\202', '\013', + '\340', '\062', '\277', '\350', '\302', '\236', '\065', '\003', + '\314', '\001', '\267', '\203', '\045', '\354', '\267', '\203', + '\325', '\140', '\023', '\330', '\002', '\052', '\301', '\116', + '\260', '\033', '\154', '\253', '\320', '\337', '\256', '\233', + '\100', '\105', '\235', '\273', '\351', '\333', '\344', '\366', + '\371', '\032', '\132', '\345', '\052', '\202', '\035', '\356', + '\046', '\117', '\165', '\205', '\010', '\252', '\033', '\132', + '\353', '\047', '\011', '\046', '\253', '\065', '\067', '\046', + '\105', '\125', '\245', '\301', '\355', '\267', '\056', '\046', + '\272', '\253', '\241', '\251', '\326', '\337', '\036', '\017', + '\030', '\261', '\337', '\337', '\120', '\127', '\341', '\365', + '\354', '\364', '\127', '\124', '\065', '\370', '\352', '\075', + '\276', '\051', '\104', '\011', '\252', '\276', '\332', '\135', + '\065', '\311', '\272', '\116', '\131', '\202', '\162', '\123', + '\155', '\265', '\307', '\031', '\116', '\110', '\364', '\173', + '\074', '\216', '\240', '\111', '\152', '\253', '\150', '\152', + '\254', '\365', '\271', '\275', '\216', '\240', '\044', '\125', + '\171', '\352', '\375', '\050', '\276', '\321', '\357', '\163', + '\004', '\065', '\251', '\326', '\127', '\345', '\365', '\350', + '\115', '\105', '\336', '\206', '\052', '\275', '\252', '\240', + '\141', '\347', '\116', '\176', '\112', '\363', '\056', '\107', + '\120', '\223', '\174', '\015', '\115', '\115', '\162', '\165', + '\010', '\052', '\174', '\236', '\026', '\217', '\257', '\311', + '\223', '\030', '\163', '\050', '\324', '\270', '\153', '\175', + '\166', '\110', '\022', '\252', '\153', '\335', '\165', '\015', + '\365', '\325', '\025', '\122', '\144', '\102', '\114', '\025', + '\032', '\374', '\114', '\074', '\202', '\126', '\352', '\315', + '\210', '\232', '\167', '\240', '\015', '\062', '\061', '\234', + '\021', '\115', '\366', '\271', '\061', '\054', '\136', '\267', + '\157', '\227', '\307', '\031', '\166', '\046', '\066', '\325', + '\271', '\275', '\136', '\147', '\070', '\236', '\330', '\210', + '\111', '\142', '\075', '\057', '\036', '\224', '\044', '\117', + '\133', '\125', '\215', '\273', '\036', '\045', '\232', '\200', + '\210', '\167', '\172', '\075', '\315', '\076', '\271', '\212', + '\140', '\127', '\303', '\016', '\124', '\307', '\147', '\356', + '\052', '\154', '\256', '\333', '\321', '\056', '\127', '\021', + '\240', '\204', '\352', '\245', '\162', '\265', '\005', '\137', + '\221', '\253', '\012', '\074', '\156', '\237', '\137', '\256', + '\042', '\250', '\255', '\152', '\250', '\267', '\056', '\032', + '\365', '\041', '\044', '\075', '\150', '\007', '\045', '\311', + '\232', '\225', '\074', '\005', '\114', '\300', '\041', '\266', + '\046', '\133', '\074', '\344', '\110', '\340', '\211', '\146', + '\002', '\266', '\170', '\107', '\063', '\246', '\136', '\275', + '\043', '\250', '\111', '\336', '\012', '\164', '\001', '\146', + '\223', '\011', '\250', '\330', '\147', '\304', '\076', '\247', + '\270', '\316', '\135', '\317', '\150', '\244', '\266', '\272', + '\332', '\353', '\321', '\162', '\235', '\021', '\115', '\156', + '\150', '\306', '\154', '\262', '\256', '\042', '\150', '\364', + '\324', '\127', '\325', '\172', '\365', '\246', '\042', '\314', + '\167', '\277', '\107', '\157', '\052', '\362', '\066', '\067', + '\131', '\027', '\211', '\356', '\156', '\366', '\064', '\371', + '\153', '\121', '\246', '\114', '\221', '\304', '\250', '\250', + '\310', '\162', '\344', '\136', '\212', '\207', '\234', '\011', + '\126', '\077', '\331', '\101', '\147', '\022', '\367', '\124', + '\074', '\344', '\110', '\320', '\066', '\071', '\302', '\232', + '\350', '\367', '\126', '\170', '\141', '\120', '\342', '\001', + '\021', '\067', '\271', '\153', '\275', '\226', '\375', '\061', + '\001', '\025', '\357', '\020', '\023', '\046', '\065', '\117', + '\210', '\305', '\025', '\152', '\052', '\022', '\126', '\300', + '\044', '\111', '\134', '\321', '\032', '\320', '\270', '\222', + '\035', '\213', '\053', '\110', '\073', '\342', '\032', '\216', + '\150', '\134', '\005', '\266', '\062', '\236', '\156', '\302', + '\361', '\304', '\226', '\111', '\065', '\151', '\231', '\252', + '\046', '\065', '\350', '\016', '\114', '\013', '\275', '\253', + '\260', '\166', '\117', '\155', '\375', '\056', '\275', '\251', + '\250', '\021', '\135', '\355', '\323', '\233', '\021', '\371', + '\334', '\355', '\125', '\230', '\100', '\046', '\240', '\142', + '\277', '\333', '\147', '\135', '\044', '\352', '\347', '\365', + '\355', '\327', '\233', '\212', '\144', '\155', '\370', '\035', + '\353', '\302', '\337', '\320', '\350', '\354', '\221', '\304', + '\150', '\222', '\212', '\332', '\356', '\244', '\270', '\255', + '\224', '\140', '\341', '\223', '\005', '\266', '\232', '\065', + '\215', '\114', '\300', '\026', '\363', '\024', '\322', '\273', + '\012', '\175', '\036', '\271', '\110', '\264', '\331', '\254', + '\257', '\346', '\204', '\365', '\005', '\373', '\341', '\363', + '\170', '\275', '\356', '\170', '\100', '\305', '\146', '\331', + '\065', '\047', '\054', '\273', '\126', '\267', '\277', '\252', + '\106', '\256', '\042', '\150', '\303', '\176', '\120', '\047', + '\127', '\021', '\320', '\215', '\377', '\217', '\327', '\377', + '\001', '\226', '\047', '\030', '\162', '\200', '\067', '\000', + '\000', + +}; + +static const char file_6x13[] = { + '\037', '\213', '\010', '\010', '\126', '\121', '\054', '\100', + '\000', '\003', '\066', '\170', '\061', '\063', '\055', '\111', + '\123', '\117', '\070', '\070', '\065', '\071', '\055', '\061', + '\056', '\160', '\143', '\146', '\000', '\355', '\234', '\177', + '\170', '\024', '\307', '\171', '\307', '\277', '\002', '\001', + '\002', '\013', '\020', '\106', '\004', '\141', '\203', '\045', + '\333', '\330', '\306', '\066', '\262', '\045', '\014', '\030', + '\073', '\330', '\346', '\054', '\035', '\240', '\104', '\110', + '\030', '\111', '\061', '\070', '\151', '\345', '\343', '\156', + '\045', '\155', '\270', '\037', '\362', '\375', '\300', '\222', + '\215', '\101', '\010', '\044', '\204', '\114', '\012', '\051', + '\216', '\103', '\034', '\222', '\100', '\203', '\123', '\334', + '\342', '\032', '\327', '\264', '\265', '\023', '\307', '\165', + '\152', '\047', '\301', '\055', '\165', '\150', '\202', '\133', + '\352', '\322', '\230', '\076', '\365', '\037', '\364', '\251', + '\363', '\074', '\116', '\037', '\047', '\161', '\373', '\270', + '\245', '\337', '\331', '\335', '\071', '\215', '\206', '\335', + '\273', '\225', '\340', '\111', '\237', '\247', '\017', '\003', + '\237', '\331', '\331', '\335', '\171', '\147', '\346', '\175', + '\347', '\335', '\231', '\331', '\071', '\335', '\025', '\264', + '\205', '\073', '\047', '\002', '\050', '\040', '\143', '\110', + '\007', '\243', '\175', '\116', '\172', '\014', '\057', '\106', + '\170', '\304', '\130', '\240', '\120', '\236', '\063', '\021', + '\341', '\171', '\221', '\223', '\347', '\154', '\025', '\160', + '\174', '\002', '\120', '\242', '\334', '\077', '\274', '\004', + '\250', '\160', '\356', '\227', '\060', '\052', '\276', '\007', + '\130', '\346', '\234', '\157', '\247', '\354', '\354', '\373', + '\200', '\036', '\347', '\174', '\037', '\053', '\077', '\160', + '\277', '\335', '\000', '\131', '\337', '\222', '\172', '\373', + '\336', '\247', '\140', '\207', '\202', '\053', '\031', '\115', + '\027', '\211', '\253', '\141', '\227', '\134', '\060', '\237', + '\321', '\002', '\221', '\270', '\227', '\121', '\120', '\044', + '\076', '\313', '\150', '\225', '\110', '\174', '\236', '\221', + '\051', '\022', '\135', '\214', '\272', '\205', '\374', '\144', + '\121', '\257', '\110', '\210', '\053', '\273', '\105', '\102', + '\144', '\336', '\057', '\023', '\317', '\211', '\314', '\057', + '\062', '\172', '\111', '\134', '\131', '\112', '\176', '\040', + '\256', '\374', '\224', '\321', '\273', '\042', '\361', '\357', + '\214', '\176', '\041', '\022', '\277', '\141', '\064', '\107', + '\030', '\112', '\030', '\154', '\236', '\110', '\214', '\047', + '\325', '\114', '\024', '\054', '\146', '\264', '\121', '\134', + '\231', '\104', '\236', '\020', '\211', '\166', '\062', '\040', + '\363', '\000', '\173', '\231', '\134', '\336', '\330', '\320', + '\334', '\020', '\130', '\025', '\154', '\135', '\023', '\134', + '\121', '\327', '\324', '\274', '\146', '\235', '\270', '\324', + '\322', '\120', '\313', '\304', '\052', '\063', '\025', '\306', + '\362', '\300', '\252', '\272', '\372', '\165', '\255', '\042', + '\013', '\226', '\233', '\135', '\106', '\004', '\017', '\006', + '\353', '\126', '\254', '\154', '\266', '\257', '\254', '\062', + '\042', '\146', '\046', '\206', '\246', '\372', '\100', '\103', + '\063', '\326', '\240', '\051', '\330', '\374', '\140', '\135', + '\155', '\363', '\112', '\373', '\146', '\223', '\021', '\063', + '\153', '\022', '\361', '\210', '\021', '\117', '\121', '\054', + '\120', '\133', '\333', '\332', '\324', '\274', '\256', '\076', + '\150', '\337', '\304', '\352', '\272', '\265', '\301', '\372', + '\326', '\246', '\272', '\207', '\202', '\130', '\335', '\130', + '\327', '\320', '\154', '\047', '\327', '\004', '\233', '\032', + '\353', '\133', '\232', '\353', '\032', '\033', '\132', '\327', + '\252', '\047', '\353', '\320', '\264', '\072', '\120', '\123', + '\327', '\260', '\002', '\065', '\010', '\174', '\056', '\270', + '\046', '\260', '\042', '\330', '\152', '\125', '\205', '\232', + '\225', '\201', '\065', '\254', '\167', '\250', '\375', '\165', + '\115', '\215', '\113', '\226', '\054', '\272', '\053', '\173', + '\043', '\330', '\120', '\323', '\130', '\053', '\044', '\253', + '\121', '\323', '\270', '\172', '\335', '\032', '\321', '\172', + '\254', '\316', '\254', '\217', '\232', '\341', '\212', '\110', + '\042', '\026', '\062', '\343', '\025', '\155', '\211', '\170', + '\372', '\266', '\212', '\212', '\246', '\216', '\120', '\322', + '\250', '\010', '\305', '\043', '\025', '\106', '\374', '\213', + '\211', '\356', '\333', '\120', '\023', '\130', '\335', '\272', + '\322', '\122', '\027', '\153', '\145', '\102', '\030', '\014', + '\225', '\302', '\066', '\225', '\226', '\075', '\052', '\155', + '\033', '\124', '\256', '\251', '\034', '\246', '\157', '\145', + '\145', '\365', '\035', '\225', '\325', '\013', '\252', '\052', + '\357', '\134', '\044', '\376', '\327', '\124', '\056', '\256', + '\252', '\164', '\132', '\126', '\131', '\355', '\330', '\120', + '\121', '\020', '\017', '\264', '\004', '\152', '\035', '\215', + '\054', '\237', '\053', '\260', '\002', '\160', '\205', '\343', + '\223', '\166', '\030', '\317', '\177', '\127', '\070', '\347', + '\152', '\132', '\234', '\235', '\077', '\377', '\353', '\363', + '\042', '\357', '\360', '\353', '\136', '\101', '\324', '\361', + '\036', '\172', '\372', '\373', '\237', '\354', '\275', '\034', + '\135', '\216', '\056', '\107', '\227', '\243', '\113', '\033', + '\071', '\343', '\326', '\173', '\316', '\170', '\263', '\120', + '\314', '\343', '\316', '\014', '\167', '\222', '\024', '\162', + '\374', '\131', '\102', '\242', '\344', '\000', '\071', '\105', + '\212', '\050', '\260', '\224', '\164', '\222', '\103', '\344', + '\264', '\230', '\247', '\071', '\067', '\057', '\043', '\151', + '\162', '\230', '\234', '\041', '\045', '\234', '\317', '\153', + '\111', '\027', '\071', '\102', '\316', '\222', '\322', '\161', + '\300', '\112', '\262', '\211', '\034', '\045', '\357', '\223', + '\062', '\116', '\163', '\365', '\244', '\207', '\034', '\043', + '\347', '\310', '\154', '\256', '\013', '\126', '\223', '\355', + '\344', '\145', '\362', '\001', '\251', '\340', '\302', '\241', + '\231', '\014', '\220', '\127', '\311', '\207', '\144', '\056', + '\347', '\323', '\265', '\144', '\027', '\171', '\235', '\174', + '\104', '\346', '\161', '\042', '\375', '\002', '\331', '\103', + '\336', '\044', '\037', '\223', '\371', '\034', '\240', '\037', + '\046', '\117', '\221', '\343', '\344', '\023', '\122', '\125', + '\314', '\065', '\003', '\331', '\107', '\116', '\024', '\333', + '\223', '\375', '\102', '\322', '\101', '\366', '\223', '\223', + '\244', '\160', '\012', '\365', '\047', '\121', '\162', '\200', + '\234', '\042', '\105', '\123', '\251', '\077', '\351', '\044', + '\207', '\310', '\151', '\122', '\314', '\105', '\314', '\062', + '\222', '\046', '\207', '\311', '\031', '\122', '\062', '\215', + '\372', '\223', '\056', '\162', '\204', '\234', '\045', '\245', + '\134', '\217', '\254', '\044', '\233', '\310', '\121', '\362', + '\076', '\051', '\343', '\372', '\244', '\236', '\364', '\220', + '\143', '\344', '\034', '\231', '\135', '\112', '\375', '\311', + '\166', '\362', '\062', '\371', '\200', '\124', '\314', '\240', + '\376', '\144', '\200', '\274', '\112', '\076', '\044', '\163', + '\271', '\320', '\131', '\113', '\166', '\221', '\327', '\311', + '\107', '\144', '\336', '\114', '\352', '\117', '\366', '\220', + '\067', '\311', '\307', '\144', '\176', '\031', '\365', '\047', + '\117', '\221', '\343', '\344', '\023', '\122', '\065', '\213', + '\372', '\223', '\175', '\344', '\004', '\301', '\125', '\324', + '\237', '\164', '\220', '\375', '\344', '\044', '\051', '\344', + '\262', '\151', '\011', '\211', '\222', '\003', '\344', '\024', + '\051', '\232', '\115', '\375', '\111', '\047', '\071', '\104', + '\116', '\223', '\342', '\071', '\324', '\237', '\244', '\311', + '\141', '\162', '\206', '\224', '\134', '\103', '\375', '\111', + '\027', '\071', '\102', '\316', '\222', '\322', '\162', '\352', + '\117', '\066', '\221', '\243', '\344', '\175', '\122', '\306', + '\145', '\131', '\075', '\351', '\041', '\307', '\310', '\071', + '\062', '\373', '\132', '\352', '\117', '\266', '\223', '\227', + '\311', '\007', '\244', '\342', '\072', '\352', '\117', '\006', + '\310', '\253', '\344', '\103', '\062', '\367', '\172', '\352', + '\117', '\166', '\221', '\327', '\311', '\107', '\144', '\336', + '\134', '\352', '\117', '\366', '\220', '\067', '\311', '\307', + '\144', '\376', '\015', '\324', '\237', '\074', '\105', '\216', + '\223', '\117', '\110', '\325', '\215', '\324', '\237', '\354', + '\043', '\047', '\010', '\156', '\242', '\376', '\244', '\203', + '\354', '\047', '\047', '\111', '\341', '\074', '\352', '\117', + '\242', '\344', '\000', '\071', '\105', '\212', '\156', '\246', + '\376', '\244', '\223', '\034', '\042', '\247', '\111', '\361', + '\055', '\324', '\237', '\244', '\311', '\141', '\162', '\206', + '\224', '\334', '\112', '\375', '\111', '\027', '\071', '\102', + '\316', '\222', '\122', '\256', '\076', '\127', '\222', '\115', + '\344', '\050', '\171', '\237', '\224', '\125', '\002', '\115', + '\364', '\307', '\357', '\260', '\357', '\352', '\231', '\336', + '\367', '\320', '\320', '\374', '\077', '\303', '\071', '\116', + '\363', '\070', '\316', '\200', '\167', '\020', '\353', '\156', + '\272', '\053', '\312', '\235', '\143', '\241', '\113', '\036', + '\041', '\177', '\313', '\010', '\217', '\062', '\214', '\163', + '\230', '\240', '\244', '\351', '\012', '\326', '\372', '\136', + '\242', '\007', '\221', '\127', '\254', '\154', '\307', '\072', + '\307', '\071', '\116', '\273', '\212', '\235', '\243', '\133', + '\033', '\307', '\073', '\171', '\345', '\212', '\130', '\344', + '\055', '\125', '\216', '\245', '\056', '\062', '\005', '\012', + '\023', '\234', '\166', '\345', '\253', '\107', '\334', '\273', + '\322', '\241', '\330', '\345', '\276', '\127', '\220', '\345', + '\225', '\153', '\145', '\227', '\173', '\344', '\027', '\257', + '\000', '\142', '\275', '\070', '\331', '\111', '\027', '\152', + '\314', '\166', '\221', '\031', '\247', '\060', '\306', '\301', + '\313', '\326', '\172', '\171', '\222', '\011', '\043', '\320', + '\111', '\206', '\011', '\071', '\312', '\363', '\012', '\113', + '\163', '\310', '\170', '\261', '\064', '\107', '\171', '\136', + '\062', '\367', '\345', '\271', '\167', '\061', '\341', '\377', + '\203', '\174', '\056', '\133', '\217', '\264', '\177', '\162', + '\371', '\301', '\245', '\354', '\203', '\134', '\355', '\036', + '\015', '\152', '\340', '\224', '\227', '\035', '\113', '\306', + '\073', '\347', '\042', '\170', '\075', '\247', '\042', '\210', + '\161', '\112', '\214', '\005', '\045', '\316', '\161', '\254', + '\017', '\031', '\031', '\104', '\236', '\111', '\056', '\344', + '\012', '\045', '\030', '\032', '\107', '\312', '\235', '\266', + '\272', '\005', '\071', '\126', '\311', '\261', '\140', '\202', + '\222', '\026', '\327', '\047', '\373', '\150', '\337', '\110', + '\306', '\270', '\221', '\204', '\174', '\375', '\341', '\066', + '\166', '\370', '\265', '\217', '\227', '\134', '\271', '\166', + '\364', '\052', '\107', '\324', '\315', '\145', '\110', '\166', + '\054', '\025', '\363', '\242', '\234', '\103', '\246', '\172', + '\264', '\115', '\330', '\163', '\206', '\123', '\146', '\221', + '\223', '\147', '\214', '\163', '\056', '\256', '\117', '\364', + '\250', '\153', '\014', '\206', '\217', '\331', '\342', '\070', + '\313', '\311', '\377', '\051', '\227', '\374', '\176', '\306', + '\126', '\065', '\310', '\266', '\310', '\366', '\350', '\310', + '\173', '\352', '\334', '\240', '\137', '\327', '\121', '\313', + '\323', '\333', '\046', '\164', '\235', '\342', '\034', '\375', + '\266', '\121', '\325', '\113', '\237', '\037', '\107', '\032', + '\344', '\334', '\235', '\157', '\317', '\304', '\317', '\263', + '\231', '\053', '\210', '\072', '\334', '\326', '\113', '\045', + '\016', '\252', '\255', '\244', '\255', '\345', '\132', '\303', + '\255', '\054', '\341', '\047', '\323', '\134', '\230', '\344', + '\122', '\207', '\224', '\021', '\343', '\323', '\070', '\270', + '\077', '\103', '\156', '\372', '\115', '\121', '\312', '\225', + '\155', '\224', '\355', '\053', '\360', '\220', '\051', '\327', + '\362', '\116', '\121', '\164', '\234', '\346', '\234', '\353', + '\101', '\352', '\136', '\214', '\241', '\347', '\154', '\242', + '\123', '\226', '\327', '\232', '\117', '\216', '\143', '\002', + '\061', '\056', '\115', '\367', '\121', '\217', '\324', '\107', + '\312', '\115', '\305', '\160', '\333', '\271', '\311', '\250', + '\372', '\170', '\075', '\033', '\136', '\365', '\250', '\345', + '\346', '\253', '\107', '\317', '\163', '\215', '\017', '\175', + '\144', '\160', '\363', '\055', '\057', '\177', '\313', '\165', + '\337', '\353', '\131', '\160', '\353', '\173', '\371', '\314', + '\027', '\071', '\367', '\163', '\205', '\162', '\217', '\264', + '\036', '\334', '\312', '\325', '\353', '\325', '\203', '\227', + '\217', '\346', '\232', '\027', '\124', '\031', '\061', '\166', + '\316', '\160', '\230', '\354', '\324', '\161', '\215', '\213', + '\214', '\333', '\063', '\127', '\256', '\235', '\353', '\101', + '\370', '\327', '\225', '\012', '\123', '\264', '\363', '\251', + '\071', '\332', '\126', '\340', '\202', '\227', '\037', '\350', + '\365', '\350', '\270', '\325', '\243', '\076', '\077', '\362', + '\131', '\120', '\317', '\275', '\236', '\355', '\134', '\062', + '\271', '\372', '\107', '\315', '\063', '\013', '\271', '\237', + '\005', '\175', '\114', '\323', '\355', '\354', '\146', '\153', + '\351', '\313', '\136', '\270', '\325', '\243', '\277', '\353', + '\250', '\210', '\361', '\147', '\174', '\216', '\266', '\211', + '\373', '\142', '\054', '\035', '\353', '\034', '\047', '\346', + '\150', '\233', '\133', '\137', '\346', '\263', '\265', '\054', + '\113', '\174', '\302', '\044', '\375', '\063', '\237', '\015', + '\304', '\265', '\351', '\016', '\122', '\146', '\026', '\206', + '\333', '\133', '\017', '\372', '\270', '\243', '\343', '\345', + '\157', '\152', '\236', '\221', '\370', '\201', '\033', '\162', + '\015', '\240', '\217', '\043', '\156', '\365', '\344', '\263', + '\265', '\356', '\157', '\176', '\346', '\037', '\165', '\015', + '\341', '\147', '\315', '\217', '\034', '\272', '\214', '\304', + '\257', '\325', '\365', '\251', '\337', '\172', '\146', '\150', + '\270', '\255', '\111', '\365', '\362', '\013', '\225', '\164', + '\056', '\337', '\321', '\145', '\362', '\331', '\300', '\155', + '\156', '\124', '\327', '\056', '\272', '\137', '\117', '\201', + '\373', '\232', '\122', '\107', '\267', '\235', '\354', '\113', + '\165', '\015', '\052', '\353', '\224', '\175', '\253', '\327', + '\343', '\365', '\134', '\253', '\350', '\365', '\250', '\143', + '\374', '\245', '\014', '\252', '\035', '\364', '\265', '\363', + '\150', '\202', '\364', '\151', '\061', '\117', '\311', '\071', + '\314', '\155', '\355', '\257', '\217', '\325', '\272', '\057', + '\271', '\315', '\013', '\172', '\075', '\352', '\263', '\344', + '\345', '\327', '\045', '\012', '\262', '\115', '\372', '\132', + '\306', '\117', '\075', '\162', '\176', '\361', '\252', '\107', + '\177', '\077', '\235', '\212', '\013', '\175', '\307', '\117', + '\075', '\372', '\032', '\113', '\257', '\117', '\265', '\233', + '\134', '\133', '\346', '\033', '\173', '\105', '\220', '\317', + '\310', '\170', '\370', '\233', '\177', '\104', '\220', '\276', + '\120', '\014', '\367', '\071', '\110', '\237', '\207', '\324', + '\266', '\171', '\315', '\101', '\172', '\160', '\153', '\217', + '\237', '\266', '\311', '\040', '\366', '\025', '\365', '\161', + '\047', '\337', '\063', '\062', '\022', '\273', '\311', '\340', + '\066', '\107', '\344', '\153', '\133', '\276', '\271', '\310', + '\055', '\350', '\076', '\252', '\256', '\265', '\275', '\326', + '\262', '\122', '\237', '\174', '\363', '\234', '\233', '\076', + '\302', '\376', '\105', '\171', '\364', '\361', '\362', '\151', + '\077', '\373', '\306', '\272', '\315', '\274', '\306', '\003', + '\057', '\031', '\165', '\314', '\367', '\043', '\223', '\157', + '\376', '\321', '\145', '\324', '\371', '\304', '\317', '\370', + '\352', '\246', '\113', '\276', '\367', '\040', '\371', '\256', + '\230', '\353', '\375', '\264', '\014', '\027', '\372', '\376', + '\130', '\227', '\153', '\145', '\232', '\334', '\110', '\367', + '\004', '\275', '\312', '\164', '\253', '\133', '\015', '\162', + '\117', '\310', '\153', '\357', '\347', '\122', '\005', '\365', + '\335', '\310', '\357', '\172', '\107', '\216', '\023', '\242', + '\175', '\162', '\377', '\111', '\256', '\333', '\274', '\374', + '\346', '\142', '\366', '\023', '\145', '\137', '\113', '\337', + '\224', '\317', '\222', '\127', '\136', '\325', '\217', '\325', + '\275', '\316', '\134', '\372', '\350', '\372', '\346', '\262', + '\201', '\252', '\213', '\376', '\231', '\116', '\011', '\334', + '\237', '\323', '\321', '\354', '\075', '\112', '\075', '\205', + '\155', '\305', '\332', '\177', '\072', '\206', '\336', '\001', + '\162', '\371', '\277', '\276', '\046', '\220', '\163', '\256', + '\237', '\175', '\253', '\122', '\247', '\235', '\262', '\137', + '\047', '\301', '\375', '\363', '\057', '\267', '\040', '\327', + '\200', '\371', '\366', '\000', '\364', '\266', '\346', '\273', + '\057', '\164', '\230', '\011', '\133', '\367', '\253', '\225', + '\164', '\276', '\061', '\140', '\244', '\341', '\267', '\361', + '\371', '\234', '\334', '\247', '\225', '\143', '\223', '\237', + '\317', '\314', '\244', '\214', '\134', '\357', '\352', '\143', + '\205', '\133', '\220', '\343', '\337', '\305', '\004', '\267', + '\271', '\104', '\330', '\136', '\237', '\357', '\256', '\161', + '\256', '\253', '\210', '\161', '\272', '\024', '\336', '\237', + '\237', '\352', '\341', '\122', '\175', '\126', '\240', '\352', + '\055', '\354', '\065', '\026', '\303', '\307', '\034', '\077', + '\301', '\153', '\217', '\316', '\217', '\117', '\251', '\317', + '\214', '\372', '\054', '\351', '\301', '\255', '\155', '\342', + '\271', '\051', '\163', '\344', '\146', '\343', '\302', '\347', + '\310', '\115', '\246', '\310', '\311', '\057', '\337', '\275', + '\364', '\317', '\166', '\165', '\337', '\021', '\351', '\053', + '\363', '\324', '\003', '\134', '\070', '\016', '\312', '\171', + '\324', '\153', '\055', '\066', '\106', '\223', '\121', '\337', + '\057', '\325', '\075', '\033', '\065', '\024', '\215', '\102', + '\106', '\076', '\243', '\043', '\221', '\221', '\375', '\060', + '\022', '\231', '\111', '\243', '\220', '\221', '\371', '\364', + '\365', '\115', '\056', '\031', '\021', '\256', '\302', '\360', + '\317', '\337', '\305', '\134', '\250', '\376', '\315', '\303', + '\034', '\027', '\031', '\077', '\173', '\203', '\352', '\376', + '\255', '\332', '\077', '\352', '\336', '\235', '\272', '\106', + '\326', '\375', '\273', '\150', '\024', '\062', '\152', '\377', + '\370', '\225', '\121', '\155', '\355', '\127', '\106', '\325', + '\307', '\153', '\277', '\117', '\367', '\321', '\242', '\121', + '\310', '\250', '\372', '\370', '\225', '\121', '\365', '\361', + '\053', '\003', '\134', '\270', '\167', '\073', '\023', '\271', + '\367', '\156', '\125', '\277', '\226', '\276', '\045', '\367', + '\373', '\274', '\366', '\371', '\164', '\273', '\371', '\331', + '\257', '\322', '\355', '\346', '\107', '\106', '\267', '\233', + '\037', '\031', '\125', '\037', '\277', '\062', '\272', '\255', + '\375', '\310', '\350', '\101', '\175', '\057', '\361', '\172', + '\047', '\051', '\161', '\312', '\221', '\173', '\250', '\352', + '\173', '\217', '\334', '\147', '\025', '\367', '\325', '\171', + '\121', '\265', '\265', '\133', '\273', '\362', '\331', '\332', + '\257', '\214', '\152', '\153', '\277', '\062', '\252', '\335', + '\056', '\246', '\155', '\156', '\373', '\203', '\172', '\160', + '\333', '\163', '\312', '\367', '\156', '\056', '\336', '\223', + '\345', '\236', '\207', '\034', '\007', '\325', '\275', '\136', + '\267', '\367', '\005', '\335', '\267', '\375', '\354', '\213', + '\351', '\276', '\355', '\107', '\106', '\367', '\155', '\077', + '\062', '\272', '\157', '\373', '\221', '\321', '\175', '\073', + '\237', '\214', '\154', '\127', '\361', '\010', '\144', '\364', + '\040', '\377', '\136', '\101', '\034', '\345', '\173', '\135', + '\276', '\367', '\026', '\257', '\275', '\101', '\165', '\376', + '\001', '\334', '\307', '\236', '\174', '\373', '\174', '\156', + '\143', '\217', '\337', '\275', '\301', '\221', '\310', '\270', + '\215', '\043', '\371', '\144', '\124', '\175', '\374', '\356', + '\363', '\025', '\215', '\102', '\106', '\325', '\307', '\257', + '\214', '\252', '\217', '\037', '\031', '\371', '\034', '\313', + '\375', '\051', '\277', '\373', '\157', '\252', '\137', '\373', + '\335', '\347', '\313', '\067', '\007', '\371', '\365', '\203', + '\174', '\062', '\371', '\346', '\240', '\174', '\372', '\370', + '\225', '\311', '\067', '\007', '\171', '\315', '\077', '\156', + '\357', '\212', '\136', '\143', '\250', '\032', '\324', '\271', + '\110', '\235', '\203', '\364', '\371', '\107', '\204', '\134', + '\163', '\220', '\237', '\061', '\321', '\257', '\114', '\256', + '\071', '\310', '\317', '\370', '\166', '\261', '\155', '\313', + '\267', '\067', '\350', '\265', '\207', '\077', '\035', '\103', + '\237', '\365', '\253', '\266', '\363', '\152', '\233', '\133', + '\075', '\316', '\167', '\250', '\372', '\372', '\167', '\366', + '\060', '\332', '\261', '\331', '\376', '\362', '\203', '\163', + '\252', '\106', '\133', '\031', '\075', '\316', '\324', '\300', + '\026', '\345', '\306', '\266', '\376', '\047', '\067', '\061', + '\352', '\353', '\355', '\355', '\267', '\043', '\236', '\312', + '\157', '\117', '\154', '\144', '\064', '\320', '\315', '\250', + '\117', '\134', '\353', '\335', '\302', '\150', '\213', '\225', + '\245', '\127', '\210', '\131', '\131', '\304', '\015', '\212', + '\155', '\263', '\253', '\264', '\112', '\266', '\242', '\176', + '\121', '\174', '\277', '\135', '\121', '\357', '\166', '\121', + '\100', '\017', '\057', '\061', '\037', '\233', '\261', '\275', + '\177', '\347', '\143', '\172', '\063', '\170', '\152', '\335', + '\175', '\214', '\167', '\007', '\267', '\132', '\221', '\270', + '\261', '\311', '\322', '\210', '\247', '\275', '\342', '\264', + '\157', '\223', '\114', '\135', '\240', '\233', '\217', '\210', + '\262', '\073', '\266', '\132', '\221', '\274', '\326', '\277', + '\171', '\364', '\105', '\371', '\316', '\074', '\262', '\346', + '\146', '\065', '\037', '\112', '\011', '\133', '\365', '\154', + '\245', '\021', '\007', '\273', '\244', '\141', '\355', '\326', + '\273', '\245', '\172', '\245', '\354', '\100', '\117', '\017', + '\243', '\336', '\141', '\315', '\355', '\327', '\242', '\336', + '\154', '\224', '\275', '\066', '\340', '\226', '\257', '\147', + '\130', '\276', '\301', '\255', '\126', '\067', '\132', '\051', + '\273', '\175', '\331', '\256', '\025', '\247', '\331', '\136', + '\335', '\341', '\364', '\376', '\066', '\333', '\365', '\006', + '\055', '\215', '\204', '\012', '\203', '\326', '\215', '\315', + '\062', '\113', '\237', '\350', '\337', '\276', '\115', '\331', + '\033', '\135', '\212', '\237', '\156', '\353', '\037', '\174', + '\334', '\212', '\262', '\352', '\367', '\016', '\271', '\024', + '\243', '\236', '\136', '\073', '\213', '\132', '\336', '\140', + '\317', '\260', '\150', '\147', '\317', '\205', '\327', '\334', + '\262', '\354', '\354', '\165', '\273', '\053', '\332', '\354', + '\104', '\331', '\123', '\177', '\205', '\132', '\316', '\157', + '\131', '\050', '\117', '\275', '\071', '\243', '\301', '\341', + '\035', '\340', '\356', '\211', '\166', '\244', '\366', '\264', + '\217', '\342', '\255', '\307', '\157', '\207', '\247', '\167', + '\132', '\217', '\263', '\125', '\245', '\374', '\016', '\025', + '\160', '\136', '\031', '\317', '\306', '\140', '\054', '\107', + '\302', '\161', '\234', '\261', '\047', '\160', '\124', '\234', + '\310', '\321', '\352', '\012', '\216', '\302', '\223', '\071', + '\042', '\115', '\345', '\350', '\064', '\215', '\243', '\361', + '\164', '\316', '\146', '\063', '\070', '\132', '\315', '\104', + '\031', '\307', '\255', '\253', '\160', '\065', '\146', '\143', + '\016', '\127', '\203', '\345', '\250', '\300', '\265', '\270', + '\016', '\327', '\143', '\056', '\156', '\300', '\215', '\270', + '\011', '\363', '\160', '\063', '\156', '\301', '\255', '\230', + '\217', '\112', '\334', '\206', '\333', '\121', '\205', '\152', + '\054', '\300', '\035', '\130', '\210', '\105', '\130', '\214', + '\073', '\261', '\004', '\167', '\341', '\156', '\174', '\032', + '\113', '\161', '\017', '\356', '\305', '\175', '\130', '\206', + '\000', '\356', '\107', '\015', '\152', '\021', '\304', '\162', + '\254', '\300', '\112', '\324', '\341', '\063', '\370', '\054', + '\352', '\261', '\012', '\015', '\150', '\304', '\152', '\074', + '\040', '\276', '\006', '\214', '\146', '\264', '\340', '\163', + '\170', '\020', '\153', '\261', '\016', '\017', '\341', '\363', + '\370', '\002', '\176', '\007', '\277', '\213', '\126', '\074', + '\214', '\020', '\326', '\043', '\214', '\010', '\014', '\264', + '\241', '\035', '\035', '\060', '\361', '\105', '\154', '\100', + '\024', '\061', '\304', '\221', '\100', '\047', '\036', '\101', + '\022', '\051', '\244', '\221', '\301', '\106', '\074', '\212', + '\056', '\164', '\343', '\061', '\074', '\216', '\115', '\170', + '\002', '\233', '\161', '\376', '\242', '\303', '\026', '\364', + '\140', '\053', '\172', '\261', '\015', '\333', '\321', '\207', + '\176', '\354', '\300', '\000', '\166', '\142', '\020', '\117', + '\142', '\027', '\276', '\204', '\337', '\303', '\156', '\354', + '\301', '\227', '\361', '\373', '\330', '\213', '\247', '\360', + '\025', '\074', '\215', '\257', '\142', '\037', '\276', '\206', + '\147', '\360', '\165', '\354', '\307', '\067', '\360', '\115', + '\174', '\013', '\007', '\160', '\020', '\177', '\200', '\157', + '\343', '\020', '\236', '\305', '\167', '\360', '\207', '\070', + '\214', '\347', '\360', '\107', '\370', '\143', '\034', '\301', + '\363', '\370', '\023', '\274', '\200', '\243', '\170', '\021', + '\177', '\212', '\227', '\160', '\014', '\177', '\206', '\077', + '\307', '\137', '\340', '\145', '\274', '\202', '\357', '\342', + '\173', '\170', '\025', '\337', '\307', '\153', '\370', '\113', + '\274', '\216', '\037', '\340', '\257', '\360', '\006', '\336', + '\304', '\017', '\361', '\043', '\374', '\030', '\307', '\361', + '\026', '\376', '\032', '\177', '\203', '\023', '\370', '\133', + '\274', '\215', '\237', '\340', '\044', '\376', '\016', '\077', + '\305', '\317', '\160', '\012', '\357', '\340', '\357', '\361', + '\017', '\070', '\215', '\177', '\304', '\273', '\370', '\047', + '\234', '\301', '\077', '\343', '\347', '\030', '\372', '\116', + '\335', '\331', '\202', '\313', '\134', '\346', '\062', '\377', + '\027', '\250', '\337', '\153', '\225', '\337', '\025', '\023', + '\173', '\271', '\327', '\301', '\376', '\056', '\233', '\370', + '\021', '\210', '\273', '\111', '\000', '\366', '\217', '\071', + '\064', '\021', '\361', '\013', '\020', '\021', '\022', '\043', + '\033', '\311', '\026', '\062', '\100', '\366', '\300', '\376', + '\155', '\213', '\203', '\260', '\177', '\364', '\341', '\105', + '\362', '\135', '\362', '\006', '\071', '\101', '\336', '\041', + '\342', '\271', '\077', '\107', '\176', '\105', '\076', '\026', + '\163', '\000', '\333', '\060', '\211', '\314', '\042', '\345', + '\344', '\106', '\162', '\073', '\271', '\233', '\004', '\110', + '\035', '\151', '\042', '\255', '\304', '\044', '\351', '\002', + '\373', '\367', '\037', '\172', '\013', '\354', '\237', '\177', + '\330', '\115', '\236', '\046', '\373', '\311', '\101', '\362', + '\054', '\171', '\216', '\274', '\100', '\216', '\221', '\127', + '\310', '\367', '\311', '\033', '\344', '\055', '\362', '\166', + '\201', '\375', '\375', '\334', '\237', '\223', '\177', '\045', + '\377', '\106', '\176', '\111', '\376', '\213', '\374', '\067', + '\071', '\117', '\012', '\150', '\224', '\261', '\144', '\034', + '\231', '\100', '\046', '\222', '\053', '\310', '\144', '\062', + '\225', '\114', '\043', '\323', '\311', '\014', '\062', '\223', + '\314', '\042', '\127', '\223', '\071', '\244', '\234', '\134', + '\113', '\256', '\047', '\067', '\220', '\233', '\310', '\315', + '\344', '\126', '\122', '\111', '\156', '\047', '\325', '\344', + '\036', '\262', '\202', '\064', '\223', '\207', '\311', '\006', + '\362', '\010', '\111', '\221', '\014', '\171', '\224', '\164', + '\223', '\307', '\311', '\023', '\144', '\013', '\331', '\112', + '\266', '\221', '\076', '\262', '\203', '\354', '\044', '\117', + '\222', '\057', '\221', '\335', '\344', '\313', '\144', '\057', + '\371', '\012', '\371', '\052', '\371', '\032', '\371', '\072', + '\371', '\006', '\371', '\026', '\071', '\110', '\276', '\115', + '\236', '\045', '\057', '\220', '\227', '\310', '\153', '\344', + '\055', '\362', '\023', '\362', '\056', '\171', '\217', '\234', + '\043', '\277', '\044', '\277', '\042', '\347', '\205', '\015', + '\304', '\367', '\224', '\311', '\125', '\344', '\106', '\262', + '\220', '\334', '\107', '\226', '\223', '\007', '\310', '\132', + '\322', '\112', '\114', '\222', '\041', '\333', '\310', '\116', + '\262', '\213', '\074', '\115', '\236', '\045', '\317', '\223', + '\127', '\310', '\217', '\310', '\073', '\344', '\054', '\071', + '\107', '\176', '\115', '\306', '\362', '\145', '\150', '\022', + '\231', '\106', '\346', '\220', '\271', '\344', '\066', '\262', + '\220', '\334', '\111', '\226', '\221', '\025', '\244', '\201', + '\074', '\124', '\150', '\377', '\006', '\312', '\006', '\222', + '\044', '\233', '\311', '\000', '\331', '\105', '\366', '\222', + '\147', '\310', '\101', '\362', '\074', '\071', '\106', '\136', + '\043', '\077', '\046', '\157', '\223', '\167', '\310', '\031', + '\162', '\216', '\374', '\007', '\371', '\117', '\162', '\136', + '\324', '\075', '\216', '\165', '\213', '\357', '\130', '\223', + '\271', '\344', '\126', '\262', '\210', '\174', '\232', '\334', + '\113', '\126', '\220', '\006', '\322', '\102', '\102', '\144', + '\003', '\111', '\222', '\156', '\322', '\107', '\166', '\223', + '\275', '\344', '\031', '\162', '\220', '\034', '\046', '\307', + '\310', '\367', '\310', '\017', '\311', '\011', '\362', '\063', + '\362', '\056', '\371', '\027', '\362', '\013', '\362', '\033', + '\362', '\077', '\244', '\160', '\074', '\337', '\277', '\110', + '\304', '\150', '\013', '\145', '\242', '\351', '\160', '\107', + '\050', '\211', '\114', '\334', '\134', '\260', '\250', '\146', + '\061', '\122', '\035', '\241', '\210', '\141', '\235', '\055', + '\254', '\272', '\313', '\071', '\326', '\070', '\307', '\132', + '\347', '\030', '\240', '\144', '\173', '\322', '\060', '\320', + '\031', '\315', '\244', '\142', '\146', '\074', '\223', '\262', + '\157', '\054', '\130', '\350', '\144', '\270', '\037', '\115', + '\313', '\253', '\026', '\126', '\061', '\210', '\304', '\035', + '\062', '\121', '\055', '\023', '\013', '\144', '\142', '\221', + '\225', '\020', '\102', '\167', '\334', '\037', '\160', '\216', + '\102', '\330', '\312', '\051', '\157', '\324', '\070', '\307', + '\132', '\041', '\261', '\104', '\212', '\336', '\045', '\023', + '\167', '\312', '\304', '\142', '\047', '\121', '\155', '\327', + '\023', '\065', '\122', '\051', '\343', '\221', '\114', '\050', + '\012', '\266', '\065', '\224', '\066', '\222', '\366', '\111', + '\247', '\211', '\170', '\042', '\155', '\247', '\123', '\274', + '\032', '\065', '\343', '\355', '\350', '\064', '\222', '\146', + '\042', '\022', '\066', '\342', '\042', '\133', '\004', '\251', + '\316', '\120', '\330', '\200', '\321', '\025', '\216', '\206', + '\142', '\170', '\044', '\303', '\354', '\221', '\365', '\121', + '\304', '\063', '\261', '\365', '\106', '\062', '\145', '\266', + '\307', '\021', '\111', '\104', '\243', '\064', '\032', '\305', + '\204', '\014', '\102', '\061', '\246', '\122', '\241', '\170', + '\304', '\316', '\234', '\142', '\221', '\121', '\132', '\047', + '\224', '\064', '\342', '\121', '\243', '\055', '\155', '\247', + '\222', '\146', '\173', '\007', '\263', '\212', '\072', '\315', + '\324', '\006', '\313', '\166', '\010', '\047', '\142', '\261', + '\020', '\072', '\272', '\073', '\073', '\214', '\270', '\323', + '\010', '\244', '\242', '\241', '\124', '\007', '\036', '\063', + '\222', '\011', '\044', '\342', '\006', '\322', '\217', '\046', + '\220', '\356', '\020', '\326', '\156', '\113', '\144', '\222', + '\150', '\063', '\067', '\032', '\110', '\231', '\135', '\110', + '\031', '\033', '\051', '\143', '\130', '\205', '\306', '\115', + '\146', '\014', '\047', '\242', '\211', '\070', '\057', '\307', + '\114', '\073', '\045', '\364', '\307', '\060', '\003', '\260', + '\165', '\106', '\052', '\155', '\362', '\136', '\050', '\075', + '\252', '\205', '\350', '\372', '\144', '\050', '\274', '\301', + '\110', '\133', '\072', '\255', '\147', '\322', '\156', '\252', + '\163', '\125', '\352', '\027', '\066', '\315', '\260', '\231', + '\014', '\147', '\142', '\354', '\266', '\010', '\315', '\022', + '\116', '\044', '\015', '\266', '\040', '\304', '\166', '\217', + '\146', '\361', '\052', '\112', '\067', '\234', '\032', '\223', + '\366', '\231', '\122', '\123', '\332', '\214', '\322', '\135', + '\325', '\376', '\212', '\044', '\036', '\215', '\303', '\352', + '\225', '\154', '\357', '\206', '\063', '\111', '\332', '\077', + '\334', '\215', '\156', '\132', '\154', '\175', '\062', '\261', + '\301', '\210', '\213', '\262', '\122', '\106', '\330', '\062', + '\106', '\304', '\144', '\247', '\247', '\114', '\321', '\033', + '\235', '\335', '\166', '\331', '\211', '\144', '\244', '\215', + '\206', '\264', '\354', '\332', '\236', '\061', '\243', '\121', + '\043', '\226', '\260', '\325', '\216', '\046', '\332', '\315', + '\160', '\050', '\112', '\027', '\222', '\335', '\226', '\064', + '\332', '\315', '\224', '\355', '\067', '\261', '\120', '\070', + '\051', '\012', '\324', '\237', '\016', '\366', '\141', '\052', + '\143', '\165', '\157', '\322', '\356', '\313', '\354', '\131', + '\050', '\234', '\111', '\033', '\210', '\145', '\204', '\213', + '\204', '\150', '\244', '\316', '\016', '\335', '\027', '\303', + '\106', '\204', '\365', '\207', '\204', '\057', '\144', '\245', + '\330', '\274', '\030', '\325', '\317', '\104', '\207', '\265', + '\317', '\151', '\172', '\134', '\364', '\171', '\122', '\164', + '\067', '\223', '\035', '\241', '\150', '\233', '\135', '\245', + '\163', '\061', '\225', '\165', '\002', '\313', '\120', '\001', + '\273', '\143', '\002', '\166', '\073', '\002', '\166', '\307', + '\265', '\105', '\215', '\056', '\004', '\154', '\323', '\006', + '\262', '\326', '\011', '\044', '\205', '\055', '\003', '\101', + '\324', '\310', '\046', '\005', '\155', '\341', '\240', '\055', + '\034', '\124', '\204', '\203', '\131', '\251', '\072', '\073', + '\117', '\235', '\235', '\247', '\116', '\311', '\123', '\227', + '\315', '\023', '\114', '\167', '\240', '\301', '\256', '\256', + '\321', '\316', '\336', '\150', '\147', '\157', '\124', '\262', + '\067', '\072', '\031', '\262', '\122', '\061', '\016', '\135', + '\146', '\147', '\264', '\033', '\215', '\266', '\033', '\266', + '\330', '\242', '\055', '\266', '\150', '\213', '\042', '\332', + '\222', '\225', '\131', '\147', '\337', '\154', '\356', '\110', + '\044', '\343', '\150', '\067', '\222', '\061', '\076', '\263', + '\353', '\243', '\051', '\204', '\034', '\377', '\264', '\157', + '\207', '\024', '\331', '\220', '\135', '\155', '\050', '\133', + '\104', '\310', '\062', '\103', '\210', '\317', '\233', '\064', + '\203', '\141', '\013', '\033', '\266', '\260', '\241', '\010', + '\033', '\131', '\051', '\323', '\316', '\143', '\332', '\171', + '\114', '\045', '\217', '\231', '\315', '\143', '\320', '\014', + '\161', '\273', '\272', '\204', '\235', '\075', '\141', '\147', + '\117', '\050', '\331', '\023', '\116', '\206', '\254', '\124', + '\304', '\334', '\150', '\212', '\013', '\266', '\021', '\062', + '\266', '\140', '\306', '\026', '\314', '\050', '\202', '\231', + '\254', '\104', '\267', '\175', '\063', '\155', '\031', '\241', + '\073', '\173', '\371', '\322', '\375', '\156', '\322', '\377', + '\002', '\174', '\155', '\142', '\140', '\200', '\114', '\000', + '\000', + +}; + +static char name_6x13[] = "-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1"; +static char name_cursor[] = "cursor"; + +const BuiltinFileRec builtin_files[] = { + { "6x13.builtin", sizeof file_6x13, file_6x13, }, + { "cursor.builtin", sizeof file_cursor, file_cursor, } +}; + +const int builtin_files_count = sizeof (builtin_files) / sizeof (builtin_files[0]); + +const BuiltinDirRec builtin_dir[] = { + { "6x13.builtin", name_6x13, }, + { "cursor.builtin", name_cursor, } +}; + +const int builtin_dir_count = sizeof (builtin_dir) / sizeof (builtin_dir[0]); + +static char alias_fixed[] = "fixed"; +static char alias_6x13[] = "6x13"; +static char alias_6x13_100[] = "-misc-fixed-medium-r-semicondensed--13-100-100-100-c-60-iso8859-1"; + +const BuiltinAliasRec builtin_alias[] = { + { alias_fixed, name_6x13, }, + { alias_6x13, name_6x13, }, + { alias_6x13_100, name_6x13, } +}; + +const int builtin_alias_count = sizeof (builtin_alias) / sizeof (builtin_alias[0]); diff --git a/libXfont/src/builtins/fpe.c b/libXfont/src/builtins/fpe.c new file mode 100644 index 000000000..5fce45ba7 --- /dev/null +++ b/libXfont/src/builtins/fpe.c @@ -0,0 +1,95 @@ +/* $XdotOrg: $ */ +/* + * Id: fpe.c,v 1.2 1999/11/02 06:16:48 keithp Exp $ + * + * Copyright 1999 SuSE, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of SuSE not be used in advertising or + * publicity pertaining to distribution of the software without specific, + * written prior permission. SuSE makes no representations about the + * suitability of this software for any purpose. It is provided "as is" + * without express or implied warranty. + * + * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE + * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Author: Keith Packard, SuSE, Inc. + */ +/* $XFree86: xc/lib/font/builtins/fpe.c,v 1.3 1999/12/30 02:29:51 robin Exp $ */ + +#ifdef HAVE_CONFIG_H +#include +#endif +#include +#include "builtin.h" + +static int font_file_type; + +static const char builtin_fonts[] = "built-ins"; + +static int +BuiltinNameCheck (char *name) +{ + return (strcmp (name, builtin_fonts) == 0); +} + +static int +BuiltinInitFPE (FontPathElementPtr fpe) +{ + int status; + FontDirectoryPtr dir; + + status = BuiltinReadDirectory (fpe->name, &dir); + + if (status == Successful) + fpe->private = (pointer) dir; + return status; +} + +/* ARGSUSED */ +static int +BuiltinResetFPE (FontPathElementPtr fpe) +{ + FontDirectoryPtr dir; + + dir = (FontDirectoryPtr) fpe->private; + /* builtins can't change! */ + return Successful; +} + +static int +BuiltinFreeFPE (FontPathElementPtr fpe) +{ + FontFileFreeDir ((FontDirectoryPtr) fpe->private); + return Successful; +} + +void +BuiltinRegisterFpeFunctions(void) +{ + BuiltinRegisterFontFileFunctions (); + + font_file_type = RegisterFPEFunctions(BuiltinNameCheck, + BuiltinInitFPE, + BuiltinFreeFPE, + BuiltinResetFPE, + FontFileOpenFont, + FontFileCloseFont, + FontFileListFonts, + FontFileStartListFontsWithInfo, + FontFileListNextFontWithInfo, + (WakeupFpeFunc) 0, + (ClientDiedFunc) 0, + (LoadGlyphsFunc) 0, + (StartLaFunc) 0, + (NextLaFunc) 0, + (SetPathFunc) 0); +} diff --git a/libXfont/src/builtins/render.c b/libXfont/src/builtins/render.c new file mode 100644 index 000000000..871665f89 --- /dev/null +++ b/libXfont/src/builtins/render.c @@ -0,0 +1,136 @@ +/* $XdotOrg: $ */ +/* + * Id: render.c,v 1.2 1999/11/02 06:16:48 keithp Exp $ + * + * Copyright 1999 SuSE, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of SuSE not be used in advertising or + * publicity pertaining to distribution of the software without specific, + * written prior permission. SuSE makes no representations about the + * suitability of this software for any purpose. It is provided "as is" + * without express or implied warranty. + * + * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE + * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Author: Keith Packard, SuSE, Inc. + */ +/* $XFree86: xc/lib/font/builtins/render.c,v 1.3 1999/12/30 02:29:51 robin Exp $ */ + +#ifdef HAVE_CONFIG_H +#include +#endif +#include +#include +#include +#include "builtin.h" + +static int +BuiltinOpenBitmap (FontPathElementPtr fpe, FontPtr *ppFont, int flags, + FontEntryPtr entry, char *fileName, fsBitmapFormat format, + fsBitmapFormatMask fmask, FontPtr unused) +{ + FontFilePtr file; + FontPtr pFont; + int ret; + int bit, + byte, + glyph, + scan, + image; + + file = BuiltinFileOpen (fileName); + if (!file) + return BadFontName; + pFont = (FontPtr) xalloc(sizeof(FontRec)); + if (!pFont) { + BuiltinFileClose (file, 0); + return AllocError; + } + /* set up default values */ + FontDefaultFormat(&bit, &byte, &glyph, &scan); + /* get any changes made from above */ + ret = CheckFSFormat(format, fmask, &bit, &byte, &scan, &glyph, &image); + + /* Fill in font record. Data format filled in by reader. */ + pFont->refcnt = 0; + pFont->maxPrivate = -1; + pFont->devPrivates = (pointer *) 0; + + ret = pcfReadFont (pFont, file, bit, byte, glyph, scan); + + BuiltinFileClose (file, 0); + if (ret != Successful) + xfree(pFont); + else + *ppFont = pFont; + return ret; +} + +static int +BuiltinGetInfoBitmap (FontPathElementPtr fpe, FontInfoPtr pFontInfo, + FontEntryPtr entry, char *fileName) +{ + FontFilePtr file; + int ret; + + file = BuiltinFileOpen (fileName); + if (!file) + return BadFontName; + ret = pcfReadFontInfo (pFontInfo, file); + BuiltinFileClose (file, 0); + return ret; +} + +static int +BuiltinOpenScalable (FontPathElementPtr fpe, + FontPtr *pFont, + int flags, + FontEntryPtr entry, + char *fileName, + FontScalablePtr vals, + fsBitmapFormat format, + fsBitmapFormatMask fmask, + FontPtr non_cachable_font) /* We don't do licensing */ +{ + return BadFontName; +} + +static int +BuiltinGetInfoScalable (FontPathElementPtr fpe, + FontInfoPtr pFontInfo, + FontEntryPtr entry, + FontNamePtr fontName, + char *fileName, + FontScalablePtr vals) +{ + return BadFontName; +} + +static FontRendererRec renderers[] = { + { ".builtin", 8, + BuiltinOpenBitmap, + BuiltinOpenScalable, + BuiltinGetInfoBitmap, + BuiltinGetInfoScalable, + 0 } +}; + +#define numRenderers (sizeof renderers / sizeof renderers[0]) + +void +BuiltinRegisterFontFileFunctions(void) +{ + int i; + for (i = 0; i < numRenderers; i++) + FontFileRegisterRenderer ((FontRendererRec *) &renderers[i]); +} + -- cgit v1.2.3