From 0cac953ce8d5139c1a264b417951ee15a3176b51 Mon Sep 17 00:00:00 2001 From: Zygo Blaxell Date: Mon, 2 Mar 2009 00:42:18 -0500 Subject: [PATCH] http://x.cybermirror.org/R5contrib/xscreensaver-1.21.tar.Z -rw-r--r-- 1 zblaxell zblaxell 205361 Nov 27 1993 xscreensaver-1.21.tar.Z ceaa79e452bea631871bbee9851bc1767e64f837 xscreensaver-1.21.tar.Z --- Imakefile | 15 +- Makefile | 457 --------- README | 25 +- config.h | 23 +- driver/Imakefile | 2 +- driver/Makefile | 508 ---------- driver/XScreenSaver.ad | 4 +- driver/demo.c | 20 +- driver/lock.c | 407 ++++---- driver/subprocs.c | 61 +- driver/timers.c | 12 +- driver/visual.c | 25 + driver/windows.c | 25 +- driver/xscreensaver-command.c | 2 +- driver/xscreensaver.c | 27 +- driver/xscreensaver.man | 33 +- hacks/.gdbinit | 3 + hacks/Imakefile | 13 +- hacks/Makefile | 728 -------------- hacks/blitspin.c | 107 ++- hacks/blitspin.man | 17 +- hacks/default.xbm | 1686 +++++++++++++++++++++++++++++++++ hacks/flame.c | 283 ++++++ hacks/flame.man | 65 ++ hacks/hypercube.c | 6 +- hacks/imsmap.c | 2 +- hacks/noseguy.c | 23 + hacks/noses/nose.0.left | 82 +- hacks/noses/nose.0.right | 82 +- hacks/noses/nose.1.left | 82 +- hacks/noses/nose.1.right | 82 +- hacks/noses/nose.down | 82 +- hacks/noses/nose.front | 82 +- hacks/noses/nose.left.front | 82 +- hacks/noses/nose.right.front | 82 +- hacks/screenhack.c | 14 +- hacks/screenhack.h | 4 - utils/Imakefile | 4 +- utils/Makefile | 426 --------- utils/fade.c | 15 +- utils/usleep.c | 4 - utils/version.h | 2 +- 42 files changed, 2855 insertions(+), 2849 deletions(-) delete mode 100644 Makefile delete mode 100644 driver/Makefile create mode 100644 hacks/.gdbinit delete mode 100644 hacks/Makefile create mode 100644 hacks/default.xbm create mode 100644 hacks/flame.c create mode 100644 hacks/flame.man delete mode 100644 utils/Makefile diff --git a/Imakefile b/Imakefile index 174f63f7..fd1901de 100644 --- a/Imakefile +++ b/Imakefile @@ -38,11 +38,16 @@ tar: utils/Makefile driver/Makefile hacks/Makefile @NAME=`sed -n \ 's/[^0-9]*\([0-9]\.[0-9][0-9]*\).*/xscreensaver-\1/p' utils/version.h` ; \ rm -f $$NAME ; ln -s . $$NAME ; \ + FILES= ; \ + for subdir in driver utils hacks ; do \ + cd $$subdir ; \ + FILES="$$FILES `make echo_tarfiles \ + | grep -v '^make\[' \ + | sed \"s|^|$$subdir/|g;s| | $$subdir/|g\" \ + ` "; \ + cd .. ; done ; \ echo creating tar file $${NAME}.tar.$(COMPRESS_EXT)... ; \ - $(TAR) -vchf - `echo $(TARFILES) \ - \`cd driver ; make echo_tarfiles | sed 's|^|driver/|g;s| | driver/|g'\` \ - \`cd utils ; make echo_tarfiles | sed 's|^|utils/|g; s| | utils/|g'\` \ - \`cd hacks ; make echo_tarfiles | sed 's|^|hacks/|g; s| | hacks/|g'\` \ - | sed "s|^|$$NAME/|g; s| | $$NAME/|g" ` \ + $(TAR) -vchf - \ + `echo $(TARFILES) $$FILES | sed "s|^|$$NAME/|g; s| | $$NAME/|g" ` \ | $(COMPRESS) > $${NAME}.tar.$(COMPRESS_EXT) ; \ rm $$NAME diff --git a/Makefile b/Makefile deleted file mode 100644 index 08e0dfda..00000000 --- a/Makefile +++ /dev/null @@ -1,457 +0,0 @@ -# Makefile generated by imake - do not edit! -# $XConsortium: imake.c,v 1.65 91/07/25 17:50:17 rws Exp $ -# -# The cpp used on this machine replaces all newlines and multiple tabs and -# spaces in a macro expansion with a single space. Imake tries to compensate -# for this, but is not always successful. -# - -# ------------------------------------------------------------------------- -# Makefile generated from "Imake.tmpl" and -# $XConsortium: Imake.tmpl,v 1.139 91/09/16 08:52:48 rws Exp $ -# -# Platform-specific parameters may be set in the appropriate .cf -# configuration files. Site-specific parameters should be set in the file -# site.def. Full rebuilds are recommended if any parameters are changed. -# -# If your C preprocessor does not define any unique symbols, you will need -# to set BOOTSTRAPCFLAGS when rebuilding imake (usually when doing -# "make World" the first time). -# - -# ------------------------------------------------------------------------- -# site-specific configuration parameters that need to come before -# the platform-specific parameters - edit site.def to change - -# site: $XConsortium: site.def,v 1.2 91/07/30 20:26:44 rws Exp $ - - ALLINCLUDES = $(STD_INCLUDES) $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) - -# ------------------------------------------------------------------------- -# platform-specific configuration parameters - edit usl.cf to change - -MEMUTILDEF = -MEMUTILLIB = -INC = $(TOOLS)/usr/include - - YFLAGS = - STRIP = $(PFX)strip - AWK = /usr/bin/awk - CD = cd - LS = /bin/ls - PR = /bin/pr - CHMOD = $(CH)chmod - CHOWN = $(CH)chown - CHGRP = $(CH)chgrp - SED = /bin/sed - MCS = $(PFX)mcs -d - - PROTO_DEFINES = -LOCAL_LIBRARIES = $(XLIB) - SYS_LIBRARIES = - - USE_INSTALLED = - SYS_TO_BUILD = - ARCHIVE_ONLY = - - USE_INSTALLED = -DUseInstalled - -BUILD_DEFINES = $(SYS_TO_BUILD) $(USE_INSTALLED) $(ARCHIVE_ONLY) - -# :: end of BUILD_DEFINES set-up - - UNIX_REL = -DSVR4 - -MAKEDEFINES = $(STD_DEFINES) $(BUILD_DEFINES) $(UNIX_REL) $(CCS_USED) - -# until we use R5 server, use R4 font structures - -# operating system: OSName - -INSTALLFLAGS = -m 0644 - -# $XConsortium: sv4Lib.rules,v 1.8 91/07/19 15:38:53 rws Exp $ - - FURCCOPTIONS = -Xa -W2,-A -Wa,-r - FUR = $(PFX)fur - -INCLUDE_EXTENSION = $(INCDIR)/extensions - - TOP_INCLUDES = - -# ------------------------------------------------------------------------- -# site-specific configuration parameters that go after -# the platform-specific parameters - edit site.def to change - -# site: $XConsortium: site.def,v 1.2 91/07/30 20:26:44 rws Exp $ - -# -# ProjectRoot is where you want to install the binaries, libs, fonts etc -# - - PROJECTROOT = $(ROOT)/$(MACH)/usr/X - XWINHOME = /usr/X - XWINLIBDIR = $(XWINHOME)/lib - XWINBINDIR = $(XWINHOME)/bin - - USLCLIENTSRC = $(TOP)/uslclients - DESKTOPDIR = $(PROJECTROOT)/desktop - DTADMDIR = $(PROJECTROOT)/adm - XDEFAULTS = $(PROJECTROOT)/defaults - - FONTINCSRC = $(FONTSRC)/include - FONTLIBINCSRC = $(FONTSRC)/lib/include - FOLIOLIBSRC = $(FONTSRC)/lib/folio - FONTLIBSRC = $(FONTSRC)/lib/font - BITMAPFONTSRC = $(FONTSRC)/lib/bitmap - FONTSLIBSRC = $(FONTSRC)/lib/ - XOLSRC = $(LIBSRC)/Xol - XOLLIBSRC = $(LIBSRC)/Xol -BITMAPLIBS_TO_BUILD = libbitmap.a libbitmap.so -FONTLIBS_TO_BUILD = libfont.a libfont.so - - USL_DEFINES = -DLIBDIR=\"$(XWINLIBDIR)\" -DDESTDIR=\"$(XWINHOME)\" - - DEFINES = $(USL_DEFINES) - - SHELL = /bin/sh - - TOP = . - CURRENT_DIR = . - - AR = $(PFX)ar rv - BOOTSTRAPCFLAGS = -Dusl - CC = $(PFX)cc - AS = $(PFX)as - - COMPRESS = compress - CPP = $(TOOLS)/usr/ccs/lib/$(PFX)cpp $(STD_CPP_DEFINES) - PREPROCESSCMD = $(PFX)cc -E $(STD_CPP_DEFINES) - INSTALL = /usr/ucb/install - LD = $(PFX)ld - LINT = $(PFX)lint - LINTLIBFLAG = -o - LINTOPTS = -ax - LN = /bin/ln -s - MAKE = $(PFX)make - MV = /bin/mv - CP = /bin/cp - HCC = /bin/cc - SED = /bin/sed - - RM = /bin/rm -f - TROFF = psroff - MSMACROS = -ms - TBL = tbl - EQN = eqn - STD_INCLUDES = -I. - STD_CPP_DEFINES = -DUSL -DSVR4 -DSYSV -DI18N $(MEMUTILDEF) - STD_DEFINES = -DUSL -DSVR4 -DSYSV -DI18N $(MEMUTILDEF) - EXTRA_LOAD_FLAGS = - EXTRA_LIBRARIES = -lnsl -ldl $(MEMUTILLIB) - TAGS = ctags - - SHAREDCODEDEF = - SHLIBDEF = - - PROTO_DEFINES = -DFUNCPROTO=15 -DNARROWPROTO - - INSTPGMFLAGS = -s - - INSTBINFLAGS = -m 0755 - INSTUIDFLAGS = -m 4755 - INSTLIBFLAGS = -m 0644 - INSTINCFLAGS = -m 0444 - INSTMANFLAGS = -m 0444 - INSTDATFLAGS = -m 0444 - INSTKMEMFLAGS = -m 4755 - - PROJECTROOT = $(ROOT)/$(MACH)/usr/X - - CDEBUGFLAGS = - CCOPTIONS = -Xa -W2,-A - - ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(STD_INCLUDES) - ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(EXTRA_DEFINES) $(PROTO_DEFINES) $(DEFINES) - CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(ALLDEFINES) - LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) - - LDLIBS = $(SYS_LIBRARIES) $(EXTRA_LIBRARIES) - - LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(LOCAL_LDFLAGS) -T 0x8300000 -L$(USRLIBDIR) - - LDCOMBINEFLAGS = -r - DEPENDFLAGS = - - MACROFILE = usl.cf - RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut - - IMAKE_DEFINES = - - IRULESRC = $(CONFIGDIR) - IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES) - - ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/Imake.rules \ - $(IRULESRC)/Project.tmpl $(IRULESRC)/site.def \ - $(IRULESRC)/$(MACROFILE) $(EXTRA_ICONFIGFILES) - -# ------------------------------------------------------------------------- -# X Window System Build Parameters -# $XConsortium: Project.tmpl,v 1.142 92/01/25 16:44:02 rws Exp $ - -# ------------------------------------------------------------------------- -# X Window System make variables; this need to be coordinated with rules - - PATHSEP = / - USRLIBDIR = $(ROOT)/$(MACH)/usr/X/lib - BINDIR = $(ROOT)/$(MACH)/usr/X/bin - INCROOT = $(ROOT)/$(MACH)/usr/X/include - BUILDINCROOT = $(TOP) - BUILDINCDIR = $(BUILDINCROOT)/X11 - BUILDINCTOP = .. - INCDIR = $(INCROOT)/X11 - ADMDIR = /usr/adm - LIBDIR = $(USRLIBDIR) - CONFIGDIR = $(LIBDIR)/config - LINTLIBDIR = $(USRLIBDIR)/lint - - FONTDIR = $(LIBDIR)/fonts - XINITDIR = $(LIBDIR)/xinit - XDMDIR = $(LIBDIR)/xdm - TWMDIR = $(LIBDIR)/twm - MANPATH = $(ROOT)/$(MACH)/usr/X/man - MANSOURCEPATH = $(MANPATH)/man - MANSUFFIX = n - LIBMANSUFFIX = 3 - MANDIR = $(MANSOURCEPATH)$(MANSUFFIX) - LIBMANDIR = $(MANSOURCEPATH)$(LIBMANSUFFIX) - NLSDIR = $(LIBDIR)/nls - PEXAPIDIR = $(LIBDIR)/PEX - XAPPLOADDIR = $(LIBDIR)/app-defaults - FONTCFLAGS = -L -l -t - - INSTAPPFLAGS = $(INSTDATFLAGS) - - IMAKE = imake - DEPEND = makedepend - RGB = rgb - - FONTC = bdftosnf - - MKFONTDIR = mkfontdir - MKDIRHIER = /bin/sh $(BINDIR)/mkdirhier - - CONFIGSRC = $(TOP)/config - DOCUTILSRC = $(TOP)/doc/util - CLIENTSRC = $(TOP)/clients - DEMOSRC = $(TOP)/demos - LIBSRC = $(TOP)/lib - FONTSRC = $(TOP)/fonts - INCLUDESRC = $(TOP)/X11 - SERVERSRC = $(TOP)/server - UTILSRC = $(TOP)/util - SCRIPTSRC = $(UTILSRC)/scripts - EXAMPLESRC = $(TOP)/examples - CONTRIBSRC = $(TOP)/../contrib - DOCSRC = $(TOP)/doc - RGBSRC = $(TOP)/rgb - DEPENDSRC = $(UTILSRC)/makedepend - IMAKESRC = $(CONFIGSRC) - XAUTHSRC = /usr/X/lib - XLIBSRC = /usr/X/lib - XMUSRC = /usr/X/lib - TOOLKITSRC = /usr/X/lib - AWIDGETSRC = /usr/X/lib - OLDXLIBSRC = /usr/X/lib - XDMCPLIBSRC = /usr/X/lib - - BDFTOSNFSRC = $(FONTSRC)/clients/bdftosnf - - MKFONTDIRSRC = $(FONTSRC)/clients/mkfontdir - FSLIBSRC = $(FONTSRC)/lib/fs - FONTSERVERSRC = $(FONTSRC)/server - EXTENSIONSRC = $(TOP)/extensions - XILIBSRC = $(EXTENSIONSRC)/lib/xinput - XTESTLIBSRC = $(EXTENSIONSRC)/lib/xtest - PHIGSLIBSRC = $(EXTENSIONSRC)/lib/PEX - -# $XConsortium: sv4Lib.tmpl,v 1.6 92/01/25 16:46:55 rws Exp $ - -# -# USL: BEGIN -# The default revision numbers from MIT is 5. But since USL has to be -# backward compatible, so force it to 1 -# - - SOXOLREV = 1 - SOOLITREV = 1 - SOOLITMREV = 1 - SOOLITOREV = 1 - SODTREV = 1 - -# USL: END - -SHLIBLDFLAGS = -G -z text -PICFLAGS = -K PIC - - DEPEXTENSIONLIB = - EXTENSIONLIB = -lXext - - DEPXLIB = $(DEPEXTENSIONLIB) - XLIB = $(EXTENSIONLIB) -lX11 - - DEPXMULIB = $(USRLIBDIR)/libXmu.so.$(SOXMUREV) - - XMULIB = -lXmu - - DEPOLDXLIB = - OLDXLIB = -loldX - - DEPXTOOLLIB = - XTOOLLIB = -lXt - - DEPXOLLIB = $(USRLIBDIR)/libOlit.so.$(SOXOLREV) - XOLLIB = -lOlit - - DEPXAWLIB = - XAWLIB = -lXaw - - DEPXILIB = - XILIB = -lXi - - DEPXTESTLIB = - XTESTLIB = -lXtst - -# -# USL: BEGIN -# - -XHOSTLOC = $(DESTDIR)/$(LIBDIR) -SHLIBFLAGS = -L $(ROOT)/$(MACH)/usr/lib -L $(ROOT)/$(MACH)/lib -L $(XHOSTLOC) - -# -# USL: END -# - - SOXLIBREV = 1 - SOXTREV = 1 - SOXAWREV = 1 - SOOLDXREV = 1 - SOXMUREV = 1 - SOXEXTREV = 1 - SOXINPUTREV = 1 - SOXTESTREV = 1 - SOXTRAPREV = 1 - - DEPXAUTHLIB = $(USRLIBDIR)/libXau.a - XAUTHLIB = -lXau - DEPXDMCPLIB = $(USRLIBDIR)/libXdmcp.a - XDMCPLIB = -lXdmcp - - DEPPHIGSLIB = $(USRLIBDIR)/libphigs.a - PHIGSLIB = -lphigs - - DEPXBSDLIB = $(USRLIBDIR)/libXbsd.a - XBSDLIB = -lXbsd - - LINTEXTENSIONLIB = $(LINTLIBDIR)/llib-lXext.ln - LINTXLIB = $(LINTLIBDIR)/llib-lX11.ln - LINTXMU = $(LINTLIBDIR)/llib-lXmu.ln - LINTXTOOL = $(LINTLIBDIR)/llib-lXt.ln - LINTXAW = $(LINTLIBDIR)/llib-lXaw.ln - LINTXI = $(LINTLIBDIR)/llib-lXi.ln - LINTPHIGS = $(LINTLIBDIR)/llib-lphigs.ln - - DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB) - - DEPLIBS1 = $(DEPLIBS) - DEPLIBS2 = $(DEPLIBS) - DEPLIBS3 = $(DEPLIBS) - -# ------------------------------------------------------------------------- -# Imake rules for building libraries, programs, scripts, and data files -# rules: $XConsortium: Imake.rules,v 1.126 91/12/30 20:14:35 rws Exp $ - -# ------------------------------------------------------------------------- -# start of Imakefile - - MOTIFINCLUDES = -I/usr/X/include - MOTIFLDOPTIONS = -L/usr/X/lib - MOTIFLIBS = -lXm - -EXTRA_LIBRARIES= -lgen -L/usr/ucblib -lucb -lnsl - - TARFILES = README Imakefile config.h screenblank.txt - TAR = gnutar - COMPRESS = compress - COMPRESS_EXT = Z -# COMPRESS = gzip --verbose --best -# COMPRESS_EXT = gz - -all:: utils/Makefile driver/Makefile hacks/Makefile - cd utils ; $(MAKE) $@ CC="$(CC)" CCOPTIONS="$(CCOPTIONS)" CDEBUGFLAGS="$(CDEBUGFLAGS)" - cd driver ; $(MAKE) $@ CC="$(CC)" CCOPTIONS="$(CCOPTIONS)" CDEBUGFLAGS="$(CDEBUGFLAGS)" - cd hacks ; $(MAKE) $@ CC="$(CC)" CCOPTIONS="$(CCOPTIONS)" CDEBUGFLAGS="$(CDEBUGFLAGS)" - -clean install install.man:: utils/Makefile driver/Makefile hacks/Makefile - cd utils ; $(MAKE) $@ - cd driver ; $(MAKE) $@ - cd hacks ; $(MAKE) $@ - -Makefiles:: utils/Makefile driver/Makefile hacks/Makefile - -utils/Makefile: utils/Imakefile config.h - cd utils ; $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)/utils -driver/Makefile: driver/Imakefile config.h - cd driver ; $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)/driver -hacks/Makefile: hacks/Imakefile config.h - cd hacks ; $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)/hacks - -# This really makes me sick... -tar: utils/Makefile driver/Makefile hacks/Makefile - @NAME=`sed -n \ - 's/[^0-9]*\([0-9]\.[0-9][0-9]*\).*/xscreensaver-\1/p' utils/version.h` ; \ - rm -f $$NAME ; ln -s . $$NAME ; \ - echo creating tar file $${NAME}.tar.$(COMPRESS_EXT)... ; \ - $(TAR) -vchf - `echo $(TARFILES) \ - \`cd driver ; make echo_tarfiles | sed 's|^|driver/|g;s| | driver/|g'\` \ - \`cd utils ; make echo_tarfiles | sed 's|^|utils/|g; s| | utils/|g'\` \ - \`cd hacks ; make echo_tarfiles | sed 's|^|hacks/|g; s| | hacks/|g'\` \ - | sed "s|^|$$NAME/|g; s| | $$NAME/|g" ` \ - | $(COMPRESS) > $${NAME}.tar.$(COMPRESS_EXT) ; \ - rm $$NAME - -# ------------------------------------------------------------------------- -# common rules for all Makefiles - do not edit - -emptyrule:: - -clean:: - $(RM_CMD) "#"* - -Makefile:: - -@if [ -f Makefile ]; then set -x; \ - $(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \ - else exit 0; fi - $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR) - -tags:: - $(TAGS) -w *.[ch] - $(TAGS) -xw *.[ch] > TAGS - -# ------------------------------------------------------------------------- -# empty rules for directories that do not have SUBDIRS - do not edit - -install:: - @echo "install in $(CURRENT_DIR) done" - -install.man:: - @echo "install.man in $(CURRENT_DIR) done" - -Makefiles:: - -includes:: - -# ------------------------------------------------------------------------- -# dependencies generated by makedepend - diff --git a/README b/README index 3e2fa163..17a50260 100644 --- a/README +++ b/README @@ -1,7 +1,9 @@ -See config.h for configuration parameters. To build, do the usual: +To build: - xmkmf ; make ; make install ; make install.man + - read the comments in `config.h' and edit it as appropriate + - xmkmf ; make + - make install install.man The xscreensaver program waits until the keyboard and mouse have been idle for a period, and then runs a graphics demo chosen at random. It turns off @@ -20,7 +22,7 @@ xautolock programs is the ease with which new graphics hacks can be installed: you don't need to recompile this program to add a new display mode, you just change some resource settings. Any program which can be invoked in such a way that it draws on the root window of the screen can -now be used as a screensaver without modification [*]. The programs that +now be used as a screensaver without modification. The programs that are being run as screensavers don't need to have any special knowledge about what it means to be a screensaver. @@ -48,6 +50,7 @@ window, which are pointed at by the screensaver's default resource settings. halo - Random circular patterns. pyro - Fireworks. Looks a lot like the version in xlock. hopalong - Fractals. I snarfed this code from xlock. + flame - Fractals. Also from xlock. noseguy - A guy with a big nose wanders around the screen saying things. I snarfed this code from xnlock. maze - This is the X maze demo modified to take a -root option @@ -68,17 +71,19 @@ Other reasonable things to use as screensavers, if you have them, are kaleid -root - qix-like kaleidescope patterns xfishtank -c black -d -r 1 - fish (use version 2.0 or later) -You can get all of these from export.lcs.mit.edu. If you know of (or write) -any other interesting programs that can be used as screensavers, please let -me know! +You can get all of these from the contrib directory on ftp.x.org. If you +know of (or write) any other interesting programs that can be used as +screensavers, please let me know! -- Jamie Zawinski -[*] It may be necessary to include "vroot.h" in the program, but that would -be necessary for it to work with virtual-root window managers anyway. - - +Changes since 1.20: Fixed bug in color blitspin; added default image. + Added diagnostics to noseguy. Fixed off-by-one + error in flame. Added some missing casts. +Changes since 1.18: Added `flame' hack. + Fixed a minor Motif dialog text field bug. + Fixed yet another XPointer-not-defined-in-R4 bug. Changes since 1.17: Added support for shadow password files. Fixed some Motif-related locking bugs. Added diagnostics when locking is disabled. diff --git a/config.h b/config.h index dd54ba38..691c98c6 100644 --- a/config.h +++ b/config.h @@ -8,24 +8,24 @@ * Installing it is the morally superior thing to do, but xscreensaver will * work without it. */ -/* #define HAVE_XIDLE */ +#define HAVE_XIDLE /* Uncomment the following line if you have the XPM library installed. * Some of the demos can make use of this. */ -#define HAVE_XPM +/* #define HAVE_XPM */ /* Uncomment the following line if you don't have Motif. If you don't have * Motif, then the screensaver won't have any dialog boxes, which means * that it won't be compiled with support for demo-mode or display-locking. */ -/*#define NO_MOTIF */ +/* #define NO_MOTIF */ /* Uncomment the following line if for some reason the locking code doesn't * work (for example, if you don't have the crypt() system call, or if you * don't use standard passwd files.) */ -#define NO_LOCKING +/* #define NO_LOCKING */ /* Uncomment the following line if your system doesn't have the select() * system call. @@ -46,14 +46,14 @@ * that is, the passwords live in /etc/shadow instead of /etc/passwd, * and one reads them with getspnam() instead of getpwnam(). */ -#define HAVE_SHADOW +/* #define HAVE_SHADOW */ /* You may need to edit these to correspond to where Motif is installed. */ #ifndef NO_MOTIF - MOTIFINCLUDES = -I/usr/X/include - MOTIFLDOPTIONS = -L/usr/X/lib - MOTIFLIBS = -lXm + MOTIFINCLUDES = /* -I... */ + MOTIFLDOPTIONS = /* -L... */ + MOTIFLIBS = -lXm #endif /* On some systems, only programs running as root can use the getpwent() @@ -86,5 +86,8 @@ #else /* r5 or better */ # define R5ISMS #endif -/*EXTRA_LIBRARIES=-L/usr/ucblib -lucb -lnsl*/ -EXTRA_LIBRARIES= -lgen -L/usr/ucblib -lucb -lnsl + +/* It seems that some versions of Sun's dynamic X libraries are broken; if + you get link errors about _get_wmShellWidgetClass being undefined, try + adding -Bstatic to the link command. + */ diff --git a/driver/Imakefile b/driver/Imakefile index 4343119b..d0359e5d 100644 --- a/driver/Imakefile +++ b/driver/Imakefile @@ -57,7 +57,7 @@ INCLUDES = -I$(UTILS) MOTIF_INC DEFINES = SETUID_DEF XIDLE_DEF MOTIF_DEF LOCKING_DEF SHADOW_DEF R5ISMS SAVERLIBS = $(XMULIB) $(XTOOLLIB) $(EXTENSIONLIB) $(XLIB) -lm - COMMLIBS = $(XLIB) -lm -Bstatic -lcrypt -Bdynamic + COMMLIBS = $(XLIB) -lm UTIL_SRCS = $(UTILS)/resources.c $(UTILS)/fade.c $(UTILS)/usleep.c UTIL_OBJS = $(UTILS)/resources.o $(UTILS)/fade.o $(UTILS)/usleep.o DBOX_SRCS = dialogs.c demo.c lock.c diff --git a/driver/Makefile b/driver/Makefile deleted file mode 100644 index ef75851b..00000000 --- a/driver/Makefile +++ /dev/null @@ -1,508 +0,0 @@ -# Makefile generated by imake - do not edit! -# $XConsortium: imake.c,v 1.65 91/07/25 17:50:17 rws Exp $ -# -# The cpp used on this machine replaces all newlines and multiple tabs and -# spaces in a macro expansion with a single space. Imake tries to compensate -# for this, but is not always successful. -# - -# ------------------------------------------------------------------------- -# Makefile generated from "Imake.tmpl" and -# $XConsortium: Imake.tmpl,v 1.139 91/09/16 08:52:48 rws Exp $ -# -# Platform-specific parameters may be set in the appropriate .cf -# configuration files. Site-specific parameters should be set in the file -# site.def. Full rebuilds are recommended if any parameters are changed. -# -# If your C preprocessor does not define any unique symbols, you will need -# to set BOOTSTRAPCFLAGS when rebuilding imake (usually when doing -# "make World" the first time). -# - -# ------------------------------------------------------------------------- -# site-specific configuration parameters that need to come before -# the platform-specific parameters - edit site.def to change - -# site: $XConsortium: site.def,v 1.2 91/07/30 20:26:44 rws Exp $ - - ALLINCLUDES = $(STD_INCLUDES) $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) - -# ------------------------------------------------------------------------- -# platform-specific configuration parameters - edit usl.cf to change - -MEMUTILDEF = -MEMUTILLIB = -INC = $(TOOLS)/usr/include - - YFLAGS = - STRIP = $(PFX)strip - AWK = /usr/bin/awk - CD = cd - LS = /bin/ls - PR = /bin/pr - CHMOD = $(CH)chmod - CHOWN = $(CH)chown - CHGRP = $(CH)chgrp - SED = /bin/sed - MCS = $(PFX)mcs -d - - PROTO_DEFINES = -LOCAL_LIBRARIES = $(XLIB) - SYS_LIBRARIES = - - USE_INSTALLED = - SYS_TO_BUILD = - ARCHIVE_ONLY = - - USE_INSTALLED = -DUseInstalled - -BUILD_DEFINES = $(SYS_TO_BUILD) $(USE_INSTALLED) $(ARCHIVE_ONLY) - -# :: end of BUILD_DEFINES set-up - - UNIX_REL = -DSVR4 - -MAKEDEFINES = $(STD_DEFINES) $(BUILD_DEFINES) $(UNIX_REL) $(CCS_USED) - -# until we use R5 server, use R4 font structures - -# operating system: OSName - -INSTALLFLAGS = -m 0644 - -# $XConsortium: sv4Lib.rules,v 1.8 91/07/19 15:38:53 rws Exp $ - - FURCCOPTIONS = -Xa -W2,-A -Wa,-r - FUR = $(PFX)fur - -INCLUDE_EXTENSION = $(INCDIR)/extensions - - TOP_INCLUDES = - -# ------------------------------------------------------------------------- -# site-specific configuration parameters that go after -# the platform-specific parameters - edit site.def to change - -# site: $XConsortium: site.def,v 1.2 91/07/30 20:26:44 rws Exp $ - -# -# ProjectRoot is where you want to install the binaries, libs, fonts etc -# - - PROJECTROOT = $(ROOT)/$(MACH)/usr/X - XWINHOME = /usr/X - XWINLIBDIR = $(XWINHOME)/lib - XWINBINDIR = $(XWINHOME)/bin - - USLCLIENTSRC = $(TOP)/uslclients - DESKTOPDIR = $(PROJECTROOT)/desktop - DTADMDIR = $(PROJECTROOT)/adm - XDEFAULTS = $(PROJECTROOT)/defaults - - FONTINCSRC = $(FONTSRC)/include - FONTLIBINCSRC = $(FONTSRC)/lib/include - FOLIOLIBSRC = $(FONTSRC)/lib/folio - FONTLIBSRC = $(FONTSRC)/lib/font - BITMAPFONTSRC = $(FONTSRC)/lib/bitmap - FONTSLIBSRC = $(FONTSRC)/lib/ - XOLSRC = $(LIBSRC)/Xol - XOLLIBSRC = $(LIBSRC)/Xol -BITMAPLIBS_TO_BUILD = libbitmap.a libbitmap.so -FONTLIBS_TO_BUILD = libfont.a libfont.so - - USL_DEFINES = -DLIBDIR=\"$(XWINLIBDIR)\" -DDESTDIR=\"$(XWINHOME)\" - - DEFINES = $(USL_DEFINES) - - SHELL = /bin/sh - - TOP = . - CURRENT_DIR = ./driver - - AR = $(PFX)ar rv - BOOTSTRAPCFLAGS = -Dusl - CC = $(PFX)cc - AS = $(PFX)as - - COMPRESS = compress - CPP = $(TOOLS)/usr/ccs/lib/$(PFX)cpp $(STD_CPP_DEFINES) - PREPROCESSCMD = $(PFX)cc -E $(STD_CPP_DEFINES) - INSTALL = /usr/ucb/install - LD = $(PFX)ld - LINT = $(PFX)lint - LINTLIBFLAG = -o - LINTOPTS = -ax - LN = /bin/ln -s - MAKE = $(PFX)make - MV = /bin/mv - CP = /bin/cp - HCC = /bin/cc - SED = /bin/sed - - RM = /bin/rm -f - TROFF = psroff - MSMACROS = -ms - TBL = tbl - EQN = eqn - STD_INCLUDES = -I. - STD_CPP_DEFINES = -DUSL -DSVR4 -DSYSV -DI18N $(MEMUTILDEF) - STD_DEFINES = -DUSL -DSVR4 -DSYSV -DI18N $(MEMUTILDEF) - EXTRA_LOAD_FLAGS = - EXTRA_LIBRARIES = -lnsl -ldl $(MEMUTILLIB) - TAGS = ctags - - SHAREDCODEDEF = - SHLIBDEF = - - PROTO_DEFINES = -DFUNCPROTO=15 -DNARROWPROTO - - INSTPGMFLAGS = -s - - INSTBINFLAGS = -m 0755 - INSTUIDFLAGS = -m 4755 - INSTLIBFLAGS = -m 0644 - INSTINCFLAGS = -m 0444 - INSTMANFLAGS = -m 0444 - INSTDATFLAGS = -m 0444 - INSTKMEMFLAGS = -m 4755 - - PROJECTROOT = $(ROOT)/$(MACH)/usr/X - - CDEBUGFLAGS = - CCOPTIONS = -Xa -W2,-A - - ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(STD_INCLUDES) - ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(EXTRA_DEFINES) $(PROTO_DEFINES) $(DEFINES) - CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(ALLDEFINES) - LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) - - LDLIBS = $(SYS_LIBRARIES) $(EXTRA_LIBRARIES) - - LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(LOCAL_LDFLAGS) -T 0x8300000 -L$(USRLIBDIR) - - LDCOMBINEFLAGS = -r - DEPENDFLAGS = - - MACROFILE = usl.cf - RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut - - IMAKE_DEFINES = - - IRULESRC = $(CONFIGDIR) - IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES) - - ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/Imake.rules \ - $(IRULESRC)/Project.tmpl $(IRULESRC)/site.def \ - $(IRULESRC)/$(MACROFILE) $(EXTRA_ICONFIGFILES) - -# ------------------------------------------------------------------------- -# X Window System Build Parameters -# $XConsortium: Project.tmpl,v 1.142 92/01/25 16:44:02 rws Exp $ - -# ------------------------------------------------------------------------- -# X Window System make variables; this need to be coordinated with rules - - PATHSEP = / - USRLIBDIR = $(ROOT)/$(MACH)/usr/X/lib - BINDIR = $(ROOT)/$(MACH)/usr/X/bin - INCROOT = $(ROOT)/$(MACH)/usr/X/include - BUILDINCROOT = $(TOP) - BUILDINCDIR = $(BUILDINCROOT)/X11 - BUILDINCTOP = .. - INCDIR = $(INCROOT)/X11 - ADMDIR = /usr/adm - LIBDIR = $(USRLIBDIR) - CONFIGDIR = $(LIBDIR)/config - LINTLIBDIR = $(USRLIBDIR)/lint - - FONTDIR = $(LIBDIR)/fonts - XINITDIR = $(LIBDIR)/xinit - XDMDIR = $(LIBDIR)/xdm - TWMDIR = $(LIBDIR)/twm - MANPATH = $(ROOT)/$(MACH)/usr/X/man - MANSOURCEPATH = $(MANPATH)/man - MANSUFFIX = n - LIBMANSUFFIX = 3 - MANDIR = $(MANSOURCEPATH)$(MANSUFFIX) - LIBMANDIR = $(MANSOURCEPATH)$(LIBMANSUFFIX) - NLSDIR = $(LIBDIR)/nls - PEXAPIDIR = $(LIBDIR)/PEX - XAPPLOADDIR = $(LIBDIR)/app-defaults - FONTCFLAGS = -L -l -t - - INSTAPPFLAGS = $(INSTDATFLAGS) - - IMAKE = imake - DEPEND = makedepend - RGB = rgb - - FONTC = bdftosnf - - MKFONTDIR = mkfontdir - MKDIRHIER = /bin/sh $(BINDIR)/mkdirhier - - CONFIGSRC = $(TOP)/config - DOCUTILSRC = $(TOP)/doc/util - CLIENTSRC = $(TOP)/clients - DEMOSRC = $(TOP)/demos - LIBSRC = $(TOP)/lib - FONTSRC = $(TOP)/fonts - INCLUDESRC = $(TOP)/X11 - SERVERSRC = $(TOP)/server - UTILSRC = $(TOP)/util - SCRIPTSRC = $(UTILSRC)/scripts - EXAMPLESRC = $(TOP)/examples - CONTRIBSRC = $(TOP)/../contrib - DOCSRC = $(TOP)/doc - RGBSRC = $(TOP)/rgb - DEPENDSRC = $(UTILSRC)/makedepend - IMAKESRC = $(CONFIGSRC) - XAUTHSRC = /usr/X/lib - XLIBSRC = /usr/X/lib - XMUSRC = /usr/X/lib - TOOLKITSRC = /usr/X/lib - AWIDGETSRC = /usr/X/lib - OLDXLIBSRC = /usr/X/lib - XDMCPLIBSRC = /usr/X/lib - - BDFTOSNFSRC = $(FONTSRC)/clients/bdftosnf - - MKFONTDIRSRC = $(FONTSRC)/clients/mkfontdir - FSLIBSRC = $(FONTSRC)/lib/fs - FONTSERVERSRC = $(FONTSRC)/server - EXTENSIONSRC = $(TOP)/extensions - XILIBSRC = $(EXTENSIONSRC)/lib/xinput - XTESTLIBSRC = $(EXTENSIONSRC)/lib/xtest - PHIGSLIBSRC = $(EXTENSIONSRC)/lib/PEX - -# $XConsortium: sv4Lib.tmpl,v 1.6 92/01/25 16:46:55 rws Exp $ - -# -# USL: BEGIN -# The default revision numbers from MIT is 5. But since USL has to be -# backward compatible, so force it to 1 -# - - SOXOLREV = 1 - SOOLITREV = 1 - SOOLITMREV = 1 - SOOLITOREV = 1 - SODTREV = 1 - -# USL: END - -SHLIBLDFLAGS = -G -z text -PICFLAGS = -K PIC - - DEPEXTENSIONLIB = - EXTENSIONLIB = -lXext - - DEPXLIB = $(DEPEXTENSIONLIB) - XLIB = $(EXTENSIONLIB) -lX11 - - DEPXMULIB = $(USRLIBDIR)/libXmu.so.$(SOXMUREV) - - XMULIB = -lXmu - - DEPOLDXLIB = - OLDXLIB = -loldX - - DEPXTOOLLIB = - XTOOLLIB = -lXt - - DEPXOLLIB = $(USRLIBDIR)/libOlit.so.$(SOXOLREV) - XOLLIB = -lOlit - - DEPXAWLIB = - XAWLIB = -lXaw - - DEPXILIB = - XILIB = -lXi - - DEPXTESTLIB = - XTESTLIB = -lXtst - -# -# USL: BEGIN -# - -XHOSTLOC = $(DESTDIR)/$(LIBDIR) -SHLIBFLAGS = -L $(ROOT)/$(MACH)/usr/lib -L $(ROOT)/$(MACH)/lib -L $(XHOSTLOC) - -# -# USL: END -# - - SOXLIBREV = 1 - SOXTREV = 1 - SOXAWREV = 1 - SOOLDXREV = 1 - SOXMUREV = 1 - SOXEXTREV = 1 - SOXINPUTREV = 1 - SOXTESTREV = 1 - SOXTRAPREV = 1 - - DEPXAUTHLIB = $(USRLIBDIR)/libXau.a - XAUTHLIB = -lXau - DEPXDMCPLIB = $(USRLIBDIR)/libXdmcp.a - XDMCPLIB = -lXdmcp - - DEPPHIGSLIB = $(USRLIBDIR)/libphigs.a - PHIGSLIB = -lphigs - - DEPXBSDLIB = $(USRLIBDIR)/libXbsd.a - XBSDLIB = -lXbsd - - LINTEXTENSIONLIB = $(LINTLIBDIR)/llib-lXext.ln - LINTXLIB = $(LINTLIBDIR)/llib-lX11.ln - LINTXMU = $(LINTLIBDIR)/llib-lXmu.ln - LINTXTOOL = $(LINTLIBDIR)/llib-lXt.ln - LINTXAW = $(LINTLIBDIR)/llib-lXaw.ln - LINTXI = $(LINTLIBDIR)/llib-lXi.ln - LINTPHIGS = $(LINTLIBDIR)/llib-lphigs.ln - - DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB) - - DEPLIBS1 = $(DEPLIBS) - DEPLIBS2 = $(DEPLIBS) - DEPLIBS3 = $(DEPLIBS) - -# ------------------------------------------------------------------------- -# Imake rules for building libraries, programs, scripts, and data files -# rules: $XConsortium: Imake.rules,v 1.126 91/12/30 20:14:35 rws Exp $ - -# ------------------------------------------------------------------------- -# start of Imakefile - - MOTIFINCLUDES = -I/usr/X/include - MOTIFLDOPTIONS = -L/usr/X/lib - MOTIFLIBS = -lXm - -EXTRA_LIBRARIES= -lgen -L/usr/ucblib -lucb -lnsl - - UTILS = ../utils - INCLUDES = -I$(UTILS) $(MOTIFINCLUDES) - DEFINES = -DNO_LOCKING -DHAVE_SHADOW - SAVERLIBS = $(XMULIB) $(XTOOLLIB) $(EXTENSIONLIB) $(XLIB) -lm - COMMLIBS = $(XLIB) -lm -Bstatic -lcrypt -Bdynamic - UTIL_SRCS = $(UTILS)/resources.c $(UTILS)/fade.c $(UTILS)/usleep.c - UTIL_OBJS = $(UTILS)/resources.o $(UTILS)/fade.o $(UTILS)/usleep.o - DBOX_SRCS = dialogs.c demo.c lock.c - DBOX_OBJS = dialogs.o demo.o lock.o - SAVERSRCS = xscreensaver.c visual.c timers.c subprocs.c windows.c - SAVEROBJS = xscreensaver.o visual.o timers.o subprocs.o windows.o - SRCS1 = $(SAVERSRCS) $(DBOX_SRCS) $(UTILS)/xroger.c $(UTIL_SRCS) - OBJS1 = $(SAVEROBJS) $(DBOX_OBJS) $(UTILS)/xroger.o $(UTIL_OBJS) - COMMSRCS = xscreensaver-command.c - COMMOBJS = xscreensaver-command.o - SRCS2 = $(COMMSRCS) - OBJS2 = $(COMMOBJS) - MEN = xscreensaver.man xscreensaver-command.man - TARFILES = README Imakefile $(SAVERSRCS) $(DBOX_SRCS) $(COMMSRCS) \ - xscreensaver.h XScreenSaver.ad dialogs.xd $(MEN) .gdbinit - -all:: xscreensaver xscreensaver-command - -echo_tarfiles: - @echo $(TARFILES) - -PROGRAMS = xscreensaver xscreensaver-command - - OBJS = $(OBJS1) $(OBJS2) $(OBJS3) - SRCS = $(SRCS1) $(SRCS2) $(SRCS3) - -all:: $(PROGRAMS) - -xscreensaver: $(OBJS1) $(DEPLIBS1) - $(RM) $@ - $(CC) -o $@ $(LDOPTIONS) $(OBJS1) $(MOTIFLDOPTIONS) $(MOTIFLIBS) $(SAVERLIBS) $(LDLIBS) $(EXTRA_LOAD_FLAGS) - -install:: xscreensaver - @if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi - $(INSTALL) -c $(INSTPGMFLAGS) xscreensaver $(DESTDIR)$(BINDIR) - -install.man:: xscreensaver.man - @if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi - $(INSTALL) -c $(INSTMANFLAGS) xscreensaver.man $(DESTDIR)$(MANDIR)/xscreensaver.$(MANSUFFIX) - -depend:: - $(DEPEND) $(DEPENDFLAGS) -s "# DO NOT DELETE" -- $(ALLDEFINES) $(DEPEND_DEFINES) -- $(SRCS) - -lint: - $(LINT) $(LINTFLAGS) $(SRCS) $(LINTLIBS) -lint1: - $(LINT) $(LINTFLAGS) $(FILE) $(LINTLIBS) - -clean:: - $(RM) $(PROGRAMS) - -xscreensaver-command: $(OBJS2) $(DEPLIBS2) - $(RM) $@ - $(CC) -o $@ $(LDOPTIONS) $(OBJS2) $(COMMLIBS) $(LDLIBS) $(EXTRA_LOAD_FLAGS) - -install:: xscreensaver-command - @if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi - $(INSTALL) -c $(INSTPGMFLAGS) xscreensaver-command $(DESTDIR)$(BINDIR) - -install.man:: xscreensaver-command.man - @if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi - $(INSTALL) -c $(INSTMANFLAGS) xscreensaver-command.man $(DESTDIR)$(MANDIR)/xscreensaver-command.$(MANSUFFIX) - -install:: XScreenSaver.ad - @if [ -d $(DESTDIR)$(XAPPLOADDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(XAPPLOADDIR)); fi - $(INSTALL) -c $(INSTAPPFLAGS) XScreenSaver.ad $(DESTDIR)$(XAPPLOADDIR)/XScreenSaver - -xscreensaver.o: XScreenSaver.ad.h $(UTILS)/version.h -xscreensaver-command.o: $(UTILS)/version.h - -demo.o: $(UTILS)/version.h -lock.o: $(UTILS)/version.h - -depend:: XScreenSaver.ad.h - -XScreenSaver.ad.h: XScreenSaver.ad - $(UTILS)/ad2c XScreenSaver.ad > XScreenSaver.ad.h - -clean:: - $(RM) XScreenSaver.ad.h - -# ------------------------------------------------------------------------- -# common rules for all Makefiles - do not edit - -emptyrule:: - -clean:: - $(RM_CMD) "#"* - -Makefile:: - -@if [ -f Makefile ]; then set -x; \ - $(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \ - else exit 0; fi - $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR) - -tags:: - $(TAGS) -w *.[ch] - $(TAGS) -xw *.[ch] > TAGS - -# ------------------------------------------------------------------------- -# empty rules for directories that do not have SUBDIRS - do not edit - -install:: - @echo "install in $(CURRENT_DIR) done" - -install.man:: - @echo "install.man in $(CURRENT_DIR) done" - -Makefiles:: - -includes:: - -# ------------------------------------------------------------------------- -# dependencies generated by makedepend - diff --git a/driver/XScreenSaver.ad b/driver/XScreenSaver.ad index a3312614..5ec4249a 100644 --- a/driver/XScreenSaver.ad +++ b/driver/XScreenSaver.ad @@ -37,7 +37,8 @@ decayscreen -root \n\ hypercube -root \n\ halo -root \n\ - maze -root \n + maze -root \n\ + flame -root \n ! Programs on this list are run only for monochrome screens. *monoPrograms: qix -root -linear -count 5 -size 200 -spread 30 \ @@ -129,6 +130,7 @@ *resourcesDone.labelString: Done *resourcesCancel.labelString: Cancel +*passwdDialog.title: Password *passwdLabel1.labelString: XScreenSaver %s *passwdLabel2.labelString: This display is locked. *passwdLabel3.labelString: Please type %s's password to unlock it. diff --git a/driver/demo.c b/driver/demo.c index ec957243..0603a03a 100644 --- a/driver/demo.c +++ b/driver/demo.c @@ -23,7 +23,10 @@ #include "xscreensaver.h" #include -extern Time timeout, cycle, lock_timeout, passwd_timeout; +extern Time timeout, cycle, lock_timeout; +#ifndef NO_LOCKING +extern Time passwd_timeout; +#endif extern int fade_seconds, fade_ticks; extern Bool verbose_p, install_cmap_p, fade_p, unfade_p; extern Bool lock_p, locking_disabled_p; @@ -220,7 +223,7 @@ pop_up_dialog_box (dialog, form, where) XtSetArg (av [ac], XtNoverrideRedirect, True); ac++; XtSetArg (av [ac], XmNdefaultPosition, False); ac++; /* I wonder whether this does anything useful? */ -/* XtSetArg (av [ac], XmNdialogStyle, XmDIALOG_SYSTEM_MODAL); ac++; */ + /* XtSetArg (av [ac], XmNdialogStyle, XmDIALOG_SYSTEM_MODAL); ac++; */ XtSetValues (dialog, av, ac); XtSetValues (form, av, ac); XtManageChild (form); @@ -259,16 +262,16 @@ make_screenhack_dialog (parent, hacks) XtFree (label); XtAddCallback (demo_list, XmNbrowseSelectionCallback, select_cb, - hacks); + (XtPointer) hacks); XtAddCallback (demo_list, XmNdefaultActionCallback, select_cb, - hacks); + (XtPointer) hacks); XtAddCallback (text_line, XmNactivateCallback, text_cb, 0); XtAddCallback (next, XmNactivateCallback, next_cb, 0); XtAddCallback (prev, XmNactivateCallback, prev_cb, 0); XtAddCallback (done, XmNactivateCallback, done_cb, 0); XtAddCallback (restart, XmNactivateCallback, restart_cb, 0); - XtAddCallback (edit, XmNactivateCallback, edit_cb, parent); + XtAddCallback (edit, XmNactivateCallback, edit_cb, (XtPointer) parent); for (; *hacks; hacks++) { @@ -386,7 +389,9 @@ res_done_cb (button, client_data, call_data) timeout = res.timeout * 1000; cycle = res.cycle * 1000; lock_timeout = res.lock_time * 1000; +#ifndef NO_LOCKING passwd_timeout = res.passwd_time * 1000; +#endif fade_seconds = res.secs; fade_ticks = res.ticks; verbose_p = res.verb; @@ -410,7 +415,8 @@ make_resources_dialog (parent) XtAddCallback (res_cancel, XmNactivateCallback, res_cancel_cb, 0); #define CB(widget,type,slot) \ - XtAddCallback ((widget), XmNvalueChangedCallback, (type), (slot)) + XtAddCallback ((widget), XmNvalueChangedCallback, (type), \ + (XtPointer) (slot)) CB (timeout_text, res_min_cb, &res.timeout); CB (cycle_text, res_min_cb, &res.cycle); CB (fade_text, res_sec_cb, &res.secs); @@ -481,7 +487,9 @@ pop_resources_dialog () res.timeout = timeout / 1000; res.cycle = cycle / 1000; res.lock_time = lock_timeout / 1000; +#ifndef NO_LOCKING res.passwd_time = passwd_timeout / 1000; +#endif res.secs = fade_seconds; res.ticks = fade_ticks; res.verb = verbose_p; diff --git a/driver/lock.c b/driver/lock.c index 92137aa8..4bf6a92f 100644 --- a/driver/lock.c +++ b/driver/lock.c @@ -5,7 +5,7 @@ * the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or + * software for any purpose. It is provided "as is" without express or * implied warranty. */ @@ -34,9 +34,9 @@ #include "xscreensaver.h" -Time passwd_timeout; #ifndef NO_LOCKING +Time passwd_timeout; extern char *screensaver_version; extern char *progname; @@ -54,14 +54,11 @@ extern Widget passwd_cancel; extern create_passwd_dialog (); -static enum -{ - pw_read, pw_ok, pw_fail, pw_cancel, pw_time -} passwd_state; -static char typed_passwd[1024]; +static enum { pw_read, pw_ok, pw_fail, pw_cancel, pw_time } passwd_state; +static char typed_passwd [1024]; -static char root_passwd[255]; -static char user_passwd[255]; +static char root_passwd [255]; +static char user_passwd [255]; #ifdef HAVE_SHADOW # define PWTYPE struct spwd * @@ -79,44 +76,51 @@ lock_init () Bool ok = True; char *u; PWTYPE p = GETPW ("root"); - if (p && p->PWSLOT && p->PWSLOT[0] != '*') strcpy (root_passwd, p->PWSLOT); else - { - fprintf (stderr, "%s: couldn't get root's password\n", progname); - strcpy (root_passwd, "*"); - } + { + fprintf (stderr, "%s: couldn't get root's password\n", progname); + strcpy (root_passwd, "*"); + } /* It has been reported that getlogin() returns the wrong user id on some very old SGI systems... */ - u = (char *) getlogin (); + u = getlogin (); if (u) p = GETPW (u); else - { - /* getlogin() fails if not attached to a terminal; + { + /* getlogin() fails if not attached to a terminal; in that case, use getpwuid(). */ - p = getpwuid (getuid ()); - u = p->pw_name; - } + struct passwd *p2 = getpwuid (getuid ()); + u = p2->pw_name; +#ifdef HAVE_SHADOW + p = GETPW (u); +#else + p = p2; +#endif + } - if (p && p->PWSLOT && p->PWSLOT[0] != '*') + if (p && p->PWSLOT && + /* p->PWSLOT[0] != '*' */ /* sensible */ + (strlen (p->PWSLOT) > 4) /* solaris */ + ) strcpy (user_passwd, p->PWSLOT); else - { - fprintf (stderr, "%s: couldn't get password of \"%s\"\n", progname, u); - strcpy (user_passwd, "*"); - ok = False; - } + { + fprintf (stderr, "%s: couldn't get password of \"%s\"\n", progname, u); + strcpy (user_passwd, "*"); + ok = False; + } return ok; } + + -#ifdef XmVersion -# if (XmVersion >= 1002) /* The `destroy' bug apears to be fixed as */ -# define DESTROY_WORKS /* of Motif 1.2.1, but the `verify-callback' */ -# endif /* bug is still present. */ -#endif +#if (XmVersion >= 1002) /* The `destroy' bug apears to be fixed as */ +# define DESTROY_WORKS /* of Motif 1.2.1, but the `verify-callback' */ +#endif /* bug is still present. */ static void passwd_cancel_cb (button, client_data, call_data) @@ -131,13 +135,11 @@ passwd_done_cb (button, client_data, call_data) Widget button; XtPointer client_data, call_data; { - if (passwd_state != pw_read) - return; /* already done */ - + if (passwd_state != pw_read) return; /* already done */ if (!strcmp ((char *) crypt (typed_passwd, user_passwd), user_passwd)) passwd_state = pw_ok; /* do not allow root to have empty passwd */ - else if (typed_passwd[0] && + else if (typed_passwd [0] && !strcmp ((char *) crypt (typed_passwd, root_passwd), root_passwd)) passwd_state = pw_ok; else @@ -146,7 +148,7 @@ passwd_done_cb (button, client_data, call_data) #ifdef VERIFY_CALLBACK_WORKS -/* #### It looks to me like adding any modifyVerify callback causes + /* #### It looks to me like adding any modifyVerify callback causes #### Motif 1.1.4 to free the the TextF_Value() twice. I can't see #### the bug in the Motif source, but Purify complains, even if #### check_passwd_cb() is a no-op. @@ -156,7 +158,7 @@ passwd_done_cb (button, client_data, call_data) #### Probably this block is the text field's text. */ -static void +static void check_passwd_cb (button, client_data, call_data) Widget button; XtPointer client_data, call_data; @@ -166,40 +168,37 @@ check_passwd_cb (button, client_data, call_data) if (passwd_state != pw_read) return; else if (vcb->reason == XmCR_ACTIVATE) - { - passwd_done_cb (0, 0, 0); - } + { + passwd_done_cb (0, 0, 0); + } else if (vcb->text->length > 1) /* don't allow "paste" operations */ - { - vcb->doit = False; - } + { + vcb->doit = False; + } else if (vcb->text->ptr != 0) - { - int i; - - strncat (typed_passwd, vcb->text->ptr, vcb->text->length); - typed_passwd[vcb->endPos + vcb->text->length] = 0; - for (i = 0; i < vcb->text->length; i++) - vcb->text->ptr[i] = '*'; - } + { + int i; + strncat (typed_passwd, vcb->text->ptr, vcb->text->length); + typed_passwd [vcb->endPos + vcb->text->length] = 0; + for (i = 0; i < vcb->text->length; i++) + vcb->text->ptr [i] = '*'; + } } #else /* !VERIFY_CALLBACK_WORKS */ -static void keypress (); -static void backspace (); -static void kill_line (); -static void done (); +static void keypress(); +static void backspace(); +static void kill_line(); +static void done(); -static XtActionsRec actions[] = -{ - {"keypress", keypress}, - {"backspace", backspace}, - {"kill_line", kill_line}, - {"done", done} -}; +static XtActionsRec actions[] = {{"keypress", keypress}, + {"backspace", backspace}, + {"kill_line", kill_line}, + {"done", done} + }; -#if 0 /* oh fuck, why doesn't this work? */ +#if 0 /* oh fuck, why doesn't this work? */ static char translations[] = "\ BackSpace: backspace()\n\ Delete: backspace()\n\ @@ -210,10 +209,8 @@ CtrlJ: done()\n\ CtrlM: done()\n\ : keypress()\n\ "; - #else static char translations[] = ":keypress()"; - #endif static void @@ -224,49 +221,23 @@ keypress (w, event, argv, argc) Cardinal *argc; { int i, j; - char s[sizeof (typed_passwd)]; + char s [sizeof (typed_passwd)]; int size = XLookupString ((XKeyEvent *) event, s, sizeof (s), 0, 0); - - if (size != 1) - return; + if (size != 1) return; /* hack because I can't get translations to dance to my tune... */ - if (*s == '\010') - { - backspace (w, event, argv, argc); - return; - } - if (*s == '\177') - { - backspace (w, event, argv, argc); - return; - } - if (*s == '\025') - { - kill_line (w, event, argv, argc); - return; - } - if (*s == '\030') - { - kill_line (w, event, argv, argc); - return; - } - if (*s == '\012') - { - done (w, event, argv, argc); - return; - } - if (*s == '\015') - { - done (w, event, argv, argc); - return; - } + if (*s == '\010') { backspace (w, event, argv, argc); return; } + if (*s == '\177') { backspace (w, event, argv, argc); return; } + if (*s == '\025') { kill_line (w, event, argv, argc); return; } + if (*s == '\030') { kill_line (w, event, argv, argc); return; } + if (*s == '\012') { done (w, event, argv, argc); return; } + if (*s == '\015') { done (w, event, argv, argc); return; } i = j = strlen (typed_passwd); - typed_passwd[i] = *s; - s[++i] = 0; + typed_passwd [i] = *s; + s [++i] = 0; while (i--) - s[i] = '*'; + s [i] = '*'; XmTextFieldSetString (passwd_text, s); XmTextFieldSetInsertionPosition (passwd_text, j + 1); } @@ -278,16 +249,15 @@ backspace (w, event, argv, argc) String *argv; Cardinal *argc; { - char s[sizeof (typed_passwd)]; + char s [sizeof (typed_passwd)]; int i = strlen (typed_passwd); int j = i; - if (i == 0) return; - typed_passwd[--i] = 0; - s[i] = 0; + typed_passwd [--i] = 0; + s [i] = 0; while (i--) - s[i] = '*'; + s [i] = '*'; XmTextFieldSetString (passwd_text, s); XmTextFieldSetInsertionPosition (passwd_text, j + 1); } @@ -321,14 +291,12 @@ format_into_label (widget, string) char *string; { char *label; - char buf[255]; + char buf [255]; XmString xm_label = 0; XmString new_xm_label; Arg av[10]; int ac = 0; - - XtSetArg (av[ac], XmNlabelString, &xm_label); - ac++; + XtSetArg (av [ac], XmNlabelString, &xm_label); ac++; XtGetValues (widget, av, ac); XmStringGetLtoR (xm_label, XmSTRING_DEFAULT_CHARSET, &label); if (!strcmp (label, XtName (widget))) @@ -337,8 +305,7 @@ format_into_label (widget, string) sprintf (buf, label, string); new_xm_label = XmStringCreate (buf, XmSTRING_DEFAULT_CHARSET); ac = 0; - XtSetArg (av[ac], XmNlabelString, new_xm_label); - ac++; + XtSetArg (av [ac], XmNlabelString, new_xm_label); ac++; XtSetValues (widget, av, ac); XmStringFree (new_xm_label); XtFree (label); @@ -346,7 +313,6 @@ format_into_label (widget, string) #if __STDC__ extern void skull (Display *, Window, GC, GC, int, int, int, int); - #endif static void @@ -357,7 +323,7 @@ roger (button, client_data, call_data) Display *dpy = XtDisplay (button); Screen *screen = XtScreen (button); Window window = XtWindow (button); - Arg av[10]; + Arg av [10]; int ac = 0; XGCValues gcv; Colormap cmap; @@ -365,21 +331,15 @@ roger (button, client_data, call_data) unsigned int fg, bg; int x, y, size; XWindowAttributes xgwa; - XGetWindowAttributes (dpy, window, &xgwa); cmap = xgwa.colormap; - if (xgwa.width > xgwa.height) - size = xgwa.height; - else - size = xgwa.width; - if (size > 40) - size -= 30; + if (xgwa.width > xgwa.height) size = xgwa.height; + else size = xgwa.width; + if (size > 40) size -= 30; x = (xgwa.width - size) / 2; y = (xgwa.height - size) / 2; - XtSetArg (av[ac], XmNforeground, &fg); - ac++; - XtSetArg (av[ac], XmNbackground, &bg); - ac++; + XtSetArg (av [ac], XmNforeground, &fg); ac++; + XtSetArg (av [ac], XmNbackground, &bg); ac++; XtGetValues (button, av, ac); /* if it's black on white, swap it cause it looks better (hack hack) */ if (fg == BlackPixelOfScreen (screen) && bg == WhitePixelOfScreen (screen)) @@ -399,7 +359,6 @@ make_passwd_dialog (parent) Widget parent; { struct passwd *pw; - create_passwd_dialog (parent); XtAddCallback (passwd_done, XmNactivateCallback, passwd_done_cb, 0); @@ -414,11 +373,20 @@ make_passwd_dialog (parent) XtOverrideTranslations (passwd_text, XtParseTranslationTable (translations)); #endif +#if (XmVersion >= 1002) + /* The focus stuff changed around; this didn't exist in 1.1.5. */ + XtVaSetValues (passwd_form, XmNinitialFocus, passwd_text, 0); +#endif + + /* Another random thing necessary in 1.2.1 but not 1.1.5... */ + XtVaSetValues (roger_label, XmNborderWidth, 2, 0); + pw = getpwuid (getuid ()); format_into_label (passwd_label3, (pw->pw_name ? pw->pw_name : "???")); format_into_label (passwd_label1, screensaver_version); } + extern void idle_timer (); static int passwd_idle_timer_tick; @@ -437,48 +405,41 @@ passwd_idle_timer (junk1, junk2) idle_timer (junk1, junk2); - if (passwd_idle_timer_tick == max) /* first time */ - { - Arg av[10]; - int ac = 0; - XGCValues gcv; - unsigned long fg, bg; - - XtSetArg (av[ac], XmNheight, &d); - ac++; - XtGetValues (passwd_done, av, ac); - ac = 0; - XtSetArg (av[ac], XmNwidth, &x); - ac++; - XtSetArg (av[ac], XmNheight, &y); - ac++; - XtSetArg (av[ac], XmNforeground, &fg); - ac++; - XtSetArg (av[ac], XmNbackground, &bg); - ac++; - XtGetValues (passwd_form, av, ac); - x -= d; - y -= d; - d -= 4; - gcv.foreground = fg; - if (gc) - XFreeGC (dpy, gc); - gc = XCreateGC (dpy, window, GCForeground, &gcv); - s = 360 * 64 / (passwd_idle_timer_tick - 1); - ss = 90 * 64; - XFillArc (dpy, window, gc, x, y, d, d, 0, 360 * 64); - XSetForeground (dpy, gc, bg); - x += 1; - y += 1; - d -= 2; - } + if (passwd_idle_timer_tick == max) /* first time */ + { + Arg av [10]; + int ac = 0; + XGCValues gcv; + unsigned long fg, bg; + XtSetArg (av [ac], XmNheight, &d); ac++; + XtGetValues (passwd_done, av, ac); + ac = 0; + XtSetArg (av [ac], XmNwidth, &x); ac++; + XtSetArg (av [ac], XmNheight, &y); ac++; + XtSetArg (av [ac], XmNforeground, &fg); ac++; + XtSetArg (av [ac], XmNbackground, &bg); ac++; + XtGetValues (passwd_form, av, ac); + x -= d; + y -= d; + d -= 4; + gcv.foreground = fg; + if (gc) XFreeGC (dpy, gc); + gc = XCreateGC (dpy, window, GCForeground, &gcv); + s = 360*64 / (passwd_idle_timer_tick - 1); + ss = 90*64; + XFillArc (dpy, window, gc, x, y, d, d, 0, 360*64); + XSetForeground (dpy, gc, bg); + x += 1; + y += 1; + d -= 2; + } if (--passwd_idle_timer_tick) - { - id = XtAppAddTimeOut (app, 1000, (XtTimerCallbackProc) passwd_idle_timer, 0); - XFillArc (dpy, window, gc, x, y, d, d, ss, s); - ss += s; - } + { + id = XtAppAddTimeOut (app, 1000, passwd_idle_timer, 0); + XFillArc (dpy, window, gc, x, y, d, d, ss, s); + ss += s; + } } extern void pop_up_dialog_box (); @@ -491,8 +452,7 @@ pop_passwd_dialog (parent) Display *dpy = XtDisplay (passwd_dialog); Window focus; int revert_to; - - typed_passwd[0] = 0; + typed_passwd [0] = 0; passwd_state = pw_read; XmTextFieldSetString (passwd_text, ""); @@ -506,72 +466,65 @@ pop_passwd_dialog (parent) if (XtWindow (passwd_form)) XMapRaised (dpy, XtWindow (passwd_dialog)); #endif - pop_up_dialog_box (passwd_dialog, passwd_form, 2); + pop_up_dialog_box (passwd_dialog, passwd_form, 2); XtManageChild (passwd_form); - XSetInputFocus (dpy, XtWindow (passwd_dialog), revert_to, CurrentTime); - /* #### This doesn't work in 1.2.1... Check return code... */ - XmProcessTraversal (passwd_text, 0); +#if (XmVersion < 1002) + /* The focus stuff changed around; this causes problems in 1.2.1 + but is necessary in 1.1.5. */ + XmProcessTraversal (passwd_text, XmTRAVERSE_CURRENT); +#endif passwd_idle_timer_tick = passwd_timeout / 1000; - id = XtAppAddTimeOut (app, 1000, (XtTimerCallbackProc) passwd_idle_timer, 0); + id = XtAppAddTimeOut (app, 1000, passwd_idle_timer, 0); - XGrabServer (dpy); /* ############ DANGER! */ - while (passwd_state == pw_read) - { - XEvent event; + XGrabServer (dpy); /* ############ DANGER! */ - XtAppNextEvent (app, &event); - /* wait for timer event */ - if (event.xany.type == 0 && passwd_idle_timer_tick == 0) - passwd_state = pw_time; - XtDispatchEvent (&event); - } + while (passwd_state == pw_read) + { + XEvent event; + XtAppNextEvent (app, &event); + /* wait for timer event */ + if (event.xany.type == 0 && passwd_idle_timer_tick == 0) + passwd_state = pw_time; + XtDispatchEvent (&event); + } XUngrabServer (dpy); - XSync (dpy, False); /* ###### (danger over) */ + XSync (dpy, False); /* ###### (danger over) */ if (passwd_state != pw_time) XtRemoveTimeOut (id); if (passwd_state != pw_ok) - { - char *lose; - - switch (passwd_state) { - case pw_time: - lose = "Timed out!"; - break; - case pw_fail: - lose = "Sorry!"; - break; - case pw_cancel: - lose = 0; - break; - default: - abort (); + char *lose; + switch (passwd_state) + { + case pw_time: lose = "Timed out!"; break; + case pw_fail: lose = "Sorry!"; break; + case pw_cancel: lose = 0; break; + default: abort (); + } + XmProcessTraversal (passwd_cancel, 0); /* turn off I-beam */ + if (lose) + { + XmTextFieldSetString (passwd_text, lose); + XmTextFieldSetInsertionPosition (passwd_text, strlen (lose) + 1); + passwd_idle_timer_tick = 1; + id = XtAppAddTimeOut (app, 3000, passwd_idle_timer, 0); + while (1) + { + XEvent event; + XtAppNextEvent (app, &event); + if (event.xany.type == 0 && /* wait for timer event */ + passwd_idle_timer_tick == 0) + break; + XtDispatchEvent (&event); + } + } } - XmProcessTraversal (passwd_cancel, 0); /* turn off I-beam */ - if (lose) - { - XmTextFieldSetString (passwd_text, lose); - XmTextFieldSetInsertionPosition (passwd_text, strlen (lose) + 1); - passwd_idle_timer_tick = 1; - id = XtAppAddTimeOut (app, 3000, (XtTimerCallbackProc) passwd_idle_timer, 0); - while (1) - { - XEvent event; - - XtAppNextEvent (app, &event); - if (event.xany.type == 0 && /* wait for timer event */ - passwd_idle_timer_tick == 0) - break; - XtDispatchEvent (&event); - } - } - } memset (typed_passwd, 0, sizeof (typed_passwd)); XmTextFieldSetString (passwd_text, ""); XtSetKeyboardFocus (parent, None); @@ -584,7 +537,6 @@ pop_passwd_dialog (parent) #endif { int (*old_handler) (); - old_handler = XSetErrorHandler (BadWindow_ehandler); /* I don't understand why this doesn't refocus on the old selected window when MWM is running in click-to-type mode. The value of @@ -602,16 +554,15 @@ unlock_p (parent) Widget parent; { static Bool initted = False; - - if (!initted) - { + if (! initted) + { #ifndef VERIFY_CALLBACK_WORKS - XtAppAddActions (app, actions, XtNumber (actions)); + XtAppAddActions (app, actions, XtNumber (actions)); #endif - passwd_dialog = 0; - initted = True; - } - if (!passwd_dialog) + passwd_dialog = 0; + initted = True; + } + if (! passwd_dialog) make_passwd_dialog (parent); return pop_passwd_dialog (parent); } diff --git a/driver/subprocs.c b/driver/subprocs.c index 4d8332a6..d8cc3309 100644 --- a/driver/subprocs.c +++ b/driver/subprocs.c @@ -9,6 +9,42 @@ * implied warranty. */ +/* I would really like some error messages to show up on the screensaver window + itself when subprocs die, or when we can't launch them. If the process + produces output, but does not actually die, I would like that output to go + to the appropriate stdout/stderr as they do now. X and Unix conspire to + make this incredibly difficult. + + - Not all systems have SIGIO, so we can't necessarily be signalled when a + process dies, so we'd have to poll it with wait() or something awful like + that, which would mean the main thread waking up more often than it does + now. + + - We can't tell the difference between a process dying, and a process not + being launched correctly (for example, not being on $PATH) partly because + of the contortions we need to go through with /bin/sh in order to launch + it. + + - We can't do X stuff from signal handlers, so we'd need to set a flag, + save the error message, and notice that flag in the main thread. The + problem is that the main thread is probably sleeping, waiting for the + next X event, so to do this we'd have to register a pipe FD or something, + and write to it when something loses. + + - We could assume that any output produced by a subproc indicates an error, + and blast that across the screen. This means we'd need to use popen() + instead of forking and execing /bin/sh to run it for us. Possibly this + would work, but see comment in exec_screenhack() about getting pids. + I think we could do the "exec " trick with popen() but would SIGIO get + delivered correctly? Who knows. (We could register the pipe-FD with + Xt, and handle output on it with a callback.) + + - For the simple case of the programs not being on $PATH, we could just + search $PATH before launching the shell, but that seems hardly worth the + effort... And it's broken!! Why should we have to duplicate half the + work of the shell? (Because it's Unix, that's why! Bend over.) + */ + #if __STDC__ #include #include @@ -45,7 +81,6 @@ extern int kill (pid_t, int); /* signal() is in sys/signal.h... */ #endif # if defined(SVR4) || defined(SYSV) -# undef PRIO_PROCESS # define random() rand() # else /* !totally-losing-SYSV */ extern long random(); /* rand() is in stdlib.h... */ @@ -101,6 +136,12 @@ exec_screenhack (command) So, the only solution other than implementing an argument parser here is to force the shell to exec() its inferior. What a fucking hack! We prepend "exec " to the command string. + + (Actually, Clint Wong points out that process groups + might be used to take care of this problem; this may be worth considering + some day, except that, 1: this code works now, so why fix it, and 2: from + what I've seen in Emacs, dealing with process groups isn't especially + portable.) */ tmp = command; command = (char *) malloc (strlen (tmp) + 6); @@ -116,7 +157,7 @@ exec_screenhack (command) if (verbose_p) printf ("%s: spawning \"%s\" in pid %d.\n", progname, command, getpid ()); -#if defined(SYSV) || defined(__hpux) +#if defined(SYSV) || defined(SVR4) || defined(__hpux) { int old_nice = nice (0); int n = nice_inferior - old_nice; @@ -151,7 +192,7 @@ exec_screenhack (command) sprintf (buf, "%s: %sexecve() failed", progname, (verbose_p ? "## " : "")); perror (buf); - exit (1); /* Note this this only exits a child fork. */ + exit (1); /* Note that this only exits a child fork. */ } /* to avoid a race between the main thread and the SIGCHLD handler */ @@ -184,9 +225,17 @@ await_child_death (killed) int exit_status = WEXITSTATUS (status); if (exit_status & 0x80) exit_status |= ~0xFF; - if (exit_status != 0 && verbose_p) - printf ("%s: child pid %d (%s) exited abnormally (code %d).\n", - progname, pid, current_hack_name (), exit_status); + /* One might assume that exiting with non-0 means something went + wrong. But that loser xswarm exits with the code that it was + killed with, so it *always* exits abnormally. Treat abnormal + exits as "normal" (don't mention them) if we've just killed + the subprocess. But mention them if they happen on their own. + */ + if (exit_status != 0 && (verbose_p || (! killed))) + fprintf (stderr, + "%s: %schild pid %d (%s) exited abnormally (code %d).\n", + progname, (verbose_p ? "## " : ""), + pid, current_hack_name (), exit_status); else if (verbose_p) printf ("%s: child pid %d (%s) exited normally.\n", progname, pid, current_hack_name ()); diff --git a/driver/timers.c b/driver/timers.c index b8c3e91e..64117cea 100644 --- a/driver/timers.c +++ b/driver/timers.c @@ -163,7 +163,7 @@ cycle_timer (junk1, junk2) kill_screenhack (); spawn_screenhack (False); } - cycle_id = XtAppAddTimeOut (app, how_long, (XtTimerCallbackProc)cycle_timer, 0); + cycle_id = XtAppAddTimeOut (app, how_long, cycle_timer, 0); } @@ -189,7 +189,7 @@ reset_timers () progname, timeout, timer_id); #endif XtRemoveTimeOut (timer_id); - timer_id = XtAppAddTimeOut (app, timeout, (XtTimerCallbackProc)idle_timer, 0); + timer_id = XtAppAddTimeOut (app, timeout, idle_timer, 0); if (cycle_id) abort (); last_activity_time = time ((time_t *) 0); @@ -217,7 +217,7 @@ check_pointer_timer (closure, this_timer) abort (); #endif - *timerP = XtAppAddTimeOut (app, pointer_timeout, (XtTimerCallbackProc)check_pointer_timer, + *timerP = XtAppAddTimeOut (app, pointer_timeout, check_pointer_timer, closure); XQueryPointer (dpy, screensaver_window, &root, &child, @@ -251,7 +251,7 @@ sleep_until_idle (until_idle_p) if (until_idle_p) { - timer_id = XtAppAddTimeOut (app, timeout, (XtTimerCallbackProc)idle_timer, 0); + timer_id = XtAppAddTimeOut (app, timeout, idle_timer, 0); #ifdef HAVE_XIDLE if (! use_xidle) #endif @@ -286,7 +286,7 @@ sleep_until_idle (until_idle_p) goto DONE; else timer_id = XtAppAddTimeOut (app, timeout - idle, - (XtTimerCallbackProc)idle_timer, 0); + idle_timer, 0); } break; @@ -299,7 +299,7 @@ sleep_until_idle (until_idle_p) #ifdef HAVE_XIDLE if (! use_xidle) #endif - XtAppAddTimeOut (app, notice_events_timeout, (XtTimerCallbackProc)notice_events_timer, + XtAppAddTimeOut (app, notice_events_timeout, notice_events_timer, (XtPointer) event.xcreatewindow.window); break; diff --git a/driver/visual.c b/driver/visual.c index b4ca9720..b9d18970 100644 --- a/driver/visual.c +++ b/driver/visual.c @@ -158,3 +158,28 @@ get_visual_resource (dpy, name, class) else return pick_best_visual_of_class (dpy, vclass); } + +void +describe_visual (f, dpy, visual) + FILE *f; + Display *dpy; + Visual *visual; +{ + XVisualInfo vi_in, *vi_out; + int out_count, d; + vi_in.screen = DefaultScreen (dpy); + vi_in.visualid = XVisualIDFromVisual (visual); + vi_out = XGetVisualInfo (dpy, VisualScreenMask|VisualIDMask, + &vi_in, &out_count); + if (! vi_out) abort (); + fprintf (f, "0x%02x (%s depth: %2d, cmap: %3d @ %d)\n", vi_out->visualid, + (vi_out->class == StaticGray ? "StaticGray, " : + vi_out->class == StaticColor ? "StaticColor," : + vi_out->class == TrueColor ? "TrueColor, " : + vi_out->class == GrayScale ? "GrayScale, " : + vi_out->class == PseudoColor ? "PseudoColor," : + vi_out->class == DirectColor ? "DirectColor," : + "???"), + vi_out->depth, vi_out->colormap_size, vi_out->bits_per_rgb); + XFree ((char *) vi_out); +} diff --git a/driver/windows.c b/driver/windows.c index 84802404..690f1fd6 100644 --- a/driver/windows.c +++ b/driver/windows.c @@ -29,6 +29,10 @@ extern Bool lock_p, demo_mode_p; Atom XA_VROOT, XA_XSETROOT_ID; Atom XA_SCREENSAVER_VERSION, XA_SCREENSAVER_ID; +#if __STDC__ +extern void describe_visual (FILE *, Display *, Visual *); +#endif + Window screensaver_window = 0; Cursor cursor; Colormap cmap, cmap2; @@ -421,6 +425,8 @@ initialize_screensaver_window () int height = HeightOfScreen (screen); char id [2048]; + black.red = black.green = black.blue = 0; + if (cmap == DefaultColormapOfScreen (screen)) cmap = 0; @@ -467,7 +473,7 @@ initialize_screensaver_window () attrs.backing_store = NotUseful; attrs.colormap = cmap; -/* if (demo_mode_p || lock_p) width = width / 2; #### */ +/* if (demo_mode_p || lock_p) width = width / 2; #### */ if (screensaver_window) { @@ -484,6 +490,21 @@ initialize_screensaver_window () } else { + if (! verbose_p) + ; + else if (visual == DefaultVisualOfScreen (screen)) + { + fprintf (stderr, "%s: using default visual ", progname); + describe_visual (stderr, dpy, visual); + } + else + { + fprintf (stderr, "%s: using visual: ", progname); + describe_visual (stderr, dpy, visual); + fprintf (stderr, "%s: default visual: ", progname); + describe_visual (stderr, dpy, DefaultVisualOfScreen (screen)); + } + screensaver_window = XCreateWindow (dpy, RootWindowOfScreen (screen), 0, 0, width, height, 0, visual_depth, InputOutput, visual, attrmask, @@ -505,7 +526,6 @@ initialize_screensaver_window () XChangeProperty (dpy, screensaver_window, XA_SCREENSAVER_ID, XA_STRING, 8, PropModeReplace, (unsigned char *) id, strlen (id)); - black.red = black.green = black.blue = 0; if (!cursor) { Pixmap bit; @@ -545,6 +565,7 @@ raise_window (inhibit_fade, between_hacks_p) fade_colormap (dpy, current_map, cmap2, fade_seconds, fade_ticks, True); XClearWindow (dpy, screensaver_window); XMapRaised (dpy, screensaver_window); + /* Once the saver window is up, restore the colormap. */ XInstallColormap (dpy, cmap); if (grabbed == GrabSuccess) XUngrabPointer (dpy, CurrentTime); diff --git a/driver/xscreensaver-command.c b/driver/xscreensaver-command.c index cf76a6f7..e0e40e33 100644 --- a/driver/xscreensaver-command.c +++ b/driver/xscreensaver-command.c @@ -101,7 +101,7 @@ main (argc, argv) XEvent event; int i; char *message = 0, *dpyname = 0; - screensaver_version = malloc (5); + screensaver_version = (char *) malloc (5); memcpy (screensaver_version, screensaver_id + 17, 4); screensaver_version [4] = 0; for (i = 1; i < argc; i++) diff --git a/driver/xscreensaver.c b/driver/xscreensaver.c index 5afc1c39..eb0bd64e 100644 --- a/driver/xscreensaver.c +++ b/driver/xscreensaver.c @@ -182,7 +182,9 @@ Time lock_timeout; extern Time timeout; extern Time cycle; +#ifndef NO_LOCKING extern Time passwd_timeout; +#endif extern Time pointer_timeout; extern Time notice_events_timeout; extern XtIntervalId lock_id, cycle_id; @@ -219,8 +221,10 @@ static Atom XA_EXIT, XA_RESTART, XA_DEMO, XA_LOCK; #ifdef NO_MOTIF /* kludge */ Bool demo_mode_p = 0; Bool dbox_up_p = 0; +#ifndef NO_LOCKING Time passwd_timeout = 0; #endif +#endif #ifdef NO_DEMO_MODE @@ -233,7 +237,7 @@ static XrmOptionDescRec options [] = { { "-timeout", ".timeout", XrmoptionSepArg, 0 }, { "-idelay", ".initialDelay",XrmoptionSepArg, 0 }, { "-cycle", ".cycle", XrmoptionSepArg, 0 }, - { "-visual", ".visual", XrmoptionSepArg, 0 }, + { "-visual", ".visualID", XrmoptionSepArg, 0 }, { "-lock-timeout", ".lockTimeout", XrmoptionSepArg, 0 }, { "-verbose", ".verbose", XrmoptionNoArg, "on" }, { "-silent", ".verbose", XrmoptionNoArg, "off" }, @@ -385,7 +389,8 @@ get_screenhacks () static void get_resources () { - visual = get_visual_resource (dpy, "visual", "Visual"); + /* Note: we can't use the resource ".visual" because Xt is SO FUCKED. */ + visual = get_visual_resource (dpy, "visualID", "VisualID"); timeout = 1000 * get_minutes_resource ("timeout", "Time"); cycle = 1000 * get_minutes_resource ("cycle", "Time"); lock_timeout = 1000 * get_minutes_resource ("lockTimeout", "Time"); @@ -399,13 +404,15 @@ get_resources () fade_ticks = get_integer_resource ("fadeTicks", "Integer"); shell = get_string_resource ("bourneShell", "BourneShell"); initial_delay = get_seconds_resource ("initialDelay", "Time"); - passwd_timeout = 1000 * get_seconds_resource ("passwdTimeout", "Time"); pointer_timeout = 1000 * get_seconds_resource ("pointerPollTime", "Time"); notice_events_timeout = 1000 * get_seconds_resource ("windowCreationTimeout", "Time"); +#ifndef NO_LOCKING + passwd_timeout = 1000 * get_seconds_resource ("passwdTimeout", "Time"); + if (passwd_timeout == 0) passwd_timeout = 30000; +#endif if (timeout < 10000) timeout = 10000; if (cycle < 2000) cycle = 2000; - if (passwd_timeout == 0) passwd_timeout = 30000; if (pointer_timeout == 0) pointer_timeout = 5000; if (notice_events_timeout == 0) notice_events_timeout = 10000; if (fade_seconds == 0 || fade_ticks == 0) fade_p = False; @@ -569,8 +576,14 @@ initialize (argc, argv) } save_argv (argc, argv); initialize_connection (argc, argv); + ensure_no_screensaver_running (); + if (verbose_p) + printf ("\ +%s %s, copyright (c) 1991-1993 by Jamie Zawinski .\n\ + pid = %d.\n", progname, screensaver_version, getpid ()); ensure_no_screensaver_running (); + demo_mode_p = initial_demo_mode_p; screensaver_window = 0; cursor = 0; @@ -579,6 +592,7 @@ initialize (argc, argv) cycle_id = 0; lock_id = 0; locked_p = False; + if (use_xidle) { #ifdef HAVE_XIDLE @@ -599,11 +613,6 @@ initialize (argc, argv) init_sigchld (); - if (verbose_p) - printf ("\ -%s %s, copyright (c) 1991-1993 by Jamie Zawinski .\n\ - pid = %d.\n", progname, screensaver_version, getpid ()); - disable_builtin_screensaver (); if (initial_demo_mode_p) diff --git a/driver/xscreensaver.man b/driver/xscreensaver.man index 770701ec..f8ce6160 100644 --- a/driver/xscreensaver.man +++ b/driver/xscreensaver.man @@ -11,12 +11,12 @@ .if n .sp 1 .if t .sp .5 .. -.TH XScreenSaver 1 "22-mar-93" "X Version 11" +.TH XScreenSaver 1 "30-oct-93" "X Version 11" .SH NAME xscreensaver - run graphics hacks after the user has been idle for a while .SH SYNOPSIS .B xscreensaver -[\-display \fIhost:display.screen\fP] [\-timeout \fIint\fP] [\-cycle \fIint\fP] [\-nice \fIint\fP] [\-verbose] [\-silent] [\-xidle] [\-no-xidle] [\-lock] [\-no-lock] [\-lock\-timeout \fIint\fP] [\-demo] [\-xrm \fIresources\fP] +[\-display \fIhost:display.screen\fP] [\-timeout \fIint\fP] [\-cycle \fIint\fP] [\-nice \fIint\fP] [\-verbose] [\-silent] [\-xidle] [\-no-xidle] [\-lock] [\-no-lock] [\-lock\-timeout \fIint\fP] [\-demo] [\-visual \fIvisual\fP] [\-xrm \fIresources\fP] .SH DESCRIPTION The \fIxscreensaver\fP program waits until the keyboard and mouse have been idle for a period, and then runs a graphics demo chosen at random. It @@ -85,6 +85,30 @@ without requiring a password. After 5 minutes, a password will be required. The default is 0, meaning that if locking is enabled, then a password will be required as soon as the screensaver activates. .TP 8 +.B \-visual \fIvisual\fP +Specify which visual to use. Legal values are: +.RS 8 +.TP 8 +.B best +Use the visual which supports the most writable color cells; this is +the default. +.TP 8 +.B default +Use the screen's default visual (the visual of the root window.) This is +not necessarily the most colorful visual, which is why it is not the default. +.TP 8 +.I class +One of \fBStaticGray\fP, \fBStaticColor\fP, \fBTrueColor\fP, \fBGrayScale\fP, +\fBPseudoColor\fP, or \fBDirectColor\fP. Selects the deepest visual of +the given class. +.TP 8 +.I number +A number (decimal or hex) is interpreted as a visual id number, as reported +by the +.BR xdpyinfo (1) +program; in this way you can select a shallower visual if desired. +.RE +.TP 8 .B \-demo Enter the interactive demo mode immediately after startup. Normally demo mode is invoked via the @@ -148,6 +172,10 @@ should be left on the screen before giving up (default 30.) This should not be too large: the X server is grabbed for the duration that the password dialog box is up (for security purposes) and leaving the server grabbed for too long can cause problems. +.TP 8 +.B visualID \fR(class \fBVisualID\fP) +Same as the \fI\-visual\fP command-line option. Default \fBbest\fP. + .TP 8 .B programs \fR(class \fBPrograms\fP) The graphics hacks which \fIxscreensaver\fP runs when the user is idle. @@ -330,6 +358,7 @@ automatically return to demo mode after restarting. .BR imsmap (1), .BR slidescreen (1), .BR hypercube (1), +.BR flame (1), .BR maze (1), .BR ico (1), .BR xdaliclock (1), diff --git a/hacks/.gdbinit b/hacks/.gdbinit new file mode 100644 index 00000000..0bd01420 --- /dev/null +++ b/hacks/.gdbinit @@ -0,0 +1,3 @@ +b exit +b abort +set args -geom =700x700+0+0 diff --git a/hacks/Imakefile b/hacks/Imakefile index 5e42776d..cf6b3e19 100644 --- a/hacks/Imakefile +++ b/hacks/Imakefile @@ -8,8 +8,10 @@ #include "../config.h" #ifdef HAVE_XPM + /* Yeah, this means that all hacks link against libXpm even though only + one hack actually use it. It doesn't matter: it's a library. */ # define XPMDEFS -DHAVE_XPM -# define XPMLIB -lXpm -L/usr/ucblib -lucb +# define XPMLIB -lXpm #else # define XPMDEFS # define XPMLIB @@ -18,17 +20,17 @@ UTILS = ../utils INCLUDES = -I$(UTILS) DEFINES = R5ISMS XPMDEFS -EXTRA_LIBRARIES = $(XMULIB) $(XTOOLLIB) XPMLIB $(EXTENSIONLIB) $(XLIB) -lm -lnsl +EXTRA_LIBRARIES = $(XMULIB) $(XTOOLLIB) XPMLIB $(EXTENSIONLIB) $(XLIB) -lm HACKS = attraction.c greynetic.c helix.c hopalong.c xroger-hack.c \ noseguy.c pyro.c qix.c rocks.c rorschach.c blitspin.c \ imsmap.c slidescreen.c decayscreen.c maze.c hypercube.c \ - halo.c + halo.c flame.c MEN = attraction.man greynetic.man helix.man hopalong.man \ noseguy.man pyro.man xroger.man qix.man rocks.man \ rorschach.man blitspin.man imsmap.man slidescreen.man \ - decayscreen.man maze.man hypercube.man halo.man + decayscreen.man maze.man hypercube.man halo.man flame.man TARFILES = README Imakefile screenhack.c $(HACKS) screenhack.h \ - vroot.h xlock.h $(MEN) .gdbinit noses/\* + vroot.h xlock.h default.xbm $(MEN) .gdbinit noses/\* all:: @@ -65,3 +67,4 @@ ScreenhackTarget (imsmap, imsmap, $(HOBJS) $(UTILS)/hsv.o) ScreenhackTarget (maze, maze, $(HOBJS) $(UTILS)/xroger.o) ScreenhackTarget (hypercube, hypercube, $(HOBJS)) ScreenhackTarget (halo, halo, $(HOBJS) $(UTILS)/hsv.o) +ScreenhackTarget (flame, flame, $(HOBJS) $(UTILS)/hsv.o) diff --git a/hacks/Makefile b/hacks/Makefile deleted file mode 100644 index 864e1d6d..00000000 --- a/hacks/Makefile +++ /dev/null @@ -1,728 +0,0 @@ -# Makefile generated by imake - do not edit! -# $XConsortium: imake.c,v 1.65 91/07/25 17:50:17 rws Exp $ -# -# The cpp used on this machine replaces all newlines and multiple tabs and -# spaces in a macro expansion with a single space. Imake tries to compensate -# for this, but is not always successful. -# - -# ------------------------------------------------------------------------- -# Makefile generated from "Imake.tmpl" and -# $XConsortium: Imake.tmpl,v 1.139 91/09/16 08:52:48 rws Exp $ -# -# Platform-specific parameters may be set in the appropriate .cf -# configuration files. Site-specific parameters should be set in the file -# site.def. Full rebuilds are recommended if any parameters are changed. -# -# If your C preprocessor does not define any unique symbols, you will need -# to set BOOTSTRAPCFLAGS when rebuilding imake (usually when doing -# "make World" the first time). -# - -# ------------------------------------------------------------------------- -# site-specific configuration parameters that need to come before -# the platform-specific parameters - edit site.def to change - -# site: $XConsortium: site.def,v 1.2 91/07/30 20:26:44 rws Exp $ - - ALLINCLUDES = $(STD_INCLUDES) $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) - -# ------------------------------------------------------------------------- -# platform-specific configuration parameters - edit usl.cf to change - -MEMUTILDEF = -MEMUTILLIB = -INC = $(TOOLS)/usr/include - - YFLAGS = - STRIP = $(PFX)strip - AWK = /usr/bin/awk - CD = cd - LS = /bin/ls - PR = /bin/pr - CHMOD = $(CH)chmod - CHOWN = $(CH)chown - CHGRP = $(CH)chgrp - SED = /bin/sed - MCS = $(PFX)mcs -d - - PROTO_DEFINES = -LOCAL_LIBRARIES = $(XLIB) - SYS_LIBRARIES = - - USE_INSTALLED = - SYS_TO_BUILD = - ARCHIVE_ONLY = - - USE_INSTALLED = -DUseInstalled - -BUILD_DEFINES = $(SYS_TO_BUILD) $(USE_INSTALLED) $(ARCHIVE_ONLY) - -# :: end of BUILD_DEFINES set-up - - UNIX_REL = -DSVR4 - -MAKEDEFINES = $(STD_DEFINES) $(BUILD_DEFINES) $(UNIX_REL) $(CCS_USED) - -# until we use R5 server, use R4 font structures - -# operating system: OSName - -INSTALLFLAGS = -m 0644 - -# $XConsortium: sv4Lib.rules,v 1.8 91/07/19 15:38:53 rws Exp $ - - FURCCOPTIONS = -Xa -W2,-A -Wa,-r - FUR = $(PFX)fur - -INCLUDE_EXTENSION = $(INCDIR)/extensions - - TOP_INCLUDES = - -# ------------------------------------------------------------------------- -# site-specific configuration parameters that go after -# the platform-specific parameters - edit site.def to change - -# site: $XConsortium: site.def,v 1.2 91/07/30 20:26:44 rws Exp $ - -# -# ProjectRoot is where you want to install the binaries, libs, fonts etc -# - - PROJECTROOT = $(ROOT)/$(MACH)/usr/X - XWINHOME = /usr/X - XWINLIBDIR = $(XWINHOME)/lib - XWINBINDIR = $(XWINHOME)/bin - - USLCLIENTSRC = $(TOP)/uslclients - DESKTOPDIR = $(PROJECTROOT)/desktop - DTADMDIR = $(PROJECTROOT)/adm - XDEFAULTS = $(PROJECTROOT)/defaults - - FONTINCSRC = $(FONTSRC)/include - FONTLIBINCSRC = $(FONTSRC)/lib/include - FOLIOLIBSRC = $(FONTSRC)/lib/folio - FONTLIBSRC = $(FONTSRC)/lib/font - BITMAPFONTSRC = $(FONTSRC)/lib/bitmap - FONTSLIBSRC = $(FONTSRC)/lib/ - XOLSRC = $(LIBSRC)/Xol - XOLLIBSRC = $(LIBSRC)/Xol -BITMAPLIBS_TO_BUILD = libbitmap.a libbitmap.so -FONTLIBS_TO_BUILD = libfont.a libfont.so - - USL_DEFINES = -DLIBDIR=\"$(XWINLIBDIR)\" -DDESTDIR=\"$(XWINHOME)\" - - DEFINES = $(USL_DEFINES) - - SHELL = /bin/sh - - TOP = . - CURRENT_DIR = ./hacks - - AR = $(PFX)ar rv - BOOTSTRAPCFLAGS = -Dusl - CC = $(PFX)cc - AS = $(PFX)as - - COMPRESS = compress - CPP = $(TOOLS)/usr/ccs/lib/$(PFX)cpp $(STD_CPP_DEFINES) - PREPROCESSCMD = $(PFX)cc -E $(STD_CPP_DEFINES) - INSTALL = /usr/ucb/install - LD = $(PFX)ld - LINT = $(PFX)lint - LINTLIBFLAG = -o - LINTOPTS = -ax - LN = /bin/ln -s - MAKE = $(PFX)make - MV = /bin/mv - CP = /bin/cp - HCC = /bin/cc - SED = /bin/sed - - RM = /bin/rm -f - TROFF = psroff - MSMACROS = -ms - TBL = tbl - EQN = eqn - STD_INCLUDES = -I. - STD_CPP_DEFINES = -DUSL -DSVR4 -DSYSV -DI18N $(MEMUTILDEF) - STD_DEFINES = -DUSL -DSVR4 -DSYSV -DI18N $(MEMUTILDEF) - EXTRA_LOAD_FLAGS = - EXTRA_LIBRARIES = -lnsl -ldl $(MEMUTILLIB) - TAGS = ctags - - SHAREDCODEDEF = - SHLIBDEF = - - PROTO_DEFINES = -DFUNCPROTO=15 -DNARROWPROTO - - INSTPGMFLAGS = -s - - INSTBINFLAGS = -m 0755 - INSTUIDFLAGS = -m 4755 - INSTLIBFLAGS = -m 0644 - INSTINCFLAGS = -m 0444 - INSTMANFLAGS = -m 0444 - INSTDATFLAGS = -m 0444 - INSTKMEMFLAGS = -m 4755 - - PROJECTROOT = $(ROOT)/$(MACH)/usr/X - - CDEBUGFLAGS = - CCOPTIONS = -Xa -W2,-A - - ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(STD_INCLUDES) - ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(EXTRA_DEFINES) $(PROTO_DEFINES) $(DEFINES) - CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(ALLDEFINES) - LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) - - LDLIBS = $(SYS_LIBRARIES) $(EXTRA_LIBRARIES) - - LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(LOCAL_LDFLAGS) -T 0x8300000 -L$(USRLIBDIR) - - LDCOMBINEFLAGS = -r - DEPENDFLAGS = - - MACROFILE = usl.cf - RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut - - IMAKE_DEFINES = - - IRULESRC = $(CONFIGDIR) - IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES) - - ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/Imake.rules \ - $(IRULESRC)/Project.tmpl $(IRULESRC)/site.def \ - $(IRULESRC)/$(MACROFILE) $(EXTRA_ICONFIGFILES) - -# ------------------------------------------------------------------------- -# X Window System Build Parameters -# $XConsortium: Project.tmpl,v 1.142 92/01/25 16:44:02 rws Exp $ - -# ------------------------------------------------------------------------- -# X Window System make variables; this need to be coordinated with rules - - PATHSEP = / - USRLIBDIR = $(ROOT)/$(MACH)/usr/X/lib - BINDIR = $(ROOT)/$(MACH)/usr/X/bin - INCROOT = $(ROOT)/$(MACH)/usr/X/include - BUILDINCROOT = $(TOP) - BUILDINCDIR = $(BUILDINCROOT)/X11 - BUILDINCTOP = .. - INCDIR = $(INCROOT)/X11 - ADMDIR = /usr/adm - LIBDIR = $(USRLIBDIR) - CONFIGDIR = $(LIBDIR)/config - LINTLIBDIR = $(USRLIBDIR)/lint - - FONTDIR = $(LIBDIR)/fonts - XINITDIR = $(LIBDIR)/xinit - XDMDIR = $(LIBDIR)/xdm - TWMDIR = $(LIBDIR)/twm - MANPATH = $(ROOT)/$(MACH)/usr/X/man - MANSOURCEPATH = $(MANPATH)/man - MANSUFFIX = n - LIBMANSUFFIX = 3 - MANDIR = $(MANSOURCEPATH)$(MANSUFFIX) - LIBMANDIR = $(MANSOURCEPATH)$(LIBMANSUFFIX) - NLSDIR = $(LIBDIR)/nls - PEXAPIDIR = $(LIBDIR)/PEX - XAPPLOADDIR = $(LIBDIR)/app-defaults - FONTCFLAGS = -L -l -t - - INSTAPPFLAGS = $(INSTDATFLAGS) - - IMAKE = imake - DEPEND = makedepend - RGB = rgb - - FONTC = bdftosnf - - MKFONTDIR = mkfontdir - MKDIRHIER = /bin/sh $(BINDIR)/mkdirhier - - CONFIGSRC = $(TOP)/config - DOCUTILSRC = $(TOP)/doc/util - CLIENTSRC = $(TOP)/clients - DEMOSRC = $(TOP)/demos - LIBSRC = $(TOP)/lib - FONTSRC = $(TOP)/fonts - INCLUDESRC = $(TOP)/X11 - SERVERSRC = $(TOP)/server - UTILSRC = $(TOP)/util - SCRIPTSRC = $(UTILSRC)/scripts - EXAMPLESRC = $(TOP)/examples - CONTRIBSRC = $(TOP)/../contrib - DOCSRC = $(TOP)/doc - RGBSRC = $(TOP)/rgb - DEPENDSRC = $(UTILSRC)/makedepend - IMAKESRC = $(CONFIGSRC) - XAUTHSRC = /usr/X/lib - XLIBSRC = /usr/X/lib - XMUSRC = /usr/X/lib - TOOLKITSRC = /usr/X/lib - AWIDGETSRC = /usr/X/lib - OLDXLIBSRC = /usr/X/lib - XDMCPLIBSRC = /usr/X/lib - - BDFTOSNFSRC = $(FONTSRC)/clients/bdftosnf - - MKFONTDIRSRC = $(FONTSRC)/clients/mkfontdir - FSLIBSRC = $(FONTSRC)/lib/fs - FONTSERVERSRC = $(FONTSRC)/server - EXTENSIONSRC = $(TOP)/extensions - XILIBSRC = $(EXTENSIONSRC)/lib/xinput - XTESTLIBSRC = $(EXTENSIONSRC)/lib/xtest - PHIGSLIBSRC = $(EXTENSIONSRC)/lib/PEX - -# $XConsortium: sv4Lib.tmpl,v 1.6 92/01/25 16:46:55 rws Exp $ - -# -# USL: BEGIN -# The default revision numbers from MIT is 5. But since USL has to be -# backward compatible, so force it to 1 -# - - SOXOLREV = 1 - SOOLITREV = 1 - SOOLITMREV = 1 - SOOLITOREV = 1 - SODTREV = 1 - -# USL: END - -SHLIBLDFLAGS = -G -z text -PICFLAGS = -K PIC - - DEPEXTENSIONLIB = - EXTENSIONLIB = -lXext - - DEPXLIB = $(DEPEXTENSIONLIB) - XLIB = $(EXTENSIONLIB) -lX11 - - DEPXMULIB = $(USRLIBDIR)/libXmu.so.$(SOXMUREV) - - XMULIB = -lXmu - - DEPOLDXLIB = - OLDXLIB = -loldX - - DEPXTOOLLIB = - XTOOLLIB = -lXt - - DEPXOLLIB = $(USRLIBDIR)/libOlit.so.$(SOXOLREV) - XOLLIB = -lOlit - - DEPXAWLIB = - XAWLIB = -lXaw - - DEPXILIB = - XILIB = -lXi - - DEPXTESTLIB = - XTESTLIB = -lXtst - -# -# USL: BEGIN -# - -XHOSTLOC = $(DESTDIR)/$(LIBDIR) -SHLIBFLAGS = -L $(ROOT)/$(MACH)/usr/lib -L $(ROOT)/$(MACH)/lib -L $(XHOSTLOC) - -# -# USL: END -# - - SOXLIBREV = 1 - SOXTREV = 1 - SOXAWREV = 1 - SOOLDXREV = 1 - SOXMUREV = 1 - SOXEXTREV = 1 - SOXINPUTREV = 1 - SOXTESTREV = 1 - SOXTRAPREV = 1 - - DEPXAUTHLIB = $(USRLIBDIR)/libXau.a - XAUTHLIB = -lXau - DEPXDMCPLIB = $(USRLIBDIR)/libXdmcp.a - XDMCPLIB = -lXdmcp - - DEPPHIGSLIB = $(USRLIBDIR)/libphigs.a - PHIGSLIB = -lphigs - - DEPXBSDLIB = $(USRLIBDIR)/libXbsd.a - XBSDLIB = -lXbsd - - LINTEXTENSIONLIB = $(LINTLIBDIR)/llib-lXext.ln - LINTXLIB = $(LINTLIBDIR)/llib-lX11.ln - LINTXMU = $(LINTLIBDIR)/llib-lXmu.ln - LINTXTOOL = $(LINTLIBDIR)/llib-lXt.ln - LINTXAW = $(LINTLIBDIR)/llib-lXaw.ln - LINTXI = $(LINTLIBDIR)/llib-lXi.ln - LINTPHIGS = $(LINTLIBDIR)/llib-lphigs.ln - - DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB) - - DEPLIBS1 = $(DEPLIBS) - DEPLIBS2 = $(DEPLIBS) - DEPLIBS3 = $(DEPLIBS) - -# ------------------------------------------------------------------------- -# Imake rules for building libraries, programs, scripts, and data files -# rules: $XConsortium: Imake.rules,v 1.126 91/12/30 20:14:35 rws Exp $ - -# ------------------------------------------------------------------------- -# start of Imakefile - - MOTIFINCLUDES = -I/usr/X/include - MOTIFLDOPTIONS = -L/usr/X/lib - MOTIFLIBS = -lXm - -EXTRA_LIBRARIES= -lgen -L/usr/ucblib -lucb -lnsl - - UTILS = ../utils - INCLUDES = -I$(UTILS) - DEFINES = -DHAVE_XPM -EXTRA_LIBRARIES = $(XMULIB) $(XTOOLLIB) -lXpm -L/usr/ucblib -lucb $(EXTENSIONLIB) $(XLIB) -lm -lnsl - HACKS = attraction.c greynetic.c helix.c hopalong.c xroger-hack.c \ - noseguy.c pyro.c qix.c rocks.c rorschach.c blitspin.c \ - imsmap.c slidescreen.c decayscreen.c maze.c hypercube.c \ - halo.c - MEN = attraction.man greynetic.man helix.man hopalong.man \ - noseguy.man pyro.man xroger.man qix.man rocks.man \ - rorschach.man blitspin.man imsmap.man slidescreen.man \ - decayscreen.man maze.man hypercube.man halo.man - TARFILES = README Imakefile screenhack.c $(HACKS) screenhack.h \ - vroot.h xlock.h $(MEN) .gdbinit noses/\* - -all:: - -echo_tarfiles: - @echo $(TARFILES) - -HOBJS=screenhack.o $(UTILS)/resources.o $(UTILS)/usleep.o - -all:: qix -qix: $(HOBJS) $(UTILS)/hsv.o screenhack.h qix.o $(DEPLIBS) - $(RM) $@ - $(CC) -o $@ $(LDOPTIONS) $(HOBJS) $(UTILS)/hsv.o qix.o $(LDLIBS) $(EXTRA_LOAD_FLAGS) - -install:: qix - @if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi - $(INSTALL) -c $(INSTPGMFLAGS) qix $(DESTDIR)$(BINDIR) - -install.man:: qix.man - @if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi - $(INSTALL) -c $(INSTMANFLAGS) qix.man $(DESTDIR)$(MANDIR)/qix.$(MANSUFFIX) -clean:: - $(RM) qix - -all:: helix -helix: $(HOBJS) $(UTILS)/hsv.o screenhack.h helix.o $(DEPLIBS) - $(RM) $@ - $(CC) -o $@ $(LDOPTIONS) $(HOBJS) $(UTILS)/hsv.o helix.o $(LDLIBS) $(EXTRA_LOAD_FLAGS) - -install:: helix - @if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi - $(INSTALL) -c $(INSTPGMFLAGS) helix $(DESTDIR)$(BINDIR) - -install.man:: helix.man - @if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi - $(INSTALL) -c $(INSTMANFLAGS) helix.man $(DESTDIR)$(MANDIR)/helix.$(MANSUFFIX) -clean:: - $(RM) helix - -all:: pyro -pyro: $(HOBJS) $(UTILS)/hsv.o screenhack.h pyro.o $(DEPLIBS) - $(RM) $@ - $(CC) -o $@ $(LDOPTIONS) $(HOBJS) $(UTILS)/hsv.o pyro.o $(LDLIBS) $(EXTRA_LOAD_FLAGS) - -install:: pyro - @if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi - $(INSTALL) -c $(INSTPGMFLAGS) pyro $(DESTDIR)$(BINDIR) - -install.man:: pyro.man - @if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi - $(INSTALL) -c $(INSTMANFLAGS) pyro.man $(DESTDIR)$(MANDIR)/pyro.$(MANSUFFIX) -clean:: - $(RM) pyro - -all:: attraction -attraction: $(HOBJS) $(UTILS)/hsv.o $(UTILS)/spline.o screenhack.h attraction.o $(DEPLIBS) - $(RM) $@ - $(CC) -o $@ $(LDOPTIONS) $(HOBJS) $(UTILS)/hsv.o $(UTILS)/spline.o attraction.o $(LDLIBS) $(EXTRA_LOAD_FLAGS) - -install:: attraction - @if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi - $(INSTALL) -c $(INSTPGMFLAGS) attraction $(DESTDIR)$(BINDIR) - -install.man:: attraction.man - @if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi - $(INSTALL) -c $(INSTMANFLAGS) attraction.man $(DESTDIR)$(MANDIR)/attraction.$(MANSUFFIX) -clean:: - $(RM) attraction - -all:: rorschach -rorschach: $(HOBJS) $(UTILS)/hsv.o screenhack.h rorschach.o $(DEPLIBS) - $(RM) $@ - $(CC) -o $@ $(LDOPTIONS) $(HOBJS) $(UTILS)/hsv.o rorschach.o $(LDLIBS) $(EXTRA_LOAD_FLAGS) - -install:: rorschach - @if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi - $(INSTALL) -c $(INSTPGMFLAGS) rorschach $(DESTDIR)$(BINDIR) - -install.man:: rorschach.man - @if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi - $(INSTALL) -c $(INSTMANFLAGS) rorschach.man $(DESTDIR)$(MANDIR)/rorschach.$(MANSUFFIX) -clean:: - $(RM) rorschach - -all:: hopalong -hopalong: $(HOBJS) $(UTILS)/hsv.o screenhack.h hopalong.o $(DEPLIBS) - $(RM) $@ - $(CC) -o $@ $(LDOPTIONS) $(HOBJS) $(UTILS)/hsv.o hopalong.o $(LDLIBS) $(EXTRA_LOAD_FLAGS) - -install:: hopalong - @if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi - $(INSTALL) -c $(INSTPGMFLAGS) hopalong $(DESTDIR)$(BINDIR) - -install.man:: hopalong.man - @if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi - $(INSTALL) -c $(INSTMANFLAGS) hopalong.man $(DESTDIR)$(MANDIR)/hopalong.$(MANSUFFIX) -clean:: - $(RM) hopalong - -all:: xroger -xroger: $(HOBJS) $(UTILS)/hsv.o $(UTILS)/xroger.o screenhack.h xroger-hack.o $(DEPLIBS) - $(RM) $@ - $(CC) -o $@ $(LDOPTIONS) $(HOBJS) $(UTILS)/hsv.o $(UTILS)/xroger.o xroger-hack.o $(LDLIBS) $(EXTRA_LOAD_FLAGS) - -install:: xroger - @if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi - $(INSTALL) -c $(INSTPGMFLAGS) xroger $(DESTDIR)$(BINDIR) - -install.man:: xroger.man - @if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi - $(INSTALL) -c $(INSTMANFLAGS) xroger.man $(DESTDIR)$(MANDIR)/xroger.$(MANSUFFIX) -clean:: - $(RM) xroger - -all:: rocks -rocks: $(HOBJS) screenhack.h rocks.o $(DEPLIBS) - $(RM) $@ - $(CC) -o $@ $(LDOPTIONS) $(HOBJS) rocks.o $(LDLIBS) $(EXTRA_LOAD_FLAGS) - -install:: rocks - @if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi - $(INSTALL) -c $(INSTPGMFLAGS) rocks $(DESTDIR)$(BINDIR) - -install.man:: rocks.man - @if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi - $(INSTALL) -c $(INSTMANFLAGS) rocks.man $(DESTDIR)$(MANDIR)/rocks.$(MANSUFFIX) -clean:: - $(RM) rocks - -all:: noseguy -noseguy: $(HOBJS) screenhack.h noseguy.o $(DEPLIBS) - $(RM) $@ - $(CC) -o $@ $(LDOPTIONS) $(HOBJS) noseguy.o $(LDLIBS) $(EXTRA_LOAD_FLAGS) - -install:: noseguy - @if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi - $(INSTALL) -c $(INSTPGMFLAGS) noseguy $(DESTDIR)$(BINDIR) - -install.man:: noseguy.man - @if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi - $(INSTALL) -c $(INSTMANFLAGS) noseguy.man $(DESTDIR)$(MANDIR)/noseguy.$(MANSUFFIX) -clean:: - $(RM) noseguy - -all:: blitspin -blitspin: $(HOBJS) screenhack.h blitspin.o $(DEPLIBS) - $(RM) $@ - $(CC) -o $@ $(LDOPTIONS) $(HOBJS) blitspin.o $(LDLIBS) $(EXTRA_LOAD_FLAGS) - -install:: blitspin - @if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi - $(INSTALL) -c $(INSTPGMFLAGS) blitspin $(DESTDIR)$(BINDIR) - -install.man:: blitspin.man - @if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi - $(INSTALL) -c $(INSTMANFLAGS) blitspin.man $(DESTDIR)$(MANDIR)/blitspin.$(MANSUFFIX) -clean:: - $(RM) blitspin - -all:: greynetic -greynetic: $(HOBJS) screenhack.h greynetic.o $(DEPLIBS) - $(RM) $@ - $(CC) -o $@ $(LDOPTIONS) $(HOBJS) greynetic.o $(LDLIBS) $(EXTRA_LOAD_FLAGS) - -install:: greynetic - @if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi - $(INSTALL) -c $(INSTPGMFLAGS) greynetic $(DESTDIR)$(BINDIR) - -install.man:: greynetic.man - @if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi - $(INSTALL) -c $(INSTMANFLAGS) greynetic.man $(DESTDIR)$(MANDIR)/greynetic.$(MANSUFFIX) -clean:: - $(RM) greynetic - -all:: slidescreen -slidescreen: $(HOBJS) $(UTILS)/grabscreen.o screenhack.h slidescreen.o $(DEPLIBS) - $(RM) $@ - $(CC) -o $@ $(LDOPTIONS) $(HOBJS) $(UTILS)/grabscreen.o slidescreen.o $(LDLIBS) $(EXTRA_LOAD_FLAGS) - -install:: slidescreen - @if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi - $(INSTALL) -c $(INSTPGMFLAGS) slidescreen $(DESTDIR)$(BINDIR) - -install.man:: slidescreen.man - @if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi - $(INSTALL) -c $(INSTMANFLAGS) slidescreen.man $(DESTDIR)$(MANDIR)/slidescreen.$(MANSUFFIX) -clean:: - $(RM) slidescreen - -all:: decayscreen -decayscreen: $(HOBJS) $(UTILS)/grabscreen.o screenhack.h decayscreen.o $(DEPLIBS) - $(RM) $@ - $(CC) -o $@ $(LDOPTIONS) $(HOBJS) $(UTILS)/grabscreen.o decayscreen.o $(LDLIBS) $(EXTRA_LOAD_FLAGS) - -install:: decayscreen - @if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi - $(INSTALL) -c $(INSTPGMFLAGS) decayscreen $(DESTDIR)$(BINDIR) - -install.man:: decayscreen.man - @if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi - $(INSTALL) -c $(INSTMANFLAGS) decayscreen.man $(DESTDIR)$(MANDIR)/decayscreen.$(MANSUFFIX) -clean:: - $(RM) decayscreen - -all:: imsmap -imsmap: $(HOBJS) $(UTILS)/hsv.o screenhack.h imsmap.o $(DEPLIBS) - $(RM) $@ - $(CC) -o $@ $(LDOPTIONS) $(HOBJS) $(UTILS)/hsv.o imsmap.o $(LDLIBS) $(EXTRA_LOAD_FLAGS) - -install:: imsmap - @if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi - $(INSTALL) -c $(INSTPGMFLAGS) imsmap $(DESTDIR)$(BINDIR) - -install.man:: imsmap.man - @if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi - $(INSTALL) -c $(INSTMANFLAGS) imsmap.man $(DESTDIR)$(MANDIR)/imsmap.$(MANSUFFIX) -clean:: - $(RM) imsmap - -all:: maze -maze: $(HOBJS) $(UTILS)/xroger.o screenhack.h maze.o $(DEPLIBS) - $(RM) $@ - $(CC) -o $@ $(LDOPTIONS) $(HOBJS) $(UTILS)/xroger.o maze.o $(LDLIBS) $(EXTRA_LOAD_FLAGS) - -install:: maze - @if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi - $(INSTALL) -c $(INSTPGMFLAGS) maze $(DESTDIR)$(BINDIR) - -install.man:: maze.man - @if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi - $(INSTALL) -c $(INSTMANFLAGS) maze.man $(DESTDIR)$(MANDIR)/maze.$(MANSUFFIX) -clean:: - $(RM) maze - -all:: hypercube -hypercube: $(HOBJS) screenhack.h hypercube.o $(DEPLIBS) - $(RM) $@ - $(CC) -o $@ $(LDOPTIONS) $(HOBJS) hypercube.o $(LDLIBS) $(EXTRA_LOAD_FLAGS) - -install:: hypercube - @if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi - $(INSTALL) -c $(INSTPGMFLAGS) hypercube $(DESTDIR)$(BINDIR) - -install.man:: hypercube.man - @if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi - $(INSTALL) -c $(INSTMANFLAGS) hypercube.man $(DESTDIR)$(MANDIR)/hypercube.$(MANSUFFIX) -clean:: - $(RM) hypercube - -all:: halo -halo: $(HOBJS) $(UTILS)/hsv.o screenhack.h halo.o $(DEPLIBS) - $(RM) $@ - $(CC) -o $@ $(LDOPTIONS) $(HOBJS) $(UTILS)/hsv.o halo.o $(LDLIBS) $(EXTRA_LOAD_FLAGS) - -install:: halo - @if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi - $(INSTALL) -c $(INSTPGMFLAGS) halo $(DESTDIR)$(BINDIR) - -install.man:: halo.man - @if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \ - else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi - $(INSTALL) -c $(INSTMANFLAGS) halo.man $(DESTDIR)$(MANDIR)/halo.$(MANSUFFIX) -clean:: - $(RM) halo - -# ------------------------------------------------------------------------- -# common rules for all Makefiles - do not edit - -emptyrule:: - -clean:: - $(RM_CMD) "#"* - -Makefile:: - -@if [ -f Makefile ]; then set -x; \ - $(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \ - else exit 0; fi - $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR) - -tags:: - $(TAGS) -w *.[ch] - $(TAGS) -xw *.[ch] > TAGS - -# ------------------------------------------------------------------------- -# empty rules for directories that do not have SUBDIRS - do not edit - -install:: - @echo "install in $(CURRENT_DIR) done" - -install.man:: - @echo "install.man in $(CURRENT_DIR) done" - -Makefiles:: - -includes:: - -# ------------------------------------------------------------------------- -# dependencies generated by makedepend - diff --git a/hacks/blitspin.c b/hacks/blitspin.c index 5f742ccd..df7ce8ae 100644 --- a/hacks/blitspin.c +++ b/hacks/blitspin.c @@ -36,6 +36,7 @@ #include +#include "default.xbm" static Display *dpy; static Window window; @@ -46,6 +47,7 @@ static GC gc; static int delay, delay2; static Pixmap bitmap; static int depth; +static unsigned int fg, bg; static void rotate(), init (), display (); @@ -86,38 +88,17 @@ rotate () } static void -init () +read_bitmap (bitmap_name, widthP, heightP) + char *bitmap_name; + int *widthP, *heightP; { - XWindowAttributes xgwa; - Colormap cmap; - XGCValues gcv; - int width, height, xh, yh; - unsigned int real_size; - char *bitmap_name; - int i; #ifdef HAVE_XPM XpmAttributes xpmattrs; int result; -#endif - - XGetWindowAttributes (dpy, window, &xgwa); - cmap = xgwa.colormap; - depth = xgwa.depth; - - delay = get_integer_resource ("delay", "Integer"); - delay2 = get_integer_resource ("delay2", "Integer"); - if (delay < 0) delay = 0; - if (delay2 < 0) delay2 = 0; - bitmap_name = get_string_resource ("bitmap", "Bitmap"); - if (! bitmap_name) - { - fprintf (stderr, "%s: no bitmap specified\n", progname); - exit (1); - } -#ifdef HAVE_XPM xpmattrs.valuemask = 0; bitmap = 0; - result = XpmReadFileToPixmap (dpy,window, bitmap_name, &bitmap, 0, &xpmattrs); + result = XpmReadFileToPixmap (dpy, window, bitmap_name, &bitmap, 0, + &xpmattrs); switch (result) { case XpmColorError: @@ -125,8 +106,8 @@ init () progname); /* fall through */ case XpmSuccess: - width = xpmattrs.width; - height = xpmattrs.height; + *widthP = xpmattrs.width; + *heightP = xpmattrs.height; break; case XpmFileInvalid: case XpmOpenFailed: @@ -144,12 +125,59 @@ init () } if (! bitmap) #endif - bitmap = XmuLocateBitmapFile (DefaultScreenOfDisplay (dpy), bitmap_name, - 0, 0, &width, &height, &xh, &yh); - if (! bitmap) { - fprintf (stderr, "%s: couldn't find bitmap %s\n", progname, bitmap_name); - exit (1); + int xh, yh; + Pixmap b2; + bitmap = XmuLocateBitmapFile (DefaultScreenOfDisplay (dpy), bitmap_name, + 0, 0, widthP, heightP, &xh, &yh); + if (! bitmap) + { + fprintf (stderr, "%s: couldn't find bitmap %s\n", progname, + bitmap_name); + exit (1); + } + b2 = XmuCreatePixmapFromBitmap (dpy, window, bitmap, *widthP, *heightP, + depth, fg, bg); + XFreePixmap (dpy, bitmap); + bitmap = b2; + } +} + +static void +init () +{ + XWindowAttributes xgwa; + Colormap cmap; + XGCValues gcv; + int width, height; + unsigned int real_size; + char *bitmap_name; + int i; + + XGetWindowAttributes (dpy, window, &xgwa); + cmap = xgwa.colormap; + depth = xgwa.depth; + + fg = get_pixel_resource ("foreground", "Foreground", dpy, cmap); + bg = get_pixel_resource ("background", "Background", dpy, cmap); + delay = get_integer_resource ("delay", "Integer"); + delay2 = get_integer_resource ("delay2", "Integer"); + if (delay < 0) delay = 0; + if (delay2 < 0) delay2 = 0; + bitmap_name = get_string_resource ("bitmap", "Bitmap"); + if (! bitmap_name || !*bitmap_name) + bitmap_name = "(default)"; + + if (!strcmp (bitmap_name, "(default)")) + { + width = logo_width; + height = logo_height; + bitmap = XCreatePixmapFromBitmapData (dpy, window, (char *) logo_bits, + width, height, fg, bg, depth); + } + else + { + read_bitmap (bitmap_name, &width, &height); } real_size = (width > height) ? width : height; @@ -171,13 +199,14 @@ init () gcv.function=GXand; AND = XCreateGC(dpy,self,GCFunction|GCForeground,&gcv); gcv.function=GXxor; XOR = XCreateGC(dpy,self,GCFunction|GCForeground,&gcv); - XFillRectangle (dpy, self, CLR, 0, 0, size, size); + gcv.foreground = gcv.background = bg; + gc = XCreateGC (dpy, window, GCForeground|GCBackground, &gcv); + /* Clear self to the background color (not to 0, which CLR does.) */ + XFillRectangle (dpy, self, gc, 0, 0, size, size); + XSetForeground (dpy, gc, fg); + XCopyArea (dpy, bitmap, self, CPY, 0, 0, width, height, (size - width)>>1, (size - height)>>1); - - gcv.foreground = get_pixel_resource ("foreground", "Foreground", dpy, cmap); - gcv.background = get_pixel_resource ("background", "Background", dpy, cmap); - gc = XCreateGC (dpy, window, GCForeground|GCBackground, &gcv); } static void @@ -217,7 +246,7 @@ char *defaults [] = { "*foreground: white", "*delay: 500000", "*delay2: 500000", - "*bitmap: xlogo64", /* hey, pick something better! */ + "*bitmap: (default)", 0 }; diff --git a/hacks/blitspin.man b/hacks/blitspin.man index aac00a46..e80ccf75 100644 --- a/hacks/blitspin.man +++ b/hacks/blitspin.man @@ -26,13 +26,16 @@ Draw on the root window. If on a color display, pretend we're on a monochrome display. .TP 8 .B \-bitmap bitmap-name -The bitmap to rotate. It need not be square: it will be padded with -the background color. Default is \fIxlogo64\fP, but \fIescherknot\fP -is also nice. You really need to run this on a bigger bitmap than -those shipped with the X distribution to do it justice. +The file name of a bitmap to rotate. It need not be square: it +will be padded with the background color. If unspecified or the +string \fI(default)\fP, a builtin bitmap is used. -The \fB*bitmapFilePath\fP resource will be searched if the bitmap name -is not a fully-qualified pathname. +If support for the \fBXPM\fP library was enabled at compile-time, +the specified file may be in XPM format as well as XBM, and thus +may be a color image. + +The \fB*bitmapFilePath\fP resource will be searched if the bitmap +name is not a fully-qualified pathname. .SH ENVIRONMENT .PP .TP 8 @@ -54,7 +57,7 @@ stored in the RESOURCE_MANAGER property. .BR X (1), .BR xscreensaver (1) .SH COPYRIGHT -Copyright \(co 1992 by Jamie Zawinski. Permission to use, copy, modify, +Copyright \(co 1992, 1993 by Jamie Zawinski. 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 diff --git a/hacks/default.xbm b/hacks/default.xbm new file mode 100644 index 00000000..dcd2ff50 --- /dev/null +++ b/hacks/default.xbm @@ -0,0 +1,1686 @@ +#define logo_width 464 +#define logo_height 435 +static unsigned char logo_bits[] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x60, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x60,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xf0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xf0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xf0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xf8,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xf8,0x01,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xf8,0x01,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xfc,0x01, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xfc,0x01,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xfc,0x03,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xfc,0x07,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xfe,0x07,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xfe,0x07,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xfe,0x07,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xff, +0x0f,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xff,0x0f,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0x80,0xff,0x0f,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x80,0xff,0x1f,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0x80,0xff,0x3f,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0x80,0xff,0x3f,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x80,0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc0, +0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0x7f, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0x7f,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xe0,0xff,0x7f,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xe0,0xff,0xff,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xf0,0xff,0xff,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xf0,0xff,0xff,0x01,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xf0,0xff,0xff,0x01,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xf0,0xff, +0xff,0x01,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xf8,0xff,0xff,0x03, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0x03,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xfc,0xff,0xff,0x03,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xfc,0xff,0xff,0x07,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xfc,0xff,0xff,0x07,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xfe,0xff,0xff,0x07,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xfe, +0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xfe,0xff,0xff, +0x0f,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xff,0xff,0xff,0x0f,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x80,0xff,0xff,0xff,0x1f,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0x80,0xff,0xff,0xff,0x1f,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0x80,0xff,0xff,0xff,0x1f,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x80,0xff,0xff,0xff,0x1f,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc0, +0xff,0xff,0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff, +0xff,0x7f,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff,0xff,0x7f, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xc0,0xff,0xff,0xff,0x7f,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xe0,0xff,0xff,0xff,0xff,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xe0,0xff,0xff,0xff,0xff,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xf0,0xff,0xff,0xff,0xff,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xf0,0xff,0xff,0xff,0xff,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xf0,0xff, +0xff,0xff,0xff,0x01,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xf0,0xff,0xff,0xff, +0xff,0x01,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xf8,0xff,0xff,0xff,0xff,0x03, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xf8,0xff,0xff,0xff,0xff,0x03,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xf8,0xff,0xff,0xff,0xff,0x03,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xf8,0xff,0xff,0xff,0xff,0x07,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xfc,0xff,0xdf,0xff,0xff,0x07,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xfe, +0xff,0xdf,0xff,0xff,0x07,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xfe,0xff,0x8f, +0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xfe,0xff,0x0f,0xff,0xff, +0x0f,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xfe,0xff,0x0f,0xff,0xff,0x0f,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xff,0xff,0x07,0xff,0xff,0x1f,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xff,0xff,0x07,0xff,0xff,0x1f,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x80,0xff,0xff,0x07,0xfe,0xff,0x1f,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc0, +0xff,0xff,0x03,0xfc,0xff,0x3f,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff, +0x03,0xfc,0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff,0x03,0xfc, +0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xe0,0xff,0xff,0x01,0xf8,0xff,0x7f, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xe0,0xff,0xff,0x01,0xf8,0xff,0x7f,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xe0,0xff,0xff,0,0xf0,0x03,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xe0,0xff,0xff,0,0xf0,0x03,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xe0,0xff,0x1f,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xf0,0xff, +0x01,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xf0,0x07,0,0, +0x80,0xff,0x03,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xf8,0xff,0xff, +0xff,0xff,0x03,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xf8,0xff,0xff,0xff,0xff, +0x03,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xc0,0xff,0xff,0xff,0x03,0,0,0xe0,0xff,0x7f,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xfc,0xff,0xff,0,0,0,0,0,0xe0,0xff,0x07,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xe0,0xff, +0x7f,0xfe,0,0,0,0,0,0,0xfc,0x7f,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xfe,0xff,0x01,0xfe, +0x01,0,0,0,0,0,0xc0,0xff,0x03,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xfe,0xff,0x01,0xfe,0x01,0, +0,0,0,0,0xc0,0xff,0x03,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xf0,0xff,0x07,0,0xce,0x07,0,0,0, +0,0,0,0xfe,0x1f,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xfe,0x7f,0,0,0x87,0x1f,0,0,0,0,0, +0,0xc0,0xff,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xe0,0xff,0x07,0,0x80,0x03,0x3e,0,0,0,0,0,0,0, +0xfe,0x07,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xfc, +0x3f,0,0,0x80,0x03,0xf8,0,0,0,0,0,0,0,0xe0,0x3f, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xfc,0x3f,0, +0,0x80,0x03,0xf8,0,0,0,0,0,0,0,0xe0,0x3f,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0x80,0xff,0x07,0,0,0xc0, +0x01,0xe0,0x01,0,0,0,0,0,0,0,0xff,0x01,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xf0,0xff,0x7f,0,0,0xc0,0xfb,0xff, +0x0f,0,0,0,0,0,0,0,0xf0,0x0f,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xfe,0xff,0xff,0x07,0,0xc0,0xff,0xff,0x3f,0, +0,0,0,0,0,0,0x80,0xff,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0x80,0xff,0xc0,0xff,0x7f,0,0xe0,0xff,0xff,0x7f,0,0,0, +0,0,0,0,0,0xfe,0x01,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x80,0xff,0xc0,0xff,0x7f,0,0xe0,0xff,0xff,0x7f,0,0,0,0,0, +0,0,0,0xfe,0x01,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xc0,0x1f, +0,0xf8,0xff,0x0f,0xf0,0x0f,0xc0,0xff,0x01,0,0,0,0,0,0, +0,0xf0,0x0f,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xe0,0x0f,0,0, +0xff,0x7f,0xf0,0x01,0,0xf8,0x03,0,0,0,0,0,0,0,0xc0, +0x3f,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xf0,0x01,0,0,0x80,0xff, +0x7b,0,0,0xe0,0x07,0,0,0,0,0,0,0,0,0xfe,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xf8,0,0,0,0,0xfc,0x3f,0, +0,0x80,0x1f,0,0,0,0,0,0,0,0,0xf0,0x03,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xf8,0,0,0,0,0xfc,0x3f,0,0,0x80, +0x1f,0,0,0,0,0,0,0,0,0xf0,0x03,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0x3c,0,0,0,0,0xe0,0x7f,0,0,0,0x7e,0, +0,0,0,0,0,0,0,0xe0,0x0f,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x3e,0,0,0,0,0,0xff,0x03,0,0,0x70,0,0,0, +0,0,0,0,0,0x80,0x3f,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0x80,0x0f, +0,0,0,0,0,0xf0,0x1f,0,0,0,0,0,0,0,0, +0,0,0,0,0xfc,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xc0,0x0f,0,0, +0,0,0,0,0xfe,0x01,0,0,0,0,0,0,0,0,0, +0,0,0xf0,0x01,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xc0,0x07,0,0,0,0, +0,0,0xf8,0x07,0,0,0,0,0,0,0,0,0,0,0, +0xe0,0x07,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xc0,0x07,0,0,0,0,0,0, +0xf8,0x07,0,0,0,0,0,0,0,0,0,0,0,0xe0,0x07, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xe0,0x03,0,0,0,0,0,0,0xe0,0x3f, +0,0,0,0,0,0,0,0,0,0,0,0x80,0x0f,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xf0,0x01,0,0,0,0,0,0,0x80,0xff,0,0, +0,0,0,0,0,0,0,0,0,0,0x3f,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xf8,0x01,0,0,0,0,0,0,0,0xfc,0x07,0,0,0, +0,0,0,0,0,0,0,0,0x7c,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xf8, +0,0,0,0xfe,0x03,0,0,0,0xf0,0x0f,0,0,0,0,0, +0,0,0,0,0,0,0xf8,0x01,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xf8,0,0, +0,0xfe,0x03,0,0,0,0xf0,0x0f,0,0,0,0,0,0,0, +0,0,0,0,0xf8,0x01,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xfc,0,0,0xf0,0xff, +0x1f,0,0,0,0x80,0x7f,0,0,0,0,0,0,0,0,0, +0,0,0xf0,0x03,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x3f,0,0,0xfc,0xff,0x7f,0, +0,0,0,0xfe,0x01,0,0,0,0,0,0,0,0,0,0, +0xc0,0x07,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0x80,0x1f,0,0,0xff,0x47,0x7f,0,0,0, +0,0xf8,0x0f,0,0,0,0,0,0,0,0,0,0,0x80,0x0f, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xf0,0x07,0x80,0xff,0xff,0x3f,0x7c,0,0,0,0,0xc0, +0xff,0,0,0,0,0,0,0,0,0,0,0,0x3e,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xf0,0x07,0x80,0xff,0xff,0x3f,0x7c,0,0,0,0,0xc0,0xff,0, +0,0,0,0,0,0,0,0,0,0,0x3e,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xfc, +0x03,0xc0,0xff,0xfe,0xff,0x7d,0,0,0,0,0x80,0xff,0x01,0,0, +0,0,0,0,0,0,0,0,0x7c,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xc0,0xff,0,0x40, +0,0,0xfe,0x7f,0,0,0,0,0x80,0xff,0x07,0,0,0,0, +0,0,0,0,0,0,0xf0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xf0,0x3f,0,0,0x80,0x03, +0xf8,0x3f,0,0,0,0,0x80,0xe7,0x1f,0,0,0,0,0,0, +0,0,0,0,0xf0,0x01,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xfe,0x0f,0,0,0xf0,0xff,0xff,0x1f, +0,0,0,0,0x80,0xc7,0x7f,0,0,0,0,0,0,0,0, +0,0,0xe0,0x03,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xfe,0x0f,0,0,0xf0,0xff,0xff,0x1f,0,0, +0,0,0x80,0xc7,0x7f,0,0,0,0,0,0,0,0,0,0, +0xe0,0x03,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xc0,0xff,0x03,0,0,0xf0,0xff,0xff,0x0f,0,0,0,0, +0xc0,0x0f,0xff,0x01,0,0,0,0,0,0,0,0,0,0xc0,0x07, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xf0,0x7f,0,0,0,0xc0,0xff,0xff,0x01,0,0,0,0,0xc0,0x0f, +0xfc,0x07,0,0,0,0,0,0,0,0,0,0x80,0x0f,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xff,0x0f, +0,0,0,0,0,0,0,0,0,0,0,0xc0,0x0f,0xf0,0x0f, +0,0,0,0,0,0,0,0,0,0,0x1f,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x80,0xff,0x01,0,0, +0,0,0,0,0,0,0,0,0,0xe0,0x1f,0x80,0x3f,0,0, +0,0,0,0,0,0,0,0,0x1c,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xf8,0x0f,0,0,0,0,0, +0,0,0,0,0,0,0,0xf0,0x1c,0,0xfe,0x03,0,0,0, +0,0,0,0,0,0,0x78,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xf8,0x0f,0,0,0,0,0,0,0, +0,0,0,0,0,0xf0,0x1c,0,0xfe,0x03,0,0,0,0,0, +0,0,0,0,0x78,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xfe,0x01,0,0,0,0,0,0,0,0,0, +0,0,0,0x70,0x1c,0,0xf0,0x07,0,0,0,0,0,0,0, +0,0,0xf0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0x3f,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x70,0x38,0,0xc0,0x1f,0,0,0,0,0,0,0,0,0, +0xe0,0x01,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x80, +0x0f,0,0,0,0,0,0,0,0,0,0,0,0,0,0x70, +0x78,0,0,0x7f,0,0,0,0,0,0,0,0,0,0xc0,0x03, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xc0,0x03,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x70,0x70,0, +0,0xfc,0,0,0,0,0,0,0,0,0,0xc0,0x07,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xc0,0x03,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x70,0x70,0,0,0xfc, +0,0,0,0,0,0,0,0,0,0xc0,0x07,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xc0,0x01,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x38,0x70,0,0,0xfe,0x03,0xfe, +0x7f,0,0,0,0,0,0,0,0x0f,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xe0,0x01,0,0,0,0,0,0,0, +0,0,0,0,0,0,0x38,0xf0,0,0,0xfe,0x0f,0xff,0xff,0x01, +0,0,0,0,0,0,0x0f,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xe0,0x01,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x18,0xe0,0,0x80,0x9f,0xff,0x3f,0xfe,0x03,0,0, +0,0,0,0,0x0f,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xe0,0x01,0,0,0,0,0,0,0,0,0,0,0, +0,0,0x1c,0xe0,0,0x80,0x0f,0xff,0x07,0xc0,0x0f,0,0,0,0, +0,0,0x1e,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xe0,0x01,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x1c,0xe0,0,0x80,0x0f,0xff,0x07,0xc0,0x0f,0,0,0,0,0,0, +0x1e,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xc0,0xf1, +0x1f,0,0,0,0,0,0,0,0,0,0,0,0,0x0e,0xe0, +0,0xc0,0x07,0xfc,0x01,0,0x1f,0,0,0,0,0,0,0x3e,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xc0,0xe1,0xff,0, +0,0,0,0,0,0,0,0,0,0,0,0x0e,0xe0,0x01,0xe0, +0x03,0x60,0,0,0x38,0,0,0,0,0,0,0x3c,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xc0,0xc3,0xff,0x01,0,0, +0,0,0,0,0,0,0,0,0,0x07,0xc0,0x01,0xf0,0x01,0, +0xe0,0x03,0xf0,0,0,0,0,0,0,0x38,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x80,0x07,0xf0,0x03,0,0,0,0, +0,0,0,0,0,0,0,0x07,0xc0,0x03,0xf8,0,0,0xf8,0x1f, +0xe0,0,0,0,0,0,0,0x38,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0x80,0x07,0xf0,0x03,0,0,0,0,0,0, +0,0,0,0,0,0x07,0xc0,0x03,0xf8,0,0,0xf8,0x1f,0xe0,0, +0,0,0,0,0,0x38,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0x80,0x0f,0xc0,0x07,0,0,0,0,0,0,0,0, +0,0,0,0x07,0x80,0x03,0x78,0,0,0xf8,0x7f,0xe0,0x01,0,0, +0,0,0,0x78,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0x0f,0x80,0x0f,0,0,0,0,0,0,0,0,0,0, +0x80,0x03,0x80,0x03,0x3e,0,0,0x78,0x7e,0xc0,0x03,0,0,0,0, +0,0x78,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x1e,0x1c,0x0f,0,0,0,0,0,0,0,0,0,0,0x80,0xf3, +0x9f,0x03,0x1f,0,0,0,0xf0,0x80,0x03,0,0,0,0,0,0x70, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0x1e,0xfe, +0x0f,0,0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff,0x07, +0x0f,0,0,0,0xe0,0,0x07,0,0,0,0,0,0x70,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0x1e,0xfe,0x0f,0, +0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff,0x07,0x0f,0, +0,0,0xe0,0,0x07,0,0,0,0,0,0x70,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0x7c,0xfc,0x0f,0,0,0, +0,0,0,0,0,0,0,0xc0,0xff,0xff,0x87,0x07,0,0,0, +0xe0,0,0x07,0,0,0,0,0,0x70,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x7c,0xf8,0x0f,0,0,0,0,0, +0,0,0,0,0,0xc0,0x3f,0xf4,0xc7,0x07,0,0,0,0xe0,0, +0x07,0,0,0,0,0,0x70,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xf0,0x01,0,0,0,0,0,0,0,0, +0,0,0,0xe0,0x03,0x80,0xe7,0x01,0,0,0,0xe0,0,0x07,0, +0,0,0,0,0xe0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xf0,0x03,0,0,0,0,0,0,0,0,0,0, +0,0xe0,0,0,0xff,0x01,0,0,0,0xe0,0x80,0x07,0,0,0, +0,0,0xe0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xe0,0x03,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xff,0,0,0,0,0xf8,0x80,0x03,0,0,0,0,0, +0xe0,0x01,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xe0, +0x03,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xff,0,0,0,0,0xf8,0x80,0x03,0,0,0,0,0,0xe0,0x01, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x80,0x07,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0x7e,0, +0,0,0,0x7c,0xc0,0x01,0,0,0,0,0,0xe0,0x01,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0x1f,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0x3e,0,0x80,0x07, +0xe0,0x3f,0xe0,0x01,0,0,0,0,0,0xc0,0x01,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0x1f,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0x1e,0,0xc0,0xff,0xff,0x0f, +0xe0,0,0,0,0,0,0,0xc0,0x01,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x1e,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x1f,0,0xe0,0xff,0xff,0x03,0xe0,0, +0,0,0,0,0,0xc0,0x01,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0x1e,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0x1f,0,0xe0,0xff,0xff,0x03,0xe0,0,0,0, +0,0,0,0xc0,0x01,0,0,0,0,0,0,0,0,0,0, +0,0,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0x3f,0,0x1e,0,0,0,0,0,0,0,0,0,0,0, +0,0,0x80,0x07,0,0x80,0xff,0x7f,0,0xf8,0x01,0,0,0,0, +0,0xc0,0x01,0,0,0,0,0,0,0,0,0,0,0,0, +0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x03,0x1e,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xc0,0x07,0,0,0,0,0,0xfc,0x07,0,0,0,0,0,0xc0, +0x01,0,0,0,0,0,0,0,0,0,0,0,0,0xe0,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x1e, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xe0,0x03, +0,0,0,0,0,0xfe,0x0f,0,0,0,0,0,0xc0,0x01,0, +0,0,0,0,0,0,0,0,0,0,0,0x80,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x0f,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xf0,0x01,0,0, +0,0,0x80,0xcf,0x3f,0,0,0xfe,0x01,0,0xc0,0x01,0,0,0, +0,0,0,0,0,0,0,0,0,0x80,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x0f,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xf0,0x01,0,0,0,0, +0x80,0xcf,0x3f,0,0,0xfe,0x01,0,0xc0,0x01,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x0f,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xf0,0,0,0,0,0,0xe0,0xe7, +0xff,0,0,0xfe,0x0f,0,0xc0,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x03,0,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x03,0x0f,0,0,0,0,0,0,0,0, +0,0,0,0,0,0x7c,0,0,0,0,0xf0,0xff,0xf9,0xff,0x01, +0,0xe0,0x1f,0,0xc0,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x03,0,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x03,0x0f,0,0,0,0,0,0,0,0,0,0, +0,0,0,0x7e,0,0,0,0xc0,0xff,0x7f,0xfe,0xe1,0x07,0,0xc0, +0xff,0,0xc0,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x01,0,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0x03,0x07,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x1e,0,0,0,0xfc,0xff,0x1f,0xff,0x81,0x0f,0,0x80,0xf1,0x03, +0xc0,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0,0, +0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03, +0x07,0,0,0,0,0,0,0,0,0,0,0,0,0,0x1e, +0,0,0,0xfc,0xff,0x1f,0xff,0x81,0x0f,0,0x80,0xf1,0x03,0xc0,0xe1, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0,0,0xc0,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x81,0x0f,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x1f,0,0, +0,0xff,0x3f,0x80,0xff,0,0x1f,0,0x80,0xc1,0x07,0xc0,0xe1,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0,0,0,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc1,0xff,0x3f,0,0, +0,0,0,0,0,0,0,0,0,0x80,0x0f,0,0x03,0xc0,0x3f, +0,0xe0,0x7f,0,0x7e,0,0x80,0x01,0x1f,0xe0,0xe1,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0,0,0,0xfc,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0xff,0xff,0x03,0,0,0, +0,0,0,0,0,0,0,0x80,0x0f,0x80,0x07,0xf0,0x07,0,0xf0, +0x3f,0,0xf8,0,0x80,0x01,0x3c,0xe0,0xe1,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x03,0,0,0,0xf8,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0xff,0xff,0x7f,0,0,0,0,0, +0,0,0,0,0,0xc0,0x03,0x80,0xff,0xff,0x01,0,0xfc,0x1f,0, +0xf0,0x01,0xc0,0x01,0x38,0xe0,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0,0,0,0,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x7f,0xf0,0,0xf8,0xff,0x07,0,0,0,0,0,0, +0,0,0,0xe0,0x03,0,0xfe,0x1f,0,0x80,0xbf,0x07,0,0x80,0x07, +0xc0,0x01,0xe0,0xf1,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f, +0,0,0,0,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0x7f,0xf0,0,0xf8,0xff,0x07,0,0,0,0,0,0,0,0, +0,0xe0,0x03,0,0xfe,0x1f,0,0x80,0xbf,0x07,0,0x80,0x07,0xc0,0x01, +0xe0,0xf1,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0,0, +0,0,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, +0xf0,0,0,0xfe,0x7f,0,0,0,0,0,0,0,0,0,0xf0, +0x01,0,0xf8,0x03,0,0xc0,0xcf,0x03,0,0x80,0x1f,0xf0,0x01,0xe0,0x71, +0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0,0,0,0, +0,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xf0,0, +0,0xe0,0xff,0x03,0,0,0,0,0,0,0,0,0xf8,0,0, +0,0,0,0xe0,0xe7,0x03,0,0,0x7e,0xff,0,0xc0,0x73,0xf0,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0,0,0,0,0,0xfc, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xf0,0,0,0, +0xfc,0x1f,0,0,0,0,0,0,0,0,0x78,0,0,0,0, +0,0xf8,0xf3,0,0,0,0xfc,0x7f,0,0,0x7f,0xf0,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0,0,0,0,0,0,0xf0,0xff,0xff, +0xff,0x1f,0,0,0,0,0,0,0,0xf0,0,0,0,0xe0,0xff, +0,0,0,0,0,0,0,0,0x3c,0,0,0,0,0,0x7c, +0xf8,0,0,0,0xf8,0xff,0xff,0xff,0x7f,0xf0,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x7f,0,0,0,0,0,0,0xf0,0xff,0xff,0xff,0x1f, +0,0,0,0,0,0,0,0xf0,0,0,0,0xe0,0xff,0,0, +0,0,0,0,0,0,0x3c,0,0,0,0,0,0x7c,0xf8,0, +0,0,0xf8,0xff,0xff,0xff,0x7f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0x7f,0,0,0,0,0,0,0xe0,0xff,0xff,0xff,0x3f,0,0, +0,0,0,0,0,0x70,0,0,0,0x80,0xff,0x0f,0,0,0, +0,0,0,0,0x3e,0,0,0,0,0,0x7f,0x7c,0,0,0, +0xe0,0xff,0xff,0xff,0x7f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f, +0,0,0,0,0,0,0x80,0xff,0xff,0xff,0xff,0,0,0,0, +0,0,0,0x78,0,0,0,0,0xfe,0x7f,0,0,0,0,0, +0,0,0x1e,0,0,0,0,0xc0,0x1f,0x3e,0,0,0,0xc0,0xff, +0xff,0xff,0x7f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0,0, +0,0,0,0,0,0xff,0xff,0xff,0xff,0x01,0,0,0,0,0, +0,0x7c,0,0,0,0,0xf0,0xff,0x03,0,0,0,0,0,0, +0x0f,0,0,0,0,0xe0,0x07,0x1f,0,0,0,0x80,0x0f,0,0, +0x3c,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0,0,0,0, +0,0,0,0xfc,0xff,0xff,0xff,0x07,0,0,0,0,0,0,0x3c, +0,0,0,0,0,0xfe,0x0f,0,0,0,0,0,0,0x0f,0, +0,0,0,0xfc,0x83,0x0f,0,0,0,0,0x0f,0,0,0x38,0xf0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0,0,0,0,0,0, +0,0xfc,0xff,0xff,0xff,0x07,0,0,0,0,0,0,0x3c,0,0, +0,0,0,0xfe,0x0f,0,0,0,0,0,0,0x0f,0,0,0, +0,0xfc,0x83,0x0f,0,0,0,0,0x0f,0,0,0x38,0xf0,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x01,0,0,0,0,0,0,0,0xf0, +0xff,0xff,0xff,0x0f,0,0,0,0,0,0,0x1e,0,0,0,0xf8, +0xff,0xff,0x3f,0,0,0,0,0,0x80,0x07,0,0,0,0,0xff, +0x80,0x07,0,0,0,0,0x3e,0,0,0x38,0,0,0,0,0, +0xff,0xff,0xff,0x7f,0,0,0,0,0,0,0,0,0xc0,0xff,0xff, +0xff,0x7f,0,0,0,0,0,0,0x0f,0,0,0,0xff,0xff,0xff, +0xff,0x03,0,0,0,0,0xe0,0x01,0,0,0,0xe0,0x1f,0xe0,0x03, +0,0,0,0,0x78,0,0,0x1c,0,0,0,0,0xe0,0xff,0xff, +0xff,0x0f,0,0,0,0,0,0,0,0,0,0xff,0xff,0xff,0xff, +0,0,0,0,0,0x80,0x0f,0,0,0,0xff,0x3f,0xe0,0xff,0x0f, +0,0,0,0,0xf0,0x01,0,0,0,0xf8,0x07,0xf0,0x01,0,0, +0,0,0xf0,0x01,0,0x1e,0,0,0,0,0xf0,0xff,0xff,0xff,0x07, +0,0,0,0,0,0,0,0,0,0xfe,0xff,0xff,0xff,0x03,0, +0,0,0,0x80,0x07,0,0,0,0xe0,0xff,0x01,0xfe,0x3f,0,0, +0,0,0xf0,0,0,0,0,0xfe,0x01,0xf8,0,0,0,0,0, +0xc0,0x03,0,0x0e,0,0,0,0,0xfc,0xff,0xff,0xff,0x01,0,0, +0,0,0,0,0,0,0,0xfe,0xff,0xff,0xff,0x03,0,0,0, +0,0x80,0x07,0,0,0,0xe0,0xff,0x01,0xfe,0x3f,0,0,0,0, +0xf0,0,0,0,0,0xfe,0x01,0xf8,0,0,0,0,0,0xc0,0x03, +0,0x0e,0,0,0,0,0xfc,0xff,0xff,0xff,0x01,0,0,0,0, +0,0,0,0,0,0xf8,0xff,0xff,0xff,0x07,0,0,0,0,0x80, +0x07,0,0,0,0,0xf8,0x07,0xc0,0xff,0x01,0,0,0,0xf8,0, +0,0,0x80,0x7f,0,0x78,0,0,0,0,0,0xc0,0x0f,0,0x0e, +0,0,0,0,0xff,0xff,0xff,0xff,0,0,0,0,0,0,0, +0,0,0,0xf0,0xff,0xff,0xff,0x1f,0,0,0,0,0xc0,0xe3,0xff, +0xff,0,0,0xc0,0x1f,0x80,0xff,0x03,0,0,0,0x3c,0,0,0, +0xe0,0x1f,0,0x3e,0,0,0,0,0,0,0x0f,0,0x07,0,0, +0,0x80,0xff,0xff,0xff,0x1f,0,0,0,0,0,0,0,0,0, +0,0xc0,0xff,0xff,0xff,0x7f,0,0,0,0,0xc0,0xfb,0xff,0xff,0x0f, +0,0,0x3e,0x80,0xf3,0x1f,0,0,0,0x3e,0,0,0,0xf8,0x07, +0,0x1e,0,0,0,0,0,0,0x1e,0,0x07,0,0,0,0xe0, +0xff,0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0,0,0, +0xff,0xff,0xff,0xff,0,0,0,0,0xc0,0xff,0xff,0xff,0xff,0,0, +0x7c,0xc0,0x81,0xff,0,0,0,0x1f,0,0,0,0xff,0x01,0,0x0f, +0,0,0,0,0,0,0x7c,0x80,0x07,0,0,0,0xf0,0xff,0xff, +0xff,0x03,0,0,0,0,0,0,0,0,0,0,0,0xfc,0xff, +0xff,0xff,0x03,0,0,0,0xc0,0x7f,0,0xe0,0xff,0x3f,0,0xf0,0xc0, +0x01,0xfe,0x03,0,0,0x0f,0,0,0xc0,0x7f,0,0xc0,0x07,0,0, +0,0,0,0,0xf0,0xc0,0x03,0,0,0,0xfc,0xff,0xff,0xff,0, +0,0,0,0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0xff, +0x03,0,0,0,0xc0,0x7f,0,0xe0,0xff,0x3f,0,0xf0,0xc0,0x01,0xfe, +0x03,0,0,0x0f,0,0,0xc0,0x7f,0,0xc0,0x07,0,0,0,0, +0,0,0xf0,0xc0,0x03,0,0,0,0xfc,0xff,0xff,0xff,0,0,0, +0,0,0,0,0,0,0,0,0,0xf8,0xff,0xff,0xff,0x07,0, +0,0,0xc0,0x0f,0,0,0xfc,0xff,0x03,0xc0,0xe3,0x01,0xf0,0x07,0, +0x80,0x07,0,0,0xf0,0x1f,0,0xc0,0x07,0,0,0,0,0,0, +0xf0,0xc1,0x01,0,0,0,0xff,0xff,0xff,0x7f,0,0,0,0,0, +0,0,0,0,0,0,0,0xe0,0xff,0xff,0xff,0x1f,0,0,0, +0xc0,0x07,0,0,0,0xfc,0xff,0,0xf7,0,0,0x3f,0,0xc0,0x03, +0,0,0xff,0,0,0xe0,0x01,0,0,0,0,0,0,0xc0,0xe3, +0x01,0,0,0xc0,0xff,0xff,0xff,0x0f,0,0,0,0,0,0,0, +0,0,0,0,0,0x80,0xff,0xff,0xff,0xff,0,0,0,0xc0,0x01, +0,0,0,0xc0,0xff,0x07,0x7f,0,0,0xfc,0,0xe0,0x03,0,0xe0, +0x3f,0,0,0xf0,0x01,0,0,0,0,0,0,0x80,0xff,0,0, +0,0xf0,0xff,0xff,0xff,0x07,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xfe,0xff,0xff,0xff,0,0,0,0xc0,0x01,0,0, +0,0,0xfe,0x7f,0x7f,0,0,0xf8,0x01,0xe0,0x01,0,0xfc,0x07,0, +0,0xf8,0,0,0,0,0,0,0,0,0xff,0,0,0,0xfc, +0xff,0xff,0xff,0x01,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xfe,0xff,0xff,0xff,0,0,0,0xc0,0x01,0,0,0,0, +0xfe,0x7f,0x7f,0,0,0xf8,0x01,0xe0,0x01,0,0xfc,0x07,0,0,0xf8, +0,0,0,0,0,0,0,0,0xff,0,0,0,0xfc,0xff,0xff, +0xff,0x01,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xfc,0xff,0xff,0xff,0x03,0,0,0xc0,0x03,0,0,0,0,0xe0,0xff, +0x3f,0,0,0xf0,0x07,0xf0,0,0,0xff,0x03,0,0,0x7c,0,0, +0,0,0,0,0,0,0x7e,0,0,0,0xff,0xff,0xff,0x7f,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xf0,0xff, +0xff,0xff,0x0f,0,0,0xc0,0x03,0,0,0,0,0,0xfe,0x3f,0, +0,0xc0,0x3f,0xf8,0,0xf8,0x3f,0,0,0,0x3c,0,0,0,0, +0,0,0,0,0x3c,0,0,0x80,0xff,0xff,0xff,0x3f,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff,0xff, +0x3f,0,0,0xc0,0x03,0,0,0,0,0,0xf0,0xff,0x0f,0,0, +0x7f,0x7c,0,0xfe,0x07,0,0,0,0x1e,0,0,0,0,0,0, +0,0,0x1e,0,0,0xe0,0xff,0xff,0xff,0x0f,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0x80,0xff,0xff,0xff,0x7f,0, +0,0x80,0x07,0,0,0,0,0,0,0xff,0x7f,0,0,0xfc,0x3e, +0xe0,0x7f,0,0,0,0,0x1f,0,0,0,0,0,0,0,0, +0x1f,0,0,0xf8,0xff,0xff,0xff,0x03,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x80,0xff,0xff,0xff,0x7f,0,0,0x80, +0x07,0,0,0,0,0,0,0xff,0x7f,0,0,0xfc,0x3e,0xe0,0x7f, +0,0,0,0,0x1f,0,0,0,0,0,0,0,0,0x1f,0, +0,0xf8,0xff,0xff,0xff,0x03,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xfe,0xff,0xff,0xff,0x01,0,0x80,0x0f,0, +0,0,0,0,0,0xf0,0xff,0x1f,0,0xf0,0x1f,0xfe,0x0f,0,0, +0,0x80,0x0f,0,0,0,0,0,0,0,0,0x07,0,0,0xfc, +0xff,0xff,0xff,0x01,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xf8,0xff,0xff,0xff,0x03,0,0,0x0f,0,0,0, +0,0,0,0,0xfc,0xff,0x3f,0xc0,0xff,0xff,0,0,0,0,0xc0, +0x07,0,0,0,0,0,0,0,0x80,0x03,0,0,0xff,0xff,0xff, +0x3f,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xf0,0xff,0xff,0xff,0x0f,0,0,0x1e,0,0,0,0,0, +0,0,0,0xfe,0xff,0xff,0xff,0x1f,0,0,0,0,0xe0,0x03,0, +0,0,0,0,0,0,0xe0,0x03,0,0xc0,0xff,0xff,0xff,0x1f,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x80,0xff,0xff,0xff,0x7f,0,0,0x3c,0,0,0,0,0,0,0, +0,0,0xfc,0xff,0xff,0x03,0,0,0,0,0xf0,0x01,0,0,0, +0,0,0,0,0xf8,0,0,0xf8,0xff,0xff,0xff,0x03,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0x80,0xff, +0xff,0xff,0x7f,0,0,0x3c,0,0,0,0,0,0,0,0,0, +0xfc,0xff,0xff,0x03,0,0,0,0,0xf0,0x01,0,0,0,0,0, +0,0,0xf8,0,0,0xf8,0xff,0xff,0xff,0x03,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xfe,0xff,0xff, +0xff,0,0,0x78,0,0,0,0,0,0,0,0,0,0,0xf8, +0xff,0x1f,0,0,0,0,0xf0,0,0,0,0,0,0,0,0, +0x7c,0,0,0xfc,0xff,0xff,0xff,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0xff,0x03, +0,0xf0,0,0,0,0,0,0,0,0,0,0,0,0xfe,0x7f, +0,0,0,0,0x7c,0,0,0,0,0,0,0,0,0x3e,0, +0,0xff,0xff,0xff,0x7f,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xf0,0xff,0xff,0xff,0x07,0,0xe0, +0x01,0,0,0,0,0,0,0,0,0,0,0x7c,0xfe,0,0, +0,0,0x3c,0,0,0,0,0,0,0,0x80,0x1f,0,0xc0,0xff, +0xff,0xff,0x1f,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xe0,0xff,0xff,0xff,0x1f,0,0xc0,0x03,0, +0,0,0,0,0,0,0,0,0,0x78,0xf8,0x03,0,0,0, +0x1e,0,0,0,0,0,0,0,0xc0,0x07,0,0xe0,0xff,0xff,0xff, +0x07,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x80,0xff,0xff,0xff,0x7f,0,0x80,0x07,0,0,0, +0,0,0,0,0,0,0,0x70,0xe0,0x0f,0,0,0,0x0f,0, +0,0,0,0,0,0,0xf0,0x03,0,0xf8,0xff,0xff,0xff,0x03,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0x80,0xff,0xff,0xff,0x7f,0,0x80,0x07,0,0,0,0,0, +0,0,0,0,0,0x70,0xe0,0x0f,0,0,0,0x0f,0,0,0, +0,0,0,0,0xf0,0x03,0,0xf8,0xff,0xff,0xff,0x03,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xff,0xff,0xff,0xff,0,0x80,0x0f,0,0,0,0,0,0,0, +0,0,0,0x70,0,0x3f,0,0,0x80,0x0f,0,0,0,0,0, +0,0,0xf8,0x01,0,0xfe,0xff,0xff,0x7f,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xfc, +0xff,0xff,0xff,0x03,0,0x1f,0,0,0,0,0,0,0,0,0, +0,0x70,0,0xfe,0,0,0xc0,0x03,0,0,0,0,0,0,0, +0x7e,0,0x80,0xff,0xff,0xff,0x3f,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xf0,0xff,0xff, +0xff,0x0f,0,0x3e,0,0,0,0,0,0,0,0,0,0,0x70, +0,0xf8,0x01,0,0xc0,0x03,0,0,0,0,0,0,0,0x3e,0, +0xc0,0xff,0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff,0xff,0x3f, +0,0xf8,0,0,0,0,0,0,0,0,0,0,0x70,0,0x80, +0x0f,0,0xf0,0x01,0,0,0,0,0,0,0xc0,0x0f,0,0xf8,0xff, +0xff,0xff,0x01,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xc0,0xff,0xff,0xff,0x3f,0,0xf8, +0,0,0,0,0,0,0,0,0,0,0x70,0,0x80,0x0f,0, +0xf0,0x01,0,0,0,0,0,0,0xc0,0x0f,0,0xf8,0xff,0xff,0xff, +0x01,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xff,0xff,0xff,0xff,0,0xe0,0x01,0, +0,0,0,0,0,0,0,0,0x70,0,0,0x3e,0,0xf0,0, +0,0,0,0,0,0,0xe0,0x07,0,0xfe,0xff,0xff,0xff,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xfc,0xff,0xff,0xff,0x03,0xc0,0x03,0,0,0, +0,0,0,0,0,0,0x70,0,0,0xfc,0,0x78,0,0,0, +0,0,0,0,0xf8,0x01,0x80,0xff,0xff,0xff,0x3f,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xf0,0xff,0xff,0xff,0x0f,0xc0,0x07,0,0,0,0,0, +0,0,0,0,0x78,0,0,0xe0,0x03,0x3c,0,0,0,0,0, +0,0,0x7c,0,0xe0,0xff,0xff,0xff,0x0f,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xc0,0xff,0xff,0xff,0x1f,0,0x0f,0,0,0,0,0,0,0, +0,0,0x7c,0,0,0xc0,0x1f,0x1e,0,0,0,0,0,0,0, +0x3e,0,0xf0,0xff,0xff,0xff,0x03,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc0, +0xff,0xff,0xff,0x1f,0,0x0f,0,0,0,0,0,0,0,0,0, +0x7c,0,0,0xc0,0x1f,0x1e,0,0,0,0,0,0,0,0x3e,0, +0xf0,0xff,0xff,0xff,0x03,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x80,0xff,0xff, +0xff,0x7f,0,0x1e,0,0,0,0,0,0,0,0,0,0x7c,0, +0,0,0x3f,0x0f,0,0,0,0,0,0,0x80,0x0f,0,0xfc,0xff, +0xff,0xff,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xfe,0xff,0xff,0xff, +0x01,0x7c,0,0,0,0,0,0,0,0,0,0x3c,0,0,0, +0xfc,0x0f,0,0,0,0,0,0,0xe0,0x07,0,0xff,0xff,0xff,0x3f, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0xff,0x03,0x78, +0,0,0,0,0,0,0,0,0,0x3c,0,0,0,0xf8,0x07, +0,0,0,0,0,0,0xf0,0x01,0xc0,0xff,0xff,0xff,0x1f,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xf0,0xff,0xff,0xff,0x07,0xf0,0x01,0, +0,0,0,0,0,0,0,0x1c,0,0,0,0xfc,0x03,0,0, +0,0,0,0,0xf8,0,0xf0,0xff,0xff,0xff,0x07,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xf0,0xff,0xff,0xff,0x07,0xf0,0x01,0,0,0, +0,0,0,0,0,0x1c,0,0,0,0xfc,0x03,0,0,0,0, +0,0,0xf8,0,0xf0,0xff,0xff,0xff,0x07,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xe0,0xff,0xff,0xff,0x1f,0xe0,0x03,0,0,0,0,0, +0,0,0,0x1c,0,0,0,0xfc,0x01,0,0,0,0,0,0, +0x7e,0,0xf8,0xff,0xff,0xff,0x01,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xff,0xff,0xff,0xff,0x80,0x0f,0,0,0,0,0,0,0, +0,0x1e,0,0,0,0xff,0,0,0,0,0,0,0x80,0x0f,0, +0xfe,0xff,0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xfc,0xff,0xff,0xff,0x01,0x1f,0,0,0,0,0,0,0,0,0x0e, +0,0,0x80,0x7f,0,0,0,0,0,0,0xc0,0x07,0x80,0xff,0xff, +0xff,0x0f,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xf8,0xff, +0xff,0xff,0x07,0x3e,0,0,0,0,0,0,0,0,0x0e,0,0, +0xc0,0x3f,0,0,0,0,0,0,0xf0,0x01,0xe0,0xff,0xff,0xff,0x07, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0xff,0xff, +0x0f,0x7c,0,0,0,0,0,0,0,0,0x0f,0,0,0xe0,0x3f, +0,0,0,0,0,0,0xf8,0x01,0xf8,0xff,0xff,0xff,0x01,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xe0,0xff,0xff,0xff,0x0f,0x7c, +0,0,0,0,0,0,0,0,0x0f,0,0,0xe0,0x3f,0,0, +0,0,0,0,0xf8,0x01,0xf8,0xff,0xff,0xff,0x01,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xc0,0xff,0xff,0xff,0x3f,0xf0,0,0, +0,0,0,0,0,0,0x0f,0,0,0xf0,0x1f,0,0,0,0, +0,0,0x7e,0,0xfc,0xff,0xff,0xff,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xfe,0xff,0xff,0x7f,0xe0,0x01,0,0,0, +0,0,0,0x80,0x07,0,0,0xfc,0x1f,0,0,0,0,0,0, +0x3e,0,0xff,0xff,0xff,0x3f,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xfc,0xff,0xff,0xff,0xe0,0x03,0,0,0,0,0, +0,0x80,0x07,0,0,0xfc,0x0f,0,0,0,0,0,0,0x1f,0xc0, +0xff,0xff,0xff,0x1f,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xf0,0xff,0xff,0xff,0xc1,0x07,0,0,0,0,0,0,0xc0, +0x03,0,0,0xfe,0x07,0,0,0,0,0,0xc0,0x0f,0xf0,0xff,0xff, +0xff,0x07,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xf0,0xff,0xff,0xff,0xc1,0x07,0,0,0,0,0,0,0xc0,0x03,0, +0,0xfe,0x07,0,0,0,0,0,0xc0,0x0f,0xf0,0xff,0xff,0xff,0x07, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xf0,0xff, +0xff,0xff,0x83,0x0f,0,0,0,0,0,0,0xc0,0x01,0,0,0xff, +0x07,0,0,0,0,0,0xc0,0x07,0xf8,0xff,0xff,0xff,0x03,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0x80,0xff,0xff,0xff, +0x0f,0x1e,0,0,0,0,0,0,0xe0,0x01,0,0xc0,0xef,0x03,0, +0,0,0,0,0xe0,0x01,0xff,0xff,0xff,0x7f,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xfe,0xff,0xff,0x0f,0x1c, +0,0,0,0,0,0,0xf0,0,0,0xe0,0xf3,0x01,0,0,0, +0,0,0xf0,0x80,0xff,0xff,0xff,0x1f,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0x1f,0x38,0,0, +0,0,0,0,0x70,0,0,0xf0,0xf9,0,0,0,0,0,0, +0x78,0xe0,0xff,0xff,0xff,0x07,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xfc,0xff,0xff,0x1f,0x38,0,0,0,0, +0,0,0x70,0,0,0xf0,0xf9,0,0,0,0,0,0,0x78,0xe0, +0xff,0xff,0xff,0x07,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xf0,0xff,0xff,0x7f,0xf0,0,0,0,0,0,0, +0x78,0,0,0x78,0x7c,0,0,0,0,0,0,0x3c,0xf0,0xff,0xff, +0xff,0x03,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0x80,0xff,0xff,0xff,0xe0,0,0,0,0,0,0,0x78,0, +0,0x7e,0x7c,0,0,0,0,0,0,0x3c,0xf8,0xff,0xff,0xff,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xff,0xff,0xff,0xe0,0x01,0,0,0,0,0,0x3c,0,0,0x3e, +0x3e,0,0,0,0,0,0,0x1f,0xfe,0xff,0xff,0x7f,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xfe, +0xff,0xff,0xc1,0x03,0,0,0,0,0,0x3c,0,0,0x0f,0x1e,0, +0,0,0,0,0,0x0f,0xfe,0xff,0xff,0x1f,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xfe,0xff,0xff, +0xc1,0x03,0,0,0,0,0,0x3c,0,0,0x0f,0x1e,0,0,0, +0,0,0,0x0f,0xfe,0xff,0xff,0x1f,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0x83,0x07, +0,0,0,0,0,0x1e,0,0xc0,0x07,0x0f,0,0,0,0,0, +0x80,0x07,0xff,0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xf0,0xff,0xff,0x07,0x0f,0,0, +0,0,0,0x0f,0,0xe0,0x83,0x0f,0,0,0,0,0,0x80,0xc7, +0xff,0xff,0xff,0x01,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xc0,0xff,0xff,0x0f,0x0f,0,0,0,0, +0,0x07,0,0xf0,0x81,0x07,0,0,0,0,0,0xc0,0xc3,0xff,0xff, +0xff,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xff,0xff,0x1f,0x1c,0,0,0,0,0x80,0x03, +0,0x7c,0xc0,0x03,0,0,0,0,0,0xe0,0xe1,0xff,0xff,0x7f,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xfe,0xff,0x3f,0x3c,0,0,0,0,0xc0,0x03,0,0x3f, +0xe0,0x01,0,0,0,0,0,0xe0,0xe0,0xff,0xff,0x1f,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xfe,0xff,0x3f,0x3c,0,0,0,0,0xc0,0x03,0,0x3f,0xe0,0x01, +0,0,0,0,0,0xe0,0xe0,0xff,0xff,0x1f,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xf8, +0xff,0x3f,0x3c,0,0,0,0,0xe0,0x01,0x80,0x1f,0xe0,0x01,0,0, +0,0,0,0xf0,0xe0,0xff,0xff,0x07,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xf8,0xff,0x3f, +0x38,0,0,0,0,0xe0,0,0xe0,0x07,0xf0,0,0,0,0,0, +0,0x78,0xf8,0xff,0xff,0x01,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xf8,0xff,0x3f,0x38,0, +0,0,0,0xf0,0,0xf0,0x03,0x70,0,0,0,0,0,0,0x78, +0xf8,0xff,0xff,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xf8,0xff,0x3f,0x38,0,0,0, +0,0x70,0,0xfe,0,0x38,0,0,0,0,0,0,0x3c,0xfc,0xff, +0x3f,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xf8,0xff,0x3f,0x38,0,0,0,0,0x70, +0,0xfe,0,0x38,0,0,0,0,0,0,0x3c,0xfc,0xff,0x3f,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xf8,0xff,0x3f,0x38,0,0,0,0,0x38,0x80,0x3f, +0,0x3c,0,0,0,0,0,0,0x1c,0xfc,0xff,0x3f,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xfc,0xff,0x3f,0x38,0,0,0,0,0x1c,0xc0,0x0f,0,0x1c, +0,0,0,0,0,0,0x1e,0xfc,0xff,0x3f,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xfc,0xff,0x1f,0x38,0,0,0,0,0x1e,0xf0,0x03,0,0x1e,0,0, +0,0,0,0,0x1e,0xfc,0xff,0x3f,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xfe,0xff, +0x1f,0x38,0,0,0,0,0x0f,0x7f,0,0,0x0f,0,0,0,0, +0,0,0x0f,0xfc,0xff,0x3f,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xfe,0xff,0x1f,0x38, +0,0,0,0,0x0f,0x7f,0,0,0x0f,0,0,0,0,0,0, +0x0f,0xfc,0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xfe,0xff,0x1f,0x38,0,0, +0,0,0xe7,0x3f,0,0,0x07,0,0,0,0,0,0,0x0f,0xfc, +0xff,0x7f,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xff,0xff,0x0f,0x38,0,0,0,0x80, +0xfb,0x0f,0,0x80,0x03,0,0,0,0,0,0,0x07,0xfc,0xff,0x7f, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xff,0xff,0x07,0x38,0,0,0,0xc0,0xff,0x01, +0,0xc0,0x03,0,0,0,0,0,0x80,0x07,0xf8,0xff,0xff,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xff,0xff,0x07,0x38,0,0,0,0xe0,0x3f,0,0,0xc0, +0x01,0,0,0,0,0,0xc0,0x03,0xf8,0xff,0xff,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xff,0xff,0x07,0x38,0,0,0,0xe0,0x3f,0,0,0xc0,0x01,0, +0,0,0,0,0xc0,0x03,0xf8,0xff,0xff,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0x80,0xff, +0xff,0x07,0x38,0,0,0,0xe0,0x0f,0,0,0xe0,0,0,0,0, +0,0,0xc0,0x03,0xf8,0xff,0xff,0x01,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0x80,0xff,0xff,0x03, +0x38,0,0,0,0xf0,0x03,0,0,0xf0,0,0,0,0,0,0, +0xe0,0x01,0xf8,0xff,0xff,0x01,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff,0x03,0x38,0, +0,0,0x70,0,0,0,0x70,0,0,0,0,0,0,0xe0,0x01, +0xf0,0xff,0xff,0x01,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xc0,0xff,0xff,0x01,0x38,0,0,0, +0,0,0,0,0x78,0,0,0,0,0,0,0xe0,0,0xf0,0xff, +0xff,0x03,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xe0,0xff,0xff,0,0x38,0,0,0,0,0, +0,0,0x38,0,0,0,0,0,0,0xf0,0,0xf0,0xff,0xff,0x03, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xe0,0xff,0xff,0,0x38,0,0,0,0,0,0,0, +0x38,0,0,0,0,0,0,0xf0,0,0xf0,0xff,0xff,0x03,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xe0,0xff,0xff,0,0x38,0,0,0,0,0,0,0,0x3c,0, +0,0,0,0,0,0xf0,0,0xe0,0xff,0xff,0x07,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xe0, +0xff,0xff,0,0x38,0,0,0,0,0,0,0,0x1e,0,0,0, +0,0,0,0x78,0,0xe0,0xff,0xff,0x07,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xf0,0xff,0x7f, +0,0x18,0,0,0,0,0,0,0,0x1e,0,0,0,0,0, +0,0x78,0,0xc0,0xff,0xff,0x0f,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xf0,0xff,0x7f,0,0x18, +0,0,0,0,0,0,0,0x0f,0,0,0,0,0,0,0x3c, +0,0xc0,0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xf0,0xff,0x7f,0,0x18,0,0, +0,0,0,0,0,0x0f,0,0,0,0,0,0,0x3c,0,0xc0, +0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xf8,0xff,0x7f,0,0x1c,0,0,0,0, +0,0,0x80,0x07,0,0,0,0,0,0,0x3c,0,0x80,0xff,0xff, +0x0f,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xf8,0xff,0x3f,0,0x1c,0,0,0,0,0,0, +0x80,0x07,0,0,0,0,0,0,0x1e,0,0x80,0xff,0xff,0x1f,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xfc,0xff,0x1f,0,0x1c,0,0,0,0,0,0,0xc0,0x03, +0,0,0,0,0,0,0x1e,0,0x80,0xff,0xff,0x1f,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xfc,0xff,0x1f,0,0x1c,0,0,0,0,0,0,0xc0,0x03,0,0, +0,0,0,0,0x1f,0,0,0xff,0xff,0x1f,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xfc,0xff, +0x1f,0,0x1c,0,0,0,0,0,0,0xc0,0x03,0,0,0,0, +0,0,0x1f,0,0,0xff,0xff,0x1f,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xfe,0xff,0x0f,0, +0x1c,0,0,0,0,0,0,0xe0,0x01,0,0,0,0,0,0, +0x0f,0,0,0xff,0xff,0x3f,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xfe,0xff,0x0f,0,0x1c,0, +0,0,0,0,0,0xe0,0,0,0,0,0,0,0,0x0f,0, +0,0xff,0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xfe,0xff,0x07,0,0x1c,0,0,0, +0,0,0,0xf0,0,0,0,0,0,0,0x80,0x07,0,0,0xfe, +0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xff,0xff,0x07,0,0x1e,0,0,0,0,0, +0,0x70,0,0,0,0,0,0,0x80,0x07,0,0,0xfe,0xff,0x7f, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xff,0xff,0x07,0,0x1e,0,0,0,0,0,0,0x70, +0,0,0,0,0,0,0x80,0x07,0,0,0xfe,0xff,0x7f,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xff,0xff,0x07,0,0x1e,0,0,0,0,0,0,0x78,0,0, +0,0,0,0,0x80,0x07,0,0,0xfc,0xff,0x7f,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0x80,0xff, +0xff,0x03,0,0x1e,0,0,0,0,0,0,0x38,0,0,0,0, +0,0,0x80,0x03,0,0,0xfc,0xff,0xff,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0x80,0xff,0xff,0x03, +0,0x1e,0,0,0,0,0,0,0x3c,0,0,0,0,0,0, +0xc0,0x03,0,0,0xfc,0xff,0xff,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff,0x03,0,0x1e, +0,0,0,0,0,0,0x1e,0,0,0,0,0,0,0xc0,0x03, +0,0,0xf8,0xff,0xff,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xc0,0xff,0xff,0x03,0,0x1e,0,0, +0,0,0,0,0x1e,0,0,0,0,0,0,0xc0,0x03,0,0, +0xf8,0xff,0xff,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xc0,0xff,0xff,0x01,0,0x1e,0,0,0,0, +0,0,0x1e,0,0,0,0,0,0,0xc0,0x03,0,0,0xf8,0xff, +0xff,0x01,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xe0,0xff,0xff,0x01,0,0x1c,0,0,0,0,0,0, +0x0f,0,0,0,0,0,0,0xc0,0x01,0,0,0xf0,0xff,0xff,0x01, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xe0,0xff,0xff,0,0,0x1c,0,0,0,0,0,0x80,0x07,0, +0,0,0,0,0,0xc0,0x01,0,0,0xf0,0xff,0xff,0x01,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xe0, +0xff,0xff,0,0,0x3c,0,0,0,0,0,0x80,0x07,0,0,0, +0,0,0,0xc0,0x01,0,0,0xf0,0xff,0xff,0x03,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xf0,0xff,0x7f, +0,0,0x3c,0,0,0,0,0,0x80,0x03,0,0,0,0,0, +0,0xc0,0x01,0,0,0xe0,0xff,0xff,0x03,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xf0,0xff,0x7f,0,0, +0x3c,0,0,0,0,0,0x80,0x03,0,0,0,0,0,0,0xc0, +0x01,0,0,0xe0,0xff,0xff,0x03,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xf0,0xff,0x7f,0,0,0x38,0, +0,0,0,0,0xc0,0x03,0,0,0,0,0,0,0xc0,0x01,0, +0,0xe0,0xff,0xff,0x03,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xf8,0xff,0x3f,0,0,0x38,0,0,0, +0,0,0xc0,0x01,0,0,0,0,0,0,0xc0,0x01,0,0,0xe0, +0xff,0xff,0x07,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xf8,0xff,0x3f,0,0,0x38,0,0,0,0,0, +0xe0,0x01,0,0,0,0,0,0,0xc0,0x01,0,0,0xc0,0xff,0xff, +0x07,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xfc,0xff,0x1f,0,0,0x38,0,0,0,0,0,0xe0,0, +0,0,0,0,0,0,0xc0,0x01,0,0,0xc0,0xff,0xff,0x07,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xfc,0xff,0x1f,0,0,0x38,0,0,0,0,0,0xe0,0,0,0, +0,0,0,0,0xc0,0x01,0,0,0xc0,0xff,0xff,0x07,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xfc,0xff, +0x1f,0,0,0x38,0,0,0,0,0,0xf0,0,0,0,0,0, +0,0,0xc0,0x01,0,0,0x80,0xff,0xff,0x0f,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xfc,0xff,0x1f,0, +0,0x38,0,0,0,0,0,0x78,0,0,0,0,0,0,0, +0xc0,0x03,0,0,0x80,0xff,0xff,0x0f,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xfe,0xff,0x0f,0,0,0x38, +0,0,0,0,0,0x78,0,0,0,0,0,0,0,0xc0,0x03, +0,0,0,0xff,0xff,0x1f,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xfe,0xff,0x0f,0,0,0x3c,0,0, +0,0,0,0x3c,0,0,0,0,0,0,0,0x80,0x07,0,0, +0,0xff,0xff,0x1f,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xfe,0xff,0x0f,0,0,0x3c,0,0,0,0, +0,0x3c,0,0,0,0,0,0,0,0x80,0x07,0,0,0,0xff, +0xff,0x1f,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xff,0x07,0,0,0xfc,0x3f,0,0,0,0,0,0x3e, +0,0,0,0,0,0,0,0x80,0x07,0,0,0,0xfe,0xff,0x1f, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x0f,0,0xe0,0xff,0xff,0x3f,0,0,0,0,0,0x1e,0,0, +0,0,0,0,0,0,0x0f,0,0,0,0xfe,0xff,0x3f,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xfc,0xff,0xff,0xff,0x3f,0,0,0,0,0,0x0f,0,0,0,0, +0,0,0,0,0x0f,0,0,0,0xfe,0xff,0x3f,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0xff, +0xff,0x0f,0x3c,0,0,0,0,0,0x0f,0,0,0,0,0,0, +0,0,0x0e,0,0,0,0xfc,0xff,0x3f,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0xff,0xff,0x0f, +0x3c,0,0,0,0,0,0x0f,0,0,0,0,0,0,0,0, +0x0e,0,0,0,0xfc,0xff,0x3f,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0x01,0,0x38,0, +0,0,0,0x80,0x07,0,0,0,0,0,0,0,0,0x1e,0, +0,0,0xfc,0xff,0x7f,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xf0,0xff,0xff,0,0,0,0x38,0,0,0, +0,0x80,0x07,0,0,0,0,0,0,0,0,0x3c,0,0,0, +0xfc,0xff,0x7f,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xff,0xff,0x03,0,0,0,0x38,0,0,0,0,0xc0, +0x03,0,0,0,0,0,0,0,0,0x78,0,0,0,0xf8,0xff, +0x7f,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xfc,0xff,0x1f,0,0,0,0,0x78,0,0,0,0,0xc0,0x01,0, +0,0,0,0,0,0,0,0x70,0,0,0,0xf8,0xff,0xff,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff, +0x01,0,0,0,0,0x70,0,0,0,0,0xe0,0x01,0,0,0, +0,0,0,0,0,0xf0,0x01,0,0,0xf0,0xff,0xff,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xc0,0xff,0xff,0x01,0, +0,0,0,0x70,0,0,0,0,0xe0,0x01,0,0,0,0,0, +0,0,0,0xf0,0x01,0,0,0xf0,0xff,0xff,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xff,0xff,0x07,0,0xfe,0,0, +0,0x70,0,0,0,0,0xe0,0,0,0,0,0,0,0,0, +0,0xe0,0x03,0,0,0xf0,0xff,0xff,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xf0,0xff,0x1f,0,0xf8,0xff,0,0,0,0x70, +0,0,0,0,0xf0,0,0,0,0,0,0,0,0,0,0xc0, +0x03,0,0,0xf0,0xff,0xff,0x01,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xfe,0x7f,0,0xe0,0xff,0x7f,0,0,0,0x70,0,0, +0,0,0xf8,0,0,0,0,0,0,0,0,0,0x80,0x0f,0, +0,0xf0,0xff,0xff,0x01,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xe0,0xff,0x03,0,0xf0,0xff,0x3f,0,0,0,0x70,0,0,0,0, +0x78,0,0,0,0,0,0,0,0,0,0,0x1f,0,0,0xe0, +0xff,0xff,0x03,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xe0,0xff, +0x03,0,0xf0,0xff,0x3f,0,0,0,0x70,0,0,0,0,0x78,0, +0,0,0,0,0,0,0,0,0,0x1f,0,0,0xe0,0xff,0xff, +0x03,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xfc,0x7f,0,0, +0xf8,0xff,0x3f,0,0,0,0x70,0,0,0,0,0x78,0,0,0, +0,0,0,0,0,0,0,0x7c,0,0,0xe0,0xff,0xff,0x03,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x80,0xff,0x07,0,0,0xf8,0xff, +0x1f,0,0,0,0xe0,0,0,0,0,0x3c,0,0,0,0,0, +0,0,0,0,0,0xf8,0x01,0,0xe0,0xff,0xff,0x03,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xc0,0xff,0,0,0,0xfc,0xff,0x1f,0, +0,0,0xe0,0,0,0,0,0x3c,0,0,0,0,0,0,0, +0,0,0,0xe0,0x07,0,0xc0,0xff,0xff,0x03,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xc0,0x1f,0,0,0,0xfe,0xff,0x1f,0,0,0, +0xe0,0,0,0,0,0x3c,0,0,0x60,0,0,0,0,0,0, +0,0xc0,0x3f,0,0xc0,0xff,0xff,0x07,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xc0,0x1f,0,0,0,0xfe,0xff,0x1f,0,0,0,0xe0,0, +0,0,0,0x3c,0,0,0x60,0,0,0,0,0,0,0,0xc0, +0x3f,0,0xc0,0xff,0xff,0x07,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x80,0x03,0,0,0,0xfe,0xff,0x0f,0,0,0,0xe0,0,0,0, +0,0x3e,0,0,0x70,0,0,0,0,0,0,0,0,0xff,0x01, +0x80,0xff,0xff,0x07,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xfe,0xff,0x0f,0,0,0,0xe0,0,0,0,0,0x3f, +0,0,0x38,0,0,0,0,0,0,0,0,0xf8,0x3f,0x80,0xff, +0xff,0x0f,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xff,0xff,0x07,0,0,0,0xc0,0x01,0,0,0,0xff,0,0, +0x38,0,0,0,0,0,0,0,0,0xc0,0xff,0,0xfc,0xff,0x0f, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xff, +0xff,0x07,0,0,0,0xc0,0x01,0,0,0,0xf7,0x03,0,0x3c,0, +0,0,0,0,0,0,0,0,0xff,0x0f,0xc0,0xff,0x0f,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xff,0xff,0x07, +0,0,0,0xc0,0x01,0,0,0,0xf7,0x03,0,0x3c,0,0,0, +0,0,0,0,0,0,0xff,0x0f,0xc0,0xff,0x0f,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0x80,0xff,0xff,0x03,0,0, +0,0xc0,0x01,0,0,0x80,0xe3,0x0f,0,0x3f,0,0,0,0,0, +0,0,0,0,0xf0,0x7f,0,0xf8,0x1f,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x80,0xff,0xff,0x03,0,0,0,0xc0, +0x01,0,0,0x80,0xe3,0xff,0xff,0x3f,0,0,0,0,0,0,0, +0,0,0x80,0xff,0x03,0x80,0x0f,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0x80,0xff,0xff,0x03,0,0,0,0xc0,0x01,0, +0,0x80,0xc3,0xff,0xff,0x3f,0,0,0,0,0,0,0,0,0, +0,0xfe,0x1f,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xc0,0xff,0xff,0x01,0,0,0,0xc0,0x01,0,0,0xc0, +0x01,0xff,0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0xe0, +0xff,0x01,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xc0,0xff,0xff,0,0,0,0,0xc0,0x01,0,0,0xc0,0x01,0xfe, +0x7f,0x38,0,0,0,0,0,0,0,0,0,0,0,0xfe,0x1f, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc0, +0xff,0xff,0,0,0,0,0xc0,0x01,0,0,0xc0,0x01,0xfe,0x7f,0x38, +0,0,0,0,0,0,0,0,0,0,0,0xfe,0x1f,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0xff, +0,0,0,0,0xc1,0x01,0,0,0xe0,0,0x3e,0,0x38,0,0, +0,0,0,0,0,0,0,0,0,0xf0,0xff,0x01,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0xff,0,0, +0,0x80,0xc3,0x01,0,0,0xe0,0,0x7c,0,0x3c,0,0,0,0, +0,0,0,0,0,0,0,0,0xff,0x7f,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xf0,0xff,0x7f,0,0,0,0xf0, +0xc3,0x01,0,0,0xf0,0,0xf0,0,0x3c,0,0,0,0,0,0, +0,0,0,0,0,0,0x80,0xff,0xff,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xf8,0xff,0x7f,0,0,0,0xf8,0xc3,0x01, +0,0,0xf0,0,0xe0,0x01,0x3c,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xe0,0xff,0xff,0x03,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xf8,0xff,0x7f,0,0,0,0xf8,0xc3,0x01,0,0, +0xf0,0,0xe0,0x01,0x3c,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xe0,0xff,0xff,0x03,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xf8,0xff,0x7f,0,0,0,0xff,0xc3,0x03,0,0,0x70,0, +0xc0,0x03,0x3c,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x80,0xff,0xff,0xff,0x07,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xf8,0xff,0x3f,0,0,0x80,0xff,0xc3,0x03,0,0,0x70,0,0xc0,0x03, +0x3c,0,0,0,0,0,0,0,0,0,0,0,0xf0,0x01,0, +0xf0,0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xf8,0xff, +0x1f,0,0,0xe0,0xff,0xc3,0x03,0,0,0x78,0,0x80,0x07,0x3c,0, +0,0,0,0,0,0,0,0,0,0,0xf0,0x7f,0,0,0, +0xfc,0x0f,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xfc,0xff,0x1f,0, +0,0xf8,0xff,0xc3,0x03,0,0,0x78,0,0,0x0f,0x3c,0,0,0, +0,0,0,0,0,0,0,0,0xe0,0xff,0x0f,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xfc,0xff,0x1f,0,0,0xf8, +0xff,0xc3,0x03,0,0,0x78,0,0,0x0f,0x3c,0,0,0,0,0, +0,0,0,0,0,0,0xe0,0xff,0x0f,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xfc,0xff,0x0f,0,0,0xfe,0xff,0x83, +0x03,0,0,0x3c,0,0,0x1e,0x1c,0,0,0,0,0,0,0, +0,0xfc,0xff,0x01,0xe0,0xff,0xff,0x01,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xfe,0xff,0x0f,0,0x80,0xff,0xff,0x87,0x03,0, +0,0x3c,0,0,0x3c,0x1c,0,0,0,0,0,0,0xf8,0xff,0xff, +0xff,0xff,0xe1,0xff,0xff,0x03,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xfe,0xff,0x0f,0,0xc0,0xff,0xff,0x87,0x03,0,0,0x3c, +0,0,0x78,0x1c,0,0,0,0,0,0xfe,0xff,0xff,0xff,0xff,0xff, +0xe1,0xff,0xff,0x03,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xff,0xff,0x07,0,0xf8,0xff,0xff,0xc7,0x03,0,0,0x1c,0,0, +0xe0,0x1c,0,0,0,0x80,0xff,0xff,0xff,0x01,0,0,0,0xc0,0xff, +0xff,0x03,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xff, +0xff,0x07,0,0xf8,0xff,0xff,0xc7,0x03,0,0,0x1c,0,0,0xe0,0x1c, +0,0,0,0x80,0xff,0xff,0xff,0x01,0,0,0,0xc0,0xff,0xff,0x03, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xff,0xff,0x03, +0,0xfe,0xff,0xff,0xc7,0x03,0,0,0x1c,0,0,0xe0,0x1f,0,0, +0,0xf0,0xff,0xff,0,0,0,0,0,0x80,0xff,0xff,0x07,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0x80,0xff,0xff,0x03,0,0xff, +0xff,0xff,0xc7,0x03,0,0,0x1c,0,0,0x80,0x1f,0,0,0,0xff, +0xff,0x03,0,0,0,0xfc,0x03,0x80,0xff,0xff,0x07,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x80,0xff,0xff,0x03,0xc0,0xff,0xff,0xff, +0xc7,0x03,0,0,0x1e,0,0,0,0x1f,0,0,0xf8,0xff,0x0f,0, +0x80,0xff,0xff,0xff,0x1f,0,0xff,0xff,0x07,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0x80,0xff,0xff,0x01,0xf0,0xff,0xff,0xff,0xc3,0x03, +0,0,0xfe,0xff,0,0,0x1f,0,0xe0,0xff,0x3f,0,0,0x80,0xff, +0xff,0xff,0x3f,0,0xff,0xff,0x07,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xc0,0xff,0xff,0x01,0xfc,0xff,0xff,0xff,0xc1,0x03,0,0, +0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0,0,0x80,0xff,0xff,0xff, +0x7f,0,0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xc0,0xff,0xff,0x01,0xfc,0xff,0xff,0xff,0xc1,0x03,0,0,0xfe,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x01,0,0,0x80,0xff,0xff,0xff,0x7f,0, +0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xe0, +0xff,0xff,0x01,0xff,0xff,0xff,0xff,0x80,0x03,0,0,0xfe,0xff,0xff,0xff, +0xff,0xff,0xff,0x07,0,0,0,0,0xfe,0xff,0xff,0xff,0x01,0xfe,0xff, +0x1f,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0xff, +0x80,0xff,0xff,0xff,0x3f,0,0,0,0,0x7c,0,0,0xf5,0xff,0xff, +0x3f,0,0,0,0,0,0xfc,0xff,0xff,0xff,0x07,0xfe,0xff,0x1f,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0x7f,0xf0,0xff, +0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xf0,0xff,0xff,0xff,0x1f,0xfe,0xff,0x1f,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xf0,0xff,0x7f,0xf8,0xff,0xff,0xff, +0x03,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xc0,0xff,0xff,0xff,0x3f,0xfe,0xff,0x3f,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xf0,0xff,0x7f,0xf8,0xff,0xff,0xff,0x03,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xc0,0xff,0xff,0xff,0x3f,0xfe,0xff,0x3f,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xf0,0xff,0xff,0xff,0xff,0xff,0x7f,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xff, +0xff,0xff,0xff,0xfc,0xff,0x3f,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xf8,0xff,0xff,0xff,0xff,0xff,0x3f,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xfc,0xff,0xff, +0xff,0xff,0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xf8,0xff,0xff,0xff,0xff,0xff,0x0f,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xf0,0xff,0xff,0xff,0xff, +0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xfc,0xff, +0xff,0xff,0xff,0xff,0x03,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xe0,0xff,0xff,0xff,0xff,0xff,0x7f, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0xff, +0xff,0xff,0x03,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xe0,0xff,0xff,0xff,0xff,0xff,0x7f,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0xff,0xff,0xff, +0x01,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x80,0xff,0xff,0xff,0xff,0xff,0x7f,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xfc,0xff,0xff,0xff,0xff,0x7f,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xfe,0xff,0xff,0xff,0xff,0xff,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xfe,0xff,0xff,0xff,0xff,0x3f,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xfc,0xff,0xff,0xff,0xff,0xff,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xfe,0xff,0xff,0xff,0xff,0x07,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xf0, +0xff,0xff,0xff,0xff,0xff,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xfe,0xff,0xff,0xff,0xff,0x07,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xf0,0xff,0xff, +0xff,0xff,0xff,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xfe, +0xff,0xff,0xff,0xff,0x03,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0xff,0xff,0xff, +0xff,0x01,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xff,0xff,0xff, +0xff,0xff,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x80,0xff,0xff,0xff,0xff,0xff,0x01, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0x80,0xff,0xff,0xff,0xff,0x3f, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xfe,0xff,0xff,0xff,0xff,0x01,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x80,0xff,0xff,0xff,0xff,0x1f,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xf8,0xff,0xff,0xff,0xff,0x03,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xc0,0xff,0xff,0xff,0xff,0x07,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xf0,0xff,0xff,0xff,0xff,0x03,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xc0,0xff,0xff,0xff,0xff,0x07,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xf0,0xff,0xff,0xff,0xff,0x03,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xc0,0xff,0xff,0xff,0xff,0x01,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc0, +0xff,0xff,0xff,0xff,0x07,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc0, +0xff,0xff,0xff,0xff,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x80,0xff,0xff, +0xff,0xff,0x07,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0xff, +0xff,0x1f,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xff,0xff,0xff,0xff, +0x07,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xe0,0xff,0xff,0xff,0x0f, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0xff,0x0f,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xe0,0xff,0xff,0xff,0x0f,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xfc,0xff,0xff,0xff,0x0f,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xf0,0xff,0xff,0xff,0x03,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xf8,0xff,0xff,0xff,0x0f,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xf0,0xff,0xff,0xff,0x01,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xe0,0xff,0xff,0xff,0x0f,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xf8,0xff,0xff,0x7f,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xc0,0xff,0xff,0xff,0x0f,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xf8,0xff,0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xff,0xff,0xff,0x1f,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xf8,0xff, +0xff,0x3f,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xff,0xff, +0xff,0x1f,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xf8,0xff,0xff,0x07, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0x3f, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xfc,0xff,0xff,0x03,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xf8,0xff,0xff,0x3f,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xfe,0xff,0xff,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xe0,0xff,0xff,0x3f,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xfe,0xff,0x3f,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0x80,0xff,0xff,0x3f,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xfe,0xff,0x3f,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0x80,0xff,0xff,0x3f,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xfe,0xff,0x0f,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xfe,0xff,0x7f,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xff, +0xff,0x07,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xfc,0xff,0x7f,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xff,0xff,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xf0,0xff, +0x7f,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0x80,0xff,0x3f,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xc0,0xff,0x7f,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x80,0xff,0x1f,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0x80,0xff,0xff,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0x80,0xff,0x1f,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x80,0xff,0xff,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xc0,0xff,0x03,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xfe,0xff,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xc0,0xff,0x01,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xfc,0xff,0x01,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc0, +0x7f,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xf0,0xff,0x01,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xe0,0x1f,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xc0,0xff,0x01,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xe0,0x1f,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xc0,0xff, +0x01,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xe0,0x0f,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0x80,0xff,0x01,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xf0,0x03,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xfe,0x03,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x78,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xf8,0x03,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0x18,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xf0,0x03,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x18,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xf0,0x03,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0xc0,0x07,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x07,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; diff --git a/hacks/flame.c b/hacks/flame.c new file mode 100644 index 00000000..370ab4d7 --- /dev/null +++ b/hacks/flame.c @@ -0,0 +1,283 @@ +/* xscreensaver, Copyright (c) 1993 Jamie Zawinski + * + * 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. No representations are made about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + */ + +/* This file was ported from xlock for use in xscreensaver (and standalone) + * by jwz on 18-Oct-93. Original copyright reads: + * + * static char sccsid[] = "@(#)flame.c 1.4 91/09/27 XLOCK"; + * + * flame.c - recursive fractal cosmic flames. + * + * Copyright (c) 1991 by Patrick J. Naughton. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation. + * + * This file is provided AS IS with no warranties of any kind. The author + * shall have no liability with respect to the infringement of copyrights, + * trade secrets or any patents by this file or any part thereof. In no + * event will the author be liable for any lost revenue or profits or + * other special, indirect and consequential damages. + * + * Comments and additions should be sent to the author: + * + * naughton@eng.sun.com + * + * Patrick J. Naughton + * MS 21-14 + * Sun Laboritories, Inc. + * 2550 Garcia Ave + * Mountain View, CA 94043 + * + * Revision History: + * 27-Jun-91: vary number of functions used. + * 24-Jun-91: fixed portability problem with integer mod (%). + * 06-Jun-91: Written. (received from Scott Graves, spot@cs.cmu.edu). + */ + +#include "screenhack.h" + +/*#include */ + +#define POINT_BUFFER_SIZE 10 +#define MAXLEV 4 + +static double f[2][3][MAXLEV]; /* three non-homogeneous transforms */ +static int max_total; +static int max_levels; +static int max_points; +static int cur_level; +static int snum; +static int anum; +static int num_points; +static int total_points; +static int pixcol; +static int npixels; +static unsigned long *pixels; +static XPoint points [POINT_BUFFER_SIZE]; +static GC gc; + +static int delay, delay2; +static int width, height; + +static short +halfrandom (mv) + int mv; +{ + static short lasthalf = 0; + unsigned long r; + + if (lasthalf) + { + r = lasthalf; + lasthalf = 0; + } + else + { + r = random (); + lasthalf = r >> 16; + } + return (r % mv); +} + + +static void +init_flame (dpy, window) + Display *dpy; + Window window; +{ + int i; + XGCValues gcv; + XWindowAttributes xgwa; + Colormap cmap; + XGetWindowAttributes (dpy, window, &xgwa); + width = xgwa.width; + height = xgwa.height; + cmap = xgwa.colormap; + + max_points = get_integer_resource ("iterations", "Integer"); + if (max_points <= 0) max_points = 100; + + max_levels = max_points; + + max_total = get_integer_resource ("points", "Integer"); + if (max_total <= 0) max_total = 10000; + + delay = get_integer_resource ("delay", "Integer"); + if (delay < 0) delay = 0; + delay2 = get_integer_resource ("delay2", "Integer"); + if (delay2 < 0) delay2 = 0; + + if (mono_p) + npixels = 0; + else + { + int i = get_integer_resource ("ncolors", "Integer"); + double saturation = 1.0; + double value = 1.0; + XColor color; + if (i <= 0) i = 128; + + pixels = (unsigned long *) malloc ((i+1) * sizeof (*pixels)); + for (npixels = 0; npixels < i; npixels++) + { + hsv_to_rgb ((360*npixels)/i, saturation, value, + &color.red, &color.green, &color.blue); + if (! XAllocColor (dpy, cmap, &color)) + break; + pixels [npixels] = color.pixel; + } + } + + gcv.foreground = get_pixel_resource ("foreground", "Foreground", dpy, cmap); + gcv.background = get_pixel_resource ("background", "Background", dpy, cmap); + + if (! mono_p) + { + pixcol = halfrandom (npixels); + gcv.foreground = (pixels [pixcol]); + } + + gc = XCreateGC (dpy, window, GCForeground | GCBackground, &gcv); +} + +static int +recurse (x, y, l, dpy, win) + register double x, y; + register int l; + Display *dpy; + Window win; +{ + int xp, yp, i; + double nx, ny; + + if (l == max_levels) + { + total_points++; + if (total_points > max_total) /* how long each fractal runs */ + return 0; + + if (x > -1.0 && x < 1.0 && y > -1.0 && y < 1.0) + { + xp = points[num_points].x = (int) ((width / 2) * (x + 1.0)); + yp = points[num_points].y = (int) ((height / 2) * (y + 1.0)); + num_points++; + if (num_points >= POINT_BUFFER_SIZE) + { + XDrawPoints (dpy, win, gc, points, num_points, CoordModeOrigin); + num_points = 0; + /* if (delay) usleep (delay); */ + /* XSync (dpy, True); */ + } + } + } + else + { + for (i = 0; i < snum; i++) + { + nx = f[0][0][i] * x + f[0][1][i] * y + f[0][2][i]; + ny = f[1][0][i] * x + f[1][1][i] * y + f[1][2][i]; + if (i < anum) + { + nx = sin(nx); + ny = sin(ny); + } + if (!recurse (nx, ny, l + 1, dpy, win)) + return 0; + } + } + return 1; +} + + +static void +flame (dpy, window) + Display *dpy; + Window window; +{ + int i, j, k; + static int alt = 0; + + if (!(cur_level++ % max_levels)) + { + if (delay2) usleep (delay2); + XClearWindow (dpy, window); + alt = !alt; + } + else + { + if (npixels > 2) + { + XSetForeground (dpy, gc, pixels [pixcol]); + if (--pixcol < 0) + pixcol = npixels - 1; + } + } + + /* number of functions */ + snum = 2 + (cur_level % (MAXLEV - 1)); + + /* how many of them are of alternate form */ + if (alt) + anum = 0; + else + anum = halfrandom (snum) + 2; + + /* 6 coefs per function */ + for (k = 0; k < snum; k++) + { + for (i = 0; i < 2; i++) + for (j = 0; j < 3; j++) + f[i][j][k] = ((double) (random() & 1023) / 512.0 - 1.0); + } + num_points = 0; + total_points = 0; + (void) recurse (0.0, 0.0, 0, dpy, window); + XDrawPoints (dpy, window, gc, points, num_points, CoordModeOrigin); + XSync (dpy, True); + if (delay) usleep (delay); +} + + +char *progclass = "Flame"; + +char *defaults [] = { + "*background: black", + "*foreground: white", + "*colors: 128", + "*iterations: 25", + "*delay: 50000", + "*delay2: 2000000", + "*points: 10000", + 0 +}; + +XrmOptionDescRec options [] = { + { "-ncolors", ".colors", XrmoptionSepArg, 0 }, + { "-iterations", ".iterations", XrmoptionSepArg, 0 }, + { "-delay", ".delay", XrmoptionSepArg, 0 }, + { "-delay2", ".delay2", XrmoptionSepArg, 0 }, + { "-points", ".points", XrmoptionSepArg, 0 } +}; +int options_size = (sizeof (options) / sizeof (options[0])); + +void +screenhack (dpy, window) + Display *dpy; + Window window; +{ + init_flame (dpy, window); + while (1) + flame (dpy, window); +} diff --git a/hacks/flame.man b/hacks/flame.man new file mode 100644 index 00000000..f0f360e5 --- /dev/null +++ b/hacks/flame.man @@ -0,0 +1,65 @@ +.TH XScreenSaver 1 "13-aug-92" "X Version 11" +.SH NAME +flame - draw weird cosmic fractals +.SH SYNOPSIS +.B hopalong +[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-ncolors \fIinteger\fP] [\-iterations \fIinteger\fP] [\-points \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-delay2 \fImicroseconds\fP] +.SH DESCRIPTION +The \fIflame\fP program generates colorful fractal displays. +.SH OPTIONS +.I flame +accepts the following options: +.TP 8 +.B \-window +Draw on a newly-created window. This is the default. +.TP 8 +.B \-root +Draw on the root window. +.TP 8 +.B \-mono +If on a color display, pretend we're on a monochrome display. +.TP 8 +.B \-ncolors integer +How many colors should be used (if possible). Default 128. +The colors used cycle through the hue, making N stops around +the color wheel. +.TP 8 +.B \-iterations integer +How many fractals to generate. Default 25. +.TP 8 +.B \-points integer +How many pixels to draw for each fractal. Default 10000. +.TP 8 +.B \-delay microseconds +How long we should wait between drawing each fractal. Default 50000, +or about 1/20th second. +.TP 8 +.B \-delay2 microseconds +How long we should wait before clearing the screen when each run ends. +Default 2000000, or two seconds. +.SH ENVIRONMENT +.PP +.TP 8 +.B DISPLAY +to get the default host and display number. +.TP 8 +.B XENVIRONMENT +to get the name of a resource file that overrides the global resources +stored in the RESOURCE_MANAGER property. +.SH SEE ALSO +.BR X (1), +.BR xscreensaver (1), +.BR xlock (1) +.SH COPYRIGHT +Copyright \(co 1991 by Patrick J. Naughton + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation. +.SH AUTHOR +Scott Graves , 06-Jun-91.n + +Ability to run standalone or with \fIxscreensaver\fP added by +Jamie Zawinski , 18-Oct-93. diff --git a/hacks/hypercube.c b/hacks/hypercube.c index 37ac0745..829d2a2a 100644 --- a/hacks/hypercube.c +++ b/hacks/hypercube.c @@ -76,7 +76,7 @@ hyper (xy, xz, yz, xw, yw, zw) double _tmp0_, _tmp1_; struct point_state points [16]; - bzero (points, sizeof (points)); + memset (points, 0, sizeof (points)); #define mmmm (&points[0]) #define mmmp (&points[1]) @@ -174,7 +174,7 @@ hyper (xy, xz, yz, xw, yw, zw) mixing an ANSI compiler with a non-ANSI preprocessor, or vice versa. Regardless, your system is broken; it's not a bug in this program. */ -#if __STDC__ || SVR4 +#if __STDC__ # define rotate(name,dim0,dim1,cos,sin) \ _tmp0_ = ((name##dim0 * cos) + (name##dim1 * sin)); \ _tmp1_ = ((name##dim1 * cos) - (name##dim0 * sin)); \ @@ -229,7 +229,7 @@ char *defaults [] = { "*color3: white", "*color4: green", "*color5: cyan", - "*color6: blue", + "*color6: dodgerblue", "*color7: magenta", "*xw: 0.000", diff --git a/hacks/imsmap.c b/hacks/imsmap.c index 8c36bccb..d8b1c088 100644 --- a/hacks/imsmap.c +++ b/hacks/imsmap.c @@ -369,7 +369,7 @@ static void cycle (dpy) Display *dpy; { - XColor *colors = malloc (npixels * sizeof (XColor)); + XColor *colors = (XColor *) malloc (npixels * sizeof (XColor)); time_t stop; int i; for (i = 0; i < npixels; i++) diff --git a/hacks/noseguy.c b/hacks/noseguy.c index 4707d422..207311fc 100644 --- a/hacks/noseguy.c +++ b/hacks/noseguy.c @@ -449,6 +449,8 @@ init_words() words = get_words(); } +static int first_time = 1; + static char * get_words() { @@ -473,6 +475,27 @@ get_words() (void) pclose(pp); if (! buf[0]) sprintf (buf, "\"%s\" produced no output!", orig_program); + else if (!first_time && + !strcmp (buf, "sh: fortune: not found\n")) + switch (random () % 20) + { + case 1: strcat (buf, "( Get with the program, bub. )\n"); + break; + case 2: strcat (buf, + "( I blow my nose at you, you silly person! ) \n"); break; + case 3: strcat (buf, + "\nThe resource you want to\nset is `noseguy.program'\n"); + break; + case 4: + strcat(buf,"\nHelp!! Help!!\nAAAAAAGGGGHHH!! \n\n"); break; + case 5: strcpy (buf, "You have new mail.\n"); break; + case 6: + strcat(buf,"( Hello? Are you paying attention? )\n");break; + case 7: + strcat (buf, "sh: what kind of fool do you take me for? \n"); + break; + } + first_time = 0; p = buf; } else diff --git a/hacks/noses/nose.0.left b/hacks/noses/nose.0.left index 1f5ebdbc..cb3d1528 100644 --- a/hacks/noses/nose.0.left +++ b/hacks/noses/nose.0.left @@ -1,46 +1,38 @@ -#define nose_width 64 -#define nose_height 64 +#define nose_0_left_width 64 +#define nose_0_left_height 64 static unsigned char nose_0_left_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xc0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, - 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x05, 0x00, 0x00, - 0x00, 0xc0, 0xff, 0xed, 0xaa, 0xff, 0x3f, 0x00, 0x00, 0xf8, 0xff, 0xff, - 0xff, 0xff, 0x3f, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, - 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xf0, 0x03, 0x00, - 0x00, 0x80, 0x00, 0x00, 0x00, 0x0e, 0x0c, 0x00, 0x00, 0x80, 0x01, 0x00, - 0x00, 0x03, 0x30, 0x00, 0x06, 0x00, 0x01, 0x00, 0x80, 0x00, 0x40, 0x00, - 0x02, 0x00, 0x02, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x01, 0x00, 0x02, 0x00, - 0x20, 0x00, 0x80, 0x80, 0x01, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x40, - 0x00, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x30, 0x00, 0x00, 0x0c, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, - 0x10, 0x00, 0x00, 0x01, 0x00, 0x00, 0x18, 0x00, 0x20, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x08, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x01, 0x20, 0x00, - 0x00, 0x00, 0x04, 0x00, 0x00, 0x06, 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, - 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xf8, 0xff, - 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, - 0xfc, 0x1f, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x03, 0xff, 0x1f, 0x00, 0x00, - 0x00, 0xf0, 0xff, 0x0f, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x9f, - 0xff, 0x3f, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, - 0x00, 0xbe, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xde, 0xff, 0xff, - 0xff, 0x3f, 0x00, 0x00, 0x00, 0xef, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, - 0x00, 0xef, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xf7, 0xff, 0xff, - 0xff, 0x3f, 0x00, 0x00, 0x00, 0xe7, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, - 0xff, 0x7f, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, - 0x00, 0xfc, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, - 0xff, 0x3f, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x40,0x00, + 0x00,0x04,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x40, + 0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x04,0x00,0x00,0x00,0x00, + 0x40,0x00,0x00,0x04,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0x3f,0x00,0x00, + 0x08,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x20,0x00, + 0x00,0xf8,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0xf0,0x03,0x00,0x00,0x80,0x00, + 0x00,0x00,0x0e,0x0c,0x00,0x00,0x80,0x01,0x00,0x00,0x03,0x30,0x00,0x00,0x00, + 0x01,0x00,0x80,0x00,0x40,0x00,0x00,0x00,0x02,0x00,0x40,0x00,0xc0,0x00,0x00, + 0x00,0x02,0x00,0x20,0x00,0x80,0x00,0x00,0x00,0x04,0x00,0x10,0x00,0x00,0x00, + 0x00,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x00, + 0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00, + 0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08, + 0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00, + 0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10, + 0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x00,0x01,0x00,0x00, + 0x18,0x00,0x20,0x00,0x00,0x01,0x00,0x00,0x08,0x00,0x40,0x00,0x80,0x00,0x00, + 0x00,0x08,0x00,0x80,0x00,0x40,0x00,0x00,0x00,0x0c,0x00,0x00,0x01,0x20,0x00, + 0x00,0x00,0x04,0x00,0x00,0x06,0x18,0x00,0x00,0x00,0x06,0x00,0x00,0xf8,0x07, + 0x00,0x00,0x00,0x02,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0x01,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x0f,0x00,0x00,0x00, + 0x00,0xff,0x00,0x04,0x10,0x00,0x00,0x00,0xc0,0x00,0x03,0x03,0x10,0x00,0x00, + 0x00,0x30,0x00,0x0c,0x01,0x20,0x00,0x00,0x00,0x08,0x00,0x98,0x00,0x20,0x00, + 0x00,0x00,0x0c,0x03,0x60,0x00,0x20,0x00,0x00,0x00,0xc2,0x00,0xc0,0x00,0x20, + 0x00,0x00,0x00,0x42,0x00,0x80,0x00,0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x01, + 0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x01,0x20,0x00,0x00,0x00,0x21,0x00,0x00, + 0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x01,0x00, + 0x00,0x00,0x40,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x02, + 0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x18,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x10,0x00,0x00, + 0x00,0xc0,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00}; diff --git a/hacks/noses/nose.0.right b/hacks/noses/nose.0.right index bcbd5cdc..f387baa7 100644 --- a/hacks/noses/nose.0.right +++ b/hacks/noses/nose.0.right @@ -1,46 +1,38 @@ -#define nose_width 64 -#define nose_height 64 +#define nose_0_right_width 64 +#define nose_0_right_height 64 static unsigned char nose_0_right_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xe0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, - 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x00, 0xfc, 0xff, 0x55, 0xb7, 0xff, 0x03, 0x00, 0x00, 0xfc, 0xff, 0xff, - 0xff, 0xff, 0x1f, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, - 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x30, 0x70, 0x00, - 0x00, 0x80, 0x00, 0x60, 0x00, 0x0c, 0xc0, 0x00, 0x00, 0x40, 0x00, 0x40, - 0x00, 0x02, 0x00, 0x01, 0x00, 0x40, 0x00, 0x80, 0x00, 0x03, 0x00, 0x02, - 0x00, 0x20, 0x00, 0x80, 0x01, 0x01, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x08, 0x00, 0x30, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x08, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, - 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, - 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, - 0x00, 0x18, 0x00, 0x00, 0x80, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, - 0x80, 0x00, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, - 0x00, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, - 0x00, 0x04, 0x80, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x18, 0x60, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0x80, 0xff, 0xff, - 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x3f, - 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xc0, 0xff, 0x03, 0x00, - 0x00, 0x00, 0xfc, 0xff, 0xf0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0xfc, 0xff, - 0xf9, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x3f, 0x00, - 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x7d, 0x00, 0x00, 0x00, 0xfc, 0xff, - 0xff, 0xff, 0x7b, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xf7, 0x00, - 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, 0xfc, 0xff, - 0xff, 0xff, 0xef, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xe7, 0x00, - 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xff, - 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xfc, 0xff, - 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x0f, 0x00, - 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x20,0x00, + 0x00,0x02,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x20, + 0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x02,0x00,0x00,0x00,0x00, + 0x20,0x00,0x00,0x02,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0x1f,0x00,0x00, + 0x04,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x10,0x00, + 0x00,0xfc,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x01,0x00,0x00,0xc0,0x0f, + 0x00,0x00,0x80,0x01,0x00,0x00,0x30,0x70,0x00,0x00,0x80,0x00,0x00,0x00,0x0c, + 0xc0,0x00,0x00,0x40,0x00,0x00,0x00,0x02,0x00,0x01,0x00,0x40,0x00,0x00,0x00, + 0x03,0x00,0x02,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x20,0x00,0x00, + 0x00,0x00,0x00,0x08,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x10,0x00, + 0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08, + 0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00, + 0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10, + 0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00, + 0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x18,0x00,0x00,0x80,0x00, + 0x00,0x08,0x00,0x10,0x00,0x00,0x80,0x00,0x00,0x04,0x00,0x10,0x00,0x00,0x00, + 0x01,0x00,0x02,0x00,0x30,0x00,0x00,0x00,0x02,0x00,0x01,0x00,0x20,0x00,0x00, + 0x00,0x04,0x80,0x00,0x00,0x60,0x00,0x00,0x00,0x18,0x60,0x00,0x00,0x40,0x00, + 0x00,0x00,0xe0,0x1f,0x00,0x00,0x80,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x1f,0x00,0x00,0x00,0x00,0x00, + 0x00,0x08,0x20,0x00,0xff,0x00,0x00,0x00,0x00,0x08,0xc0,0xc0,0x00,0x03,0x00, + 0x00,0x00,0x04,0x80,0x30,0x00,0x0c,0x00,0x00,0x00,0x04,0x00,0x19,0x00,0x10, + 0x00,0x00,0x00,0x04,0x00,0x06,0xc0,0x30,0x00,0x00,0x00,0x04,0x00,0x03,0x00, + 0x43,0x00,0x00,0x00,0x04,0x00,0x01,0x00,0x42,0x00,0x00,0x00,0x04,0x80,0x00, + 0x00,0x84,0x00,0x00,0x00,0x04,0x80,0x00,0x00,0x84,0x00,0x00,0x00,0x04,0x00, + 0x00,0x00,0x84,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x02, + 0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x40,0x00,0x00,0x00, + 0x02,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x00, + 0x00,0x04,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x0e,0x00, + 0x00,0x00,0xf0,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00}; diff --git a/hacks/noses/nose.1.left b/hacks/noses/nose.1.left index 3e247e65..8a6b8295 100644 --- a/hacks/noses/nose.1.left +++ b/hacks/noses/nose.1.left @@ -1,46 +1,38 @@ -#define nose_width 64 -#define nose_height 64 +#define nose_1_left_width 64 +#define nose_1_left_height 64 static unsigned char nose_1_left_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x0f, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xc0, - 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x1f, 0x00, - 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xfc, 0xff, - 0xff, 0xff, 0x3f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, - 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xf0, 0x03, 0x00, - 0x00, 0x80, 0x00, 0x00, 0x00, 0x0e, 0x0c, 0x00, 0x00, 0x80, 0x01, 0x00, - 0x00, 0x03, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x80, 0x00, 0x40, 0x00, - 0x00, 0x00, 0x02, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x20, 0x00, 0x80, 0x00, 0x00, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, - 0x10, 0x00, 0x00, 0x01, 0x00, 0x00, 0x18, 0x00, 0x10, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x80, 0x00, 0x20, 0x00, - 0x00, 0x00, 0xe4, 0x00, 0x00, 0x03, 0x18, 0x00, 0x00, 0x00, 0xe6, 0x03, - 0x00, 0xfc, 0x07, 0x00, 0x00, 0x00, 0xf2, 0x0f, 0x00, 0x00, 0xf8, 0xff, - 0xff, 0xff, 0xf1, 0x1f, 0x80, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x3f, - 0xe0, 0x7f, 0xc0, 0x07, 0x00, 0x00, 0xfc, 0x7f, 0xf0, 0xff, 0xe0, 0x0f, - 0x00, 0x1f, 0xfe, 0x7f, 0xf8, 0xff, 0xe1, 0x1f, 0xc0, 0x7f, 0xfe, 0x7f, - 0xfc, 0xff, 0xf3, 0x3f, 0xe0, 0xff, 0xfe, 0x3f, 0xfe, 0xff, 0xf7, 0x7f, - 0xf8, 0xff, 0xff, 0x3f, 0x3e, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0x1f, - 0x1e, 0xfe, 0xff, 0xff, 0xfe, 0xfc, 0xff, 0x1f, 0xde, 0xff, 0xff, 0xff, - 0x7e, 0xfe, 0xff, 0x0f, 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x07, - 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x07, 0xfe, 0xff, 0xff, 0x3f, - 0xfe, 0xff, 0xff, 0x03, 0xfc, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0x01, - 0xfc, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0x01, 0xf8, 0xff, 0xff, 0x3f, - 0xfc, 0xff, 0xff, 0x00, 0xf0, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x00, - 0xe0, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0x7f, 0x00, 0x80, 0xff, 0xff, 0x0f, - 0xf0, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x0f, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x40,0x00, + 0x00,0x04,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x40, + 0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x04,0x00,0x00,0x00,0x00, + 0x40,0x00,0x00,0x04,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0x3f,0x00,0x00, + 0x08,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x20,0x00, + 0x00,0xf8,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0xf0,0x03,0x00,0x00,0x80,0x00, + 0x00,0x00,0x0e,0x0c,0x00,0x00,0x80,0x01,0x00,0x00,0x03,0x30,0x00,0x00,0x00, + 0x01,0x00,0x80,0x00,0x40,0x00,0x00,0x00,0x02,0x00,0x40,0x00,0xc0,0x00,0x00, + 0x00,0x02,0x00,0x20,0x00,0x80,0x00,0x00,0x00,0x04,0x00,0x10,0x00,0x00,0x00, + 0x00,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x08,0x00,0x00, + 0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00, + 0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08, + 0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00, + 0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10, + 0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x00,0x01,0x00,0x00, + 0x18,0x00,0x10,0x00,0x00,0x01,0x00,0x00,0x08,0x00,0x20,0x00,0x80,0x00,0x00, + 0x00,0x08,0x00,0x40,0x00,0x40,0x00,0x00,0x00,0x0c,0x00,0x80,0x00,0x20,0x00, + 0x00,0x00,0xe4,0x00,0x00,0x03,0x18,0x00,0x00,0x00,0x26,0x03,0x00,0xfc,0x07, + 0x00,0x00,0x00,0x12,0x0c,0x00,0x00,0xf8,0xff,0xff,0xff,0x11,0x10,0x80,0x1f, + 0x00,0x00,0x00,0x00,0x08,0x20,0x60,0x60,0xc0,0x07,0x00,0x00,0x04,0x40,0x10, + 0xc0,0x20,0x08,0x00,0x1f,0x02,0x40,0x08,0x00,0x21,0x10,0xc0,0x60,0x02,0x40, + 0x04,0x00,0x12,0x20,0x20,0x80,0x02,0x20,0xc2,0x00,0x14,0x40,0x18,0x00,0x03, + 0x20,0x22,0x00,0x0c,0x80,0x04,0x03,0x02,0x10,0x12,0x00,0x08,0x80,0x86,0x00, + 0x04,0x10,0x12,0x00,0x10,0x80,0x42,0x00,0x18,0x08,0x12,0x00,0x10,0x40,0x42, + 0x00,0x00,0x04,0x02,0x00,0x20,0x40,0x42,0x00,0x00,0x04,0x02,0x00,0x00,0x20, + 0x42,0x00,0x00,0x02,0x04,0x00,0x00,0x20,0x02,0x00,0x00,0x01,0x04,0x00,0x00, + 0x20,0x02,0x00,0x00,0x01,0x08,0x00,0x00,0x20,0x04,0x00,0x80,0x00,0x10,0x00, + 0x00,0x20,0x0c,0x00,0x80,0x00,0x60,0x00,0x00,0x10,0x08,0x00,0x40,0x00,0x80, + 0xff,0xff,0x0f,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0x0f,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00}; diff --git a/hacks/noses/nose.1.right b/hacks/noses/nose.1.right index 52c9b56f..f7c8962c 100644 --- a/hacks/noses/nose.1.right +++ b/hacks/noses/nose.1.right @@ -1,46 +1,38 @@ -#define nose_width 64 -#define nose_height 64 +#define nose_1_right_width 64 +#define nose_1_right_height 64 static unsigned char nose_1_right_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xf8, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, - 0x03, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, - 0x00, 0xfc, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, - 0xff, 0x3f, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, - 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x30, 0x70, 0x00, - 0x00, 0x80, 0x00, 0x00, 0x00, 0x0c, 0xc0, 0x00, 0x00, 0x40, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x01, 0x00, 0x40, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, - 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, - 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, - 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, - 0x00, 0x18, 0x00, 0x00, 0x80, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, - 0x80, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, - 0x00, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x27, 0x00, 0x00, - 0x00, 0x04, 0x00, 0x01, 0xc0, 0x67, 0x00, 0x00, 0x00, 0x18, 0xc0, 0x00, - 0xf0, 0x4f, 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0xf8, 0x8f, 0xff, 0xff, - 0xff, 0x1f, 0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, - 0xfe, 0x3f, 0x00, 0x00, 0xe0, 0x03, 0xfe, 0x07, 0xfe, 0x7f, 0xf8, 0x00, - 0xf0, 0x07, 0xff, 0x0f, 0xfe, 0x7f, 0xfe, 0x03, 0xf8, 0x87, 0xff, 0x1f, - 0xfc, 0x7f, 0xff, 0x07, 0xfc, 0xcf, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x1f, - 0xfe, 0xef, 0xff, 0x7f, 0xf8, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0x7c, - 0xf8, 0xff, 0x3f, 0x7f, 0xff, 0xff, 0x7f, 0x78, 0xf0, 0xff, 0x7f, 0x7e, - 0xff, 0xff, 0xff, 0x7b, 0xe0, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x7f, - 0xe0, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x7f, 0xc0, 0xff, 0xff, 0x7f, - 0xfc, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x3f, - 0x80, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0xff, 0xff, 0x3f, - 0xfc, 0xff, 0xff, 0x1f, 0x00, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x0f, - 0x00, 0xfe, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x07, 0x00, 0xfc, 0xff, 0x0f, - 0xf0, 0xff, 0xff, 0x01, 0x00, 0xf0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x20,0x00, + 0x00,0x02,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x20, + 0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x02,0x00,0x00,0x00,0x00, + 0x20,0x00,0x00,0x02,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0x1f,0x00,0x00, + 0x04,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x10,0x00, + 0x00,0xfc,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x01,0x00,0x00,0xc0,0x0f, + 0x00,0x00,0x80,0x01,0x00,0x00,0x30,0x70,0x00,0x00,0x80,0x00,0x00,0x00,0x0c, + 0xc0,0x00,0x00,0x40,0x00,0x00,0x00,0x02,0x00,0x01,0x00,0x40,0x00,0x00,0x00, + 0x03,0x00,0x02,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x20,0x00,0x00, + 0x00,0x00,0x00,0x08,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x10,0x00, + 0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08, + 0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00, + 0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10, + 0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00, + 0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x18,0x00,0x00,0x80,0x00, + 0x00,0x08,0x00,0x10,0x00,0x00,0x80,0x00,0x00,0x08,0x00,0x10,0x00,0x00,0x00, + 0x01,0x00,0x04,0x00,0x30,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x27,0x00,0x00, + 0x00,0x04,0x00,0x01,0xc0,0x64,0x00,0x00,0x00,0x18,0xc0,0x00,0x30,0x48,0x00, + 0x00,0x00,0xe0,0x3f,0x00,0x08,0x88,0xff,0xff,0xff,0x1f,0x00,0x00,0x04,0x10, + 0x00,0x00,0x00,0x00,0xf8,0x01,0x02,0x20,0x00,0x00,0xe0,0x03,0x06,0x06,0x02, + 0x40,0xf8,0x00,0x10,0x04,0x03,0x08,0x02,0x40,0x06,0x03,0x08,0x84,0x00,0x10, + 0x04,0x40,0x01,0x04,0x04,0x48,0x00,0x20,0x04,0xc0,0x00,0x18,0x02,0x28,0x00, + 0x43,0x08,0x40,0xc0,0x20,0x01,0x30,0x00,0x44,0x08,0x20,0x00,0x61,0x01,0x10, + 0x00,0x48,0x10,0x18,0x00,0x42,0x01,0x08,0x00,0x48,0x20,0x00,0x00,0x42,0x02, + 0x08,0x00,0x48,0x20,0x00,0x00,0x42,0x02,0x04,0x00,0x40,0x40,0x00,0x00,0x42, + 0x04,0x00,0x00,0x40,0x80,0x00,0x00,0x40,0x04,0x00,0x00,0x20,0x80,0x00,0x00, + 0x40,0x04,0x00,0x00,0x20,0x00,0x01,0x00,0x20,0x04,0x00,0x00,0x10,0x00,0x01, + 0x00,0x30,0x04,0x00,0x00,0x08,0x00,0x02,0x00,0x10,0x08,0x00,0x00,0x06,0x00, + 0x0c,0x00,0x0c,0xf0,0xff,0xff,0x01,0x00,0xf0,0xff,0x03,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00}; diff --git a/hacks/noses/nose.down b/hacks/noses/nose.down index ab8c70f0..e8bdba4f 100644 --- a/hacks/noses/nose.down +++ b/hacks/noses/nose.down @@ -1,46 +1,38 @@ -#define nose_width 64 -#define nose_height 64 +#define nose_down_width 64 +#define nose_down_height 64 static unsigned char nose_down_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x54, 0x55, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xaa, - 0xaa, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x50, 0x55, 0x55, 0x55, 0x00, 0x00, - 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0xaa, 0x02, 0x00, 0x00, 0x00, 0x55, 0x55, - 0x55, 0x55, 0x05, 0x00, 0x00, 0x80, 0xaa, 0xaa, 0xaa, 0xaa, 0x0a, 0x00, - 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x00, 0xa0, 0xaa, 0xaa, - 0xaa, 0xaa, 0x2a, 0x00, 0x00, 0x50, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, - 0x00, 0xa8, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x54, 0x55, 0x55, - 0x55, 0x55, 0x55, 0x01, 0x00, 0xa8, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x02, - 0x00, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01, 0x00, 0xaa, 0xaa, 0xaa, - 0xaa, 0xaa, 0xaa, 0x02, 0x00, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x01, - 0x00, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x02, 0x00, 0x54, 0x55, 0x55, - 0x55, 0x55, 0x55, 0x01, 0x00, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x02, - 0x00, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xac, 0xaa, 0xaa, - 0xaa, 0xaa, 0xaa, 0x01, 0x00, 0x38, 0x55, 0x55, 0x55, 0x55, 0xd5, 0x00, - 0x00, 0xf0, 0xaa, 0xaa, 0xaa, 0xaa, 0x6a, 0x00, 0x00, 0xe0, 0x55, 0x55, - 0x55, 0x55, 0x3d, 0x00, 0x00, 0xc0, 0xaf, 0xaa, 0xaa, 0xaa, 0x1e, 0x00, - 0x00, 0x80, 0x7f, 0x55, 0x55, 0xd5, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0xaa, - 0xaa, 0xfa, 0x03, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x7f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xfe, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, - 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x1c, 0x00, 0x00, - 0x00, 0x00, 0xe0, 0x07, 0x00, 0x1e, 0x00, 0x00, 0xc0, 0x7f, 0xf0, 0x07, - 0x00, 0x3e, 0xe0, 0x01, 0xf0, 0xff, 0xf8, 0x0f, 0x00, 0x7f, 0xfc, 0x07, - 0xf0, 0xff, 0xff, 0x3f, 0xc0, 0xff, 0xff, 0x0f, 0xf8, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0x0f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, - 0xfc, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0x1f, 0xfc, 0xff, 0xff, 0xff, - 0xf8, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x3f, - 0xbc, 0xff, 0xff, 0x7f, 0xf0, 0xff, 0xff, 0x3f, 0xbc, 0xff, 0xff, 0x7f, - 0xf0, 0xff, 0xff, 0x3d, 0x7c, 0xff, 0xff, 0x7f, 0xf0, 0xff, 0xff, 0x3d, - 0x7c, 0xff, 0xff, 0x7f, 0xf0, 0xff, 0x7f, 0x1e, 0xfc, 0xff, 0xff, 0xff, - 0xf8, 0xff, 0xff, 0x1e, 0xf8, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x0f, - 0xf0, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x07, 0xe0, 0xff, 0xff, 0xff, - 0xf8, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xfc,0xff,0x01,0x00,0x00,0x00,0x00,0xc0,0x03,0x00,0x1e,0x00, + 0x00,0x00,0x00,0x38,0x00,0x00,0xe0,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00, + 0x03,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x40,0x00,0x00,0x00, + 0x00,0x08,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x10,0x00,0x80, + 0x1f,0x00,0x40,0x00,0x00,0x08,0x00,0x60,0x60,0x00,0x80,0x00,0x00,0x08,0x00, + 0x10,0x80,0x00,0x80,0x00,0x00,0x04,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x04, + 0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x02,0x00,0x18,0x80,0x01,0x00,0x02,0x00, + 0x02,0x00,0x68,0x60,0x01,0x00,0x02,0x00,0x02,0x00,0x88,0x1f,0x01,0x00,0x02, + 0x00,0x02,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x02,0x00,0x10,0x80,0x00,0x00, + 0x03,0x00,0x06,0x00,0x60,0x60,0x00,0x80,0x02,0x00,0x0c,0x00,0x80,0x1f,0x00, + 0x40,0x01,0x00,0x14,0x00,0x00,0x00,0x00,0x20,0x01,0x00,0x28,0x00,0x00,0x00, + 0x00,0x90,0x00,0x00,0x50,0x00,0x00,0x00,0x00,0x48,0x00,0x00,0xa0,0x01,0x00, + 0x00,0x00,0x26,0x00,0x00,0x40,0x1e,0x00,0x00,0xc0,0x11,0x00,0x00,0x80,0xe1, + 0x03,0x00,0x3c,0x0c,0x00,0x00,0x00,0x0e,0xfc,0xff,0x83,0x03,0x00,0x00,0x00, + 0xf0,0x01,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0x0f,0x00,0x00,0x00, + 0x00,0x80,0x03,0x00,0x0c,0x00,0x00,0x00,0x00,0x80,0x02,0x00,0x14,0x00,0x00, + 0x00,0x00,0x60,0x04,0x00,0x12,0x00,0x00,0xc0,0x7f,0x10,0x04,0x00,0x22,0xe0, + 0x01,0x70,0xc0,0x18,0x08,0x00,0x61,0x1c,0x06,0x10,0x00,0x0f,0x30,0xc0,0x80, + 0x07,0x08,0x08,0x00,0x06,0xc0,0x3f,0x80,0x01,0x08,0x08,0x00,0x18,0x00,0x02, + 0xc0,0x00,0x10,0x04,0x00,0x30,0x00,0x05,0x30,0x00,0x10,0x04,0x00,0x00,0x80, + 0x08,0x18,0x00,0x20,0x04,0x00,0x00,0x80,0x08,0x00,0x00,0x20,0x04,0x00,0x00, + 0x40,0x10,0x00,0x00,0x20,0x24,0x00,0x00,0x40,0x10,0x00,0x00,0x22,0x24,0x00, + 0x00,0x40,0x10,0x00,0x00,0x22,0x44,0x00,0x00,0x40,0x10,0x00,0x00,0x11,0x84, + 0x01,0x00,0xc0,0x18,0x00,0xc0,0x10,0x08,0x00,0x00,0x80,0x08,0x00,0x00,0x08, + 0x30,0x00,0x00,0x80,0x08,0x00,0x00,0x04,0xe0,0xff,0xff,0xff,0xf8,0xff,0xff, + 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00}; diff --git a/hacks/noses/nose.front b/hacks/noses/nose.front index 588cb0c9..64b82015 100644 --- a/hacks/noses/nose.front +++ b/hacks/noses/nose.front @@ -1,46 +1,38 @@ -#define nose_width 64 -#define nose_height 64 +#define nose_front_width 64 +#define nose_front_height 64 static unsigned char nose_front_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, - 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x07, 0x00, 0x00, - 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, - 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, - 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, 0xff, - 0xff, 0xff, 0x0f, 0x00, 0x00, 0xf0, 0xff, 0x3f, 0xe0, 0xff, 0x1f, 0x00, - 0x00, 0xf8, 0xff, 0x0f, 0x80, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x02, 0x02, - 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x84, 0x01, 0x00, - 0x00, 0x00, 0x81, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x80, 0x80, 0x00, - 0x00, 0x08, 0x02, 0x00, 0x00, 0x80, 0x40, 0x00, 0x00, 0x10, 0x02, 0x00, - 0x00, 0x40, 0x40, 0x00, 0x00, 0x10, 0x04, 0x00, 0x00, 0x40, 0x20, 0x00, - 0x00, 0x20, 0x04, 0x00, 0x00, 0x60, 0x20, 0x00, 0x00, 0x20, 0x0c, 0x00, - 0x00, 0x20, 0x20, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x20, 0x20, 0x00, - 0x00, 0x20, 0x08, 0x00, 0x00, 0x10, 0x20, 0x00, 0x00, 0x20, 0x10, 0x00, - 0x00, 0x10, 0x20, 0x00, 0x00, 0x20, 0x10, 0x00, 0x00, 0x10, 0x20, 0x08, - 0xc0, 0x20, 0x10, 0x00, 0x00, 0x10, 0x40, 0x18, 0xc0, 0x10, 0x10, 0x00, - 0x00, 0x10, 0x40, 0x30, 0x30, 0x10, 0x10, 0x00, 0x00, 0x10, 0x80, 0x20, - 0x10, 0x08, 0x10, 0x00, 0x00, 0x10, 0x84, 0x00, 0x00, 0x08, 0x11, 0x00, - 0x00, 0x30, 0x0c, 0x01, 0x00, 0x84, 0x19, 0x00, 0x00, 0x20, 0x18, 0x02, - 0x00, 0x62, 0x08, 0x00, 0x00, 0x20, 0x30, 0x0c, 0x80, 0x39, 0x08, 0x00, - 0x00, 0x60, 0xc0, 0x31, 0xe0, 0x07, 0x0c, 0x00, 0x00, 0x40, 0x00, 0xcf, - 0x3f, 0x00, 0x04, 0x00, 0x00, 0xc0, 0x00, 0x60, 0x03, 0x00, 0x06, 0x00, - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xfe, 0xff, - 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x0f, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, - 0xe0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x7f, 0xf0, 0x3f, 0x00, 0x00, - 0x00, 0x00, 0xe0, 0xff, 0xf8, 0x3f, 0x00, 0x00, 0xc0, 0x7f, 0xf0, 0xff, - 0xfd, 0x7f, 0xe0, 0x01, 0xf0, 0xff, 0xf8, 0xff, 0xfd, 0x7f, 0xfc, 0x07, - 0xf0, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0x0f, 0xf8, 0xff, 0xff, 0xff, - 0xfd, 0xff, 0xff, 0x0f, 0xf8, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0x1f, - 0xfc, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0x1f, 0xfc, 0xff, 0xff, 0xff, - 0xf8, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x3f, - 0x7c, 0xff, 0xff, 0x7f, 0xf0, 0xff, 0xff, 0x3d, 0x3c, 0xff, 0xff, 0x7f, - 0xf0, 0xff, 0xff, 0x3e, 0x7c, 0xff, 0xff, 0x7f, 0xf0, 0xff, 0xff, 0x3e, - 0x7c, 0xfe, 0xff, 0x7f, 0xf0, 0xff, 0x7f, 0x1f, 0xfc, 0xff, 0xff, 0xff, - 0xf8, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x0f, - 0xf0, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x07, 0xe0, 0xff, 0xff, 0xff, - 0xf8, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x40,0x00, + 0x00,0x04,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x40, + 0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x04,0x00,0x00,0x00,0x00, + 0x40,0x00,0x00,0x04,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0x3f,0x00,0x00, + 0x08,0x00,0xc0,0x1f,0x00,0x20,0x00,0x00,0x08,0x00,0x30,0x60,0x00,0x20,0x00, + 0x00,0xf8,0xff,0x0f,0x80,0xff,0x3f,0x00,0x00,0x00,0x02,0x02,0x00,0x82,0x00, + 0x00,0x00,0x00,0x03,0x01,0x00,0x84,0x01,0x00,0x00,0x00,0x81,0x00,0x00,0x08, + 0x01,0x00,0x00,0x80,0x80,0x00,0x00,0x08,0x02,0x00,0x00,0x80,0x40,0x00,0x00, + 0x10,0x02,0x00,0x00,0x40,0x40,0x00,0x00,0x10,0x04,0x00,0x00,0x40,0x20,0x00, + 0x00,0x20,0x04,0x00,0x00,0x60,0x20,0x00,0x00,0x20,0x0c,0x00,0x00,0x20,0x20, + 0x00,0x00,0x20,0x08,0x00,0x00,0x20,0x20,0x00,0x00,0x20,0x08,0x00,0x00,0x10, + 0x20,0x00,0x00,0x20,0x10,0x00,0x00,0x10,0x20,0x00,0x00,0x20,0x10,0x00,0x00, + 0x10,0x20,0x00,0x00,0x20,0x10,0x00,0x00,0x10,0x40,0x00,0x00,0x10,0x10,0x00, + 0x00,0x10,0x40,0x00,0x00,0x10,0x10,0x00,0x00,0x10,0x80,0x00,0x00,0x08,0x10, + 0x00,0x00,0x10,0x80,0x00,0x00,0x08,0x10,0x00,0x00,0x30,0x00,0x01,0x00,0x04, + 0x18,0x00,0x00,0x20,0x00,0x02,0x00,0x02,0x08,0x00,0x00,0x20,0x00,0x0c,0x80, + 0x01,0x08,0x00,0x00,0x60,0x00,0x30,0x60,0x00,0x0c,0x00,0x00,0x40,0x00,0xc0, + 0x1f,0x00,0x04,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01, + 0x00,0x00,0x00,0x02,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0x01,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x0f,0xc0,0x0f,0x00,0x00,0x00, + 0x00,0x40,0x10,0x20,0x10,0x00,0x00,0x00,0x00,0x20,0x60,0x30,0x20,0x00,0x00, + 0x00,0x00,0x20,0xc0,0x18,0x20,0x00,0x00,0xc0,0x7f,0x10,0x80,0x0d,0x40,0xe0, + 0x01,0x70,0xc0,0x18,0x00,0x05,0x40,0x1c,0x06,0x10,0x00,0x0f,0x00,0x05,0x80, + 0x07,0x08,0x08,0x00,0x06,0x00,0x05,0x80,0x01,0x08,0x08,0x00,0x18,0x00,0x05, + 0xc0,0x00,0x10,0x04,0x00,0x30,0x00,0x05,0x30,0x00,0x10,0x04,0x00,0x00,0x80, + 0x08,0x18,0x00,0x20,0x04,0x00,0x00,0x80,0x08,0x00,0x00,0x20,0x04,0x00,0x00, + 0x40,0x10,0x00,0x00,0x20,0x24,0x00,0x00,0x40,0x10,0x00,0x00,0x22,0x24,0x00, + 0x00,0x40,0x10,0x00,0x00,0x22,0x44,0x00,0x00,0x40,0x10,0x00,0x00,0x11,0x84, + 0x01,0x00,0xc0,0x18,0x00,0xc0,0x10,0x08,0x00,0x00,0x80,0x08,0x00,0x00,0x08, + 0x30,0x00,0x00,0x80,0x08,0x00,0x00,0x04,0xe0,0xff,0xff,0xff,0xf8,0xff,0xff, + 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00}; diff --git a/hacks/noses/nose.left.front b/hacks/noses/nose.left.front index 2b7ff371..3a871eaa 100644 --- a/hacks/noses/nose.left.front +++ b/hacks/noses/nose.left.front @@ -1,46 +1,38 @@ -#define nose_width 64 -#define nose_height 64 +#define nose_left_front_width 64 +#define nose_left_front_height 64 static unsigned char nose_left_front_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, - 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x07, 0x00, 0x00, - 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, - 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x01, 0x00, - 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, - 0xff, 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, 0x1f, 0xf0, 0xff, 0x1f, 0x00, - 0x00, 0xf8, 0xff, 0x07, 0xc0, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x02, 0x01, - 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x82, 0x01, 0x00, - 0x00, 0x00, 0x41, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x80, 0x40, 0x00, - 0x00, 0x04, 0x02, 0x00, 0x00, 0x80, 0x20, 0x00, 0x00, 0x08, 0x02, 0x00, - 0x00, 0x40, 0x20, 0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0x40, 0x10, 0x00, - 0x00, 0x10, 0x04, 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x10, 0x0c, 0x00, - 0x00, 0x20, 0x10, 0x00, 0x00, 0x10, 0x08, 0x00, 0x00, 0x30, 0x10, 0x00, - 0x00, 0x10, 0x08, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x10, 0x10, 0x00, - 0x00, 0x10, 0x10, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x10, 0x10, 0x00, - 0x80, 0x10, 0x10, 0x00, 0x00, 0x10, 0x20, 0x06, 0xc0, 0x08, 0x10, 0x00, - 0x00, 0x10, 0x20, 0x0c, 0x40, 0x08, 0x10, 0x00, 0x00, 0x10, 0x40, 0x08, - 0x38, 0x04, 0x10, 0x00, 0x00, 0x30, 0x40, 0x70, 0x18, 0x04, 0x10, 0x00, - 0x00, 0x20, 0x80, 0x20, 0x08, 0x02, 0x18, 0x00, 0x00, 0x20, 0x38, 0x01, - 0x00, 0x79, 0x08, 0x00, 0x00, 0x60, 0x64, 0x06, 0xe0, 0x44, 0x08, 0x00, - 0x00, 0x80, 0xc4, 0x1b, 0xb0, 0xc7, 0x0c, 0x00, 0x00, 0x80, 0x00, 0xe0, - 0x8f, 0x81, 0x04, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xfe, 0xff, - 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, - 0xfc, 0x1f, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x07, 0xfe, 0x1f, 0x00, 0x00, - 0x00, 0xf0, 0xff, 0x8f, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x9f, - 0xff, 0x3f, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, - 0x00, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, - 0xff, 0x3f, 0x00, 0x00, 0x00, 0xdf, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, - 0x00, 0xdf, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xef, 0xff, 0xff, - 0xff, 0x3f, 0x00, 0x00, 0x00, 0xf7, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, - 0x00, 0xe7, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xee, 0xff, 0xff, - 0xff, 0x7f, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, - 0x00, 0xfc, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, - 0xff, 0x3f, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x40,0x00, + 0x00,0x04,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x40, + 0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x04,0x00,0x00,0x00,0x00, + 0x40,0x00,0x00,0x04,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0x3f,0x00,0x00, + 0x08,0x00,0xe0,0x0f,0x00,0x20,0x00,0x00,0x08,0x00,0x18,0x30,0x00,0x20,0x00, + 0x00,0xf8,0xff,0x07,0xc0,0xff,0x3f,0x00,0x00,0x00,0x02,0x01,0x00,0x81,0x00, + 0x00,0x00,0x00,0x83,0x00,0x00,0x82,0x01,0x00,0x00,0x00,0x41,0x00,0x00,0x04, + 0x01,0x00,0x00,0x80,0x40,0x00,0x00,0x04,0x02,0x00,0x00,0x80,0x20,0x00,0x00, + 0x08,0x02,0x00,0x00,0x40,0x20,0x00,0x00,0x08,0x04,0x00,0x00,0x40,0x10,0x00, + 0x00,0x10,0x04,0x00,0x00,0x60,0x10,0x00,0x00,0x10,0x0c,0x00,0x00,0x20,0x10, + 0x00,0x00,0x10,0x08,0x00,0x00,0x30,0x10,0x00,0x00,0x10,0x08,0x00,0x00,0x10, + 0x10,0x00,0x00,0x10,0x10,0x00,0x00,0x10,0x10,0x00,0x00,0x10,0x10,0x00,0x00, + 0x10,0x10,0x00,0x00,0x10,0x10,0x00,0x00,0x10,0x20,0x00,0x00,0x08,0x10,0x00, + 0x00,0x10,0x20,0x00,0x00,0x08,0x10,0x00,0x00,0x10,0x40,0x00,0x00,0x04,0x10, + 0x00,0x00,0x30,0x40,0x00,0x00,0x04,0x10,0x00,0x00,0x20,0x80,0x00,0x00,0x02, + 0x18,0x00,0x00,0x20,0x00,0x01,0x00,0x01,0x08,0x00,0x00,0x60,0x00,0x06,0xc0, + 0x00,0x08,0x00,0x00,0x80,0x00,0x18,0x30,0x00,0x0c,0x00,0x00,0x80,0x00,0xe0, + 0x0f,0x00,0x04,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x01, + 0x00,0x00,0x00,0x02,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0x01,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x0f,0x00,0x00,0x00, + 0x00,0xff,0x00,0x04,0x10,0x00,0x00,0x00,0xe0,0x00,0x07,0x02,0x10,0x00,0x00, + 0x00,0x30,0x00,0x8c,0x01,0x20,0x00,0x00,0x00,0x0c,0x00,0x90,0x00,0x20,0x00, + 0x00,0x00,0x04,0x03,0x60,0x00,0x20,0x00,0x00,0x00,0xc2,0x00,0xc0,0x00,0x20, + 0x00,0x00,0x00,0x42,0x00,0x00,0x01,0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x02, + 0x20,0x00,0x00,0x00,0x21,0x00,0x00,0x06,0x20,0x00,0x00,0x00,0x21,0x00,0x00, + 0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x03,0x00, + 0x00,0x00,0x40,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x02, + 0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x18,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x10,0x00,0x00, + 0x00,0xc0,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00}; diff --git a/hacks/noses/nose.right.front b/hacks/noses/nose.right.front index 204e73e3..f8214174 100644 --- a/hacks/noses/nose.right.front +++ b/hacks/noses/nose.right.front @@ -1,46 +1,38 @@ -#define nose_width 64 -#define nose_height 64 +#define nose_right_front_width 64 +#define nose_right_front_height 64 static unsigned char nose_right_front_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, - 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x03, 0x00, 0x00, - 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, - 0xff, 0x3f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xf0, 0xff, 0xff, - 0xff, 0xff, 0x07, 0x00, 0x00, 0xf8, 0xff, 0x0f, 0xf8, 0xff, 0x0f, 0x00, - 0x00, 0xfc, 0xff, 0x03, 0xe0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x81, 0x00, - 0x80, 0x40, 0x00, 0x00, 0x00, 0x80, 0x41, 0x00, 0x00, 0xc1, 0x00, 0x00, - 0x00, 0x80, 0x20, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x40, 0x20, 0x00, - 0x00, 0x02, 0x01, 0x00, 0x00, 0x40, 0x10, 0x00, 0x00, 0x04, 0x01, 0x00, - 0x00, 0x20, 0x10, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00, 0x20, 0x08, 0x00, - 0x00, 0x08, 0x02, 0x00, 0x00, 0x30, 0x08, 0x00, 0x00, 0x08, 0x06, 0x00, - 0x00, 0x10, 0x08, 0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0x10, 0x08, 0x00, - 0x00, 0x08, 0x0c, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x00, - 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x01, - 0x40, 0x08, 0x08, 0x00, 0x00, 0x08, 0x10, 0x02, 0x40, 0x04, 0x08, 0x00, - 0x00, 0x08, 0x10, 0x02, 0x40, 0x04, 0x08, 0x00, 0x00, 0x08, 0x20, 0x0c, - 0x30, 0x02, 0x08, 0x00, 0x00, 0x08, 0x20, 0x08, 0x10, 0x02, 0x0c, 0x00, - 0x00, 0x18, 0x43, 0x00, 0x00, 0x41, 0x04, 0x00, 0x00, 0x10, 0x8e, 0x00, - 0x80, 0x20, 0x04, 0x00, 0x00, 0x10, 0xb8, 0x03, 0x60, 0x30, 0x06, 0x00, - 0x00, 0x30, 0x60, 0x0e, 0x18, 0x0c, 0x01, 0x00, 0x00, 0x20, 0x80, 0xfe, - 0x87, 0x00, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, - 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x3f, - 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f, 0xe0, 0xff, 0x07, 0x00, - 0x00, 0x00, 0xfc, 0xff, 0xf1, 0xff, 0x0f, 0x00, 0x00, 0x00, 0xfc, 0xff, - 0xf9, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x3f, 0x00, - 0x00, 0x00, 0xfc, 0xff, 0xff, 0x1f, 0x7f, 0x00, 0x00, 0x00, 0xfc, 0xff, - 0xff, 0xff, 0x7e, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xfd, 0x00, - 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfc, 0xff, - 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, - 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xff, - 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xfc, 0xff, - 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x0f, 0x00, - 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x20,0x00, + 0x00,0x02,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x20, + 0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x02,0x00,0x00,0x00,0x00, + 0x20,0x00,0x00,0x02,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0x1f,0x00,0x00, + 0x04,0x00,0xf0,0x07,0x00,0x10,0x00,0x00,0x04,0x00,0x0c,0x18,0x00,0x10,0x00, + 0x00,0xfc,0xff,0x03,0xe0,0xff,0x1f,0x00,0x00,0x00,0x81,0x00,0x80,0x40,0x00, + 0x00,0x00,0x80,0x41,0x00,0x00,0xc1,0x00,0x00,0x00,0x80,0x20,0x00,0x00,0x82, + 0x00,0x00,0x00,0x40,0x20,0x00,0x00,0x02,0x01,0x00,0x00,0x40,0x10,0x00,0x00, + 0x04,0x01,0x00,0x00,0x20,0x10,0x00,0x00,0x04,0x02,0x00,0x00,0x20,0x08,0x00, + 0x00,0x08,0x02,0x00,0x00,0x30,0x08,0x00,0x00,0x08,0x06,0x00,0x00,0x10,0x08, + 0x00,0x00,0x08,0x04,0x00,0x00,0x10,0x08,0x00,0x00,0x08,0x0c,0x00,0x00,0x08, + 0x08,0x00,0x00,0x08,0x08,0x00,0x00,0x08,0x08,0x00,0x00,0x08,0x08,0x00,0x00, + 0x08,0x08,0x00,0x00,0x08,0x08,0x00,0x00,0x08,0x10,0x00,0x00,0x04,0x08,0x00, + 0x00,0x08,0x10,0x00,0x00,0x04,0x08,0x00,0x00,0x08,0x20,0x00,0x00,0x02,0x08, + 0x00,0x00,0x08,0x20,0x00,0x00,0x02,0x0c,0x00,0x00,0x18,0x40,0x00,0x00,0x01, + 0x04,0x00,0x00,0x10,0x80,0x00,0x80,0x00,0x04,0x00,0x00,0x10,0x00,0x03,0x60, + 0x00,0x06,0x00,0x00,0x30,0x00,0x0c,0x18,0x00,0x01,0x00,0x00,0x20,0x00,0xf0, + 0x07,0x00,0x01,0x00,0x00,0x60,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x40,0x00, + 0x00,0x00,0x80,0x00,0x00,0x00,0x80,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x1f,0x00,0x00,0x00,0x00,0x00, + 0x00,0x08,0x20,0x00,0xff,0x00,0x00,0x00,0x00,0x08,0x40,0xe0,0x00,0x07,0x00, + 0x00,0x00,0x04,0x80,0x31,0x00,0x0c,0x00,0x00,0x00,0x04,0x00,0x09,0x00,0x30, + 0x00,0x00,0x00,0x04,0x00,0x06,0xc0,0x20,0x00,0x00,0x00,0x04,0x00,0x03,0x00, + 0x43,0x00,0x00,0x00,0x04,0x80,0x00,0x00,0x42,0x00,0x00,0x00,0x04,0x40,0x00, + 0x00,0x84,0x00,0x00,0x00,0x04,0x60,0x00,0x00,0x84,0x00,0x00,0x00,0x04,0x00, + 0x00,0x00,0x84,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x02, + 0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x40,0x00,0x00,0x00, + 0x02,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x00, + 0x00,0x04,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x0e,0x00, + 0x00,0x00,0xf0,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00}; diff --git a/hacks/screenhack.c b/hacks/screenhack.c index 0bbd4be2..12802ffa 100644 --- a/hacks/screenhack.c +++ b/hacks/screenhack.c @@ -70,17 +70,17 @@ merge_options () merged_options_size = XtNumber (default_options) + options_size; merged_options = (XrmOptionDescRec *) malloc (sizeof (default_options) + options_sizeof); - bcopy (options, merged_options, options_sizeof); - bcopy (default_options, merged_options + options_size, - sizeof (default_options)); + memcpy (merged_options, options, options_sizeof); + memcpy (merged_options + options_size, default_options, + sizeof (default_options)); for (defaults_size = 0; defaults [defaults_size]; defaults_size++); merged_defaults = (char **) malloc (sizeof (default_defaults) + (defaults_size * sizeof (char *))); - bcopy (default_defaults, merged_defaults, sizeof (default_defaults)); - bcopy (defaults, merged_defaults - 1 + - (sizeof (default_defaults) / sizeof (default_defaults[0])), - ((defaults_size + 1) * sizeof (defaults[0]))); + memcpy (merged_defaults, default_defaults, sizeof (default_defaults)); + memcpy ((merged_defaults - 1 + + (sizeof (default_defaults) / sizeof (default_defaults[0]))), + defaults, ((defaults_size + 1) * sizeof (defaults[0]))); } diff --git a/hacks/screenhack.h b/hacks/screenhack.h index bca3bcc5..12506b32 100644 --- a/hacks/screenhack.h +++ b/hacks/screenhack.h @@ -73,10 +73,6 @@ extern int options_size; extern char *defaults []; #if __STDC__ - -# define bcopy(from,to,size) memcpy((to),(from),(size)) -# define bzero(addr,size) memset((addr),0,(size)) - # if defined(SVR4) || defined(SYSV) extern int rand (void); extern void srand (unsigned int); diff --git a/utils/Imakefile b/utils/Imakefile index c2130aa2..32448377 100644 --- a/utils/Imakefile +++ b/utils/Imakefile @@ -8,7 +8,9 @@ #include "../config.h" #ifdef NO_SELECT - DEFINES = -DNO_SELECT + DEFINES = R5ISMS -DNO_SELECT +#else + DEFINES = R5ISMS #endif SRCS = fade.c hsv.c resources.c spline.c usleep.c xroger.c grabscreen.c OBJS = fade.o hsv.o resources.o spline.o usleep.o xroger.o grabscreen.o diff --git a/utils/Makefile b/utils/Makefile deleted file mode 100644 index cc3bf8d9..00000000 --- a/utils/Makefile +++ /dev/null @@ -1,426 +0,0 @@ -# Makefile generated by imake - do not edit! -# $XConsortium: imake.c,v 1.65 91/07/25 17:50:17 rws Exp $ -# -# The cpp used on this machine replaces all newlines and multiple tabs and -# spaces in a macro expansion with a single space. Imake tries to compensate -# for this, but is not always successful. -# - -# ------------------------------------------------------------------------- -# Makefile generated from "Imake.tmpl" and -# $XConsortium: Imake.tmpl,v 1.139 91/09/16 08:52:48 rws Exp $ -# -# Platform-specific parameters may be set in the appropriate .cf -# configuration files. Site-specific parameters should be set in the file -# site.def. Full rebuilds are recommended if any parameters are changed. -# -# If your C preprocessor does not define any unique symbols, you will need -# to set BOOTSTRAPCFLAGS when rebuilding imake (usually when doing -# "make World" the first time). -# - -# ------------------------------------------------------------------------- -# site-specific configuration parameters that need to come before -# the platform-specific parameters - edit site.def to change - -# site: $XConsortium: site.def,v 1.2 91/07/30 20:26:44 rws Exp $ - - ALLINCLUDES = $(STD_INCLUDES) $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) - -# ------------------------------------------------------------------------- -# platform-specific configuration parameters - edit usl.cf to change - -MEMUTILDEF = -MEMUTILLIB = -INC = $(TOOLS)/usr/include - - YFLAGS = - STRIP = $(PFX)strip - AWK = /usr/bin/awk - CD = cd - LS = /bin/ls - PR = /bin/pr - CHMOD = $(CH)chmod - CHOWN = $(CH)chown - CHGRP = $(CH)chgrp - SED = /bin/sed - MCS = $(PFX)mcs -d - - PROTO_DEFINES = -LOCAL_LIBRARIES = $(XLIB) - SYS_LIBRARIES = - - USE_INSTALLED = - SYS_TO_BUILD = - ARCHIVE_ONLY = - - USE_INSTALLED = -DUseInstalled - -BUILD_DEFINES = $(SYS_TO_BUILD) $(USE_INSTALLED) $(ARCHIVE_ONLY) - -# :: end of BUILD_DEFINES set-up - - UNIX_REL = -DSVR4 - -MAKEDEFINES = $(STD_DEFINES) $(BUILD_DEFINES) $(UNIX_REL) $(CCS_USED) - -# until we use R5 server, use R4 font structures - -# operating system: OSName - -INSTALLFLAGS = -m 0644 - -# $XConsortium: sv4Lib.rules,v 1.8 91/07/19 15:38:53 rws Exp $ - - FURCCOPTIONS = -Xa -W2,-A -Wa,-r - FUR = $(PFX)fur - -INCLUDE_EXTENSION = $(INCDIR)/extensions - - TOP_INCLUDES = - -# ------------------------------------------------------------------------- -# site-specific configuration parameters that go after -# the platform-specific parameters - edit site.def to change - -# site: $XConsortium: site.def,v 1.2 91/07/30 20:26:44 rws Exp $ - -# -# ProjectRoot is where you want to install the binaries, libs, fonts etc -# - - PROJECTROOT = $(ROOT)/$(MACH)/usr/X - XWINHOME = /usr/X - XWINLIBDIR = $(XWINHOME)/lib - XWINBINDIR = $(XWINHOME)/bin - - USLCLIENTSRC = $(TOP)/uslclients - DESKTOPDIR = $(PROJECTROOT)/desktop - DTADMDIR = $(PROJECTROOT)/adm - XDEFAULTS = $(PROJECTROOT)/defaults - - FONTINCSRC = $(FONTSRC)/include - FONTLIBINCSRC = $(FONTSRC)/lib/include - FOLIOLIBSRC = $(FONTSRC)/lib/folio - FONTLIBSRC = $(FONTSRC)/lib/font - BITMAPFONTSRC = $(FONTSRC)/lib/bitmap - FONTSLIBSRC = $(FONTSRC)/lib/ - XOLSRC = $(LIBSRC)/Xol - XOLLIBSRC = $(LIBSRC)/Xol -BITMAPLIBS_TO_BUILD = libbitmap.a libbitmap.so -FONTLIBS_TO_BUILD = libfont.a libfont.so - - USL_DEFINES = -DLIBDIR=\"$(XWINLIBDIR)\" -DDESTDIR=\"$(XWINHOME)\" - - DEFINES = $(USL_DEFINES) - - SHELL = /bin/sh - - TOP = . - CURRENT_DIR = ./utils - - AR = $(PFX)ar rv - BOOTSTRAPCFLAGS = -Dusl - CC = $(PFX)cc - AS = $(PFX)as - - COMPRESS = compress - CPP = $(TOOLS)/usr/ccs/lib/$(PFX)cpp $(STD_CPP_DEFINES) - PREPROCESSCMD = $(PFX)cc -E $(STD_CPP_DEFINES) - INSTALL = /usr/ucb/install - LD = $(PFX)ld - LINT = $(PFX)lint - LINTLIBFLAG = -o - LINTOPTS = -ax - LN = /bin/ln -s - MAKE = $(PFX)make - MV = /bin/mv - CP = /bin/cp - HCC = /bin/cc - SED = /bin/sed - - RM = /bin/rm -f - TROFF = psroff - MSMACROS = -ms - TBL = tbl - EQN = eqn - STD_INCLUDES = -I. - STD_CPP_DEFINES = -DUSL -DSVR4 -DSYSV -DI18N $(MEMUTILDEF) - STD_DEFINES = -DUSL -DSVR4 -DSYSV -DI18N $(MEMUTILDEF) - EXTRA_LOAD_FLAGS = - EXTRA_LIBRARIES = -lnsl -ldl $(MEMUTILLIB) - TAGS = ctags - - SHAREDCODEDEF = - SHLIBDEF = - - PROTO_DEFINES = -DFUNCPROTO=15 -DNARROWPROTO - - INSTPGMFLAGS = -s - - INSTBINFLAGS = -m 0755 - INSTUIDFLAGS = -m 4755 - INSTLIBFLAGS = -m 0644 - INSTINCFLAGS = -m 0444 - INSTMANFLAGS = -m 0444 - INSTDATFLAGS = -m 0444 - INSTKMEMFLAGS = -m 4755 - - PROJECTROOT = $(ROOT)/$(MACH)/usr/X - - CDEBUGFLAGS = - CCOPTIONS = -Xa -W2,-A - - ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(STD_INCLUDES) - ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(EXTRA_DEFINES) $(PROTO_DEFINES) $(DEFINES) - CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(ALLDEFINES) - LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) - - LDLIBS = $(SYS_LIBRARIES) $(EXTRA_LIBRARIES) - - LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(LOCAL_LDFLAGS) -T 0x8300000 -L$(USRLIBDIR) - - LDCOMBINEFLAGS = -r - DEPENDFLAGS = - - MACROFILE = usl.cf - RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut - - IMAKE_DEFINES = - - IRULESRC = $(CONFIGDIR) - IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES) - - ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/Imake.rules \ - $(IRULESRC)/Project.tmpl $(IRULESRC)/site.def \ - $(IRULESRC)/$(MACROFILE) $(EXTRA_ICONFIGFILES) - -# ------------------------------------------------------------------------- -# X Window System Build Parameters -# $XConsortium: Project.tmpl,v 1.142 92/01/25 16:44:02 rws Exp $ - -# ------------------------------------------------------------------------- -# X Window System make variables; this need to be coordinated with rules - - PATHSEP = / - USRLIBDIR = $(ROOT)/$(MACH)/usr/X/lib - BINDIR = $(ROOT)/$(MACH)/usr/X/bin - INCROOT = $(ROOT)/$(MACH)/usr/X/include - BUILDINCROOT = $(TOP) - BUILDINCDIR = $(BUILDINCROOT)/X11 - BUILDINCTOP = .. - INCDIR = $(INCROOT)/X11 - ADMDIR = /usr/adm - LIBDIR = $(USRLIBDIR) - CONFIGDIR = $(LIBDIR)/config - LINTLIBDIR = $(USRLIBDIR)/lint - - FONTDIR = $(LIBDIR)/fonts - XINITDIR = $(LIBDIR)/xinit - XDMDIR = $(LIBDIR)/xdm - TWMDIR = $(LIBDIR)/twm - MANPATH = $(ROOT)/$(MACH)/usr/X/man - MANSOURCEPATH = $(MANPATH)/man - MANSUFFIX = n - LIBMANSUFFIX = 3 - MANDIR = $(MANSOURCEPATH)$(MANSUFFIX) - LIBMANDIR = $(MANSOURCEPATH)$(LIBMANSUFFIX) - NLSDIR = $(LIBDIR)/nls - PEXAPIDIR = $(LIBDIR)/PEX - XAPPLOADDIR = $(LIBDIR)/app-defaults - FONTCFLAGS = -L -l -t - - INSTAPPFLAGS = $(INSTDATFLAGS) - - IMAKE = imake - DEPEND = makedepend - RGB = rgb - - FONTC = bdftosnf - - MKFONTDIR = mkfontdir - MKDIRHIER = /bin/sh $(BINDIR)/mkdirhier - - CONFIGSRC = $(TOP)/config - DOCUTILSRC = $(TOP)/doc/util - CLIENTSRC = $(TOP)/clients - DEMOSRC = $(TOP)/demos - LIBSRC = $(TOP)/lib - FONTSRC = $(TOP)/fonts - INCLUDESRC = $(TOP)/X11 - SERVERSRC = $(TOP)/server - UTILSRC = $(TOP)/util - SCRIPTSRC = $(UTILSRC)/scripts - EXAMPLESRC = $(TOP)/examples - CONTRIBSRC = $(TOP)/../contrib - DOCSRC = $(TOP)/doc - RGBSRC = $(TOP)/rgb - DEPENDSRC = $(UTILSRC)/makedepend - IMAKESRC = $(CONFIGSRC) - XAUTHSRC = /usr/X/lib - XLIBSRC = /usr/X/lib - XMUSRC = /usr/X/lib - TOOLKITSRC = /usr/X/lib - AWIDGETSRC = /usr/X/lib - OLDXLIBSRC = /usr/X/lib - XDMCPLIBSRC = /usr/X/lib - - BDFTOSNFSRC = $(FONTSRC)/clients/bdftosnf - - MKFONTDIRSRC = $(FONTSRC)/clients/mkfontdir - FSLIBSRC = $(FONTSRC)/lib/fs - FONTSERVERSRC = $(FONTSRC)/server - EXTENSIONSRC = $(TOP)/extensions - XILIBSRC = $(EXTENSIONSRC)/lib/xinput - XTESTLIBSRC = $(EXTENSIONSRC)/lib/xtest - PHIGSLIBSRC = $(EXTENSIONSRC)/lib/PEX - -# $XConsortium: sv4Lib.tmpl,v 1.6 92/01/25 16:46:55 rws Exp $ - -# -# USL: BEGIN -# The default revision numbers from MIT is 5. But since USL has to be -# backward compatible, so force it to 1 -# - - SOXOLREV = 1 - SOOLITREV = 1 - SOOLITMREV = 1 - SOOLITOREV = 1 - SODTREV = 1 - -# USL: END - -SHLIBLDFLAGS = -G -z text -PICFLAGS = -K PIC - - DEPEXTENSIONLIB = - EXTENSIONLIB = -lXext - - DEPXLIB = $(DEPEXTENSIONLIB) - XLIB = $(EXTENSIONLIB) -lX11 - - DEPXMULIB = $(USRLIBDIR)/libXmu.so.$(SOXMUREV) - - XMULIB = -lXmu - - DEPOLDXLIB = - OLDXLIB = -loldX - - DEPXTOOLLIB = - XTOOLLIB = -lXt - - DEPXOLLIB = $(USRLIBDIR)/libOlit.so.$(SOXOLREV) - XOLLIB = -lOlit - - DEPXAWLIB = - XAWLIB = -lXaw - - DEPXILIB = - XILIB = -lXi - - DEPXTESTLIB = - XTESTLIB = -lXtst - -# -# USL: BEGIN -# - -XHOSTLOC = $(DESTDIR)/$(LIBDIR) -SHLIBFLAGS = -L $(ROOT)/$(MACH)/usr/lib -L $(ROOT)/$(MACH)/lib -L $(XHOSTLOC) - -# -# USL: END -# - - SOXLIBREV = 1 - SOXTREV = 1 - SOXAWREV = 1 - SOOLDXREV = 1 - SOXMUREV = 1 - SOXEXTREV = 1 - SOXINPUTREV = 1 - SOXTESTREV = 1 - SOXTRAPREV = 1 - - DEPXAUTHLIB = $(USRLIBDIR)/libXau.a - XAUTHLIB = -lXau - DEPXDMCPLIB = $(USRLIBDIR)/libXdmcp.a - XDMCPLIB = -lXdmcp - - DEPPHIGSLIB = $(USRLIBDIR)/libphigs.a - PHIGSLIB = -lphigs - - DEPXBSDLIB = $(USRLIBDIR)/libXbsd.a - XBSDLIB = -lXbsd - - LINTEXTENSIONLIB = $(LINTLIBDIR)/llib-lXext.ln - LINTXLIB = $(LINTLIBDIR)/llib-lX11.ln - LINTXMU = $(LINTLIBDIR)/llib-lXmu.ln - LINTXTOOL = $(LINTLIBDIR)/llib-lXt.ln - LINTXAW = $(LINTLIBDIR)/llib-lXaw.ln - LINTXI = $(LINTLIBDIR)/llib-lXi.ln - LINTPHIGS = $(LINTLIBDIR)/llib-lphigs.ln - - DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB) - - DEPLIBS1 = $(DEPLIBS) - DEPLIBS2 = $(DEPLIBS) - DEPLIBS3 = $(DEPLIBS) - -# ------------------------------------------------------------------------- -# Imake rules for building libraries, programs, scripts, and data files -# rules: $XConsortium: Imake.rules,v 1.126 91/12/30 20:14:35 rws Exp $ - -# ------------------------------------------------------------------------- -# start of Imakefile - - MOTIFINCLUDES = -I/usr/X/include - MOTIFLDOPTIONS = -L/usr/X/lib - MOTIFLIBS = -lXm - -EXTRA_LIBRARIES= -lgen -L/usr/ucblib -lucb -lnsl - - SRCS = fade.c hsv.c resources.c spline.c usleep.c xroger.c grabscreen.c - OBJS = fade.o hsv.o resources.o spline.o usleep.o xroger.o grabscreen.o - TARFILES = README Imakefile ad2c $(SRCS) spline.h version.h - -all:: $(OBJS) - -echo_tarfiles: - @echo $(TARFILES) - -# ------------------------------------------------------------------------- -# common rules for all Makefiles - do not edit - -emptyrule:: - -clean:: - $(RM_CMD) "#"* - -Makefile:: - -@if [ -f Makefile ]; then set -x; \ - $(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \ - else exit 0; fi - $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR) - -tags:: - $(TAGS) -w *.[ch] - $(TAGS) -xw *.[ch] > TAGS - -# ------------------------------------------------------------------------- -# empty rules for directories that do not have SUBDIRS - do not edit - -install:: - @echo "install in $(CURRENT_DIR) done" - -install.man:: - @echo "install.man in $(CURRENT_DIR) done" - -Makefiles:: - -includes:: - -# ------------------------------------------------------------------------- -# dependencies generated by makedepend - diff --git a/utils/fade.c b/utils/fade.c index 8d486690..c6c77a0c 100644 --- a/utils/fade.c +++ b/utils/fade.c @@ -17,14 +17,7 @@ #include #include -#if __STDC__ -# define bcopy(from,to,size) memcpy((to),(from),(size)) -# define bzero(addr,size) memset((addr),0,(size)) -extern void screenhack_usleep (unsigned long); -#else extern void screenhack_usleep (); -#endif - #define usleep screenhack_usleep #define MAX_COLORS 4096 @@ -87,7 +80,7 @@ fade_colormap (dpy, cmap, cmap2, seconds, ticks, out_p) for (i = 0; i < ncolors; i++) orig_colors [i].pixel = i; XQueryColors (dpy, cmap, orig_colors, ncolors); - bcopy (orig_colors, current_colors, ncolors * sizeof (XColor)); + memcpy (current_colors, orig_colors, ncolors * sizeof (XColor)); for (i = (out_p ? steps : 0); (out_p ? i > 0 : i < steps); @@ -96,9 +89,9 @@ fade_colormap (dpy, cmap, cmap2, seconds, ticks, out_p) int j; for (j = 0; j < ncolors; j++) { - current_colors[j].red = (int)orig_colors[j].red * i / steps; - current_colors[j].green = (int)orig_colors[j].green * i / steps; - current_colors[j].blue = (int)orig_colors[j].blue * i / steps; + current_colors[j].red = orig_colors[j].red * i / steps; + current_colors[j].green = orig_colors[j].green * i / steps; + current_colors[j].blue = orig_colors[j].blue * i / steps; } XStoreColors (dpy, cmap2, current_colors, ncolors); XSync (dpy, False); diff --git a/utils/usleep.c b/utils/usleep.c index ed779a4a..2529d57f 100644 --- a/utils/usleep.c +++ b/utils/usleep.c @@ -13,10 +13,6 @@ #include #endif -#ifdef SVR4 -#include -#endif - #include #include /* lazy way out */ diff --git a/utils/version.h b/utils/version.h index a7920974..9c7c324d 100644 --- a/utils/version.h +++ b/utils/version.h @@ -1,2 +1,2 @@ static char *screensaver_id = - "@(#)xscreensaver 1.18, by Jamie Zawinski (jwz@lucid.com)"; + "@(#)xscreensaver 1.21, by Jamie Zawinski (jwz@lucid.com)"; -- 2.30.2